All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/freeradius-server/redhat/openssl/ectest.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char * argv[])
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:124,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:127,1
    - Dst: EC_GROUP_get_degree
      Src: /src/freeradius-server/redhat/openssl/ectest.c:127,1
    - Dst: EC_GROUP_get_order
      Src: /src/freeradius-server/redhat/openssl/ectest.c:128,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:129,1
    - Dst: BN_num_bits
      Src: /src/freeradius-server/redhat/openssl/ectest.c:129,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:130,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:132,1
    - Dst: EC_POINT_copy
      Src: /src/freeradius-server/redhat/openssl/ectest.c:134,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:134,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:138,1
    - Dst: BN_pseudo_rand
      Src: /src/freeradius-server/redhat/openssl/ectest.c:139,1
    - Dst: BN_num_bits
      Src: /src/freeradius-server/redhat/openssl/ectest.c:139,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:142,1
    - Dst: BN_pseudo_rand
      Src: /src/freeradius-server/redhat/openssl/ectest.c:143,1
    - Dst: BN_num_bits
      Src: /src/freeradius-server/redhat/openssl/ectest.c:143,1
    - Dst: clock
      Src: /src/freeradius-server/redhat/openssl/ectest.c:147,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:152,1
    - Dst: clock
      Src: /src/freeradius-server/redhat/openssl/ectest.c:156,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:158,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:174,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:177,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:180,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:183,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:185,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:186,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:189,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:190,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - group
    - type
    - ctx
    argTypes:
    - EC_GROUP*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 192
    functionName: timings
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_generator
    - EC_POINT_free
    - BN_new
    - EC_GROUP_get_degree
    - BN_num_bits
    - EC_POINT_new
    - fprintf
    - EC_GROUP_get_order
    - BN_free
    - fflush
    - EC_POINT_mul
    - clock
    - BN_pseudo_rand
    - EC_POINT_copy
    linkageType: ''
    returnType: void
    signature: void timings(EC_GROUP *group, int type, BN_CTX *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:199,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:200,1
    - Dst: BN_CTX_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:201,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:203,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:203,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:203,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:204,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:205,1
    - Dst: EC_GROUP_get_order
      Src: /src/freeradius-server/redhat/openssl/ectest.c:206,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:207,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:208,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:209,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:210,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/freeradius-server/redhat/openssl/ectest.c:211,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:212,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:213,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:214,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:215,1
    - Dst: BN_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:216,1
    - Dst: BN_sub
      Src: /src/freeradius-server/redhat/openssl/ectest.c:218,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:219,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:220,1
    - Dst: BN_add
      Src: /src/freeradius-server/redhat/openssl/ectest.c:222,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:222,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:223,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:224,1
    - Dst: BN_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:226,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:227,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:228,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:229,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:230,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:231,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:232,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:233,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:234,1
    - Dst: BN_CTX_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:235,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 236
    functionName: group_order_tests
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - BN_one
    - EC_POINT_is_at_infinity
    - BN_new
    - BN_CTX_free
    - EC_POINT_new
    - BN_CTX_new
    - fprintf
    - EC_GROUP_get_order
    - BN_free
    - fflush
    - EC_GROUP_precompute_mult
    - EC_POINT_mul
    - EC_POINT_cmp
    - BN_add
    - BN_value_one
    - EC_POINT_free
    - BN_mul
    - BN_sub
    linkageType: ''
    returnType: void
    signature: void group_order_tests(EC_GROUP *group)
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:251,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:255,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:256,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:257,1
    - Dst: EC_GROUP_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:260,1
    - Dst: EC_GFp_mont_method
      Src: /src/freeradius-server/redhat/openssl/ectest.c:260,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:264,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:265,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:266,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:269,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:270,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:271,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:276,1
    - Dst: BN_is_prime_ex
      Src: /src/freeradius-server/redhat/openssl/ectest.c:277,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:278,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:279,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:280,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:282,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:283,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/freeradius-server/redhat/openssl/ectest.c:284,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:285,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:287,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:287,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:289,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:290,1
    - Dst: BN_print_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:291,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:292,1
    - Dst: BN_print_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:293,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:294,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:296,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:297,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:299,1
    - Dst: EC_GROUP_get_degree
      Src: /src/freeradius-server/redhat/openssl/ectest.c:300,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:301,1
    - Dst: group_order_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:303,1
    - Dst: EC_GROUP_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:305,1
    - Dst: EC_GROUP_method_of
      Src: /src/freeradius-server/redhat/openssl/ectest.c:305,1
    - Dst: EC_GROUP_copy
      Src: /src/freeradius-server/redhat/openssl/ectest.c:306,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:311,1
    - Dst: BN_is_prime_ex
      Src: /src/freeradius-server/redhat/openssl/ectest.c:313,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:314,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:316,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:318,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:320,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:322,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/freeradius-server/redhat/openssl/ectest.c:323,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:324,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:326,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:326,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:328,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:329,1
    - Dst: BN_print_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:330,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:331,1
    - Dst: BN_print_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:332,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:333,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:335,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:337,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:339,1
    - Dst: EC_GROUP_get_degree
      Src: /src/freeradius-server/redhat/openssl/ectest.c:340,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:341,1
    - Dst: group_order_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:343,1
    - Dst: EC_GROUP_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:345,1
    - Dst: EC_GROUP_method_of
      Src: /src/freeradius-server/redhat/openssl/ectest.c:345,1
    - Dst: EC_GROUP_copy
      Src: /src/freeradius-server/redhat/openssl/ectest.c:346,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:351,1
    - Dst: BN_is_prime_ex
      Src: /src/freeradius-server/redhat/openssl/ectest.c:354,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:355,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:358,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:361,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:363,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:366,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/freeradius-server/redhat/openssl/ectest.c:367,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:368,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:371,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:371,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:373,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:374,1
    - Dst: BN_print_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:375,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:376,1
    - Dst: BN_print_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:377,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:378,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:380,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:383,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:385,1
    - Dst: EC_GROUP_get_degree
      Src: /src/freeradius-server/redhat/openssl/ectest.c:386,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:387,1
    - Dst: group_order_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:389,1
    - Dst: EC_GROUP_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:391,1
    - Dst: EC_GROUP_method_of
      Src: /src/freeradius-server/redhat/openssl/ectest.c:391,1
    - Dst: EC_GROUP_copy
      Src: /src/freeradius-server/redhat/openssl/ectest.c:392,1
    - Dst: EC_POINT_copy
      Src: /src/freeradius-server/redhat/openssl/ectest.c:397,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:398,1
    - Dst: EC_POINT_dbl
      Src: /src/freeradius-server/redhat/openssl/ectest.c:399,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/freeradius-server/redhat/openssl/ectest.c:400,1
    - Dst: EC_POINT_invert
      Src: /src/freeradius-server/redhat/openssl/ectest.c:401,1
    - Dst: EC_POINT_add
      Src: /src/freeradius-server/redhat/openssl/ectest.c:403,1
    - Dst: EC_POINT_add
      Src: /src/freeradius-server/redhat/openssl/ectest.c:404,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:405,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:412,1
    - Dst: EC_GROUP_get_order
      Src: /src/freeradius-server/redhat/openssl/ectest.c:418,1
    - Dst: BN_add
      Src: /src/freeradius-server/redhat/openssl/ectest.c:419,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:419,1
    - Dst: BN_is_odd
      Src: /src/freeradius-server/redhat/openssl/ectest.c:420,1
    - Dst: BN_rshift1
      Src: /src/freeradius-server/redhat/openssl/ectest.c:421,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:425,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:426,1
    - Dst: EC_POINTs_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:429,1
    - Dst: EC_POINTs_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:430,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:431,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:432,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:434,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:435,1
    - Dst: BN_pseudo_rand
      Src: /src/freeradius-server/redhat/openssl/ectest.c:437,1
    - Dst: BN_num_bits
      Src: /src/freeradius-server/redhat/openssl/ectest.c:437,1
    - Dst: BN_add
      Src: /src/freeradius-server/redhat/openssl/ectest.c:438,1
    - Dst: BN_set_negative
      Src: /src/freeradius-server/redhat/openssl/ectest.c:439,1
    - Dst: EC_POINTs_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:443,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:444,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:446,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:447,1
    - Dst: BN_pseudo_rand
      Src: /src/freeradius-server/redhat/openssl/ectest.c:449,1
    - Dst: BN_num_bits
      Src: /src/freeradius-server/redhat/openssl/ectest.c:449,1
    - Dst: BN_add
      Src: /src/freeradius-server/redhat/openssl/ectest.c:450,1
    - Dst: BN_set_negative
      Src: /src/freeradius-server/redhat/openssl/ectest.c:451,1
    - Dst: BN_init
      Src: /src/freeradius-server/redhat/openssl/ectest.c:456,1
    - Dst: BN_zero
      Src: /src/freeradius-server/redhat/openssl/ectest.c:457,1
    - Dst: EC_POINTs_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:460,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/redhat/openssl/ectest.c:461,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:463,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:465,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:470,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:471,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:472,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:473,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:474,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:475,1
    - Dst: BN_CTX_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:480,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:481,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:481,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:481,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:482,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:483,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:484,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:485,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:486,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:486,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:486,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:488,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:489,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:490,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:491,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:492,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:493,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 247
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 495
    functionName: prime_field_tests
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_POINT_new
    - EC_GROUP_method_of
    - EC_GROUP_get_order
    - BN_hex2bn
    - fflush
    - EC_POINT_add
    - BN_init
    - EC_GROUP_set_generator
    - EC_GROUP_copy
    - BN_CTX_new
    - EC_GROUP_new
    - EC_POINT_dbl
    - EC_POINTs_mul
    - BN_pseudo_rand
    - EC_POINT_free
    - EC_GROUP_set_curve_GFp
    - BN_cmp
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - BN_print_fp
    - BN_new
    - EC_POINT_set_compressed_coordinates
    - BN_num_bits
    - BN_free
    - BN_value_one
    - BN_add
    - BN_is_prime_ex
    - EC_POINT_get_affine_coordinates
    - EC_POINT_invert
    - group_order_tests
    - BN_is_odd
    - EC_GROUP_get_degree
    - fprintf
    - BN_zero
    - EC_POINT_cmp
    - BN_rshift1
    - EC_GFp_mont_method
    - BN_set_negative
    - EC_POINT_copy
    - BN_CTX_free
    - timings
    linkageType: ''
    returnType: void
    signature: void prime_field_tests(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/freeradius-server/redhat/openssl/ectest.c:504,1
    - Dst: OPENSSL_malloc
      Src: /src/freeradius-server/redhat/openssl/ectest.c:506,1
    - Dst: EC_get_builtin_curves
      Src: /src/freeradius-server/redhat/openssl/ectest.c:511,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:513,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:517,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/freeradius-server/redhat/openssl/ectest.c:523,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:526,1
    - Dst: OBJ_nid2sn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:527,1
    - Dst: EC_GROUP_check
      Src: /src/freeradius-server/redhat/openssl/ectest.c:531,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:534,1
    - Dst: OBJ_nid2sn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:535,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:536,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:540,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/ectest.c:541,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:542,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:545,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:548,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 553
    functionName: internal_curve_test
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_check
    - EC_GROUP_free
    - OPENSSL_malloc
    - EC_get_builtin_curves
    - fprintf
    - OPENSSL_free
    - OBJ_nid2sn
    - fflush
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: void
    signature: void internal_curve_test(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:593,1
    - Dst: BN_CTX_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:594,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:595,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:596,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:597,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:598,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:598,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:599,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:599,1
    - Dst: BN_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:599,1
    - Dst: EC_GROUP_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:601,1
    - Dst: struct nistp_test_params*::meth
      Src: /src/freeradius-server/redhat/openssl/ectest.c:601,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:603,1
    - Dst: BN_is_prime_ex
      Src: /src/freeradius-server/redhat/openssl/ectest.c:604,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:605,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:606,1
    - Dst: EC_GROUP_set_curve_GFp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:607,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:608,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:609,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:610,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ectest.c:611,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:612,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:613,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:614,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:615,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:616,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/freeradius-server/redhat/openssl/ectest.c:617,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:618,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:619,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:619,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:621,1
    - Dst: EC_GROUP_get_degree
      Src: /src/freeradius-server/redhat/openssl/ectest.c:622,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:623,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:625,1
    - Dst: BN_hex2bn
      Src: /src/freeradius-server/redhat/openssl/ectest.c:626,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:628,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:629,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:631,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:632,1
    - Dst: EC_POINT_dbl
      Src: /src/freeradius-server/redhat/openssl/ectest.c:635,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:636,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:636,1
    - Dst: BN_rshift
      Src: /src/freeradius-server/redhat/openssl/ectest.c:638,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:642,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:643,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:645,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:646,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/freeradius-server/redhat/openssl/ectest.c:649,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:652,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:653,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:655,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:656,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ectest.c:659,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/redhat/openssl/ectest.c:659,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:661,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:662,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/redhat/openssl/ectest.c:664,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:665,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/ectest.c:667,1
    - Dst: group_order_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:668,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:670,1
    - Dst: timings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:671,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:673,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:674,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:675,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:676,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:677,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:678,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:679,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:680,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:681,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:682,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:683,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:684,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:685,1
    - Dst: BN_CTX_free
      Src: /src/freeradius-server/redhat/openssl/ectest.c:686,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 103
    argCount: 1
    argNames:
    - test
    argTypes:
    - struct nistp_test_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 687
    functionName: nistp_single_test
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_POINT_new
    - BN_hex2bn
    - EC_GROUP_set_generator
    - BN_CTX_new
    - EC_GROUP_new
    - EC_POINT_dbl
    - BN_rshift
    - EC_POINT_free
    - EC_GROUP_set_curve_GFp
    - BN_new
    - BN_free
    - BN_value_one
    - EC_GROUP_precompute_mult
    - EC_POINT_mul
    - BN_is_prime_ex
    - group_order_tests
    - struct nistp_test_params*::meth
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_get_degree
    - fprintf
    - EC_POINT_cmp
    - BN_CTX_free
    - timings
    linkageType: ''
    returnType: void
    signature: void nistp_single_test(const struct nistp_test_params *test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nistp_single_test
      Src: /src/freeradius-server/redhat/openssl/ectest.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 697
    functionName: nistp_tests
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - nistp_single_test
    linkageType: ''
    returnType: void
    signature: void nistp_tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/freeradius-server/redhat/openssl/ectest.c:706,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:706,1
    - Dst: getenv
      Src: /src/freeradius-server/redhat/openssl/ectest.c:706,1
    - Dst: CRYPTO_malloc_debug_init
      Src: /src/freeradius-server/redhat/openssl/ectest.c:708,1
    - Dst: CRYPTO_set_mem_debug_options
      Src: /src/freeradius-server/redhat/openssl/ectest.c:709,1
    - Dst: CRYPTO_set_mem_debug_functions
      Src: /src/freeradius-server/redhat/openssl/ectest.c:714,1
    - Dst: CRYPTO_mem_ctrl
      Src: /src/freeradius-server/redhat/openssl/ectest.c:716,1
    - Dst: ERR_load_crypto_strings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:717,1
    - Dst: RAND_seed
      Src: /src/freeradius-server/redhat/openssl/ectest.c:719,1
    - Dst: prime_field_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:721,1
    - Dst: puts
      Src: /src/freeradius-server/redhat/openssl/ectest.c:722,1
    - Dst: char2_field_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:724,1
    - Dst: nistp_tests
      Src: /src/freeradius-server/redhat/openssl/ectest.c:727,1
    - Dst: internal_curve_test
      Src: /src/freeradius-server/redhat/openssl/ectest.c:730,1
    - Dst: ENGINE_cleanup
      Src: /src/freeradius-server/redhat/openssl/ectest.c:733,1
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/freeradius-server/redhat/openssl/ectest.c:735,1
    - Dst: ERR_free_strings
      Src: /src/freeradius-server/redhat/openssl/ectest.c:736,1
    - Dst: ERR_remove_thread_state
      Src: /src/freeradius-server/redhat/openssl/ectest.c:737,1
    - Dst: CRYPTO_mem_leaks_fp
      Src: /src/freeradius-server/redhat/openssl/ectest.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 741
    functionName: main
    functionSourceFile: /src/freeradius-server/redhat/openssl/ectest.c
    functionUses: 0
    functionsReached:
    - puts
    - ENGINE_cleanup
    - CRYPTO_cleanup_all_ex_data
    - ERR_load_crypto_strings
    - RAND_seed
    - char2_field_tests
    - prime_field_tests
    - CRYPTO_set_mem_debug_functions
    - ERR_remove_thread_state
    - CRYPTO_mem_leaks_fp
    - CRYPTO_mem_ctrl
    - strcmp
    - getenv
    - nistp_tests
    - internal_curve_test
    - CRYPTO_malloc_debug_init
    - CRYPTO_set_mem_debug_options
    - ERR_free_strings
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: thread_id_cb
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long thread_id_cb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:42,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - mode
    - n
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: lock_cb
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void lock_cb(int mode, int n, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: SIGN_LOCK
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void SIGN_LOCK()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: SIGN_UNLOCK
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void SIGN_UNLOCK()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: VERIFY_LOCK
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void VERIFY_LOCK()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: VERIFY_UNLOCK
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void VERIFY_UNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:75,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: failure
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void failure()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:89,1
    - Dst: RSA_size
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:90,1
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:92,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:94,1
    - Dst: pthread_self
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:95,1
    - Dst: strerror
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:95,1
    - Dst: pthread_exit
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:96,1
    - Dst: SIGN_LOCK
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:101,1
    - Dst: RSA_check_key
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:102,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:103,1
    - Dst: failure
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:105,1
    - Dst: RSA_sign
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:108,1
    - Dst: SIGN_UNLOCK
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:113,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:114,1
    - Dst: failure
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:116,1
    - Dst: VERIFY_LOCK
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:120,1
    - Dst: RSA_verify
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:121,1
    - Dst: VERIFY_UNLOCK
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:126,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:128,1
    - Dst: pthread_self
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:131,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:133,1
    - Dst: failure
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:134,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:138,1
    - Dst: free
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:141,1
    - Dst: pthread_exit
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - argp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 146
    functionName: thread_main
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - RSA_sign
    - pthread_self
    - RSA_check_key
    - RSA_verify
    - pthread_exit
    - SIGN_LOCK
    - free
    - VERIFY_UNLOCK
    - strerror
    - fprintf
    - failure
    - VERIFY_LOCK
    - SIGN_UNLOCK
    - ERR_print_errors_fp
    - RSA_size
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      thread_main(void *argp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:152,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:154,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:155,1
    - Dst: assert
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:156,1
    - Dst: memcpy
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (r != NULL)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: xmemdup
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - fprintf
    - ERR_print_errors_fp
    - malloc
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      xmemdup(unsigned char *s, size_t len)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:182,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:185,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:186,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:189,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:190,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:193,1
    - Dst: atol
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:195,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:199,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:202,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:203,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:206,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:207,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:210,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:211,1
    - Dst: strcmp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:215,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:216,1
    - Dst: printf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:221,1
    - Dst: open
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:227,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:229,1
    - Dst: strerror
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:230,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:234,1
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:236,1
    - Dst: read
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:237,1
    - Dst: close
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:238,1
    - Dst: ERR_load_crypto_strings
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:241,1
    - Dst: SSL_library_init
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:242,1
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:243,1
    - Dst: CRYPTO_num_locks
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:243,1
    - Dst: CRYPTO_num_locks
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:244,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:245,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:247,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:248,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:249,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:254,1
    - Dst: RAND_add
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:256,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:257,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:264,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:267,1
    - Dst: ENGINE_by_id
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:270,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:271,1
    - Dst: ENGINE_init
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:273,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:274,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:275,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:276,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:283,1
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:285,1
    - Dst: MD5_Init
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:286,1
    - Dst: MD5_Update
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:287,1
    - Dst: MD5_Final
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:288,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:292,1
    - Dst: RSA_generate_key
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:294,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:295,1
    - Dst: _exit
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:297,1
    - Dst: RSA_size
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:301,1
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:302,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:305,1
    - Dst: RSA_check_key
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:307,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:308,1
    - Dst: failure
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:310,1
    - Dst: RSA_size
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:312,1
    - Dst: RSA_sign
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:313,1
    - Dst: ERR_print_errors_fp
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:316,1
    - Dst: _exit
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:318,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:321,1
    - Dst: RSA_verify
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:323,1
    - Dst: _exit
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:327,1
    - Dst: pthread_self
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:339,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:341,1
    - Dst: fflush
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:344,1
    - Dst: malloc
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:348,1
    - Dst: RSAPrivateKey_dup
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:349,1
    - Dst: xmemdup
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:352,1
    - Dst: xmemdup
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:354,1
    - Dst: pthread_self
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:356,1
    - Dst: pthread_create
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:357,1
    - Dst: pthread_create
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:359,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:361,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:364,1
    - Dst: strerror
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:365,1
    - Dst: pthread_join
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:369,1
    - Dst: assert
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:370,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:373,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:387,1
    - Dst: pthread_join
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:390,1
    - Dst: fprintf
      Src: /src/freeradius-server/redhat/openssl/openssl-thread-test.c:397,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 173
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (ret == 0)
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    constantsTouched: []
    func_position:
      end: 400
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 400
    functionName: main
    functionSourceFile: /src/freeradius-server/redhat/openssl/openssl-thread-test.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_locking_callback
    - RSAPrivateKey_dup
    - fflush
    - MD5_Update
    - close
    - MD5_Final
    - RSA_generate_key
    - pthread_mutex_init
    - ENGINE_init
    - RSA_verify
    - open
    - read
    - ENGINE_set_default_RSA
    - SSL_library_init
    - _exit
    - printf
    - ERR_print_errors_fp
    - CRYPTO_num_locks
    - RSA_size
    - ENGINE_load_builtin_engines
    - RSA_check_key
    - ERR_load_crypto_strings
    - assert
    - pthread_join
    - strcmp
    - failure
    - pthread_create
    - malloc
    - atol
    - RSA_sign
    - pthread_self
    - ENGINE_by_id
    - MD5_Init
    - fprintf
    - strerror
    - xmemdup
    - RAND_add
    - CRYPTO_set_id_callback
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:243,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:245,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:255,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:256,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:257,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:259,1
    - Dst: ec_list_element::meth
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:265,1
    - Dst: EC_GROUP_new
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:266,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:267,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:269,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:275,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:277,1
    - Dst: if
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:284,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:284,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:286,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:292,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:294,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:298,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:299,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:301,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:304,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:306,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:309,1
    - Dst: BN_set_word
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:310,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:312,1
    - Dst: EC_GROUP_set_generator
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:315,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:317,1
    - Dst: EC_GROUP_set_seed
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:322,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:324,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:332,1
    - Dst: EC_POINT_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:336,1
    - Dst: BN_CTX_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:338,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:340,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:342,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:344,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:346,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:348,1
    - Dst: BN_free
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:350,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 88
    argCount: 1
    argNames:
    - curve
    argTypes:
    - ec_list_element
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 352
    functionName: ec_group_new_from_data
    functionSourceFile: /src/freeradius-server/redhat/openssl/ec_curve.c
    functionUses: 0
    functionsReached:
    - if
    - EC_GROUP_free
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates_GFp
    - EC_GROUP_set_generator
    - ec_list_element::meth
    - EC_POINT_new
    - BN_CTX_new
    - EC_GROUP_new_curve_GF2m
    - EC_GROUP_new_curve_GFp
    - ECerr
    - EC_GROUP_set_seed
    - BN_free
    - BN_set_word
    - EC_GROUP_new
    - EC_GROUP*::meth::group_set_curve
    - EC_POINT_free
    - BN_CTX_free
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *ec_group_new_from_data(const ec_list_element curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec_group_new_from_data
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:365,1
    - Dst: ECerr
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:371,1
    - Dst: EC_GROUP_set_curve_name
      Src: /src/freeradius-server/redhat/openssl/ec_curve.c:375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 378
    functionName: EC_GROUP_new_by_curve_name
    functionSourceFile: /src/freeradius-server/redhat/openssl/ec_curve.c
    functionUses: 1
    functionsReached:
    - ec_group_new_from_data
    - ECerr
    - EC_GROUP_set_curve_name
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_by_curve_name(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - nitems
    argTypes:
    - EC_builtin_curve*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 396
    functionName: EC_get_builtin_curves
    functionSourceFile: /src/freeradius-server/redhat/openssl/ec_curve.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: quote_name
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: quote_name(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: op_name
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: op_name(_op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radconf2json.c:70,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:71,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:71,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:72,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/bin/radconf2json.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: build_location
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - json_object_object_add
    - json_object_new_object
    - json_object_new_int
    - json_object_new_string
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_location(char const *filename, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radconf2json.c:78,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/bin/radconf2json.c:79,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/bin/radconf2json.c:80,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:82,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:82,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:83,1
    - Dst: cf_comment_text
      Src: /src/freeradius-server/src/bin/radconf2json.c:83,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:83,1
    - Dst: cf_comment_text
      Src: /src/freeradius-server/src/bin/radconf2json.c:83,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:84,1
    - Dst: build_location
      Src: /src/freeradius-server/src/bin/radconf2json.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - CONF_COMMENT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: build_comment
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - build_location
    - json_object_new_string
    - cf_lineno
    - cf_filename
    - cf_comment_text
    - json_object_object_add
    - json_object_new_object
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_comment(CONF_COMMENT const *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radconf2json.c:90,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/bin/radconf2json.c:91,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:93,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:93,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:94,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/bin/radconf2json.c:94,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:94,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/bin/radconf2json.c:94,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:95,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:95,1
    - Dst: quote_name
      Src: /src/freeradius-server/src/bin/radconf2json.c:95,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/bin/radconf2json.c:95,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:96,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:96,1
    - Dst: op_name
      Src: /src/freeradius-server/src/bin/radconf2json.c:96,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/bin/radconf2json.c:96,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:97,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:97,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:98,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:98,1
    - Dst: quote_name
      Src: /src/freeradius-server/src/bin/radconf2json.c:98,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/bin/radconf2json.c:98,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:99,1
    - Dst: build_location
      Src: /src/freeradius-server/src/bin/radconf2json.c:99,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/bin/radconf2json.c:99,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/bin/radconf2json.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cp
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: build_pair
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - build_location
    - cf_pair_value_quote
    - json_object_new_string
    - cf_lineno
    - cf_pair_attr_quote
    - cf_pair_value
    - cf_filename
    - op_name
    - json_object_object_add
    - cf_pair_operator
    - json_object_new_object
    - quote_name
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_pair(CONF_PAIR const *cp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radconf2json.c:106,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radconf2json.c:107,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/bin/radconf2json.c:108,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:110,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:110,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:111,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/bin/radconf2json.c:111,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:111,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/bin/radconf2json.c:111,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:112,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:112,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:113,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radconf2json.c:113,1
    - Dst: quote_name
      Src: /src/freeradius-server/src/bin/radconf2json.c:113,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/bin/radconf2json.c:113,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:114,1
    - Dst: build_location
      Src: /src/freeradius-server/src/bin/radconf2json.c:114,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/bin/radconf2json.c:114,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/bin/radconf2json.c:114,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/bin/radconf2json.c:118,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/bin/radconf2json.c:120,1
    - Dst: cf_item_is_comment
      Src: /src/freeradius-server/src/bin/radconf2json.c:122,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radconf2json.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 129
    functionName: build_section
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - build_location
    - json_object_new_string
    - cf_lineno
    - cf_item_is_section
    - cf_filename
    - json_object_new_array
    - cf_section_name2
    - cf_item_is_pair
    - json_object_object_add
    - cf_item_is_comment
    - cf_section_name2_quote
    - json_object_new_object
    - cf_section_name1
    - quote_name
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_section(CONF_SECTION const *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/bin/radconf2json.c:118,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/bin/radconf2json.c:120,1
    - Dst: cf_item_is_comment
      Src: /src/freeradius-server/src/bin/radconf2json.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: cf_item_foreach
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - cf_item_is_comment
    - cf_item_is_section
    - cf_item_is_pair
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach(cs, ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radconf2json.c:135,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radconf2json.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int rcode)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radconf2json.c:156,1
    - Dst: main_config_alloc
      Src: /src/freeradius-server/src/bin/radconf2json.c:158,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:160,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radconf2json.c:161,1
    - Dst: main_config_name_set_default
      Src: /src/freeradius-server/src/bin/radconf2json.c:164,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/bin/radconf2json.c:166,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/radconf2json.c:168,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radconf2json.c:174,1
    - Dst: main_config_confdir_set
      Src: /src/freeradius-server/src/bin/radconf2json.c:177,1
    - Dst: main_config_dict_dir_set
      Src: /src/freeradius-server/src/bin/radconf2json.c:181,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radconf2json.c:185,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radconf2json.c:204,1
    - Dst: fr_openssl_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:209,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:210,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radconf2json.c:215,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:216,1
    - Dst: cf_preserve_comments_set
      Src: /src/freeradius-server/src/bin/radconf2json.c:224,1
    - Dst: modules_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:226,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:228,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:229,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/radconf2json.c:233,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:234,1
    - Dst: fr_tls_dict_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:239,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/radconf2json.c:242,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radconf2json.c:243,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:247,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:248,1
    - Dst: unlang_global_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:252,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:253,1
    - Dst: modules_rlm_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:257,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:258,1
    - Dst: virtual_servers_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:262,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radconf2json.c:263,1
    - Dst: main_config_init
      Src: /src/freeradius-server/src/bin/radconf2json.c:267,1
    - Dst: build_section
      Src: /src/freeradius-server/src/bin/radconf2json.c:271,1
    - Dst: json_object_to_json_string_ext
      Src: /src/freeradius-server/src/bin/radconf2json.c:275,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radconf2json.c:278,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radconf2json.c:280,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radconf2json.c:280,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/radconf2json.c:283,1
    - Dst: fputc
      Src: /src/freeradius-server/src/bin/radconf2json.c:284,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radconf2json.c:285,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/radconf2json.c:287,1
    - Dst: fputc
      Src: /src/freeradius-server/src/bin/radconf2json.c:288,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/bin/radconf2json.c:293,1
    - Dst: main_config_free
      Src: /src/freeradius-server/src/bin/radconf2json.c:294,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 103
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 296
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radconf2json.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - main_config_dict_dir_set
    - request_global_init
    - fr_dict_internal_afrom_file
    - main_config_free
    - fr_dict_read
    - unlang_global_init
    - fopen
    - main_config_confdir_set
    - talloc_autofree_context
    - build_section
    - fr_openssl_init
    - fr_dict_global_ctx_init
    - fr_syserror
    - fputc
    - usage
    - getopt
    - fr_perror
    - virtual_servers_init
    - main_config_init
    - PERROR
    - fclose
    - main_config_name_set_default
    - fr_exit_now
    - json_object_put
    - cf_preserve_comments_set
    - fr_tls_dict_init
    - json_object_to_json_string_ext
    - modules_init
    - fr_talloc_fault_setup
    - modules_rlm_init
    - fprintf
    - fputs
    - fr_time_start
    - main_config_alloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: quote_token
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: quote_token(_s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: op_token
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - fr_table_value_by_str
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t op_token(char const *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/bin/radjson2conf.c:58,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/bin/radjson2conf.c:59,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/bin/radjson2conf.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - struct json_object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: json_get_str
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_object_get_string
    - json_object_is_type
    - json_object_object_get_ex
    linkageType: ''
    returnType: char
    signature: char *json_get_str(struct json_object *o, char const *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/bin/radjson2conf.c:66,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/bin/radjson2conf.c:67,1
    - Dst: json_object_get_int
      Src: /src/freeradius-server/src/bin/radjson2conf.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - o
    - key
    - dflt
    argTypes:
    - struct json_object*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: json_get_int
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_object_is_type
    - json_object_object_get_ex
    - json_object_get_int
    linkageType: ''
    returnType: int
    signature: int json_get_int(struct json_object *o, char const *key, int dflt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/bin/radjson2conf.c:79,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/bin/radjson2conf.c:85,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:87,1
    - Dst: json_get_int
      Src: /src/freeradius-server/src/bin/radjson2conf.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - item
    - filename
    - lineno
    argTypes:
    - struct json_object*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: json_get_location
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_get_str
    - json_object_is_type
    - json_get_int
    - json_object_object_get_ex
    linkageType: ''
    returnType: void
    signature: void json_get_location(struct json_object *item, char const **filename,
      int *lineno)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:96,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:97,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:98,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:99,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:100,1
    - Dst: json_get_location
      Src: /src/freeradius-server/src/bin/radjson2conf.c:104,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:107,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/radjson2conf.c:111,1
    - Dst: op_token
      Src: /src/freeradius-server/src/bin/radjson2conf.c:111,1
    - Dst: quote_token
      Src: /src/freeradius-server/src/bin/radjson2conf.c:111,1
    - Dst: quote_token
      Src: /src/freeradius-server/src/bin/radjson2conf.c:111,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:120,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - parent
    - item
    argTypes:
    - CONF_SECTION*
    - struct json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 124
    functionName: build_pair
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_get_str
    - cf_filename_set
    - quote_token
    - json_get_location
    - cf_pair_alloc
    - fprintf
    - cf_lineno_set
    - op_token
    linkageType: ''
    returnType: int
    signature: int build_pair(CONF_SECTION *parent, struct json_object *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:130,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:131,1
    - Dst: json_get_location
      Src: /src/freeradius-server/src/bin/radjson2conf.c:135,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:138,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/radjson2conf.c:142,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:145,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:146,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/bin/radjson2conf.c:148,1
    - Dst: json_object_array_length
      Src: /src/freeradius-server/src/bin/radjson2conf.c:149,1
    - Dst: json_object_array_get_idx
      Src: /src/freeradius-server/src/bin/radjson2conf.c:151,1
    - Dst: build_item
      Src: /src/freeradius-server/src/bin/radjson2conf.c:152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - parent
    - item
    argTypes:
    - CONF_SECTION*
    - struct json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 157
    functionName: build_section_into
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_get_str
    - cf_filename_set
    - cf_section_alloc
    - json_get_location
    - json_object_object_get_ex
    - build_item
    - json_object_array_length
    - fprintf
    - cf_lineno_set
    - json_object_array_get_idx
    linkageType: ''
    returnType: int
    signature: int build_section_into(CONF_SECTION *parent, struct json_object *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:162,1
    - Dst: json_get_location
      Src: /src/freeradius-server/src/bin/radjson2conf.c:166,1
    - Dst: cf_comment_alloc
      Src: /src/freeradius-server/src/bin/radjson2conf.c:168,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:171,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - item
    argTypes:
    - CONF_SECTION*
    - struct json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: build_comment
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_get_str
    - cf_filename_set
    - cf_comment_alloc
    - json_get_location
    - cf_lineno_set
    linkageType: ''
    returnType: int
    signature: int build_comment(CONF_SECTION *parent, struct json_object *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/bin/radjson2conf.c:185,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/radjson2conf.c:186,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/radjson2conf.c:187,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radjson2conf.c:189,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:191,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:195,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:199,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:201,1
    - Dst: build
      Src: /src/freeradius-server/src/bin/radjson2conf.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - parent
    - item
    argTypes:
    - CONF_SECTION*
    - struct json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 205
    functionName: build_item
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 1
    functionsReached:
    - json_get_str
    - L
    - fprintf
    - fr_table_value_by_str
    - build
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int build_item(CONF_SECTION *parent, struct json_object *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:216,1
    - Dst: json_get_str
      Src: /src/freeradius-server/src/bin/radjson2conf.c:217,1
    - Dst: json_get_location
      Src: /src/freeradius-server/src/bin/radjson2conf.c:221,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/radjson2conf.c:225,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:228,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:229,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/bin/radjson2conf.c:231,1
    - Dst: json_object_array_length
      Src: /src/freeradius-server/src/bin/radjson2conf.c:232,1
    - Dst: json_object_array_get_idx
      Src: /src/freeradius-server/src/bin/radjson2conf.c:234,1
    - Dst: build_item
      Src: /src/freeradius-server/src/bin/radjson2conf.c:235,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radjson2conf.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - root
    argTypes:
    - TALLOC_CTX*
    - struct json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 243
    functionName: build_root_section
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - json_get_str
    - cf_filename_set
    - cf_section_alloc
    - json_get_location
    - json_object_object_get_ex
    - build_item
    - talloc_free
    - json_object_array_length
    - cf_lineno_set
    - json_object_array_get_idx
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *build_root_section(TALLOC_CTX *ctx, struct json_object
      *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:249,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radjson2conf.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int rcode)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radjson2conf.c:270,1
    - Dst: cf_expand_variables_set
      Src: /src/freeradius-server/src/bin/radjson2conf.c:279,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radjson2conf.c:281,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radjson2conf.c:284,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radjson2conf.c:299,1
    - Dst: json_object_from_file
      Src: /src/freeradius-server/src/bin/radjson2conf.c:304,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:306,1
    - Dst: json_util_get_last_err
      Src: /src/freeradius-server/src/bin/radjson2conf.c:306,1
    - Dst: json_tokener_new
      Src: /src/freeradius-server/src/bin/radjson2conf.c:313,1
    - Dst: read
      Src: /src/freeradius-server/src/bin/radjson2conf.c:315,1
    - Dst: json_tokener_parse_ex
      Src: /src/freeradius-server/src/bin/radjson2conf.c:316,1
    - Dst: json_tokener_get_error
      Src: /src/freeradius-server/src/bin/radjson2conf.c:317,1
    - Dst: json_tokener_get_error
      Src: /src/freeradius-server/src/bin/radjson2conf.c:318,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:319,1
    - Dst: json_tokener_error_desc
      Src: /src/freeradius-server/src/bin/radjson2conf.c:320,1
    - Dst: json_tokener_get_error
      Src: /src/freeradius-server/src/bin/radjson2conf.c:320,1
    - Dst: json_tokener_free
      Src: /src/freeradius-server/src/bin/radjson2conf.c:321,1
    - Dst: json_tokener_free
      Src: /src/freeradius-server/src/bin/radjson2conf.c:326,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:329,1
    - Dst: build_root_section
      Src: /src/freeradius-server/src/bin/radjson2conf.c:334,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:336,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/bin/radjson2conf.c:337,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radjson2conf.c:342,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:344,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radjson2conf.c:344,1
    - Dst: cf_section_write_children
      Src: /src/freeradius-server/src/bin/radjson2conf.c:360,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:361,1
    - Dst: cf_section_write
      Src: /src/freeradius-server/src/bin/radjson2conf.c:365,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radjson2conf.c:366,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radjson2conf.c:370,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radjson2conf.c:373,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/bin/radjson2conf.c:374,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 258
    functionDepth: 4
    functionLinenumber: 258
    functionLinenumberEnd: 376
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radjson2conf.c
    functionUses: 0
    functionsReached:
    - cf_section_write_children
    - fopen
    - json_tokener_free
    - read
    - json_object_from_file
    - talloc_autofree_context
    - json_util_get_last_err
    - json_tokener_get_error
    - fr_syserror
    - usage
    - getopt
    - json_tokener_new
    - cf_expand_variables_set
    - json_tokener_parse_ex
    - build_root_section
    - fclose
    - json_object_put
    - talloc_free
    - fprintf
    - cf_section_write
    - json_tokener_error_desc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: INFO
    functionSourceFile: /src/freeradius-server/src/bin/radlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:67,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:68,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:69,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:70,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:71,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:72,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radlock.c:73,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radlock.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radlock.c
    functionUses: 2
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int ret)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/freeradius-server/src/bin/radlock.c:90,1
    - Dst: getegid
      Src: /src/freeradius-server/src/bin/radlock.c:92,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radlock.c:100,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radlock.c:103,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radlock.c:103,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:104,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/radlock.c:105,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/bin/radlock.c:109,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radlock.c:111,1
    - Dst: fr_perm_uid_from_str
      Src: /src/freeradius-server/src/bin/radlock.c:113,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:114,1
    - Dst: fr_perm_gid_from_str
      Src: /src/freeradius-server/src/bin/radlock.c:121,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:122,1
    - Dst: strtol
      Src: /src/freeradius-server/src/bin/radlock.c:129,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:131,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radlock.c:139,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:145,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radlock.c:146,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:150,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radlock.c:151,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radlock.c:155,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:157,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radlock.c:158,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:162,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radlock.c:163,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radlock.c:169,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:170,1
    - Dst: fr_sem_get
      Src: /src/freeradius-server/src/bin/radlock.c:177,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:179,1
    - Dst: fr_sem_wait
      Src: /src/freeradius-server/src/bin/radlock.c:182,1
    - Dst: fr_sem_pid
      Src: /src/freeradius-server/src/bin/radlock.c:187,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:188,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:198,1
    - Dst: fr_sem_get
      Src: /src/freeradius-server/src/bin/radlock.c:202,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:205,1
    - Dst: fr_sem_post
      Src: /src/freeradius-server/src/bin/radlock.c:210,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:220,1
    - Dst: fr_sem_get
      Src: /src/freeradius-server/src/bin/radlock.c:224,1
    - Dst: fr_sem_close
      Src: /src/freeradius-server/src/bin/radlock.c:227,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:228,1
    - Dst: fr_sem_get
      Src: /src/freeradius-server/src/bin/radlock.c:244,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:247,1
    - Dst: semctl
      Src: /src/freeradius-server/src/bin/radlock.c:251,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:252,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radlock.c:252,1
    - Dst: fr_sem_pid
      Src: /src/freeradius-server/src/bin/radlock.c:256,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:257,1
    - Dst: kill
      Src: /src/freeradius-server/src/bin/radlock.c:261,1
    - Dst: fr_perm_uid_to_str
      Src: /src/freeradius-server/src/bin/radlock.c:264,1
    - Dst: fr_perm_gid_to_str
      Src: /src/freeradius-server/src/bin/radlock.c:267,1
    - Dst: fr_perm_uid_to_str
      Src: /src/freeradius-server/src/bin/radlock.c:270,1
    - Dst: fr_perm_gid_to_str
      Src: /src/freeradius-server/src/bin/radlock.c:273,1
    - Dst: semctl
      Src: /src/freeradius-server/src/bin/radlock.c:276,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:278,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:279,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:280,1
    - Dst: fr_perm_mode_to_str
      Src: /src/freeradius-server/src/bin/radlock.c:280,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:281,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:282,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:283,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:284,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:285,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:286,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/bin/radlock.c:287,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/bin/radlock.c:287,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/bin/radlock.c:287,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:288,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:289,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:290,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radlock.c:291,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/bin/radlock.c:292,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/bin/radlock.c:292,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/bin/radlock.c:292,1
    - Dst: fr_sem_get
      Src: /src/freeradius-server/src/bin/radlock.c:300,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:302,1
    - Dst: semctl
      Src: /src/freeradius-server/src/bin/radlock.c:306,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:307,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radlock.c:308,1
    - Dst: semctl
      Src: /src/freeradius-server/src/bin/radlock.c:316,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radlock.c:317,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radlock.c:318,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radlock.c:325,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 183
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 329
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radlock.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - fr_perm_uid_from_str
    - fr_asprintf
    - semctl
    - fr_perm_uid_to_str
    - fr_perm_gid_to_str
    - talloc_autofree_context
    - fr_perm_gid_from_str
    - fr_sem_pid
    - fr_table_value_by_str
    - fr_sem_get
    - fr_exit
    - fr_time_from_sec
    - INFO
    - fr_box_time
    - geteuid
    - getegid
    - fr_sem_close
    - fr_fault_setup
    - usage
    - getopt
    - strtol
    - fr_syserror
    - fr_perror
    - getenv
    - fr_sem_wait
    - talloc_set_log_stderr
    - fr_perm_mode_to_str
    - fr_sem_post
    - kill
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: DEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:130,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:132,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:133,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:134,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:135,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:136,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:137,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:138,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:139,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:140,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:141,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:142,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:144,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:145,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 3
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: RESPOND_STATIC
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESPOND_STATIC(_cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: rs_signal_stop
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_signal_stop(UNUSED int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/radsnmp.c:171,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsnmp.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - conf
    - fd
    argTypes:
    - radsnmp_conf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: radsnmp_alloc
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached:
    - fr_packet_alloc
    - memcpy
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *radsnmp_alloc(radsnmp_conf_t *conf, int fd)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/bin/radsnmp.c:225,1
    - Dst: fr_dict_attr_by_oid_legacy
      Src: /src/freeradius-server/src/bin/radsnmp.c:241,1
    - Dst: fr_dict_oid_component_legacy
      Src: /src/freeradius-server/src/bin/radsnmp.c:245,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/radsnmp.c:246,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radsnmp.c:252,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/radsnmp.c:254,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:259,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radsnmp.c:266,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/radsnmp.c:268,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:276,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radsnmp.c:284,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radsnmp.c:284,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/bin/radsnmp.c:287,1
    - Dst: fr_dcursor_free_list
      Src: /src/freeradius-server/src/bin/radsnmp.c:295,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radsnmp.c:299,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radsnmp.c:305,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:307,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/radsnmp.c:320,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radsnmp.c:324,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radsnmp.c:324,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/bin/radsnmp.c:332,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/bin/radsnmp.c:336,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/bin/radsnmp.c:346,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/bin/radsnmp.c:350,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsnmp.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radsnmp.c:356,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radsnmp.c:356,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/bin/radsnmp.c:359,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 6
    argNames:
    - ctx
    - conf
    - cursor
    - oid
    - type
    - value
    argTypes:
    - TALLOC_CTX*
    - radsnmp_conf_t*
    - fr_dcursor_t*
    - char*
    - int
    - char*
    assertStmts:
    - condition: (attr == num)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/freeradius-server/src/bin/radsnmp.c
    constantsTouched: []
    func_position:
      end: 362
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 362
    functionName: radsnmp_pair_from_oid
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_dict_oid_component_legacy
    - assert
    - fr_dcursor_append
    - fr_pair_value_bstrndup
    - fr_strerror_printf
    - fr_pair_value_memdup
    - fr_dcursor_tail
    - fr_dict_attr_by_oid_legacy
    - strlen
    - fr_dict_attr_child_by_num
    - fr_strerror_clear
    - fr_dcursor_free_list
    - fr_strerror_const
    - MEM
    - fr_pair_value_from_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t radsnmp_pair_from_oid(TALLOC_CTX *ctx, radsnmp_conf_t *conf,
      fr_dcursor_t *cursor,\n\t\t\t\t     char const *oid, int type, char const *value)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:411,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/bin/radsnmp.c:412,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/radsnmp.c:414,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/bin/radsnmp.c:426,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/bin/radsnmp.c:428,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/bin/radsnmp.c:435,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/bin/radsnmp.c:441,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:443,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/bin/radsnmp.c:456,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsnmp.c:456,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:460,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:471,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/bin/radsnmp.c:472,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radsnmp.c:480,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/bin/radsnmp.c:487,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsnmp.c:487,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/bin/radsnmp.c:493,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:495,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/bin/radsnmp.c:498,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsnmp.c:498,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsnmp.c:509,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsnmp.c:519,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsnmp.c:524,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radsnmp.c:529,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/bin/radsnmp.c:538,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/bin/radsnmp.c:541,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsnmp.c:541,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/radsnmp.c:544,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsnmp.c:554,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsnmp.c:555,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsnmp.c:556,1
    - Dst: writev
      Src: /src/freeradius-server/src/bin/radsnmp.c:558,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsnmp.c:558,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:559,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:559,1
    - Dst: write
      Src: /src/freeradius-server/src/bin/radsnmp.c:572,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:573,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:573,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 101
    argCount: 4
    argNames:
    - fd
    - root
    - type
    - head
    argTypes:
    - int
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 578
    functionName: radsnmp_get_response
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached:
    - fr_value_box_copy_shallow
    - fr_pair_dcursor_init
    - memcpy
    - fr_strerror_printf
    - fr_dict_attr_oid_print
    - FR_SBUFF_OUT
    - strlen
    - is_truncated
    - write
    - fr_dcursor_next
    - DEBUG2
    - fr_strerror_const
    - NUM_ELEMENTS
    - fr_dict_attr_common_parent
    - fr_syserror
    - writev
    - fr_assert
    - fr_pair_print_value_quoted
    - fr_value_box_print
    - snprintf
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: int
    signature: "int radsnmp_get_response(int fd,\n\t\t\t\tfr_dict_attr_t const *root,
      fr_dict_attr_t const *type,\n\t\t\t\tfr_pair_list_t *head)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radsnmp.c:600,1
    - Dst: write
      Src: /src/freeradius-server/src/bin/radsnmp.c:602,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:603,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:603,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/bin/radsnmp.c:609,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsnmp.c:609,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/radsnmp.c:611,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsnmp.c:620,1
    - Dst: writev
      Src: /src/freeradius-server/src/bin/radsnmp.c:622,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsnmp.c:622,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radsnmp.c:623,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - fd
    - error
    - head
    argTypes:
    - int
    - fr_dict_attr_t*
    - fr_pair_list_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/freeradius-server/src/bin/radsnmp.c
    constantsTouched: []
    func_position:
      end: 628
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 628
    functionName: radsnmp_set_response
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached:
    - write
    - assert
    - fr_strerror_printf
    - fr_syserror
    - FR_SBUFF_OUT
    - writev
    - DEBUG2
    - NUM_ELEMENTS
    - fr_pair_find_by_da
    - fr_pair_print_value_quoted
    linkageType: ''
    returnType: int
    signature: int radsnmp_set_response(int fd, fr_dict_attr_t const *error, fr_pair_list_t
      *head)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radsnmp.c:632,1
    - Dst: radsnmp_alloc
      Src: /src/freeradius-server/src/bin/radsnmp.c:666,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:668,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsnmp.c:671,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/bin/radsnmp.c:672,1
    - Dst: NEXT_LINE
      Src: /src/freeradius-server/src/bin/radsnmp.c:674,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radsnmp.c:679,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:682,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:686,1
    - Dst: NEXT_LINE
      Src: /src/freeradius-server/src/bin/radsnmp.c:697,1
    - Dst: NEXT_LINE
      Src: /src/freeradius-server/src/bin/radsnmp.c:698,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radsnmp.c:700,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:702,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:703,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:708,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:709,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/radsnmp.c:713,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/bin/radsnmp.c:715,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:717,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:718,1
    - Dst: radsnmp_pair_from_oid
      Src: /src/freeradius-server/src/bin/radsnmp.c:722,1
    - Dst: NEXT_LINE
      Src: /src/freeradius-server/src/bin/radsnmp.c:728,1
    - Dst: radsnmp_pair_from_oid
      Src: /src/freeradius-server/src/bin/radsnmp.c:729,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:733,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:734,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:735,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/bin/radsnmp.c:745,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:747,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:748,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:749,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:751,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:752,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:753,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:754,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radsnmp.c:762,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radsnmp.c:762,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/bin/radsnmp.c:764,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radsnmp.c:770,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radsnmp.c:770,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/bin/radsnmp.c:771,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/bin/radsnmp.c:772,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsnmp.c:787,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radsnmp.c:791,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/bin/radsnmp.c:793,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/bin/radsnmp.c:794,1
    - Dst: fr_radius_packet_send
      Src: /src/freeradius-server/src/bin/radsnmp.c:802,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:804,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:804,1
    - Dst: select
      Src: /src/freeradius-server/src/bin/radsnmp.c:808,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/radsnmp.c:808,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:811,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:811,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:815,1
    - Dst: fr_packet_recv
      Src: /src/freeradius-server/src/bin/radsnmp.c:819,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:822,1
    - Dst: RESPOND_STATIC
      Src: /src/freeradius-server/src/bin/radsnmp.c:824,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:825,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/bin/radsnmp.c:828,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:832,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:838,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:845,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radsnmp.c:852,1
    - Dst: radsnmp_get_response
      Src: /src/freeradius-server/src/bin/radsnmp.c:857,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:861,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:865,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:869,1
    - Dst: radsnmp_set_response
      Src: /src/freeradius-server/src/bin/radsnmp.c:875,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:876,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/radsnmp.c:882,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:887,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 146
    argCount: 2
    argNames:
    - conf
    - fd
    argTypes:
    - radsnmp_conf_t*
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/freeradius-server/src/bin/radsnmp.c
    constantsTouched: []
    func_position:
      end: 892
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 892
    functionName: radsnmp_send_recv
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_init
    - fr_pair_value_memdup
    - radsnmp_pair_from_oid
    - MEM
    - strlcpy
    - RESPOND_STATIC
    - fr_radius_packet_log
    - ERROR
    - fr_table_value_by_str
    - select
    - DEBUG
    - fr_pair_list_init
    - NEXT_LINE
    - fr_pair_afrom_da
    - radsnmp_get_response
    - assert
    - fr_syserror
    - fr_radius_packet_send
    - fr_packet_recv
    - fr_perror
    - radsnmp_alloc
    - fr_dict_enum_by_name
    - FD_SET
    - fr_dcursor_append
    - talloc_free
    - FD_ZERO
    - strchr
    - fr_radius_decode_simple
    - fr_strerror_clear
    - fr_time_delta_to_timeval
    - radsnmp_set_response
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: int radsnmp_send_recv(radsnmp_conf_t *conf, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _line
    - ','
    - _buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: NEXT_LINE
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_LINE(_line, _buffer)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/radsnmp.c:912,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radsnmp.c:914,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radsnmp.c:915,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radsnmp.c:919,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radsnmp.c:920,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radsnmp.c:924,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radsnmp.c:924,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:925,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:926,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/bin/radsnmp.c:934,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radsnmp.c:936,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radsnmp.c:954,1
    - Dst: open
      Src: /src/freeradius-server/src/bin/radsnmp.c:960,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsnmp.c:962,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:963,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:964,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radsnmp.c:970,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radsnmp.c:971,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsnmp.c:971,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radsnmp.c:978,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsnmp.c:978,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsnmp.c:979,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsnmp.c:980,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radsnmp.c:986,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:988,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:988,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:989,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/radsnmp.c:991,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:992,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsnmp.c:992,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:993,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radsnmp.c:995,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsnmp.c:998,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsnmp.c:1005,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:1006,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1007,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:1009,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radsnmp.c:1010,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/bin/radsnmp.c:1015,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsnmp.c:1015,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1016,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1017,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:1022,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1023,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsnmp.c:1031,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:1037,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsnmp.c:1038,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radsnmp.c:1043,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1044,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radsnmp.c:1048,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1049,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1050,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/radsnmp.c:1053,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1054,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1055,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/bin/radsnmp.c:1058,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1059,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1060,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/radsnmp.c:1063,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/bin/radsnmp.c:1063,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1064,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1065,1
    - Dst: fr_radius_global_init
      Src: /src/freeradius-server/src/bin/radsnmp.c:1068,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1069,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1070,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radsnmp.c:1073,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radsnmp.c:1078,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radsnmp.c:1081,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:1083,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsnmp.c:1084,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsnmp.c:1088,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/bin/radsnmp.c:1094,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsnmp.c:1095,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1096,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:1103,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radsnmp.c:1104,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radsnmp.c:1107,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:1109,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:1115,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsnmp.c:1116,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radsnmp.c:1119,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:1121,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/bin/radsnmp.c:1131,1
    - Dst: fr_socket_client_udp
      Src: /src/freeradius-server/src/bin/radsnmp.c:1136,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsnmp.c:1140,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsnmp.c:1145,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsnmp.c:1146,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsnmp.c:1147,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsnmp.c:1149,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:1152,1
    - Dst: radsnmp_send_recv
      Src: /src/freeradius-server/src/bin/radsnmp.c:1153,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsnmp.c:1154,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsnmp.c:1160,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/radsnmp.c:1165,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/radsnmp.c:1171,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 189
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 1174
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radsnmp.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - isdigit
    - fgets
    - talloc_strdup
    - fr_dict_read
    - strlen
    - fopen
    - fr_dict_autofree
    - fr_dict_autoload
    - ERROR
    - open
    - talloc_autofree_context
    - radsnmp_send_recv
    - fr_inet_pton_port
    - fr_table_value_by_str
    - fr_socket_client_udp
    - DEBUG
    - fr_set_signal
    - fr_dict_global_ctx_init
    - fr_atexit_global_trigger_all
    - fr_dict_attr_autoload
    - fr_syserror
    - fr_fault_setup
    - usage
    - getopt
    - fr_perror
    - strcmp
    - getenv
    - fr_time_delta_from_sec
    - fclose
    - fr_exit_now
    - fr_dict_unconst
    - talloc_free
    - talloc_set_log_stderr
    - fr_time_delta_from_str
    - fr_radius_global_init
    - fprintf
    - fr_socket_client_tcp
    - talloc_zero
    - fr_dict_attr_child_by_num
    - fr_strerror_clear
    - atoi
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: RS_ASSERT
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RS_ASSERT(_x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/freeradius-server/src/bin/radsniff.c:121,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:123,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radsniff.c:130,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radsniff.c:131,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:132,1
    - Dst: setsid
      Src: /src/freeradius-server/src/bin/radsniff.c:140,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:142,1
    - Dst: chdir
      Src: /src/freeradius-server/src/bin/radsniff.c:149,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:150,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radsniff.c:157,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:159,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radsniff.c:160,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:162,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsniff.c:162,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:163,1
    - Dst: isatty
      Src: /src/freeradius-server/src/bin/radsniff.c:169,1
    - Dst: fileno
      Src: /src/freeradius-server/src/bin/radsniff.c:169,1
    - Dst: freopen
      Src: /src/freeradius-server/src/bin/radsniff.c:170,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:171,1
    - Dst: isatty
      Src: /src/freeradius-server/src/bin/radsniff.c:175,1
    - Dst: fileno
      Src: /src/freeradius-server/src/bin/radsniff.c:175,1
    - Dst: freopen
      Src: /src/freeradius-server/src/bin/radsniff.c:176,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - pidfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 180
    functionName: rs_daemonize
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fopen
    - fr_exit_now
    - ERROR
    - freopen
    - fr_syserror
    - isatty
    - fprintf
    - chdir
    - fork
    - close
    - setsid
    - fileno
    - fclose
    linkageType: ''
    returnType: void
    signature: void rs_daemonize(char const *pidfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - start
    - interval
    - result
    argTypes:
    - struct timeval*
    - unsigned long
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: rs_tv_add_ms
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_tv_add_ms(struct timeval const *start, unsigned long interval,
      struct timeval *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:200,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radsniff.c:200,1
    - Dst: strftime
      Src: /src/freeradius-server/src/bin/radsniff.c:204,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/bin/radsniff.c:204,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:213,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - out
    - len
    - t
    argTypes:
    - char*
    - size_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 217
    functionName: rs_time_print
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_time
    - snprintf
    - strftime
    - localtime_r
    - fr_time_to_timeval
    linkageType: ''
    returnType: void
    signature: void rs_time_print(char *out, size_t len, struct timeval const *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsniff.c:233,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 265
    functionName: rs_snprint_csv
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t rs_snprint_csv(char *out, size_t outlen, char const *in, size_t
      inlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:275,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 306
    functionName: rs_packet_print_csv_header
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void rs_packet_print_csv_header(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsniff.c:315,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/radsniff.c:320,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/radsniff.c:321,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/bin/radsniff.c:323,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:324,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:326,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:329,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/bin/radsniff.c:333,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/bin/radsniff.c:337,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:338,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:342,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radsniff.c:351,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/bin/radsniff.c:356,1
    - Dst: rs_snprint_csv
      Src: /src/freeradius-server/src/bin/radsniff.c:358,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/radsniff.c:358,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/radsniff.c:358,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/bin/radsniff.c:361,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/bin/radsniff.c:363,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/bin/radsniff.c:365,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/bin/radsniff.c:369,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/radsniff.c:372,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radsniff.c:374,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/radsniff.c:374,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/bin/radsniff.c:375,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/bin/radsniff.c:376,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:379,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 9
    argNames:
    - count
    - status
    - handle
    - packet
    - list
    - elapsed
    - latency
    - response
    - body
    argTypes:
    - uint64_t
    - rs_status_t
    - fr_pcap_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - UNUSED*
    - struct timeval*
    - UNUSED
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 380
    functionName: rs_packet_print_csv
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_in_char
    - rs_snprint_csv
    - inet_ntop
    - RS_ASSERT
    - FR_SBUFF_OUT
    - fr_sbuff_terminate
    - FR_RADIUS_PACKET_CODE_VALID
    - fr_table_str_by_value
    - fr_sbuff_current
    - fprintf
    - fr_sbuff_remaining
    - fr_sbuff_advance
    - memset
    - fr_pair_find_by_da
    - fr_pair_print_value_quoted
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: void
    signature: "void rs_packet_print_csv(uint64_t count, rs_status_t status, fr_pcap_t
      *handle,\n\t\t\t\tfr_packet_t *packet, fr_pair_list_t *list,\n\t\t\t\tUNUSED
      struct timeval *elapsed, struct timeval *latency, UNUSED bool response,\n\t\t\t\tbool
      body)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/radsniff.c:394,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/radsniff.c:395,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/bin/radsniff.c:401,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:402,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:404,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/bin/radsniff.c:410,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:411,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:421,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:436,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:444,1
    - Dst: RIDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:453,1
    - Dst: fr_packet_log_hex
      Src: /src/freeradius-server/src/bin/radsniff.c:460,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsniff.c:465,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radsniff.c:467,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/bin/radsniff.c:468,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/bin/radsniff.c:470,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/bin/radsniff.c:471,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:472,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radsniff.c:472,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 9
    argNames:
    - count
    - status
    - handle
    - packet
    - list
    - elapsed
    - latency
    - response
    - body
    argTypes:
    - uint64_t
    - rs_status_t
    - fr_pcap_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - struct timeval*
    - struct timeval*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 475
    functionName: rs_packet_print_fancy
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - INFO
    - fr_sbuff_start
    - inet_ntop
    - fr_pair_list_log
    - RS_ASSERT
    - FR_SBUFF_OUT
    - fr_base16_encode
    - snprintf
    - FR_RADIUS_PACKET_CODE_VALID
    - fr_table_str_by_value
    - fr_pair_list_sort
    - FR_DBUFF_TMP
    - fr_packet_log_hex
    - RIDEBUG
    linkageType: ''
    returnType: void
    signature: "void rs_packet_print_fancy(uint64_t count, rs_status_t status, fr_pcap_t
      *handle,\n\t\t\t\t  fr_packet_t *packet, fr_pair_list_t *list,\n\t\t\t\t  struct
      timeval *elapsed, struct timeval *latency, bool response, bool body)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radsniff.c:483,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:489,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:492,1
    - Dst: fr_unlink
      Src: /src/freeradius-server/src/bin/radsniff.c:496,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:496,1
    - Dst: fr_log_init_file
      Src: /src/freeradius-server/src/bin/radsniff.c:498,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:499,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:500,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radsniff.c:507,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/bin/radsniff.c:508,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/bin/radsniff.c:511,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/bin/radsniff.c:512,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:514,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radsniff.c:514,1
    - Dst: fr_log_close
      Src: /src/freeradius-server/src/bin/radsniff.c:516,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:517,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 9
    argNames:
    - count
    - rs_status_t
    - handle
    - packet
    - list
    - elapsed
    - latency
    - response
    - body
    argTypes:
    - uint64_t
    - UNUSED
    - UNUSED*
    - fr_packet_t*
    - fr_pair_list_t*
    - UNUSED*
    - UNUSED*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 526
    functionName: rs_packet_save_in_output_dir
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - ERROR
    - fr_log_init_file
    - fr_pair_list_log
    - FR_SBUFF_OUT
    - fr_base16_encode
    - fr_unlink
    - snprintf
    - usage
    - fprintf
    - fr_pair_list_sort
    - FR_DBUFF_TMP
    - fr_log_close
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: "void rs_packet_save_in_output_dir(uint64_t count, UNUSED rs_status_t
      status, UNUSED fr_pcap_t *handle,\n\t\t\t\t  fr_packet_t *packet, fr_pair_list_t
      *list,\n\t\t\t\t  UNUSED struct timeval *elapsed, UNUSED struct timeval *latency,
      bool response, bool body)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: logger
      Src: /src/freeradius-server/src/bin/radsniff.c:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 10
    argNames:
    - request
    - count
    - status
    - handle
    - packet
    - list
    - elapsed
    - latency
    - response
    - body
    argTypes:
    - rs_request_t*
    - uint64_t
    - rs_status_t
    - fr_pcap_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - struct timeval*
    - struct timeval*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: rs_packet_print
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - logger
    linkageType: ''
    returnType: void
    signature: "void rs_packet_print(rs_request_t *request, uint64_t count, rs_status_t
      status, fr_pcap_t *handle,\n\t\t\t\t   fr_packet_t *packet, fr_pair_list_t *list,\n\t\t\t\t
      \  struct timeval *elapsed, struct timeval *latency,\n\t\t\t\t   bool response,
      bool body)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcap_stats
      Src: /src/freeradius-server/src/bin/radsniff.c:556,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:557,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/bin/radsniff.c:557,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:562,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - in
    argTypes:
    - fr_pcap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 574
    functionName: rs_check_pcap_drop
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - pcap_geterr
    - ERROR
    - pcap_stats
    linkageType: ''
    returnType: int
    signature: int rs_check_pcap_drop(fr_pcap_t *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/freeradius-server/src/bin/radsniff.c:590,1
    - Dst: isnan
      Src: /src/freeradius-server/src/bin/radsniff.c:609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - stats
    argTypes:
    - rs_latency_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 617
    functionName: rs_stats_process_latency
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - strtod
    - isnan
    linkageType: ''
    returnType: void
    signature: void rs_stats_process_latency(rs_latency_t *stats)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - stats
    argTypes:
    - rs_latency_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 632
    functionName: rs_stats_process_counters
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_stats_process_counters(rs_latency_t *stats)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:644,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:646,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:651,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:652,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:653,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:654,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:655,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:656,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:657,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:661,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:663,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:664,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:670,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:672,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 2
    argNames:
    - stats
    - code
    argTypes:
    - rs_latency_t*
    - fr_radius_packet_code_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 676
    functionName: rs_stats_print_code_fancy
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - INFO
    linkageType: ''
    returnType: void
    signature: void rs_stats_print_code_fancy(rs_latency_t *stats, fr_radius_packet_code_t
      code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:682,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:687,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:688,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:692,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:696,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:698,1
    - Dst: pcap_stats
      Src: /src/freeradius-server/src/bin/radsniff.c:704,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:705,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/bin/radsniff.c:705,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:709,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsniff.c:709,1
    - Dst: rs_stats_print_code_fancy
      Src: /src/freeradius-server/src/bin/radsniff.c:720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - this
    - stats
    - now
    argTypes:
    - rs_update_t*
    - rs_stats_t*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 723
    functionName: rs_stats_print_fancy
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - pcap_geterr
    - strlen
    - pcap_stats
    - NUM_ELEMENTS
    - rs_stats_print_code_fancy
    linkageType: ''
    returnType: void
    signature: void rs_stats_print_fancy(rs_update_t *this, rs_stats_t *stats, struct
      timeval *now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:728,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:732,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:735,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:741,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:763,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:765,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - this
    argTypes:
    - rs_update_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 771
    functionName: rs_stats_print_csv_header
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    - fprintf
    linkageType: ''
    returnType: void
    signature: void rs_stats_print_csv_header(rs_update_t *this)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:778,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - out
    - outlen
    - stats
    argTypes:
    - char*
    - size_t
    - rs_latency_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 796
    functionName: rs_stats_print_code_csv
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rs_stats_print_code_csv(char *out, size_t outlen, rs_latency_t
      *stats)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:803,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:805,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:808,1
    - Dst: pcap_stats
      Src: /src/freeradius-server/src/bin/radsniff.c:817,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:818,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/bin/radsniff.c:818,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:822,1
    - Dst: rs_stats_print_code_csv
      Src: /src/freeradius-server/src/bin/radsniff.c:830,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:837,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - this
    - stats
    - now
    argTypes:
    - rs_update_t*
    - rs_stats_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 838
    functionName: rs_stats_print_csv
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - pcap_geterr
    - ERROR
    - snprintf
    - fprintf
    - pcap_stats
    - NUM_ELEMENTS
    - rs_stats_print_code_csv
    linkageType: ''
    returnType: void
    signature: void rs_stats_print_csv(rs_update_t *this, rs_stats_t *stats, UNUSED
      struct timeval *now)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:846,1
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:852,1
    - Dst: head
      Src: /src/freeradius-server/src/bin/radsniff.c:855,1
    - Dst: rs_check_pcap_drop
      Src: /src/freeradius-server/src/bin/radsniff.c:864,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:865,1
    - Dst: rs_tv_add_ms
      Src: /src/freeradius-server/src/bin/radsniff.c:867,1
    - Dst: rs_stats_process_latency
      Src: /src/freeradius-server/src/bin/radsniff.c:879,1
    - Dst: rs_stats_process_counters
      Src: /src/freeradius-server/src/bin/radsniff.c:880,1
    - Dst: body
      Src: /src/freeradius-server/src/bin/radsniff.c:883,1
    - Dst: rs_stats_collectd_do_stats
      Src: /src/freeradius-server/src/bin/radsniff.c:891,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radsniff.c:900,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/bin/radsniff.c:910,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:911,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:913,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - tl
    - now_t
    - ctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 916
    functionName: rs_stats_process
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_time_from_timeval
    - fr_time_to_timeval
    - rs_stats_collectd_do_stats
    - rs_stats_process_latency
    - fr_timer_at
    - body
    - rs_tv_add_ms
    - rs_stats_process_counters
    - memset
    - rs_check_pcap_drop
    - head
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void rs_stats_process(fr_timer_list_t *tl, fr_time_t now_t, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - stats
    - latency
    argTypes:
    - rs_latency_t*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 937
    functionName: rs_stats_update_latency
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rs_stats_update_latency(rs_latency_t *stats, struct timeval *latency)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radsniff.c:945,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:977,1
    - Dst: rs_tv_add_ms
      Src: /src/freeradius-server/src/bin/radsniff.c:978,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/bin/radsniff.c:981,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:982,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:984,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - stats
    - el
    - in
    - now
    - live
    argTypes:
    - rs_stats_t*
    - fr_event_list_t*
    - fr_pcap_t*
    - struct timeval*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 989
    functionName: rs_install_stats_processor
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - fr_time_from_timeval
    - fr_timer_at
    - rs_tv_add_ms
    - memset
    linkageType: ''
    returnType: int
    signature: "int rs_install_stats_processor(rs_stats_t *stats, fr_event_list_t
      *el,\n\t\t\t\t      fr_pcap_t *in, struct timeval *now, bool live)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/bin/radsniff.c:1003,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1005,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/bin/radsniff.c:1007,1
    - Dst: fr_dcursor_set_current
      Src: /src/freeradius-server/src/bin/radsniff.c:1009,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/bin/radsniff.c:1014,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1016,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1019,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/bin/radsniff.c:1023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - vps
    - da
    - num
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1027
    functionName: rs_get_pairs
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_init
    - fr_dcursor_set_current
    - fr_pair_append
    - fr_pair_list_head
    - fr_pair_list_free
    - fr_pair_copy
    - fr_dcursor_filter_next
    linkageType: ''
    returnType: int
    signature: int rs_get_pairs(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_pair_list_t
      *vps, fr_dict_attr_t const *da[], int num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/bin/radsniff.c:1038,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1039,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/bin/radsniff.c:1043,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1044,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/bin/radsniff.c:1047,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/bin/radsniff.c:1048,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1051,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1052,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - request
    argTypes:
    - rs_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1056
    functionName: _request_free
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - RS_ASSERT
    - FR_TIMER_DELETE
    - fr_packet_free
    - fr_rb_delete
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: int _request_free(rs_request_t *request)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1063,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1064,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1065,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1071,1
    - Dst: RIDEBUG_ENABLED
      Src: /src/freeradius-server/src/bin/radsniff.c:1075,1
    - Dst: rs_time_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1076,1
    - Dst: rs_packet_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1094,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1097,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1103,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1126,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - request
    argTypes:
    - rs_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1127
    functionName: rs_packet_cleanup
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - rs_packet_print
    - RIDEBUG_ENABLED
    - RDEBUG
    - talloc_free
    - RS_ASSERT
    - rs_time_print
    linkageType: ''
    returnType: void
    signature: void rs_packet_cleanup(rs_request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/bin/radsniff.c:1131,1
    - Dst: rs_packet_cleanup
      Src: /src/freeradius-server/src/bin/radsniff.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1134
    functionName: _rs_event
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - rs_packet_cleanup
    linkageType: ''
    returnType: void
    signature: void _rs_event(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now, void
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_cmp
      Src: /src/freeradius-server/src/bin/radsniff.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1145
    functionName: rs_packet_cmp
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_packet_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t rs_packet_cmp(void const *one, void const *two)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pcap_dump
      Src: /src/freeradius-server/src/bin/radsniff.c:1175,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radsniff.c:1177,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radsniff.c:1178,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:1183,1
    - Dst: pcap_dump
      Src: /src/freeradius-server/src/bin/radsniff.c:1192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - event
    - request
    - header
    - data
    argTypes:
    - rs_event_t*
    - rs_request_t*
    - struct pcap_pkthdr*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1195
    functionName: rs_response_to_pcap
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - NUM_ELEMENTS
    - pcap_dump
    linkageType: ''
    returnType: int
    signature: "int rs_response_to_pcap(rs_event_t *event, rs_request_t *request,
      struct pcap_pkthdr const *header,\n\t\t\t\t      uint8_t const *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1208,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radsniff.c:1209,1
    - Dst: talloc
      Src: /src/freeradius-server/src/bin/radsniff.c:1212,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/bin/radsniff.c:1213,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radsniff.c:1214,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:1217,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:1218,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:1223,1
    - Dst: pcap_dump
      Src: /src/freeradius-server/src/bin/radsniff.c:1229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - event
    - request
    - header
    - data
    argTypes:
    - rs_event_t*
    - rs_request_t*
    - struct pcap_pkthdr*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1232
    functionName: rs_request_to_pcap
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - memcpy
    - talloc_array
    - talloc_free
    - talloc
    - pcap_dump
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: "int rs_request_to_pcap(rs_event_t *event, rs_request_t *request, struct
      pcap_pkthdr const *header,\n\t\t\t\t     uint8_t const *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1242
    functionName: RS_CLEANUP_NOW
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RS_CLEANUP_NOW(_x, _s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radsniff.c:1247,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/bin/radsniff.c:1248,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1250,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1251,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1255
    functionName: rs_request_alloc
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - fr_pair_list_init
    - talloc_set_destructor
    linkageType: ''
    returnType: rs_request_t
    signature: rs_request_t *rs_request_alloc(TALLOC_CTX *ctx)
  - BBCount: 76
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1287,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radsniff.c:1289,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1290,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1291,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:1292,1
    - Dst: RIDEBUG_ENABLED
      Src: /src/freeradius-server/src/bin/radsniff.c:1298,1
    - Dst: rs_time_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1299,1
    - Dst: fr_pcap_link_layer_offset
      Src: /src/freeradius-server/src/bin/radsniff.c:1302,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1304,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1324,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/radsniff.c:1334,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1336,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radsniff.c:1349,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/radsniff.c:1354,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1356,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1371,1
    - Dst: fr_udp_checksum
      Src: /src/freeradius-server/src/bin/radsniff.c:1379,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1382,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radsniff.c:1383,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radsniff.c:1383,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/radsniff.c:1395,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1397,1
    - Dst: rs_tv_add_ms
      Src: /src/freeradius-server/src/bin/radsniff.c:1398,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:1402,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:1404,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:1421,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:1426,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radsniff.c:1431,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radsniff.c:1432,1
    - Dst: fr_packet_ok
      Src: /src/freeradius-server/src/bin/radsniff.c:1434,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:1435,1
    - Dst: rs_packet_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1437,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1440,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/bin/radsniff.c:1457,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:1464,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1465,1
    - Dst: RS_CLEANUP_NOW
      Src: /src/freeradius-server/src/bin/radsniff.c:1469,1
    - Dst: fr_radius_packet_verify
      Src: /src/freeradius-server/src/bin/radsniff.c:1479,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:1482,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1483,1
    - Dst: fr_packet_log_hex
      Src: /src/freeradius-server/src/bin/radsniff.c:1496,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/bin/radsniff.c:1499,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1505,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1506,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1518,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radsniff.c:1519,1
    - Dst: fr_pair_validate_relaxed
      Src: /src/freeradius-server/src/bin/radsniff.c:1520,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1535,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1536,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/bin/radsniff.c:1537,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/radsniff.c:1550,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1551,1
    - Dst: rs_tv_add_ms
      Src: /src/freeradius-server/src/bin/radsniff.c:1552,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/bin/radsniff.c:1553,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:1554,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1556,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1561,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1574,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:1575,1
    - Dst: rs_response_to_pcap
      Src: /src/freeradius-server/src/bin/radsniff.c:1583,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:1600,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1601,1
    - Dst: fr_radius_packet_verify
      Src: /src/freeradius-server/src/bin/radsniff.c:1617,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:1620,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1621,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/bin/radsniff.c:1641,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1647,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1649,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radsniff.c:1653,1
    - Dst: fr_packet_alloc_reply
      Src: /src/freeradius-server/src/bin/radsniff.c:1659,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1661,1
    - Dst: rs_tv_add_ms
      Src: /src/freeradius-server/src/bin/radsniff.c:1662,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1663,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radsniff.c:1668,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/bin/radsniff.c:1671,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1674,1
    - Dst: rs_get_pairs
      Src: /src/freeradius-server/src/bin/radsniff.c:1676,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:1679,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1680,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1688,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/bin/radsniff.c:1691,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/bin/radsniff.c:1692,1
    - Dst: RS_CLEANUP_NOW
      Src: /src/freeradius-server/src/bin/radsniff.c:1700,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/bin/radsniff.c:1706,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/bin/radsniff.c:1707,1
    - Dst: RS_CLEANUP_NOW
      Src: /src/freeradius-server/src/bin/radsniff.c:1716,1
    - Dst: RS_CLEANUP_NOW
      Src: /src/freeradius-server/src/bin/radsniff.c:1721,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1730,1
    - Dst: fr_pair_validate_relaxed
      Src: /src/freeradius-server/src/bin/radsniff.c:1731,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1745,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1746,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1749,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1750,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/radsniff.c:1751,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1752,1
    - Dst: rs_packet_cmp
      Src: /src/freeradius-server/src/bin/radsniff.c:1755,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/bin/radsniff.c:1756,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1760,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1761,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/radsniff.c:1762,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1763,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/bin/radsniff.c:1766,1
    - Dst: rs_request_alloc
      Src: /src/freeradius-server/src/bin/radsniff.c:1771,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/radsniff.c:1779,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1780,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/radsniff.c:1782,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1783,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1785,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/bin/radsniff.c:1789,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/bin/radsniff.c:1791,1
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/bin/radsniff.c:1792,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radsniff.c:1794,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/bin/radsniff.c:1797,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1798,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:1808,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/bin/radsniff.c:1817,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:1818,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:1825,1
    - Dst: rs_tv_add_ms
      Src: /src/freeradius-server/src/bin/radsniff.c:1826,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/bin/radsniff.c:1827,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:1828,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1830,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1832,1
    - Dst: rs_request_to_pcap
      Src: /src/freeradius-server/src/bin/radsniff.c:1835,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1841,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1842,1
    - Dst: fr_timeval_subtract
      Src: /src/freeradius-server/src/bin/radsniff.c:1847,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:1858,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/bin/radsniff.c:1858,1
    - Dst: rs_stats_update_latency
      Src: /src/freeradius-server/src/bin/radsniff.c:1869,1
    - Dst: rs_stats_update_latency
      Src: /src/freeradius-server/src/bin/radsniff.c:1870,1
    - Dst: RIDEBUG_ENABLED
      Src: /src/freeradius-server/src/bin/radsniff.c:1875,1
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:1878,1
    - Dst: rs_time_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1880,1
    - Dst: fr_timeval_subtract
      Src: /src/freeradius-server/src/bin/radsniff.c:1881,1
    - Dst: rs_packet_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1882,1
    - Dst: fr_timeval_subtract
      Src: /src/freeradius-server/src/bin/radsniff.c:1884,1
    - Dst: rs_time_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1885,1
    - Dst: rs_packet_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1889,1
    - Dst: rs_packet_print
      Src: /src/freeradius-server/src/bin/radsniff.c:1913,1
    - Dst: fflush
      Src: /src/freeradius-server/src/bin/radsniff.c:1918,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radsniff.c:1925,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:1933,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/bin/radsniff.c:1934,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 361
    argCount: 4
    argNames:
    - count
    - event
    - header
    - data
    argTypes:
    - uint64_t
    - rs_event_t*
    - struct pcap_pkthdr*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1936
    functionName: rs_packet_process
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - rs_stats_update_latency
    - fr_time_from_timeval
    - fr_packet_alloc
    - fr_pcap_link_layer_offset
    - memcpy
    - fr_packet_alloc_reply
    - REDEBUG
    - fr_timeval_subtract
    - fr_event_loop_exit
    - fr_pair_list_sort
    - fr_packet_ok
    - FR_TIMER_DELETE
    - fr_pair_steal
    - fr_time_sub
    - fflush
    - fr_packet_log_hex
    - fr_pair_list_free
    - fr_pair_list_empty
    - ERROR
    - fr_rb_insert
    - memcmp
    - rs_request_alloc
    - memset
    - fr_time_to_timeval
    - fr_pair_validate_relaxed
    - fr_pair_list_init
    - rs_request_to_pcap
    - talloc_memdup
    - INFO
    - RIDEBUG_ENABLED
    - inet_ntop
    - talloc_steal
    - ntohs
    - fr_perror
    - fr_rb_find
    - RDEBUG2
    - rs_tv_add_ms
    - rs_get_pairs
    - fr_pair_list_append
    - fr_radius_packet_verify
    - fr_packet_free
    - RS_CLEANUP_NOW
    - rs_time_print
    - fr_rb_delete
    - rs_packet_print
    - rs_packet_cmp
    - fr_pair_list_next
    - talloc_free
    - RS_ASSERT
    - fr_timer_at
    - fr_radius_decode_simple
    - fr_pair_list_head
    - fr_udp_checksum
    - fr_time_delta_to_timeval
    - rs_response_to_pcap
    linkageType: ''
    returnType: void
    signature: void rs_packet_process(uint64_t count, rs_event_t *event, struct pcap_pkthdr
      const *header, uint8_t const *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/bin/radsniff.c:1941,1
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/bin/radsniff.c:1943,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radsniff.c:1957,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/bin/radsniff.c:1958,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/bin/radsniff.c:1958,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radsniff.c:1958,1
    - Dst: fr_time_sync
      Src: /src/freeradius-server/src/bin/radsniff.c:1959,1
    - Dst: fr_event_loop_exiting
      Src: /src/freeradius-server/src/bin/radsniff.c:1969,1
    - Dst: pcap_next_ex
      Src: /src/freeradius-server/src/bin/radsniff.c:1972,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:1978,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/bin/radsniff.c:1980,1
    - Dst: fr_event_list_num_fds
      Src: /src/freeradius-server/src/bin/radsniff.c:1983,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/bin/radsniff.c:1983,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:1988,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/bin/radsniff.c:1988,1
    - Dst: rs_install_stats_processor
      Src: /src/freeradius-server/src/bin/radsniff.c:1997,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:2002,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/bin/radsniff.c:2003,1
    - Dst: rs_packet_process
      Src: /src/freeradius-server/src/bin/radsniff.c:2006,1
    - Dst: pcap_next_ex
      Src: /src/freeradius-server/src/bin/radsniff.c:2016,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2022,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/bin/radsniff.c:2022,1
    - Dst: rs_packet_process
      Src: /src/freeradius-server/src/bin/radsniff.c:2027,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - ctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1938
    functionDepth: 3
    functionLinenumber: 1938
    functionLinenumberEnd: 2029
    functionName: rs_got_packet
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_time_from_timeval
    - fr_event_loop_exit
    - rs_install_stats_processor
    - fr_time_sub
    - pcap_geterr
    - ERROR
    - fr_time
    - fr_event_fd_delete
    - fr_event_loop_exiting
    - fr_event_list_num_fds
    - DEBUG
    - fr_timer_list_run
    - fr_time_delta_gt
    - rs_packet_process
    - fr_time_delta_from_sec
    - pcap_next_ex
    - fr_time_wrap
    - fr_time_sync
    - talloc_get_type
    linkageType: ''
    returnType: void
    signature: void rs_got_packet(fr_event_list_t *el, int fd, UNUSED int flags, void
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:2035,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2038,1
    - Dst: RIDEBUG_ENABLED
      Src: /src/freeradius-server/src/bin/radsniff.c:2040,1
    - Dst: rs_time_print
      Src: /src/freeradius-server/src/bin/radsniff.c:2041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - fr_time_t
    - wake_t
    - uctx
    argTypes:
    - UNUSED
    - fr_time_delta_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2031
    functionDepth: 2
    functionLinenumber: 2031
    functionLinenumberEnd: 2046
    functionName: _rs_event_status
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_to_timeval
    - DEBUG2
    - rs_time_print
    - RIDEBUG_ENABLED
    linkageType: ''
    returnType: int
    signature: int _rs_event_status(UNUSED fr_time_t now, fr_time_delta_t wake_t,
      UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:2057,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2057,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:2058,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2058,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/bin/radsniff.c:2060,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/bin/radsniff.c:2061,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2063,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2066,1
    - Dst: fr_pair_list_cmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2069,1
    - Dst: CMP
      Src: /src/freeradius-server/src/bin/radsniff.c:2070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2071
    functionName: rs_rtx_cmp
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - RS_ASSERT
    - fr_ipaddr_cmp
    - CMP
    - fr_pair_list_cmp
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t rs_rtx_cmp(void const *one, void const *two)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/freeradius-server/src/bin/radsniff.c:2079,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2086,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/radsniff.c:2090,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radsniff.c:2090,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/radsniff.c:2091,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radsniff.c:2091,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2093,1
    - Dst: fr_quick_sort
      Src: /src/freeradius-server/src/bin/radsniff.c:2104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - out
    - len
    - list
    argTypes:
    - fr_dict_attr_t**
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2107
    functionName: rs_build_dict_list
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_dict_attr_by_name
    - fr_quick_sort
    - strsep
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int rs_build_dict_list(fr_dict_attr_t const **out, size_t len, char
      *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radsniff.c:2115,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/radsniff.c:2118,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/bin/radsniff.c:2124,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/bin/radsniff.c:2124,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2125,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2129,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2130,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radsniff.c:2137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - out
    - filter
    argTypes:
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2140
    functionName: rs_build_filter
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - ERROR
    - FR_SBUFF_IN_STR
    - fr_pair_list_afrom_substr
    - fr_perror
    - fr_dict_internal
    - fr_pair_list_sort
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int rs_build_filter(fr_pair_list_t *out, char const *filter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/freeradius-server/src/bin/radsniff.c:2148,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radsniff.c:2155,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - flags
    - map
    - map_len
    - list
    argTypes:
    - int*
    - fr_table_num_sorted_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2165
    functionName: rs_build_event_flags
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strsep
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int rs_build_event_flags(int *flags, fr_table_num_sorted_t const *map,
      size_t map_len, char *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2171
    functionDepth: 0
    functionLinenumber: 2171
    functionLinenumberEnd: 2175
    functionName: _unmark_request
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _unmark_request(void *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2181
    functionDepth: 0
    functionLinenumber: 2181
    functionLinenumberEnd: 2185
    functionName: _unmark_link
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _unmark_link(void *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/bin/radsniff.c:2192,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/bin/radsniff.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2193
    functionName: timeout_event
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_event_loop_exit
    linkageType: ''
    returnType: void
    signature: void timeout_event(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now_t,
      void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rs_stats_collectd_open
      Src: /src/freeradius-server/src/bin/radsniff.c:2204,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2205,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2209,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/bin/radsniff.c:2211,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/bin/radsniff.c:2212,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/bin/radsniff.c:2212,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2214,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:2215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tl
    - now
    - ctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2217
    functionName: rs_collectd_reopen
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - ERROR
    - rs_stats_collectd_open
    - RS_ASSERT
    - fr_timer_at
    - fr_time_add
    - fr_time_delta_from_msec
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: void rs_collectd_reopen(fr_timer_list_t *tl, fr_time_t now, UNUSED
      void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/bin/radsniff.c:2226,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2227,1
    - Dst: strsignal
      Src: /src/freeradius-server/src/bin/radsniff.c:2227,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsniff.c:2227,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2230
    functionName: rs_signal_self
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - write
    - ERROR
    - fr_exit_now
    - fr_syserror
    - strsignal
    linkageType: ''
    returnType: void
    signature: void rs_signal_self(int sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/freeradius-server/src/bin/radsniff.c:2244,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2246,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsniff.c:2246,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2247,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2251,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2253,1
    - Dst: rs_collectd_reopen
      Src: /src/freeradius-server/src/bin/radsniff.c:2259,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radsniff.c:2259,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2268,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/bin/radsniff.c:2269,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2273,1
    - Dst: strsignal
      Src: /src/freeradius-server/src/bin/radsniff.c:2273,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - list
    - fd
    - UNUSED
    - ctx
    argTypes:
    - HAVE_COLLECTDC_H*
    - int
    - int
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2276
    functionName: rs_signal_action
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - ERROR
    - fr_time
    - read
    - fr_event_loop_exit
    - fr_syserror
    - strsignal
    - rs_collectd_reopen
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: 'void rs_signal_action(

      #ifndef HAVE_COLLECTDC_H

      UNUSED

      #endif

      fr_event_list_t *list, int fd, int UNUSED flags, UNUSED void *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2281,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2282,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2283,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2284,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2285,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2286,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2287,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2288,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2289,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2290,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2291,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2292,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2293,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2294,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2295,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2296,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2298,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2299,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2300,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2301,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2302,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2303,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2304,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2305,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2306,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2307,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2308,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2309,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2310,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2311,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2312,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2313,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2314,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2315,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2316,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2317,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2318,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2319,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2322,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2323,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2325,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2278
    functionDepth: 1
    functionLinenumber: 2278
    functionLinenumberEnd: 2327
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 5
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int status)
  - BBCount: 128
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/radsniff.c:2359,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radsniff.c:2361,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radsniff.c:2367,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radsniff.c:2367,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2368,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2369,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/bin/radsniff.c:2373,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radsniff.c:2375,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:2376,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2377,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2378,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radsniff.c:2380,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radsniff.c:2391,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radsniff.c:2401,1
    - Dst: pcap_findalldevs
      Src: /src/freeradius-server/src/bin/radsniff.c:2409,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2410,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:2418,1
    - Dst: pcap_freealldevs
      Src: /src/freeradius-server/src/bin/radsniff.c:2421,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsniff.c:2427,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2429,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2430,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsniff.c:2435,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2437,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2438,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2444,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2447,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2451,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2452,1
    - Dst: rs_build_event_flags
      Src: /src/freeradius-server/src/bin/radsniff.c:2465,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2466,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2478,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2481,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2488,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsniff.c:2509,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:2532,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radsniff.c:2533,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsniff.c:2537,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:2546,1
    - Dst: pcap_lib_version
      Src: /src/freeradius-server/src/bin/radsniff.c:2546,1
    - Dst: lcc_version_string
      Src: /src/freeradius-server/src/bin/radsniff.c:2547,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:2549,1
    - Dst: pcap_lib_version
      Src: /src/freeradius-server/src/bin/radsniff.c:2549,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2551,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2554,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2556,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2557,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsniff.c:2568,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2571,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2572,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radsniff.c:2579,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/bin/radsniff.c:2588,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2589,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsniff.c:2589,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2590,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radsniff.c:2596,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2598,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2599,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2614,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radsniff.c:2621,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2622,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2623,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2628,1
    - Dst: isatty
      Src: /src/freeradius-server/src/bin/radsniff.c:2638,1
    - Dst: fileno
      Src: /src/freeradius-server/src/bin/radsniff.c:2638,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2644,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2649,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2650,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2655,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2656,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2670,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2677,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2711,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2717,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radsniff.c:2724,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2728,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2729,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2730,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/radsniff.c:2733,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2734,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/bin/radsniff.c:2739,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2740,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/radsniff.c:2745,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/bin/radsniff.c:2745,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2746,1
    - Dst: fr_radius_global_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2752,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2753,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radsniff.c:2757,1
    - Dst: rs_build_dict_list
      Src: /src/freeradius-server/src/bin/radsniff.c:2760,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:2760,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2763,1
    - Dst: rs_packet_print_csv_header
      Src: /src/freeradius-server/src/bin/radsniff.c:2765,1
    - Dst: rs_build_dict_list
      Src: /src/freeradius-server/src/bin/radsniff.c:2769,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:2769,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2772,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/bin/radsniff.c:2775,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2777,1
    - Dst: rs_build_filter
      Src: /src/freeradius-server/src/bin/radsniff.c:2786,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2786,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2788,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/bin/radsniff.c:2790,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:2792,1
    - Dst: rs_build_filter
      Src: /src/freeradius-server/src/bin/radsniff.c:2800,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radsniff.c:2800,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2802,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/bin/radsniff.c:2804,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:2806,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:2814,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radsniff.c:2815,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2825,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2825,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/bin/radsniff.c:2833,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2835,1
    - Dst: pcap_findalldevs
      Src: /src/freeradius-server/src/bin/radsniff.c:2846,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2847,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2852,1
    - Dst: pcap_freealldevs
      Src: /src/freeradius-server/src/bin/radsniff.c:2854,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2864,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/radsniff.c:2867,1
    - Dst: fr_pcap_if_link_layer
      Src: /src/freeradius-server/src/bin/radsniff.c:2869,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2871,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radsniff.c:2871,1
    - Dst: fr_pcap_link_layer_supported
      Src: /src/freeradius-server/src/bin/radsniff.c:2875,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2876,1
    - Dst: pcap_datalink_val_to_name
      Src: /src/freeradius-server/src/bin/radsniff.c:2877,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/radsniff.c:2881,1
    - Dst: pcap_freealldevs
      Src: /src/freeradius-server/src/bin/radsniff.c:2884,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radsniff.c:2888,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2895,1
    - Dst: fr_pcap_device_names
      Src: /src/freeradius-server/src/bin/radsniff.c:2897,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2898,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:2899,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2902,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2905,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2907,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2908,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2911,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2914,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2915,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/bin/radsniff.c:2916,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2920,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2924,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radsniff.c:2927,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:2928,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/bin/radsniff.c:2929,1
    - Dst: rs_stats_collectd_open
      Src: /src/freeradius-server/src/bin/radsniff.c:2941,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:2942,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radsniff.c:2947,1
    - Dst: rs_stats_collectd_init_latency
      Src: /src/freeradius-server/src/bin/radsniff.c:2948,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2952,1
    - Dst: fr_pcap_open
      Src: /src/freeradius-server/src/bin/radsniff.c:2972,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2973,1
    - Dst: fr_pcap_link_layer_supported
      Src: /src/freeradius-server/src/bin/radsniff.c:2981,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:2982,1
    - Dst: pcap_datalink_val_to_name
      Src: /src/freeradius-server/src/bin/radsniff.c:2983,1
    - Dst: fr_pcap_apply_filter
      Src: /src/freeradius-server/src/bin/radsniff.c:2994,1
    - Dst: fr_pcap_apply_filter
      Src: /src/freeradius-server/src/bin/radsniff.c:2995,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:2996,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:3008,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:3009,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radsniff.c:3013,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:3031,1
    - Dst: RS_ASSERT
      Src: /src/freeradius-server/src/bin/radsniff.c:3037,1
    - Dst: fr_pcap_open
      Src: /src/freeradius-server/src/bin/radsniff.c:3039,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:3040,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/radsniff.c:3048,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/bin/radsniff.c:3058,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:3060,1
    - Dst: pipe
      Src: /src/freeradius-server/src/bin/radsniff.c:3067,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:3068,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radsniff.c:3068,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radsniff.c:3069,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/bin/radsniff.c:3072,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radsniff.c:3077,1
    - Dst: fr_pcap_device_names
      Src: /src/freeradius-server/src/bin/radsniff.c:3081,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radsniff.c:3082,1
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/bin/radsniff.c:3088,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radsniff.c:3088,1
    - Dst: rs_install_stats_processor
      Src: /src/freeradius-server/src/bin/radsniff.c:3089,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radsniff.c:3100,1
    - Dst: rs_got_packet
      Src: /src/freeradius-server/src/bin/radsniff.c:3118,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/bin/radsniff.c:3119,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:3124,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/bin/radsniff.c:3130,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radsniff.c:3130,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radsniff.c:3132,1
    - Dst: fr_event_list_num_fds
      Src: /src/freeradius-server/src/bin/radsniff.c:3140,1
    - Dst: rs_daemonize
      Src: /src/freeradius-server/src/bin/radsniff.c:3146,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsniff.c:3153,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsniff.c:3154,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsniff.c:3155,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radsniff.c:3157,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:3159,1
    - Dst: fr_event_loop
      Src: /src/freeradius-server/src/bin/radsniff.c:3161,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radsniff.c:3163,1
    - Dst: unlink
      Src: /src/freeradius-server/src/bin/radsniff.c:3168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radsniff.c:3173,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/radsniff.c:3175,1
    - Dst: fr_radius_global_free
      Src: /src/freeradius-server/src/bin/radsniff.c:3176,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/radsniff.c:3182,1
    CyclomaticComplexity: 184
    EdgeCount: 184
    ICount: 547
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 2333
    functionDepth: 4
    functionLinenumber: 2333
    functionLinenumberEnd: 3185
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.c
    functionUses: 0
    functionsReached:
    - fr_dict_read
    - fr_pcap_open
    - fr_pair_list_empty
    - fr_pcap_if_link_layer
    - rs_got_packet
    - pcap_datalink_val_to_name
    - unlink
    - lcc_version_string
    - fr_atexit_global_trigger_all
    - fr_dict_attr_autoload
    - fr_perror
    - fr_pcap_apply_filter
    - atoi
    - fr_atexit_global_setup
    - fr_check_lib_magic
    - rs_install_stats_processor
    - rs_daemonize
    - strlen
    - fileno
    - talloc_autofree_context
    - rs_stats_collectd_init_latency
    - DEBUG
    - fr_event_list_num_fds
    - fr_dict_global_ctx_init
    - fr_pair_list_log
    - rs_packet_print_csv_header
    - fr_fault_setup
    - strcmp
    - getenv
    - fr_pcap_device_names
    - fr_dcursor_remove
    - fr_time_delta_from_sec
    - fr_exit_now
    - fr_dict_unconst
    - talloc_free
    - talloc_set_log_stderr
    - RS_ASSERT
    - fr_radius_global_init
    - fr_event_fd_insert
    - fr_rb_inline_talloc_alloc
    - fr_strerror
    - pcap_findalldevs
    - fr_pcap_init
    - DEBUG2
    - fr_set_signal
    - fr_pair_list_init
    - NUM_ELEMENTS
    - INFO
    - pcap_lib_version
    - fr_syserror
    - usage
    - getopt
    - fr_event_list_alloc
    - pcap_freealldevs
    - rs_build_dict_list
    - fr_mkdir
    - fr_pair_dcursor_by_da_init
    - pipe
    - talloc_asprintf
    - fr_time_start
    - fr_pcap_link_layer_supported
    - talloc_strdup
    - fr_timer_in
    - fr_dict_autofree
    - fr_dict_autoload
    - ERROR
    - rs_build_filter
    - fr_time
    - isatty
    - fr_radius_global_free
    - rs_build_event_flags
    - memset
    - fr_time_to_timeval
    - strncmp
    - rs_stats_collectd_open
    - talloc_zero
    - fr_strerror_clear
    - fr_event_loop
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:61,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:62,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:63,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:64,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:65,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:66,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/unit_test_map.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_map.c
    functionUses: 6
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: map_list_init
      Src: /src/freeradius-server/src/bin/unit_test_map.c:90,1
    - Dst: main_config_alloc
      Src: /src/freeradius-server/src/bin/unit_test_map.c:92,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:94,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/unit_test_map.c:97,1
    - Dst: cf_section_set_unlang
      Src: /src/freeradius-server/src/bin/unit_test_map.c:98,1
    - Dst: cf_file_read
      Src: /src/freeradius-server/src/bin/unit_test_map.c:100,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/bin/unit_test_map.c:100,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:101,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_map.c:103,1
    - Dst: main_config_name_set_default
      Src: /src/freeradius-server/src/bin/unit_test_map.c:107,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/bin/unit_test_map.c:112,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/bin/unit_test_map.c:118,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/bin/unit_test_map.c:120,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/bin/unit_test_map.c:123,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/bin/unit_test_map.c:124,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/bin/unit_test_map.c:130,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/bin/unit_test_map.c:131,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:137,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:139,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/bin/unit_test_map.c:142,1
    - Dst: map_print
      Src: /src/freeradius-server/src/bin/unit_test_map.c:143,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_map.c:143,1
    - Dst: puts
      Src: /src/freeradius-server/src/bin/unit_test_map.c:144,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_map.c:146,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_map.c:148,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_map.c:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 152
    functionName: process_file
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_map.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_pass2
    - FR_SBUFF_OUT
    - map_list_empty
    - cf_log_err
    - map_print
    - cf_section_name2
    - printf
    - cf_section_name1
    - map_list_next
    - cf_section_alloc
    - cf_file_read
    - map_list_init
    - cf_section_set_unlang
    - puts
    - main_config_name_set_default
    - cf_log_perr
    - talloc_free
    - fprintf
    - map_afrom_cs
    - main_config_alloc
    linkageType: ''
    returnType: int
    signature: int process_file(char const *filename)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/unit_test_map.c:171,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/unit_test_map.c:173,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/unit_test_map.c:176,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/unit_test_map.c:176,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:177,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/unit_test_map.c:178,1
    - Dst: fr_disable_null_tracking_on_free
      Src: /src/freeradius-server/src/bin/unit_test_map.c:181,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/unit_test_map.c:192,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/unit_test_map.c:194,1
    - Dst: talloc_enable_leak_report
      Src: /src/freeradius-server/src/bin/unit_test_map.c:208,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/unit_test_map.c:217,1
    - Dst: fr_unlink
      Src: /src/freeradius-server/src/bin/unit_test_map.c:222,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:223,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/unit_test_map.c:230,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:231,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/unit_test_map.c:235,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:236,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_map.c:240,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:241,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/unit_test_map.c:248,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_map.c:249,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:250,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/unit_test_map.c:254,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:255,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/bin/unit_test_map.c:259,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:260,1
    - Dst: process_file
      Src: /src/freeradius-server/src/bin/unit_test_map.c:265,1
    - Dst: process_file
      Src: /src/freeradius-server/src/bin/unit_test_map.c:271,1
    - Dst: fr_atexit_thread_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_map.c:285,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/unit_test_map.c:290,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:291,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/bin/unit_test_map.c:295,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:296,1
    - Dst: fr_touch
      Src: /src/freeradius-server/src/bin/unit_test_map.c:300,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_map.c:301,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_map.c:309,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 312
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_map.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - request_global_init
    - fr_dict_internal_afrom_file
    - fr_dict_read
    - fr_dict_free
    - fr_time_start
    - fr_dict_autofree
    - fr_dict_autoload
    - process_file
    - talloc_autofree_context
    - fr_strerror_const_push
    - fr_exit
    - fr_atexit_thread_trigger_all
    - fr_dict_global_ctx_init
    - fr_atexit_global_trigger_all
    - fr_disable_null_tracking_on_free
    - fr_fault_setup
    - usage
    - getopt
    - fr_unlink
    - fr_touch
    - fr_perror
    - getenv
    - talloc_enable_leak_report
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: pair_update_request
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_update_request(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:159,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:161,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:162,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:163,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:164,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:165,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:166,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:167,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:168,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:169,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:170,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:171,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:172,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:173,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:174,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:175,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:176,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:177,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:178,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:179,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:180,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:181,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient-ng.c:182,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 7
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rc_request_list_remove
      Src: /src/freeradius-server/src/bin/radclient-ng.c:193,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/bin/radclient-ng.c:196,1
    - Dst: fr_radius_client_fd_bio_cancel
      Src: /src/freeradius-server/src/bin/radclient-ng.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - request
    argTypes:
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: _rc_request_free
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_radius_client_fd_bio_cancel
    - fr_rb_delete
    - rc_request_list_remove
    linkageType: ''
    returnType: int
    signature: int _rc_request_free(rc_request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_load
      Src: /src/freeradius-server/src/bin/radclient-ng.c:218,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:220,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/freeradius-server/src/bin/radclient-ng.c:229,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:231,1
    - Dst: fr_md5_openssl_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:235,1
    - Dst: fr_md4_openssl_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 239
    functionName: openssl3_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_md4_openssl_init
    - fr_md5_openssl_init
    - ERROR
    - OSSL_PROVIDER_load
    linkageType: ''
    returnType: int
    signature: int openssl3_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/freeradius-server/src/bin/radclient-ng.c:243,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:244,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/freeradius-server/src/bin/radclient-ng.c:248,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:249,1
    - Dst: fr_md5_openssl_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:253,1
    - Dst: fr_md4_openssl_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: openssl3_free
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - ERROR
    - OSSL_PROVIDER_unload
    - fr_md5_openssl_free
    - fr_md4_openssl_free
    linkageType: ''
    returnType: void
    signature: void openssl3_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/bin/radclient-ng.c:263,1
    - Dst: rc_request_list_num_elements
      Src: /src/freeradius-server/src/bin/radclient-ng.c:265,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/bin/radclient-ng.c:267,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/bin/radclient-ng.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fr_time_t
    - wake
    - ctx
    argTypes:
    - UNUSED
    - fr_time_delta_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: _loop_status
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_box_time_delta
    - rc_request_list_num_elements
    - fr_time_delta_unwrap
    - fr_log
    linkageType: ''
    returnType: int
    signature: int _loop_status(UNUSED fr_time_t now, fr_time_delta_t wake, UNUSED
      void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:280,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:281,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:283,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:283,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/bin/radclient-ng.c:285,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:287,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/bin/radclient-ng.c:287,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/bin/radclient-ng.c:288,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/bin/radclient-ng.c:291,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:294,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:294,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/bin/radclient-ng.c:295,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/radclient-ng.c:296,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/bin/radclient-ng.c:297,1
    - Dst: mschap_nt_password_hash
      Src: /src/freeradius-server/src/bin/radclient-ng.c:301,1
    - Dst: smbdes_mschap
      Src: /src/freeradius-server/src/bin/radclient-ng.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - packet
    - list
    - password
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 305
    functionName: mschapv1_encode
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_delete_by_da
    - fr_pair_value_memdup_buffer_shallow
    - talloc_array
    - smbdes_mschap
    - fr_pair_append
    - mschap_nt_password_hash
    - fr_rand
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: int
    signature: "int mschapv1_encode(fr_packet_t *packet, fr_pair_list_t *list,\n\t\t\t
      \  char const *password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getservbyname
      Src: /src/freeradius-server/src/bin/radclient-ng.c:312,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radclient-ng.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: getport
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - ntohs
    - getservbyname
    linkageType: ''
    returnType: int
    signature: int getport(char const *name)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient-ng.c:328,1
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient-ng.c:333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - type
    - port
    argTypes:
    - fr_radius_packet_code_t
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 349
    functionName: radclient_get_port
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - getport
    linkageType: ''
    returnType: void
    signature: void radclient_get_port(fr_radius_packet_code_t type, uint16_t *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient-ng.c:363,1
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient-ng.c:366,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 372
    functionName: radclient_get_code
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - getport
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: fr_radius_packet_code_t radclient_get_code(uint16_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 395
    functionName: already_hex
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool already_hex(fr_pair_t *vp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:410,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient-ng.c:410,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:411,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/radclient-ng.c:411,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:416,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:417,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:418,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient-ng.c:423,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:425,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:427,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:434,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient-ng.c:441,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:443,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:448,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:454,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient-ng.c:462,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:480,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:481,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:482,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:483,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 7
    argNames:
    - parent
    - coa_reply
    - reply_filename
    - coa_reply_done
    - coa_filter
    - filter_filename
    - coa_filter_done
    argTypes:
    - rc_request_t*
    - FILE*
    - char*
    - bool*
    - FILE*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 487
    functionName: coa_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - ERROR
    - fr_packet_alloc
    - talloc_free
    - REDEBUG
    - fr_pair_list_sort
    - talloc_zero
    - fr_assert
    - fr_pair_list_afrom_file
    - fr_rb_insert
    - MEM
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int coa_init(rc_request_t *parent,\n\t\t    FILE *coa_reply, char
      const *reply_filename, bool *coa_reply_done,\n\t\t    FILE *coa_filter, char
      const *filter_filename, bool *coa_filter_done)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:507,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient-ng.c:512,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:513,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:515,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:515,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:523,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:525,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:525,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:531,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:533,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:533,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:539,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:541,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:541,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:559,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient-ng.c:559,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:560,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/radclient-ng.c:560,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:571,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:572,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:573,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient-ng.c:578,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:588,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radclient-ng.c:595,1
    - Dst: WARN
      Src: /src/freeradius-server/src/bin/radclient-ng.c:596,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:597,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient-ng.c:607,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:609,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:614,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:620,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:625,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/bin/radclient-ng.c:628,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient-ng.c:634,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/bin/radclient-ng.c:640,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/bin/radclient-ng.c:642,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radclient-ng.c:651,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radclient-ng.c:653,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radclient-ng.c:654,1
    - Dst: already_hex
      Src: /src/freeradius-server/src/bin/radclient-ng.c:665,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/bin/radclient-ng.c:670,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:671,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/bin/radclient-ng.c:673,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:674,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/bin/radclient-ng.c:701,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:735,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:740,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:770,1
    - Dst: radclient_get_port
      Src: /src/freeradius-server/src/bin/radclient-ng.c:779,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:781,1
    - Dst: radclient_get_code
      Src: /src/freeradius-server/src/bin/radclient-ng.c:789,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:809,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:813,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:815,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:815,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:820,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:822,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:822,1
    - Dst: coa_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:832,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:838,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:841,1
    - Dst: coa_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:847,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:854,1
    - Dst: rc_request_list_insert_tail
      Src: /src/freeradius-server/src/bin/radclient-ng.c:864,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/bin/radclient-ng.c:872,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:875,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:876,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:877,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:878,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:886,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:888,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:889,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:890,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:891,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 261
    argCount: 2
    argNames:
    - ctx
    - files
    argTypes:
    - TALLOC_CTX*
    - rc_file_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 894
    functionName: radclient_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_packet_alloc
    - WARN
    - memcpy
    - REDEBUG
    - fr_pair_list_sort
    - rc_request_list_insert_tail
    - radclient_get_code
    - fr_pair_list_afrom_file
    - fopen
    - MEM
    - fr_pair_list_empty
    - ERROR
    - fr_pair_delete
    - memset
    - fr_pair_list_init
    - fr_pair_value_bstrndup
    - coa_init
    - talloc_set_destructor
    - fr_packet_net_from_pairs
    - fr_syserror
    - radclient_get_port
    - fr_assert
    - strcmp
    - pair_update_request
    - fr_pair_find_by_da
    - fclose
    - already_hex
    - RDEBUG
    - fr_pair_list_next
    - talloc_free
    - talloc_zero
    - fr_pair_list_head
    linkageType: ''
    returnType: int
    signature: int radclient_init(TALLOC_CTX *ctx, rc_file_pair_t *files)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:912,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - request
    argTypes:
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 931
    functionName: radclient_sane
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: int radclient_sane(rc_request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:939,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:940,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/bin/radclient-ng.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 946
    functionName: request_cmp
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t request_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rc_request_list_prev
      Src: /src/freeradius-server/src/bin/radclient-ng.c:954,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:957,1
    - Dst: rc_request_list_num_elements
      Src: /src/freeradius-server/src/bin/radclient-ng.c:962,1
    - Dst: fr_radius_client_bio_outstanding
      Src: /src/freeradius-server/src/bin/radclient-ng.c:969,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:970,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - client
    - request
    argTypes:
    - fr_bio_packet_t*
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 974
    functionName: cleanup
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 2
    functionsReached:
    - talloc_free
    - fr_event_loop_exit
    - fr_assert
    - rc_request_list_prev
    - rc_request_list_num_elements
    - fr_radius_client_bio_outstanding
    linkageType: ''
    returnType: void
    signature: void cleanup(fr_bio_packet_t *client, rc_request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:980,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient-ng.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fr_bio_packet_t *client
    - packet
    argTypes:
    - UNUSED
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: client_packet_retry_log
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_radius_packet_log
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void client_packet_retry_log(UNUSED fr_bio_packet_t *client, fr_packet_t
      *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:991,1
    - Dst: cleanup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - client
    - packet
    argTypes:
    - fr_bio_packet_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: client_packet_release
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - cleanup
    - ERROR
    linkageType: ''
    returnType: void
    signature: void client_packet_release(fr_bio_packet_t *client, fr_packet_t *packet)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1004,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1005,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1008,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1011,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1012,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1021,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1031,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1033,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1034,1
    - Dst: fr_chap_encode
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1037,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1038,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1041,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1043,1
    - Dst: mschapv1_encode
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1044,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1047,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1051,1
    - Dst: fr_rand_buffer
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1058,1
    - Dst: fr_bio_packet_write
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1064,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1069,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1071,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1071,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1075,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - client
    - request
    argTypes:
    - fr_bio_packet_t*
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1078
    functionName: send_one_packet
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_radius_packet_log
    - fr_pair_find_by_da_nested
    - fr_bio_packet_write
    - fr_time
    - mschapv1_encode
    - REDEBUG
    - fr_chap_encode
    - fr_pair_value_memdup
    - fr_rand
    - fr_assert
    - DEBUG
    - fr_rand_buffer
    - fr_strerror
    - pair_update_request
    - fr_pair_find_by_da
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int send_one_packet(fr_bio_packet_t *client, rc_request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_client_bio_info
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1093,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1095,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1100
    functionName: client_bio_write_pause
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_radius_client_bio_info
    - fr_event_filter_update
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int client_bio_write_pause(fr_bio_packet_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_client_bio_info
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1104,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1106,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1111
    functionName: client_bio_write_resume
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_radius_client_bio_info
    - fr_event_filter_update
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int client_bio_write_resume(fr_bio_packet_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1116,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1121,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1122,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1125
    functionName: client_bio_failed
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - ERROR
    - TALLOC_FREE
    - fr_assert
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS client_bio_failed(fr_bio_packet_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1133,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1133,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1138,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1139,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1142
    functionName: client_error
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - ERROR
    - TALLOC_FREE
    - fr_syserror
    - fr_assert
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: "NEVER_RETURNS client_error(UNUSED fr_event_list_t *el, UNUSED int
      fd, UNUSED int flags,\n\t\t\t\t       int fd_errno, void *uctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1152,1
    - Dst: fr_bio_packet_read
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1157,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1159,1
    - Dst: fr_bio_strerror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1159,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1160,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1168,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1171,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1192,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1199,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1200,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1203,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1210,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1215,1
    - Dst: fr_pair_validate
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1216,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1217,1
    - Dst: fr_pair_validate_debug
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1220,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1221,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1230,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1231,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1232,1
    - Dst: fr_radius_client_fd_bio_cancel
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1245,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1247,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1251,1
    - Dst: cleanup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1253,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1254
    functionName: client_read
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_list_sort
    - cleanup
    - fr_pair_validate_debug
    - fr_pair_list_empty
    - fr_radius_packet_log
    - ERROR
    - fr_radius_client_fd_bio_cancel
    - fr_event_filter_update
    - fr_pair_list_init
    - fr_pair_validate
    - FR_RADIUS_PACKET_CODE_VALID
    - fr_perror
    - fr_packet_free
    - fr_bio_packet_read
    - fr_exit_now
    - RDEBUG
    - TALLOC_FREE
    - fr_bio_strerror
    - fr_strerror_clear
    linkageType: ''
    returnType: void
    signature: void client_read(fr_event_list_t *el, int fd, UNUSED int flags, void
      *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rc_request_list_next
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1261,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1262,1
    - Dst: rc_request_list_head
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1264,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1271,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1272,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1273,1
    - Dst: send_one_packet
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1286,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1287,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1288,1
    - Dst: fr_radius_client_bio_outstanding
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1297,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1301
    functionName: client_write
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - rc_request_list_next
    - fr_exit_now
    - send_one_packet
    - rc_request_list_head
    - fr_perror
    - fr_assert
    - fr_event_filter_update
    - fr_radius_client_bio_outstanding
    linkageType: ''
    returnType: void
    signature: void client_write(fr_event_list_t *el, int fd, UNUSED int flags, void
      *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_client_bio_info
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1307,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1309,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1311,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - client
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1314
    functionName: client_bio_connected
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_radius_client_bio_info
    - fr_event_fd_insert
    - fr_exit_now
    linkageType: ''
    returnType: void
    signature: void client_bio_connected(fr_bio_packet_t *client)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1334,1
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1347,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1349,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1351,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1353,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1353,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1354,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1355,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1363,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1366,1
    - Dst: rc_request_list_talloc_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1368,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1370,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1422,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1436,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1436,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1438,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1440,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1447,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1448,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1450,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1451,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1456,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1457,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1479,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1479,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1479,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1486,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1489,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1495,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1495,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1498,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1507,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1508,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1510,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1512,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1517,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1518,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1529,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1530,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1531,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1535,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1538,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1542,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1547,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1547,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1548,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1549,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1559,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1561,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1561,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1562,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1564,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1565,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1565,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1566,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1568,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1571,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1578,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1579,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1580,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1582,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1584,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1589,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1589,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1590,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1591,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1597,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1598,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1607,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1613,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1614,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1620,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1621,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1623,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1624,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1627,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1630,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1631,1
    - Dst: fr_radius_allow_reply
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1637,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1641,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1642,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1650,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1651,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1652,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1653,1
    - Dst: radclient_get_code
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1659,1
    - Dst: radclient_get_port
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1661,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1667,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1669,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1678,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1679,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1680,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1683,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1684,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1685,1
    - Dst: fr_radius_global_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1688,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1689,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1690,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1693,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1694,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1695,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1698,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1699,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1700,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1703,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1703,1
    - Dst: fr_log_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1704,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1706,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1710,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1710,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1712,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1713,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1721,1
    - Dst: fr_rb_talloc_alloc
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1721,1
    - Dst: packet_global_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1723,1
    - Dst: openssl3_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1725,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1727,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1738,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1741,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1741,1
    - Dst: radclient_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1743,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1743,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1746,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1747,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1753,1
    - Dst: radclient_init
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1754,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1755,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1756,1
    - Dst: rc_request_list_num_elements
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1763,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1764,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1765,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1774,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1778,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1778,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1779,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1799,1
    - Dst: fr_radius_client_bio_alloc
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1805,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1807,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1807,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1808,1
    - Dst: fr_radius_client_bio_info
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1811,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1812,1
    - Dst: fr_radius_client_bio_force_id
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1815,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1816,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1817,1
    - Dst: rc_request_list_foreach
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1828,1
    - Dst: radclient_sane
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1829,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1830,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1839,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1841,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1842,1
    - Dst: fr_event_loop
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1850,1
    - Dst: rc_request_list_talloc_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1857,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1859,1
    - Dst: fr_radius_global_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1861,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1863,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1864,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1868,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1870,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1873,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1891,1
    - Dst: openssl3_free
      Src: /src/freeradius-server/src/bin/radclient-ng.c:1893,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 308
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1898
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - isdigit
    - fr_check_lib_magic
    - fgets
    - fr_radius_client_bio_alloc
    - fr_radius_allow_reply
    - talloc_strdup
    - fr_dict_read
    - radclient_get_code
    - strlen
    - fr_log_perror
    - fopen
    - fr_strerror
    - MEM
    - fr_dict_autofree
    - fr_dict_autoload
    - ERROR
    - rc_request_list_talloc_init
    - fr_radius_client_bio_info
    - fr_dlist_num_elements
    - openssl3_free
    - fr_dict_root
    - talloc_autofree_context
    - packet_global_init
    - fr_radius_global_free
    - rc_request_list_talloc_free
    - fr_inet_pton_port
    - fr_event_fd_delete
    - fr_table_value_by_str
    - strtoul
    - exit
    - DEBUG
    - fr_dict_global_ctx_init
    - talloc_strndup
    - fr_atexit_global_trigger_all
    - fr_dict_attr_autoload
    - fr_dict_attr_by_name
    - fr_rb_talloc_alloc
    - fr_syserror
    - fr_fault_setup
    - usage
    - getopt
    - radclient_get_port
    - fr_event_list_alloc
    - fr_perror
    - fr_assert
    - openssl3_init
    - strcmp
    - getenv
    - talloc_strlen
    - rc_request_list_num_elements
    - fr_radius_client_bio_force_id
    - fr_time_delta_from_sec
    - fclose
    - radclient_init
    - fr_exit_now
    - fr_dlist_foreach
    - fr_dict_unconst
    - fr_radius_global_init
    - talloc_set_log_stderr
    - fr_time_delta_from_str
    - rc_request_list_foreach
    - strchr
    - fr_event_fd_insert
    - talloc_free
    - talloc_zero
    - radclient_sane
    - fr_strerror_clear
    - atoi
    - fr_dlist_insert_tail
    - fr_time_start
    - fr_atexit_global_setup
    - fr_event_loop
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: pair_update_request
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_update_request(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:159,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:161,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:162,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:163,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:164,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:165,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:166,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:167,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:168,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:169,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:170,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:171,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:172,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:173,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:174,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:175,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:176,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:177,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:178,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:179,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:180,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:181,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:182,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:183,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radclient.c:184,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 8
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_request_list_remove
      Src: /src/freeradius-server/src/bin/radclient.c:195,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/bin/radclient.c:197,1
    - Dst: fr_rb_delete_by_inline_node
      Src: /src/freeradius-server/src/bin/radclient.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: _rc_request_free
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - fr_rb_delete_by_inline_node
    - fr_rb_node_inline_in_tree
    - rc_request_list_remove
    linkageType: ''
    returnType: int
    signature: int _rc_request_free(rc_request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_load
      Src: /src/freeradius-server/src/bin/radclient.c:215,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:217,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/freeradius-server/src/bin/radclient.c:226,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:228,1
    - Dst: fr_md5_openssl_init
      Src: /src/freeradius-server/src/bin/radclient.c:232,1
    - Dst: fr_md4_openssl_init
      Src: /src/freeradius-server/src/bin/radclient.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 236
    functionName: openssl3_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - fr_md4_openssl_init
    - fr_md5_openssl_init
    - ERROR
    - OSSL_PROVIDER_load
    linkageType: ''
    returnType: int
    signature: int openssl3_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/freeradius-server/src/bin/radclient.c:240,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:241,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/freeradius-server/src/bin/radclient.c:245,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:246,1
    - Dst: fr_md5_openssl_free
      Src: /src/freeradius-server/src/bin/radclient.c:250,1
    - Dst: fr_md4_openssl_free
      Src: /src/freeradius-server/src/bin/radclient.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: openssl3_free
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - ERROR
    - OSSL_PROVIDER_unload
    - fr_md5_openssl_free
    - fr_md4_openssl_free
    linkageType: ''
    returnType: void
    signature: void openssl3_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: openssl3_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: openssl3_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:266,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:267,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:269,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radclient.c:269,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/bin/radclient.c:271,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:273,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/bin/radclient.c:273,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/bin/radclient.c:274,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/bin/radclient.c:277,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:280,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/radclient.c:280,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/bin/radclient.c:281,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/radclient.c:282,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/bin/radclient.c:283,1
    - Dst: mschap_nt_password_hash
      Src: /src/freeradius-server/src/bin/radclient.c:287,1
    - Dst: smbdes_mschap
      Src: /src/freeradius-server/src/bin/radclient.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - packet
    - list
    - password
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 291
    functionName: mschapv1_encode
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_delete_by_da
    - fr_pair_value_memdup_buffer_shallow
    - talloc_array
    - smbdes_mschap
    - fr_pair_append
    - mschap_nt_password_hash
    - fr_rand
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: int
    signature: "int mschapv1_encode(fr_packet_t *packet, fr_pair_list_t *list,\n\t\t\t
      \  char const *password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getservbyname
      Src: /src/freeradius-server/src/bin/radclient.c:298,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/bin/radclient.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: getport
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 2
    functionsReached:
    - ntohs
    - getservbyname
    linkageType: ''
    returnType: int
    signature: int getport(char const *name)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient.c:314,1
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient.c:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - type
    - port
    argTypes:
    - fr_radius_packet_code_t
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 335
    functionName: radclient_get_port
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 2
    functionsReached:
    - getport
    linkageType: ''
    returnType: void
    signature: void radclient_get_port(fr_radius_packet_code_t type, uint16_t *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient.c:349,1
    - Dst: getport
      Src: /src/freeradius-server/src/bin/radclient.c:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 358
    functionName: radclient_get_code
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 2
    functionsReached:
    - getport
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: fr_radius_packet_code_t radclient_get_code(uint16_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 381
    functionName: already_hex
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool already_hex(fr_pair_t *vp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:397,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient.c:397,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:398,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/radclient.c:398,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:403,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:404,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:405,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient.c:410,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:412,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:414,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:421,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient.c:428,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:430,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:435,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:441,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient.c:449,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:467,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/bin/radclient.c:468,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:469,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:470,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 7
    argNames:
    - parent
    - coa_reply
    - reply_filename
    - coa_reply_done
    - coa_filter
    - filter_filename
    - coa_filter_done
    argTypes:
    - rc_request_t*
    - FILE*
    - char*
    - bool*
    - FILE*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 474
    functionName: coa_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - fr_exit_now
    - ERROR
    - fr_packet_alloc
    - talloc_free
    - REDEBUG
    - fr_pair_list_sort
    - talloc_zero
    - fr_assert
    - fr_pair_list_afrom_file
    - fr_rb_insert
    - MEM
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int coa_init(rc_request_t *parent,\n\t\t    FILE *coa_reply, char
      const *reply_filename, bool *coa_reply_done,\n\t\t    FILE *coa_filter, char
      const *filter_filename, bool *coa_filter_done)"
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:494,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient.c:499,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:500,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:502,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:502,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:510,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:512,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:512,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:518,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:520,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:520,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:526,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:528,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:528,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:546,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient.c:546,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:547,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/radclient.c:547,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:560,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:561,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:562,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient.c:567,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:577,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radclient.c:584,1
    - Dst: WARN
      Src: /src/freeradius-server/src/bin/radclient.c:585,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:586,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/radclient.c:596,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:598,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:603,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:609,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:614,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/bin/radclient.c:617,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient.c:623,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/bin/radclient.c:629,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/bin/radclient.c:631,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radclient.c:640,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radclient.c:642,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radclient.c:643,1
    - Dst: already_hex
      Src: /src/freeradius-server/src/bin/radclient.c:654,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/bin/radclient.c:659,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/bin/radclient.c:660,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/bin/radclient.c:662,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/bin/radclient.c:663,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/bin/radclient.c:690,1
    - Dst: radclient_get_code
      Src: /src/freeradius-server/src/bin/radclient.c:720,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:736,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:741,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:771,1
    - Dst: radclient_get_port
      Src: /src/freeradius-server/src/bin/radclient.c:781,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:783,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:793,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:797,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:799,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:799,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:804,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:806,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:806,1
    - Dst: coa_init
      Src: /src/freeradius-server/src/bin/radclient.c:816,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:822,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:825,1
    - Dst: coa_init
      Src: /src/freeradius-server/src/bin/radclient.c:831,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:838,1
    - Dst: rc_request_list_insert_tail
      Src: /src/freeradius-server/src/bin/radclient.c:848,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/bin/radclient.c:856,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:859,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:860,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:861,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:862,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:870,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:872,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:873,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:874,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:875,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 265
    argCount: 2
    argNames:
    - ctx
    - files
    argTypes:
    - TALLOC_CTX*
    - rc_file_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 878
    functionName: radclient_init
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - fr_packet_alloc
    - WARN
    - memcpy
    - REDEBUG
    - fr_pair_list_sort
    - rc_request_list_insert_tail
    - radclient_get_code
    - fr_pair_list_afrom_file
    - fopen
    - MEM
    - fr_pair_list_empty
    - ERROR
    - fr_pair_delete
    - memset
    - fr_pair_list_init
    - fr_pair_value_bstrndup
    - coa_init
    - talloc_set_destructor
    - fr_packet_net_from_pairs
    - fr_syserror
    - radclient_get_port
    - fr_assert
    - strcmp
    - pair_update_request
    - fr_pair_find_by_da
    - fclose
    - already_hex
    - RDEBUG
    - fr_pair_list_next
    - talloc_free
    - talloc_zero
    - fr_pair_list_head
    linkageType: ''
    returnType: int
    signature: int radclient_init(TALLOC_CTX *ctx, rc_file_pair_t *files)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:891,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:899,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - request
    argTypes:
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 908
    functionName: radclient_sane
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: int radclient_sane(rc_request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:916,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:917,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/bin/radclient.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 923
    functionName: request_cmp
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t request_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_list_id_free
      Src: /src/freeradius-server/src/bin/radclient.c:939,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radclient.c:946,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radclient.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - request
    argTypes:
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 948
    functionName: deallocate_id
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - fr_packet_free
    - TALLOC_FREE
    - fr_packet_list_id_free
    linkageType: ''
    returnType: void
    signature: void deallocate_id(rc_request_t *request)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:957,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:960,1
    - Dst: fr_time_delta_eq
      Src: /src/freeradius-server/src/bin/radclient.c:967,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:967,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/bin/radclient.c:967,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:977,1
    - Dst: fr_packet_list_id_alloc
      Src: /src/freeradius-server/src/bin/radclient.c:986,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/bin/radclient.c:991,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:995,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/bin/radclient.c:1001,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1003,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/bin/radclient.c:1007,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1008,1
    - Dst: fr_packet_list_socket_add
      Src: /src/freeradius-server/src/bin/radclient.c:1013,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1016,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1017,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:1022,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:1023,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:1030,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:1040,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/bin/radclient.c:1042,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/bin/radclient.c:1043,1
    - Dst: fr_chap_encode
      Src: /src/freeradius-server/src/bin/radclient.c:1046,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/bin/radclient.c:1047,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/bin/radclient.c:1050,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/bin/radclient.c:1052,1
    - Dst: mschapv1_encode
      Src: /src/freeradius-server/src/bin/radclient.c:1053,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1056,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radclient.c:1060,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radclient.c:1065,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/bin/radclient.c:1077,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/bin/radclient.c:1077,1
    - Dst: fr_time_delta_sub
      Src: /src/freeradius-server/src/bin/radclient.c:1080,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/bin/radclient.c:1080,1
    - Dst: fr_time_delta_eq
      Src: /src/freeradius-server/src/bin/radclient.c:1082,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:1082,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/bin/radclient.c:1083,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:1093,1
    - Dst: fr_packet_list_yank
      Src: /src/freeradius-server/src/bin/radclient.c:1099,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1101,1
    - Dst: deallocate_id
      Src: /src/freeradius-server/src/bin/radclient.c:1103,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:1129,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/bin/radclient.c:1132,1
    - Dst: fr_radius_packet_encode
      Src: /src/freeradius-server/src/bin/radclient.c:1134,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1135,1
    - Dst: memmove
      Src: /src/freeradius-server/src/bin/radclient.c:1145,1
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/bin/radclient.c:1149,1
    - Dst: fr_radius_packet_sign
      Src: /src/freeradius-server/src/bin/radclient.c:1152,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1153,1
    - Dst: fr_radius_packet_send
      Src: /src/freeradius-server/src/bin/radclient.c:1161,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1162,1
    - Dst: deallocate_id
      Src: /src/freeradius-server/src/bin/radclient.c:1164,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient.c:1169,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 110
    argCount: 1
    argNames:
    - request
    argTypes:
    - rc_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 1172
    functionName: send_one_packet
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 1
    functionsReached:
    - fr_radius_packet_sign
    - REDEBUG
    - fr_pair_value_memdup
    - fr_time_sub
    - fr_radius_packet_encode
    - fr_radius_packet_log
    - ERROR
    - fr_pair_delete
    - fr_packet_list_id_alloc
    - fr_time
    - memmove
    - fr_socket_bind
    - fr_chap_encode
    - fr_time_delta_sub
    - fr_time_delta_eq
    - fr_packet_list_socket_add
    - DEBUG
    - fr_socket_server_udp
    - fr_pair_find_by_da_nested
    - fr_time_delta_gt
    - fr_radius_packet_send
    - fr_rand
    - fr_perror
    - fr_assert
    - fr_time_delta_lt
    - pair_update_request
    - fr_pair_find_by_da
    - fr_exit_now
    - fr_time_delta_wrap
    - mschapv1_encode
    - fr_nbo_from_uint16
    - fr_socket_client_tcp
    - fr_packet_list_yank
    - deallocate_id
    linkageType: ''
    returnType: int
    signature: int send_one_packet(rc_request_t *request)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1186,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/bin/radclient.c:1190,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/bin/radclient.c:1191,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/bin/radclient.c:1193,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient.c:1193,1
    - Dst: select
      Src: /src/freeradius-server/src/bin/radclient.c:1198,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/radclient.c:1198,1
    - Dst: fr_packet_recv
      Src: /src/freeradius-server/src/bin/radclient.c:1203,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1205,1
    - Dst: fr_radius_packet_verify
      Src: /src/freeradius-server/src/bin/radclient.c:1212,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1213,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:1214,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/radclient.c:1218,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/bin/radclient.c:1223,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1226,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:1227,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient.c:1231,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/bin/radclient.c:1239,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1241,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:1242,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:1245,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/radclient.c:1248,1
    - Dst: fr_pair_list_steal
      Src: /src/freeradius-server/src/bin/radclient.c:1250,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/bin/radclient.c:1251,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/bin/radclient.c:1258,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1259,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1262,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radclient.c:1270,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient.c:1276,1
    - Dst: fr_pair_validate
      Src: /src/freeradius-server/src/bin/radclient.c:1277,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1278,1
    - Dst: fr_pair_validate_debug
      Src: /src/freeradius-server/src/bin/radclient.c:1281,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1282,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1307,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient.c:1311,1
    - Dst: fr_radius_packet_send
      Src: /src/freeradius-server/src/bin/radclient.c:1317,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1318,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/bin/radclient.c:1322,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radclient.c:1327,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 87
    argCount: 1
    argNames:
    - wait_time
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1329
    functionName: recv_coa_packet
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_list_sort
    - fr_pair_validate_debug
    - fr_pair_list_empty
    - fr_radius_packet_log
    - fr_time_delta_ispos
    - select
    - DEBUG
    - fr_pair_list_init
    - fr_pair_validate
    - fr_pair_list_steal
    - talloc_steal
    - fr_radius_packet_send
    - FR_RADIUS_PACKET_CODE_VALID
    - fr_packet_recv
    - fr_rb_find
    - fr_assert
    - fr_pair_list_append
    - fr_radius_packet_verify
    - fr_time_delta_from_sec
    - fr_exit_now
    - RDEBUG
    - FD_SET
    - TALLOC_FREE
    - FD_ZERO
    - talloc_free
    - fr_radius_decode_simple
    - fr_time_delta_to_timeval
    - fr_rb_remove
    linkageType: ''
    returnType: int
    signature: int recv_coa_packet(fr_time_delta_t wait_time)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1356,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1362,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1378,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:1387,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/bin/radclient.c:1428,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1429,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1430,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/radclient.c:1434,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1445,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - request
    - reply
    argTypes:
    - rc_request_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1455
    functionName: blast_radius_check
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - ERROR
    - RDEBUG
    - memcmp
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int blast_radius_check(rc_request_t *request, fr_packet_t *reply)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1470,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/bin/radclient.c:1474,1
    - Dst: fr_packet_list_fd_set
      Src: /src/freeradius-server/src/bin/radclient.c:1476,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1477,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/bin/radclient.c:1479,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient.c:1479,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/bin/radclient.c:1481,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/bin/radclient.c:1482,1
    - Dst: select
      Src: /src/freeradius-server/src/bin/radclient.c:1490,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/radclient.c:1490,1
    - Dst: FD_ISSET
      Src: /src/freeradius-server/src/bin/radclient.c:1495,1
    - Dst: recv_coa_packet
      Src: /src/freeradius-server/src/bin/radclient.c:1496,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:1496,1
    - Dst: FD_CLR
      Src: /src/freeradius-server/src/bin/radclient.c:1497,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient.c:1498,1
    - Dst: fr_packet_list_recv
      Src: /src/freeradius-server/src/bin/radclient.c:1505,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1507,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1514,1
    - Dst: fr_packet_list_find_byreply
      Src: /src/freeradius-server/src/bin/radclient.c:1541,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1543,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radclient.c:1545,1
    - Dst: blast_radius_check
      Src: /src/freeradius-server/src/bin/radclient.c:1559,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radclient.c:1560,1
    - Dst: fr_radius_packet_verify
      Src: /src/freeradius-server/src/bin/radclient.c:1568,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1569,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1575,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1579,1
    - Dst: deallocate_id
      Src: /src/freeradius-server/src/bin/radclient.c:1583,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/bin/radclient.c:1590,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1593,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/bin/radclient.c:1597,1
    - Dst: fr_radius_packet_log
      Src: /src/freeradius-server/src/bin/radclient.c:1598,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radclient.c:1621,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/bin/radclient.c:1628,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1629,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1632,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/radclient.c:1639,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/bin/radclient.c:1644,1
    - Dst: fr_pair_validate
      Src: /src/freeradius-server/src/bin/radclient.c:1645,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1646,1
    - Dst: fr_pair_validate_debug
      Src: /src/freeradius-server/src/bin/radclient.c:1649,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1650,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radclient.c:1660,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/radclient.c:1661,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 118
    argCount: 1
    argNames:
    - wait_time
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1664
    functionName: recv_one_packet
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - blast_radius_check
    - fr_rb_num_elements
    - REDEBUG
    - fr_pair_list_sort
    - fr_packet_list_fd_set
    - FD_CLR
    - fr_pair_validate_debug
    - fr_pair_list_empty
    - fr_packet_list_recv
    - ERROR
    - fr_radius_packet_log
    - FD_ISSET
    - fr_time_delta_ispos
    - select
    - recv_coa_packet
    - fr_pair_validate
    - fr_packet_list_find_byreply
    - FR_RADIUS_PACKET_CODE_VALID
    - PAIR_LIST_VERIFY
    - fr_radius_packet_verify
    - fr_packet_free
    - fr_time_delta_from_sec
    - fr_exit_now
    - fr_time_delta_wrap
    - RDEBUG
    - FD_SET
    - FD_ZERO
    - fr_radius_decode_simple
    - fr_strerror_clear
    - fr_time_delta_to_timeval
    - deallocate_id
    linkageType: ''
    returnType: int
    signature: int recv_one_packet(fr_time_delta_t wait_time)
  - BBCount: 94
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/radclient.c:1699,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radclient.c:1702,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radclient.c:1704,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radclient.c:1704,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1705,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1706,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/bin/radclient.c:1710,1
    - Dst: rc_request_list_talloc_init
      Src: /src/freeradius-server/src/bin/radclient.c:1712,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/bin/radclient.c:1714,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radclient.c:1723,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient.c:1741,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1741,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1743,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1745,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient.c:1752,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/bin/radclient.c:1753,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1755,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1756,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1761,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1762,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/radclient.c:1777,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1778,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1781,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:1791,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient.c:1791,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radclient.c:1791,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient.c:1798,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient.c:1801,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:1809,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/bin/radclient.c:1809,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/radclient.c:1815,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient.c:1815,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/radclient.c:1822,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radclient.c:1822,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/bin/radclient.c:1829,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient.c:1838,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1839,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1841,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1843,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1848,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1849,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1853,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1864,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1865,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient.c:1869,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient.c:1871,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1874,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient.c:1879,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1879,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:1880,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1881,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radclient.c:1891,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1893,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:1893,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1894,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/radclient.c:1896,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1897,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radclient.c:1897,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1898,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radclient.c:1900,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radclient.c:1903,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radclient.c:1910,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1911,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1912,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radclient.c:1914,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/bin/radclient.c:1919,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radclient.c:1919,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1920,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1921,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radclient.c:1927,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1928,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1937,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1943,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:1944,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radclient.c:1949,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1950,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1951,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radclient.c:1954,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1955,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1956,1
    - Dst: fr_radius_global_init
      Src: /src/freeradius-server/src/bin/radclient.c:1959,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1960,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1961,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/radclient.c:1964,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1965,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radclient.c:1966,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/bin/radclient.c:1969,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1970,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radclient.c:1971,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/radclient.c:1974,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/bin/radclient.c:1974,1
    - Dst: fr_log_perror
      Src: /src/freeradius-server/src/bin/radclient.c:1975,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radclient.c:1977,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/radclient.c:1981,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radclient.c:1981,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1983,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:1984,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:1987,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/bin/radclient.c:1987,1
    - Dst: packet_global_init
      Src: /src/freeradius-server/src/bin/radclient.c:1989,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radclient.c:1991,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/radclient.c:1996,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radclient.c:1997,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:1999,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radclient.c:2000,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radclient.c:2003,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radclient.c:2009,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/bin/radclient.c:2010,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2011,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2012,1
    - Dst: radclient_get_code
      Src: /src/freeradius-server/src/bin/radclient.c:2018,1
    - Dst: radclient_get_port
      Src: /src/freeradius-server/src/bin/radclient.c:2020,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2026,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radclient.c:2027,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/bin/radclient.c:2033,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radclient.c:2036,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radclient.c:2036,1
    - Dst: radclient_init
      Src: /src/freeradius-server/src/bin/radclient.c:2038,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2038,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/bin/radclient.c:2044,1
    - Dst: radclient_init
      Src: /src/freeradius-server/src/bin/radclient.c:2045,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:2046,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2047,1
    - Dst: rc_request_list_num_elements
      Src: /src/freeradius-server/src/bin/radclient.c:2054,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:2055,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2056,1
    - Dst: openssl3_init
      Src: /src/freeradius-server/src/bin/radclient.c:2059,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2060,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2061,1
    - Dst: rc_request_list_head
      Src: /src/freeradius-server/src/bin/radclient.c:2068,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/radclient.c:2072,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/bin/radclient.c:2082,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:2084,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/bin/radclient.c:2089,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2091,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/bin/radclient.c:2095,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2096,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/bin/radclient.c:2102,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2104,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/bin/radclient.c:2108,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2109,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radclient.c:2114,1
    - Dst: fr_packet_list_create
      Src: /src/freeradius-server/src/bin/radclient.c:2114,1
    - Dst: fr_packet_list_socket_add
      Src: /src/freeradius-server/src/bin/radclient.c:2115,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radclient.c:2117,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2118,1
    - Dst: rc_request_list_foreach
      Src: /src/freeradius-server/src/bin/radclient.c:2125,1
    - Dst: radclient_sane
      Src: /src/freeradius-server/src/bin/radclient.c:2128,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/radclient.c:2129,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2147,1
    - Dst: rc_request_list_foreach
      Src: /src/freeradius-server/src/bin/radclient.c:2158,1
    - Dst: recv_one_packet
      Src: /src/freeradius-server/src/bin/radclient.c:2164,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2164,1
    - Dst: recv_coa_packet
      Src: /src/freeradius-server/src/bin/radclient.c:2175,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2179,1
    - Dst: send_one_packet
      Src: /src/freeradius-server/src/bin/radclient.c:2203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2204,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radclient.c:2215,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2215,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2220,1
    - Dst: select
      Src: /src/freeradius-server/src/bin/radclient.c:2231,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/radclient.c:2231,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2243,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/bin/radclient.c:2246,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:2250,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radclient.c:2251,1
    - Dst: fr_packet_list_num_elements
      Src: /src/freeradius-server/src/bin/radclient.c:2259,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radclient.c:2262,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/bin/radclient.c:2272,1
    - Dst: recv_one_packet
      Src: /src/freeradius-server/src/bin/radclient.c:2273,1
    - Dst: fr_packet_list_free
      Src: /src/freeradius-server/src/bin/radclient.c:2277,1
    - Dst: rc_request_list_talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2279,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2281,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2283,1
    - Dst: fr_radius_global_free
      Src: /src/freeradius-server/src/bin/radclient.c:2285,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/radclient.c:2287,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2288,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radclient.c:2293,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radclient.c:2297,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/radclient.c:2317,1
    - Dst: openssl3_free
      Src: /src/freeradius-server/src/bin/radclient.c:2321,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 380
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 2324
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radclient.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - fr_dict_read
    - fr_socket_bind
    - openssl3_free
    - packet_global_init
    - select
    - fr_atexit_global_trigger_all
    - talloc_strndup
    - fr_dict_attr_autoload
    - rc_request_list_head
    - radclient_get_port
    - fr_perror
    - rc_request_list_num_elements
    - radclient_init
    - rc_request_list_foreach
    - fr_socket_client_tcp
    - atoi
    - fr_atexit_global_setup
    - fr_check_lib_magic
    - strlen
    - fr_log_perror
    - MEM
    - fr_packet_list_free
    - rc_request_list_talloc_init
    - talloc_autofree_context
    - fr_inet_pton_port
    - exit
    - DEBUG
    - fr_packet_list_socket_add
    - fr_socket_server_udp
    - fr_dict_global_ctx_init
    - fr_fault_setup
    - fr_rand
    - strcmp
    - getenv
    - fr_time_delta_from_sec
    - fr_exit_now
    - fr_dlist_foreach
    - fr_dict_unconst
    - fr_radius_global_init
    - talloc_set_log_stderr
    - talloc_free
    - fr_packet_list_num_elements
    - send_one_packet
    - fr_rb_inline_talloc_alloc
    - recv_one_packet
    - fr_dlist_num_elements
    - rc_request_list_talloc_free
    - fr_time_delta_ispos
    - fr_packet_list_create
    - recv_coa_packet
    - fr_dict_attr_by_name
    - fr_syserror
    - UNCONST
    - usage
    - getopt
    - fr_assert
    - fr_time_delta_wrap
    - radclient_sane
    - fr_dict_root
    - isdigit
    - fgets
    - talloc_strdup
    - radclient_get_code
    - fopen
    - fr_dict_autofree
    - fr_dict_autoload
    - ERROR
    - fr_radius_global_free
    - fr_table_value_by_str
    - memset
    - openssl3_init
    - strncmp
    - fclose
    - fr_time_delta_from_str
    - strchr
    - talloc_zero
    - fr_strerror_clear
    - fr_time_delta_to_timeval
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: DEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: INFO
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: RIDEBUG_ENABLED
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIDEBUG_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: RDEBUG_ENABLED
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: RDEBUG_ENABLED2
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLED2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: REDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: RIDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: RDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: RDEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radsniff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: DEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: WARN
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: RDEBUG_ENABLED
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: RDEBUG_ENABLED2
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLED2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: REDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: RDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: RDEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rc_request_list_foreach
    functionSourceFile: /src/freeradius-server/src/bin/radclient-ng.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rc_request_list_foreach(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: DEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: INFO
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:68,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:69,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:70,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:71,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:72,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:73,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:74,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:75,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:76,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:77,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:78,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:79,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:80,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:81,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:82,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 9
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radict.c:92,1
    - Dst: opendir
      Src: /src/freeradius-server/src/bin/radict.c:94,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radict.c:96,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radict.c:96,1
    - Dst: readdir
      Src: /src/freeradius-server/src/bin/radict.c:100,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radict.c:109,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radict.c:114,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radict.c:116,1
    - Dst: stat
      Src: /src/freeradius-server/src/bin/radict.c:118,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radict.c:119,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radict.c:119,1
    - Dst: closedir
      Src: /src/freeradius-server/src/bin/radict.c:121,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radict.c:122,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radict.c:134,1
    - Dst: stat
      Src: /src/freeradius-server/src/bin/radict.c:135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radict.c:136,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/radict.c:143,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/radict.c:144,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radict.c:148,1
    - Dst: fr_dict_protocol_afrom_file
      Src: /src/freeradius-server/src/bin/radict.c:149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radict.c:160,1
    - Dst: closedir
      Src: /src/freeradius-server/src/bin/radict.c:162,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radict.c:166,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radict.c:168,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - dict_dir
    - protocol
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 175
    functionName: load_dicts
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - fr_dict_protocol_afrom_file
    - talloc_free
    - fr_strerror_printf
    - fr_syserror
    - stat
    - opendir
    - strcmp
    - talloc_asprintf
    - readdir
    - fr_strerror_const
    - DEBUG
    - NUM_ELEMENTS
    - closedir
    linkageType: ''
    returnType: int
    signature: int load_dicts(char const *dict_dir, char const *protocol)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radict.c:185,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radict.c:186,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/bin/radict.c:192,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radict.c:193,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/radict.c:194,1
    - Dst: fr_dict_attr_flags_print
      Src: /src/freeradius-server/src/bin/radict.c:197,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/bin/radict.c:200,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:202,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/radict.c:206,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/radict.c:212,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:213,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:214,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:218,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/radict.c:223,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:224,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:225,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:229,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/bin/radict.c:235,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/bin/radict.c:238,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/bin/radict.c:240,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/bin/radict.c:245,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:246,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:247,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:251,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/bin/radict.c:258,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:259,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:260,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/radict.c:264,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/radict.c:269,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radict.c:270,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/bin/radict.c:277,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:280,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/bin/radict.c:282,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/bin/radict.c:284,1
    - Dst: da_print_info
      Src: /src/freeradius-server/src/bin/radict.c:285,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - dict
    - da
    - depth
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 287
    functionName: da_print_info
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - fr_hash_table_iter_next
    - fr_asprintf
    - talloc_free
    - fr_dict_attr_flags_print
    - fr_strerror_printf
    - FR_SBUFF_OUT
    - fr_dict_attr_oid_print
    - fr_type_is_structural
    - da_print_info
    - fr_dict_attr_ext
    - fr_hash_table_iter_init
    - fr_assert
    - fr_exit
    - printf
    - fr_type_to_str
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void da_print_info(fr_dict_t const *dict, fr_dict_attr_t const *da,
      int depth)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radict.c:335,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/radict.c:343,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:345,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radict.c:347,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/bin/radict.c:348,1
    - Dst: islower
      Src: /src/freeradius-server/src/bin/radict.c:362,1
    - Dst: isupper
      Src: /src/freeradius-server/src/bin/radict.c:367,1
    - Dst: tolower
      Src: /src/freeradius-server/src/bin/radict.c:372,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - da
    - buffer
    argTypes:
    - fr_dict_attr_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 380
    functionName: da_normalize_name
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - tolower
    - isupper
    - strlen
    - strncmp
    - islower
    - fr_dict_root
    - strncasecmp
    linkageType: ''
    returnType: void
    signature: void da_normalize_name(fr_dict_attr_t const *da, char buffer[static
      FR_DICT_ATTR_MAX_NAME_LEN*2 + 1])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:386,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - da
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: da_print_name
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - da_normalize_name
    - fprintf
    linkageType: ''
    returnType: void
    signature: void da_print_name(FILE *fp, fr_dict_attr_t const *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radict.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - parent
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: children_ok
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: bool
    signature: bool children_ok(fr_dict_attr_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: CHECK_TYPE
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TYPE(_parent)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/freeradius-server/src/bin/radict.c:434,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:439,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:440,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radict.c:442,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:448,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/bin/radict.c:450,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:457,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:462,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:468,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:470,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:474,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:475,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:476,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radict.c:480,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:481,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:485,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:488,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:491,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:494,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:496,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:497,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:497,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:498,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:499,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:500,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - fp
    - parent
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 501
    functionName: da_print_struct
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - CHECK_TYPE
    - fprintf
    - fr_assert
    - da_is_bit_field
    - fr_dict_attr_child_by_num
    - da_print_name
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void da_print_struct(FILE *fp, fr_dict_attr_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/freeradius-server/src/bin/radict.c:509,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:511,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:513,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radict.c:515,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:516,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:517,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:518,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fp
    - parent
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 522
    functionName: da_print_base_c_da_def
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - CHECK_TYPE
    - fprintf
    - da_print_name
    - fr_dict_attr_child_by_num
    - da_normalize_name
    linkageType: ''
    returnType: void
    signature: void da_print_base_c_da_def(FILE *fp, fr_dict_attr_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 528
    functionName: ENUM_NAME
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENUM_NAME(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/freeradius-server/src/bin/radict.c:581,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:583,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:583,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:584,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:586,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:588,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:589,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:590,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:591,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radict.c:593,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:596,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:598,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radict.c:604,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:605,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:606,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:607,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:608,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:610,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:612,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:613,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:614,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:616,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:618,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:621,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - fp
    - parent
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 623
    functionName: da_print_stats_link
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - CHECK_TYPE
    - fprintf
    - fr_dict_attr_child_by_num
    - da_print_name
    - da_normalize_name
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void da_print_stats_link(FILE *fp, fr_dict_attr_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/freeradius-server/src/bin/radict.c:632,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:634,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:634,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:635,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:640,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/bin/radict.c:646,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:647,1
    - Dst: da_print_name
      Src: /src/freeradius-server/src/bin/radict.c:648,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:649,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fp
    - parent
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 654
    functionName: da_print_attr_autoload
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - CHECK_TYPE
    - fprintf
    - fr_dict_attr_child_by_num
    - da_print_name
    - da_normalize_name
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void da_print_attr_autoload(FILE *fp, fr_dict_attr_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_TYPE
      Src: /src/freeradius-server/src/bin/radict.c:661,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:663,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:663,1
    - Dst: da_normalize_name
      Src: /src/freeradius-server/src/bin/radict.c:664,1
    - Dst: da_print_struct
      Src: /src/freeradius-server/src/bin/radict.c:666,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:668,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:670,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:671,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - parent
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 656
    functionDepth: 4
    functionLinenumber: 656
    functionLinenumberEnd: 674
    functionName: da_print_stats_h
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - CHECK_TYPE
    - fprintf
    - da_print_struct
    - da_normalize_name
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void da_print_stats_h(FILE *fp, fr_dict_attr_t const *parent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_flags_print
      Src: /src/freeradius-server/src/bin/radict.c:685,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/radict.c:685,1
    - Dst: da_print_info
      Src: /src/freeradius-server/src/bin/radict.c:699,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/bin/radict.c:699,1
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/bin/radict.c:707,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/bin/radict.c:709,1
    - Dst: _raddict_export
      Src: /src/freeradius-server/src/bin/radict.c:712,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 6
    argNames:
    - dict
    - count
    - low
    - high
    - da
    - lvl
    argTypes:
    - fr_dict_t*
    - uint64_t*
    - uintptr_t*
    - uintptr_t*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 716
    functionName: _raddict_export
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_flags_print
    - FR_SBUFF_OUT
    - da_print_info
    - _raddict_export
    - dict_attr_children
    - talloc_array_length
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void _raddict_export(fr_dict_t const *dict, uint64_t *count, uintptr_t
      *low, uintptr_t *high, fr_dict_attr_t const *da, unsigned int lvl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _raddict_export
      Src: /src/freeradius-server/src/bin/radict.c:724,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - count
    - low
    - high
    - dict
    argTypes:
    - uint64_t*
    - uintptr_t*
    - uintptr_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 725
    functionName: raddict_export
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 2
    functionsReached:
    - _raddict_export
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void raddict_export(uint64_t *count, uintptr_t *low, uintptr_t *high,
      fr_dict_t *dict)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/radict.c:775,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radict.c:777,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radict.c:780,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radict.c:780,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:781,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/radict.c:782,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/bin/radict.c:786,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radict.c:791,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radict.c:809,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radict.c:811,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/radict.c:812,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/radict.c:815,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radict.c:848,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radict.c:857,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:858,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radict.c:863,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:864,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radict.c:869,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/radict.c:871,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:872,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radict.c:880,1
    - Dst: load_dicts
      Src: /src/freeradius-server/src/bin/radict.c:881,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:882,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:888,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/radict.c:895,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/radict.c:900,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/bin/radict.c:907,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:907,1
    - Dst: fr_dict_export
      Src: /src/freeradius-server/src/bin/radict.c:908,1
    - Dst: raddict_export
      Src: /src/freeradius-server/src/bin/radict.c:921,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radict.c:922,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radict.c:923,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/bin/radict.c:923,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radict.c:924,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/bin/radict.c:934,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:934,1
    - Dst: fr_dict_alias_export
      Src: /src/freeradius-server/src/bin/radict.c:935,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:935,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radict.c:956,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:956,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/bin/radict.c:958,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:958,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/radict.c:960,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/radict.c:961,1
    - Dst: da_print_info
      Src: /src/freeradius-server/src/bin/radict.c:966,1
    - Dst: func
      Src: /src/freeradius-server/src/bin/radict.c:969,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/bin/radict.c:986,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radict.c:989,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radict.c:989,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/radict.c:995,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 161
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 998
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radict.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - raddict_export
    - fr_dict_alias_export
    - fr_dict_export
    - talloc_total_size
    - fr_dict_internal_afrom_file
    - fr_dict_attr_by_oid
    - fr_dict_free
    - func
    - da_print_info
    - fr_dict_root
    - talloc_autofree_context
    - fr_table_value_by_str
    - fr_exit
    - printf
    - DEBUG2
    - DEBUG
    - fr_dict_global_ctx_init
    - fr_atexit_global_trigger_all
    - fr_fault_setup
    - usage
    - getopt
    - strcasecmp
    - fr_perror
    - load_dicts
    - getenv
    - talloc_free
    - talloc_set_log_stderr
    - fprintf
    - fr_strerror_clear
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:115,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:116,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:118,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:119,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:120,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:121,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:122,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:123,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:124,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:125,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:126,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 10
    functionsReached:
    - DEBUG
    - fr_exit
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/dhcpclient.c:146,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:148,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:148,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:152,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/dhcpclient.c:156,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/dhcpclient.c:161,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:162,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:163,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/dhcpclient.c:164,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/bin/dhcpclient.c:171,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/bin/dhcpclient.c:173,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/bin/dhcpclient.c:196,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/dhcpclient.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - out
    - packet_vps
    - filename
    argTypes:
    - fr_packet_t**
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 206
    functionName: request_init
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_pair_list_next
    - fr_packet_alloc
    - fr_packet_net_from_pairs
    - fr_syserror
    - fr_perror
    - fr_pair_list_head
    - fr_pair_list_afrom_file
    - fopen
    - fr_packet_free
    - DEBUG
    - fclose
    linkageType: ''
    returnType: int
    signature: int request_init(fr_packet_t **out, fr_pair_list_t *packet_vps, char
      const *filename)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:238,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/bin/dhcpclient.c:243,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:245,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/bin/dhcpclient.c:246,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/bin/dhcpclient.c:250,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/bin/dhcpclient.c:251,1
    - Dst: select
      Src: /src/freeradius-server/src/bin/dhcpclient.c:252,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/dhcpclient.c:252,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/dhcpclient.c:254,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:254,1
    - Dst: FD_ISSET
      Src: /src/freeradius-server/src/bin/dhcpclient.c:258,1
    - Dst: fr_dhcpv4_pcap_recv
      Src: /src/freeradius-server/src/bin/dhcpclient.c:263,1
    - Dst: fr_dhcpv4_raw_packet_recv
      Src: /src/freeradius-server/src/bin/dhcpclient.c:272,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/dhcpclient.c:278,1
    - Dst: fr_dhcpv4_print_hex
      Src: /src/freeradius-server/src/bin/dhcpclient.c:284,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:286,1
    - Dst: fr_dhcpv4_decode
      Src: /src/freeradius-server/src/bin/dhcpclient.c:287,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:288,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/dhcpclient.c:295,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/dhcpclient.c:296,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/bin/dhcpclient.c:300,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:309,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:317,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:322,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/dhcpclient.c:323,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/dhcpclient.c:325,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - lsockfd
    - p_ll
    - request
    - request_list
    argTypes:
    - int
    - HAVE_LINUX_IF_PACKET_H*
    - fr_packet_t*
    - HAVE_LINUX_IF_PACKET_H*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 332
    functionName: fr_dhcpv4_recv_raw_loop
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_init
    - talloc_realloc
    - fr_strerror_printf
    - ERROR
    - FD_ISSET
    - fr_time_delta_ispos
    - select
    - DEBUG
    - fr_pair_list_init
    - fr_dhcpv4_print_hex
    - fr_time_delta_unwrap
    - fr_dhcpv4_raw_packet_recv
    - inet_ntop
    - fr_syserror
    - fr_dhcpv4_decode
    - fr_pair_find_by_da
    - fr_time_delta_wrap
    - FD_SET
    - fr_dhcpv4_pcap_recv
    - FD_ZERO
    - fr_time_delta_to_timeval
    linkageType: ''
    returnType: fr_packet_t
    signature: "fr_packet_t *fr_dhcpv4_recv_raw_loop(int lsockfd,\n#ifdef HAVE_LINUX_IF_PACKET_H\n\t\t\t\t\t
      \   struct sockaddr_ll *p_ll,\n#endif\n\t\t\t\t\t    fr_packet_t *request,\n#ifndef
      HAVE_LINUX_IF_PACKET_H\n\t\t\t\t\t    UNUSED\n#endif\n\t\t\t\t\t    fr_pair_list_t
      *request_list\n\t\t\t\t\t    )"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_raw_socket_open
      Src: /src/freeradius-server/src/bin/dhcpclient.c:345,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:347,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/bin/dhcpclient.c:353,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:355,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:355,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/bin/dhcpclient.c:359,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:360,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:360,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/bin/dhcpclient.c:370,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/bin/dhcpclient.c:371,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:372,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:372,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/bin/dhcpclient.c:376,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:377,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:377,1
    - Dst: fr_dhcpv4_raw_packet_send
      Src: /src/freeradius-server/src/bin/dhcpclient.c:384,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:385,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:385,1
    - Dst: fr_dhcpv4_recv_raw_loop
      Src: /src/freeradius-server/src/bin/dhcpclient.c:390,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:392,1
    - Dst: fr_dhcpv4_udp_packet_send
      Src: /src/freeradius-server/src/bin/dhcpclient.c:398,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:399,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:399,1
    - Dst: fr_dhcpv4_udp_packet_recv
      Src: /src/freeradius-server/src/bin/dhcpclient.c:404,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/dhcpclient.c:407,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:408,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:410,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - reply
    - request
    - request_list
    argTypes:
    - fr_packet_t**
    - fr_packet_t*
    - HAVE_LINUX_IF_PACKET_H*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 417
    functionName: send_with_socket
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_dhcpv4_raw_packet_send
    - fr_dhcpv4_udp_packet_recv
    - fr_dhcpv4_raw_socket_open
    - fr_syserror
    - fr_socket_bind
    - fr_dhcpv4_udp_packet_send
    - fr_strerror
    - setsockopt
    - fr_time_delta_to_timeval
    - fr_dhcpv4_recv_raw_loop
    - fr_strerror_clear
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: "int send_with_socket(fr_packet_t **reply, fr_packet_t *request,\n#ifndef
      HAVE_LINUX_IF_PACKET_H\n\t\t\t    UNUSED\n#endif\n\t\t\t    fr_pair_list_t *request_list)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:425,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:427,1
    - Dst: fr_pcap_open
      Src: /src/freeradius-server/src/bin/dhcpclient.c:431,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:432,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:433,1
    - Dst: fr_inet_ntoh
      Src: /src/freeradius-server/src/bin/dhcpclient.c:437,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/dhcpclient.c:438,1
    - Dst: fr_pcap_apply_filter
      Src: /src/freeradius-server/src/bin/dhcpclient.c:440,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:441,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:442,1
    - Dst: fr_dhcpv4_pcap_send
      Src: /src/freeradius-server/src/bin/dhcpclient.c:446,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:447,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:448,1
    - Dst: fr_dhcpv4_recv_raw_loop
      Src: /src/freeradius-server/src/bin/dhcpclient.c:454,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:461,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - reply
    - request
    - request_list
    argTypes:
    - fr_packet_t**
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 468
    functionName: send_with_pcap
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 0
    functionsReached:
    - fr_inet_ntoh
    - ERROR
    - talloc_free
    - fr_dhcpv4_pcap_send
    - snprintf
    - fr_pcap_open
    - fr_pcap_init
    - fr_pcap_apply_filter
    - fr_dhcpv4_recv_raw_loop
    linkageType: ''
    returnType: int
    signature: int send_with_pcap(fr_packet_t **reply, fr_packet_t *request, fr_pair_list_t
      *request_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/bin/dhcpclient.c:490,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/dhcpclient.c:499,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/bin/dhcpclient.c:505,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/bin/dhcpclient.c:512,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/bin/dhcpclient.c:517,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/bin/dhcpclient.c:519,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/bin/dhcpclient.c:522,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/dhcpclient.c:524,1
    - Dst: fr_pair_print
      Src: /src/freeradius-server/src/bin/dhcpclient.c:525,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/dhcpclient.c:526,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/dhcpclient.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - packet
    - list
    - received
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 528
    functionName: dhcp_packet_debug
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_ifname_from_ifindex
    - fr_pair_list_next
    - inet_ntop
    - FR_SBUFF_OUT
    - fr_pair_print
    - fr_pair_list_head
    - PAIR_VERIFY
    - printf
    linkageType: ''
    returnType: void
    signature: void dhcp_packet_debug(fr_packet_t *packet, fr_pair_list_t *list, bool
      received)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:550,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:551,1
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/dhcpclient.c:556,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/dhcpclient.c:560,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:578,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/dhcpclient.c:578,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/dhcpclient.c:579,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/dhcpclient.c:580,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/bin/dhcpclient.c:584,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/dhcpclient.c:584,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/dhcpclient.c:584,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:588,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:589,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/dhcpclient.c:597,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/dhcpclient.c:602,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:604,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:605,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:606,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/dhcpclient.c:609,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:610,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:611,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/bin/dhcpclient.c:614,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:615,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:616,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/dhcpclient.c:619,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/bin/dhcpclient.c:619,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:620,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:621,1
    - Dst: packet_global_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:624,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/dhcpclient.c:626,1
    - Dst: fr_dhcpv4_global_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:631,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:632,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:633,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/dhcpclient.c:640,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/bin/dhcpclient.c:641,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/dhcpclient.c:642,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:643,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:644,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:653,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/bin/dhcpclient.c:654,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:656,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/dhcpclient.c:657,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/dhcpclient.c:660,1
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/bin/dhcpclient.c:670,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:672,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:673,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/dhcpclient.c:677,1
    - Dst: request_init
      Src: /src/freeradius-server/src/bin/dhcpclient.c:682,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/dhcpclient.c:682,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:683,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:684,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:700,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:702,1
    - Dst: fr_dhcpv4_packet_encode
      Src: /src/freeradius-server/src/bin/dhcpclient.c:715,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:716,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/dhcpclient.c:717,1
    - Dst: fr_dhcpv4_print_hex
      Src: /src/freeradius-server/src/bin/dhcpclient.c:724,1
    - Dst: fr_dhcpv4_decode
      Src: /src/freeradius-server/src/bin/dhcpclient.c:726,1
    - Dst: dhcp_packet_debug
      Src: /src/freeradius-server/src/bin/dhcpclient.c:727,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:728,1
    - Dst: send_with_pcap
      Src: /src/freeradius-server/src/bin/dhcpclient.c:733,1
    - Dst: send_with_socket
      Src: /src/freeradius-server/src/bin/dhcpclient.c:737,1
    - Dst: fr_dhcpv4_decode
      Src: /src/freeradius-server/src/bin/dhcpclient.c:741,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/dhcpclient.c:742,1
    - Dst: dhcp_packet_debug
      Src: /src/freeradius-server/src/bin/dhcpclient.c:745,1
    - Dst: fr_dhcpv4_global_free
      Src: /src/freeradius-server/src/bin/dhcpclient.c:748,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/dhcpclient.c:750,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/dhcpclient.c:751,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/dhcpclient.c:759,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 149
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 762
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/dhcpclient.c
    functionUses: 0
    functionsReached:
    - isdigit
    - dhcp_packet_debug
    - fr_dict_read
    - fr_dhcpv4_global_init
    - strlen
    - send_with_pcap
    - fr_pair_list_free
    - fr_dict_autofree
    - fr_dict_autoload
    - fr_pair_list_empty
    - ERROR
    - if_nametoindex
    - fr_dhcpv4_global_free
    - packet_global_init
    - fr_inet_pton_port
    - fr_table_value_by_str
    - fr_exit
    - DEBUG
    - fr_pair_list_init
    - fr_dhcpv4_print_hex
    - fr_dict_global_ctx_init
    - fr_atexit_global_trigger_all
    - fr_dict_attr_autoload
    - usage
    - getopt
    - fr_dhcpv4_decode
    - fr_perror
    - strcmp
    - fr_dhcpv4_packet_encode
    - fr_dict_unconst
    - fr_time_delta_from_str
    - send_with_socket
    - fr_strerror_clear
    - request_init
    - atoi
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: RETURN_OK
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_OK(_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: RETURN_OK_WITH_ERROR
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_OK_WITH_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: RETURN_NOOP
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_NOOP(_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: RETURN_SKIP_FILE
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SKIP_FILE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: RETURN_PARSE_ERROR
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_PARSE_ERROR(_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: RETURN_COMMAND_ERROR
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_COMMAND_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: RETURN_MISMATCH
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_MISMATCH(_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: RETURN_EXIT
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_EXIT(_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: xlat_test
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_test(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t       UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request,\n\t\t\t
      \      UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:286,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:288,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buff
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: _free_buffer
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ASAN_UNPOISON_MEMORY_REGION
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int _free_buffer(uint8_t *buff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:311,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:312,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:316,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:320,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:324,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:329,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - buff
    - size
    argTypes:
    - TALLOC_CTX*
    - uint8_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 336
    functionName: poisoned_buffer_allocate
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_array
    - talloc_free
    - ASAN_POISON_MEMORY_REGION
    - talloc_array_length
    - memset
    linkageType: ''
    returnType: int
    signature: int poisoned_buffer_allocate(TALLOC_CTX *ctx, uint8_t **buff, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: POISONED_BUFFER_START
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POISONED_BUFFER_START(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: POISONED_BUFFER_END
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POISONED_BUFFER_END(_p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:346,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:349,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:350,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:363,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:364,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:365,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:367,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:368,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:369,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:374,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:376,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:379,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 7
    argNames:
    - cc
    - command
    - expected
    - expected_len
    - got
    - got_len
    - print_diff
    argTypes:
    - command_file_ctx_t*
    - char*
    - char*
    - size_t
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 383
    functionName: mismatch_print
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strlen
    linkageType: ''
    returnType: void
    signature: "void mismatch_print(command_file_ctx_t *cc, char const *command,\n\t\t\t
      \  char *expected, size_t expected_len, char *got, size_t got_len,\n\t\t\t   bool
      print_diff)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:402,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - char*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 411
    functionName: hex_print
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - is_truncated
    - snprintf
    linkageType: ''
    returnType: size_t
    signature: size_t hex_print(char *out, size_t outlen, uint8_t const *in, size_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:421,1
    - Dst: fr_strerror_peek
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:422,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:423,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - out
    - outlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 430
    functionName: strerror_concat
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - snprintf
    - fr_strerror_peek
    - fr_strerror_pop
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: size_t strerror_concat(char *out, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:439,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:441,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:442,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:442,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:443,1
    - Dst: fr_base64_encode_nstd
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:450,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:450,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:450,1
    - Dst: openat
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:453,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:456,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:457,1
    - Dst: flock
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:461,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:462,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:463,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:464,1
    - Dst: write
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:471,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:473,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:474,1
    - Dst: flock
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:475,1
    - Dst: unlinkat
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:476,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:477,1
    - Dst: flock
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:483,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 4
    argNames:
    - fd_dir
    - text
    - data
    - data_len
    argTypes:
    - int
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 487
    functionName: dump_fuzzer_data
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - write
    - unlinkat
    - fr_sha1_init
    - FR_SBUFF_OUT
    - fr_sha1_final
    - fr_sha1_update
    - fr_strerror_printf
    - fr_syserror
    - openat
    - fr_assert
    - FR_DBUFF_TMP
    - strlen
    - flock
    - close
    - fr_base64_encode_nstd
    linkageType: ''
    returnType: int
    signature: int dump_fuzzer_data(int fd_dir, char const *text, uint8_t const *data,
      size_t data_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:540,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 542
    functionName: encode_data_string
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_data_string(char *buffer, uint8_t *output, size_t outlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:559,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:567,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - buffer
    - endptr
    - output
    - outlen
    argTypes:
    - char*
    - char**
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 573
    functionName: encode_data_tlv
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - encode_tlv
    - fr_skip_whitespace
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_data_tlv(char *buffer, char **endptr, uint8_t *output,
      size_t outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:585,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:589,1
    - Dst: memchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:593,1
    - Dst: tolower
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:593,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:596,1
    - Dst: memchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:600,1
    - Dst: tolower
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 607
    functionName: hex_to_bin
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - tolower
    - fr_strerror_printf
    - memchr
    - fr_skip_whitespace
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t hex_to_bin(uint8_t *out, size_t outlen, char *in, size_t inlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:614,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:615,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:619,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:628,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:631,1
    - Dst: encode_data_tlv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:638,1
    - Dst: encode_data_string
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:651,1
    - Dst: hex_to_bin
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:655,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:655,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - p
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 662
    functionName: encode_data
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - encode_data_string
    - encode_data_tlv
    - fr_skip_whitespace
    - isspace
    - strlen
    - fr_strerror_const_push
    - hex_to_bin
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_data(char *p, uint8_t *output, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:668,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:670,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:675,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buffer
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 685
    functionName: decode_attr
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strtol
    linkageType: ''
    returnType: int
    signature: int decode_attr(char *buffer, char **endptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:692,1
    - Dst: strtol
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:696,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:698,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:703,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:708,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - buffer
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 719
    functionName: decode_vendor
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strtol
    linkageType: ''
    returnType: int
    signature: int decode_vendor(char *buffer, char **endptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_attr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:727,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:735,1
    - Dst: encode_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:738,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 750
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 2
    functionsReached:
    - encode_data
    - ERROR
    - encode_tlv
    - decode_attr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_tlv(char *buffer, uint8_t *output, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decode_vendor
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:758,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:766,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 774
    functionName: encode_vsa
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - encode_tlv
    - decode_vendor
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_vsa(char *buffer, uint8_t *output, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decode_vendor
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:783,1
    - Dst: decode_attr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:786,1
    - Dst: encode_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 799
    functionName: encode_evs
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - encode_data
    - decode_attr
    - decode_vendor
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_evs(char *buffer, uint8_t *output, size_t outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_attr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:807,1
    - Dst: encode_evs
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:813,1
    - Dst: encode_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:815,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 801
    functionDepth: 4
    functionLinenumber: 801
    functionLinenumberEnd: 824
    functionName: encode_extended
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - encode_data
    - ERROR
    - encode_evs
    - decode_attr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_extended(char *buffer, uint8_t *output, size_t outlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_attr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:832,1
    - Dst: encode_evs
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:841,1
    - Dst: encode_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:847,1
    - Dst: memmove
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:863,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:864,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 826
    functionDepth: 4
    functionLinenumber: 826
    functionLinenumberEnd: 875
    functionName: encode_long_extended
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - encode_evs
    - memcpy
    - memmove
    - encode_data
    - decode_attr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_long_extended(char *buffer, uint8_t *output, size_t
      outlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decode_attr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:883,1
    - Dst: encode_vsa
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:891,1
    - Dst: encode_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:894,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:898,1
    - Dst: encode_extended
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:903,1
    - Dst: encode_long_extended
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:908,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - buffer
    - output
    - outlen
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 919
    functionName: encode_rfc
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - ERROR
    - encode_vsa
    - encode_long_extended
    - encode_data
    - encode_extended
    - decode_attr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_rfc(char *buffer, uint8_t *output, size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: unload_proto_library
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void unload_proto_library(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:932,1
    - Dst: unload_proto_library
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:936,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:938,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:939,1
    - Dst: dl_by_name
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:941,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:943,1
    - Dst: unload_proto_library
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:944,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:948,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:951,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - proto_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 953
    functionName: load_proto_library
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 1
    functionsReached:
    - TALLOC_FREE
    - dl_by_name
    - snprintf
    - fr_perror
    - fr_assert
    - unload_proto_library
    - strcmp
    - strlen
    - strlcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t load_proto_library(char const *proto_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:962,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:971,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:973,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:976,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:979,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:981,1
    - Dst: unload_proto_library
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - symbol
    - command
    - dflt_symbol
    argTypes:
    - void**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 988
    functionName: load_test_point_by_command
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - strchr
    - snprintf
    - unload_proto_library
    - strlcpy
    - dlsym
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t load_test_point_by_command(void **symbol, char *command, char
      const *dflt_symbol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cc
    argTypes:
    - command_file_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 997
    functionName: dictionary_current
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *dictionary_current(command_file_ctx_t *cc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1014,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1015,1
    - Dst: fr_dict_const_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1022,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1022,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1025,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1027,1
    - Dst: fr_dict_protocol_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1035,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1036,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1037,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1040,1
    - Dst: fr_dict_debug
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1045,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1048,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - result
    - cc
    - in
    - default_subdir
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1049
    functionName: dictionary_load_common
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_protocol_afrom_file
    - RETURN_OK
    - talloc_bstrndup
    - RETURN_PARSE_ERROR
    - talloc_free
    - strchr
    - RETURN_COMMAND_ERROR
    - fr_dict_debug
    - fr_strerror_const
    - fr_dict_const_free
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int dictionary_load_common(command_result_t *result, command_file_ctx_t
      *cc, char const *in, char const *default_subdir)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1063,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1064,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1065,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1067,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1070,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1075,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1076,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1076,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1086,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1086,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1087,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1091,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1094,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1096,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1101,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1102,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1107,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1107,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1113,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1116,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1117,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1120,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1123,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1127,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1129,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1131,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 6
    argNames:
    - result
    - cc
    - box
    - out
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - fr_value_box_t*
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1134
    functionName: parse_typed_value
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_table_value_by_longest_prefix
    - RETURN_OK
    - fr_value_box_cast_in_place
    - fr_value_box_from_substr
    - RETURN_PARSE_ERROR
    - fr_sbuff_used
    - RETURN_OK_WITH_ERROR
    - dictionary_current
    - FR_SBUFF_IN
    - fr_skip_whitespace
    - fr_dict_internal
    - fr_assert
    - strlen
    - fr_type_is_null
    - fr_strerror_const
    - fr_dict_root
    linkageType: ''
    returnType: size_t
    signature: size_t parse_typed_value(command_result_t *result, command_file_ctx_t
      *cc, fr_value_box_t *box, char const **out, char const *in, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1141
    functionName: command_func
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int command_func(UNUSED FILE *fp, UNUSED FILE *fp_err, UNUSED void
      *ctx, UNUSED fr_cmd_info_t const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1148,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1151,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1152,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - info
    argTypes:
    - UNUSED*
    - fr_cmd_walk_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1156
    functionName: command_walk
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int command_walk(UNUSED void *ctx, fr_cmd_walk_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1162,1
    - Dst: fr_cmd_debug
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1163,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1165,1
    - Dst: fr_command_walk
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1169
    functionName: command_print
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - printf
    - fr_cmd_debug
    - fr_command_walk
    linkageType: ''
    returnType: void
    signature: void command_print(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1176
    functionName: CLEAR_TEST_POINT
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_TEST_POINT(_cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - command_result_t *result
    - command_file_ctx_t *cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - UNUSED
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1184
    functionName: command_comment
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t command_comment(UNUSED command_result_t *result, UNUSED command_file_ctx_t
      *cc,\n\t\t\t      UNUSED char *data, UNUSED size_t data_used, UNUSED char *in,
      UNUSED size_t inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1197,1
    - Dst: RETURN_EXIT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1198,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1201,1
    - Dst: process_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1204,1
    - Dst: RETURN_EXIT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1205,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1207,1
    - Dst: process_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1210,1
    - Dst: RETURN_EXIT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1211,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1214
    functionName: command_include
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - RETURN_EXIT
    - strrchr
    - process_file
    - fprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t command_include(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t      UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1222,1
    - Dst: fr_sbuff_out_bool
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1225,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1226,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1227,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1232
    functionName: command_allow_unresolved
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - fr_strerror_printf
    - FR_SBUFF_IN
    - RETURN_COMMAND_ERROR
    - fr_sbuff_out_bool
    linkageType: ''
    returnType: size_t
    signature: "size_t command_allow_unresolved(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t       UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1263,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1265,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1267,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1270,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1272,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1273,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1275,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1275,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1276,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1278,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1279,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1283,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1283,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1284,1
    - Dst: fr_sbuff_trim
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1287,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1289,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1290
    functionName: command_attr_children
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - fr_hash_table_iter_next
    - fr_sbuff_used
    - FR_SBUFF_OUT
    - RETURN_OK_WITH_ERROR
    - fr_dict_attr_oid_print
    - fr_hash_table_iter_init
    - fr_assert
    - fr_sbuff_trim
    - fr_sbuff_in_strcpy
    - fr_type_to_str
    - fr_dict_attr_ref
    - fr_dict_root
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t command_attr_children(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t    UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_flags_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1301,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1301,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1302,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1305
    functionName: command_attr_flags
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_flags_print
    - FR_SBUFF_OUT
    - RETURN_OK_WITH_ERROR
    - RETURN_OK
    linkageType: ''
    returnType: size_t
    signature: "size_t command_attr_flags(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1315,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1315,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1316,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1319
    functionName: command_attr_name
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_oid_print
    - RETURN_OK_WITH_ERROR
    - RETURN_OK
    - FR_SBUFF_OUT
    linkageType: ''
    returnType: size_t
    signature: "size_t command_attr_name(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1329,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1329,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1330,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1333
    functionName: command_attr_oid
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_oid_print
    - RETURN_OK_WITH_ERROR
    - RETURN_OK
    - FR_SBUFF_OUT
    linkageType: ''
    returnType: size_t
    signature: "size_t command_attr_oid(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t       UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1343,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1343,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1343,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1344,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1347
    functionName: command_attr_type
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - FR_SBUFF_OUT
    - RETURN_OK_WITH_ERROR
    - fr_sbuff_in_strcpy
    - fr_type_to_str
    linkageType: ''
    returnType: size_t
    signature: "size_t command_attr_type(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t       UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1375,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1376,1
    - Dst: parse_typed_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1381,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1385,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1387,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1395,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1396,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1402,1
    - Dst: parse_typed_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1404,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1408,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1411,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1412,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1417,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1426,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1426,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1428,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1430,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1431,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1432,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1435,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1436,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1440,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1440,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1441,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1443,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1444
    functionName: command_calc
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_print
    - fr_table_value_by_longest_prefix
    - RETURN_OK
    - RETURN_PARSE_ERROR
    - fr_strerror_printf
    - RETURN_OK_WITH_ERROR
    - fr_value_calc_binary_op
    - FR_SBUFF_OUT
    - fr_skip_whitespace
    - parse_typed_value
    - fr_value_calc_assignment_op
    - talloc_zero
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: "size_t command_calc(command_result_t *result, command_file_ctx_t *cc,\n\t\t\t
      \  char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1459,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1460,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1470,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1471,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1476,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1478,1
    - Dst: parse_typed_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1480,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1483,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1487,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1490,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1491,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1493,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1493,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1495,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1497,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1498,1
    - Dst: fr_value_calc_nary_op
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1501,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1502,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1505,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1505,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1506,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1509
    functionName: command_calc_nary
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_print
    - fr_table_value_by_longest_prefix
    - RETURN_OK
    - RETURN_PARSE_ERROR
    - fr_strerror_printf
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - fr_skip_whitespace
    - parse_typed_value
    - fr_value_box_mark_safe_for
    - fr_value_box_list_insert_tail
    - talloc_zero
    - fr_value_calc_nary_op
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: "size_t command_calc_nary(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\tchar *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1524,1
    - Dst: parse_typed_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1529,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1533,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1535,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1537,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1537,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1539,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1541,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1542,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1543,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1547,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1548,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1548,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1551,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1552,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1555,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1555,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1556,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1559
    functionName: command_cast
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_print
    - fr_table_value_by_longest_prefix
    - RETURN_OK
    - RETURN_PARSE_ERROR
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - fr_skip_whitespace
    - parse_typed_value
    - fr_dict_internal
    - talloc_zero
    - fr_value_box_cast
    - strncmp
    - fr_dict_root
    linkageType: ''
    returnType: size_t
    signature: "size_t command_cast(command_result_t *result, command_file_ctx_t *cc,\n\t\t\t
      \  char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1567,1
    - Dst: fr_realpath
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1569,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1570,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1572,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1574,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1575
    functionName: command_cd
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - RETURN_OK
    - fr_realpath
    - RETURN_COMMAND_ERROR
    - talloc_strlen
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t command_cd(command_result_t *result, command_file_ctx_t *cc,\n\t\t\t
      char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1583,1
    - Dst: RETURN_NOOP
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - result
    - command_file_ctx_t *cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - UNUSED
    - char*
    - size_t
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1585
    functionName: command_clear
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - memset
    - RETURN_NOOP
    linkageType: ''
    returnType: size_t
    signature: "size_t command_clear(command_result_t *result, UNUSED command_file_ctx_t
      *cc,\n\t\t\t    char *data, size_t UNUSED data_used, UNUSED char *in, UNUSED
      size_t inlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1598,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1600,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1602,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1604,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1605,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1611,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1617,1
    - Dst: isspace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1619,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1624,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1627,1
    - Dst: fr_command_add
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1636,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1637,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1638,1
    - Dst: command_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1641,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1643,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1590
    functionDepth: 1
    functionLinenumber: 1590
    functionLinenumberEnd: 1644
    functionName: command_radmin_add
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - RETURN_PARSE_ERROR
    - RETURN_OK_WITH_ERROR
    - strchr
    - talloc_strdup
    - snprintf
    - fr_skip_whitespace
    - command_print
    - talloc_zero
    - isspace
    - fr_strerror_const_push
    - fr_strerror_const
    - fr_command_add
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t command_radmin_add(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t char *data, size_t UNUSED data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1661,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1662,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1664,1
    - Dst: fr_dict_str_to_argv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1665,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1667,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1668,1
    - Dst: fr_command_tab_expand
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1671,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1673,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1674,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1676,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1677,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1682,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1696
    functionName: command_radmin_tab
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RETURN_PARSE_ERROR
    - fr_command_tab_expand
    - snprintf
    - fr_dict_str_to_argv
    - RETURN_COMMAND_ERROR
    - talloc_zero_array
    - fr_strerror_const
    - is_truncated
    linkageType: ''
    returnType: size_t
    signature: "size_t command_radmin_tab(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1709,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1711,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1712,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1714,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1715,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1717,1
    - Dst: xlat_tokenize_condition
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1719,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1719,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1721,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1722,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1723,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1727,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1728,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1729,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1733,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1736,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1736,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1739,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1740,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1743
    functionName: command_condition_normalise
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - RETURN_OK
    - cf_section_alloc
    - talloc_free
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - FR_SBUFF_IN
    - xlat_tokenize_condition
    - fr_skip_whitespace
    - snprintf
    - fr_strerror_printf_push_head
    - RETURN_COMMAND_ERROR
    - cf_lineno_set
    - xlat_print
    - fr_strerror_const
    linkageType: ''
    returnType: size_t
    signature: "size_t command_condition_normalise(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t\t  char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1750,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1751,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1752,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1753,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1757
    functionName: command_count
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - snprintf
    - RETURN_COMMAND_ERROR
    - fr_strerror_const
    - is_truncated
    linkageType: ''
    returnType: size_t
    signature: "size_t command_count(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t    char *data, UNUSED size_t data_used, UNUSED char *in, UNUSED
      size_t inlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1775,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1775,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1775,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1776,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1777,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1779,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1780,1
    - Dst: load_test_point_by_command
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1785,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1787,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1788,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1792,1
    - Dst: fr_test_point_pair_decode_t*::test_ctx
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1794,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1794,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1795,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1796,1
    - Dst: hex_to_bin
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1811,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1813,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1814,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1823,1
    - Dst: fr_test_point_pair_decode_t*::func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1830,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1835,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1836,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1837,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1840,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1841,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1842,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1843,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1851,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1852,1
    - Dst: dump_fuzzer_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1855,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1856,1
    - Dst: fr_pair_list_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1863,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1863,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1865,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1868,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1869,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1870
    functionName: command_decode_pair
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - dump_fuzzer_data
    - dictionary_current
    - FR_SBUFF_OUT
    - fr_test_point_pair_decode_t*::func
    - RETURN_OK
    - RETURN_OK_WITH_ERROR
    - fr_dict_root
    - load_test_point_by_command
    - fr_strerror_const_push
    - fr_pair_afrom_da
    - fr_dict_attr_by_name
    - ASAN_UNPOISON_MEMORY_REGION
    - ASAN_POISON_MEMORY_REGION
    - fr_perror
    - fr_assert
    - RETURN_COMMAND_ERROR
    - CLEAR_TEST_POINT
    - RETURN_PARSE_ERROR
    - fr_pair_list_print
    - fr_skip_whitespace
    - fr_dict_internal
    - hex_to_bin
    - fr_strerror_clear
    - fr_test_point_pair_decode_t*::test_ctx
    linkageType: ''
    returnType: size_t
    signature: "size_t command_decode_pair(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t  char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1887,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1887,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1887,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1888,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1889,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1891,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1892,1
    - Dst: load_test_point_by_command
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1897,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1899,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1900,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1904,1
    - Dst: fr_test_point_proto_decode_t*::test_ctx
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1906,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1906,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1907,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1908,1
    - Dst: hex_to_bin
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1923,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1925,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1926,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1935,1
    - Dst: fr_test_point_proto_decode_t*::func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1937,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1941,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1942,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1943,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1949,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1950,1
    - Dst: dump_fuzzer_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1953,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1954,1
    - Dst: fr_pair_list_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1965,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1965,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1967,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1968,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1971,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1972,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1872
    functionDepth: 2
    functionLinenumber: 1872
    functionLinenumberEnd: 1973
    functionName: command_decode_proto
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_test_point_proto_decode_t*::func
    - dump_fuzzer_data
    - dictionary_current
    - FR_SBUFF_OUT
    - RETURN_OK
    - RETURN_OK_WITH_ERROR
    - load_test_point_by_command
    - fr_strerror_const_push
    - fr_pair_afrom_da
    - fr_dict_attr_by_name
    - ASAN_UNPOISON_MEMORY_REGION
    - ASAN_POISON_MEMORY_REGION
    - fr_assert
    - RETURN_COMMAND_ERROR
    - fr_test_point_proto_decode_t*::test_ctx
    - CLEAR_TEST_POINT
    - RETURN_PARSE_ERROR
    - fr_pair_list_print
    - fr_skip_whitespace
    - fr_dict_internal
    - hex_to_bin
    - fr_strerror_clear
    - fr_dict_root
    linkageType: ''
    returnType: size_t
    signature: "size_t command_decode_proto(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t  char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_parse_str
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1981,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1981,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1981,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1983,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 1984
    functionName: command_dictionary_attribute_parse
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - dictionary_current
    - RETURN_OK_WITH_ERROR
    - fr_dict_parse_str
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t command_dictionary_attribute_parse(command_result_t *result,
      command_file_ctx_t *cc,\n\t\t\t\t\t  \t char *data, UNUSED size_t data_used,
      char *in, UNUSED size_t inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:1997,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2000,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2001,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2004,1
    - Dst: fr_dict_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2016,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2017,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2019,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2021,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1989
    functionDepth: 1
    functionLinenumber: 1989
    functionLinenumberEnd: 2022
    functionName: command_dictionary_read
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_afrom_file
    - RETURN_OK
    - fr_dict_global_ctx_set
    - talloc_free
    - RETURN_PARSE_ERROR
    - RETURN_OK_WITH_ERROR
    - strchr
    - fr_strerror_const
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t command_dictionary_read(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t      char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_debug
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2030,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2030,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - size_t
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2036
    functionName: command_dictionary_dump
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_debug
    - RETURN_OK
    - dictionary_current
    linkageType: ''
    returnType: size_t
    signature: "size_t command_dictionary_dump(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t      UNUSED char *data, size_t data_used, UNUSED char *in, UNUSED
      size_t inlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2048,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2051,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2057,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2059,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2061,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2062,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2064,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2065,1
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2068,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2070,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2072,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2074,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2074,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2084,1
    - Dst: dump_fuzzer_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2089,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2090,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2093,1
    - Dst: hex_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2093,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2039
    functionDepth: 2
    functionLinenumber: 2039
    functionLinenumberEnd: 2094
    functionName: command_encode_dns_label
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - dump_fuzzer_data
    - RETURN_OK
    - talloc_free
    - RETURN_OK_WITH_ERROR
    - strchr
    - snprintf
    - fr_skip_whitespace
    - fr_dns_label_from_value_box
    - talloc_zero
    - strlen
    - RETURN_COMMAND_ERROR
    - hex_print
    - strlcpy
    - fr_value_box_from_str
    linkageType: ''
    returnType: size_t
    signature: "size_t command_encode_dns_label(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\tchar *data, UNUSED size_t data_used, char *in, UNUSED size_t inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2101,1
    - Dst: hex_to_bin
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2106,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2107,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2113,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2116,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2117,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2128,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2128,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2132,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2135,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2096
    functionDepth: 2
    functionLinenumber: 2096
    functionLinenumberEnd: 2137
    functionName: command_decode_dns_label
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - RETURN_OK
    - talloc_free
    - RETURN_PARSE_ERROR
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - fr_value_box_clear
    - talloc_zero
    - hex_to_bin
    - fr_dns_label_to_value_box
    linkageType: ''
    returnType: size_t
    signature: "size_t command_decode_dns_label(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t       char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2157,1
    - Dst: load_test_point_by_command
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2159,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2161,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2162,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2163,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2167,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2179,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2182,1
    - Dst: fr_test_point_pair_encode_t*::test_ctx
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2185,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2185,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2186,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2187,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2188,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2196,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2201,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2201,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2203,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2204,1
    - Dst: PAIR_LIST_VERIFY_WITH_CTX
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2207,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2222,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2224,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2228,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2233,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2235,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2237,1
    - Dst: fr_test_point_pair_encode_t*::func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2238,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2238,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2241,1
    - Dst: fr_strerror_peek
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2243,1
    - Dst: fr_strerror_peek
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2244,1
    - Dst: fr_strerror_peek
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2244,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2251,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2254,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2256,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2257,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2258,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2272,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2285,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2286,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2287,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2293,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2295,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2297,1
    - Dst: dump_fuzzer_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2300,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2301,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2304,1
    - Dst: hex_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2304,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2139
    functionDepth: 2
    functionLinenumber: 2139
    functionLinenumberEnd: 2305
    functionName: command_encode_pair
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - dump_fuzzer_data
    - dictionary_current
    - fr_test_point_pair_encode_t*::func
    - fr_strerror_printf
    - fr_pair_list_afrom_substr
    - FR_DBUFF_TMP
    - fr_pair_list_free
    - RETURN_OK
    - RETURN_OK_WITH_ERROR
    - fr_strerror_peek
    - load_test_point_by_command
    - fr_strerror_const_push
    - hex_print
    - DEBUG
    - fr_pair_list_init
    - PAIR_LIST_VERIFY_WITH_CTX
    - fr_test_point_pair_encode_t*::test_ctx
    - ASAN_UNPOISON_MEMORY_REGION
    - ASAN_POISON_MEMORY_REGION
    - FR_SBUFF_IN
    - fr_pair_dcursor_iter_init
    - RETURN_COMMAND_ERROR
    - strncmp
    - CLEAR_TEST_POINT
    - fr_skip_whitespace
    - fr_dict_internal
    - fr_strerror_clear
    linkageType: ''
    returnType: size_t
    signature: "size_t command_encode_pair(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t  char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2316,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2318,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2319,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2322,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2323,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2326,1
    - Dst: hex_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2310
    functionDepth: 2
    functionLinenumber: 2310
    functionLinenumberEnd: 2327
    functionName: command_encode_raw
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - RETURN_PARSE_ERROR
    - RETURN_OK_WITH_ERROR
    - encode_rfc
    - fr_strerror_const
    - hex_print
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t command_encode_raw(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t         char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2341,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2343,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2344,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2347,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2347,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2348,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2351,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2352,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2353,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2355,1
    - Dst: fr_pair_list_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2361,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2361,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2363,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2364,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2368,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2372,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2375
    functionName: command_read_file
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_free
    - RETURN_OK
    - talloc_free
    - fr_strerror_printf
    - fr_syserror
    - RETURN_OK_WITH_ERROR
    - fr_pair_list_print
    - FR_SBUFF_OUT
    - strlcpy
    - fr_assert
    - fr_pair_list_afrom_file
    - fopen
    - fclose
    - fr_pair_list_init
    - talloc_asprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t command_read_file(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t    char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2381,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2382
    functionName: command_returned
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - snprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t command_returned(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t       char *data, UNUSED size_t data_used, UNUSED char *in, UNUSED
      size_t inlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2396,1
    - Dst: load_test_point_by_command
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2398,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2400,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2401,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2402,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2406,1
    - Dst: fr_test_point_proto_encode_t*::test_ctx
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2407,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2407,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2408,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2409,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2410,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2418,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2423,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2423,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2425,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2426,1
    - Dst: fr_test_point_proto_encode_t*::func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2429,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2430,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2433,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2434,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2439,1
    - Dst: CLEAR_TEST_POINT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2441,1
    - Dst: dump_fuzzer_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2444,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2445,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2448,1
    - Dst: hex_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2384
    functionDepth: 2
    functionLinenumber: 2384
    functionLinenumberEnd: 2449
    functionName: command_encode_proto
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_test_point_proto_encode_t*::test_ctx
    - dump_fuzzer_data
    - RETURN_OK
    - CLEAR_TEST_POINT
    - dictionary_current
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_IN
    - fr_skip_whitespace
    - fr_dict_internal
    - fr_pair_list_afrom_substr
    - fr_test_point_proto_encode_t*::func
    - RETURN_COMMAND_ERROR
    - load_test_point_by_command
    - fr_strerror_const_push
    - fr_pair_list_free
    - fr_strerror_clear
    - hex_print
    - fr_pair_list_init
    linkageType: ''
    returnType: size_t
    signature: "size_t command_encode_proto(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t  char *data, UNUSED size_t data_used, char *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - command_result_t *result
    - command_file_ctx_t *cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - UNUSED
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2457
    functionDepth: 0
    functionLinenumber: 2457
    functionLinenumberEnd: 2461
    functionName: command_eof
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t command_eof(UNUSED command_result_t *result, UNUSED command_file_ctx_t
      *cc,\n\t\t\t  UNUSED char *data, UNUSED size_t data_used, UNUSED char *in, UNUSED
      size_t inlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2481,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2486,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2487,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2490,1
    - Dst: open
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2494,1
    - Dst: mkdir
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2496,1
    - Dst: open
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2497,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2508,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2508,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2509,1
    - Dst: fstat
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2513,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2514,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2515,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2515,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2516,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2520,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2521,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2522,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2528
    functionName: command_fuzzer_out
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fstat
    - talloc_free
    - RETURN_PARSE_ERROR
    - open
    - fr_strerror_printf
    - fr_syserror
    - close
    - talloc_asprintf
    - mkdir
    - fr_strerror_const
    linkageType: ''
    returnType: size_t
    signature: "size_t command_fuzzer_out(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_EXIT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2536,1
    - Dst: RETURN_EXIT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2538,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - result
    - command_file_ctx_t *cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - UNUSED
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2533
    functionDepth: 1
    functionLinenumber: 2533
    functionLinenumberEnd: 2539
    functionName: command_exit
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - atoi
    - RETURN_EXIT
    linkageType: ''
    returnType: size_t
    signature: "size_t command_exit(command_result_t *result, UNUSED command_file_ctx_t
      *cc,\n\t\t\t   UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2549,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2552,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2553,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2556,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2558,1
    - Dst: fr_dict_filename_loaded
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2570,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2571,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2574,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2574,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2575,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2576,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2579
    functionName: command_load_dictionary
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - fr_dict_global_ctx_set
    - talloc_bstrndup
    - RETURN_PARSE_ERROR
    - talloc_free
    - strchr
    - UNCONST
    - fr_dict_read
    - RETURN_COMMAND_ERROR
    - fr_dict_filename_loaded
    - fr_strerror_const
    linkageType: ''
    returnType: size_t
    signature: "size_t command_load_dictionary(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t       UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2588,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2590,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2591,1
    - Dst: mismatch_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2594,1
    - Dst: RETURN_MISMATCH
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2595,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2585
    functionDepth: 2
    functionLinenumber: 2585
    functionLinenumberEnd: 2604
    functionName: command_match
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - RETURN_MISMATCH
    - strcmp
    - strcpy
    - mismatch_print
    linkageType: ''
    returnType: size_t
    signature: "size_t command_match(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t    char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regex_compile
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2616,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2617,1
    - Dst: regex_exec
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2619,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2620,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2625,1
    - Dst: mismatch_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2628,1
    - Dst: RETURN_MISMATCH
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2629,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2609
    functionDepth: 2
    functionLinenumber: 2609
    functionLinenumberEnd: 2634
    functionName: command_match_regex
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - talloc_free
    - regex_exec
    - RETURN_MISMATCH
    - RETURN_COMMAND_ERROR
    - regex_compile
    - mismatch_print
    linkageType: ''
    returnType: size_t
    signature: "size_t command_match_regex(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t  char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2645,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2648,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2650,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2651,1
    - Dst: poisoned_buffer_allocate
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2657,1
    - Dst: RETURN_EXIT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2657,1
    - Dst: POISONED_BUFFER_START
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2658,1
    - Dst: POISONED_BUFFER_END
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2659,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2661,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2639
    functionDepth: 2
    functionLinenumber: 2639
    functionLinenumberEnd: 2662
    functionName: command_max_buffer_size
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - RETURN_EXIT
    - POISONED_BUFFER_END
    - snprintf
    - fr_skip_whitespace
    - RETURN_COMMAND_ERROR
    - fr_strerror_const_push
    - strtoul
    - POISONED_BUFFER_START
    - poisoned_buffer_allocate
    linkageType: ''
    returnType: size_t
    signature: "size_t command_max_buffer_size(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t      char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2673,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2676,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2681,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2682,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2685,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2687,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2688,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2692,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2693,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2693,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2693,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2696,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2696,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2696,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2700,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2701,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2667
    functionDepth: 1
    functionLinenumber: 2667
    functionLinenumberEnd: 2705
    functionName: command_migrate
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - RETURN_PARSE_ERROR
    - fr_strerror_const
    - fr_skip_whitespace
    - strcmp
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: "size_t command_migrate(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t      UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2716,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2718,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2721,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2722,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2722,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2723,1
    - Dst: RETURN_SKIP_FILE
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2724,1
    - Dst: RETURN_NOOP
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2710
    functionDepth: 1
    functionLinenumber: 2710
    functionLinenumberEnd: 2728
    functionName: command_need_feature
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_PARSE_ERROR
    - fr_strerror_printf
    - cf_pair_value
    - strcmp
    - cf_pair_find
    - RETURN_SKIP_FILE
    - DEBUG
    - RETURN_NOOP
    linkageType: ''
    returnType: size_t
    signature: "size_t command_need_feature(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t   UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: process_line
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2736,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2742,1
    - Dst: RETURN_MISMATCH
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2744,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2760
    functionName: command_no
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_MISMATCH
    - ERROR
    - RETURN_OK
    - process_line
    linkageType: ''
    returnType: size_t
    signature: "size_t command_no(command_result_t *result, command_file_ctx_t *cc,\n\t\t\t
      char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2771,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2774,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2778,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2781,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2787,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2787,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2790,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2791,1
    - Dst: fr_pair_list_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2799,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2799,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2801,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2802,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2805,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    - allow_compare
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2765
    functionDepth: 1
    functionLinenumber: 2765
    functionLinenumberEnd: 2807
    functionName: command_pair_common
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - dictionary_current
    - RETURN_OK_WITH_ERROR
    - fr_pair_list_init
    - FR_SBUFF_IN
    - fr_pair_list_print
    - FR_SBUFF_OUT
    - fr_dict_internal
    - fr_pair_list_afrom_substr
    - fr_pair_list_free
    - fr_dict_root
    linkageType: ''
    returnType: size_t
    signature: "size_t command_pair_common(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t  char *data, UNUSED size_t data_used, char *in, size_t inlen,\n\t\t\t\t
      \ bool allow_compare)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: command_pair_common
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2809
    functionDepth: 2
    functionLinenumber: 2809
    functionLinenumberEnd: 2813
    functionName: command_pair
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - command_pair_common
    linkageType: ''
    returnType: size_t
    signature: "size_t command_pair(command_result_t *result, command_file_ctx_t *cc,\n\t\t\t
      \  char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: command_pair_common
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2815
    functionDepth: 2
    functionLinenumber: 2815
    functionLinenumberEnd: 2819
    functionName: command_pair_compare
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - command_pair_common
    linkageType: ''
    returnType: size_t
    signature: "size_t command_pair_compare(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t   char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2831,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2832,1
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2835,1
    - Dst: load_proto_library
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2836,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2837,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2825
    functionDepth: 2
    functionLinenumber: 2825
    functionLinenumberEnd: 2840
    functionName: command_proto
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - fr_dict_global_ctx_set
    - load_proto_library
    - RETURN_PARSE_ERROR
    - fr_strerror_printf
    linkageType: ''
    returnType: size_t
    signature: "size_t command_proto(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t    UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2845,1
    - Dst: dictionary_load_common
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2842
    functionDepth: 2
    functionLinenumber: 2842
    functionLinenumberEnd: 2847
    functionName: command_proto_dictionary
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - dictionary_load_common
    - fr_dict_global_ctx_set
    linkageType: ''
    returnType: size_t
    signature: "size_t command_proto_dictionary(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t       UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2852,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2853,1
    - Dst: is_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2856,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2857,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2859,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2859,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2861,1
    - Dst: RETURN_PARSE_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2862,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2868,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2849
    functionDepth: 1
    functionLinenumber: 2849
    functionLinenumberEnd: 2869
    functionName: command_proto_dictionary_root
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - fr_dict_attr_by_name
    - dictionary_current
    - RETURN_PARSE_ERROR
    - is_whitespace
    - fr_strerror_printf
    - fr_dict_root
    linkageType: ''
    returnType: size_t
    signature: "size_t command_proto_dictionary_root(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t\t    UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2879,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2881,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2881,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2885,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2892,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2893,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2897,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2900,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2904,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2908,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2908,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2874
    functionDepth: 1
    functionLinenumber: 2874
    functionLinenumberEnd: 2910
    functionName: command_tmpl
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - dictionary_current
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - FR_SBUFF_IN
    - fr_strerror_printf_push_head
    - strlen
    - tmpl_afrom_substr
    - tmpl_print
    linkageType: ''
    returnType: size_t
    signature: "size_t command_tmpl(command_result_t *result, command_file_ctx_t *cc,\n\t\t\t\t
      \    char *data, UNUSED size_t data_used, char *in, UNUSED size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_unlink
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2918,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2918,1
    - Dst: fr_touch
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2919,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2919,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - result
    - command_file_ctx_t *cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - UNUSED
    - UNUSED*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2915
    functionDepth: 1
    functionLinenumber: 2915
    functionLinenumberEnd: 2922
    functionName: command_touch
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_touch
    - fr_unlink
    - RETURN_OK
    - RETURN_COMMAND_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t command_touch(command_result_t *result, UNUSED command_file_ctx_t
      *cc,\n\t\t\t    UNUSED char *data, UNUSED size_t data_used, char *in, UNUSED
      size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out_bool
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - rules
    - value
    argTypes:
    - UNUSED
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2929
    functionDepth: 1
    functionLinenumber: 2929
    functionLinenumberEnd: 2937
    functionName: command_tmpl_rule_allow_foreign
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_bool
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t command_tmpl_rule_allow_foreign(UNUSED TALLOC_CTX *ctx, tmpl_rules_t
      *rules, fr_sbuff_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out_bool
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - rules
    - value
    argTypes:
    - UNUSED
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2939
    functionDepth: 1
    functionLinenumber: 2939
    functionLinenumberEnd: 2947
    functionName: command_tmpl_rule_allow_unknown
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_bool
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t command_tmpl_rule_allow_unknown(UNUSED TALLOC_CTX *ctx, tmpl_rules_t
      *rules, fr_sbuff_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out_bool
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - rules
    - value
    argTypes:
    - UNUSED
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2949
    functionDepth: 1
    functionLinenumber: 2949
    functionLinenumberEnd: 2957
    functionName: command_tmpl_rule_allow_unresolved
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_bool
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t command_tmpl_rule_allow_unresolved(UNUSED TALLOC_CTX *ctx,
      tmpl_rules_t *rules, fr_sbuff_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_oid_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2964,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2966,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2967,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2967,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - rules
    - value
    argTypes:
    - UNUSED
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2959
    functionDepth: 1
    functionLinenumber: 2959
    functionLinenumberEnd: 2971
    functionName: command_tmpl_rule_attr_parent
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_ERROR_RETURN
    - fr_dict_attr_by_oid_substr
    - fr_dict_internal
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t command_tmpl_rule_attr_parent(UNUSED TALLOC_CTX *ctx, tmpl_rules_t
      *rules, fr_sbuff_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_list_from_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2977,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2980,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2981,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2981,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - rules
    - value
    argTypes:
    - UNUSED
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2973
    functionDepth: 1
    functionLinenumber: 2973
    functionLinenumberEnd: 2985
    functionName: command_tmpl_rule_list_def
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - tmpl_attr_list_from_substr
    - fr_sbuff_current
    - fr_sbuff_remaining
    - fr_box_strvalue_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t command_tmpl_rule_list_def(UNUSED TALLOC_CTX *ctx, tmpl_rules_t
      *rules, fr_sbuff_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_request_ref_list_afrom_substr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2991,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2995,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2996,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2996,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:2996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - rules
    - value
    argTypes:
    - TALLOC_CTX*
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2987
    functionDepth: 1
    functionLinenumber: 2987
    functionLinenumberEnd: 3000
    functionName: command_tmpl_rule_request_def
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_sbuff_current
    - fr_sbuff_remaining
    - tmpl_request_ref_list_afrom_substr
    - fr_box_strvalue_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t command_tmpl_rule_request_def(TALLOC_CTX *ctx, tmpl_rules_t
      *rules, fr_sbuff_t *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3005,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3011,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3012,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3013,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3014,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3015,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3016,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3018,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3020,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3021,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3023,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3025,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3026,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3026,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3026,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3027,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3031,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3033,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3034,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3035,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3035,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3035,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3036,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3039,1
    - Dst: func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3041,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3041,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - UNUSED*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3002
    functionDepth: 1
    functionLinenumber: 3002
    functionLinenumberEnd: 3045
    functionName: command_tmpl_rules
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    - L
    - fr_sbuff_out_by_longest_prefix
    - fr_sbuff_next_if_char
    - fr_sbuff_used
    - fr_strerror_printf
    - FR_SBUFF_IN
    - fr_sbuff_current
    - RETURN_COMMAND_ERROR
    - fr_sbuff_remaining
    - fr_box_strvalue_len
    - fr_sbuff_adv_past_whitespace
    - func
    - NUM_ELEMENTS
    linkageType: ''
    returnType: size_t
    signature: "size_t command_tmpl_rules(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t UNUSED char *data, UNUSED size_t data_used, char *in, size_t
      inlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3050,1
    - Dst: parse_typed_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3057,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3057,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3059,1
    - Dst: fr_value_box_print_quoted
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3069,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3069,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3072,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3072,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3075,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3076,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3084,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3085,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3088,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3089,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3090,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3096,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3097,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3098,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3099,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3100,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3101,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3102,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3114,1
    - Dst: dump_fuzzer_data
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3116,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3117,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3118,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3123,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3047
    functionDepth: 2
    functionLinenumber: 3047
    functionLinenumberEnd: 3125
    functionName: command_value_box_normalise
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - dump_fuzzer_data
    - RETURN_OK
    - talloc_free
    - fr_value_box_print_quoted
    - FR_SBUFF_OUT
    - RETURN_OK_WITH_ERROR
    - parse_typed_value
    - talloc_zero
    - strlen
    - RETURN_COMMAND_ERROR
    - fr_value_box_cmp
    - fr_strerror_const
    - strlcpy
    - fr_value_box_from_str
    - fr_strerror_printf_push
    linkageType: ''
    returnType: size_t
    signature: "size_t command_value_box_normalise(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t\t  char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3134,1
    - Dst: open
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3136,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3138,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3138,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3140,1
    - Dst: flock
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3142,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3143,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3145,1
    - Dst: flock
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3148,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3149,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3149,1
    - Dst: write
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3156,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3158,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3158,1
    - Dst: flock
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3164,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3165,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3166,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - inlen
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3127
    functionDepth: 1
    functionLinenumber: 3127
    functionLinenumberEnd: 3169
    functionName: command_write
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - write
    - RETURN_OK
    - talloc_free
    - open
    - talloc_bstrndup
    - fr_strerror_printf
    - fr_syserror
    - flock
    - RETURN_COMMAND_ERROR
    - close
    linkageType: ''
    returnType: size_t
    signature: "size_t command_write(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t    char *data, size_t data_used, char *in, size_t inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3179,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3183,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3184,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3187,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3187,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3190,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3197,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3198,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3202,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3205,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3209,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3213,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3213,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 3174
    functionDepth: 1
    functionLinenumber: 3174
    functionLinenumberEnd: 3215
    functionName: command_xlat_normalise
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - dictionary_current
    - xlat_tokenize
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_IN
    - FR_SBUFF_OUT
    - fr_strerror_printf_push_head
    - strlen
    - xlat_print
    linkageType: ''
    returnType: size_t
    signature: "size_t command_xlat_normalise(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t     char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3225,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3228,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3228,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3231,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3237,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3240,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3244,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3248,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3248,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3220
    functionDepth: 1
    functionLinenumber: 3220
    functionLinenumberEnd: 3250
    functionName: command_xlat_expr
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - xlat_tokenize_expression
    - RETURN_OK
    - dictionary_current
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - FR_SBUFF_IN
    - fr_strerror_printf_push_head
    - strlen
    - xlat_print
    linkageType: ''
    returnType: size_t
    signature: "size_t command_xlat_expr(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t     char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3260,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3263,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3272,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3277,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3277,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3279,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3280,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3284,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3286,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3290,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3295,1
    - Dst: xlat_debug_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3296,1
    - Dst: xlat_purify
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3299,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3300,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3300,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3305,1
    - Dst: xlat_debug_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3306,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3309,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3309,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3255
    functionDepth: 1
    functionLinenumber: 3255
    functionLinenumberEnd: 3311
    functionName: command_xlat_purify
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - xlat_tokenize_expression
    - RETURN_OK
    - dictionary_current
    - xlat_debug_head
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - FR_SBUFF_IN
    - fr_strerror_printf_push_head
    - strlen
    - fr_strerror
    - xlat_print
    - fr_strerror_const
    - DEBUG
    - xlat_purify
    linkageType: ''
    returnType: size_t
    signature: "size_t command_xlat_purify(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t     char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3322,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3325,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3334,1
    - Dst: xlat_tokenize_condition
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3339,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3339,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3341,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3342,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3346,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3348,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3352,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3357,1
    - Dst: xlat_debug_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3358,1
    - Dst: xlat_purify
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3361,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3362,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3362,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3367,1
    - Dst: xlat_debug_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3368,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3371,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3371,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3317
    functionDepth: 1
    functionLinenumber: 3317
    functionLinenumberEnd: 3373
    functionName: command_xlat_purify_condition
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - RETURN_OK
    - dictionary_current
    - xlat_debug_head
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - FR_SBUFF_IN
    - xlat_tokenize_condition
    - fr_strerror_printf_push_head
    - strlen
    - fr_strerror
    - xlat_print
    - fr_strerror_const
    - DEBUG
    - xlat_purify
    linkageType: ''
    returnType: size_t
    signature: "size_t command_xlat_purify_condition(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\t\t    char *data, UNUSED size_t data_used, char *in, UNUSED size_t
      inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3388,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3392,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3393,1
    - Dst: xlat_tokenize_argv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3396,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3396,1
    - Dst: dictionary_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3400,1
    - Dst: fr_strerror_printf_push_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3406,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3407,1
    - Dst: xlat_flatten_to_argv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3410,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3412,1
    - Dst: RETURN_OK_WITH_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3413,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3417,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3417,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3419,1
    - Dst: RETURN_OK
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3379
    functionDepth: 1
    functionLinenumber: 3379
    functionLinenumberEnd: 3427
    functionName: command_xlat_argv
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - xlat_print
    - RETURN_OK
    - dictionary_current
    - RETURN_OK_WITH_ERROR
    - FR_SBUFF_OUT
    - FR_SBUFF_IN
    - snprintf
    - fr_strerror_printf_push_head
    - strlen
    - xlat_flatten_to_argv
    - xlat_tokenize_argv
    - fr_strerror_printf_push
    linkageType: ''
    returnType: size_t
    signature: "size_t command_xlat_argv(command_result_t *result, command_file_ctx_t
      *cc,\n\t\t\t\tchar *data, UNUSED size_t data_used, char *in, UNUSED size_t inlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3737,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3747,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3748,1
    - Dst: RETURN_NOOP
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3751,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3754,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3759,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3761,1
    - Dst: RETURN_COMMAND_ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3762,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3766,1
    - Dst: command_entry_t*::func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3772,1
    - Dst: command_entry_t*::func
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3775,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3775,1
    - Dst: strerror_concat
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3785,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3787,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3791,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3792,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3794,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3795,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3802,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3803,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3806,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 6
    argNames:
    - result
    - cc
    - data
    - data_used
    - in
    - size_t
    argTypes:
    - command_result_t*
    - command_file_ctx_t*
    - char*
    - size_t
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3809
      start: 3728
    functionDepth: 2
    functionLinenumber: 3728
    functionLinenumberEnd: 3809
    functionName: process_line
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 1
    functionsReached:
    - command_entry_t*::func
    - fr_table_value_by_longest_prefix
    - fr_strerror_printf
    - fr_skip_whitespace
    - fr_table_str_by_value
    - fputs
    - fr_assert
    - RETURN_COMMAND_ERROR
    - strlen
    - talloc_free_children
    - DEBUG2
    - strerror_concat
    - RETURN_NOOP
    linkageType: ''
    returnType: size_t
    signature: "size_t process_line(command_result_t *result, command_file_ctx_t *cc,
      char *data, size_t data_used,\n\t\t    char *in, UNUSED size_t inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3813,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3814,1
    - Dst: fr_dict_global_ctx_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3817,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3818,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - cc
    argTypes:
    - command_file_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3826
      start: 3811
    functionDepth: 1
    functionLinenumber: 3811
    functionLinenumberEnd: 3826
    functionName: _command_ctx_free
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_dict_free
    - close
    - fr_dict_global_ctx_free
    linkageType: ''
    returnType: int
    signature: int _command_ctx_free(command_file_ctx_t *cc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3833,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3834,1
    - Dst: talloc_named_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3836,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3837,1
    - Dst: poisoned_buffer_allocate
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3845,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3846,1
    - Dst: POISONED_BUFFER_START
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3849,1
    - Dst: POISONED_BUFFER_END
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3850,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3859,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3861,1
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3865,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3866,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3867,1
    - Dst: fr_dict_global_ctx_dir_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3871,1
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3872,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - config
    - path
    - filename
    argTypes:
    - TALLOC_CTX*
    - command_config_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3828
    functionDepth: 2
    functionLinenumber: 3828
    functionLinenumberEnd: 3881
    functionName: command_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_global_ctx_init
    - fr_dict_global_ctx_set
    - talloc_set_destructor
    - talloc_free
    - POISONED_BUFFER_END
    - fr_dict_internal_afrom_file
    - talloc_named_const
    - fr_dict_global_ctx_dir_set
    - talloc_strdup
    - fr_perror
    - talloc_zero
    - POISONED_BUFFER_START
    - fr_dict_root
    - poisoned_buffer_allocate
    linkageType: ''
    returnType: command_file_ctx_t
    signature: "command_file_ctx_t *command_ctx_alloc(TALLOC_CTX *ctx,\n\t\t\t\t\t
      \    command_config_t const *config, char const *path, char const *filename)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3885,1
    - Dst: talloc_named_const
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3886,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3889,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3890,1
    - Dst: fr_dict_global_ctx_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3893,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3893,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3895,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3896,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3897,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cc
    - ctx
    argTypes:
    - command_file_ctx_t*
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3904
      start: 3883
    functionDepth: 1
    functionLinenumber: 3883
    functionLinenumberEnd: 3904
    functionName: command_ctx_reset
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_dict_global_ctx_init
    - talloc_free
    - fr_dict_internal_afrom_file
    - talloc_named_const
    - fr_perror
    - fr_dict_global_ctx_free
    - fr_dict_free
    - close
    linkageType: ''
    returnType: void
    signature: void command_ctx_reset(command_file_ctx_t *cc, TALLOC_CTX *ctx)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: command_ctx_alloc
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3920,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3925,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3928,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3932,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3934,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3937,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3939,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3939,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3948,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3948,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3953,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3955,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3957,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3962,1
    - Dst: feof
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3970,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3971,1
    - Dst: process_line
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3979,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:3979,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4007,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4011,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4013,1
    - Dst: command_ctx_reset
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4019,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4030,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4052,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4060,1
    - Dst: fr_dict_const_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4065,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4066,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4071,1
    - Dst: fr_dict_global_ctx_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4075,1
    - Dst: unload_proto_library
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4076,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4077,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 112
    argCount: 6
    argNames:
    - exit_now
    - ctx
    - config
    - root_dir
    - filename
    - lines
    argTypes:
    - bool*
    - TALLOC_CTX*
    - command_config_t*
    - char*
    - char*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4080
      start: 3906
    functionDepth: 3
    functionLinenumber: 3906
    functionLinenumberEnd: 4080
    functionName: process_file
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 2
    functionsReached:
    - fgets
    - process_line
    - strlen
    - fr_assert_msg
    - fopen
    - fr_dict_const_free
    - strlcpy
    - fr_dlist_head
    - ERROR
    - fr_dlist_empty
    - unload_proto_library
    - fr_table_value_by_longest_prefix
    - fr_dict_global_ctx_set
    - fr_syserror
    - command_ctx_reset
    - fr_perror
    - fr_assert
    - strcmp
    - feof
    - fclose
    - talloc_free
    - fr_dlist_next
    - strchr
    - command_ctx_alloc
    - snprintf
    - fr_strerror_clear
    linkageType: ''
    returnType: int
    signature: "int process_file(bool *exit_now, TALLOC_CTX *ctx, command_config_t
      const *config,\n\t\t\tconst char *root_dir, char const *filename, fr_dlist_head_t
      *lines)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4084,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4085,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4086,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4087,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4088,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4089,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4090,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4091,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4092,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4093,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4094,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4095,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4096,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4098
      start: 4082
    functionDepth: 0
    functionLinenumber: 4082
    functionLinenumberEnd: 4098
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 11
    functionsReached:
    - INFO
    linkageType: ''
    returnType: void
    signature: void usage(char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4104,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4105,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4107,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4108,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4108,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - features
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4110
      start: 4100
    functionDepth: 1
    functionLinenumber: 4100
    functionLinenumberEnd: 4110
    functionName: features_print
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - INFO
    - cf_pair_value
    - cf_pair_find_next
    - cf_pair_find
    linkageType: ''
    returnType: void
    signature: void features_print(CONF_SECTION *features)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4116,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4118,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4119,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4112
    functionDepth: 0
    functionLinenumber: 4112
    functionLinenumberEnd: 4122
    functionName: commands_print
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - INFO
    linkageType: ''
    returnType: void
    signature: void commands_print(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4131,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4132,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4134,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4134,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4135,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4137,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4139,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4141,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4145,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4151,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4154,1
    - Dst: fr_sbuff_is_in_charset
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4155,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4156,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4157,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4157,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4157,1
    - Dst: fr_sbuff_switch
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4161,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4166,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4167,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4175,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4176,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4182,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4187,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4189,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4193,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4197,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4202,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 3
    argNames:
    - ctx
    - out
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dlist_head_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4209
      start: 4124
    functionDepth: 1
    functionLinenumber: 4124
    functionLinenumberEnd: 4209
    functionName: line_ranges_parse
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    - ERROR
    - fr_dlist_talloc_free
    - fr_sbuff_switch
    - fr_sbuff_next
    - fr_sbuff_out
    - fr_sbuff_is_in_charset
    - fr_sbuff_current
    - talloc_zero
    - fr_sbuff_remaining
    - fr_box_strvalue_len
    - fr_sbuff_adv_past_whitespace
    - fr_dlist_insert_tail
    - MEM
    linkageType: ''
    returnType: int
    signature: int line_ranges_parse(TALLOC_CTX *ctx, fr_dlist_head_t *out, fr_sbuff_t
      *in)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4215,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4215,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4216,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4217,1
    - Dst: L
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4218,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4223,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4224,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4225,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4226,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4226,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4228,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4230,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4231,1
    - Dst: fr_sbuff_switch
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4233,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4235,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4236,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4237,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4241,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4242,1
    - Dst: line_ranges_parse
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4243,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4249,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4254,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4255,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4255,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4256,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4256,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4257,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4258,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4264,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4265,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4265,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4267,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4269,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4269,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4274,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4278,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4290,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4292,1
    - Dst: strerror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4292,1
    - Dst: process_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4297,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4302,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4308,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4309,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4311,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4312,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4314,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4315,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4318,1
    - Dst: fr_touch
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4322,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4323,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4328,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4331,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4332,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4333,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4337,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4344,1
    - Dst: rename
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4345,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4346,1
    - Dst: strerror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4346,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 96
    argCount: 4
    argNames:
    - exit_now
    - ctx
    - config
    - path
    argTypes:
    - bool*
    - TALLOC_CTX*
    - command_config_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4211
    functionDepth: 2
    functionLinenumber: 4211
    functionLinenumberEnd: 4352
    functionName: process_path
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - talloc_bstrndup
    - fr_sbuff_current
    - strlen
    - fr_sbuff_end
    - fopen
    - ERROR
    - fr_dlist_talloc_free
    - fr_sbuff_diff
    - process_file
    - fr_sbuff_adv_until
    - printf
    - FR_SBUFF_TERMS
    - L
    - fr_sbuff_switch
    - UNCONST
    - FR_SBUFF_IN
    - fr_sbuff_marker
    - fr_dlist_init
    - line_ranges_parse
    - fr_touch
    - fr_perror
    - fr_assert
    - fr_sbuff_advance
    - strncmp
    - fr_mkdir
    - fclose
    - fr_sbuff_extend
    - talloc_free
    - fr_sbuff_used
    - rename
    - strchr
    - strerror
    - talloc_asprintf
    - fr_sbuff_set
    linkageType: ''
    returnType: int
    signature: int process_path(bool *exit_now, TALLOC_CTX *ctx, command_config_t
      const *config, const char *path)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4383,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4385,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4386,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4389,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4389,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4390,1
    - Dst: fr_disable_null_tracking_on_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4394,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4405,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4411,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4411,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4412,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4412,1
    - Dst: dependency_features_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4413,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4421,1
    - Dst: talloc_enable_leak_report
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4448,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4452,1
    - Dst: fr_unlink
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4456,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4457,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4471,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4486,1
    - Dst: features_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4487,1
    - Dst: commands_print
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4488,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4497,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4498,1
    - Dst: fr_openssl_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4508,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4509,1
    - Dst: modules_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4514,1
    - Dst: dl_loader_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4516,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4518,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4522,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4524,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4528,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4529,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4537,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4538,1
    - Dst: unlang_global_init
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4546,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4547,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4555,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4556,1
    - Dst: xlat_instantiate
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4561,1
    - Dst: xlat_thread_instantiate
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4562,1
    - Dst: unlang_thread_instantiate
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4565,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4567,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4569,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4572,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4577,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4579,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4582,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4596,1
    - Dst: process_file
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4600,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4602,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4608,1
    - Dst: isspace
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4612,1
    - Dst: process_path
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4633,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4641,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4642,1
    - Dst: process_path
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4651,1
    - Dst: fr_atexit_thread_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4676,1
    - Dst: fr_openssl_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4679,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4686,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4691,1
    - Dst: fr_touch
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4696,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4705,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4715,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4720,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4721,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_attribute.c:4729,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 212
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4358
    functionDepth: 3
    functionLinenumber: 4358
    functionLinenumberEnd: 4732
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_attribute.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - fgets
    - xlat_instantiate
    - request_global_init
    - fr_dict_internal_afrom_file
    - strrchr
    - fr_dict_free
    - commands_print
    - features_print
    - talloc_new
    - unlang_global_init
    - fr_time_start
    - xlat_func_args_set
    - MEM
    - ERROR
    - unlang_thread_instantiate
    - process_file
    - talloc_autofree_context
    - dl_loader_init
    - fr_openssl_free
    - fr_atexit_thread_trigger_all
    - printf
    - xlat_thread_instantiate
    - xlat_func_register
    - fr_openssl_init
    - fr_dict_global_ctx_init
    - fr_atexit_global_trigger_all
    - cf_section_alloc
    - fr_disable_null_tracking_on_free
    - dependency_features_init
    - fr_fault_setup
    - fr_unlink
    - getopt
    - usage
    - fr_event_list_alloc
    - process_path
    - fr_perror
    - fr_assert
    - fr_touch
    - strcmp
    - getenv
    - talloc_free
    - modules_init
    - fprintf
    - isspace
    - talloc_enable_leak_report
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:94,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:95,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:95,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:96,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:96,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:97,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:97,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:98,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:98,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:99,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:99,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:100,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:100,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:101,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:101,1
    - Dst: client_afrom_cs
      Src: /src/freeradius-server/src/bin/unit_test_module.c:103,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:105,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:106,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:108,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - ip
    - name
    argTypes:
    - TALLOC_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: client_alloc
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_steal
    - cf_pair_alloc
    - fr_assert
    - client_afrom_cs
    - MEM
    - PERROR
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_alloc(TALLOC_CTX *ctx, char const *ip, char const
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:116,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:122,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/bin/unit_test_module.c:122,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/bin/unit_test_module.c:124,1
    - Dst: pair_mutable
      Src: /src/freeradius-server/src/bin/unit_test_module.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: pair_mutable
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_foreach
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_assert
    - pair_mutable
    linkageType: ''
    returnType: void
    signature: void pair_mutable(fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:136,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:137,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:138,1
    - Dst: htonl
      Src: /src/freeradius-server/src/bin/unit_test_module.c:148,1
    - Dst: htonl
      Src: /src/freeradius-server/src/bin/unit_test_module.c:158,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_module.c:166,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_module.c:173,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/bin/unit_test_module.c:175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:176,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 182
    functionName: request_from_internal
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_packet_alloc
    - talloc_free
    - fprintf
    - talloc_zero
    - request_local_alloc_internal
    - fr_packet_pairs_from_packet
    linkageType: ''
    returnType: request_t
    signature: request_t *request_from_internal(TALLOC_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/bin/unit_test_module.c:193,1
    - Dst: request_local_alloc_external
      Src: /src/freeradius-server/src/bin/unit_test_module.c:200,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:202,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_module.c:205,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:207,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/unit_test_module.c:210,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:212,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:217,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_module.c:223,1
    - Dst: fr_pair_list_tainted
      Src: /src/freeradius-server/src/bin/unit_test_module.c:232,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/unit_test_module.c:234,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:236,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/bin/unit_test_module.c:249,1
    - Dst: htonl
      Src: /src/freeradius-server/src/bin/unit_test_module.c:259,1
    - Dst: htonl
      Src: /src/freeradius-server/src/bin/unit_test_module.c:269,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/bin/unit_test_module.c:281,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/bin/unit_test_module.c:284,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/bin/unit_test_module.c:291,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_module.c:292,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:299,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/bin/unit_test_module.c:301,1
    - Dst: pair_mutable
      Src: /src/freeradius-server/src/bin/unit_test_module.c:302,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:306,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/bin/unit_test_module.c:308,1
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/bin/unit_test_module.c:312,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:313,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/bin/unit_test_module.c:313,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/bin/unit_test_module.c:315,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:316,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/bin/unit_test_module.c:319,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/bin/unit_test_module.c:326,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/unit_test_module.c:330,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_module.c:337,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/unit_test_module.c:344,1
    - Dst: unlang_call_push
      Src: /src/freeradius-server/src/bin/unit_test_module.c:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 76
    argCount: 4
    argNames:
    - ctx
    - fp
    - client
    - server_cs
    argTypes:
    - TALLOC_CTX*
    - FILE*
    - fr_client_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 353
    functionName: request_from_file
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_pair_dcursor_init
    - fr_packet_alloc
    - memcpy
    - fr_strerror_printf
    - fr_pair_list_afrom_file
    - fr_pair_dcursor_by_ancestor_init
    - ERROR
    - fr_dcursor_next
    - fr_time
    - fr_socket_addr_swap
    - request_local_alloc_external
    - pair_mutable
    - fr_strerror_const
    - fr_packet_pairs_from_packet
    - fr_log_talloc_report
    - fr_pair_delete_by_da
    - fr_pair_list_tainted
    - fr_packet_net_from_pairs
    - talloc_get_name
    - fr_assert
    - unlang_call_push
    - fr_pair_find_by_da
    - talloc_typed_asprintf
    - fr_strerror_printf_push
    - talloc_free
    - talloc_zero
    - fr_log
    - talloc_get_type
    linkageType: ''
    returnType: request_t
    signature: request_t *request_from_file(TALLOC_CTX *ctx, FILE *fp, fr_client_t
      *client, CONF_SECTION *server_cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_init_fp
      Src: /src/freeradius-server/src/bin/unit_test_module.c:361,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/bin/unit_test_module.c:363,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/bin/unit_test_module.c:363,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/bin/unit_test_module.c:365,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/bin/unit_test_module.c:367,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/bin/unit_test_module.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - packet
    - list
    argTypes:
    - FILE*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: print_packet
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - fr_dict_enum_by_value
    - fr_pair_list_log
    - fr_log_init_fp
    - fr_log
    - fr_box_uint32
    linkageType: ''
    returnType: void
    signature: void print_packet(FILE *fp, fr_packet_t *packet, fr_pair_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:388,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_module.c:389,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_module.c:389,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_module.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - slen
    - line
    argTypes:
    - fr_sbuff_t*
    - ssize_t
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 391
    functionName: too_much_text
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_current
    - strlen
    - fr_sbuff_remaining
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: void
    signature: void too_much_text(fr_sbuff_t *out, ssize_t slen, fr_sbuff_t *line)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/unit_test_module.c:417,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/bin/unit_test_module.c:420,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/bin/unit_test_module.c:421,1
    - Dst: feof
      Src: /src/freeradius-server/src/bin/unit_test_module.c:422,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:423,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/bin/unit_test_module.c:427,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/bin/unit_test_module.c:430,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/bin/unit_test_module.c:435,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_module.c:436,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/bin/unit_test_module.c:437,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:442,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/unit_test_module.c:443,1
    - Dst: fr_sbuff_is_str
      Src: /src/freeradius-server/src/bin/unit_test_module.c:445,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_module.c:445,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:446,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/bin/unit_test_module.c:447,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_module.c:447,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/bin/unit_test_module.c:457,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:462,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/bin/unit_test_module.c:464,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/bin/unit_test_module.c:480,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:482,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:483,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:483,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_module.c:487,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:488,1
    - Dst: too_much_text
      Src: /src/freeradius-server/src/bin/unit_test_module.c:489,1
    - Dst: xlat_eval_compiled
      Src: /src/freeradius-server/src/bin/unit_test_module.c:493,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:495,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:496,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:497,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/bin/unit_test_module.c:504,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/unit_test_module.c:506,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:513,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/bin/unit_test_module.c:515,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/bin/unit_test_module.c:518,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:533,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:534,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:534,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/bin/unit_test_module.c:538,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:539,1
    - Dst: too_much_text
      Src: /src/freeradius-server/src/bin/unit_test_module.c:540,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/bin/unit_test_module.c:544,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:545,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:546,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:546,1
    - Dst: xlat_eval_compiled
      Src: /src/freeradius-server/src/bin/unit_test_module.c:550,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:552,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:553,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:554,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/bin/unit_test_module.c:561,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/unit_test_module.c:563,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:567,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 4
    argNames:
    - el
    - request
    - filename
    - fp
    argTypes:
    - fr_event_list_t*
    - request_t*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 572
    functionName: do_xlats
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - fgets
    - fr_sbuff_adv_to_chr
    - FR_SBUFF_OUT
    - fr_sbuff_current
    - strlen
    - fr_sbuff_is_str
    - fr_strerror
    - fr_sbuff_terminate
    - fr_sbuff_in_escape
    - fr_sbuff_set_to_start
    - xlat_resolve
    - fr_sbuff_remaining
    - fr_sbuff_in_sprintf
    - FR_SBUFF_IN
    - talloc_init_const
    - fr_sbuff_adv_past_whitespace
    - feof
    - xlat_tokenize_expression
    - TALLOC_FREE
    - talloc_free
    - xlat_tokenize
    - fr_sbuff_is_char
    - fr_sbuff_adv_past_str_literal
    - too_much_text
    - fprintf
    - xlat_eval_compiled
    linkageType: ''
    returnType: bool
    signature: bool do_xlats(fr_event_list_t *el, request_t *request, char const *filename,
      FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/bin/unit_test_module.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - cs
    - mod_inst
    - proc_inst
    - src
    - maps
    argTypes:
    - CONF_SECTION*
    - UNUSED*
    - UNUSED*
    - tmpl_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: map_proc_verify
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int map_proc_verify(CONF_SECTION *cs, UNUSED void const *mod_inst,
      UNUSED void *proc_inst,\n\t\t\t   tmpl_t const *src, UNUSED map_list_t const
      *maps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - fr_value_box_list_t *src
    - maps
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: mod_map_proc
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_proc(unlang_result_t *p_result, UNUSED map_ctx_t
      const *mpctx,\n\t\t\t\t    UNUSED request_t *request, UNUSED fr_value_box_list_t
      *src,\n\t\t\t\t    UNUSED map_list_t const *maps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:600,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:603,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:604,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/unit_test_module.c:606,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/bin/unit_test_module.c:607,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/unit_test_module.c:608,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:610,1
    - Dst: unlang_call_push
      Src: /src/freeradius-server/src/bin/unit_test_module.c:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - old
    - number
    - server_cs
    argTypes:
    - request_t*
    - int
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 617
    functionName: request_clone
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - talloc_typed_asprintf
    - fr_packet_alloc
    - fr_time
    - memcpy
    - unlang_call_push
    - request_local_alloc_internal
    - fr_pair_list_copy
    linkageType: ''
    returnType: request_t
    signature: request_t *request_clone(request_t *old, int number, CONF_SECTION *server_cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/bin/unit_test_module.c:621,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 624
    functionName: cancel_request
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void cancel_request(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t when,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_add_delta_time
      Src: /src/freeradius-server/src/bin/unit_test_module.c:634,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/unit_test_module.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: _synthetic_time_source
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - fr_time
    - fr_time_add_delta_time
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t _synthetic_time_source(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/bin/unit_test_module.c:645,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/bin/unit_test_module.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: time_advance_resume
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void time_advance_resume(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:654,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:654,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/bin/unit_test_module.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: xlat_func_time_advance_resume
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_value_box_alloc
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time_advance_resume(TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx, UNUSED request_t
      *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/bin/unit_test_module.c:666,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/bin/unit_test_module.c:672,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/bin/unit_test_module.c:672,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/bin/unit_test_module.c:672,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/unit_test_module.c:672,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:673,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/unit_test_module.c:677,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/bin/unit_test_module.c:677,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/bin/unit_test_module.c:677,1
    - Dst: _synthetic_time_source
      Src: /src/freeradius-server/src/bin/unit_test_module.c:677,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/bin/unit_test_module.c:679,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/bin/unit_test_module.c:681,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/bin/unit_test_module.c:681,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/bin/unit_test_module.c:681,1
    - Dst: _synthetic_time_source
      Src: /src/freeradius-server/src/bin/unit_test_module.c:681,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/bin/unit_test_module.c:681,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/bin/unit_test_module.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 686
    functionName: xlat_func_time_advance
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_time_delta_wrap
    - fr_box_date
    - RDEBUG
    - unlang_interpret_event_list
    - fr_time_delta_add
    - XLAT_ARGS
    - fr_box_time_delta
    - fr_time_to_unix_time
    - fr_timer_in
    - RPERROR
    - _synthetic_time_source
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time_advance(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t    UNUSED xlat_ctx_t const *xctx, UNUSED request_t
      *request, fr_value_box_list_t *in)"
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:728,1
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/unit_test_module.c:733,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/unit_test_module.c:735,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/bin/unit_test_module.c:736,1
    - Dst: main_config_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:738,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:740,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/unit_test_module.c:741,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/bin/unit_test_module.c:744,1
    - Dst: main_config_name_set_default
      Src: /src/freeradius-server/src/bin/unit_test_module.c:746,1
    - Dst: main_config_name_set_default
      Src: /src/freeradius-server/src/bin/unit_test_module.c:748,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/bin/unit_test_module.c:751,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/unit_test_module.c:758,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/unit_test_module.c:758,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:759,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/unit_test_module.c:760,1
    - Dst: fr_disable_null_tracking_on_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:763,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/unit_test_module.c:767,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/unit_test_module.c:782,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/unit_test_module.c:785,1
    - Dst: main_config_confdir_set
      Src: /src/freeradius-server/src/bin/unit_test_module.c:793,1
    - Dst: main_config_dict_dir_set
      Src: /src/freeradius-server/src/bin/unit_test_module.c:797,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/unit_test_module.c:805,1
    - Dst: talloc_enable_leak_report
      Src: /src/freeradius-server/src/bin/unit_test_module.c:818,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/unit_test_module.c:852,1
    - Dst: fr_unlink
      Src: /src/freeradius-server/src/bin/unit_test_module.c:857,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:858,1
    - Dst: fr_openssl_version_consistent
      Src: /src/freeradius-server/src/bin/unit_test_module.c:867,1
    - Dst: fr_openssl_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:876,1
    - Dst: dependency_version_print
      Src: /src/freeradius-server/src/bin/unit_test_module.c:879,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/unit_test_module.c:884,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:885,1
    - Dst: modules_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:894,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:896,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:897,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_module.c:901,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:902,1
    - Dst: fr_tls_dict_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:907,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/bin/unit_test_module.c:913,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:914,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/bin/unit_test_module.c:918,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:919,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/bin/unit_test_module.c:922,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:923,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:927,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:928,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/bin/unit_test_module.c:932,1
    - Dst: main_loop_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:939,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:940,1
    - Dst: unlang_global_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:947,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:948,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/bin/unit_test_module.c:952,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/bin/unit_test_module.c:954,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/unit_test_module.c:960,1
    - Dst: setenv
      Src: /src/freeradius-server/src/bin/unit_test_module.c:961,1
    - Dst: modules_rlm_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:967,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:968,1
    - Dst: virtual_servers_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:971,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:972,1
    - Dst: main_config_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:976,1
    - Dst: client_find
      Src: /src/freeradius-server/src/bin/unit_test_module.c:983,1
    - Dst: htonl
      Src: /src/freeradius-server/src/bin/unit_test_module.c:983,1
    - Dst: client_alloc
      Src: /src/freeradius-server/src/bin/unit_test_module.c:986,1
    - Dst: client_add
      Src: /src/freeradius-server/src/bin/unit_test_module.c:987,1
    - Dst: server_init
      Src: /src/freeradius-server/src/bin/unit_test_module.c:990,1
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/bin/unit_test_module.c:992,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:994,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/bin/unit_test_module.c:998,1
    - Dst: virtual_server_dict_by_name
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1003,1
    - Dst: fr_dict_compatible
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1004,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1005,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1013,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1020,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1021,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1022,1
    - Dst: fr_coords_create
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1024,1
    - Dst: fr_schedule_worker_id_set
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1029,1
    - Dst: fr_thread_instantiate
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1030,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1031,1
    - Dst: modules_rlm_coord_attach
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1035,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1036,1
    - Dst: fr_coord_pre_event_insert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1040,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1041,1
    - Dst: fr_coord_post_event_insert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1045,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1046,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1056,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1059,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1060,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1065,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1068,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1074,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1077,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1079,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1080,1
    - Dst: request_from_file
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1088,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1090,1
    - Dst: request_from_internal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1094,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1101,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1103,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1105,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1106,1
    - Dst: do_xlats
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1110,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1111,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1121,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1123,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1136,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1138,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1138,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1143,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1144,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1151,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1152,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1159,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1163,1
    - Dst: unlang_interpret_synchronous
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1164,1
    - Dst: request_clone
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1175,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1178,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1196,1
    - Dst: unlang_interpret_synchronous
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1197,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1198,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1201,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1202,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1209,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1212,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1214,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1214,1
    - Dst: print_packet
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1219,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1221,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1230,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1233,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1233,1
    - Dst: fr_pair_validate
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1236,1
    - Dst: fr_pair_validate_debug
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1237,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1239,1
    - Dst: fr_fprintf_pair_list
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1241,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1247,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1250,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1256,1
    - Dst: printf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1258,1
    - Dst: map_proc_unregister
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1263,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1268,1
    - Dst: fr_coords_destroy
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1270,1
    - Dst: fr_atexit_thread_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1278,1
    - Dst: fr_event_list_reap_signal
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1283,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1283,1
    - Dst: main_loop_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1285,1
    - Dst: fr_atexit_thread_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1293,1
    - Dst: server_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1295,1
    - Dst: virtual_servers_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1302,1
    - Dst: modules_rlm_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1311,1
    - Dst: main_config_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1317,1
    - Dst: fr_tls_dict_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1320,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1326,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1331,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1332,1
    - Dst: fr_openssl_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1340,1
    - Dst: fr_touch
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1343,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1344,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1348,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1349,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1357,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 360
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 1360
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 0
    functionsReached:
    - htonl
    - dependency_version_print
    - request_global_init
    - strrchr
    - fr_dict_read
    - fr_dict_free
    - fr_pair_list_afrom_file
    - xlat_func_args_set
    - fr_schedule_worker_id_set
    - fr_pair_validate_debug
    - fr_pair_list_empty
    - fr_openssl_free
    - printf
    - setenv
    - server_free
    - fr_atexit_global_trigger_all
    - fr_dict_attr_autoload
    - fr_unlink
    - fr_perror
    - virtual_server_dict_by_name
    - fr_dict_compatible
    - fr_coord_pre_event_insert
    - fprintf
    - atoi
    - fr_atexit_global_setup
    - main_config_alloc
    - fr_check_lib_magic
    - virtual_server_find
    - main_config_dict_dir_set
    - main_config_free
    - fr_dict_internal_afrom_file
    - unlang_interpret_synchronous
    - MEM
    - server_init
    - modules_rlm_coord_attach
    - talloc_autofree_context
    - virtual_server_cs
    - main_loop_free
    - fr_atexit_thread_trigger_all
    - DEBUG
    - fr_dict_global_ctx_init
    - fr_openssl_version_consistent
    - fr_pair_validate
    - fr_fault_setup
    - main_config_init
    - strcmp
    - getenv
    - fr_time_delta_from_sec
    - fr_exit_now
    - main_config_name_set_default
    - talloc_free
    - modules_init
    - modules_rlm_init
    - virtual_servers_free
    - talloc_enable_leak_report
    - talloc_total_size
    - client_find
    - unlang_global_init
    - fr_coords_destroy
    - fr_event_list_reap_signal
    - main_loop_init
    - fr_strerror_const
    - fr_pair_list_init
    - INFO
    - client_add
    - fr_disable_null_tracking_on_free
    - fr_syserror
    - usage
    - getopt
    - main_loop_event_list
    - fr_assert
    - fr_coord_post_event_insert
    - request_from_file
    - client_alloc
    - fr_time_start
    - fr_fprintf_pair_list
    - fr_timer_in
    - pair_update_reply
    - setlinebuf
    - fr_thread_instantiate
    - talloc_new
    - fopen
    - main_config_confdir_set
    - fr_dict_autofree
    - fr_dict_autoload
    - ERROR
    - request_from_internal
    - modules_rlm_free
    - xlat_func_register
    - fr_openssl_init
    - print_packet
    - fr_touch
    - virtual_servers_init
    - fr_tls_dict_free
    - fr_coords_create
    - PERROR
    - request_clone
    - fclose
    - fr_tls_dict_init
    - fr_talloc_fault_setup
    - do_xlats
    - map_proc_unregister
    - map_proc_register
    - fr_timer_list_set_time_func
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1370,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1371,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1372,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1373,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1374,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1375,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1376,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1377,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1378,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1379,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1380,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1381,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1382,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1383,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1384,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1385,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1386,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/bin/unit_test_module.c:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - config
    - status
    argTypes:
    - main_config_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1389
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/unit_test_module.c
    functionUses: 13
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(main_config_t const *config, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:57,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - conf
    - tmpl
    argTypes:
    - UNUSED*
    - rs_stats_value_tmpl_t*
    assertStmts:
    - condition: (tmpl->src)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (tmpl->dst)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/freeradius-server/src/bin/collectd.c
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: _copy_double_to_double
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void _copy_double_to_double(UNUSED rs_t *conf, rs_stats_value_tmpl_t
      *tmpl)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:96,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:97,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:98,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:101,1
    - Dst: gethostname
      Src: /src/freeradius-server/src/bin/collectd.c:110,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/collectd.c:111,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/collectd.c:111,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/collectd.c:116,1
    - Dst: getaddrinfo
      Src: /src/freeradius-server/src/bin/collectd.c:121,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/collectd.c:122,1
    - Dst: gai_strerror
      Src: /src/freeradius-server/src/bin/collectd.c:122,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/collectd.c:126,1
    - Dst: freeaddrinfo
      Src: /src/freeradius-server/src/bin/collectd.c:128,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/collectd.c:131,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/collectd.c:136,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/collectd.c:143,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/collectd.c:152,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/collectd.c:157,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:163,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:164,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:185,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/collectd.c:193,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/bin/collectd.c:198,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/collectd.c:199,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/bin/collectd.c:207,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/collectd.c:208,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/bin/collectd.c:216,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/collectd.c:217,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/bin/collectd.c:222,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/collectd.c:223,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/collectd.c:232,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 100
    argCount: 7
    argNames:
    - ctx
    - conf
    - plugin_instance
    - type
    - type_instance
    - stats
    - values
    argTypes:
    - TALLOC_CTX*
    - rs_t*
    - char*
    - char*
    - char*
    - void*
    - rs_stats_value_tmpl_t*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (len > 0)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (type)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (values[i].src)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (conf)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (type_instance)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (values[i].cb)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/freeradius-server/src/bin/collectd.c
    constantsTouched: []
    func_position:
      end: 234
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 234
    functionName: rs_stats_collectd_init
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - assert
    - freeaddrinfo
    - talloc_free
    - gethostname
    - fr_syserror
    - fr_snprint
    - getaddrinfo
    - gai_strerror
    - talloc_zero
    - strlen
    - talloc_zero_array
    - memset
    - strlcpy
    linkageType: ''
    returnType: rs_stats_tmpl_t
    signature: "rs_stats_tmpl_t *rs_stats_collectd_init(TALLOC_CTX *ctx, rs_t *conf,\n\t\t\t\t\t
      \      char const *plugin_instance,\n\t\t\t\t\t       char const *type, char
      const *type_instance,\n\t\t\t\t\t       void *stats,\n\t\t\t\t\t       rs_stats_value_tmpl_t
      const *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_STATS
      Src: /src/freeradius-server/src/bin/collectd.c:279,1
    - Dst: INIT_STATS
      Src: /src/freeradius-server/src/bin/collectd.c:280,1
    - Dst: memset
      Src: /src/freeradius-server/src/bin/collectd.c:294,1
    - Dst: INIT_STATS
      Src: /src/freeradius-server/src/bin/collectd.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 6
    argNames:
    - ctx
    - out
    - conf
    - type
    - stats
    - code
    argTypes:
    - TALLOC_CTX*
    - rs_stats_tmpl_t**
    - rs_t*
    - char*
    - rs_latency_t*
    - fr_radius_packet_code_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 299
    functionName: rs_stats_collectd_init_latency
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 1
    functionsReached:
    - INIT_STATS
    - memset
    linkageType: ''
    returnType: rs_stats_tmpl_t
    signature: "rs_stats_tmpl_t *rs_stats_collectd_init_latency(TALLOC_CTX *ctx, rs_stats_tmpl_t
      **out, rs_t *conf,\n\t\t\t\t\t\tchar const *type, rs_latency_t *stats, fr_radius_packet_code_t
      code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ti
    - ','
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: INIT_STATS
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_STATS(_ti, _v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/freeradius-server/src/bin/collectd.c:315,1
    - Dst: lcc_identifier_to_string
      Src: /src/freeradius-server/src/bin/collectd.c:320,1
    - Dst: lcc_putval
      Src: /src/freeradius-server/src/bin/collectd.c:322,1
    - Dst: lcc_strerror
      Src: /src/freeradius-server/src/bin/collectd.c:325,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/collectd.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - conf
    - tmpls
    - now
    argTypes:
    - rs_t*
    - rs_stats_tmpl_t*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 335
    functionName: rs_stats_collectd_do_stats
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 1
    functionsReached:
    - ERROR
    - lcc_identifier_to_string
    - lcc_strerror
    - cb
    - lcc_putval
    linkageType: ''
    returnType: void
    signature: void rs_stats_collectd_do_stats(rs_t *conf, rs_stats_tmpl_t *tmpls,
      struct timeval *now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:346,1
    - Dst: rs_stats_collectd_close
      Src: /src/freeradius-server/src/bin/collectd.c:351,1
    - Dst: lcc_connect
      Src: /src/freeradius-server/src/bin/collectd.c:357,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/collectd.c:358,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/collectd.c:358,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/bin/collectd.c:361,1
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - rs_t*
    assertStmts:
    - condition: (conf->stats.collectd)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/freeradius-server/src/bin/collectd.c
    - condition: (conf->stats.handle)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/freeradius-server/src/bin/collectd.c
    constantsTouched: []
    func_position:
      end: 365
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 365
    functionName: rs_stats_collectd_open
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 2
    functionsReached:
    - ERROR
    - lcc_connect
    - rs_stats_collectd_close
    - assert
    - fr_syserror
    - DEBUG2
    linkageType: ''
    returnType: int
    signature: int rs_stats_collectd_open(rs_t *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/freeradius-server/src/bin/collectd.c:378,1
    - Dst: lcc_disconnect
      Src: /src/freeradius-server/src/bin/collectd.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - rs_t*
    assertStmts:
    - condition: (conf->stats.collectd)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/freeradius-server/src/bin/collectd.c
    constantsTouched: []
    func_position:
      end: 386
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 386
    functionName: rs_stats_collectd_close
    functionSourceFile: /src/freeradius-server/src/bin/collectd.c
    functionUses: 1
    functionsReached:
    - assert
    - lcc_disconnect
    linkageType: ''
    returnType: int
    signature: int rs_stats_collectd_close(rs_t *conf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/freeradius-server/src/bin/radmin.c:86,1
    - Dst: fflush
      Src: /src/freeradius-server/src/bin/radmin.c:87,1
    - Dst: fgets
      Src: /src/freeradius-server/src/bin/radmin.c:89,1
    - Dst: strchr
      Src: /src/freeradius-server/src/bin/radmin.c:92,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:94,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 135
    functionName: readline
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - puts
    - fgets
    - strchr
    - fprintf
    - fflush
    linkageType: ''
    returnType: char
    signature: char *readline(char const *prompt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - line
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: add_history
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_history(UNUSED char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - text
    - state
    argTypes:
    - UNUSED*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 183
    functionName: radmin_expansion_walk
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      radmin_expansion_walk(UNUSED const char *text, int state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:196,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:197,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:198,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:199,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/radmin.c:203,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radmin.c:205,1
    - Dst: fr_command_complete
      Src: /src/freeradius-server/src/bin/radmin.c:206,1
    - Dst: rl_completion_matches
      Src: /src/freeradius-server/src/bin/radmin.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: radmin_completion
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - rl_completion_matches
    - memcpy
    - fr_command_complete
    - fr_assert
    - strlcpy
    linkageType: ''
    returnType: char
    signature: 'char **

      radmin_completion(const char *text, int start, UNUSED int end)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:218,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/radmin.c:221,1
    - Dst: fr_command_print_help
      Src: /src/freeradius-server/src/bin/radmin.c:223,1
    - Dst: rl_on_new_line
      Src: /src/freeradius-server/src/bin/radmin.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - count
    - int
    argTypes:
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: radmin_help
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fr_command_print_help
    - rl_on_new_line
    - strlcpy
    - fprintf
    linkageType: ''
    returnType: int
    signature: int radmin_help(UNUSED int count, UNUSED int key)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/bin/radmin.c:243,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/radmin.c:246,1
    - Dst: fr_command_info_init
      Src: /src/freeradius-server/src/bin/radmin.c:248,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/radmin.c:250,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/bin/radmin.c:251,1
    - Dst: fflush
      Src: /src/freeradius-server/src/bin/radmin.c:254,1
    - Dst: rl_bind_key
      Src: /src/freeradius-server/src/bin/radmin.c:259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:265,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:266,1
    - Dst: readline
      Src: /src/freeradius-server/src/bin/radmin.c:268,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radmin.c:275,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radmin.c:276,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/bin/radmin.c:284,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:296,1
    - Dst: cmd_exit
      Src: /src/freeradius-server/src/bin/radmin.c:297,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:304,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/bin/radmin.c:305,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radmin.c:310,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/bin/radmin.c:330,1
    - Dst: fr_command_str_to_argv
      Src: /src/freeradius-server/src/bin/radmin.c:332,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radmin.c:338,1
    - Dst: add_history
      Src: /src/freeradius-server/src/bin/radmin.c:339,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:358,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmin.c:359,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:365,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/bin/radmin.c:375,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radmin.c:393,1
    - Dst: add_history
      Src: /src/freeradius-server/src/bin/radmin.c:401,1
    - Dst: fr_command_run
      Src: /src/freeradius-server/src/bin/radmin.c:403,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:404,1
    - Dst: fr_command_clear
      Src: /src/freeradius-server/src/bin/radmin.c:411,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radmin.c:412,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/bin/radmin.c:416,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmin.c:421,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmin.c:422,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmin.c:423,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radmin.c:425,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 98
    argCount: 1
    argNames:
    - input_ctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 430
    functionName: fr_radmin
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - radmin_free
    - talloc_const_free
    - fflush
    - strlen
    - cmd_exit
    - strlcpy
    - fr_command_clear
    - fr_command_run
    - talloc_zero_array
    - rl_bind_key
    - fr_command_info_init
    - INFO
    - fr_perror
    - talloc_init_const
    - fr_assert
    - strcmp
    - readline
    - main_loop_signal_raise
    - fclose
    - talloc_free
    - add_history
    - fprintf
    - fr_command_str_to_argv
    - talloc_asprintf
    linkageType: ''
    returnType: void
    signature: void *fr_radmin(UNUSED void *input_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radmin.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: cmd_exit
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 1
    functionsReached:
    - main_loop_signal_raise
    linkageType: ''
    returnType: int
    signature: int cmd_exit(UNUSED FILE *fp, UNUSED FILE *fp_err, UNUSED void *ctx,
      UNUSED fr_cmd_info_t const *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:452,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:455,1
    - Dst: fr_command_list
      Src: /src/freeradius-server/src/bin/radmin.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: cmd_help
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fr_command_list
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd_help(FILE *fp, UNUSED FILE *fp_err, UNUSED void *ctx, fr_cmd_info_t
      const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radmin.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: cmd_terminate
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - main_loop_signal_raise
    linkageType: ''
    returnType: int
    signature: int cmd_terminate(UNUSED FILE *fp, UNUSED FILE *fp_err, UNUSED void
      *ctx, UNUSED fr_cmd_info_t const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/bin/radmin.c:476,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radmin.c:476,1
    - Dst: fr_fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:478,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/bin/radmin.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 481
    functionName: cmd_uptime
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fr_time_sub
    - fr_fprintf
    - fr_box_time_delta
    - fr_time
    linkageType: ''
    returnType: int
    signature: int cmd_uptime(FILE *fp, UNUSED FILE *fp_err, UNUSED void *ctx, UNUSED
      fr_cmd_info_t const *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:486,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:490,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:491,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/bin/radmin.c:491,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:495,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:496,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/bin/radmin.c:496,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:500,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:501,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/bin/radmin.c:502,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - FILE*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 512
    functionName: cmd_stats_memory
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - talloc_total_size
    - fprintf
    - strcmp
    - talloc_total_blocks
    - fr_log_talloc_report
    linkageType: ''
    returnType: int
    signature: int cmd_stats_memory(FILE *fp, FILE *fp_err, UNUSED void *ctx, fr_cmd_info_t
      const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radmin.c:516,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - UNUSED*
    - FILE*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 525
    functionName: cmd_set_debug_level
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - atoi
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_set_debug_level(UNUSED FILE *fp, FILE *fp_err, UNUSED void
      *ctx, fr_cmd_info_t const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: cmd_show_debug_level
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_show_debug_level(FILE *fp, UNUSED FILE *fp_err, UNUSED void
      *ctx, UNUSED fr_cmd_info_t const *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/bin/radmin.c:539,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmin.c:540,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:542,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radmin.c:542,1
    - Dst: ProfilerGetCurrentState
      Src: /src/freeradius-server/src/bin/radmin.c:546,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:552,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/radmin.c:557,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radmin.c:559,1
    - Dst: ProfilerStart
      Src: /src/freeradius-server/src/bin/radmin.c:563,1
    - Dst: getpid
      Src: /src/freeradius-server/src/bin/radmin.c:565,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radmin.c:566,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/bin/radmin.c:566,1
    - Dst: ProfilerStart
      Src: /src/freeradius-server/src/bin/radmin.c:567,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radmin.c:568,1
    - Dst: ProfilerFlush
      Src: /src/freeradius-server/src/bin/radmin.c:572,1
    - Dst: ProfilerStop
      Src: /src/freeradius-server/src/bin/radmin.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - UNUSED*
    - FILE*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 581
    functionName: cmd_set_profile_status
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - ProfilerGetCurrentState
    - talloc_free
    - UNCONST
    - ProfilerStop
    - fprintf
    - strlen
    - ProfilerFlush
    - fr_strerror
    - getenv
    - getpid
    - MEM
    - ProfilerStart
    - fr_value_box_from_str
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: int cmd_set_profile_status(UNUSED FILE *fp, FILE *fp_err, UNUSED void
      *ctx, fr_cmd_info_t const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ProfilerGetCurrentState
      Src: /src/freeradius-server/src/bin/radmin.c:586,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:589,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 595
    functionName: cmd_show_profile_status
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - ProfilerGetCurrentState
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_show_profile_status(FILE *fp, UNUSED FILE *fp_err, UNUSED void
      *ctx, UNUSED fr_cmd_info_t const *info)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radmin.c:610,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/bin/radmin.c:611,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/bin/radmin.c:621,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/bin/radmin.c:622,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/bin/radmin.c:623,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmin.c:625,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/bin/radmin.c:635,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radmin.c:638,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/bin/radmin.c:646,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/bin/radmin.c:647,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/bin/radmin.c:655,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/bin/radmin.c:657,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/bin/radmin.c:668,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/bin/radmin.c:671,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/bin/radmin.c:671,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/bin/radmin.c:672,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/bin/radmin.c:672,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/bin/radmin.c:675,1
    - Dst: fr_command_strncmp
      Src: /src/freeradius-server/src/bin/radmin.c:682,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/bin/radmin.c:690,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/bin/radmin.c:696,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/bin/radmin.c:696,1
    - Dst: fr_command_strncmp
      Src: /src/freeradius-server/src/bin/radmin.c:703,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radmin.c:706,1
    - Dst: malloc
      Src: /src/freeradius-server/src/bin/radmin.c:706,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmin.c:706,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radmin.c:707,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/bin/radmin.c:709,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 6
    argNames:
    - talloc_ctx
    - ctx
    - info
    - max_expansions
    - expansions
    - want_section
    argTypes:
    - TALLOC_CTX*
    - UNUSED*
    - fr_cmd_info_t*
    - int
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 716
    functionName: tab_expand_config_thing
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - memcpy
    - strrchr
    - talloc_strdup
    - fr_command_strncmp
    - strlen
    - MEM
    - cf_item_to_section
    - cf_item_next
    - cf_section_name2
    - cf_section_name1
    - cf_pair_attr
    - cf_item_is_section
    - cf_reference_item
    - cf_item_is_pair
    - malloc
    - talloc_free
    - snprintf
    - strcpy
    linkageType: ''
    returnType: int
    signature: "int tab_expand_config_thing(TALLOC_CTX *talloc_ctx, UNUSED void *ctx,
      fr_cmd_info_t *info, int max_expansions, char const **expansions,\n\t\t\t\t
      \  bool want_section)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:722,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/bin/radmin.c:724,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/bin/radmin.c:726,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:727,1
    - Dst: cf_section_write
      Src: /src/freeradius-server/src/bin/radmin.c:731,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/bin/radmin.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - FILE*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 734
    functionName: cmd_show_config_section
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - cf_reference_item
    - fprintf
    - fr_assert
    - cf_section_write
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int cmd_show_config_section(FILE *fp, FILE *fp_err, UNUSED void *ctx,
      fr_cmd_info_t const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tab_expand_config_thing
      Src: /src/freeradius-server/src/bin/radmin.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - talloc_ctx
    - ctx
    - info
    - max_expansions
    - expansions
    argTypes:
    - TALLOC_CTX*
    - void*
    - fr_cmd_info_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: tab_expand_config_section
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - tab_expand_config_thing
    linkageType: ''
    returnType: int
    signature: int tab_expand_config_section(TALLOC_CTX *talloc_ctx, void *ctx, fr_cmd_info_t
      *info, int max_expansions, char const **expansions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tab_expand_config_thing
      Src: /src/freeradius-server/src/bin/radmin.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - talloc_ctx
    - ctx
    - info
    - max_expansions
    - expansions
    argTypes:
    - TALLOC_CTX*
    - void*
    - fr_cmd_info_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 745
    functionName: tab_expand_config_item
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - tab_expand_config_thing
    linkageType: ''
    returnType: int
    signature: int tab_expand_config_item(TALLOC_CTX *talloc_ctx, void *ctx, fr_cmd_info_t
      *info, int max_expansions, char const **expansions)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/bin/radmin.c:753,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/bin/radmin.c:755,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/bin/radmin.c:757,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:758,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/bin/radmin.c:762,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/bin/radmin.c:763,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:767,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/bin/radmin.c:767,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/bin/radmin.c:789,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/bin/radmin.c:789,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:790,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radmin.c:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - FILE*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 795
    functionName: cmd_show_config_item
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - fr_asprint
    - talloc_free
    - cf_pair_value
    - cf_reference_item
    - fprintf
    - fr_assert
    - cf_item_is_pair
    linkageType: ''
    returnType: int
    signature: int cmd_show_config_item(FILE *fp, FILE *fp_err, UNUSED void *ctx,
      fr_cmd_info_t const *info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:804,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmin.c:807,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:811,1
    - Dst: client_find
      Src: /src/freeradius-server/src/bin/radmin.c:815,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:819,1
    - Dst: client_find
      Src: /src/freeradius-server/src/bin/radmin.c:822,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:827,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:828,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:831,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:834,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:836,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - FILE*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 840
    functionName: cmd_show_client
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - client_find
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_show_client(FILE *fp, FILE *fp_err, UNUSED void *ctx, fr_cmd_info_t
      const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:849,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 856
    functionName: cmd_test
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_test(FILE *fp, UNUSED FILE *fp_err, UNUSED void *ctx, fr_cmd_info_t
      const *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/freeradius-server/src/bin/radmin.c:871,1
    - Dst: strdup
      Src: /src/freeradius-server/src/bin/radmin.c:872,1
    - Dst: malloc
      Src: /src/freeradius-server/src/bin/radmin.c:883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - TALLOC_CTX *talloc_ctx
    - ctx
    - info
    - max_expansions
    - expansions
    argTypes:
    - UNUSED
    - UNUSED*
    - fr_cmd_info_t*
    - UNUSED
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 888
    functionName: cmd_test_tab_expand
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: int cmd_test_tab_expand(UNUSED TALLOC_CTX *talloc_ctx, UNUSED void
      *ctx, fr_cmd_info_t *info, UNUSED int max_expansions, char const **expansions)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/bin/radmin.c:1081,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radmin.c:1084,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radmin.c:1087,1
    - Dst: fr_radmin_register
      Src: /src/freeradius-server/src/bin/radmin.c:1093,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radmin.c:1094,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/bin/radmin.c:1100,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radmin.c:1102,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmin.c:1102,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/bin/radmin.c:1109,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmin.c:1111,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radmin.c:1113,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmin.c:1113,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/bin/radmin.c:1120,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmin.c:1122,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmin.c:1123,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radmin.c:1126,1
    - Dst: fr_thread_create
      Src: /src/freeradius-server/src/bin/radmin.c:1137,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radmin.c:1138,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radmin.c:1142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 3
    argNames:
    - config
    - cli
    - std_fd
    argTypes:
    - main_config_t*
    - bool
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1145
    functionName: fr_radmin_start
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - memcpy
    - fr_time
    - fr_syserror
    - talloc_init_const
    - fdopen
    - fr_thread_create
    - fr_radmin_register
    - PERROR
    - fclose
    linkageType: ''
    returnType: int
    signature: int fr_radmin_start(main_config_t *config, bool cli, int std_fd[static
      3])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/freeradius-server/src/bin/radmin.c:1154,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/bin/radmin.c:1158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1159
    functionName: fr_radmin_stop
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void fr_radmin_stop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_add_multi
      Src: /src/freeradius-server/src/bin/radmin.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - TALLOC_CTX *talloc_ctx
    - name
    - ctx
    - table
    argTypes:
    - UNUSED
    - char*
    - void*
    - fr_cmd_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1167
    functionName: fr_radmin_register
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 1
    functionsReached:
    - fr_command_add_multi
    linkageType: ''
    returnType: int
    signature: int fr_radmin_register(UNUSED TALLOC_CTX *talloc_ctx, char const *name,
      void *ctx, fr_cmd_table_t *table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_str_to_argv
      Src: /src/freeradius-server/src/bin/radmin.c:1185,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:1187,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radmin.c:1187,1
    - Dst: fr_command_run
      Src: /src/freeradius-server/src/bin/radmin.c:1195,1
    - Dst: fflush
      Src: /src/freeradius-server/src/bin/radmin.c:1196,1
    - Dst: fflush
      Src: /src/freeradius-server/src/bin/radmin.c:1197,1
    - Dst: fr_command_clear
      Src: /src/freeradius-server/src/bin/radmin.c:1202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - info
    - fp
    - fp_err
    - str
    - read_only
    argTypes:
    - fr_cmd_info_t*
    - FILE*
    - FILE*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1207
    functionName: fr_radmin_run
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fr_command_clear
    - fr_command_run
    - fprintf
    - fr_command_str_to_argv
    - fflush
    - fr_strerror
    linkageType: ''
    returnType: int
    signature: int fr_radmin_run(fr_cmd_info_t *info, FILE *fp, FILE *fp_err, char
      *str, bool read_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_print_help
      Src: /src/freeradius-server/src/bin/radmin.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - text
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1215
    functionName: fr_radmin_help
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fr_command_print_help
    linkageType: ''
    returnType: void
    signature: void fr_radmin_help(FILE *fp, char const *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/bin/radmin.c:1224,1
    - Dst: fr_command_complete
      Src: /src/freeradius-server/src/bin/radmin.c:1226,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmin.c:1231,1
    - Dst: free
      Src: /src/freeradius-server/src/bin/radmin.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - text
    - start
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1234
    functionName: fr_radmin_complete
    functionSourceFile: /src/freeradius-server/src/bin/radmin.c
    functionUses: 0
    functionsReached:
    - fprintf
    - free
    - memcpy
    - fr_command_complete
    linkageType: ''
    returnType: void
    signature: void fr_radmin_complete(FILE *fp, const char *text, int start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stat_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: WEXITSTATUS
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(stat_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stat_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: WIFEXITED
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFEXITED(stat_val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/bin/radiusd.c:107,1
    - Dst: talloc_disable_null_tracking
      Src: /src/freeradius-server/src/bin/radiusd.c:114,1
    - Dst: talloc_enable_null_tracking
      Src: /src/freeradius-server/src/bin/radiusd.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - main_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: talloc_config_set
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - talloc_disable_null_tracking
    - talloc_enable_null_tracking
    linkageType: ''
    returnType: int
    signature: int talloc_config_set(main_config_t *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_thread_instantiate
      Src: /src/freeradius-server/src/bin/radiusd.c:129,1
    - Dst: modules_rlm_coord_attach
      Src: /src/freeradius-server/src/bin/radiusd.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - el
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: thread_instantiate
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 3
    functionsReached:
    - fr_thread_instantiate
    - modules_rlm_coord_attach
    linkageType: ''
    returnType: int
    signature: int thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el, UNUSED
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_thread_detach
      Src: /src/freeradius-server/src/bin/radiusd.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: thread_detach
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 1
    functionsReached:
    - fr_thread_detach
    linkageType: ''
    returnType: void
    signature: void thread_detach(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radiusd.c:166,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/bin/radiusd.c:168,1
    - Dst: fr_time_sync
      Src: /src/freeradius-server/src/bin/radiusd.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: fr_time_sync_event
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached:
    - fr_timer_in
    - fr_time_sync
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void fr_time_sync_event(fr_timer_list_t *tl, UNUSED fr_time_t now,
      UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/bin/radiusd.c:186,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/bin/radiusd.c:186,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/bin/radiusd.c:187,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:188,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radiusd.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: fr_exit_after
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - fr_time_eq
    - fr_timer_in
    - main_loop_signal_raise
    - PERROR
    linkageType: ''
    returnType: void
    signature: void fr_exit_after(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _phase
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: DUMP_CAPABILITIES
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_CAPABILITIES(_phase)
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/bin/radiusd.c:239,1
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/bin/radiusd.c:244,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/bin/radiusd.c:249,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/bin/radiusd.c:254,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radiusd.c:278,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/bin/radiusd.c:280,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/bin/radiusd.c:280,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radiusd.c:281,1
    - Dst: talloc_page_aligned_pool
      Src: /src/freeradius-server/src/bin/radiusd.c:290,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radiusd.c:290,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/bin/radiusd.c:294,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radiusd.c:294,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:299,1
    - Dst: main_config_alloc
      Src: /src/freeradius-server/src/bin/radiusd.c:308,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:310,1
    - Dst: main_config_name_set_default
      Src: /src/freeradius-server/src/bin/radiusd.c:314,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/bin/radiusd.c:320,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radiusd.c:334,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radiusd.c:334,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radiusd.c:335,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radiusd.c:339,1
    - Dst: main_config_confdir_set
      Src: /src/freeradius-server/src/bin/radiusd.c:347,1
    - Dst: main_config_dict_dir_set
      Src: /src/freeradius-server/src/bin/radiusd.c:352,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/bin/radiusd.c:360,1
    - Dst: atoi
      Src: /src/freeradius-server/src/bin/radiusd.c:360,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radiusd.c:369,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radiusd.c:373,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radiusd.c:375,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radiusd.c:376,1
    - Dst: open
      Src: /src/freeradius-server/src/bin/radiusd.c:378,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:380,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:381,1
    - Dst: main_config_name_set_default
      Src: /src/freeradius-server/src/bin/radiusd.c:395,1
    - Dst: main_config_save_override
      Src: /src/freeradius-server/src/bin/radiusd.c:414,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:415,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/bin/radiusd.c:416,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radiusd.c:448,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radiusd.c:461,1
    - Dst: main_config_confdir_set
      Src: /src/freeradius-server/src/bin/radiusd.c:463,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radiusd.c:475,1
    - Dst: rad_check_lib_magic
      Src: /src/freeradius-server/src/bin/radiusd.c:479,1
    - Dst: fr_openssl_version_consistent
      Src: /src/freeradius-server/src/bin/radiusd.c:486,1
    - Dst: fr_openssl_init
      Src: /src/freeradius-server/src/bin/radiusd.c:495,1
    - Dst: talloc_config_set
      Src: /src/freeradius-server/src/bin/radiusd.c:504,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:516,1
    - Dst: dependency_version_print
      Src: /src/freeradius-server/src/bin/radiusd.c:517,1
    - Dst: dependency_version_print
      Src: /src/freeradius-server/src/bin/radiusd.c:521,1
    - Dst: fr_debug_state_store
      Src: /src/freeradius-server/src/bin/radiusd.c:528,1
    - Dst: modules_init
      Src: /src/freeradius-server/src/bin/radiusd.c:540,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radiusd.c:546,1
    - Dst: fr_tls_dict_init
      Src: /src/freeradius-server/src/bin/radiusd.c:551,1
    - Dst: modules_rlm_init
      Src: /src/freeradius-server/src/bin/radiusd.c:559,1
    - Dst: virtual_servers_init
      Src: /src/freeradius-server/src/bin/radiusd.c:563,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/bin/radiusd.c:571,1
    - Dst: RDUP
      Src: /src/freeradius-server/src/bin/radiusd.c:588,1
    - Dst: RDUP
      Src: /src/freeradius-server/src/bin/radiusd.c:589,1
    - Dst: RDUP
      Src: /src/freeradius-server/src/bin/radiusd.c:590,1
    - Dst: main_config_init
      Src: /src/freeradius-server/src/bin/radiusd.c:596,1
    - Dst: main_config_exclusive_proc
      Src: /src/freeradius-server/src/bin/radiusd.c:607,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/bin/radiusd.c:612,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radiusd.c:625,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/bin/radiusd.c:626,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radiusd.c:627,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:634,1
    - Dst: fr_debug_state_to_msg
      Src: /src/freeradius-server/src/bin/radiusd.c:634,1
    - Dst: cf_md5_final
      Src: /src/freeradius-server/src/bin/radiusd.c:642,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:652,1
    - Dst: talloc_config_set
      Src: /src/freeradius-server/src/bin/radiusd.c:660,1
    - Dst: fr_openssl_version_check
      Src: /src/freeradius-server/src/bin/radiusd.c:669,1
    - Dst: fr_openssl_fips_mode
      Src: /src/freeradius-server/src/bin/radiusd.c:676,1
    - Dst: main_loop_set_sd_watchdog_interval
      Src: /src/freeradius-server/src/bin/radiusd.c:685,1
    - Dst: getenv
      Src: /src/freeradius-server/src/bin/radiusd.c:696,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:696,1
    - Dst: fr_radmin_start
      Src: /src/freeradius-server/src/bin/radiusd.c:704,1
    - Dst: DUMP_CAPABILITIES
      Src: /src/freeradius-server/src/bin/radiusd.c:713,1
    - Dst: open
      Src: /src/freeradius-server/src/bin/radiusd.c:721,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:723,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:723,1
    - Dst: dup2
      Src: /src/freeradius-server/src/bin/radiusd.c:726,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radiusd.c:728,1
    - Dst: pipe
      Src: /src/freeradius-server/src/bin/radiusd.c:730,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:731,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:731,1
    - Dst: fork
      Src: /src/freeradius-server/src/bin/radiusd.c:735,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:737,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:737,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radiusd.c:755,1
    - Dst: read
      Src: /src/freeradius-server/src/bin/radiusd.c:761,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radiusd.c:764,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/bin/radiusd.c:768,1
    - Dst: sd_notifyf
      Src: /src/freeradius-server/src/bin/radiusd.c:777,1
    - Dst: main_config_exclusive_proc_child
      Src: /src/freeradius-server/src/bin/radiusd.c:786,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/bin/radiusd.c:787,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radiusd.c:792,1
    - Dst: setsid
      Src: /src/freeradius-server/src/bin/radiusd.c:794,1
    - Dst: DUMP_CAPABILITIES
      Src: /src/freeradius-server/src/bin/radiusd.c:797,1
    - Dst: DUMP_CAPABILITIES
      Src: /src/freeradius-server/src/bin/radiusd.c:799,1
    - Dst: getpid
      Src: /src/freeradius-server/src/bin/radiusd.c:806,1
    - Dst: unlang_global_init
      Src: /src/freeradius-server/src/bin/radiusd.c:811,1
    - Dst: main_loop_init
      Src: /src/freeradius-server/src/bin/radiusd.c:825,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:826,1
    - Dst: server_init
      Src: /src/freeradius-server/src/bin/radiusd.c:830,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/bin/radiusd.c:830,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/bin/radiusd.c:830,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radiusd.c:836,1
    - Dst: fr_snmp_init
      Src: /src/freeradius-server/src/bin/radiusd.c:843,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:844,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radiusd.c:854,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/bin/radiusd.c:854,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/bin/radiusd.c:861,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radiusd.c:866,1
    - Dst: fr_schedule_create
      Src: /src/freeradius-server/src/bin/radiusd.c:867,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/bin/radiusd.c:867,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:871,1
    - Dst: virtual_servers_open
      Src: /src/freeradius-server/src/bin/radiusd.c:878,1
    - Dst: rad_suid_down_permanent
      Src: /src/freeradius-server/src/bin/radiusd.c:885,1
    - Dst: chdir
      Src: /src/freeradius-server/src/bin/radiusd.c:892,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:893,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:893,1
    - Dst: DUMP_CAPABILITIES
      Src: /src/freeradius-server/src/bin/radiusd.c:898,1
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/bin/radiusd.c:904,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radiusd.c:911,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:913,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radiusd.c:918,1
    - Dst: signal
      Src: /src/freeradius-server/src/bin/radiusd.c:927,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:928,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:928,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radiusd.c:933,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/bin/radiusd.c:934,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radiusd.c:942,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:948,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radiusd.c:949,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:951,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:951,1
    - Dst: trigger
      Src: /src/freeradius-server/src/bin/radiusd.c:956,1
    - Dst: write
      Src: /src/freeradius-server/src/bin/radiusd.c:965,1
    - Dst: WARN
      Src: /src/freeradius-server/src/bin/radiusd.c:966,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:967,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radiusd.c:969,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radiusd.c:975,1
    - Dst: fr_dict_global_ctx_read_only
      Src: /src/freeradius-server/src/bin/radiusd.c:981,1
    - Dst: mprotect
      Src: /src/freeradius-server/src/bin/radiusd.c:988,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:989,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:989,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radiusd.c:992,1
    - Dst: fr_time_sync_event
      Src: /src/freeradius-server/src/bin/radiusd.c:995,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/bin/radiusd.c:995,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/bin/radiusd.c:995,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/bin/radiusd.c:997,1
    - Dst: fr_exit_after
      Src: /src/freeradius-server/src/bin/radiusd.c:997,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/bin/radiusd.c:997,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/bin/radiusd.c:997,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:1002,1
    - Dst: main_loop_start
      Src: /src/freeradius-server/src/bin/radiusd.c:1003,1
    - Dst: main_config_hup
      Src: /src/freeradius-server/src/bin/radiusd.c:1004,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/bin/radiusd.c:1010,1
    - Dst: signal
      Src: /src/freeradius-server/src/bin/radiusd.c:1010,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:1011,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:1012,1
    - Dst: mprotect
      Src: /src/freeradius-server/src/bin/radiusd.c:1019,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:1021,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radiusd.c:1021,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/bin/radiusd.c:1024,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/bin/radiusd.c:1028,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:1031,1
    - Dst: fr_radmin_stop
      Src: /src/freeradius-server/src/bin/radiusd.c:1035,1
    - Dst: trigger
      Src: /src/freeradius-server/src/bin/radiusd.c:1041,1
    - Dst: trigger
      Src: /src/freeradius-server/src/bin/radiusd.c:1042,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/bin/radiusd.c:1049,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/bin/radiusd.c:1049,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/bin/radiusd.c:1058,1
    - Dst: unlink
      Src: /src/freeradius-server/src/bin/radiusd.c:1059,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/bin/radiusd.c:1073,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/bin/radiusd.c:1074,1
    - Dst: main_loop_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1077,1
    - Dst: INFO
      Src: /src/freeradius-server/src/bin/radiusd.c:1087,1
    - Dst: kill
      Src: /src/freeradius-server/src/bin/radiusd.c:1097,1
    - Dst: getpgid
      Src: /src/freeradius-server/src/bin/radiusd.c:1097,1
    - Dst: main_config_exclusive_proc_done
      Src: /src/freeradius-server/src/bin/radiusd.c:1107,1
    - Dst: fr_atexit_global_disarm_all
      Src: /src/freeradius-server/src/bin/radiusd.c:1115,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radiusd.c:1116,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/bin/radiusd.c:1123,1
    - Dst: fr_log_disable_pools
      Src: /src/freeradius-server/src/bin/radiusd.c:1135,1
    - Dst: fr_atexit_thread_trigger_all
      Src: /src/freeradius-server/src/bin/radiusd.c:1145,1
    - Dst: server_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1147,1
    - Dst: fr_openssl_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1150,1
    - Dst: virtual_servers_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1160,1
    - Dst: modules_rlm_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1169,1
    - Dst: fr_tls_dict_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1172,1
    - Dst: main_config_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1179,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/bin/radiusd.c:1184,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radiusd.c:1186,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/bin/radiusd.c:1195,1
    - Dst: rad_suid_is_down_permanent
      Src: /src/freeradius-server/src/bin/radiusd.c:1201,1
    - Dst: fr_get_lsan_state
      Src: /src/freeradius-server/src/bin/radiusd.c:1201,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/bin/radiusd.c:1201,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/bin/radiusd.c:1202,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/bin/radiusd.c:1208,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 432
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 1211
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached:
    - fr_schedule_destroy
    - cf_section_find
    - WARN
    - dependency_version_print
    - request_global_init
    - strrchr
    - main_config_exclusive_proc_done
    - fr_openssl_free
    - unlink
    - server_free
    - fr_atexit_global_trigger_all
    - RDUP
    - talloc_page_aligned_pool
    - fr_perror
    - mprotect
    - fr_atexit_global_disarm_all
    - fr_radmin_stop
    - main_config_save_override
    - fr_time_wrap
    - fprintf
    - fr_dict_internal
    - atoi
    - getpid
    - rad_suid_up
    - fr_atexit_global_setup
    - PWARN
    - main_config_alloc
    - fr_check_lib_magic
    - main_config_dict_dir_set
    - DUMP_CAPABILITIES
    - fr_exit_after
    - main_config_free
    - main_config_exclusive_proc_child
    - MEM
    - server_init
    - talloc_config_set
    - sd_notifyf
    - fr_reset_dumpable
    - talloc_autofree_context
    - cf_md5_final
    - main_loop_free
    - exit
    - fr_atexit_thread_trigger_all
    - DEBUG
    - DEBUG3
    - fr_dict_global_ctx_init
    - fr_openssl_version_consistent
    - fr_fault_setup
    - main_config_init
    - strcmp
    - getenv
    - fork
    - main_loop_start
    - main_loop_set_sd_watchdog_interval
    - getpgid
    - fr_time_delta_from_sec
    - main_config_name_set_default
    - fr_dict_unconst
    - talloc_free
    - modules_init
    - modules_rlm_init
    - virtual_servers_free
    - fr_schedule_create
    - fr_openssl_version_check
    - kill
    - fr_debug_state_store
    - fr_event_loop_exit
    - fr_log_disable_pools
    - unlang_global_init
    - fr_strerror
    - close
    - fr_radmin_start
    - fr_snmp_init
    - write
    - unlikely
    - open
    - fr_debug_state_to_msg
    - read
    - main_loop_init
    - fr_time_delta_ispos
    - setsid
    - fr_set_signal
    - INFO
    - fr_syserror
    - usage
    - getopt
    - main_loop_event_list
    - chdir
    - fr_time_delta_wrap
    - pipe
    - fr_size_from_str
    - FR_SBUFF_IN_STR
    - dup2
    - rad_suid_is_down_permanent
    - fr_time_start
    - waitpid
    - main_config_exclusive_proc
    - talloc_strdup
    - rad_check_lib_magic
    - virtual_servers_open
    - talloc_new
    - fopen
    - main_config_confdir_set
    - fr_dict_global_ctx_read_only
    - ERROR
    - fr_time
    - modules_rlm_free
    - fr_openssl_fips_mode
    - fr_log_talloc_report
    - fr_openssl_init
    - main_config_hup
    - fr_time_sync_event
    - virtual_servers_init
    - fr_tls_dict_free
    - fr_get_lsan_state
    - rad_suid_down_permanent
    - PERROR
    - fclose
    - fr_tls_dict_init
    - fr_talloc_fault_setup
    - signal
    - talloc_zero
    - fr_strerror_clear
    - trigger
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 586
    functionName: RDUP
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDUP(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1220,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1221,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1222,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1223,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1224,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1226,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1228,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1229,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1230,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1232,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1234,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1235,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1237,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1239,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1240,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1246,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1247,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1248,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1249,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radiusd.c:1250,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/radiusd.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1252
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 14
    functionsReached:
    - fr_exit
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int status)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/freeradius-server/src/bin/radiusd.c:1262,1
    - Dst: _exit
      Src: /src/freeradius-server/src/bin/radiusd.c:1262,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radiusd.c:1279,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radiusd.c:1286,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/bin/radiusd.c:1290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1292
    functionName: sig_fatal
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached:
    - getpid
    - _exit
    - main_loop_signal_raise
    - fr_exit
    linkageType: ''
    returnType: void
    signature: void sig_fatal(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_signal
      Src: /src/freeradius-server/src/bin/radiusd.c:1301,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/bin/radiusd.c:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1304
    functionName: sig_hup
    functionSourceFile: /src/freeradius-server/src/bin/radiusd.c
    functionUses: 0
    functionsReached:
    - main_loop_signal_raise
    - reset_signal
    linkageType: ''
    returnType: void
    signature: void sig_hup(UNUSED int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:12,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:13,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:14,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:16,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:17,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:18,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:20,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:21,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:23,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:25,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:26,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:27,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:28,1
    - Dst: FR_TLIST_ENTRY
      Src: /src/freeradius-server/src/bin/radsizes.c:28,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:30,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:31,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:33,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:34,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:36,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:38,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:39,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:41,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:42,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:43,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:44,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:46,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:47,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:48,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:49,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:50,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:52,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:53,1
    - Dst: SIZEOF
      Src: /src/freeradius-server/src/bin/radsizes.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - UNUSED
    - UNUSED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 57
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radsizes.c
    functionUses: 0
    functionsReached:
    - SIZEOF
    - FR_TLIST_ENTRY
    linkageType: ''
    returnType: int
    signature: int main(UNUSED int argc, UNUSED char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _struct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: SIZEOF
    functionSourceFile: /src/freeradius-server/src/bin/radsizes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF(_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: quote_name
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: quote_name(_t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/freeradius-server/src/bin/radmod2json.c:69,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - fn
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: func_symbol
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - dladdr
    - json_object_new_string
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *func_symbol(void const *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:82,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:83,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:83,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:84,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:84,1
    - Dst: quote_name
      Src: /src/freeradius-server/src/bin/radmod2json.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - quote
    argTypes:
    - char*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: build_dflt
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_object_object_add
    - json_object_new_object
    - quote_name
    - json_object_new_string
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_dflt(char const *value, fr_token_t quote)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:95,1
    - Dst: UINT64_C
      Src: /src/freeradius-server/src/bin/radmod2json.c:98,1
    - Dst: cf_parser_flag_to_enum_str
      Src: /src/freeradius-server/src/bin/radmod2json.c:102,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:104,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - flags
    argTypes:
    - conf_parser_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: build_conf_parser_flags
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - cf_parser_flag_to_enum_str
    - UINT64_C
    - json_object_new_array
    - json_object_array_add
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_conf_parser_flags(conf_parser_flags_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:113,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:116,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:116,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:117,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:117,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:118,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:118,1
    - Dst: fr_type_to_enum_str
      Src: /src/freeradius-server/src/bin/radmod2json.c:118,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:119,1
    - Dst: build_conf_parser_flags
      Src: /src/freeradius-server/src/bin/radmod2json.c:119,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:120,1
    - Dst: func_symbol
      Src: /src/freeradius-server/src/bin/radmod2json.c:120,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:121,1
    - Dst: func_symbol
      Src: /src/freeradius-server/src/bin/radmod2json.c:121,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:124,1
    - Dst: build_conf_parser_rules
      Src: /src/freeradius-server/src/bin/radmod2json.c:125,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:125,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:127,1
    - Dst: build_dflt
      Src: /src/freeradius-server/src/bin/radmod2json.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: build_conf_parser_rule
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - build_conf_parser_flags
    - json_object_new_string
    - build_dflt
    - fr_type_to_enum_str
    - json_object_new_array
    - json_object_object_add
    - func_symbol
    - json_object_new_object
    - build_conf_parser_rules
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_conf_parser_rule(conf_parser_t const *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:135,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:139,1
    - Dst: build_conf_parser_rule
      Src: /src/freeradius-server/src/bin/radmod2json.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - rules
    argTypes:
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: build_conf_parser_rules
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 1
    functionsReached:
    - build_conf_parser_rule
    - json_object_array_add
    - json_object_new_array
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_conf_parser_rules(conf_parser_t const *rules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:147,1
    - Dst: UINT64_C
      Src: /src/freeradius-server/src/bin/radmod2json.c:150,1
    - Dst: call_env_flag_to_enum_str
      Src: /src/freeradius-server/src/bin/radmod2json.c:154,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:156,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - flags
    argTypes:
    - call_env_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 159
    functionName: build_call_env_flags
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - UINT64_C
    - call_env_flag_to_enum_str
    - json_object_new_array
    - json_object_array_add
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_call_env_flags(call_env_flags_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:164,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: json_section_ident
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *json_section_ident(char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:172,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:175,1
    - Dst: json_section_ident
      Src: /src/freeradius-server/src/bin/radmod2json.c:175,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:176,1
    - Dst: build_call_env_flags
      Src: /src/freeradius-server/src/bin/radmod2json.c:176,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:179,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:180,1
    - Dst: json_section_ident
      Src: /src/freeradius-server/src/bin/radmod2json.c:180,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:181,1
    - Dst: func_symbol
      Src: /src/freeradius-server/src/bin/radmod2json.c:181,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:182,1
    - Dst: build_call_env_rules
      Src: /src/freeradius-server/src/bin/radmod2json.c:183,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:184,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:185,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:187,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:188,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:196,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:199,1
    - Dst: fr_type_to_enum_str
      Src: /src/freeradius-server/src/bin/radmod2json.c:199,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:200,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:201,1
    - Dst: call_env_result_type_to_enum_str
      Src: /src/freeradius-server/src/bin/radmod2json.c:201,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:202,1
    - Dst: build_dflt
      Src: /src/freeradius-server/src/bin/radmod2json.c:202,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:203,1
    - Dst: func_symbol
      Src: /src/freeradius-server/src/bin/radmod2json.c:203,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:205,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:206,1
    - Dst: call_env_parse_type_to_enum_str
      Src: /src/freeradius-server/src/bin/radmod2json.c:206,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:207,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - r
    argTypes:
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 213
    functionName: build_call_env_rule
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_section_ident
    - call_env_result_type_to_enum_str
    - json_object_new_string
    - build_call_env_flags
    - build_dflt
    - json_object_new_array
    - fr_type_to_enum_str
    - call_env_parse_type_to_enum_str
    - build_call_env_rules
    - json_object_object_add
    - func_symbol
    - json_object_new_object
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_call_env_rule(call_env_parser_t const *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:217,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:221,1
    - Dst: build_call_env_rule
      Src: /src/freeradius-server/src/bin/radmod2json.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - rules
    argTypes:
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: build_call_env_rules
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 1
    functionsReached:
    - build_call_env_rule
    - json_object_array_add
    - json_object_new_array
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_call_env_rules(call_env_parser_t const *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:229,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:233,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:234,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:236,1
    - Dst: json_section_ident
      Src: /src/freeradius-server/src/bin/radmod2json.c:236,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:237,1
    - Dst: json_section_ident
      Src: /src/freeradius-server/src/bin/radmod2json.c:237,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:238,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:239,1
    - Dst: func_symbol
      Src: /src/freeradius-server/src/bin/radmod2json.c:239,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:240,1
    - Dst: build_call_env_rules
      Src: /src/freeradius-server/src/bin/radmod2json.c:242,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:243,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - bindings
    argTypes:
    - module_method_binding_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 250
    functionName: build_method_bindings
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_section_ident
    - json_object_new_array
    - build_call_env_rules
    - json_object_array_add
    - json_object_object_add
    - func_symbol
    - json_object_new_object
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_method_bindings(module_method_binding_t const
      *bindings)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dl_module_alloc
      Src: /src/freeradius-server/src/bin/radmod2json.c:263,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radmod2json.c:265,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:272,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:273,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/bin/radmod2json.c:273,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:274,1
    - Dst: build_conf_parser_rules
      Src: /src/freeradius-server/src/bin/radmod2json.c:274,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:275,1
    - Dst: build_method_bindings
      Src: /src/freeradius-server/src/bin/radmod2json.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - bare_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 277
    functionName: build_module
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - dl_module_alloc
    - build_method_bindings
    - fr_perror
    - json_object_object_add
    - json_object_new_object
    - build_conf_parser_rules
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *build_module(char const *bare_name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/freeradius-server/src/bin/radmod2json.c:285,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:286,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmod2json.c:286,1
    - Dst: fork
      Src: /src/freeradius-server/src/bin/radmod2json.c:290,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radmod2json.c:292,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radmod2json.c:293,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:294,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmod2json.c:294,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radmod2json.c:301,1
    - Dst: build_module
      Src: /src/freeradius-server/src/bin/radmod2json.c:302,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:304,1
    - Dst: _exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:305,1
    - Dst: json_object_to_json_string_ext
      Src: /src/freeradius-server/src/bin/radmod2json.c:309,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmod2json.c:311,1
    - Dst: write
      Src: /src/freeradius-server/src/bin/radmod2json.c:315,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:317,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmod2json.c:318,1
    - Dst: _exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:319,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/bin/radmod2json.c:325,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radmod2json.c:326,1
    - Dst: _exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:327,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radmod2json.c:330,1
    - Dst: read
      Src: /src/freeradius-server/src/bin/radmod2json.c:335,1
    - Dst: close
      Src: /src/freeradius-server/src/bin/radmod2json.c:339,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/bin/radmod2json.c:342,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/src/bin/radmod2json.c:344,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/bin/radmod2json.c:344,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:345,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/src/bin/radmod2json.c:346,1
    - Dst: json_tokener_parse
      Src: /src/freeradius-server/src/bin/radmod2json.c:351,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:353,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:356,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 2
    argNames:
    - modules
    - bare_name
    argTypes:
    - struct json_object*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 362
    functionName: dump_module
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - write
    - json_object_put
    - WEXITSTATUS
    - pipe
    - json_object_to_json_string_ext
    - fr_syserror
    - build_module
    - read
    - WIFEXITED
    - json_tokener_parse
    - fprintf
    - _exit
    - strlen
    - fork
    - json_object_array_add
    - close
    - waitpid
    linkageType: ''
    returnType: int
    signature: int dump_module(struct json_object *modules, char const *bare_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmod2json.c:375,1
    - Dst: opendir
      Src: /src/freeradius-server/src/bin/radmod2json.c:377,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:379,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmod2json.c:379,1
    - Dst: readdir
      Src: /src/freeradius-server/src/bin/radmod2json.c:383,1
    - Dst: strlen
      Src: /src/freeradius-server/src/bin/radmod2json.c:384,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmod2json.c:387,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/radmod2json.c:388,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radmod2json.c:392,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/bin/radmod2json.c:392,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radmod2json.c:396,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/bin/radmod2json.c:396,1
    - Dst: closedir
      Src: /src/freeradius-server/src/bin/radmod2json.c:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - dir
    - out_names
    - out_count
    argTypes:
    - TALLOC_CTX*
    - char*
    - char***
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 404
    functionName: discover_modules
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - talloc_strndup
    - talloc_realloc
    - fr_syserror
    - fprintf
    - opendir
    - strlen
    - strcmp
    - readdir
    - strncmp
    - MEM
    - closedir
    linkageType: ''
    returnType: int
    signature: int discover_modules(TALLOC_CTX *ctx, char const *dir, char ***out_names,
      size_t *out_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/bin/radmod2json.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: compare_str
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_str(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:415,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 14
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int rcode)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/bin/radmod2json.c:440,1
    - Dst: getopt
      Src: /src/freeradius-server/src/bin/radmod2json.c:446,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radmod2json.c:452,1
    - Dst: usage
      Src: /src/freeradius-server/src/bin/radmod2json.c:466,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/bin/radmod2json.c:470,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radmod2json.c:471,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:472,1
    - Dst: modules_init
      Src: /src/freeradius-server/src/bin/radmod2json.c:476,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/bin/radmod2json.c:484,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radmod2json.c:485,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:486,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/bin/radmod2json.c:489,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/bin/radmod2json.c:490,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:491,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/bin/radmod2json.c:495,1
    - Dst: strsep
      Src: /src/freeradius-server/src/bin/radmod2json.c:499,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/bin/radmod2json.c:503,1
    - Dst: MEM
      Src: /src/freeradius-server/src/bin/radmod2json.c:506,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/bin/radmod2json.c:506,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/bin/radmod2json.c:508,1
    - Dst: discover_modules
      Src: /src/freeradius-server/src/bin/radmod2json.c:511,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:512,1
    - Dst: qsort
      Src: /src/freeradius-server/src/bin/radmod2json.c:514,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/bin/radmod2json.c:518,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/bin/radmod2json.c:519,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/bin/radmod2json.c:522,1
    - Dst: dump_module
      Src: /src/freeradius-server/src/bin/radmod2json.c:525,1
    - Dst: json_object_to_json_string_ext
      Src: /src/freeradius-server/src/bin/radmod2json.c:528,1
    - Dst: fopen
      Src: /src/freeradius-server/src/bin/radmod2json.c:530,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/bin/radmod2json.c:532,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/bin/radmod2json.c:532,1
    - Dst: exit
      Src: /src/freeradius-server/src/bin/radmod2json.c:533,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/radmod2json.c:535,1
    - Dst: fputc
      Src: /src/freeradius-server/src/bin/radmod2json.c:536,1
    - Dst: fclose
      Src: /src/freeradius-server/src/bin/radmod2json.c:537,1
    - Dst: fputs
      Src: /src/freeradius-server/src/bin/radmod2json.c:539,1
    - Dst: fputc
      Src: /src/freeradius-server/src/bin/radmod2json.c:540,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/bin/radmod2json.c:543,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 427
    functionDepth: 7
    functionLinenumber: 427
    functionLinenumberEnd: 547
    functionName: main
    functionSourceFile: /src/freeradius-server/src/bin/radmod2json.c
    functionUses: 0
    functionsReached:
    - fr_check_lib_magic
    - fr_dict_internal_afrom_file
    - talloc_realloc
    - talloc_strdup
    - strsep
    - json_object_new_array
    - fopen
    - MEM
    - talloc_autofree_context
    - exit
    - json_object_new_object
    - qsort
    - fr_dict_global_ctx_init
    - dump_module
    - fr_syserror
    - UNCONST
    - usage
    - getopt
    - fputc
    - discover_modules
    - fr_perror
    - json_object_object_add
    - strncmp
    - fclose
    - json_object_put
    - json_object_to_json_string_ext
    - modules_init
    - fprintf
    - fputs
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: DEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 114
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: WARN
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: RDEBUG_ENABLED
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: RDEBUG_ENABLED2
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLED2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: REDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: RDEBUG
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: RDEBUG2
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: rc_request_list_foreach
    functionSourceFile: /src/freeradius-server/src/bin/radclient.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rc_request_list_foreach(_list_head, _iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:58,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:60,1
    - Dst: dlclose
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:63,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:66,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:68,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: exitHandler
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_util.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_trigger_all
    - talloc_free
    - dlclose
    - free
    - fr_dict_free
    linkageType: ''
    returnType: void
    signature: void exitHandler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:83,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:85,1
    - Dst: fr_dict_protocol_t*::init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:86,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:87,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dl_handle
    - proto
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: fuzzer_dict_init
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_util.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - snprintf
    - fr_perror
    - fr_dict_protocol_t*::init
    - dlsym
    linkageType: ''
    returnType: fr_dict_protocol_t
    signature: fr_dict_protocol_t *fuzzer_dict_init(void *dl_handle, char const *proto)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:96,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:97,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:98,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:99,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:100,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:101,1
    - Dst: atoi
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:111,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:113,1
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:120,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:125,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:133,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:134,1
    - Dst: atexit
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:139,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:140,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:140,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:141,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:148,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:182,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:185,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:186,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:190,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:191,1
    - Dst: dl_search_global_path_set
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:202,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:203,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:204,1
    - Dst: setenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:212,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:213,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:214,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:217,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:218,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:219,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:222,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:223,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:224,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:228,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:229,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:233,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:233,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:235,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:236,1
    - Dst: fuzzer_dict_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:251,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:253,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:254,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:255,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:256,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:262,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:263,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 267
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_internal_afrom_file
    - strrchr
    - fr_dict_root
    - talloc_autofree_context
    - atexit
    - fr_strerror_const
    - setenv
    - fr_dict_global_ctx_init
    - fr_dict_attr_by_name
    - fuzzer_dict_init
    - fr_syserror
    - fr_fault_setup
    - fr_perror
    - getenv
    - dl_search_global_path_set
    - fr_exit_now
    - talloc_free
    - fr_talloc_fault_setup
    - fprintf
    - fr_strerror_clear
    - talloc_asprintf
    - atoi
    - fr_time_start
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:273,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:280,1
    - Dst: LLVMFuzzerInitialize
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:281,1
    - Dst: fr_test_point_proto_decode_t*::test_ctx
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:283,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:284,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:285,1
    - Dst: fr_test_point_proto_encode_t*::test_ctx
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:288,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:289,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:290,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:294,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:296,1
    - Dst: fr_test_point_proto_decode_t*::func
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:306,1
    - Dst: PAIR_LIST_VERIFY_WITH_CTX
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:307,1
    - Dst: fr_pair_list_debug
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:309,1
    - Dst: fr_test_point_proto_encode_t*::func
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:311,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:314,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:315,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:316,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer_util.c:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 326
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_util.c
    functionUses: 0
    functionsReached:
    - fr_test_point_proto_encode_t*::test_ctx
    - fr_exit_now
    - fr_test_point_proto_decode_t*::func
    - FR_PROTO_HEX_DUMP
    - PAIR_LIST_VERIFY_WITH_CTX
    - FR_PROTO_TRACE
    - talloc_free
    - LLVMFuzzerInitialize
    - fr_perror
    - talloc_init_const
    - fr_test_point_proto_encode_t*::func
    - fr_pair_list_debug
    - fr_strerror_clear
    - fr_test_point_proto_decode_t*::test_ctx
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:62,1
    - Dst: getpid
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - UNUSED*
    - UNUSED***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_cf.c
    functionUses: 1
    functionsReached:
    - getpid
    - snprintf
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(UNUSED int *argc, UNUSED char ***argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:110,1
    - Dst: write
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:112,1
    - Dst: close
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:113,1
    - Dst: unlink
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:114,1
    - Dst: close
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:117,1
    - Dst: main_config_alloc
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:119,1
    - Dst: unlink
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:121,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:125,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:127,1
    - Dst: unlink
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:128,1
    - Dst: cf_section_set_unlang
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:131,1
    - Dst: cf_file_read
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:133,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:135,1
    - Dst: unlink
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:136,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer_cf.c:142,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 145
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_cf.c
    functionUses: 0
    functionsReached:
    - write
    - cf_section_alloc
    - talloc_free
    - open
    - cf_file_read
    - fr_strerror_clear
    - close
    - unlink
    - cf_section_set_unlang
    - main_config_alloc
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:65,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:85,1
    - Dst: json_tokener_parse
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:87,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:89,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:104,1
    - Dst: fr_jpath_parse
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:117,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:117,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_json.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 123
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_json.c
    functionUses: 0
    functionsReached:
    - talloc_strndup
    - json_object_put
    - talloc_free
    - json_tokener_parse
    - talloc_strlen
    - fr_jpath_parse
    - talloc_init
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:58,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:60,1
    - Dst: dlclose
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:63,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:66,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:68,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: exitHandler
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_trigger_all
    - talloc_free
    - dlclose
    - free
    - fr_dict_free
    linkageType: ''
    returnType: void
    signature: void exitHandler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:83,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:85,1
    - Dst: fr_dict_protocol_t*::init
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:86,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:87,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dl_handle
    - proto
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: fuzzer_dict_init
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer.c
    functionUses: 1
    functionsReached:
    - fr_exit_now
    - snprintf
    - fr_perror
    - fr_dict_protocol_t*::init
    - dlsym
    linkageType: ''
    returnType: fr_dict_protocol_t
    signature: fr_dict_protocol_t *fuzzer_dict_init(void *dl_handle, char const *proto)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:96,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:97,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:98,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:99,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:100,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:101,1
    - Dst: atoi
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:111,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:113,1
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:120,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:125,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:133,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:134,1
    - Dst: atexit
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:139,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:140,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:140,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:141,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:148,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:182,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:185,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:186,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:190,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:191,1
    - Dst: dl_search_global_path_set
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:202,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:203,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:204,1
    - Dst: setenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:212,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:213,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:214,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:217,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:218,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:219,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:222,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:223,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:224,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:228,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:229,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:233,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:233,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:235,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:236,1
    - Dst: fuzzer_dict_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:251,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:253,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:254,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:255,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:256,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:262,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:263,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 267
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer.c
    functionUses: 1
    functionsReached:
    - fr_dict_internal_afrom_file
    - strrchr
    - fr_dict_root
    - talloc_autofree_context
    - atexit
    - fr_strerror_const
    - setenv
    - fr_dict_global_ctx_init
    - fr_dict_attr_by_name
    - fuzzer_dict_init
    - fr_syserror
    - fr_fault_setup
    - fr_perror
    - getenv
    - dl_search_global_path_set
    - fr_exit_now
    - talloc_free
    - fr_talloc_fault_setup
    - fprintf
    - fr_strerror_clear
    - talloc_asprintf
    - atoi
    - fr_time_start
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:273,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:280,1
    - Dst: LLVMFuzzerInitialize
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:281,1
    - Dst: fr_test_point_proto_decode_t*::test_ctx
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:283,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:284,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:285,1
    - Dst: fr_test_point_proto_encode_t*::test_ctx
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:288,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:289,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:290,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:294,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:296,1
    - Dst: fr_test_point_proto_decode_t*::func
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:306,1
    - Dst: PAIR_LIST_VERIFY_WITH_CTX
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:307,1
    - Dst: fr_pair_list_debug
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:309,1
    - Dst: fr_test_point_proto_encode_t*::func
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:311,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:314,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:315,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:316,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer.c:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 326
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer.c
    functionUses: 0
    functionsReached:
    - fr_test_point_proto_encode_t*::test_ctx
    - fr_exit_now
    - fr_test_point_proto_decode_t*::func
    - FR_PROTO_HEX_DUMP
    - PAIR_LIST_VERIFY_WITH_CTX
    - FR_PROTO_TRACE
    - talloc_free
    - LLVMFuzzerInitialize
    - fr_perror
    - talloc_init_const
    - fr_test_point_proto_encode_t*::func
    - fr_pair_list_debug
    - fr_strerror_clear
    - fr_test_point_proto_decode_t*::test_ctx
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - UNUSED*
    - UNUSED***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_value.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(UNUSED int *argc, UNUSED char ***argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:112,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:122,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:125,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:126,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:127,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:134,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:138,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:139,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:141,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:146,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:147,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_value.c:150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 152
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_value.c
    functionUses: 0
    functionsReached:
    - ASAN_UNPOISON_MEMORY_REGION
    - memcpy
    - talloc_array
    - talloc_free
    - ASAN_POISON_MEMORY_REGION
    - talloc_init_const
    - talloc_zero_array
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:71,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:72,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:73,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:74,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:76,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:78,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:82,1
    - Dst: getenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:83,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:85,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:88,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:94,1
    - Dst: dl_search_global_path_set
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:101,1
    - Dst: setenv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:103,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:105,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:107,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:109,1
    - Dst: unlang_global_init
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:115,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:117,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:118,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 122
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c
    functionUses: 2
    functionsReached:
    - fr_dict_global_ctx_init
    - fr_check_lib_magic
    - setenv
    - talloc_free
    - request_global_init
    - fr_dict_internal_afrom_file
    - fr_talloc_fault_setup
    - strrchr
    - fr_perror
    - unlang_global_init
    - fr_strerror_clear
    - getenv
    - fr_strerror_const
    - fr_atexit_global_setup
    - dl_search_global_path_set
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:154,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:164,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:167,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:168,1
    - Dst: ASAN_POISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:169,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:187,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:191,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:194,1
    - Dst: xlat_tokenize_condition
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:197,1
    - Dst: xlat_tokenize_argv
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:205,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:223,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:242,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:243,1
    - Dst: ASAN_UNPOISON_MEMORY_REGION
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:251,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:254,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c:255,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 257
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/freeradius-server/src/fuzzer/fuzzer_xlat.c
    functionUses: 0
    functionsReached:
    - xlat_tokenize_expression
    - xlat_print
    - ASAN_UNPOISON_MEMORY_REGION
    - memcpy
    - talloc_array
    - talloc_free
    - xlat_tokenize
    - ASAN_POISON_MEMORY_REGION
    - FR_SBUFF_IN
    - xlat_tokenize_condition
    - FR_SBUFF_OUT
    - talloc_init_const
    - xlat_resolve
    - fr_strerror_clear
    - xlat_tokenize_argv
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:44,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:45,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:46,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:47,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/schedule_test.c
    functionUses: 15
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:57,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:60,1
    - Dst: fr_log_init_legacy
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:62,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:64,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:66,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:67,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:71,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:72,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:82,1
    - Dst: fr_schedule_create
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:90,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:92,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:93,1
    - Dst: sleep
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:96,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/tests/util/schedule_test.c:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/schedule_test.c
    functionUses: 0
    functionsReached:
    - fr_schedule_create
    - fr_exit_now
    - fr_schedule_destroy
    - usage
    - getopt
    - talloc_autofree_context
    - fprintf
    - sleep
    - atoi
    - fr_time_start
    - fr_log_init_legacy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:72,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:74,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:82,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:90,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:91,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:93,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:94,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:107,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ms
    - seed
    - start
    - end
    argTypes:
    - fr_message_set_t*
    - uint32_t*
    - UNUSED*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 116
    functionName: alloc_blocks
    functionSourceFile: /src/freeradius-server/src/tests/util/message_set_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_message_and_data_reserve
    - fr_assert
    - fr_message_and_data_commit
    - printf
    - MPRINT2
    - fr_hash_update
    linkageType: ''
    returnType: void
    signature: void alloc_blocks(fr_message_set_t *ms, uint32_t *seed, UNUSED int
      *start, int *end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:122,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:124,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:135,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:137,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:139,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:151,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - fr_message_set_t *ms
    - seed
    - start
    - end
    argTypes:
    - UNUSED
    - UNUSED*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 154
    functionName: free_blocks
    functionSourceFile: /src/freeradius-server/src/tests/util/message_set_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_assert
    - fr_message_done
    - MPRINT2
    linkageType: ''
    returnType: void
    signature: void free_blocks(UNUSED fr_message_set_t *ms, UNUSED uint32_t *seed,
      int *start, int *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:158,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:159,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:160,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:161,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/message_set_test.c
    functionUses: 16
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:173,1
    - Dst: memset
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:175,1
    - Dst: memset
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:176,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:178,1
    - Dst: strlen
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:181,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:194,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:201,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:203,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:204,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:215,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:221,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:222,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:224,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:227,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:227,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:229,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:243,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:244,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:246,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:249,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:249,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:251,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:264,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:265,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:267,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:278,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:278,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:280,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:286,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:287,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:289,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:292,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:292,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:294,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:308,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:309,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:311,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:314,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:314,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:316,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:328,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:329,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:331,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:334,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:334,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:336,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:340,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:342,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:345,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:351,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:359,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:361,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:364,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:366,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:367,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:367,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:368,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:368,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:375,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:376,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:378,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:383,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:384,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:389,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:391,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:392,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:398,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:399,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/tests/util/message_set_test.c:400,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 123
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 403
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/message_set_test.c
    functionUses: 0
    functionsReached:
    - fr_message_set_gc
    - fr_time_delta_to_sec
    - fr_time_sub
    - strlen
    - fr_message_set_messages_used
    - fr_time
    - talloc_autofree_context
    - printf
    - memset
    - usage
    - getopt
    - alloc_blocks
    - MPRINT1
    - fr_assert
    - MPRINT2
    - fr_message_set_create
    - fr_exit_now
    - fr_message_set_debug
    - free_blocks
    - fprintf
    - fr_time_delta_to_usec
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:77,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:78,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:79,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:80,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:81,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:82,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:83,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 17
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - instance
    - request
    - action
    argTypes:
    - UNUSED*
    - request_t*
    - fr_io_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: test_process
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t test_process(UNUSED void const *instance, request_t *request,
      fr_io_action_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:97,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: test_decode
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    - MPRINT1
    linkageType: ''
    returnType: int
    signature: int test_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:113,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:116,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:124,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:126,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:127,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:128,1
    - Dst: strlen
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:128,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:129,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: test_encode
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_md5_update
    - fr_md5_final
    - MPRINT1
    - strlen
    - fr_md5_ctx_alloc_from_list
    - talloc_get_type_abort_const
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t test_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - instance
    - packet_ctx
    - packet
    - packet_len
    - reply
    - reply_len
    argTypes:
    - void*
    - UNUSED*
    - uint8_t*
    - size_t
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: test_nak
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: size_t
    signature: size_t test_nak(void const *instance, UNUSED void *packet_ctx, uint8_t
      *const packet, size_t packet_len, UNUSED uint8_t *reply, UNUSED size_t reply_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:159,1
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:161,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:161,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:163,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:165,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:166,1
    - Dst: fr_worker_create
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:169,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:171,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:172,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:175,1
    - Dst: fr_worker
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:176,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:179,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: worker_thread
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_worker
    - talloc_free
    - fprintf
    - fr_event_list_alloc
    - MPRINT1
    - talloc_init_const
    - fr_worker_create
    - MEM
    linkageType: ''
    returnType: void
    signature: void *worker_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:188,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:190,1
    - Dst: sendto
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:192,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:193,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:193,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:194,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:197,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sockfd
    - reply
    argTypes:
    - int
    - fr_channel_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: send_reply
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - sendto
    - talloc_free
    - fr_syserror
    - talloc_get_type_abort
    - fprintf
    - MPRINT1
    - fr_message_done
    linkageType: ''
    returnType: void
    signature: void send_reply(int sockfd, fr_channel_data_t *reply)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:220,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:222,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:224,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:225,1
    - Dst: kqueue
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:231,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:232,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:234,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:235,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:237,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:238,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:240,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:242,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:243,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:246,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:247,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:248,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:254,1
    - Dst: kevent
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:255,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:256,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:257,1
    - Dst: pthread_attr_init
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:263,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:264,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:268,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:271,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:286,1
    - Dst: fr_worker_channel_create
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:287,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:288,1
    - Dst: fr_channel_master_ctx_add
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:290,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:296,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:306,1
    - Dst: kevent
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:308,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:309,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:314,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:314,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:315,1
    - Dst: fr_channel_service_kevent
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:334,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:339,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:341,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:342,1
    - Dst: talloc
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:344,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:345,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:352,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:354,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:356,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:359,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:368,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:372,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:374,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:378,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:394,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:396,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:397,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:400,1
    - Dst: fr_channel_send_request
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:402,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:404,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:404,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:405,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:410,1
    - Dst: send_reply
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:411,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:416,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:418,1
    - Dst: fr_control_message_pop
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:425,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:428,1
    - Dst: fr_channel_service_message
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:430,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:431,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:435,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:437,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:439,1
    - Dst: send_reply
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:444,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:445,1
    - Dst: fr_channel_master_ctx_get
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:449,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:450,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:452,1
    - Dst: pthread_kill
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:454,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:462,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:467,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:473,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:475,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:481,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:490,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:498,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:499,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:501,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:506,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:507,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:508,1
    - Dst: close
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:509,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 197
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 510
    functionName: master_process
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - kevent
    - fr_message_set_gc
    - recvfrom
    - fr_message_set_messages_used
    - close
    - fr_message_done
    - fr_time
    - fr_socket_bind
    - fr_message_and_data_reserve
    - send_reply
    - fr_message_and_data_commit
    - kqueue
    - fr_socket_server_udp
    - fr_channel_master_ctx_add
    - fr_worker_channel_create
    - fr_syserror
    - MPRINT1
    - fr_perror
    - fr_assert
    - fr_channel_send_request
    - fr_channel_recv_reply
    - fr_channel_service_message
    - pthread_create
    - fr_message_set_create
    - pthread_attr_setdetachstate
    - fr_nbo_to_uint16
    - fr_exit_now
    - fr_control_message_pop
    - MPRINT2
    - fr_channel_master_ctx_get
    - fr_message_set_debug
    - fr_control_create
    - pthread_attr_init
    - fprintf
    - talloc
    - fr_channel_service_kevent
    - pthread_kill
    - EV_SET
    - fr_atomic_queue_talloc
    linkageType: ''
    returnType: void
    signature: void master_process(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: sig_ignore
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void sig_ignore(int sig)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:520,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:523,1
    - Dst: fr_log_init_legacy
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:525,1
    - Dst: memset
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:527,1
    - Dst: htonl
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:530,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:533,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:539,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:543,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:544,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:545,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:559,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:560,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:565,1
    - Dst: signal
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:578,1
    - Dst: setvbuf
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:581,1
    - Dst: master_process
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:584,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius1_test.c:586,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 587
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/radius1_test.c
    functionUses: 0
    functionsReached:
    - master_process
    - fr_exit_now
    - htonl
    - usage
    - getopt
    - talloc_autofree_context
    - signal
    - fr_perror
    - setvbuf
    - fr_inet_pton_port
    - atoi
    - memset
    - fr_time_start
    - fr_log_init_legacy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - TALLOC_CTX *ctx
    - args
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: request_alloc
    functionSourceFile: /src/freeradius-server/src/tests/util/channel_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: request_t
    signature: request_t *request_alloc(UNUSED TALLOC_CTX *ctx, UNUSED request_init_args_t
      const *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - request
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: request_verify
    functionSourceFile: /src/freeradius-server/src/tests/util/channel_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_verify(UNUSED char const *file, UNUSED int line, UNUSED
      request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:68,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:69,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:70,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:71,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:72,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:73,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/channel_test.c
    functionUses: 18
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/channel_test.c:91,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/channel_test.c:91,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:93,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:95,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:96,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:99,1
    - Dst: fr_channel_signal_open
      Src: /src/freeradius-server/src/tests/util/channel_test.c:104,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:106,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/channel_test.c:106,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:107,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/channel_test.c:127,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:130,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/channel_test.c:132,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:140,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:148,1
    - Dst: fr_message_and_data_alloc
      Src: /src/freeradius-server/src/tests/util/channel_test.c:151,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:152,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/channel_test.c:157,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/channel_test.c:169,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:171,1
    - Dst: fr_channel_send_request
      Src: /src/freeradius-server/src/tests/util/channel_test.c:172,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:174,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/channel_test.c:174,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:176,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:180,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/channel_test.c:182,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:192,1
    - Dst: fr_channel_signal_responder_close
      Src: /src/freeradius-server/src/tests/util/channel_test.c:193,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:195,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/channel_test.c:195,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:196,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:202,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:203,1
    - Dst: kevent
      Src: /src/freeradius-server/src/tests/util/channel_test.c:205,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:206,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:211,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/channel_test.c:211,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:212,1
    - Dst: fr_channel_service_kevent
      Src: /src/freeradius-server/src/tests/util/channel_test.c:221,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/channel_test.c:224,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:226,1
    - Dst: fr_control_message_pop
      Src: /src/freeradius-server/src/tests/util/channel_test.c:233,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:236,1
    - Dst: fr_channel_service_message
      Src: /src/freeradius-server/src/tests/util/channel_test.c:238,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:239,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:244,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/channel_test.c:246,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:248,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:255,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/channel_test.c:257,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/channel_test.c:258,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:262,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:263,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:264,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:269,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:273,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:278,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:284,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/channel_test.c:289,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/tests/util/channel_test.c:290,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/channel_test.c:292,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/channel_test.c:297,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/channel_test.c:298,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:299,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/channel_test.c:301,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 136
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 304
    functionName: channel_master
    functionSourceFile: /src/freeradius-server/src/tests/util/channel_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - kevent
    - fr_message_set_gc
    - fr_message_set_messages_used
    - fr_message_done
    - MEM
    - fr_time
    - fr_message_and_data_alloc
    - fr_syserror
    - MPRINT1
    - fr_channel_send_request
    - talloc_init_const
    - fr_assert
    - fr_channel_recv_reply
    - fr_channel_signal_open
    - fr_channel_service_message
    - fr_message_set_create
    - MPRINT2
    - fr_control_message_pop
    - fr_exit_now
    - fr_channel_signal_responder_close
    - talloc_free
    - fr_message_set_debug
    - fprintf
    - fr_channel_service_kevent
    linkageType: ''
    returnType: void
    signature: void *channel_master(void *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/channel_test.c:317,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/channel_test.c:317,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:319,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:321,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:322,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:325,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:332,1
    - Dst: kevent
      Src: /src/freeradius-server/src/tests/util/channel_test.c:334,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:335,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:340,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/channel_test.c:340,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:341,1
    - Dst: fr_channel_service_kevent
      Src: /src/freeradius-server/src/tests/util/channel_test.c:347,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:350,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/channel_test.c:352,1
    - Dst: fr_control_message_pop
      Src: /src/freeradius-server/src/tests/util/channel_test.c:360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:363,1
    - Dst: fr_channel_service_message
      Src: /src/freeradius-server/src/tests/util/channel_test.c:365,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:366,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:371,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:372,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:376,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:377,1
    - Dst: fr_channel_recv_request
      Src: /src/freeradius-server/src/tests/util/channel_test.c:383,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:385,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/channel_test.c:386,1
    - Dst: fr_channel_responder_ack_close
      Src: /src/freeradius-server/src/tests/util/channel_test.c:389,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:393,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:394,1
    - Dst: fr_channel_recv_request
      Src: /src/freeradius-server/src/tests/util/channel_test.c:396,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:398,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:407,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/channel_test.c:408,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:409,1
    - Dst: fr_message_and_data_alloc
      Src: /src/freeradius-server/src/tests/util/channel_test.c:411,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:412,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/channel_test.c:414,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/channel_test.c:415,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:428,1
    - Dst: fr_channel_send_reply
      Src: /src/freeradius-server/src/tests/util/channel_test.c:429,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:431,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/channel_test.c:431,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:433,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:438,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:439,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:443,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:448,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/channel_test.c:455,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/channel_test.c:459,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/channel_test.c:464,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/tests/util/channel_test.c:465,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/channel_test.c:467,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/channel_test.c:472,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:473,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/channel_test.c:475,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 478
    functionName: channel_worker
    functionSourceFile: /src/freeradius-server/src/tests/util/channel_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - kevent
    - fr_cond_assert
    - fr_message_set_gc
    - fr_message_set_messages_used
    - fr_message_done
    - MEM
    - fr_time
    - fr_message_and_data_alloc
    - fr_syserror
    - MPRINT1
    - talloc_init_const
    - fr_assert
    - fr_channel_service_message
    - fr_message_set_create
    - MPRINT2
    - fr_control_message_pop
    - fr_exit_now
    - talloc_free
    - fr_message_set_debug
    - fprintf
    - fr_channel_service_kevent
    - fr_channel_responder_ack_close
    - fr_channel_send_reply
    - fr_channel_recv_request
    linkageType: ''
    returnType: void
    signature: void *channel_worker(void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/channel_test.c:486,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/tests/util/channel_test.c:490,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/channel_test.c:492,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/channel_test.c:498,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/channel_test.c:502,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/channel_test.c:506,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/channel_test.c:515,1
    - Dst: kqueue
      Src: /src/freeradius-server/src/tests/util/channel_test.c:530,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:531,1
    - Dst: kqueue
      Src: /src/freeradius-server/src/tests/util/channel_test.c:533,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:534,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/tests/util/channel_test.c:536,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:537,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/tests/util/channel_test.c:539,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:540,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:542,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:543,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:545,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/channel_test.c:546,1
    - Dst: fr_channel_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:548,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/channel_test.c:550,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:551,1
    - Dst: pthread_attr_init
      Src: /src/freeradius-server/src/tests/util/channel_test.c:557,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/freeradius-server/src/tests/util/channel_test.c:558,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:560,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/channel_test.c:561,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/tests/util/channel_test.c:563,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/tests/util/channel_test.c:564,1
    - Dst: close
      Src: /src/freeradius-server/src/tests/util/channel_test.c:566,1
    - Dst: close
      Src: /src/freeradius-server/src/tests/util/channel_test.c:567,1
    - Dst: fr_channel_debug
      Src: /src/freeradius-server/src/tests/util/channel_test.c:569,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/channel_test.c:571,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 572
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/channel_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - pthread_join
    - usage
    - getopt
    - talloc_autofree_context
    - fr_control_create
    - fprintf
    - pthread_attr_init
    - fr_assert
    - fr_atomic_queue_talloc
    - fr_channel_create
    - close
    - atoi
    - fr_channel_debug
    - kqueue
    - fr_time_start
    - pthread_create
    - pthread_attr_setdetachstate
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - request
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: request_verify
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_verify(UNUSED char const *file, UNUSED int line, UNUSED
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: TEST
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: OK
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: FAIL
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: CHECK
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(cond, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:56,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:58,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:59,1
    - Dst: fr_atomic_ring_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:61,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:62,1
    - Dst: OK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: test_alloc_free
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - CHECK
    - OK
    - TEST
    - fr_atomic_ring_free
    - fr_atomic_ring_alloc
    linkageType: ''
    returnType: void
    signature: void test_alloc_free(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:73,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:75,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:78,1
    - Dst: fr_atomic_ring_push
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:78,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:81,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:81,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:82,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:84,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:84,1
    - Dst: fr_atomic_ring_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:86,1
    - Dst: OK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: test_push_pop_single_segment
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - CHECK
    - TEST
    - OK
    - fr_atomic_ring_push
    - fr_atomic_ring_free
    - fr_atomic_ring_alloc
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: void
    signature: void test_push_pop_single_segment(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:99,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:101,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:104,1
    - Dst: fr_atomic_ring_push
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:104,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:107,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:107,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:108,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:111,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:111,1
    - Dst: fr_atomic_ring_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:113,1
    - Dst: OK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: test_grow_across_segments
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - CHECK
    - TEST
    - OK
    - fr_atomic_ring_push
    - fr_atomic_ring_free
    - fr_atomic_ring_alloc
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: void
    signature: void test_grow_across_segments(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:126,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:128,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:140,1
    - Dst: fr_atomic_ring_push
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:140,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:145,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:145,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:147,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:152,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:152,1
    - Dst: fr_atomic_ring_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:155,1
    - Dst: OK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 157
    functionName: test_interleaved
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - CHECK
    - TEST
    - OK
    - fr_atomic_ring_push
    - fr_atomic_ring_free
    - fr_atomic_ring_alloc
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: void
    signature: void test_interleaved(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:165,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:167,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:170,1
    - Dst: fr_atomic_ring_push
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:170,1
    - Dst: fr_atomic_ring_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:173,1
    - Dst: OK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: test_free_nonempty
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - CHECK
    - TEST
    - OK
    - fr_atomic_ring_push
    - fr_atomic_ring_free
    - fr_atomic_ring_alloc
    linkageType: ''
    returnType: void
    signature: void test_free_nonempty(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atomic_ring_push
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:196,1
    - Dst: sched_yield
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: stress_producer
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - fr_atomic_ring_push
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void *stress_producer(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:214,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:218,1
    - Dst: sched_yield
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: stress_consumer
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - sched_yield
    - malloc
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: void
    signature: void *stress_consumer(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:241,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:243,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:247,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:248,1
    - Dst: strerror
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:248,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:249,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:250,1
    - Dst: strerror
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:250,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:252,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:253,1
    - Dst: free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:256,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:257,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:265,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:265,1
    - Dst: fr_atomic_ring_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:268,1
    - Dst: OK
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 270
    functionName: test_stress_two_thread
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - CHECK
    - pthread_join
    - free
    - TEST
    - strerror
    - OK
    - fr_atomic_ring_free
    - fr_atomic_ring_alloc
    - pthread_create
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: void
    signature: void test_stress_two_thread(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:275,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:278,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:282,1
    - Dst: test_alloc_free
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:284,1
    - Dst: test_push_pop_single_segment
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:285,1
    - Dst: test_grow_across_segments
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:286,1
    - Dst: test_interleaved
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:287,1
    - Dst: test_free_nonempty
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:288,1
    - Dst: test_stress_two_thread
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:289,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_ring_test.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - UNUSED*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_ring_test.c
    functionUses: 0
    functionsReached:
    - test_alloc_free
    - test_interleaved
    - test_free_nonempty
    - test_grow_across_segments
    - talloc_autofree_context
    - fprintf
    - test_push_pop_single_segment
    - printf
    - test_stress_two_thread
    linkageType: ''
    returnType: int
    signature: int main(int argc, UNUSED char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - TALLOC_CTX *ctx
    - args
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: request_alloc
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: request_t
    signature: request_t *request_alloc(UNUSED TALLOC_CTX *ctx, UNUSED request_init_args_t
      const *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - request
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: request_verify
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_verify(UNUSED char const *file, UNUSED int line, UNUSED
      request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:81,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:82,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:83,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:84,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:85,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:86,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:87,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:88,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 19
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - inst
    - request
    - action
    argTypes:
    - UNUSED*
    - request_t*
    - fr_io_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: test_process
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t test_process(UNUSED void const *inst, request_t *request,
      fr_io_action_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/worker_test.c:106,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: test_decode
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - MPRINT1
    linkageType: ''
    returnType: int
    signature: int test_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: test_encode
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t test_encode(void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/worker_test.c:131,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/worker_test.c:132,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - instance
    - packet_ctx
    - packet
    - packet_len
    - reply
    - reply_len
    argTypes:
    - UNUSED*
    - void*
    - uint8_t*
    - size_t
    - uint8_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: test_nak
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - MPRINT1
    linkageType: ''
    returnType: size_t
    signature: size_t test_nak(UNUSED void const *instance, void *packet_ctx, uint8_t
      *const packet, size_t packet_len, uint8_t *reply, UNUSED size_t reply_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:157,1
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/worker_test.c:159,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/worker_test.c:159,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/tests/util/worker_test.c:161,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:163,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:164,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:167,1
    - Dst: fr_worker_create
      Src: /src/freeradius-server/src/tests/util/worker_test.c:168,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:170,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:171,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:174,1
    - Dst: fr_worker
      Src: /src/freeradius-server/src/tests/util/worker_test.c:175,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:178,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/worker_test.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 182
    functionName: worker_thread
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_worker
    - talloc_free
    - snprintf
    - fprintf
    - fr_event_list_alloc
    - MPRINT1
    - talloc_init_const
    - fr_worker_create
    - MEM
    linkageType: ''
    returnType: void
    signature: void *worker_thread(void *arg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/worker_test.c:200,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/worker_test.c:200,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/tests/util/worker_test.c:202,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:204,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:205,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:208,1
    - Dst: pthread_attr_init
      Src: /src/freeradius-server/src/tests/util/worker_test.c:213,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/freeradius-server/src/tests/util/worker_test.c:214,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/worker_test.c:218,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:221,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:236,1
    - Dst: fr_worker_channel_create
      Src: /src/freeradius-server/src/tests/util/worker_test.c:237,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:238,1
    - Dst: fr_channel_master_ctx_add
      Src: /src/freeradius-server/src/tests/util/worker_test.c:240,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:246,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:266,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:274,1
    - Dst: fr_message_and_data_alloc
      Src: /src/freeradius-server/src/tests/util/worker_test.c:277,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:278,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/worker_test.c:283,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/worker_test.c:298,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:300,1
    - Dst: fr_channel_send_request
      Src: /src/freeradius-server/src/tests/util/worker_test.c:301,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:303,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/worker_test.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:308,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:312,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/worker_test.c:314,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:323,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:327,1
    - Dst: fr_worker_debug
      Src: /src/freeradius-server/src/tests/util/worker_test.c:328,1
    - Dst: fr_channel_signal_responder_close
      Src: /src/freeradius-server/src/tests/util/worker_test.c:331,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:332,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:334,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/worker_test.c:334,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:335,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:341,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:342,1
    - Dst: kevent
      Src: /src/freeradius-server/src/tests/util/worker_test.c:344,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:345,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:350,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/worker_test.c:350,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:351,1
    - Dst: fr_channel_service_kevent
      Src: /src/freeradius-server/src/tests/util/worker_test.c:362,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/worker_test.c:365,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:367,1
    - Dst: fr_control_message_pop
      Src: /src/freeradius-server/src/tests/util/worker_test.c:374,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:377,1
    - Dst: fr_channel_service_message
      Src: /src/freeradius-server/src/tests/util/worker_test.c:379,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:380,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:384,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/worker_test.c:386,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:388,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:395,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/tests/util/worker_test.c:397,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/tests/util/worker_test.c:398,1
    - Dst: fr_channel_master_ctx_get
      Src: /src/freeradius-server/src/tests/util/worker_test.c:402,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:403,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:405,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:406,1
    - Dst: pthread_kill
      Src: /src/freeradius-server/src/tests/util/worker_test.c:408,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:416,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:421,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:427,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/worker_test.c:429,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/worker_test.c:435,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/worker_test.c:444,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/worker_test.c:452,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/tests/util/worker_test.c:453,1
    - Dst: fr_message_set_debug
      Src: /src/freeradius-server/src/tests/util/worker_test.c:455,1
    - Dst: fr_message_set_messages_used
      Src: /src/freeradius-server/src/tests/util/worker_test.c:460,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/worker_test.c:461,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/worker_test.c:464,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 169
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 466
    functionName: master_process
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 1
    functionsReached:
    - memcpy
    - kevent
    - fr_message_set_gc
    - fr_message_set_messages_used
    - fr_message_done
    - MEM
    - fr_time
    - fr_message_and_data_alloc
    - printf
    - fr_channel_master_ctx_add
    - fr_worker_channel_create
    - fr_syserror
    - MPRINT1
    - fr_channel_send_request
    - talloc_init_const
    - fr_assert
    - fr_channel_recv_reply
    - fr_channel_service_message
    - pthread_create
    - fr_message_set_create
    - pthread_attr_setdetachstate
    - fr_control_message_pop
    - fr_exit_now
    - fr_worker_debug
    - fr_channel_signal_responder_close
    - MPRINT2
    - talloc_free
    - fr_channel_master_ctx_get
    - fr_message_set_debug
    - pthread_attr_init
    - fprintf
    - fr_channel_service_kevent
    - pthread_kill
    linkageType: ''
    returnType: void
    signature: void master_process(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/freeradius-server/src/tests/util/worker_test.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: sig_ignore
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - signal
    linkageType: ''
    returnType: void
    signature: void sig_ignore(int sig)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/worker_test.c:476,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/tests/util/worker_test.c:478,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:479,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/worker_test.c:479,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/worker_test.c:480,1
    - Dst: fr_log_init_legacy
      Src: /src/freeradius-server/src/tests/util/worker_test.c:483,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/worker_test.c:485,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/worker_test.c:491,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/worker_test.c:495,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/worker_test.c:499,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/worker_test.c:511,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/worker_test.c:512,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/worker_test.c:517,1
    - Dst: kqueue
      Src: /src/freeradius-server/src/tests/util/worker_test.c:533,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:534,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/tests/util/worker_test.c:536,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:537,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/tests/util/worker_test.c:539,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/worker_test.c:540,1
    - Dst: signal
      Src: /src/freeradius-server/src/tests/util/worker_test.c:542,1
    - Dst: setvbuf
      Src: /src/freeradius-server/src/tests/util/worker_test.c:545,1
    - Dst: master_process
      Src: /src/freeradius-server/src/tests/util/worker_test.c:548,1
    - Dst: close
      Src: /src/freeradius-server/src/tests/util/worker_test.c:550,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 553
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/worker_test.c
    functionUses: 0
    functionsReached:
    - master_process
    - fr_exit_now
    - fr_syserror
    - usage
    - getopt
    - talloc_autofree_context
    - fprintf
    - fr_control_create
    - signal
    - fr_assert
    - fr_atomic_queue_talloc
    - setvbuf
    - close
    - atoi
    - kqueue
    - fr_time_start
    - fr_log_init_legacy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:59,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:66,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:68,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:68,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:70,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:71,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:71,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:73,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:76,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - rb
    - seed
    - start
    - end
    argTypes:
    - fr_ring_buffer_t*
    - uint32_t*
    - UNUSED*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: alloc_blocks
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 1
    functionsReached:
    - fr_exit_now
    - fr_ring_buffer_used
    - fr_cond_assert
    - fr_assert
    - printf
    - fr_ring_buffer_alloc
    - fr_ring_buffer_reserve
    - fr_hash_update
    linkageType: ''
    returnType: void
    signature: void alloc_blocks(fr_ring_buffer_t *rb, uint32_t *seed, UNUSED int
      *start, int *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:92,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:93,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:93,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:96,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - rb
    - seed
    - start
    - end
    argTypes:
    - fr_ring_buffer_t*
    - UNUSED*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: free_blocks
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 1
    functionsReached:
    - fr_exit_now
    - fr_ring_buffer_used
    - fr_cond_assert
    - fr_ring_buffer_free
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void free_blocks(fr_ring_buffer_t *rb, UNUSED uint32_t *seed, int *start,
      int *end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:118,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:118,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:118,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:121,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:121,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:129,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:129,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:130,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:130,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:130,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:136,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - rb
    - start_idx
    argTypes:
    - fr_ring_buffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 137
    functionName: verify_start
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_cond_assert
    - fr_ring_buffer_start
    - fr_ring_buffer_used
    linkageType: ''
    returnType: void
    signature: void verify_start(fr_ring_buffer_t *rb, int start_idx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:145,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:146,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:146,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:151,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:151,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:151,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:152,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:152,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:157,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:158,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:158,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:159,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:160,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:160,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:162,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:162,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:162,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:163,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:163,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:164,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:164,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:170,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:171,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:171,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:172,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:173,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:173,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:175,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:175,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:175,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:176,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:176,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:177,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:177,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:182,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:182,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:182,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:184,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:184,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:184,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:185,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:185,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:186,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:186,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:191,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:191,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:191,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:193,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:193,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:193,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:194,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:194,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:196,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:198,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 199
    functionName: test_start_basic
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_ring_buffer_start
    - talloc_free
    - fr_cond_assert
    - fr_ring_buffer_create
    - fr_ring_buffer_free
    - printf
    - fr_ring_buffer_alloc
    - fr_ring_buffer_reserve
    linkageType: ''
    returnType: void
    signature: void test_start_basic(TALLOC_CTX *ctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:208,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:209,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:209,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:211,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:217,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:218,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:218,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:219,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:220,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:220,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:230,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:230,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:230,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:241,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:242,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:242,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:243,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:244,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:244,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:254,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:254,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:254,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:256,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:256,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:256,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:262,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:262,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:263,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:263,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:268,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:268,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:277,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:277,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:277,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:279,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:279,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:279,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:280,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:280,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:281,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:281,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:286,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:286,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:286,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:288,1
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:288,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:288,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:289,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:289,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:291,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:293,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 294
    functionName: test_start_wrapped
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 0
    functionsReached:
    - fr_ring_buffer_size
    - fr_exit_now
    - fr_ring_buffer_start
    - fr_ring_buffer_used
    - talloc_free
    - fr_cond_assert
    - fr_ring_buffer_create
    - fr_ring_buffer_free
    - printf
    - fr_ring_buffer_alloc
    - fr_ring_buffer_reserve
    linkageType: ''
    returnType: void
    signature: void test_start_wrapped(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:298,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:299,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:300,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:301,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 20
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:314,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:316,1
    - Dst: strtol
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:318,1
    - Dst: strlen
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:322,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:331,1
    - Dst: test_start_basic
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:341,1
    - Dst: test_start_wrapped
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:342,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:344,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:346,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:347,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:357,1
    - Dst: verify_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:358,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:364,1
    - Dst: alloc_blocks
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:365,1
    - Dst: verify_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:366,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:368,1
    - Dst: verify_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:369,1
    - Dst: free_blocks
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:372,1
    - Dst: verify_start
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:373,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:375,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:376,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:376,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/ring_buffer_test.c:378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 379
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/ring_buffer_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_ring_buffer_used
    - verify_start
    - fr_ring_buffer_create
    - usage
    - strtol
    - getopt
    - talloc_autofree_context
    - fprintf
    - alloc_blocks
    - test_start_basic
    - free_blocks
    - strlen
    - fr_assert
    - printf
    - test_start_wrapped
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - instance
    - request
    - action
    argTypes:
    - UNUSED*
    - request_t*
    - fr_io_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: test_process
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t test_process(UNUSED void const *instance, request_t *request,
      fr_io_action_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: test_decode
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: int
    signature: int test_decode(void const *instance, request_t *request, uint8_t *const
      data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:86,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:93,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:95,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:96,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:97,1
    - Dst: strlen
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:97,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:98,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: test_encode
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_md5_update
    - fr_md5_final
    - MPRINT1
    - strlen
    - fr_md5_ctx_alloc_from_list
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t test_encode(void const *instance, request_t *request, uint8_t
      *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - packet_ctx
    - packet
    - packet_len
    - reply
    - reply_len
    argTypes:
    - void*
    - UNUSED*
    - uint8_t*
    - size_t
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: test_nak
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - MPRINT1
    linkageType: ''
    returnType: size_t
    signature: size_t test_nak(void const *ctx, UNUSED void *packet_ctx, uint8_t *const
      packet, size_t packet_len, UNUSED uint8_t *reply, UNUSED size_t reply_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:113,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:115,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:117,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:118,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:121,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:122,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - master_ctx
    argTypes:
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: test_open
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_socket_bind
    - talloc_get_type_abort
    - fr_perror
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: int test_open(void *ctx, UNUSED void const *master_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:134,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:140,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:147,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - ctx
    - packet_ctx
    - recv_time
    - buffer
    - buffer_len
    - leftover
    - priority
    - is_dup
    argTypes:
    - void*
    - UNUSED**
    - fr_time_t**
    - uint8_t*
    - size_t
    - size_t*
    - uint32_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: test_read
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - recvfrom
    - talloc_get_type_abort
    - memcpy
    - fr_time
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t test_read(void *ctx, UNUSED void **packet_ctx, fr_time_t **recv_time,
      uint8_t *buffer, size_t buffer_len, size_t *leftover, uint32_t *priority, bool
      *is_dup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:161,1
    - Dst: sendto
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - void*
    - UNUSED*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: test_write
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - sendto
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t test_write(void *ctx, UNUSED void *packet_ctx,  UNUSED fr_time_t
      request_time,\n\t\t\t  uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: test_fd
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int test_fd(void const *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - request
    argTypes:
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: entry_point_set
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void entry_point_set(UNUSED void const *ctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:205,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:206,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:207,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:208,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:209,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 21
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:220,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:225,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:227,1
    - Dst: fr_log_init_legacy
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:229,1
    - Dst: memset
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:232,1
    - Dst: htonl
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:235,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:238,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:240,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:241,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:242,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:248,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:249,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:257,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:258,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:268,1
    - Dst: fr_schedule_create
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:279,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:281,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:282,1
    - Dst: fr_listen_t::app_io::open
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:285,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:285,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:291,1
    - Dst: kevent
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:292,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:293,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:294,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:298,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:299,1
    - Dst: sleep
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:301,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:303,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/radius_schedule_test.c:305,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 306
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/radius_schedule_test.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_schedule_destroy
    - kevent
    - sleep
    - EV_SET
    - talloc_autofree_context
    - fr_inet_pton_port
    - fr_schedule_listen_add
    - memset
    - fr_fault_setup
    - usage
    - getopt
    - atoi
    - fr_perror
    - fr_listen_t::app_io::open
    - fr_log_init_legacy
    - fr_exit_now
    - fprintf
    - talloc_zero
    - fr_schedule_create
    - fr_time_start
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - request
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: request_verify
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_queue_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void request_verify(UNUSED char const *file, UNUSED int line, UNUSED
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:51,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:52,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:53,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_queue_test.c
    functionUses: 22
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:65,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:69,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:71,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:80,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:87,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:91,1
    - Dst: fr_atomic_queue_debug
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:92,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:94,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:104,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:105,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:106,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:111,1
    - Dst: fr_atomic_queue_debug
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:112,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:123,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:124,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:125,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:130,1
    - Dst: fr_atomic_queue_debug
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:131,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:133,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:141,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:142,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:143,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:148,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:150,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:155,1
    - Dst: fr_atomic_queue_debug
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:156,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:164,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:165,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:166,1
    - Dst: printf
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:171,1
    - Dst: fr_atomic_queue_debug
      Src: /src/freeradius-server/src/tests/util/atomic_queue_test.c:172,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 177
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/atomic_queue_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - printf
    - fr_atomic_queue_pop
    - usage
    - getopt
    - talloc_autofree_context
    - fr_atomic_queue_push
    - fprintf
    - atoi
    - fr_atomic_queue_talloc
    - fr_atomic_queue_debug
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MEM
    functionSourceFile: /src/freeradius-server/src/tests/util/control_test.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:65,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:66,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:67,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:68,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:69,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/control_test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/tests/util/control_test.c
    functionUses: 23
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/control_test.c:89,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/control_test.c:90,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/control_test.c:92,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: recv_control_callback
    functionSourceFile: /src/freeradius-server/src/tests/util/control_test.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - MPRINT2
    - MPRINT1
    linkageType: ''
    returnType: void
    signature: void recv_control_callback(void *ctx, void const *data, size_t data_size,
      UNUSED fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/control_test.c:105,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/control_test.c:105,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/tests/util/control_test.c:107,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:109,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/tests/util/control_test.c:112,1
    - Dst: fr_control_open
      Src: /src/freeradius-server/src/tests/util/control_test.c:113,1
    - Dst: sem_post
      Src: /src/freeradius-server/src/tests/util/control_test.c:116,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/control_test.c:118,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/tests/util/control_test.c:122,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/tests/util/control_test.c:124,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/control_test.c:124,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:126,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/tests/util/control_test.c:126,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/control_test.c:127,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/tests/util/control_test.c:130,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:133,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/tests/util/control_test.c:136,1
    - Dst: fr_time_sub_time_time
      Src: /src/freeradius-server/src/tests/util/control_test.c:136,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/tests/util/control_test.c:136,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/control_test.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 141
    functionName: control_master
    functionSourceFile: /src/freeradius-server/src/tests/util/control_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - MPRINT3
    - fr_time
    - fr_event_service
    - fr_time_sub_time_time
    - fr_control_callback_add
    - fr_syserror
    - talloc_free
    - MPRINT1
    - sem_post
    - fprintf
    - talloc_init_const
    - talloc_zero
    - fr_time_delta_to_usec
    - fr_control_open
    - MEM
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void *control_master(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/tests/util/control_test.c:149,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/tests/util/control_test.c:149,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:153,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/tests/util/control_test.c:164,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:166,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/tests/util/control_test.c:167,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:168,1
    - Dst: usleep
      Src: /src/freeradius-server/src/tests/util/control_test.c:171,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/tests/util/control_test.c:175,1
    - Dst: MPRINT1
      Src: /src/freeradius-server/src/tests/util/control_test.c:178,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/control_test.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 183
    functionName: control_worker
    functionSourceFile: /src/freeradius-server/src/tests/util/control_test.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_strerror_pop
    - MPRINT1
    - talloc_init_const
    - usleep
    - MEM
    - fr_control_message_send
    - MPRINT2
    linkageType: ''
    returnType: void
    signature: void *control_worker(void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/tests/util/control_test.c:190,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/tests/util/control_test.c:197,1
    - Dst: getopt
      Src: /src/freeradius-server/src/tests/util/control_test.c:199,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/control_test.c:205,1
    - Dst: atoi
      Src: /src/freeradius-server/src/tests/util/control_test.c:213,1
    - Dst: usage
      Src: /src/freeradius-server/src/tests/util/control_test.c:218,1
    - Dst: main_loop_init
      Src: /src/freeradius-server/src/tests/util/control_test.c:226,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/tests/util/control_test.c:227,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/tests/util/control_test.c:231,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/tests/util/control_test.c:233,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/control_test.c:234,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/tests/util/control_test.c:237,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/tests/util/control_test.c:239,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/tests/util/control_test.c:241,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/control_test.c:242,1
    - Dst: pthread_attr_init
      Src: /src/freeradius-server/src/tests/util/control_test.c:249,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/freeradius-server/src/tests/util/control_test.c:250,1
    - Dst: fr_sem_alloc
      Src: /src/freeradius-server/src/tests/util/control_test.c:252,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/tests/util/control_test.c:253,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/control_test.c:254,1
    - Dst: SEM_WAIT_INTR
      Src: /src/freeradius-server/src/tests/util/control_test.c:255,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/tests/util/control_test.c:257,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/tests/util/control_test.c:258,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/tests/util/control_test.c:261,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/tests/util/control_test.c:262,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/tests/util/control_test.c:265,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/tests/util/control_test.c:267,1
    - Dst: fr_sem_free
      Src: /src/freeradius-server/src/tests/util/control_test.c:270,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/tests/util/control_test.c:271,1
    - Dst: main_loop_free
      Src: /src/freeradius-server/src/tests/util/control_test.c:273,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/tests/util/control_test.c:275,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 276
    functionName: main
    functionSourceFile: /src/freeradius-server/src/tests/util/control_test.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - fr_ring_buffer_create
    - main_loop_init
    - talloc_autofree_context
    - fr_sem_free
    - main_loop_free
    - SEM_WAIT_INTR
    - fr_sem_alloc
    - pthread_join
    - usage
    - getopt
    - main_loop_event_list
    - fr_assert
    - pthread_create
    - pthread_attr_setdetachstate
    - fr_exit_now
    - talloc_free
    - fr_control_create
    - pthread_attr_init
    - fprintf
    - atoi
    - fr_atomic_queue_talloc
    - fr_time_start
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:122,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: interval_entry_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - CMP
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t interval_entry_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:133,1
    - Dst: fr_rb_delete_by_inline_node
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:135,1
    - Dst: interval_slab_release
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: interval_expire_thread
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - fr_rb_delete_by_inline_node
    - talloc_get_type_abort
    - interval_slab_release
    linkageType: ''
    returnType: void
    signature: void interval_expire_thread(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:144,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:146,1
    - Dst: fr_rb_delete_by_inline_node
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:147,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:148,1
    - Dst: interval_slab_release
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: interval_expire_global
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_rb_delete_by_inline_node
    - interval_slab_release
    linkageType: ''
    returnType: void
    signature: void interval_expire_global(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:176,1
    - Dst: interval_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:178,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:181,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:185,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:185,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:186,1
    - Dst: interval_slab_release
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:188,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:192,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:192,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:201,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:201,1
    - Dst: fr_timer_when
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:201,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:201,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:206,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:206,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - tree
    - thread
    - owner
    - expire
    - find
    - interval
    argTypes:
    - fr_rb_tree_t*
    - rlm_interval_thread_t*
    - void*
    - fr_timer_cb_t
    - rlm_interval_entry_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 212
    functionName: interval_check
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - fr_timer_when
    - unlikely
    - fr_value_box_copy_shallow
    - fr_rb_delete
    - fr_time
    - fr_time_gt
    - fr_timer_in
    - fr_rb_find
    - fr_rb_insert
    - interval_slab_reserve
    - fr_strerror_const
    - interval_slab_release
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: "int interval_check(fr_rb_tree_t *tree, rlm_interval_thread_t *thread,\n\t\t\t
      \ void *owner, fr_timer_cb_t expire,\n\t\t\t  rlm_interval_entry_t *find, fr_time_delta_t
      interval)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:220,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:221,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:228,1
    - Dst: fr_value_box_set_void_shallow
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:234,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:236,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:239,1
    - Dst: interval_check
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:240,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:242,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:244,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:244,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:247,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:252,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:257,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:257,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 264
    functionName: interval_xlat_global
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_copy_shallow
    - fr_dcursor_append
    - XLAT_ARGS
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_value_box_set_void_shallow
    - interval_check
    - fr_value_box_alloc
    - RDEBUG3
    - fr_assert_msg
    - talloc_get_type_abort_const
    - fr_strerror
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t interval_xlat_global(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \  xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:272,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:278,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:284,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:286,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:286,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:298,1
    - Dst: interval_check
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:300,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:304,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:304,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:308,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:313,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:318,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:318,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 325
    functionName: interval_xlat_thread
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_copy_shallow
    - fr_dcursor_append
    - fr_time
    - XLAT_ARGS
    - fr_time_gt
    - fr_time_add
    - talloc_get_type_abort
    - interval_check
    - RDEBUG3
    - fr_value_box_alloc
    - fr_assert_msg
    - fr_strerror
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t interval_xlat_thread(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \  xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: interval_xlat_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int interval_xlat_instantiate(xlat_inst_ctx_t const *xctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: interval_xlat_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - fr_time_min
    linkageType: ''
    returnType: int
    signature: int interval_xlat_thread_instantiate(xlat_thread_inst_ctx_t const *xctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:349,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:350,1
    - Dst: fr_timer_list_lst_alloc
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:359,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:361,1
    - Dst: interval_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:365,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:369,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:374,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 383
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - interval_slab_list_alloc
    - ERROR
    - fr_rb_inline_talloc_alloc
    - fr_timer_list_lst_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:387,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:390,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:399,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:402,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:402,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:404,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:407,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:408,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:412,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 416
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - fr_rb_inline_talloc_alloc
    - talloc_get_type_abort
    - talloc_zero
    - MEM
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:420,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:428,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:431,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:437,1
    - Dst: xlat_func_thread_instantiate_set
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:439,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:444,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:448,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 452
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_interval/rlm_interval.c
    functionUses: 0
    functionsReached:
    - ERROR
    - xlat_func_instantiate_set
    - xlat_func_thread_instantiate_set
    - talloc_get_type_abort
    - fr_assert
    - xlat_func_args_set
    - module_rlm_xlat_register
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:64,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:65,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:67,1
    - Dst: fflush
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pw
    - num_fields
    argTypes:
    - struct mypasswd*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: printpw
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - printf
    - fflush
    linkageType: ''
    returnType: void
    signature: void printpw(struct mypasswd *pw, int num_fields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:79,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:80,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - buffer
    - num_fields
    - len
    argTypes:
    - TALLOC_CTX*
    - char*
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: mypasswd_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - MEM
    - strlen
    - talloc_zero_array
    linkageType: ''
    returnType: struct mypasswd
    signature: struct mypasswd *mypasswd_alloc(TALLOC_CTX *ctx, char const* buffer,
      int num_fields, size_t* len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:94,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:105,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 5
    argNames:
    - string
    - num_fields
    - delimiter
    - passwd
    - bufferlen
    argTypes:
    - char*
    - int
    - char
    - struct mypasswd*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 118
    functionName: string_to_entry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int string_to_entry(char const* string, int num_fields, char delimiter,\n\t\t\t
      \  struct mypasswd *passwd, size_t bufferlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pass
    argTypes:
    - struct mypasswd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: destroy_password
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void destroy_password (struct mypasswd * pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - username
    - tablesize
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 2
    functionsReached:
    - fr_hash_string
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash(char const * username, unsigned int tablesize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy_password
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:145,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ht
    argTypes:
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: release_hash_table
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - destroy_password
    - fclose
    linkageType: ''
    returnType: void
    signature: void release_hash_table(struct hashtable * ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_hash_table
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:155,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ht
    argTypes:
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: release_ht
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - release_hash_table
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void release_ht(struct hashtable * ht)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:171,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:171,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:172,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:172,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:183,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:184,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:193,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:194,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:194,1
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:195,1
    - Dst: mypasswd_alloc
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:197,1
    - Dst: release_hash_table
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:199,1
    - Dst: string_to_entry
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:205,1
    - Dst: hash
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:215,1
    - Dst: mypasswd_alloc
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:223,1
    - Dst: release_hash_table
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:224,1
    - Dst: hash
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:229,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:236,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 7
    argNames:
    - file
    - num_fields
    - key_field
    - islist
    - tablesize
    - ignorenis
    - delimiter
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 240
    functionName: build_hash_table
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - string_to_entry
    - fgets
    - talloc_free
    - hash
    - release_hash_table
    - talloc_strdup
    - talloc_zero
    - talloc_zero_array
    - mypasswd_alloc
    - fopen
    - memset
    - MEM
    - fclose
    linkageType: ''
    returnType: struct hashtable
    signature: "struct hashtable * build_hash_table (char const * file, int num_fields,\n\t\t\t\t\t
      \   int key_field, int islist, int tablesize, int ignorenis, char delimiter)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:254,1
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:267,1
    - Dst: string_to_entry
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:268,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:271,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:282,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:290,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - name
    - ht
    - last_found
    argTypes:
    - char*
    - struct hashtable*
    - struct mypasswd**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: get_next
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - string_to_entry
    - strcmp
    - fgets
    - fclose
    linkageType: ''
    returnType: struct mypasswd
    signature: "struct mypasswd * get_next(char *name, struct hashtable *ht,\n\t\t\t\t
      \ struct mypasswd **last_found)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:304,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:306,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:316,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:319,1
    - Dst: get_next
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - name
    - ht
    - last_found
    argTypes:
    - char*
    - struct hashtable*
    - struct mypasswd**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 321
    functionName: get_pw_nam
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - hash
    - get_next
    - strcmp
    - fopen
    - fclose
    linkageType: ''
    returnType: struct mypasswd
    signature: "struct mypasswd * get_pw_nam(char * name, struct hashtable* ht,\n\t\t\t\t
      \   struct mypasswd **last_found)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_hash_table
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:333,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:335,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:340,1
    - Dst: printpw
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:342,1
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:347,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:348,1
    - Dst: get_pw_nam
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:349,1
    - Dst: printpw
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:350,1
    - Dst: get_next
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:351,1
    - Dst: printpw
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:351,1
    - Dst: release_ht
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 354
    functionName: main
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - build_hash_table
    - fgets
    - get_next
    - printpw
    - release_ht
    - strlen
    - printf
    - get_pw_nam
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:396,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:399,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:400,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:403,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:407,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:409,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:412,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:412,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:439,1
    - Dst: build_hash_table
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:444,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:447,1
    - Dst: mypasswd_alloc
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:451,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:453,1
    - Dst: release_ht
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:454,1
    - Dst: string_to_entry
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:458,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:459,1
    - Dst: release_ht
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:460,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:465,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:467,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:475,1
    - Dst: release_ht
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:476,1
    - Dst: fr_dict_attr_search_by_qualified_oid
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:481,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:484,1
    - Dst: release_ht
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:485,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:495,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 501
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - build_hash_table
    - ERROR
    - string_to_entry
    - memcpy
    - talloc_free
    - DEBUG3
    - talloc_strdup
    - talloc_get_type_abort
    - fr_assert
    - release_ht
    - strlen
    - mypasswd_alloc
    - fr_dict_attr_search_by_qualified_oid
    - memset
    - cf_log_err
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:505,1
    - Dst: release_ht
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:507,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - release_ht
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:524,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:524,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:528,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:532,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:532,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:534,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:538,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:542,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:546,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:547,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:548,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:553,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:554,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:556,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:558,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 7
    argNames:
    - ctx
    - inst
    - request
    - vps
    - pw
    - when
    - listname
    argTypes:
    - TALLOC_CTX*
    - rlm_passwd_t*
    - request_t*
    - fr_pair_list_t*
    - struct mypasswd*
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 561
    functionName: result_add
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_dict_attr_by_name
    - fr_pair_value_bstrndup
    - talloc_free
    - RPEDEBUG
    - REDEBUG
    - fr_pair_append
    - fr_pair_value_memdup
    - RDEBUG2
    - fr_pair_value_from_str
    - strlen
    - PAIR_VERIFY
    - MEM
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: "void result_add(TALLOC_CTX *ctx, rlm_passwd_t const *inst, request_t
      *request,\n\t\t       fr_pair_list_t *vps, struct mypasswd * pw, char when,
      char const *listname)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:565,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:573,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:576,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:578,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:589,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:589,1
    - Dst: get_pw_nam
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:590,1
    - Dst: result_add
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:594,1
    - Dst: result_add
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:595,1
    - Dst: result_add
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:596,1
    - Dst: get_next
      Src: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c:597,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 607
    functionName: mod_passwd_map
    functionSourceFile: /src/freeradius-server/src/modules/rlm_passwd/rlm_passwd.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - FR_SBUFF_OUT
    - get_next
    - result_add
    - talloc_get_type_abort_const
    - get_pw_nam
    - fr_pair_find_by_da
    - fr_pair_print_value_quoted
    linkageType: ''
    returnType: void
    signature: void mod_passwd_map(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:228,1
    - Dst: feof
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:229,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 255
    functionName: refill
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - feof
    - fgets
    - fr_skip_whitespace
    linkageType: ''
    returnType: int
    signature: int refill(rlm_isc_dhcp_tokenizer_t *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:263,1
    - Dst: refill
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - state
    - p
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 288
    functionName: skip_spaces
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - refill
    - fr_skip_whitespace
    linkageType: ''
    returnType: int
    signature: int skip_spaces(rlm_isc_dhcp_tokenizer_t *state, char *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:303,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:309,1
    - Dst: skip_spaces
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:310,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:316,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 333
    functionName: read_string
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - skip_spaces
    - fr_strerror_const
    - isspace
    linkageType: ''
    returnType: int
    signature: int read_string(rlm_isc_dhcp_tokenizer_t *state)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: refill
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:353,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:358,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:371,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:387,1
    - Dst: read_string
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:391,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:401,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:449,1
    - Dst: skip_spaces
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:450,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:461,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:466,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:476,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:481,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:491,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:506,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:520,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 107
    argCount: 4
    argNames:
    - state
    - hint
    - semicolon
    - allow_rcbrace
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - fr_token_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 527
    functionName: read_token
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - read_string
    - refill
    - fr_strerror_printf
    - isspace
    - skip_spaces
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int read_token(rlm_isc_dhcp_tokenizer_t *state, fr_token_t hint, int
      semicolon, bool allow_rcbrace)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:543,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:551,1
    - Dst: islower
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:557,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:558,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:567,1
    - Dst: DDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:578,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:586,1
    - Dst: match_subword
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:587,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:601,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:604,1
    - Dst: parse_section
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:607,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:624,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:626,1
    - Dst: fr_type_from_str
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:656,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:658,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:671,1
    - Dst: DDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:674,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:686,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:687,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:694,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:696,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:706,1
    - Dst: match_subword
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:722,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 3
    argNames:
    - state
    - cmd
    - info
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - char*
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 532
    functionDepth: 4
    functionLinenumber: 532
    functionLinenumberEnd: 723
    functionName: match_subword
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 1
    functionsReached:
    - fr_type_from_str
    - match_subword
    - parse_section
    - tolower
    - talloc_free
    - fr_strerror_printf
    - fr_skip_whitespace
    - isspace
    - talloc_zero
    - DDEBUG
    - strcmp
    - islower
    - fr_value_box_from_str
    - read_token
    linkageType: ''
    returnType: int
    signature: int match_subword(rlm_isc_dhcp_tokenizer_t *state, char const *cmd,
      rlm_isc_dhcp_info_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:735,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:737,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:741,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:743,1
    - Dst: read_file
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - state
    - info
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 761
    functionName: parse_include
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - IDEBUG
    - strrchr
    - read_file
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int parse_include(rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 774
    functionName: host_ether_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t host_ether_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:782,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 784
    functionName: host_ether_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t host_ether_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: host_uid_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t host_uid_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCMP_RETURN
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 805
    functionName: host_uid_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - MEMCMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t host_uid_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rlm_isc_dhcp_info_t *parent
    - rlm_isc_dhcp_tokenizer_t *state
    - name
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 818
    functionName: parse_option_space
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int parse_option_space(UNUSED rlm_isc_dhcp_info_t *parent, UNUSED
      rlm_isc_dhcp_tokenizer_t *state,\n\t\t\t      UNUSED char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 836
    functionName: TYPE_CHECK
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_CHECK(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TYPE_CHECK
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:838,1
    - Dst: TYPE_CHECK
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:839,1
    - Dst: TYPE_CHECK
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:840,1
    - Dst: TYPE_CHECK
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:841,1
    - Dst: TYPE_CHECK
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:842,1
    - Dst: TYPE_CHECK
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:843,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 847
    functionName: isc2fr_type
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - TYPE_CHECK
    - fr_strerror_printf
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t isc2fr_type(rlm_isc_dhcp_tokenizer_t *state)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:865,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:867,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:869,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:874,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:881,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:884,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:889,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:896,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:900,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:904,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:917,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:921,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:924,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:927,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:928,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:936,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:941,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:952,1
    - Dst: isc2fr_type
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:956,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:957,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:963,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:963,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:966,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:976,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:977,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:979,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:989,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:989,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:990,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 88
    argCount: 3
    argNames:
    - parent
    - state
    - name
    argTypes:
    - rlm_isc_dhcp_info_t*
    - rlm_isc_dhcp_tokenizer_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 855
    functionDepth: 4
    functionLinenumber: 855
    functionLinenumberEnd: 998
    functionName: parse_option_definition
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_dict_unconst
    - fr_dict_attr_by_name
    - talloc_free
    - isc2fr_type
    - fr_strerror_printf
    - strchr
    - fr_dict_root
    - memset
    - fr_dict_attr_add
    - fr_dict_attr_child_by_num
    - memcmp
    - fr_strerror_const
    - fr_type_is_null
    - fr_value_box_from_str
    - read_token
    linkageType: ''
    returnType: int
    signature: "int parse_option_definition(rlm_isc_dhcp_info_t *parent, rlm_isc_dhcp_tokenizer_t
      *state,\n\t\t\t\t   char *name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1011,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1015,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1015,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1020,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1020,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1022,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1026,1
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1029,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1030,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1042,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1045,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1045,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1047,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1050,1
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1053,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - parent
    - state
    - da
    - value
    argTypes:
    - rlm_isc_dhcp_info_t*
    - rlm_isc_dhcp_tokenizer_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1061
    functionName: parse_option
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - IDEBUG
    - fr_pair_afrom_da
    - talloc_free
    - fr_strerror_printf
    - fr_pair_append
    - talloc_strlen
    - MEM
    - fr_pair_value_from_str
    - read_token
    linkageType: ''
    returnType: int
    signature: "int parse_option(rlm_isc_dhcp_info_t *parent, rlm_isc_dhcp_tokenizer_t
      *state,\n\t\t\tfr_dict_attr_t const *da, char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1084,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1087,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1096,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1103,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1104,1
    - Dst: parse_option_space
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1105,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1117,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1117,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1119,1
    - Dst: parse_option
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1120,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1126,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1127,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1129,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1129,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1131,1
    - Dst: parse_option
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1132,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1141,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1142,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1143,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1144,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1148,1
    - Dst: parse_option_definition
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - parent
    - state
    argTypes:
    - rlm_isc_dhcp_info_t*
    - rlm_isc_dhcp_tokenizer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1074
    functionDepth: 5
    functionLinenumber: 1074
    functionLinenumberEnd: 1150
    functionName: parse_options
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - parse_option_space
    - talloc_strndup
    - parse_option
    - fr_dict_attr_by_name
    - memcpy
    - talloc_free
    - fr_strerror_printf
    - strlcpy
    - strcmp
    - parse_option_definition
    - fr_strerror_const
    - fr_dict_root
    - read_token
    linkageType: ''
    returnType: int
    signature: int parse_options(rlm_isc_dhcp_info_t *parent, rlm_isc_dhcp_tokenizer_t
      *state)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1194,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1236,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1240,1
    - Dst: parse_options
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1247,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1255,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1267,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1272,1
    - Dst: DDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1280,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1282,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1283,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1285,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1299,1
    - Dst: match_subword
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1302,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1316,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1317,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1322,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1323,1
    - Dst: parse
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1334,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1336,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 105
    argCount: 4
    argNames:
    - parent
    - state
    - tokens
    - num_tokens
    argTypes:
    - rlm_isc_dhcp_info_t*
    - rlm_isc_dhcp_tokenizer_t*
    - rlm_isc_dhcp_cmd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1153
    functionDepth: 6
    functionLinenumber: 1153
    functionLinenumberEnd: 1370
    functionName: match_keyword
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - parse_options
    - match_subword
    - WARN
    - talloc_free
    - fr_strerror_printf
    - fr_strerror_const
    - fr_assert
    - isspace
    - talloc_zero
    - DDEBUG
    - talloc_zero_array
    - strncmp
    - fr_pair_list_init
    - parse
    linkageType: ''
    returnType: int
    signature: int match_keyword(rlm_isc_dhcp_info_t *parent, rlm_isc_dhcp_tokenizer_t
      *state, rlm_isc_dhcp_cmd_t const *tokens, int num_tokens)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1394,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1403,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1411,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1412,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1418,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1420,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1422,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1429,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1430,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1432,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1439,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1441,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1447,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1450,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1451,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1455,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1456,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1478,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1484,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1485,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1495,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1501,1
    - Dst: fr_hash_table_remove
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1502,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1503,1
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1509,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 2
    argNames:
    - state
    - info
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1516
    functionName: parse_host
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - IDEBUG
    - fr_hash_table_remove
    - memcpy
    - talloc_free
    - fr_hash_table_find
    - fr_pair_find_by_da
    - fr_strerror_printf
    - fr_hash_table_alloc
    - talloc_zero
    - fr_strerror_const
    - fr_hash_table_delete
    - fr_hash_table_insert
    linkageType: ''
    returnType: int
    signature: int parse_host(rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1531,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1539,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1560,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1562,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1567,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1578,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1580,1
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - state
    - info
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1599
    functionName: parse_subnet
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - IDEBUG
    - fr_trie_insert_by_key
    - fr_strerror_printf
    - fr_trie_lookup_by_key
    - fr_trie_alloc
    linkageType: ''
    returnType: int
    signature: int parse_subnet(rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1613,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1619,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1627,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1630,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - request
    - hosts_by_ether
    - hosts_by_uid
    argTypes:
    - request_t*
    - fr_hash_table_t*
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1647
    functionName: get_host
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_find
    - fr_pair_find_by_da
    - memcpy
    linkageType: ''
    returnType: rlm_isc_dhcp_info_t
    signature: rlm_isc_dhcp_info_t *get_host(request_t *request, fr_hash_table_t *hosts_by_ether,
      fr_hash_table_t *hosts_by_uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1656,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1656,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1659,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1659,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1660,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1664,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - info
    - da
    argTypes:
    - rlm_isc_dhcp_info_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1668
    functionName: add_option_by_da
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - talloc_free
    - fr_pair_append
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int add_option_by_da(rlm_isc_dhcp_info_t *info, fr_dict_attr_t const
      *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1671
    functionName: member_size
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: member_size(type, member)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: member_size
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1677,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1678,1
    - Dst: add_option_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rlm_isc_dhcp_tokenizer_t *state
    - info
    argTypes:
    - UNUSED
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1683
    functionName: parse_filename
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - add_option_by_da
    - member_size
    linkageType: ''
    returnType: int
    signature: int parse_filename(UNUSED rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: member_size
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1690,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1691,1
    - Dst: add_option_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rlm_isc_dhcp_tokenizer_t *state
    - info
    argTypes:
    - UNUSED
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1696
    functionName: parse_server_name
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - add_option_by_da
    - member_size
    linkageType: ''
    returnType: int
    signature: int parse_server_name(UNUSED rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_option_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rlm_isc_dhcp_tokenizer_t *state
    - info
    argTypes:
    - UNUSED
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1704
    functionDepth: 2
    functionLinenumber: 1704
    functionLinenumberEnd: 1707
    functionName: parse_server_identifier
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - add_option_by_da
    linkageType: ''
    returnType: int
    signature: int parse_server_identifier(UNUSED rlm_isc_dhcp_tokenizer_t *state,
      rlm_isc_dhcp_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_option_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rlm_isc_dhcp_tokenizer_t *state
    - info
    argTypes:
    - UNUSED
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1715
    functionName: parse_next_server
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - add_option_by_da
    linkageType: ''
    returnType: int
    signature: int parse_next_server(UNUSED rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1749,1
    - Dst: get_host
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1752,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1768,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1768,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1770,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1770,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1771,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - inst
    - request
    argTypes:
    - rlm_isc_dhcp_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1740
    functionDepth: 2
    functionLinenumber: 1740
    functionLinenumberEnd: 1785
    functionName: apply_fixed_ip
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - get_host
    - fr_pair_afrom_da
    - unlikely
    - RPEDEBUG
    - fr_pair_append
    - MEM
    - fr_pair_find_by_da
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int apply_fixed_ip(rlm_isc_dhcp_t const *inst, request_t *request)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1797,1
    - Dst: get_host
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1805,1
    - Dst: apply
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1811,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1822,1
    - Dst: apply
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1825,1
    - Dst: rlm_isc_dhcp_info_t*::cmd::apply
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1836,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1847,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1869,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1871,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1874,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1884,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1887,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1889,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:1893,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 3
    argNames:
    - inst
    - request
    - head
    argTypes:
    - rlm_isc_dhcp_t*
    - request_t*
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1790
    functionDepth: 2
    functionLinenumber: 1790
    functionLinenumberEnd: 1904
    functionName: apply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 1
    functionsReached:
    - get_host
    - fr_pair_list_empty
    - fr_pair_list_next
    - fr_pair_append
    - rlm_isc_dhcp_info_t*::cmd::apply
    - fr_pair_list_head
    - fr_trie_lookup_by_key
    - apply
    - fr_pair_find_by_da
    - fr_pair_copy
    linkageType: ''
    returnType: int
    signature: int apply(rlm_isc_dhcp_t const *inst, request_t *request, rlm_isc_dhcp_info_t
      *head)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_not_whitespace
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2063,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2065,1
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2071,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2075,1
    - Dst: match_keyword
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2084,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2084,1
    - Dst: IDEBUG
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2093,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 2
    argNames:
    - state
    - info
    argTypes:
    - rlm_isc_dhcp_tokenizer_t*
    - rlm_isc_dhcp_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2040
    functionDepth: 7
    functionLinenumber: 2040
    functionLinenumberEnd: 2096
    functionName: parse_section
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 1
    functionsReached:
    - IDEBUG
    - match_keyword
    - fr_strerror_printf
    - fr_skip_not_whitespace
    - NUM_ELEMENTS
    - read_token
    linkageType: ''
    returnType: int
    signature: int parse_section(rlm_isc_dhcp_tokenizer_t *state, rlm_isc_dhcp_info_t
      *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2115,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2117,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2117,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2121,1
    - Dst: read_token
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2142,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2145,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2147,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2148,1
    - Dst: match_keyword
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2157,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2157,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - inst
    - parent
    - filename
    argTypes:
    - rlm_isc_dhcp_t*
    - rlm_isc_dhcp_info_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2101
    functionDepth: 7
    functionLinenumber: 2101
    functionLinenumberEnd: 2171
    functionName: read_file
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 1
    functionsReached:
    - match_keyword
    - fr_strerror_printf
    - fr_syserror
    - fclose
    - fr_strerror
    - fopen
    - memset
    - NUM_ELEMENTS
    - read_token
    linkageType: ''
    returnType: int
    signature: int read_file(rlm_isc_dhcp_t *inst, rlm_isc_dhcp_info_t *parent, char
      const *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2175,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2180,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2180,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2181,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2184,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2187,1
    - Dst: read_file
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2190,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2192,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2192,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2173
    functionDepth: 8
    functionLinenumber: 2173
    functionLinenumberEnd: 2202
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - read_file
    - fr_hash_table_alloc
    - talloc_get_type_abort
    - talloc_zero
    - cf_log_warn
    - fr_strerror
    - MEM
    - cf_log_err
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2206,1
    - Dst: apply_fixed_ip
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2204
    functionDepth: 3
    functionLinenumber: 2204
    functionLinenumberEnd: 2216
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    - apply_fixed_ip
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2220,1
    - Dst: apply
      Src: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c:2223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2218
    functionDepth: 3
    functionLinenumber: 2218
    functionLinenumberEnd: 2230
    functionName: mod_post_auth
    functionSourceFile: /src/freeradius-server/src/modules/rlm_isc_dhcp/rlm_isc_dhcp.c
    functionUses: 0
    functionsReached:
    - apply
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_post_auth(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:106,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:107,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:111,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:114,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:115,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:115,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:119,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:119,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:120,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:121,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:124,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:125,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:129,1
    - Dst: fr_htrie_replace
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:131,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:132,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:133,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:134,1
    - Dst: rlm_kv_list_insert_head
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:141,1
    - Dst: rlm_kv_list_remove
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:150,1
    - Dst: rlm_kv_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:156,1
    - Dst: rlm_kv_list_pop_tail
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:157,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:158,1
    - Dst: fr_htrie_remove
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:159,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:161,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 168
    functionName: kv_write_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - rlm_kv_list_num_elements
    - fr_htrie_replace
    - talloc_free
    - XLAT_ARGS
    - pthread_mutex_lock
    - REDEBUG
    - rlm_kv_list_insert_head
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - rlm_kv_list_remove
    - talloc_zero
    - fr_assert
    - fr_htrie_remove
    - rlm_kv_list_pop_tail
    - RWDEBUG
    - fr_type_to_str
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t kv_write_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t   xlat_ctx_t const *xctx,\n\t\t\t\t   UNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:178,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:179,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:183,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:186,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:187,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:187,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:191,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:192,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:194,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:195,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:199,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:199,1
    - Dst: rlm_kv_list_remove
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:205,1
    - Dst: rlm_kv_list_insert_head
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:206,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:208,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 214
    functionName: kv_read_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_dcursor_append
    - XLAT_ARGS
    - pthread_mutex_lock
    - fr_value_box_acopy
    - rlm_kv_list_insert_head
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - rlm_kv_list_remove
    - fr_htrie_find
    - RWDEBUG
    - fr_type_to_str
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t kv_read_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \ xlat_ctx_t const *xctx,\n\t\t\t\t  UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:226,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:227,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:231,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:234,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:235,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:235,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:246,1
    - Dst: fr_htrie_remove
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:247,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:249,1
    - Dst: rlm_kv_list_remove
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:252,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:254,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:256,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:256,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:257,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 263
    functionName: kv_delete_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - pthread_mutex_lock
    - fr_value_box_acopy
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - rlm_kv_list_remove
    - fr_htrie_remove
    - RWDEBUG
    - fr_type_to_str
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t kv_delete_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   xlat_ctx_t const *xctx,\n\t\t\t\t    UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: mod_mutable_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int mod_mutable_free(rlm_kv_mutable_t *mutable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:273,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:280,1
    - Dst: fr_type_from_str
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:285,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:287,1
    - Dst: fr_htrie_hint
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:291,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:293,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:297,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:297,1
    - Dst: fr_htrie_alloc
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:299,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:305,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:306,1
    - Dst: rlm_kv_list_init
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:308,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:310,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 314
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - fr_type_from_str
    - rlm_kv_list_init
    - fr_htrie_hint
    - talloc_set_destructor
    - talloc_get_type_abort
    - talloc_zero
    - FR_INTEGER_BOUND_CHECK
    - fr_htrie_alloc
    - MEM
    - cf_log_err
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:320,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:321,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:323,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:324,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:326,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kv/rlm_kv.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:221,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:222,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:227,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:228,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:231,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:232,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:236,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - WARN
    - talloc_get_type_abort
    - tmpl_dcursor_clear
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    - tmpl_dcursor_init
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:251,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:252,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:255,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:257,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:257,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:258,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:259,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:263,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - request
    - inst
    - buffer
    - buflen
    - ssid
    - mac
    argTypes:
    - request_t*
    - rlm_dpsk_t*
    - uint8_t*
    - size_t
    - fr_value_box_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: dpsk_cache_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_time
    - fr_time_gt
    - fr_rb_find
    - RDEBUG3
    - fr_rb_delete
    linkageType: ''
    returnType: rlm_dpsk_cache_t
    signature: "rlm_dpsk_cache_t *dpsk_cache_find(request_t *request, rlm_dpsk_t const
      *inst, uint8_t *buffer, size_t buflen,\n\t\t\t\t\t fr_value_box_t *ssid, uint8_t
      const *mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:273,1
    - Dst: PKCS5_PBKDF2_HMAC_SHA1
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:275,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - request
    - buffer
    - buflen
    - ssid
    - psk
    - psk_len
    argTypes:
    - request_t*
    - uint8_t*
    - size_t
    - fr_value_box_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: generate_pmk
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - RERROR
    - PKCS5_PBKDF2_HMAC_SHA1
    linkageType: ''
    returnType: int
    signature: int generate_pmk(request_t *request, uint8_t *buffer, size_t buflen,
      fr_value_box_t *ssid, char const *psk, size_t psk_len)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:289,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:290,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:316,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:321,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:326,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:349,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:354,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:354,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:355,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:356,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:361,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:370,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:386,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:397,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:400,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:401,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:404,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:405,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:408,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:417,1
    - Dst: dpsk_cache_find
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:418,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:423,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:426,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:438,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:441,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:442,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:451,1
    - Dst: generate_pmk
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:452,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:453,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:477,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:491,1
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:491,1
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:491,1
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:491,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:492,1
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:492,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:495,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:497,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:499,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:499,1
    - Dst: fr_sbuff_init_file
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:503,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:507,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:508,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:509,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:509,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:512,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:514,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:518,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:519,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:522,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:523,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:527,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:528,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:529,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:529,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:532,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:536,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:537,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:545,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:547,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:548,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:549,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:549,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:552,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:561,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:561,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:562,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:563,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:566,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:571,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:575,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:583,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:586,1
    - Dst: generate_pmk
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:587,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:603,1
    - Dst: HMAC
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:605,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:605,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:607,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:608,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:609,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:614,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:616,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:618,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:625,1
    - Dst: HMAC
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:627,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:627,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:632,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:633,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:634,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:635,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:646,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:647,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:657,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:660,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:664,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:672,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:676,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:682,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:684,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:697,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:698,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:699,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:721,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:722,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:725,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:731,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:732,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:733,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:734,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:736,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:739,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:739,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:741,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:742,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:749,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:749,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:752,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:752,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:755,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:756,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:756,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:761,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:762,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:765,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:769,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:769,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:770,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:771,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:771,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:772,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:773,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:786,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:787,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:789,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:800,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:801,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:811,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:812,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:813,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:814,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:817,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:817,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:818,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 291
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 822
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - memcpy
    - fr_rb_num_elements
    - REDEBUG
    - FR_SBUFF_OUT
    - talloc_strdup
    - pthread_mutex_unlock
    - fr_time_add
    - FR_DBUFF_TMP
    - RHEXDUMP3
    - strlen
    - fopen
    - fr_sbuff_adv_past_blank
    - MEM
    - fr_dlist_head
    - RWARN
    - pthread_mutex_lock
    - fr_time
    - talloc_get_type_abort
    - fr_rb_insert
    - memcmp
    - fr_value_box_bstrndup_shallow
    - memset
    - FR_SBUFF_TERMS
    - fr_base16_decode
    - talloc_memdup
    - L
    - map_to_request
    - fr_syserror
    - FR_SBUFF_IN
    - fr_rb_find
    - fr_assert
    - RDEBUG2
    - RDEBUG3
    - fr_sbuff_init_file
    - fr_sbuff_out_bstrncpy_until
    - fr_sbuff_adv_past_whitespace
    - HMAC
    - fr_rb_delete
    - fr_sbuff_next_if_char
    - generate_pmk
    - fclose
    - dpsk_cache_find
    - RERROR
    - RDEBUG
    - TALLOC_FREE
    - fr_dlist_remove
    - talloc_zero
    - EVP_sha1
    - tmpl_init_shallow
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:845,1
    - Dst: PKCS5_PBKDF2_HMAC_SHA1
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:847,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:850,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:854,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:854,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:855,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 860
    functionName: dpsk_pmk_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_memdup
    - fr_value_box_alloc
    - MEM
    - PKCS5_PBKDF2_HMAC_SHA1
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t dpsk_pmk_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out, UNUSED
      xlat_ctx_t const *xctx,\n\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:865,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:865,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:882,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:888,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 889
    functionName: cache_entry_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t cache_entry_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:895,1
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:896,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:897,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 900
    functionName: cache_entry_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - fr_dlist_entry_unlink
    - pthread_mutex_unlock
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void cache_entry_free(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:904,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:908,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 913
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(const module_detach_ctx_t *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:919,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:921,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:923,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:934,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:936,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:936,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:937,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:937,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:939,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:941,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:943,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:945,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:946,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 955
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dpsk/rlm_dpsk.c
    functionUses: 0
    functionsReached:
    - WARN
    - fr_dlist_init
    - talloc_get_type_abort
    - FR_INTEGER_BOUND_CHECK
    - talloc_zero
    - FR_TIME_DELTA_BOUND_CHECK
    - fr_dict_enum_by_name
    - fr_rb_inline_init
    - cf_log_err
    - fr_time_delta_from_sec
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:104,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:108,1
    - Dst: module_rlm_submodule_parse
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:108,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: submodule_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - module_rlm_submodule_parse
    linkageType: ''
    returnType: int
    signature: int submodule_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:119,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:128,1
    - Dst: func
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:128,1
    - Dst: tmpl_cast_get
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:137,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:145,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:146,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:146,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:150,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:151,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:152,1
    - Dst: tmpl_expanded_type
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:152,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: cache_key_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cf_log_perr
    - tmpl_cast_set
    - tmpl_cast_get
    - func
    - talloc_get_type_abort_const
    - tmpl_expanded_type
    - fr_type_to_str
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int cache_key_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t const
      *t_rules, CONF_ITEM *ci,\n\t\t\t   call_env_ctx_t const *cec,\n\t\t\t   call_env_parser_t
      const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - inst
    - request
    argTypes:
    - rlm_cache_handle_t**
    - rlm_cache_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: cache_acquire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - rlm_cache_t*::driver::acquire
    linkageType: ''
    returnType: int
    signature: int cache_acquire(rlm_cache_handle_t **out, rlm_cache_t const *inst,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - inst
    - request
    - handle
    argTypes:
    - rlm_cache_t*
    - request_t*
    - rlm_cache_handle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: cache_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - rlm_cache_t*::driver::release
    linkageType: ''
    returnType: void
    signature: void cache_release(rlm_cache_t const *inst, request_t *request, rlm_cache_handle_t
      **handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:189,1
    - Dst: rlm_cache_t*::driver::reconnect
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - handle
    - inst
    - request
    argTypes:
    - rlm_cache_handle_t**
    - rlm_cache_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: cache_reconnect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - rlm_cache_t*::driver::reconnect
    linkageType: ''
    returnType: int
    signature: int cache_reconnect(rlm_cache_handle_t **handle, rlm_cache_t const
      *inst, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:204,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - inst
    - request
    argTypes:
    - rlm_cache_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: cache_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - rlm_cache_t*::driver::alloc
    linkageType: ''
    returnType: rlm_cache_entry_t
    signature: rlm_cache_entry_t *cache_alloc(rlm_cache_t const *inst, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - inst
    - c
    argTypes:
    - rlm_cache_t*
    - rlm_cache_entry_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: cache_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - rlm_cache_t*::driver::free
    linkageType: ''
    returnType: void
    signature: void cache_free(rlm_cache_t const *inst, rlm_cache_entry_t **c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:244,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:245,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:246,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:253,1
    - Dst: map_print
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:256,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:256,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:257,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:258,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:259,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:264,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:267,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:268,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - inst
    - request
    - c
    argTypes:
    - rlm_cache_t*
    - request_t*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 275
    functionName: cache_merge
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - map_to_request
    - FR_SBUFF_OUT
    - map_print
    - RINDENT
    - RDEBUG2
    - fr_assert
    - pair_update_request
    - REXDENT
    - MEM
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t cache_merge(rlm_cache_t const *inst, request_t *request,
      rlm_cache_entry_t *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:295,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:298,1
    - Dst: cache_reconnect
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:299,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:306,1
    - Dst: fr_unix_time_lt
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:321,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:321,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:324,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:326,1
    - Dst: fr_unix_time_sub
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:326,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:326,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:327,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:328,1
    - Dst: cache_expire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:331,1
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:332,1
    - Dst: fr_unix_time_lt
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:336,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:336,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:337,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 6
    argNames:
    - p_result
    - out
    - inst
    - request
    - handle
    - key
    argTypes:
    - unlang_result_t*
    - rlm_cache_entry_t**
    - rlm_cache_t*
    - request_t*
    - rlm_cache_handle_t**
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 347
    functionName: cache_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 1
    functionsReached:
    - fr_unix_time_lt
    - fr_box_date
    - fr_box_time
    - cache_free
    - rlm_cache_t*::driver::find
    - fr_unix_time_from_sec
    - cache_expire
    - fr_box_time_delta
    - fr_time_to_unix_time
    - RDEBUG2
    - cache_reconnect
    - fr_unix_time_sub
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t cache_find(unlang_result_t *p_result, rlm_cache_entry_t
      **out,\n\t\t\t\t  rlm_cache_t const *inst, request_t *request,\n\t\t\t\t  rlm_cache_handle_t
      **handle, fr_value_box_t const *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:360,1
    - Dst: rlm_cache_t*::driver::expire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:361,1
    - Dst: cache_reconnect
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - handle
    - key
    argTypes:
    - unlang_result_t*
    - rlm_cache_t*
    - request_t*
    - rlm_cache_handle_t**
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 375
    functionName: cache_expire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 1
    functionsReached:
    - rlm_cache_t*::driver::expire
    - RDEBUG2
    - cache_reconnect
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t cache_expire(unlang_result_t *p_result,\n\t\t\t\t
      \   rlm_cache_t const *inst, request_t *request,\n\t\t\t\t    rlm_cache_handle_t
      **handle, fr_value_box_t const *key)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::count
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:398,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:399,1
    - Dst: cache_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:403,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:407,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:408,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:408,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:409,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:410,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:417,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:418,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:420,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:432,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:433,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:436,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:437,1
    - Dst: map_to_vp
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:443,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:444,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:448,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:450,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:455,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:460,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:466,1
    - Dst: map_debug_log
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:467,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:468,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:470,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:470,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:472,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:490,1
    - Dst: tmpl_attr_afrom_list
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:491,1
    - Dst: is_printable
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:497,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:503,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:503,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:505,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:505,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:506,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:507,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:508,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:515,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:517,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:518,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:520,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:522,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:529,1
    - Dst: cache_merge
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:532,1
    - Dst: rlm_cache_t*::driver::insert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:537,1
    - Dst: cache_reconnect
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:540,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:544,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:544,1
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:545,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:546,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:549,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 101
    argCount: 7
    argNames:
    - p_result
    - inst
    - request
    - handle
    - key
    - maps
    - ttl
    argTypes:
    - unlang_result_t*
    - rlm_cache_t*
    - request_t*
    - rlm_cache_handle_t**
    - fr_value_box_t*
    - map_list_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 553
    functionName: cache_insert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - tmpl_is_list
    - cache_free
    - fr_unix_time_add
    - REDEBUG
    - tmpl_value
    - RWDEBUG
    - MEM
    - unlikely
    - map_to_vp
    - rlm_cache_t*::driver::insert
    - cache_reconnect
    - cache_alloc
    - map_debug_log
    - rlm_cache_t*::driver::count
    - fr_pair_list_init
    - MAP_VERIFY
    - map_list_next
    - fr_time_to_unix_time
    - RDEBUG2
    - fr_assert
    - map_list_init
    - talloc_pool
    - RETURN_UNLANG_RCODE
    - fr_pair_find_by_da
    - tmpl_alloc
    - map_list_insert_tail
    - RERROR
    - fr_pair_list_next
    - talloc_free
    - cache_merge
    - tmpl_attr_tail_da_is_structural
    - RINDENT
    - fr_box_time_delta
    - talloc_zero
    - fr_pair_list_head
    - REXDENT
    - is_printable
    - tmpl_attr_afrom_list
    - talloc_free_children
    - fr_value_box_copy
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t cache_insert(unlang_result_t *p_result,\n\t\t\t\t
      \   rlm_cache_t const *inst, request_t *request, rlm_cache_handle_t **handle,\n\t\t\t\t
      \   fr_value_box_t const *key, map_list_t const *maps, fr_time_delta_t ttl)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rlm_cache_t*::driver::insert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:571,1
    - Dst: cache_reconnect
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:574,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:578,1
    - Dst: rlm_cache_t*::driver::set_ttl
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:593,1
    - Dst: cache_reconnect
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:596,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - handle
    - c
    argTypes:
    - unlang_result_t*
    - rlm_cache_t*
    - request_t*
    - rlm_cache_handle_t**
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 607
    functionName: cache_set_ttl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - cache_reconnect
    - rlm_cache_t*::driver::set_ttl
    - rlm_cache_t*::driver::insert
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t cache_set_ttl(unlang_result_t *p_result,\n\t\t\t\t
      \    rlm_cache_t const *inst, request_t *request,\n\t\t\t\t     rlm_cache_handle_t
      **handle, rlm_cache_entry_t *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fail
    - ','
    - _invalid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 624
    functionName: FIXUP_KEY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXUP_KEY(_fail, _invalid)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:636,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:637,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:638,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:651,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:657,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:659,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:660,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:661,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:663,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:667,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:669,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:679,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:682,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:685,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:691,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:695,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:699,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:700,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:701,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:702,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:703,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:703,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:704,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:705,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:714,1
    - Dst: cache_merge
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:720,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:730,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:732,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:746,1
    - Dst: cache_expire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:747,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:762,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:779,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:795,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:797,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:806,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:808,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:808,1
    - Dst: cache_set_ttl
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:810,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:822,1
    - Dst: cache_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:835,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:850,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:852,1
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:858,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:859,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:864,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:866,1
    - Dst: fr_dict_attr_is_top_level
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:868,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:876,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:877,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:878,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:879,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 176
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 886
    functionName: mod_cache_it
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - cache_free
    - fr_unix_time_add
    - fr_dcursor_next
    - talloc_get_type_abort
    - cache_insert
    - fr_dict_attr_is_top_level
    - cache_expire
    - fr_time_to_unix_time
    - cache_release
    - RDEBUG3
    - fr_assert
    - RDEBUG2
    - cache_acquire
    - fr_pair_find_by_da
    - fr_time_delta_from_sec
    - fr_dcursor_remove
    - cache_find
    - FIXUP_KEY
    - cache_set_ttl
    - talloc_free
    - cache_merge
    - fr_box_time_delta
    - RINDENT
    - talloc_get_type_abort_const
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void mod_cache_it(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:903,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:904,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:905,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:910,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:919,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:920,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:929,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:933,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:934,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:938,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:944,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:945,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:949,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:950,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:954,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:955,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:955,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:956,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:956,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:958,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:958,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:959,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:959,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:959,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:960,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:961,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:962,1
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:963,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:964,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:967,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:971,1
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:973,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:974,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 982
    functionName: cache_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_free
    - tmpl_attr_tail_da
    - tmpl_afrom_attr_substr
    - MEM
    - fr_value_box_alloc_null
    - unlikely
    - RPEDEBUG
    - talloc_get_type_abort
    - map_list_next
    - FR_SBUFF_IN
    - cache_release
    - cache_acquire
    - cache_find
    - fr_dcursor_append
    - talloc_free
    - tmpl_list
    - tmpl_value
    - fr_value_box_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cache_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t
      xlat_ctx_t const *xctx,\n\t\t\t request_t *request, fr_value_box_list_t *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:989,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:990,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:991,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1000,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1004,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1010,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1014,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1014,1
    - Dst: fr_unix_time_sub
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1015,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1015,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1016,1
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1018,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1022
    functionName: cache_ttl_get_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - cache_free
    - fr_dcursor_append
    - talloc_get_type_abort
    - fr_time_to_unix_time
    - cache_release
    - fr_unix_time_sub
    - fr_value_box_alloc
    - cache_acquire
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cache_ttl_get_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\txlat_ctx_t
      const *xctx,\n\t\t\t\t\trequest_t *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cache_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1035,1
    - Dst: cache_release
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1036,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1041,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1043,1
    - Dst: fr_dict_attr_is_top_level
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1045,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1053,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1054,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1055,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1056,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - request
    - inst
    - entry
    - handle
    argTypes:
    - request_t*
    - rlm_cache_t*
    - rlm_cache_entry_t*
    - rlm_cache_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1061
    functionName: cache_unref
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_is_top_level
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - cache_free
    - fr_dcursor_next
    - TALLOC_FREE
    - cache_release
    - RDEBUG2
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: "void cache_unref(request_t *request, rlm_cache_t const *inst, rlm_cache_entry_t
      *entry,\n\t\t\trlm_cache_handle_t *handle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1072,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1073,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1074,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1080,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1083,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1087,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1089,1
    - Dst: cache_unref
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1098
    functionName: mod_method_status
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - FIXUP_KEY
    - cache_unref
    - talloc_get_type_abort
    - fr_assert
    - cache_acquire
    linkageType: ''
    returnType: void
    signature: void mod_method_status(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1109,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1110,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1113,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1117,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1120,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1124,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1128,1
    - Dst: cache_merge
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1133,1
    - Dst: cache_unref
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1139
    functionName: mod_method_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - FIXUP_KEY
    - cache_unref
    - cache_merge
    - talloc_get_type_abort
    - RDEBUG2
    - cache_acquire
    linkageType: ''
    returnType: void
    signature: void mod_method_load(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1150,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1151,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1152,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1161,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1164,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1170,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1182,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1190,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1193,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1193,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1199,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1208,1
    - Dst: cache_expire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1210,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1219,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1221,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1221,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1223,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1223,1
    - Dst: cache_set_ttl
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1225,1
    - Dst: cache_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1232,1
    - Dst: cache_unref
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1242,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1245
    functionName: mod_method_update
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - FIXUP_KEY
    - cache_set_ttl
    - fr_unix_time_add
    - cache_unref
    - cache_expire
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_to_unix_time
    - fr_assert
    - cache_insert
    - cache_acquire
    - fr_pair_find_by_da
    - DEBUG3
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void mod_method_update(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1256,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1257,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1258,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1266,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1268,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1274,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1276,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1278,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1278,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1284,1
    - Dst: cache_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1304,1
    - Dst: cache_unref
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1254
    functionDepth: 3
    functionLinenumber: 1254
    functionLinenumberEnd: 1312
    functionName: mod_method_store
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - FIXUP_KEY
    - cache_unref
    - talloc_get_type_abort
    - fr_box_time_delta
    - cache_insert
    - cache_acquire
    - fr_pair_find_by_da
    - DEBUG3
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void mod_method_store(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1323,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1324,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1325,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1331,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1333,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1336,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1340,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1344,1
    - Dst: cache_expire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1349,1
    - Dst: cache_unref
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1355
    functionName: mod_method_clear
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - FIXUP_KEY
    - REDEBUG2
    - cache_unref
    - cache_expire
    - talloc_get_type_abort
    - cache_acquire
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void mod_method_clear(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1366,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1367,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1368,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1376,1
    - Dst: FIXUP_KEY
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1378,1
    - Dst: cache_acquire
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1381,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1387,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1394,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1397,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1400,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1400,1
    - Dst: cache_find
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1406,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1410,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1412,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1412,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1414,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1414,1
    - Dst: cache_set_ttl
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1416,1
    - Dst: cache_unref
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1426
    functionName: mod_method_ttl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cache_find
    - FIXUP_KEY
    - cache_set_ttl
    - fr_unix_time_add
    - cache_unref
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_to_unix_time
    - fr_assert
    - cache_acquire
    - fr_pair_find_by_da
    - DEBUG3
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void mod_method_ttl(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1433,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1446
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free_children
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlang_fixup_update
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1453,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1455,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1456,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - map
    - uctx
    argTypes:
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1466
    functionName: cache_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - tmpl_is_attr
    - cf_log_err
    - unlang_fixup_update
    linkageType: ''
    returnType: int
    signature: int cache_verify(map_t *map, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1472,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1476,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1476,1
    - Dst: FR_CALL_ENV_PARSE_ONLY_OFFSET
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1477,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1479,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1479,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1480,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1482,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1485,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1489,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1490,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1497
    functionName: cache_update_section_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - FR_CALL_ENV_PARSE_ONLY_OFFSET
    - call_env_parsed_add
    - call_env_parsed_set_data
    - talloc
    - map_list_empty
    - call_env_parsed_free
    - map_list_init
    - MEM
    - cf_log_err
    - map_afrom_cs
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int cache_update_section_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out, tmpl_rules_t const *t_rules,\n\t\t\t\t      CONF_ITEM *ci,\n\t\t\t\t      UNUSED
      call_env_ctx_t const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1504,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1510,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1511,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1512,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1513,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1515,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1516,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1526
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    - fr_assert
    - fr_time_delta_ispos
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1538,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1539,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1540,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1542,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1546
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/rlm_cache.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:49,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:50,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:50,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:56,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:58,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:61,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:62,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:66,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:70,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:70,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:72,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:72,1
    - Dst: fr_value_box_aprint_quoted
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:77,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:77,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:80,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:81,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:86,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - out
    - c
    argTypes:
    - TALLOC_CTX*
    - char**
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 91
    functionName: cache_serialize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/serialize.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf_append_buffer
    - map_list_next
    - fr_box_date
    - talloc_free
    - FR_SBUFF_OUT
    - fr_strerror_printf
    - map_list_empty
    - fr_table_str_by_value
    - tmpl_value
    - fr_value_box_aprint_quoted
    - talloc_pool
    - fr_asprintf
    - STRINGIFY
    - tmpl_print
    linkageType: ''
    returnType: int
    signature: int cache_serialize(TALLOC_CTX *ctx, char **out, rlm_cache_entry_t
      const *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:109,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:121,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:126,1
    - Dst: map_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:130,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:133,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:137,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:138,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:140,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:144,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:145,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:147,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:154,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:154,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:154,1
    - Dst: fr_dict_attr_is_top_level
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:160,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:160,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:160,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:162,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:163,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:167,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:168,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:175,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_cache/serialize.c:178,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 5
    argNames:
    - request
    - c
    - dict
    - in
    - inlen
    argTypes:
    - request_t*
    - rlm_cache_entry_t*
    - fr_dict_t*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 185
    functionName: cache_deserialize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/serialize.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_is_top_level
    - MAP_VERIFY
    - map_list_insert_tail
    - map_afrom_attr_str
    - unlang_interpret_event_list
    - talloc_free
    - fr_strerror_printf
    - strchr
    - tmpl_cast_in_place
    - tmpl_attr_tail_da
    - tmpl_is_data
    - tmpl_value
    - strlen
    - tmpl_is_attr
    - tmpl_type_to_str
    linkageType: ''
    returnType: int
    signature: int cache_deserialize(request_t *request, rlm_cache_entry_t *c, fr_dict_t
      const *dict, char *in, ssize_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCMP_FIELDS
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: cache_entry_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - MEMCMP_FIELDS
    linkageType: ''
    returnType: int8_t
    signature: int8_t cache_entry_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_cmp
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: cache_heap_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - fr_unix_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t cache_heap_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:79,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - config
    - instance
    - request
    argTypes:
    - UNUSED*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: cache_entry_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - RERROR
    linkageType: ''
    returnType: rlm_cache_entry_t
    signature: "rlm_cache_entry_t *cache_entry_alloc(UNUSED rlm_cache_config_t const
      *config, UNUSED void *instance,\n\t\t\t\t\t    request_t *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:98,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:104,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:110,1
    - Dst: fr_unix_time_gt
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:113,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:113,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:115,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:116,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:117,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:120,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - out
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - rlm_cache_entry_t**
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: cache_entry_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - fr_value_box_copy_shallow
    - talloc_free
    - fr_unix_time_gt
    - talloc_get_type_abort
    - fr_time_to_unix_time
    - fr_heap_extract
    - fr_assert
    - fr_rb_find
    - fr_heap_peek
    - fr_rb_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_find(rlm_cache_entry_t **out,\n\t\t\t\t
      \      UNUSED rlm_cache_config_t const *config, void *instance,\n\t\t\t\t       request_t
      *request, UNUSED void *handle, fr_value_box_t const *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:145,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:151,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:153,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:156,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:157,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 161
    functionName: cache_entry_expire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - fr_value_box_copy_shallow
    - talloc_free
    - talloc_get_type_abort
    - fr_rb_find
    - fr_heap_extract
    - fr_rb_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_expire(UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t\t\t request_t *request, UNUSED void *handle,\n\t\t\t\t\t
      fr_value_box_t const *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:175,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:177,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:184,1
    - Dst: cache_entry_expire
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:185,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:186,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:188,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:189,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:195,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:195,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:196,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - c
    argTypes:
    - rlm_cache_config_t*
    - void*
    - request_t*
    - void*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 203
    functionName: cache_entry_insert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_cond_assert
    - UNCONST
    - talloc_get_type_abort
    - fr_assert
    - fr_rb_insert
    - fr_heap_insert
    - cache_entry_expire
    - fr_rb_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_insert(rlm_cache_config_t const *config,
      void *instance,\n\t\t\t\t\t request_t *request, void *handle,\n\t\t\t\t\t rlm_cache_entry_t
      const *c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:215,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:221,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:221,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:222,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:226,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:227,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - c
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: cache_entry_set_ttl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_cond_assert
    - talloc_get_type_abort
    - fr_heap_extract
    - fr_heap_insert
    - fr_rb_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_set_ttl(UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t\t\t  request_t *request, UNUSED void *handle,\n\t\t\t\t\t
      \ rlm_cache_entry_t *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:243,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - config
    - instance
    - request
    - handle
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: cache_entry_count
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    - talloc_get_type_abort
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t cache_entry_count(UNUSED rlm_cache_config_t const *config,
      void *instance,\n\t\t\t\t  request_t *request, UNUSED void *handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:259,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:261,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - config
    - instance
    - request
    argTypes:
    - void**
    - UNUSED*
    - void*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: cache_acquire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 9
    functionsReached:
    - pthread_mutex_lock
    - RDEBUG3
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: "int cache_acquire(void **handle, UNUSED rlm_cache_config_t const *config,
      void *instance,\n\t\t\t request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:279,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:281,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - config
    - instance
    - request
    - rlm_cache_handle_t *handle
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: cache_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 4
    functionsReached:
    - RDEBUG3
    - talloc_get_type_abort
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void cache_release(UNUSED rlm_cache_config_t const *config, void *instance,
      request_t *request,\n\t\t\t  UNUSED rlm_cache_handle_t *handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:291,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:298,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:300,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:301,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:302,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:306,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_rb_iter_delete_inorder
    - fr_rb_iter_next_inorder
    - talloc_free
    - talloc_get_type_abort
    - fr_rb_iter_init_inorder
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:322,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:326,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:326,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:331,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:333,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:335,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:342,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:344,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:348,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:349,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 356
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_rbtree/rlm_cache_rbtree.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - fr_heap_talloc_alloc
    - fr_rb_inline_talloc_alloc
    - fr_syserror
    - talloc_get_type_abort
    - talloc_zero
    - MEM
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:71,1
    - Dst: cf_table_parse_int
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:74,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: cf_htrie_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cf_table_parse_int
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int cf_htrie_type_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:96,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:97,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:105,1
    - Dst: call_env_parse_pair
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:105,1
    - Dst: tmpl_expanded_type
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:106,1
    - Dst: fr_type_is_void
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:111,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:112,1
    - Dst: fr_type_is_void
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:119,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:119,1
    - Dst: fr_type_cast
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:125,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:126,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:127,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:127,1
    - Dst: fr_type_promote
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:135,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:136,1
    - Dst: fr_type_is_void
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:136,1
    - Dst: fr_htrie_hint
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:148,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:150,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:151,1
    - Dst: cf_log_info
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:155,1
    - Dst: fr_htrie_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:156,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 161
    functionName: cf_htrie_key_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_htrie_hint
    - fr_htrie_type_to_str
    - talloc_get_type_abort
    - cf_log_info
    - fr_type_promote
    - fr_assert
    - call_env_parse_pair
    - talloc_get_type_abort_const
    - fr_type_cast
    - tmpl_expanded_type
    - fr_type_to_str
    - cf_log_err
    - fr_type_is_null
    - fr_type_is_void
    linkageType: ''
    returnType: int
    signature: "int cf_htrie_key_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t const
      *t_rules, CONF_ITEM *ci,\n\t\t\t      call_env_ctx_t const *cec, UNUSED call_env_parser_t
      const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_cmp
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: cache_heap_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - fr_unix_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t cache_heap_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:185,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - config
    - instance
    - request
    argTypes:
    - UNUSED*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: cache_entry_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - RERROR
    linkageType: ''
    returnType: rlm_cache_entry_t
    signature: "rlm_cache_entry_t *cache_entry_alloc(UNUSED rlm_cache_config_t const
      *config, UNUSED void *instance,\n\t\t\t\t\t    request_t *request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:210,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:215,1
    - Dst: fr_unix_time_lt
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:216,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:216,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:217,1
    - Dst: fr_htrie_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:218,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:219,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:222,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - out
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - rlm_cache_entry_t**
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 235
    functionName: cache_entry_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - fr_unix_time_lt
    - fr_value_box_copy_shallow
    - talloc_free
    - talloc_get_type_abort
    - fr_time_to_unix_time
    - fr_heap_extract
    - fr_assert
    - fr_htrie_find
    - fr_heap_peek
    - fr_htrie_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_find(rlm_cache_entry_t **out,\n\t\t\t\t
      \      UNUSED rlm_cache_config_t const *config, void *instance,\n\t\t\t\t       request_t
      *request, UNUSED void *handle, fr_value_box_t const *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:247,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:254,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:256,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:259,1
    - Dst: fr_htrie_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:260,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: cache_entry_expire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 1
    functionsReached:
    - fr_value_box_copy_shallow
    - talloc_free
    - talloc_get_type_abort
    - fr_heap_extract
    - fr_htrie_find
    - fr_htrie_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_expire(UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t\t\t request_t *request, UNUSED void *handle,\n\t\t\t\t\t
      fr_value_box_t const *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:278,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:281,1
    - Dst: fr_htrie_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:288,1
    - Dst: cache_entry_expire
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:289,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:290,1
    - Dst: fr_htrie_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:292,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:293,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:299,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:299,1
    - Dst: fr_htrie_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:300,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - c
    argTypes:
    - rlm_cache_config_t*
    - void*
    - request_t*
    - void*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 307
    functionName: cache_entry_insert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_cond_assert
    - UNCONST
    - talloc_get_type_abort
    - fr_assert
    - fr_heap_insert
    - cache_entry_expire
    - fr_htrie_delete
    - fr_htrie_insert
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_insert(rlm_cache_config_t const *config,
      void *instance,\n\t\t\t\t\t request_t *request, void *handle,\n\t\t\t\t\t rlm_cache_entry_t
      const *c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:319,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:326,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:326,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:327,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:331,1
    - Dst: fr_htrie_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:332,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - c
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 337
    functionName: cache_entry_set_ttl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_cond_assert
    - talloc_get_type_abort
    - fr_heap_extract
    - fr_heap_insert
    - fr_htrie_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_set_ttl(UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t\t\t  request_t *request, UNUSED void *handle,\n\t\t\t\t\t
      \ rlm_cache_entry_t *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:348,1
    - Dst: fr_htrie_num_elements
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - config
    - instance
    - request
    - handle
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 353
    functionName: cache_entry_count
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_htrie_num_elements
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t cache_entry_count(UNUSED rlm_cache_config_t const *config,
      void *instance,\n\t\t\t\t  request_t *request, UNUSED void *handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:364,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:366,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - config
    - instance
    - request
    argTypes:
    - void**
    - UNUSED*
    - void*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 373
    functionName: cache_acquire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 9
    functionsReached:
    - pthread_mutex_lock
    - RDEBUG3
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: "int cache_acquire(void **handle, UNUSED rlm_cache_config_t const *config,
      void *instance,\n\t\t\t request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:384,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:386,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - config
    - instance
    - request
    - rlm_cache_handle_t *handle
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: cache_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 4
    functionsReached:
    - RDEBUG3
    - talloc_get_type_abort
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void cache_release(UNUSED rlm_cache_config_t const *config, void *instance,
      request_t *request,\n\t\t\t  UNUSED rlm_cache_handle_t *handle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:396,1
    - Dst: while
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:404,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:404,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:405,1
    - Dst: fr_htrie_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:406,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - fr_heap_extract
    - while
    - fr_heap_peek
    - fr_htrie_delete
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: _value_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t _value_cmp(void const *a, void const *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:432,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:442,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:442,1
    - Dst: fr_htrie_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:447,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:452,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:454,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:461,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:463,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:467,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:468,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 475
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - fr_heap_talloc_alloc
    - fr_syserror
    - talloc_get_type_abort
    - talloc_zero
    - fr_htrie_alloc
    - MEM
    - PERROR
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcached_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mandle
    argTypes:
    - rlm_cache_memcached_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_free
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(rlm_cache_memcached_handle_t *mandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:84,1
    - Dst: memcached
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:88,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:88,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:90,1
    - Dst: memcached_behavior_set
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:94,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:94,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:96,1
    - Dst: memcached_strerror
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:96,1
    - Dst: memcached_last_error_message
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:96,1
    - Dst: memcached_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:98,1
    - Dst: memcached_version
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:102,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:104,1
    - Dst: memcached_strerror
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:104,1
    - Dst: memcached_last_error_message
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:104,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - mandle
    - uctx
    argTypes:
    - rlm_cache_memcached_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 112
    functionName: memcached_conn_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_strerror
    - ERROR
    - fr_time_delta_to_msec
    - memcached_free
    - talloc_set_destructor
    - memcached_version
    - talloc_get_type_abort
    - memcached_behavior_set
    - memcached_last_error_message
    - talloc_strlen
    - memcached
    linkageType: ''
    returnType: int
    signature: int memcached_conn_init(rlm_cache_memcached_handle_t *mandle, void
      *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:123,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:126,1
    - Dst: libmemcached_check_configuration
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:128,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:128,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:131,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 142
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - ERROR
    - libmemcached_check_configuration
    - talloc_get_type_abort
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:146,1
    - Dst: memcached_lib_version
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - INFO
    - memcached_lib_version
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: cache_entry_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void cache_entry_free(rlm_cache_entry_t *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcached_get
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:178,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:182,1
    - Dst: memcached_strerror
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:182,1
    - Dst: memcached_last_error_message
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:183,1
    - Dst: memcached_fatal
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:185,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:187,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:188,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:190,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:190,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:191,1
    - Dst: cache_deserialize
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:192,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:193,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:195,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:197,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:200,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:200,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - out
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - rlm_cache_entry_t**
    - UNUSED*
    - UNUSED*
    - request_t*
    - void*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 208
    functionName: cache_entry_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_strerror
    - unlikely
    - RERROR
    - talloc_free
    - free
    - cache_deserialize
    - RPERROR
    - RDEBUG2
    - talloc_zero
    - memcached_last_error_message
    - memcached_fatal
    - map_list_init
    - memcached_get
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_find(rlm_cache_entry_t **out,\n\t\t\t\t
      \      UNUSED rlm_cache_config_t const *config, UNUSED void *instance,\n\t\t\t\t
      \      request_t *request, void *handle, fr_value_box_t const *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:224,1
    - Dst: cache_serialize
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:227,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:228,1
    - Dst: memcached_set
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:233,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:235,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:235,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:236,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:238,1
    - Dst: memcached_strerror
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:238,1
    - Dst: memcached_last_error_message
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:239,1
    - Dst: memcached_fatal
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - c
    argTypes:
    - UNUSED*
    - UNUSED*
    - request_t*
    - void*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 245
    functionName: cache_entry_insert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_strerror
    - RERROR
    - memcached_set
    - talloc_free
    - cache_serialize
    - memcached_last_error_message
    - memcached_fatal
    - talloc_strlen
    - talloc_pool
    - fr_unix_time_to_sec
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_insert(UNUSED rlm_cache_config_t const
      *config, UNUSED void *instance,\n\t\t\t\t\t request_t *request, void *handle,
      const rlm_cache_entry_t *c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcached_delete
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:258,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:267,1
    - Dst: memcached_last_error_message
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:267,1
    - Dst: memcached_fatal
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - UNUSED*
    - UNUSED*
    - request_t*
    - void*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: cache_entry_expire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 2
    functionsReached:
    - RERROR
    - memcached_last_error_message
    - memcached_fatal
    - memcached_delete
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_expire(UNUSED rlm_cache_config_t const
      *config, UNUSED void *instance,\n\t\t\t\t\t request_t *request, void *handle,
      fr_value_box_t const *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:281,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:281,1
    - Dst: memcached_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - handle
    - config
    - instance
    - request
    argTypes:
    - void**
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: mod_conn_get
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_slab_reserve
    - talloc_get_type_abort
    - module_thread
    linkageType: ''
    returnType: int
    signature: "int mod_conn_get(void **handle, UNUSED rlm_cache_config_t const *config,
      void *instance,\n\t\t\tUNUSED request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcached_slab_release
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - config
    - instance
    - request
    - handle
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - rlm_cache_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: mod_conn_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_slab_release
    linkageType: ''
    returnType: void
    signature: "void mod_conn_release(UNUSED rlm_cache_config_t const *config, UNUSED
      void *instance,\n\t\t\t     UNUSED request_t *request, rlm_cache_handle_t *handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:311,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:311,1
    - Dst: memcached_slab_release
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:314,1
    - Dst: memcached_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - handle
    - config
    - instance
    - request
    argTypes:
    - void**
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: mod_conn_reconnect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - memcached_slab_release
    - memcached_slab_reserve
    - talloc_get_type_abort
    - module_thread
    linkageType: ''
    returnType: int
    signature: "int mod_conn_reconnect(void **handle, UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t      UNUSED request_t *request)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:327,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:328,1
    - Dst: memcached_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:331,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:332,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - ERROR
    - memcached_slab_list_alloc
    - UNCONST
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:342,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_memcached/rlm_cache_memcached.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:74,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:77,1
    - Dst: fr_redis_cluster_alloc
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:79,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:82,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:89,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:90,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:94,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c
    functionUses: 0
    functionsReached:
    - fr_redis_cluster_alloc
    - ERROR
    - snprintf
    - talloc_get_type_abort
    - tmpl_afrom_attr_str
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_redis_version_print
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c
    functionUses: 0
    functionsReached:
    - fr_redis_version_print
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: cache_entry_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void cache_entry_free(rlm_cache_entry_t *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:136,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:137,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:139,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:144,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:145,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:146,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:149,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:152,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:156,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:159,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:160,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:164,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:167,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:172,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:192,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:194,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:196,1
    - Dst: fr_redis_reply_to_map
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:201,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:203,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:204,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:208,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:213,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:213,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:216,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:216,1
    - Dst: map_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:218,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:219,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:225,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:225,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:228,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:228,1
    - Dst: map_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:230,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:231,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:234,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:234,1
    - Dst: map_list_move
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:236,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 6
    argNames:
    - out
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - rlm_cache_entry_t**
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 240
    functionName: cache_entry_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c
    functionUses: 0
    functionsReached:
    - map_list_move
    - fr_cond_assert
    - REDEBUG
    - tmpl_attr_tail_da
    - fr_redis_cluster_state_init
    - unlikely
    - map_list_head
    - fr_table_str_by_value
    - map_list_pop_head
    - fr_redis_cluster_state_next
    - redisCommand
    - RDEBUG3
    - fr_redis_command_status
    - map_list_init
    - RERROR
    - talloc_free
    - fr_redis_reply_free
    - fr_redis_reply_to_map
    - talloc_zero
    - tmpl_value
    - talloc_zero_pooled_object
    - fr_value_box_copy
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_find(rlm_cache_entry_t **out,\n\t\t\t\t
      \      UNUSED rlm_cache_config_t const *config, void *instance,\n\t\t\t\t       request_t
      *request, UNUSED void *handle, fr_value_box_t const *key)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:290,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:291,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:292,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:300,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:301,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:302,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:304,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:311,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:314,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:315,1
    - Dst: fr_redis_tuple_from_map
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:326,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:327,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:328,1
    - Dst: fr_redis_tuple_from_map
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:333,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:334,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:335,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:340,1
    - Dst: fr_redis_tuple_from_map
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:341,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:342,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:343,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:350,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:352,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:354,1
    - Dst: fr_unix_time_ispos
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:358,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:359,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:360,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:362,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:363,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:364,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:370,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:372,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:376,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:377,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:378,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:379,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:379,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:381,1
    - Dst: redisAppendCommandArgv
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:383,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:383,1
    - Dst: fr_unix_time_ispos
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:389,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:390,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:392,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:393,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:394,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:396,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:397,1
    - Dst: fr_redis_pipeline_result
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:401,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:402,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:406,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:409,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:413,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:414,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:415,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:416,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:417,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 97
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - c
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - rlm_cache_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 420
    functionName: cache_entry_insert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c
    functionUses: 0
    functionsReached:
    - fr_redis_reply_print
    - fr_redis_pipeline_free
    - talloc_array
    - REDEBUG
    - tmpl_value
    - fr_redis_cluster_state_init
    - map_list_num_elements
    - fr_unix_time_to_sec
    - fr_unix_time_ispos
    - fr_redis_cluster_state_next
    - redisAppendCommandArgv
    - NUM_ELEMENTS
    - map_list_next
    - RPERROR
    - RDEBUG3
    - talloc_array_length
    - fr_box_strvalue_len
    - talloc_pool
    - fr_value_box_init
    - RERROR
    - talloc_free
    - redisAppendCommand
    - fr_redis_tuple_from_map
    - RINDENT
    - fr_redis_pipeline_result
    - tmpl_init_shallow
    - REXDENT
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_insert(UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t\t\t request_t *request, UNUSED void *handle,
      const rlm_cache_entry_t *c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:437,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:439,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:440,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:441,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:445,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:447,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:450,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:455,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:459,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:460,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c:461,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - config
    - instance
    - request
    - handle
    - key
    argTypes:
    - UNUSED*
    - void*
    - request_t*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 464
    functionName: cache_entry_expire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cache/drivers/rlm_cache_redis/rlm_cache_redis.c
    functionUses: 2
    functionsReached:
    - RERROR
    - fr_cond_assert
    - fr_redis_command_status
    - REDEBUG
    - fr_redis_reply_free
    - fr_table_str_by_value
    - fr_redis_cluster_state_init
    - fr_redis_cluster_state_next
    - redisCommand
    linkageType: ''
    returnType: cache_status_t
    signature: "cache_status_t cache_entry_expire(UNUSED rlm_cache_config_t const
      *config, void *instance,\n\t\t\t\t\t request_t *request, UNUSED void *handle,
      fr_value_box_t const *key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:144,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:145,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:147,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:148,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:153,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:158,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 166
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - WARN
    - talloc_get_type_abort
    - RDEBUG2
    - RDEBUG3
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:177,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:178,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:180,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: pap_auth_clear
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG3
    - fr_digest_cmp
    - REDEBUG
    linkageType: ''
    returnType: void
    signature: "void pap_auth_clear(unlang_result_t *p_result,\n\t\t\t\t\t\t       UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t       fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crypt_r
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:198,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:199,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:204,1
    - Dst: crypt
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:205,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:212,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:213,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 225
    functionName: pap_auth_crypt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - REDEBUG
    - crypt_r
    - pthread_mutex_unlock
    - strcmp
    - crypt
    linkageType: ''
    returnType: void
    signature: "void pap_auth_crypt(unlang_result_t *p_result,\n\t\t\t\t\t\t       UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t       fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:235,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:239,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:241,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:242,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:244,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:245,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:245,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:246,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 251
    functionName: pap_auth_md5
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - fr_md5_calc
    - REDEBUG3
    - REDEBUG
    - fr_box_octets
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_md5(unlang_result_t *p_result,\n\t\t\t\t\t\t     UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t     fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:262,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:266,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:267,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:268,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:269,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:270,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:275,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:276,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:278,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:279,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:279,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:280,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 285
    functionName: pap_auth_smd5
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG3
    - fr_md5_update
    - REDEBUG
    - fr_md5_final
    - fr_box_octets
    - fr_md5_ctx_alloc_from_list
    - fr_digest_cmp
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: void
    signature: "void pap_auth_smd5(unlang_result_t *p_result,\n\t\t\t\t\t\t      UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t      fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:295,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:299,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:300,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:301,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:303,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:304,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:306,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:307,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:307,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:308,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: pap_auth_sha1
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG3
    - fr_sha1_init
    - REDEBUG
    - fr_sha1_final
    - fr_sha1_update
    - fr_box_octets
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_sha1(unlang_result_t *p_result,\n\t\t\t\t\t\t      UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t      fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:323,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:327,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:328,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:330,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:331,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:333,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:334,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:336,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:337,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:337,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:339,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:339,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:340,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 345
    functionName: pap_auth_ssha1
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG3
    - fr_sha1_init
    - REDEBUG
    - fr_sha1_final
    - fr_sha1_update
    - fr_box_octets
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_ssha1(unlang_result_t *p_result,\n\t\t\t\t\t\t       UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t       fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:357,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:360,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:361,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:362,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:363,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:367,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:368,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:370,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:371,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:371,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    - name
    - md
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    - char*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: pap_auth_evp_md
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - REDEBUG3
    - EVP_MD_CTX_destroy
    - EVP_DigestInit_ex
    - REDEBUG
    - EVP_MD_CTX_create
    - fr_box_octets
    - EVP_DigestFinal_ex
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_evp_md(unlang_result_t *p_result,\n\t\t\t\t\t\t    \tUNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t    \tfr_pair_t const
      *known_good, fr_value_box_t const *password,\n\t\t\t\t\t\t    \tchar const *name,
      EVP_MD const *md)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_size
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:388,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:389,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:392,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:393,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:394,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:395,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:396,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:403,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:404,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:406,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:407,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:408,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:409,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:409,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:410,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 7
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    - name
    - md
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    - char*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 415
    functionName: pap_auth_evp_md_salted
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - REDEBUG3
    - EVP_MD_CTX_destroy
    - EVP_DigestInit_ex
    - EVP_MD_size
    - REDEBUG
    - EVP_MD_CTX_create
    - fr_box_octets
    - EVP_DigestFinal_ex
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_evp_md_salted(unlang_result_t *p_result,\n\t\t\t\t\t\t\t
      \      UNUSED rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t\t       fr_pair_t
      const *known_good, fr_value_box_t const *password,\n\t\t\t\t\t\t\t       char
      const *name, EVP_MD const *md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _func
    - ','
    - _new_func
    - ','
    - _name
    - ','
    - _md
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: PAP_AUTH_EVP_MD
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAP_AUTH_EVP_MD(_func, _new_func, _name, _md)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:489,1
    - Dst: EVP_sha224
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:494,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:499,1
    - Dst: EVP_sha384
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:504,1
    - Dst: EVP_sha512
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:509,1
    - Dst: EVP_sha3_224
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:514,1
    - Dst: EVP_sha3_256
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:519,1
    - Dst: EVP_sha3_384
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:524,1
    - Dst: EVP_sha3_512
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:529,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:534,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:538,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:539,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:544,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:560,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:565,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:567,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:569,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:574,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:585,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:586,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:586,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:587,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:589,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:593,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:597,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:607,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:608,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:613,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:617,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:617,1
    - Dst: FR_BASE64_DEC_LENGTH
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:617,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:618,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:618,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:618,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:619,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:621,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:629,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:633,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:633,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:634,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:636,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:641,1
    - Dst: RHEXDUMP2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:644,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:649,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:650,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:664,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:669,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:673,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:674,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:676,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:676,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:677,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:677,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:678,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:678,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:685,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:687,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 153
    argCount: 9
    argNames:
    - p_result
    - request
    - str
    - len
    - digest_type
    - iter_sep
    - salt_sep
    - iter_is_base64
    - password
    argTypes:
    - unlang_result_t*
    - request_t*
    - uint8_t*
    - size_t
    - int
    - char
    - char
    - bool
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 688
    functionName: pap_auth_pbkdf2_parse_digest
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - FR_BASE64_DEC_LENGTH
    - ntohl
    - talloc_array
    - REDEBUG
    - memchr
    - fr_base64_decode
    - EVP_sha384
    - fr_box_octets
    - FR_DBUFF_TMP
    - EVP_sha224
    - EVP_sha3_256
    - MEM
    - strlcpy
    - RPEDEBUG
    - REMARKER
    - EVP_sha3_224
    - fr_table_str_by_value
    - strtoul
    - EVP_sha512
    - fr_tls_log
    - FR_SBUFF_IN
    - EVP_sha256
    - RDEBUG2
    - RHEXDUMP2
    - PKCS5_PBKDF2_HMAC
    - talloc_array_length
    - RETURN_UNLANG_RCODE
    - EVP_sha3_512
    - fr_digest_cmp
    - REDEBUG3
    - talloc_free
    - EVP_sha1
    - fr_strerror_clear
    - EVP_sha3_384
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t pap_auth_pbkdf2_parse_digest(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t\t
      \   request_t *request, const uint8_t *str, size_t len,\n\t\t\t\t\t\t\t\t\t
      \   int digest_type, char iter_sep, char salt_sep,\n\t\t\t\t\t\t\t\t\t    bool
      iter_is_base64, fr_value_box_t const *password)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:718,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:721,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:731,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:733,1
    - Dst: fr_table_value_by_substr
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:737,1
    - Dst: pap_auth_pbkdf2_parse_digest
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:741,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 11
    argNames:
    - p_result
    - request
    - str
    - len
    - hash_names
    - hash_names_len
    - scheme_sep
    - iter_sep
    - salt_sep
    - iter_is_base64
    - password
    argTypes:
    - unlang_result_t*
    - request_t*
    - uint8_t*
    - size_t
    - fr_table_num_sorted_t[]
    - size_t
    - char
    - char
    - char
    - bool
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 745
    functionName: pap_auth_pbkdf2_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - pap_auth_pbkdf2_parse_digest
    - memchr
    - REDEBUG
    - RDEBUG2
    - RETURN_UNLANG_RCODE
    - fr_table_value_by_substr
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t pap_auth_pbkdf2_parse(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t
      \    request_t *request, const uint8_t *str, size_t len,\n\t\t\t\t\t\t\t\t     fr_table_num_sorted_t
      const hash_names[], size_t hash_names_len,\n\t\t\t\t\t\t\t\t     char scheme_sep,
      char iter_sep, char salt_sep,\n\t\t\t\t\t\t\t\t     bool iter_is_base64, fr_value_box_t
      const *password)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:755,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:770,1
    - Dst: pap_auth_pbkdf2_parse
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:772,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:780,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:782,1
    - Dst: pap_auth_pbkdf2_parse
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:787,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:798,1
    - Dst: pap_auth_pbkdf2_parse
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:800,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:812,1
    - Dst: pap_auth_pbkdf2_parse
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:814,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:819,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 822
    functionName: pap_auth_pbkdf2
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - pap_auth_pbkdf2_parse
    - REDEBUG
    - memchr
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_pbkdf2(unlang_result_t *p_result,\n\t\t\t\t\t\t\t       UNUSED
      rlm_pap_t const *inst,\n\t\t\t\t\t\t\t       request_t *request,\n\t\t\t\t\t\t\t
      \      fr_pair_t const *known_good, fr_value_box_t const *password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:837,1
    - Dst: pap_auth_pbkdf2_parse_digest
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: pap_auth_pbkdf2_sha1
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - pap_auth_pbkdf2_parse_digest
    linkageType: ''
    returnType: void
    signature: "void pap_auth_pbkdf2_sha1(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t
      \   UNUSED rlm_pap_t const *inst,\n\t\t\t\t\t\t\t\t    request_t *request,\n\t\t\t\t\t\t\t\t
      \   fr_pair_t const *known_good, fr_value_box_t const *password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:852,1
    - Dst: pap_auth_pbkdf2_parse_digest
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 857
    functionName: pap_auth_pbkdf2_sha256
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - pap_auth_pbkdf2_parse_digest
    linkageType: ''
    returnType: void
    signature: "void pap_auth_pbkdf2_sha256(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t
      \     UNUSED rlm_pap_t const *inst,\n\t\t\t\t\t\t\t\t      request_t *request,\n\t\t\t\t\t\t\t\t
      \     fr_pair_t const *known_good, fr_value_box_t const *password)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:867,1
    - Dst: pap_auth_pbkdf2_parse_digest
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 872
    functionName: pap_auth_pbkdf2_sha512
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - pap_auth_pbkdf2_parse_digest
    linkageType: ''
    returnType: void
    signature: "void pap_auth_pbkdf2_sha512(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t
      \     UNUSED rlm_pap_t const *inst,\n\t\t\t\t\t\t\t\t      request_t *request,\n\t\t\t\t\t\t\t\t
      \     fr_pair_t const *known_good, fr_value_box_t const *password)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:907,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:912,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:916,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:916,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:917,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:920,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:925,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:929,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:932,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:936,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:941,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:945,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:946,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:948,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:948,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:949,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:949,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:950,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:950,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:951,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:953,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 955
    functionName: pap_auth_pbkdf2_sha256_legacy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG3
    - ntohl
    - fr_tls_log
    - RPEDEBUG
    - REDEBUG
    - fr_base64_decode
    - FR_SBUFF_IN
    - EVP_sha256
    - fr_box_octets
    - FR_DBUFF_TMP
    - PKCS5_PBKDF2_HMAC
    - RETURN_UNLANG_RCODE
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_pbkdf2_sha256_legacy(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t\t
      \    UNUSED rlm_pap_t const *inst,\n\t\t\t\t\t\t\t\t\t     request_t *request,\n\t\t\t\t\t\t\t\t\t
      \    fr_pair_t const *known_good, fr_value_box_t const *password)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:966,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:969,1
    - Dst: fr_utf8_to_ucs2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:973,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:976,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:980,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:982,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:983,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:985,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:985,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 991
    functionName: pap_auth_nt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - REDEBUG3
    - fr_md4_calc
    - fr_utf8_to_ucs2
    - REDEBUG
    - fr_box_octets
    - RDEBUG2
    - fr_digest_cmp
    linkageType: ''
    returnType: void
    signature: "void pap_auth_nt(unlang_result_t *p_result,\n\t\t\t\t\t\t    UNUSED
      rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t    fr_pair_t const
      *known_good, fr_value_box_t const *password)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1000,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1002,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1005,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1013,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1014,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1015,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1025,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1035,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1038,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1041,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1044,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1047,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1047,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1053
    functionName: pap_auth_ns_mta_md5
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - fr_md5_calc
    - memcpy
    - REDEBUG
    - FR_SBUFF_IN
    - fr_dbuff_start
    - RDEBUG2
    - FR_DBUFF_TMP
    - fr_digest_cmp
    - fr_base16_decode
    linkageType: ''
    returnType: void
    signature: "void pap_auth_ns_mta_md5(unlang_result_t *p_result,\n\t\t\t\t\t\t\t
      \   UNUSED rlm_pap_t const *inst, request_t *request,\n\t\t\t\t\t\t\t    fr_pair_t
      const *known_good, fr_value_box_t const *password)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - known_good
    - password
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1063
    functionName: pap_auth_dummy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pap_auth_dummy(unlang_result_t *p_result,\n\t\t\t\t\t\t       UNUSED
      rlm_pap_t const *inst, UNUSED request_t *request,\n\t\t\t\t\t\t       UNUSED
      fr_pair_t const *known_good, UNUSED fr_value_box_t const *password)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1114,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1118,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1123,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1132,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1137,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1140,1
    - Dst: password_find
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1149,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1150,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1153,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1157,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1157,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1160,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1163,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1165,1
    - Dst: auth_func
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1171,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1172,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1175,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1179,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1187
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - password_find
    - auth_func
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG3
    - RDEBUG2
    - fr_assert
    - talloc_array_length
    - talloc_get_type_abort_const
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1191,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1193,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1200
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - WARN
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1210,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1211,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1214,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1215,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1216,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1223,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1233,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1234,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1239,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1240,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1241,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1242,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1251
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - fr_dict_attr_autoload
    - talloc_array
    - talloc_free
    - fr_cond_assert
    - fr_dict_attr_child_by_num
    - NUM_ELEMENTS
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1255,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1257
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pap/rlm_pap.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:133,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:139,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:141,1
    - Dst: fr_pair_value_bstr_realloc
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:141,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:149,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:149,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:149,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 158
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_base16_encode
    - FR_SBUFF_OUT
    - fr_pair_value_bstr_realloc
    - FR_DBUFF_TMP
    - DEBUG2
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, UNUSED module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mod_authorize
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: mod_preacct
    functionSourceFile: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c
    functionUses: 0
    functionsReached:
    - mod_authorize
    linkageType: ''
    returnType: void
    signature: void mod_preacct(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:173,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:184,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:185,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:187,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:196,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:197,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:199,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:199,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:200,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:206,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:214,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:214,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:215,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:215,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:216,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:216,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:218,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:219,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:224,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:225,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:225,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:227,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:228,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:229,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:231,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:232,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:238,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:239,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:240,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:240,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:241,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:241,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:243,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:244,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:250,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:253,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:253,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:254,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:254,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:263,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:264,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:266,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:267,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:274,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:276,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:277,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:285,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:287,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:295,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:296,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:296,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:298,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:299,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:300,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:301,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:306,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:306,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:307,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:312,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:312,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:320,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:322,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:330,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:331,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:331,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:333,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:334,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:335,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:336,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:341,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:341,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:342,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:347,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:347,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:355,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:357,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:365,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:366,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:366,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:368,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:369,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:370,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:371,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:376,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:376,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:377,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:382,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:382,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:395,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:397,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:398,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:398,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:400,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:402,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:404,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:412,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:412,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:421,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:423,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:425,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:431,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:432,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:438,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:440,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:447,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c:448,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 140
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 451
    functionName: mod_post_auth
    functionSourceFile: /src/freeradius-server/src/modules/rlm_wimax/rlm_wimax.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - ntohl
    - memcpy
    - REDEBUG2
    - EVP_DigestSignInit
    - fr_pair_value_memdup
    - pair_update_reply
    - fr_box_octets
    - RWDEBUG
    - MEM
    - fr_nbo_to_uint32
    - EVP_DigestSignUpdate
    - EVP_DigestSignFinal
    - fr_pair_find_by_da_nested
    - EVP_MD_CTX_new
    - EVP_sha256
    - EVP_MD_CTX_reset
    - fr_pair_find_by_da
    - EVP_PKEY_new_mac_key
    - pair_delete_reply
    - EVP_PKEY_free
    - EVP_sha1
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_post_auth(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:99,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - inst
    - buf
    - out
    argTypes:
    - rlm_csv_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 160
    functionName: buf2entry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool buf2entry(rlm_csv_t *inst, char *buf, char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: csv_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t csv_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: csv_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_value_box_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t csv_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_to_key
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - outlen
    - data
    argTypes:
    - uint8_t**
    - size_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: csv_to_key
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_value_box_to_key
    linkageType: ''
    returnType: int
    signature: int csv_to_key(uint8_t **out, size_t *outlen, void const *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:191,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:193,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:196,1
    - Dst: fr_htrie_insert
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:209,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:210,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - conf
    - inst
    - e
    - lineno
    argTypes:
    - CONF_SECTION*
    - rlm_csv_t*
    - rlm_csv_entry_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 218
    functionName: insert_entry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_assert
    - fr_htrie_find
    - fr_strerror
    - cf_log_err
    - fr_htrie_insert
    linkageType: ''
    returnType: bool
    signature: bool insert_entry(CONF_SECTION *conf, rlm_csv_t *inst, rlm_csv_entry_t
      *e, int lineno)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:227,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:227,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:229,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:231,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:234,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:234,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:235,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:236,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:238,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:246,1
    - Dst: insert_entry
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - conf
    - inst
    - old
    - p
    - lineno
    argTypes:
    - CONF_SECTION*
    - rlm_csv_t*
    - rlm_csv_entry_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 250
    functionName: duplicate_entry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - talloc_reference
    - fr_value_box_alloc_null
    - talloc_free
    - talloc_set_type
    - strlen
    - talloc_zero_array
    - fr_strerror
    - insert_entry
    - MEM
    - cf_log_err
    - fr_value_box_from_str
    linkageType: ''
    returnType: bool
    signature: bool duplicate_entry(CONF_SECTION *conf, rlm_csv_t *inst, rlm_csv_entry_t
      *old, char *p, int lineno)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:261,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:261,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:263,1
    - Dst: buf2entry
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:266,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:267,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:274,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:294,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:303,1
    - Dst: duplicate_entry
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:307,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:310,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:317,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:320,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:321,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:322,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:323,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:325,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:343,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:344,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:345,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:346,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:353,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:353,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:357,1
    - Dst: insert_entry
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:361,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 4
    argNames:
    - conf
    - inst
    - lineno
    - buffer
    argTypes:
    - CONF_SECTION*
    - rlm_csv_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 362
    functionName: file2csv
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_str
    - talloc_free
    - talloc_set_type
    - strchr
    - fr_value_box_clear
    - duplicate_entry
    - talloc_strdup
    - strlen
    - buf2entry
    - talloc_zero_array
    - fr_strerror
    - insert_entry
    - MEM
    - cf_log_err
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: bool
    signature: bool file2csv(CONF_SECTION *conf, rlm_csv_t *inst, int lineno, char
      *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - inst
    - field_name
    - array_offset
    argTypes:
    - rlm_csv_t*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: fieldname2offset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int fieldname2offset(rlm_csv_t const *inst, char const *field_name,
      int *array_offset)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:392,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:402,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:406,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:406,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:410,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:411,1
    - Dst: fieldname2offset
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:422,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:423,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:427,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:434,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:440,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:447,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:447,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:451,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:452,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:472,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:473,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - map
    - instance
    argTypes:
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 478
    functionName: csv_map_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_tail_unresolved
    - tmpl_attr_tail_da
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fieldname2offset
    - fr_type_is_null
    - tmpl_type_to_str
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int csv_map_verify(map_t *map, void *instance)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:489,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - cs
    - mod_inst
    - proc_inst
    - src
    - maps
    argTypes:
    - CONF_SECTION*
    - void*
    - UNUSED*
    - tmpl_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    functionName: csv_maps_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int csv_maps_verify(CONF_SECTION *cs, void const *mod_inst, UNUSED
      void *proc_inst,\n\t\t\t  tmpl_t const *src, map_list_t const *maps)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:516,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:525,1
    - Dst: tmpl_expanded_type
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:530,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:536,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:541,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:542,1
    - Dst: fr_htrie_hint
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:552,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:554,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:555,1
    - Dst: fr_htrie_alloc
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:559,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:565,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:565,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:570,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:575,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:586,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:588,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:588,1
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:592,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:595,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:596,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:600,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:609,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:610,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:617,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:622,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:626,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:626,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:627,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:627,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:628,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:628,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:638,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:638,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:659,1
    - Dst: isspace
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:669,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:670,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:696,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:702,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:706,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:726,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:739,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 128
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 742
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_htrie_hint
    - fgets
    - talloc_array
    - talloc_strdup
    - fr_strerror
    - fopen
    - fr_type_to_str
    - MEM
    - cf_log_err
    - talloc_get_type_abort
    - talloc_zero_array
    - tmpl_expanded_type
    - fr_syserror
    - strcmp
    - fr_htrie_alloc
    - fclose
    - strchr
    - isspace
    - map_proc_register
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:755,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:767,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:774,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:777,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:786,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:792,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:798,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:800,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:800,1
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:810,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:812,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:813,1
    - Dst: fgets
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:822,1
    - Dst: file2csv
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:823,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:824,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:830,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 833
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - fgets
    - fr_syserror
    - talloc_get_type_abort
    - cf_log_warn
    - file2csv
    - fopen
    - map_list_init
    - cf_log_err
    - map_afrom_cs
    - fclose
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:845,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:847,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:848,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:853,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:854,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:859,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:859,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:861,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:862,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:866,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:869,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:870,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:872,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:872,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:873,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:873,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:874,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:875,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 883
    functionName: csv_map_getvalue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - RPWDEBUG
    - fr_dict_attr_by_name
    - talloc_free
    - tmpl_attr_tail_da
    - fr_box_strvalue_buffer
    - fr_pair_append
    - tmpl_aexpand
    - fr_assert
    - talloc_strlen
    - tmpl_is_attr
    - RWDEBUG
    - fr_pair_value_from_str
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int csv_map_getvalue(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t
      *request, map_t const *map, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:904,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:904,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:911,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:912,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:919,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:920,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:921,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:922,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:927,1
    - Dst: fieldname2offset
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:930,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:932,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:935,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:936,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:945,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:946,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:952,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - inst
    - request
    - key
    - maps
    argTypes:
    - rlm_csv_t*
    - request_t*
    - fr_value_box_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 962
    functionName: mod_map_apply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - REXDENT
    - map_to_request
    - talloc_free
    - REDEBUG
    - UNCONST
    - RINDENT
    - tmpl_aexpand
    - fieldname2offset
    - fr_htrie_find
    - tmpl_is_data_unresolved
    linkageType: ''
    returnType: rlm_rcode_t
    signature: "rlm_rcode_t mod_map_apply(rlm_csv_t const *inst, request_t *request,\n\t\t\t\tfr_value_box_t
      const *key, map_list_t const *maps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:980,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:981,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:984,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:989,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:993,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:998,1
    - Dst: mod_map_apply
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - key
    - maps
    argTypes:
    - unlang_result_t*
    - map_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 999
    functionName: mod_map_proc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - mod_map_apply
    - REDEBUG
    - fr_value_box_list_concat_in_place
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_proc(unlang_result_t *p_result, map_ctx_t
      const *mpctx, request_t *request,\n\t\t\t\t    fr_value_box_list_t *key, map_list_t
      const *maps)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1004,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1009,1
    - Dst: tmpl_aexpand_type
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1015,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1017,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1028,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1028,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1029,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1030,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1031,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1035,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1036,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1038,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1039,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1040,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1045,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1046,1
    - Dst: mod_map_apply
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1047,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1048,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1050,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c:1051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1052
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_csv/rlm_csv.c
    functionUses: 0
    functionsReached:
    - unlikely
    - mod_map_apply
    - talloc_free
    - REDEBUG
    - fr_value_box_clear
    - tmpl_aexpand_type
    - map_list_empty
    - RINDENT
    - RDEBUG2
    - fr_value_box_cast
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    - REXDENT
    - fr_type_to_str
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void mod_process(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: _sql_escape_uxtx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _sql_escape_uxtx_free(void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:130,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:133,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:133,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: sql_escape_uctx_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_zero
    - MEM
    - fr_atexit_thread_local
    linkageType: ''
    returnType: void
    signature: void *sql_escape_uctx_alloc(UNUSED request_t *request, void const *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_sql_query_t*::inst::fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:153,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:155,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:161,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:166,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:170,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:172,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:176,1
    - Dst: fr_sql_query_t*::inst::driver::sql_finish_select_query
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:180,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - out
    - outlen
    - query_ctx
    argTypes:
    - char*
    - int
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 182
    functionName: sqlippool_result_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - RDEBUG2
    - fr_sql_query_t*::inst::fetch_row
    - strlen
    - fr_sql_query_t*::inst::driver::sql_finish_select_query
    - strcpy
    linkageType: ''
    returnType: int
    signature: int sqlippool_result_process(char *out, int outlen, fr_sql_query_t
      *query_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:197,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:200,1
    - Dst: module_rlm_static_by_name
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:202,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:204,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:211,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:211,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 218
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - module_rlm_static_by_name
    - talloc_get_type_abort
    - talloc_get_name
    - strcmp
    - talloc_asprintf
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - ippool_alloc_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: sqlippool_alloc_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - request_data_get
    linkageType: ''
    returnType: int
    signature: int sqlippool_alloc_ctx_free(ippool_alloc_ctx_t *to_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _query_str
    - ','
    - _new_status
    - ','
    - _type
    - ','
    - _function
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: SUBMIT_QUERY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBMIT_QUERY(_query_str, _new_status, _type, _function)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:252,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:257,1
    - Dst: rlm_sql_t*::driver::sql_finish_query
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:274,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:286,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:288,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:296,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:300,1
    - Dst: sqlippool_result_process
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:303,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:313,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:319,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:324,1
    - Dst: sqlippool_result_process
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:327,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:336,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:341,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:344,1
    - Dst: sqlippool_result_process
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:347,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:355,1
    - Dst: rlm_sql_t*::driver::sql_finish_query
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:360,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:368,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:372,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:391,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:392,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:393,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:396,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:400,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:409,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:421,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:425,1
    - Dst: sqlippool_result_process
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:426,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:437,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:447,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:452,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:457,1
    - Dst: rlm_sql_t*::driver::sql_finish_query
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:458,1
    - Dst: SUBMIT_QUERY
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:469,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:470,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:477,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 163
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 479
    functionName: mod_alloc_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - map_to_request
    - talloc_free
    - rlm_sql_t*::driver::sql_finish_query
    - sqlippool_result_process
    - REDEBUG
    - talloc_get_type_abort
    - fr_value_box_list_pop_head
    - SUBMIT_QUERY
    - RDEBUG2
    - fr_assert
    - tmpl_init_shallow
    - fr_value_box_bstrndup_shallow
    - RETURN_UNLANG_RCODE
    - RWDEBUG
    - unlang_tmpl_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_alloc_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:493,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:494,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:497,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:497,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:503,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:508,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:512,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:512,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:512,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:519,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:526,1
    - Dst: rlm_sql_t*::query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:526,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:528,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:529,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:529,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:530,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 546
    functionName: mod_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_list_init
    - talloc_set_destructor
    - talloc_free
    - talloc_get_type_abort
    - module_thread
    - talloc
    - RDEBUG2
    - unlang_module_yield
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    - rlm_sql_t*::query_alloc
    linkageType: ''
    returnType: void
    signature: void mod_alloc(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:552,1
    - Dst: rlm_sql_t*::driver::sql_affected_rows
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:565,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 571
    functionName: mod_common_update_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - rlm_sql_t*::driver::sql_affected_rows
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_common_update_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, UNUSED request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:577,1
    - Dst: rlm_sql_t*::driver::sql_finish_query
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:590,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:592,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:592,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:593,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 606
    functionName: mod_common_free_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - rlm_sql_t*::driver::sql_finish_query
    - talloc_get_type_abort
    - unlang_module_yield
    - unlang_function_push_with_result
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_common_free_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:616,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:617,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:619,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:619,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:624,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:624,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:624,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:631,1
    - Dst: rlm_sql_t*::query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:631,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:640,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:640,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:641,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:644,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:655,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:655,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:656,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:659,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 666
    functionName: mod_common
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - talloc_get_type_abort
    - talloc
    - module_thread
    - unlang_module_yield
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    - rlm_sql_t*::query_alloc
    linkageType: ''
    returnType: void
    signature: void mod_common(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:672,1
    - Dst: rlm_sql_escape_uctx_t*::sql::box_escape::func
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 678
    functionName: sqlippool_box_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - rlm_sql_escape_uctx_t*::sql::box_escape::func
    linkageType: ''
    returnType: int
    signature: int sqlippool_box_escape(fr_value_box_t *vb, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:689,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:693,1
    - Dst: module_rlm_static_by_name
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:699,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:701,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:711,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:712,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:712,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:712,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:712,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:713,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 717
    functionName: sqlippool_call_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlippool/rlm_sqlippool.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - module_rlm_static_by_name
    - cf_pair_value
    - FR_SBUFF_IN
    - talloc_get_type_abort
    - tmpl_afrom_substr
    - talloc_get_type_abort_const
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int sqlippool_call_env_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules, CONF_ITEM *ci,\n\t\t\t\t    call_env_ctx_t const *cec, UNUSED
      call_env_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql_trunk.h:42,1
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql_trunk.h:43,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql_trunk.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tconn
    - el
    - conn_conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - connection_conf_t*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: sql_trunk_connection_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql_trunk.h
    functionUses: 0
    functionsReached:
    - connection_alloc
    - PERROR
    - talloc_get_type_abort
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *sql_trunk_connection_alloc(trunk_connection_t *tconn,
      fr_event_list_t *el, \\\n\t\t\t\t\t\t   connection_conf_t const *conn_conf,
      \\\n\t\t\t\t\t\t   char const *log_prefix, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:255,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:259,1
    - Dst: module_rlm_submodule_parse
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:259,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: submodule_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 2
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - module_rlm_submodule_parse
    linkageType: ''
    returnType: int
    signature: int submodule_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: _sql_escape_uxtx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _sql_escape_uxtx_free(void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:280,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:283,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:283,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 289
    functionName: sql_escape_uctx_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_zero
    - MEM
    - fr_atexit_thread_local
    linkageType: ''
    returnType: void
    signature: void *sql_escape_uctx_alloc(UNUSED request_t *request, void const *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:299,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:302,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:304,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:304,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:306,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:307,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:309,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:310,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:310,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:312,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - maps
    argTypes:
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 323
    functionName: fall_through
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - map_list_head
    - talloc_free
    - tmpl_attr_tail_da
    - map_list_remove
    - tmpl_is_data
    - tmpl_value_type
    - fr_assert
    - tmpl_is_attr
    - tmpl_value
    linkageType: ''
    returnType: sql_fall_through_t
    signature: sql_fall_through_t fall_through(map_list_t *maps)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:332,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:333,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:333,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:338,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:348,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:357,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:373,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:388,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:398,1
    - Dst: rlm_sql_t*::sql_escape_func
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:400,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:408,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - request
    - vb
    - uctx
    argTypes:
    - request_t*
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 411
    functionName: sql_xlat_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - fr_value_box_is_safe_for
    - fr_value_box_strdup
    - fr_value_box_cast_in_place
    - talloc_get_type_abort
    - module_thread
    - fr_value_box_mark_safe_for
    - talloc_get_type_abort_const
    - rlm_sql_t*::sql_escape_func
    - fr_dict_enum_name_by_value
    linkageType: ''
    returnType: void
    signature: void sql_xlat_escape(request_t *request, fr_value_box_t *vb, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sql_xlat_escape
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: sql_box_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - sql_xlat_escape
    linkageType: ''
    returnType: int
    signature: int sql_box_escape(fr_value_box_t *vb, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:429,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:433,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:434,1
    - Dst: sql_escape_uctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:435,1
    - Dst: sql_box_escape
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:436,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: sql_escape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - sql_box_escape
    - fr_value_box_is_safe_for
    - fr_dcursor_append
    - talloc_get_type_abort
    - fr_value_box_list_pop_head
    - sql_escape_uctx_alloc
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_escape_xlat(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:446,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:452,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:458,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:458,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:460,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:470,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:474,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:474,1
    - Dst: fr_value_box_uint32
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:475,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:476,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 482
    functionName: sql_xlat_query_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - rlm_sql_print_error
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG2
    - fr_value_box_uint32
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_xlat_query_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:487,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:495,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:499,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:499,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:501,1
    - Dst: rlm_sql_t*::fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:507,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:513,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:517,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:526,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:526,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:527,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:528,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:533,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 536
    functionName: sql_xlat_select_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_value_box_strdup
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - rlm_sql_print_error
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG2
    - rlm_sql_t*::fetch_row
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_xlat_select_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:554,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:555,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:556,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:558,1
    - Dst: rlm_sql_query_log
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:563,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:571,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:577,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:578,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:579,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:580,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:580,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:580,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:583,1
    - Dst: rlm_sql_t*::query
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:586,1
    - Dst: unlang_interpret_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:586,1
    - Dst: sql_xlat_query_resume
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:589,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:592,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:592,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:592,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:595,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:597,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 604
    functionName: sql_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - sql_xlat_query_resume
    - talloc_get_type_abort
    - fr_skip_whitespace
    - rlm_sql_t*::query
    - rlm_sql_query_log
    - fr_sql_query_alloc
    - unlang_interpret_frame_talloc_ctx
    - unlang_interpret_result
    - unlang_function_push_with_result
    - MEM
    - unlang_xlat_yield
    - strncasecmp
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t      request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:617,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:618,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:619,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:620,1
    - Dst: rlm_sql_query_log
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:624,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:627,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:627,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:627,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:630,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 638
    functionName: sql_fetch_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - talloc_get_type_abort
    - rlm_sql_query_log
    - fr_sql_query_alloc
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_fetch_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:651,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:652,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:653,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:654,1
    - Dst: rlm_sql_query_log
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:658,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:661,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:661,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:661,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:664,1
    - Dst: rlm_sql_t*::query
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:666,1
    - Dst: unlang_interpret_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:666,1
    - Dst: sql_xlat_query_resume
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 669
    functionName: sql_modify_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - sql_xlat_query_resume
    - talloc_get_type_abort
    - rlm_sql_t*::query
    - rlm_sql_query_log
    - fr_sql_query_alloc
    - unlang_interpret_frame_talloc_ctx
    - unlang_interpret_result
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_modify_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
      xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:688,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:688,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:695,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:695,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:696,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:697,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:698,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 704
    functionName: _sql_map_proc_get_value
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - RPEDEBUG
    - talloc_free
    - tmpl_attr_tail_da
    - fr_box_strvalue_buffer
    - fr_pair_append
    - strlen
    - fr_pair_value_from_str
    linkageType: ''
    returnType: int
    signature: "int _sql_map_proc_get_value(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \  request_t *request, map_t const *map, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - cs
    - mod_inst
    - proc_inst
    - src
    - maps
    argTypes:
    - CONF_SECTION*
    - UNUSED*
    - UNUSED*
    - tmpl_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: sql_map_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int sql_map_verify(CONF_SECTION *cs, UNUSED void const *mod_inst,
      UNUSED void *proc_inst,\n\t\t\t  tmpl_t const *src, UNUSED map_list_t const
      *maps)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:738,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:751,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:751,1
    - Dst: rlm_sql_t*::driver::sql_num_rows
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:760,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:762,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:768,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:782,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:782,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:785,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:786,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:788,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:795,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:797,1
    - Dst: tmpl_expand
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:801,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:803,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:808,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:819,1
    - Dst: rlm_sql_t*::fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:831,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:835,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:837,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:840,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:843,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:850,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:855,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:856,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:858,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 83
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - fr_value_box_list_t *query
    - maps
    argTypes:
    - unlang_result_t*
    - map_ctx_t*
    - request_t*
    - UNUSED
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 859
    functionName: mod_map_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - RERROR
    - map_list_next
    - map_to_request
    - map_list_head
    - talloc_free
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RPERROR
    - strcasecmp
    - RDEBUG2
    - fr_assert
    - rlm_sql_t*::driver::sql_num_rows
    - talloc_array_length
    - RDEBUG3
    - tmpl_expand
    - rlm_sql_t*::fetch_row
    - RETURN_UNLANG_RCODE
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_resume(unlang_result_t *p_result, map_ctx_t
      const *mpctx, request_t *request,\n\t\t\t\t      UNUSED fr_value_box_list_t
      *query, map_list_t const *maps)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:876,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:877,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:877,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:878,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:883,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:886,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:890,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:891,1
    - Dst: sql_escape_uctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:892,1
    - Dst: sql_box_escape
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:893,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:896,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:900,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:904,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:904,1
    - Dst: unlang_map_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:907,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - query
    - maps
    argTypes:
    - unlang_result_t*
    - map_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 915
    functionName: mod_map_proc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - fr_value_box_is_safe_for
    - sql_box_escape
    - REDEBUG
    - talloc_get_type_abort
    - module_thread
    - sql_escape_uctx_alloc
    - unlang_map_yield
    - fr_assert
    - fr_value_box_list_concat_in_place
    - fr_sql_query_alloc
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - fr_value_box_list_next
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_proc(unlang_result_t *p_result, map_ctx_t
      const *mpctx, request_t *request,\n\t\t\t\t    fr_value_box_list_t *query, UNUSED
      map_list_t const *maps)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:925,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:935,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:935,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:943,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:945,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:984,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:985,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1004,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1004,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1005,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - request
    - vb
    - arg
    argTypes:
    - UNUSED*
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 1008
    functionName: sql_escape_func
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 1
    functionsReached:
    - memcpy
    - talloc_array
    - talloc_realloc
    - strchr
    - snprintf
    - fr_utf8_char
    - talloc_get_type_abort_const
    - fr_value_box_strdup_shallow_replace
    - MEM
    linkageType: ''
    returnType: int
    signature: int sql_escape_func(UNUSED request_t *request, fr_value_box_t *vb,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1022,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1024,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1024,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1026,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1033,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - inst
    - request
    - user
    argTypes:
    - rlm_sql_t*
    - request_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1035
    functionName: sql_set_user
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - fr_assert
    - RDEBUG2
    - fr_pair_value_bstrdup_buffer
    - pair_update_request
    - MEM
    linkageType: ''
    returnType: void
    signature: void sql_set_user(rlm_sql_t const *inst, request_t *request, fr_value_box_t
      *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _i
    - ','
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1041
    functionName: sql_unset_user
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sql_unset_user(_i, _r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1050,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1058,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1059,1
    - Dst: rlm_sql_t*::fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1063,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1067,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1072,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1075,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1079,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1086
    functionName: sql_get_grouplist_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_strdup
    - talloc_get_type_abort
    - rlm_sql_print_error
    - RDEBUG2
    - talloc_zero
    - rlm_sql_t*::fetch_row
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_get_grouplist_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1096,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1096,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1099,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - p_result
    - group_ctx
    - trunk
    - request
    argTypes:
    - unlang_result_t*
    - sql_group_ctx_t*
    - trunk_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1113
    functionName: sql_get_grouplist
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - unlang_function_push_with_result
    - MEM
    - fr_sql_query_alloc
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_get_grouplist(unlang_result_t *p_result, sql_group_ctx_t
      *group_ctx, trunk_t *trunk, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1127,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1128,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1129,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1134,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1136,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1136,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1138,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1143,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1148
    functionName: sql_group_xlat_query_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - fr_skip_whitespace
    - fr_value_box_alloc
    - strcmp
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_group_xlat_query_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t\t\t UNUSED request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1157,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1158,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1159,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1162,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1165,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1165,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1172,1
    - Dst: sql_get_grouplist
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1179
    functionName: sql_group_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - talloc_get_type_abort
    - talloc
    - sql_get_grouplist
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_group_xlat_resume(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out, xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      UNUSED fr_value_box_list_t *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1193,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1195,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1198,1
    - Dst: sql_set_user
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1205,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1207,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1207,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1207,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1208,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1210,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1213
    functionName: sql_group_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_init
    - RWARN
    - sql_set_user
    - unlang_tmpl_push
    - talloc_get_type_abort
    - talloc_zero
    - unlang_interpret_frame_talloc_ctx
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t sql_group_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1231,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1234,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1237,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1238,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1243,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1247,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1247,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1249,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1253,1
    - Dst: radius_legacy_map_cmp
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1254,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1256,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1257,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1258,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - request
    - check_map
    - reply_map
    argTypes:
    - request_t*
    - map_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1263
    functionName: check_map_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - map_list_insert_tail
    - map_list_next
    - map_list_head
    - fr_type_is_structural
    - REDEBUG
    - tmpl_attr_tail_da
    - map_list_remove
    - RDEBUG2
    - radius_legacy_map_cmp
    - map_list_talloc_free
    linkageType: ''
    returnType: int
    signature: int check_map_process(request_t *request, map_list_t *check_map, map_list_t
      *reply_map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1267,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1268,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1269,1
    - Dst: sql_unset_user
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - sql_autz_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1273
    functionName: sql_autz_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - request_data_get
    - sql_unset_user
    - map_list_talloc_free
    linkageType: ''
    returnType: int
    signature: int sql_autz_ctx_free(sql_autz_ctx_t *to_free)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1293,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1298,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1313,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1314,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1314,1
    - Dst: sql_get_grouplist
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1320,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1330,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1333,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1336,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1338,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1341,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1341,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1344,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1351,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1354,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1357,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1357,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1358,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1362,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1363,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1383,1
    - Dst: sql_get_map_list
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1384,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1393,1
    - Dst: check_map_process
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1400,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1401,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1404,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1407,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1413,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1417,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1418,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1424,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1440,1
    - Dst: sql_get_map_list
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1441,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1450,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1457,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1457,1
    - Dst: fall_through
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1458,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1462,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1462,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1463,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1466,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1467,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1471,1
    - Dst: radius_legacy_map_list_apply
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1472,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1473,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1474,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1477,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1478,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1483,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1493,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1502,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1504,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1506,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1506,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1514,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 176
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1515
    functionName: mod_autz_group_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_strdup
    - fr_value_box_list_pop_head
    - sql_get_grouplist
    - map_list_empty
    - unlang_module_yield
    - map_list_num_elements
    - MEM
    - unlang_tmpl_push
    - map_list_talloc_free
    - sql_get_map_list
    - RPEDEBUG
    - talloc_get_type_abort
    - check_map_process
    - pair_append_control
    - radius_legacy_map_list_apply
    - RDEBUG2
    - fr_assert
    - RDEBUG3
    - pair_update_request
    - RETURN_UNLANG_RCODE
    - fr_pair_find_by_da
    - talloc_free
    - talloc
    - fall_through
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void mod_autz_group_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1526,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1529,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1555,1
    - Dst: sql_get_map_list
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1556,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1564,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1571,1
    - Dst: check_map_process
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1574,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1575,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1578,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1582,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1583,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1598,1
    - Dst: sql_get_map_list
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1599,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1607,1
    - Dst: fall_through
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1611,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1613,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1617,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1618,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1619,1
    - Dst: radius_legacy_map_list_apply
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1620,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1621,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1622,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1625,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1628,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1633,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1636,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1641,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1645,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1646,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1654,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1657,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1661,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1664,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1664,1
    - Dst: mod_autz_group_resume
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1666,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1671,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1675,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 111
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1524
    functionDepth: 3
    functionLinenumber: 1524
    functionLinenumberEnd: 1676
    functionName: mod_authorize_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_pop_head
    - unlang_module_yield
    - fr_assert_msg
    - MEM
    - map_list_num_elements
    - unlang_tmpl_push
    - map_list_talloc_free
    - sql_get_map_list
    - RPEDEBUG
    - RWARN
    - talloc_get_type_abort
    - check_map_process
    - radius_legacy_map_list_apply
    - RDEBUG2
    - RDEBUG3
    - pair_update_request
    - RETURN_UNLANG_RCODE
    - fr_pair_find_by_da
    - talloc_free
    - mod_autz_group_resume
    - RINDENT
    - fall_through
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void mod_authorize_resume(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1684,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1685,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1686,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1689,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1690,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1693,1
    - Dst: sql_set_user
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1700,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1702,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1702,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1702,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1710,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1711,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1712,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1712,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1713,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1715,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1719,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1723,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1729,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1735,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1743,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1682
    functionDepth: 2
    functionLinenumber: 1682
    functionLinenumberEnd: 1746
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_init
    - talloc_set_destructor
    - talloc_free
    - sql_set_user
    - talloc_get_type_abort
    - talloc
    - fr_assert
    - talloc_zero
    - unlang_module_yield
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - map_list_init
    - RWDEBUG
    - MEM
    - unlang_tmpl_push
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1754,1
    - Dst: sql_unset_user
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - sql_redundant_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1758
    functionName: sql_redundant_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - request_data_get
    - sql_unset_user
    linkageType: ''
    returnType: int
    signature: int sql_redundant_ctx_free(sql_redundant_ctx_t *to_free)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1771,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1777,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1777,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1796,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1803,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1822,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1823,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1828,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1828,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1830,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1838,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1840,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1841,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1842,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1844,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1847
    functionName: mod_sql_redundant_query_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TALLOC_FREE
    - pair_update_control
    - talloc_free
    - talloc_get_type_abort
    - rlm_sql_print_error
    - fr_table_str_by_value
    - RDEBUG2
    - unlang_module_yield
    - talloc_array_length
    - unlang_tmpl_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_sql_redundant_query_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1859,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1863,1
    - Dst: rlm_sql_query_log
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1867,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1870,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1870,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1873,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1881
    functionName: mod_sql_redundant_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_value_box_list_pop_head
    - rlm_sql_query_log
    - unlang_module_yield
    - fr_sql_query_alloc
    - unlang_function_push_with_result
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_sql_redundant_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1890,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1891,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1892,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1899,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1903,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1903,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1903,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1911,1
    - Dst: sql_set_user
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1913,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1915,1
    - Dst: unlang_module_yield_to_tmpl
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1888
    functionDepth: 2
    functionLinenumber: 1888
    functionLinenumberEnd: 1919
    functionName: mod_sql_redundant
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_init
    - talloc_set_destructor
    - RWARN
    - sql_set_user
    - talloc_get_type_abort
    - talloc_zero
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - unlang_module_yield_to_tmpl
    - MEM
    linkageType: ''
    returnType: void
    signature: void mod_sql_redundant(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1932,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1939,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1951,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1951,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1954,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1957,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1960,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1961,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1962,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1964,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1967,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1967,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1983,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1983,1
    - Dst: FR_CALL_ENV_OFFSET
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1984,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1986,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1987,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1987,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1987,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1987,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1988,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1988,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1991,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1994,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1995,1
    - Dst: call_env_parsed_set_tmpl
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:1997,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 2000
    functionName: logfile_call_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - tolower
    - tmpl_needs_resolving
    - call_env_parsed_add
    - talloc_strdup
    - call_env_parsed_free
    - MEM
    - call_env_parsed_set_tmpl
    - cf_item_to_section
    - cf_pair_value_quote
    - cf_parent
    - FR_SBUFF_IN
    - fr_assert
    - cf_pair_find
    - talloc_strlen
    - FR_CALL_ENV_OFFSET
    - tmpl_resolve
    - talloc_free
    - cf_pair_value
    - tmpl_afrom_substr
    linkageType: ''
    returnType: int
    signature: "int logfile_call_env_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out, tmpl_rules_t const *t_rules,\n\t\t\t\t  CONF_ITEM *ci,\n\t\t\t\t  call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2006,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2015,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2023,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2023,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2026,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2029,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2029,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2032,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2033,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2034,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2037,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2040,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2057,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2058,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2058,1
    - Dst: FR_CALL_ENV_PARSE_ONLY_OFFSET
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2060,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2064,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2065,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2065,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2065,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2065,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2066,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2066,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2069,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2069,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2071,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2074,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2075,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2076,1
    - Dst: call_env_parsed_set_multi_index
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2080,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2081,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2002
    functionDepth: 1
    functionLinenumber: 2002
    functionLinenumberEnd: 2085
    functionName: query_call_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - tolower
    - tmpl_needs_resolving
    - call_env_parsed_add
    - talloc_strdup
    - section_name_str
    - call_env_parsed_free
    - MEM
    - cf_item_to_section
    - FR_CALL_ENV_PARSE_ONLY_OFFSET
    - cf_pair_count
    - cf_pair_value_quote
    - FR_SBUFF_IN
    - fr_assert
    - talloc_strlen
    - tmpl_resolve
    - cf_canonicalize_error
    - cf_log_perr
    - talloc_free
    - call_env_parsed_set_multi_index
    - cf_pair_value
    - call_env_parsed_set_data
    - cf_pair_find_next
    - cf_log_warn
    - talloc_get_type_abort_const
    - tmpl_afrom_substr
    linkageType: ''
    returnType: int
    signature: "int query_call_env_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *out,
      tmpl_rules_t const *t_rules,\n\t\t\t\tCONF_ITEM *ci,\n\t\t\t\tcall_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2089,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2087
    functionDepth: 0
    functionLinenumber: 2087
    functionLinenumberEnd: 2102
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free_children
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2106,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2107,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2127,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2128,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2129,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2132,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2133,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2137,1
    - Dst: module_rlm_exfile_init
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2172,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2172,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2174,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2192,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2192,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2193,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2199,1
    - Dst: fr_pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2199,1
    - Dst: module_trigger_args_build
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2200,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2200,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2207
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - unlikely
    - module_trigger_args_build
    - cf_section_find
    - WARN
    - fr_time_delta_from_sec
    - talloc_get_type_abort
    - fr_pair_list_alloc
    - module_instantiate
    - cf_pair_find
    - MEM
    - cf_log_err
    - module_rlm_exfile_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2211,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2212,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2221,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2227,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2228,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2234,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2234,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2236,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2236,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2236,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2237,1
    - Dst: fr_dict_attr_search_by_qualified_oid
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2241,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2244,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2254,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2256,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2259,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2265,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2273,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2280,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2280,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2283,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2283,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2283,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2285,1
    - Dst: fr_dict_attr_search_by_qualified_oid
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2289,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2293,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2298,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2299,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2308,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2310,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2313,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2321,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2321,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2322,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2322,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2334,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2339,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2339,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2340,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2341,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2343,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2343,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2344,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2345,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2347,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2347,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2348,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2355,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2356,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2357,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2359,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2359,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2360,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2367,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2368,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2369,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2374,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 92
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2377
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_add_name_only
    - xlat_func_args_set
    - fr_type_to_str
    - module_rlm_xlat_register
    - MEM
    - unlikely
    - ERROR
    - talloc_get_type_abort
    - cf_section_name2
    - talloc_zero_array
    - fr_dict_attr_by_name
    - xlat_func_call_env_set
    - xlat_func_safe_for_set
    - cf_pair_find
    - fr_dict_attr_search_by_qualified_oid
    - cf_log_perr
    - fr_dict_unconst
    - snprintf
    - talloc_zero
    - xlat_func_flags_set
    - map_proc_register
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2384,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2385,1
    - Dst: rlm_sql_t*::driver::sql_escape_arg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2388,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2382
    functionDepth: 1
    functionLinenumber: 2382
    functionLinenumberEnd: 2399
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    - rlm_sql_t*::driver::sql_escape_arg_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2403,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2404,1
    - Dst: rlm_sql_t*::driver::sql_escape_arg_free
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2409
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - rlm_sql_t*::driver::sql_escape_arg_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2418,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2420,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2435,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2436,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2436,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2436,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2436,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2437,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c:2437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2441
    functionName: sql_call_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/rlm_sql.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - cf_pair_value
    - FR_SBUFF_IN
    - tmpl_afrom_substr
    - talloc_get_type_abort_const
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int sql_call_env_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t const
      *t_rules, CONF_ITEM *ci,\n\t\t\t      call_env_ctx_t const *cec, UNUSED call_env_parser_t
      const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:106,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:106,1
    - Dst: sql_state_entries_from_table
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:108,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: sql_state_trie_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql_state.c
    functionUses: 0
    functionsReached:
    - sql_state_entries_from_table
    - MEM
    - fr_trie_alloc
    - talloc_free
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *sql_state_trie_alloc(TALLOC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:129,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:132,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:133,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:135,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - states
    - table
    argTypes:
    - fr_trie_t*
    - sql_state_entry_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: sql_state_entries_from_table
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql_state.c
    functionUses: 1
    functionsReached:
    - fr_trie_insert_by_key
    - fr_cond_assert
    - strlen
    - fr_trie_remove_by_key
    - PERROR
    linkageType: ''
    returnType: int
    signature: int sql_state_entries_from_table(fr_trie_t *states, sql_state_entry_t
      const table[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:157,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:163,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:164,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:166,1
    - Dst: cf_pair_in_table
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:173,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:178,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:180,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:180,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:181,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:184,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - states
    - cs
    argTypes:
    - fr_trie_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 193
    functionName: sql_state_entries_from_cs
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql_state.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - fr_trie_match_by_key
    - fr_trie_insert_by_key
    - cf_pair_in_table
    - talloc_strdup
    - cf_item_mark_parsed
    - talloc
    - cf_pair_find_next
    - strlen
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int sql_state_entries_from_cs(fr_trie_t *states, CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:205,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/sql_state.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - states
    - sql_state
    argTypes:
    - fr_trie_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: sql_state_entry_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql_state.c
    functionUses: 0
    functionsReached:
    - fr_trie_lookup_by_key
    - strlen
    linkageType: ''
    returnType: sql_state_entry_t
    signature: sql_state_entry_t *sql_state_entry_find(fr_trie_t const *states, char
      const *sql_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:81,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:85,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:98,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:102,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:106,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 110
    functionName: rlm_sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - fr_assert
    - talloc_get_type_abort
    - rlm_sql_print_error
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t rlm_sql_fetch_row(unlang_result_t *p_result, request_t
      *request, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:127,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:129,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:132,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:141,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:145,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:149,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:155,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - inst
    - request
    - query_ctx
    - force_debug
    argTypes:
    - rlm_sql_t*
    - request_t*
    - fr_sql_query_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 161
    functionName: rlm_sql_print_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 5
    functionsReached:
    - ROPTIONAL
    - NUM_ELEMENTS
    - talloc_new
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void rlm_sql_print_error(rlm_sql_t const *inst, request_t *request,
      fr_sql_query_t *query_ctx, bool force_debug)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: fr_sql_query_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_complete
    linkageType: ''
    returnType: int
    signature: int fr_sql_query_free(fr_sql_query_t *to_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:187,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:187,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - inst
    - request
    - trunk
    - query_str
    - type
    argTypes:
    - TALLOC_CTX*
    - rlm_sql_t*
    - request_t*
    - trunk_t*
    - char*
    - fr_sql_query_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: fr_sql_query_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 6
    functionsReached:
    - talloc_set_destructor
    - MEM
    - talloc
    linkageType: ''
    returnType: fr_sql_query_t
    signature: "fr_sql_query_t *fr_sql_query_alloc(TALLOC_CTX *ctx, rlm_sql_t const
      *inst, request_t *request,\n\t\t\t\t   trunk_t *trunk, char const *query_str,
      fr_sql_query_type_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: sql_trunk_query_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t sql_trunk_query_start(UNUSED unlang_result_t *p_result,\n\t\t\t\t\t
      \    UNUSED request_t *request, UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:211,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:220,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:221,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:230,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: sql_trunk_query_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 0
    functionsReached:
    - unlikely
    - trunk_request_signal_complete
    - talloc_steal
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void sql_trunk_query_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:245,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:248,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:252,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:262,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:264,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:281,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 299
    functionName: rlm_sql_trunk_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - trunk_request_enqueue
    - talloc_get_type_abort
    - trunk_request_requeue
    - fr_assert
    - unlang_function_push_with_result
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t rlm_sql_trunk_query(unlang_result_t *p_result, request_t
      *request, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:306,1
    - Dst: rlm_sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:323,1
    - Dst: rlm_sql_t*::fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:327,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:333,1
    - Dst: map_afrom_fields
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:336,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:339,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:340,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:341,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:342,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:345,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:349,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 352
    functionName: sql_get_map_list_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 0
    functionsReached:
    - map_list_insert_tail
    - RPEDEBUG
    - talloc_free
    - REDEBUG
    - talloc_get_type_abort
    - rlm_sql_print_error
    - RPERROR
    - map_afrom_fields
    - rlm_sql_t*::fetch_row
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_get_map_list_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:361,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:362,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:364,1
    - Dst: fr_sql_query_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:364,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:367,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - p_result
    - request
    - map_ctx
    - trunk
    argTypes:
    - unlang_result_t*
    - request_t*
    - fr_sql_map_ctx_t*
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 382
    functionName: sql_get_map_list
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 2
    functionsReached:
    - unlang_function_push_with_result
    - fr_assert
    - MEM
    - fr_sql_query_alloc
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_get_map_list(unlang_result_t *p_result, request_t
      *request, fr_sql_map_ctx_t *map_ctx, trunk_t *trunk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exfile_open
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:393,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:395,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:395,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:401,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:402,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:402,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:404,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:404,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_sql/sql.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - inst
    - filename
    - query
    argTypes:
    - rlm_sql_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 407
    functionName: rlm_sql_query_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/sql.c
    functionUses: 4
    functionsReached:
    - write
    - ERROR
    - fr_syserror
    - exfile_close
    - strlen
    - exfile_open
    linkageType: ''
    returnType: void
    signature: void rlm_sql_query_log(rlm_sql_t const *inst, char const *filename,
      char const *query)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:52,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:54,1
    - Dst: SQLDisconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:57,1
    - Dst: SQLFreeHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:58,1
    - Dst: SQLFreeHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:61,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - SQLDisconnect
    - talloc_free
    - talloc_get_type_abort
    - SQLFreeHandle
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:70,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:72,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:75,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:75,1
    - Dst: SQLAllocHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:78,1
    - Dst: SQLAllocHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:79,1
    - Dst: SQLSetConnectAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:82,1
    - Dst: SQLConnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:96,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:97,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:98,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:99,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 108
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - SQLAllocHandle
    - ERROR
    - fr_time_delta_to_msec
    - SQLConnect
    - UNCONST
    - talloc_zero
    - talloc_get_type_abort_const
    - MEM
    - SQLSetConnectAttr
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:118,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:125,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:128,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:132,1
    - Dst: SQLAllocHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:135,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:138,1
    - Dst: SQLExecDirect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:140,1
    - Dst: SQLGetDiagField
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:145,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:147,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:153,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:155,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:162,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 164
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - SQLAllocHandle
    - SQLExecDirect
    - ERROR
    - memcpy
    - talloc_get_type_abort
    - trunk_request_signal_reapable
    - ROPTIONAL
    - trunk_request_signal_fail
    - trunk_connection_pop_request
    - strncmp
    - SQLGetDiagField
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:168,1
    - Dst: SQLNumResultCols
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:175,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:178,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:178,1
    - Dst: SQLColAttribute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:183,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:187,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:188,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:195,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:195,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 202
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_array
    - talloc_free
    - talloc_get_type_abort
    - SQLNumResultCols
    - SQLColAttribute
    - MEM
    - strlcpy
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:206,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:211,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:213,1
    - Dst: SQLNumResultCols
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:215,1
    - Dst: SQLFetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:218,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:223,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:223,1
    - Dst: SQLColAttribute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:226,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:228,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:228,1
    - Dst: SQLGetData
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - p_Result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 239
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - talloc_array
    - talloc_get_type_abort
    - SQLGetData
    - talloc_zero_array
    - SQLNumResultCols
    - SQLFetch
    - MEM
    - SQLColAttribute
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_Result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:243,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:245,1
    - Dst: SQLFreeHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - talloc_get_type_abort
    - SQLFreeHandle
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:268,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:270,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:271,1
    - Dst: SQLGetDiagRec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:274,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - size_t
    - query_ctx
    argTypes:
    - TALLOC_CTX*
    - sql_log_entry_t[]
    - NDEBUG_UNUSED
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 282
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - SQLGetDiagRec
    - fr_assert
    - talloc_get_type_abort
    - talloc_typed_asprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(TALLOC_CTX *ctx, sql_log_entry_t out[], NDEBUG_UNUSED
      size_t outlen,\n\t\t\tfr_sql_query_t *query_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_sql_query_t *query_ctx
    - config
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(UNUSED fr_sql_query_t *query_ctx, UNUSED
      rlm_sql_config_t const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:292,1
    - Dst: SQLRowCount
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 1
    functionsReached:
    - SQLRowCount
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:302,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - request_t*
    - void*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: sql_request_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_db2/rlm_sql_db2.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_request_fail(request_t *request, void *preq, UNUSED void
      *rctx,\n\t\t\t     UNUSED trunk_request_state_t state, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:96,1
    - Dst: OCIErrorGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - outlen
    - conn
    argTypes:
    - char*
    - size_t
    - rlm_sql_oracle_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: sql_snprint_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - OCIErrorGet
    linkageType: ''
    returnType: int
    signature: int sql_snprint_error(char *out, size_t outlen, rlm_sql_oracle_conn_t
      *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:124,1
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:126,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - out
    - size_t
    - query_ctx
    argTypes:
    - TALLOC_CTX*
    - sql_log_entry_t[]
    - NDEBUG_UNUSED
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - fr_assert
    - sql_snprint_error
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(TALLOC_CTX *ctx, sql_log_entry_t out[], NDEBUG_UNUSED
      size_t outlen,\n\t\t        fr_sql_query_t *query_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:137,1
    - Dst: OCIHandleFree
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - OCIHandleFree
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:146,1
    - Dst: OCIEnvCreate
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:151,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - OCIEnvCreate
    - ERROR
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:163,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:165,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:165,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_oracle_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: sql_check_reconnect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - sql_snprint_error
    - strstr
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_check_reconnect(rlm_sql_oracle_conn_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:175,1
    - Dst: OCISessionEnd
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:178,1
    - Dst: OCIHandleFree
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:179,1
    - Dst: OCIHandleFree
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:181,1
    - Dst: OCIServerDetach
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:183,1
    - Dst: OCIHandleFree
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:184,1
    - Dst: OCIHandleFree
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:186,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - OCIServerDetach
    - OCIHandleFree
    - OCISessionEnd
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: ORACLE_ERROR
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ORACLE_ERROR(_message)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:199,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:200,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:206,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:206,1
    - Dst: OCIHandleAlloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:224,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:225,1
    - Dst: OCIHandleAlloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:232,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:233,1
    - Dst: OCIServerAttach
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:236,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:236,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:237,1
    - Dst: OCIHandleAlloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:243,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:244,1
    - Dst: OCIAttrSet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:247,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:248,1
    - Dst: OCIHandleAlloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:252,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:253,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:260,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:261,1
    - Dst: OCIAttrSet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:262,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:262,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:264,1
    - Dst: OCIAttrSet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:266,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:266,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:268,1
    - Dst: OCISessionBegin
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:271,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:272,1
    - Dst: OCIAttrSet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:275,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:276,1
    - Dst: OCIAttrSet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:279,1
    - Dst: ORACLE_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:281,1
    - Dst: OCIAttrSet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:287,1
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:288,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:289,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 295
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - OCISessionBegin
    - ERROR
    - memcpy
    - OCIHandleAlloc
    - WARN
    - talloc_get_type_abort
    - OCIServerAttach
    - talloc_zero
    - sql_snprint_error
    - strlen
    - ORACLE_ERROR
    - talloc_get_type_abort_const
    - OCIAttrSet
    - MEM
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:302,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:309,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:312,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:317,1
    - Dst: OCIStmtPrepare2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:318,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:319,1
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:321,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:322,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:323,1
    - Dst: OCIStmtExecute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:329,1
    - Dst: OCIStmtExecute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:333,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:341,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:345,1
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:360,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:364,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:365,1
    - Dst: sql_check_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:366,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:367,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:378,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:379,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:380,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 381
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - trunk_request_signal_sent
    - connection_signal_reconnect
    - talloc_get_type_abort
    - OCIStmtPrepare2
    - sql_check_reconnect
    - trunk_request_signal_reapable
    - ROPTIONAL
    - sql_snprint_error
    - trunk_request_signal_fail
    - strlen
    - trunk_connection_pop_request
    - OCIStmtExecute
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:387,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - preq
    - reason
    - uctx
    argTypes:
    - connection_t*
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: sql_request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel(connection_t *conn, void *preq, trunk_cancel_reason_t
      reason,\n\t\t\t       UNUSED void *uctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:400,1
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:403,1
    - Dst: OCIBreak
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:414,1
    - Dst: trunk_request_signal_cancel_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:417,1
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:426,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:427,1
    - Dst: OCIReset
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:430,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 433
    functionName: sql_request_cancel_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - OCIBreak
    - ERROR
    - OCIReset
    - talloc_get_type_abort
    - trunk_connection_pop_cancellation
    - sql_snprint_error
    - trunk_request_signal_cancel_sent
    - trunk_request_signal_cancel_complete
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t   connection_t *conn, UNUSED void *uctx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:437,1
    - Dst: OCIStmtExecute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:447,1
    - Dst: OCIStmtExecute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:451,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:458,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:460,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:466,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:467,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:468,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:470,1
    - Dst: sql_snprint_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:490,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:494,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:496,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:497,1
    - Dst: OCIBreak
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:504,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:506,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:507,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:507,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:509,1
    - Dst: OCIReset
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:513,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:514,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:521,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 522
    functionName: sql_trunk_connection_read_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - OCIBreak
    - connection_signal_reconnect
    - OCIReset
    - talloc_get_type_abort
    - fr_timer_in
    - ROPTIONAL
    - fr_time_delta_from_usec
    - sql_snprint_error
    - trunk_request_signal_fail
    - fr_time_delta_to_usec
    - OCIStmtExecute
    - trunk_request_signal_cancel_complete
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_read_poll(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:526,1
    - Dst: trunk_connection_signal_writable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: sql_trunk_connection_write_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_connection_signal_writable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_write_poll(UNUSED fr_timer_list_t *tl, UNUSED
      fr_time_t now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:541,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:546,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:547,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:553,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:553,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:555,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:563,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:563,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - trunk_connection_t *tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - UNUSED
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: sql_trunk_connection_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - FR_TIMER_DISARM
    - talloc_get_type_abort
    - fr_timer_in
    - fr_time_delta_from_usec
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_connection_notify(UNUSED trunk_connection_t *tconn,
      connection_t *conn, fr_event_list_t *el,\n\t\t\t\t\ttrunk_connection_event_t
      notify_on, UNUSED void *uctx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:576,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:577,1
    - Dst: OCIAttrGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:592,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:598,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:598,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:599,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:599,1
    - Dst: OCIParamGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:602,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:603,1
    - Dst: OCIAttrGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:607,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:609,1
    - Dst: OCIAttrGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:629,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:631,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:643,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:643,1
    - Dst: OCIDefineByPos
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:657,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:659,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:671,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 675
    functionName: sql_select_query_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - OCIDefineByPos
    - talloc_get_type_abort
    - OCIParamGet
    - OCIAttrGet
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: SQL_QUERY_FAIL
    signature: SQL_QUERY_FAIL sql_select_query_resume(unlang_result_t *p_result, UNUSED
      request_t *request, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:679,1
    - Dst: OCIAttrGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:684,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:688,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:688,1
    - Dst: OCIParamGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:694,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:696,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:698,1
    - Dst: OCIAttrGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:703,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:706,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 717
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_array
    - talloc_free
    - talloc_get_type_abort
    - OCIParamGet
    - OCIAttrGet
    - MEM
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:721,1
    - Dst: OCIAttrGet
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 728
    functionName: sql_num_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 1
    functionsReached:
    - OCIAttrGet
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:732,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:734,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:737,1
    - Dst: OCIStmtFetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:746,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:761,1
    - Dst: sql_check_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 768
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - OCIStmtFetch
    - talloc_get_type_abort
    - sql_check_reconnect
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:772,1
    - Dst: OCIStmtFetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:777,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:780,1
    - Dst: OCIStmtRelease
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:785,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 791
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 0
    functionsReached:
    - ERROR
    - TALLOC_FREE
    - talloc_get_type_abort
    - OCIStmtRelease
    - OCIStmtFetch
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:795,1
    - Dst: OCIStmtRelease
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:799,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 805
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 2
    functionsReached:
    - OCIStmtRelease
    - ERROR
    - talloc_get_type_abort
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:809,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:811,1
    - Dst: OCIStmtRelease
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:816,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 822
    functionName: sql_finish_select_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_oracle/rlm_sql_oracle.c
    functionUses: 1
    functionsReached:
    - OCIStmtRelease
    - ERROR
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_select_query(fr_sql_query_t *query_ctx, UNUSED
      rlm_sql_config_t const *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SQL_SUCCEEDED
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:74,1
    - Dst: SQLGetDiagRec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:78,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:84,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:92,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:98,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:103,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - ret
    - handle_type
    - handle
    argTypes:
    - SQLRETURN
    - SQLSMALLINT
    - SQLHANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 111
    functionName: sql_check_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - strcmp
    - SQL_SUCCEEDED
    - SQLGetDiagRec
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_check_error(SQLRETURN ret, SQLSMALLINT handle_type,
      SQLHANDLE handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:115,1
    - Dst: SQLFreeHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:117,1
    - Dst: SQLDisconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:120,1
    - Dst: SQLFreeHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:121,1
    - Dst: SQLFreeHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:124,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLDisconnect
    - talloc_get_type_abort
    - SQLFreeHandle
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SQLGetInfo
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:134,1
    - Dst: SQLGetInfo
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:135,1
    - Dst: SQLGetInfo
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:136,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:139,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:142,1
    - Dst: SQLSetConnectAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:143,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:144,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:147,1
    - Dst: SQLAllocHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:152,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:153,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:154,1
    - Dst: _sql_connection_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:155,1
    - Dst: SQLSetStmtAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:159,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:160,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:163,1
    - Dst: SQLSetStmtAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - c
    argTypes:
    - rlm_sql_unixodbc_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 167
    functionName: sql_trunk_connection_init_stmt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLAllocHandle
    - ERROR
    - _sql_connection_close
    - SQLGetInfo
    - fr_time_delta_to_sec
    - sql_check_error
    - SQLSetStmtAttr
    - DEBUG2
    - SQLSetConnectAttr
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t sql_trunk_connection_init_stmt(rlm_sql_unixodbc_conn_t
      *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:171,1
    - Dst: SQLConnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:174,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:175,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:175,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:176,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:176,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:177,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:177,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:180,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:180,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:182,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:183,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:188,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:189,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:190,1
    - Dst: sql_trunk_connection_init_stmt
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:194,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 195
    functionName: sql_trunk_connection_init_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - ERROR
    - connection_signal_reconnect
    - SQLConnect
    - UNCONST
    - talloc_get_type_abort
    - sql_trunk_connection_init_stmt
    - fr_timer_in
    - fr_time_delta_from_usec
    - sql_check_error
    - strlen
    - connection_signal_connected
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_init_poll(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:200,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:204,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:206,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:206,1
    - Dst: SQLAllocHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:215,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:217,1
    - Dst: _sql_connection_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:219,1
    - Dst: SQLSetEnvAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:223,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:224,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:225,1
    - Dst: SQLAllocHandle
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:230,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:231,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:232,1
    - Dst: SQLSetConnectAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:243,1
    - Dst: SQLSetConnectAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:244,1
    - Dst: SQLSetConnectAttr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:247,1
    - Dst: SQLConnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:250,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:251,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:251,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:252,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:252,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:253,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:253,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:256,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:256,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:258,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:265,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:266,1
    - Dst: sql_trunk_connection_init_stmt
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:271,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 272
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLAllocHandle
    - SQLSetEnvAttr
    - ERROR
    - _sql_connection_close
    - SQLConnect
    - UNCONST
    - sql_trunk_connection_init_stmt
    - fr_time_delta_to_sec
    - fr_timer_in
    - fr_time_delta_from_usec
    - talloc_zero
    - sql_check_error
    - strlen
    - talloc_get_type_abort_const
    - MEM
    - SQLSetConnectAttr
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:279,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:285,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:288,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:293,1
    - Dst: SQLExecDirect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:294,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:294,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:294,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:298,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:302,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:306,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:314,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:315,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:325,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:326,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 328
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLExecDirect
    - trunk_request_signal_sent
    - connection_signal_reconnect
    - UNCONST
    - talloc_get_type_abort
    - trunk_request_signal_reapable
    - ROPTIONAL
    - trunk_request_signal_fail
    - sql_check_error
    - strlen
    - trunk_connection_pop_request
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:334,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - preq
    - reason
    - uctx
    argTypes:
    - connection_t*
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: sql_request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel(connection_t *conn, void *preq, trunk_cancel_reason_t
      reason,\n\t\t\t\tUNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:347,1
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:351,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:354,1
    - Dst: SQLCancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:355,1
    - Dst: trunk_request_signal_cancel_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:358,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 362
    functionName: sql_request_cancel_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_connection_pop_cancellation
    - trunk_request_signal_cancel_sent
    - trunk_request_signal_cancel_complete
    - SQLCancel
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t   connection_t *conn, UNUSED void *uctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:366,1
    - Dst: SQLExecDirect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:374,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:374,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:374,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:379,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:381,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:385,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:386,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:387,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:389,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:394,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:410,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:411,1
    - Dst: SQLCancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:417,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:419,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:420,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:420,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:422,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:426,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:433,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 434
    functionName: sql_trunk_connection_read_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLExecDirect
    - ERROR
    - connection_signal_reconnect
    - UNCONST
    - talloc_get_type_abort
    - fr_timer_in
    - ROPTIONAL
    - fr_time_delta_from_usec
    - sql_check_error
    - strlen
    - trunk_request_signal_fail
    - fr_time_delta_to_usec
    - trunk_request_signal_cancel_complete
    - SQLCancel
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_read_poll(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:438,1
    - Dst: trunk_connection_signal_writable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 441
    functionName: sql_trunk_connection_write_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_connection_signal_writable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_write_poll(UNUSED fr_timer_list_t *tl, UNUSED
      fr_time_t now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:453,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:458,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:459,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:465,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:465,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:467,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:475,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:475,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - trunk_connection_t *tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - UNUSED
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 481
    functionName: sql_trunk_connection_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - ERROR
    - FR_TIMER_DISARM
    - talloc_get_type_abort
    - fr_timer_in
    - fr_time_delta_from_usec
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_connection_notify(UNUSED trunk_connection_t *tconn,
      connection_t *conn, fr_event_list_t *el,\n\t\t\t\t\ttrunk_connection_event_t
      notify_on, UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:488,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:489,1
    - Dst: SQLNumResultCols
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:497,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:499,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:505,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:506,1
    - Dst: SQLColAttribute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:511,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:512,1
    - Dst: SQLBindCol
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 517
    functionName: sql_select_query_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLBindCol
    - talloc_array
    - talloc_get_type_abort
    - sql_check_error
    - talloc_zero_array
    - SQLNumResultCols
    - SQLColAttribute
    linkageType: ''
    returnType: SQL_QUERY_FAIL
    signature: SQL_QUERY_FAIL sql_select_query_resume(unlang_result_t *p_result, UNUSED
      request_t *request, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:521,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:529,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:529,1
    - Dst: SQLColAttribute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:535,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:541,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:542,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:543,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:550,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:550,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 557
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_array
    - talloc_free
    - talloc_get_type_abort
    - sql_check_error
    - SQLColAttribute
    - MEM
    - strlcpy
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:561,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:562,1
    - Dst: SQLFetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:569,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 590
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLFetch
    - sql_check_error
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:596,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:618,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:620,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:621,1
    - Dst: SQLFreeStmt
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 640
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 2
    functionsReached:
    - SQLFreeStmt
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:662,1
    - Dst: SQLGetDiagRec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:669,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:672,1
    - Dst: SQLGetDiagRec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:677,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:680,1
    - Dst: SQLGetDiagRec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:685,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:688,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - out
    - size_t
    - query_ctx
    argTypes:
    - TALLOC_CTX*
    - sql_log_entry_t[]
    - NDEBUG_UNUSED
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 693
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 0
    functionsReached:
    - SQLGetDiagRec
    - fr_assert
    - talloc_typed_asprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(TALLOC_CTX *ctx, sql_log_entry_t out[], NDEBUG_UNUSED
      size_t outlen,\n\t\t\tfr_sql_query_t *query_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SQLRowCount
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:709,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/rlm_sql_unixodbc.c
    functionUses: 1
    functionsReached:
    - SQLRowCount
    - sql_check_error
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:142,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:146,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:148,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:154,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:159,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 169
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_get_type_abort
    - WARN
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mysql_library_end
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - mysql_library_end
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mysql_library_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:179,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:180,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:185,1
    - Dst: mysql_get_client_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - mysql_get_client_info
    - mysql_library_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:194,1
    - Dst: mysql_real_connect_cont
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:198,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:205,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:216,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:219,1
    - Dst: mysql_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:219,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:220,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:224,1
    - Dst: mysql_get_host_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:225,1
    - Dst: mysql_get_server_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:226,1
    - Dst: mysql_get_proto_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:226,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 229
    functionName: _sql_connect_io_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - connection_signal_reconnect
    - fr_event_fd_insert
    - mysql_real_connect_cont
    - talloc_get_type_abort
    - mysql_get_server_info
    - connection_signal_connected
    - fr_event_fd_delete
    - DEBUG2
    - mysql_error
    - mysql_get_proto_info
    - mysql_get_host_info
    linkageType: ''
    returnType: void
    signature: void _sql_connect_io_notify(fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:234,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:235,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:240,1
    - Dst: mysql_real_query
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:242,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:242,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:245,1
    - Dst: mysql_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:246,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:247,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:248,1
    - Dst: mysql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:255,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:256,1
    - Dst: mysql_next_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:257,1
    - Dst: mysql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:258,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: _sql_connect_query_run
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - mysql_info
    - connection_signal_reconnect
    - mysql_store_result
    - mysql_free_result
    - talloc_get_type_abort
    - strlen
    - mysql_real_query
    - talloc_get_type_abort_const
    - mysql_next_result
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: "void _sql_connect_query_run(connection_t *conn, UNUSED connection_state_t
      prev,\n\t\t\t\t   UNUSED connection_state_t state, void *uctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:266,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:267,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:277,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:277,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:281,1
    - Dst: mysql_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:283,1
    - Dst: mysql_ssl_set
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:293,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:322,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:324,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:325,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:327,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:329,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:340,1
    - Dst: mysql_options
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:350,1
    - Dst: mysql_real_connect_start
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:352,1
    - Dst: mysql_get_socket
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:359,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:361,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:363,1
    - Dst: mysql_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:363,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:365,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:370,1
    - Dst: mysql_get_host_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:371,1
    - Dst: mysql_get_server_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:372,1
    - Dst: mysql_get_proto_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:372,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:376,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:380,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:386,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 390
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - mysql_options
    - mysql_get_socket
    - MEM
    - ERROR
    - talloc_get_type_abort
    - mysql_init
    - DEBUG2
    - mysql_error
    - DEBUG
    - connection_add_watch_post
    - mysql_real_connect_start
    - talloc_free
    - fr_event_fd_insert
    - mysql_get_server_info
    - mysql_ssl_set
    - talloc_zero
    - talloc_get_type_abort_const
    - mysql_get_proto_info
    - mysql_get_host_info
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:394,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:397,1
    - Dst: mysql_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:400,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - el
    - h
    - uctx
    argTypes:
    - fr_event_list_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 403
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 2
    functionsReached:
    - talloc_free
    - fr_event_fd_delete
    - talloc_get_type_abort
    - mysql_close
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(fr_event_list_t *el, void *h, UNUSED void
      *uctx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mysql_errno
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - server
    - client_errno
    argTypes:
    - MYSQL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 480
    functionName: sql_check_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 9
    functionsReached:
    - mysql_errno
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_check_error(MYSQL *server, int client_errno)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mysql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:488,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:490,1
    - Dst: mysql_next_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:492,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:496,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - conn
    - config
    argTypes:
    - rlm_sql_mysql_conn_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 500
    functionName: sql_store_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 2
    functionsReached:
    - mysql_next_result
    - sql_check_error
    - mysql_store_result
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_store_result(rlm_sql_mysql_conn_t *conn, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:504,1
    - Dst: mysql_num_rows
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 509
    functionName: sql_num_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 2
    functionsReached:
    - mysql_num_rows
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:513,1
    - Dst: mysql_field_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:524,1
    - Dst: mysql_fetch_fields
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:531,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:534,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 540
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - talloc_get_type_abort
    - mysql_fetch_fields
    - MEM
    - mysql_field_count
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:544,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:545,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:556,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:564,1
    - Dst: mysql_fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:567,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:569,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:572,1
    - Dst: mysql_next_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:575,1
    - Dst: sql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:578,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:582,1
    - Dst: mysql_field_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:592,1
    - Dst: mysql_fetch_lengths
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:598,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:600,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:600,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:603,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:603,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 608
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 1
    functionsReached:
    - TALLOC_FREE
    - talloc_bstrndup
    - mysql_free_result
    - mysql_fetch_lengths
    - talloc_get_type_abort
    - sql_check_error
    - talloc_zero_array
    - mysql_fetch_row
    - sql_store_result
    - mysql_next_result
    - MEM
    - mysql_field_count
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:612,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:615,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 621
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 3
    functionsReached:
    - mysql_free_result
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mysql_query
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:654,1
    - Dst: mysql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:655,1
    - Dst: mysql_field_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:661,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:663,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:664,1
    - Dst: mysql_fetch_row
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:669,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:677,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:678,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:681,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - outlen
    - conn
    argTypes:
    - TALLOC_CTX*
    - sql_log_entry_t[]
    - size_t
    - rlm_sql_mysql_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 690
    functionName: sql_warnings
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - WARN
    - mysql_store_result
    - mysql_free_result
    - strcasecmp
    - mysql_query
    - mysql_fetch_row
    - mysql_field_count
    - talloc_typed_asprintf
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sql_warnings(TALLOC_CTX *ctx, sql_log_entry_t out[], size_t
      outlen,\n\t\t\t   rlm_sql_mysql_conn_t *conn)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:705,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:712,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:715,1
    - Dst: mysql_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:717,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:723,1
    - Dst: mysql_errno
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:723,1
    - Dst: mysql_sqlstate
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:724,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:733,1
    - Dst: mysql_warning_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:742,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:744,1
    - Dst: sql_warnings
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:750,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:758,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - ctx
    - out
    - outlen
    - query_ctx
    argTypes:
    - TALLOC_CTX*
    - sql_log_entry_t[]
    - size_t
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 769
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 3
    functionsReached:
    - sql_warnings
    - mysql_warning_count
    - talloc_get_type_abort
    - fr_assert
    - mysql_errno
    - mysql_sqlstate
    - sql_check_error
    - talloc_get_type_abort_const
    - mysql_error
    - DEBUG3
    - talloc_typed_asprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(TALLOC_CTX *ctx, sql_log_entry_t out[], size_t outlen,\n\t\t\tfr_sql_query_t
      *query_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:795,1
    - Dst: sql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:801,1
    - Dst: mysql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:815,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:816,1
    - Dst: sql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:822,1
    - Dst: mysql_next_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:835,1
    - Dst: mysql_store_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:836,1
    - Dst: mysql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:837,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:839,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - rlm_sql_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 842
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 2
    functionsReached:
    - mysql_store_result
    - sql_free_result
    - mysql_free_result
    - talloc_get_type_abort
    - sql_check_error
    - mysql_next_result
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t
      const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:846,1
    - Dst: mysql_affected_rows
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 849
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 2
    functionsReached:
    - mysql_affected_rows
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:853,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:861,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:865,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:869,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:873,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:873,1
    - Dst: mysql_real_escape_string
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:874,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:876,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:876,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - request
    - vb
    - arg
    argTypes:
    - request_t*
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 880
    functionName: sql_escape_func
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 1
    functionsReached:
    - talloc_array
    - talloc_realloc
    - talloc_get_type_abort
    - ROPTIONAL
    - mysql_real_escape_string
    - fr_value_box_strdup_shallow_replace
    - MEM
    linkageType: ''
    returnType: int
    signature: int sql_escape_func(request_t *request, fr_value_box_t *vb, void *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:896,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:904,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:907,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:918,1
    - Dst: mysql_real_query_start
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:919,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:919,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:923,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:926,1
    - Dst: mysql_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:935,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:936,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:937,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:945,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:946,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:957,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:958,1
    - Dst: mysql_store_result_start
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:959,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:962,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:965,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:984,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:985,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:986,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 987
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - mysql_info
    - trunk_request_signal_sent
    - talloc_get_type_abort
    - trunk_request_signal_reapable
    - ROPTIONAL
    - trunk_request_signal_fail
    - sql_check_error
    - strlen
    - fr_assert
    - mysql_store_result_start
    - trunk_connection_pop_request
    - mysql_real_query_start
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:993,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1010,1
    - Dst: mysql_real_query_cont
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1014,1
    - Dst: mysql_store_result_cont
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1018,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1046,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1050,1
    - Dst: mysql_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1053,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1054,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1055,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - trunk_connection_t *tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1060
    functionName: sql_trunk_request_demux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - unlikely
    - mysql_store_result_cont
    - mysql_real_query_cont
    - mysql_info
    - talloc_get_type_abort
    - ROPTIONAL
    - fr_assert
    - sql_check_error
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_demux(UNUSED fr_event_list_t *el, UNUSED trunk_connection_t
      *tconn,\n\t\t\t\t    connection_t *conn, UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1066,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - preq
    - reason
    - uctx
    argTypes:
    - connection_t*
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1072
    functionName: sql_request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel(connection_t *conn, void *preq, trunk_cancel_reason_t
      reason,\n\t\t\t       UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1084,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1085,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1088
    functionName: sql_request_cancel_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - trunk_connection_pop_cancellation
    - trunk_request_signal_cancel_complete
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t   connection_t *conn, UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1095,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1100,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1111
    functionName: sql_select_query_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 0
    functionsReached:
    - unlang_function_repeat_set
    - talloc_get_type_abort
    - trunk_request_requeue
    linkageType: ''
    returnType: SQL_QUERY_FAIL
    signature: SQL_QUERY_FAIL sql_select_query_resume(unlang_result_t *p_result, UNUSED
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1121,1
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1125,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1134,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - el
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1140
    functionName: sql_escape_arg_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 1
    functionsReached:
    - connection_alloc
    - PERROR
    - talloc_get_type_abort
    - connection_signal_init
    linkageType: ''
    returnType: void
    signature: void *sql_escape_arg_alloc(TALLOC_CTX *ctx, fr_event_list_t *el, void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1144,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: sql_escape_arg_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_mysql/rlm_sql_mysql.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    - connection_signal_halt
    linkageType: ''
    returnType: void
    signature: void sql_escape_arg_free(void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: IS_ISC_ERROR
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ISC_ERROR(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:34,1
    - Dst: memmove
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - dpb
    - name
    - value
    argTypes:
    - char**
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: fb_dpb_add_str
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - memmove
    - strlen
    linkageType: ''
    returnType: void
    signature: void fb_dpb_add_str(char **dpb, char name, char const *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:49,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:49,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:51,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:51,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:55,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - sqlda
    argTypes:
    - XSQLDA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: fb_set_sqlda
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - MEM
    - talloc
    - talloc_array
    linkageType: ''
    returnType: void
    signature: void fb_set_sqlda(XSQLDA *sqlda)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:73,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:78,1
    - Dst: isc_sqlcode
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:79,1
    - Dst: isc_interprete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:97,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:98,1
    - Dst: isc_interprete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:100,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:101,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 108
    functionName: fb_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf_append
    - isc_interprete
    - TALLOC_FREE
    - isc_sqlcode
    - IS_ISC_ERROR
    - memset
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int fb_error(rlm_sql_firebird_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:115,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sqlda
    argTypes:
    - XSQLDA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: fb_free_sqlda
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fb_free_sqlda(XSQLDA *sqlda)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: IS_NULL
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NULL(x)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:141,1
    - Dst: IS_NULL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:144,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:153,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:158,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:162,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:197,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:202,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:207,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:211,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:213,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:220,1
    - Dst: isc_decode_timestamp
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:224,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:225,1
    - Dst: isc_decode_sql_date
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:236,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:237,1
    - Dst: isc_decode_sql_time
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:244,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:245,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:256,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 269
    functionName: fb_store_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_decode_sql_time
    - talloc_bstrndup
    - isc_decode_timestamp
    - isc_decode_sql_date
    - IS_NULL
    - talloc_zero_array
    - talloc_typed_asprintf
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t fb_store_row(rlm_sql_firebird_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:278,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:280,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:282,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:282,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:298,1
    - Dst: fb_dpb_add_str
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:303,1
    - Dst: fb_dpb_add_str
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:304,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:313,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:320,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:322,1
    - Dst: isc_attach_database
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:323,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:325,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - conn
    - config
    argTypes:
    - rlm_sql_firebird_conn_t*
    - rlm_sql_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 328
    functionName: fb_connect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - fb_dpb_add_str
    - isc_attach_database
    - talloc_array
    - talloc_free
    - strchr
    - fr_time_delta_to_sec
    - strlen
    - fb_error
    - talloc_asprintf
    - DEBUG2
    - MEM
    linkageType: ''
    returnType: int
    signature: int fb_connect(rlm_sql_firebird_conn_t *conn, rlm_sql_config_t const
      *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isc_dsql_fetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:336,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 347
    functionName: fb_fetch
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_dsql_fetch
    - fb_error
    linkageType: ''
    returnType: int
    signature: int fb_fetch(rlm_sql_firebird_conn_t *conn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isc_start_transaction
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:356,1
    - Dst: isc_dsql_allocate_statement
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:362,1
    - Dst: isc_dsql_prepare
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:367,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:369,1
    - Dst: _talloc_realloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:372,1
    - Dst: XSQLDA_LENGTH
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:373,1
    - Dst: isc_dsql_describe
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:375,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:378,1
    - Dst: isc_dsql_sql_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:383,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:385,1
    - Dst: isc_vax_integer
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:387,1
    - Dst: isc_vax_integer
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:388,1
    - Dst: fb_set_sqlda
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:390,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - conn
    - query
    argTypes:
    - rlm_sql_firebird_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 393
    functionName: fb_prepare
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_vax_integer
    - isc_dsql_describe
    - isc_dsql_allocate_statement
    - _talloc_realloc_array
    - XSQLDA_LENGTH
    - isc_dsql_sql_info
    - IS_ISC_ERROR
    - isc_start_transaction
    - fb_set_sqlda
    - isc_dsql_prepare
    linkageType: ''
    returnType: int
    signature: int fb_prepare(rlm_sql_firebird_conn_t *conn, char const *query)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fb_prepare
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:397,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:397,1
    - Dst: isc_dsql_execute2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:401,1
    - Dst: isc_dsql_execute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:406,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - query
    argTypes:
    - rlm_sql_firebird_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 411
    functionName: fb_sql_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_dsql_execute2
    - isc_dsql_execute
    - fb_error
    - fb_prepare
    linkageType: ''
    returnType: int
    signature: int fb_sql_query(rlm_sql_firebird_conn_t *conn, char const *query)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isc_dsql_sql_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:421,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:425,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:425,1
    - Dst: isc_vax_integer
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:430,1
    - Dst: isc_vax_integer
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 438
    functionName: fb_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_vax_integer
    - isc_dsql_sql_info
    - fb_error
    - IS_ISC_ERROR
    linkageType: ''
    returnType: int
    signature: int fb_affected_rows(rlm_sql_firebird_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isc_dsql_free_statement
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: fb_free_statement
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_dsql_free_statement
    linkageType: ''
    returnType: void
    signature: void fb_free_statement(rlm_sql_firebird_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isc_rollback_transaction
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:450,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:451,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: fb_rollback
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - isc_rollback_transaction
    - fb_error
    - IS_ISC_ERROR
    linkageType: ''
    returnType: int
    signature: int fb_rollback(rlm_sql_firebird_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isc_commit_transaction
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:459,1
    - Dst: IS_ISC_ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:460,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:461,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:462,1
    - Dst: fb_rollback
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_firebird_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 467
    functionName: fb_commit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/sql_fbapi.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fb_rollback
    - isc_commit_transaction
    - fb_error
    - IS_ISC_ERROR
    linkageType: ''
    returnType: int
    signature: int fb_commit(rlm_sql_firebird_conn_t *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:38,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:41,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:41,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:48,1
    - Dst: _talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:48,1
    - Dst: XSQLDA_LENGTH
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:48,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:57,1
    - Dst: fb_connect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:59,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fb_connect
    - _talloc_array
    - talloc_zero
    - XSQLDA_LENGTH
    - talloc_get_type_abort_const
    - MEM
    - NUM_ELEMENTS
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:70,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:72,1
    - Dst: fb_commit
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:74,1
    - Dst: fb_free_statement
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:76,1
    - Dst: isc_detach_database
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:77,1
    - Dst: fb_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:79,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:79,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 2
    functionsReached:
    - fb_commit
    - WARN
    - isc_detach_database
    - talloc_get_type_abort
    - fb_error
    - talloc_free_children
    - DEBUG2
    - fb_free_statement
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:91,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:97,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:100,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:104,1
    - Dst: fb_sql_query
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:111,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:114,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:130,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:134,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:139,1
    - Dst: fb_rollback
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:144,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:146,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:158,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:159,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 160
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 0
    functionsReached:
    - fb_sql_query
    - fb_rollback
    - connection_signal_reconnect
    - talloc_get_type_abort
    - trunk_request_signal_reapable
    - ROPTIONAL
    - trunk_request_signal_fail
    - trunk_connection_pop_request
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:166,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:167,1
    - Dst: fb_commit
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: sql_request_complete
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 0
    functionsReached:
    - fb_commit
    - talloc_get_type_abort
    linkageType: ''
    returnType: SQL_QUERY_RESUME
    signature: SQL_QUERY_RESUME sql_request_complete(UNUSED request_t *request, void
      *preq, UNUSED void *rctx, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: sql_request_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void sql_request_fail(UNUSED request_t *request, void *preq, UNUSED
      void *rctx,\n\t\t\t     UNUSED trunk_request_state_t state, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:186,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:194,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 0
    functionsReached:
    - MEM
    - talloc_get_type_abort
    - talloc_array
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:207,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:208,1
    - Dst: fb_fetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:214,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:221,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:230,1
    - Dst: fb_store_row
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 235
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 2
    functionsReached:
    - ERROR
    - TALLOC_FREE
    - fb_fetch
    - talloc_get_type_abort
    - fb_store_row
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:242,1
    - Dst: fb_free_statement
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:244,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:245,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 2
    functionsReached:
    - talloc_free_children
    - TALLOC_FREE
    - talloc_get_type_abort
    - fb_free_statement
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:257,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 5
    functionsReached:
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:276,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:278,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - size_t
    - query_ctx
    argTypes:
    - UNUSED
    - sql_log_entry_t[]
    - NDEBUG_UNUSED
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(UNUSED TALLOC_CTX *ctx, sql_log_entry_t out[], NDEBUG_UNUSED
      size_t outlen,\n\t\t\tfr_sql_query_t *query_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:294,1
    - Dst: fb_affected_rows
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_firebird/rlm_sql_firebird.c
    functionUses: 2
    functionsReached:
    - fb_affected_rows
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:255,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:258,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:264,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:267,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:275,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:278,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:286,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - message
    - data
    argTypes:
    - CassLogMessage*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 293
    functionName: _rlm_sql_cassandra_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - WARN
    - DEBUG2
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void _rlm_sql_cassandra_log(CassLogMessage const *message, UNUSED void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:304,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - cass_query_ctx
    - message
    - len
    argTypes:
    - TALLOC_CTX*
    - cassandra_query_ctx_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: sql_set_query_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - fr_asprint
    linkageType: ''
    returnType: void
    signature: void sql_set_query_error(TALLOC_CTX *ctx, cassandra_query_ctx_t *cass_query_ctx,
      char const *message, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:323,1
    - Dst: va_start
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:324,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:325,1
    - Dst: va_end
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - cass_query_ctx
    - fmt
    argTypes:
    - TALLOC_CTX*
    - cassandra_query_ctx_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: sql_set_query_error_printf
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - va_end
    - va_start
    - talloc_vasprintf
    linkageType: ''
    returnType: void
    signature: void sql_set_query_error_printf(TALLOC_CTX *ctx, cassandra_query_ctx_t
      *cass_query_ctx, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:332,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:334,1
    - Dst: cass_iterator_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:336,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 2
    functionsReached:
    - DEBUG2
    - talloc_get_type_abort
    - cass_iterator_free
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:343,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:345,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:348,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:348,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:353,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:368,1
    - Dst: cass_cluster_set_connect_timeout
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:374,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:374,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:376,1
    - Dst: cass_session_connect_keyspace
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:377,1
    - Dst: cass_future_error_code
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:378,1
    - Dst: cass_future_error_message
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:383,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:384,1
    - Dst: cass_future_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:385,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:386,1
    - Dst: cass_future_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:390,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:393,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 399
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - DEBUG2
    - ERROR
    - fr_time_delta_to_msec
    - pthread_mutex_lock
    - cass_future_error_message
    - fr_dlist_init
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - cass_future_error_code
    - talloc_zero
    - cass_session_connect_keyspace
    - talloc_get_type_abort_const
    - cass_cluster_set_connect_timeout
    - talloc_pool
    - MEM
    - cass_future_free
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:407,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:416,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:419,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:424,1
    - Dst: cass_statement_new_n
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:425,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:425,1
    - Dst: cass_statement_set_consistency
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:426,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:431,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:431,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:432,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:432,1
    - Dst: cass_session_execute
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:439,1
    - Dst: cass_statement_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:441,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:446,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 456
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_sent
    - cass_statement_new_n
    - cass_statement_free
    - cass_statement_set_consistency
    - talloc_get_type_abort
    - ROPTIONAL
    - talloc_zero
    - cass_session_execute
    - talloc_strlen
    - trunk_connection_pop_request
    - fr_dlist_insert_tail
    - MEM
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:460,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:468,1
    - Dst: cass_future_ready
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:473,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:476,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:481,1
    - Dst: cass_future_error_code
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:483,1
    - Dst: cass_future_error_message
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:488,1
    - Dst: sql_set_query_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:489,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:500,1
    - Dst: cass_future_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:501,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:502,1
    - Dst: cass_future_get_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:507,1
    - Dst: cass_future_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:508,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:509,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:510,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:512,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:523,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:538,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:539,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:539,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:541,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 544
    functionName: sql_trunk_connection_read_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - ERROR
    - talloc_free
    - fr_dlist_next
    - cass_future_error_message
    - fr_dlist_num_elements
    - cass_future_ready
    - talloc_get_type_abort
    - fr_dlist_remove
    - cass_future_error_code
    - trunk_request_signal_fail
    - cass_future_get_result
    - fr_timer_in
    - unlang_interpret_mark_runnable
    - sql_set_query_error
    - fr_time_delta_to_usec
    - fr_time_delta_from_usec
    - cass_future_free
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_read_poll(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:548,1
    - Dst: trunk_connection_signal_writable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: sql_trunk_connection_write_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_connection_signal_writable
    linkageType: ''
    returnType: void
    signature: void sql_trunk_connection_write_poll(UNUSED fr_timer_list_t *tl, UNUSED
      fr_time_t now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:564,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:568,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:569,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:574,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:575,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:575,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:577,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:585,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:585,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - trunk_connection_t *tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - UNUSED
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 591
    functionName: sql_trunk_connection_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - ERROR
    - FR_TIMER_DISARM
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_timer_in
    - fr_time_delta_from_usec
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_connection_notify(UNUSED trunk_connection_t *tconn,
      connection_t *conn, fr_event_list_t *el,\n\t\t\t\t\ttrunk_connection_event_t
      notify_on, UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:600,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:601,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:612,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:614,1
    - Dst: cass_future_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - conn
    - preq
    - reason
    - uctx
    argTypes:
    - connection_t*
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 619
    functionName: sql_request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - talloc_get_type_abort
    - cass_future_free
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel(connection_t *conn, void *preq, trunk_cancel_reason_t
      reason,\n\t\t\t       UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cass_result_row_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: sql_num_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 2
    functionsReached:
    - cass_result_row_count
    linkageType: ''
    returnType: int
    signature: int sql_num_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cass_result_column_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:636,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:639,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:639,1
    - Dst: cass_result_column_name
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 655
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - cass_result_column_count
    - cass_result_column_name
    - MEM
    - talloc_array
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:659,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:660,1
    - Dst: cass_iterator_from_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:688,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:694,1
    - Dst: cass_iterator_next
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:696,1
    - Dst: cass_iterator_get_row
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:701,1
    - Dst: cass_result_column_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:702,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:704,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:704,1
    - Dst: cass_row_get_column
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:710,1
    - Dst: cass_value_is_null
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:712,1
    - Dst: cass_value_type
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:714,1
    - Dst: cass_value_get_string
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:723,1
    - Dst: RLM_CASS_ERR_DATA_RETRIVE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:723,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:725,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:725,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:726,1
    - Dst: cass_value_get_bool
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:735,1
    - Dst: RLM_CASS_ERR_DATA_RETRIVE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:735,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:737,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:737,1
    - Dst: cass_value_get_int32
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:746,1
    - Dst: RLM_CASS_ERR_DATA_RETRIVE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:746,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:748,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:748,1
    - Dst: cass_value_get_int64
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:757,1
    - Dst: RLM_CASS_ERR_DATA_RETRIVE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:757,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:759,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:759,1
    - Dst: cass_value_get_uuid
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:768,1
    - Dst: RLM_CASS_ERR_DATA_RETRIVE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:768,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:769,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:769,1
    - Dst: cass_uuid_string
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:770,1
    - Dst: cass_result_column_name
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:779,1
    - Dst: sql_set_query_error_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:782,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:785,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 793
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 2
    functionsReached:
    - cass_result_column_count
    - cass_value_get_int32
    - memcpy
    - talloc_array
    - cass_value_get_string
    - RLM_CASS_ERR_DATA_RETRIVE
    - cass_value_get_uuid
    - MEM
    - talloc_get_type_abort
    - talloc_zero_array
    - cass_value_get_bool
    - cass_result_column_name
    - cass_value_get_int64
    - cass_iterator_next
    - cass_iterator_from_result
    - cass_value_type
    - sql_set_query_error_printf
    - talloc_typed_asprintf
    - TALLOC_FREE
    - talloc_free
    - cass_uuid_string
    - cass_iterator_get_row
    - cass_row_get_column
    - cass_value_is_null
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 681
    functionName: RLM_CASS_ERR_DATA_RETRIVE
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLM_CASS_ERR_DATA_RETRIVE(_t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:797,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:799,1
    - Dst: cass_iterator_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:802,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:807,1
    - Dst: cass_result_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 813
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 5
    functionsReached:
    - cass_result_free
    - TALLOC_FREE
    - talloc_get_type_abort
    - cass_iterator_free
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - outlen
    - query_ctx
    argTypes:
    - UNUSED
    - sql_log_entry_t[]
    - size_t
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 828
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 3
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(UNUSED TALLOC_CTX *ctx, sql_log_entry_t out[], size_t
      outlen,\n\t\t\tfr_sql_query_t *query_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:832,1
    - Dst: cass_result_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:834,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:835,1
    - Dst: sql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - rlm_sql_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 2
    functionsReached:
    - talloc_const_free
    - talloc_get_type_abort
    - cass_result_free
    - sql_free_result
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t
      const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_sql_query_t *query_ctx
    - config
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:854,1
    - Dst: cass_ssl_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:856,1
    - Dst: cass_session_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:857,1
    - Dst: cass_cluster_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:858,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:860,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 864
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - cass_ssl_free
    - cass_session_free
    - cass_cluster_free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:868,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:870,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:885,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:885,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:886,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:887,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:887,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:888,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:896,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:897,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:899,1
    - Dst: cass_cluster_new
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:900,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:906,1
    - Dst: cass_cluster_set_contact_points
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:906,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:907,1
    - Dst: cass_cluster_set_port
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:907,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:909,1
    - Dst: cass_cluster_set_request_timeout
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:910,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:910,1
    - Dst: cass_cluster_set_credentials
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:914,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:923,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:925,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:932,1
    - Dst: cass_cluster_set_protocol_version
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:933,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:937,1
    - Dst: cass_cluster_set_core_connections_per_host
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:938,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:943,1
    - Dst: cass_cluster_set_num_threads_io
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:944,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:948,1
    - Dst: cass_cluster_set_num_threads_io
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:949,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:953,1
    - Dst: cass_cluster_set_num_threads_io
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:953,1
    - Dst: cass_cluster_set_load_balance_round_robin
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:956,1
    - Dst: cass_cluster_set_token_aware_routing
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:958,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:961,1
    - Dst: cass_cluster_set_load_balance_dc_aware
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:962,1
    - Dst: cass_cluster_set_latency_aware_routing
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:970,1
    - Dst: cass_cluster_set_latency_aware_routing_settings
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:973,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:975,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:976,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:977,1
    - Dst: cass_cluster_set_tcp_keepalive
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:981,1
    - Dst: cass_cluster_set_tcp_nodelay
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:982,1
    - Dst: cass_ssl_new
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:987,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:993,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:995,1
    - Dst: cass_ssl_set_verify_flags
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:999,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1002,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1005,1
    - Dst: cass_ssl_add_trusted_cert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1005,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1009,1
    - Dst: cass_ssl_set_cert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1009,1
    - Dst: DO_CASS_OPTION
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1013,1
    - Dst: cass_ssl_set_private_key
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1013,1
    - Dst: cass_cluster_set_ssl
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1017,1
    - Dst: cass_session_new
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1020,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 1024
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - cass_cluster_new
    - cf_section_find
    - cass_cluster_set_protocol_version
    - cass_cluster_set_port
    - cass_cluster_set_load_balance_dc_aware
    - cass_cluster_set_credentials
    - MEM
    - pthread_mutex_init
    - ERROR
    - cass_ssl_set_verify_flags
    - cass_ssl_set_cert
    - talloc_get_type_abort
    - fr_time_delta_ispos
    - fr_table_value_by_str
    - cass_cluster_set_tcp_nodelay
    - cass_cluster_set_tcp_keepalive
    - DEBUG2
    - DO_CASS_OPTION
    - cass_cluster_set_core_connections_per_host
    - fr_time_delta_to_msec
    - fr_syserror
    - cass_cluster_set_latency_aware_routing
    - cass_cluster_set_contact_points
    - cass_cluster_set_token_aware_routing
    - cass_cluster_set_request_timeout
    - cass_ssl_add_trusted_cert
    - cass_ssl_set_private_key
    - cass_ssl_new
    - cass_session_new
    - cass_cluster_set_latency_aware_routing_settings
    - cass_cluster_set_num_threads_io
    - TALLOC_FREE
    - cass_cluster_set_ssl
    - cass_cluster_set_load_balance_round_robin
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _opt
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 884
    functionName: DO_CASS_OPTION
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_CASS_OPTION(_opt, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1028,1
    - Dst: cass_log_set_level
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1034,1
    - Dst: cass_log_set_callback
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1038
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_cassandra/rlm_sql_cassandra.c
    functionUses: 0
    functionsReached:
    - INFO
    - cass_log_set_level
    - cass_log_set_callback
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, UNUSED void
      *h, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - connection_t *conn
    - uctx
    argTypes:
    - void**
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, UNUSED connection_t
      *conn, UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c:56,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c:59,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c:64,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - connection_t *conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 0
    functionsReached:
    - trunk_connection_pop_request
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    - trunk_request_signal_reapable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  UNUSED connection_t *conn, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_sql_query_t *query_ctx
    - config
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: sql_num_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sql_num_rows(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_sql_query_t *query_ctx
    - config
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(UNUSED fr_sql_query_t *query_ctx, UNUSED
      rlm_sql_config_t const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - sql_log_entry_t out
    - size_t
    - fr_sql_query_t *query_ctx
    argTypes:
    - UNUSED
    - UNUSED[]
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(UNUSED TALLOC_CTX *ctx, UNUSED sql_log_entry_t out[],
      UNUSED size_t outlen,\n\t\t\tUNUSED fr_sql_query_t *query_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_sql_query_t *query_ctx
    - config
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(UNUSED fr_sql_query_t *query_ctx, UNUSED
      rlm_sql_config_t const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_sql_query_t *query_ctx
    - config
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_null/rlm_sql_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(UNUSED fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:75,1
    - Dst: cs_config
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:80,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:81,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:86,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:88,1
    - Dst: CS_SEVERITY
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:89,1
    - Dst: CS_NUMBER
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:89,1
    - Dst: CS_ORIGIN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:90,1
    - Dst: CS_LAYER
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:90,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - context
    - CS_CONNECTION *conn
    - emsgp
    argTypes:
    - CS_CONTEXT*
    - UNUSED
    - CS_CLIENTMSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: clientmsg_callback
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - talloc_asprintf_append
    - TALLOC_FREE
    - CS_LAYER
    - CS_SEVERITY
    - CS_NUMBER
    - CS_ORIGIN
    - cs_config
    - talloc_typed_asprintf
    linkageType: ''
    returnType: CS_RETCODE
    signature: CS_RETCODE clientmsg_callback(CS_CONTEXT *context, UNUSED CS_CONNECTION
      *conn, CS_CLIENTMSG *emsgp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:119,1
    - Dst: cs_config
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:124,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:125,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:130,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:132,1
    - Dst: CS_SEVERITY
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:133,1
    - Dst: CS_NUMBER
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:133,1
    - Dst: CS_ORIGIN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:134,1
    - Dst: CS_LAYER
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:134,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - context
    - emsgp
    argTypes:
    - CS_CONTEXT*
    - CS_CLIENTMSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 143
    functionName: csmsg_callback
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - talloc_asprintf_append
    - TALLOC_FREE
    - CS_LAYER
    - CS_SEVERITY
    - CS_NUMBER
    - CS_ORIGIN
    - cs_config
    - talloc_typed_asprintf
    linkageType: ''
    returnType: CS_RETCODE
    signature: CS_RETCODE csmsg_callback(CS_CONTEXT *context, CS_CLIENTMSG *emsgp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cs_config
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:162,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:163,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:172,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:178,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - context
    - CS_CONNECTION *conn
    - msgp
    argTypes:
    - CS_CONTEXT*
    - UNUSED
    - CS_SERVERMSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 189
    functionName: servermsg_callback
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - TALLOC_FREE
    - cs_config
    - talloc_typed_asprintf
    linkageType: ''
    returnType: CS_RETCODE
    signature: CS_RETCODE servermsg_callback(CS_CONTEXT *context, UNUSED CS_CONNECTION
      *conn, CS_SERVERMSG *msgp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ct_cmd_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:210,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:211,1
    - Dst: ct_command
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:215,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:216,1
    - Dst: ct_send
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:220,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:221,1
    - Dst: ct_results
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:233,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:239,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:251,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:257,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:259,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:264,1
    - Dst: ct_res_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:273,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:274,1
    - Dst: ct_results
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:282,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:284,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:290,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:291,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:297,1
    - Dst: ct_results
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:305,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:308,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:309,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:318,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 3
    argNames:
    - request
    - conn
    - query
    argTypes:
    - request_t*
    - rlm_sql_freetds_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 324
    functionName: sql_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 2
    functionsReached:
    - ct_command
    - ct_res_info
    - ct_results
    - ct_cmd_alloc
    - ROPTIONAL
    - ct_send
    - ct_cancel
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_query(request_t *request, rlm_sql_freetds_conn_t *conn,
      char const *query)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:335,1
    - Dst: ct_res_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:341,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:342,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:349,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:349,1
    - Dst: ct_describe
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:359,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:360,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:361,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:366,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:366,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 375
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ct_res_info
    - talloc_array
    - talloc_free
    - talloc_get_type_abort
    - MEM
    - strlcpy
    - ct_describe
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:390,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - size_t
    - query_ctx
    argTypes:
    - UNUSED
    - sql_log_entry_t[]
    - NDEBUG_UNUSED
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(UNUSED TALLOC_CTX *ctx, sql_log_entry_t out[], NDEBUG_UNUSED
      size_t outlen,\n\t\t\tfr_sql_query_t *query_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:404,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:406,1
    - Dst: ct_cmd_drop
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:407,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:408,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 419
    functionName: sql_finish_select_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 1
    functionsReached:
    - ERROR
    - TALLOC_FREE
    - talloc_get_type_abort
    - ct_cmd_drop
    - ct_cancel
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_select_query(fr_sql_query_t *query_ctx, UNUSED
      rlm_sql_config_t const *config)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:433,1
    - Dst: ct_cmd_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:437,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:438,1
    - Dst: ct_command
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:442,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:443,1
    - Dst: ct_send
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:447,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:448,1
    - Dst: ct_results
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:452,1
    - Dst: ct_res_info
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:476,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:477,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:481,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:482,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:486,1
    - Dst: ct_bind
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:489,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:490,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:491,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:493,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:504,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:508,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:518,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:520,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:526,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 65
    argCount: 3
    argNames:
    - request
    - conn
    - query
    argTypes:
    - request_t*
    - rlm_sql_freetds_conn_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 532
    functionName: sql_select_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - ct_command
    - ct_res_info
    - ct_results
    - talloc_free
    - ct_bind
    - ct_cmd_alloc
    - ROPTIONAL
    - ct_send
    - talloc_zero_array
    - ct_cancel
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_select_query(request_t *request, rlm_sql_freetds_conn_t
      *conn, char const *query)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:538,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:543,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:546,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:550,1
    - Dst: sql_select_query
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:554,1
    - Dst: sql_query
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:557,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:567,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:568,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:573,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:574,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 575
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - connection_signal_reconnect
    - talloc_get_type_abort
    - trunk_request_signal_reapable
    - ROPTIONAL
    - sql_select_query
    - trunk_request_signal_fail
    - sql_query
    - trunk_connection_pop_request
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:586,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:587,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:591,1
    - Dst: ct_fetch
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:594,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:600,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:601,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:602,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:630,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:633,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:643,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:649,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 654
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 2
    functionsReached:
    - ct_fetch
    - TALLOC_FREE
    - talloc_strdup
    - talloc_get_type_abort
    - ROPTIONAL
    - talloc_zero_array
    - ct_cancel
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, request_t
      *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:658,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:660,1
    - Dst: ct_cmd_drop
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:661,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 670
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 2
    functionsReached:
    - ERROR
    - ct_cmd_drop
    - talloc_get_type_abort
    - ct_cancel
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:674,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:676,1
    - Dst: ct_cancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:679,1
    - Dst: ct_cmd_drop
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:680,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:681,1
    - Dst: ct_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:695,1
    - Dst: ct_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:695,1
    - Dst: ct_con_drop
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:697,1
    - Dst: ct_exit
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:701,1
    - Dst: cs_ctx_drop
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:702,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 706
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 2
    functionsReached:
    - ERROR
    - ct_close
    - ct_con_drop
    - ct_exit
    - talloc_free
    - talloc_get_type_abort
    - cs_ctx_drop
    - DEBUG2
    - ct_cmd_drop
    - ct_cancel
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:711,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:714,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:717,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:717,1
    - Dst: cs_ctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:723,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:724,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:726,1
    - Dst: ct_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:733,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:734,1
    - Dst: ct_config
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:738,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:739,1
    - Dst: cs_config
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:746,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:747,1
    - Dst: cs_config
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:751,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:752,1
    - Dst: ct_callback
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:756,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:757,1
    - Dst: ct_callback
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:761,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:762,1
    - Dst: ct_con_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:769,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:770,1
    - Dst: ct_con_props
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:777,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:778,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:778,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:779,1
    - Dst: ct_con_props
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:783,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:784,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:784,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:785,1
    - Dst: ct_connect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:792,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:792,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:792,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:793,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:802,1
    - Dst: sql_query
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:803,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 807
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_time_delta_to_msec
    - ct_init
    - ct_callback
    - ct_con_alloc
    - UNCONST
    - ct_connect
    - cs_ctx_alloc
    - snprintf
    - talloc_zero
    - ct_config
    - strlen
    - cs_config
    - talloc_get_type_abort_const
    - ct_con_props
    - sql_query
    - MEM
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:816,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - request_t*
    - void*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 821
    functionName: sql_request_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_freetds/rlm_sql_freetds.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: SQL_TRUNK_CONNECTION_ALLOC
    signature: "SQL_TRUNK_CONNECTION_ALLOC sql_request_fail(request_t *request, void
      *preq, UNUSED void *rctx,\n\t\t\t     UNUSED trunk_request_state_t state, UNUSED
      void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:143,1
    - Dst: PQcmdTuples
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - PGresult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 3
    functionsReached:
    - atoi
    - PQcmdTuples
    linkageType: ''
    returnType: int
    signature: int affected_rows(PGresult * result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_sql_postgres_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: free_result_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void free_result_row(rlm_sql_postgres_conn_t *conn)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PQresultErrorField
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:162,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:191,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:198,1
    - Dst: sql_state_entry_find
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:203,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:205,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:209,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:210,1
    - Dst: PQresultErrorField
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:216,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - inst
    - status
    - result
    argTypes:
    - rlm_sql_postgresql_t*
    - ExecStatusType
    - PGresult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 221
    functionName: sql_classify_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - sql_state_entry_find
    - WARN
    - fr_table_str_by_value
    - PQresultErrorField
    - DEBUG3
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_classify_error(rlm_sql_postgresql_t *inst, ExecStatusType
      status, PGresult const *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: sql_classify_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_classify_error(UNUSED PGresult const *result)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:232,1
    - Dst: PQconnectPoll
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:235,1
    - Dst: PQsocket
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:242,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:245,1
    - Dst: PQdb
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:246,1
    - Dst: PQhost
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:246,1
    - Dst: PQserverVersion
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:246,1
    - Dst: PQprotocolVersion
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:246,1
    - Dst: PQbackendPID
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:247,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:248,1
    - Dst: PQsetnonblocking
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:249,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:250,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:255,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:255,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:256,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:260,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 271
    functionName: _sql_connect_io_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - connection_signal_reconnect
    - PQprotocolVersion
    - PQsocket
    - PQbackendPID
    - talloc_get_type_abort
    - fr_event_fd_insert
    - PQerrorMessage
    - fr_event_fd_delete
    - PQserverVersion
    - connection_signal_connected
    - PQhost
    - DEBUG2
    - PQdb
    - PQsetnonblocking
    - PQconnectPoll
    linkageType: ''
    returnType: void
    signature: void _sql_connect_io_notify(fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:276,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:277,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:278,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:284,1
    - Dst: PQsendQuery
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:286,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:289,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:289,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:290,1
    - Dst: PQgetResult
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:294,1
    - Dst: PQgetResult
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:300,1
    - Dst: PQclear
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:300,1
    - Dst: PQresultStatus
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:302,1
    - Dst: sql_classify_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:304,1
    - Dst: PQclear
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 308
    functionName: _sql_connect_query_run
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - connection_signal_reconnect
    - talloc_get_type_abort
    - PQclear
    - PQresultStatus
    - PQerrorMessage
    - talloc_get_type_abort_const
    - PQgetResult
    - PQsendQuery
    - DEBUG2
    - sql_classify_error
    linkageType: ''
    returnType: void
    signature: "void _sql_connect_query_run(connection_t *conn, UNUSED connection_state_t
      prev,\n\t\t\t\t   UNUSED connection_state_t state, void *uctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:313,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:314,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:318,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:318,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:322,1
    - Dst: PQconnectStart
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:324,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:326,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:327,1
    - Dst: PQstatus
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:331,1
    - Dst: PQsocket
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:333,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:334,1
    - Dst: PQdb
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:335,1
    - Dst: PQhost
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:335,1
    - Dst: PQserverVersion
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:335,1
    - Dst: PQprotocolVersion
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:335,1
    - Dst: PQbackendPID
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:336,1
    - Dst: PQsetnonblocking
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:337,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:340,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:343,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:347,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:347,1
    - Dst: PQfinish
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:349,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:350,1
    - Dst: PQconnectPoll
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:358,1
    - Dst: PQsocket
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:359,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:360,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:364,1
    - Dst: PQdb
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:364,1
    - Dst: PQhost
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:364,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 372
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - PQserverVersion
    - MEM
    - PQsetnonblocking
    - ERROR
    - PQprotocolVersion
    - talloc_get_type_abort
    - DEBUG2
    - PQconnectPoll
    - PQfinish
    - connection_add_watch_post
    - PQerrorMessage
    - connection_signal_connected
    - PQdb
    - talloc_free
    - PQsocket
    - PQbackendPID
    - fr_event_fd_insert
    - PQconnectStart
    - talloc_zero
    - PQstatus
    - talloc_get_type_abort_const
    - PQhost
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:376,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:379,1
    - Dst: PQclear
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:384,1
    - Dst: PQfinish
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:389,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - el
    - h
    - uctx
    argTypes:
    - fr_event_list_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 392
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 2
    functionsReached:
    - PQfinish
    - talloc_free
    - talloc_get_type_abort
    - PQclear
    - fr_event_fd_delete
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(fr_event_list_t *el, void *h, UNUSED void
      *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:402,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:408,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:411,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:416,1
    - Dst: PQsendQuery
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:417,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:420,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:420,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:421,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 433
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_sent
    - talloc_get_type_abort
    - ROPTIONAL
    - PQsendQuery
    - PQerrorMessage
    - trunk_request_signal_fail
    - trunk_connection_pop_request
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:439,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:449,1
    - Dst: PQconsumeInput
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:453,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:454,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:454,1
    - Dst: PQisBusy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:458,1
    - Dst: PQgetResult
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:462,1
    - Dst: PQgetResult
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:465,1
    - Dst: PQclear
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:466,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:474,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:474,1
    - Dst: PQresultStatus
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:479,1
    - Dst: affected_rows
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:489,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:490,1
    - Dst: PQntuples
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:503,1
    - Dst: PQnfields
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:504,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:505,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:513,1
    - Dst: sql_classify_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:530,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:534,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:537,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - trunk_connection_t *tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 538
    functionName: sql_trunk_request_demux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - PQisBusy
    - PQgetResult
    - affected_rows
    - talloc_get_type_abort
    - PQclear
    - PQresultStatus
    - PQntuples
    - ROPTIONAL
    - PQnfields
    - PQerrorMessage
    - fr_assert
    - PQconsumeInput
    - DEBUG2
    - sql_classify_error
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_demux(UNUSED fr_event_list_t *el, UNUSED trunk_connection_t
      *tconn,\n\t\t\t\t    connection_t *conn, UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:544,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - conn
    - preq
    - reason
    - uctx
    argTypes:
    - connection_t*
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 550
    functionName: sql_request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel(connection_t *conn, void *preq, trunk_cancel_reason_t
      reason,\n\t\t\t       UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:558,1
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:562,1
    - Dst: PQgetCancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:563,1
    - Dst: PQcancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:565,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:566,1
    - Dst: PQfreeCancel
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:568,1
    - Dst: PQgetResult
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:574,1
    - Dst: PQclear
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:575,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 580
    functionName: sql_request_cancel_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - ERROR
    - PQcancel
    - talloc_get_type_abort
    - PQgetCancel
    - PQclear
    - trunk_connection_pop_cancellation
    - PQgetResult
    - trunk_request_signal_cancel_complete
    - PQfreeCancel
    linkageType: ''
    returnType: void
    signature: "void sql_request_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t   connection_t *conn, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:587,1
    - Dst: PQnfields
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:592,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:595,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:595,1
    - Dst: PQfname
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 601
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - PQfname
    - talloc_get_type_abort
    - PQnfields
    - MEM
    linkageType: ''
    returnType: SQL_QUERY_FAIL
    signature: SQL_QUERY_FAIL sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:605,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:607,1
    - Dst: PQntuples
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:612,1
    - Dst: free_result_row
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:614,1
    - Dst: PQnfields
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:616,1
    - Dst: PQntuples
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:619,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:620,1
    - Dst: PQgetisnull
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:622,1
    - Dst: PQgetlength
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:623,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:624,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:625,1
    - Dst: PQgetvalue
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 634
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 2
    functionsReached:
    - PQgetvalue
    - talloc_array
    - PQgetisnull
    - talloc_get_type_abort
    - PQntuples
    - PQnfields
    - PQgetlength
    - talloc_zero_array
    - free_result_row
    - strlcpy
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:647,1
    - Dst: PQclear
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:650,1
    - Dst: free_result_row
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:654,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 657
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 6
    functionsReached:
    - free_result_row
    - talloc_get_type_abort
    - PQclear
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:672,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:676,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:678,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:679,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - outlen
    - query_ctx
    argTypes:
    - TALLOC_CTX*
    - sql_log_entry_t[]
    - size_t
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 692
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 3
    functionsReached:
    - strchr
    - talloc_get_type_abort
    - fr_assert
    - PQerrorMessage
    - talloc_typed_asprintf
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(TALLOC_CTX *ctx, sql_log_entry_t out[], size_t outlen,\n\t\t\tfr_sql_query_t
      *query_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sql_affected_rows(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:705,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:711,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:715,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:719,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:723,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:723,1
    - Dst: PQescapeStringConn
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:724,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:726,1
    - Dst: PQerrorMessage
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:726,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:727,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:731,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:731,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - request
    - vb
    - arg
    argTypes:
    - request_t*
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 735
    functionName: sql_escape_func
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 1
    functionsReached:
    - talloc_array
    - talloc_free
    - talloc_realloc
    - talloc_get_type_abort
    - ROPTIONAL
    - PQescapeStringConn
    - PQerrorMessage
    - fr_value_box_strdup_shallow_replace
    - MEM
    linkageType: ''
    returnType: int
    signature: int sql_escape_func(request_t *request, fr_value_box_t *vb, void *arg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:739,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:741,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:752,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:752,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:754,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:755,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:757,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:766,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:767,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:770,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:774,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:778,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:782,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:785,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:786,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:786,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:790,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:799,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:801,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:802,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:805,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:806,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:809,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:810,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:813,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:814,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:817,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:817,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:818,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:818,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:821,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:822,1
    - Dst: sql_state_trie_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:827,1
    - Dst: sql_state_entries_from_table
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:832,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:840,1
    - Dst: sql_state_entries_from_cs
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:841,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 845
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - sql_state_entries_from_table
    - talloc_typed_asprintf
    - cf_parent
    - talloc_asprintf_append
    - cf_section_find
    - strchr
    - talloc_strdup
    - talloc_get_type_abort
    - snprintf
    - fr_time_delta_to_sec
    - cf_section_name2
    - strstr
    - fr_time_delta_ispos
    - sql_state_trie_alloc
    - sql_state_entries_from_cs
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PQinitOpenSSL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:851,1
    - Dst: PQinitSSL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 857
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 0
    functionsReached:
    - PQinitOpenSSL
    - PQinitSSL
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:861,1
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:864,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:873,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - el
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 879
    functionName: sql_escape_arg_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 1
    functionsReached:
    - connection_alloc
    - connection_signal_init
    - PERROR
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void *sql_escape_arg_alloc(TALLOC_CTX *ctx, fr_event_list_t *el, void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:883,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 885
    functionName: sql_escape_arg_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_postgresql/rlm_sql_postgresql.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    - connection_signal_halt
    linkageType: ''
    returnType: void
    signature: void sql_escape_arg_free(void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:101,1
    - Dst: sqlite3_errstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 116
    functionName: sql_error_to_rcode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - sqlite3_errstr
    - WARN
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_error_to_rcode(int status)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_errcode
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:133,1
    - Dst: sql_error_to_rcode
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:157,1
    - Dst: sql_error_to_rcode
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - db
    - status
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 161
    functionName: sql_check_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 15
    functionsReached:
    - sql_error_to_rcode
    - sqlite3_errcode
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_check_error(sqlite3 *db, int status)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_errcode
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:183,1
    - Dst: va_start
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:215,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:216,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:216,1
    - Dst: va_end
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:217,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:224,1
    - Dst: sqlite3_errstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:224,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:227,1
    - Dst: sqlite3_errmsg
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:228,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - db
    - status
    - fmt
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 229
    functionName: sql_print_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 6
    functionsReached:
    - sqlite3_errcode
    - va_end
    - va_start
    - fr_strerror_printf
    - sqlite3_errstr
    - sqlite3_errmsg
    - MEM
    - talloc_vasprintf
    linkageType: ''
    returnType: void
    signature: void sql_print_error(sqlite3 *db, int status, char const *fmt, ...)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:245,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:247,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:249,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:250,1
    - Dst: fstat
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:254,1
    - Dst: fileno
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:254,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:255,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:256,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:258,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:264,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:269,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:269,1
    - Dst: fread
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:270,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:273,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:278,1
    - Dst: ferror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:279,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:280,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:280,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:284,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:286,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:291,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:301,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:307,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:308,1
    - Dst: sqlite3_prepare_v2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:315,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:317,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:318,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:319,1
    - Dst: sqlite3_step
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:328,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:329,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:330,1
    - Dst: sqlite3_finalize
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:331,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:332,1
    - Dst: sqlite3_finalize
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:336,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:337,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:338,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:339,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:347,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 3
    argNames:
    - ctx
    - db
    - filename
    argTypes:
    - TALLOC_CTX*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 349
    functionName: sql_loadfile
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - fr_strerror_printf
    - fopen
    - fileno
    - sql_print_error
    - MEM
    - fread
    - DEBUG
    - INFO
    - fstat
    - fr_syserror
    - sqlite3_prepare_v2
    - fr_utf8_char
    - sqlite3_finalize
    - fclose
    - talloc_free
    - ferror
    - sqlite3_step
    - sql_check_error
    linkageType: ''
    returnType: int
    signature: int sql_loadfile(TALLOC_CTX *ctx, sqlite3 *db, char const *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int64
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:357,1
    - Dst: sqlite3_result_int64
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - num_values
    - values
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: _sql_greatest
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int64
    - sqlite3_value_int64
    linkageType: ''
    returnType: void
    signature: void _sql_greatest(sqlite3_context *ctx, int num_values, sqlite3_value
      **values)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:369,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:370,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:374,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:374,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:376,1
    - Dst: sqlite3_open_v2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:377,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:379,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:382,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:383,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:383,1
    - Dst: open
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:385,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:388,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:391,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:392,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:394,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:395,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:400,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:400,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:401,1
    - Dst: sqlite3_busy_timeout
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:404,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:404,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:405,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:406,1
    - Dst: sqlite3_extended_result_codes
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:413,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:414,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:415,1
    - Dst: sqlite3_create_function_v2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:419,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:421,1
    - Dst: sql_print_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:422,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 429
    functionName: _sql_connection_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - WARN
    - sqlite3_busy_timeout
    - fr_strerror_printf
    - fr_strerror
    - close
    - sql_print_error
    - MEM
    - ERROR
    - open
    - sqlite3_open_v2
    - talloc_get_type_abort
    - INFO
    - fr_time_delta_to_msec
    - fr_syserror
    - sqlite3_extended_result_codes
    - talloc_free
    - talloc_zero
    - sql_check_error
    - talloc_get_type_abort_const
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _sql_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:433,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:436,1
    - Dst: sqlite3_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:439,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:440,1
    - Dst: sqlite3_errmsg
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: _sql_connection_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 2
    functionsReached:
    - sqlite3_close
    - WARN
    - talloc_get_type_abort
    - sqlite3_errmsg
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: void _sql_connection_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:447,1
    - Dst: sqlite3_column_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:452,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:455,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:455,1
    - Dst: sqlite3_column_name
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - query_ctx
    - config
    argTypes:
    - char**[]
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 461
    functionName: sql_fields
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - sqlite3_column_count
    - sqlite3_column_name
    - talloc_get_type_abort
    - MEM
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_fields(char const **out[], fr_sql_query_t *query_ctx,
      UNUSED rlm_sql_config_t const *config)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:465,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:467,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:470,1
    - Dst: sqlite3_step
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:475,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:480,1
    - Dst: sqlite3_column_count
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:499,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:506,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:506,1
    - Dst: sqlite3_column_type
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:509,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:511,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:511,1
    - Dst: sqlite3_column_int
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:511,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:515,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:515,1
    - Dst: sqlite3_column_double
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:515,1
    - Dst: sqlite3_column_text
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:521,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:523,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:523,1
    - Dst: sqlite3_column_blob
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:532,1
    - Dst: sqlite3_column_bytes
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:534,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:536,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:536,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:537,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 549
    functionName: sql_fetch_row
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 2
    functionsReached:
    - sqlite3_column_blob
    - sqlite3_column_double
    - TALLOC_FREE
    - memcpy
    - sqlite3_column_count
    - sqlite3_step
    - talloc_get_type_abort
    - talloc_strdup
    - sqlite3_column_type
    - sql_check_error
    - talloc_zero_array
    - sqlite3_column_text
    - sqlite3_column_bytes
    - MEM
    - sqlite3_column_int
    - talloc_typed_asprintf
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sql_fetch_row(unlang_result_t *p_result, UNUSED request_t
      *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:553,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:556,1
    - Dst: sqlite3_finalize
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 571
    functionName: sql_free_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 6
    functionsReached:
    - sqlite3_finalize
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_free_result(fr_sql_query_t *query_ctx, UNUSED rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:586,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:589,1
    - Dst: sqlite3_errmsg
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - size_t
    - query_ctx
    argTypes:
    - UNUSED
    - sql_log_entry_t[]
    - NDEBUG_UNUSED
    - fr_sql_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: sql_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    - sqlite3_errmsg
    linkageType: ''
    returnType: size_t
    signature: "size_t sql_error(UNUSED TALLOC_CTX *ctx, sql_log_entry_t out[], NDEBUG_UNUSED
      size_t outlen,\n\t\t\tfr_sql_query_t *query_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - rlm_sql_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: sql_finish_query
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 2
    functionsReached:
    - sql_free_result
    linkageType: ''
    returnType: sql_rcode_t
    signature: sql_rcode_t sql_finish_query(fr_sql_query_t *query_ctx, rlm_sql_config_t
      const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:608,1
    - Dst: sqlite3_changes
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - query_ctx
    - config
    argTypes:
    - fr_sql_query_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 613
    functionName: sql_affected_rows
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 2
    functionsReached:
    - sqlite3_changes
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: "int sql_affected_rows(fr_sql_query_t *query_ctx,\n\t\t\t     UNUSED
      rlm_sql_config_t const *config)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:621,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:628,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:631,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:635,1
    - Dst: sqlite3_prepare_v2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:636,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:636,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:638,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:642,1
    - Dst: sqlite3_step
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:653,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:654,1
    - Dst: sqlite3_finalize
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:656,1
    - Dst: trunk_request_signal_reapable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:662,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 667
    functionName: sql_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_prepare_v2
    - talloc_get_type_abort
    - trunk_request_signal_reapable
    - ROPTIONAL
    - trunk_request_signal_fail
    - sql_check_error
    - strlen
    - sqlite3_finalize
    - trunk_connection_pop_request
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void sql_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t  connection_t *conn, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: sql_request_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: SQL_QUERY_RESUME
    signature: "SQL_QUERY_RESUME sql_request_fail(UNUSED request_t *request, void
      *preq, UNUSED void *rctx,\n\t\t\t     UNUSED trunk_request_state_t state, UNUSED
      void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:682,1
    - Dst: sql_free_result
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 685
    functionName: sql_request_complete
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - sql_free_result
    linkageType: ''
    returnType: void
    signature: void sql_request_complete(UNUSED request_t *request, void *preq, UNUSED
      void *rctx, UNUSED void *uctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:689,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:691,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:698,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:698,1
    - Dst: fr_dirfd
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:708,1
    - Dst: fstatat
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:710,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:715,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:715,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:716,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:720,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:732,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:734,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:738,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:739,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:741,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:741,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:744,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:745,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:747,1
    - Dst: fr_dirfd
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:751,1
    - Dst: sqlite3_open_v2
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:753,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:755,1
    - Dst: sqlite3_errstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:756,1
    - Dst: sql_check_error
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:760,1
    - Dst: sqlite3_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:761,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:769,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:771,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:772,1
    - Dst: sql_loadfile
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:775,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:777,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:777,1
    - Dst: sqlite3_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:778,1
    - Dst: sqlite3_close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:783,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:788,1
    - Dst: sqlite3_errstr
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:788,1
    - Dst: unlinkat
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:794,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:795,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:796,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:798,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:803,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 805
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - unlinkat
    - sqlite3_close
    - talloc_array
    - strrchr
    - talloc_strdup
    - fr_strerror
    - close
    - MEM
    - strlcpy
    - ERROR
    - sqlite3_open_v2
    - talloc_get_type_abort
    - fstatat
    - INFO
    - fr_syserror
    - cf_pair_find
    - fr_mkdir
    - PERROR
    - talloc_typed_asprintf
    - sql_loadfile
    - talloc_free
    - cf_pair_value
    - sqlite3_errstr
    - cf_pair_find_next
    - sql_check_error
    - fr_dirfd
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:809,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:810,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:811,1
    - Dst: sqlite3_libversion
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:811,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:813,1
    - Dst: sqlite3_libversion
      Src: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 816
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sql/drivers/rlm_sql_sqlite/rlm_sql_sqlite.c
    functionUses: 0
    functionsReached:
    - INFO
    - sqlite3_libversion
    - sqlite3_libversion_number
    - WARN
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:110,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:127,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:130,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:131,1
    - Dst: winbind_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:137,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:139,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:144,1
    - Dst: wbcCtxGetGroups
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:146,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:150,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:154,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:158,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:163,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:167,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:171,1
    - Dst: wbcErrorString
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:171,1
    - Dst: wbcCtxGetgrgid
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:195,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:197,1
    - Dst: wbcErrorString
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:197,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:199,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:204,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:207,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:209,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:217,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:218,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:219,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:222,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:228,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:231,1
    - Dst: winbind_slab_release
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:232,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:235,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:236,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 5
    argNames:
    - inst
    - request
    - name
    - env
    - t
    argTypes:
    - rlm_winbind_t*
    - request_t*
    - char*
    - winbind_group_xlat_call_env_t*
    - rlm_winbind_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 239
    functionName: winbind_check_group
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - winbind_slab_release
    - REDEBUG
    - strlen
    - RWDEBUG
    - wbcCtxGetGroups
    - wbcFreeMemory
    - RWDEBUG2
    - REXDENT
    - strcasecmp
    - RDEBUG2
    - RDEBUG3
    - wbcCtxGetgrgid
    - talloc_typed_asprintf
    - RERROR
    - talloc_free
    - strchr
    - RINDENT
    - winbind_slab_reserve
    - wbcErrorString
    linkageType: ''
    returnType: bool
    signature: "bool winbind_check_group(rlm_winbind_t const *inst, request_t *request,
      char const *name,\n\t\t\t\twinbind_group_xlat_call_env_t *env, rlm_winbind_thread_t
      *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:258,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:259,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:260,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:261,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:265,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:267,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:267,1
    - Dst: winbind_check_group
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:268,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 272
    functionName: winbind_group_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - winbind_check_group
    - talloc_get_type_abort
    - fr_skip_whitespace
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t winbind_group_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:291,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:292,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:305,1
    - Dst: winbind_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:307,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:309,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:313,1
    - Dst: wbcCtxPingDc2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:317,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:318,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:320,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:320,1
    - Dst: WBC_ERROR_IS_OK
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:321,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:322,1
    - Dst: fr_box_time_delta_msec
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:323,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:323,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:325,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:325,1
    - Dst: wbcErrorString
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:327,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:330,1
    - Dst: fr_box_time_delta_msec
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:331,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:331,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:335,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:335,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:339,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:340,1
    - Dst: winbind_slab_release
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:341,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 346
    functionName: winbind_ping_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RERROR
    - wbcCtxPingDc2
    - winbind_slab_release
    - fr_value_box_strdup
    - fr_time
    - wbcErrorString
    - fr_dcursor_append
    - WBC_ERROR_IS_OK
    - talloc_get_type_abort
    - fr_box_time_delta_msec
    - fr_time_sub
    - RDEBUG2
    - fr_value_box_alloc
    - wbcFreeMemory
    - fr_type_is_null
    - winbind_slab_reserve
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t winbind_ping_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wbcCtxFree
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wbctx
    argTypes:
    - winbind_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: _mod_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - wbcCtxFree
    linkageType: ''
    returnType: int
    signature: int _mod_ctx_free(winbind_ctx_t *wbctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wbcCtxCreate
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:362,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:364,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - wbctx
    - uctx
    argTypes:
    - winbind_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: winbind_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - wbcCtxCreate
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: int winbind_ctx_alloc(winbind_ctx_t *wbctx, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:381,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:383,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 390
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - WARN
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:406,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:407,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:410,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:410,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:412,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:413,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:418,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 426
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 1
    functionsReached:
    - WARN
    - REDEBUG2
    - tmpl_attr_tail_da
    - talloc_get_type_abort
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:437,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:438,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:444,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:452,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:454,1
    - Dst: do_auth_wbclient_pap
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:462,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 468
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - do_auth_wbclient_pap
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:482,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:486,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:486,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:487,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:488,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:488,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:488,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:488,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:489,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:499,1
    - Dst: wbcCtxCreate
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:501,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:504,1
    - Dst: wbcCtxInterfaceDetails
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:508,1
    - Dst: wbcCtxFree
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:509,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:512,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:513,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:514,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:519,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:523,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:524,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:527,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:528,1
    - Dst: cf_log_info
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:532,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 540
    functionName: domain_call_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - wbcCtxCreate
    - wbcCtxInterfaceDetails
    - cf_log_perr
    - cf_pair_value
    - FR_SBUFF_IN
    - FR_SBUFF_IN_STR
    - wbcFreeMemory
    - strlen
    - cf_log_warn
    - tmpl_afrom_substr
    - talloc_strlen
    - cf_log_err
    - wbcCtxFree
    - cf_log_info
    linkageType: ''
    returnType: int
    signature: "int domain_call_env_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules, CONF_ITEM *ci,\n\t\t\t\t UNUSED call_env_ctx_t const *cec, UNUSED
      call_env_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:586,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:588,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:592,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:593,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:595,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:597,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 603
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - module_rlm_xlat_register
    - cf_log_err
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:607,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:608,1
    - Dst: winbind_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:611,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 617
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - ERROR
    - winbind_slab_list_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:621,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 624
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/rlm_winbind.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:65,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:70,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:77,1
    - Dst: winbind_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:98,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:100,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:105,1
    - Dst: wbcCtxAuthenticateUserEx
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:108,1
    - Dst: winbind_slab_release
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:110,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:119,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:123,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:124,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:125,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:129,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:134,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:150,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:152,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:164,1
    - Dst: wbcErrorString
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:164,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:166,1
    - Dst: wbcErrorString
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:166,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:173,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c:174,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 3
    argNames:
    - request
    - env
    - t
    argTypes:
    - request_t*
    - winbind_auth_call_env_t*
    - rlm_winbind_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 177
    functionName: do_auth_wbclient_pap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_winbind/auth_wbclient_pap.c
    functionUses: 1
    functionsReached:
    - RWDEBUG2
    - RERROR
    - winbind_slab_release
    - REDEBUG2
    - wbcCtxAuthenticateUserEx
    - fr_assert
    - RDEBUG2
    - wbcFreeMemory
    - winbind_slab_reserve
    - memset
    - wbcErrorString
    linkageType: ''
    returnType: int
    signature: int do_auth_wbclient_pap(request_t *request, winbind_auth_call_env_t
      *env, rlm_winbind_thread_t *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_utf8/rlm_utf8.c:36,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/modules/rlm_utf8/rlm_utf8.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: mod_utf8_clean
    functionSourceFile: /src/freeradius-server/src/modules/rlm_utf8/rlm_utf8.c
    functionUses: 0
    functionsReached:
    - fr_utf8_char
    - fr_pair_list_foreach
    linkageType: ''
    returnType: void
    signature: void mod_utf8_clean(unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:107,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:112,1
    - Dst: idna_to_ascii_8z
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:122,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:125,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:128,1
    - Dst: idna_strerror
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:128,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:132,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:137,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:139,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:143,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:143,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:144,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:144,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:145,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 149
    functionName: xlat_idna
    functionSourceFile: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - idna_to_ascii_8z
    - idna_strerror
    - fr_value_box_strdup
    - fr_dcursor_append
    - REDEBUG
    - free
    - talloc_get_type_abort
    - strlen
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_idna(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:155,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:156,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_idn/rlm_idn.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_flags_set
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:87,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:90,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:93,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:95,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:96,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:96,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:97,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:98,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:103,1
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:105,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:114,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:114,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:115,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:121,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:121,1
    - Dst: fr_base64_encode
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:128,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:132,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:135,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:143,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:143,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:144,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:151,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:151,1
    - Dst: fr_json_str_from_value
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:152,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:153,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:155,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:160,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:160,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:160,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:161,1
    - Dst: fr_sbuff_reset_talloc
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:164,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 6
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    - quote
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 169
    functionName: json_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_start
    - fr_value_box_bstrndup
    - FR_DBUFF_TMP
    - fr_value_box_cast
    - MEM
    - fr_value_box_alloc_null
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_in_char
    - unlikely
    - fr_json_str_from_value
    - FR_VALUE_BOX_INITIALISER_NULL
    - fr_value_box_strdup
    - fr_base64_encode
    - fr_value_box_clear
    - fr_sbuff_reset_talloc
    - fr_value_box_list_foreach
    - RPERROR
    - fr_assert
    - fr_dcursor_append
    - fr_sbuff_used
    - fr_base16_encode
    - talloc_get_type_abort_const
    - fr_value_box_list_num_elements
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t json_escape(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t *in,
      bool quote)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_escape
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: json_escape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - json_escape
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t json_escape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_escape
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: json_quote_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - json_escape
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t json_quote_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:216,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:222,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:222,1
    - Dst: fr_jpath_parse
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:224,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:226,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:226,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:227,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:228,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:231,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:231,1
    - Dst: fr_jpath_asprint
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:233,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:235,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:236,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:237,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 241
    functionName: json_jpath_validate_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_asprintf
    - fr_jpath_asprint
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - fr_assert
    - fr_strerror
    - fr_jpath_parse
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t json_jpath_validate_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:259,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:270,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:271,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:279,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:280,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:284,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:287,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:298,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:301,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:302,1
    - Dst: tmpl_copy_pairs
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:310,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:311,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:317,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:319,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:321,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:324,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:325,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:329,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:333,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:336,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:339,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:347,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:347,1
    - Dst: fr_json_afrom_pair_list
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:349,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:351,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:354,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:356,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:357,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 360
    functionName: json_encode_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_copy_pairs
    - fr_json_afrom_pair_list
    - REDEBUG
    - tmpl_afrom_attr_substr
    - fr_strerror
    - fr_pair_list_free
    - MEM
    - fr_value_box_alloc_null
    - fr_pair_delete
    - RPEDEBUG
    - REMARKER
    - fr_pair_list_init
    - FR_SBUFF_IN
    - fr_sbuff_adv_past_whitespace
    - fr_pair_list_append
    - fr_sbuff_next_if_char
    - TALLOC_FREE
    - fr_pair_list_next
    - fr_dcursor_append
    - talloc_free
    - fr_sbuff_used
    - fr_value_box_bstrdup_buffer_shallow
    - fr_pair_list_head
    - talloc_get_type_abort_const
    - fr_sbuff_set
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t json_encode_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:279,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:280,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:284,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:287,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:298,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:299,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:301,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:302,1
    - Dst: tmpl_copy_pairs
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:310,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:311,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:317,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:319,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:321,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:324,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:325,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:329,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:333,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:336,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 340
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - tmpl_copy_pairs
    - fr_pair_delete
    - fr_pair_list_free
    - RPEDEBUG
    - fr_pair_list_next
    - talloc_free
    - TALLOC_FREE
    - fr_sbuff_used
    - REMARKER
    - FR_SBUFF_IN
    - fr_pair_list_head
    - tmpl_afrom_attr_substr
    - fr_strerror
    - fr_sbuff_adv_past_whitespace
    - fr_pair_list_append
    - fr_sbuff_set
    - fr_sbuff_next_if_char
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, ref)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:382,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:387,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:388,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:392,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:392,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:393,1
    - Dst: fr_jpath_parse
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:402,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:405,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:405,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:411,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:412,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:415,1
    - Dst: fr_jpath_parse
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:416,1
    - Dst: tmpl_value_length
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:416,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:429,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:430,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - cs
    - mod_inst
    - proc_inst
    - src
    - maps
    argTypes:
    - CONF_SECTION*
    - UNUSED*
    - void*
    - tmpl_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 436
    functionName: mod_map_proc_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_canonicalize_error
    - map_list_next
    - tmpl_attr_tail_da
    - tmpl_value_type
    - tmpl_value_length
    - talloc_zero
    - fr_strerror
    - tmpl_is_attr
    - tmpl_value
    - fr_jpath_parse
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int mod_map_proc_instantiate(CONF_SECTION *cs, UNUSED void const *mod_inst,
      void *proc_inst,\n\t\t\t\t    tmpl_t const *src, map_list_t const *maps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:458,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:459,1
    - Dst: fr_jpath_evaluate_leaf
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:461,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:461,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:461,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:464,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:468,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:468,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:470,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:472,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:472,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:473,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:473,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:473,1
    - Dst: fr_value_box_steal
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:475,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:476,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:477,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 484
    functionName: _json_map_proc_get_value
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_pair_afrom_da
    - fr_value_box_steal
    - fr_jpath_evaluate_leaf
    - RPEDEBUG
    - fr_value_box_list_init
    - talloc_free
    - tmpl_attr_tail_da
    - fr_pair_append
    - fr_value_box_list_empty
    - fr_assert
    - fr_pair_list_free
    - MEM
    - fr_value_box_list_next
    linkageType: ''
    returnType: int
    signature: "int _json_map_proc_get_value(TALLOC_CTX *ctx, fr_pair_list_t *out,
      request_t *request,\n\t\t\t\t    map_t const *map, void *uctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:510,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:513,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:517,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:521,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:526,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:527,1
    - Dst: json_tokener_new
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:531,1
    - Dst: json_tokener_parse_ex
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:532,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:532,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:534,1
    - Dst: json_tokener_error_desc
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:534,1
    - Dst: json_tokener_get_error
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:534,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:539,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:548,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:564,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:565,1
    - Dst: fr_jpath_parse
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:569,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:569,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:571,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:571,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:572,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:578,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:579,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:580,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:584,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:592,1
    - Dst: json_tokener_free
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:593,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:595,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - json
    - maps
    argTypes:
    - unlang_result_t*
    - map_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 596
    functionName: mod_map_proc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - REDEBUG
    - fr_strerror
    - json_tokener_free
    - REMARKER
    - tmpl_aexpand
    - json_tokener_get_error
    - map_list_next
    - map_to_request
    - RPERROR
    - fr_value_box_list_concat_in_place
    - json_tokener_new
    - talloc_strlen
    - RETURN_UNLANG_RCODE
    - json_tokener_parse_ex
    - fr_jpath_parse
    - json_object_put
    - talloc_free
    - json_tokener_error_desc
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_proc(unlang_result_t *p_result, map_ctx_t
      const *mpctx, request_t *request,\n\t\t\t\t    fr_value_box_list_t *json, map_list_t
      const *maps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:600,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:608,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:610,1
    - Dst: fr_json_format_verify
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 616
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - fr_json_format_verify
    - cf_log_err
    - talloc_get_type_abort
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:620,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:623,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:624,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:626,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:627,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:629,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:630,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 635
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - talloc_get_type_abort
    - xlat_func_args_set
    - map_proc_register
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_json_version_print
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:641,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:643,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:643,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 647
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_register
    - fr_json_version_print
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_json/rlm_json.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_json/rlm_json.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:199,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: topic_name_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t topic_name_cmp(void const *a, void const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inst
    - name
    argTypes:
    - rlm_kafka_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: kafka_find_topic
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    linkageType: ''
    returnType: rd_kafka_topic_t
    signature: rd_kafka_topic_t *kafka_find_topic(rlm_kafka_t const *inst, char const
      *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:236,1
    - Dst: rd_kafka_opaque
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:236,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:243,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:247,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:252,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - rk
    - level
    - fac
    - buf
    argTypes:
    - rd_kafka_t*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 259
    functionName: _kafka_log_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - WARN
    - rd_kafka_opaque
    - talloc_get_type_abort
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void _kafka_log_cb(rd_kafka_t const *rk, int level, char const *fac,
      char const *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:271,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:275,1
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:275,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:275,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:278,1
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:280,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:283,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fr_event_list_t *el
    - uctx
    argTypes:
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: _kafka_wake
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - free
    - talloc_get_type_abort
    - fr_assert
    - unlang_interpret_mark_runnable
    - pthread_equal
    - atomic_load_explicit
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: void
    signature: void _kafka_wake(UNUSED fr_event_list_t *el, void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:300,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:306,1
    - Dst: rd_kafka_err2str
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:306,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:313,1
    - Dst: rd_kafka_err2str
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:313,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:317,1
    - Dst: rd_kafka_err2name
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:318,1
    - Dst: rd_kafka_err2str
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - request
    - pctx
    argTypes:
    - request_t*
    - rlm_kafka_msg_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 321
    functionName: kafka_err_to_rcode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - rd_kafka_err2str
    - RDEBUG2
    - rd_kafka_err2name
    - REDEBUG
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t kafka_err_to_rcode(request_t *request, rlm_kafka_msg_ctx_t
      const *pctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:350,1
    - Dst: malloc
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:350,1
    - Dst: atomic_init
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:355,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:357,1
    - Dst: rd_kafka_produce
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:357,1
    - Dst: rd_kafka_last_error
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:362,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:364,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:366,1
    - Dst: rd_kafka_err2str
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 7
    argNames:
    - t
    - request
    - topic
    - key
    - key_len
    - value
    - value_len
    argTypes:
    - rlm_kafka_thread_t*
    - request_t*
    - rd_kafka_topic_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 371
    functionName: kafka_produce_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - unlikely
    - rd_kafka_last_error
    - atomic_init
    - REDEBUG
    - free
    - rd_kafka_produce
    - MEM
    - malloc
    - rd_kafka_err2str
    linkageType: ''
    returnType: rlm_kafka_msg_ctx_t
    signature: "rlm_kafka_msg_ctx_t *kafka_produce_enqueue(rlm_kafka_thread_t *t,
      request_t *request,\n\t\t\t\t\t   rd_kafka_topic_t *topic,\n\t\t\t\t\t   uint8_t
      const *key, size_t key_len,\n\t\t\t\t\t   uint8_t const *value, size_t value_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:416,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:422,1
    - Dst: kafka_topic_conf_find
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:426,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:428,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:436,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:436,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:447,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:447,1
    - Dst: call_env_parse
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 454
    functionName: _kafka_topic_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - call_env_parse
    - call_env_parsed_add
    - call_env_parsed_set_data
    - talloc_strdup
    - talloc_get_type_abort_const
    - kafka_topic_conf_find
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int _kafka_topic_env_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out,\n\t\t\t\t  tmpl_rules_t const *t_rules, CONF_ITEM *ci,\n\t\t\t\t  call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kafka_err_to_rcode
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:480,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:482,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 484
    functionName: mod_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - free
    - kafka_err_to_rcode
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:504,1
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: mod_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - atomic_store_explicit
    linkageType: ''
    returnType: void
    signature: void mod_signal(module_ctx_t const *mctx, request_t *request, UNUSED
      fr_signal_t action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:552,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:553,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:554,1
    - Dst: kafka_find_topic
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:561,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:562,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:566,1
    - Dst: kafka_produce_enqueue
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:575,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:578,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 582
    functionName: mod_produce
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - unlikely
    - REDEBUG
    - talloc_get_type_abort
    - unlang_module_yield
    - kafka_find_topic
    - talloc_get_type_abort_const
    - kafka_produce_enqueue
    linkageType: ''
    returnType: void
    signature: "void mod_produce(UNUSED unlang_result_t *p_result,\n\t\t\t\t\t\t    module_ctx_t
      const *mctx, request_t *request)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:604,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:605,1
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:609,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:615,1
    - Dst: xlat_is_literal
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:618,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:620,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:627,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:627,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:628,1
    - Dst: kafka_find_topic
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:641,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:643,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:646,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:649,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 652
    functionName: kafka_xlat_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_is_literal
    - fr_value_box_clear_value
    - FR_VALUE_BOX_INITIALISER_NULL
    - xlat_exp_head
    - talloc_get_type_abort
    - fr_value_box_cast
    - kafka_find_topic
    - talloc_get_type_abort_const
    - cf_log_err
    - PERROR
    linkageType: ''
    returnType: int
    signature: int kafka_xlat_instantiate(xlat_inst_ctx_t const *xctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:670,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:670,1
    - Dst: rd_kafka_err2str
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:670,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:672,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:672,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:674,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - xctx_ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 678
    functionName: kafka_xlat_produce_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dcursor_append
    - REDEBUG
    - free
    - fr_value_box_alloc
    - MEM
    - rd_kafka_err2str
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t kafka_xlat_produce_resume(TALLOC_CTX *xctx_ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t       xlat_ctx_t const *xctx,\n\t\t\t\t\t       request_t
      *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_signal_t
    argTypes:
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: kafka_xlat_produce_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - atomic_store_explicit
    linkageType: ''
    returnType: void
    signature: void kafka_xlat_produce_signal(xlat_ctx_t const *xctx, UNUSED request_t
      *request, UNUSED fr_signal_t action)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:739,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:740,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:741,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:742,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:743,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:744,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:757,1
    - Dst: kafka_find_topic
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:764,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:765,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:766,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:778,1
    - Dst: kafka_produce_enqueue
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:783,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:786,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - TALLOC_CTX *xctx_ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 790
    functionName: kafka_xlat_produce
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - unlang_xlat_yield
    - REDEBUG
    - talloc_get_type_abort
    - fr_assert
    - kafka_find_topic
    - talloc_get_type_abort_const
    - fr_type_is_null
    - kafka_produce_enqueue
    - fr_value_box_list_next
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t kafka_xlat_produce(UNUSED TALLOC_CTX *xctx_ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\txlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rd_kafka_event_type
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:819,1
    - Dst: rd_kafka_event_message_next
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:823,1
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:842,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:843,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:853,1
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:853,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:853,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:856,1
    - Dst: fr_atomic_ring_push
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:856,1
    - Dst: fr_event_user_trigger
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:858,1
    - Dst: rd_kafka_event_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - rd_kafka_t *rk
    - ev
    - uctx
    argTypes:
    - UNUSED
    - rd_kafka_event_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 876
    functionName: _kafka_background_event_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - rd_kafka_event_destroy
    - free
    - fr_event_user_trigger
    - fr_atomic_ring_push
    - fr_assert
    - rd_kafka_event_type
    - rd_kafka_event_message_next
    - MEM
    - pthread_equal
    - atomic_load_explicit
    linkageType: ''
    returnType: void
    signature: void _kafka_background_event_cb(UNUSED rd_kafka_t *rk, rd_kafka_event_t
      *ev, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rd_kafka_topic_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - rlm_kafka_topic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: _topic_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - rd_kafka_topic_destroy
    linkageType: ''
    returnType: int
    signature: int _topic_free(rlm_kafka_topic_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:895,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:895,1
    - Dst: fr_rb_inorder_foreach
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:899,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:903,1
    - Dst: rd_kafka_topic_conf_dup
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:903,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:904,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:904,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:905,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:905,1
    - Dst: rd_kafka_topic_new
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:906,1
    - Dst: rd_kafka_topic_conf_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:909,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:910,1
    - Dst: rd_kafka_err2str
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:911,1
    - Dst: rd_kafka_last_error
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:911,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:912,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:915,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:917,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:917,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - inst
    argTypes:
    - rlm_kafka_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 925
    functionName: kafka_topics_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - ERROR
    - rd_kafka_last_error
    - talloc_set_destructor
    - rd_kafka_topic_conf_dup
    - fr_rb_inorder_foreach
    - fr_rb_inline_talloc_alloc
    - talloc_free
    - fr_cond_assert_msg
    - talloc_strdup
    - rd_kafka_topic_new
    - talloc_zero
    - fr_rb_insert
    - rd_kafka_topic_conf_destroy
    - MEM
    - rd_kafka_err2str
    linkageType: ''
    returnType: int
    signature: int kafka_topics_alloc(rlm_kafka_t *inst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:956,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:957,1
    - Dst: rd_kafka_flush
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:979,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:979,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:980,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:981,1
    - Dst: rd_kafka_outq_len
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:982,1
    - Dst: rd_kafka_purge
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:984,1
    - Dst: rd_kafka_flush
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:992,1
    - Dst: fr_atomic_ring_pop
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1002,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1003,1
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1003,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1004,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 1010
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TALLOC_FREE
    - rd_kafka_flush
    - fr_time_delta_to_msec
    - WARN
    - free
    - talloc_get_type_abort
    - rd_kafka_outq_len
    - fr_assert
    - rd_kafka_purge
    - talloc_get_type_abort_const
    - atomic_load_explicit
    - fr_atomic_ring_pop
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1026,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1031,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1039,1
    - Dst: fr_atomic_ring_alloc
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1039,1
    - Dst: fr_event_user_insert
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1041,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1047
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - talloc_get_type_abort
    - fr_event_user_insert
    - fr_atomic_ring_alloc
    - MEM
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1062,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1071,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1071,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1073,1
    - Dst: rd_kafka_conf_dup
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1073,1
    - Dst: rd_kafka_conf_set_log_cb
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1074,1
    - Dst: rd_kafka_conf_set_background_event_cb
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1075,1
    - Dst: rd_kafka_conf_set_events
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1076,1
    - Dst: rd_kafka_conf_set_opaque
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1077,1
    - Dst: rd_kafka_new
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1079,1
    - Dst: rd_kafka_conf_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1081,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1082,1
    - Dst: rd_kafka_queue_get_main
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1092,1
    - Dst: rd_kafka_queue_get_background
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1093,1
    - Dst: rd_kafka_queue_forward
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1095,1
    - Dst: rd_kafka_queue_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1096,1
    - Dst: rd_kafka_queue_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1097,1
    - Dst: kafka_topics_alloc
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1100,1
    - Dst: rd_kafka_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1107
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - rd_kafka_conf_set_events
    - ERROR
    - rd_kafka_destroy
    - rd_kafka_new
    - rd_kafka_queue_get_main
    - rd_kafka_queue_get_background
    - rd_kafka_conf_set_opaque
    - talloc_get_type_abort
    - rd_kafka_queue_destroy
    - rd_kafka_conf_destroy
    - rd_kafka_conf_dup
    - rd_kafka_queue_forward
    - kafka_topics_alloc
    - rd_kafka_conf_set_background_event_cb
    - MEM
    - rd_kafka_conf_set_log_cb
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1123,1
    - Dst: rd_kafka_flush
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1128,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1128,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1130,1
    - Dst: rd_kafka_outq_len
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1131,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1135,1
    - Dst: rd_kafka_destroy
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1143
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - rd_kafka_destroy
    - TALLOC_FREE
    - WARN
    - rd_kafka_flush
    - fr_time_delta_to_msec
    - rd_kafka_outq_len
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1159,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1161,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1166
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    - xlat_func_instantiate_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_kafka_init
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1178
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - fr_kafka_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_kafka_free
      Src: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1184
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_kafka/rlm_kafka.c
    functionUses: 0
    functionsReached:
    - fr_kafka_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ub_cancel
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ur
    argTypes:
    - unbound_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: _unbound_request_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - ub_cancel
    linkageType: ''
    returnType: int
    signature: int _unbound_request_free(unbound_request_t *ur)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:105,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:117,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:124,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:129,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:131,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:134,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:140,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:144,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:148,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:150,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:156,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:157,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:160,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:163,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:171,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:173,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:174,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:176,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:180,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:185,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:189,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:190,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:193,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:195,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:196,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:198,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:198,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:206,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:207,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:221,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:224,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:224,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:225,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:227,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:230,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:234,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:235,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:237,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:241,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:245,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:252,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 99
    argCount: 7
    argNames:
    - mydata
    - rcode
    - packet
    - packet_len
    - sec
    - 'why_bogus

      #if UNBOUND_VERSION_MAJOR > 1 || (UNBOUND_VERSION_MAJOR == 1  UNBOUND_VERSION_MINOR
      > 7)'
    - int
    argTypes:
    - void*
    - int
    - void*
    - int
    - int
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 253
    functionName: xlat_unbound_callback
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DISARM
    - fr_dbuff_init
    - REDEBUG
    - MEM
    - fr_dns_label_to_value_box
    - fr_value_box_alloc_null
    - talloc_get_type_abort
    - fr_dbuff_remaining
    - fr_dbuff_advance
    - RHEXDUMP4
    - unlang_interpret_mark_runnable
    - fr_dbuff_out
    - fr_dbuff_current
    - fr_value_box_list_init
    - fr_value_box_list_insert_tail
    - RERROR
    - fr_value_box_from_network
    - talloc_free
    - fr_value_box_list_talloc_free
    - RDEBUG4
    linkageType: ''
    returnType: void
    signature: "void xlat_unbound_callback(void *mydata, int rcode, void *packet,
      int packet_len, int sec,\n\t\t\t\t  char *why_bogus\n#if UNBOUND_VERSION_MAJOR
      > 1 || (UNBOUND_VERSION_MAJOR == 1 && UNBOUND_VERSION_MINOR > 7)\n\t\t\t\t  ,
      UNUSED int rate_limited\n#endif\n\t\t\t\t  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:260,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:263,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *el
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: xlat_unbound_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void xlat_unbound_timeout(UNUSED fr_timer_list_t *el, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:274,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:276,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_signal_t
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: xlat_unbound_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - talloc_get_type_abort
    - FR_TIMER_DISARM
    linkageType: ''
    returnType: void
    signature: void xlat_unbound_signal(xlat_ctx_t const *xctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:290,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:307,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:309,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:312,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:313,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:314,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:315,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:316,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:317,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:318,1
    - Dst: RCODEERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:319,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:325,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:326,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 331
    functionName: xlat_unbound_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_free
    - REDEBUG
    - talloc_get_type_abort
    - fr_value_box_list_pop_head
    - RCODEERROR
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_unbound_resume(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request, UNUSED
      fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _code
    - ','
    - _message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: RCODEERROR
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCODEERROR(_code, _message)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:349,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:350,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:351,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:352,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:353,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:357,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:361,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:361,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:361,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:362,1
    - Dst: UB_QUERY
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:386,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:394,1
    - Dst: xlat_unbound_resume
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:407,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:410,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:410,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:412,1
    - Dst: ub_cancel
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:413,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 418
    functionName: xlat_unbound
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - xlat_unbound_resume
    - unlang_xlat_yield
    - UB_QUERY
    - ub_cancel
    - talloc_set_destructor
    - REDEBUG
    - talloc_get_type_abort
    - fr_timer_in
    - talloc_zero
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - fr_time_delta_from_msec
    - MEM
    - fr_value_box_list_next
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_unbound(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \ xlat_ctx_t const *xctx,\n\t\t\t\t  request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _record
    - ','
    - _rrvalue
    - ','
    - _return
    - ','
    - _hasprio
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: UB_QUERY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UB_QUERY(_record, _rrvalue, _return, _hasprio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: else
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    linkageType: ''
    returnType: else
    signature: else else
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:422,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:423,1
    - Dst: unbound_io_init
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:427,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:428,1
    - Dst: ub_ctx_async
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:435,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:438,1
    - Dst: ub_strerror
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:438,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:440,1
    - Dst: ub_ctx_config
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:447,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:447,1
    - Dst: unbound_log_init
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:450,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:451,1
    - Dst: ub_ctx_resolvconf
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:458,1
    - Dst: ub_ctx_hosts
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:463,1
    - Dst: ub_ctx_data_remove
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 473
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - ub_strerror
    - ub_ctx_data_remove
    - talloc_free
    - UNCONST
    - unbound_io_init
    - talloc_get_type_abort
    - ub_ctx_resolvconf
    - ub_ctx_async
    - ub_ctx_config
    - PERROR
    - unbound_log_init
    - ub_ctx_hosts
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:477,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 483
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:487,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:491,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:495,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/rlm_unbound.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - cf_log_err
    - talloc_get_type_abort
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:91,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:94,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ub_ev
    - flags
    argTypes:
    - struct ub_event*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: _unbound_io_event_flags_add
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _unbound_io_event_flags_add(struct ub_event *ub_ev, short flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:107,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:110,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ub_ev
    - flags
    argTypes:
    - struct ub_event*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: _unbound_io_event_flags_del
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _unbound_io_event_flags_del(struct ub_event *ub_ev, short flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:123,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:125,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ub_ev
    - fd
    argTypes:
    - struct ub_event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: _unbound_io_event_fd_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _unbound_io_event_fd_set(struct ub_event *ub_ev, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:139,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:141,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ub_ev
    argTypes:
    - struct ub_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: _unbound_io_event_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _unbound_io_event_free(struct ub_event *ub_ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:155,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:157,1
    - Dst: unbound_io_event_t*::cb
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: _unbound_io_service_timer_expired
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - unbound_io_event_t*::cb
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _unbound_io_service_timer_expired(UNUSED fr_timer_list_t *tl,
      UNUSED fr_time_t now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:170,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:172,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:174,1
    - Dst: unbound_io_event_t*::cb
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:176,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:182,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:183,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: _unbound_io_service_readable
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort
    - fr_assert
    - unbound_io_event_t*::cb
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _unbound_io_service_readable(fr_event_list_t *el, int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:194,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:196,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:198,1
    - Dst: unbound_io_event_t*::cb
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:200,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:206,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:207,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 211
    functionName: _unbound_io_service_writable
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort
    - fr_assert
    - unbound_io_event_t*::cb
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _unbound_io_service_writable(fr_event_list_t *el, int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:224,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:226,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:228,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:228,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:235,1
    - Dst: unbound_io_event_t*::cb
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 238
    functionName: _unbound_io_service_errored
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - FR_TIMER_DISARM
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - unbound_io_event_t*::cb
    linkageType: ''
    returnType: void
    signature: "void _unbound_io_service_errored(UNUSED fr_event_list_t *el,\n\t\t\t\t\tint
      fd, UNUSED int flags, int fd_errno, void *uctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:246,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:248,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:254,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:256,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:258,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:263,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:269,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:271,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:273,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:278,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:284,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:286,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:288,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:293,1
    - Dst: fr_time_delta_from_timeval
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:304,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:306,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:306,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:308,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:310,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - ub_ev
    - tv
    argTypes:
    - struct ub_event*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 323
    functionName: _unbound_io_event_activate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_event_fd_insert
    - fr_time_delta_from_timeval
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_timer_in
    - fr_assert
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: int
    signature: int _unbound_io_event_activate(struct ub_event *ub_ev, struct timeval
      *tv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:330,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:336,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:338,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:339,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:346,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ub_ev
    argTypes:
    - struct ub_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: _unbound_io_event_deactivate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort
    - FR_TIMER_DISARM_RETURN
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: int
    signature: int _unbound_io_event_deactivate(struct ub_event *ub_ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:363,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:367,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:370,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:375,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:379,1
    - Dst: fr_time_delta_from_timeval
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:381,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:383,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:383,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:385,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ub_ev
    - ev_b
    - uctx
    - tv
    argTypes:
    - struct ub_event*
    - UNUSED*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 394
    functionName: _unbound_io_timer_modify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_time_delta_from_timeval
    - talloc_get_type_abort
    - fr_box_time_delta
    - FR_TIMER_DISARM_RETURN
    - fr_timer_in
    - fr_assert
    - PERROR
    linkageType: ''
    returnType: int
    signature: "int _unbound_io_timer_modify(struct ub_event *ub_ev, UNUSED struct
      ub_event_base *ev_b,\n\t\t\t\t    void (*cb)(int, short, void*),\n\t\t\t\t    void
      *uctx, struct timeval *tv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:401,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:403,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:405,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ub_ev
    argTypes:
    - struct ub_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: _unbound_io_timer_deactivate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_assert
    - FR_TIMER_DISARM_RETURN
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int _unbound_io_timer_deactivate(struct ub_event *ub_ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:419,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:433,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:433,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - base
    - fd
    - flags
    - uctx
    argTypes:
    - struct ub_event_base*
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 446
    functionName: _unbound_io_event_new
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_zero
    - MEM
    - talloc_get_type_abort
    linkageType: ''
    returnType: struct ub_event
    signature: "struct ub_event *_unbound_io_event_new(struct ub_event_base* base,
      int fd, short flags,\n\t\t\t\t\t      void (*cb)(int, short, void*), void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ub_ctx_delete
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ev_b
    argTypes:
    - unbound_io_event_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: _event_base_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 0
    functionsReached:
    - ub_ctx_delete
    linkageType: ''
    returnType: int
    signature: int _event_base_free(unbound_io_event_base_t *ev_b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:482,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:482,1
    - Dst: ub_ctx_create_ub_event
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:492,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:494,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:495,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_unbound/io.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - ev_b_out
    - el
    argTypes:
    - TALLOC_CTX*
    - unbound_io_event_base_t**
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 503
    functionName: unbound_io_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/io.c
    functionUses: 1
    functionsReached:
    - ERROR
    - TALLOC_FREE
    - talloc_set_destructor
    - talloc_zero
    - MEM
    - ub_ctx_create_ub_event
    linkageType: ''
    returnType: int
    signature: int unbound_io_init(TALLOC_CTX *ctx, unbound_io_event_base_t **ev_b_out,
      fr_event_list_t *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:40,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:47,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cookie
    - buf
    - size
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: _unbound_log_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/log.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - talloc_get_type_abort
    - fr_box_strvalue_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _unbound_log_write(void *cookie, char const *buf, size_t size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ub_ctx_debuglevel
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:90,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ub
    - lvl
    argTypes:
    - struct ub_ctx*
    - fr_log_lvl_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 97
    functionName: unbound_log_lvl_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/log.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ub_ctx_debuglevel
    linkageType: ''
    returnType: int
    signature: int unbound_log_lvl_set(struct ub_ctx *ub, fr_log_lvl_t lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unbound_log_lvl_set
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u_log
    - ub
    - request
    argTypes:
    - unbound_log_t*
    - struct ub_ctx*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: unbound_log_to_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/log.c
    functionUses: 0
    functionsReached:
    - unbound_log_lvl_set
    linkageType: ''
    returnType: int
    signature: int unbound_log_to_request(unbound_log_t *u_log, struct ub_ctx *ub,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unbound_log_lvl_set
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - u_log
    - ub
    argTypes:
    - unbound_log_t*
    - struct ub_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: unbound_log_to_global
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/log.c
    functionUses: 0
    functionsReached:
    - unbound_log_lvl_set
    linkageType: ''
    returnType: int
    signature: int unbound_log_to_global(unbound_log_t *u_log, struct ub_ctx *ub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - u_log
    argTypes:
    - unbound_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: _unbound_log_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/log.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: int
    signature: int _unbound_log_free(unbound_log_t *u_log)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ub_ctx_get_option
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:140,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:142,1
    - Dst: ub_strerror
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:142,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:146,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:147,1
    - Dst: ub_ctx_set_option
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:149,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:151,1
    - Dst: ub_strerror
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:151,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:152,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:156,1
    - Dst: ub_ctx_get_option
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:158,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:160,1
    - Dst: ub_strerror
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:160,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:164,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:165,1
    - Dst: ub_ctx_set_option
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:167,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:169,1
    - Dst: ub_strerror
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:169,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:170,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:174,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:176,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:176,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:183,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:185,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:185,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:186,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:189,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:190,1
    - Dst: ub_ctx_debugout
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:192,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:194,1
    - Dst: ub_strerror
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:194,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:195,1
    - Dst: unbound_log_to_global
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:202,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unbound/log.c:204,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 3
    argNames:
    - ctx
    - u_log_out
    - ub
    argTypes:
    - TALLOC_CTX*
    - unbound_log_t**
    - struct ub_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 211
    functionName: unbound_log_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unbound/log.c
    functionUses: 1
    functionsReached:
    - ub_strerror
    - ERROR
    - WARN
    - talloc_free
    - talloc_set_destructor
    - ub_ctx_set_option
    - fr_syserror
    - free
    - ub_ctx_debugout
    - ub_ctx_get_option
    - talloc_zero
    - setlinebuf
    - unbound_log_to_global
    - strcmp
    - fopencookie
    - MEM
    linkageType: ''
    returnType: int
    signature: int unbound_log_init(TALLOC_CTX *ctx, unbound_log_t **u_log_out, struct
      ub_ctx *ub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: filename_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - fr_hash_string
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t filename_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:43,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: filename_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t filename_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:51,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: file_batching_mod_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_syserror
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t file_batching_mod_resume(UNUSED unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:65,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:65,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:69,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:69,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: file_batching_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_syserror
    - fr_value_box_alloc
    - fr_dcursor_insert
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t file_batching_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:81,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - entry
    argTypes:
    - NDEBUG_UNUSED*
    - NDEBUG_UNUSED
    - rlm_linelog_file_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: _batching_handle_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: "void _batching_handle_signal(NDEBUG_UNUSED request_t *request,\n\t\t\t
      \    NDEBUG_UNUSED fr_signal_t action, rlm_linelog_file_entry_t *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _batching_handle_signal
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mctx
    - request
    - action
    argTypes:
    - module_ctx_t*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: file_batching_mod_handle_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - _batching_handle_signal
    linkageType: ''
    returnType: void
    signature: void file_batching_mod_handle_signal(module_ctx_t const *mctx, request_t
      *request, fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _batching_handle_signal
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - action
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: file_batching_xlat_handle_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - _batching_handle_signal
    linkageType: ''
    returnType: void
    signature: void file_batching_xlat_handle_signal(xlat_ctx_t const *xctx, request_t
      *request, fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - rlm_linelog_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: _file_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_delete
    linkageType: ''
    returnType: int
    signature: int _file_free(rlm_linelog_file_t *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: _batching_cleanup_timer
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _batching_cleanup_timer(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_is_resumable
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:119,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - file
    - start_entry
    - error
    argTypes:
    - rlm_linelog_file_t*
    - rlm_linelog_file_entry_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: batching_mark_entries_failed
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_is_resumable
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void batching_mark_entries_failed(rlm_linelog_file_t *file, rlm_linelog_file_entry_t
      *start_entry, int error)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:135,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:137,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:138,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:139,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:142,1
    - Dst: exfile_open
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:147,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:149,1
    - Dst: batching_mark_entries_failed
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:151,1
    - Dst: chown
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:155,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:156,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:156,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:165,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:166,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:171,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:177,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:178,1
    - Dst: fstat
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:181,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:182,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:182,1
    - Dst: fr_writev
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:188,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:188,1
    - Dst: ftruncate
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:193,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:194,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:195,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:199,1
    - Dst: fstat
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:206,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:207,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:207,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:214,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:217,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:217,1
    - Dst: fsync
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:222,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:223,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:223,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:232,1
    - Dst: ftruncate
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:233,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:235,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:236,1
    - Dst: batching_mark_entries_failed
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:239,1
    - Dst: unlang_interpret_is_resumable
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:248,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:249,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:254,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:255,1
    - Dst: fr_dbuff_reset_talloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:258,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:261,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:261,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:262,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 1
    argNames:
    - file
    argTypes:
    - rlm_linelog_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 265
    functionName: _batch_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_reset_talloc
    - FR_TIMER_DISARM
    - fr_dbuff_start
    - ftruncate
    - fr_timer_in
    - ERROR
    - fr_dbuff_used
    - ROPTIONAL
    - exfile_close
    - fr_type_is_null
    - unlang_interpret_mark_runnable
    - fstat
    - fr_syserror
    - UNCONST
    - fr_time_delta_gt
    - fr_assert
    - batching_mark_entries_failed
    - PERROR
    - fr_time_delta_from_sec
    - unlang_interpret_is_resumable
    - fr_time_delta_wrap
    - fr_writev
    - fsync
    - chown
    - talloc_get_type_abort_const
    - exfile_open
    linkageType: ''
    returnType: void
    signature: void _batch_write(rlm_linelog_file_t *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _batch_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: _batching_handle_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - _batch_write
    linkageType: ''
    returnType: void
    signature: void _batching_handle_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:279,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:280,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:282,1
    - Dst: fr_hash_table_find_by_key
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:286,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:286,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:290,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:290,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:291,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:293,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:294,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:294,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:298,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:299,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:301,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:309,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:311,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:312,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:316,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:323,1
    - Dst: fr_concatv
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:332,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:334,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:341,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:341,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:341,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:342,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:342,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:344,1
    - Dst: _batch_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 6
    argNames:
    - entry_p
    - mctx
    - call_env
    - request
    - vector_p
    - vector_len
    argTypes:
    - rlm_linelog_file_entry_t**
    - module_ctx_t*
    - linelog_call_env_t*
    - request_t*
    - struct iovec*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 358
    functionName: file_enqueue_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_find_by_key
    - FR_TIMER_DISARM
    - talloc_size
    - talloc_strdup
    - fr_timer_in
    - MEM
    - fr_value_box_alloc_null
    - fr_timer_armed
    - unlikely
    - RWARN
    - talloc_get_type_abort
    - talloc_set_destructor
    - _batch_write
    - fr_time_delta_gt
    - RPERROR
    - fr_assert
    - fr_hash_string
    - fr_time_delta_wrap
    - RERROR
    - fr_dbuff_init_talloc
    - talloc_free
    - fr_concatv
    - talloc_set_name_const
    - talloc_get_type_abort_const
    - fr_hash_table_insert
    - fr_value_box_copy
    linkageType: ''
    returnType: linelog_buffer_action_t
    signature: "linelog_buffer_action_t file_enqueue_write(rlm_linelog_file_entry_t
      **entry_p, module_ctx_t const *mctx,\n\t\t\t\t\t   linelog_call_env_t const
      *call_env, request_t *request,\n\t\t\t\t\t   struct iovec *vector_p, size_t
      vector_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:362,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/file.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - thread
    - tl
    argTypes:
    - rlm_linelog_thread_t*
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: file_thread_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/file.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_hash_table_alloc
    linkageType: ''
    returnType: void
    signature: void file_thread_init(rlm_linelog_thread_t *thread, fr_timer_list_t
      *tl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:181,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:181,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:181,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:182,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:182,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - linelog_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - close
    - shutdown
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(linelog_conn_t *conn)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:189,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:195,1
    - Dst: fr_socket_client_unix
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:196,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:198,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:204,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:204,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:206,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:208,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:214,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:214,1
    - Dst: fr_socket_client_udp
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:216,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:232,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:237,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:238,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:240,1
    - Dst: fr_socket_wait_for_connect
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:242,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:243,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:244,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:248,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:253,1
    - Dst: fr_blocking
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:253,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:254,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:255,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:259,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:261,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - instance
    - timeout
    argTypes:
    - TALLOC_CTX*
    - void*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 264
    functionName: mod_conn_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - fr_socket_wait_for_connect
    - fr_socket_client_unix
    - ERROR
    - fr_blocking
    - talloc_set_destructor
    - talloc_get_type_abort
    - fr_socket_client_tcp
    - fr_assert
    - fr_time_delta_ispos
    - talloc_zero
    - fr_socket_client_udp
    - close
    - DEBUG2
    - PERROR
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void *mod_conn_create(TALLOC_CTX *ctx, void *instance, fr_time_delta_t
      timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:284,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:284,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:285,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: linelog_escape_func
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup_shallow_replace
    - MEM
    - fr_asprint
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: int linelog_escape_func(fr_value_box_t *vb, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:294,1
    - Dst: fr_concatv
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:295,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:297,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:297,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - request
    - vector_p
    - vector_len
    - msg
    argTypes:
    - request_t*
    - struct iovec*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: linelog_hexdump
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_start
    - fr_concatv
    - fr_dbuff_used
    - RHEXDUMP3
    - FR_DBUFF_TALLOC_THREAD_LOCAL
    linkageType: ''
    returnType: void
    signature: void linelog_hexdump(request_t *request, struct iovec *vector_p, size_t
      vector_len, char const *msg)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:304,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:318,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:325,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:326,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:327,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:327,1
    - Dst: exfile_open
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:331,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:333,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:333,1
    - Dst: chown
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:339,1
    - Dst: RPWARN
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:340,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:340,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:352,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:358,1
    - Dst: linelog_hexdump
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:364,1
    - Dst: writev
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:366,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:368,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:368,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:369,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:372,1
    - Dst: fsync
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:376,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:377,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:377,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:378,1
    - Dst: linelog_hexdump
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:383,1
    - Dst: writev
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:385,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:388,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:398,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:405,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:411,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:419,1
    - Dst: fr_pool_state
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:424,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:425,1
    - Dst: linelog_hexdump
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:432,1
    - Dst: fr_writev
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:433,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:443,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:444,1
    - Dst: fr_pool_connection_reconnect
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:445,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:455,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:460,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:460,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:464,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:468,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:472,1
    - Dst: syslog
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:483,1
    - Dst: writev
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:494,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:495,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:496,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:497,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:503,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 149
    argCount: 6
    argNames:
    - inst
    - call_env
    - request
    - vector_p
    - vector_len
    - with_delim
    argTypes:
    - rlm_linelog_t*
    - linelog_call_env_t*
    - request_t*
    - struct iovec*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 509
    functionName: linelog_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - RPWARN
    - memcpy
    - fr_pool_connection_release
    - strrchr
    - fr_pool_state
    - fr_strerror
    - RWARN
    - read
    - fr_table_str_by_value
    - exfile_close
    - fr_time_delta_ispos
    - fr_pool_connection_get
    - syslog
    - RINFO
    - fr_pool_connection_reconnect
    - linelog_hexdump
    - fr_syserror
    - writev
    - fr_assert
    - RDEBUG2
    - fr_mkdir
    - fr_time_delta_wrap
    - RERROR
    - fr_writev
    - fsync
    - chown
    - exfile_open
    linkageType: ''
    returnType: int
    signature: int linelog_write(rlm_linelog_t const *inst, linelog_call_env_t const
      *call_env, request_t *request, struct iovec *vector_p, size_t vector_len, bool
      with_delim)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:515,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:516,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:524,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:526,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:532,1
    - Dst: file_enqueue_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:540,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:548,1
    - Dst: linelog_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:553,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:558,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:558,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:561,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 564
    functionName: linelog_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - memcpy
    - linelog_write
    - XLAT_ARGS
    - UNCONST
    - talloc_get_type_abort
    - fr_value_box_alloc
    - talloc_get_type_abort_const
    - file_enqueue_write
    - fr_dcursor_insert
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t linelog_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \ xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t  fr_value_box_list_t
      *args)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:573,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:574,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:575,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:580,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:582,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:591,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:591,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:592,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:595,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:595,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:596,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:602,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:608,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:618,1
    - Dst: file_enqueue_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:627,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:635,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:639,1
    - Dst: linelog_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:639,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 640
    functionName: mod_do_linelog_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_cast_in_place
    - talloc_array
    - memcpy
    - linelog_write
    - REDEBUG
    - UNCONST
    - talloc_get_type_abort
    - fr_value_box_list_foreach
    - RDEBUG2
    - unlang_module_yield
    - talloc_get_type_abort_const
    - fr_value_box_list_num_elements
    - file_enqueue_write
    - RETURN_UNLANG_RCODE
    - MEM
    linkageType: ''
    returnType: void
    signature: void mod_do_linelog_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:655,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:656,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:665,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:668,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:686,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:691,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:700,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:704,1
    - Dst: RPDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:706,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:710,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:711,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:715,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:716,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:718,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:719,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:720,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:721,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:722,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:730,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:731,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:731,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:732,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:742,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:748,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:748,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:751,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:752,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:753,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:763,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:769,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:791,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:791,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:792,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:794,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:799,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:799,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:810,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:820,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:824,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:829,1
    - Dst: file_enqueue_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:836,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:838,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:839,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:849,1
    - Dst: linelog_write
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:852,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:855,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:856,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:858,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:868,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:868,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:869,1
    - Dst: unlang_module_yield_to_tmpl
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:872,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 124
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 653
    functionDepth: 4
    functionLinenumber: 653
    functionLinenumberEnd: 875
    functionName: mod_do_linelog
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fr_value_box_aprint
    - memcpy
    - talloc_array
    - talloc_realloc
    - REDEBUG
    - fr_value_box_strdup_shallow
    - unlang_module_yield
    - tmpl_dcursor_clear
    - fr_strerror
    - MEM
    - cf_log_err
    - fr_dcursor_next
    - RPDEBUG2
    - REMARKER
    - talloc_get_type_abort
    - unlang_interpret_frame_talloc_ctx
    - unlang_module_yield_to_tmpl
    - cf_pair_value_quote
    - unlang_interpret_event_list
    - fr_value_box_list_init
    - FR_SBUFF_IN
    - cf_reference_item
    - RPERROR
    - RDEBUG2
    - talloc_strlen
    - cf_item_is_pair
    - RETURN_UNLANG_RCODE
    - tmpl_resolve
    - fr_value_box_init_null
    - linelog_write
    - talloc_free
    - cf_pair_value
    - talloc
    - tmpl_dcursor_init
    - tmpl_init_shallow
    - talloc_get_type_abort_const
    - tmpl_afrom_substr
    - file_enqueue_write
    linkageType: ''
    returnType: void
    signature: void mod_do_linelog(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:883,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:885,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:891,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:903,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:904,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:904,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:904,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:904,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:905,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 910
    functionName: call_env_filename_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - cf_pair_value
    - FR_SBUFF_IN
    - fr_table_value_by_str
    - tmpl_afrom_substr
    - talloc_get_type_abort_const
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int call_env_filename_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules, CONF_ITEM *ci,\n\t\t\t\t   call_env_ctx_t const *cec, UNUSED
      call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:914,1
    - Dst: fr_pool_free
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - fr_pool_free
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:926,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:930,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:932,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:936,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:944,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:947,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:950,1
    - Dst: module_rlm_exfile_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:952,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:955,1
    - Dst: strtol
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:962,1
    - Dst: fr_perm_gid_from_str
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:964,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:965,1
    - Dst: FR_TIME_DELTA_COND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:972,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:973,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:973,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:973,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:975,1
    - Dst: fr_time_delta_mul
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:982,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:985,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:986,1
    - Dst: FR_TIME_DELTA_COND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:988,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:989,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:989,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:989,1
    - Dst: FR_TIME_DELTA_COND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:991,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:992,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:992,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:992,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1005,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1009,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1011,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1017,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1019,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1029,1
    - Dst: module_rlm_connection_pool_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1032,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1032,1
    - Dst: module_rlm_connection_pool_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1039,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1039,1
    - Dst: module_rlm_connection_pool_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1045,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1045,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1056,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1060,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 95
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 1064
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_log_err
    - talloc_get_type_abort
    - fr_perm_gid_from_str
    - FR_INTEGER_BOUND_CHECK
    - fr_table_value_by_str
    - fr_time_delta_unwrap
    - fr_time_delta_gt
    - strtol
    - fr_time_delta_lt
    - module_rlm_connection_pool_init
    - fr_assert
    - fr_time_delta_mul
    - cf_pair_find
    - talloc_strlen
    - module_rlm_exfile_init
    - fr_time_delta_wrap
    - snprintf
    - FR_TIME_DELTA_COND_CHECK
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1075,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1076,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1080
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1086,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1089,1
    - Dst: file_thread_init
      Src: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1094
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_linelog/rlm_linelog.c
    functionUses: 0
    functionsReached:
    - file_thread_init
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:78,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:79,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:90,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:93,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:98,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:106,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:113,1
    - Dst: fr_base32_decode
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:115,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:115,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:115,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:117,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:125,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:127,1
    - Dst: fr_totp_cmp
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 141
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - RERROR
    - fr_base32_decode
    - RWARN
    - FR_SBUFF_IN
    - talloc_get_type_abort
    - FR_DBUFF_TMP
    - RDEBUG2
    - talloc_get_type_abort_const
    - fr_type_is_null
    - fr_totp_cmp
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:155,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:157,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:158,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:160,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:161,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:163,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:165,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:167,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_totp/rlm_totp.c
    functionUses: 0
    functionsReached:
    - FR_INTEGER_BOUND_CHECK
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: RDEBUG3
    functionSourceFile: /src/freeradius-server/src/modules/rlm_totp/totp.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:46,1
    - Dst: vfprintf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:47,1
    - Dst: va_end
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:48,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: totp_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_totp/totp.c
    functionUses: 0
    functionsReached:
    - printf
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void totp_log(char const *fmt, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:83,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:87,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:92,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:97,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:125,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:143,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:148,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:149,1
    - Dst: fr_time_strftime_local
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:151,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:151,1
    - Dst: fr_time_strftime_local
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:152,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:152,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:154,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:154,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:154,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:155,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:156,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:159,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 6
    argNames:
    - cfg
    - request
    - now
    - key
    - keylen
    - totp
    argTypes:
    - fr_totp_t*
    - request_t*
    - time_t
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 172
    functionName: fr_totp_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_totp/totp.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - fr_time_strftime_local
    - fr_time_wrap
    - FR_SBUFF_OUT
    - snprintf
    - fr_hmac_sha1
    - fr_assert
    - RDEBUG3
    - fr_digest_cmp
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_totp_cmp(fr_totp_t const *cfg, request_t *request, time_t now,
      uint8_t const *key, size_t keylen, char const *totp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:188,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:192,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:194,1
    - Dst: fr_base32_decode
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:198,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:198,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:198,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:199,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:202,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:204,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:212,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:216,1
    - Dst: sscanf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:220,1
    - Dst: fr_totp_cmp
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:222,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:222,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:225,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_totp/totp.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 231
    functionName: main
    functionSourceFile: /src/freeradius-server/src/modules/rlm_totp/totp.c
    functionUses: 1
    functionsReached:
    - fr_totp_cmp
    - sscanf
    - fr_base32_decode
    - FR_SBUFF_IN_STR
    - fprintf
    - FR_DBUFF_TMP
    - strlen
    - strcmp
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - data_len
    - checksum
    argTypes:
    - uint8_t*
    - size_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: icmp_checksum
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t icmp_checksum(uint8_t *data, size_t data_len, uint16_t checksum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:114,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:115,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:118,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:118,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:121,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:122,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: xlat_icmp_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - fr_value_box_alloc
    - fr_dcursor_insert
    - fr_rb_delete
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_icmp_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t *request, UNUSED
      fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:131,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:132,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:134,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:136,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_signal_t
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: xlat_icmp_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_rb_delete
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void xlat_icmp_cancel(xlat_ctx_t const *xctx, request_t *request, UNUSED
      fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:143,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:147,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_time_t
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: _xlat_icmp_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void _xlat_icmp_timeout(xlat_ctx_t const *xctx, request_t *request,
      UNUSED fr_time_t fired)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:170,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:171,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:178,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:185,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:186,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:190,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:190,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:202,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:204,1
    - Dst: unlang_xlat_timeout_add
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:208,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:209,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:209,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:210,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:212,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:216,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:225,1
    - Dst: fr_ip6_pseudo_header_checksum
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:236,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:243,1
    - Dst: icmp_checksum
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:243,1
    - Dst: sendto
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:245,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:247,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:247,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:248,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:249,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:254,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:255,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:256,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 5
    argNames:
    - ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 261
    functionName: xlat_icmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - icmp_checksum
    - fr_value_box_cast_in_place
    - REDEBUG
    - fr_time_add
    - MEM
    - unlang_xlat_yield
    - htons
    - RPEDEBUG
    - sendto
    - fr_time
    - fr_ip6_pseudo_header_checksum
    - talloc_get_type_abort
    - fr_rb_insert
    - fr_ipaddr_to_sockaddr
    - fr_syserror
    - unlang_xlat_timeout_add
    - fr_rb_delete
    - RDEBUG
    - talloc_free
    - talloc_zero
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_icmp(TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,\n\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: echo_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t echo_cmp(void const *one, void const *two)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:276,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:277,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:284,1
    - Dst: HEXDUMP4
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:287,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:292,1
    - Dst: IP_V
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:300,1
    - Dst: IP_HL
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:304,1
    - Dst: IP_HL
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:308,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:344,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:346,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:350,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:356,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - sockfd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 357
    functionName: mod_icmp_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - HEXDUMP4
    - IP_V
    - IP_HL
    - read
    - fr_rb_num_elements
    - talloc_get_type_abort
    - fr_rb_find
    - fr_rb_delete
    - DEBUG
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void mod_icmp_read(UNUSED fr_event_list_t *el, UNUSED int sockfd, UNUSED
      int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:362,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:363,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:365,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:367,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - el
    - sockfd
    - flags
    - fd_errno
    - uctx
    argTypes:
    - fr_event_list_t*
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: mod_icmp_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_event_fd_delete
    - talloc_get_type_abort
    - close
    linkageType: ''
    returnType: void
    signature: "void mod_icmp_error(fr_event_list_t *el, UNUSED int sockfd, UNUSED
      int flags,\n\t\t\t   UNUSED int fd_errno, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:377,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:381,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 386
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - fr_event_fd_delete
    - talloc_get_type_abort
    - close
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:394,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:395,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:404,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:404,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:405,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:407,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:407,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:420,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:421,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:427,1
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:458,1
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:459,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:461,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:462,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:463,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:464,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:468,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:469,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:483,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:484,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:492,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:497,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:498,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 504
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_cloexec
    - socket
    - fr_strerror_printf
    - fr_syserror
    - talloc_get_type_abort
    - fr_socket_bind
    - fr_table_str_by_value
    - fr_rand
    - fr_rb_inline_alloc
    - talloc_zero
    - fr_event_fd_insert
    - fr_strerror_const_push
    - close
    - fr_strerror_const
    - MEM
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:508,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:510,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:510,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:511,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_from_msec
    - talloc_get_type_abort
    - FR_TIME_DELTA_BOUND_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:520,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:530,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:530,1
    - Dst: fr_cap_enable
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:535,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:535,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 543
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_icmp/rlm_icmp.c
    functionUses: 0
    functionsReached:
    - fr_cap_enable
    - geteuid
    - PERROR
    - PWARN
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RINFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:203,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:204,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:205,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:207,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:208,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:209,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:214,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:215,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:216,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:217,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:218,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:219,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:220,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:221,1
    - Dst: REDEBUG4
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:222,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:224,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 1
    functionsReached:
    - REDEBUG3
    - RERROR
    - RDEBUG
    - RINFO
    - REXDENT
    - RWARN
    - REDEBUG2
    - pthread_self
    - REDEBUG
    - fr_cond_assert
    - RINDENT
    - RDEBUG2
    - RWDEBUG
    - REDEBUG4
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:236,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, UNUSED request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:248,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: mod_preacct
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void mod_preacct(unlang_result_t *p_result, module_ctx_t const *mctx,
      UNUSED request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:260,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: mod_accounting
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - pthread_self
    linkageType: ''
    returnType: void
    signature: void mod_accounting(unlang_result_t *p_result, module_ctx_t const *mctx,
      UNUSED request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: mod_return
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mod_return(unlang_result_t *p_result, UNUSED module_ctx_t const
      *mctx, UNUSED request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: mod_retry_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_retry_resume(unlang_result_t *p_result, UNUSED
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:290,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: mod_retry_resume_retry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - RDEBUG
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_retry_resume_retry(UNUSED unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: mod_retry_resume_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_retry_resume_timeout(unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:309,1
    - Dst: unlang_module_set_resume
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:310,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:311,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:315,1
    - Dst: unlang_module_set_resume
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:316,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - mctx
    - request
    - action
    argTypes:
    - UNUSED*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 327
    functionName: mod_retry_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - unlang_module_set_resume
    - RDEBUG
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void mod_retry_signal(UNUSED module_ctx_t const *mctx, request_t *request,
      fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: mod_retry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    linkageType: ''
    returnType: void
    signature: void mod_retry(UNUSED unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:351,1
    - Dst: trigger
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:354,1
    - Dst: unlang_interpret_get
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:354,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:355,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:359,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:359,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 364
    functionName: trigger_test_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - fr_dcursor_append
    - fr_value_box_alloc
    - trigger
    - MEM
    - unlang_interpret_get
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t trigger_test_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t       fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:385,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:385,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:387,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:387,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:388,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 396
    functionName: test_xlat_passthrough
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dcursor_append
    - talloc_free
    - fr_value_box_alloc
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t test_xlat_passthrough(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t                   UNUSED xlat_ctx_t const *xctx, UNUSED request_t
      *request,\n\t\t\t                   fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:385,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:385,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:387,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:387,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:388,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_dcursor_append
    - talloc_free
    - fr_value_box_alloc
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: test_xlat_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t test_xlat_fail(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t    UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request,\n\t\t\t\t
      \   UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:423,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:423,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: test_xlat_null
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_value_box_alloc
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t test_xlat_null(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx, UNUSED request_t *request,\n\t\t\t\t    UNUSED
      fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:431,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:432,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:435,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - INFO
    - pthread_self
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:443,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:445,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:447,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - INFO
    - fr_cond_assert
    - pthread_self
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:464,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:470,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:471,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:472,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:473,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:474,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:475,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:476,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:482,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:484,1
    - Dst: talloc_foreach
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:488,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:488,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:490,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:493,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:494,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:496,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:497,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 502
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - INFO
    - ERROR
    - WARN
    - talloc_foreach
    - talloc_get_type_abort
    - xlat_func_args_set
    - DEBUG2
    - module_rlm_xlat_register
    - DEBUG
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:508,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_test/rlm_test.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_test/rlm_test.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:123,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:125,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:127,1
    - Dst: fr_pair_print
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:128,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:129,1
    - Dst: fputs
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - vp
    argTypes:
    - FILE*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: fr_pair_fprint
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_in_char
    - FR_SBUFF_OUT
    - fr_pair_print
    - fputs
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void fr_pair_fprint(FILE *fp, fr_pair_t const *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: detail_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t detail_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: detail_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t detail_cmp(void const *a, void const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:154,1
    - Dst: module_rlm_exfile_init
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:157,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:157,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_from_sec
    - cf_log_err
    - talloc_get_type_abort
    - module_rlm_exfile_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:174,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:175,1
    - Dst: fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:178,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - out
    - stacked
    argTypes:
    - TALLOC_CTX*
    - FILE*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: detail_fr_pair_fprint
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_fprint
    - fr_pair_copy
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void detail_fr_pair_fprint(TALLOC_CTX *ctx, FILE *out, fr_pair_t const
      *stacked)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:186,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:188,1
    - Dst: fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:189,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:193,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:193,1
    - Dst: detail_recurse
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - out
    - ht
    - list
    argTypes:
    - FILE*
    - fr_hash_table_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 199
    functionName: detail_recurse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_hash_table_find
    - fr_type_is_structural
    - detail_recurse
    - fr_pair_fprint
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int detail_recurse(FILE *out, fr_hash_table_t *ht, fr_pair_list_t *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:186,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:188,1
    - Dst: fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:189,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:193,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:193,1
    - Dst: detail_recurse
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 2
    functionsReached:
    - fr_type_is_leaf
    - fr_hash_table_find
    - fr_type_is_structural
    - detail_recurse
    - fr_pair_fprint
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:216,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:217,1
    - Dst: WRITE
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:225,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:230,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:230,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:231,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:234,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:234,1
    - Dst: WRITE
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:241,1
    - Dst: WRITE
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:243,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:253,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:254,1
    - Dst: detail_fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:259,1
    - Dst: detail_fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:260,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:262,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:263,1
    - Dst: detail_fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:265,1
    - Dst: detail_fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:266,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:273,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:280,1
    - Dst: fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:281,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:283,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:283,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:290,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:290,1
    - Dst: detail_recurse
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:292,1
    - Dst: WRITE
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:295,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:295,1
    - Dst: WRITE
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:297,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 7
    argNames:
    - out
    - inst
    - request
    - header
    - packet
    - list
    - ht
    argTypes:
    - FILE*
    - rlm_detail_t*
    - request_t*
    - fr_value_box_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 300
    functionName: detail_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_dict_enum_name_by_value
    - RERROR
    - fr_time_to_sec
    - fr_pair_find_by_da_nested
    - fr_dict_attr_by_name
    - fr_type_is_leaf
    - fr_hash_table_find
    - fr_type_is_structural
    - fr_syserror
    - WRITE
    - detail_recurse
    - fr_pair_fprint
    - fr_assert
    - RWDEBUG
    - detail_fr_pair_fprint
    - fr_dict_root
    - fr_box_uint32
    linkageType: ''
    returnType: int
    signature: "int detail_write(FILE *out, rlm_detail_t const *inst, request_t *request,
      fr_value_box_t *header,\n\t\t\tfr_packet_t *packet, fr_pair_list_t *list, fr_hash_table_t
      *ht)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: WRITE
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE(fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:273,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:280,1
    - Dst: fr_pair_fprint
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:281,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:283,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:283,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:290,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:290,1
    - Dst: detail_recurse
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:292,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 293
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 2
    functionsReached:
    - RERROR
    - fr_type_is_leaf
    - fr_hash_table_find
    - fr_type_is_structural
    - fr_syserror
    - detail_recurse
    - fr_pair_fprint
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:308,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:312,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:314,1
    - Dst: exfile_open
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:316,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:318,1
    - Dst: chown
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:325,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:326,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:326,1
    - Dst: dup
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:331,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:333,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:340,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:341,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:341,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:343,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:344,1
    - Dst: detail_write
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:348,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:353,1
    - Dst: exfile_close
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - packet
    - list
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 360
    functionName: detail_do
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - RERROR
    - dup
    - fr_syserror
    - talloc_get_type_abort
    - RPERROR
    - chown
    - RDEBUG2
    - fdopen
    - exfile_close
    - detail_write
    - talloc_get_type_abort_const
    - exfile_open
    - fclose
    linkageType: ''
    returnType: void
    signature: "void detail_do(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request,\n\t\t\t\t\t\t  fr_packet_t *packet, fr_pair_list_t *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail_do
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: mod_accounting
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - detail_do
    linkageType: ''
    returnType: void
    signature: void mod_accounting(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail_do
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 5
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 1
    functionsReached:
    - detail_do
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: detail_do
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: mod_post_auth
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - detail_do
    linkageType: ''
    returnType: void
    signature: void mod_post_auth(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:390,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:392,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:405,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:406,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:406,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:406,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:406,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:407,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 412
    functionName: call_env_filename_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - cf_pair_value
    - FR_SBUFF_IN
    - tmpl_afrom_substr
    - talloc_get_type_abort_const
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int call_env_filename_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules,\n\t\t\t\t   CONF_ITEM *ci,\n\t\t\t\t   call_env_ctx_t const
      *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:418,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:419,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:419,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:426,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:426,1
    - Dst: FR_CALL_ENV_PARSE_ONLY_OFFSET
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:427,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:429,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:431,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:432,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:434,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:434,1
    - Dst: fr_dict_attr_search_by_qualified_oid
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:437,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:439,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:446,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:447,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:451,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:452,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:456,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:456,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:463,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:464,1
    - Dst: fr_hash_table_fill
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:468,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c:469,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 472
    functionName: call_env_suppress_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_detail/rlm_detail.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fr_hash_table_fill
    - call_env_parsed_add
    - fr_hash_table_alloc
    - fr_hash_table_num_elements
    - call_env_parsed_free
    - MEM
    - cf_item_to_section
    - FR_CALL_ENV_PARSE_ONLY_OFFSET
    - cf_item_next
    - cf_section_name
    - DEBUG
    - cf_pair_attr
    - cf_parent
    - fr_hash_table_find
    - cf_item_is_pair
    - fr_dict_attr_search_by_qualified_oid
    - cf_log_perr
    - talloc_free
    - call_env_parsed_set_data
    - cf_log_warn
    - fr_hash_table_insert
    linkageType: ''
    returnType: int
    signature: "int call_env_suppress_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out, tmpl_rules_t const *t_rules,\n\t\t\t\t   CONF_ITEM *ci,\n\t\t\t\t   UNUSED
      call_env_ctx_t const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: is_modhex
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_modhex(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:120,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:120,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:121,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - modhex
    - hex
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 129
    functionName: modhex2hex
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - memchr
    - tolower
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t modhex2hex(char const *modhex, char *hex, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:150,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:151,1
    - Dst: modhex2hex
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:156,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:158,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:159,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 165
    functionName: modhex_to_hex_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_free
    - REDEBUG
    - UNCONST
    - modhex2hex
    - fr_value_box_list_pop_head
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t modhex_to_hex_xlat(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      * out,\n\t\t\t\t\tUNUSED xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t\tfr_value_box_list_t
      *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:171,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:172,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:176,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:177,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:178,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:182,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:182,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:183,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 187
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dict_attr_autoload
    - xlat_func_register
    - xlat_func_flags_set
    - xlat_func_args_set
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:191,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:198,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:220,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:225,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:227,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:235,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:237,1
    - Dst: rlm_yubikey_ykclient_init
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:241,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 251
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - WARN
    - rlm_yubikey_ykclient_init
    - talloc_get_type_abort
    - fr_dict_enum_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rlm_yubikey_ykclient_detach
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:256,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - rlm_yubikey_ykclient_detach
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_modhex
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - inst
    - otp
    - len
    argTypes:
    - rlm_yubikey_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: otp_string_valid
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - is_modhex
    linkageType: ''
    returnType: void
    signature: void otp_string_valid(rlm_yubikey_t const *inst, char const *otp, size_t
      len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:281,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:292,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:299,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:316,1
    - Dst: otp_string_valid
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:323,1
    - Dst: RDMARKER
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:326,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:328,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:339,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:339,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:340,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:346,1
    - Dst: fr_pair_value_bstr_realloc
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:346,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:348,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:349,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:364,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:364,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:365,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:366,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:370,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 378
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 1
    functionsReached:
    - RDMARKER
    - fr_pair_value_bstrndup
    - WARN
    - fr_pair_value_strdup
    - fr_pair_value_bstr_realloc
    - RDEBUG2
    - otp_string_valid
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    - pair_update_request
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:386,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:394,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:396,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:400,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:402,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:417,1
    - Dst: otp_string_valid
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:422,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:425,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:427,1
    - Dst: rlm_yubikey_decrypt
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:435,1
    - Dst: rlm_yubikey_validate
      Src: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 445
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/rlm_yubikey.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_pair_find_by_da_nested
    - REDEBUG
    - REMARKER
    - RDEBUG2
    - rlm_yubikey_decrypt
    - otp_string_valid
    - talloc_get_type_abort_const
    - rlm_yubikey_validate
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ykclient_handle_done
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - yandle
    argTypes:
    - ykclient_handle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/validate.c
    functionUses: 0
    functionsReached:
    - ykclient_handle_done
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(ykclient_handle_t **yandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:41,1
    - Dst: ykclient_handle_init
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:45,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:47,1
    - Dst: ykclient_strerror
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:47,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:51,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - instance
    - fr_time_delta_t
    argTypes:
    - TALLOC_CTX*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: mod_conn_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/validate.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_set_destructor
    - talloc
    - talloc_get_type_abort_const
    - ykclient_strerror
    - ykclient_handle_init
    linkageType: ''
    returnType: void
    signature: void *mod_conn_create(TALLOC_CTX *ctx, void *instance, UNUSED fr_time_delta_t
      timeout)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:66,1
    - Dst: is_zero
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:71,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:72,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:77,1
    - Dst: ykclient_global_init
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:79,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:82,1
    - Dst: ykclient_strerror
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:82,1
    - Dst: ykclient_init
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:87,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:90,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:97,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:104,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:106,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:111,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:112,1
    - Dst: ykclient_set_url_templates
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:115,1
    - Dst: ykclient_set_client_b64
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:123,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:125,1
    - Dst: ykclient_strerror
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:125,1
    - Dst: module_rlm_connection_pool_init
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:130,1
    - Dst: ykclient_done
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:132,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - conf
    - inst
    argTypes:
    - CONF_SECTION*
    - rlm_yubikey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 138
    functionName: rlm_yubikey_ykclient_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/validate.c
    functionUses: 1
    functionsReached:
    - ERROR
    - is_zero
    - cf_section_find
    - cf_pair_value
    - ykclient_set_url_templates
    - ykclient_init
    - cf_pair_find_next
    - module_rlm_connection_pool_init
    - talloc_zero_array
    - ykclient_strerror
    - cf_pair_find
    - ykclient_global_init
    - ykclient_done
    - DEBUG
    - ykclient_set_client_b64
    linkageType: ''
    returnType: int
    signature: int rlm_yubikey_ykclient_init(CONF_SECTION *conf, rlm_yubikey_t *inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pool_free
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:142,1
    - Dst: ykclient_done
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:143,1
    - Dst: ykclient_global_done
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inst
    argTypes:
    - rlm_yubikey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: rlm_yubikey_ykclient_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/validate.c
    functionUses: 1
    functionsReached:
    - ykclient_done
    - ykclient_global_done
    - fr_pool_free
    linkageType: ''
    returnType: int
    signature: int rlm_yubikey_ykclient_detach(rlm_yubikey_t *inst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:152,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:157,1
    - Dst: ykclient_handle_cleanup
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:174,1
    - Dst: ykclient_request_process
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:176,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:178,1
    - Dst: ykclient_strerror
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:178,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:194,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_yubikey/validate.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - p_result
    - mctx
    - request
    - passcode
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 197
    functionName: rlm_yubikey_validate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/validate.c
    functionUses: 1
    functionsReached:
    - fr_pool_connection_release
    - REDEBUG
    - talloc_get_type_abort
    - fr_pool_connection_get
    - ykclient_handle_cleanup
    - ykclient_strerror
    - RETURN_UNLANG_RCODE
    - ykclient_request_process
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_yubikey_validate(unlang_result_t *p_result, module_ctx_t
      const *mctx,\n\t\t\t\t     request_t *request, char const *passcode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:23,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:29,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:31,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:36,1
    - Dst: yubikey_parse
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:40,1
    - Dst: yubikey_crc_ok_p
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:45,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:46,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:50,1
    - Dst: yubikey_counter
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:52,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:55,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:55,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:56,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:58,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:60,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:61,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:66,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:66,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:67,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:72,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:72,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:78,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:78,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:85,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:85,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:91,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:93,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 4
    argNames:
    - p_result
    - mctx
    - request
    - passcode
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 104
    functionName: rlm_yubikey_decrypt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_yubikey/decrypt.c
    functionUses: 1
    functionsReached:
    - fr_pair_find_by_da_nested
    - REDEBUG
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - fr_box_octets
    - RDEBUG2
    - yubikey_crc_ok_p
    - yubikey_counter
    - pair_update_request
    - RWDEBUG
    - MEM
    - yubikey_parse
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t rlm_yubikey_decrypt(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request, char const *passcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:158,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: crl_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t crl_cmp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: crl_pending_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t crl_pending_cmp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:174,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: crl_fail_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t crl_fail_cmp(void const *a, void const *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:195,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:196,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:200,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:203,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:205,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:206,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:209,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:213,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:214,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:217,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:218,1
    - Dst: fr_worker_to_coord_pair_send
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:221,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:223,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:230,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:232,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:233,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:236,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:236,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 241
    functionName: crl_refresh_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_pair_append_by_da
    - fr_rb_remove
    - talloc_get_type_abort
    - fr_pair_list_append_by_da
    - fr_rb_find
    - fr_worker_to_coord_pair_send
    - fr_value_box_alloc
    - talloc_new
    - MEM
    - fr_pair_list_init
    - fr_value_box_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t crl_refresh_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
      xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ASN1_INTEGER
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:252,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:252,1
    - Dst: X509_CRL_get0_by_serial
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:253,1
    - Dst: ASN1_INTEGER_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:254,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:258,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:262,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - crl_entry
    - request
    - serial
    argTypes:
    - crl_entry_t*
    - request_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 271
    functionName: crl_check_entry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - REDEBUG2
    - d2i_ASN1_INTEGER
    - X509_CRL_get0_by_serial
    - RDEBUG3
    - talloc_array_length
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: crl_ret_t
    signature: crl_ret_t crl_check_entry(crl_entry_t *crl_entry, request_t *request,
      uint8_t const *serial)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:283,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:289,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:291,1
    - Dst: crl_check_entry
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:293,1
    - Dst: crl_check_entry
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - crls
    - request
    - cdp_url
    - serial
    - found
    argTypes:
    - fr_rb_tree_t*
    - request_t*
    - char*
    - uint8_t*
    - crl_entry_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 308
    functionName: crl_check_serial
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_value_box_list_next
    - crl_check_entry
    linkageType: ''
    returnType: crl_ret_t
    signature: "crl_ret_t crl_check_serial(fr_rb_tree_t *crls, request_t *request,
      char const *cdp_url, uint8_t const *serial,\n\t\t\t\t  crl_entry_t **found)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - crl_entry
    argTypes:
    - crl_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: _crl_entry_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - X509_CRL_free
    linkageType: ''
    returnType: int
    signature: int _crl_entry_free(crl_entry_t *crl_entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:329,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:332,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:333,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:336,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:341,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:342,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:346,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:347,1
    - Dst: fr_worker_to_coord_pair_send
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:350,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - inst
    - t
    - cdp_urls
    - base_crl
    argTypes:
    - rlm_crl_t*
    - rlm_crl_thread_t*
    - fr_value_box_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 355
    functionName: crl_fetch_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup
    - talloc_free
    - fr_pair_append_by_da
    - fr_pair_list_append_by_da
    - fr_worker_to_coord_pair_send
    - talloc_new
    - fr_pair_list_init
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int crl_fetch_start(rlm_crl_t const *inst, rlm_crl_thread_t *t, fr_value_box_list_t
      *cdp_urls, char const *base_crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:341,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 2
    functionsReached:
    - fr_value_box_copy
    - fr_pair_append_by_da
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(cdp_urls, cdp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:359,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:366,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:369,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 371
    functionName: crl_by_url_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_rb_remove
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void crl_by_url_cancel(module_ctx_t const *mctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:376,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:377,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:378,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:388,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:390,1
    - Dst: crl_check_serial
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:391,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:403,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:404,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:409,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:410,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:411,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:412,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:419,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:422,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:430,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:432,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:432,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:432,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:433,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:437,1
    - Dst: crl_fetch_start
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:440,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:442,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:446,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:449,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:449,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:452,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:453,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:457,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 460
    functionName: mod_crl_by_url
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - crl_check_serial
    - fr_value_box_acopy
    - fr_time_add
    - unlang_module_yield
    - MEM
    - fr_time
    - talloc_get_type_abort
    - fr_rb_insert
    - fr_value_box_list_init
    - crl_fetch_start
    - fr_value_box_list_insert_tail
    - fr_rb_find
    - RDEBUG3
    - fr_rb_delete
    - fr_value_box_list_next
    - talloc_free
    - fr_time_gt
    - fr_value_box_list_talloc_free
    - talloc_zero
    - talloc_get_type_abort_const
    - fr_value_box_list_num_elements
    linkageType: ''
    returnType: void
    signature: "void mod_crl_by_url(unlang_result_t *p_result, module_ctx_t const
      *mctx,\n\t\t\t\t\t\t       request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:469,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:471,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:472,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:473,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - thread
    argTypes:
    - rlm_crl_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 476
    functionName: crl_pending_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_delete_inorder
    - fr_rb_iter_next_inorder
    - talloc_free
    - fr_rb_iter_init_inorder
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void crl_pending_resume(rlm_crl_thread_t *thread)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:486,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:489,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:491,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:499,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:501,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:503,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:511,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:511,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:512,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:513,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:514,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:515,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:518,1
    - Dst: X509_CRL_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:520,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:521,1
    - Dst: d2i_X509_CRL
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:525,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:526,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:527,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:529,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:530,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:533,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:535,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:537,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:537,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:538,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:538,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:539,1
    - Dst: crl_pending_resume
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 6
    argNames:
    - fr_coord_worker_t *cw
    - fr_coord_pair_reg_t *coord_pair_reg
    - list
    - fr_time_t
    - mctx
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - fr_pair_list_t*
    - UNUSED
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 543
    functionName: recv_crl_ok
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - MEM
    - fr_value_box_alloc_null
    - unlikely
    - ERROR
    - talloc_get_type_abort
    - crl_pending_resume
    - fr_rb_insert
    - X509_CRL_free
    - DEBUG3
    - fr_value_box_list_init
    - talloc_set_destructor
    - fr_rb_find
    - fr_value_box_list_insert_tail
    - fr_pair_find_by_da
    - talloc_free
    - fr_value_box_list_talloc_free
    - talloc_zero
    - d2i_X509_CRL
    - fr_rb_remove
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: "void recv_crl_ok(UNUSED fr_coord_worker_t *cw, UNUSED fr_coord_pair_reg_t
      *coord_pair_reg,\n\t\t\t  fr_pair_list_t const *list, UNUSED fr_time_t now,\n\t\t\t
      \ module_ctx_t *mctx, UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:551,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:556,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:560,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:560,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:561,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:564,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:564,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:565,1
    - Dst: crl_pending_resume
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - fr_coord_worker_t *cw
    - fr_coord_pair_reg_t *coord_pair_reg
    - list
    - now
    - mctx
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - fr_pair_list_t*
    - fr_time_t
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 570
    functionName: recv_crl_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - talloc_strdup
    - talloc_get_type_abort
    - crl_pending_resume
    - talloc_zero
    - fr_rb_insert
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: "void recv_crl_fail(UNUSED fr_coord_worker_t *cw, UNUSED fr_coord_pair_reg_t
      *coord_pair_reg,\n\t\t\t  fr_pair_list_t const *list, fr_time_t now, module_ctx_t
      *mctx, UNUSED void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:578,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:581,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:588,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:595,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:599,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:602,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:603,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:604,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:607,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:608,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - fr_coord_worker_t *cw
    - fr_coord_pair_reg_t *coord_pair_reg
    - list
    - fr_time_t
    - mctx
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - fr_pair_list_t*
    - UNUSED
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 610
    functionName: recv_crl_expire
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - WARN
    - talloc_free
    - talloc_get_type_abort
    - fr_value_box_list_foreach
    - fr_rb_find
    - fr_pair_find_by_da
    - fr_rb_remove
    linkageType: ''
    returnType: void
    signature: "void recv_crl_expire(UNUSED fr_coord_worker_t *cw, UNUSED fr_coord_pair_reg_t
      *coord_pair_reg,\n\t\t\t    fr_pair_list_t const *list, UNUSED fr_time_t now,
      module_ctx_t *mctx, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:614,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:616,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:617,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 621
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_rb_inline_init
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:625,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:626,1
    - Dst: fr_coord_attach
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:629,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:632,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:636,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:644,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:648,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:649,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:650,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:651,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:652,1
    - Dst: crl_fetch_start
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:653,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 660
    functionName: mod_coord_attach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_value_box_init
    - fr_value_box_list_init
    - crl_fetch_start
    - fr_value_box_strdup_shallow
    - talloc_get_type_abort
    - fr_coord_attach
    - talloc_array_length
    - fr_value_box_list_insert_head
    - DEBUG2
    - fr_schedule_worker_id
    linkageType: ''
    returnType: int
    signature: int mod_coord_attach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:664,1
    - Dst: fr_coord_detach
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 671
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_coord_detach
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:677,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:677,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - unlikely
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:686,1
    - Dst: fr_coord_deregister
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:688,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 691
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_coord_deregister
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:717,1
    - Dst: fr_coord_pair_register
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:719,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:723,1
    - Dst: FR_COORD_PAIR_CB_CTX_SET
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:729,1
    - Dst: fr_coord_register
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:731,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 745
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_crl/rlm_crl.c
    functionUses: 0
    functionsReached:
    - fr_coord_pair_register
    - fr_coord_register
    - talloc_get_type_abort
    - FR_COORD_PAIR_CB_CTX_SET
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: dsOpenDirService
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:122,1
    - Dst: dsDataBufferAllocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:126,1
    - Dst: dsFindDirNodes
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:131,1
    - Dst: dsGetDirNodeName
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:135,1
    - Dst: dsOpenDirNode
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:139,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:140,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:141,1
    - Dst: dsBuildListFromStrings
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:146,1
    - Dst: dsBuildListFromStrings
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:147,1
    - Dst: dsBuildListFromStrings
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:148,1
    - Dst: dsGetRecordList
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:151,1
    - Dst: dsGetRecordEntry
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:156,1
    - Dst: dsGetAttributeEntry
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:162,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:165,1
    - Dst: dsGetAttributeValue
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:167,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:170,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:171,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:175,1
    - Dst: dsGetAttributeValue
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:177,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:180,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:181,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:185,1
    - Dst: dsGetAttributeValue
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:187,1
    - Dst: dsDeallocAttributeValueEntry
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:196,1
    - Dst: dsDeallocAttributeEntry
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:200,1
    - Dst: dsCloseAttributeValueList
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:203,1
    - Dst: dsBuildFromPath
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:208,1
    - Dst: dsOpenDirNode
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:209,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:210,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:211,1
    - Dst: dsDataBufferAllocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:216,1
    - Dst: dsDataNodeAllocateString
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:218,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:222,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:227,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:228,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:230,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:234,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:235,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:237,1
    - Dst: dsDoDirNodeAuthOnRecordType
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:242,1
    - Dst: dsDataNodeDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:248,1
    - Dst: dsDeallocAttributeValueEntry
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:252,1
    - Dst: bzero
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:256,1
    - Dst: dsDataBufferDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:257,1
    - Dst: dsDataBufferDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:261,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:265,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:269,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:273,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:274,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:278,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:279,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:283,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:284,1
    - Dst: dsCloseDirNode
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:288,1
    - Dst: dsCloseDirService
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:292,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 144
    argCount: 3
    argNames:
    - request
    - uname
    - password
    argTypes:
    - request_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 297
    functionName: od_check_passwd
    functionSourceFile: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c
    functionUses: 0
    functionsReached:
    - memcpy
    - dsDataBufferAllocate
    - dsGetAttributeEntry
    - dsCloseAttributeValueList
    - strlen
    - dsCloseDirService
    - dsGetRecordEntry
    - talloc_zero_array
    - dsDataNodeAllocateString
    - dsDoDirNodeAuthOnRecordType
    - dsBuildFromPath
    - dsGetDirNodeName
    - dsOpenDirService
    - dsDataListDeallocate
    - RDEBUG2
    - dsBuildListFromStrings
    - strcmp
    - dsOpenDirNode
    - bzero
    - dsFindDirNodes
    - dsCloseDirNode
    - dsDeallocAttributeValueEntry
    - dsDataNodeDeAllocate
    - dsDataBufferDeAllocate
    - dsGetAttributeValue
    - talloc_free
    - free
    - dsGetRecordList
    - dsDeallocAttributeEntry
    linkageType: ''
    returnType: long
    signature: long od_check_passwd(request_t *request, char const *uname, char const
      *password)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:310,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:311,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:318,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:323,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:331,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:339,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:341,1
    - Dst: od_check_passwd
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:344,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:369,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:370,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 374
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c
    functionUses: 0
    functionsReached:
    - od_check_passwd
    - RDEBUG
    - REDEBUG
    - RDEBUG2
    - RETURN_UNLANG_RCODE
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:382,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:398,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:400,1
    - Dst: uuid_clear
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:405,1
    - Dst: fr_perm_gid_from_str
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:407,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:408,1
    - Dst: mbr_gid_to_uuid
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:410,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:412,1
    - Dst: uuid_clear
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:418,1
    - Dst: client_from_request
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:420,1
    - Dst: uuid_parse
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:427,1
    - Dst: getgrnam
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:429,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:431,1
    - Dst: mbr_gid_to_uuid
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:434,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:436,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:445,1
    - Dst: fr_inet_ntoh
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:446,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:448,1
    - Dst: fr_inet_ntoh
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:449,1
    - Dst: uuid_is_null
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:453,1
    - Dst: uuid_is_null
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:453,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:454,1
    - Dst: uuid_clear
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:459,1
    - Dst: fr_perm_getpwnam
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:461,1
    - Dst: mbr_uid_to_uuid
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:463,1
    - Dst: uuid_clear
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:465,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:467,1
    - Dst: uuid_is_null
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:469,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:470,1
    - Dst: uuid_is_null
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:474,1
    - Dst: mbr_check_service_membership
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:475,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:477,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:482,1
    - Dst: uuid_is_null
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:487,1
    - Dst: mbr_check_membership_refresh
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:488,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:490,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:495,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:502,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:507,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 510
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c
    functionUses: 1
    functionsReached:
    - WARN
    - REDEBUG
    - mbr_check_service_membership
    - mbr_gid_to_uuid
    - mbr_uid_to_uuid
    - fr_inet_ntoh
    - uuid_parse
    - fr_perm_gid_from_str
    - fr_perm_getpwnam
    - mbr_check_membership_refresh
    - RDEBUG2
    - client_from_request
    - uuid_clear
    - module_rlm_section_type_set
    - fr_pair_find_by_da
    - talloc_free
    - uuid_is_null
    - getgrnam
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:514,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:516,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 523
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_opendirectory/rlm_opendirectory.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - WARN
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:210,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:212,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:212,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - sock
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: _logtee_conn_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - ERROR
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void _logtee_conn_error(UNUSED fr_event_list_t *el, int sock, UNUSED
      int flags, int fd_errno, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:227,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:231,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:242,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - sock
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 253
    functionName: _logtee_conn_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - read
    - fr_assert
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void _logtee_conn_read(UNUSED fr_event_list_t *el, int sock, UNUSED
      int flags, void *uctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:260,1
    - Dst: fr_fring_next
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:266,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:269,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:269,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:287,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:295,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:299,1
    - Dst: logtee_fd_idle
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - sock
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 304
    functionName: _logtee_conn_writable
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - write
    - connection_signal_reconnect
    - talloc_get_type_abort
    - fr_fring_next
    - fr_assert
    - logtee_fd_idle
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void _logtee_conn_writable(UNUSED fr_event_list_t *el, int sock, UNUSED
      int flags, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:316,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:317,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - rlm_logtee_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 324
    functionName: logtee_fd_idle
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 1
    functionsReached:
    - PERROR
    - fr_event_fd_insert
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void logtee_fd_idle(rlm_logtee_thread_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:336,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:337,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - rlm_logtee_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: logtee_fd_active
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_event_fd_insert
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void logtee_fd_active(rlm_logtee_thread_t *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:353,1
    - Dst: shutdown
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:354,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:354,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:354,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:355,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:355,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 356
    functionName: _logtee_conn_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - shutdown
    - fr_syserror
    - DEBUG3
    - close
    linkageType: ''
    returnType: void
    signature: void _logtee_conn_close(UNUSED fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:363,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:365,1
    - Dst: logtee_fd_active
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:371,1
    - Dst: logtee_fd_idle
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 377
    functionName: _logtee_conn_open
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - DEBUG2
    - logtee_fd_idle
    - talloc_get_type_abort
    - logtee_fd_active
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _logtee_conn_open(UNUSED fr_event_list_t *el, UNUSED
      void *h, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:388,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:395,1
    - Dst: fr_socket_client_unix
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:396,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:401,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:402,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:403,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:408,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:409,1
    - Dst: fr_socket_client_udp
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:410,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:419,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:426,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:426,1
    - Dst: connection_signal_on_fd
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - h_out
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 433
    functionName: _logtee_conn_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - fr_socket_client_unix
    - talloc_get_type_abort
    - talloc
    - fr_socket_client_tcp
    - fr_assert
    - fr_socket_client_udp
    - connection_signal_on_fd
    - DEBUG2
    - MEM
    - fr_box_ipaddr
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _logtee_conn_init(void **h_out, connection_t *conn,
      void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:454,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:461,1
    - Dst: talloc_typed_vasprintf
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:466,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:467,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:472,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:473,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:474,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:475,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:476,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:487,1
    - Dst: fr_fring_overwrite
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:490,1
    - Dst: logtee_fd_active
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:494,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:501,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:502,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:502,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:504,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:505,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:505,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:507,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:508,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:508,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 8
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - fmt
    - ap
    - uctx
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - UNUSED*
    - UNUSED
    - char*
    - va_list
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 511
    functionName: logtee_it
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_pair_dcursor_init
    - talloc_typed_vasprintf
    - fr_fring_overwrite
    - fr_dcursor_append
    - fr_cond_assert
    - fr_value_box_clear
    - talloc_get_type_abort
    - fr_value_box_bstrdup_buffer_shallow
    - tmpl_aexpand
    - fr_assert
    - fr_dcursor_head
    - fr_dcursor_remove
    - logtee_fd_active
    linkageType: ''
    returnType: void
    signature: "void logtee_it(fr_log_type_t type, fr_log_lvl_t lvl, request_t *request,\n\t\t
      \     UNUSED char const *file, UNUSED int line,\n\t\t      char const *fmt,
      va_list ap, void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 542
    functionName: mod_insert_logtee
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_insert_logtee(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:553,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:554,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:556,1
    - Dst: fr_fring_alloc
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:556,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:564,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:564,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:565,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:565,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:566,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:566,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:567,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:567,1
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:572,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 588
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_fring_alloc
    - talloc_get_type_abort
    - connection_alloc
    - connection_signal_init
    - talloc_pool
    - MEM
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:595,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:599,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:601,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:605,1
    - Dst: FR_SIZE_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:607,1
    - Dst: FR_SIZE_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:608,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:615,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:620,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:631,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c:635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 638
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_logtee/rlm_logtee.c
    functionUses: 0
    functionsReached:
    - snprintf
    - talloc_get_type_abort
    - fr_assert
    - fr_table_value_by_str
    - talloc_strlen
    - FR_SIZE_BOUND_CHECK
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_escape
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:125,1
    - Dst: fr_curl_tmp_handle
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:125,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:128,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:134,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:134,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 140
    functionName: ftp_uri_part_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - curl_easy_escape
    - curl_free
    - fr_value_box_bstrndup
    - strlen
    - fr_curl_tmp_handle
    - MEM
    linkageType: ''
    returnType: int
    signature: int ftp_uri_part_escape(fr_value_box_t *vb, UNUSED void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:145,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:146,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:147,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:148,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:164,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:164,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:166,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:168,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:170,1
    - Dst: ftp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:174,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 178
    functionName: ftp_get_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - fr_value_box_alloc_null
    - talloc_free
    - fr_value_box_bstrndup
    - talloc_get_type_abort
    - ftp_slab_release
    - fr_dcursor_insert
    - MEM
    - fr_value_box_memdup
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ftp_get_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,
      xlat_ctx_t const *xctx,\n\t\t\t\t\t UNUSED request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:182,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:183,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:184,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:187,1
    - Dst: curl_multi_remove_handle
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:189,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:191,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:191,1
    - Dst: ftp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_signal_t
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: ftp_io_xlat_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_get_type_abort
    - ftp_slab_release
    - curl_multi_remove_handle
    - RDEBUG2
    - curl_multi_strerror
    linkageType: ''
    returnType: void
    signature: void ftp_io_xlat_signal(xlat_ctx_t const *xctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:226,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:229,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:238,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:243,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:245,1
    - Dst: talloc_bstr_realloc
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:245,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - in
    - size
    - nmemb
    - userdata
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 255
    functionName: ftp_response_body
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - memcpy
    - REDEBUG
    - ROUND_UP
    - fr_assert
    - talloc_bstr_realloc
    - MEM
    linkageType: ''
    returnType: size_t
    signature: size_t ftp_response_body(void *in, size_t size, size_t nmemb, void
      *userdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:276,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:283,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:285,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:285,1
    - Dst: fr_uri_escape_list
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:290,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:291,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:296,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:300,1
    - Dst: ftp_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:308,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:312,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:315,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:321,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:322,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:323,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:325,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:327,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:328,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:333,1
    - Dst: ftp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:335,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 340
    functionName: ftp_get_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - XLAT_ARGS
    - CURL_AT_LEAST_VERSION
    - REDEBUG
    - talloc_get_type_abort
    - talloc
    - fr_curl_io_request_enqueue
    - ftp_slab_release
    - fr_uri_escape_list
    - fr_value_box_list_concat_in_place
    - RDEBUG2
    - FR_CURL_REQUEST_SET_OPTION
    - ftp_slab_reserve
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ftp_get_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t  xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t  fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:355,1
    - Dst: curl_easy_reset
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:361,1
    - Dst: curl_easy_setopt
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:371,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:372,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:373,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:374,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 388
    functionName: _ftp_request_cleanup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - TALLOC_FREE
    - talloc_get_type_abort
    - curl_easy_reset
    - curl_easy_strerror
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int _ftp_request_cleanup(fr_curl_io_request_t *randle, UNUSED void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randle
    argTypes:
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(fr_curl_io_request_t *randle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:398,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:401,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:402,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:403,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:407,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:407,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:411,1
    - Dst: ftp_slab_element_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: ftp_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - fr_strerror_printf
    - curl_easy_init
    - talloc_get_type_abort
    - ftp_slab_element_set_destructor
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: int
    signature: int ftp_conn_alloc(fr_curl_io_request_t *randle, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:430,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:431,1
    - Dst: ftp_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:436,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:438,1
    - Dst: fr_curl_io_init
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 448
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ftp_slab_list_alloc
    - talloc_get_type_abort
    - fr_curl_io_init
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:460,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:471,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:473,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:473,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 478
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - module_rlm_xlat_register
    - talloc_get_type_abort
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 488
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ftp/rlm_ftp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:48,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:56,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - request
    - name
    argTypes:
    - fr_pair_t**
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: xlat_fmt_get_vp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - tmpl_find_vp
    - tmpl_afrom_attr_str
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int xlat_fmt_get_vp(fr_pair_t **out, request_t *request, char const
      *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:76,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:78,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:81,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:84,1
    - Dst: fr_dict_by_protocol_substr
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:87,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:88,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:91,1
    - Dst: fr_dict_attr_by_oid_substr
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:94,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:96,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:100,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:100,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:102,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:102,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:103,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 109
    functionName: xlat_dict_attr_by_oid
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - fr_dcursor_append
    - talloc_free
    - fr_sbuff_next_if_char
    - FR_SBUFF_IN
    - fr_dict_by_protocol_substr
    - fr_dict_attr_by_oid_substr
    - fr_value_box_bstrndup
    - strlen
    - MEM
    - fr_dict_root
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_dict_attr_by_oid(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:126,1
    - Dst: xlat_fmt_get_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:129,1
    - Dst: fr_dict_vendor_by_da
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:131,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:134,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:134,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:136,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:136,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:137,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: xlat_vendor
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - talloc_free
    - fr_dict_vendor_by_da
    - fr_value_box_bstrndup
    - xlat_fmt_get_vp
    - strlen
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_vendor(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:159,1
    - Dst: xlat_fmt_get_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:162,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:164,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:164,1
    - Dst: fr_value_box_uint32
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:165,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:165,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: xlat_vendor_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - xlat_fmt_get_vp
    - fr_value_box_uint32
    - fr_dict_vendor_num_by_da
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_vendor_num(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:184,1
    - Dst: xlat_fmt_get_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:187,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:189,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:189,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:191,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:191,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:192,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: xlat_attr
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - talloc_free
    - fr_value_box_bstrndup
    - xlat_fmt_get_vp
    - strlen
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_attr(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:214,1
    - Dst: xlat_fmt_get_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:217,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:219,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:219,1
    - Dst: fr_value_box_uint32
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:221,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 224
    functionName: xlat_attr_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - xlat_fmt_get_vp
    - fr_value_box_uint32
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_attr_num(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:240,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:244,1
    - Dst: xlat_fmt_get_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:246,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:248,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:248,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:254,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:255,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:259,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:259,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:259,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 263
    functionName: xlat_attr_oid
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - RPEDEBUG
    - fr_value_box_strdup
    - fr_dcursor_append
    - fr_dict_attr_oid_print
    - xlat_fmt_get_vp
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_attr_oid(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:274,1
    - Dst: xlat_fmt_get_vp
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:277,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:279,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:279,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:281,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:281,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: xlat_attr_type
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_strdup
    - fr_dcursor_append
    - xlat_fmt_get_vp
    - fr_type_to_str
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_attr_type(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _func
    - ','
    - _type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: XLAT_REGISTER
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER(_name, _func, _type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:294,1
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:295,1
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:296,1
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:297,1
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:298,1
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:299,1
    - Dst: XLAT_REGISTER
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 302
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - XLAT_REGISTER
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:306,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:307,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:308,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:309,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:310,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:311,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dict/rlm_dict.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rad_expand_xlat
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:119,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:121,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:134,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:137,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:139,1
    - Dst: redisCommandArgv
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:140,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:141,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:144,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:146,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:149,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:154,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:169,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:170,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:173,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - inst
    - request
    - fmt
    argTypes:
    - rlm_rediswho_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 176
    functionName: rediswho_command
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c
    functionUses: 0
    functionsReached:
    - fr_redis_reply_print
    - RERROR
    - RPEDEBUG
    - rad_expand_xlat
    - fr_cond_assert
    - fr_redis_command_status
    - REDEBUG
    - redisCommandArgv
    - fr_redis_reply_free
    - fr_table_str_by_value
    - fr_redis_cluster_state_init
    - strlen
    - fr_redis_cluster_state_next
    linkageType: ''
    returnType: int
    signature: int rediswho_command(rlm_rediswho_t const *inst, request_t *request,
      char const *fmt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rediswho_command
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:185,1
    - Dst: rediswho_command
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:190,1
    - Dst: rediswho_command
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 6
    argNames:
    - p_result
    - inst
    - request
    - insert
    - trim
    - expire
    argTypes:
    - unlang_result_t*
    - rlm_rediswho_t*
    - request_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 195
    functionName: mod_accounting_all
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c
    functionUses: 0
    functionsReached:
    - rediswho_command
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_accounting_all(unlang_result_t *p_result, rlm_rediswho_t
      const *inst, request_t *request,\n\t\t\t\t\t  char const *insert,\n\t\t\t\t\t
      \ char const *trim,\n\t\t\t\t\t  char const *expire)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:199,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:206,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:208,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:212,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:214,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:218,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:220,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:224,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:224,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:225,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:225,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:226,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:226,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:229,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:234,1
    - Dst: mod_accounting_all
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 239
    functionName: mod_accounting
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - RDEBUG
    - fr_dict_enum_by_value
    - cf_pair_value
    - RDEBUG2
    - talloc_get_type_abort_const
    - cf_pair_find
    - mod_accounting_all
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_accounting(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:243,1
    - Dst: fr_redis_cluster_alloc
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c
    functionUses: 0
    functionsReached:
    - fr_redis_cluster_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_redis_version_print
      Src: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rediswho/rlm_rediswho.c
    functionUses: 0
    functionsReached:
    - fr_redis_version_print
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:123,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:126,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:132,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:134,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:135,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:139,1
    - Dst: atoi
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:141,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:142,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:144,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:149,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:149,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:149,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:150,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:156,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:156,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:156,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:157,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:163,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:163,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:163,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:164,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:168,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:168,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:168,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:169,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:170,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:175,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:175,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:175,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - inst
    - now
    argTypes:
    - rlm_sqlcounter_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 178
    functionName: find_next_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - fr_box_time
    - isdigit
    - fr_time_wrap
    - gmtime_r
    - isalpha
    - fr_assert
    - timegm
    - localtime_r
    - strlen
    - strcmp
    - mktime
    - atoi
    - DEBUG2
    - fr_time_from_sec
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int find_next_reset(rlm_sqlcounter_t *inst, fr_time_t now)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:191,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:194,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:196,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:200,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:202,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:203,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:207,1
    - Dst: atoi
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:209,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:210,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:212,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:217,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:217,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:217,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:218,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:224,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:224,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:224,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:225,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:231,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:231,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:231,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:232,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:236,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:236,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:236,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:237,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:238,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:243,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:243,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:243,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - inst
    - now
    argTypes:
    - rlm_sqlcounter_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 246
    functionName: find_prev_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - fr_box_time
    - isdigit
    - fr_time_wrap
    - gmtime_r
    - isalpha
    - fr_assert
    - timegm
    - localtime_r
    - strlen
    - strcmp
    - mktime
    - atoi
    - DEBUG2
    - fr_time_from_sec
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int find_prev_reset(rlm_sqlcounter_t *inst, fr_time_t now)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:265,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:268,1
    - Dst: sscanf
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:274,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:275,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:283,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:283,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:283,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:292,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:294,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:294,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:294,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:295,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:298,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:299,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:306,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:324,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:324,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:325,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:325,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:326,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:328,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:330,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:330,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:331,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:334,1
    - Dst: tmpl_find_or_add_vp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:340,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:348,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:349,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:352,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:353,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:361,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:365,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:369,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:370,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:370,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:374,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 380
    functionName: mod_authorize_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - REDEBUG2
    - tmpl_attr_tail_da
    - fr_pair_value_strdup
    - REDEBUG
    - fr_value_box_list_pop_head
    - fr_time_delta_to_sec
    - pair_update_reply
    - fr_time_sub
    - fr_value_box_cast
    - fr_value_box_cmp
    - fr_type_to_str
    - MEM
    - RPEDEBUG
    - talloc_get_type_abort
    - sscanf
    - pair_update_control
    - tmpl_find_or_add_vp
    - RDEBUG2
    - fr_value_box_init
    - fr_time_wrap
    - fr_time_gt
    - snprintf
    - fr_box_time_delta
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_authorize_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:390,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:391,1
    - Dst: fr_time_neq
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:399,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:399,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:400,1
    - Dst: find_next_reset
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:405,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:408,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:409,1
    - Dst: tmpl_find_or_add_vp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:416,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:417,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:420,1
    - Dst: tmpl_find_or_add_vp
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:422,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:423,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:426,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:428,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:428,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:428,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:435,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:437,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:441,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 445
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 1
    functionsReached:
    - fr_time_to_sec
    - RWDEBUG2
    - unlang_xlat_push
    - fr_value_box_list_init
    - fr_time_wrap
    - tmpl_find_or_add_vp
    - REDEBUG2
    - talloc_free
    - REDEBUG
    - find_next_reset
    - talloc_get_type_abort
    - talloc
    - fr_time_lteq
    - unlang_module_yield
    - unlang_interpret_frame_talloc_ctx
    - tmpl_find_vp
    - MEM
    - fr_time_neq
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:452,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:453,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:457,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:457,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:459,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:460,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:460,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:470,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:473,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:475,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:476,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 483
    functionName: call_env_query_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - talloc_free
    - xlat_tokenize
    - cf_pair_value
    - FR_SBUFF_IN
    - xlat_needs_resolving
    - xlat_resolve
    - talloc_array_length
    - talloc_get_type_abort_const
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: "int call_env_query_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules, CONF_ITEM *ci,\n\t\t\t\tcall_env_ctx_t const *cec, UNUSED call_env_parser_t
      const *rule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:509,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:512,1
    - Dst: module_rlm_static_by_name
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:514,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:516,1
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:520,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:521,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:525,1
    - Dst: find_next_reset
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:527,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:527,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:528,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:535,1
    - Dst: find_prev_reset
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:537,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:537,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 543
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - module_rlm_static_by_name
    - fr_time
    - find_prev_reset
    - talloc_get_type_abort
    - find_next_reset
    - fr_assert
    - talloc_get_type
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:547,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:547,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:547,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:547,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:548,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:548,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:548,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:549,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:550,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:553,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:554,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:555,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - conf
    - tmpl
    - name
    - flags
    argTypes:
    - CONF_SECTION*
    - tmpl_t*
    - char*
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 561
    functionName: attr_check
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_add_name_only
    - cf_log_perr
    - fr_dict_unconst
    - fr_dict_attr_by_name
    - tmpl_attr_tail_unresolved
    - tmpl_attr_tail_da
    - tmpl_is_attr_unresolved
    - tmpl_is_attr
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int attr_check(CONF_SECTION *conf, tmpl_t *tmpl, char const *name,
      fr_dict_attr_flags_t *flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:565,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:569,1
    - Dst: attr_check
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:569,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:570,1
    - Dst: attr_check
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:570,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:571,1
    - Dst: attr_check
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:571,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:572,1
    - Dst: attr_check
      Src: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 575
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sqlcounter/rlm_sqlcounter.c
    functionUses: 0
    functionsReached:
    - attr_check
    - unlikely
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:88,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:94,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:98,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 109
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c
    functionUses: 1
    functionsReached:
    - module_rlm_section_type_set
    - fr_pair_find_by_da
    - talloc_get_type_abort
    - WARN
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:115,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:117,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - request
    - list
    - da
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: digest_find_vp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *digest_find_vp(request_t *request, fr_pair_list_t *list,
      fr_dict_attr_t const *da)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:148,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:151,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:155,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:158,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:162,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:164,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:172,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:178,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:180,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:186,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:188,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:196,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:199,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:202,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:210,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:212,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:217,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:217,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:218,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:219,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:224,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:232,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:233,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:233,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:233,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:235,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:246,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:249,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:255,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:262,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:265,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:273,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:280,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:282,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:288,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:290,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:296,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:298,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:310,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:314,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:318,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:321,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:322,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:328,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:335,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:338,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:340,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:342,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:342,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:342,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:344,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:351,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:370,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:372,1
    - Dst: digest_find_vp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:378,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:380,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:386,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:396,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:398,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:398,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:398,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:400,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:406,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:411,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:412,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:418,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:420,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:425,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:430,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:430,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:431,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:432,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:436,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:436,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:441,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:443,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 185
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 445
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c
    functionUses: 0
    functionsReached:
    - fr_md5_calc
    - fr_pair_find_by_da_nested
    - memcpy
    - REDEBUG
    - fr_base16_encode
    - FR_SBUFF_IN
    - FR_SBUFF_OUT
    - RHEXDUMP_INLINE3
    - digest_find_vp
    - strcasecmp
    - fr_box_octets
    - RDEBUG2
    - FR_DBUFF_TMP
    - RDEBUG3
    - fr_digest_cmp
    - fr_base16_decode
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:454,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:456,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 463
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_digest/rlm_digest.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - WARN
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:80,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:81,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:85,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:94,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:98,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:98,1
    - Dst: fr_sbuff_trim
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:104,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:105,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:111,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:111,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:111,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: exec_xlat_oneshot_wait_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_trim_talloc
    - RPEDEBUG
    - fr_dcursor_append
    - fr_sbuff_used
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - fr_value_box_bstrndup_shallow
    - fr_sbuff_buff
    - MEM
    - fr_value_box_alloc_null
    - fr_sbuff_trim
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t exec_xlat_oneshot_wait_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t\t   xlat_ctx_t const *xctx,\n\t\t\t\t\t\t   request_t *request,
      UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_exec_oneshot_cleanup
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exec
    argTypes:
    - fr_exec_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: _exec_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - fr_exec_oneshot_cleanup
    linkageType: ''
    returnType: int
    signature: int _exec_free(fr_exec_state_t *exec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:146,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:151,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:151,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:153,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:159,1
    - Dst: fr_exec_oneshot_nowait
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:159,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:160,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:167,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:167,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:167,1
    - Dst: fr_exec_oneshot
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:174,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:177,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 180
    functionName: exec_xlat_oneshot
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - unlikely
    - RPEDEBUG
    - talloc_set_destructor
    - talloc_free
    - REDEBUG
    - tmpl_list_head
    - fr_exec_oneshot
    - talloc_zero
    - talloc_get_type_abort_const
    - tmpl_list
    - unlang_interpret_frame_talloc_ctx
    - MEM
    - unlang_xlat_yield
    - fr_exec_oneshot_nowait
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t exec_xlat_oneshot(TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t       xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:221,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:227,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - request
    - box
    - status
    argTypes:
    - request_t*
    - fr_value_box_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 241
    functionName: rlm_exec_status2rcode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - RDEBUG
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t rlm_exec_status2rcode(request_t *request, fr_value_box_t
      *box, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:249,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:250,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:257,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:257,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:263,1
    - Dst: fr_exec_oneshot_nowait
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:263,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 269
    functionName: mod_exec_oneshot_nowait_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - unlikely
    - RPEDEBUG
    - tmpl_list_head
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - tmpl_list
    - fr_exec_oneshot_nowait
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_exec_oneshot_nowait_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx,\n\t\t\t\t\t\t      request_t *request)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:291,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:292,1
    - Dst: rlm_exec_status2rcode
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:298,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:298,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:302,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:305,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:306,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:310,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:327,1
    - Dst: map_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:330,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:334,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:338,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:338,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:338,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:346,1
    - Dst: radius_legacy_map_apply
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:349,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:350,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:352,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:355,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:357,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:359,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:364,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:375,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:383,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 384
    functionName: mod_exec_oneshot_wait_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - REDEBUG
    - fr_sbuff_current
    - RPEDEBUG
    - talloc_get_type_abort
    - fr_sbuff_remaining
    - fr_value_box_list_empty
    - radius_legacy_map_apply
    - unlang_interpret_event_list
    - FR_SBUFF_IN
    - rlm_exec_status2rcode
    - fr_sbuff_adv_past_whitespace
    - RETURN_UNLANG_RCODE
    - fr_sbuff_next_if_char
    - RDEBUG
    - TALLOC_FREE
    - map_afrom_substr
    - talloc_get_type_abort_const
    - tmpl_list
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_exec_oneshot_wait_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:394,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:395,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:398,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:405,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:411,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:413,1
    - Dst: unlang_module_yield_to_xlat
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:420,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:420,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:428,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:428,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:433,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:433,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:438,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:438,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:441,1
    - Dst: unlang_module_yield_to_tmpl
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:442,1
    - Dst: TMPL_ARGS_EXEC
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 447
    functionName: mod_exec_dispatch_oneshot
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_value_box_list_init
    - tmpl_xlat
    - talloc_get_type_abort
    - tmpl_list_head
    - tmpl_list
    - unlang_module_yield_to_xlat
    - TMPL_ARGS_EXEC
    - talloc_zero
    - unlang_interpret_frame_talloc_ctx
    - talloc_get_type_abort_const
    - unlang_module_yield_to_tmpl
    - MEM
    linkageType: ''
    returnType: void
    signature: void mod_exec_dispatch_oneshot(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:451,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:454,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:455,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:459,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:460,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:469,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:473,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:477,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:477,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:478,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:482,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:482,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:483,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:483,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:490,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:491,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:492,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:492,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 498
    functionName: mob_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - tmpl_is_list
    - cf_log_perr
    - fr_time_delta_gt
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_delta_lt
    - fr_time_delta_ispos
    - cf_log_err
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int mob_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:513,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 517
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_exec/rlm_exec.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: RLM_LUA_STACK_SET
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLM_LUA_STACK_SET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: RLM_LUA_STACK_RESET
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLM_LUA_STACK_RESET()
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:121,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:121,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:123,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:124,1
    - Dst: lua_pushlstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:128,1
    - Dst: lua_pushlstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:133,1
    - Dst: lua_pushlstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:137,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:141,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:145,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:149,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:153,1
    - Dst: IN_RANGE_INTEGER_UNSIGNED
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:157,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:158,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:162,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:166,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:170,1
    - Dst: IN_RANGE_INTEGER_SIGNED
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:174,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:175,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:179,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:179,1
    - Dst: IN_RANGE_FLOAT_SIGNED
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:183,1
    - Dst: lua_pushnumber
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:184,1
    - Dst: IN_RANGE_FLOAT_SIGNED
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:188,1
    - Dst: lua_pushnumber
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:189,1
    - Dst: IN_RANGE_INTEGER_UNSIGNED
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:193,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:194,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:198,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:198,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 3
    argNames:
    - request
    - L
    - vp
    argTypes:
    - request_t*
    - lua_State*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 202
    functionName: fr_lua_marshall
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - IN_RANGE_INTEGER_UNSIGNED
    - FR_SBUFF_OUT
    - REDEBUG
    - lua_pushnumber
    - IN_RANGE_INTEGER_SIGNED
    - IN_RANGE_FLOAT_SIGNED
    - lua_pushlstring
    - lua_pushinteger
    - fr_type_to_str
    - fr_unix_time_to_sec
    - fr_pair_print_value_quoted
    linkageType: ''
    returnType: int
    signature: int fr_lua_marshall(request_t *request, lua_State *L, fr_pair_t const
      *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: IN_RANGE_INTEGER_SIGNED
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_RANGE_INTEGER_SIGNED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: IN_RANGE_INTEGER_UNSIGNED
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_RANGE_INTEGER_UNSIGNED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: IN_RANGE_INTEGER_SIGNED
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_RANGE_INTEGER_SIGNED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: IN_RANGE_INTEGER_UNSIGNED
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_RANGE_INTEGER_UNSIGNED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: IN_RANGE_FLOAT_SIGNED
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_RANGE_FLOAT_SIGNED(_x)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lua_type
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:222,1
    - Dst: SIZEOF_MEMBER
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:232,1
    - Dst: SIZEOF_MEMBER
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:235,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:247,1
    - Dst: lua_tonumber
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:248,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:252,1
    - Dst: lua_tointeger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:253,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:258,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:259,1
    - Dst: lua_tolstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:271,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:273,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:277,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:279,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:280,1
    - Dst: lua_objlen
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:292,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:294,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:297,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:299,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:301,1
    - Dst: lua_type
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:307,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:308,1
    - Dst: lua_typename
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:308,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 5
    argNames:
    - ctx
    - out_vb
    - request
    - L
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - request_t*
    - lua_State*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 315
    functionName: fr_lua_unmarshall
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_objlen
    - fr_value_box_init
    - lua_touserdata
    - RPEDEBUG
    - lua_tonumber
    - REDEBUG
    - SIZEOF_MEMBER
    - lua_type
    - lua_tointeger
    - fr_value_box_cast
    - lua_tolstring
    - fr_value_box_bstrndup_shallow
    - lua_typename
    - fr_value_box_memdup
    linkageType: ''
    returnType: int
    signature: "int fr_lua_unmarshall(TALLOC_CTX *ctx, fr_value_box_t *out_vb, request_t
      *request,\n\t\t\t     lua_State *L, fr_dict_attr_t const *da)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:323,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:326,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:328,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - request
    - pair_data
    argTypes:
    - request_t*
    - fr_lua_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: fr_lua_pair_parent_build
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached:
    - fr_pair_count_by_da
    - RERROR
    - fr_lua_pair_parent_build
    - fr_pair_append_by_da
    linkageType: ''
    returnType: int
    signature: int fr_lua_pair_parent_build(request_t *request, fr_lua_pair_t *pair_data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:352,1
    - Dst: lua_isnumber
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:358,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:359,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:359,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:359,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:360,1
    - Dst: lua_tointeger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:364,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:366,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:370,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:370,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:373,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:374,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:382,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:384,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:387,1
    - Dst: fr_lua_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:392,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:395,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:402,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:404,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:410,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:411,1
    - Dst: fr_lua_unmarshall
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:415,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 418
    functionName: _lua_pair_setter
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - RERROR
    - lua_touserdata
    - lua_upvalueindex
    - fr_type_is_leaf
    - fr_pair_delete
    - RWARN
    - fr_pair_count_by_da
    - fr_pair_append_by_da
    - fr_pair_find_by_da_idx
    - lua_isnumber
    - fr_lua_pair_parent_build
    - lua_tointeger
    - lua_tostring
    - lua_isnil
    - fr_lua_util_get_request
    - fr_lua_unmarshall
    linkageType: ''
    returnType: int
    signature: int _lua_pair_setter(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:428,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:432,1
    - Dst: lua_isuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:432,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:432,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:434,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:434,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:435,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:437,1
    - Dst: lua_pushnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:439,1
    - Dst: fr_lua_marshall
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:443,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 447
    functionName: _lua_pair_iterator
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - lua_pushnil
    - lua_upvalueindex
    - lua_touserdata
    - fr_dcursor_next
    - fr_lua_marshall
    - fr_assert
    - lua_isuserdata
    - fr_lua_util_get_request
    linkageType: ''
    returnType: int
    signature: int _lua_pair_iterator(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:454,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:458,1
    - Dst: lua_isuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:458,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:458,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:459,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:459,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:460,1
    - Dst: lua_newuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:462,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:464,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:467,1
    - Dst: lua_pushcclosure
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 472
    functionName: _lua_pair_iterator_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_pushcclosure
    - lua_upvalueindex
    - lua_touserdata
    - fr_pair_dcursor_by_da_init
    - REDEBUG
    - fr_assert
    - lua_isuserdata
    - lua_newuserdata
    - fr_lua_util_get_request
    linkageType: ''
    returnType: int
    signature: int _lua_pair_iterator_init(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:484,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:488,1
    - Dst: lua_isuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:488,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:488,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:490,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:490,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:491,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:493,1
    - Dst: lua_pushnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:495,1
    - Dst: lua_pushstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:499,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:504,1
    - Dst: lua_createtable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:508,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:508,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:509,1
    - Dst: lua_pushstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:510,1
    - Dst: lua_rawseti
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:511,1
    - Dst: fr_lua_marshall
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:514,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 520
    functionName: _lua_list_iterator
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - fr_dcursor_current
    - lua_pushnil
    - lua_upvalueindex
    - lua_touserdata
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_lua_marshall
    - fr_type_is_structural
    - fr_dcursor_next
    - fr_assert
    - lua_isuserdata
    - lua_createtable
    - fr_lua_util_get_request
    - lua_pushstring
    linkageType: ''
    returnType: int
    signature: int _lua_list_iterator(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:527,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:531,1
    - Dst: lua_isuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:531,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:531,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:532,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:532,1
    - Dst: lua_newuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:535,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:537,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:540,1
    - Dst: lua_pushcclosure
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 545
    functionName: _lua_list_iterator_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_pushcclosure
    - lua_upvalueindex
    - lua_touserdata
    - fr_pair_dcursor_init
    - REDEBUG
    - fr_assert
    - lua_isuserdata
    - lua_newuserdata
    - fr_lua_util_get_request
    linkageType: ''
    returnType: int
    signature: int _lua_list_iterator_init(lua_State *L)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:570,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:574,1
    - Dst: lua_isuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:574,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:574,1
    - Dst: lua_touserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:576,1
    - Dst: lua_upvalueindex
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:576,1
    - Dst: lua_isnumber
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:578,1
    - Dst: lua_tointeger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:579,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:582,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:592,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:599,1
    - Dst: fr_lua_marshall
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:601,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:605,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:605,1
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:610,1
    - Dst: _lua_pair_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:611,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:615,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:618,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:622,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:627,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:628,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:628,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:628,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:632,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:636,1
    - Dst: _lua_pair_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:637,1
    - Dst: lua_rawset
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:639,1
    - Dst: lua_getfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:640,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 644
    functionName: _lua_pair_accessor
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_upvalueindex
    - fr_type_is_leaf
    - lua_getfield
    - fr_lua_marshall
    - fr_type_is_structural
    - lua_tostring
    - lua_rawset
    - fr_type_is_group
    - lua_isnumber
    - lua_isuserdata
    - fr_dict_attr_by_name
    - fr_assert
    - lua_tointeger
    - fr_lua_util_get_request
    - fr_pair_find_by_da
    - RERROR
    - lua_touserdata
    - lua_newtable
    - _lua_pair_init
    - fr_pair_find_by_da_idx
    - fr_dict_internal
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int _lua_pair_accessor(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RLM_LUA_STACK_SET
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:654,1
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:655,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:656,1
    - Dst: RLM_LUA_STACK_RESET
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 663
    functionName: fr_lua_isjit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_getglobal
    - RLM_LUA_STACK_RESET
    - RLM_LUA_STACK_SET
    - lua_isnil
    linkageType: ''
    returnType: bool
    signature: bool fr_lua_isjit(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RLM_LUA_STACK_SET
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:669,1
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:670,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:671,1
    - Dst: lua_getfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:672,1
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:674,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:677,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:677,1
    - Dst: RLM_LUA_STACK_RESET
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 683
    functionName: fr_lua_version
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - lua_getglobal
    - RLM_LUA_STACK_SET
    - RLM_LUA_STACK_RESET
    - lua_tostring
    - lua_isnil
    linkageType: ''
    returnType: char
    signature: char *fr_lua_version(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RLM_LUA_STACK_SET
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:699,1
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:703,1
    - Dst: lua_type
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:708,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:714,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:719,1
    - Dst: lua_typename
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:719,1
    - Dst: RLM_LUA_STACK_RESET
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:725,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - mctx
    - L
    - name
    argTypes:
    - module_inst_ctx_t*
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 727
    functionName: fr_lua_check_func
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - ERROR
    - lua_getglobal
    - RLM_LUA_STACK_SET
    - lua_type
    - RLM_LUA_STACK_RESET
    - lua_typename
    linkageType: ''
    returnType: int
    signature: int fr_lua_check_func(module_inst_ctx_t const *mctx, lua_State *L,
      char const *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:744,1
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:746,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:747,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:750,1
    - Dst: EMARKER
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:752,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:761,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:765,1
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:766,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:767,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:770,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:773,1
    - Dst: lua_getfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:774,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:775,1
    - Dst: lua_getfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:779,1
    - Dst: lua_isnil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:780,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - mctx
    - L
    - request
    - field
    argTypes:
    - module_ctx_t*
    - lua_State*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 783
    functionName: fr_lua_get_field
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_getfield
    - REMARKER
    - strchr
    - lua_getglobal
    - EMARKER
    - ROPTIONAL
    - lua_isnil
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int fr_lua_get_field(module_ctx_t const *mctx, lua_State *L, request_t
      *request, char const *field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:803,1
    - Dst: lua_newuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:809,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:816,1
    - Dst: lua_pushcclosure
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:817,1
    - Dst: lua_pushcclosure
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:819,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:821,1
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:823,1
    - Dst: lua_pushlightuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:825,1
    - Dst: lua_pushcclosure
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:826,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:827,1
    - Dst: lua_pushlightuserdata
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:829,1
    - Dst: lua_pushcclosure
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:830,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:831,1
    - Dst: lua_setmetatable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - L
    - vp
    - da
    - idx
    - parent
    argTypes:
    - lua_State*
    - fr_pair_t*
    - fr_dict_attr_t*
    - unsigned int
    - fr_lua_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 833
    functionName: _lua_pair_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 1
    functionsReached:
    - lua_pushcclosure
    - lua_newtable
    - lua_setfield
    - fr_type_is_structural
    - lua_pushlightuserdata
    - lua_newuserdata
    - lua_setmetatable
    linkageType: ''
    returnType: void
    signature: void _lua_pair_init(lua_State *L, fr_pair_t *vp, fr_dict_attr_t const
      *da, unsigned int idx, fr_lua_pair_t *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:838,1
    - Dst: luaL_checktype
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:839,1
    - Dst: lua_pushstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:842,1
    - Dst: _lua_pair_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:843,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:843,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:843,1
    - Dst: lua_rawset
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:844,1
    - Dst: lua_pushstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:846,1
    - Dst: _lua_pair_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:847,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:847,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:847,1
    - Dst: lua_rawset
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:848,1
    - Dst: lua_pushstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:850,1
    - Dst: _lua_pair_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:851,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:851,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:851,1
    - Dst: lua_rawset
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:852,1
    - Dst: lua_pushstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:854,1
    - Dst: _lua_pair_init
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:855,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:855,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:855,1
    - Dst: lua_rawset
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - L
    - request
    argTypes:
    - lua_State*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 857
    functionName: _lua_fr_request_register
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_rawset
    - _lua_pair_init
    - lua_getglobal
    - fr_dict_root
    - luaL_checktype
    - fr_pair_list_parent
    - lua_pushstring
    linkageType: ''
    returnType: void
    signature: void _lua_fr_request_register(lua_State *L, request_t *request)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:861,1
    - Dst: fr_lua_util_set_mctx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:865,1
    - Dst: fr_lua_util_set_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:866,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:868,1
    - Dst: _lua_fr_request_register
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:870,1
    - Dst: fr_lua_get_field
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:875,1
    - Dst: fr_lua_util_set_mctx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:877,1
    - Dst: fr_lua_util_set_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:878,1
    - Dst: lua_isfunction
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:883,1
    - Dst: lua_type
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:884,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:886,1
    - Dst: lua_typename
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:886,1
    - Dst: lua_pcall
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:890,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:891,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:893,1
    - Dst: lua_isnoneornil
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:900,1
    - Dst: lua_isnumber
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:904,1
    - Dst: lua_tointeger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:905,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:906,1
    - Dst: lua_isstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:912,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:913,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:913,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:917,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:917,1
    - Dst: fr_lua_util_set_mctx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:922,1
    - Dst: fr_lua_util_set_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:923,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:925,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - p_result
    - mctx
    - request
    - funcname
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 926
    functionName: fr_lua_run
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - fr_lua_util_set_mctx
    - _lua_fr_request_register
    - lua_pcall
    - lua_isnoneornil
    - lua_isfunction
    - talloc_get_type_abort
    - lua_type
    - fr_table_str_by_value
    - ROPTIONAL
    - lua_isnumber
    - lua_tointeger
    - lua_tostring
    - fr_lua_util_set_request
    - fr_lua_get_field
    - lua_typename
    - lua_isstring
    - fr_table_value_by_str
    - RETURN_UNLANG_RCODE
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t fr_lua_run(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request, char const *funcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:933,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 938
    functionName: _lua_rcode_table_newindex
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - RWDEBUG
    - fr_lua_util_get_request
    linkageType: ''
    returnType: int
    signature: int _lua_rcode_table_newindex(UNUSED lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:942,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:945,1
    - Dst: lua_pushinteger
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:947,1
    - Dst: lua_pushfstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 953
    functionName: _lua_rcode_table_index
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_pushfstring
    - lua_tostring
    - lua_pushinteger
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int _lua_rcode_table_index(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushfstring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 963
    functionName: _lua_rcode_table_pairs
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_pushfstring
    linkageType: ''
    returnType: int
    signature: int _lua_rcode_table_pairs(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:978,1
    - Dst: luaL_checktype
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:979,1
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:982,1
    - Dst: luaL_register
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:984,1
    - Dst: lua_setmetatable
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:985,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - L
    - name
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 988
    functionName: fr_lua_rcode_register
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - lua_newtable
    - lua_setfield
    - lua_getglobal
    - luaL_register
    - luaL_checktype
    - lua_setmetatable
    linkageType: ''
    returnType: void
    signature: void fr_lua_rcode_register(lua_State *L, char const *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1000,1
    - Dst: fr_lua_util_set_mctx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1003,1
    - Dst: MODULE_CTX_FROM_INST
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1003,1
    - Dst: luaL_newstate
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1005,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1007,1
    - Dst: luaL_openlibs
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1011,1
    - Dst: luaL_loadfile
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1016,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1017,1
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1017,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1017,1
    - Dst: fr_lua_util_set_mctx
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1021,1
    - Dst: lua_close
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1022,1
    - Dst: lua_pcall
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1026,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1027,1
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1027,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1027,1
    - Dst: fr_lua_util_fr_register
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1035,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1041,1
    - Dst: fr_lua_util_jit_log_register
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1042,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1044,1
    - Dst: fr_lua_util_log_register
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1045,1
    - Dst: fr_lua_rcode_register
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1052,1
    - Dst: fr_lua_check_func
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1057,1
    - Dst: fr_lua_check_func
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1058,1
    - Dst: fr_lua_check_func
      Src: /src/freeradius-server/src/modules/rlm_lua/lua.c:1059,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - out
    - mctx
    argTypes:
    - lua_State**
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1065
    functionName: fr_lua_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/lua.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_lua_util_set_mctx
    - ERROR
    - lua_close
    - fr_lua_util_jit_log_register
    - lua_pcall
    - fr_lua_util_fr_register
    - fr_lua_rcode_register
    - MODULE_CTX_FROM_INST
    - fr_lua_util_log_register
    - lua_tostring
    - talloc_get_type_abort_const
    - fr_lua_check_func
    - luaL_newstate
    - lua_gettop
    - luaL_loadfile
    - luaL_openlibs
    linkageType: ''
    returnType: int
    signature: int fr_lua_init(lua_State **out, module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:72,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:73,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:76,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: lua_func_def_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t lua_func_def_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:82,1
    - Dst: fr_lua_run
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: mod_lua
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - fr_lua_run
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_lua(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:91,1
    - Dst: lua_close
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - lua_close
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:110,1
    - Dst: fr_lua_init
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - fr_lua_init
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:122,1
    - Dst: fr_lua_run
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:130,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:131,1
    - Dst: lua_close
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 142
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - lua_close
    - MODULE_CTX
    - fr_lua_run
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:146,1
    - Dst: fr_lua_init
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:156,1
    - Dst: fr_lua_isjit
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:157,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:158,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:160,1
    - Dst: fr_lua_version
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:160,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:167,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:169,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:171,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:176,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:177,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:178,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:181,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:182,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:183,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:186,1
    - Dst: fr_lua_check_func
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:187,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:188,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:195,1
    - Dst: fr_lua_check_func
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:196,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:197,1
    - Dst: fr_lua_check_func
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:203,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:204,1
    - Dst: fr_lua_run
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:211,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:212,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 221
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - fr_lua_isjit
    - WARN
    - fr_rb_iter_next_inorder
    - talloc_free
    - cf_pair_value
    - MODULE_CTX
    - talloc_get_type_abort
    - fr_lua_version
    - fr_lua_check_func
    - fr_lua_init
    - cf_log_err
    - talloc_const_free
    - talloc_asprintf
    - fr_rb_iter_init_inorder
    - cf_pair_find
    - fr_rb_inline_init
    - DEBUG
    - fr_lua_run
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:232,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:233,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: lua_func_name_safe
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - strchr
    - talloc_array_length
    - tolower
    linkageType: ''
    returnType: void
    signature: void lua_func_name_safe(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:242,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:248,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:252,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:252,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:264,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:264,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:265,1
    - Dst: lua_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:266,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:268,1
    - Dst: lua_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:269,1
    - Dst: fr_rb_find_or_insert
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:271,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:272,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:280,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:281,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - UNUSED*
    - UNUSED*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 286
    functionName: lua_func_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/rlm_lua.c
    functionUses: 0
    functionsReached:
    - fr_rb_find_or_insert
    - talloc_free
    - call_env_parsed_add
    - lua_func_name_safe
    - talloc_strdup
    - talloc_get_type_abort
    - call_env_parsed_set_data
    - talloc_zero
    - fr_rb_inline_init
    - MEM
    linkageType: ''
    returnType: int
    signature: "int lua_func_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *out, UNUSED
      tmpl_rules_t const *t_rules,\n\t\t\t  UNUSED CONF_ITEM *ci, call_env_ctx_t const
      *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:43,1
    - Dst: lua_setglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:44,1
    - Dst: lua_settop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: fr_lua_util_fr_register
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 1
    functionsReached:
    - lua_settop
    - lua_newtable
    - lua_setglobal
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_fr_register(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:60,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:61,1
    - Dst: lua_pop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:62,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: _util_log_debug
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - lua_pop
    - lua_gettop
    - lua_tostring
    linkageType: ''
    returnType: int
    signature: int _util_log_debug(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:83,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:84,1
    - Dst: lua_pop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:85,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: _util_log_info
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - lua_pop
    - lua_gettop
    - lua_tostring
    linkageType: ''
    returnType: int
    signature: int _util_log_info(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:107,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:108,1
    - Dst: lua_pop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:109,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: _util_log_warn
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - lua_pop
    - lua_gettop
    - lua_tostring
    linkageType: ''
    returnType: int
    signature: int _util_log_warn(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:130,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:131,1
    - Dst: lua_pop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:132,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: _util_log_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - lua_pop
    - lua_gettop
    - lua_tostring
    linkageType: ''
    returnType: int
    signature: int _util_log_error(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lua_util_get_request
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:143,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: _util_log_newindex
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - RWDEBUG
    - fr_lua_util_get_request
    linkageType: ''
    returnType: int
    signature: int _util_log_newindex(UNUSED lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: fr_lua_util_jit_log_debug
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_jit_log_debug(char const *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: fr_lua_util_jit_log_info
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_jit_log_info(char const *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: fr_lua_util_jit_log_warn
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_jit_log_warn(char const *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: fr_lua_util_jit_log_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_jit_log_error(char const *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:208,1
    - Dst: dl_module_search_path
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:210,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:215,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:217,1
    - Dst: strsep
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:218,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:219,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:221,1
    - Dst: access
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:222,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:229,1
    - Dst: luaL_dostring
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:262,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:263,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:264,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:266,1
    - Dst: lua_gettop
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:267,1
    - Dst: lua_tostring
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 273
    functionName: fr_lua_util_jit_log_register
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 1
    functionsReached:
    - dl_module_search_path
    - ERROR
    - access
    - TALLOC_FREE
    - talloc_free
    - strrchr
    - strchr
    - strsep
    - talloc_strdup
    - fr_assert
    - lua_tostring
    - talloc_asprintf
    - luaL_dostring
    - lua_gettop
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int fr_lua_util_jit_log_register(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_getglobal
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:283,1
    - Dst: luaL_checktype
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:284,1
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:287,1
    - Dst: lua_newtable
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:289,1
    - Dst: lua_pushvalue
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:291,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:292,1
    - Dst: lua_pushcfunction
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:294,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:295,1
    - Dst: lua_pushcfunction
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:298,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:299,1
    - Dst: lua_pushcfunction
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:301,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:302,1
    - Dst: lua_pushcfunction
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:304,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:305,1
    - Dst: lua_pushcfunction
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:307,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:308,1
    - Dst: lua_setmetatable
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:311,1
    - Dst: lua_setfield
      Src: /src/freeradius-server/src/modules/rlm_lua/util.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 315
    functionName: fr_lua_util_log_register
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 1
    functionsReached:
    - lua_newtable
    - lua_setfield
    - lua_pushvalue
    - lua_getglobal
    - lua_pushcfunction
    - luaL_checktype
    - lua_setmetatable
    linkageType: ''
    returnType: int
    signature: int fr_lua_util_log_register(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: fr_lua_util_set_mctx
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_set_mctx(module_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: fr_lua_util_get_mctx
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: module_ctx_t
    signature: module_ctx_t *fr_lua_util_get_mctx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: fr_lua_util_set_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_lua_util_set_request(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: fr_lua_util_get_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_lua/util.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: request_t
    signature: request_t *fr_lua_util_get_request(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:78,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:83,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:90,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:99,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:104,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:106,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:117,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:117,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:118,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 123
    functionName: always_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_always/rlm_always.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_strdup
    - RWARN
    - fr_dcursor_append
    - talloc_get_type_abort
    - fr_table_str_by_value
    - strcmp
    - fr_table_value_by_str
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t always_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:131,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: mod_always_return
    functionSourceFile: /src/freeradius-server/src/modules/rlm_always/rlm_always.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_always_return(unlang_result_t *p_result, module_ctx_t const
      *mctx, UNUSED request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:138,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_always/rlm_always.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:146,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:148,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:150,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:158,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:158,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:163,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 170
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_always/rlm_always.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - talloc_get_type_abort
    - talloc_zero
    - fr_table_value_by_str
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:176,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_always/rlm_always.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_always/rlm_always.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:60,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:61,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:62,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:63,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:68,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:80,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:82,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:87,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:87,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:88,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:90,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:106,1
    - Dst: fr_type_from_str
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:111,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:112,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:113,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:118,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:121,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:122,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:130,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:130,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:136,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:137,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:140,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:141,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:145,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 154
    functionName: unpack_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_type_from_str
    - RPEDEBUG
    - fr_value_box_cast_in_place
    - fr_value_box_from_network
    - talloc_free
    - fr_dcursor_append
    - REDEBUG
    - FR_SBUFF_IN
    - MEM
    - FR_DBUFF_TMP
    - strlen
    - strcmp
    - fr_type_is_null
    - fr_base16_decode
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unpack_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      UNUSED xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:163,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:163,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:164,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_flags_set
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unpack/rlm_unpack.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _y
    - ','
    - _z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: rlm_krb5_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/krb5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rlm_krb5_error(_x, _y, _z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:59,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:60,1
    - Dst: krb5_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:63,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - ERROR
    - krb5_slab_list_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:73,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:81,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:84,1
    - Dst: krb5_get_init_creds_opt_free
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:86,1
    - Dst: krb5_free_principal
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:87,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:91,1
    - Dst: krb5_free_context
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - krb5_get_init_creds_opt_free
    - talloc_free
    - talloc_get_type_abort
    - krb5_free_context
    - krb5_free_principal
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:100,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:109,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:111,1
    - Dst: krb5_is_thread_safe
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:115,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:120,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:121,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:127,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:135,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:137,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:138,1
    - Dst: krb5_init_context
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:142,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:144,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:144,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:157,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:162,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:166,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:167,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:172,1
    - Dst: krb5_sname_to_principal
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:179,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:181,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:181,1
    - Dst: krb5_unparse_name
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:186,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:189,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:189,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:197,1
    - Dst: krb5_free_unparsed_name
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:198,1
    - Dst: krb5_get_init_creds_opt_alloc
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:203,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:206,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:206,1
    - Dst: krb5_kt_resolve
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:215,1
    - Dst: krb5_kt_default
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:216,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:218,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:218,1
    - Dst: krb5_kt_get_name
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:223,1
    - Dst: krb5_kt_close
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:224,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:226,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:226,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:231,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:233,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:233,1
    - Dst: krb5_verify_init_creds_opt_init
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:234,1
    - Dst: krb5_verify_init_creds_opt_set_ap_req_nofail
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:235,1
    - Dst: krb5_mod_conn_create
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:239,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:239,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 69
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 243
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - krb5_verify_init_creds_opt_init
    - WARN
    - krb5_is_thread_safe
    - talloc_array
    - krb5_sname_to_principal
    - krb5_kt_default
    - strlen
    - krb5_verify_init_creds_opt_set_ap_req_nofail
    - MEM
    - strlcpy
    - ERROR
    - krb5_get_init_creds_opt_alloc
    - talloc_get_type_abort
    - krb5_mod_conn_create
    - krb5_kt_resolve
    - DEBUG
    - krb5_free_unparsed_name
    - krb5_kt_close
    - krb5_kt_get_name
    - fr_time_delta_wrap
    - rlm_krb5_error
    - krb5_init_context
    - krb5_unparse_name
    - strchr
    - talloc_zero
    - fr_log
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: krb5_parse_name
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:259,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:261,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:261,1
    - Dst: krb5_unparse_name
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:266,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:267,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:269,1
    - Dst: krb5_free_unparsed_name
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - client
    - inst
    - request
    - context
    - env
    argTypes:
    - krb5_principal*
    - KRB5_UNUSED*
    - request_t*
    - krb5_context
    - krb5_auth_call_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 274
    functionName: krb5_parse_user
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - rlm_krb5_error
    - krb5_free_unparsed_name
    - krb5_unparse_name
    - krb5_parse_name
    - REDEBUG
    - free
    - RDEBUG2
    linkageType: ''
    returnType: rlm_rcode_t
    signature: "rlm_rcode_t krb5_parse_user(krb5_principal *client, KRB5_UNUSED rlm_krb5_t
      const *inst, request_t *request,\n\t\t\t\t   krb5_context context, krb5_auth_call_env_t
      *env)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:286,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:288,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:289,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:294,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:294,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:300,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:300,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:304,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:304,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:308,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - inst
    - request
    - conn
    - ret
    argTypes:
    - rlm_krb5_t*
    - request_t*
    - rlm_krb5_handle_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 311
    functionName: krb5_process_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - rlm_krb5_error
    - fr_cond_assert
    - REDEBUG
    - RDEBUG2
    - fr_assert
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t krb5_process_error(rlm_krb5_t const *inst, request_t *request,
      rlm_krb5_handle_t *conn, int ret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:320,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:321,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:323,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:334,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:342,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:344,1
    - Dst: krb5_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:348,1
    - Dst: krb5_parse_user
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:354,1
    - Dst: krb5_verify_user_opt
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:360,1
    - Dst: krb5_process_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:362,1
    - Dst: krb5_cc_start_seq_get
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:380,1
    - Dst: krb5_cc_next_cred
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:381,1
    - Dst: krb5_cc_next_cred
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:383,1
    - Dst: krb5_cc_remove_cred
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:384,1
    - Dst: krb5_cc_end_seq_get
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:386,1
    - Dst: krb5_free_principal
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:391,1
    - Dst: krb5_slab_release
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:395,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 398
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - krb5_cc_next_cred
    - krb5_parse_user
    - REDEBUG
    - krb5_slab_release
    - talloc_get_type_abort
    - krb5_slab_reserve
    - krb5_cc_start_seq_get
    - krb5_cc_remove_cred
    - RDEBUG2
    - krb5_verify_user_opt
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    - krb5_cc_end_seq_get
    - krb5_free_principal
    - krb5_process_error
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:407,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:408,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:410,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:424,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:432,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:434,1
    - Dst: krb5_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:438,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:447,1
    - Dst: krb5_parse_user
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:453,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:459,1
    - Dst: krb5_get_init_creds_password
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:460,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:460,1
    - Dst: krb5_process_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:463,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:467,1
    - Dst: krb5_verify_init_creds
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:468,1
    - Dst: krb5_process_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:469,1
    - Dst: krb5_free_principal
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:472,1
    - Dst: krb5_free_cred_contents
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:473,1
    - Dst: krb5_slab_release
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:476,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c:478,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 479
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/rlm_krb5.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - krb5_parse_user
    - REDEBUG
    - UNCONST
    - krb5_slab_release
    - talloc_get_type_abort
    - krb5_slab_reserve
    - krb5_verify_init_creds
    - RDEBUG2
    - krb5_get_init_creds_password
    - krb5_free_cred_contents
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    - memset
    - krb5_free_principal
    - krb5_process_error
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: _krb5_logging_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/krb5.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _krb5_logging_free(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:51,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:55,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:57,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:61,1
    - Dst: krb5_get_error_message
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:64,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:66,1
    - Dst: krb5_free_error_message
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:68,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - inst
    - context
    - code
    argTypes:
    - rlm_krb5_t*
    - krb5_context
    - krb5_error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 79
    functionName: rlm_krb5_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/krb5.c
    functionUses: 3
    functionsReached:
    - ERROR
    - talloc_array
    - fr_atexit_thread_local
    - fr_cond_assert
    - krb5_get_error_message
    - krb5_free_error_message
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *rlm_krb5_error(rlm_krb5_t const *inst, krb5_context context,
      krb5_error_code code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: krb5_free_context
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:90,1
    - Dst: krb5_kt_close
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:92,1
    - Dst: krb5_cc_destroy
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - rlm_krb5_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/krb5.c
    functionUses: 0
    functionsReached:
    - krb5_kt_close
    - krb5_cc_destroy
    - krb5_free_context
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(rlm_krb5_handle_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:103,1
    - Dst: krb5_init_context
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:106,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:108,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:108,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:111,1
    - Dst: krb5_kt_resolve
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:114,1
    - Dst: krb5_kt_default
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:115,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:117,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:117,1
    - Dst: krb5_cc_new_unique
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:122,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:124,1
    - Dst: rlm_krb5_error
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:124,1
    - Dst: krb5_verify_opt_init
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:128,1
    - Dst: krb5_verify_opt_set_ccache
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:129,1
    - Dst: krb5_verify_opt_set_keytab
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:131,1
    - Dst: krb5_verify_opt_set_secure
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:132,1
    - Dst: krb5_verify_opt_set_service
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - conn
    - uctx
    argTypes:
    - rlm_krb5_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 137
    functionName: krb5_handle_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/krb5.c
    functionUses: 0
    functionsReached:
    - ERROR
    - rlm_krb5_error
    - krb5_verify_opt_set_secure
    - krb5_init_context
    - talloc_set_destructor
    - krb5_verify_opt_set_keytab
    - krb5_verify_opt_init
    - krb5_kt_default
    - krb5_cc_new_unique
    - talloc_get_type_abort_const
    - krb5_verify_opt_set_service
    - krb5_kt_resolve
    - krb5_verify_opt_set_ccache
    linkageType: ''
    returnType: int
    signature: int krb5_handle_init(rlm_krb5_handle_t *conn, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:147,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:150,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:150,1
    - Dst: krb5_handle_init
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:152,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_krb5/krb5.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - instance
    - fr_time_delta_t
    argTypes:
    - TALLOC_CTX*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: krb5_mod_conn_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_krb5/krb5.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - talloc_zero
    - krb5_handle_init
    - MEM
    linkageType: ''
    returnType: void
    signature: void *krb5_mod_conn_create(TALLOC_CTX *ctx, void *instance, UNUSED
      fr_time_delta_t timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wbcCtxLookupName
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:65,1
    - Dst: WBC_ERROR_IS_OK
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:66,1
    - Dst: wbcCtxLookupSid
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:69,1
    - Dst: WBC_ERROR_IS_OK
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:70,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:72,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:72,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:74,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - wb_ctx
    - dom_name
    - name
    argTypes:
    - TALLOC_CTX*
    - struct wbcContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: wbclient_normalise_username
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c
    functionUses: 0
    functionsReached:
    - wbcCtxLookupSid
    - WBC_ERROR_IS_OK
    - talloc_strdup
    - wbcCtxLookupName
    - wbcFreeMemory
    - MEM
    linkageType: ''
    returnType: char
    signature: "char *wbclient_normalise_username(TALLOC_CTX *ctx, struct wbcContext
      *wb_ctx,\n\t\t\t\t\t char const *dom_name, char const *name)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:112,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:117,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:131,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:134,1
    - Dst: mschap_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:143,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:145,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:150,1
    - Dst: wbcCtxAuthenticateUserEx
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:153,1
    - Dst: wbclient_normalise_username
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:160,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:164,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:166,1
    - Dst: talloc_memcmp_bstr
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:168,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:173,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:173,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:174,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:176,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:177,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:181,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:182,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:184,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:188,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:189,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:191,1
    - Dst: mschap_challenge_hash
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:195,1
    - Dst: wbcCtxAuthenticateUserEx
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:200,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:202,1
    - Dst: mschap_slab_release
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:205,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:214,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:216,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:220,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:221,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:222,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:226,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:231,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:247,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:249,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:261,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:263,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:269,1
    - Dst: wbcFreeMemory
      Src: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c:270,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 98
    argCount: 6
    argNames:
    - inst
    - request
    - challenge
    - response
    - nthashhash
    - auth_ctx
    argTypes:
    - rlm_mschap_t*
    - request_t*
    - uint8_t*
    - uint8_t*
    - uint8_t[]
    - mschap_auth_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 273
    functionName: do_auth_wbclient
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/auth_wbclient.c
    functionUses: 0
    functionsReached:
    - wbclient_normalise_username
    - memcpy
    - REDEBUG2
    - tmpl_attr_tail_da
    - mschap_slab_release
    - talloc_memcmp_bstr
    - MEM
    - mschap_slab_reserve
    - mschap_challenge_hash
    - wbcFreeMemory
    - memset
    - RWDEBUG2
    - fr_pair_find_by_da_nested
    - fr_box_strvalue_buffer
    - RDEBUG2
    - fr_pair_value_bstrdup_buffer
    - pair_update_request
    - RERROR
    - talloc_free
    - wbcCtxAuthenticateUserEx
    linkageType: ''
    returnType: int
    signature: "int do_auth_wbclient(rlm_mschap_t const *inst, request_t *request,\n\t\t
      \    uint8_t const *challenge, uint8_t const *response,\n\t\t     uint8_t nthashhash[NT_DIGEST_LENGTH],
      mschap_auth_ctx_t *auth_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: MSCHAP_CALL_ENV
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSCHAP_CALL_ENV(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: MSCHAP_COMMON_CALL_ENV
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSCHAP_COMMON_CALL_ENV(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _opt
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: MSCHAP_OPT_CALL_ENV
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSCHAP_OPT_CALL_ENV(_opt, _x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:263,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:266,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - request
    - attr_user_name
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: mschap_identity_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *mschap_identity_find(request_t *request, fr_dict_attr_t
      const *attr_user_name)
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 350
    functionName: pdb_decode_acct_ctrl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pdb_decode_acct_ctrl(char const *p)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:369,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:375,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:376,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:386,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:387,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:388,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:390,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:400,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:414,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:415,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:417,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:431,1
    - Dst: mschap_identity_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:435,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:435,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:447,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:453,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:458,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:468,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:469,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:477,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:478,1
    - Dst: mschap_challenge_hash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:479,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:484,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:492,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:493,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:494,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:495,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:496,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:498,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:507,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:508,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:513,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:529,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:530,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:531,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:533,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:539,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:547,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:558,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:561,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:561,1
    - Dst: mschap_identity_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:563,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:563,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:570,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:577,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:579,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:580,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:584,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:587,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:589,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:590,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:594,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:598,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:604,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:607,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:607,1
    - Dst: mschap_identity_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:609,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:609,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:616,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:623,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:625,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:626,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:629,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:631,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:633,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:637,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:639,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:640,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:644,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:648,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:654,1
    - Dst: mschap_identity_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:657,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:657,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:660,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:660,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:666,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:678,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:685,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:687,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:690,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:696,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:699,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:705,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:706,1
    - Dst: mschap_nt_password_hash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:710,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:711,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:716,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:716,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:717,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:718,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:719,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:725,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:726,1
    - Dst: smbdes_lmpwdhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:730,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:732,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:732,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:733,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:734,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:735,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:738,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:746,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:750,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:750,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:751,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:753,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 210
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 755
    functionName: mschap_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - tmpl_attr_tail_da
    - REDEBUG
    - memchr
    - fr_value_box_bstrndup
    - mschap_identity_find
    - MEM
    - fr_value_box_alloc_null
    - strncasecmp
    - fr_value_box_asprintf
    - fr_value_box_strdup
    - mschap_challenge_hash
    - talloc_get_type_abort
    - mschap_nt_password_hash
    - memcmp
    - RWDEBUG2
    - fr_pair_find_by_da_nested
    - smbdes_lmpwdhash
    - RDEBUG2
    - fr_box_strvalue_len
    - strncmp
    - fr_pair_find_by_da
    - fr_value_box_list_next
    - fr_value_box_memdup
    - fr_dcursor_append
    - talloc_free
    - strchr
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t mschap_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wbcCtxFree
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wbctx
    argTypes:
    - winbind_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 766
    functionName: _mod_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - wbcCtxFree
    linkageType: ''
    returnType: int
    signature: int _mod_ctx_free(winbind_ctx_t *wbctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wbcCtxCreate
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:773,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:775,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - wbctx
    - uctx
    argTypes:
    - winbind_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 780
    functionName: winbind_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - wbcCtxCreate
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: int winbind_ctx_alloc(winbind_ctx_t *wbctx, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:791,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:791,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:792,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:793,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:794,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - inst
    - request
    - da
    - value
    - len
    argTypes:
    - UNUSED*
    - request_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 796
    functionName: mppe_add_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - RINDENT
    - fr_pair_value_memdup
    - pair_update_reply
    - RDEBUG2
    - REXDENT
    - MEM
    linkageType: ''
    returnType: void
    signature: "void mppe_add_reply(UNUSED rlm_mschap_t const *inst,\n\t\t\t   request_t
      *request, fr_dict_attr_t const *da, uint8_t const *value, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:809,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:812,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 820
    functionName: write_all
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - write
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int write_all(int fd, char const *buf, size_t len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:863,1
    - Dst: radius_start_program_legacy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:869,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:871,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:879,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:882,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:883,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:888,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:891,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:892,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:897,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:901,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:902,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:902,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:902,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:903,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:904,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:905,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:909,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:910,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:910,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:910,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:911,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:912,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:913,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:921,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:922,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:923,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:926,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:927,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:928,1
    - Dst: write_all
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:931,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:932,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:935,1
    - Dst: radius_readfrom_program_legacy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:941,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:941,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:944,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:947,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:951,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:953,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:955,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:959,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:959,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:963,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:964,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:968,1
    - Dst: strsep
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:970,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:974,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:978,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:979,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:998,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1000,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1005,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1009,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1016,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1025,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 119
    argCount: 5
    argNames:
    - inst
    - request
    - auth_ctx
    - new_nt_password
    - old_nt_hash
    argTypes:
    - rlm_mschap_t*
    - request_t*
    - mschap_auth_ctx_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 1029
    functionName: do_mschap_cpw
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - REDEBUG
    - FR_SBUFF_OUT
    - strsep
    - fr_pair_value_memdup
    - FR_DBUFF_TMP
    - strlen
    - close
    - radius_readfrom_program_legacy
    - write_all
    - RWDEBUG2
    - fr_syserror
    - RDEBUG2
    - fr_time_delta_from_sec
    - radius_start_program_legacy
    - fr_base16_encode
    - strstr
    - snprintf
    - waitpid
    linkageType: ''
    returnType: void
    signature: "void do_mschap_cpw(rlm_mschap_t const *inst, request_t *request, mschap_auth_ctx_t
      *auth_ctx,\n\t\t\t\t\t  uint8_t *new_nt_password, uint8_t *old_nt_hash)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1046,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1061,1
    - Dst: smbdes_mschap
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1065,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1066,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1075,1
    - Dst: radius_exec_program_legacy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1091,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1101,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1106,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1109,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1112,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1115,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1120,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1132,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1133,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1134,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1135,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1136,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1140,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1141,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1142,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1146,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1147,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1148,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1152,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1153,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1154,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1158,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1159,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1160,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1164,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1165,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1168,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1178,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1179,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1186,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1188,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1197,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1197,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1198,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1199,1
    - Dst: do_auth_wbclient
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1210,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1214,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 94
    argCount: 6
    argNames:
    - inst
    - request
    - auth_ctx
    - challenge
    - response
    - nthashhash
    argTypes:
    - rlm_mschap_t*
    - request_t*
    - mschap_auth_ctx_t*
    - uint8_t*
    - uint8_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1038
    functionDepth: 3
    functionLinenumber: 1038
    functionLinenumberEnd: 1219
    functionName: do_mschap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - smbdes_mschap
    - REDEBUG2
    - REDEBUG
    - FR_DBUFF_TMP
    - strlen
    - do_auth_wbclient
    - memcmp
    - memset
    - fr_base16_decode
    - fr_md4_calc
    - radius_exec_program_legacy
    - strcasestr
    - FR_SBUFF_IN
    - strcasecmp
    - RDEBUG2
    - strcmp
    - fr_digest_cmp
    - RERROR
    - strchr
    linkageType: ''
    returnType: void
    signature: "void do_mschap(rlm_mschap_t const *inst, request_t *request,\n\t\t\t\t
      \     mschap_auth_ctx_t *auth_ctx,\n\t\t\t\t      uint8_t const *challenge,
      uint8_t const *response,\n\t\t\t\t      uint8_t nthashhash[static NT_DIGEST_LENGTH])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1271,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1272,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1273,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1274,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1275,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - nt_hashhash
    - nt_response
    - masterkey
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1278
    functionName: mppe_GetMasterKey
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void mppe_GetMasterKey(uint8_t const *nt_hashhash, uint8_t const *nt_response,\n\t\t\t
      \     uint8_t *masterkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1288,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1296,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1297,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1298,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1299,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1300,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1301,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - masterkey
    - sesskey
    - keylen
    - issend
    argTypes:
    - uint8_t*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1304
    functionName: mppe_GetAsymmetricStartKey
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    - memset
    linkageType: ''
    returnType: void
    signature: "void mppe_GetAsymmetricStartKey(uint8_t *masterkey, uint8_t *sesskey,\n\t\t\t\t
      \      int keylen, int issend)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mppe_GetMasterKey
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1312,1
    - Dst: mppe_GetAsymmetricStartKey
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1314,1
    - Dst: mppe_GetAsymmetricStartKey
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - nt_hashhash
    - nt_response
    - sendkey
    - recvkey
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1307
    functionDepth: 2
    functionLinenumber: 1307
    functionLinenumberEnd: 1316
    functionName: mppe_chap2_get_keys128
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - mppe_GetAsymmetricStartKey
    - mppe_GetMasterKey
    linkageType: ''
    returnType: void
    signature: "void mppe_chap2_get_keys128(uint8_t const *nt_hashhash, uint8_t const
      *nt_response,\n\t\t\t\t   uint8_t *sendkey, uint8_t *recvkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mppe_chap2_get_keys128
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1327,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1335,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - nt_hashhash
    - response
    - sendkey
    - recvkey
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1321
    functionDepth: 3
    functionLinenumber: 1321
    functionLinenumberEnd: 1337
    functionName: mppe_chap2_gen_keys128
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mppe_chap2_get_keys128
    linkageType: ''
    returnType: void
    signature: "void mppe_chap2_gen_keys128(uint8_t const *nt_hashhash, uint8_t const
      *response,\n\t\t\t\t   uint8_t *sendkey, uint8_t *recvkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1347,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1348,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1352,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1352,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1358,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1359,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1361,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1361,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1362,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1362,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1364,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1364,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1365,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1370,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1378
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 1
    functionsReached:
    - fr_pair_find_by_da_nested
    - WARN
    - tmpl_attr_tail_da
    - talloc_get_type_abort
    - fr_assert
    - RDEBUG2
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    - fr_pair_find_by_da
    - fr_pair_parent
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1396,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1415,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1428,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1436,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1447,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1447,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1448,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1453,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1453,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1454,1
    - Dst: mschap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1461,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1461,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1462,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1464,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 8
    argNames:
    - p_result
    - inst
    - request
    - ident
    - mschap_result
    - mschap_version
    - smb_ctrl
    - env_data
    argTypes:
    - unlang_result_t*
    - rlm_mschap_t*
    - request_t*
    - unsigned char
    - int
    - int
    - fr_pair_t*
    - mschap_auth_call_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1465
    functionName: mschap_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - tmpl_attr_tail_da
    - snprintf
    - fr_rand
    - strlen
    - RETURN_UNLANG_RCODE
    - mschap_add_reply
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mschap_error(unlang_result_t *p_result, rlm_mschap_t
      const *inst, request_t *request,\n\t\t\t\t    unsigned char ident, int mschap_result,
      int mschap_version, fr_pair_t *smb_ctrl,\n\t\t\t\t    mschap_auth_call_env_t
      *env_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: password_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1487,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1488,1
    - Dst: password_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1497,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1499,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1506,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1525,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1525,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1526,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1526,1
    - Dst: mschap_nt_password_hash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1527,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1530,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1531,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1532,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1537,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1538,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1540,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1543,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1550,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1553,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1555,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - ctx
    - out
    - inst
    - request
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t**
    - rlm_mschap_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1560
    functionName: nt_password_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - RERROR
    - TALLOC_FREE
    - password_find
    - REDEBUG2
    - fr_pair_value_mem_alloc
    - talloc_free
    - mschap_nt_password_hash
    - fr_box_octets
    - RDEBUG3
    - RDEBUG2
    - fr_assert
    - MEM
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: "void nt_password_find(TALLOC_CTX *ctx, fr_pair_t **out,\n\t\t\t\t\t\t
      \     rlm_mschap_t const *inst, request_t *request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_mschap_cpw
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1577,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1580,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1583,1
    - Dst: mschap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1584,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1585,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1585,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - p_result
    - inst
    - request
    - auth_ctx
    argTypes:
    - unlang_result_t*
    - rlm_mschap_t*
    - request_t*
    - mschap_auth_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1594
    functionName: mschap_process_cpw_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - tmpl_attr_tail_da
    - snprintf
    - RDEBUG2
    - strlen
    - mschap_add_reply
    - do_mschap_cpw
    linkageType: ''
    returnType: void
    signature: "void mschap_process_cpw_request(unlang_result_t *p_result,\n\t\t\t\t\t\t\t\t
      \  rlm_mschap_t const *inst,\n\t\t\t\t\t\t\t\t   request_t *request,\n\t\t\t\t\t\t\t\t
      \  mschap_auth_ctx_t *auth_ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1614,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1617,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1622,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1626,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1626,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1642,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1643,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1645,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1650,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1661,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1666,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1670,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1675,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1693,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1695,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - request
    - auth_ctx
    argTypes:
    - request_t*
    - mschap_auth_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1697
    functionName: mschap_cpw_prepare
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da_nested
    - memcpy
    - REDEBUG
    - tmpl_attr_tail_da
    - RDEBUG2
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: int
    signature: int mschap_cpw_prepare(request_t *request, mschap_auth_ctx_t *auth_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1711,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1717,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1725,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1734,1
    - Dst: do_mschap
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1743,1
    - Dst: mschap_error
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1748,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 8
    argNames:
    - p_result
    - mschap_version
    - nthashhash
    - inst
    - request
    - auth_ctx
    - challenge
    - response
    argTypes:
    - unlang_result_t*
    - int*
    - uint8_t[]
    - rlm_mschap_t*
    - request_t*
    - mschap_auth_ctx_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1699
    functionDepth: 4
    functionLinenumber: 1699
    functionLinenumberEnd: 1749
    functionName: mschap_process_response
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - REDEBUG2
    - REDEBUG
    - RDEBUG2
    - do_mschap
    - mschap_error
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mschap_process_response(unlang_result_t *p_result,
      int *mschap_version,\n\t\t\t\t\t\t\t\tuint8_t nthashhash[static NT_DIGEST_LENGTH],\n\t\t\t\t\t\t\t\trlm_mschap_t
      const *inst, request_t *request,\n\t\t\t\t\t\t\t\tmschap_auth_ctx_t *auth_ctx,\n\t\t\t\t\t\t\t\tfr_pair_t
      *challenge, fr_pair_t *response)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1768,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1774,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1782,1
    - Dst: mschap_identity_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1789,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1789,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1801,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1807,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1811,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1820,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1821,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1834,1
    - Dst: od_mschap_auth
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1835,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1841,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1843,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1854,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1855,1
    - Dst: mschap_challenge_hash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1856,1
    - Dst: do_mschap
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1861,1
    - Dst: mschap_error
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1866,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1872,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1874,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1875,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1876,1
    - Dst: mschap_auth_response
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1884,1
    - Dst: mschap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1891,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1892,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 8
    argNames:
    - p_result
    - mschap_version
    - nthashhash
    - inst
    - request
    - auth_ctx
    - challenge
    - response
    argTypes:
    - unlang_result_t*
    - int*
    - uint8_t[]
    - rlm_mschap_t*
    - request_t*
    - mschap_auth_ctx_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1751
    functionDepth: 4
    functionLinenumber: 1751
    functionLinenumberEnd: 1895
    functionName: mschap_process_v2_response
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - RWDEBUG2
    - mschap_auth_response
    - tmpl_attr_tail_da
    - REDEBUG
    - strchr
    - mschap_challenge_hash
    - mschap_error
    - od_mschap_auth
    - RDEBUG2
    - do_mschap
    - fr_box_strvalue_len
    - strcmp
    - mschap_identity_find
    - RWDEBUG
    - mschap_add_reply
    - fr_pair_find_by_da
    - strncasecmp
    linkageType: ''
    returnType: void
    signature: "void mschap_process_v2_response(unlang_result_t *p_result, int *mschap_version,\n\t\t\t\t\t\t\t\t
      \  uint8_t nthashhash[static NT_DIGEST_LENGTH],\n\t\t\t\t\t\t\t\t   rlm_mschap_t
      const *inst, request_t *request,\n\t\t\t\t\t\t\t\t   mschap_auth_ctx_t *auth_ctx,\n\t\t\t\t\t\t\t\t
      \  fr_pair_t *challenge, fr_pair_t *response)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1902,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1903,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1904,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1920,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1924,1
    - Dst: mschap_process_cpw_request
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1928,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1937,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1946,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1946,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1946,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1947,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1947,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1953,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1956,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1956,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1958,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1967,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1968,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1973,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1973,1
    - Dst: mschap_process_response
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1974,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1980,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1980,1
    - Dst: mschap_process_v2_response
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1981,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:1988,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2002,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2003,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2017,1
    - Dst: mppe_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2018,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2018,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2022,1
    - Dst: mppe_chap2_gen_keys128
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2023,1
    - Dst: mppe_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2025,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2025,1
    - Dst: mppe_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2026,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2026,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2030,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2034,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2034,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2034,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2037,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2037,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2037,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 1900
    functionDepth: 5
    functionLinenumber: 1900
    functionLinenumberEnd: 2043
    functionName: mod_authenticate_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_mem_alloc
    - memcpy
    - REDEBUG
    - tmpl_attr_tail_da
    - pair_update_reply
    - mschap_process_v2_response
    - MEM
    - talloc_get_type_abort
    - mschap_process_cpw_request
    - memset
    - mschap_process_response
    - fr_pair_find_by_da_nested
    - RDEBUG2
    - fr_assert
    - pair_update_request
    - fr_pair_find_by_da
    - mppe_chap2_gen_keys128
    - mppe_add_reply
    - talloc_get_type_abort_const
    - fr_pair_parent
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_authenticate_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2059,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2059,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2061,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2061,1
    - Dst: EVP_rc4
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2061,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2062,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2063,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2064,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2068,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2068,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2069,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2070,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2071,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2075,1
    - Dst: EVP_EncryptUpdate
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2075,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2076,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2077,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2078,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2082,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2094,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2102,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2113,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2113,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2114,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2114,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2115,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2121,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2122,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2123,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2124,1
    - Dst: RHEXDUMP1
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2125,1
    - Dst: RHEXDUMP1
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2126,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2136,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2136,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2155,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2155,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 76
    argCount: 2
    argNames:
    - request
    - auth_ctx
    argTypes:
    - request_t*
    - mschap_auth_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2184
    functionName: mschap_new_pass_decrypt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - unlikely
    - EVP_EncryptUpdate
    - fr_md4_calc
    - EVP_CIPHER_CTX_free
    - smbhash
    - fr_pair_value_mem_alloc
    - fr_pair_value_bstr_alloc
    - EVP_rc4
    - REDEBUG
    - RPERROR
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - RHEXDUMP1
    - pair_update_request
    - fr_digest_cmp
    - MEM
    linkageType: ''
    returnType: int
    signature: int mschap_new_pass_decrypt(request_t *request, mschap_auth_ctx_t *auth_ctx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2205,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2207,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2209,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2212,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2212,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2212,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2233,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2241,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2245,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2247,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2247,1
    - Dst: pdb_decode_acct_ctrl
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2248,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2261,1
    - Dst: nt_password_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2273,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2279,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2280,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2286,1
    - Dst: mschap_cpw_prepare
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2290,1
    - Dst: mschap_new_pass_decrypt
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2295,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2297,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2301,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2302,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2306,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2312,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2319,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2327,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2328,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2332,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2337,1
    - Dst: mod_authenticate_resume
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2352,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2354
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_tail_da
    - REDEBUG
    - unlang_module_yield
    - MEM
    - unlang_tmpl_push
    - mschap_cpw_prepare
    - talloc_get_type_abort
    - unlang_interpret_frame_talloc_ctx
    - pair_append_control
    - mod_authenticate_resume
    - pdb_decode_acct_ctrl
    - fr_pair_find_by_da_nested
    - fr_value_box_list_init
    - RDEBUG2
    - nt_password_find
    - fr_pair_find_by_da
    - mschap_new_pass_decrypt
    - talloc_zero
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2362,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2365,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2367,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2380,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2392,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2395,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2398,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2402,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2410,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2411,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2413,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2413,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2414,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2415,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2418,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2418,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2419,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2420,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2436,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2440,1
    - Dst: CHECK_OPTION
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2443,1
    - Dst: CHECK_OPTION
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2444,1
    - Dst: CHECK_OPTION
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2445,1
    - Dst: CHECK_OPTION
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2446,1
    - Dst: CHECK_OPTION
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2447,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2452
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - CHECK_OPTION
    - WARN
    - fr_time_delta_gt
    - cf_log_err
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_delta_lt
    - fr_time_delta_ispos
    - fr_dict_enum_by_name
    - DEBUG
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2424
    functionDepth: 0
    functionLinenumber: 2424
    functionLinenumberEnd: 2430
    functionName: CHECK_OPTION
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OPTION(_option)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2458,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2459,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2463
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2468,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2469,1
    - Dst: mschap_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2472,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2478
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_get_type_abort
    - mschap_slab_list_alloc
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2482,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2485
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/rlm_mschap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - len
    - dst
    argTypes:
    - unsigned char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: tohex
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tohex (unsigned char const  *src, size_t len, char *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_utf8_to_ucs2
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:55,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:55,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - password
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: ntpwdhash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c
    functionUses: 0
    functionsReached:
    - fr_md4_calc
    - fr_utf8_to_ucs2
    - strlen
    linkageType: ''
    returnType: void
    signature: void ntpwdhash(uint8_t *out, char const *password)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:71,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:72,1
    - Dst: fflush
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:73,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:75,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:76,1
    - Dst: smbdes_lmpwdhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:78,1
    - Dst: tohex
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:79,1
    - Dst: ntpwdhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:80,1
    - Dst: tohex
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:81,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbencrypt.c
    functionUses: 1
    functionsReached:
    - smbdes_lmpwdhash
    - fprintf
    - fflush
    - strlen
    - ntpwdhash
    - printf
    - tohex
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int main (int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - in
    - p
    - n
    argTypes:
    - char*
    - char*
    - uchar*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: permute
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void permute(char *out, char const *in, uchar const *p, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - d
    - count
    - n
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: lshift
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lshift(char *d, int count, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - out
    - in1
    - in2
    - l1
    - l2
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: concat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void concat(char *out, char *in1, char *in2, int l1, int l2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - in1
    - in2
    - n
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: xor
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor(char *out, char *in1, char *in2, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: permute
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:202,1
    - Dst: lshift
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:210,1
    - Dst: lshift
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:211,1
    - Dst: concat
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:213,1
    - Dst: permute
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:214,1
    - Dst: permute
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:217,1
    - Dst: permute
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:232,1
    - Dst: xor
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:234,1
    - Dst: permute
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:253,1
    - Dst: xor
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:255,1
    - Dst: concat
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:264,1
    - Dst: permute
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:266,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 267
    functionName: dohash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 0
    functionsReached:
    - lshift
    - permute
    - xor
    - concat
    linkageType: ''
    returnType: void
    signature: void dohash(char *out, char *in, char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - str
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 284
    functionName: str_to_key
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void str_to_key(unsigned char *str,unsigned char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_to_key
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:295,1
    - Dst: dohash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: smbhash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 1
    functionsReached:
    - str_to_key
    - dohash
    linkageType: ''
    returnType: void
    signature: void smbhash(unsigned char *out, unsigned char const *in, unsigned
      char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:325,1
    - Dst: toupper
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:327,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:330,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - password
    - lmhash
    argTypes:
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 332
    functionName: smbdes_lmpwdhash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 2
    functionsReached:
    - memset
    - smbhash
    - toupper
    linkageType: ''
    returnType: void
    signature: void smbdes_lmpwdhash(char const *password, uint8_t *lmhash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:344,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:345,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:347,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:348,1
    - Dst: smbhash
      Src: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - win_password
    - challenge
    - response
    argTypes:
    - uint8_t[]
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: smbdes_mschap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/smbdes.c
    functionUses: 3
    functionsReached:
    - memset
    - smbhash
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void smbdes_mschap(uint8_t const win_password[16],\n\t\t uint8_t const
      *challenge, uint8_t *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_utf8_to_ucs2
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:57,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:57,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - password
    argTypes:
    - uint8_t[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: mschap_nt_password_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/mschap.c
    functionUses: 4
    functionsReached:
    - fr_md4_calc
    - fr_utf8_to_ucs2
    - strlen
    linkageType: ''
    returnType: int
    signature: int mschap_nt_password_hash(uint8_t out[static NT_DIGEST_LENGTH], char
      const *password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:80,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:81,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:82,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:83,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:85,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:86,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:87,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:88,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:89,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:91,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - challenge
    - peer_challenge
    - auth_challenge
    - user_name
    - user_name_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: mschap_challenge_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/mschap.c
    functionUses: 3
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - memcpy
    - FR_PROTO_TRACE
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    linkageType: ''
    returnType: void
    signature: "void mschap_challenge_hash(uint8_t challenge[static MSCHAP_CHALLENGE_LENGTH],\n\t\t\t
      \  uint8_t const peer_challenge[static MSCHAP_PEER_CHALLENGE_LENGTH],\n\t\t\t
      \  uint8_t const auth_challenge[static MSCHAP_PEER_AUTHENTICATOR_CHALLENGE_LENGTH],\n\t\t\t
      \  char const *user_name, size_t user_name_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:127,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:128,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:129,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:130,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:131,1
    - Dst: mschap_challenge_hash
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:132,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:133,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:134,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:135,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:136,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 7
    argNames:
    - username
    - username_len
    - nt_hash_hash
    - ntresponse
    - peer_challenge
    - auth_challenge
    - response
    argTypes:
    - char*
    - size_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 156
    functionName: mschap_auth_response
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/mschap.c
    functionUses: 1
    functionsReached:
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    - mschap_challenge_hash
    linkageType: ''
    returnType: void
    signature: "void mschap_auth_response(char const *username, size_t username_len,\n\t\t\t
      \ uint8_t const *nt_hash_hash,\n\t\t\t  uint8_t const *ntresponse,\n\t\t\t  uint8_t
      const *peer_challenge, uint8_t const *auth_challenge,\n\t\t\t  char *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:167,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:167,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:171,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:171,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:173,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:177,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:177,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/mschap.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - request
    - ident
    - da
    - value
    - len
    argTypes:
    - request_t*
    - uint8_t
    - fr_dict_attr_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 181
    functionName: mschap_add_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/mschap.c
    functionUses: 3
    functionsReached:
    - fr_pair_value_bstr_alloc
    - fr_pair_value_mem_alloc
    - memcpy
    - pair_update_reply
    - MEM
    linkageType: ''
    returnType: void
    signature: "void mschap_add_reply(request_t *request, uint8_t ident,\n\t\t      fr_dict_attr_t
      const *da, char const *value, size_t len)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:79,1
    - Dst: dsDataBufferAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:83,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:85,1
    - Dst: dsFindDirNodes
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:91,1
    - Dst: OPEN_DIR_ERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:99,1
    - Dst: dsGetDirNodeName
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:106,1
    - Dst: OPEN_DIR_ERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:107,1
    - Dst: dsOpenDirNode
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:109,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:110,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:111,1
    - Dst: OPEN_DIR_ERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:114,1
    - Dst: dsBuildListFromStrings
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:116,1
    - Dst: dsBuildListFromStrings
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:117,1
    - Dst: dsBuildListFromStrings
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:119,1
    - Dst: dsGetRecordList
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:124,1
    - Dst: OPEN_DIR_ERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:127,1
    - Dst: dsGetRecordEntry
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:134,1
    - Dst: OPEN_DIR_ERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:135,1
    - Dst: dsGetAttributeEntry
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:138,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:142,1
    - Dst: dsGetAttributeValue
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:143,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:145,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:149,1
    - Dst: dsGetAttributeValue
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:150,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:152,1
    - Dst: dsDeallocAttributeValueEntry
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:159,1
    - Dst: dsDeallocAttributeEntry
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:163,1
    - Dst: dsCloseAttributeValueList
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:165,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:171,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:180,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:180,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:181,1
    - Dst: dsBuildFromPath
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:186,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:188,1
    - Dst: dsOpenDirNode
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:193,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:194,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:195,1
    - Dst: dsCopyDirStatusName
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:199,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:200,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:201,1
    - Dst: dsDeallocRecordEntry
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:209,1
    - Dst: dsDataBufferDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:214,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:217,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:218,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:221,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:222,1
    - Dst: dsDataListDeallocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:225,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:226,1
    - Dst: dsCloseDirNode
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:228,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:230,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 6
    argNames:
    - p_result
    - request
    - inUserName
    - outUserName
    - userNodeRef
    - dsRef
    argTypes:
    - unlang_result_t*
    - request_t*
    - char*
    - char**
    - tDirNodeReference*
    - tDirReference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 231
    functionName: getUserNodeRef
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/opendir.c
    functionUses: 0
    functionsReached:
    - talloc_bstrndup
    - REDEBUG
    - dsDataBufferAllocate
    - dsDeallocRecordEntry
    - dsGetAttributeEntry
    - dsCloseAttributeValueList
    - strlen
    - dsGetRecordEntry
    - OPEN_DIR_ERROR
    - DEBUG2
    - dsBuildFromPath
    - dsGetDirNodeName
    - dsCopyDirStatusName
    - dsDataListDeallocate
    - dsBuildListFromStrings
    - strcmp
    - dsOpenDirNode
    - RETURN_UNLANG_RCODE
    - dsFindDirNodes
    - strncmp
    - dsDeallocAttributeValueEntry
    - dsCloseDirNode
    - dsDataBufferDeAllocate
    - RERROR
    - dsGetAttributeValue
    - talloc_free
    - free
    - dsGetRecordList
    - dsDeallocAttributeEntry
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t getUserNodeRef(unlang_result_t *p_result, request_t
      *request, char* inUserName, char **outUserName,\n\t\t\t\t      tDirNodeReference*
      userNodeRef, tDirReference dsRef)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: OPEN_DIR_ERROR
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/opendir.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPEN_DIR_ERROR(_x)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:258,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:258,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:260,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:264,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:267,1
    - Dst: dsOpenDirService
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:269,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:271,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:272,1
    - Dst: getUserNodeRef
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:276,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:279,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:282,1
    - Dst: dsCloseDirService
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:284,1
    - Dst: dsDataBufferAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:309,1
    - Dst: dsDataBufferAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:310,1
    - Dst: dsDataNodeAllocateString
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:311,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:314,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:316,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:320,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:322,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:325,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:326,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:328,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:330,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:335,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:337,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:342,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:344,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:346,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:351,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:353,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:358,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:359,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:361,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:363,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:368,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:371,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:375,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:376,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:378,1
    - Dst: dsDoDirNodeAuth
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:383,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:388,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:393,1
    - Dst: mschap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:394,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:395,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:397,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:404,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:406,1
    - Dst: dsDataBufferDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:409,1
    - Dst: dsDataBufferDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:411,1
    - Dst: dsDataNodeDeAllocate
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:413,1
    - Dst: dsCloseDirNode
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:415,1
    - Dst: dsCloseDirService
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:417,1
    - Dst: dsCopyDirStatusName
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:420,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:421,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_mschap/opendir.c:422,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 109
    argCount: 5
    argNames:
    - p_result
    - request
    - challenge
    - usernamepair
    - env_data
    argTypes:
    - unlang_result_t*
    - request_t*
    - fr_pair_t*
    - fr_pair_t*
    - mschap_auth_call_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 427
    functionName: od_mschap_auth
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mschap/opendir.c
    functionUses: 1
    functionsReached:
    - memcpy
    - talloc_array
    - tmpl_attr_tail_da
    - dsDataBufferAllocate
    - strlen
    - dsCloseDirService
    - mschap_add_reply
    - strlcpy
    - getUserNodeRef
    - dsDataNodeAllocateString
    - fr_pair_find_by_da_nested
    - dsCopyDirStatusName
    - dsOpenDirService
    - dsDoDirNodeAuth
    - RDEBUG2
    - dsCloseDirNode
    - dsDataNodeDeAllocate
    - dsDataBufferDeAllocate
    - RERROR
    - talloc_free
    - free
    - RINDENT
    - fprintf
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t od_mschap_auth(unlang_result_t *p_result, request_t
      *request, fr_pair_t *challenge, fr_pair_t *usernamepair,\n\t\t\t       mschap_auth_call_env_t
      *env_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:141,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:146,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:147,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:159,1
    - Dst: fr_chap_encode
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:163,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:163,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:166,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:166,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:167,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 171
    functionName: xlat_func_chap_password
    functionSourceFile: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - fr_chap_encode
    - talloc_get_type_abort
    - fr_value_box_memdup
    - fr_rand
    - talloc_get_type_abort_const
    - RWDEBUG
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_chap_password(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t \t     xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:176,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:177,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:179,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:180,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:199,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:201,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:201,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:201,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:202,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:203,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:207,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 217
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - WARN
    - tmpl_attr_tail_da
    - fr_pair_append
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - RDEBUG2
    - RDEBUG3
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:227,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:230,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:241,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:246,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:252,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:257,1
    - Dst: password_find
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:267,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:268,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:271,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:289,1
    - Dst: fr_chap_encode
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:293,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:306,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:310,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:315,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:316,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:316,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:317,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:317,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:319,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:319,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:320,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:327,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:328,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:330,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:335,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 338
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c
    functionUses: 0
    functionsReached:
    - fr_digest_cmp
    - REXDENT
    - password_find
    - TALLOC_FREE
    - REDEBUG
    - fr_chap_encode
    - talloc_get_type_abort
    - RINDENT
    - fr_box_octets
    - RDEBUG2
    - RDEBUG3
    - talloc_get_type_abort_const
    - RWDEBUG
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:346,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:348,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - WARN
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:361,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:361,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:363,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 367
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_chap/rlm_chap.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - unlikely
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: pairlist_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - fr_value_box_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pairlist_hash(void const *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:97,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: pairlist_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - CMP
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t pairlist_cmp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_to_key
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - outlen
    - a
    argTypes:
    - uint8_t**
    - size_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: pairlist_to_key
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - fr_value_box_to_key
    linkageType: ''
    returnType: int
    signature: int pairlist_to_key(uint8_t **out, size_t *outlen, void const *a)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: pairlist_list_init
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:124,1
    - Dst: pairlist_read
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:125,1
    - Dst: fr_htrie_hint
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:131,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:140,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:151,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:152,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:153,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:162,1
    - Dst: tmpl_is_regex
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:162,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:172,1
    - Dst: map_list_insert_after
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:173,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:195,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:198,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:199,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:200,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:204,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:207,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:217,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:217,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:218,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:225,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:230,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:230,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:231,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:236,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:237,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:250,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:250,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:251,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:256,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:257,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:267,1
    - Dst: map_list_insert_after
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:268,1
    - Dst: map_list_remove
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:281,1
    - Dst: map_list_insert_after
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:282,1
    - Dst: fr_htrie_alloc
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:289,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:291,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:292,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:298,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:298,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:305,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:309,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:310,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:326,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:328,1
    - Dst: pairlist_list_init
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:329,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:343,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:357,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:358,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:359,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:360,1
    - Dst: fr_htrie_match
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:367,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:369,1
    - Dst: pairlist_list_init
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:370,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:372,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:374,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:374,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:375,1
    - Dst: fr_htrie_insert
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:382,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:383,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:388,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:389,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:393,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:398,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 151
    argCount: 7
    argNames:
    - ctx
    - inst
    - ptree
    - pdefault
    - data_type
    - key_enum
    - dict
    argTypes:
    - TALLOC_CTX*
    - rlm_files_t*
    - fr_htrie_t**
    - PAIR_LIST_LIST**
    - fr_type_t
    - fr_dict_attr_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 404
    functionName: getrecv_filename
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - fr_htrie_hint
    - fr_value_box_clear_value
    - tmpl_is_exec
    - fr_dlist_pop_head
    - tmpl_attr_tail_da
    - map_list_remove
    - tmpl_is_data
    - tmpl_value_type
    - fr_value_box_alloc
    - strlen
    - fr_strerror
    - MEM
    - fr_dlist_head
    - unlikely
    - ERROR
    - map_list_head
    - map_list_insert_after
    - tmpl_is_attr
    - pairlist_list_init
    - map_list_next
    - fr_assert
    - tmpl_contains_regex
    - strcmp
    - fr_htrie_alloc
    - PERROR
    - fr_htrie_insert
    - tmpl_is_regex
    - pairlist_read
    - talloc_free
    - fr_dlist_next
    - fr_htrie_match
    - fr_dlist_remove
    - talloc_zero
    - tmpl_value
    - fr_dlist_insert_tail
    - fr_value_box_from_str
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: "int getrecv_filename(TALLOC_CTX *ctx, rlm_files_t const *inst, fr_htrie_t
      **ptree, PAIR_LIST_LIST **pdefault,\n\t\t\t    fr_type_t data_type, fr_dict_attr_t
      const *key_enum, fr_dict_t const *dict)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:411,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:421,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:424,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:432,1
    - Dst: unlang_interpret_edit_list
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:434,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:435,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:435,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:440,1
    - Dst: fr_value_box_to_key
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:454,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:456,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:457,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:460,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:467,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:483,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:484,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:488,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:489,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:494,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:495,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:499,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:500,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:506,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:509,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:521,1
    - Dst: radius_legacy_map_cmp
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:528,1
    - Dst: RPWARN
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:530,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:532,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:537,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:548,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:565,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:566,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:567,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:568,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:569,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:573,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:574,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:576,1
    - Dst: radius_legacy_map_list_apply
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:577,1
    - Dst: RPWARN
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:578,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:579,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:582,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:610,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:616,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:617,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:626,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:630,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 128
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 633
    functionName: mod_files_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPWARN
    - fr_edit_list_abort
    - fr_htrie_find
    - RHEXDUMP3
    - fr_trie_lookup_by_key
    - MEM
    - map_list_num_elements
    - fr_dlist_head
    - fr_value_box_to_key
    - RWARN
    - talloc_get_type_abort
    - fr_value_box_bstrndup_shallow
    - unlang_interpret_edit_list
    - map_list_next
    - fr_edit_list_commit
    - map_to_request
    - radius_legacy_map_list_apply
    - RDEBUG2
    - RDEBUG3
    - fr_assert
    - talloc_strlen
    - RERROR
    - RDEBUG
    - fr_dlist_next
    - RINDENT
    - radius_legacy_map_cmp
    - tmpl_init_shallow
    - fr_edit_list_alloc
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void mod_files_resume(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:645,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:647,1
    - Dst: unlang_module_yield_to_tmpl
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 652
    functionName: mod_files
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_init
    - talloc_get_type_abort
    - unlang_module_yield_to_tmpl
    linkageType: ''
    returnType: void
    signature: void mod_files(UNUSED unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:660,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:661,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:666,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:666,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:668,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:669,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:669,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:669,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:669,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:670,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:670,1
    - Dst: tmpl_expanded_type
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:673,1
    - Dst: fr_htrie_hint
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:674,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:675,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:675,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:677,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:682,1
    - Dst: getrecv_filename
      Src: /src/freeradius-server/src/modules/rlm_files/rlm_files.c:685,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 690
    functionName: files_call_env_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_files/rlm_files.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - fr_htrie_hint
    - talloc_free
    - cf_pair_value
    - tmpl_attr_tail_da
    - FR_SBUFF_IN
    - talloc_zero
    - tmpl_afrom_substr
    - talloc_get_type_abort_const
    - tmpl_expanded_type
    - fr_type_to_str
    - MEM
    - cf_log_err
    - getrecv_filename
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int files_call_env_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules, CONF_ITEM *ci,\n\t\t\t\tcall_env_ctx_t const *cec, UNUSED call_env_parser_t
      const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:186,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:189,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:190,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - uctx
    - out
    - dict_attr
    argTypes:
    - fr_mail_ctx_t*
    - struct curl_slist**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 197
    functionName: da_to_slist
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    - RDEBUG3
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    linkageType: ''
    returnType: int
    signature: int da_to_slist(fr_mail_ctx_t *uctx, struct curl_slist **out, const
      fr_dict_attr_t *dict_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:207,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:210,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - lists
    argTypes:
    - struct curl_slist**
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: value_box_list_to_slist
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - curl_slist_append
    - fr_value_box_list_next
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int value_box_list_to_slist(struct curl_slist **out, fr_value_box_list_t
      const *lists)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:240,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:242,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:243,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:246,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:249,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:249,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:251,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:251,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:256,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:257,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:261,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:261,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:268,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:269,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:269,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:274,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:274,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:275,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - uctx
    - out
    - lists
    - prefix
    argTypes:
    - fr_mail_ctx_t*
    - struct curl_slist**
    - fr_value_box_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 277
    functionName: value_box_list_to_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - RERROR
    - fr_value_box_cast_in_place
    - talloc_free
    - fr_sbuff_init_talloc
    - RDEBUG2
    - talloc_array_length
    - fr_sbuff_buff
    - curl_slist_append
    - fr_sbuff_in_strcpy
    - fr_value_box_list_next
    linkageType: ''
    returnType: int
    signature: "int value_box_list_to_header(fr_mail_ctx_t *uctx, struct curl_slist
      **out, fr_value_box_list_t const *lists,\n\t\t\t\t    const char *prefix)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:289,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:292,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:298,1
    - Dst: rad_filename_box_make_safe
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:299,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:300,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:305,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:306,1
    - Dst: curl_mime_addpart
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:311,1
    - Dst: curl_mime_encoder
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:312,1
    - Dst: curl_mime_filedata
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:313,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - uctx
    - mime
    - vb
    - path_buffer
    - m
    argTypes:
    - fr_mail_ctx_t*
    - curl_mime*
    - fr_value_box_t*
    - fr_sbuff_t*
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 319
    functionName: str_to_attachments
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_value_box_is_safe_for
    - REDEBUG2
    - curl_mime_filedata
    - rad_filename_box_make_safe
    - curl_mime_encoder
    - RPEDEBUG2
    - RDEBUG2
    - curl_mime_addpart
    - fr_sbuff_set
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: int
    signature: "int str_to_attachments(fr_mail_ctx_t *uctx, curl_mime *mime, fr_value_box_t
      *vb,\n\t\t\t      fr_sbuff_t *path_buffer, fr_sbuff_marker_t *m)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value_box_list_to_header
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:331,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:334,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:337,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:340,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:340,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:341,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:342,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:342,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:346,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:349,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - uctx
    - out
    - inst
    - call_env
    argTypes:
    - fr_mail_ctx_t*
    - struct curl_slist**
    - rlm_smtp_t*
    - rlm_smtp_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 352
    functionName: generate_from_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - fr_sbuff_init_talloc
    - value_box_list_to_header
    - strlen
    - fr_sbuff_buff
    - curl_slist_append
    - fr_sbuff_in_strcpy
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: int
    signature: "int generate_from_header(fr_mail_ctx_t *uctx, struct curl_slist **out,
      rlm_smtp_t const *inst,\n\t\t\t\trlm_smtp_env_t const *call_env)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: value_box_list_to_slist
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:366,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:373,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:376,1
    - Dst: value_box_list_to_slist
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:381,1
    - Dst: value_box_list_to_slist
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:386,1
    - Dst: value_box_list_to_slist
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:391,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - uctx
    - call_env
    argTypes:
    - fr_mail_ctx_t*
    - rlm_smtp_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 395
    functionName: recipients_source
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - value_box_list_to_slist
    - RDEBUG2
    linkageType: ''
    returnType: int
    signature: int recipients_source(fr_mail_ctx_t *uctx, rlm_smtp_env_t const *call_env)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_initialised
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:409,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:410,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:411,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:412,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:417,1
    - Dst: generate_from_header
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:417,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:418,1
    - Dst: value_box_list_to_header
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:423,1
    - Dst: value_box_list_to_header
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:426,1
    - Dst: da_to_slist
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:429,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:433,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:439,1
    - Dst: fr_time_strftime_local
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:440,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:440,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:441,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - uctx
    - inst
    - call_env
    argTypes:
    - fr_mail_ctx_t*
    - rlm_smtp_t*
    - rlm_smtp_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 446
    functionName: header_source
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - da_to_slist
    - unlikely
    - fr_time_strftime_local
    - fr_time
    - FR_SBUFF_OUT
    - value_box_list_to_header
    - RDEBUG2
    - generate_from_header
    - curl_slist_append
    - fr_value_box_list_next
    - fr_value_box_list_initialised
    linkageType: ''
    returnType: int
    signature: int header_source(fr_mail_ctx_t *uctx, rlm_smtp_t const *inst, rlm_smtp_env_t
      const *call_env)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:458,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:460,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:462,1
    - Dst: fr_dbuff_in_memcpy_partial
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:471,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:471,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:472,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:472,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:473,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:479,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:481,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:485,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:485,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - mail_ctx
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 487
    functionName: body_source
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dcursor_next
    - RWARN
    - fr_dbuff_init
    - fr_dbuff_in_memcpy_partial
    - fr_dbuff_remaining
    - fr_dbuff_used
    - RDEBUG3
    linkageType: ''
    returnType: size_t
    signature: size_t body_source(char *ptr, size_t size, size_t nmemb, void *mail_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:503,1
    - Dst: curl_mime_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:503,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:506,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:507,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:512,1
    - Dst: curl_mime_addpart
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:512,1
    - Dst: curl_mime_encoder
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:514,1
    - Dst: curl_mime_data_cb
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:515,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:517,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:519,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:522,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:527,1
    - Dst: curl_mime_addpart
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:527,1
    - Dst: curl_mime_subparts
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:528,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:529,1
    - Dst: curl_mime_type
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:529,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:530,1
    - Dst: curl_mime_headers
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - uctx
    - mime
    argTypes:
    - fr_mail_ctx_t*
    - curl_mime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 534
    functionName: body_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - curl_mime_data_cb
    - curl_mime_subparts
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - fr_dbuff_init
    - curl_mime_init
    - curl_mime_encoder
    - curl_mime_headers
    - RDEBUG2
    - curl_mime_type
    - curl_mime_addpart
    - curl_slist_append
    - MEM
    linkageType: ''
    returnType: int
    signature: int body_init(fr_mail_ctx_t *uctx, curl_mime *mime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:547,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:554,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:554,1
    - Dst: fr_sbuff_in_bstrcpy_buffer
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:557,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:560,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:561,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:565,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:569,1
    - Dst: str_to_attachments
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:570,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - uctx
    - mime
    - inst
    - call_env
    argTypes:
    - fr_mail_ctx_t*
    - curl_mime*
    - rlm_smtp_t*
    - rlm_smtp_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 580
    functionName: attachments_source
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_in_char
    - talloc_free
    - fr_sbuff_in_bstrcpy_buffer
    - fr_sbuff_init_talloc
    - fr_sbuff_marker
    - talloc_array_length
    - str_to_attachments
    - fr_value_box_list_next
    linkageType: ''
    returnType: int
    signature: int attachments_source(fr_mail_ctx_t *uctx, curl_mime *mime, rlm_smtp_t
      const *inst, rlm_smtp_env_t const *call_env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:584,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:585,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:588,1
    - Dst: curl_multi_remove_handle
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:590,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:592,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:592,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 597
    functionName: smtp_io_module_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_get_type_abort
    - curl_multi_remove_handle
    - RDEBUG2
    - curl_multi_strerror
    - smtp_slab_release
    linkageType: ''
    returnType: void
    signature: void smtp_io_module_signal(module_ctx_t const *mctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:611,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:612,1
    - Dst: curl_easy_getinfo
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:617,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:620,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:622,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:627,1
    - Dst: fr_curl_response_certinfo
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:639,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 643
    functionName: smtp_io_module_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_curl_response_certinfo
    - talloc_get_type_abort
    - curl_easy_getinfo
    - RDEBUG2
    - talloc_get_type_abort_const
    - smtp_slab_release
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t smtp_io_module_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:661,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:662,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:663,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:670,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:674,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:679,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:681,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:682,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:691,1
    - Dst: smtp_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:691,1
    - Dst: smtp_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:692,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:694,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:699,1
    - Dst: curl_mime_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:703,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:704,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:709,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:713,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:717,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:718,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:723,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:725,1
    - Dst: recipients_source
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:728,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:729,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:732,1
    - Dst: header_source
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:735,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:736,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:746,1
    - Dst: body_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:749,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:750,1
    - Dst: attachments_source
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:756,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:762,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:764,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:769,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 770
    functionName: mod_mail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - REDEBUG
    - tmpl_is_data
    - unlang_module_yield
    - smtp_slab_release
    - fr_time
    - talloc_get_type_abort
    - fr_curl_io_request_enqueue
    - FR_CURL_REQUEST_SET_OPTION
    - body_init
    - RDEBUG2
    - RDEBUG3
    - smtp_slab_reserve
    - RETURN_UNLANG_RCODE
    - recipients_source
    - header_source
    - fr_pair_find_by_da
    - RERROR
    - attachments_source
    - curl_mime_init
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_mail(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:783,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:784,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:788,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:793,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:798,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:803,1
    - Dst: smtp_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:807,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:812,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:813,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:815,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:817,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 822
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - RWARN
    - talloc_get_type_abort
    - fr_curl_io_request_enqueue
    - unlang_module_yield
    - smtp_slab_reserve
    - FR_CURL_REQUEST_SET_OPTION
    - smtp_slab_release
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:835,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:839,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:839,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:840,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:844,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:846,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:846,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 851
    functionName: smtp_send_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_get_type_abort
    - RPERROR
    - fr_value_box_alloc
    - smtp_slab_release
    - curl_easy_strerror
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t smtp_send_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:855,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:856,1
    - Dst: smtp_io_module_signal
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:858,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - action
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 859
    functionName: smtp_xlat_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - smtp_io_module_signal
    - MODULE_CTX
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void smtp_xlat_signal(xlat_ctx_t const *xctx, request_t *request, fr_signal_t
      action)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:874,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:875,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:877,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:885,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:888,1
    - Dst: smtp_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:888,1
    - Dst: smtp_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:889,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:891,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:895,1
    - Dst: curl_mime_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:899,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:900,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:903,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:907,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:911,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:912,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:916,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:917,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:918,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:919,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:921,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:922,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:923,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:924,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:926,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:927,1
    - Dst: fr_value_box_list_initialised
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:929,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:930,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:931,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:932,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:935,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:937,1
    - Dst: curl_mime_addpart
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:937,1
    - Dst: curl_mime_encoder
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:938,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:939,1
    - Dst: smtp_slab_release
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:941,1
    - Dst: curl_mime_data
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:946,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:947,1
    - Dst: curl_mime_data
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:951,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:953,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:955,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:957,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 958
    functionName: smtp_send_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - tmpl_is_data
    - smtp_slab_release
    - MEM
    - unlang_xlat_yield
    - talloc_asprintf
    - fr_time
    - talloc_get_type_abort
    - fr_curl_io_request_enqueue
    - FR_CURL_REQUEST_SET_OPTION
    - curl_slist_append
    - fr_value_box_list_initialised
    - RDEBUG2
    - smtp_slab_reserve
    - fr_value_box_list_next
    - RERROR
    - XLAT_ARGS
    - curl_mime_init
    - curl_mime_encoder
    - talloc_get_type_abort_const
    - curl_mime_addpart
    - curl_mime_data
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t smtp_send_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t    xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t    fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:964,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:965,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 979
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: smtp_onetime_request_cleanup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int smtp_onetime_request_cleanup(fr_curl_io_request_t *randle, UNUSED
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_reset
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1003
    functionName: smtp_persist_request_cleanup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - curl_easy_reset
    linkageType: ''
    returnType: int
    signature: int smtp_persist_request_cleanup(fr_curl_io_request_t *randle, UNUSED
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1009,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1009,1
    - Dst: smtp_slab_element_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1015
    functionName: smtp_onetime_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - smtp_slab_element_set_destructor
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: int
    signature: int smtp_onetime_conn_alloc(fr_curl_io_request_t *randle, UNUSED void
      *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - mail_ctx
    argTypes:
    - fr_mail_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1022
    functionName: smtp_mail_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int smtp_mail_ctx_free(fr_mail_ctx_t *mail_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1028,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1028,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1031,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1032,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1033,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1036,1
    - Dst: smtp_slab_element_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1041
    functionName: smtp_persist_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - fr_strerror_printf
    - curl_easy_init
    - talloc_zero
    - smtp_slab_element_set_destructor
    - MEM
    linkageType: ''
    returnType: int
    signature: int smtp_persist_conn_alloc(fr_curl_io_request_t *randle, UNUSED void
      *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1045,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1046,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1048,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1049,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1050,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1052,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1054,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1054,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1055,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1055,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1057,1
    - Dst: fr_curl_easy_tls_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1059,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - randle
    - inst
    argTypes:
    - fr_curl_io_request_t*
    - rlm_smtp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1064
    functionName: smtp_conn_common_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - CURL_AT_LEAST_VERSION
    - fr_curl_easy_tls_init
    - FR_CURL_SET_OPTION
    - fr_time_delta_to_msec
    linkageType: ''
    returnType: int
    signature: int smtp_conn_common_init(fr_curl_io_request_t *randle, rlm_smtp_t
      const *inst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1068,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1069,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1071,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1072,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1073,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1077,1
    - Dst: smtp_conn_common_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1080
    functionName: smtp_onetime_conn_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - curl_easy_init
    - talloc_get_type_abort
    - smtp_conn_common_init
    - memset
    linkageType: ''
    returnType: int
    signature: int smtp_onetime_conn_init(fr_curl_io_request_t *randle, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1085,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1086,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1088,1
    - Dst: smtp_conn_common_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1091
    functionName: smtp_persist_conn_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - smtp_conn_common_init
    - memset
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int smtp_persist_conn_init(fr_curl_io_request_t *randle, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1098,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1099,1
    - Dst: smtp_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1102,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1105,1
    - Dst: smtp_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1108,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1111,1
    - Dst: fr_curl_io_init
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1120
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - smtp_slab_list_alloc
    - talloc_get_type_abort
    - fr_curl_io_init
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1127,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1129,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1130,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1133
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1142,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1149,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1152,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1153,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1156,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1158,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1158,1
    - Dst: FR_CALL_ENV_OFFSET
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1159,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1164,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1164,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1164,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1166,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1167,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1167,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1168,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1170,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1173,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1173,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1175,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1179,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1180,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1181,1
    - Dst: call_env_parsed_set_tmpl
      Src: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c:1185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1189
    functionName: smtp_header_section_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_smtp/rlm_smtp.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - tmpl_needs_resolving
    - call_env_parsed_add
    - call_env_parsed_free
    - MEM
    - cf_log_err
    - call_env_parsed_set_tmpl
    - cf_item_to_section
    - cf_item_next
    - cf_pair_attr
    - cf_pair_value_quote
    - FR_SBUFF_IN
    - cf_item_is_pair
    - talloc_strlen
    - FR_CALL_ENV_OFFSET
    - tmpl_resolve
    - cf_canonicalize_error
    - cf_log_perr
    - talloc_free
    - cf_pair_value
    - tmpl_afrom_substr
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: "int smtp_header_section_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out, tmpl_rules_t const *t_rules,\n\t\t\t\t     CONF_ITEM *ci,\n\t\t\t\t     UNUSED
      call_env_ctx_t const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:43,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:43,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:45,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: radius_track_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - talloc_zero
    - MEM
    - fr_dlist_init
    linkageType: ''
    returnType: radius_track_t
    signature: radius_track_t *radius_track_alloc(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radius_track_entry_release
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - te_p
    argTypes:
    - radius_track_entry_t***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: _radius_track_entry_release_on_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - radius_track_entry_release
    linkageType: ''
    returnType: int
    signature: int _radius_track_entry_release_on_free(radius_track_entry_t ***te_p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:106,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:109,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:111,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:116,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:124,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:135,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:149,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:149,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - file
    - line
    - radius_track_entry_reserve
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 162
    functionName: _radius_track_entry_reserve
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - talloc_set_destructor
    - talloc_free
    - fr_cond_assert_msg
    - fr_dlist_remove
    - fr_assert
    - talloc_zero
    - fr_strerror_const
    - MEM
    linkageType: ''
    returnType: int
    signature: "int _radius_track_entry_reserve(char const *file, int line,\n#else\nint
      radius_track_entry_reserve(\n#endif\n\t\t\t\tradius_track_entry_t **te_out,\n\t\t\t\tTALLOC_CTX
      *ctx, radius_track_t *tt, request_t *request, uint8_t code, void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:185,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:188,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:189,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:200,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:206,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - file
    - line
    - radius_track_entry_release
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 213
    functionName: _radius_track_entry_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - talloc_get_type_abort
    - fr_assert
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: "int _radius_track_entry_release(char const *file, int line,\n#else\nint
      radius_track_entry_release(\n#endif\n\t\t\t\tradius_track_entry_t **te_to_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:229,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:231,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - te
    - vector
    argTypes:
    - radius_track_entry_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 241
    functionName: radius_track_entry_update
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int radius_track_entry_update(radius_track_entry_t *te, uint8_t const
      *vector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:256,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tt
    - packet_id
    - vector
    argTypes:
    - radius_track_t*
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 285
    functionName: radius_track_entry_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - memcmp
    linkageType: ''
    returnType: radius_track_entry_t
    signature: radius_track_entry_t *radius_track_entry_find(radius_track_t *tt, uint8_t
      packet_id, uint8_t const *vector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:303,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:309,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:314,1
    - Dst: extra
      Src: /src/freeradius-server/src/modules/rlm_radius/track.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - log
    - log_type
    - file
    - line
    - tt
    - extra
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - radius_track_t*
    - radius_track_log_extra_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 321
    functionName: radius_track_state_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.c
    functionUses: 0
    functionsReached:
    - fr_log
    - extra
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: "void radius_track_state_log(fr_log_t const *log, fr_log_type_t log_type,
      char const *file, int line,\n\t\t\t    radius_track_t *tt, radius_track_log_extra_t
      extra)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _te_out
    - ','
    - _ctx
    - ','
    - _tt
    - ','
    - _request
    - ','
    - _code
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: radius_track_entry_reserve
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: radius_track_entry_reserve(_te_out, _ctx, _tt, _request, _code, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _te
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: radius_track_entry_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/track.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: radius_track_entry_release(_te)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:203,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:205,1
    - Dst: trunk_request_state_log
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:208,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - log
    - log_type
    - file
    - line
    - te
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - radius_track_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: bio_tracking_entry_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_log
    - trunk_request_state_log
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void bio_tracking_entry_log(fr_log_t const *log, fr_log_type_t log_type,
      char const *file, int line,\n\t\t\t\t   radius_track_entry_t *te)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:217,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:218,1
    - Dst: radius_track_entry_release
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:224,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:226,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - u
    argTypes:
    - bio_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: bio_request_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - radius_track_entry_release
    - fr_assert
    - fr_pair_list_free
    - fr_timer_armed
    linkageType: ''
    returnType: void
    signature: void bio_request_reset(bio_request_t *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:234,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:238,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:240,1
    - Dst: bio_request_reset
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - h
    - u
    argTypes:
    - bio_handle_t*
    - bio_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: status_check_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - FR_TIMER_DISARM
    - fr_time_wrap
    - bio_request_reset
    linkageType: ''
    returnType: void
    signature: void status_check_reset(bio_handle_t *h, bio_request_t *u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:256,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:258,1
    - Dst: request_local_alloc_external
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:258,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:259,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:259,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:260,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:265,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:281,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:282,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:283,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:285,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:286,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:292,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:293,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:300,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:303,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:303,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:304,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:312,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:313,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:313,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:323,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - h
    argTypes:
    - bio_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 325
    functionName: status_check_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - talloc_set_destructor
    - fr_packet_alloc
    - map_to_request
    - DEBUG3
    - pair_append_request
    - fr_pair_value_strdup
    - talloc_strdup
    - log_request_proto_pair_list
    - talloc_const_free
    - fr_assert
    - request_local_alloc_external
    - talloc_zero
    - MEM
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void status_check_alloc(bio_handle_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:339,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:345,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:347,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:349,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:349,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: conn_init_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - ERROR
    - connection_signal_reconnect
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void conn_init_error(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, int fd_errno, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:367,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:369,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:377,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:379,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:380,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:380,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:381,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:385,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:388,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:392,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:394,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:395,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - uctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 401
    functionName: conn_init_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - connection_signal_reconnect
    - fr_event_fd_insert
    - fr_retry_next
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_sub
    - fr_assert
    - DEBUG
    - PERROR
    linkageType: ''
    returnType: void
    signature: void conn_init_timeout(UNUSED fr_timer_list_t *tl, fr_time_t now, void
      *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:408,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:409,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:411,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:412,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: conn_init_next
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_event_fd_insert
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void conn_init_next(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:422,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:423,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:431,1
    - Dst: fr_bio_read
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:432,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:444,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:449,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:454,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:455,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:460,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:469,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:472,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:478,1
    - Dst: decode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:483,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:487,1
    - Dst: protocol_error_reply
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:494,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:500,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:500,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:500,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:507,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:509,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:510,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:510,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:510,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:515,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:516,1
    - Dst: status_check_reset
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:524,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:526,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:528,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 4
    argNames:
    - el
    - int
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 529
    functionName: conn_init_readable
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_time_sub
    - decode
    - fr_pair_list_free
    - ERROR
    - status_check_reset
    - connection_signal_reconnect
    - fr_time
    - talloc_get_type_abort
    - fr_bio_read
    - DEBUG
    - fr_pair_list_init
    - fr_bio_error
    - fr_syserror
    - fr_assert
    - connection_signal_connected
    - fr_time_wrap
    - fr_time_gt
    - fr_timer_at
    - fr_box_time_delta
    - protocol_error_reply
    linkageType: ''
    returnType: void
    signature: void conn_init_readable(fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:536,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:537,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:541,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:541,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:542,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:544,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:544,1
    - Dst: bio_request_reset
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:551,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:555,1
    - Dst: encode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:558,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:560,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:563,1
    - Dst: HEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:564,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:566,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:567,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:569,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:571,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:574,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:575,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:586,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:595,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:596,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:600,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:602,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:604,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:605,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - el
    - int
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 608
    functionName: conn_init_writable
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_bio_write
    - bio_request_reset
    - ERROR
    - fr_time
    - connection_signal_reconnect
    - talloc_get_type_abort
    - encode
    - DEBUG
    - DEBUG3
    - fr_bio_error
    - fr_syserror
    - fr_retry_init
    - fr_rand
    - fr_assert
    - HEXDUMP3
    - PERROR
    - fr_time_wrap
    - fr_event_fd_insert
    - fr_time_eq
    - fr_box_time_delta
    - fr_timer_at
    linkageType: ''
    returnType: void
    signature: void conn_init_writable(fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:615,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:617,1
    - Dst: FR_TIMER_DELETE_RETURN
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:619,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - bio_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 628
    functionName: _bio_handle_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - FR_TIMER_DELETE_RETURN
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int _bio_handle_free(bio_handle_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:634,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 637
    functionName: bio_connected
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - DEBUG
    - connection_signal_connected
    linkageType: ''
    returnType: void
    signature: void bio_connected(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:643,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:644,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 647
    functionName: bio_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 5
    functionsReached:
    - fr_syserror
    - DEBUG
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void bio_error(fr_bio_t *bio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:665,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:667,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:687,1
    - Dst: REQUIRE_MA
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:687,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:690,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:694,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:696,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - bio
    - verify_ctx
    - packet_ctx
    - data
    - size
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 714
    functionName: rlm_radius_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - REQUIRE_MA
    - fr_radius_ok
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: fr_bio_verify_action_t
    signature: fr_bio_verify_action_t rlm_radius_verify(UNUSED fr_bio_t *bio, void
      *verify_ctx, UNUSED void *packet_ctx, const void *data, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: REQUIRE_MA
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_MA(_h)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:731,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:731,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:735,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:737,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:737,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:740,1
    - Dst: radius_track_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:740,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:757,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:773,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:774,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:786,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:797,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:798,1
    - Dst: fr_bio_fd_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:805,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:807,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:809,1
    - Dst: fr_bio_fd_info
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:814,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:817,1
    - Dst: fr_bio_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:827,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:830,1
    - Dst: fr_bio_mem_set_verify
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:834,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:835,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:848,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:856,1
    - Dst: fr_bio_fd_connect_full
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:861,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:868,1
    - Dst: status_check_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:881,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:890,1
    - Dst: connection_signal_on_fd
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:898,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 94
    argCount: 3
    argNames:
    - h_out
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 906
    functionName: conn_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - fr_bio_mem_set_verify
    - MEM
    - ERROR
    - fr_bio_fd_alloc
    - fr_time
    - talloc_get_type_abort
    - connection_signal_on_fd
    - fr_bio_mem_alloc
    - talloc_set_destructor
    - radius_track_alloc
    - fr_assert
    - PERROR
    - fr_box_ipaddr
    - fr_bio_fd_connect_full
    - talloc_free
    - fr_bio_fd_info
    - fr_event_fd_insert
    - talloc_zero
    - status_check_alloc
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t conn_init(void **h_out, connection_t *conn, void
      *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:913,1
    - Dst: radius_track_state_log
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:922,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:924,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:938,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:940,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:941,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:944,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:946,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:955,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:957,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:958,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:961,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:963,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:970,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - handle
    - uctx
    argTypes:
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 973
    functionName: conn_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - radius_track_state_log
    - talloc_free
    - talloc_get_type_abort
    - fr_assert
    - fr_assert_fail
    linkageType: ''
    returnType: void
    signature: void conn_close(UNUSED fr_event_list_t *el, void *handle, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:991,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:996,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - handle
    - state
    - uctx
    argTypes:
    - void*
    - connection_state_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1005
    functionName: conn_failed
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - FR_TIMER_DISARM
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t conn_failed(void *handle, connection_state_t state,
      UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1015,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - tconn
    - el
    - conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - connection_conf_t*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1032
    functionName: thread_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - connection_alloc
    - PERROR
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *thread_conn_alloc(trunk_connection_t *tconn, fr_event_list_t
      *el,\n\t\t\t\t\t  connection_conf_t const *conf,\n\t\t\t\t\t  char const *log_prefix,
      void *uctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1039,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1040,1
    - Dst: fr_bio_read
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1044,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1052,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1052,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1053,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1060
    functionName: conn_discard
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - ERROR
    - trunk_connection_signal_reconnect
    - fr_syserror
    - talloc_get_type_abort
    - fr_bio_read
    linkageType: ''
    returnType: void
    signature: void conn_discard(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1074,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1076,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1078,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1078,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    functionName: conn_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - ERROR
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void conn_error(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int
      flags, int fd_errno, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1088,1
    - Dst: fr_bio_fd_write_only
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1125,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1126,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1127,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1132,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1137,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - trunk_connection_t*
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1144
    functionName: thread_conn_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_write_only
    - trunk_connection_signal_reconnect
    - fr_event_fd_insert
    - talloc_get_type_abort
    - PERROR
    linkageType: ''
    returnType: void
    signature: "void thread_conn_notify(trunk_connection_t *tconn, connection_t *conn,\n\t\t\t
      \      fr_event_list_t *el,\n\t\t\t       trunk_connection_event_t notify_on,
      UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_LARGER
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1162,1
    - Dst: CMP_PREFER_LARGER
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1168,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1175
    functionName: request_prioritise
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_LARGER
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t request_prioritise(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1197,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1203,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1209,1
    - Dst: REQUIRE_MA
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1212,1
    - Dst: fr_radius_decode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1215,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1216,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1217,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1220,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1224,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1226,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1238,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1239,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1240,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 9
    argNames:
    - ctx
    - reply
    - response_code
    - h
    - request
    - u
    - request_authenticator
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - bio_handle_t*
    - request_t*
    - bio_request_t*
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1257
    functionName: decode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 13
    functionsReached:
    - fr_radius_decode
    - RPEDEBUG
    - RDEBUG
    - talloc_free
    - RINFO
    - fr_time_gt
    - REQUIRE_MA
    - talloc
    - log_request_pair_list
    - RHEXDUMP3
    - talloc_get_type_abort_const
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_radius_decode_fail_t
    signature: "fr_radius_decode_fail_t decode(TALLOC_CTX *ctx, fr_pair_list_t *reply,
      uint8_t *response_code,\n\t\t\t    bio_handle_t *h, request_t *request, bio_request_t
      *u,\n\t\t\t    uint8_t const request_authenticator[static RADIUS_AUTH_VECTOR_LENGTH],\n\t\t\t
      \   uint8_t *data, size_t data_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1265,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1266,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1275,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1280,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1281,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1296,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1297,1
    - Dst: fr_radius_encode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1305,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1305,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1308,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1315,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1327,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1327,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1328,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1329,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1341,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1343,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1347,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - h
    - request
    - u
    - id
    argTypes:
    - bio_handle_t*
    - request_t*
    - bio_request_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1350
    functionName: encode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 13
    functionsReached:
    - fr_pair_afrom_da
    - talloc_memdup
    - fr_pair_append
    - fr_time_to_unix_time
    - fr_pair_value_memdup
    - fr_rand
    - RPERROR
    - fr_assert
    - FR_DBUFF_TMP
    - fr_radius_sign
    - MEM
    - fr_pair_find_by_da
    - fr_radius_encode
    linkageType: ''
    returnType: int
    signature: int encode(bio_handle_t *h, request_t *request, bio_request_t *u, uint8_t
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1358,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1359,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1361,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1363
    functionName: revive_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_reconnect
    - INFO
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void revive_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1370,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1371,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1373,1
    - Dst: trunk_connection_requests_requeue
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1379,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1387,1
    - Dst: unlang_interpret_force_result
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1395,1
    - Dst: trunk_connection_signal_active
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1402,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1409,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1410,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1412,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1415
    functionName: zombie_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - trunk_connection_signal_reconnect
    - trunk_connection_signal_active
    - trunk_connection_requests_requeue
    - unlang_interpret_force_result
    - fr_timer_at
    - talloc_get_type_abort
    - fr_time_add
    linkageType: ''
    returnType: void
    signature: void zombie_timeout(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1443,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1444,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1450,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1455,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1457,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1457,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1457,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1462,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1468,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1468,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1473,1
    - Dst: trunk_connection_signal_inactive
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1474,1
    - Dst: trunk_connection_requests_requeue
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1481,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1482,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1491,1
    - Dst: trunk_request_enqueue_on_conn
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1494,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1496,1
    - Dst: unlang_interpret_instruction
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1502,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1504,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1504,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1506,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1507,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - request
    - tconn
    - now
    - last_sent
    argTypes:
    - request_t*
    - trunk_connection_t*
    - fr_time_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1512
    functionName: check_for_zombie
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - WARN
    - trunk_request_enqueue_on_conn
    - fr_time_add
    - fr_time_sub
    - unlang_interpret_instruction
    - fr_timer_armed
    - ERROR
    - fr_time
    - talloc_get_type_abort
    - unlang_interpret_event_list
    - trunk_connection_signal_inactive
    - fr_time_gteq
    - fr_assert
    - trunk_connection_signal_reconnect
    - fr_time_wrap
    - fr_time_gt
    - trunk_connection_requests_requeue
    - fr_time_eq
    - fr_timer_at
    linkageType: ''
    returnType: bool
    signature: bool check_for_zombie(request_t *request, trunk_connection_t *tconn,
      fr_time_t now, fr_time_t last_sent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1518,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1521,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1529,1
    - Dst: mod_write
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - request
    - u
    argTypes:
    - request_t*
    - bio_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1543
    functionName: mod_dup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - mod_write
    - RDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_dup(request_t *request, bio_request_t *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1552,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1553,1
    - Dst: do_retry
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mctx
    - request
    - retry
    argTypes:
    - module_ctx_t*
    - request_t*
    - fr_retry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1556
    functionName: mod_retry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - do_retry
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_retry(module_ctx_t const *mctx, request_t *request, fr_retry_t
      const *retry)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1565,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1569,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1572,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1573,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1585,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1589,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1593,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1597,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1601,1
    - Dst: mod_dup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1603,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1613,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1619,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1620,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1620,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1620,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1624,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1630,1
    - Dst: check_for_zombie
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1637,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 4
    argNames:
    - inst
    - u
    - request
    - retry
    argTypes:
    - rlm_radius_t*
    - bio_request_t*
    - request_t*
    - fr_retry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1638
    functionName: do_retry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 1
    functionsReached:
    - RDEBUG
    - check_for_zombie
    - mod_dup
    - REDEBUG
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_sub
    - fr_assert
    - trunk_request_signal_fail
    linkageType: ''
    returnType: void
    signature: void do_retry(rlm_radius_t const *inst, bio_request_t *u, request_t
      *request, fr_retry_t const *retry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1644,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1648,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1648,1
    - Dst: mod_write
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1658
    functionName: request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - trunk_connection_pop_request
    - unlikely
    - mod_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void request_mux(UNUSED fr_event_list_t *el,\n\t\t\ttrunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1671,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1675,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1681,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1698,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1700,1
    - Dst: radius_track_entry_reserve
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1700,1
    - Dst: radius_track_state_log
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1702,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1705,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1705,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1706,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1709,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1712,1
    - Dst: encode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1715,1
    - Dst: bio_request_reset
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1720,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1721,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1724,1
    - Dst: radius_track_entry_update
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1730,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1732,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1739,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1740,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1740,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1746,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1747,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1749,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1754,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1762,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1763,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1764,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1772,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1773,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1774,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1788,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1790,1
    - Dst: trunk_request_signal_partial
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1797,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1811,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1823,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1825,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1836,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1839,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1840,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1847,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1863,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1863,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 101
    argCount: 3
    argNames:
    - request
    - treq
    - h
    argTypes:
    - request_t*
    - trunk_request_t*
    - bio_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1864
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 2
    functionsReached:
    - fr_bio_write
    - radius_track_state_log
    - trunk_request_signal_fail
    - RHEXDUMP3
    - fr_time_lteq
    - fr_strerror
    - MEM
    - bio_request_reset
    - fr_pair_list_empty
    - unlikely
    - ERROR
    - RWARN
    - encode
    - trunk_request_signal_partial
    - radius_track_entry_update
    - fr_bio_error
    - talloc_memdup
    - trunk_request_signal_sent
    - fr_syserror
    - fr_assert
    - fr_assert_fail
    - radius_track_entry_reserve
    - trunk_request_signal_complete
    - RDEBUG
    - trunk_connection_signal_reconnect
    - fr_box_time_delta
    - trunk_request_requeue
    - log_request_proto_pair_list
    linkageType: ''
    returnType: void
    signature: void mod_write(request_t *request, trunk_request_t *treq, bio_handle_t
      *h)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1875,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1886,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1887,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1896,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1954,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1961,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1961,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1963,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 2
    argNames:
    - u
    - h
    argTypes:
    - bio_request_t*
    - bio_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1869
    functionDepth: 1
    functionLinenumber: 1869
    functionLinenumberEnd: 1978
    functionName: protocol_error_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 1
    functionsReached:
    - ntohl
    - memcpy
    - talloc_array
    - MEM
    - DEBUG
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: void
    signature: void protocol_error_reply(bio_request_t *u, bio_handle_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1986,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1987,1
    - Dst: trunk_request_enqueue_on_conn
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1989,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:1991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1984
    functionDepth: 1
    functionLinenumber: 1984
    functionLinenumberEnd: 1993
    functionName: status_check_next
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_reconnect
    - talloc_get_type_abort
    - trunk_request_enqueue_on_conn
    linkageType: ''
    returnType: void
    signature: void status_check_next(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2001,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2003,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2005,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2006,1
    - Dst: protocol_error_reply
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2013,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2016,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2018,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2018,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2018,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2023,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2024,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2029,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2036,1
    - Dst: status_check_reset
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2042,1
    - Dst: trunk_connection_signal_active
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - treq
    - now
    argTypes:
    - trunk_request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1999
    functionDepth: 3
    functionLinenumber: 1999
    functionLinenumberEnd: 2044
    functionName: status_check_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - status_check_reset
    - trunk_connection_signal_reconnect
    - fr_time
    - trunk_connection_signal_active
    - fr_timer_at
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_sub
    - fr_assert
    - protocol_error_reply
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void status_check_reply(trunk_request_t *treq, fr_time_t now)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2049,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2051,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2067,1
    - Dst: fr_bio_read
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2074,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2079,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2086,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2089,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2090,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2091,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2095,1
    - Dst: radius_track_entry_find
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2101,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2103,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2108,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2110,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2111,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2112,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2118,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2118,1
    - Dst: trunk_connection_signal_active
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2119,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2120,1
    - Dst: decode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2126,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2136,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2146,1
    - Dst: status_check_reply
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2147,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2148,1
    - Dst: protocol_error_reply
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2161,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2163,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2165,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2167,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2170,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2172,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2172,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2174,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2192,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2194,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2194,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2196,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2203,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2209,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2210,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2215,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2216,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2047
    functionDepth: 4
    functionLinenumber: 2047
    functionLinenumberEnd: 2218
    functionName: request_demux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - WARN
    - radius_track_entry_find
    - trunk_connection_signal_active
    - fr_pair_value_memdup
    - FR_TIMER_DELETE
    - status_check_reply
    - decode
    - fr_pair_list_free
    - RWDEBUG
    - MEM
    - fr_timer_armed
    - unlikely
    - ERROR
    - fr_time
    - fr_pair_append
    - talloc_get_type_abort
    - fr_bio_read
    - DEBUG3
    - fr_pair_list_init
    - fr_bio_error
    - fr_pair_afrom_da
    - fr_pair_delete_by_da
    - fr_syserror
    - fr_assert
    - fr_pair_list_append
    - fr_pair_find_by_da
    - trunk_request_signal_complete
    - trunk_connection_signal_reconnect
    - protocol_error_reply
    linkageType: ''
    returnType: void
    signature: void request_demux(UNUSED fr_event_list_t *el, trunk_connection_t *tconn,
      connection_t *conn, UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2227,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2230,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2230,1
    - Dst: mod_write
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2238
    functionName: request_replicate_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - trunk_connection_pop_request
    - unlikely
    - mod_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void request_replicate_mux(UNUSED fr_event_list_t *el,\n\t\t\t\t  trunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2243,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2245,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2260,1
    - Dst: fr_bio_read
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2267,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2272,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2279,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2282,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2283,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2284,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2288,1
    - Dst: radius_track_entry_find
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2303,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2305,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2310,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2312,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2313,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2314,1
    - Dst: decode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2319,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2329,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2339,1
    - Dst: status_check_reply
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2340,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2341,1
    - Dst: protocol_error_reply
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2352,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2241
    functionDepth: 4
    functionLinenumber: 2241
    functionLinenumberEnd: 2354
    functionName: request_replicate_demux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - ERROR
    - trunk_request_signal_complete
    - trunk_connection_signal_reconnect
    - WARN
    - DEBUG3
    - radius_track_entry_find
    - fr_time
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - status_check_reply
    - decode
    - fr_pair_list_free
    - protocol_error_reply
    - fr_bio_read
    - fr_pair_list_init
    - fr_bio_error
    linkageType: ''
    returnType: void
    signature: void request_replicate_demux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - connection_t *conn
    - preq_to_reset
    - reason
    - uctx
    argTypes:
    - UNUSED
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2388
    functionName: request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DISARM
    linkageType: ''
    returnType: void
    signature: "void request_cancel(UNUSED connection_t *conn, void *preq_to_reset,\n\t\t\t
      \  trunk_cancel_reason_t reason, UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2396,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2398,1
    - Dst: bio_request_reset
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2399,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - preq_to_reset
    - uctx
    argTypes:
    - connection_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2393
    functionDepth: 2
    functionLinenumber: 2393
    functionLinenumberEnd: 2410
    functionName: request_conn_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_time
    - talloc_get_type_abort
    - FR_TIMER_DISARM
    - bio_request_reset
    linkageType: ''
    returnType: void
    signature: void request_conn_release(connection_t *conn, void *preq_to_reset,
      UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2418,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2420,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2422,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2424,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - request_t*
    - NDEBUG_UNUSED*
    - void*
    - NDEBUG_UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2432
    functionName: request_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_assert
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void request_fail(request_t *request, NDEBUG_UNUSED void *preq, void
      *rctx,\n\t\t\t NDEBUG_UNUSED trunk_request_state_t state, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2439,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2441,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2443,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2443,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - request_t*
    - NDEBUG_UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2437
    functionDepth: 1
    functionLinenumber: 2437
    functionLinenumberEnd: 2450
    functionName: request_complete
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_assert
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void request_complete(request_t *request, NDEBUG_UNUSED void *preq,
      void *rctx, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2457,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2460,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2455
    functionDepth: 1
    functionLinenumber: 2455
    functionLinenumberEnd: 2463
    functionName: mod_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, UNUSED request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2469,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2471,1
    - Dst: do_signal
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mctx
    - request
    - action
    argTypes:
    - module_ctx_t*
    - UNUSED*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2467
    functionDepth: 1
    functionLinenumber: 2467
    functionLinenumberEnd: 2474
    functionName: mod_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - do_signal
    linkageType: ''
    returnType: void
    signature: void mod_signal(module_ctx_t const *mctx, UNUSED request_t *request,
      fr_signal_t action)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2503,1
    - Dst: mod_dup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - inst
    - u
    - request
    - action
    argTypes:
    - rlm_radius_t*
    - bio_request_t*
    - UNUSED*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2476
    functionDepth: 1
    functionLinenumber: 2476
    functionLinenumberEnd: 2519
    functionName: do_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 1
    functionsReached:
    - mod_dup
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void do_signal(rlm_radius_t const *inst, bio_request_t *u, UNUSED request_t
      *request, fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2532,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2533,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2537,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2537,1
    - Dst: FR_TIMER_DELETE_RETURN
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2539,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - u
    argTypes:
    - bio_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2525
    functionDepth: 1
    functionLinenumber: 2525
    functionLinenumberEnd: 2544
    functionName: _bio_request_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DELETE_RETURN
    - talloc_get_type_abort
    - fr_assert
    - fr_assert_msg
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: int _bio_request_free(bio_request_t *u)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2553,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2554,1
    - Dst: radius_fixups
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2561,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2563,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2565,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2569,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2569,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2570,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2578,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2584,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2590,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2592,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2593,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2594,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2598,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2602,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2607,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2616,1
    - Dst: fr_dict_compatible
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2635,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2669,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 78
    argCount: 5
    argNames:
    - p_u
    - p_retry_config
    - inst
    - trunk
    - request
    argTypes:
    - bio_request_t**
    - fr_retry_config_t**
    - rlm_radius_t*
    - trunk_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2681
    functionName: mod_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - radius_fixups
    - trunk_request_free
    - fr_dict_compatible
    - talloc_set_destructor
    - talloc_free
    - trunk_request_alloc
    - REDEBUG
    - trunk_request_enqueue
    - fr_assert
    - talloc_zero
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int mod_enqueue(bio_request_t **p_u, fr_retry_config_t const **p_retry_config,\n\t\t
      \      rlm_radius_t const *inst, trunk_t *trunk, request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2688
    functionName: home_server_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void home_server_free(void *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2719,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2720,1
    - Dst: fr_rb_expire_inline_talloc_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2729,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2740,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2741,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2743,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2748,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2759,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2775,1
    - Dst: fr_bio_fd_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2781,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2783,1
    - Dst: fr_bio_fd_info
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2788,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2789,1
    - Dst: fr_bio_fd_write_only
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2791,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2793,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2717
    functionDepth: 1
    functionLinenumber: 2717
    functionLinenumberEnd: 2795
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    - fr_bio_fd_alloc
    - fr_bio_fd_write_only
    - fr_bio_fd_info
    - talloc_get_type_abort
    - fr_assert
    - talloc_zero_array
    - fr_rb_expire_inline_talloc_init
    - fr_schedule_worker_id
    - DEBUG
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2811,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2819,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2825,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2833,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2848,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2849,1
    - Dst: fr_radius_encode
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2859,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2859,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2862,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2869,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2870,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2883,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2888,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2898
    functionName: xlat_radius_replicate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_bio_write
    - RDEBUG
    - XLAT_ARGS
    - talloc_get_type_abort
    - RPERROR
    - fr_rand
    - FR_DBUFF_TMP
    - fr_radius_sign
    - RWDEBUG
    - fr_radius_encode
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_radius_replicate(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t   xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2912,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2906
    functionDepth: 1
    functionLinenumber: 2906
    functionLinenumberEnd: 2916
    functionName: home_server_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t home_server_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2922,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2927,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2927,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2918
    functionDepth: 1
    functionLinenumber: 2918
    functionLinenumberEnd: 2933
    functionName: xlat_sendto_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_value_box_alloc
    - talloc_get_type_abort
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_sendto_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\txlat_ctx_t
      const *xctx,\n\t\t\t\t\trequest_t *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2937,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2938,1
    - Dst: do_signal
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - action
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2935
    functionDepth: 2
    functionLinenumber: 2935
    functionLinenumberEnd: 2941
    functionName: xlat_sendto_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - do_signal
    linkageType: ''
    returnType: void
    signature: void xlat_sendto_signal(xlat_ctx_t const *xctx, request_t *request,
      fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2948,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2949,1
    - Dst: do_retry
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - retry
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - fr_retry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2946
    functionDepth: 2
    functionLinenumber: 2946
    functionLinenumberEnd: 2952
    functionName: xlat_sendto_retry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - do_retry
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void xlat_sendto_retry(xlat_ctx_t const *xctx, request_t *request,
      fr_retry_t const *retry)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2961,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2962,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2969,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2975,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2979,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2991,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2991,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2992,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:2996,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3015,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3023,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3023,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3027,1
    - Dst: fr_rb_expire_insert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3031,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3031,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3034,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3043,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3044,1
    - Dst: fr_rb_expire_update
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3047,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3049,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3050,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3052,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3067,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3069,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3070,1
    - Dst: mod_enqueue
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3077,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3081,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3084,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3085,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3092,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3092,1
    - Dst: unlang_xlat_yield_to_retry
      Src: /src/freeradius-server/src/modules/rlm_radius/bio.c:3094,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 2957
    functionDepth: 1
    functionLinenumber: 2957
    functionLinenumberEnd: 3097
    functionName: xlat_radius_client
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/bio.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_yield_to_retry
    - trunk_alloc
    - REDEBUG
    - talloc_strdup
    - fr_rb_expire_update
    - RWDEBUG
    - MEM
    - fr_dlist_head
    - fr_time
    - talloc_get_type_abort
    - talloc_zero_array
    - unlang_interpret_event_list
    - talloc_set_type
    - fr_retry_init
    - fr_rb_find
    - fr_assert
    - strcmp
    - fr_rb_delete
    - RDEBUG
    - talloc_free
    - XLAT_ARGS
    - fr_time_gt
    - fr_rb_expire_insert
    - fr_dlist_remove
    - mod_enqueue
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_radius_client(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t\txlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:242,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:242,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:244,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:245,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:245,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:247,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:250,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:264,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 279
    functionName: mode_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_parent
    - cf_pair_value
    - talloc_get_type_abort
    - cf_section_rules_push
    - fr_table_value_by_str
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int mode_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:296,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:296,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:297,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:297,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:304,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:304,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:304,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:310,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:313,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:323,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:331,1
    - Dst: cf_section_rule_push
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 344
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_parent
    - cf_section_rule_push
    - cf_pair_value
    - cf_log_err
    - fr_assert
    - strcmp
    - fr_dict_enum_by_name
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:360,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:360,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:361,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:361,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:369,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:372,1
    - Dst: cf_section_rule_push
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:390,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:390,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:390,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:392,1
    - Dst: cf_section_rule_push
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 402
    functionName: status_check_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_parent
    - cf_section_rule_push
    - memcpy
    - cf_pair_value
    - fr_dict_enum_by_name
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int status_check_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED
      void *parent,\n\t\t\t\t   CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:406,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:409,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:409,1
    - Dst: unlang_fixup_update
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:411,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:415,1
    - Dst: xlat_impure_func
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:416,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:416,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:418,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:421,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:425,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:431,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:441,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - map
    - ctx
    argTypes:
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 454
    functionName: status_check_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - xlat_impure_func
    - tmpl_attr_tail_da
    - tmpl_xlat
    - tmpl_is_data
    - fr_assert
    - talloc_get_type_abort_const
    - unlang_fixup_update
    - tmpl_is_attr
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int status_check_verify(map_t *map, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:475,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:475,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:476,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:478,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:479,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:480,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:481,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:492,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:499,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:501,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 512
    functionName: status_check_update_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - map_list_empty
    - cf_section_name2
    - fr_assert
    - strcmp
    - map_list_init
    - cf_log_err
    - fr_dict_root
    - map_afrom_cs
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int status_check_update_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t\t
      \    CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:523,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:528,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:542,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:544,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:547,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:556,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:560,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:561,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:569,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:570,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:571,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:571,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:572,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - inst
    - request
    argTypes:
    - rlm_radius_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 576
    functionName: radius_fixups
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 1
    functionsReached:
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - RWARN
    - REDEBUG
    - fr_pair_value_memdup
    - memcmp
    - RWDEBUG
    - MEM
    - fr_pair_find_by_da
    - pair_append_request
    linkageType: ''
    returnType: int
    signature: int radius_fixups(rlm_radius_t const *inst, request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:584,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:585,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:592,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:597,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:598,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:608,1
    - Dst: client_from_request
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:612,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:614,1
    - Dst: mod_enqueue
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:625,1
    - Dst: unlang_module_yield_to_retry
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:629,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 630
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - unlang_module_yield_to_retry
    - mod_enqueue
    - fr_time_delta_ispos
    - client_from_request
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_process(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:636,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:640,1
    - Dst: cf_log_info
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:647,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:652,1
    - Dst: fr_bio_fd_check_config
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:662,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:663,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:670,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:671,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:682,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:691,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:698,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:699,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:700,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:705,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:705,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:706,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:706,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:714,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:723,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:728,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:733,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:742,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:759,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:767,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:783,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:794,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:794,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:795,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:795,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:797,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:797,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:798,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:798,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:801,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:801,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:802,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:802,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:805,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:806,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:815,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:816,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:816,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:826,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:827,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:830,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:837,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:845,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:851,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:868,1
    - Dst: cf_log_info
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:880,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:908,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:908,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:913,1
    - Dst: fr_pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:913,1
    - Dst: module_trigger_args_build
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:914,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:915,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:929,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:929,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:930,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:930,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:931,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:932,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:932,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:934,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:934,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:935,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:935,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:936,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:937,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:937,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:948,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:948,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:950,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:950,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:951,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:952,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:952,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:955,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:955,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:956,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:956,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:957,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:958,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:958,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:965,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:965,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:966,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:966,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:967,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:968,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:968,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:970,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:970,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:971,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:971,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:972,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:973,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:973,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:980,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:980,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:981,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:981,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:982,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:983,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:983,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:985,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:985,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:986,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:986,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:987,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:988,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:988,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:995,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:995,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:996,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:996,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:997,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:998,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:998,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1000,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1000,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1001,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1001,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1002,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1003,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1003,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 196
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 1007
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - fr_value_box_aprint
    - module_trigger_args_build
    - cf_section_find
    - MEM
    - cf_log_err
    - cf_log_info
    - talloc_get_type_abort
    - fr_pair_list_alloc
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - fr_bio_fd_check_config
    - fr_rand
    - fr_assert
    - talloc_array_length
    - talloc_strlen
    - fr_time_delta_from_sec
    - fr_box_ipaddr
    - cf_log_perr
    - talloc_zero
    - cf_log_warn
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1012,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1016,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1017,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1021,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1030
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - talloc_get_type_abort
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1035,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1039
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_global_init
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1043,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1048
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_radius_global_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_global_free
      Src: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1053
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_radius/rlm_radius.c
    functionUses: 0
    functionsReached:
    - fr_radius_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:50,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:56,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:58,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    - talloc_get_type_abort
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:76,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:84,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:89,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:94,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:101,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - packet
    - reply
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - fr_packet_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 142
    functionName: sometimes_return
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - tmpl_find_vp
    - fr_hash
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t sometimes_return(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request,\n\t\t\t\t\tfr_packet_t *packet, fr_packet_t
      *reply)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sometimes_return
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: mod_sometimes_packet
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c
    functionUses: 0
    functionsReached:
    - sometimes_return
    linkageType: ''
    returnType: void
    signature: void mod_sometimes_packet(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sometimes_return
      Src: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: mod_sometimes_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sometimes/rlm_sometimes.c
    functionUses: 0
    functionsReached:
    - sometimes_return
    linkageType: ''
    returnType: void
    signature: void mod_sometimes_reply(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:138,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:139,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:142,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: perl_func_def_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t perl_func_def_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_av
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:157,1
    - Dst: av_clear
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: rlm_perl_clear_handles
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - get_av
    - av_clear
    linkageType: ''
    returnType: void
    signature: void rlm_perl_clear_handles(pTHX)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_av
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:166,1
    - Dst: get_av
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:167,1
    - Dst: AvFILL
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:172,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:176,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:176,1
    - Dst: AvFILL
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:176,1
    - Dst: AvFILL
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:177,1
    - Dst: av_fetch
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:179,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:181,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:184,1
    - Dst: av_clear
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:189,1
    - Dst: av_clear
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: rlm_perl_get_handles
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - ERROR
    - av_fetch
    - talloc_array
    - SvIV
    - AvFILL
    - get_av
    - MEM
    - av_clear
    linkageType: ''
    returnType: void
    signature: void **rlm_perl_get_handles(pTHX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:206,1
    - Dst: dlclose
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:207,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handles
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: rlm_perl_close_handles
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - dlclose
    - DEBUG
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void rlm_perl_close_handles(void **handles)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:222,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:227,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:227,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:228,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:228,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 237
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - ST
    - SvIV
    - SvPV
    - fr_log
    - croak
    linkageType: ''
    returnType: void
    signature: void XS(XS_freeradius_log)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:254,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:258,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:258,1
    - Dst: xlat_aeval
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:260,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:262,1
    - Dst: XST_mPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:266,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:267,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 269
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - XST_mPV
    - ST
    - talloc_free
    - SvPV
    - REDEBUG
    - xlat_aeval
    - croak
    - XSRETURN
    linkageType: ''
    returnType: void
    signature: void XS(XS_freeradius_xlat)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:276,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:281,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:282,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:282,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:282,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pair_data
    - attr
    argTypes:
    - fr_perl_pair_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: perl_attr_lookup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_by_name
    - fr_type_is_group
    - fr_dict_internal
    - croak
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *perl_attr_lookup(fr_perl_pair_t *pair_data, char const
      *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: GET_PAIR_MAGIC
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PAIR_MAGIC(count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:332,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:334,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:334,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:340,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:344,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:344,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:346,1
    - Dst: perl_attr_lookup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:348,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:350,1
    - Dst: gv_stashpv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:364,1
    - Dst: newAV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:365,1
    - Dst: newRV_noinc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:366,1
    - Dst: newAV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:366,1
    - Dst: sv_bless
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:367,1
    - Dst: sv_magic
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:368,1
    - Dst: MUTABLE_SV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:368,1
    - Dst: MUTABLE_SV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:368,1
    - Dst: SvREFCNT_dec
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:369,1
    - Dst: sv_magicext
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:376,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:377,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:377,1
    - Dst: newRV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:377,1
    - Dst: gv_stashpv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:391,1
    - Dst: newHV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:392,1
    - Dst: newRV_noinc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:393,1
    - Dst: newHV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:393,1
    - Dst: sv_bless
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:394,1
    - Dst: hv_magic
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:395,1
    - Dst: SvREFCNT_dec
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:396,1
    - Dst: sv_magicext
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:404,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:405,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:405,1
    - Dst: newRV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:405,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:410,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:413,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 414
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - gv_stashpv
    - isdigit
    - SvPV
    - sv_magicext
    - sv_magic
    - sv_2mortal
    - ST
    - sv_bless
    - newRV
    - GET_PAIR_MAGIC
    - SvIV
    - newRV_noinc
    - fr_assert
    - perl_attr_lookup
    - MUTABLE_SV
    - newAV
    - fr_pair_find_by_da
    - hv_magic
    - SvREFCNT_dec
    - fr_pair_find_by_da_idx
    - newHV
    - XSRETURN
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairlist_FETCH)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:426,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:428,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:428,1
    - Dst: perl_attr_lookup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:429,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:430,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:432,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:433,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:435,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 438
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - ST
    - SvPV
    - perl_attr_lookup
    - croak
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairlist_STORE)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:453,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:455,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:455,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:457,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:465,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:465,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:467,1
    - Dst: perl_attr_lookup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:474,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:477,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 480
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - isdigit
    - ST
    - SvIV
    - SvPV
    - fr_pair_find_by_da_idx
    - perl_attr_lookup
    - fr_pair_find_by_da
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairlist_EXISTS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:491,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:494,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:495,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:495,1
    - Dst: newSVpv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:495,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 497
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - sv_2mortal
    - fr_pair_dcursor_init
    - ST
    - newSVpv
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairlist_FIRSTKEY)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:510,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:513,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:516,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:516,1
    - Dst: newSVpv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:516,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 518
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - sv_2mortal
    - ST
    - fr_dcursor_next
    - newSVpv
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairlist_NEXTKEY)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:533,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:534,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:534,1
    - Dst: perl_attr_lookup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:536,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:537,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:538,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:540,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:542,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 545
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete
    - ST
    - SvPV
    - perl_attr_lookup
    - XSRETURN
    - fr_pair_find_by_da
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairlist_DELETE)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:556,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:556,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:560,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:560,1
    - Dst: PERLUINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:566,1
    - Dst: PERLUINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:567,1
    - Dst: PERLUINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:568,1
    - Dst: PERLUINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:569,1
    - Dst: PERLINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:574,1
    - Dst: PERLINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:575,1
    - Dst: PERLINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:576,1
    - Dst: PERLINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:577,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:581,1
    - Dst: newSVuv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:581,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:585,1
    - Dst: newSVuv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:585,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:589,1
    - Dst: newSVnv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:589,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:593,1
    - Dst: newSVnv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:593,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:611,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:611,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:613,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:614,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:618,1
    - Dst: newSVpv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:618,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:624,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:624,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - vp
    - value
    argTypes:
    - fr_pair_t*
    - SV**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 629
    functionName: perl_value_marshal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - sv_2mortal
    - PERLINT
    - FR_SBUFF_OUT
    - newSVpv
    - PERLUINT
    - newSVuv
    - newSVpvn
    - croak
    - newSVnv
    - fr_pair_print_value_quoted
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int perl_value_marshal(fr_pair_t *vp, SV **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: PERLUINT
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERLUINT(_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: PERLINT
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERLINT(_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SvUV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:644,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:644,1
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:648,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:654,1
    - Dst: perl_value_marshal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:657,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:657,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:657,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - ST
    - perl_value_marshal
    - fr_pair_find_by_da_idx
    - SvUV
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_FETCH)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:675,1
    - Dst: fr_perl_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:678,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:685,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:687,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:693,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - pair_data
    argTypes:
    - fr_perl_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 695
    functionName: fr_perl_pair_parent_build
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached:
    - croak
    - fr_pair_count_by_da
    - fr_perl_pair_parent_build
    - fr_pair_append_by_da
    linkageType: ''
    returnType: int
    signature: int fr_perl_pair_parent_build(fr_perl_pair_t *pair_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SvTYPE
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:704,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:706,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:707,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:711,1
    - Dst: SvNV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:712,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:720,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:721,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:722,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:727,1
    - Dst: fr_pair_value_clear
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:731,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:732,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:733,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:733,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - vp
    - value
    argTypes:
    - fr_pair_t*
    - SV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 738
    functionName: perl_value_unmarshal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - SvNV
    - fr_value_box_init
    - SvIV
    - SvPV
    - SvTYPE
    - fr_value_box_cast
    - fr_pair_value_clear
    - fr_value_box_bstrndup_shallow
    - croak
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int perl_value_unmarshal(fr_pair_t *vp, SV *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SvUV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:750,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:750,1
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:754,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:756,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:756,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:766,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:767,1
    - Dst: fr_perl_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:770,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:770,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:773,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:776,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:778,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:779,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:782,1
    - Dst: perl_value_unmarshal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:785,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:785,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:787,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 788
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_pair_count_by_da
    - fr_type_is_leaf
    - ST
    - perl_value_unmarshal
    - fr_pair_append_by_da
    - fr_pair_find_by_da_idx
    - fr_perl_pair_parent_build
    - fr_assert
    - croak
    - SvUV
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_STORE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SvUV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:796,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:796,1
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:800,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 808
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - SvUV
    - fr_pair_find_by_da_idx
    - ST
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_EXISTS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SvUV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:816,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:816,1
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:820,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:823,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:825,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:826,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 828
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete
    - ST
    - fr_pair_find_by_da_idx
    - SvUV
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_DELETE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:837,1
    - Dst: XSRETURN_UV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:839,1
    - Dst: XSRETURN_UV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:840,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - XSRETURN_UV
    - fr_pair_count_by_da
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_FETCHSIZE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SvUV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:854,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:854,1
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:857,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:862,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:864,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:867,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:869,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:870,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:878,1
    - Dst: fr_pair_list_prev
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:880,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:881,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:882,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 885
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete
    - fr_pair_count_by_da
    - ST
    - fr_pair_find_by_da_idx
    - croak
    - SvUV
    - XSRETURN
    - fr_pair_list_prev
    - fr_pair_find_by_da
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_STORESIZE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:900,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:902,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:902,1
    - Dst: fr_perl_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:906,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:906,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:910,1
    - Dst: perl_value_unmarshal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:911,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:911,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 915
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - perl_value_unmarshal
    - ST
    - fr_pair_append_by_da
    - fr_perl_pair_parent_build
    - fr_assert
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_PUSH)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:927,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:929,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:929,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:932,1
    - Dst: fr_pair_find_last_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:934,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:935,1
    - Dst: perl_value_marshal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:937,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:937,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:937,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:939,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 941
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - ST
    - perl_value_marshal
    - fr_pair_remove
    - fr_assert
    - XSRETURN
    - fr_pair_find_last_by_da
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_POP)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:953,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:955,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:955,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:958,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:960,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:961,1
    - Dst: perl_value_marshal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:963,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:963,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:963,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:965,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 967
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - ST
    - perl_value_marshal
    - fr_pair_remove
    - fr_assert
    - XSRETURN
    - fr_pair_find_by_da
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_SHIFT)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_PAIR_MAGIC
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:982,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:984,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:984,1
    - Dst: fr_perl_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:988,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:988,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:992,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:992,1
    - Dst: croak
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:993,1
    - Dst: perl_value_unmarshal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:996,1
    - Dst: ST
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:996,1
    - Dst: XSRETURN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:999,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1000
    functionName: XS
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_type_is_leaf
    - perl_value_unmarshal
    - ST
    - fr_pair_prepend_by_da
    - fr_perl_pair_parent_build
    - fr_assert
    - croak
    - XSRETURN
    - GET_PAIR_MAGIC
    linkageType: ''
    returnType: void
    signature: void XS(XS_pairs_UNSHIFT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1007,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1009,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1010,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1016,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1017,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1018,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1019,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1020,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1021,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1027,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1028,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1029,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1030,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1031,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1032,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1033,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1034,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1035,1
    - Dst: newXS
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1037
    functionName: xs_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - newXS
    linkageType: ''
    returnType: void
    signature: void xs_init(pTHX)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1054,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1057,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1061,1
    - Dst: newAV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1067,1
    - Dst: perl_vblist_to_av
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1068,1
    - Dst: newRV_inc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1069,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1077,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1077,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1079,1
    - Dst: SvTAINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1084,1
    - Dst: av_push
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1085,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - av
    - head
    argTypes:
    - AV*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1088
    functionName: perl_vblist_to_av
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached:
    - fr_value_box_print
    - newRV_inc
    - FR_SBUFF_OUT
    - av_push
    - perl_vblist_to_av
    - newSVpvn
    - SvTAINT
    - newAV
    - fr_value_box_list_next
    linkageType: ''
    returnType: int
    signature: int perl_vblist_to_av(AV *av, fr_value_box_list_t *head)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SvTYPE
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1113,1
    - Dst: SvROK
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1118,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1119,1
    - Dst: perl_sv_to_vblist
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1120,1
    - Dst: SvRV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1120,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1123,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1124,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1124,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1125,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1130,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1131,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1131,1
    - Dst: SvNV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1132,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1137,1
    - Dst: SvPVutf8
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1138,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1139,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1139,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1140,1
    - Dst: SvTAINTED
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1140,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1141,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1142,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1151,1
    - Dst: av_len
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1153,1
    - Dst: av_fetch
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1155,1
    - Dst: SvOK
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1156,1
    - Dst: perl_sv_to_vblist
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1157,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1167,1
    - Dst: hv_iterinit
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1169,1
    - Dst: hv_iternextsv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1170,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1174,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1174,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1175,1
    - Dst: SvTAINTED
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1176,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1177,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1180,1
    - Dst: perl_sv_to_vblist
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1185,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1198,1
    - Dst: SvTAINTED
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1204,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1205,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 4
    argNames:
    - ctx
    - list
    - request
    - sv
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - SV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1209
    functionName: perl_sv_to_vblist
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached:
    - SvROK
    - fr_value_box_bstrndup
    - fr_value_box_alloc
    - av_len
    - hv_iterinit
    - MEM
    - fr_value_box_alloc_null
    - RPEDEBUG
    - perl_sv_to_vblist
    - SvNV
    - SvRV
    - SvIV
    - SvTAINTED
    - fr_value_box_list_insert_tail
    - RDEBUG3
    - SvPVutf8
    - hv_iternextsv
    - av_fetch
    - talloc_free
    - SvOK
    - SvTYPE
    linkageType: ''
    returnType: int
    signature: int perl_sv_to_vblist(TALLOC_CTX *ctx, fr_value_box_list_t *list, request_t
      *request, SV *sv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1225,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1229,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1236,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1238,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1239,1
    - Dst: dTHXa
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1242,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1243,1
    - Dst: PUSHMARK
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1253,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1255,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1259,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1260,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1262,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1263,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1269,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1270,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1274,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1281,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1283,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1287,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1288,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1288,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1288,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1289,1
    - Dst: SvTAINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1293,1
    - Dst: XPUSHs
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1294,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1294,1
    - Dst: newAV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1301,1
    - Dst: perl_vblist_to_av
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1302,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1303,1
    - Dst: newRV_inc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1304,1
    - Dst: XPUSHs
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1305,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1305,1
    - Dst: call_pv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1310,1
    - Dst: SvTRUE
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1313,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1314,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1314,1
    - Dst: perl_sv_to_vblist
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1326,1
    - Dst: fr_value_box_list_move_head
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1327,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1334,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1334,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1344
    functionName: perl_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_start
    - REDEBUG
    - SvPV
    - fr_value_box_list_pop_head
    - PERL_SET_CONTEXT
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - dTHXa
    - fr_value_box_list_move_head
    - sv_2mortal
    - RPEDEBUG
    - fr_sbuff_set_to_start
    - newRV_inc
    - fr_value_box_list_empty
    - perl_sv_to_vblist
    - fr_value_box_list_init
    - perl_vblist_to_av
    - XPUSHs
    - fr_assert
    - RDEBUG3
    - newSVpvn
    - SvTRUE
    - newAV
    - PUSHMARK
    - fr_value_box_print
    - fr_dcursor_append
    - fr_sbuff_used
    - SvTAINT
    - talloc_get_type_abort_const
    - fr_value_box_list_num_elements
    - call_pv
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t perl_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1259,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1260,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1262,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1263,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1269,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1270,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1274,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1281,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1283,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1287,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1288,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1288,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1288,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1289,1
    - Dst: SvTAINT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1293,1
    - Dst: XPUSHs
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1294,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1294,1
    - Dst: newAV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1301,1
    - Dst: perl_vblist_to_av
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1302,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1303,1
    - Dst: newRV_inc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1304,1
    - Dst: XPUSHs
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1305,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1305,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1306
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 3
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_start
    - fr_value_box_print
    - sv_2mortal
    - RPEDEBUG
    - fr_sbuff_set_to_start
    - newRV_inc
    - fr_sbuff_used
    - fr_value_box_list_empty
    - perl_vblist_to_av
    - XPUSHs
    - fr_assert
    - RDEBUG3
    - newSVpvn
    - SvTAINT
    - fr_value_box_list_num_elements
    - newAV
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1357,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1357,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1359,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1365,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1366,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1367,1
    - Dst: hv_exists
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1373,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1373,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1374,1
    - Dst: newHV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1378,1
    - Dst: newRV_inc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1379,1
    - Dst: hv_store
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1381,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1381,1
    - Dst: perl_parse_config
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1383,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1384,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1385,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1386,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1387,1
    - Dst: hv_exists
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1395,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1395,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1396,1
    - Dst: hv_store
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1400,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1400,1
    - Dst: newSVpvn
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1400,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1400,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1402,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1406,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - cs
    - lvl
    - rad_hv
    argTypes:
    - CONF_SECTION*
    - int
    - HV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1407
    functionName: perl_parse_config
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - cf_item_is_section
    - WARN
    - newRV_inc
    - hv_store
    - cf_pair_value
    - newHV
    - cf_item_next
    - perl_parse_config
    - strlen
    - newSVpvn
    - cf_section_name1
    - hv_exists
    - cf_item_is_pair
    - DEBUG
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void perl_parse_config(CONF_SECTION *cs, int lvl, HV *rad_hv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newHV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1418,1
    - Dst: newRV_noinc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1419,1
    - Dst: newHV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1419,1
    - Dst: sv_bless
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1420,1
    - Dst: hv_magic
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1421,1
    - Dst: SvREFCNT_dec
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1422,1
    - Dst: sv_magicext
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1429,1
    - Dst: hv_store
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1431,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1431,1
    - Dst: newRV_inc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - parent
    - frpair_stash
    - name
    - vp
    - da
    argTypes:
    - HV*
    - HV*
    - char*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1432
    functionName: perl_pair_list_tie
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - SvREFCNT_dec
    - sv_bless
    - newRV_inc
    - hv_store
    - newRV_noinc
    - sv_magicext
    - newHV
    - strlen
    - hv_magic
    linkageType: ''
    returnType: void
    signature: void perl_pair_list_tie(HV *parent, HV *frpair_stash, char const *name,
      fr_pair_t *vp, fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1441,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1442,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1443,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1453,1
    - Dst: dTHXa
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1456,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1457,1
    - Dst: gv_stashpv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1467,1
    - Dst: newHV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1470,1
    - Dst: perl_pair_list_tie
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1472,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1473,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1473,1
    - Dst: perl_pair_list_tie
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1474,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1475,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1475,1
    - Dst: perl_pair_list_tie
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1476,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1477,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1477,1
    - Dst: perl_pair_list_tie
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1478,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1479,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1479,1
    - Dst: PUSHMARK
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1486,1
    - Dst: XPUSHs
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1487,1
    - Dst: sv_2mortal
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1487,1
    - Dst: newRV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1487,1
    - Dst: call_pv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1490,1
    - Dst: SvTRUE
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1496,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1497,1
    - Dst: SvPV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1498,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1514
    functionName: mod_perl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - gv_stashpv
    - dTHXa
    - PUSHMARK
    - sv_2mortal
    - REDEBUG
    - SvPV
    - talloc_get_type_abort
    - newHV
    - perl_pair_list_tie
    - XPUSHs
    - fr_assert
    - SvTRUE
    - RETURN_UNLANG_RCODE
    - call_pv
    - fr_pair_list_parent
    - PERL_SET_CONTEXT
    - fr_dict_root
    - newRV
    linkageType: ''
    returnType: void
    signature: void mod_perl(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dTHXa
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1523,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1524,1
    - Dst: rlm_perl_get_handles
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1527,1
    - Dst: rlm_perl_close_handles
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1528,1
    - Dst: perl_destruct
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1540,1
    - Dst: perl_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - perl
    argTypes:
    - PerlInterpreter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1542
    functionName: rlm_perl_interp_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - dTHXa
    - rlm_perl_close_handles
    - perl_free
    - rlm_perl_get_handles
    - perl_destruct
    - PERL_SET_CONTEXT
    linkageType: ''
    returnType: void
    signature: void rlm_perl_interp_free(PerlInterpreter *perl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1548,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1549,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1553,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1561,1
    - Dst: perl_clone
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1562,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1563,1
    - Dst: dTHXa
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1565,1
    - Dst: call_pv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1568,1
    - Dst: ptr_table_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1570,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1573,1
    - Dst: rlm_perl_clear_handles
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1579
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - dTHXa
    - ptr_table_free
    - pthread_mutex_lock
    - rlm_perl_clear_handles
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - perl_clone
    - call_pv
    - PERL_SET_CONTEXT
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1583,1
    - Dst: rlm_perl_interp_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1588
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - rlm_perl_interp_free
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1602,1
    - Dst: eval_pv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1603,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1604,1
    - Dst: SvIV
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1606
    functionName: perl_func_exists
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - SvIV
    - talloc_free
    - eval_pv
    - talloc_asprintf
    linkageType: ''
    returnType: bool
    signature: bool perl_func_exists(char const *func)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1624,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1643,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1643,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1644,1
    - Dst: perl_alloc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1660,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1661,1
    - Dst: perl_construct
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1664,1
    - Dst: dTHXa
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1668,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1670,1
    - Dst: perl_parse
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1676,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1682,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1687,1
    - Dst: get_hv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1689,1
    - Dst: perl_parse_config
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1690,1
    - Dst: perl_run
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1694,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1701,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1703,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1705,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1710,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1711,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1712,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1715,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1716,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1717,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1720,1
    - Dst: perl_func_exists
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1721,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1722,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1729,1
    - Dst: perl_func_exists
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1730,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1731,1
    - Dst: perl_func_exists
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1737,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1738,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1746,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1747,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 82
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1750
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - perl_run
    - memcpy
    - get_hv
    - perl_construct
    - talloc_const_free
    - PERL_SET_CONTEXT
    - MEM
    - cf_log_err
    - pthread_mutex_init
    - ERROR
    - dTHXa
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - perl_func_exists
    - talloc_zero_array
    - perl_alloc
    - cf_pair_find
    - fr_rb_iter_init_inorder
    - fr_rb_inline_init
    - perl_parse
    - talloc_free
    - cf_pair_value
    - talloc
    - perl_parse_config
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1758,1
    - Dst: dTHXa
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1763,1
    - Dst: PERL_SET_CONTEXT
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1764,1
    - Dst: hv_undef
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1765,1
    - Dst: PUSHMARK
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1769,1
    - Dst: call_pv
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1771,1
    - Dst: rlm_perl_interp_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1786,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1787,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1756
    functionDepth: 2
    functionLinenumber: 1756
    functionLinenumberEnd: 1790
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - dTHXa
    - PUSHMARK
    - rlm_perl_interp_free
    - talloc_free
    - talloc_get_type_abort
    - call_pv
    - PERL_SET_CONTEXT
    - hv_undef
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1797,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1801
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_INFO
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1818,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1819,1
    - Dst: dl_open_by_sym
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1826,1
    - Dst: LOAD_WARN
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1827,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1832,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1832,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1833,1
    - Dst: PERL_SYS_INIT3
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1837,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1842
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - dl_open_by_sym
    - LOAD_INFO
    - talloc_zero_array
    - LOAD_WARN
    - MEM
    - PERL_SYS_INIT3
    - dependency_version_number_add
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1811
    functionName: LOAD_INFO
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INFO(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1817
    functionName: LOAD_WARN
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_WARN(_fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1846,1
    - Dst: PERL_SYS_TERM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1844
    functionDepth: 0
    functionLinenumber: 1844
    functionLinenumberEnd: 1848
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - dlclose
    - PERL_SYS_TERM
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1859,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1860,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1864
    functionName: perl_func_name_safe
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - strchr
    - talloc_array_length
    - tolower
    linkageType: ''
    returnType: void
    signature: void perl_func_name_safe(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1869,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1875,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1879,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1879,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1891,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1891,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1892,1
    - Dst: perl_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1893,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1895,1
    - Dst: perl_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1896,1
    - Dst: fr_rb_find_or_insert
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1898,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1899,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1907,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1908,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c:1910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - UNUSED*
    - UNUSED*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1913
    functionName: perl_func_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_perl/rlm_perl.c
    functionUses: 0
    functionsReached:
    - perl_func_name_safe
    - fr_rb_find_or_insert
    - talloc_free
    - call_env_parsed_add
    - talloc_strdup
    - talloc_get_type_abort
    - call_env_parsed_set_data
    - talloc_zero
    - fr_rb_inline_init
    - MEM
    linkageType: ''
    returnType: int
    signature: "int perl_func_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *out,
      UNUSED tmpl_rules_t const *t_rules,\n\t\t\t   UNUSED CONF_ITEM *ci, call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:255,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:255,1
    - Dst: EVP_get_digestbyname
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:256,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: digest_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - cf_log_err
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: "int digest_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent,\n\t\t\t     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:284,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:284,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:285,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: cipher_rsa_padding_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - cf_log_err
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: "int cipher_rsa_padding_type_parse(UNUSED TALLOC_CTX *ctx, void *out,
      UNUSED void *parent,\n\t\t\t\t\t CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:312,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:312,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:313,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 327
    functionName: cipher_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - cf_log_err
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int cipher_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent, CONF_ITEM *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: _evp_pkey_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int _evp_pkey_free(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: _x509_cert_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: int
    signature: int _x509_cert_free(X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:372,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:376,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:376,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:378,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:380,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:380,1
    - Dst: PEM_read_PrivateKey
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:384,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:385,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:386,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:389,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:390,1
    - Dst: EVP_PKEY_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:395,1
    - Dst: EVP_PKEY_id
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:395,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:397,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:398,1
    - Dst: OBJ_nid2sn
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:398,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:399,1
    - Dst: OBJ_nid2sn
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:399,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:401,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:405,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:406,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 410
    functionName: cipher_rsa_private_key_file_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fopen
    - cf_log_err
    - EVP_PKEY_type
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_tls_strerror_printf
    - OBJ_nid2sn
    - EVP_PKEY_id
    - talloc_set_destructor
    - fr_syserror
    - UNCONST
    - talloc_set_type
    - talloc_steal
    - fclose
    - cf_log_perr
    - cf_pair_value
    - PEM_read_PrivateKey
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int cipher_rsa_private_key_file_load(TALLOC_CTX *ctx, void *out, void
      *parent,\n\t\t\t\t\t    CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:431,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:437,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:437,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:439,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:441,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:441,1
    - Dst: PEM_read_X509
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:448,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:449,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:452,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:453,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:463,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:464,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:465,1
    - Dst: X509_get_pubkey
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:470,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:472,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:473,1
    - Dst: EVP_PKEY_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:478,1
    - Dst: EVP_PKEY_id
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:478,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:480,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:481,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:482,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:484,1
    - Dst: fr_tls_cert_is_valid
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:491,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:493,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:494,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:494,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:498,1
    - Dst: cf_log_pwarn
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:505,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:509,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:516,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:521,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:522,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:523,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 529
    functionName: cipher_rsa_certificate_file_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - PEM_read_X509
    - fopen
    - cf_log_pwarn
    - cf_log_err
    - X509_get_pubkey
    - EVP_PKEY_type
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_tls_strerror_printf
    - EVP_PKEY_id
    - fr_box_date
    - talloc_set_destructor
    - fr_syserror
    - talloc_set_type
    - talloc_steal
    - fr_tls_cert_is_valid
    - fr_assert
    - cf_log_debug
    - fclose
    - cf_log_perr
    - cf_pair_value
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int cipher_rsa_certificate_file_load(TALLOC_CTX *ctx, void *out, void
      *parent,\n\t\t\t\t\t    CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:552,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:561,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:569,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:570,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:572,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:576,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:576,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:577,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:577,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:578,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:580,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:581,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:584,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:585,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:585,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 589
    functionName: cipher_rsa_encrypt_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_mem_alloc
    - fr_tls_log
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - RHEXDUMP3
    - fr_value_box_mem_realloc
    - EVP_PKEY_encrypt
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_rsa_encrypt_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t     xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:613,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:614,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:625,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:633,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:633,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:634,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:638,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:639,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:643,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:644,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:647,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:647,1
    - Dst: EVP_PKEY_sign
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:652,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:653,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:657,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:657,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:658,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:658,1
    - Dst: EVP_PKEY_sign
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:659,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:660,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:661,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:664,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:664,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 668
    functionName: cipher_rsa_sign_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - fr_tls_log
    - EVP_DigestUpdate
    - fr_value_box_mem_alloc
    - fr_dcursor_append
    - talloc_free
    - EVP_DigestInit_ex
    - talloc_get_type_abort
    - fr_assert
    - EVP_PKEY_sign
    - talloc_array_length
    - talloc_get_type_abort_const
    - EVP_DigestFinal_ex
    - fr_value_box_mem_realloc
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_rsa_sign_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \ xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:691,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:700,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:708,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:709,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:710,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:714,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:714,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:715,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:715,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:716,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:718,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:719,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:722,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:723,1
    - Dst: fr_value_box_bstr_realloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:723,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 727
    functionName: cipher_rsa_decrypt_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_tls_log
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - fr_value_box_bstr_realloc
    - EVP_PKEY_decrypt
    - RHEXDUMP3
    - fr_value_box_bstr_alloc
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_rsa_decrypt_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t     xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:753,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:754,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:765,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:768,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:776,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:778,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:779,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:788,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:789,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:793,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:800,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:807,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:807,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:808,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:812,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:813,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:817,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:818,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:821,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:821,1
    - Dst: EVP_PKEY_verify
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:826,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:828,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:828,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:830,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:834,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:834,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:836,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 845
    functionName: cipher_rsa_verify_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - fr_tls_log
    - EVP_DigestUpdate
    - fr_dcursor_append
    - EVP_DigestInit_ex
    - EVP_PKEY_verify
    - REDEBUG
    - fr_value_box_list_pop_head
    - talloc_get_type_abort
    - fr_assert
    - fr_value_box_list_concat_in_place
    - fr_value_box_alloc
    - talloc_array_length
    - talloc_get_type_abort_const
    - EVP_DigestFinal_ex
    - fr_type_to_str
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_rsa_verify_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t \t    xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:867,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:875,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:875,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:877,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:878,1
    - Dst: EVP_get_digestbyname
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:887,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:889,1
    - Dst: EVP_MD_size
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:893,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:894,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:894,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:895,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:895,1
    - Dst: X509_digest
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:897,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:898,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:899,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 906
    functionName: cipher_fingerprint_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_mem_alloc
    - fr_tls_log
    - EVP_get_digestbyname
    - X509_digest
    - talloc_free
    - fr_dcursor_append
    - REDEBUG
    - EVP_MD_size
    - talloc_get_type_abort_const
    - fr_type_is_null
    - MEM
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_fingerprint_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t \t     xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:920,1
    - Dst: X509_get0_serialNumber
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:924,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:926,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:930,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:930,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:931,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:931,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 936
    functionName: cipher_serial_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_tls_log
    - fr_dcursor_append
    - fr_value_box_memdup
    - X509_get0_serialNumber
    - talloc_get_type_abort_const
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_serial_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \txlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:942,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:943,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:946,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:948,1
    - Dst: cipher_fingerprint_xlat
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:952,1
    - Dst: cipher_serial_xlat
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:955,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:958,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:958,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:961,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:965,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:965,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 971
    functionName: cipher_certificate_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - REDEBUG
    - cipher_serial_xlat
    - fr_value_box_alloc
    - fr_table_value_by_str
    - talloc_get_type_abort_const
    - MEM
    - cipher_fingerprint_xlat
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t cipher_certificate_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t \t     xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evp_pkey_ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 983
    functionName: _evp_pkey_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int _evp_pkey_ctx_free(EVP_PKEY_CTX *evp_pkey_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evp_md_ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 995
    functionName: _evp_md_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: int
    signature: int _evp_md_ctx_free(EVP_MD_CTX *evp_md_ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:999,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:999,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1000,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1001,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1015,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1015,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1016,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1017,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1021,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1021,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1022,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1023,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1029,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1038,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1038,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1039,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1039,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1040,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1041,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1042,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1049,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - evp_pkey_ctx
    - rsa_inst
    argTypes:
    - EVP_PKEY_CTX*
    - cipher_rsa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1052
    functionName: cipher_rsa_padding_params_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - unlikely
    - EVP_PKEY_CTX_set_rsa_padding
    - talloc_bstrndup
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - fr_tls_strerror_printf
    - OPENSSL_free
    - fr_assert
    - talloc_strlen
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - MEM
    - PERROR
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    linkageType: ''
    returnType: int
    signature: int cipher_rsa_padding_params_set(EVP_PKEY_CTX *evp_pkey_ctx, cipher_rsa_t
      const *rsa_inst)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1065,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1066,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1078,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1080,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1081,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1084,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1085,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1086,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1091,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1091,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1092,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1093,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1096,1
    - Dst: cipher_rsa_padding_params_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1096,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1097,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1104,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1106,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1107,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1110,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1111,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1112,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1117,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1117,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1118,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1119,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1127,1
    - Dst: cipher_rsa_padding_params_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1127,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1128,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1133,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1133,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1134,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1135,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1144,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1146,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1147,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1150,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1151,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1152,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1157,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1157,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1158,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1159,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1162,1
    - Dst: cipher_rsa_padding_params_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1162,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1163,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1170,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1172,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1173,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1176,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1177,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1178,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1183,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1183,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1184,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1185,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1193,1
    - Dst: cipher_rsa_padding_params_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1193,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1194,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1199,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1199,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1200,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1201,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1208,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1210,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1211,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1214,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1215,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1216,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1217,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1217,1
    - Dst: EVP_MD_size
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1217,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 102
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1221
    functionName: cipher_rsa_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_CTX_new
    - MEM
    - cipher_rsa_padding_params_set
    - unlikely
    - ERROR
    - EVP_MD_size
    - talloc_get_type_abort
    - EVP_MD_CTX_create
    - fr_tls_strerror_printf
    - EVP_PKEY_CTX_set_signature_md
    - talloc_set_destructor
    - talloc_steal
    - talloc_set_type
    - EVP_PKEY_encrypt_init
    - PERROR
    - EVP_PKEY_sign_init
    - EVP_PKEY_verify_init
    linkageType: ''
    returnType: int
    signature: int cipher_rsa_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1225,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1229,1
    - Dst: cipher_rsa_thread_instantiate
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1230,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1223
    functionDepth: 3
    functionLinenumber: 1223
    functionLinenumberEnd: 1238
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cipher_rsa_thread_instantiate
    - fr_assert
    - talloc_set_type
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1248,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1254,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1259,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1270,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1271,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1276,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1277,1
    - Dst: X509_check_private_key
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1291,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1293,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1294,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1302,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1303,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1308,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1309,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1315,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1316,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c:1325,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1330
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_cipher/rlm_cipher.c
    functionUses: 0
    functionsReached:
    - cf_log_perr
    - X509_check_private_key
    - talloc_get_type_abort
    - fr_tls_strerror_printf
    - fr_assert
    - xlat_func_args_set
    - module_rlm_xlat_register
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: _PyCFunction_CAST
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyCFunction_CAST(func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:415,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:416,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:419,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: python_func_def_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t python_func_def_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:430,1
    - Dst: PyState_FindModule
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:434,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:435,1
    - Dst: PyModule_GetDict
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:437,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:438,1
    - Dst: PyDict_GetItemString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 442
    functionName: rlm_python_state_obj
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - unlikely
    - PyDict_GetItemString
    - PyModule_GetDict
    - PyState_FindModule
    - PyThreadState_GetDict
    linkageType: ''
    returnType: py_freeradius_state_t
    signature: py_freeradius_state_t *rlm_python_state_obj(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlm_python_state_obj
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:451,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: rlm_python_get_inst
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - unlikely
    - rlm_python_state_obj
    linkageType: ''
    returnType: rlm_python_t
    signature: rlm_python_t *rlm_python_get_inst(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlm_python_state_obj
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:463,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: rlm_python_get_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - unlikely
    - rlm_python_state_obj
    linkageType: ''
    returnType: request_t
    signature: request_t *rlm_python_get_request(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rlm_python_state_obj
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:476,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 480
    functionName: rlm_python_set_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - unlikely
    - rlm_python_state_obj
    linkageType: ''
    returnType: void
    signature: void rlm_python_set_request(request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rlm_python_get_inst
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:491,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:495,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - UNUSED*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 501
    functionName: py_freeradius_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - fr_log
    - rlm_python_get_inst
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_freeradius_log(UNUSED PyObject *self, PyObject *args,
      PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:508,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:509,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 514
    functionName: py_freeradius_state_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int py_freeradius_state_init(PyObject *self, UNUSED PyObject *args,
      UNUSED PyObject *kwds)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:525,1
    - Dst: PyLong_AsLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:526,1
    - Dst: PyErr_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:529,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:534,1
    - Dst: PyObject_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:535,1
    - Dst: fr_type_is_struct
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:537,1
    - Dst: PyObject_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:538,1
    - Dst: PyErr_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:540,1
    - Dst: PyErr_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:544,1
    - Dst: Py_INCREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:548,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:551,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:551,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 553
    functionName: py_freeradius_attribute_instance
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_SetString
    - PyObject_New
    - fr_pair_parent_list
    - fr_type_is_leaf
    - PyLong_CheckExact
    - fr_pair_find_by_da_idx
    - fr_type_is_struct
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_freeradius_attribute_instance(PyObject *self, PyObject
      *attr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rlm_python_get_request
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:568,1
    - Dst: PyLong_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:576,1
    - Dst: py_freeradius_attribute_instance
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:576,1
    - Dst: PyUnicode_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:578,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:579,1
    - Dst: PyObject_Type
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:580,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:583,1
    - Dst: PyObject_IsInstance
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:585,1
    - Dst: fr_dict_attr_search_by_name_substr
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:586,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:586,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:589,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:589,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:594,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:598,1
    - Dst: PyObject_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:599,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:600,1
    - Dst: PyObject_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:601,1
    - Dst: PyErr_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:603,1
    - Dst: PyErr_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:607,1
    - Dst: Py_INCREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:612,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 618
    functionName: py_freeradius_pair_map_subscript
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_New
    - PyObject_IsInstance
    - fr_type_is_leaf
    - PyLong_CheckExact
    - PyUnicode_CheckExact
    - py_freeradius_attribute_instance
    - rlm_python_get_request
    - fr_type_is_structural
    - FR_SBUFF_IN
    - fr_dict_attr_by_name_substr
    - Py_INCREF
    - PyUnicode_AsUTF8AndSize
    - PyObject_Type
    - fr_pair_find_by_da
    - fr_dict_attr_search_by_name_substr
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_freeradius_pair_map_subscript(PyObject *self, PyObject
      *attr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: py_freeradius_build_parents
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:629,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:637,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:639,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 646
    functionName: py_freeradius_build_parents
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 1
    functionsReached:
    - fr_pair_count_by_da
    - fr_pair_append_by_da
    - py_freeradius_build_parents
    - PyErr_Format
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *py_freeradius_build_parents(PyObject *obj)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: rlm_python_get_request
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:670,1
    - Dst: PyUnicode_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:677,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:678,1
    - Dst: PyObject_Type
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:678,1
    - Dst: PyUnicode_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:686,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:691,1
    - Dst: PyObject_IsInstance
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:693,1
    - Dst: fr_dict_attr_search_by_name_substr
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:694,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:694,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:697,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:697,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:701,1
    - Dst: py_freeradius_build_parents
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:708,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:714,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:718,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:718,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:719,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:723,1
    - Dst: PyLong_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:730,1
    - Dst: PyLong_AsLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:731,1
    - Dst: PyErr_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:735,1
    - Dst: py_freeradius_build_parents
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:741,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:749,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:749,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:750,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:754,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:759,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:762,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:764,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:767,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:767,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:768,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:774,1
    - Dst: PyObject_Type
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:774,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:778,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:778,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:780,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:782,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:783,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:784,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:788,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:793,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:794,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 99
    argCount: 3
    argNames:
    - self
    - attr
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 797
    functionName: py_freeradius_pair_map_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyObject_IsInstance
    - fr_value_box_clear_value
    - fr_type_is_leaf
    - fr_dict_attr_by_name_substr
    - PyUnicode_AsUTF8AndSize
    - fr_pair_list_parent
    - PyLong_AsLong
    - fr_pair_delete
    - fr_pair_count_by_da
    - fr_pair_append_by_da
    - PyObject_Type
    - py_freeradius_build_parents
    - fr_dict_attr_search_by_name_substr
    - fr_pair_value_from_str
    - FR_SBUFF_IN
    - fr_assert
    - RDEBUG2
    - fr_pair_find_by_da
    - PyErr_Format
    - PyLong_CheckExact
    - PyUnicode_CheckExact
    - rlm_python_get_request
    - fr_pair_find_by_da_idx
    linkageType: ''
    returnType: int
    signature: int py_freeradius_pair_map_set(PyObject* self, PyObject* attr, PyObject*
      value)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:815,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:819,1
    - Dst: PyBool_FromLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:823,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:827,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:831,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:835,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:839,1
    - Dst: PyLong_FromLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:843,1
    - Dst: PyLong_FromLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:847,1
    - Dst: PyLong_FromLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:851,1
    - Dst: PyLong_FromLongLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:855,1
    - Dst: PyFloat_FromDouble
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:859,1
    - Dst: PyFloat_FromDouble
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:863,1
    - Dst: PyLong_FromSize_t
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:867,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:885,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:885,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:888,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:891,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:896,1
    - Dst: Py_INCREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:902,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 904
    functionName: py_freeradius_pair_getvalue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - fr_value_box_print
    - PyUnicode_FromStringAndSize
    - PyLong_FromUnsignedLongLong
    - PyLong_FromUnsignedLong
    - PyFloat_FromDouble
    - PyLong_FromLong
    - FR_SBUFF_OUT
    - Py_INCREF
    - fr_assert
    - PyBytes_FromStringAndSize
    - PyLong_FromSize_t
    - PyBool_FromLong
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_freeradius_pair_getvalue(PyObject *self, UNUSED void *closure)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: py_freeradius_build_parents
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:925,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:929,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:931,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:934,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:934,1
    - Dst: PyUnicode_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:943,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:945,1
    - Dst: PyObject_Type
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:946,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:946,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:949,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:950,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:951,1
    - Dst: PyObject_IsInstance
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:959,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:960,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:961,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:962,1
    - Dst: PyLong_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:978,1
    - Dst: PyLong_AsLongLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:979,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1013,1
    - Dst: PyFloat_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1022,1
    - Dst: PyFloat_AsDouble
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1023,1
    - Dst: PyUnicode_CheckExact
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1048,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1050,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1051,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1052,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1052,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1059,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 1064
    functionName: py_freeradius_pair_setvalue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - fr_value_box_clear_value
    - fr_value_box_bstrndup
    - PyFloat_AsDouble
    - PyBytes_AsStringAndSize
    - PyUnicode_AsUTF8AndSize
    - fr_pair_list_parent
    - fr_type_to_str
    - fr_pair_count_by_da
    - fr_pair_append_by_da
    - fr_value_box_clear
    - PyObject_Type
    - py_freeradius_build_parents
    - fr_pair_value_from_str
    - PyFloat_CheckExact
    - fr_assert
    - PyLong_AsLongLong
    - fr_value_box_memdup
    - PyErr_Format
    - PyLong_CheckExact
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int py_freeradius_pair_setvalue(PyObject *self, PyObject *value, UNUSED
      void *closure)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1076,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1080,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1084,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1092,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1092,1
    - Dst: PyErr_Format
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1095,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1098,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1106
    functionName: py_freeradius_pair_str
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - PyObject_Str
    - PyUnicode_FromStringAndSize
    - FR_SBUFF_OUT
    - fr_assert
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_freeradius_pair_str(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1116,1
    - Dst: PyErr_NormalizeException
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1117,1
    - Dst: PyObject_Str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1120,1
    - Dst: PyObject_Str
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1120,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1122,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1122,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1122,1
    - Dst: PyFrame_GetCode
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1131,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1133,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1135,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1136,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1137,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1139,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1141,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1143,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1144,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1145,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1155,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1156,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1157,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1158,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - inst
    - request
    argTypes:
    - rlm_python_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1160
    functionName: python_error_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - PyFrame_GetCode
    - PyErr_NormalizeException
    - PyObject_Str
    - Py_XDECREF
    - PyFrame_GetLineNumber
    - ROPTIONAL
    - PyUnicode_AsUTF8
    linkageType: ''
    returnType: void
    signature: void python_error_log(rlm_python_t const *inst, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1174,1
    - Dst: PyObject_CallObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1178,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1179,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1183,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - request
    - list
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1187
    functionName: pair_list_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 2
    functionsReached:
    - unlikely
    - tmpl_list_head
    - PyObject_CallObject
    - Py_INCREF
    - fr_pair_list_parent
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pair_list_alloc(request_t *request, fr_dict_attr_t const
      *list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1193,1
    - Dst: PyObject_CallObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1202,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1203,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1204,1
    - Dst: rlm_python_set_request
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1209,1
    - Dst: pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1214,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1215,1
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1217,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1218,1
    - Dst: pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1222,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1223,1
    - Dst: pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1225,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1226,1
    - Dst: pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1228,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1229,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1232,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1234,1
    - Dst: PyNumber_Check
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1241,1
    - Dst: PyLong_AsLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1241,1
    - Dst: PyNumber_Check
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1249,1
    - Dst: PyLong_AsLong
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1251,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1258,1
    - Dst: rlm_python_set_request
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1264,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1266,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1267,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1268,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1270,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - p_func
    - funcname
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1271
    functionName: do_python_single
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - unlikely
    - RERROR
    - ERROR
    - Py_DECREF
    - pair_list_alloc
    - Py_XDECREF
    - talloc_get_type_abort
    - python_error_log
    - PyObject_CallObject
    - rlm_python_set_request
    - PyNumber_Check
    - RETURN_UNLANG_RCODE
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t do_python_single(unlang_result_t *p_result, module_ctx_t
      const *mctx,\n\t\t\t\t\trequest_t *request, PyObject *p_func, char const *funcname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1279,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1280,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1287,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1289,1
    - Dst: do_python_single
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1290,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1291,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1277
    functionDepth: 4
    functionLinenumber: 1277
    functionLinenumberEnd: 1294
    functionName: mod_python
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    - fr_cond_assert
    - talloc_get_type_abort
    - PyEval_RestoreThread
    - RDEBUG3
    - do_python_single
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_python(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1302
    functionName: python_obj_destroy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void python_obj_destroy(PyObject **ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: python_obj_destroy
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1306,1
    - Dst: python_obj_destroy
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - def
    argTypes:
    - python_func_def_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1308
    functionName: python_function_destroy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - python_obj_destroy
    linkageType: ''
    returnType: void
    signature: void python_function_destroy(python_func_def_t *def)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1315,1
    - Dst: LSAN_DISABLE
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1320,1
    - Dst: PyImport_ImportModule
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1320,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1322,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1324,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1325,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1327,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1337,1
    - Dst: PyObject_GetAttrString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1339,1
    - Dst: PyErr_Clear
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1341,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1342,1
    - Dst: PyObject_GetAttrString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1344,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1347,1
    - Dst: PyCallable_Check
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1351,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1352,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1356,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - mctx
    - def
    argTypes:
    - module_inst_ctx_t*
    - python_func_def_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1358
    functionName: python_function_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - ERROR
    - LSAN_DISABLE
    - Py_XDECREF
    - talloc_get_type_abort
    - python_error_log
    - PyObject_GetAttrString
    - PyErr_Clear
    - talloc_const_free
    - talloc_asprintf
    - DEBUG2
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int python_function_load(module_inst_ctx_t const *mctx, python_func_def_t
      *def)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1373,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1373,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1375,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1381,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1382,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1383,1
    - Dst: PyUnicode_FromString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1386,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1388,1
    - Dst: PyDict_Contains
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1392,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1393,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1397,1
    - Dst: PyDict_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1397,1
    - Dst: PyDict_SetItem
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1398,1
    - Dst: python_parse_config
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1400,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1402,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1403,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1404,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1405,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1409,1
    - Dst: PyUnicode_FromString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1413,1
    - Dst: PyUnicode_FromString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1414,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1416,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1420,1
    - Dst: PyDict_Contains
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1428,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1429,1
    - Dst: PyDict_SetItem
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1433,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1435,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1439,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - inst
    - cs
    - lvl
    - dict
    argTypes:
    - rlm_python_t*
    - CONF_SECTION*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1442
    functionName: python_parse_config
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - ERROR
    - cf_item_is_section
    - PyDict_Contains
    - WARN
    - PyDict_SetItem
    - python_parse_config
    - cf_pair_value
    - cf_item_next
    - PyUnicode_FromString
    - cf_section_name1
    - PyDict_New
    - cf_item_is_pair
    - MEM
    - DEBUG
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int python_parse_config(rlm_python_t const *inst, CONF_SECTION *cs,
      int lvl, PyObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1455,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1457,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1459,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1461,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1465,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1467,1
    - Dst: python_parse_config
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1468,1
    - Dst: PyModule_AddObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - inst
    - conf
    - module
    argTypes:
    - rlm_python_t*
    - CONF_SECTION*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1477
    functionName: python_module_import_config
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - ERROR
    - cf_section_find
    - Py_XDECREF
    - python_error_log
    - PyModule_AddObject
    - PyDict_New
    - python_parse_config
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int python_module_import_config(rlm_python_t *inst, CONF_SECTION *conf,
      PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1487,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1488,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inst
    - module
    argTypes:
    - rlm_python_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1482
    functionDepth: 2
    functionLinenumber: 1482
    functionLinenumberEnd: 1495
    functionName: python_module_import_constants
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - ERROR
    - PyModule_AddIntConstant
    - python_error_log
    linkageType: ''
    returnType: int
    signature: int python_module_import_constants(rlm_python_t const *inst, PyObject
      *module)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1507,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1514,1
    - Dst: PyType_Ready
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1528,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1530,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1531,1
    - Dst: PyType_Ready
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1535,1
    - Dst: PyType_Ready
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1537,1
    - Dst: PyType_Ready
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1539,1
    - Dst: PyType_Ready
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1541,1
    - Dst: PyType_Ready
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1543,1
    - Dst: PyModule_Create
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1551,1
    - Dst: python_error_log
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1553,1
    - Dst: PyObject_CallObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1572,1
    - Dst: Py_INCREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1573,1
    - Dst: PyModule_AddObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1575,1
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1576,1
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1577,1
    - Dst: Py_INCREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1586,1
    - Dst: PyModule_AddObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1587,1
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1588,1
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1589,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1592,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1595
    functionName: python_module_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_Ready
    - pthread_mutex_lock
    - PyModule_Create
    - pthread_mutex_unlock
    - python_error_log
    - PyObject_CallObject
    - PyModule_AddObject
    - Py_INCREF
    - fr_assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *python_module_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1599,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1612,1
    - Dst: LSAN_DISABLE
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1613,1
    - Dst: Py_NewInterpreter
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1613,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1615,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1618,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1619,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1621,1
    - Dst: PyImport_ImportModule
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1629,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1631,1
    - Dst: python_module_import_config
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1634,1
    - Dst: python_module_import_constants
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1635,1
    - Dst: Py_DECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1636,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1597
    functionDepth: 3
    functionLinenumber: 1597
    functionLinenumberEnd: 1643
    functionName: python_interpreter_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - python_module_import_constants
    - PyEval_SaveThread
    - ERROR
    - Py_DECREF
    - LSAN_DISABLE
    - Py_NewInterpreter
    - talloc_get_type_abort
    - PyEval_RestoreThread
    - python_module_import_config
    - DEBUG3
    - PyImport_ImportModule
    linkageType: ''
    returnType: int
    signature: int python_interpreter_init(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1647,1
    - Dst: Py_XDECREF
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1653,1
    - Dst: Py_EndInterpreter
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1655,1
    - Dst: PyThreadState_Swap
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1656,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - inst
    - interp
    argTypes:
    - rlm_python_t*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1658
    functionName: python_interpreter_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    - Py_EndInterpreter
    - Py_XDECREF
    - PyThreadState_Swap
    - PyEval_RestoreThread
    linkageType: ''
    returnType: void
    signature: void python_interpreter_free(rlm_python_t *inst, PyThreadState *interp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1673,1
    - Dst: python_interpreter_init
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1680,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1682,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1686,1
    - Dst: PYTHON_FUNC_LOAD
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1692,1
    - Dst: PYTHON_FUNC_LOAD
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1693,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1698,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1700,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1706,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1707,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1708,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1711,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1712,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1713,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1715,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1723,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1724,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1725,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1728,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1729,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1730,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1732,1
    - Dst: python_function_load
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1734,1
    - Dst: do_python_single
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1743,1
    - Dst: MODULE_CTX_FROM_INST
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1743,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1748,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1748,1
    - Dst: python_interpreter_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1749,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1760,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1760,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1671
    functionDepth: 4
    functionLinenumber: 1671
    functionLinenumberEnd: 1763
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    - fr_rb_iter_next_inorder
    - talloc_free
    - cf_pair_value
    - fr_cond_assert
    - python_function_load
    - talloc_get_type_abort
    - PyEval_RestoreThread
    - python_interpreter_free
    - do_python_single
    - python_interpreter_init
    - MODULE_CTX_FROM_INST
    - talloc_asprintf
    - fr_rb_iter_init_inorder
    - cf_pair_find
    - fr_rb_inline_init
    - PYTHON_FUNC_LOAD
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1692
    functionName: PYTHON_FUNC_LOAD
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYTHON_FUNC_LOAD(_x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1767,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1782,1
    - Dst: do_python_single
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1790,1
    - Dst: MODULE_CTX_FROM_INST
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1790,1
    - Dst: PYTHON_FUNC_DESTROY
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1794,1
    - Dst: PYTHON_FUNC_DESTROY
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1795,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1797,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1799,1
    - Dst: python_function_destroy
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1800,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1803,1
    - Dst: python_interpreter_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1765
    functionDepth: 4
    functionLinenumber: 1765
    functionLinenumberEnd: 1811
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    - fr_rb_iter_next_inorder
    - PYTHON_FUNC_DESTROY
    - talloc_get_type_abort
    - python_function_destroy
    - PyEval_RestoreThread
    - python_interpreter_free
    - do_python_single
    - MODULE_CTX_FROM_INST
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1794
    functionName: PYTHON_FUNC_DESTROY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYTHON_FUNC_DESTROY(_x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1815,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1816,1
    - Dst: PyThreadState_New
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1825,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1827,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1831,1
    - Dst: PyThreadState_GetDict
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1832,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1833,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1834,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1836,1
    - Dst: PyThreadState_Delete
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1837,1
    - Dst: PyObject_CallObject
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1847,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1848,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1849,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1853,1
    - Dst: PyDict_SetItemString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1853,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1854,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1858,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1863
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - PyThreadState_New
    - PyEval_SaveThread
    - PyDict_SetItemString
    - talloc_get_type_abort
    - PyEval_RestoreThread
    - PyObject_CallObject
    - PyThreadState_Delete
    - DEBUG3
    - PyThreadState_GetDict
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1867,1
    - Dst: PyEval_RestoreThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1869,1
    - Dst: PyThreadState_Clear
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1870,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1871,1
    - Dst: PyThreadState_Delete
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1876
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyEval_SaveThread
    - talloc_get_type_abort
    - PyEval_RestoreThread
    - PyThreadState_Clear
    - PyThreadState_Delete
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1891,1
    - Dst: Py_IsInitialized
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1891,1
    - Dst: LOAD_INFO
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1893,1
    - Dst: Py_GetVersion
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1893,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1894,1
    - Dst: Py_GetVersion
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1894,1
    - Dst: dl_open_by_sym
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1901,1
    - Dst: LOAD_WARN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1902,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1904,1
    - Dst: Py_DecodeLocale
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1910,1
    - Dst: PyConfig_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1911,1
    - Dst: PyMem_RawFree
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1912,1
    - Dst: PyStatus_Exception
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1914,1
    - Dst: LOAD_WARN
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1916,1
    - Dst: PyConfig_Clear
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1917,1
    - Dst: PyImport_AppendInittab
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1927,1
    - Dst: Py_DecodeLocale
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1930,1
    - Dst: PyConfig_SetString
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1937,1
    - Dst: PyWideStringList_Append
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1944,1
    - Dst: PyMem_RawFree
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1946,1
    - Dst: PyStatus_Exception
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1947,1
    - Dst: LSAN_DISABLE
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1954,1
    - Dst: Py_InitializeFromConfig
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1954,1
    - Dst: PyStatus_Exception
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1955,1
    - Dst: PyConfig_Clear
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1957,1
    - Dst: PyEval_SaveThread
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1959,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1878
    functionDepth: 1
    functionLinenumber: 1878
    functionLinenumberEnd: 1962
    functionName: libpython_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - PyStatus_Exception
    - Py_InitializeFromConfig
    - PyEval_SaveThread
    - Py_GetVersion
    - Py_DecodeLocale
    - PyConfig_SetString
    - LSAN_DISABLE
    - PyImport_AppendInittab
    - dl_open_by_sym
    - fr_assert
    - LOAD_INFO
    - PyConfig_InitPythonConfig
    - PyMem_RawFree
    - PyWideStringList_Append
    - Py_IsInitialized
    - LOAD_WARN
    - PyConfig_Clear
    - dependency_version_number_add
    linkageType: ''
    returnType: int
    signature: int libpython_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1881
    functionName: LOAD_INFO
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INFO(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1881
    functionDepth: 0
    functionLinenumber: 1881
    functionLinenumberEnd: 1887
    functionName: LOAD_WARN
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_WARN(_fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Swap
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1966,1
    - Dst: LSAN_DISABLE
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1973,1
    - Dst: Py_Finalize
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1973,1
    - Dst: dlclose
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1975
    functionName: libpython_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - dlclose
    - Py_Finalize
    - LSAN_DISABLE
    - PyThreadState_Swap
    linkageType: ''
    returnType: void
    signature: void libpython_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1986,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1987,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1991
    functionName: python_func_name_safe
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - strchr
    - talloc_array_length
    - tolower
    linkageType: ''
    returnType: void
    signature: void python_func_name_safe(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:1996,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2002,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2006,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2006,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2018,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2018,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2019,1
    - Dst: python_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2020,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2022,1
    - Dst: python_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2023,1
    - Dst: fr_rb_find_or_insert
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2026,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2027,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2035,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2036,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_python/rlm_python.c:2038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - UNUSED*
    - UNUSED*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2041
    functionName: python_func_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_python/rlm_python.c
    functionUses: 0
    functionsReached:
    - fr_rb_find_or_insert
    - talloc_free
    - call_env_parsed_add
    - talloc_strdup
    - talloc_get_type_abort
    - call_env_parsed_set_data
    - talloc_zero
    - python_func_name_safe
    - fr_rb_inline_init
    - MEM
    linkageType: ''
    returnType: int
    signature: "int python_func_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *out,
      UNUSED tmpl_rules_t const *t_rules,\n\t\t\t     UNUSED CONF_ITEM *ci, call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:62,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:64,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:70,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:70,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mctx
    - request
    - retry
    argTypes:
    - module_ctx_t*
    - request_t*
    - fr_retry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: _delay_done
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - REDEBUG
    - talloc_get_type_abort
    - fr_time_gteq
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void _delay_done(module_ctx_t const *mctx, request_t *request, fr_retry_t
      const *retry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:75,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:77,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:83,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:83,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:83,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xctx
    - request
    - fired
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: _xlat_delay_done
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - fr_time_gt
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void _xlat_delay_done(xlat_ctx_t const *xctx, request_t *request, fr_time_t
      fired)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:94,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:100,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:102,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:108,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:110,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:111,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:111,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:111,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - request
    - resume_at
    - now
    - delay
    - force_reschedule
    - relative
    argTypes:
    - request_t*
    - fr_time_t*
    - fr_time_t
    - fr_time_delta_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 117
    functionName: delay_add
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - fr_time_gt
    - fr_time_add
    - fr_box_time_delta
    - fr_time_sub
    - RDEBUG2
    - fr_time_delta_ispos
    - fr_time_lteq
    linkageType: ''
    returnType: int
    signature: "int delay_add(request_t *request, fr_time_t *resume_at, fr_time_t
      now,\n\t\t     fr_time_delta_t delay, bool force_reschedule, bool relative)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:124,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:125,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:130,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:130,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:130,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:130,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:131,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: mod_delay_return
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - fr_time
    - talloc_free
    - fr_box_time_delta
    - talloc_get_type_abort
    - fr_time_sub
    - RDEBUG3
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_delay_return(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:142,1
    - Dst: tmpl_aexpand_type
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:148,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:150,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:159,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:159,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:160,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:161,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:163,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:163,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:164,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:165,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:169,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:175,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:175,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:175,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:176,1
    - Dst: delay_add
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:181,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:186,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:187,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:187,1
    - Dst: unlang_module_yield_to_retry
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 199
    functionName: mod_delay
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_box_time
    - RPEDEBUG
    - fr_time
    - unlang_module_yield_to_retry
    - tmpl_aexpand_type
    - talloc
    - RDEBUG3
    - delay_add
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - RWDEBUG
    - fr_time_delta_cmp
    - MEM
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void mod_delay(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:205,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:209,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:209,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:210,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:212,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:212,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:215,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 220
    functionName: xlat_delay_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_time
    - talloc_get_type_abort
    - fr_time_sub
    - RDEBUG3
    - fr_value_box_alloc
    - fr_dcursor_insert
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_delay_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_signal_t
    argTypes:
    - UNUSED*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: xlat_delay_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void xlat_delay_cancel(UNUSED xlat_ctx_t const *xctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:245,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:247,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:252,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:252,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:253,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:261,1
    - Dst: delay_add
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:261,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:261,1
    - Dst: delay_add
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:267,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:269,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:270,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:275,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:275,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:275,1
    - Dst: unlang_xlat_timeout_add
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:277,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:278,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 283
    functionName: xlat_delay
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_time_delta_wrap
    - fr_box_time
    - RPEDEBUG
    - fr_time
    - talloc_free
    - fr_cond_assert
    - talloc_get_type_abort
    - talloc
    - RDEBUG2
    - delay_add
    - RDEBUG3
    - unlang_xlat_timeout_add
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_delay(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\txlat_ctx_t const *xctx,\n\t\t\t\trequest_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:289,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_delay/rlm_delay.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:126,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:128,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:130,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:137,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:138,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:140,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:146,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:147,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:150,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:153,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:159,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - final_stats
    - t
    - tree_offset
    - mydata
    argTypes:
    - uint64_t[]
    - rlm_stats_thread_t*
    - size_t
    - rlm_stats_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 162
    functionName: coalesce
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - memcpy
    - pthread_mutex_lock
    - fr_dlist_next
    - pthread_mutex_unlock
    - fr_rb_find
    - memset
    linkageType: ''
    returnType: void
    signature: "void coalesce(uint64_t final_stats[FR_RADIUS_CODE_MAX], rlm_stats_thread_t
      *t,\n\t\t     size_t tree_offset, rlm_stats_data_t *mydata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:167,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:168,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:174,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:184,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:192,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:194,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:194,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:199,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:209,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:211,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:211,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:216,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:221,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:227,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:227,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:227,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:233,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 241
    functionName: mod_stats_inc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - RWARN
    - pthread_mutex_lock
    - fr_time_gt
    - fr_time_add
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_rb_find
    - talloc_zero
    - fr_rb_insert
    - MEM
    linkageType: ''
    returnType: void
    signature: void mod_stats_inc(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:248,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:249,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:256,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:259,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:270,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:280,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:280,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:291,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:296,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:297,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:302,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:303,1
    - Dst: coalesce
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:307,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:311,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:312,1
    - Dst: coalesce
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:316,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:320,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:325,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:327,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:336,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:339,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:339,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 344
    functionName: mod_stats_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da_nested
    - fr_dict_attr_by_name
    - memcpy
    - RWARN
    - pthread_mutex_lock
    - fr_pair_copy
    - REDEBUG
    - fr_pair_append
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - pair_update_reply
    - coalesce
    - MEM
    - NUM_ELEMENTS
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: void
    signature: void mod_stats_read(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: data_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t data_cmp(const void *one, const void *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:360,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:361,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:363,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:367,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:368,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:370,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:371,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:372,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:376,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:378,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:379,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 383
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TALLOC_FREE
    - fr_dlist_insert_head
    - pthread_mutex_lock
    - fr_rb_inline_talloc_alloc
    - talloc_set_type
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:391,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:395,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:399,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:400,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 404
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_dlist_remove
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:408,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:410,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:410,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:411,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - fr_dlist_init
    - talloc_get_type_abort
    - talloc_zero
    - MEM
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:423,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:425,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 430
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_stats/rlm_stats.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:40,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: mruby_request_frconfig
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_request_frconfig(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:45,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: mruby_request_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_request_request(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:50,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: mruby_request_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_request_reply(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:55,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: mruby_request_control
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_request_control(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_iv_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:60,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: mruby_request_session_state
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - mrb_intern_cstr
    - mrb_iv_get
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_request_session_state(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_under
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:67,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:69,1
    - Dst: MRB_ARGS_NONE
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:69,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:70,1
    - Dst: MRB_ARGS_NONE
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:70,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:71,1
    - Dst: MRB_ARGS_NONE
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:71,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:72,1
    - Dst: MRB_ARGS_NONE
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:72,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:73,1
    - Dst: MRB_ARGS_NONE
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - mrb
    - parent
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: mruby_request_class
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_NONE
    - mrb_define_class_under
    - mrb_define_method
    linkageType: ''
    returnType: struct RClass
    signature: struct RClass *mruby_request_class(mrb_state *mrb, struct RClass *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:111,1
    - Dst: Data_Wrap_Struct
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:111,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - klass
    - inst
    argTypes:
    - mrb_state*
    - struct RClass*
    - rlm_mruby_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: mruby_inst_object
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - Data_Wrap_Struct
    - UNCONST
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_inst_object(mrb_state *mrb, struct RClass *klass, rlm_mruby_t
      const *inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:116,1
    - Dst: Data_Wrap_Struct
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - klass
    - request
    argTypes:
    - mrb_state*
    - struct RClass*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: mruby_request_object
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - Data_Wrap_Struct
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_request_object(mrb_state *mrb, struct RClass *klass,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:121,1
    - Dst: Data_Wrap_Struct
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:121,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - klass
    - da
    argTypes:
    - mrb_state*
    - struct RClass*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mruby_dict_attr_object
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - Data_Wrap_Struct
    - UNCONST
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_dict_attr_object(mrb_state *mrb, struct RClass *klass,
      fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:126,1
    - Dst: Data_Wrap_Struct
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - klass
    - vp
    argTypes:
    - mrb_state*
    - struct RClass*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: mruby_value_pair_object
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - Data_Wrap_Struct
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_value_pair_object(mrb_state *mrb, struct RClass *klass,
      fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:131,1
    - Dst: Data_Wrap_Struct
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mrb
    - klass
    - pair
    argTypes:
    - mrb_state*
    - struct RClass*
    - mruby_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: mruby_ruby_pair_object
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - Data_Wrap_Struct
    - mrb_obj_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_ruby_pair_object(mrb_state *mrb, struct RClass *klass,
      mruby_pair_t *pair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:153,1
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:165,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:166,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:171,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:171,1
    - Dst: mrb_data_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 184
    functionName: mruby_pair_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - talloc_free
    - talloc
    - mrb_data_init
    - unlang_interpret_frame_talloc_ctx
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_pair_init(mrb_state *mrb, mrb_value self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:195,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:196,1
    - Dst: mrb_ary_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:198,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:199,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:199,1
    - Dst: mrb_str_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:200,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:200,1
    - Dst: mrb_ary_push
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mruby_pair_list_keys
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - fr_pair_list_next
    - mrb_raise
    - mrb_ary_new
    - mrb_ary_push
    - fr_pair_list_head
    - strlen
    - mrb_str_new
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_pair_list_keys(mrb_state *mrb, mrb_value self)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: mrb_str_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:214,1
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:217,1
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:217,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:220,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:222,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:224,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:226,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:228,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:230,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:232,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:234,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:236,1
    - Dst: mrb_float_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:239,1
    - Dst: mrb_float_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:241,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:259,1
    - Dst: mrb_str_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:260,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:261,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:266,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:266,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 3
    argNames:
    - mrb
    - request
    - vp
    argTypes:
    - mrb_state*
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 271
    functionName: mruby_pair_value_to_ruby
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - fr_value_box_aprint
    - talloc_free
    - REDEBUG
    - mrb_obj_value
    - mrb_nil_value
    - mrb_float_value
    - mrb_str_new
    - fr_type_to_str
    - mrb_int_value
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_pair_value_to_ruby(mrb_state *mrb, request_t *request,
      fr_pair_t *vp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:284,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:285,1
    - Dst: mrb_get_argc
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:288,1
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:289,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:289,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:293,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:295,1
    - Dst: mruby_pair_value_to_ruby
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 298
    functionName: mruby_value_pair_get
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mrb_raise
    - mruby_pair_value_to_ruby
    - fr_pair_find_by_da_idx
    - mrb_nil_value
    - mrb_get_argc
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_value_pair_get(mrb_state *mrb, mrb_value self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mruby_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:306,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:309,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:310,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:314,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mrb
    - pair
    argTypes:
    - mrb_state*
    - mruby_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: mruby_pair_parent_build
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 1
    functionsReached:
    - mruby_pair_parent_build
    - fr_pair_count_by_da
    - fr_pair_append_by_da
    - mrb_raisef
    linkageType: ''
    returnType: void
    signature: void mruby_pair_parent_build(mrb_state *mrb, mruby_pair_t *pair)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mrb_type
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:329,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:331,1
    - Dst: mrb_integer
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:332,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:336,1
    - Dst: mrb_float
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:337,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:341,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:342,1
    - Dst: RSTRING_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:342,1
    - Dst: RSTRING_LEN
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:342,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:346,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:351,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:356,1
    - Dst: fr_pair_value_clear
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:362,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:363,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:364,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - mrb
    - value
    - vp
    argTypes:
    - mrb_state*
    - mrb_value*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 366
    functionName: mruby_ruby_to_pair_value
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - mrb_float
    - RSTRING_PTR
    - mrb_raise
    - mrb_integer
    - RSTRING_LEN
    - mrb_type
    - fr_value_box_cast
    - fr_pair_value_clear
    - fr_value_box_bstrndup_shallow
    - mrb_raisef
    - fr_type_to_str
    linkageType: ''
    returnType: void
    signature: void mruby_ruby_to_pair_value(mrb_state *mrb, mrb_value *value, fr_pair_t
      *vp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:382,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:383,1
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:390,1
    - Dst: mruby_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:392,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:395,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:398,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:399,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:403,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:404,1
    - Dst: mruby_ruby_to_pair_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:408,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:410,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 412
    functionName: mruby_value_pair_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mruby_pair_parent_build
    - fr_pair_count_by_da
    - mrb_raise
    - fr_pair_append_by_da
    - mruby_ruby_to_pair_value
    - fr_pair_find_by_da_idx
    - RDEBUG2
    - mrb_nil_value
    - mrb_raisef
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_value_pair_set(mrb_state *mrb, mrb_value self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:425,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:426,1
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:430,1
    - Dst: mruby_pair_parent_build
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:432,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:434,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:435,1
    - Dst: mruby_ruby_to_pair_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:438,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:440,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 442
    functionName: mruby_value_pair_append
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - mruby_pair_parent_build
    - mrb_raise
    - fr_pair_append_by_da
    - mruby_ruby_to_pair_value
    - RDEBUG2
    - mrb_nil_value
    - mrb_raisef
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_value_pair_append(mrb_state *mrb, mrb_value self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:454,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:455,1
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:457,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:459,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:462,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:463,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:465,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 468
    functionName: mruby_value_pair_del
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - DATA_PTR
    - fr_pair_delete
    - mrb_raise
    - fr_pair_find_by_da_idx
    - mrb_nil_value
    - mrb_get_args
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_value_pair_del(mrb_state *mrb, mrb_value self)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:486,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:487,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:490,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:490,1
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:492,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:494,1
    - Dst: mrb_type
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:511,1
    - Dst: mrb_integer
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:514,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:516,1
    - Dst: mrb_integer
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:517,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:522,1
    - Dst: mrb_str_to_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:523,1
    - Dst: mrb_raise
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:527,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:531,1
    - Dst: mrb_sym_name_len
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:531,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:536,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:541,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:542,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:542,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:542,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:545,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:547,1
    - Dst: mruby_inst_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:549,1
    - Dst: mruby_request_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:550,1
    - Dst: mruby_dict_attr_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:551,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:552,1
    - Dst: mruby_value_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:553,1
    - Dst: mruby_ruby_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:554,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:556,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:556,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:564,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:568,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:570,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:571,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:571,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:571,1
    - Dst: mrb_raisef
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:574,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:576,1
    - Dst: DATA_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:578,1
    - Dst: mruby_dict_attr_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:579,1
    - Dst: mrb_boxing_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:580,1
    - Dst: mruby_value_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:581,1
    - Dst: mruby_ruby_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:582,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:584,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:584,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 2
    argNames:
    - mrb
    - self
    argTypes:
    - mrb_state*
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 587
    functionName: mruby_pair_list_missing
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - mrb_boxing_int_value
    - talloc_strdup
    - strlen
    - mrb_int_value
    - mrb_obj_new
    - mruby_request_object
    - fr_type_is_group
    - mruby_inst_object
    - DATA_PTR
    - mruby_ruby_pair_object
    - fr_dict_attr_by_name
    - mrb_raise
    - mrb_integer
    - mrb_sym_name_len
    - mrb_type
    - mruby_dict_attr_object
    - mrb_raisef
    - mrb_str_to_cstr
    - mrb_get_args
    - fr_pair_find_by_da_idx
    - fr_dict_internal
    - mruby_value_pair_object
    - fr_dict_root
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_pair_list_missing(mrb_state *mrb, mrb_value self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_under
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:593,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:594,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:596,1
    - Dst: MRB_ARGS_ARG
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:596,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:597,1
    - Dst: MRB_ARGS_REQ
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:597,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:598,1
    - Dst: MRB_ARGS_OPT
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mrb
    - parent
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 601
    functionName: mruby_pair_list_class
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_REQ
    - mrb_define_class_under
    - MRB_ARGS_OPT
    - MRB_ARGS_ARG
    - MRB_SET_INSTANCE_TT
    - mrb_define_method
    linkageType: ''
    returnType: struct RClass
    signature: struct RClass *mruby_pair_list_class(mrb_state *mrb, struct RClass
      *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_define_class_under
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:607,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:608,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:610,1
    - Dst: MRB_ARGS_ARG
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:610,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:611,1
    - Dst: MRB_ARGS_OPT
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:611,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:612,1
    - Dst: MRB_ARGS_ARG
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:612,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:613,1
    - Dst: MRB_ARGS_OPT
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:613,1
    - Dst: mrb_define_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:614,1
    - Dst: MRB_ARGS_REQ
      Src: /src/freeradius-server/src/modules/rlm_mruby/mruby.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - mrb
    - parent
    argTypes:
    - mrb_state*
    - struct RClass*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 617
    functionName: mruby_pair_class
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/mruby.c
    functionUses: 0
    functionsReached:
    - MRB_ARGS_REQ
    - mrb_define_class_under
    - MRB_ARGS_OPT
    - MRB_ARGS_ARG
    - MRB_SET_INSTANCE_TT
    - mrb_define_method
    linkageType: ''
    returnType: struct RClass
    signature: struct RClass *mruby_pair_class(mrb_state *mrb, struct RClass *parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:61,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:62,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:65,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: mruby_func_def_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t mruby_func_def_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mrb_get_args
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:74,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:75,1
    - Dst: mrb_nil_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mrb
    - mrb_value
    argTypes:
    - mrb_state*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: mruby_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - mrb_get_args
    - mrb_nil_value
    - fr_log
    linkageType: ''
    returnType: mrb_value
    signature: mrb_value mruby_log(mrb_state *mrb, UNUSED mrb_value self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:88,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:88,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:90,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:91,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:92,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:93,1
    - Dst: mrb_str_new_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:98,1
    - Dst: mrb_nil_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:100,1
    - Dst: mrb_hash_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:100,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:101,1
    - Dst: mrb_hash_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:105,1
    - Dst: mrb_hash_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:106,1
    - Dst: mruby_parse_config
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:108,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:109,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:110,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:111,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:112,1
    - Dst: mrb_str_new_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:117,1
    - Dst: mrb_str_new_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:118,1
    - Dst: mrb_nil_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:120,1
    - Dst: mrb_hash_get
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:120,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:121,1
    - Dst: mrb_hash_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:125,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:127,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - mrb
    - cs
    - lvl
    - hash
    argTypes:
    - mrb_state*
    - CONF_SECTION*
    - int
    - mrb_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 132
    functionName: mruby_parse_config
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 1
    functionsReached:
    - mrb_hash_new
    - cf_item_to_pair
    - cf_pair_attr
    - cf_item_is_section
    - WARN
    - mrb_str_new_cstr
    - mrb_nil_p
    - mrb_hash_set
    - cf_pair_value
    - cf_item_next
    - cf_section_name1
    - mruby_parse_config
    - cf_item_is_pair
    - mrb_hash_get
    - DEBUG
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void mruby_parse_config(mrb_state *mrb, CONF_SECTION *cs, int lvl,
      mrb_value hash)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:142,1
    - Dst: mrb_open
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:153,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:155,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:160,1
    - Dst: mrb_define_module
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:161,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:163,1
    - Dst: mrb_define_class_method
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:168,1
    - Dst: MRB_ARGS_REQ
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:168,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:172,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:173,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:174,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:175,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:176,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:177,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:178,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:179,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:180,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:183,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:184,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:185,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:186,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:187,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:188,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:189,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:190,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:191,1
    - Dst: A
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:192,1
    - Dst: mrb_hash_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:196,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:197,1
    - Dst: mruby_parse_config
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:198,1
    - Dst: mruby_request_class
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:201,1
    - Dst: mruby_pair_list_class
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:203,1
    - Dst: mruby_pair_class
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:204,1
    - Dst: mrb_define_class_under
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:206,1
    - Dst: MRB_SET_INSTANCE_TT
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:207,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:209,1
    - Dst: fopen
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:210,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:212,1
    - Dst: mrb_load_file
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:216,1
    - Dst: fclose
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:217,1
    - Dst: mrb_undef_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:218,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:219,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:223,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:225,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:227,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:232,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:233,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:234,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:237,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:238,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:239,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:242,1
    - Dst: mrb_check_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:243,1
    - Dst: mrb_nil_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:244,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:245,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:252,1
    - Dst: mrb_check_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:253,1
    - Dst: mrb_nil_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:254,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:255,1
    - Dst: mrb_check_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:261,1
    - Dst: mrb_nil_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:262,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:263,1
    - Dst: mrb_nil_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:269,1
    - Dst: mrb_check_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:269,1
    - Dst: mrb_funcall
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:271,1
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:271,1
    - Dst: mrb_undef_p
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:272,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:273,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 104
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 278
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - mrb_define_module
    - talloc_const_free
    - mrb_check_intern_cstr
    - mrb_open
    - mrb_funcall
    - fopen
    - A
    - cf_log_err
    - ERROR
    - fr_rb_iter_next_inorder
    - mrb_define_class_under
    - talloc_get_type_abort
    - mrb_obj_value
    - mruby_pair_class
    - DEBUG
    - mrb_hash_new
    - mruby_request_class
    - mrb_undef_p
    - mrb_define_class_method
    - cf_pair_find
    - fr_rb_iter_init_inorder
    - fr_rb_inline_init
    - fclose
    - mruby_pair_list_class
    - MRB_ARGS_REQ
    - talloc_free
    - mrb_nil_p
    - cf_pair_value
    - mrb_load_file
    - mruby_parse_config
    - talloc_asprintf
    - MRB_SET_INSTANCE_TT
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: A
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:282,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:283,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:288,1
    - Dst: mrb_iv_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:289,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:289,1
    - Dst: mruby_inst_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:291,1
    - Dst: mruby_request_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:292,1
    - Dst: mruby_dict_attr_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:293,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:293,1
    - Dst: mrb_int_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:294,1
    - Dst: mruby_value_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:295,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:295,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:296,1
    - Dst: mrb_iv_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:297,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:297,1
    - Dst: mruby_value_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:299,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:299,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:300,1
    - Dst: mrb_iv_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:301,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:301,1
    - Dst: mruby_value_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:303,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:303,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:304,1
    - Dst: mrb_iv_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:305,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:305,1
    - Dst: mruby_value_pair_object
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:307,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:307,1
    - Dst: mrb_obj_new
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:308,1
    - Dst: mrb_iv_set
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:309,1
    - Dst: mrb_intern_cstr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:309,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:311,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:312,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:313,1
    - Dst: mrb_funcall
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:314,1
    - Dst: mrb_obj_value
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:314,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:315,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:316,1
    - Dst: mrb_type
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:321,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:321,1
    - Dst: mrb_int
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:321,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:324,1
    - Dst: RSTRING_PTR
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:324,1
    - Dst: mrb_obj_as_string
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 326
    functionName: mod_mruby
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - RSTRING_PTR
    - DIAG_ON
    - mrb_intern_cstr
    - DIAG_OFF
    - mrb_funcall
    - fr_pair_list_parent
    - mrb_int_value
    - mrb_obj_new
    - mruby_request_object
    - talloc_get_type_abort
    - mrb_obj_value
    - mruby_inst_object
    - mrb_int
    - mrb_type
    - RDEBUG2
    - mruby_dict_attr_object
    - RETURN_UNLANG_RCODE
    - mrb_obj_as_string
    - mrb_iv_set
    - RERROR
    - mruby_value_pair_object
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void mod_mruby(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:334,1
    - Dst: mrb_close
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - mrb_close
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:350,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:351,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: mruby_func_name_safe
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - strchr
    - talloc_array_length
    - tolower
    linkageType: ''
    returnType: void
    signature: void mruby_func_name_safe(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:360,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:366,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:370,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:370,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:382,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:382,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:383,1
    - Dst: mruby_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:384,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:386,1
    - Dst: mruby_func_name_safe
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:387,1
    - Dst: fr_rb_find_or_insert
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:389,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:390,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:398,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:399,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - UNUSED*
    - UNUSED*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 404
    functionName: mruby_func_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_mruby/rlm_mruby.c
    functionUses: 0
    functionsReached:
    - fr_rb_find_or_insert
    - talloc_free
    - call_env_parsed_add
    - talloc_strdup
    - talloc_get_type_abort
    - mruby_func_name_safe
    - call_env_parsed_set_data
    - talloc_zero
    - fr_rb_inline_init
    - MEM
    linkageType: ''
    returnType: int
    signature: "int mruby_func_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *out,
      UNUSED tmpl_rules_t const *t_rules,\n\t\t\t    UNUSED CONF_ITEM *ci, call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:83,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:84,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:87,1
    - Dst: curl_multi_remove_handle
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:89,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:91,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:91,1
    - Dst: imap_slab_release
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: imap_io_module_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_get_type_abort
    - curl_multi_remove_handle
    - RDEBUG2
    - curl_multi_strerror
    - imap_slab_release
    linkageType: ''
    returnType: void
    signature: void imap_io_module_signal(module_ctx_t const *mctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:106,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:107,1
    - Dst: curl_easy_getinfo
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:114,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:116,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:118,1
    - Dst: imap_slab_release
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:123,1
    - Dst: fr_curl_response_certinfo
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:133,1
    - Dst: imap_slab_release
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 137
    functionName: mod_authenticate_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 1
    functionsReached:
    - fr_curl_response_certinfo
    - talloc_get_type_abort
    - curl_easy_getinfo
    - RDEBUG2
    - talloc_get_type_abort_const
    - imap_slab_release
    linkageType: ''
    returnType: void
    signature: "void mod_authenticate_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx,\n\t\t\t\t\t\t\t\trequest_t *request)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:152,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:158,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:159,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:162,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:167,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:172,1
    - Dst: imap_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:176,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:181,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:182,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:184,1
    - Dst: imap_slab_release
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:186,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - fr_curl_io_request_enqueue
    - RDEBUG2
    - imap_slab_reserve
    - unlang_module_yield
    - FR_CURL_REQUEST_SET_OPTION
    - imap_slab_release
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randle
    argTypes:
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(fr_curl_io_request_t *randle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:208,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:210,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:211,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:213,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:217,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:219,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:220,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:222,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:223,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:224,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:226,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:228,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:228,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:229,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:229,1
    - Dst: FR_CURL_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:231,1
    - Dst: fr_curl_easy_tls_init
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 236
    functionName: imap_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_curl_easy_tls_init
    - talloc_set_destructor
    - fr_time_delta_to_msec
    - CURL_AT_LEAST_VERSION
    - fr_strerror_printf
    - curl_easy_init
    - talloc_get_type_abort
    - FR_CURL_SET_OPTION
    linkageType: ''
    returnType: int
    signature: int imap_conn_alloc(fr_curl_io_request_t *randle, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:243,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:244,1
    - Dst: imap_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:247,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:250,1
    - Dst: fr_curl_io_init
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 0
    functionsReached:
    - ERROR
    - imap_slab_list_alloc
    - talloc_get_type_abort
    - fr_curl_io_init
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:266,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:268,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_imap/rlm_imap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:84,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:86,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:87,1
    - Dst: OBJ_obj2nid
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:88,1
    - Dst: OCSP_parse_url
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - cert
    - host_out
    - port_out
    - path_out
    - is_https
    argTypes:
    - X509*
    - char**
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 96
    functionName: ocsp_cert_url_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached:
    - sk_ACCESS_DESCRIPTION_value
    - X509_get_ext_d2i
    - OBJ_obj2nid
    - OCSP_parse_url
    - sk_ACCESS_DESCRIPTION_num
    linkageType: ''
    returnType: int
    signature: int ocsp_cert_url_parse(X509 *cert, char **host_out, char **port_out,
      char **path_out, int *is_https)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:115,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:118,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:120,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:121,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - request
    - ssl
    - vp
    argTypes:
    - request_t*
    - SSL*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 127
    functionName: ocsp_staple_from_pair
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - OPENSSL_free
    - RDEBUG2
    - SSL_set_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: int ocsp_staple_from_pair(request_t *request, SSL *ssl, fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:149,1
    - Dst: i2d_OCSP_RESPONSE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:153,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:155,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:159,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:159,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:160,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:160,1
    - Dst: i2d_OCSP_RESPONSE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:161,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:163,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:164,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:168,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:169,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:170,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - out
    - request
    - resp
    argTypes:
    - fr_pair_t**
    - request_t*
    - OCSP_RESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 176
    functionName: ocsp_staple_to_pair
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - i2d_OCSP_RESPONSE
    - fr_pair_value_mem_alloc
    - REDEBUG
    - RINDENT
    - RDEBUG2
    - pair_update_request
    - REXDENT
    - MEM
    linkageType: ''
    returnType: int
    signature: int ocsp_staple_to_pair(fr_pair_t **out, request_t *request, OCSP_RESPONSE
      *resp)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_cache_process
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:369,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:372,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:386,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:394,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:397,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:401,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:408,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:410,1
    - Dst: ocsp_staple_from_pair
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:413,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:414,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:422,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:431,1
    - Dst: BIO_new
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:438,1
    - Dst: BIO_s_mem
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:438,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:440,1
    - Dst: OCSP_cert_to_id
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:448,1
    - Dst: OCSP_REQUEST_new
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:449,1
    - Dst: OCSP_request_add0_id
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:450,1
    - Dst: OCSP_request_add1_nonce
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:451,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:462,1
    - Dst: OCSP_parse_url
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:464,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:466,1
    - Dst: ocsp_cert_url_parse
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:472,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:475,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:480,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:483,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:487,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:492,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:495,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:495,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:496,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:499,1
    - Dst: BIO_new_connect
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:502,1
    - Dst: BIO_set_conn_port
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:503,1
    - Dst: BIO_set_nbio
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:505,1
    - Dst: BIO_do_connect
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:507,1
    - Dst: BIO_should_retry
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:508,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:509,1
    - Dst: OCSP_sendreq_new
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:514,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:516,1
    - Dst: OCSP_REQ_CTX_add1_header
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:521,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:522,1
    - Dst: OCSP_REQ_CTX_set1_req
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:527,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:528,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:533,1
    - Dst: OCSP_sendreq_nbio
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:535,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:536,1
    - Dst: BIO_should_retry
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:539,1
    - Dst: BIO_should_retry
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:541,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:542,1
    - Dst: OCSP_REQ_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:547,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:550,1
    - Dst: FR_OPENSSL_DRAIN_ERROR_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:551,1
    - Dst: OCSP_response_status
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:557,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:559,1
    - Dst: OCSP_response_status_str
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:559,1
    - Dst: OCSP_response_get1_basic
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:562,1
    - Dst: OCSP_check_nonce
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:563,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:564,1
    - Dst: OCSP_basic_verify
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:569,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:570,1
    - Dst: OCSP_resp_find_status
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:576,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:577,1
    - Dst: OCSP_check_validity
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:590,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:595,1
    - Dst: FR_OPENSSL_DRAIN_ERROR_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:598,1
    - Dst: FR_OPENSSL_DRAIN_ERROR_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:605,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:607,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:608,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:609,1
    - Dst: FR_OPENSSL_DRAIN_LOG_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:610,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:611,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:614,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:615,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:616,1
    - Dst: FR_OPENSSL_DRAIN_LOG_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:617,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:618,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:634,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:636,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:637,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:641,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:642,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:644,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:644,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:645,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:646,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:647,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:648,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:650,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:653,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:658,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:664,1
    - Dst: OCSP_cert_status_str
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:664,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:665,1
    - Dst: OCSP_crl_reason_str
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:665,1
    - Dst: FR_OPENSSL_DRAIN_LOG_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:670,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:672,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:673,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:674,1
    - Dst: FR_OPENSSL_DRAIN_LOG_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:675,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:676,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:684,1
    - Dst: ocsp_staple_to_pair
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:691,1
    - Dst: ocsp_staple_from_pair
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:697,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:701,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:701,1
    - Dst: FR_OPENSSL_DRAIN_ERROR_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:709,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:710,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:710,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:713,1
    - Dst: ERR_get_error
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:721,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:723,1
    - Dst: FR_OPENSSL_DRAIN_ERROR_QUEUE
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:729,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:730,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:730,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:732,1
    - Dst: fr_tls_cache_process
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:739,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:746,1
    - Dst: OCSP_REQUEST_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:751,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:752,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:753,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:754,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:755,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:756,1
    - Dst: BIO_free_all
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:757,1
    - Dst: BIO_free
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:758,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 294
    argCount: 7
    argNames:
    - request
    - ssl
    - store
    - issuer_cert
    - client_cert
    - conf
    - staple_response
    argTypes:
    - request_t*
    - SSL*
    - X509_STORE*
    - X509*
    - X509*
    - fr_tls_ocsp_conf_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 761
    functionName: fr_tls_ocsp_check
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - OCSP_request_add0_id
    - OCSP_REQUEST_new
    - OCSP_resp_find_status
    - memcpy
    - OCSP_sendreq_new
    - FR_OPENSSL_DRAIN_ERROR_QUEUE
    - REDEBUG
    - OCSP_REQ_CTX_free
    - strlen
    - RWDEBUG
    - OCSP_response_status
    - MEM
    - BIO_s_mem
    - OCSP_REQUEST_free
    - BIO_new
    - BIO_new_connect
    - OCSP_sendreq_nbio
    - fr_time
    - RATE_LIMIT_GLOBAL
    - RPEDEBUG
    - BIO_free_all
    - ERR_get_error
    - BIO_should_retry
    - fr_tls_utils_asn1time_to_epoch
    - FR_OPENSSL_DRAIN_LOG_QUEUE
    - OCSP_parse_url
    - OCSP_BASICRESP_free
    - OCSP_RESPONSE_free
    - OCSP_response_status_str
    - ASN1_GENERALIZEDTIME_print
    - OCSP_response_get1_basic
    - OCSP_REQ_CTX_add1_header
    - OPENSSL_free
    - RDEBUG2
    - fr_assert
    - BIO_do_connect
    - pair_update_request
    - fr_pair_find_by_da
    - BIO_set_conn_port
    - OCSP_crl_reason_str
    - OCSP_cert_to_id
    - ocsp_cert_url_parse
    - ocsp_staple_from_pair
    - OCSP_request_add1_nonce
    - BIO_set_nbio
    - fr_tls_cache_process
    - BIO_free
    - snprintf
    - RINDENT
    - OCSP_cert_status_str
    - OCSP_check_validity
    - OCSP_check_nonce
    - OCSP_REQ_CTX_set1_req
    - REXDENT
    - ocsp_staple_to_pair
    - OCSP_basic_verify
    linkageType: ''
    returnType: int
    signature: "int fr_tls_ocsp_check(request_t *request, SSL *ssl,\n\t\t   X509_STORE
      *store, X509 *issuer_cert, X509 *client_cert,\n\t\t   fr_tls_ocsp_conf_t *conf,
      bool staple_response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _verb
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 773
    functionName: CACHE_SECTION
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHE_SECTION(_out, _verb, _name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:786,1
    - Dst: CACHE_SECTION
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:788,1
    - Dst: CACHE_SECTION
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:789,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:795,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - actions
    - server_cs
    argTypes:
    - fr_tls_cache_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 800
    functionName: fr_tls_ocsp_state_cache_compile
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached:
    - cf_section_name2
    - fr_cond_assert
    - cf_log_warn
    - CACHE_SECTION
    linkageType: ''
    returnType: int
    signature: int fr_tls_ocsp_state_cache_compile(fr_tls_cache_t *actions, CONF_SECTION
      *server_cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:814,1
    - Dst: CACHE_SECTION
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:816,1
    - Dst: CACHE_SECTION
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:817,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:823,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - actions
    - server_cs
    argTypes:
    - fr_tls_cache_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 828
    functionName: fr_tls_ocsp_staple_cache_compile
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ocsp/ocsp.c
    functionUses: 0
    functionsReached:
    - cf_section_name2
    - fr_cond_assert
    - cf_log_warn
    - CACHE_SECTION
    linkageType: ''
    returnType: int
    signature: int fr_tls_ocsp_staple_cache_compile(fr_tls_cache_t *actions, CONF_SECTION
      *server_cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:221,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:222,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:223,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:229,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - h
    - req
    argTypes:
    - tcp_handle_t*
    - tcp_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 239
    functionName: tcp_request_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_reconnect
    - fr_assert
    - FR_TIMER_DISARM
    linkageType: ''
    returnType: void
    signature: void tcp_request_reset(tcp_handle_t *h, tcp_request_t *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:247,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:249,1
    - Dst: shutdown
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:251,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:252,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:253,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:256,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:257,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:258,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - h
    argTypes:
    - tcp_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: _tcp_handle_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - shutdown
    - fr_assert
    - fr_event_fd_delete
    - close
    - DEBUG
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int _tcp_handle_free(tcp_handle_t *h)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:279,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:281,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:281,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:288,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:291,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:296,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:301,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:303,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:304,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:311,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:312,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:313,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:315,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:322,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:323,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:323,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:335,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:336,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:337,1
    - Dst: getsockopt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:341,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:342,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:343,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:362,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:380,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:382,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:388,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:388,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:396,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:396,1
    - Dst: connection_signal_on_fd
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 3
    argNames:
    - h_out
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 415
    functionName: conn_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - fr_time
    - talloc_free
    - WARN
    - fr_syserror
    - getsockopt
    - talloc_array
    - talloc_get_type_abort
    - fr_rand
    - fr_socket_client_tcp
    - talloc_zero
    - talloc_zero_array
    - connection_signal_on_fd
    - setsockopt
    - fr_asprintf
    - MEM
    - PERROR
    - fr_box_ipaddr
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t conn_init(void **h_out, connection_t *conn, void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:429,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:431,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - handle
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 434
    functionName: conn_close
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_assert
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void conn_close(UNUSED fr_event_list_t *el, void *handle, UNUSED void
      *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:442,1
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:444,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - tconn
    - el
    - conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - connection_conf_t*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 458
    functionName: thread_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - connection_alloc
    - PERROR
    - talloc_get_type_abort
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *thread_conn_alloc(trunk_connection_t *tconn, fr_event_list_t
      *el,\n\t\t\t\t\t  connection_conf_t const *conf,\n\t\t\t\t\t  char const *log_prefix,
      void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:472,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:474,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:476,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:476,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: conn_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - ERROR
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void conn_error(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int
      flags, int fd_errno, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:486,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:509,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:514,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - trunk_connection_t*
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 521
    functionName: thread_conn_notify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - PERROR
    - trunk_connection_signal_reconnect
    - fr_event_fd_insert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void thread_conn_notify(trunk_connection_t *tconn, connection_t *conn,\n\t\t\t
      \      fr_event_list_t *el,\n\t\t\t       trunk_connection_event_t notify_on,
      UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_LARGER
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:539,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 546
    functionName: request_prioritise
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_LARGER
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t request_prioritise(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:575,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:576,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:577,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:577,1
    - Dst: fr_tacacs_decode
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:585,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:587,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:588,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:592,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:594,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 8
    argNames:
    - ctx
    - reply
    - response_code
    - h
    - request
    - req
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - tcp_handle_t*
    - request_t*
    - tcp_request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 604
    functionName: decode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 16
    functionsReached:
    - fr_pair_list_free
    - RPEDEBUG
    - RDEBUG
    - fr_tacacs_decode
    - REDEBUG
    - fr_time_gt
    - fr_nbo_to_uint32
    - log_request_pair_list
    - memcmp
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode(TALLOC_CTX *ctx, fr_pair_list_t *reply, uint8_t *response_code,\n\t\t
      \     tcp_handle_t *h, request_t *request, tcp_request_t *req,\n\t\t      uint8_t
      *data, size_t data_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:612,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:613,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:614,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:624,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:627,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:629,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:629,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:632,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:633,1
    - Dst: fr_tacacs_encode
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:639,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:639,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - h
    - request
    - req
    argTypes:
    - tcp_handle_t*
    - request_t*
    - tcp_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 656
    functionName: encode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 16
    functionsReached:
    - fr_pair_afrom_da
    - fr_tacacs_encode
    - fr_pair_find_by_da_nested
    - fr_pair_append
    - fr_pair_list_sort
    - RPERROR
    - fr_assert
    - FR_DBUFF_TMP
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int encode(tcp_handle_t *h, request_t *request, tcp_request_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:664,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:665,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:667,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: revive_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_reconnect
    - INFO
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void revive_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:676,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:677,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:679,1
    - Dst: trunk_connection_signal_inactive
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:685,1
    - Dst: trunk_connection_requests_requeue
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:686,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:691,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:692,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:693,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 696
    functionName: zombie_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - trunk_connection_signal_reconnect
    - trunk_connection_requests_requeue
    - fr_timer_at
    - trunk_connection_signal_inactive
    - talloc_get_type_abort
    - fr_time_add
    linkageType: ''
    returnType: void
    signature: void zombie_timeout(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:724,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:732,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:732,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:732,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:737,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:742,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:742,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:743,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:743,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:749,1
    - Dst: trunk_connection_signal_inactive
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:750,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:752,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:752,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:754,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:755,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - tl
    - tconn
    - now
    - last_sent
    argTypes:
    - fr_timer_list_t*
    - trunk_connection_t*
    - fr_time_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 759
    functionName: check_for_zombie
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 1
    functionsReached:
    - ERROR
    - trunk_connection_signal_reconnect
    - fr_time_wrap
    - fr_time
    - WARN
    - fr_time_gt
    - fr_time_eq
    - talloc_get_type_abort
    - fr_time_gteq
    - fr_time_add
    - trunk_connection_signal_inactive
    - fr_timer_at
    - fr_time_lt
    linkageType: ''
    returnType: bool
    signature: bool check_for_zombie(fr_timer_list_t *tl, trunk_connection_t *tconn,
      fr_time_t now, fr_time_t last_sent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:768,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:769,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:770,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:774,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:775,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:776,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:778,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:788,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:792,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:793,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:793,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:793,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:797,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:803,1
    - Dst: check_for_zombie
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 806
    functionName: request_retry
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_complete
    - check_for_zombie
    - REDEBUG
    - fr_retry_next
    - talloc_get_type_abort
    - trunk_request_requeue
    - fr_box_time_delta
    - fr_time_sub
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void request_retry(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:812,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:827,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:827,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:842,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:843,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:845,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:854,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:857,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:877,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:877,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:878,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:878,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:879,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:879,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:879,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:891,1
    - Dst: encode
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:894,1
    - Dst: tcp_request_reset
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:899,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:900,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:903,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:905,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:913,1
    - Dst: trunk_connection_signal_inactive
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:921,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:932,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:941,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:946,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:959,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:960,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:969,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:970,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:971,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:991,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:994,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1002,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1004,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1005,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1006,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1031,1
    - Dst: memmove
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1033,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1035,1
    - Dst: trunk_request_signal_partial
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1039,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1052,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1053,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 99
    argCount: 4
    argNames:
    - el
    - tconn
    - conn
    - uctx
    argTypes:
    - fr_event_list_t*
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 1061
    functionName: request_mux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - WARN
    - trunk_request_signal_fail
    - RHEXDUMP3
    - fr_time_lteq
    - unlikely
    - write
    - ERROR
    - tcp_request_reset
    - fr_time
    - memmove
    - talloc_get_type_abort
    - encode
    - trunk_request_signal_partial
    - fr_time_delta_ispos
    - log_request_pair_list
    - trunk_request_signal_sent
    - fr_syserror
    - fr_retry_init
    - trunk_connection_signal_inactive
    - fr_assert
    - RERROR
    - RDEBUG
    - trunk_connection_signal_reconnect
    - fr_time_wrap
    - fr_time_gt
    - fr_timer_at
    - trunk_request_requeue
    - trunk_connection_pop_request
    linkageType: ''
    returnType: void
    signature: "void request_mux(fr_event_list_t *el,\n\t\t\ttrunk_connection_t *tconn,
      connection_t *conn, UNUSED void *uctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1065,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1068,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1090,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1094,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1110,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1114,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1115,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1116,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1139,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1145,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1147,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1159,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1167,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1174,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1176,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1177,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1178,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1180,1
    - Dst: decode
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1185,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1188,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1196,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1201,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1202,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1204
    functionName: request_demux
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - trunk_request_signal_complete
    - trunk_connection_signal_reconnect
    - memcpy
    - WARN
    - read
    - fr_time
    - fr_syserror
    - fr_pair_list_init
    - talloc_get_type_abort
    - fr_nbo_to_uint32
    - fr_assert
    - decode
    - fr_pair_list_append
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void request_demux(UNUSED fr_event_list_t *el, trunk_connection_t *tconn,
      connection_t *conn, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1213,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1220,1
    - Dst: tcp_request_reset
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - conn
    - preq_to_reset
    - reason
    - uctx
    argTypes:
    - connection_t*
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1230
    functionName: request_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - tcp_request_reset
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void request_cancel(connection_t *conn, void *preq_to_reset,\n\t\t\t
      \  trunk_cancel_reason_t reason, UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1237,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1238,1
    - Dst: tcp_request_reset
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1240,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - preq_to_reset
    - uctx
    argTypes:
    - connection_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1249
    functionName: request_conn_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - tcp_request_reset
    - talloc_get_type_abort
    - fr_time
    linkageType: ''
    returnType: void
    signature: void request_conn_release(connection_t *conn, void *preq_to_reset,
      UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1257,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1262,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1262,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1264,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - request_t*
    - NDEBUG_UNUSED*
    - void*
    - NDEBUG_UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1270
    functionName: request_fail
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - unlang_interpret_mark_runnable
    - talloc_get_type_abort
    - fr_timer_armed
    linkageType: ''
    returnType: void
    signature: "void request_fail(request_t *request, NDEBUG_UNUSED void *preq, void
      *rctx,\n\t\t\t NDEBUG_UNUSED trunk_request_state_t state, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1277,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1279,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1282,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1282,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - request_t*
    - NDEBUG_UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1287
    functionName: request_complete
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - unlang_interpret_mark_runnable
    - talloc_get_type_abort
    - fr_timer_armed
    linkageType: ''
    returnType: void
    signature: void request_complete(request_t *request, NDEBUG_UNUSED void *preq,
      void *rctx, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1294,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1296,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1296,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - request
    - preq_to_free
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1299
    functionName: request_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    - fr_timer_armed
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void request_free(UNUSED request_t *request, void *preq_to_free, UNUSED
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1306,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1309,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1312
    functionName: mod_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, UNUSED request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1317,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1330,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1340,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1342,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - mctx
    - request
    - action
    argTypes:
    - module_ctx_t*
    - UNUSED*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1364
    functionName: mod_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_cancel
    - talloc_get_type_abort
    - trunk_request_requeue
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void mod_signal(module_ctx_t const *mctx, UNUSED request_t *request,
      fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1378,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1379,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - tcp_result_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1384
    functionName: _tcp_result_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_assert_msg
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int _tcp_result_free(tcp_result_t *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1395,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1395,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1397,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1400,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1400,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1402,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1408,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1408,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1415,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1417,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1418,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1420,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - p_result
    - rctx_out
    - instance
    - thread
    - request
    argTypes:
    - unlang_result_t*
    - void**
    - UNUSED*
    - void*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1387
    functionDepth: 1
    functionLinenumber: 1387
    functionLinenumberEnd: 1437
    functionName: mod_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 2
    functionsReached:
    - trunk_request_free
    - RDEBUG
    - talloc_set_destructor
    - talloc_free
    - trunk_request_alloc
    - trunk_request_enqueue
    - talloc_get_type_abort
    - fr_assert
    - talloc_zero
    - FR_TACACS_PACKET_CODE_VALID
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_enqueue(unlang_result_t *p_result, void **rctx_out,
      UNUSED void *instance, void *thread, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1444,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1445,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1467
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1471,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1472,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1477,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1492,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1501,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1513,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1519,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1526,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1527,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1531,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1532,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1536,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1537,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1545,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1549,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1553,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1553,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1555,1
    - Dst: fr_pair_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1555,1
    - Dst: module_trigger_args_build
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1556,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1557,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1557,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c:1557,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1566
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_value_box_aprint
    - module_trigger_args_build
    - cf_section_find
    - cf_parent
    - cf_item_to_section
    - talloc_get_type_abort
    - fr_pair_list_alloc
    - talloc_const_free
    - FR_INTEGER_BOUND_CHECK
    - talloc_strlen
    - memset
    - MEM
    - cf_log_err
    - fr_box_ipaddr
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:101,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:101,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:106,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:106,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:112,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:112,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:112,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:118,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:120,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_parent
    - memcpy
    - cf_pair_value
    - cf_log_err
    - fr_assert
    - strcmp
    - fr_dict_enum_by_name
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:133,1
    - Dst: rlm_tacacs_io_t*::signal
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:144,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:144,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - mctx
    - request
    - action
    argTypes:
    - module_ctx_t*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: mod_tacacs_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c
    functionUses: 0
    functionsReached:
    - MODULE_CTX
    - module_thread
    - talloc_get_type_abort_const
    - rlm_tacacs_io_t*::signal
    linkageType: ''
    returnType: void
    signature: void mod_tacacs_signal(module_ctx_t const *mctx, request_t *request,
      fr_signal_t action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:154,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:159,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:160,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:165,1
    - Dst: rlm_tacacs_t*::io::enqueue
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:177,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:178,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:180,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 185
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - module_thread
    - fr_assert
    - unlang_module_yield
    - talloc_get_type_abort_const
    - FR_TACACS_PACKET_CODE_VALID
    - rlm_tacacs_t*::io::enqueue
    linkageType: ''
    returnType: void
    signature: void mod_process(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:190,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:198,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:199,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:200,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:202,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:202,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:203,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:203,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:205,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:205,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:206,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:206,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:208,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:208,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:209,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:209,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:211,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:212,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:221,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 228
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_array_length
    - FR_TIME_DELTA_BOUND_CHECK
    - FR_TACACS_PACKET_CODE_VALID
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tacacs_global_init
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:232,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_tacacs_global_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tacacs_global_free
      Src: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_tacacs/rlm_tacacs.c
    functionUses: 0
    functionsReached:
    - fr_tacacs_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:112,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:112,1
    - Dst: COPY_STRING
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:117,1
    - Dst: COPY_STRING
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:122,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:126,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:131,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:134,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:137,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:137,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - num_msg
    - msg
    - resp
    - appdata_ptr
    argTypes:
    - int
    - struct pam_message**
    - struct pam_response**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 149
    functionName: pam_conv
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_free
    - RDEBUG2
    - strlen
    - talloc_zero_array
    - COPY_STRING
    - memset
    - MEM
    linkageType: ''
    returnType: int
    signature: int pam_conv(int num_msg, struct pam_message const **msg, struct pam_response
      **resp, void *appdata_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: COPY_STRING
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_STRING(s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:182,1
    - Dst: pam_start
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:184,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:186,1
    - Dst: pam_strerror
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:186,1
    - Dst: pam_authenticate
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:190,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:192,1
    - Dst: pam_strerror
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:192,1
    - Dst: pam_end
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:193,1
    - Dst: pam_acct_mgmt
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:202,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:204,1
    - Dst: pam_strerror
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:204,1
    - Dst: pam_end
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:205,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:209,1
    - Dst: pam_end
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - request
    - username
    - passwd
    - pamauth
    argTypes:
    - request_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 212
    functionName: do_pam
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c
    functionUses: 0
    functionsReached:
    - RERROR
    - pam_authenticate
    - pam_strerror
    - pam_end
    - RDEBUG2
    - pam_start
    - pam_acct_mgmt
    linkageType: ''
    returnType: int
    signature: int do_pam(request_t *request, char const *username, char const *passwd,
      char const *pamauth)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:216,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:223,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:224,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:231,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:236,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:244,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:252,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:254,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:261,1
    - Dst: do_pam
      Src: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 268
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_pam/rlm_pam.c
    functionUses: 0
    functionsReached:
    - do_pam
    - RDEBUG
    - REDEBUG
    - RDEBUG2
    - talloc_get_type_abort_const
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:50,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:52,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:57,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:58,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:62,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:63,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:65,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:69,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:69,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:71,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:72,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:76,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:81,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:82,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:84,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:84,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:85,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:85,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:86,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:86,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:87,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:87,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:88,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:92,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 100
    functionName: _map_proc_client_get_vp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_client/rlm_client.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_tail_da
    - fr_strerror
    - fr_pair_list_free
    - RWDEBUG
    - fr_box_strvalue
    - MEM
    - fr_pair_append
    - tmpl_aexpand
    - tmpl_is_attr
    - fr_pair_value_from_str
    - fr_pair_list_init
    - fr_pair_afrom_da
    - fr_dict_attr_by_name
    - fr_assert
    - talloc_strlen
    - fr_pair_list_append
    - talloc_free
    - cf_pair_value
    - cf_pair_find_next
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int _map_proc_client_get_vp(TALLOC_CTX *ctx, fr_pair_list_t *out,
      request_t *request,\n\t\t\t\t   map_t const *map, void *uctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:123,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:126,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:132,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:136,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:141,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:142,1
    - Dst: client_find
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:147,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:149,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:158,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:159,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:162,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:165,1
    - Dst: client_from_request
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:169,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:171,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:177,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:178,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:181,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:182,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:184,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:188,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:190,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:199,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:201,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:207,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:209,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:212,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - client_override
    - maps
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 213
    functionName: map_proc_client
    functionSourceFile: /src/freeradius-server/src/modules/rlm_client/rlm_client.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - client_find
    - REDEBUG
    - cf_lineno
    - cf_filename
    - fr_inet_pton
    - tmpl_aexpand
    - fr_value_box_list_empty
    - map_list_next
    - map_to_request
    - fr_value_box_list_concat_in_place
    - RDEBUG2
    - RDEBUG3
    - client_from_request
    - cf_pair_find
    - RETURN_UNLANG_RCODE
    - RDEBUG
    - talloc_free
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t map_proc_client(unlang_result_t *p_result, UNUSED
      map_ctx_t const *mpctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *client_override, map_list_t const *maps)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:238,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:239,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:243,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:244,1
    - Dst: client_find
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:248,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:250,1
    - Dst: client_from_request
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:254,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:256,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:261,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:262,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:263,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:266,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:272,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:272,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:274,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:275,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 281
    functionName: xlat_client
    functionSourceFile: /src/freeradius-server/src/modules/rlm_client/rlm_client.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RDEBUG
    - fr_value_box_strdup
    - talloc_free
    - fr_dcursor_append
    - client_find
    - REDEBUG
    - cf_pair_value
    - fr_inet_pton
    - client_from_request
    - strcmp
    - cf_pair_find
    - MEM
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_client(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:299,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:301,1
    - Dst: client_from_request
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:305,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:307,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:311,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:313,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:317,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:319,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:323,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:325,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:329,1
    - Dst: fr_inet_ntoh
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:330,1
    - Dst: client_read
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:337,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 347
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_client/rlm_client.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_empty
    - fr_inet_ntoh
    - client_read
    - memcpy
    - REDEBUG
    - cf_pair_value
    - strlen
    - client_from_request
    - cf_pair_find
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, UNUSED module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:353,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:353,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:354,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:356,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:356,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:357,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_client/rlm_client.c
    functionUses: 0
    functionsReached:
    - unlikely
    - map_proc_register
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:366,1
    - Dst: map_proc_unregister
      Src: /src/freeradius-server/src/modules/rlm_client/rlm_client.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_client/rlm_client.c
    functionUses: 0
    functionsReached:
    - map_proc_unregister
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:84,1
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:85,1
    - Dst: L
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:86,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:88,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:89,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:89,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: rest_proxy_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - L
    - cf_pair_value
    - fr_table_value_by_str
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: "int rest_proxy_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent,\n\t\t\t    CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dflt_username
    - ','
    - _dflt_password
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: REST_CALL_ENV_REQUEST_COMMON
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REST_CALL_ENV_REQUEST_COMMON(_dflt_username, _dflt_password)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dflt_username
    - ','
    - _dflt_password
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 214
    functionName: REST_CALL_ENV_REQUEST_COMMON
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REST_CALL_ENV_REQUEST_COMMON(_dflt_username, _dflt_password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: rest_section_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t rest_section_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:289,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:291,1
    - Dst: rest_get_handle_code
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:292,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:294,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:295,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:296,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:300,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:302,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:302,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - request
    - handle
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 307
    functionName: rlm_rest_status_update
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - RINDENT
    - rest_get_handle_code
    - RDEBUG2
    - pair_update_request
    - REXDENT
    - MEM
    linkageType: ''
    returnType: int
    signature: int rlm_rest_status_update(request_t *request, void *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: _rest_uri_part_escape_uctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _rest_uri_part_escape_uctx_free(void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:324,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:327,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:327,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:328,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: rest_uri_part_escape_uctx_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_atexit_thread_local
    - talloc_zero
    - memset
    - MEM
    linkageType: ''
    returnType: void
    signature: void *rest_uri_part_escape_uctx_alloc(UNUSED request_t *request, void
      const *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_escape
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:348,1
    - Dst: fr_curl_tmp_handle
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:348,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:354,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:355,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:359,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:360,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:360,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 365
    functionName: rest_uri_part_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - curl_easy_escape
    - curl_free
    - talloc_strdup
    - strlen
    - fr_curl_tmp_handle
    - talloc_strlen
    - fr_value_box_strdup_shallow_replace
    linkageType: ''
    returnType: int
    signature: int rest_uri_part_escape(fr_value_box_t *vb, UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:371,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:372,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:375,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:376,1
    - Dst: rest_request_config
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:382,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - mctx
    - section
    - randle
    - request
    argTypes:
    - module_ctx_t*
    - rlm_rest_section_t*
    - fr_curl_io_request_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 395
    functionName: rlm_rest_perform
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - rest_request_config
    - talloc_get_type_abort
    - fr_curl_io_request_enqueue
    - fr_table_str_by_value
    - RDEBUG2
    linkageType: ''
    returnType: int
    signature: "int rlm_rest_perform(module_ctx_t const *mctx,\n\t\t\t    rlm_rest_section_t
      const *section, fr_curl_io_request_t *randle,\n\t\t\t    request_t *request)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:401,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:407,1
    - Dst: fr_curl_response_certinfo
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:410,1
    - Dst: rlm_rest_status_update
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:412,1
    - Dst: rest_get_handle_code
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:417,1
    - Dst: rest_response_error
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:427,1
    - Dst: rest_get_handle_data
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:433,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:435,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:435,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:436,1
    - Dst: rest_get_handle_data
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:465,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:469,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:469,1
    - Dst: rest_response_body_type_get
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:470,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:471,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:473,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:475,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:481,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 484
    functionName: rest_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrndup
    - talloc_free
    - fr_curl_response_certinfo
    - talloc_get_type_abort
    - rest_get_handle_code
    - rest_get_handle_data
    - rlm_rest_status_update
    - fr_value_box_memdup
    - fr_value_box_bstrndup
    - rest_response_body_type_get
    - rest_slab_release
    - pair_update_request
    - fr_dcursor_insert
    - rest_response_error
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t rest_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:507,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:508,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:523,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:525,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:525,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:531,1
    - Dst: fr_table_value_by_substr
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:536,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:544,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:544,1
    - Dst: fr_uri_escape_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:550,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:551,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:553,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:560,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:564,1
    - Dst: rest_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:572,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:578,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:580,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:584,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:585,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:585,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:587,1
    - Dst: rest_request_config
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:599,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:599,1
    - Dst: fr_curl_io_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:611,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:614,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 615
    functionName: rest_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_bstrndup
    - REDEBUG
    - fr_uri_escape_list
    - MEM
    - rest_request_config_add_header
    - unlang_xlat_yield
    - unlikely
    - RPEDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_curl_io_request_enqueue
    - rest_slab_release
    - rest_slab_reserve
    - fr_value_box_list_foreach
    - fr_value_box_list_concat_in_place
    - RDEBUG2
    - fr_table_value_by_substr
    - talloc_free
    - XLAT_ARGS
    - rest_request_config
    - MODULE_CTX
    - talloc
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t rest_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t       xlat_ctx_t const *xctx, request_t *request,\n\t\t\t       fr_value_box_list_t
      *in)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:619,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:620,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:622,1
    - Dst: fr_curl_response_certinfo
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:628,1
    - Dst: rlm_rest_status_update
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:630,1
    - Dst: rest_get_handle_code
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:635,1
    - Dst: rest_response_decode
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:650,1
    - Dst: rest_response_decode
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:668,1
    - Dst: rest_response_error
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:684,1
    - Dst: rest_response_debug
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:688,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:693,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:695,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 696
    functionName: mod_common_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - fr_curl_response_certinfo
    - rest_response_debug
    - talloc_get_type_abort
    - rest_get_handle_code
    - rlm_rest_status_update
    - rest_slab_release
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    - rest_response_error
    - rest_response_decode
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_common_result(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:706,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:707,1
    - Dst: rest_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:713,1
    - Dst: rlm_rest_perform
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:716,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:718,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 724
    functionName: mod_common
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_module_yield
    - rest_slab_release
    - rest_slab_reserve
    - rlm_rest_perform
    linkageType: ''
    returnType: void
    signature: void mod_common(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:729,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:730,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:732,1
    - Dst: fr_curl_response_certinfo
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:738,1
    - Dst: rlm_rest_status_update
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:740,1
    - Dst: rest_get_handle_code
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:745,1
    - Dst: rest_response_decode
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:760,1
    - Dst: rest_response_decode
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:778,1
    - Dst: rest_response_error
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:794,1
    - Dst: rest_response_debug
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:798,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:803,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:805,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 806
    functionName: mod_authenticate_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - fr_curl_response_certinfo
    - rest_response_debug
    - talloc_get_type_abort
    - rest_get_handle_code
    - rlm_rest_status_update
    - rest_slab_release
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    - rest_response_error
    - rest_response_decode
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_authenticate_result(unlang_result_t *p_result,\n\t\t\t\t\t
      \      module_ctx_t const *mctx, request_t *request)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:813,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:814,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:824,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:829,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:837,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:845,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:847,1
    - Dst: rest_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:850,1
    - Dst: rlm_rest_perform
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:853,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:855,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 861
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - rest_slab_release
    - unlang_module_yield
    - rest_slab_reserve
    - rlm_rest_perform
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:865,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:866,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:868,1
    - Dst: fr_curl_response_certinfo
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:874,1
    - Dst: rlm_rest_status_update
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:876,1
    - Dst: rest_get_handle_code
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:881,1
    - Dst: rest_response_decode
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:887,1
    - Dst: rest_response_error
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:898,1
    - Dst: rest_response_debug
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:902,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:907,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:909,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 910
    functionName: mod_accounting_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - fr_curl_response_certinfo
    - rest_response_debug
    - talloc_get_type_abort
    - rest_get_handle_code
    - rlm_rest_status_update
    - rest_slab_release
    - talloc_get_type_abort_const
    - RETURN_UNLANG_RCODE
    - rest_response_error
    - rest_response_decode
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_accounting_result(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:917,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:918,1
    - Dst: rest_slab_reserve
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:923,1
    - Dst: rlm_rest_perform
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:926,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:928,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 934
    functionName: mod_accounting
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_module_yield
    - rest_slab_release
    - rest_slab_reserve
    - rlm_rest_perform
    linkageType: ''
    returnType: void
    signature: void mod_accounting(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:941,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:947,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:948,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:962,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:964,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:968,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:978,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:978,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:978,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:983,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:985,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:995,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:997,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1001,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1007,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1012,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1017,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1027,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1029,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1033,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1039,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1044,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 6
    argNames:
    - inst
    - parent
    - config_items
    - config
    - name
    - cs
    argTypes:
    - rlm_rest_t*
    - CONF_SECTION*
    - conf_parser_t*
    - rlm_rest_section_t*
    - char*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 1054
    functionName: parse_sub_section
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_parse
    - fr_table_str_by_value
    - cf_section_rules_push
    - fr_table_value_by_str
    - strcmp
    - cf_pair_find
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int parse_sub_section(rlm_rest_t *inst, CONF_SECTION *parent, conf_parser_t
      const *config_items,\n\t\t\t     rlm_rest_section_t *config, char const *name,
      CONF_SECTION *cs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1066,1
    - Dst: curl_easy_reset
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1072,1
    - Dst: curl_slist_free_all
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1078,1
    - Dst: curl_easy_setopt
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1090,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1091,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1092,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1093,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1101,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1102,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1103,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1109
    functionName: _rest_request_cleanup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - TALLOC_FREE
    - talloc_get_type_abort
    - curl_slist_free_all
    - curl_easy_reset
    - curl_easy_strerror
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int _rest_request_cleanup(fr_curl_io_request_t *randle, UNUSED void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randle
    argTypes:
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1115
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(fr_curl_io_request_t *randle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1119,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1122,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1123,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1124,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1128,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1128,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1134,1
    - Dst: rest_slab_element_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - randle
    - uctx
    argTypes:
    - fr_curl_io_request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1139
    functionName: rest_conn_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - fr_strerror_printf
    - curl_easy_init
    - talloc_get_type_abort
    - talloc_zero
    - rest_slab_element_set_destructor
    - MEM
    linkageType: ''
    returnType: int
    signature: int rest_conn_alloc(fr_curl_io_request_t *randle, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1153,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1154,1
    - Dst: rest_slab_list_alloc
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1159,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1161,1
    - Dst: fr_curl_io_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1171
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - ERROR
    - rest_slab_list_alloc
    - talloc_get_type_abort
    - fr_curl_io_init
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1183,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1185,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1189
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1203,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1213,1
    - Dst: parse_sub_section
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1218,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1223,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1225,1
    - Dst: parse_sub_section
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1226,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1201
    functionDepth: 2
    functionLinenumber: 1201
    functionLinenumberEnd: 1234
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - cf_section_name
    - fr_rb_iter_init_inorder
    - fr_rb_inline_init
    - parse_sub_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1239,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1241,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1242,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1246
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - xlat_func_call_env_set
    - module_rlm_xlat_register
    - talloc_get_type_abort
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1251,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1251,1
    - Dst: fr_json_version_print
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1258
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - NUM_ELEMENTS
    - fr_json_version_print
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1268,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1281,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1281,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1284,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1286,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1287,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1290,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1294,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1298,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1303,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1308,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1311,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1316,1
    - Dst: call_env_parse
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1317,1
    - Dst: call_env_parse
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1319,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1321,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1333,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1333,1
    - Dst: fr_rb_find_or_insert
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1335,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1336,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1340,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1341,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c:1343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - UNUSED*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1346
    functionName: rest_sect_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rlm_rest.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_section_find
    - tolower
    - talloc_free
    - fr_rb_find_or_insert
    - call_env_parse
    - call_env_parsed_add
    - talloc_strdup
    - talloc_get_type_abort
    - MEM
    - call_env_parsed_set_data
    - talloc_zero
    - talloc_array_length
    - strcmp
    - fr_rb_inline_init
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int rest_sect_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *out,
      UNUSED tmpl_rules_t const *t_rules,\n\t\t\t   CONF_ITEM *ci, call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randle
    argTypes:
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: _mod_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int _mod_conn_free(fr_curl_io_request_t *randle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:265,1
    - Dst: fr_curl_io_request_alloc
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:273,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:276,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:276,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - instance
    - fr_time_delta_t
    argTypes:
    - TALLOC_CTX*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 286
    functionName: rest_mod_conn_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_zero
    - talloc_get_type_abort_const
    - MEM
    - fr_curl_io_request_alloc
    linkageType: ''
    returnType: void
    signature: void *rest_mod_conn_create(TALLOC_CTX *ctx, void *instance, UNUSED
      fr_time_delta_t timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:315,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:316,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - out
    - size
    - nmemb
    - userdata
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 326
    functionName: rest_encode_custom
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t rest_encode_custom(void *out, size_t size, size_t nmemb, void
      *userdata)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:380,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:387,1
    - Dst: curl_escape
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:390,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:392,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:396,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:398,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:407,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:407,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:413,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:415,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:422,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:423,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:437,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:437,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:440,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:441,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:442,1
    - Dst: curl_escape
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:444,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:446,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:449,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:452,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:456,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:458,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:460,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:461,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:462,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:471,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:489,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:490,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 4
    argNames:
    - out
    - size
    - nmemb
    - userdata
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 493
    functionName: rest_encode_post
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dcursor_next
    - curl_free
    - REDEBUG
    - FR_SBUFF_OUT
    - snprintf
    - RINDENT
    - strlcpy
    - RDEBUG2
    - RDEBUG3
    - strlen
    - curl_escape
    - fr_box_strvalue_len
    - REXDENT
    - fr_pair_print_value_quoted
    linkageType: ''
    returnType: size_t
    signature: size_t rest_encode_post(void *out, size_t size, size_t nmemb, void
      *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:545,1
    - Dst: fr_json_afrom_pair_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:548,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:552,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:554,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:555,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - out
    - size
    - nmemb
    - userdata
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 568
    functionName: rest_encode_json
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - fr_json_afrom_pair_list
    - memcpy
    - fr_assert
    - RDEBUG3
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t rest_encode_json(void *out, size_t size, size_t nmemb, void
      *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:605,1
    - Dst: func
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:607,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:617,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:617,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - out
    - inst
    - func
    - limit
    - userdata
    argTypes:
    - char**
    - UNUSED*
    - rest_read_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 623
    functionName: rest_request_encode_wrapper
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_array
    - talloc_realloc
    - func
    - MEM
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t rest_request_encode_wrapper(char **out, UNUSED rlm_rest_t
      const *inst,\n\t\t\t\t\t   rest_read_t func, size_t limit, void *userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - section
    - request
    - ctx
    argTypes:
    - rlm_rest_section_t*
    - request_t*
    - rlm_rest_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 642
    functionName: rest_request_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rest_request_init(rlm_rest_section_t const *section,\n\t\t\t
      \     request_t *request, rlm_rest_request_t *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:669,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:669,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:670,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - inst
    - section
    - request
    - fr_curl_io_request_t *randle
    - raw
    - rawlen
    argTypes:
    - UNUSED*
    - UNUSED*
    - request_t*
    - UNUSED
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 675
    functionName: rest_decode_plain
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - pair_update_request
    - RDEBUG2
    - MEM
    - fr_pair_value_bstrndup
    linkageType: ''
    returnType: int
    signature: "int rest_decode_plain(UNUSED rlm_rest_t const *inst, UNUSED rlm_rest_section_t
      const *section,\n\t\t\t     request_t *request, UNUSED fr_curl_io_request_t
      *randle, char *raw, size_t rawlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:713,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:716,1
    - Dst: curl_easy_unescape
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:734,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:740,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:740,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:742,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:749,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:750,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:754,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:754,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:755,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:756,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:760,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:760,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:762,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:763,1
    - Dst: tmpl_list_ctx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:766,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:766,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:767,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:769,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:771,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:772,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:772,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:774,1
    - Dst: curl_easy_unescape
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:777,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:786,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:787,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:788,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:790,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:792,1
    - Dst: xlat_aeval
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:794,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:796,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:798,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:798,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:800,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:801,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:803,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:804,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:809,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:809,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:810,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:812,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:813,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:817,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:822,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:823,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:828,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 6
    argNames:
    - instance
    - section
    - request
    - randle
    - raw
    - rawlen
    argTypes:
    - UNUSED*
    - UNUSED*
    - request_t*
    - fr_curl_io_request_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 832
    functionName: rest_decode_post
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - curl_free
    - tmpl_attr_tail_da
    - REDEBUG
    - strlen
    - RWDEBUG
    - fr_type_to_str
    - MEM
    - fr_pair_append
    - xlat_aeval
    - tmpl_request_ptr
    - curl_easy_unescape
    - fr_pair_value_from_str
    - fr_pair_afrom_da
    - tmpl_request
    - tmpl_list_head
    - RDEBUG2
    - fr_assert
    - RDEBUG3
    - fr_box_strvalue_len
    - RPWDEBUG
    - TALLOC_FREE
    - tmpl_list_ctx
    - talloc_free
    - strchr
    - fr_skip_whitespace
    - RINDENT
    - tmpl_afrom_attr_str
    - tmpl_list
    - REXDENT
    linkageType: ''
    returnType: int
    signature: "int rest_decode_post(UNUSED rlm_rest_t const *instance, UNUSED rlm_rest_section_t
      const *section,\n\t\t\t    request_t *request, fr_curl_io_request_t *randle,
      char *raw, size_t rawlen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:862,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:864,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:865,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:869,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:869,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:871,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:875,1
    - Dst: json_object_get_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:877,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:879,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:880,1
    - Dst: json_object_get_int
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:880,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:884,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:885,1
    - Dst: json_object_get_double
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:885,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:889,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:890,1
    - Dst: json_object_get_string_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:890,1
    - Dst: xlat_aeval
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:891,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:892,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:895,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:896,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:898,1
    - Dst: json_object_get_string_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:899,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:906,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:913,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:915,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:916,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:919,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:923,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:924,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:926,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:927,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 7
    argNames:
    - instance
    - section
    - ctx
    - request
    - da
    - flags
    - leaf
    argTypes:
    - UNUSED*
    - UNUSED*
    - TALLOC_CTX*
    - request_t*
    - fr_dict_attr_t*
    - json_flags_t*
    - json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 934
    functionName: json_pair_alloc_leaf
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - json_object_get_string
    - memchr
    - fr_value_box_strdup_shallow
    - fr_value_box_cast
    - json_object_get_type
    - json_object_get_double
    - RWDEBUG
    - MEM
    - json_object_is_type
    - FR_VALUE_BOX_INITIALISER_NULL
    - json_object_get_string_len
    - xlat_aeval
    - fr_value_box_bstrndup_shallow
    - json_object_get_int
    - fr_pair_afrom_da
    - RDEBUG3
    - talloc_strlen
    - fr_value_box_init_null
    - talloc_free
    - fr_value_box
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *json_pair_alloc_leaf(UNUSED rlm_rest_t const *instance,
      UNUSED rlm_rest_section_t const *section,\n\t\t\t\t        TALLOC_CTX *ctx,
      request_t *request,\n\t\t\t\t        fr_dict_attr_t const *da, json_flags_t
      *flags, json_object *leaf)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:994,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:996,1
    - Dst: json_type_to_name
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:998,1
    - Dst: json_object_get_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:998,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1000,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1025,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1030,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1032,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1039,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1043,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1043,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1044,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1048,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1048,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1050,1
    - Dst: tmpl_list_ctx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1053,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1053,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1071,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1075,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1076,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1076,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1078,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1079,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1087,1
    - Dst: json_object_get_boolean
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1088,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1094,1
    - Dst: json_object_get_boolean
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1095,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1101,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1102,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1115,1
    - Dst: json_object_array_length
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1116,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1118,1
    - Dst: json_object_array_get_idx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1121,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1136,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1147,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1149,1
    - Dst: json_pair_alloc_leaf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1158,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1159,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1162,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1163,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1163,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1163,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1164,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1166,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1167,1
    - Dst: radius_pairmove
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1168,1
    - Dst: json_object_array_get_idx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1173,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1177,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 6
    argNames:
    - instance
    - section
    - request
    - object
    - level
    - max
    argTypes:
    - rlm_rest_t*
    - rlm_rest_section_t*
    - request_t*
    - json_object*
    - UNUSED
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1180
    functionName: json_pair_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - json_object_get_string
    - REDEBUG
    - tmpl_attr_tail_da
    - json_object_array_get_idx
    - RWDEBUG
    - json_object_get_type
    - json_object_is_type
    - fr_pair_append
    - radius_pairmove
    - json_type_to_name
    - tmpl_request_ptr
    - fr_table_value_by_str
    - fr_pair_list_init
    - json_object_object_get_ex
    - tmpl_request
    - tmpl_list_head
    - tmpl_list_name
    - RDEBUG2
    - json_pair_alloc_leaf
    - json_object_get_boolean
    - TALLOC_FREE
    - RPWDEBUG
    - tmpl_list_ctx
    - talloc_free
    - json_object_array_length
    - RINDENT
    - tmpl_afrom_attr_str
    - tmpl_list
    - REXDENT
    linkageType: ''
    returnType: int
    signature: "int json_pair_alloc(rlm_rest_t const *instance, rlm_rest_section_t
      const *section,\n\t\t\t   request_t *request, json_object *object, UNUSED int
      level, int max)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1025,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1030,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1032,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1039,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1043,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1043,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1044,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1048,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1048,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1050,1
    - Dst: tmpl_list_ctx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1053,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1053,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1071,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1075,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1076,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1076,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1078,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1079,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1087,1
    - Dst: json_object_get_boolean
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1088,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1094,1
    - Dst: json_object_get_boolean
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1095,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1101,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1102,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1115,1
    - Dst: json_object_array_length
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1116,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1118,1
    - Dst: json_object_array_get_idx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1121,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1136,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1147,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1149,1
    - Dst: json_pair_alloc_leaf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1158,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1159,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1162,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1163,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1163,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1163,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1164,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1166,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1167,1
    - Dst: radius_pairmove
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1168,1
    - Dst: json_object_array_get_idx
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1173,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1174
    functionName: json_object_object_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - json_object_get_string
    - tmpl_attr_tail_da
    - json_object_array_get_idx
    - RWDEBUG
    - json_object_is_type
    - fr_pair_append
    - radius_pairmove
    - tmpl_request_ptr
    - fr_table_value_by_str
    - fr_pair_list_init
    - json_object_object_get_ex
    - tmpl_request
    - tmpl_list_head
    - tmpl_list_name
    - RDEBUG2
    - json_pair_alloc_leaf
    - json_object_get_boolean
    - RPWDEBUG
    - TALLOC_FREE
    - tmpl_list_ctx
    - talloc_free
    - json_object_array_length
    - RINDENT
    - tmpl_afrom_attr_str
    - tmpl_list
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void json_object_object_foreach(object, name, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1214,1
    - Dst: json_tokener_parse
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1217,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1219,1
    - Dst: json_pair_alloc
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1223,1
    - Dst: json_object_put
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - instance
    - section
    - request
    - fr_curl_io_request_t *randle
    - raw
    - size_t
    argTypes:
    - rlm_rest_t*
    - rlm_rest_section_t*
    - request_t*
    - UNUSED
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1231
    functionName: rest_decode_json
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - json_object_put
    - REDEBUG
    - json_tokener_parse
    - fr_skip_whitespace
    - json_pair_alloc
    linkageType: ''
    returnType: int
    signature: "int rest_decode_json(rlm_rest_t const *instance, rlm_rest_section_t
      const *section,\n\t\t\t    request_t *request, UNUSED fr_curl_io_request_t *randle,
      char *raw, UNUSED size_t rawlen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1263,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1278,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1287,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1296,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1298,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1299,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1313,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1314,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1322,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1324,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1336,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1344,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1344,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1344,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1345,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1347,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1358,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1359,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1366,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1369,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1371,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1371,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1373,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1375,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1383,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1389,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1394,1
    - Dst: fr_table_value_by_substr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1397,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1399,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1400,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1400,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1401,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1402,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1409,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1410,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1429,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1430,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1434,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1435,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1439,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1440,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1444,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1445,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 110
    argCount: 4
    argNames:
    - in
    - size
    - nmemb
    - userdata
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1461
    functionName: rest_response_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - isdigit
    - RWDEBUG
    - REDEBUG
    - memchr
    - RINDENT
    - fr_table_str_by_value
    - RDEBUG2
    - fr_assert
    - RDEBUG3
    - fr_box_strvalue_len
    - strtoul
    - REXDENT
    - fr_table_value_by_substr
    - strncasecmp
    linkageType: ''
    returnType: size_t
    signature: size_t rest_response_header(void *in, size_t size, size_t nmemb, void
      *userdata)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1490,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1506,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1507,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1507,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1511,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1511,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1515,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1516,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1516,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1520,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1520,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1528,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1531,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1535,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1537,1
    - Dst: talloc_bstr_realloc
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1537,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1542,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - in
    - size
    - nmemb
    - userdata
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1551
    functionName: rest_response_body
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - memcpy
    - REDEBUG
    - memchr
    - ROUND_UP
    - RDEBUG3
    - fr_box_strvalue_len
    - talloc_bstr_realloc
    - MEM
    linkageType: ''
    returnType: size_t
    signature: size_t rest_response_body(void *in, size_t size, size_t nmemb, void
      *userdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rest_get_handle_data
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1564,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1569,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1570,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1571,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1571,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1575,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - request
    - handle
    argTypes:
    - request_t*
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1576
    functionName: rest_response_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 4
    functionsReached:
    - RERROR
    - memchr
    - fr_box_strvalue_len
    - rest_get_handle_data
    linkageType: ''
    returnType: void
    signature: void rest_response_error(request_t *request, fr_curl_io_request_t *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rest_get_handle_data
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1589,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1594,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1595,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1596,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1596,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1600,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - request
    - handle
    argTypes:
    - request_t*
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1601
    functionName: rest_response_debug
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 3
    functionsReached:
    - RDEBUG3
    - memchr
    - fr_box_strvalue_len
    - rest_get_handle_data
    linkageType: ''
    returnType: void
    signature: void rest_response_debug(request_t *request, fr_curl_io_request_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - section
    - request
    - ctx
    - type
    - header
    argTypes:
    - rlm_rest_section_t*
    - request_t*
    - rlm_rest_response_t*
    - http_body_type_t
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1630
    functionName: rest_response_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: "void rest_response_init(rlm_rest_section_t const *section,\n\t\t\t
      \      request_t *request, rlm_rest_response_t *ctx, http_body_type_t type,
      tmpl_t *header)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - randle
    argTypes:
    - char**
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1640
    functionDepth: 0
    functionLinenumber: 1640
    functionLinenumberEnd: 1648
    functionName: rest_get_handle_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 3
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: size_t rest_get_handle_data(char const **out, fr_curl_io_request_t
      *randle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - randle
    argTypes:
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1661
    functionName: rest_response_body_type_get
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: http_body_type_t
    signature: http_body_type_t rest_response_body_type_get(fr_curl_io_request_t *randle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1682,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1683,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1691,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1700,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1701,1
    - Dst: rest_request_encode_wrapper
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1710,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1712,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1715,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1717,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1717,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1718,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - mctx
    - section
    - request
    - randle
    - func
    argTypes:
    - module_ctx_t*
    - rlm_rest_section_t*
    - request_t*
    - fr_curl_io_request_t*
    - rest_read_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1725
    functionName: rest_request_config_body
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - fr_assert
    - talloc_array_length
    - FR_CURL_REQUEST_SET_OPTION
    - rest_request_encode_wrapper
    linkageType: ''
    returnType: int
    signature: "int rest_request_config_body(module_ctx_t const *mctx, rlm_rest_section_t
      const *section,\n\t\t\t\t    request_t *request, fr_curl_io_request_t *randle,
      rest_read_t func)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1739,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1742,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1743,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1748,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1749,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1750,1
    - Dst: curl_slist_append
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1752,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1753,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - request
    - randle
    - header
    - validate
    argTypes:
    - request_t*
    - fr_curl_io_request_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1737
    functionDepth: 1
    functionLinenumber: 1737
    functionLinenumberEnd: 1760
    functionName: rest_request_config_add_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 1
    functionsReached:
    - unlikely
    - REXDENT
    - REDEBUG
    - strchr
    - talloc_get_type_abort
    - RINDENT
    - RDEBUG3
    - curl_slist_append
    - RWDEBUG
    linkageType: ''
    returnType: int
    signature: int rest_request_config_add_header(request_t *request, fr_curl_io_request_t
      *randle, char const *header, bool validate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1774,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1779,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1780,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - randle
    - header
    argTypes:
    - fr_curl_io_request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1788
    functionName: rest_request_contains_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    - talloc_get_type_abort
    - strncasecmp
    linkageType: ''
    returnType: bool
    signature: bool rest_request_contains_header(fr_curl_io_request_t *randle, char
      const *header)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1822,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1823,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1824,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1835,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1842,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1847,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1848,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1849,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1851,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1855,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1857,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1860,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1861,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1864,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1865,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1865,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1866,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1866,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1867,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1867,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1872,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1873,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1874,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1874,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1876,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1876,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1876,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1877,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1877,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1883,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1885,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1886,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1886,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1898,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1900,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1901,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1902,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1902,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1904,1
    - Dst: rest_request_contains_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1908,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1915,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1916,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1917,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1917,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1919,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1928,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1932,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1945,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1949,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1953,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1957,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1961,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1978,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1979,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1980,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1981,1
    - Dst: SET_AUTH_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1987,1
    - Dst: SET_AUTH_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1988,1
    - Dst: SET_AUTH_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1989,1
    - Dst: SET_AUTH_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1991,1
    - Dst: SET_AUTH_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1992,1
    - Dst: SET_AUTH_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:1993,1
    - Dst: fr_curl_easy_tls_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2000,1
    - Dst: rest_response_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2005,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2007,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2008,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2009,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2010,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2020,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2030,1
    - Dst: rest_request_config_add_header
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2030,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2036,1
    - Dst: rest_request_config_body
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2044,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2052,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2054,1
    - Dst: rest_request_config_body
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2058,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2059,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2070,1
    - Dst: rest_request_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2073,1
    - Dst: rest_request_config_body
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2075,1
    - Dst: rest_request_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2082,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2083,1
    - Dst: rest_request_config_body
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2085,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2090,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2095,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 157
    argCount: 8
    argNames:
    - mctx
    - section
    - request
    - randle
    - method
    - type
    - uri
    - body_data
    argTypes:
    - module_ctx_t*
    - rlm_rest_section_t*
    - request_t*
    - fr_curl_io_request_t*
    - http_method_t
    - http_body_type_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 1817
    functionDepth: 2
    functionLinenumber: 1817
    functionLinenumberEnd: 2101
    functionName: rest_request_config
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 2
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - unlang_call_current
    - rest_request_init
    - rest_response_init
    - rest_request_contains_header
    - rest_request_config_add_header
    - fr_box_strvalue
    - unlikely
    - CURL_AT_LEAST_VERSION
    - talloc_get_type_abort
    - fr_table_str_by_value
    - cf_section_name2
    - FR_CURL_REQUEST_SET_OPTION
    - fr_time_delta_to_msec
    - rest_request_config_body
    - fr_value_box_list_foreach
    - fr_assert
    - RDEBUG3
    - talloc_array_length
    - talloc_strlen
    - fr_dcursor_remove
    - fr_curl_easy_tls_init
    - TALLOC_FREE
    - fr_pair_dcursor_by_da_init
    - talloc_free
    - SET_AUTH_OPTION
    - fr_box_time_delta
    - snprintf
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: "int rest_request_config(module_ctx_t const *mctx, rlm_rest_section_t
      const *section,\n\t\t\trequest_t *request, fr_curl_io_request_t *randle, http_method_t
      method,\n\t\t\thttp_body_type_t type,\n\t\t\tchar const *uri, char const *body_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1970
    functionDepth: 0
    functionLinenumber: 1970
    functionLinenumberEnd: 1978
    functionName: SET_AUTH_OPTION
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AUTH_OPTION(_x, _y)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2120,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2125,1
    - Dst: rest_decode_plain
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2134,1
    - Dst: rest_decode_post
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2138,1
    - Dst: rest_decode_json
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2143,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - instance
    - section
    - request
    - randle
    argTypes:
    - rlm_rest_t*
    - rlm_rest_section_t*
    - request_t*
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2117
    functionDepth: 4
    functionLinenumber: 2117
    functionLinenumberEnd: 2157
    functionName: rest_response_decode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 3
    functionsReached:
    - rest_decode_json
    - rest_decode_post
    - talloc_get_type_abort
    - rest_decode_plain
    - RDEBUG2
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int rest_response_decode(rlm_rest_t const *instance, rlm_rest_section_t
      const *section,\n\t\t\t request_t *request, fr_curl_io_request_t *randle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_escape
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2174,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2175,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2176,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - request
    - out
    - outlen
    - raw
    - arg
    argTypes:
    - UNUSED*
    - char*
    - size_t
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2170
    functionDepth: 1
    functionLinenumber: 2170
    functionLinenumberEnd: 2179
    functionName: rest_uri_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - curl_free
    - strlen
    - strlcpy
    - curl_escape
    linkageType: ''
    returnType: size_t
    signature: size_t rest_uri_escape(UNUSED request_t *request, char *out, size_t
      outlen, char const *raw, UNUSED void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2212,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2215,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2218,1
    - Dst: curl_easy_unescape
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2228,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2230,1
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2238,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2239,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2240,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2242,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2243,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_rest/rest.c:2245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - out
    - inst
    - request
    - randle
    - uri
    argTypes:
    - char**
    - UNUSED*
    - request_t*
    - fr_curl_io_request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2246
    functionName: rest_uri_host_unescape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.c
    functionUses: 0
    functionsReached:
    - curl_free
    - REDEBUG
    - strchr
    - talloc_strlen
    - curl_easy_unescape
    - MEM
    - talloc_typed_asprintf
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t rest_uri_host_unescape(char **out, UNUSED rlm_rest_t const
      *inst, request_t *request,\n\t\t\t       fr_curl_io_request_t *randle, char
      const *uri)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:35,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:36,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:39,1
    - Dst: curl_multi_remove_handle
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:41,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:43,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:43,1
    - Dst: rest_slab_release
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: rest_io_module_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/io.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_get_type_abort
    - curl_multi_remove_handle
    - RDEBUG2
    - rest_slab_release
    - curl_multi_strerror
    linkageType: ''
    returnType: void
    signature: void rest_io_module_signal(module_ctx_t const *mctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:58,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:60,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:61,1
    - Dst: rest_io_module_signal
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:63,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/modules/rlm_rest/io.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xctx
    - request
    - action
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: rest_io_xlat_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/io.c
    functionUses: 0
    functionsReached:
    - MODULE_CTX
    - rest_io_module_signal
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void rest_io_xlat_signal(xlat_ctx_t const *xctx, request_t *request,
      fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: rest_get_handle_code
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rest_get_handle_code(_handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: rest_get_handle_type
    functionSourceFile: /src/freeradius-server/src/modules/rlm_rest/rest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rest_get_handle_type(_handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:100,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:101,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - request
    - check_item
    - reply_item
    - pass
    - fail
    argTypes:
    - request_t*
    - fr_pair_t*
    - fr_pair_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 112
    functionName: check_pair
    functionSourceFile: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c
    functionUses: 0
    functionsReached:
    - RDEBUG3
    - RPEDEBUG
    - fr_pair_cmp
    linkageType: ''
    returnType: void
    signature: void check_pair(request_t *request, fr_pair_t *check_item, fr_pair_t
      *reply_item, int *pass, int *fail)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pairlist_read
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:120,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:128,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:132,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:133,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:138,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:139,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:140,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:145,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:146,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:152,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:161,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:166,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - mctx
    - filename
    - pair_list
    argTypes:
    - TALLOC_CTX*
    - module_inst_ctx_t*
    - char*
    - PAIR_LIST_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 175
    functionName: attr_filter_getfile
    functionSourceFile: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - ERROR
    - WARN
    - pairlist_read
    - fr_dlist_next
    - map_list_empty
    - tmpl_is_data
    - tmpl_list
    - tmpl_is_attr
    linkageType: ''
    returnType: int
    signature: int attr_filter_getfile(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx,
      char const *filename, PAIR_LIST_LIST *pair_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:182,1
    - Dst: pairlist_list_init
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:184,1
    - Dst: attr_filter_getfile
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:186,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_get_type_abort
    - pairlist_list_init
    - attr_filter_getfile
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:204,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:205,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:222,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:227,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:235,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:241,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:242,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:246,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:249,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:251,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:256,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:266,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:266,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:266,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:268,1
    - Dst: map_to_vp
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:280,1
    - Dst: RPWARN
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:281,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:285,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:289,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:300,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:307,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:314,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:325,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:327,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:333,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:335,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:341,1
    - Dst: check_pair
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:348,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:352,1
    - Dst: fr_pair_list_prev
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:359,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:362,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:364,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:365,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:366,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:381,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:381,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:388,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c:389,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 81
    argCount: 5
    argNames:
    - ctx
    - p_result
    - mctx
    - request
    - list
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 392
    functionName: attr_filter_common
    functionSourceFile: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c
    functionUses: 0
    functionsReached:
    - RPWARN
    - tmpl_attr_tail_da
    - fr_pair_list_free
    - RWDEBUG
    - MEM
    - fr_pair_list_empty
    - map_to_vp
    - fr_pair_append
    - talloc_get_type_abort
    - fr_pair_list_init
    - fr_pair_afrom_da
    - map_list_next
    - RDEBUG2
    - RDEBUG3
    - fr_assert
    - strcmp
    - fr_dict_vendor_num_by_da
    - fr_pair_list_append
    - check_pair
    - fr_pair_list_next
    - fr_dlist_next
    - fr_pair_remove
    - fr_pair_list_head
    - talloc_get_type_abort_const
    - fr_pair_list_prev
    linkageType: ''
    returnType: void
    signature: "void attr_filter_common(TALLOC_CTX *ctx, unlang_result_t *p_result,\n\t\t\t\t\t\t\t
      \  module_ctx_t const *mctx, request_t *request,\n\t\t\t\t\t\t\t   fr_pair_list_t
      *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: RLM_AF_FUNC
    functionSourceFile: /src/freeradius-server/src/modules/rlm_attr_filter/rlm_attr_filter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLM_AF_FUNC(_x, _y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:67,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:68,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:76,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:78,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:78,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:85,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:87,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:88,1
    - Dst: fr_utf8_strchr
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:95,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:100,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:111,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:116,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:117,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:117,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 121
    functionName: escape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_trim_talloc
    - RPEDEBUG
    - fr_dcursor_append
    - talloc_free
    - fr_utf8_strchr
    - fr_value_box_strdup_shallow
    - fr_sbuff_init_talloc
    - talloc_get_type_abort
    - fr_sbuff_in_bstrncpy
    - fr_sbuff_buff
    - talloc_strlen
    - MEM
    - fr_value_box_alloc_null
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t escape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:141,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:149,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:149,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:150,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:151,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:152,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:155,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:155,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:163,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:170,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:170,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:171,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:171,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:174,1
    - Dst: fr_value_box_strtrim
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:178,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 182
    functionName: unescape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_in_char
    - RPEDEBUG
    - tolower
    - talloc_free
    - fr_dcursor_append
    - FR_SBUFF_OUT
    - memchr
    - talloc_array_length
    - fr_value_box_bstr_alloc
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_strtrim
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unescape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:198,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:199,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:200,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:202,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:203,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_escape/rlm_escape.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_flags_set
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:131,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:131,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:140,1
    - Dst: eap_name2type
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:146,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:147,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:150,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:176,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:176,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:178,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:179,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:179,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:181,1
    - Dst: module_rlm_submodule_parse
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 190
    functionName: submodule_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 3
    functionsReached:
    - cf_item_to_pair
    - cf_parent
    - WARN
    - talloc_free
    - cf_pair_value
    - cf_data_find
    - talloc_strdup
    - cf_log_err
    - cf_data_value
    - MODULE_INST_CTX
    - eap_name2type
    - module_rlm_submodule_parse
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int submodule_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t
      \  CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:206,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:206,1
    - Dst: eap_name2type
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:212,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: eap_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - eap_name2type
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int eap_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent,\n\t\t\t  CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:230,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:245,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:261,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:271,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:271,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:278,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:279,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:292,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:294,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:297,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:298,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:299,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:301,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:302,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:311,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:315,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:335,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:335,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:341,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:357,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:358,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:361,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:361,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:363,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:364,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:367,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:368,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:368,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:370,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:371,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:373,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:374,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:374,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 4
    argNames:
    - mctx
    - request
    - last_type
    - nak
    argTypes:
    - module_ctx_t*
    - request_t*
    - eap_type_t
    - eap_type_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 378
    functionName: eap_process_nak
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - RWARN
    - REDEBUG
    - fr_sbuff_terminate
    - RDEBUG2
    - talloc_get_type_abort_const
    - fr_sbuff_advance
    - eap_type2name
    - fr_pair_find_by_da
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: eap_type_t
    signature: "eap_type_t eap_process_nak(module_ctx_t const *mctx, request_t *request,\n\t\t\t\t
      \ eap_type_t last_type,\n\t\t\t\t  eap_type_data_t *nak)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:390,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:392,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:403,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 412
    functionName: mod_authenticate_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - RDEBUG2
    - talloc_get_type_abort
    - eap_session_destroy
    linkageType: ''
    returnType: void
    signature: void mod_authenticate_cancel(module_ctx_t const *mctx, request_t *request,
      UNUSED fr_signal_t action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:436,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:438,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:439,1
    - Dst: fr_pair_steal_append
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:440,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:447,1
    - Dst: eap_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:455,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:456,1
    - Dst: eap_compose
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:477,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:499,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:503,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:504,1
    - Dst: eap_session_freeze
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:511,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:514,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - eap_session
    - submodule_result
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - eap_session_t*
    - unlang_result_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 515
    functionName: mod_authenticate_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - eap_compose
    - TALLOC_FREE
    - eap_fail
    - talloc_free
    - eap_session_destroy
    - eap_session_freeze
    - fr_pair_remove
    - RDEBUG2
    - RETURN_UNLANG_RCODE
    - fr_pair_find_by_da
    - fr_pair_steal_append
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_authenticate_result(unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx,\n\t\t\t\t\t       request_t *request, eap_session_t
      *eap_session, unlang_result_t *submodule_result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:527,1
    - Dst: mod_authenticate_result
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: mod_authenticate_result_async
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - mod_authenticate_result
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_authenticate_result_async(unlang_result_t *p_result,
      module_ctx_t const *mctx,\n\t\t\t\t\t\t     request_t *request)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:544,1
    - Dst: memrchr
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:550,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:552,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:556,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:558,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - identity
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 575
    functionName: eap_identity_is_nai_with_realm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - memrchr
    - fr_strerror_printf
    - memchr
    - talloc_strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t eap_identity_is_nai_with_realm(char const *identity)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:595,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:607,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:613,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:631,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:635,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:635,1
    - Dst: eap_identity_is_nai_with_realm
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:650,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:659,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:659,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:661,1
    - Dst: eap_identity_is_nai_with_realm
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:663,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:665,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:665,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:667,1
    - Dst: eap_identity_is_nai_with_realm
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:673,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:681,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:694,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:696,1
    - Dst: rlm_eap_submodule_t*::type_identity
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:712,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:714,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:726,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:727,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:741,1
    - Dst: fr_state_discard_child
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:742,1
    - Dst: eap_process_nak
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:743,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:763,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:763,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:776,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:776,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:777,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:779,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:795,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:800,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:800,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:806,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:809,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:811,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:815,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:826,1
    - Dst: unlang_subrequest_child_push
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:835,1
    - Dst: unlang_interpet_frame_discard
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:839,1
    - Dst: unlang_module_push
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:846,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:857,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:857,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:858,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:869,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:869,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 132
    argCount: 3
    argNames:
    - p_result
    - mctx
    - eap_session
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 874
    functionName: eap_method_select
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - rlm_eap_submodule_t*::type_identity
    - fr_asprint
    - REDEBUG2
    - REDEBUG
    - unlang_module_yield
    - unlang_interpet_frame_discard
    - fr_strerror
    - MEM
    - pair_append_request
    - REMARKER
    - unlang_module_push
    - fr_state_discard_child
    - eap_identity_is_nai_with_realm
    - fr_pair_list_copy
    - eap_process_nak
    - RDEBUG2
    - fr_assert
    - fr_pair_value_bstrdup_buffer
    - talloc_strlen
    - fr_pair_find_by_da
    - RERROR
    - TALLOC_FREE
    - talloc_free
    - unlang_subrequest_alloc
    - unlang_subrequest_child_push
    - fr_pair_find_by_da_idx
    - talloc_get_type_abort_const
    - eap_type2name
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_method_select(unlang_result_t *p_result, module_ctx_t
      const *mctx, eap_session_t *eap_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:881,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:883,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:887,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:887,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:888,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:897,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:897,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:898,1
    - Dst: eap_session_discard
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 901
    functionName: eap_failure
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete_by_da
    - fr_pair_find_by_da
    - eap_session_discard
    - fr_pair_value_memdup
    - MEM
    - pair_append_reply
    linkageType: ''
    returnType: void
    signature: void eap_failure(request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:905,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:911,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:913,1
    - Dst: eap_packet_from_vp
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:925,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:927,1
    - Dst: eap_failure
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:929,1
    - Dst: eap_session_continue
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:939,1
    - Dst: eap_method_select
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:947,1
    - Dst: eap_session_freeze
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:951,1
    - Dst: eap_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:962,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:963,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 968
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - eap_fail
    - REDEBUG
    - eap_method_select
    - eap_session_destroy
    - eap_session_freeze
    - eap_failure
    - RPERROR
    - talloc_get_type_abort_const
    - eap_packet_from_vp
    - fr_pair_find_by_da
    - eap_session_continue
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_authenticate(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:977,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:981,1
    - Dst: eap_start
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:996,1
    - Dst: eap_failure
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1004,1
    - Dst: module_rlm_section_type_set
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1016
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 1
    functionsReached:
    - WARN
    - eap_start
    - eap_failure
    - module_rlm_section_type_set
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_authorize(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1029,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1034,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1036,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1036,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1037,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1047,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1048,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1052,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1053,1
    - Dst: eap_session_thaw
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1062,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1064,1
    - Dst: eap_packet_from_vp
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1073,1
    - Dst: eap_round_build
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1074,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1082,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1082,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1083,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1096,1
    - Dst: eap_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1098,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1099,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1105,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1105,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1106,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1106,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1109
    functionName: mod_post_auth
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - eap_round_build
    - fr_pair_value_mem_alloc
    - eap_fail
    - eap_session_thaw
    - fr_cond_assert
    - fr_pair_append
    - REDEBUG
    - eap_session_destroy
    - pair_update_reply
    - RDEBUG3
    - eap_packet_from_vp
    - MEM
    - fr_pair_find_by_da
    - fr_pair_copy
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_post_auth(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1113,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1117,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1126,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1126,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1160,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1162,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1163,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1163,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1189,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1190,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1195,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1205,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1205,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1209,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1213,1
    - Dst: WARN
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1215,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1222,1
    - Dst: fr_isaac_init
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1223,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1227
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - cf_lineno
    - TALLOC_FREE
    - WARN
    - talloc_array
    - talloc_realloc
    - fr_isaac_init
    - cf_filename
    - talloc_get_type_abort
    - fr_rand
    - cf_log_err_by_child
    - talloc_array_length
    - fr_dict_enum_by_name
    - eap_type2name
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eap_base_init
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1231,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1236
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - eap_base_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_base_free
      Src: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1241
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/rlm_eap.c
    functionUses: 0
    functionsReached:
    - eap_base_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:54,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:64,1
    - Dst: password_find
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:66,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:67,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:70,1
    - Dst: eap_md5_extract
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:77,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:79,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:86,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:86,1
    - Dst: eap_md5_verify
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:94,1
    - Dst: eap_md5_compose
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:104,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:105,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 110
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c
    functionUses: 0
    functionsReached:
    - eap_md5_compose
    - TALLOC_FREE
    - password_find
    - talloc_free
    - REDEBUG
    - eap_md5_verify
    - talloc
    - fr_assert
    - eap_session_get
    - eap_md5_extract
    - MEM
    - NUM_ELEMENTS
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:117,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:121,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:126,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:126,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:138,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:138,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:142,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:143,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:148,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:148,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:149,1
    - Dst: eap_md5_compose
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 167
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/rlm_eap_md5.c
    functionUses: 0
    functionsReached:
    - eap_md5_compose
    - memcpy
    - talloc_array
    - talloc
    - fr_rand
    - fr_assert
    - RDEBUG2
    - eap_session_get
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, UNUSED
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:66,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:76,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:80,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:80,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:101,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:101,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - request
    - eap_round
    argTypes:
    - request_t*
    - eap_round_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 110
    functionName: eap_md5_extract
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c
    functionUses: 1
    functionsReached:
    - memcpy
    - talloc_array
    - REDEBUG
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: MD5_PACKET
    signature: MD5_PACKET *eap_md5_extract(request_t *request, eap_round_t *eap_round)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:128,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:133,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:145,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:152,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:155,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - request
    - packet
    - password
    - challenge
    argTypes:
    - request_t*
    - MD5_PACKET*
    - fr_pair_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 165
    functionName: eap_md5_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c
    functionUses: 1
    functionsReached:
    - fr_md5_calc
    - fr_digest_cmp
    - REDEBUG
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int eap_md5_verify(request_t *request, MD5_PACKET *packet, fr_pair_t
      *password,\n\t\t  uint8_t *challenge)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:182,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:184,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:188,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:193,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - eap_round
    - reply
    argTypes:
    - eap_round_t*
    - MD5_PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 209
    functionName: eap_md5_compose
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_md5/eap_md5.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - talloc_free
    - memcpy
    - talloc_array
    linkageType: ''
    returnType: int
    signature: int eap_md5_compose(eap_round_t *eap_round, MD5_PACKET *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:47,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:50,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:50,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:51,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:52,1
    - Dst: eap_session_t*::process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c
    functionUses: 0
    functionsReached:
    - eap_session_t*::process
    - fr_rand
    - talloc_zero
    - EVP_sha1
    - eap_session_get
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_id_to_eap_type
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - id
    - len
    argTypes:
    - UNUSED*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: mod_type_identity
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_id_to_eap_type
    linkageType: ''
    returnType: eap_type_t
    signature: eap_type_t mod_type_identity(UNUSED void *instance, char const *id,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:77,1
    - Dst: fr_aka_sim_xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_init
    - fr_aka_sim_xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:86,1
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_xlat_func_unregister
    - fr_aka_sim_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:153,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:157,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:158,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:159,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:160,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:166,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:180,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:186,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - request
    - data
    - data_len
    argTypes:
    - request_t*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 228
    functionName: diameter_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - ntohl
    - memcpy
    - REDEBUG2
    linkageType: ''
    returnType: int
    signature: int diameter_verify(request_t *request, uint8_t const *data, unsigned
      int data_len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:246,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:256,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:259,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:260,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:264,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:267,1
    - Dst: fr_nbo_to_uint64v
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:273,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:277,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:287,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:298,1
    - Dst: fr_dict_vendor_da_by_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:305,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:308,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:315,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:315,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:318,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:318,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:329,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:332,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:336,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:336,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:340,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:340,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:341,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:343,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:344,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:351,1
    - Dst: fr_pair_raw_afrom_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:355,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:387,1
    - Dst: SSL_export_keying_material
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:395,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:397,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:401,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:402,1
    - Dst: fr_pair_value_strtrim
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:410,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:416,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 7
    argNames:
    - request
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - request_t*
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 418
    functionName: eap_ttls_decode_pair
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - SSL_export_keying_material
    - fr_nbo_to_uint64v
    - FR_DBUFF_TMP
    - fr_pair_list_free
    - fr_dict_attr_unknown_raw_afrom_num
    - MEM
    - fr_dict_attr_unknown_free
    - fr_nbo_to_uint32
    - fr_tls_strerror_printf
    - fr_dict_attr_unknown_vendor_afrom_num
    - memcmp
    - fr_strerror_const
    - fr_dict_vendor_da_by_num
    - RDEBUG3
    - fr_pair_value_strtrim
    - fr_value_box_from_network
    - talloc_free
    - fr_dict_attr_child_by_num
    - fr_pair_raw_afrom_pair
    - fr_dict_root
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t eap_ttls_decode_pair(request_t *request, TALLOC_CTX *ctx,
      fr_pair_list_t *out,\n\t\t\t\t    fr_dict_attr_t const *parent,\n\t\t\t\t    uint8_t
      const *data, size_t data_len,\n\t\t\t\t    void *decode_ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:447,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:449,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:454,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:465,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:469,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:482,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:484,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:493,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:494,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:498,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:499,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:503,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:504,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:511,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:511,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:512,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:517,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:518,1
    - Dst: htonll
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:523,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:524,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:529,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:536,1
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:571,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 85
    argCount: 3
    argNames:
    - request
    - tls_session
    - list
    argTypes:
    - request_t*
    - fr_tls_session_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 578
    functionName: vp2diameter
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    - fr_pair_list_next
    - memcpy
    - fr_tls_session_send
    - RDEBUG2
    - htonll
    - fr_pair_list_head
    - fr_dict_vendor_num_by_da
    - fr_unix_time_to_sec
    linkageType: ''
    returnType: int
    signature: int vp2diameter(request_t *request, fr_tls_session_t *tls_session,
      fr_pair_list_t *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:583,1
    - Dst: eap_crypto_prf_label_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:587,1
    - Dst: eap_tls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:593,1
    - Dst: fr_tls_cache_pending_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p_result
    - request
    - eap_session
    argTypes:
    - unlang_result_t*
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 614
    functionName: eap_ttls_success
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - eap_crypto_prf_label_init
    - talloc_get_type_abort
    - eap_tls_success
    - fr_tls_cache_pending_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_ttls_success(unlang_result_t *p_result, request_t
      *request, eap_session_t *eap_session)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:622,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:623,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:630,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:631,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:656,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:662,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:663,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:665,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:669,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:669,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:670,1
    - Dst: eap_ttls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:678,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:681,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:682,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:692,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:699,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:701,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:701,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:702,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:704,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:704,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:705,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:711,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:712,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:721,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:722,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:723,1
    - Dst: vp2diameter
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:725,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:726,1
    - Dst: eap_tls_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:729,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 731
    functionName: process_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_find_by_da_nested
    - fr_pair_list_next
    - fr_pair_list_free
    - fr_pair_copy
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - fr_assert
    - log_request_pair_list
    - vp2diameter
    - fr_pair_prepend
    - eap_tls_fail
    - eap_ttls_success
    - eap_tls_request
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t process_reply(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:745,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:763,1
    - Dst: eap_ttls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:764,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:771,1
    - Dst: diameter_verify
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:775,1
    - Dst: eap_ttls_decode_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:780,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:780,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:780,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:782,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:793,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:800,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:809,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:809,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:812,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:815,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:822,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:827,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:827,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:828,1
    - Dst: eap_chbind_vp2packet
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:835,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:838,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:840,1
    - Dst: chbind_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:847,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:851,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:852,1
    - Dst: eap_chbind_packet2vp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:853,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:855,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:859,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:868,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:868,1
    - Dst: eap_virtual_server
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:876,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - eap_session
    - tls_session
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - eap_session_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 877
    functionName: eap_ttls_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - eap_ttls_success
    - MEM
    - unlikely
    - RPEDEBUG
    - fr_pair_append
    - talloc_get_type_abort
    - diameter_verify
    - fr_pair_afrom_da
    - RWDEBUG2
    - fr_pair_value_bstrndup
    - RDEBUG2
    - fr_pair_find_by_da
    - fr_pair_copy
    - chbind_process
    - eap_ttls_decode_pair
    - eap_chbind_vp2packet
    - talloc_free
    - eap_virtual_server
    - fr_dict_internal
    - talloc_zero
    - eap_chbind_packet2vp
    - fr_dict_root
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t eap_ttls_process(unlang_result_t *p_result, module_ctx_t
      const *mctx,\n\t\t\t\t\trequest_t *request, eap_session_t *eap_session, fr_tls_session_t
      *tls_session)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 889
    functionName: ttls_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: ttls_tunnel_t
    signature: ttls_tunnel_t *ttls_alloc(TALLOC_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:893,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:894,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:897,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:900,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:900,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:902,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:902,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:914,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:915,1
    - Dst: eap_ttls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:916,1
    - Dst: eap_ttls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:919,1
    - Dst: eap_tls_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:921,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:950,1
    - Dst: eap_ttls_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 956
    functionName: mod_handshake_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - eap_ttls_process
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - eap_tls_request
    - eap_ttls_success
    - SSL_session_reused
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_handshake_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:964,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:969,1
    - Dst: eap_tls_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 975
    functionName: mod_handshake_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - eap_tls_process
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_handshake_process(UNUSED unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx,\n\t\t\t\t\t     request_t *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:979,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:980,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:981,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:992,1
    - Dst: eap_tls_session_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:999,1
    - Dst: eap_tls_start
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1009,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1010,1
    - Dst: ttls_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1014,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 1019
    functionName: mod_session_init_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - eap_tls_session_init
    - talloc_free
    - talloc_get_type_abort
    - eap_tls_start
    - ttls_alloc
    - eap_session_get
    - fr_pair_find_by_da
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1026,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1027,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1031,1
    - Dst: fr_tls_new_session_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1036
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - talloc_get_type_abort
    - eap_session_get
    - fr_tls_new_session_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(UNUSED unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1040,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1041,1
    - Dst: fr_tls_ctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1047
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - fr_tls_ctx_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1051,1
    - Dst: likely
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1053,1
    - Dst: SSL_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1057
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - likely
    - talloc_get_type_abort
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1064,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1067,1
    - Dst: eap_tls_conf_parse
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1073,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1080
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_ttls/rlm_eap_ttls.c
    functionUses: 0
    functionsReached:
    - virtual_server_cs
    - cf_log_err
    - talloc_get_type_abort
    - eap_tls_conf_parse
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: mod_handshake_done
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_handshake_done(unlang_result_t *p_result, UNUSED
      module_ctx_t const *mctx,\n\t\t\t\t\t  UNUSED request_t *request)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:77,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:78,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:82,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:82,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:84,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:84,1
    - Dst: eap_crypto_prf_label_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:99,1
    - Dst: eap_tls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:103,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:109,1
    - Dst: fr_tls_cache_pending_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:122,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:138,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:139,1
    - Dst: fr_tls_cache_deny
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:150,1
    - Dst: fr_tls_cache_pending_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 160
    functionName: mod_handshake_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - eap_tls_success
    - fr_tls_cache_pending_push
    - fr_tls_cache_deny
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - eap_crypto_prf_label_init
    - unlang_module_yield
    - eap_tls_fail
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_handshake_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:168,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:173,1
    - Dst: eap_tls_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: mod_handshake_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - eap_tls_process
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_handshake_process(UNUSED unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx,\n\t\t\t\t\t     request_t *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:183,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:184,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:185,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:195,1
    - Dst: eap_tls_session_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:205,1
    - Dst: eap_tls_start
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:214,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 222
    functionName: mod_session_init_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - eap_tls_session_init
    - talloc_free
    - talloc_get_type_abort
    - eap_tls_start
    - eap_session_get
    - fr_pair_find_by_da
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:229,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:230,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:234,1
    - Dst: fr_tls_new_session_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - talloc_get_type_abort
    - eap_session_get
    - fr_tls_new_session_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(UNUSED unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:243,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:244,1
    - Dst: fr_tls_ctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - fr_tls_ctx_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:254,1
    - Dst: likely
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:256,1
    - Dst: SSL_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - likely
    - talloc_get_type_abort
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:267,1
    - Dst: eap_tls_conf_parse
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:270,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    - talloc_get_type_abort
    - eap_tls_conf_parse
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:51,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:54,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:54,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:55,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:56,1
    - Dst: eap_session_t*::process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c
    functionUses: 0
    functionsReached:
    - eap_session_t*::process
    - fr_rand
    - talloc_zero
    - EVP_sha1
    - eap_session_get
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:65,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:77,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:77,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:80,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:81,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:81,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_pair_value
    - talloc_get_type_abort
    - cf_pair_find_next
    - cf_log_debug
    - strcmp
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_id_to_eap_type
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - id
    - len
    argTypes:
    - UNUSED*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: mod_type_identity
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_id_to_eap_type
    linkageType: ''
    returnType: eap_type_t
    signature: eap_type_t mod_type_identity(UNUSED void *instance, char const *id,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:102,1
    - Dst: fr_aka_sim_xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_init
    - fr_aka_sim_xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:111,1
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_xlat_func_unregister
    - fr_aka_sim_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:128,1
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - request
    - eap_session
    - tls_session
    argTypes:
    - request_t*
    - eap_session_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: eap_peap_failure
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_tls_session_send
    linkageType: ''
    returnType: int
    signature: int eap_peap_failure(request_t *request, eap_session_t *eap_session,
      fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:156,1
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - request
    - eap_session
    - tls_session
    argTypes:
    - request_t*
    - eap_session_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 173
    functionName: eap_peap_success
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_tls_session_send
    linkageType: ''
    returnType: int
    signature: int eap_peap_success(request_t *request, eap_session_t *eap_session,
      fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - request
    - eap_session
    - tls_session
    argTypes:
    - request_t*
    - eap_session_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: eap_peap_identity
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - fr_tls_session_send
    linkageType: ''
    returnType: int
    signature: int eap_peap_identity(request_t *request, eap_session_t *eap_session,
      fr_tls_session_t *tls_session)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:216,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:221,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:234,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:243,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:243,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - request
    - peap_tunnel
    - data
    - data_len
    argTypes:
    - request_t*
    - peap_tunnel_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 247
    functionName: eap_peap_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - REDEBUG
    - eap_type2name
    linkageType: ''
    returnType: int
    signature: "int eap_peap_verify(request_t *request, peap_tunnel_t *peap_tunnel,\n\t\t\t
      \  uint8_t const *data, size_t data_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:262,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:262,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:269,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:269,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:274,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:276,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:278,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:278,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:279,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - pairs
    - eap_round
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - eap_round_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 285
    functionName: eap_peap_inner_to_pairs
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_value_mem_alloc
    - memcpy
    - fr_pair_append
    - fr_pair_value_memdup
    - MEM
    linkageType: ''
    returnType: void
    signature: "void eap_peap_inner_to_pairs(TALLOC_CTX *ctx, fr_pair_list_t *pairs,\n\t\t\t
      \ \t    eap_round_t *eap_round,\n\t\t\t\t    uint8_t const *data, size_t data_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:296,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:296,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:301,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:310,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:312,1
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - request
    - tls_session
    - vps
    argTypes:
    - request_t*
    - fr_tls_session_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 319
    functionName: eap_peap_inner_from_pairs
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_list_next
    - fr_tls_session_send
    - fr_assert
    - fr_pair_list_head
    linkageType: ''
    returnType: int
    signature: int eap_peap_inner_from_pairs(request_t *request, fr_tls_session_t
      *tls_session, fr_pair_list_t *vps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:341,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - request
    - data
    - data_len
    argTypes:
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: eap_peap_check_tlv
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    linkageType: ''
    returnType: int
    signature: int eap_peap_check_tlv(request_t *request, uint8_t const *data, size_t
      data_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:357,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:358,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:373,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:374,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:376,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:378,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:383,1
    - Dst: eap_peap_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:385,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:389,1
    - Dst: eap_peap_failure
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:391,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:395,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:402,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:403,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:403,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:409,1
    - Dst: eap_peap_inner_from_pairs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:410,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:411,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 419
    functionName: process_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - eap_peap_failure
    - fr_pair_list_copy_by_da
    - talloc_get_type_abort
    - FR_RADIUS_PACKET_CODE_VALID
    - log_request_pair_list
    - RDEBUG2
    - fr_pair_list_free
    - eap_peap_inner_from_pairs
    - MEM
    - eap_peap_success
    - fr_pair_list_init
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t process_reply(unlang_result_t *p_result, request_t
      *request, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - t
    argTypes:
    - peap_tunnel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 447
    functionName: peap_state
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *peap_state(peap_tunnel_t *t)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:462,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:472,1
    - Dst: peap_state
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:472,1
    - Dst: eap_peap_verify
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:474,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:475,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:483,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:484,1
    - Dst: eap_peap_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:488,1
    - Dst: eap_peap_identity
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:497,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:508,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:516,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:516,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:519,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:521,1
    - Dst: eap_peap_check_tlv
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:529,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:530,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:544,1
    - Dst: eap_peap_identity
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:552,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:560,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:568,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:569,1
    - Dst: RIDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:570,1
    - Dst: RIDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:571,1
    - Dst: RIDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:572,1
    - Dst: RIDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:573,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:574,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:579,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:586,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:591,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:591,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:592,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:592,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:605,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:610,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:610,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:611,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:611,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:617,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:619,1
    - Dst: eap_peap_inner_to_pairs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:624,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:626,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:627,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:628,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:635,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:640,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:641,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:653,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:653,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:654,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:657,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:659,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:664,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:664,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:665,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:666,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:669,1
    - Dst: unlang_subrequest_child_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:676,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:684,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:699,1
    - Dst: eap_virtual_server
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:699,1
    - Dst: request_detach
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:718,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:719,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:722,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 160
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - eap_session
    - tls_session
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - eap_session_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 723
    functionName: eap_peap_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_mem_alloc
    - memcpy
    - REDEBUG
    - unlang_interpret_signal
    - MEM
    - RIDEBUG
    - fr_pair_list_empty
    - unlikely
    - unlang_function_push_with_result
    - peap_state
    - fr_pair_append
    - talloc_get_type_abort
    - log_request_pair_list
    - SSL_session_reused
    - eap_peap_success
    - fr_pair_afrom_da
    - request_detach
    - fr_pair_value_bstrndup
    - eap_peap_verify
    - eap_peap_inner_to_pairs
    - RDEBUG2
    - fr_assert
    - RETURN_UNLANG_RCODE
    - fr_pair_copy
    - eap_peap_check_tlv
    - eap_peap_identity
    - TALLOC_FREE
    - unlang_subrequest_alloc
    - unlang_subrequest_child_push
    - eap_virtual_server
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t eap_peap_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request,\n\t\t\t\t\teap_session_t *eap_session, fr_tls_session_t
      *tls_session)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 736
    functionName: peap_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: peap_tunnel_t
    signature: peap_tunnel_t *peap_alloc(TALLOC_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:743,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:744,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:747,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:751,1
    - Dst: eap_tls_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:755,1
    - Dst: eap_crypto_prf_label_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:762,1
    - Dst: eap_tls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:769,1
    - Dst: fr_tls_cache_pending_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:784,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:797,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 802
    functionName: process_rcode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - eap_tls_success
    - fr_tls_cache_pending_push
    - talloc_get_type_abort
    - RDEBUG3
    - eap_crypto_prf_label_init
    - eap_tls_request
    - eap_tls_fail
    - RETURN_UNLANG_RCODE
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t process_rcode(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:806,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:807,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:809,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:812,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:812,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:814,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:814,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:851,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:867,1
    - Dst: peap_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:873,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:879,1
    - Dst: eap_peap_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:884,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 804
    functionDepth: 3
    functionLinenumber: 804
    functionLinenumberEnd: 885
    functionName: mod_handshake_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - eap_peap_process
    - SSL_is_init_finished
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - unlang_module_yield
    - peap_alloc
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_handshake_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:893,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:898,1
    - Dst: eap_tls_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 904
    functionName: mod_handshake_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - eap_tls_process
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_handshake_process(UNUSED unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx,\n\t\t\t\t\t     request_t *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:908,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:909,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:910,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:921,1
    - Dst: eap_tls_session_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:928,1
    - Dst: eap_tls_start
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:955,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:956,1
    - Dst: peap_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 969
    functionName: mod_session_init_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - eap_tls_session_init
    - talloc_free
    - talloc_get_type_abort
    - eap_tls_start
    - eap_session_get
    - peap_alloc
    - fr_pair_find_by_da
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:976,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:977,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:981,1
    - Dst: fr_tls_new_session_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 986
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - talloc_get_type_abort
    - eap_session_get
    - fr_tls_new_session_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(UNUSED unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:990,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:991,1
    - Dst: fr_tls_ctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 997
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - fr_tls_ctx_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1001,1
    - Dst: likely
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1003,1
    - Dst: SSL_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1007
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - likely
    - talloc_get_type_abort
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1014,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1017,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1019,1
    - Dst: eap_tls_conf_parse
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1025,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1032
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_peap/rlm_eap_peap.c
    functionUses: 0
    functionsReached:
    - eap_tls_conf_parse
    - talloc_get_type_abort
    - virtual_server_cs
    - fr_assert
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:89,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:89,1
    - Dst: fr_dict_enum_add_name_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:91,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:91,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:92,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:95,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: auth_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - UNCONST
    - fr_dict_enum_add_name_next
    - fr_dict_enum_by_name
    - fr_dict_attr_unconst
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int auth_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent,\n\t\t\t   CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:105,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:108,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: gtc_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - talloc_get_type_abort
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t gtc_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx,  request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:126,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:127,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:129,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:144,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:154,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:163,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:163,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:164,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:166,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:166,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:167,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:167,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:169,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 176
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - fr_pair_value_bstrndup
    - unlang_call_current
    - unlang_module_yield_to_section
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - eap_session_get
    - pair_update_request
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:184,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:188,1
    - Dst: xlat_eval
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:190,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:194,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:201,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 217
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_gtc/rlm_eap_gtc.c
    functionUses: 0
    functionsReached:
    - xlat_eval
    - memcpy
    - talloc_array
    - talloc_get_type_abort
    - strlen
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:48,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:51,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:51,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:52,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:53,1
    - Dst: eap_session_t*::process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c
    functionUses: 0
    functionsReached:
    - eap_session_t*::process
    - fr_rand
    - EVP_sha256
    - talloc_zero
    - eap_session_get
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_id_to_eap_type
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - id
    - len
    argTypes:
    - UNUSED*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: mod_type_identity
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_id_to_eap_type
    linkageType: ''
    returnType: eap_type_t
    signature: eap_type_t mod_type_identity(UNUSED void *instance, char const *id,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:78,1
    - Dst: fr_aka_sim_xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_init
    - fr_aka_sim_xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:87,1
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_xlat_func_unregister
    - fr_aka_sim_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:112,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:114,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:117,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:118,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:120,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:122,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:124,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:126,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:128,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:130,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:132,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - request
    - data
    argTypes:
    - request_t*
    - mschapv2_opaque_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: mppe_keys_store
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da_nested
    - fr_pair_list_copy_by_da
    - RINDENT
    - RDEBUG2
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void mppe_keys_store(request_t *request, mschapv2_opaque_t *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:151,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:151,1
    - Dst: fr_dict_enum_add_name_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:153,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:153,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:154,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:157,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: auth_type_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - UNCONST
    - fr_dict_enum_add_name_next
    - fr_dict_enum_by_name
    - fr_dict_attr_unconst
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int auth_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent,\n\t\t\t   CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:197,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:198,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:198,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:210,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:211,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:219,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:220,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:220,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:233,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:235,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:235,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:240,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:245,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:246,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:247,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:249,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:251,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:257,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:262,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:263,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:267,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 4
    argNames:
    - inst
    - request
    - eap_session
    - reply
    argTypes:
    - rlm_eap_mschapv2_t*
    - request_t*
    - eap_session_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 274
    functionName: eap_mschapv2_compose
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - RERROR
    - memcpy
    - talloc_array
    - REDEBUG
    - RDEBUG2
    - talloc_strlen
    - memset
    - MEM
    - htons
    linkageType: ''
    returnType: int
    signature: "int eap_mschapv2_compose(rlm_eap_mschapv2_t const *inst, request_t
      *request, eap_session_t *eap_session,\n\t\t\t       fr_pair_t *reply)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:281,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:282,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:283,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:290,1
    - Dst: mppe_keys_store
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:296,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:298,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:306,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:307,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:313,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:314,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:317,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:320,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:322,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:324,1
    - Dst: sscanf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:332,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:334,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:336,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:336,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:337,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:339,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:351,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:352,1
    - Dst: eap_mschapv2_compose
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:360,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:360,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 364
    functionName: mschap_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - sscanf
    - fr_pair_find_by_da_nested
    - fr_pair_list_free
    - fr_pair_list_copy_by_da
    - eap_mschapv2_compose
    - REDEBUG
    - talloc_get_type_abort
    - FR_SBUFF_IN_STR
    - RPERROR
    - RDEBUG2
    - FR_DBUFF_TMP
    - mppe_keys_store
    - fr_pair_list_head
    - eap_session_get
    - PAIR_VERIFY
    - fr_base16_decode
    - fr_pair_list_init
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mschap_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:371,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:372,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:374,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:375,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:384,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:390,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:400,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:419,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:424,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:426,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:426,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:427,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:431,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:431,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:432,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:432,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:435,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:437,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:449,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:449,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:450,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:450,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:451,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:451,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:456,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:461,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:462,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:474,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:493,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:496,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:498,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:498,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:501,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:502,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:503,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:503,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:505,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:511,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:511,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:514,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:524,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:532,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:546,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:563,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:572,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:577,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:579,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:592,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:592,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:593,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:595,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:595,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:596,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:596,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:599,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:605,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:610,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:610,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:611,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:611,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:619,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:620,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:620,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:621,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:621,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:623,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:628,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 131
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 629
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - unlang_call_current
    - fr_pair_value_mem_alloc
    - memcpy
    - fr_cond_assert
    - REDEBUG
    - fr_pair_value_memdup
    - MEM
    - fr_pair_list_empty
    - fr_pair_append
    - talloc_get_type_abort
    - log_request_pair_list
    - fr_pair_list_copy
    - fr_pair_afrom_da
    - fr_pair_find_by_da_nested
    - fr_pair_value_bstrndup
    - RDEBUG2
    - pair_update_request
    - fr_nbo_to_uint16
    - RDEBUG
    - unlang_module_yield_to_section
    - eap_session_get
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: void
    signature: void mod_process(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:637,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:646,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:652,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:657,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:657,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:659,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:660,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:665,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:667,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:671,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:673,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:683,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:683,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:684,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:684,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:685,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:687,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:692,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:696,1
    - Dst: eap_mschapv2_compose
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:705,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:706,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 718
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_find_by_da_nested
    - TALLOC_FREE
    - fr_pair_value_mem_alloc
    - memcpy
    - eap_mschapv2_compose
    - fr_cond_assert
    - fr_rand
    - talloc_zero
    - RDEBUG2
    - eap_session_get
    - RWDEBUG
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:725,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:727,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:728,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c:732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 735
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    - strlen
    - talloc_get_type_abort
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:51,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hmac_ctx
    - digest
    argTypes:
    - EVP_MD_CTX*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: pwd_hmac_final
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignFinal
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: void
    signature: void pwd_hmac_final(EVP_MD_CTX *hmac_ctx, uint8_t digest[static SHA256_DIGEST_LENGTH])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:70,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:72,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:72,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:73,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:73,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:75,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:77,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:77,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:78,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:79,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:80,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:81,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:82,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:84,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:86,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:89,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:98,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 6
    argNames:
    - key
    - keylen
    - label
    - label_len
    - result
    - result_bit_len
    argTypes:
    - uint8_t*
    - int
    - char*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: eap_pwd_kdf
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestSignFinal
    - memcpy
    - EVP_PKEY_new_mac_key
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - EVP_sha256
    - EVP_PKEY_free
    - EVP_MD_CTX_reset
    - MEM
    - EVP_DigestSignUpdate
    - htons
    linkageType: ''
    returnType: void
    signature: "void eap_pwd_kdf(uint8_t *key, int keylen, char const *label,\n\t\t\tint
      label_len, uint8_t *result, int result_bit_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:106,1
    - Dst: BN_set_flags
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: consttime_BN
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - BN_set_flags
    - BN_new
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *consttime_BN (void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:120,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:120,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:121,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:121,1
    - Dst: BN_sub
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:123,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:123,1
    - Dst: BN_rshift1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:124,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:125,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:126,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:127,1
    - Dst: const_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:133,1
    - Dst: BN_is_word
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:133,1
    - Dst: const_time_select_int
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:134,1
    - Dst: const_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:135,1
    - Dst: BN_is_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:135,1
    - Dst: const_time_select_int
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:136,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:138,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - fail
    - a
    - p
    - bnctx
    argTypes:
    - bool*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 143
    functionName: legendre
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - consttime_BN
    - BN_is_word
    - BN_is_zero
    - BN_mod_exp_mont_consttime
    - const_time_eq
    - BN_free
    - BN_value_one
    - BN_rshift1
    - MEM
    - BN_sub
    - const_time_select_int
    linkageType: ''
    returnType: int
    signature: int legendre(bool *fail, BIGNUM *a, BIGNUM *p, BN_CTX *bnctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:149,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:149,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:150,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:150,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:151,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:151,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:152,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:152,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:153,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:153,1
    - Dst: EC_GROUP_get_curve
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:154,1
    - Dst: BN_sub
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:156,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:156,1
    - Dst: BN_mod_sqr
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:161,1
    - Dst: BN_mod_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:162,1
    - Dst: BN_mod_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:163,1
    - Dst: BN_mod_add_quick
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:164,1
    - Dst: BN_mod_add_quick
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:165,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:167,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:168,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:169,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:170,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - group
    - y2
    - x
    - bnctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: do_equation
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    - BN_new
    - BN_mod_mul
    - BN_mod_sqr
    - BN_free
    - BN_value_one
    - BN_mod_add_quick
    - MEM
    - BN_sub
    linkageType: ''
    returnType: void
    signature: void do_equation(EC_GROUP *group, BIGNUM *y2, BIGNUM *x, BN_CTX *bnctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:184,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:185,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:186,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:187,1
    - Dst: malloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:192,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:192,1
    - Dst: malloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:193,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:193,1
    - Dst: malloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:194,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:194,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:202,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:202,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:203,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:203,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:204,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:204,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:206,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:206,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:207,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:209,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:209,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:210,1
    - Dst: BN_sub
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:215,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:215,1
    - Dst: BN_rand_range
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:216,1
    - Dst: BN_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:217,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:217,1
    - Dst: BN_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:219,1
    - Dst: BN_mod_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:224,1
    - Dst: BN_mod_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:225,1
    - Dst: const_time_is_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:231,1
    - Dst: BN_is_odd
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:231,1
    - Dst: const_time_select_bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:232,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:232,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:233,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:233,1
    - Dst: BN_mod_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:234,1
    - Dst: const_time_select_int
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:235,1
    - Dst: legendre
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:237,1
    - Dst: const_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:241,1
    - Dst: const_time_select_int
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:242,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:245,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:246,1
    - Dst: free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:247,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:248,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:249,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:250,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:251,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - val
    - p
    - qr
    - qnr
    - bnctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 254
    functionName: is_quadratic_residue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - BN_num_bytes
    - BN_mod_mul
    - BN_rand_range
    - const_time_select_bin
    - memset
    - legendre
    - BN_sub
    - consttime_BN
    - BN_bn2bin
    - const_time_eq
    - BN_free
    - BN_value_one
    - BN_add
    - malloc
    - BN_is_odd
    - BN_bin2bn
    - free
    - BN_copy
    - const_time_is_zero
    - const_time_select_int
    linkageType: ''
    returnType: int
    signature: int is_quadratic_residue(BIGNUM *val, BIGNUM *p, BIGNUM *qr, BIGNUM
      *qnr, BN_CTX *bnctx)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:271,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:271,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:272,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:272,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:296,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:304,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:305,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:309,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:310,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:311,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:312,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:313,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:314,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:315,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:316,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:317,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:318,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:319,1
    - Dst: consttime_BN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:320,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:321,1
    - Dst: EC_GROUP_get_curve
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:325,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:326,1
    - Dst: EC_GROUP_get_order
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:330,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:331,1
    - Dst: BN_num_bits
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:335,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:336,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:337,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:338,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:341,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:342,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:345,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:346,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:349,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:350,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:353,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:354,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:357,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:358,1
    - Dst: BN_rand_range
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:367,1
    - Dst: legendre
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:368,1
    - Dst: BN_rand_range
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:372,1
    - Dst: legendre
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:373,1
    - Dst: BN_sub
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:376,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:376,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:379,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:383,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:393,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:393,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:394,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:395,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:396,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:397,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:398,1
    - Dst: pwd_hmac_final
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:399,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:401,1
    - Dst: eap_pwd_kdf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:402,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:403,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:419,1
    - Dst: const_time_memcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:426,1
    - Dst: const_time_fill_msb
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:427,1
    - Dst: BN_is_odd
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:433,1
    - Dst: do_equation
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:441,1
    - Dst: is_quadratic_residue
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:442,1
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:447,1
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:453,1
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:459,1
    - Dst: const_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:465,1
    - Dst: const_time_select_bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:467,1
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:468,1
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:469,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:475,1
    - Dst: do_equation
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:476,1
    - Dst: BN_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:477,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:477,1
    - Dst: BN_rshift
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:478,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:479,1
    - Dst: BN_sub
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:480,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:481,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:492,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:493,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:495,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:496,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:497,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:498,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:499,1
    - Dst: const_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:503,1
    - Dst: BN_is_odd
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:503,1
    - Dst: const_time_select_bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:504,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:505,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:506,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:507,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:518,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:519,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:520,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:521,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:522,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:523,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:524,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:525,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:526,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:528,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:529,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:530,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:531,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:532,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:533,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:535,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:536,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 184
    argCount: 11
    argNames:
    - request
    - session
    - grp_num
    - password
    - password_len
    - id_server
    - id_server_len
    - id_peer
    - id_peer_len
    - token
    - bnctx
    argTypes:
    - request_t*
    - pwd_session_t*
    - uint16_t
    - char*
    - int
    - char*
    - int
    - char*
    - int
    - uint32_t*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 539
    functionName: compute_password_element
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestSignInit
    - const_time_select
    - EC_POINT_new
    - EC_GROUP_get_order
    - strlen
    - is_quadratic_residue
    - BN_num_bytes
    - MEM
    - eap_pwd_kdf
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_get_curve
    - const_time_fill_msb
    - pwd_hmac_final
    - BN_rand_range
    - const_time_select_bin
    - talloc_zero_array
    - BN_rshift
    - BN_clear_free
    - memset
    - legendre
    - DEBUG
    - BN_sub
    - EVP_DigestSignUpdate
    - consttime_BN
    - BN_mod_exp_mont_consttime
    - EVP_MD_CTX_new
    - BN_num_bits
    - BN_bn2bin
    - const_time_memcmp
    - const_time_eq
    - EVP_sha256
    - BN_value_one
    - BN_add
    - do_equation
    - BN_is_odd
    - talloc_free
    - EVP_PKEY_new_mac_key
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int compute_password_element (request_t *request, pwd_session_t *session,
      uint16_t grp_num,\n\t\t\t      char const *password, int password_len,\n\t\t\t
      \     char const *id_server, int id_server_len,\n\t\t\t      char const *id_peer,
      int id_peer_len,\n\t\t\t      uint32_t *token, BN_CTX *bnctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:546,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:546,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:547,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:547,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:548,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:548,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:550,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:550,1
    - Dst: BN_rand_range
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:552,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:553,1
    - Dst: BN_rand_range
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:556,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:557,1
    - Dst: BN_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:560,1
    - Dst: BN_mod
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:561,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:563,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:564,1
    - Dst: EC_POINT_invert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:568,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:569,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - request
    - session
    - bn_ctx
    argTypes:
    - request_t*
    - pwd_session_t*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 579
    functionName: compute_scalar_element
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EC_POINT_invert
    - BN_new
    - REDEBUG
    - EC_POINT_new
    - BN_rand_range
    - BN_add
    - EC_POINT_mul
    - BN_mod
    - BN_clear_free
    - MEM
    linkageType: ''
    returnType: int
    signature: int compute_scalar_element(request_t *request, pwd_session_t *session,
      BN_CTX *bn_ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:589,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:589,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:590,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:590,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:591,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:591,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:592,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:592,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:593,1
    - Dst: EC_POINT_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:593,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:595,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:595,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:596,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:596,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:597,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:597,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:599,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:600,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:606,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:611,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:612,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:616,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:618,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:621,1
    - Dst: BN_bin2bn
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:622,1
    - Dst: BN_is_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:625,1
    - Dst: BN_is_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:626,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:627,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:628,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:632,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:633,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:638,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:639,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:640,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:645,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:645,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:646,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:647,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:651,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:652,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:658,1
    - Dst: EC_POINT_cmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:659,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:660,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:665,1
    - Dst: EC_POINT_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:666,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:667,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:668,1
    - Dst: BN_cmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:673,1
    - Dst: BN_value_one
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:673,1
    - Dst: EC_POINT_mul
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:674,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:675,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:686,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:687,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:691,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:692,1
    - Dst: EC_POINT_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:698,1
    - Dst: EC_POINT_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:699,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:700,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:701,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:702,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 5
    argNames:
    - request
    - session
    - in
    - in_len
    - bn_ctx
    argTypes:
    - request_t*
    - pwd_session_t*
    - uint8_t*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 705
    functionName: process_peer_commit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - EC_POINT_new
    - EC_POINT_add
    - BN_num_bytes
    - MEM
    - BN_clear_free
    - BN_cmp
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - BN_new
    - BN_is_one
    - EC_GROUP_get_cofactor
    - BN_value_one
    - EC_POINT_mul
    - EC_POINT_get_affine_coordinates
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - EC_POINT_clear_free
    - EC_POINT_cmp
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int process_peer_commit(request_t *request, pwd_session_t *session,
      uint8_t *in, size_t in_len, BN_CTX *bn_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:718,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:718,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:718,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:719,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:719,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:720,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:720,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:726,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:726,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:727,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:727,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:728,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:728,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:736,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:736,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:737,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:738,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:738,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:743,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:744,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:747,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:747,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:748,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:748,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:749,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:750,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:750,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:752,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:752,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:753,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:753,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:754,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:755,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:755,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:760,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:760,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:761,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:761,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:762,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:763,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:763,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:768,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:769,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:773,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:773,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:774,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:774,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:775,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:776,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:776,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:778,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:778,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:779,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:779,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:780,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:781,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:781,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:786,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:786,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:787,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:787,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:788,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:789,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:789,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:794,1
    - Dst: pwd_hmac_final
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:796,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:801,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:802,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:803,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:804,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 4
    argNames:
    - request
    - session
    - out
    - bn_ctx
    argTypes:
    - request_t*
    - pwd_session_t*
    - uint8_t*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 808
    functionName: compute_server_confirm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - BN_new
    - talloc_free
    - EVP_PKEY_new_mac_key
    - pwd_hmac_final
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - BN_bn2bin
    - REDEBUG
    - EVP_sha256
    - memset
    - EVP_PKEY_free
    - BN_free
    - talloc_zero_array
    - BN_num_bytes
    - EC_POINT_get_affine_coordinates
    - MEM
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int compute_server_confirm(request_t *request, pwd_session_t *session,
      uint8_t *out, BN_CTX *bn_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:821,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:821,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:821,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:822,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:822,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:823,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:823,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:829,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:829,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:830,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:830,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:831,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:831,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:839,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:839,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:840,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:841,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:841,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:846,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:847,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:851,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:851,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:852,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:852,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:853,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:854,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:854,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:856,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:856,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:857,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:857,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:858,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:859,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:859,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:864,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:864,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:865,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:865,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:866,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:867,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:867,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:872,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:873,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:876,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:876,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:877,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:877,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:878,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:879,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:879,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:881,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:881,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:882,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:882,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:883,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:884,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:884,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:889,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:889,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:890,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:890,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:891,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:892,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:892,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:897,1
    - Dst: pwd_hmac_final
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:899,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:903,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:904,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:905,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:906,1
    - Dst: BN_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 4
    argNames:
    - request
    - session
    - out
    - bn_ctx
    argTypes:
    - request_t*
    - pwd_session_t*
    - uint8_t*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 910
    functionName: compute_peer_confirm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - BN_new
    - talloc_free
    - EVP_PKEY_new_mac_key
    - pwd_hmac_final
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - BN_bn2bin
    - REDEBUG
    - EVP_sha256
    - memset
    - EVP_PKEY_free
    - BN_free
    - talloc_zero_array
    - BN_num_bytes
    - EC_POINT_get_affine_coordinates
    - MEM
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int compute_peer_confirm(request_t *request, pwd_session_t *session,
      uint8_t *out, BN_CTX *bn_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:921,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:921,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:921,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:922,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:922,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:923,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:923,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:930,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:930,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:931,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:932,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:932,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:933,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:933,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:934,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:935,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:935,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:936,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:936,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:937,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:937,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:938,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:939,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:939,1
    - Dst: pwd_hmac_final
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:940,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:943,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:943,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:945,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:945,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:946,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:946,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:947,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:948,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:948,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:950,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:952,1
    - Dst: pwd_hmac_final
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:954,1
    - Dst: eap_pwd_kdf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:957,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:960,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:961,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:963,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:964,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 5
    argNames:
    - request
    - session
    - peer_confirm
    - msk
    - emsk
    argTypes:
    - UNUSED*
    - pwd_session_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 967
    functionName: compute_keys
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - memcpy
    - talloc_array
    - EVP_PKEY_new_mac_key
    - pwd_hmac_final
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - BN_bn2bin
    - talloc_free
    - EVP_sha256
    - EVP_PKEY_free
    - BN_num_bytes
    - memset
    - MEM
    - eap_pwd_kdf
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int compute_keys(UNUSED request_t *request, pwd_session_t *session,
      uint8_t *peer_confirm, uint8_t *msk, uint8_t *emsk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: EAP_PWD_GET_LENGTH_BIT
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAP_PWD_GET_LENGTH_BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: EAP_PWD_SET_LENGTH_BIT
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAP_PWD_SET_LENGTH_BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: EAP_PWD_GET_MORE_BIT
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAP_PWD_GET_MORE_BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: EAP_PWD_SET_MORE_BIT
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAP_PWD_SET_MORE_BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: EAP_PWD_GET_EXCHANGE
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAP_PWD_GET_EXCHANGE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: EAP_PWD_SET_EXCHANGE
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/eap_pwd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EAP_PWD_SET_EXCHANGE(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: const_time_fill_msb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int const_time_fill_msb(unsigned int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_fill_msb
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: const_time_is_zero
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 1
    functionsReached:
    - const_time_fill_msb
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int const_time_is_zero(unsigned int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_is_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: const_time_eq
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 3
    functionsReached:
    - const_time_is_zero
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int const_time_eq(unsigned int a, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: const_time_eq_u8
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 0
    functionsReached:
    - const_time_eq
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char const_time_eq_u8(unsigned int a, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_is_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: const_time_eq_bin
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 0
    functionsReached:
    - const_time_is_zero
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int const_time_eq_bin(const void *a, const void *b,\n\t\t\t\t\t
      \    size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - true_val
    - false_val
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: const_time_select
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int const_time_select(unsigned int mask,\n\t\t\t\t\t     unsigned
      int true_val,\n\t\t\t\t\t     unsigned int false_val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - true_val
    - false_val
    argTypes:
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: const_time_select_int
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 2
    functionsReached:
    - const_time_select
    linkageType: ''
    returnType: int
    signature: "int const_time_select_int(unsigned int mask, int true_val,\n\t\t\t\t\tint
      false_val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - true_val
    - false_val
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: const_time_select_u8
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 0
    functionsReached:
    - const_time_select
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char const_time_select_u8(unsigned char mask, unsigned char
      true_val, unsigned char false_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_select
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - true_val
    - false_val
    argTypes:
    - char
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: const_time_select_s8
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 0
    functionsReached:
    - const_time_select
    linkageType: ''
    returnType: char
    signature: char const_time_select_s8(char mask, char true_val, char false_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_time_select_u8
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - mask
    - true_val
    - false_val
    - len
    - dst
    argTypes:
    - unsigned char
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: const_time_select_bin
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 2
    functionsReached:
    - const_time_select_u8
    linkageType: ''
    returnType: void
    signature: "void const_time_select_bin(unsigned char mask, const unsigned char
      *true_val,\n\t\t\t\t\t const unsigned char *false_val, size_t len,\n\t\t\t\t\t
      unsigned char *dst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_time_is_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:183,1
    - Dst: const_time_select_int
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 188
    functionName: const_time_memcmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/const_time.h
    functionUses: 1
    functionsReached:
    - const_time_is_zero
    - const_time_select_int
    linkageType: ''
    returnType: int
    signature: int const_time_memcmp(const void *a, const void *b, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:96,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:100,1
    - Dst: EAP_PWD_SET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:105,1
    - Dst: EAP_PWD_SET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:109,1
    - Dst: EAP_PWD_SET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:113,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:117,1
    - Dst: EAP_PWD_SET_MORE_BIT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:125,1
    - Dst: EAP_PWD_SET_LENGTH_BIT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:131,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:132,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:133,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:134,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:142,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:150,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - request
    - session
    - eap_round
    argTypes:
    - request_t*
    - pwd_session_t*
    - eap_round_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 157
    functionName: send_pwd_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - EAP_PWD_SET_LENGTH_BIT
    - EAP_PWD_SET_MORE_BIT
    - memcpy
    - talloc_free
    - REDEBUG
    - ntohs
    - fr_assert
    - talloc_zero_array
    - EAP_PWD_SET_EXCHANGE
    linkageType: ''
    returnType: int
    signature: int send_pwd_request(request_t *request, pwd_session_t *session, eap_round_t
      *eap_round)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:161,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:162,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:163,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:180,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:188,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:199,1
    - Dst: send_pwd_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:200,1
    - Dst: EAP_PWD_GET_LENGTH_BIT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:209,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:211,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:216,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:222,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:226,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:226,1
    - Dst: EAP_PWD_GET_MORE_BIT
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:237,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:239,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:244,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:248,1
    - Dst: EAP_PWD_GET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:254,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:259,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:259,1
    - Dst: EAP_PWD_SET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:262,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:272,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:275,1
    - Dst: EAP_PWD_GET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:289,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:290,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:296,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:303,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:304,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:305,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:313,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:321,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:325,1
    - Dst: password_find
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:328,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:329,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:331,1
    - Dst: compute_password_element
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:335,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:337,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:338,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:340,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:342,1
    - Dst: compute_scalar_element
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:349,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:354,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:354,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:355,1
    - Dst: BN_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:355,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:360,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:361,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:362,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:363,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:370,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:370,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:371,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:371,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:374,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:374,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:375,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:376,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:378,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:379,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:379,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:380,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:381,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:383,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:384,1
    - Dst: BN_num_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:384,1
    - Dst: BN_bn2bin
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:385,1
    - Dst: send_pwd_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:388,1
    - Dst: EAP_PWD_GET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:393,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:394,1
    - Dst: process_peer_commit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:401,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:402,1
    - Dst: compute_server_confirm
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:409,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:410,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:418,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:418,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:420,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:421,1
    - Dst: send_pwd_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:424,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:429,1
    - Dst: EAP_PWD_GET_EXCHANGE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:433,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:434,1
    - Dst: compute_peer_confirm
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:437,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:438,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:441,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:442,1
    - Dst: compute_keys
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:445,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:446,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:454,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:455,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:461,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:469,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:473,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 191
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 474
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_array
    - eap_add_reply
    - REDEBUG
    - send_pwd_request
    - strlen
    - compute_peer_confirm
    - EAP_PWD_SET_EXCHANGE
    - BN_num_bytes
    - process_peer_commit
    - MEM
    - talloc_get_type_abort
    - CRYPTO_memcmp
    - talloc_zero_array
    - EAP_PWD_GET_LENGTH_BIT
    - BN_clear_free
    - memset
    - DEBUG
    - NUM_ELEMENTS
    - BN_new
    - password_find
    - compute_keys
    - BN_bn2bin
    - ntohs
    - RDEBUG2
    - EAP_PWD_GET_EXCHANGE
    - compute_server_confirm
    - RETURN_UNLANG_RCODE
    - compute_password_element
    - EC_POINT_get_affine_coordinates
    - TALLOC_FREE
    - EAP_PWD_GET_MORE_BIT
    - talloc_free
    - eap_session_get
    - compute_scalar_element
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:478,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:479,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:480,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:481,1
    - Dst: EC_POINT_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:482,1
    - Dst: EC_POINT_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:483,1
    - Dst: EC_GROUP_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:484,1
    - Dst: EC_POINT_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:485,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:486,1
    - Dst: BN_clear_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - session
    argTypes:
    - pwd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 490
    functionName: _free_pwd_session
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    - EC_POINT_clear_free
    - EC_GROUP_free
    linkageType: ''
    returnType: int
    signature: int _free_pwd_session(pwd_session_t *session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:494,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:495,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:500,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:500,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:501,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:511,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:531,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:532,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:532,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:535,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:538,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:539,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:541,1
    - Dst: send_pwd_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 548
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - memcpy
    - talloc_get_type_abort
    - fr_rand
    - send_pwd_request
    - talloc_zero
    - strlen
    - talloc_zero_array
    - eap_session_get
    - MEM
    - fr_pair_find_by_da
    - htons
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:552,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:556,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 576
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - cf_log_err_by_child
    - cf_log_err
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:580,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:581,1
    - Dst: BN_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:585,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 592
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    - talloc_get_type_abort
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:596,1
    - Dst: BN_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_pwd/rlm_eap_pwd.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:45,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:52,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:54,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:55,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:56,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:60,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:63,1
    - Dst: MIN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:63,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:69,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:70,1
    - Dst: MIN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:70,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:78,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 7
    argNames:
    - secret
    - secret_len
    - prf_label
    - seed
    - seed_len
    - out
    - out_len
    argTypes:
    - unsigned char*
    - unsigned int
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 80
    functionName: T_PRF
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - talloc_size
    - fr_hmac_sha1
    - strlen
    - MIN
    - memset
    - htons
    linkageType: ''
    returnType: void
    signature: "void T_PRF(unsigned char const *secret, unsigned int secret_len,\n\t
      \  char const *prf_label,\n\t   unsigned char const *seed, unsigned int seed_len,\n\t
      \  unsigned char *out, unsigned int out_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: MIN
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:87,1
    - Dst: ERR_get_error
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:88,1
    - Dst: ERR_error_string
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:90,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:91,1
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: handleErrors
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - ERR_error_string
    - ERR_get_error
    - abort
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS handleErrors(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:110,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:110,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:113,1
    - Dst: EVP_aes_256_gcm
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:113,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:114,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:117,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:118,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:121,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:121,1
    - Dst: EVP_EncryptUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:126,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:127,1
    - Dst: EVP_EncryptUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:132,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:133,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:139,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:139,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:143,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:144,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:147,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 8
    argNames:
    - plaintext
    - plaintext_len
    - aad
    - aad_len
    - key
    - iv
    - ciphertext
    - tag
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - unsigned char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 150
    functionName: eap_fast_encrypt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_gcm
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    - handleErrors
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int eap_fast_encrypt(uint8_t const *plaintext, size_t plaintext_len,\n\t\t
      \    uint8_t const *aad, size_t aad_len,\n\t\t     uint8_t const *key, uint8_t
      *iv, unsigned char *ciphertext,\n\t\t     uint8_t *tag)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:162,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:162,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:165,1
    - Dst: EVP_aes_256_gcm
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:165,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:166,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:169,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:170,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:173,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:173,1
    - Dst: EVP_DecryptUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:178,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:179,1
    - Dst: EVP_DecryptUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:184,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:185,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:191,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:194,1
    - Dst: handleErrors
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:194,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:200,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 8
    argNames:
    - ciphertext
    - ciphertext_len
    - aad
    - aad_len
    - tag
    - key
    - iv
    - plaintext
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 209
    functionName: eap_fast_decrypt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_gcm
    - EVP_CIPHER_CTX_free
    - memcpy
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    - EVP_DecryptFinal_ex
    - handleErrors
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int eap_fast_decrypt(uint8_t const *ciphertext, size_t ciphertext_len,\n\t\t
      \    uint8_t const *aad, size_t aad_len,\n\t\t     uint8_t const *tag, uint8_t
      const *key, uint8_t const *iv, uint8_t *plaintext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:223,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:224,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:226,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:226,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:228,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:229,1
    - Dst: EVP_MD_size
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:231,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:234,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:239,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:243,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:244,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:248,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:249,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:254,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:255,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:257,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:262,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:263,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:264,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:265,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:268,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:270,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:271,1
    - Dst: memset_s
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:273,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 7
    argNames:
    - out
    - out_len
    - evp_md
    - secret
    - secret_len
    - seed
    - seed_len
    argTypes:
    - uint8_t*
    - size_t
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 277
    functionName: crypto_rfc4346_p_hash
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestSignFinal
    - memcpy
    - EVP_PKEY_new_mac_key
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - EVP_MD_size
    - EVP_PKEY_free
    - EVP_MD_CTX_reset
    - memset
    - MEM
    - EVP_DigestSignUpdate
    - memset_s
    linkageType: ''
    returnType: void
    signature: "void crypto_rfc4346_p_hash(uint8_t *out, size_t out_len,\n\t\t\t\t
      \ EVP_MD const *evp_md,\n\t\t\t\t  uint8_t const *secret, size_t secret_len,\n\t\t\t\t
      \ uint8_t const *seed,  size_t seed_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypto_rfc4346_p_hash
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:289,1
    - Dst: EVP_md5
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:289,1
    - Dst: crypto_rfc4346_p_hash
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:290,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - out
    - out_len
    - scratch
    - secret
    - secret_len
    - seed
    - seed_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: eap_crypto_rfc4346_prf
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - crypto_rfc4346_p_hash
    - EVP_sha1
    - EVP_md5
    linkageType: ''
    returnType: void
    signature: "void eap_crypto_rfc4346_prf(uint8_t *out, size_t out_len, uint8_t
      *scratch,\n\t\t\t\t   uint8_t const *secret, size_t secret_len,\n\t\t\t\t   uint8_t
      const *seed, size_t seed_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:306,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:310,1
    - Dst: SSL_get_server_random
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:312,1
    - Dst: SSL_get_client_random
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:314,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:317,1
    - Dst: SSL_get_session
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:317,1
    - Dst: eap_crypto_rfc4346_prf
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - s
    - buffer
    - scratch
    - size
    - prf_label
    argTypes:
    - SSL*
    - uint8_t*
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 319
    functionName: eap_fast_tls_gen_challenge
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast_crypto.c
    functionUses: 0
    functionsReached:
    - memcpy
    - eap_crypto_rfc4346_prf
    - SSL_SESSION_get_master_key
    - SSL_get_server_random
    - strlen
    - SSL_get_session
    - SSL_get_client_random
    linkageType: ''
    returnType: void
    signature: void eap_fast_tls_gen_challenge(SSL *s, uint8_t *buffer, uint8_t *scratch,
      size_t size, char const *prf_label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: RANDFILL
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANDFILL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:193,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:198,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:200,1
    - Dst: fr_tls_utils_keyblock_size_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:202,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:203,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:204,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:205,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:207,1
    - Dst: eap_fast_tls_gen_challenge
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:209,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:210,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:211,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:213,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:214,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:216,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:219,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 221
    functionName: eap_fast_init_keys
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_array
    - talloc_free
    - eap_fast_tls_gen_challenge
    - talloc_get_type_abort
    - talloc
    - memset
    - fr_assert
    - RDEBUG2
    - fr_tls_utils_keyblock_size_get
    linkageType: ''
    returnType: void
    signature: void eap_fast_init_keys(request_t *request, fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:228,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:231,1
    - Dst: T_PRF
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:233,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:235,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:236,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:238,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:239,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:248,1
    - Dst: T_PRF
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:249,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:250,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:252,1
    - Dst: T_PRF
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:253,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - request
    - tls_session
    - msk
    argTypes:
    - request_t*
    - fr_tls_session_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 255
    functionName: eap_fast_update_icmk
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - T_PRF
    - memcpy
    - talloc_array
    - talloc_get_type_abort
    - RDEBUG2
    - RHEXDUMP3
    linkageType: ''
    returnType: void
    signature: void eap_fast_update_icmk(request_t *request, fr_tls_session_t *tls_session,
      uint8_t *msk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:261,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:261,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:262,1
    - Dst: fr_tls_session_t*::record_from_buff
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:264,1
    - Dst: fr_tls_session_t*::record_from_buff
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - tls_session
    - tlv
    - mandatory
    - length
    - data
    argTypes:
    - fr_tls_session_t*
    - fr_dict_attr_t*
    - bool
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: eap_fast_tlv_append
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - fr_tls_session_t*::record_from_buff
    - htons
    linkageType: ''
    returnType: void
    signature: void eap_fast_tlv_append(fr_tls_session_t *tls_session, fr_dict_attr_t
      const *tlv, bool mandatory, int length, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:271,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tls_session
    - error
    argTypes:
    - fr_tls_session_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: eap_fast_send_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - eap_fast_tlv_append
    - htonl
    linkageType: ''
    returnType: void
    signature: void eap_fast_send_error(fr_tls_session_t *tls_session, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:278,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:284,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tls_session
    - code
    argTypes:
    - fr_tls_session_t*
    - fr_radius_packet_code_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: eap_fast_append_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - eap_fast_tlv_append
    - talloc_get_type_abort
    - htons
    linkageType: ''
    returnType: void
    signature: void eap_fast_append_result(fr_tls_session_t *tls_session, fr_radius_packet_code_t
      code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:293,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - request
    - tls_session
    - eap_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 302
    functionName: eap_fast_send_identity_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - eap_fast_tlv_append
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void eap_fast_send_identity_request(request_t *request, fr_tls_session_t
      *tls_session, eap_session_t *eap_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:306,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:311,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:312,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:314,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:316,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:317,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:318,1
    - Dst: RANDFILL
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:319,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:321,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:322,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:323,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:323,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:323,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:325,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:326,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:327,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:329,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:330,1
    - Dst: MIN
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:333,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:333,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:334,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:336,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:337,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:338,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:340,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:341,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:346,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:347,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:348,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:350,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:352,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:353,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:354,1
    - Dst: RAND_bytes
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:354,1
    - Dst: eap_fast_encrypt
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:355,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:359,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:360,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:361,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 364
    functionName: eap_fast_send_pac_tunnel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - RANDFILL
    - fr_time_to_sec
    - htonl
    - memcpy
    - eap_fast_tlv_append
    - eap_fast_encrypt
    - fr_time_add
    - talloc_get_type_abort
    - RDEBUG2
    - fr_assert
    - MIN
    - RHEXDUMP3
    - talloc_strlen
    - RAND_bytes
    - memset
    - htons
    linkageType: ''
    returnType: void
    signature: void eap_fast_send_pac_tunnel(request_t *request, fr_tls_session_t
      *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: MIN
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:368,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:372,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:374,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:375,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:380,1
    - Dst: RANDFILL
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:381,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:383,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:385,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:387,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:388,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 391
    functionName: eap_fast_append_crypto_binding
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - RANDFILL
    - eap_fast_tlv_append
    - talloc_get_type_abort
    - fr_hmac_sha1
    - fr_assert
    - RDEBUG2
    - RHEXDUMP3
    - htons
    linkageType: ''
    returnType: void
    signature: void eap_fast_append_crypto_binding(request_t *request, fr_tls_session_t
      *tls_session)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:402,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:405,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:409,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:413,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:414,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:428,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:431,1
    - Dst: eap_fast_send_error
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:433,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:438,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:443,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:452,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:453,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:459,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:472,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:485,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:489,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:490,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:493,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:498,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:514,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:524,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:530,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:540,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:547,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:553,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:558,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 116
    argCount: 4
    argNames:
    - request
    - tls_session
    - data
    - data_len
    argTypes:
    - request_t*
    - fr_tls_session_t*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 566
    functionName: eap_fast_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - memcpy
    - REDEBUG
    - eap_fast_send_error
    - talloc_get_type_abort
    - ntohs
    - RDEBUG2
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int eap_fast_verify(request_t *request, fr_tls_session_t *tls_session,
      uint8_t const *data, unsigned int data_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:588,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:590,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:593,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:595,1
    - Dst: fr_pair_afrom_child_num
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:595,1
    - Dst: eap_fast_decode_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:598,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:602,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:602,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:605,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:606,1
    - Dst: fr_pair_raw_afrom_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:608,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 615
    functionName: eap_fast_decode_pair
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - fr_value_box_from_network
    - fr_pair_append
    - FR_DBUFF_TMP
    - fr_pair_afrom_child_num
    - fr_dict_attr_child_by_num
    - eap_fast_decode_pair
    - fr_pair_raw_afrom_pair
    - MEM
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t    uint8_t const *data, size_t data_len,\n\t\t\t\t
      \   void *decode_ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:630,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:641,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:649,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:649,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:650,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:657,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:663,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:668,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:672,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:681,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:685,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:690,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:696,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:698,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:699,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:706,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 5
    argNames:
    - eap_session_t *eap_session
    - tls_session
    - request
    - reply
    - reply_list
    argTypes:
    - UNUSED
    - fr_tls_session_t*
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 712
    functionName: process_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_next
    - memcpy
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - eap_fast_tlv_append
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - RHEXDUMP3
    - fr_pair_list_head
    - fr_dict_vendor_num_by_da
    linkageType: ''
    returnType: void
    signature: "void process_reply(UNUSED eap_session_t *eap_session,\n\t\t\t\t\t\t
      \ fr_tls_session_t *tls_session,\n\t\t\t\t\t\t  request_t *request,\n\t\t\t\t\t\t
      \ fr_packet_t *reply, fr_pair_list_t *reply_list)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:722,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:724,1
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:729,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:730,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:730,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:732,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:741,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:741,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:742,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:747,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:747,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:748,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:749,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:751,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:752,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:759,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:768,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:768,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:770,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:772,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:779,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:784,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:784,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:785,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:791,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:791,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:793,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:799,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:799,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:800,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:801,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:802,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:804,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:804,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:805,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:806,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:807,1
    - Dst: eap_virtual_server
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:815,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:823,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:828,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:833,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:839,1
    - Dst: request_alloc_internal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:844,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:846,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:847,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:849,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:854,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:860,1
    - Dst: request_data_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:866,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:868,1
    - Dst: request_data_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:876,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:878,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:890,1
    - Dst: process_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:899,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:920,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 92
    argCount: 5
    argNames:
    - request
    - mctx
    - eap_session
    - tls_session
    - tlv_eap_payload
    argTypes:
    - request_t*
    - module_ctx_t*
    - eap_session_t*
    - fr_tls_session_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 923
    functionName: eap_fast_eap_payload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - fr_pair_prepend_by_da
    - REDEBUG
    - process_reply
    - fr_pair_value_memdup
    - request_local_alloc_internal
    - RHEXDUMP3
    - MEM
    - request_alloc_internal
    - fr_pair_list_empty
    - fr_pair_append
    - talloc_get_type_abort
    - log_request_pair_list
    - memset
    - fr_pair_value_from_str
    - fr_pair_afrom_da
    - RWDEBUG2
    - fr_pair_value_bstrndup
    - fr_pair_list_copy_by_da
    - talloc_steal
    - request_data_add
    - fr_assert
    - RDEBUG2
    - fr_packet_free
    - fr_pair_find_by_da
    - fr_pair_copy
    - talloc_free
    - eap_virtual_server
    - talloc_zero
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: "fr_radius_packet_code_t eap_fast_eap_payload(request_t *request, module_ctx_t
      const *mctx, eap_session_t *eap_session,\n\t\t\t\t    fr_tls_session_t *tls_session,
      fr_pair_t *tlv_eap_payload)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:929,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:931,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:932,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:934,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:935,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:937,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:938,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:939,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - request
    - eap_session_t *eap_session
    - tls_session
    - binding
    argTypes:
    - request_t*
    - UNUSED
    - fr_tls_session_t*
    - eap_tlv_crypto_binding_tlv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 946
    functionName: eap_fast_crypto_binding
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_get_type_abort
    - fr_hmac_sha1
    - RDEBUG2
    - RHEXDUMP3
    - memcmp
    - memset
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: "fr_radius_packet_code_t eap_fast_crypto_binding(request_t *request,
      UNUSED eap_session_t *eap_session,\n\t\t\t\t       fr_tls_session_t *tls_session,
      eap_tlv_crypto_binding_tlv_t *binding)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:951,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:955,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:957,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:959,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:961,1
    - Dst: eap_fast_eap_payload
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:963,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:970,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:994,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:999,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1008,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1014,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1020,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1024,1
    - Dst: eap_fast_crypto_binding
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1032,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 79
    argCount: 5
    argNames:
    - request
    - mctx
    - eap_session
    - tls_session
    - fast_vps
    argTypes:
    - request_t*
    - module_ctx_t*
    - eap_session_t*
    - fr_tls_session_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 1040
    functionName: eap_fast_process_tlvs
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_next
    - memcpy
    - eap_fast_crypto_binding
    - eap_fast_eap_payload
    - talloc_get_type_abort
    - fr_time_max
    - RDEBUG2
    - fr_pair_list_head
    - memset
    - fr_dict_root
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: "fr_radius_packet_code_t eap_fast_process_tlvs(request_t *request,
      module_ctx_t const *mctx, eap_session_t *eap_session,\n\t\t\t\t     fr_tls_session_t
      *tls_session, fr_pair_list_t *fast_vps)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1054,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1063,1
    - Dst: eap_fast_verify
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1068,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1073,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1075,1
    - Dst: SSL_CIPHER_description
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1075,1
    - Dst: SSL_get_current_cipher
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1075,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1078,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1084,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1085,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1088,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1096,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1097,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1097,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1099,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1099,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1100,1
    - Dst: eap_fast_init_keys
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1105,1
    - Dst: eap_fast_send_identity_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1107,1
    - Dst: eap_fast_decode_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1113,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1113,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1116,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1117,1
    - Dst: eap_fast_process_tlvs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1118,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1119,1
    - Dst: eap_fast_append_result
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1133,1
    - Dst: eap_fast_update_icmk
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1135,1
    - Dst: eap_fast_append_crypto_binding
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1136,1
    - Dst: eap_fast_append_result
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1144,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1147,1
    - Dst: eap_fast_send_pac_tunnel
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1148,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1161,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1167,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1177,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1178,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1179,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1180,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1185,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 4
    argNames:
    - request
    - mctx
    - eap_session
    - tls_session
    argTypes:
    - request_t*
    - module_ctx_t*
    - eap_session_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1046
    functionDepth: 5
    functionLinenumber: 1046
    functionLinenumberEnd: 1190
    functionName: eap_fast_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - SSL_CIPHER_description
    - eap_add_reply
    - REDEBUG
    - fr_time_add
    - fr_time_lteq
    - fr_pair_list_free
    - eap_fast_init_keys
    - eap_fast_append_result
    - eap_fast_verify
    - talloc_get_type_abort
    - log_request_pair_list
    - eap_fast_send_pac_tunnel
    - SSL_session_reused
    - fr_pair_list_init
    - fr_time_delta_unwrap
    - eap_fast_append_crypto_binding
    - fr_assert
    - RDEBUG2
    - eap_fast_send_identity_request
    - eap_fast_decode_pair
    - SSL_get_current_cipher
    - fr_time_delta_wrap
    - RERROR
    - fr_time_wrap
    - eap_fast_update_icmk
    - strstr
    - fr_time_eq
    - eap_fast_process_tlvs
    - fr_dict_root
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: fr_radius_packet_code_t eap_fast_process(request_t *request, module_ctx_t
      const *mctx, eap_session_t *eap_session, fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - inst
    argTypes:
    - TALLOC_CTX*
    - rlm_eap_fast_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1210
    functionName: eap_fast_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: eap_fast_tunnel_t
    signature: eap_fast_tunnel_t *eap_fast_alloc(TALLOC_CTX *ctx, rlm_eap_fast_t const
      *inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1215,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1218,1
    - Dst: SSL_get_server_random
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1220,1
    - Dst: SSL_get_client_random
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1221,1
    - Dst: T_PRF
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tls_session
    - s
    - secret
    - secret_len
    argTypes:
    - fr_tls_session_t*
    - SSL*
    - uint8_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1226
    functionName: eap_fast_session_ticket
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - T_PRF
    - talloc_get_type_abort
    - fr_assert
    - SSL_get_server_random
    - SSL_get_client_random
    linkageType: ''
    returnType: void
    signature: "void eap_fast_session_ticket(fr_tls_session_t *tls_session, const
      SSL *s,\n\t\t\t\t    uint8_t *secret, int *secret_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1234,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1240,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1244,1
    - Dst: eap_fast_session_ticket
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1246,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1248,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - s
    - secret
    - secret_len
    - peer_ciphers
    - cipher
    - arg
    argTypes:
    - SSL*
    - void*
    - int*
    - UNUSED*
    - UNUSED**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1228
    functionDepth: 3
    functionLinenumber: 1228
    functionLinenumberEnd: 1253
    functionName: _session_secret
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - eap_fast_session_ticket
    - RDEBUG2
    - fr_tls_session_request
    - memset
    linkageType: ''
    returnType: int
    signature: "int _session_secret(SSL *s, void *secret, int *secret_len,\n\t\t\t
      \  UNUSED STACK_OF(SSL_CIPHER) *peer_ciphers,\n\t\t\t   UNUSED SSL_CIPHER const
      **cipher, void *arg)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1264,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1265,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1277,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1278,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1280,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1281,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1283,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1286,1
    - Dst: fr_tls_session_alert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1287,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1288,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1291,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1293,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1294,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1294,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1303,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1314,1
    - Dst: eap_fast_decrypt
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1320,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1328,1
    - Dst: eap_fast_decode_pair
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1330,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1331,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1335,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1337,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1339,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1342,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1342,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1342,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1343,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1350,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1351,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1352,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1353,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1354,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1356,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1362,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1374,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1374,1
    - Dst: SSL_set_session_secret_cb
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1384,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1385,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 101
    argCount: 4
    argNames:
    - s
    - data
    - len
    - arg
    argTypes:
    - SSL*
    - uint8_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1262
    functionDepth: 3
    functionLinenumber: 1262
    functionLinenumberEnd: 1390
    functionName: _session_ticket
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 1
    functionsReached:
    - SSL_set_session_secret_cb
    - memcpy
    - talloc_array
    - fr_time_add
    - RHEXDUMP3
    - fr_strerror
    - fr_pair_list_free
    - fr_pair_list_empty
    - talloc_get_type_abort
    - fr_tls_session_alert
    - memcmp
    - fr_tls_session_request
    - memset
    - fr_pair_list_init
    - ntohs
    - RDEBUG2
    - fr_assert
    - eap_fast_decode_pair
    - RERROR
    - fr_pair_list_next
    - fr_time_wrap
    - talloc_free
    - fr_time_eq
    - eap_fast_decrypt
    - fr_pair_list_head
    linkageType: ''
    returnType: int
    signature: int _session_ticket(SSL *s, uint8_t const *data, int len, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1394,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1395,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1399,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1399,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1401,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1401,1
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1413,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1414,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1443,1
    - Dst: eap_fast_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1448,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1450,1
    - Dst: fr_tls_session_send
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1457,1
    - Dst: eap_tls_request
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1458,1
    - Dst: eap_tls_success
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1465,1
    - Dst: fr_tls_cache_pending_push
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1489,1
    - Dst: eap_tls_fail
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1392
    functionDepth: 6
    functionLinenumber: 1392
    functionLinenumberEnd: 1509
    functionName: mod_handshake_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - eap_fast_process
    - fr_tls_session_send
    - eap_tls_success
    - fr_tls_cache_pending_push
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - fr_assert
    - eap_tls_request
    - eap_tls_fail
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_handshake_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1517,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1522,1
    - Dst: eap_tls_process
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1528
    functionName: mod_handshake_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - unlang_module_yield
    - eap_tls_process
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_handshake_process(UNUSED unlang_result_t *p_result,
      UNUSED module_ctx_t const *mctx,\n\t\t\t\t\t     request_t *request)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1535,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1536,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1537,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1550,1
    - Dst: eap_tls_session_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1557,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1563,1
    - Dst: SSL_set_cipher_list
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1565,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1566,1
    - Dst: SSL_set_options
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1575,1
    - Dst: eap_fast_tlv_append
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1585,1
    - Dst: eap_tls_compose
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1591,1
    - Dst: SET_START
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1592,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1595,1
    - Dst: fr_tls_session_t*::record_init
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1599,1
    - Dst: eap_fast_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1600,1
    - Dst: SSL_set_session_ticket_ext_cb
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1603,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1533
    functionDepth: 2
    functionLinenumber: 1533
    functionLinenumberEnd: 1609
    functionName: mod_session_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - SSL_set_session_ticket_ext_cb
    - eap_tls_session_init
    - SSL_set_options
    - RERROR
    - talloc_free
    - eap_fast_tlv_append
    - REDEBUG
    - eap_tls_compose
    - talloc_get_type_abort
    - RDEBUG2
    - SET_START
    - fr_tls_session_t*::record_init
    - eap_session_get
    - talloc_get_type_abort_const
    - eap_fast_alloc
    - SSL_set_cipher_list
    - fr_pair_find_by_da
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_session_init(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1613,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1614,1
    - Dst: fr_tls_ctx_alloc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1620
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - fr_tls_ctx_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1624,1
    - Dst: likely
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1626,1
    - Dst: SSL_CTX_free
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1630
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - likely
    - talloc_get_type_abort
    - SSL_CTX_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1637,1
    - Dst: eap_name2type
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1640,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1642,1
    - Dst: eap_tls_conf_parse
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1651,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1654,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1658,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1659,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1668,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1672,1
    - Dst: cf_log_err_by_child
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1673,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1677,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1679,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c:1680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1683
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c
    functionUses: 0
    functionsReached:
    - fr_md5_calc
    - eap_tls_conf_parse
    - talloc_get_type_abort
    - fr_time_delta_ispos
    - cf_log_err_by_child
    - fr_assert
    - talloc_strlen
    - eap_name2type
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:96,1
    - Dst: fr_perm_getpwnam
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:99,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:100,1
    - Dst: fr_perm_getgrnam
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:104,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:105,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:106,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:123,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - request
    - name
    argTypes:
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 135
    functionName: unix_check_group
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - talloc_free
    - fr_perm_getgrnam
    - strcmp
    - fr_perm_getpwnam
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void unix_check_group(request_t *request, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:150,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:154,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:156,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:156,1
    - Dst: unix_check_group
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:157,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: unix_group_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - fr_skip_whitespace
    - unix_check_group
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unix_group_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:177,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:179,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:187,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 198
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - PERROR
    - xlat_func_args_set
    - talloc_zero_array
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:223,1
    - Dst: getpwnam
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:229,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:243,1
    - Dst: getspnam
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:245,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:250,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:262,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:263,1
    - Dst: getusershell
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:273,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:274,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:275,1
    - Dst: endusershell
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:279,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:281,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:291,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:292,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:299,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:300,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:310,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:311,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:325,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:325,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c:326,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 329
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_unix/rlm_unix.c
    functionUses: 1
    functionsReached:
    - fr_time_to_sec
    - getpwnam
    - getusershell
    - endusershell
    - pair_update_control
    - REDEBUG
    - fr_pair_value_strdup
    - strlen
    - strcmp
    - MEM
    - fr_pair_find_by_da
    - getspnam
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, UNUSED module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:107,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sent
    - rctx
    argTypes:
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: dhcpv4_queue_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void dhcpv4_queue_resume(bool sent, void *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:116,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:119,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: dhcpv4_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t dhcpv4_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, UNUSED request_t *request)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:132,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:146,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:148,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:155,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:160,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:171,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:175,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:185,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:195,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:197,1
    - Dst: fr_dhcpv4_encode
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:204,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:206,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:223,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:225,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:234,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:235,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:236,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:237,1
    - Dst: fr_udp_queue_write
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:240,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:242,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:246,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:250,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 251
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c
    functionUses: 0
    functionsReached:
    - ntohl
    - FR_PROTO_HEX_DUMP
    - fr_pair_find_by_da_nested
    - RDEBUG
    - RPEDEBUG
    - talloc_free
    - REDEBUG
    - talloc_get_type_abort
    - RINDENT
    - talloc_zero
    - log_request_pair_list
    - unlang_module_yield
    - REXDENT
    - fr_udp_queue_write
    - fr_pair_find_by_da
    - fr_dhcpv4_encode
    linkageType: ''
    returnType: void
    signature: void mod_process(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:259,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:260,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:263,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:265,1
    - Dst: fr_udp_queue_alloc
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:271,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:273,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 278
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - talloc_get_type_abort
    - fr_strerror
    - fr_udp_queue_alloc
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:291,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:298,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:303,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:308,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:315,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 319
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_dhcpv4/rlm_dhcpv4.c
    functionUses: 0
    functionsReached:
    - FR_INTEGER_BOUND_CHECK
    - cf_log_err
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:50,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:51,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:51,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:58,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:60,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:60,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:65,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:71,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - txn
    argTypes:
    - int
    - sigtran_transaction_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 81
    functionName: sigtran_client_do_transaction
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - write
    - ERROR
    - read
    - fr_syserror
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int sigtran_client_do_transaction(int fd, sigtran_transaction_t *txn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:87,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:89,1
    - Dst: sigtran_client_do_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:90,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - txn
    argTypes:
    - sigtran_transaction_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: sigtran_client_do_ctrl_transaction
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - fr_assert
    - pthread_mutex_unlock
    - sigtran_client_do_transaction
    linkageType: ''
    returnType: int
    signature: int sigtran_client_do_ctrl_transaction(sigtran_transaction_t *txn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:101,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:101,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - int
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: _sigtran_pipe_error
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - ERROR
    - fr_syserror
    linkageType: ''
    returnType: void
    signature: void _sigtran_pipe_error(UNUSED fr_event_list_t *el, int fd, UNUSED
      int flags, int fd_errno, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:116,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:118,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:118,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:123,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:131,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:134,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: _sigtran_pipe_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - ERROR
    - read
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void _sigtran_pipe_read(UNUSED fr_event_list_t *el, int fd, UNUSED
      int flags, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:153,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:154,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:154,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:158,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:160,1
    - Dst: sigtran_client_do_ctrl_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:164,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:165,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:167,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:169,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:172,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:173,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:180,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 186
    functionName: sigtran_client_thread_register
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - ERROR
    - sigtran_client_do_ctrl_transaction
    - talloc_free
    - fr_syserror
    - fr_event_fd_insert
    - fr_assert
    - socketpair
    - talloc_zero
    - close
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sigtran_client_thread_register(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:197,1
    - Dst: sigtran_client_do_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:205,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:206,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:207,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:210,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:211,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:213,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - el
    - req_pipe_fd
    argTypes:
    - fr_event_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: sigtran_client_thread_unregister
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - talloc_zero
    - fr_event_fd_delete
    - sigtran_client_do_transaction
    - close
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sigtran_client_thread_unregister(fr_event_list_t *el, int req_pipe_fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:229,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:231,1
    - Dst: sigtran_client_do_ctrl_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:233,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:234,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:235,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:238,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:239,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - out
    - conn_conf
    argTypes:
    - sigtran_conn_t**
    - sigtran_conn_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: sigtran_client_link_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - ERROR
    - sigtran_client_do_ctrl_transaction
    - memcpy
    - talloc_free
    - talloc_get_type_abort
    - talloc_zero
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sigtran_client_link_up(sigtran_conn_t const **out, sigtran_conn_conf_t
      const *conn_conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:256,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:258,1
    - Dst: sigtran_client_do_ctrl_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:260,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:261,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:262,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:265,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - sigtran_conn_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: sigtran_client_link_down
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - ERROR
    - sigtran_client_do_ctrl_transaction
    - memcpy
    - talloc_free
    - talloc_zero
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sigtran_client_link_down(sigtran_conn_t const **conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: sigtran_client_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void sigtran_client_signal(module_ctx_t const *mctx, UNUSED request_t
      *request, UNUSED fr_signal_t action)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:282,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:284,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:295,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:301,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:302,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:303,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:305,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:306,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:307,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:307,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:308,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:308,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:309,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:310,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:311,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:313,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:313,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:314,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:314,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:315,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:316,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:317,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:319,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:319,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:320,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:320,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:321,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:322,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:323,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:324,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:330,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:331,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:332,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:333,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:334,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:336,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:337,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:338,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:338,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:339,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:339,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:340,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:341,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:342,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:344,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:344,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:345,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:345,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:346,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:347,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:348,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:350,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:351,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:351,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:352,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:353,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:354,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:356,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:356,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:357,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:357,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:358,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:359,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:360,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:362,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:362,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:363,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:363,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:364,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:365,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:366,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:367,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:386,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:393,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 86
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 396
    functionName: sigtran_client_map_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TALLOC_FREE
    - talloc_free
    - fr_pair_append
    - talloc_get_type_abort
    - RINDENT
    - RDEBUG2
    - fr_assert
    - RETURN_UNLANG_RCODE
    - REXDENT
    - fr_pair_value_memdup_buffer
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sigtran_client_map_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:414,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:416,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:419,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:422,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:423,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:425,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:435,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:442,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:443,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:447,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:449,1
    - Dst: sigtran_ascii_to_tbcd
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:453,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:454,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:459,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:459,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:461,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:462,1
    - Dst: fr_box_octets_buffer
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:462,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:468,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:469,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:469,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_sigtran/client.c:473,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 5
    argNames:
    - p_result
    - inst
    - request
    - conn
    - fd
    argTypes:
    - unlang_result_t*
    - rlm_sigtran_t*
    - request_t*
    - sigtran_conn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 474
    functionName: sigtran_client_map_send_auth_info
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/client.c
    functionUses: 0
    functionsReached:
    - write
    - ERROR
    - sigtran_ascii_to_tbcd
    - talloc_free
    - REDEBUG
    - fr_box_strvalue_buffer
    - fr_syserror
    - tmpl_aexpand
    - talloc
    - fr_assert
    - talloc_zero
    - RDEBUG2
    - RDEBUG3
    - unlang_module_yield
    - talloc_strlen
    - fr_box_octets_buffer
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t sigtran_client_map_send_auth_info(unlang_result_t
      *p_result, rlm_sigtran_t const *inst, request_t *request,\n\t\t\t\t  \t\t  sigtran_conn_t
      const *conn, int fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:201,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:202,1
    - Dst: sigtran_client_map_send_auth_info
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 1
    functionsReached:
    - sigtran_client_map_send_auth_info
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:225,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:232,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:233,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:238,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:248,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:251,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:258,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:264,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:269,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:285,1
    - Dst: sigtran_sccp_global_title
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:291,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:293,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:300,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:301,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:301,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 4
    argNames:
    - ctx
    - out
    - conf
    - cs
    argTypes:
    - TALLOC_CTX*
    - struct sockaddr_sccp*
    - sigtran_sccp_address_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 304
    functionName: sigtran_sccp_sockaddr_from_conf
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - memcpy
    - fr_box_octets
    - talloc_array_length
    - talloc_strlen
    - sigtran_sccp_global_title
    - STRINGIFY
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int sigtran_sccp_sockaddr_from_conf(TALLOC_CTX *ctx,\n\t\t\t\t\t   struct
      sockaddr_sccp *out,\n\t\t\t\t\t   sigtran_sccp_address_t *conf, CONF_SECTION
      *cs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:308,1
    - Dst: sigtran_client_thread_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:311,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 0
    functionsReached:
    - sigtran_client_thread_register
    - ERROR
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:324,1
    - Dst: sigtran_client_thread_unregister
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 0
    functionsReached:
    - sigtran_client_thread_unregister
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:333,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:339,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:342,1
    - Dst: MTP3_PC_CHECK
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:357,1
    - Dst: MTP3_PC_CHECK
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:358,1
    - Dst: sigtran_sccp_sockaddr_from_conf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:360,1
    - Dst: sigtran_sccp_sockaddr_from_conf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:362,1
    - Dst: sigtran_event_start
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:383,1
    - Dst: sigtran_client_link_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 392
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 0
    functionsReached:
    - sigtran_sccp_sockaddr_from_conf
    - sigtran_client_link_up
    - talloc_get_type_abort
    - fr_table_value_by_str
    - sigtran_event_start
    - cf_log_err
    - MTP3_PC_CHECK
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: MTP3_PC_CHECK
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MTP3_PC_CHECK(_x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:399,1
    - Dst: sigtran_client_link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:407,1
    - Dst: sigtran_event_exit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 412
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/rlm_sigtran.c
    functionUses: 0
    functionsReached:
    - sigtran_client_link_down
    - talloc_get_type_abort
    - sigtran_event_exit
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:43,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:48,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - target
    - level
    - log
    argTypes:
    - UNUSED*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 57
    functionName: do_log
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/log.c
    functionUses: 0
    functionsReached:
    - INFO
    - DEBUG2
    - ERROR
    linkageType: ''
    returnType: void
    signature: void do_log(UNUSED struct log_target *target, unsigned int level, const
      char *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:67,1
    - Dst: log_target_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:72,1
    - Dst: log_set_use_color
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:73,1
    - Dst: log_set_print_extended_timestamp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:74,1
    - Dst: log_set_print_timestamp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:75,1
    - Dst: log_set_print_category
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:77,1
    - Dst: log_set_print_filename
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:78,1
    - Dst: log_set_print_category
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:80,1
    - Dst: log_set_print_filename
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:81,1
    - Dst: log_add_target
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:84,1
    - Dst: log_set_all_filter
      Src: /src/freeradius-server/src/modules/rlm_sigtran/log.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: sigtran_log_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/log.c
    functionUses: 0
    functionsReached:
    - log_set_use_color
    - log_set_all_filter
    - log_add_target
    - log_init
    - log_set_print_category
    - log_set_print_filename
    - log_target_create
    - log_set_print_extended_timestamp
    - log_set_print_timestamp
    linkageType: ''
    returnType: void
    signature: void sigtran_log_init(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_fd_unregister
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:90,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ofd
    argTypes:
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: _ofd_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - osmo_fd_unregister
    - close
    linkageType: ''
    returnType: int
    signature: int _ofd_free(struct osmo_fd *ofd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:111,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:111,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:116,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:117,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - fd
    - func
    - data
    argTypes:
    - TALLOC_CTX*
    - int
    - osmo_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: ofd_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_set_destructor
    - talloc_zero
    - MEM
    - osmo_fd_register
    linkageType: ''
    returnType: struct osmo_fd
    signature: struct osmo_fd *ofd_create(TALLOC_CTX *ctx, int fd, osmo_cb_func func,
      void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct mtp_link*::shutdown
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mtp3_link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: _mtp3_link_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - struct mtp_link*::shutdown
    linkageType: ''
    returnType: int
    signature: int _mtp3_link_free(struct mtp_link *mtp3_link)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mtp_m3ua_reg_req_add
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:145,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:153,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:154,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:156,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:163,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:164,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - client
    - conf
    argTypes:
    - UNUSED
    - struct mtp_m3ua_client_link*
    - sigtran_m3ua_route_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 171
    functionName: sigtran_m3ua_route_from_conf
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - mtp_m3ua_reg_req_add
    - talloc_array_length
    - llist_add_tail
    linkageType: ''
    returnType: int
    signature: "int sigtran_m3ua_route_from_conf(UNUSED TALLOC_CTX *ctx,\n\t\t\t\t\tstruct
      mtp_m3ua_client_link *client,\n\t\t\t\t\tsigtran_m3ua_route_t *conf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:195,1
    - Dst: bsc_data_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:200,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:201,1
    - Dst: bsc_data_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:203,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:208,1
    - Dst: mtp_link_set_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:208,1
    - Dst: sigtran_sscp_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:216,1
    - Dst: mtp_link_set_sccp_data_available_cb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:217,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:219,1
    - Dst: mtp_link_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:219,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:220,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:221,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:227,1
    - Dst: mtp_m3ua_client_link_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:227,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:232,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:235,1
    - Dst: sigtran_m3ua_route_from_conf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:251,1
    - Dst: struct mtp_link*::reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - out
    - conf
    argTypes:
    - TALLOC_CTX*
    - sigtran_conn_t**
    - sigtran_conn_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 262
    functionName: event_link_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - mtp_link_alloc
    - fr_ipaddr_to_sockaddr
    - bsc_data_alloc
    - talloc_set_destructor
    - mtp_link_set_alloc
    - talloc_strdup
    - sigtran_m3ua_route_from_conf
    - mtp_m3ua_client_link_init
    - talloc_zero
    - struct mtp_link*::reset
    - sigtran_sscp_init
    - mtp_link_set_sccp_data_available_cb
    - MEM
    linkageType: ''
    returnType: int
    signature: int event_link_up(TALLOC_CTX *ctx, sigtran_conn_t **out, sigtran_conn_conf_t
      *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - sigtran_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: event_link_down
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int event_link_down(sigtran_conn_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:286,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:291,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:302,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:304,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:305,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:307,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:308,1
    - Dst: select
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:314,1
    - Dst: FD_ISSET
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:320,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:323,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ofd
    - txn
    argTypes:
    - struct osmo_fd*
    - sigtran_transaction_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 328
    functionName: sigtran_event_submit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - write
    - ERROR
    - FD_SET
    - memcpy
    - FD_ZERO
    - fr_syserror
    - FD_ISSET
    - select
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sigtran_event_submit(struct osmo_fd *ofd, sigtran_transaction_t
      *txn)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:346,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:353,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:355,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:355,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:359,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:363,1
    - Dst: sigtran_event_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:367,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:369,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:377,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:379,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:389,1
    - Dst: ofd_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:391,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:401,1
    - Dst: sigtran_event_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:404,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:405,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:409,1
    - Dst: event_link_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:410,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:418,1
    - Dst: event_link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:419,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:419,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:428,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:430,1
    - Dst: sigtran_tcap_outgoing
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:431,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:440,1
    - Dst: sigtran_event_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:444,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:445,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:455,1
    - Dst: sigtran_event_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:459,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 98
    argCount: 2
    argNames:
    - ofd
    - what
    argTypes:
    - struct osmo_fd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 462
    functionName: event_process_request
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - ERROR
    - talloc_free
    - read
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - sigtran_tcap_outgoing
    - event_link_down
    - event_link_up
    - sigtran_event_submit
    - DEBUG3
    - ofd_create
    linkageType: ''
    returnType: int
    signature: int event_process_request(struct osmo_fd *ofd, unsigned int what)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:470,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:472,1
    - Dst: sigtran_log_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:477,1
    - Dst: socketpair
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:479,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:480,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:480,1
    - Dst: ofd_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:483,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:485,1
    - Dst: sem_post
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:487,1
    - Dst: osmo_select_main
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:493,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:499,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:500,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:501,1
    - Dst: osmo_fd_fill_fds
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:503,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:506,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:513,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - instance
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 518
    functionName: sigtran_event_loop
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 0
    functionsReached:
    - ERROR
    - FD_ZERO
    - talloc_free
    - fr_syserror
    - osmo_select_main
    - sigtran_log_init
    - sem_post
    - talloc_init_const
    - socketpair
    - fr_assert
    - osmo_fd_fill_fds
    - DEBUG2
    - DEBUG3
    - ofd_create
    linkageType: ''
    returnType: void
    signature: void *sigtran_event_loop(UNUSED void *instance)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:527,1
    - Dst: sigaddset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:528,1
    - Dst: sem_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:530,1
    - Dst: sigtran_sccp_global_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:532,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:533,1
    - Dst: pthread_sigmask
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:545,1
    - Dst: fr_thread_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:547,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:548,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:548,1
    - Dst: sem_wait
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:552,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:558,1
    - Dst: sigtran_client_do_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:561,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:563,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:564,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:567,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 574
    functionName: sigtran_event_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 1
    functionsReached:
    - ERROR
    - talloc_free
    - fr_syserror
    - sem_init
    - sigaddset
    - pthread_sigmask
    - sem_wait
    - sigtran_sccp_global_init
    - talloc_zero
    - sigtran_client_do_transaction
    - DEBUG2
    - sigemptyset
    - fr_thread_create
    linkageType: ''
    returnType: int
    signature: int sigtran_event_start(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:583,1
    - Dst: sigtran_client_do_transaction
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:586,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:587,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:588,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:591,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:593,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:597,1
    - Dst: sigtran_sccp_global_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/event.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 602
    functionName: sigtran_event_exit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/event.c
    functionUses: 1
    functionsReached:
    - ERROR
    - sigtran_sccp_global_free
    - talloc_free
    - pthread_join
    - talloc_zero
    - sigtran_client_do_transaction
    - close
    linkageType: ''
    returnType: int
    signature: int sigtran_event_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:66,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: sigtran_txn_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 0
    functionsReached:
    - CMP
    - CMP_RETURN
    linkageType: ''
    returnType: int
    signature: int sigtran_txn_cmp(void const *one, void const *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:73,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:75,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:80,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:80,1
    - Dst: sigtran_event_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:84,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:85,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: sigtran_tcap_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_syserror
    - talloc_get_type_abort
    - sigtran_event_submit
    - fr_rb_delete
    linkageType: ''
    returnType: void
    signature: void sigtran_tcap_timeout(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:124,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:128,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:129,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:132,1
    - Dst: mtp_m3ua_link_is_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:134,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:135,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:140,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:141,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:148,1
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:149,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:150,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:151,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:153,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:154,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:154,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:160,1
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:161,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:162,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:163,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:165,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:166,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:166,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:172,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:183,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:185,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:186,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:188,1
    - Dst: sccp_write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:198,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:201,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 4
    argNames:
    - msg_in
    - ctx
    - txn
    - ofd
    argTypes:
    - UNUSED*
    - void*
    - sigtran_transaction_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 209
    functionName: sigtran_tcap_outgoing
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 1
    functionsReached:
    - DEBUG4
    - ERROR
    - memcpy
    - fr_rb_num_elements
    - mtp_m3ua_link_is_up
    - msgb_put
    - msgb_alloc
    - talloc_get_type_abort
    - msgb_free
    - sccp_write
    - osmo_timer_schedule
    - fr_assert
    - talloc_array_length
    - fr_rb_insert
    - DEBUG2
    - fr_assert_fail
    linkageType: ''
    returnType: int
    signature: int sigtran_tcap_outgoing(UNUSED struct msgb *msg_in, void *ctx, sigtran_transaction_t
      *txn, UNUSED struct osmo_fd *ofd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:220,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:231,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:235,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:235,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:242,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:247,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:252,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:255,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:256,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:257,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:260,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:261,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:263,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:265,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:265,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:283,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:295,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:300,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:300,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:303,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:304,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:305,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:313,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:313,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:315,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:316,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:317,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:318,1
    - Dst: sigtran_memdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:319,1
    - Dst: sigtran_event_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:324,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:325,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:325,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 3
    argNames:
    - msg
    - length
    - ctx
    argTypes:
    - struct msgb*
    - UNUSED unsigned
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 330
    functionName: sigtran_tcap_incoming
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - ERROR
    - fr_syserror
    - talloc_get_type_abort
    - sigtran_event_submit
    - fr_rb_find
    - fr_assert
    - talloc_zero
    - sigtran_memdup
    - osmo_timer_del
    - msgb_l3len
    - DEBUG2
    - memset
    - fr_rb_delete
    - MEM
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sigtran_tcap_incoming(struct msgb *msg, UNUSED unsigned int length,
      UNUSED void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 282
    functionName: sigtran_memdup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigtran_memdup(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:339,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:341,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:341,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - sscp_conn
    - msg
    - write_ctx
    - ctx
    argTypes:
    - UNUSED*
    - struct msgb*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: sigtran_sccp_outgoing
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - mtp_link_set_submit_sccp_data
    - talloc_get_type_abort
    - msgb_free
    linkageType: ''
    returnType: void
    signature: "void sigtran_sccp_outgoing(UNUSED struct sccp_connection *sscp_conn,\n\t\t\t\t
      \ struct msgb *msg, UNUSED void *write_ctx, void *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sccp_system_incoming
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - set
    - msg
    - int
    argTypes:
    - UNUSED*
    - struct msgb*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: sigtran_sccp_incoming
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 0
    functionsReached:
    - sccp_system_incoming
    linkageType: ''
    returnType: void
    signature: void sigtran_sccp_incoming(UNUSED struct mtp_link_set *set, struct
      msgb *msg, UNUSED int sls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sccp_set_log_area
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:362,1
    - Dst: sccp_system_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:364,1
    - Dst: sccp_set_variant
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:365,1
    - Dst: sccp_set_read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - sigtran_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: sigtran_sscp_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 1
    functionsReached:
    - sccp_set_variant
    - sccp_system_init
    - sccp_set_log_area
    - sccp_set_read
    linkageType: ''
    returnType: int
    signature: int sigtran_sscp_init(sigtran_conn_t *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: sigtran_sccp_global_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 1
    functionsReached:
    - fr_rb_inline_talloc_alloc
    linkageType: ''
    returnType: int
    signature: int sigtran_sccp_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: sigtran_sccp_global_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sccp.c
    functionUses: 1
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void sigtran_sccp_global_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:95,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - out
    - digits
    argTypes:
    - TALLOC_CTX*
    - uint8_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 125
    functionName: sigtran_ascii_to_tbcd
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c
    functionUses: 1
    functionsReached:
    - talloc_array
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: int sigtran_ascii_to_tbcd(TALLOC_CTX *ctx, uint8_t **out, char const
      *digits)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:173,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:189,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:193,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:198,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:203,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c:209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 8
    argNames:
    - ctx
    - out
    - gt_ind
    - digits
    - tt
    - np
    - es
    - nai
    argTypes:
    - TALLOC_CTX*
    - uint8_t**
    - int
    - char*
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 234
    functionName: sigtran_sccp_global_title
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/sigtran.c
    functionUses: 1
    functionsReached:
    - talloc_array
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int sigtran_sccp_global_title(TALLOC_CTX *ctx, uint8_t **out, int
      gt_ind, char const *digits,\n\t\t\t      uint8_t tt, uint8_t np, uint8_t es,
      uint8_t nai)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - link_index
    argTypes:
    - struct mtp_udp_data*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: find_link
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: struct mtp_udp_link
    signature: struct mtp_udp_link *find_link(struct mtp_udp_data *data, uint16_t
      link_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:58,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:60,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:64,1
    - Dst: osmo_hexdump
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:64,1
    - Dst: mtp_handle_pcap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:65,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:65,1
    - Dst: sendto
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:68,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - struct osmo_fd*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: udp_write_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - sendto
    - msgb_l2len
    - mtp_handle_pcap
    - osmo_hexdump
    - LOGP
    - find_link
    linkageType: ''
    returnType: int
    signature: int udp_write_cb(struct osmo_fd *fd, struct msgb *msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:88,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:90,1
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:96,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:98,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:103,1
    - Dst: find_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:104,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:104,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:107,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:108,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:114,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:120,1
    - Dst: mtp_link_failure
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:122,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:125,1
    - Dst: mtp_link_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:127,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:130,1
    - Dst: mtp_link_failure
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:132,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:135,1
    - Dst: mtp_link_failure
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:137,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:143,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:149,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:151,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:160,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:162,1
    - Dst: osmo_hexdump
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:164,1
    - Dst: mtp_handle_pcap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:165,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:165,1
    - Dst: mtp_link_set_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:166,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:169,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 1
    argNames:
    - fd
    argTypes:
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 171
    functionName: udp_read_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - ntohl
    - read
    - msgb_put
    - find_link
    - mtp_handle_pcap
    - msgb_l2len
    - mtp_link_up
    - msgb_free
    - ntohs
    - osmo_hexdump
    - mtp_link_set_data
    - mtp_link_failure
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: int
    signature: int udp_read_cb(struct osmo_fd *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: udp_link_dummy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int udp_link_dummy(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_activate
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: do_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - snmp_mtp_activate
    linkageType: ''
    returnType: void
    signature: void do_start(void *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_deactivate
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: udp_link_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - snmp_mtp_deactivate
    linkageType: ''
    returnType: int
    signature: int udp_link_reset(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udp_link_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: udp_link_shutdown
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - udp_link_reset
    linkageType: ''
    returnType: int
    signature: int udp_link_shutdown(struct mtp_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_push
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:208,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:211,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:213,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:213,1
    - Dst: osmo_wqueue_enqueue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:217,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:218,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:220,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:221,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 227
    functionName: udp_link_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - htonl
    - msgb_l2len
    - rate_ctr_inc
    - osmo_wqueue_enqueue
    - msgb_free
    - msgb_push
    - LOGP
    - htons
    linkageType: ''
    returnType: int
    signature: int udp_link_write(struct mtp_link *link, struct msgb *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:232,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:234,1
    - Dst: inet_aton
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - link
    - remote
    - port
    argTypes:
    - struct mtp_udp_link*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: link_udp_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - memset
    - inet_aton
    - htons
    linkageType: ''
    returnType: int
    signature: int link_udp_init(struct mtp_udp_link *link, char *remote, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_poll
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:243,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: snmp_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    - snmp_mtp_poll
    linkageType: ''
    returnType: void
    signature: void snmp_poll(void *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:249,1
    - Dst: osmo_wqueue_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct mtp_udp_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: link_global_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - INIT_LLIST_HEAD
    - osmo_wqueue_init
    linkageType: ''
    returnType: int
    signature: int link_global_init(struct mtp_udp_data *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:267,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:269,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:274,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:276,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:278,1
    - Dst: bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:281,1
    - Dst: perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:282,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:283,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:288,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:289,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:290,1
    - Dst: snmp_poll
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - data
    - src_port
    argTypes:
    - struct mtp_udp_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 299
    functionName: link_global_bind
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - bind
    - snmp_poll
    - socket
    - close
    - LOGP
    - osmo_fd_register
    - setsockopt
    - perror
    - memset
    - htons
    linkageType: ''
    returnType: int
    signature: int link_global_bind(struct mtp_udp_data *data, int src_port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:309,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:316,1
    - Dst: udp_link_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:319,1
    - Dst: mtp_link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:327,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:336,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:337,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - session
    - area
    - res
    - link_id
    argTypes:
    - struct snmp_mtp_session*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 349
    functionName: snmp_mtp_callback
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - mtp_link_down
    - udp_link_reset
    - LOGP
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: "void snmp_mtp_callback(struct snmp_mtp_session *session,\n\t\t      int
      area, int res, int link_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:356,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:358,1
    - Dst: snmp_mtp_session_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:363,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:365,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:366,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:388,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - blnk
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 395
    functionName: mtp_udp_link_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/link_udp.c
    functionUses: 0
    functionsReached:
    - snmp_mtp_session_create
    - talloc_free
    - llist_add_tail
    - talloc_zero
    - LOGP
    - memset
    linkageType: ''
    returnType: struct mtp_udp_link
    signature: struct mtp_udp_link *mtp_udp_link_init(struct mtp_link *blnk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:62,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: bsc_data_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 1
    functionsReached:
    - talloc_zero
    - INIT_LLIST_HEAD
    linkageType: ''
    returnType: struct bsc_data
    signature: struct bsc_data *bsc_data_alloc(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:74,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:76,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:80,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:81,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 96
    functionName: bsc_data_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - INIT_LLIST_HEAD
    - LOGP
    linkageType: ''
    returnType: struct bsc_data
    signature: struct bsc_data *bsc_data_create()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:106,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:111,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:114,1
    - Dst: link_shutdown_all
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:115,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:118,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: sigint
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - pthread_mutex_unlock
    - pthread_mutex_trylock
    - link_shutdown_all
    - printf
    - llist_for_each_entry
    linkageType: ''
    returnType: void
    signature: void sigint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_report_full
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: sigusr1
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 0
    functionsReached:
    - talloc_report_full
    linkageType: ''
    returnType: void
    signature: void sigusr1()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:132,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:134,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: sigusr2
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 0
    functionsReached:
    - printf
    - llist_for_each_entry
    - msc_close_connection
    linkageType: ''
    returnType: void
    signature: void sigusr2()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: print_usage
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_usage(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:148,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:149,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:150,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:151,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:152,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: print_help
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_help()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:168,1
    - Dst: print_usage
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:175,1
    - Dst: print_help
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:176,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:177,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:180,1
    - Dst: open
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:181,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:183,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:184,1
    - Dst: mtp_pcap_write_header
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:186,1
    - Dst: printf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:192,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:193,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:196,1
    - Dst: signal
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:201,1
    - Dst: signal
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:202,1
    - Dst: signal
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:203,1
    - Dst: signal
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 205
    functionName: handle_options
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - mtp_pcap_write_header
    - open
    - signal
    - getopt_long
    - fprintf
    - print_help
    - close
    - print_usage
    - printf
    linkageType: ''
    returnType: void
    signature: void handle_options(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: notImplemented
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: notImplemented()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:56,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:63,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:68,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:68,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:83,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - part
    argTypes:
    - struct xua_msg_part*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: xua_from_part
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - xua_msg_free
    - ntohs
    - xua_msg_add_data
    - xua_msg_alloc
    - LOGP
    linkageType: ''
    returnType: struct xua_msg
    signature: struct xua_msg *xua_from_part(struct xua_msg_part *part)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:117,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:119,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:124,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: m3ua_setnonblocking
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - LOGP
    - fcntl
    linkageType: ''
    returnType: int
    signature: int m3ua_setnonblocking(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:136,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:138,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:145,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 151
    functionName: m3ua_setblocking
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - LOGP
    - fcntl
    linkageType: ''
    returnType: int
    signature: int m3ua_setblocking(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: schedule_restart
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void schedule_restart(struct mtp_m3ua_client_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: schedule_t_beat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void schedule_t_beat(struct mtp_m3ua_client_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: schedule_aspup_t_ack
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void schedule_aspup_t_ack(struct mtp_m3ua_client_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: schedule_aspac_t_ack
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void schedule_aspac_t_ack(struct mtp_m3ua_client_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: schedule_aspdn_t_ack
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void schedule_aspdn_t_ack(struct mtp_m3ua_client_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osmo_fd_unregister
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:191,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:192,1
    - Dst: osmo_wqueue_clear
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:195,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:198,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:199,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: clear_link
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_timer_del
    - osmo_wqueue_clear
    - osmo_fd_unregister
    - close
    linkageType: ''
    returnType: int
    signature: int clear_link(struct mtp_m3ua_client_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m3ua_shutdown
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:207,1
    - Dst: mtp_link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:208,1
    - Dst: schedule_restart
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: fail_link
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - mtp_link_down
    - schedule_restart
    - m3ua_shutdown
    linkageType: ''
    returnType: void
    signature: void fail_link(struct mtp_m3ua_client_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:216,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: aspac_ack_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - LOGP
    - fail_link
    linkageType: ''
    returnType: void
    signature: void aspac_ack_timeout(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:224,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: aspup_ack_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - LOGP
    - fail_link
    linkageType: ''
    returnType: void
    signature: void aspup_ack_timeout(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:232,1
    - Dst: clear_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: aspdn_ack_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - LOGP
    - clear_link
    linkageType: ''
    returnType: void
    signature: void aspdn_ack_timeout(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:240,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: reg_rsp_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - LOGP
    - fail_link
    linkageType: ''
    returnType: void
    signature: void reg_rsp_timeout(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xua_from_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:248,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:250,1
    - Dst: m3ua_handle_mgmt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:256,1
    - Dst: m3ua_handle_aspsm
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:259,1
    - Dst: m3ua_handle_asptm
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:262,1
    - Dst: m3ua_handle_trans
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:265,1
    - Dst: m3ua_handle_reg_rsp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:268,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:271,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - link
    - msg
    - info
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct msgb*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 278
    functionName: m3ua_conn_handle
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - m3ua_handle_mgmt
    - m3ua_handle_aspsm
    - xua_from_msg
    - m3ua_handle_trans
    - xua_msg_free
    - m3ua_handle_asptm
    - m3ua_handle_reg_rsp
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m3ua_conn_handle(struct mtp_m3ua_client_link *link,\n\t\t\t\tstruct
      msgb *msg, struct sctp_sndrcvinfo *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:285,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:287,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:287,1
    - Dst: sctp_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:288,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:288,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:290,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:294,1
    - Dst: strerror_r
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:295,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:297,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ofd
    - msg
    argTypes:
    - struct osmo_fd*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: m3ua_conn_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - strerror_r
    - sctp_send
    - memcpy
    - msgb_l2len
    - LOGP
    linkageType: ''
    returnType: int
    signature: int m3ua_conn_write(struct osmo_fd *ofd, struct msgb *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_to_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:308,1
    - Dst: msgb_push
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:314,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:315,1
    - Dst: osmo_wqueue_enqueue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:317,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:318,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:319,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:320,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - link
    - m3ua
    - info
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 326
    functionName: m3ua_conn_send
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rate_ctr_inc
    - osmo_wqueue_enqueue
    - msgb_free
    - xua_to_msg
    - msgb_push
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m3ua_conn_send(struct mtp_m3ua_client_link *link,\n\t\t\t  struct
      xua_msg *m3ua,\n\t\t\t  struct sctp_sndrcvinfo *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:337,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:339,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:340,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:344,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:345,1
    - Dst: sctp_recvmsg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:346,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:349,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:351,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:352,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:356,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:357,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:358,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:359,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:363,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:364,1
    - Dst: m3ua_conn_handle
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:366,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - fd
    argTypes:
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 369
    functionName: m3ua_conn_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - ntohl
    - fail_link
    - m3ua_conn_handle
    - msgb_put
    - msgb_alloc
    - sctp_recvmsg
    - msgb_free
    - LOGP
    - memset
    linkageType: ''
    returnType: int
    signature: int m3ua_conn_read(struct osmo_fd *fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osmo_fd_unregister
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:377,1
    - Dst: getsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:379,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:381,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:381,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:383,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:385,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:390,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:390,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:394,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:404,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:405,1
    - Dst: llist_splice_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:410,1
    - Dst: llist_splice_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:411,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:413,1
    - Dst: m3ua_send_aspup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:414,1
    - Dst: schedule_aspup_t_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - ofd
    - what
    argTypes:
    - struct osmo_fd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 418
    functionName: m3ua_sctp_assoc_complete
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - fail_link
    - osmo_fd_unregister
    - getsockopt
    - m3ua_send_aspup
    - schedule_aspup_t_ack
    - strerror
    - llist_splice_init
    - close
    - LOGP
    - osmo_fd_register
    linkageType: ''
    returnType: int
    signature: int m3ua_sctp_assoc_complete(struct osmo_fd *ofd, unsigned int what)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:426,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:428,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:428,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:429,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:432,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:433,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:433,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:435,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:436,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:439,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:442,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:444,1
    - Dst: bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:448,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:449,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:449,1
    - Dst: m3ua_setnonblocking
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:453,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:455,1
    - Dst: connect
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:457,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:459,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:459,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:468,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:469,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 472
    functionName: m3ua_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - bind
    - fail_link
    - connect
    - socket
    - strerror
    - memset
    - osmo_fd_register
    - close
    - LOGP
    - m3ua_setnonblocking
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void m3ua_start(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:485,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:507,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:514,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:515,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:516,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:517,1
    - Dst: msgb_pull_to_l3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:522,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:524,1
    - Dst: msgb_push
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:526,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:527,1
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:531,1
    - Dst: mtp_handle_pcap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:535,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:543,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:544,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:546,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:549,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:551,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:552,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:555,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 2
    argNames:
    - mtp_link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 557
    functionName: m3ua_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - memcpy
    - mtp_handle_pcap
    - msgb_free
    - xua_msg_add_data
    - xua_msg_alloc
    - m3ua_conn_send
    - LOGP
    - msgb_push
    - msgb_pull_to_l3
    - memset
    - MTP_LINK_SLS
    linkageType: ''
    returnType: int
    signature: int m3ua_write(struct mtp_link *mtp_link, struct msgb *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m3ua_send_aspdn
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:565,1
    - Dst: schedule_aspdn_t_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:566,1
    - Dst: clear_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mtp_link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: m3ua_shutdown
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - schedule_aspdn_t_ack
    - clear_link
    - m3ua_send_aspdn
    linkageType: ''
    returnType: int
    signature: int m3ua_shutdown(struct mtp_link *mtp_link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m3ua_shutdown
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:578,1
    - Dst: schedule_restart
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mtp_link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 581
    functionName: m3ua_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - schedule_restart
    - m3ua_shutdown
    linkageType: ''
    returnType: int
    signature: int m3ua_reset(struct mtp_link *mtp_link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_wqueue_clear
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mtp_link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 588
    functionName: clear_link_queue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - osmo_wqueue_clear
    linkageType: ''
    returnType: int
    signature: int clear_link_queue(struct mtp_link *mtp_link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:594,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:596,1
    - Dst: osmo_wqueue_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:613,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:616,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:617,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - blnk
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 623
    functionName: mtp_m3ua_client_link_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - osmo_wqueue_init
    - talloc_zero
    - INIT_LLIST_HEAD
    - LOGP
    linkageType: ''
    returnType: struct mtp_m3ua_client_link
    signature: struct mtp_m3ua_client_link *mtp_m3ua_client_link_init(struct mtp_link
      *blnk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: mtp_m3ua_link_is_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mtp_m3ua_link_is_up(struct mtp_m3ua_client_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:634,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:636,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:646,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:647,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 652
    functionName: mtp_m3ua_reg_req_add
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - talloc_zero
    - INIT_LLIST_HEAD
    - llist_add_tail
    - LOGP
    linkageType: ''
    returnType: struct mtp_m3ua_reg_req
    signature: struct mtp_m3ua_reg_req *mtp_m3ua_reg_req_add(struct mtp_m3ua_client_link
      *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:663,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:665,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:669,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:672,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:678,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:679,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:682,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 684
    functionName: m3ua_send_aspup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - htonl
    - xua_msg_free
    - fail_link
    - xua_msg_add_data
    - xua_msg_alloc
    - m3ua_conn_send
    - memset
    linkageType: ''
    returnType: void
    signature: void m3ua_send_aspup(struct mtp_m3ua_client_link *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:693,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:695,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:699,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:702,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:707,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:708,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:711,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:712,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:715,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 717
    functionName: m3ua_send_aspac
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - fail_link
    - xua_msg_add_data
    - xua_msg_alloc
    - m3ua_conn_send
    - memset
    linkageType: ''
    returnType: void
    signature: void m3ua_send_aspac(struct mtp_m3ua_client_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:724,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:727,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:730,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:735,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_m3ua_client_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 737
    functionName: m3ua_send_aspdn
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - htonl
    - xua_msg_free
    - xua_msg_alloc
    - m3ua_conn_send
    - memset
    linkageType: ''
    returnType: void
    signature: void m3ua_send_aspdn(struct mtp_m3ua_client_link *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:745,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:747,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:751,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:754,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:760,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:761,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:764,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:765,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:767,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - link
    - dpc
    argTypes:
    - struct mtp_m3ua_client_link*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 769
    functionName: m3ua_send_daud
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - fail_link
    - xua_msg_add_data
    - xua_msg_alloc
    - m3ua_conn_send
    - memset
    linkageType: ''
    returnType: void
    signature: void m3ua_send_daud(struct mtp_m3ua_client_link *link, uint32_t dpc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:774,1
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:779,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:781,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:785,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:788,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:793,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:795,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:796,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:799,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:800,1
    - Dst: schedule_t_beat
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 803
    functionName: m3ua_send_beat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - fail_link
    - schedule_t_beat
    - talloc_get_type_abort
    - xua_msg_add_data
    - xua_msg_alloc
    - LOGP
    - m3ua_conn_send
    - memset
    linkageType: ''
    returnType: void
    signature: void m3ua_send_beat(void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:823,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:825,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:829,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:832,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:837,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:838,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:841,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:842,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:846,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:847,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:850,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:851,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:854,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:855,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:858,1
    - Dst: llist_for_each
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:863,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:866,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:868,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:869,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:873,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:875,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:876,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:879,1
    - Dst: llist_for_each
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:884,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:886,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:888,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:889,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:893,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:895,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:896,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:901,1
    - Dst: m3ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:903,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:904,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 2
    argNames:
    - link
    - route
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct mtp_m3ua_reg_req*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 905
    functionName: m3ua_send_reg_req
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    - htonl
    - xua_msg_free
    - fail_link
    - talloc_free
    - osmo_timer_schedule
    - xua_msg_add_data
    - llist_for_each
    - xua_msg_alloc
    - talloc_zero_array
    - m3ua_conn_send
    - memset
    - llist_empty
    linkageType: ''
    returnType: void
    signature: void m3ua_send_reg_req(struct mtp_m3ua_client_link *link, struct mtp_m3ua_reg_req
      *route)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:913,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:924,1
    - Dst: xua_from_part
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:928,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:930,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:934,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:936,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:940,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:943,1
    - Dst: llist_for_each
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:945,1
    - Dst: llist_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:946,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:952,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:957,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:959,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:963,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:966,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:968,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:970,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:974,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:977,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:979,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:982,1
    - Dst: llist_move_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:985,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:989,1
    - Dst: llist_move_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:993,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:996,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1000,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1001,1
    - Dst: m3ua_send_aspac
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1003,1
    - Dst: schedule_aspac_t_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1004,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1008,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 2
    argNames:
    - link
    - m3ua
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct xua_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 907
    functionDepth: 3
    functionLinenumber: 907
    functionLinenumberEnd: 1011
    functionName: m3ua_handle_reg_rsp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - xua_msg_free
    - m3ua_send_aspac
    - memcpy
    - osmo_timer_del
    - xua_msg_find_tag
    - llist_move_tail
    - schedule_aspac_t_ack
    - llist_for_each
    - xua_from_part
    - LOGP
    - llist_for_each_entry
    - llist_empty
    - llist_entry
    linkageType: ''
    returnType: void
    signature: void m3ua_handle_reg_rsp(struct mtp_m3ua_client_link *link, struct
      xua_msg *m3ua)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1021,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1023,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1025,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1029,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1032,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1033,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1035,1
    - Dst: fail_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1039,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1049,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1053,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - link
    - m3ua
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct xua_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1056
    functionName: m3ua_handle_mgmt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - ntohl
    - fail_link
    - memcpy
    - xua_msg_find_tag
    - LOGP
    linkageType: ''
    returnType: void
    signature: void m3ua_handle_mgmt(struct mtp_m3ua_client_link *link, struct xua_msg
      *m3ua)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1065,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1068,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1069,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1070,1
    - Dst: m3ua_send_reg_req
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1071,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1072,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1078,1
    - Dst: m3ua_send_aspac
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1080,1
    - Dst: schedule_aspac_t_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1081,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1085,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1087,1
    - Dst: clear_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1088,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1092,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1096,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - link
    - m3ua
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct xua_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1058
    functionDepth: 3
    functionLinenumber: 1058
    functionLinenumberEnd: 1099
    functionName: m3ua_handle_aspsm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - clear_link
    - m3ua_send_aspac
    - schedule_aspac_t_ack
    - m3ua_send_reg_req
    - LOGP
    - llist_for_each_entry
    - llist_empty
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void m3ua_handle_aspsm(struct mtp_m3ua_client_link *link, struct xua_msg
      *m3ua)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1105,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1106,1
    - Dst: mtp_link_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1108,1
    - Dst: m3ua_send_daud
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1110,1
    - Dst: m3ua_send_daud
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1111,1
    - Dst: schedule_t_beat
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1112,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - link
    - m3ua
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct xua_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1121
    functionName: m3ua_handle_asptm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - m3ua_send_daud
    - schedule_t_beat
    - mtp_link_up
    - osmo_timer_del
    - LOGP
    linkageType: ''
    returnType: void
    signature: void m3ua_handle_asptm(struct mtp_m3ua_client_link *link, struct xua_msg
      *m3ua)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1140,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1145,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1147,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1152,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1157,1
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1161,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1163,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1167,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1168,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1171,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1172,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1175,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1176,1
    - Dst: msgb_pull_to_l3
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1181,1
    - Dst: msgb_push
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1182,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1185,1
    - Dst: mtp_handle_pcap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1187,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1187,1
    - Dst: mtp_link_set_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1188,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c:1189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 2
    argNames:
    - link
    - m3ua
    argTypes:
    - struct mtp_m3ua_client_link*
    - struct xua_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1190
    functionName: m3ua_handle_trans
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c
    functionUses: 1
    functionsReached:
    - ntohl
    - memcpy
    - msgb_put
    - msgb_l2len
    - xua_msg_find_tag
    - mtp_handle_pcap
    - msgb_alloc
    - msgb_free
    - mtp_link_set_data
    - MTP_ADDR
    - msgb_push
    - msgb_pull_to_l3
    - LOGP
    linkageType: ''
    returnType: void
    signature: void m3ua_handle_trans(struct mtp_m3ua_client_link *link, struct xua_msg
      *m3ua)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:34,1
    - Dst: msgb_dequeue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:36,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - sigtran_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: free_queued
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - msgb_dequeue
    - llist_empty
    - msgb_free
    linkageType: ''
    returnType: void
    signature: void free_queued(sigtran_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:47,1
    - Dst: msgb_dequeue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:49,1
    - Dst: sccp_connection_write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:50,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - sigtran_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: send_queued
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - sccp_connection_write
    - msgb_dequeue
    - llist_empty
    - msgb_free
    linkageType: ''
    returnType: void
    signature: void send_queued(sigtran_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:62,1
    - Dst: mtp_link_set_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sccp
    - msg
    - len
    argTypes:
    - struct sccp_connection*
    - struct msgb*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: sccp_outgoing_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_send
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void sccp_outgoing_data(struct sccp_connection *sccp,\n\t\t\t       struct
      msgb *msg, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:69,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:73,1
    - Dst: free_queued
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:75,1
    - Dst: sccp_connection_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:76,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:79,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:81,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:82,1
    - Dst: send_queued
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - sccp
    - old_state
    argTypes:
    - struct sccp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: sccp_outgoing_state
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - sccp_connection_free
    - talloc_get_type_abort
    - send_queued
    - osmo_timer_schedule
    - free_queued
    - osmo_timer_del
    - LOGP
    linkageType: ''
    returnType: void
    signature: void sccp_outgoing_state(struct sccp_connection *sccp, int old_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:90,1
    - Dst: sccp_connection_send_it
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:92,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: sccp_it_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    - talloc_get_type_abort
    - sccp_connection_send_it
    linkageType: ''
    returnType: void
    signature: void sccp_it_timeout(void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:98,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:102,1
    - Dst: bsc_sccp_force_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: sccp_cc_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - bsc_sccp_force_free
    - LOGP
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void sccp_cc_timeout(void *_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msc_queue_write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - conn
    - msg
    - global_ctx
    - ctx
    argTypes:
    - struct sccp_connection*
    - struct msgb*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: msc_sccp_write_ipa
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - msc_queue_write
    linkageType: ''
    returnType: void
    signature: "void msc_sccp_write_ipa(struct sccp_connection *conn, struct msgb
      *msg,\n\t\t\t      void *global_ctx, void *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - connection
    - data
    argTypes:
    - struct sccp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: msc_sccp_accept
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - LOGP
    linkageType: ''
    returnType: int
    signature: int msc_sccp_accept(struct sccp_connection *connection, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsc_handle_udt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msgb
    - length
    - data
    argTypes:
    - struct msgb*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: msc_sccp_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - bsc_handle_udt
    linkageType: ''
    returnType: int
    signature: int msc_sccp_read(struct msgb *msgb, unsigned int length, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:130,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:131,1
    - Dst: sccp_connection_write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:134,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:135,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:137,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:138,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:140,1
    - Dst: msgb_enqueue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - msg
    argTypes:
    - struct osmo_bsc_sccp_con*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: sigtran_sccp_enque
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - msgb_enqueue
    - LOGP
    - sccp_connection_write
    - msgb_free
    linkageType: ''
    returnType: int
    signature: int sigtran_sccp_enque(struct osmo_bsc_sccp_con *conn, struct msgb
      *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:150,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:151,1
    - Dst: free_queued
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:152,1
    - Dst: sccp_connection_force_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:153,1
    - Dst: llist_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sccp
    argTypes:
    - sigtran_sccp_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: _sigtran_sccp_conn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - free_queued
    - llist_del
    - sccp_connection_force_free
    - osmo_timer_del
    linkageType: ''
    returnType: int
    signature: int _sigtran_sccp_conn_free(sigtran_sccp_conn_t *sccp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sccp_connection_socket
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:163,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:165,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:169,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:170,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - sigtran_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 188
    functionName: sigtran_sccp_conn_patch
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - INIT_LLIST_HEAD
    - talloc_set_destructor
    - talloc_zero
    - LOGP
    - sccp_connection_socket
    linkageType: ''
    returnType: int
    signature: int sigtran_sccp_conn_patch(sigtran_conn_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:192,1
    - Dst: sccp_connection_connect
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:193,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - msg
    argTypes:
    - sigtran_conn_t*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: sigtran_sccp_open_connection
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    - sccp_connection_connect
    - msgb_free
    linkageType: ''
    returnType: int
    signature: int sigtran_sccp_open_connection(sigtran_conn_t *conn, struct msgb
      *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sccp_set_log_area
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:201,1
    - Dst: sccp_system_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:202,1
    - Dst: sccp_connection_set_incoming
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:203,1
    - Dst: sccp_set_read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:204,1
    - Dst: osmo_signal_register_handler
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - gsmnet
    argTypes:
    - struct gsm_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: sigtran_sscp_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_connection.c
    functionUses: 1
    functionsReached:
    - osmo_signal_register_handler
    - sccp_system_init
    - sccp_set_log_area
    - sccp_set_read
    - sccp_connection_set_incoming
    linkageType: ''
    returnType: int
    signature: int sigtran_sscp_init(struct gsm_network *gsmnet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exp
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: static_assert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_assert(exp, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: mtp_pcap_write_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c
    functionUses: 1
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int mtp_pcap_write_header(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c:78,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c:82,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - data
    - length
    argTypes:
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: mtp_pcap_write_msu
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/pcap.c
    functionUses: 0
    functionsReached:
    - write
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int mtp_pcap_write_msu(int fd, const uint8_t *data, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: ARRAY_SIZE
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ipaccess_send_id_ack
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int ipaccess_send_id_ack(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: ipaccess_send_id_req
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int ipaccess_send_id_req(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:79,1
    - Dst: ipaccess_send_id_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - bfd
    argTypes:
    - struct msgb*
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: ipaccess_rcvmsg_base
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c
    functionUses: 0
    functionsReached:
    - write
    - ipaccess_send_id_ack
    linkageType: ''
    returnType: int
    signature: "int ipaccess_rcvmsg_base(struct msgb *msg,\n\t\t\t struct osmo_fd
      *bfd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:96,1
    - Dst: recv
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:107,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:109,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:113,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:118,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:122,1
    - Dst: recv
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:123,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:125,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - bfd
    - error
    argTypes:
    - struct osmo_fd*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 132
    functionName: ipaccess_read_msg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - msgb_alloc
    - msgb_free
    - ntohs
    - recv
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *ipaccess_read_msg(struct osmo_fd *bfd, int *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgb_push
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:139,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - proto
    argTypes:
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: ipaccess_prepend_header
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ipaccess.c
    functionUses: 0
    functionsReached:
    - msgb_push
    - htons
    linkageType: ''
    returnType: void
    signature: void ipaccess_prepend_header(struct msgb *msg, int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - tar
    argTypes:
    - struct log_context*
    - struct log_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: filter_fn
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int filter_fn(const struct log_context *ctx,\n\t\t     struct log_target
      *tar)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:47,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:49,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:53,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: mtp_msg_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    - MTP_ADDR
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *mtp_msg_alloc(struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:69,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:76,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:78,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:82,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - set
    - sls
    - in_mng
    - l3_len
    argTypes:
    - struct mtp_link_set*
    - int
    - struct mtp_level_3_mng*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 86
    functionName: mtp_create_slta
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - mtp_msg_alloc
    - MTP_ADDR
    - memcpy
    linkageType: ''
    returnType: struct msgb
    signature: "struct msgb *mtp_create_slta(struct mtp_link_set *set, int sls,\n\t\t\t\t
      \   struct mtp_level_3_mng *in_mng, int l3_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:95,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:102,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:103,1
    - Dst: MTP_MAKE_APOC
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - link
    - msg
    - apoc
    argTypes:
    - struct mtp_link*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: mtp_base_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - MTP_MAKE_APOC
    - mtp_msg_alloc
    - MTP_ADDR
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *mtp_base_alloc(struct mtp_link *link, int msg, int apoc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mtp_base_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - link
    - apoc
    argTypes:
    - struct mtp_link*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: mtp_tfp_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - mtp_base_alloc
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *mtp_tfp_alloc(struct mtp_link *link, int apoc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mtp_base_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - link
    - apoc
    argTypes:
    - struct mtp_link*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: mtp_tfa_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - mtp_base_alloc
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *mtp_tfa_alloc(struct mtp_link *link, int apoc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:133,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:140,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - link
    - opc
    argTypes:
    - struct mtp_link*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 145
    functionName: mtp_tra_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - mtp_msg_alloc
    - MTP_ADDR
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *mtp_tra_alloc(struct mtp_link *link, int opc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:166,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:175,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:178,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:186,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:191,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:196,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 5
    argNames:
    - set
    - type
    - assn
    - apoc
    - sls
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 206
    functionName: mtp_sccp_alloc_scmg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - mtp_msg_alloc
    - MTP_ADDR
    linkageType: ''
    returnType: struct msgb
    signature: "struct msgb *mtp_sccp_alloc_scmg(struct mtp_link_set *set,\n\t\t\t\t\tint
      type, int assn, int apoc, int sls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:214,1
    - Dst: mtp_link_stop_link_test
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:215,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:217,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: mtp_link_set_stop
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    - mtp_link_stop_link_test
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void mtp_link_set_stop(struct mtp_link_set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mtp_link_set_stop
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:231,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:234,1
    - Dst: mtp_link_start_link_test
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: mtp_link_set_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    - mtp_link_start_link_test
    - mtp_link_set_stop
    linkageType: ''
    returnType: void
    signature: void mtp_link_set_reset(struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_tfp_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:244,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - link
    - apoc
    argTypes:
    - struct mtp_link*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: send_tfp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - mtp_link_submit
    - mtp_tfp_alloc
    linkageType: ''
    returnType: int
    signature: int send_tfp(struct mtp_link *link, int apoc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_tra_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:259,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - link
    - opc
    argTypes:
    - struct mtp_link*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: send_tra
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - mtp_tra_alloc
    - mtp_link_submit
    linkageType: ''
    returnType: int
    signature: int send_tra(struct mtp_link *link, int opc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_tfa_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:273,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - link
    - opc
    argTypes:
    - struct mtp_link*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: send_tfa
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - mtp_tfa_alloc
    - mtp_link_submit
    linkageType: ''
    returnType: int
    signature: int send_tfa(struct mtp_link *link, int opc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:295,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:297,1
    - Dst: send_tfa
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:301,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:302,1
    - Dst: send_tfa
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:307,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:308,1
    - Dst: linkset_t18_cb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:313,1
    - Dst: linkset_t20_cb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:315,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: mtp_link_verified
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - linkset_t18_cb
    - osmo_timer_schedule
    - linkset_t20_cb
    - send_tfa
    - LOGP
    linkageType: ''
    returnType: int
    signature: int mtp_link_verified(struct mtp_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:334,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:336,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - _set
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: linkset_t18_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 1
    functionsReached:
    - LOGP
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void linkset_t18_cb(void *_set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:358,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:360,1
    - Dst: send_tra
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:366,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - _set
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 372
    functionName: linkset_t20_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 1
    functionsReached:
    - LOGP
    - send_tra
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void linkset_t20_cb(void *_set)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:383,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:389,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:396,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:403,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:404,1
    - Dst: linkset_t18_cb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:405,1
    - Dst: linkset_t20_cb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:406,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:415,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:420,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:429,1
    - Dst: osmo_hexdump
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:430,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - set
    - hdr
    - l3_len
    argTypes:
    - struct mtp_link_set*
    - struct mtp_level_3_hdr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 433
    functionName: mtp_link_sign_msg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - linkset_t18_cb
    - osmo_hexdump
    - linkset_t20_cb
    - osmo_timer_del
    - LOGP
    linkageType: ''
    returnType: int
    signature: int mtp_link_sign_msg(struct mtp_link_set *set, struct mtp_level_3_hdr
      *hdr, int l3_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:450,1
    - Dst: MTP_READ_DPC
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:455,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:456,1
    - Dst: MTP_READ_DPC
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:457,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:462,1
    - Dst: mtp_create_slta
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:470,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:471,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:475,1
    - Dst: mtp_link_slta
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:480,1
    - Dst: mtp_link_verified
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:481,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - link
    - hdr
    - l3_len
    argTypes:
    - struct mtp_link*
    - struct mtp_level_3_hdr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 488
    functionName: mtp_link_regular_msg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - mtp_link_slta
    - MTP_READ_DPC
    - mtp_link_submit
    - LOGP
    - MTP_LINK_SLS
    - mtp_link_verified
    - mtp_create_slta
    linkageType: ''
    returnType: int
    signature: int mtp_link_regular_msg(struct mtp_link *link, struct mtp_level_3_hdr
      *hdr, int l3_len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:502,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:503,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:508,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:513,1
    - Dst: sccp_parse_header
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:514,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:515,1
    - Dst: sccp_determine_msg_type
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:523,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:524,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:525,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:525,1
    - Dst: MTP_MAKE_APOC
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:530,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:531,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:532,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:535,1
    - Dst: mtp_sccp_alloc_scmg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:542,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:543,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:547,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:547,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:552,1
    - Dst: struct mtp_link_set*::sccp_data_available_cb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:557,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:557,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - set
    - hdr
    - msg
    - l3_len
    argTypes:
    - struct mtp_link_set*
    - struct mtp_level_3_hdr*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 560
    functionName: mtp_link_sccp_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - mtp_sccp_alloc_scmg
    - rate_ctr_inc
    - struct mtp_link_set*::sccp_data_available_cb
    - MTP_MAKE_APOC
    - sccp_determine_msg_type
    - memset
    - ntohs
    - mtp_link_submit
    - msgb_l3len
    - LOGP
    - MTP_LINK_SLS
    - sccp_parse_header
    linkageType: ''
    returnType: int
    signature: int mtp_link_sccp_data(struct mtp_link_set *set, struct mtp_level_3_hdr
      *hdr, struct msgb *msg, int l3_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:576,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:580,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:587,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:589,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:590,1
    - Dst: mtp_link_sign_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:594,1
    - Dst: mtp_link_regular_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:598,1
    - Dst: mtp_link_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:602,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:607,1
    - Dst: mtp_link_set_isup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:608,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:608,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:612,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 570
    functionDepth: 6
    functionLinenumber: 570
    functionLinenumberEnd: 617
    functionName: mtp_link_handle_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - rate_ctr_inc
    - mtp_link_regular_msg
    - fprintf
    - mtp_link_sccp_data
    - mtp_link_sign_msg
    - LOGP
    - MTP_LINK_SLS
    - mtp_link_set_isup
    linkageType: ''
    returnType: int
    signature: int mtp_link_handle_data(struct mtp_link *link, struct msgb *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:629,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:639,1
    - Dst: mtp_int_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - set
    - sls
    - data
    - length
    argTypes:
    - struct mtp_link_set*
    - int
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: mtp_link_set_submit_sccp_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 1
    functionsReached:
    - LOGP
    - mtp_int_submit
    - rate_ctr_inc
    linkageType: ''
    returnType: int
    signature: int mtp_link_set_submit_sccp_data(struct mtp_link_set *set, int sls,
      const uint8_t *data, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:652,1
    - Dst: mtp_int_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - set
    - sls
    - data
    - length
    argTypes:
    - struct mtp_link_set*
    - int
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: mtp_link_set_submit_isup_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - rate_ctr_inc
    - mtp_int_submit
    linkageType: ''
    returnType: int
    signature: "int mtp_link_set_submit_isup_data(struct mtp_link_set *set, int sls,\n\t\t\t
      \     const uint8_t *data, unsigned int length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:670,1
    - Dst: MTP_LINK_SLS
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:674,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - set
    - msg
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 680
    functionName: mtp_link_set_send
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 1
    functionsReached:
    - msgb_l2len
    - MTP_LINK_SLS
    - mtp_link_submit
    linkageType: ''
    returnType: int
    signature: int mtp_link_set_send(struct mtp_link_set *set, struct msgb *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mtp_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:706,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:713,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:716,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:717,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - set
    - opc
    - dpc
    - sls
    - type
    - data
    - length
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - int
    - int
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 721
    functionName: mtp_int_submit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 2
    functionsReached:
    - memcpy
    - msgb_put
    - mtp_msg_alloc
    - mtp_link_submit
    - MTP_ADDR
    linkageType: ''
    returnType: int
    signature: "int mtp_int_submit(struct mtp_link_set *set, int opc, int dpc,\n\t\t\t
      \ int sls, int type, const uint8_t *data,\n\t\t\t  unsigned int length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:734,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:741,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - set
    - data
    argTypes:
    - struct mtp_link_set*
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 754
    functionName: find_next_link
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    - llist_empty
    linkageType: ''
    returnType: struct mtp_link
    signature: struct mtp_link *find_next_link(struct mtp_link_set *set, struct mtp_link
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:765,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:769,1
    - Dst: find_next_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 776
    functionName: mtp_link_set_init_slc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    - ARRAY_SIZE
    - find_next_link
    linkageType: ''
    returnType: void
    signature: void mtp_link_set_init_slc(struct mtp_link_set *set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:786,1
    - Dst: rate_ctr_group_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:790,1
    - Dst: mtp_link_set_rate_ctr_desc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:791,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:794,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:799,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - bsc
    argTypes:
    - struct bsc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 821
    functionName: mtp_link_set_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 1
    functionsReached:
    - INIT_LLIST_HEAD
    - rate_ctr_group_alloc
    - llist_add_tail
    - talloc_zero
    - LOGP
    - mtp_link_set_rate_ctr_desc
    linkageType: ''
    returnType: struct mtp_link_set
    signature: struct mtp_link_set *mtp_link_set_alloc(struct bsc_data *bsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - func
    argTypes:
    - struct mtp_link_set*
    - sccp_data_available_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: mtp_link_set_sccp_data_available_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mtp_link_set_sccp_data_available_cb(struct mtp_link_set *set,
      sccp_data_available_cb_t func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bsc
    - num
    argTypes:
    - struct bsc_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 837
    functionName: mtp_link_set_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_layer3.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: struct mtp_link_set
    signature: struct mtp_link_set *mtp_link_set_num(struct bsc_data *bsc, int num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:49,1
    - Dst: TLVP_LEN
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:51,1
    - Dst: TLVP_VAL
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - length
    argTypes:
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 70
    functionName: patch_ass_rqst
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - TLVP_LEN
    - abort
    - TLVP_VAL
    linkageType: ''
    returnType: void
    signature: void patch_ass_rqst(struct msgb *msg, int length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:85,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:86,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:87,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:88,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:89,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:90,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:91,1
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:99,1
    - Dst: TLVP_PRESENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:103,1
    - Dst: TLVP_VAL
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:104,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:107,1
    - Dst: TLVP_PRESENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:110,1
    - Dst: TLVP_VAL
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:111,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - app
    - msg
    - length
    argTypes:
    - struct ss7_application*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 116
    functionName: patch_ass_cmpl
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - TLVP_VAL
    - msgb_v_put
    - abort
    - LOGP
    - TLVP_PRESENT
    linkageType: ''
    returnType: void
    signature: void patch_ass_cmpl(struct ss7_application *app, struct msgb *msg,
      int length)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:122,1
    - Dst: sccp_parse_header
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:123,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:124,1
    - Dst: sccp_determine_msg_type
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:128,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:147,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:148,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:152,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:156,1
    - Dst: handle_bss_mgmt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:161,1
    - Dst: handle_bss_dtap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:163,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - app
    - msg
    - sccp
    - dir
    argTypes:
    - struct ss7_application*
    - struct msgb*
    - struct sccp_parse_result*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 167
    functionName: bss_patch_filter_msg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - handle_bss_mgmt
    - handle_bss_dtap
    - sccp_determine_msg_type
    - LOGP
    - msgb_l3len
    - memset
    - sccp_parse_header
    linkageType: ''
    returnType: int
    signature: "int bss_patch_filter_msg(struct ss7_application *app, struct msgb
      *msg,\n\t\t\t\tstruct sccp_parse_result *sccp, int dir)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: patch_ass_rqst
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:175,1
    - Dst: patch_ass_cmpl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - app
    - msg
    - sccp
    argTypes:
    - struct ss7_application*
    - struct msgb*
    - struct sccp_parse_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: handle_bss_mgmt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 1
    functionsReached:
    - patch_ass_rqst
    - patch_ass_cmpl
    linkageType: ''
    returnType: int
    signature: "int handle_bss_mgmt(struct ss7_application *app, struct msgb *msg,\n\t\t\t\tstruct
      sccp_parse_result *sccp)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:210,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:211,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:216,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:217,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:218,1
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:234,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:240,1
    - Dst: TLVP_PRESENT
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:246,1
    - Dst: TLVP_LEN
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:249,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:250,1
    - Dst: TLVP_LEN
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:252,1
    - Dst: TLVP_VAL
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:256,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:258,1
    - Dst: TLVP_LEN
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:282,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 3
    argNames:
    - msg
    - sccp
    - dir
    argTypes:
    - struct msgb*
    - struct sccp_parse_result*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 299
    functionName: handle_bss_dtap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 1
    functionsReached:
    - TLVP_VAL
    - abort
    - LOGP
    - msgb_l3len
    - TLVP_LEN
    - TLVP_PRESENT
    linkageType: ''
    returnType: int
    signature: int handle_bss_dtap(struct msgb *msg, struct sccp_parse_result *sccp,
      int dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:309,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:320,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:330,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:331,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:332,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:333,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:333,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - target
    - inpt
    - sccp
    argTypes:
    - struct msgb*
    - struct msgb*
    - struct sccp_parse_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 337
    functionName: create_cr
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - msgb_put
    - msgb_l2len
    - msgb_l3len
    - LOGP
    linkageType: ''
    returnType: void
    signature: void create_cr(struct msgb *target, struct msgb *inpt, struct sccp_parse_result
      *sccp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:347,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:357,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:362,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:367,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:369,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - target
    - inpt
    - sccp
    argTypes:
    - struct msgb*
    - struct msgb*
    - struct sccp_parse_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 370
    functionName: create_udt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - msgb_l3len
    - memcpy
    linkageType: ''
    returnType: void
    signature: void create_udt(struct msgb *target, struct msgb *inpt, struct sccp_parse_result
      *sccp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_cr
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:378,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:380,1
    - Dst: create_udt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:384,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:386,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:389,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:389,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:390,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - rc
    - target
    - inpt
    - sccp
    argTypes:
    - int
    - struct msgb*
    - struct msgb*
    - struct sccp_parse_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: bss_rewrite_header_for_msc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - create_udt
    - msgb_put
    - msgb_l2len
    - create_cr
    linkageType: ''
    returnType: void
    signature: void bss_rewrite_header_for_msc(int rc, struct msgb *target, struct
      msgb *inpt, struct sccp_parse_result *sccp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - offset
    - pc
    - msg
    argTypes:
    - uint32_t
    - int
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 411
    functionName: patch_address
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int patch_address(uint32_t offset, int pc, struct msgb *msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:423,1
    - Dst: sccp_parse_header
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:424,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:425,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:435,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:440,1
    - Dst: patch_address
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:446,1
    - Dst: patch_address
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c:449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - msg
    - opc
    - dpc
    argTypes:
    - struct msgb*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 452
    functionName: bss_rewrite_header_to_bsc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bss_patch.c
    functionUses: 0
    functionsReached:
    - memset
    - sccp_parse_header
    - patch_address
    - LOGP
    linkageType: ''
    returnType: int
    signature: int bss_rewrite_header_to_bsc(struct msgb *msg, int opc, int dpc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:31,1
    - Dst: snmp_parse_oid
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:34,1
    - Dst: snmp_perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:35,1
    - Dst: snmp_add_var
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:39,1
    - Dst: snmp_perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pdu
    - mib_name
    - id
    - value
    argTypes:
    - netsnmp_pdu*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: add_pdu_var
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_parse_oid
    - snmp_perror
    - snmp_add_var
    - snprintf
    linkageType: ''
    returnType: void
    signature: void add_pdu_var(netsnmp_pdu *pdu, const char *mib_name, int id, const
      char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_callback
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - op
    - ss
    - reqid
    - pdu
    - data
    argTypes:
    - int
    - netsnmp_session*
    - int
    - netsnmp_pdu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: link_up_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_mtp_callback
    linkageType: ''
    returnType: int
    signature: "int link_up_cb(int op, netsnmp_session *ss,\n\t\t      int reqid,
      netsnmp_pdu *pdu, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_callback
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - op
    - ss
    - reqid
    - pdu
    - data
    argTypes:
    - int
    - netsnmp_session*
    - int
    - netsnmp_pdu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: link_down_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_mtp_callback
    linkageType: ''
    returnType: int
    signature: "int link_down_cb(int op, netsnmp_session *ss,\n\t\t\tint reqid, netsnmp_pdu
      *pdu, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snmp_async_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:84,1
    - Dst: snmp_log
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:86,1
    - Dst: snmp_free_pdu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ss
    - pdu
    - kind
    - link_id
    argTypes:
    - netsnmp_session*
    - netsnmp_pdu*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: send_pdu
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_log
    - snmp_free_pdu
    - snmp_async_send
    linkageType: ''
    returnType: int
    signature: int send_pdu(netsnmp_session *ss, netsnmp_pdu *pdu, int kind, int link_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pdu_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:97,1
    - Dst: add_pdu_var
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:99,1
    - Dst: add_pdu_var
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:100,1
    - Dst: send_pdu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:101,1
    - Dst: snmp_mtp_callback
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - session
    - link_id
    argTypes:
    - struct snmp_mtp_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: snmp_mtp_start_c7_datalink
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_pdu_create
    - snmp_mtp_callback
    - send_pdu
    - add_pdu_var
    linkageType: ''
    returnType: void
    signature: void snmp_mtp_start_c7_datalink(struct snmp_mtp_session *session, int
      link_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snmp_pdu_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:114,1
    - Dst: add_pdu_var
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:116,1
    - Dst: send_pdu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:117,1
    - Dst: snmp_mtp_callback
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - session
    - link_id
    argTypes:
    - struct snmp_mtp_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: snmp_mtp_stop_c7_datalink
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_pdu_create
    - snmp_mtp_callback
    - send_pdu
    - add_pdu_var
    linkageType: ''
    returnType: void
    signature: void snmp_mtp_stop_c7_datalink(struct snmp_mtp_session *session, int
      link_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:126,1
    - Dst: init_snmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:130,1
    - Dst: snmp_sess_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:131,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: snmp_mtp_session_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 1
    functionsReached:
    - snmp_sess_init
    - talloc_zero
    - strlen
    - init_snmp
    linkageType: ''
    returnType: struct snmp_mtp_session
    signature: struct snmp_mtp_session *snmp_mtp_session_create()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snmp_close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:143,1
    - Dst: snmp_open
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:149,1
    - Dst: snmp_perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:151,1
    - Dst: snmp_log
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:152,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - session
    - host
    argTypes:
    - struct snmp_mtp_session*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: snmp_mtp_peer_name
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 0
    functionsReached:
    - snmp_open
    - snmp_close
    - snmp_log
    - LOGP
    - snmp_perror
    linkageType: ''
    returnType: int
    signature: int snmp_mtp_peer_name(struct snmp_mtp_session *session, char *host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_stop_c7_datalink
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - session
    - index
    argTypes:
    - struct snmp_mtp_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: snmp_mtp_deactivate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 1
    functionsReached:
    - snmp_mtp_stop_c7_datalink
    linkageType: ''
    returnType: void
    signature: void snmp_mtp_deactivate(struct snmp_mtp_session *session, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snmp_mtp_start_c7_datalink
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - session
    - index
    argTypes:
    - struct snmp_mtp_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: snmp_mtp_activate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 1
    functionsReached:
    - snmp_mtp_start_c7_datalink
    linkageType: ''
    returnType: void
    signature: void snmp_mtp_activate(struct snmp_mtp_session *session, int index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:181,1
    - Dst: snmp_select_info
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:185,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:188,1
    - Dst: select
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:190,1
    - Dst: snmp_timeout
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:192,1
    - Dst: snmp_read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: snmp_mtp_poll
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/snmp_mtp.c
    functionUses: 1
    functionsReached:
    - snmp_read
    - snmp_timeout
    - FD_ZERO
    - snmp_select_info
    - select
    - memset
    linkageType: ''
    returnType: void
    signature: void snmp_mtp_poll()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:38,1
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - app
    - endp
    - range
    argTypes:
    - struct ss7_application*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: send_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c
    functionUses: 0
    functionsReached:
    - snprintf
    - abort
    linkageType: ''
    returnType: void
    signature: void send_reset(struct ss7_application *app, int endp, int range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - app
    - cic
    argTypes:
    - struct ss7_application*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: reset_cic
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c
    functionUses: 0
    functionsReached:
    - send_reset
    linkageType: ''
    returnType: void
    signature: void reset_cic(struct ss7_application *app, int cic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - app
    - cic
    - range
    argTypes:
    - struct ss7_application*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: reset_cics
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c
    functionUses: 0
    functionsReached:
    - send_reset
    linkageType: ''
    returnType: void
    signature: void reset_cics(struct ss7_application *app, int cic, int range)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:70,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:71,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:77,1
    - Dst: isup_cic_to_local
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:83,1
    - Dst: isup_parse_status
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:87,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:88,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:90,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:95,1
    - Dst: reset_cics
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:98,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:101,1
    - Dst: reset_cic
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - app
    - msg
    argTypes:
    - struct ss7_application*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 109
    functionName: isup_scan_for_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup_filter.c
    functionUses: 0
    functionsReached:
    - isup_parse_status
    - reset_cic
    - isup_cic_to_local
    - msgb_l3len
    - LOGP
    - reset_cics
    linkageType: ''
    returnType: int
    signature: int isup_scan_for_reset(struct ss7_application *app, struct msgb *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:61,1
    - Dst: osmo_fd_unregister
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:62,1
    - Dst: release_bsc_resources
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:67,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:68,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:69,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:70,1
    - Dst: osmo_wqueue_clear
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:71,1
    - Dst: ss7_application_msc_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:72,1
    - Dst: msc_schedule_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - fw
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: msc_close_connection
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 1
    functionsReached:
    - osmo_wqueue_clear
    - osmo_fd_unregister
    - release_bsc_resources
    - close
    - msc_schedule_reconnect
    - ss7_application_msc_down
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void msc_close_connection(struct msc_connection *fw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:80,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _fw_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: msc_connect_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_close_connection
    - LOGP
    linkageType: ''
    returnType: void
    signature: void msc_connect_timeout(void *_fw_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:87,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _fw_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: msc_pong_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_close_connection
    - LOGP
    linkageType: ''
    returnType: void
    signature: void msc_pong_timeout(void *_fw_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:95,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:97,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:101,1
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fw
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: send_ping
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    - msc_send
    linkageType: ''
    returnType: void
    signature: void send_ping(struct msc_connection *fw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_ping
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:114,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:117,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _fw_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: msc_ping_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - send_ping
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void msc_ping_timeout(void *_fw_data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ipaccess_read_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:134,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:138,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:140,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:142,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:146,1
    - Dst: osmo_hexdump
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:146,1
    - Dst: ipaccess_rcvmsg_base
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:150,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:155,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:156,1
    - Dst: ss7_application_msc_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:159,1
    - Dst: msc_send_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:160,1
    - Dst: msc_send_id_response
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:163,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:165,1
    - Dst: msc_handle_id_response
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:167,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:170,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:175,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:177,1
    - Dst: msc_dispatch_sccp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:182,1
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:184,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:190,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:193,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - bfd
    argTypes:
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 195
    functionName: ipaccess_a_fd_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_close_connection
    - msc_handle_id_response
    - ipaccess_rcvmsg_base
    - msc_dispatch_sccp
    - msc_send_reset
    - msgb_free
    - fprintf
    - ss7_application_msc_up
    - osmo_hexdump
    - msc_send_id_response
    - ipaccess_read_msg
    - abort
    - osmo_timer_del
    - LOGP
    linkageType: ''
    returnType: int
    signature: int ipaccess_a_fd_cb(struct osmo_fd *bfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:201,1
    - Dst: osmo_hexdump
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:201,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:202,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - struct osmo_fd*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: ipaccess_write_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - write
    - LOGP
    - osmo_hexdump
    linkageType: ''
    returnType: int
    signature: int ipaccess_write_cb(struct osmo_fd *fd, struct msgb *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:220,1
    - Dst: getsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:228,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:230,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:234,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:242,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - fd
    - what
    argTypes:
    - struct osmo_fd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 249
    functionName: msc_connection_connect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - LOGP
    - llist_empty
    - msc_close_connection
    linkageType: ''
    returnType: int
    signature: int msc_connection_connect(struct osmo_fd *fd, unsigned int what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:255,1
    - Dst: perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:257,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:258,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:264,1
    - Dst: perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:266,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 273
    functionName: setnonblocking
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 3
    functionsReached:
    - perror
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int setnonblocking(struct osmo_fd *fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:280,1
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:282,1
    - Dst: perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:285,1
    - Dst: setnonblocking
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:290,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:293,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:295,1
    - Dst: inet_aton
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:296,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:298,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:299,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:301,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:301,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:302,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:304,1
    - Dst: strerror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:304,1
    - Dst: connect
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:306,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:309,1
    - Dst: perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:313,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:314,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:322,1
    - Dst: perror
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:324,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:325,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - fd
    - ip
    - port
    - tos
    argTypes:
    - struct osmo_fd*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 331
    functionName: connect_to_msc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - setnonblocking
    - connect
    - socket
    - close
    - strerror
    - memset
    - osmo_fd_register
    - inet_aton
    - setsockopt
    - perror
    - LOGP
    - htons
    linkageType: ''
    returnType: int
    signature: int connect_to_msc(struct osmo_fd *fd, const char *ip, int port, int
      tos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:338,1
    - Dst: connect_to_msc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:341,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:343,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:344,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 351
    functionName: msc_reconnect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - fprintf
    - osmo_timer_schedule
    - connect_to_msc
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void msc_reconnect(void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fw
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: msc_schedule_reconnect
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 1
    functionsReached:
    - osmo_timer_schedule
    linkageType: ''
    returnType: void
    signature: void msc_schedule_reconnect(struct msc_connection *fw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:372,1
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msc
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 377
    functionName: msc_mgcp_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - snprintf
    - abort
    linkageType: ''
    returnType: void
    signature: void msc_mgcp_reset(struct msc_connection *msc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:381,1
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - agent
    - msg
    argTypes:
    - struct mgcp_callagent*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: msc_mgcp_read_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_send
    - container_of
    linkageType: ''
    returnType: void
    signature: void msc_mgcp_read_cb(struct mgcp_callagent *agent, struct msgb *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:388,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:389,1
    - Dst: ipaccess_prepend_header
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:393,1
    - Dst: osmo_wqueue_enqueue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:395,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:396,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fw
    - msg
    - proto
    argTypes:
    - struct msc_connection*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: msc_send
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 2
    functionsReached:
    - ipaccess_prepend_header
    - LOGP
    - osmo_wqueue_enqueue
    - msgb_free
    linkageType: ''
    returnType: void
    signature: void msc_send(struct msc_connection *fw, struct msgb *msg, int proto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:408,1
    - Dst: create_sccp_rlc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:412,1
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fw
    - src
    - dst
    argTypes:
    - struct msc_connection*
    - struct sccp_source_reference*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 417
    functionName: msc_send_rlc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - create_sccp_rlc
    - LOGP
    - msc_send
    linkageType: ''
    returnType: void
    signature: "void msc_send_rlc(struct msc_connection *fw,\n\t\t  struct sccp_source_reference
      *src, struct sccp_source_reference *dst)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:424,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:430,1
    - Dst: msc_ping_timeout
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:431,1
    - Dst: create_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:436,1
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:440,1
    - Dst: msc_ping_timeout
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - fw
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 442
    functionName: msc_send_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 1
    functionsReached:
    - LOGP
    - create_reset
    - msc_ping_timeout
    - msc_send
    linkageType: ''
    returnType: void
    signature: void msc_send_reset(struct msc_connection *fw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:449,1
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:454,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:455,1
    - Dst: msgb_l16tv_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:456,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:456,1
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fw
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 460
    functionName: msc_send_id_response
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 1
    functionsReached:
    - msgb_l16tv_put
    - msc_send
    - msgb_v_put
    - strlen
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: void
    signature: void msc_send_id_response(struct msc_connection *fw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fw
    - msg
    argTypes:
    - struct msc_connection*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: msc_send_direct
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_send
    linkageType: ''
    returnType: void
    signature: void msc_send_direct(struct msc_connection *fw, struct msgb *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:471,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:473,1
    - Dst: osmo_wqueue_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:480,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - bsc
    - mgcp
    argTypes:
    - struct bsc_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 507
    functionName: msc_connection_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - osmo_wqueue_init
    - talloc_zero
    - llist_add_tail
    - LOGP
    linkageType: ''
    returnType: struct msc_connection
    signature: struct msc_connection *msc_connection_create(struct bsc_data *bsc,
      int mgcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bsc
    - num
    argTypes:
    - struct bsc_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 517
    functionName: msc_connection_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: struct msc_connection
    signature: struct msc_connection *msc_connection_num(struct bsc_data *bsc, int
      num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:522,1
    - Dst: msc_conn_bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:529,1
    - Dst: msc_schedule_reconnect
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - msc
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 533
    functionName: msc_connection_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - LOGP
    - msc_conn_bind
    - msc_schedule_reconnect
    linkageType: ''
    returnType: int
    signature: int msc_connection_start(struct msc_connection *msc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - msc
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 545
    functionName: msc_mode
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *msc_mode(struct msc_connection *msc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:564,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:566,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:567,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:571,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:571,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:572,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:572,1
    - Dst: msc_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - msc
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 576
    functionName: msc_send_auth_req
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_close_connection
    - ARRAY_SIZE
    - memcpy
    - msc_send
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: int
    signature: int msc_send_auth_req(struct msc_connection *msc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:585,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:590,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:594,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:595,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:596,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:602,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:608,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:610,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:611,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:611,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:615,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:616,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:620,1
    - Dst: ss7_application_msc_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:622,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - msc
    - msg
    argTypes:
    - struct msc_connection*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 626
    functionName: msc_handle_id_response
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 1
    functionsReached:
    - msc_close_connection
    - msgb_l2len
    - ss7_application_msc_up
    - strlen
    - memcmp
    - LOGP
    linkageType: ''
    returnType: void
    signature: void msc_handle_id_response(struct msc_connection *msc, struct msgb
      *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:635,1
    - Dst: accept
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:637,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:639,1
    - Dst: msc_close_connection
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:648,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:656,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:658,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:659,1
    - Dst: msc_send_auth_req
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:668,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - bsc_fd
    - what
    argTypes:
    - struct osmo_fd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 673
    functionName: msc_conn_accept
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 0
    functionsReached:
    - msc_close_connection
    - msc_send_auth_req
    - accept
    - close
    - LOGP
    - osmo_fd_register
    linkageType: ''
    returnType: int
    signature: int msc_conn_accept(struct osmo_fd *bsc_fd, unsigned int what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:679,1
    - Dst: osmo_sock_init_ofd
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:681,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - msc
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 692
    functionName: msc_conn_bind
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/msc_conn.c
    functionUses: 1
    functionsReached:
    - LOGP
    - osmo_sock_init_ofd
    linkageType: ''
    returnType: int
    signature: int msc_conn_bind(struct msc_connection *msc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - trans
    argTypes:
    - struct sctp_m2ua_transport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: sctp_m2ua_conn_count
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: int
    signature: int sctp_m2ua_conn_count(struct sctp_m2ua_transport *trans)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - trans
    - link_index
    argTypes:
    - struct sctp_m2ua_transport*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: find_m2ua_link
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: struct mtp_m2ua_link
    signature: struct mtp_m2ua_link *find_m2ua_link(struct sctp_m2ua_transport *trans,
      int link_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:64,1
    - Dst: mtp_link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: link_down
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 5
    functionsReached:
    - mtp_link_down
    - rate_ctr_inc
    linkageType: ''
    returnType: void
    signature: void link_down(struct mtp_link *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:72,1
    - Dst: osmo_fd_unregister
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:73,1
    - Dst: osmo_wqueue_clear
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:74,1
    - Dst: llist_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:75,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:77,1
    - Dst: link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:82,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct sctp_m2ua_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: m2ua_conn_destroy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - osmo_wqueue_clear
    - osmo_fd_unregister
    - link_down
    - talloc_free
    - llist_del
    - close
    - llist_for_each_entry
    linkageType: ''
    returnType: void
    signature: void m2ua_conn_destroy(struct sctp_m2ua_conn *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_to_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:99,1
    - Dst: msgb_push
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:105,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:106,1
    - Dst: osmo_wqueue_enqueue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:108,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:109,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - conn
    - m2ua
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: m2ua_conn_send
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - memcpy
    - osmo_wqueue_enqueue
    - msgb_free
    - xua_to_msg
    - msgb_push
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m2ua_conn_send(struct sctp_m2ua_conn *conn,\n\t\t\t  struct xua_msg
      *m2ua,\n\t\t\t  struct sctp_sndrcvinfo *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:126,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:133,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:136,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:138,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:140,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:141,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:143,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:144,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:146,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - link
    - conn
    - info
    argTypes:
    - struct mtp_m2ua_link*
    - struct sctp_m2ua_conn*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 150
    functionName: m2ua_conn_send_ntfy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - ntohs
    - xua_msg_add_data
    - xua_msg_alloc
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: "int m2ua_conn_send_ntfy(struct mtp_m2ua_link *link,\n\t\t\t       struct
      sctp_m2ua_conn *conn,\n\t\t\t       struct sctp_sndrcvinfo *info)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:161,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:163,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:167,1
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:172,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:174,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:180,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:181,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:185,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:189,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:192,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:194,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - conn
    - m2ua
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 203
    functionName: m2ua_handle_asp_ack
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    - xua_msg_free
    - memcpy
    - xua_msg_find_tag
    - xua_msg_alloc
    - memcmp
    - LOGP
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_asp_ack(struct sctp_m2ua_conn *conn,\n\t\t\t       struct
      xua_msg *m2ua,\n\t\t\t       struct sctp_sndrcvinfo *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m2ua_handle_asp_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:210,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - m2ua
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: m2ua_handle_asp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - m2ua_handle_asp_ack
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_asp(struct sctp_m2ua_conn *conn,\n\t\t\t   struct
      xua_msg *m2ua, struct sctp_sndrcvinfo *info)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:228,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:238,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:248,1
    - Dst: find_m2ua_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:249,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:249,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:251,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:252,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:258,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:262,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:263,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:268,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:278,1
    - Dst: find_m2ua_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:279,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:279,1
    - Dst: m2ua_conn_send_ntfy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:282,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:285,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - conn
    - m2ua
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 287
    functionName: m2ua_handle_asptm_act
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - ntohl
    - xua_msg_free
    - memcpy
    - m2ua_conn_send_ntfy
    - xua_msg_add_data
    - xua_msg_alloc
    - find_m2ua_link
    - LOGP
    - llist_for_each_entry
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_asptm_act(struct sctp_m2ua_conn *conn,\n\t\t\t\t struct
      xua_msg *m2ua,\n\t\t\t\t struct sctp_sndrcvinfo *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: m2ua_handle_asptm_act
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:295,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - m2ua
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 304
    functionName: m2ua_handle_asptm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - m2ua_handle_asptm_act
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_asptm(struct sctp_m2ua_conn *conn,\n\t\t\t     struct
      xua_msg *m2ua,\n\t\t\t     struct sctp_sndrcvinfo *info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:316,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:318,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:322,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:323,1
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:327,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:331,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:332,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:335,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:336,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:337,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:338,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:341,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:343,1
    - Dst: mtp_link_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:345,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - link
    - conn
    - m2ua
    - info
    argTypes:
    - struct mtp_m2ua_link*
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 353
    functionName: m2ua_handle_state_req
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    - xua_msg_free
    - memcpy
    - xua_msg_find_tag
    - mtp_link_up
    - xua_msg_add_data
    - xua_msg_alloc
    - LOGP
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_state_req(struct mtp_m2ua_link *link,\n\t\t\t\t struct
      sctp_m2ua_conn *conn,\n\t\t\t\t struct xua_msg *m2ua,\n\t\t\t\t struct sctp_sndrcvinfo
      *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:363,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:370,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:371,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:373,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:375,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - link
    - conn
    - m2ua
    - info
    argTypes:
    - struct mtp_m2ua_link*
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 382
    functionName: m2ua_handle_est_req
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - xua_msg_add_data
    - xua_msg_alloc
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_est_req(struct mtp_m2ua_link *link,\n\t\t\t       struct
      sctp_m2ua_conn *conn,\n\t\t\t       struct xua_msg *m2ua,\n\t\t\t       struct
      sctp_sndrcvinfo *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:392,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:399,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:400,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:402,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:403,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:409,1
    - Dst: link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:410,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - link
    - conn
    - m2ua
    - info
    argTypes:
    - struct mtp_m2ua_link*
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 413
    functionName: m2ua_handle_rel_req
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - link_down
    - xua_msg_add_data
    - xua_msg_alloc
    - LOGP
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_rel_req(struct mtp_m2ua_link *link,\n\t\t\t       struct
      sctp_m2ua_conn *conn,\n\t\t\t       struct xua_msg *m2ua,\n\t\t\t       struct
      sctp_sndrcvinfo *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:424,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:426,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:431,1
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:435,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:437,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:441,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:442,1
    - Dst: mtp_handle_pcap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:446,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:446,1
    - Dst: mtp_link_set_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:447,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - _link
    - conn
    - m2ua
    - info
    argTypes:
    - struct mtp_m2ua_link*
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 452
    functionName: m2ua_handle_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - memcpy
    - msgb_put
    - msgb_l2len
    - xua_msg_find_tag
    - mtp_handle_pcap
    - msgb_alloc
    - msgb_free
    - mtp_link_set_data
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_data(struct mtp_m2ua_link *_link,\n\t\t\t    struct
      sctp_m2ua_conn *conn,\n\t\t\t    struct xua_msg *m2ua,\n\t\t\t    struct sctp_sndrcvinfo
      *info)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:460,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:466,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:474,1
    - Dst: m2ua_handle_state_req
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:482,1
    - Dst: m2ua_handle_est_req
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:485,1
    - Dst: m2ua_handle_rel_req
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:488,1
    - Dst: m2ua_handle_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:491,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:494,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - link
    - conn
    - m2ua
    - info
    argTypes:
    - struct mtp_m2ua_link*
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 500
    functionName: m2ua_handle_maup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - m2ua_handle_state_req
    - m2ua_handle_rel_req
    - m2ua_handle_est_req
    - LOGP
    - m2ua_handle_data
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_maup(struct mtp_m2ua_link *link,\n\t\t\t    struct
      sctp_m2ua_conn *conn,\n\t\t\t    struct xua_msg *m2ua,\n\t\t\t    struct sctp_sndrcvinfo
      *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:507,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - m2ua
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct xua_msg*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 515
    functionName: m2ua_handle_mgmt
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m2ua_handle_mgmt(struct sctp_m2ua_conn *conn,\n\t\t\t    struct
      xua_msg *m2ua, struct sctp_sndrcvinfo *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:521,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:523,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - m2ua
    - def
    argTypes:
    - struct xua_msg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: m2ua_find_interface
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - xua_msg_find_tag
    - ntohl
    - memcpy
    linkageType: ''
    returnType: int
    signature: int m2ua_find_interface(struct xua_msg *m2ua, int def)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xua_from_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:535,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:537,1
    - Dst: find_m2ua_link
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:541,1
    - Dst: m2ua_find_interface
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:541,1
    - Dst: m2ua_handle_mgmt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:545,1
    - Dst: m2ua_handle_asp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:548,1
    - Dst: m2ua_handle_asptm
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:551,1
    - Dst: m2ua_handle_maup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:554,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:557,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - conn
    - msg
    - info
    argTypes:
    - struct sctp_m2ua_conn*
    - struct msgb*
    - struct sctp_sndrcvinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 564
    functionName: m2ua_conn_handle
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - xua_from_msg
    - m2ua_handle_mgmt
    - xua_msg_free
    - m2ua_handle_maup
    - m2ua_handle_asp
    - m2ua_handle_asptm
    - find_m2ua_link
    - m2ua_find_interface
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int m2ua_conn_handle(struct sctp_m2ua_conn *conn,\n\t\t\t    struct
      msgb *msg, struct sctp_sndrcvinfo *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:574,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:576,1
    - Dst: m2ua_conn_destroy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:577,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:581,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:582,1
    - Dst: sctp_recvmsg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:583,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:586,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:588,1
    - Dst: m2ua_conn_destroy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:589,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:593,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:594,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:595,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:599,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:600,1
    - Dst: m2ua_conn_handle
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:602,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - fd
    argTypes:
    - struct osmo_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 566
    functionDepth: 5
    functionLinenumber: 566
    functionLinenumberEnd: 605
    functionName: m2ua_conn_read
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - ntohl
    - msgb_put
    - msgb_alloc
    - sctp_recvmsg
    - m2ua_conn_destroy
    - msgb_free
    - m2ua_conn_handle
    - LOGP
    - memset
    linkageType: ''
    returnType: int
    signature: int m2ua_conn_read(struct osmo_fd *fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:618,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:624,1
    - Dst: xua_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:629,1
    - Dst: mtp_handle_pcap
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:633,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:638,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:639,1
    - Dst: xua_msg_add_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:640,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:642,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:645,1
    - Dst: m2ua_conn_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:647,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:648,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 653
    functionName: sctp_m2ua_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - htonl
    - xua_msg_free
    - mtp_handle_pcap
    - msgb_free
    - memset
    - xua_msg_add_data
    - xua_msg_alloc
    - LOGP
    - m2ua_conn_send
    linkageType: ''
    returnType: int
    signature: int sctp_m2ua_write(struct mtp_link *link, struct msgb *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:659,1
    - Dst: sctp_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:661,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:661,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:664,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - struct osmo_fd*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 668
    functionName: m2ua_conn_write
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - LOGP
    - sctp_send
    - memcpy
    linkageType: ''
    returnType: int
    signature: int m2ua_conn_write(struct osmo_fd *fd, struct msgb *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:680,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:682,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:688,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:689,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:693,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:695,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:697,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:698,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:702,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:703,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:705,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:706,1
    - Dst: osmo_wqueue_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:712,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:719,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:720,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:721,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:722,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:726,1
    - Dst: sctp_m2ua_conn_count
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:729,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 2
    argNames:
    - fd
    - what
    argTypes:
    - struct osmo_fd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 732
    functionName: sctp_trans_accept
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - llist_add_tail
    - close
    - osmo_wqueue_init
    - osmo_fd_register
    - talloc_zero
    - sctp_m2ua_conn_count
    - accept
    - LOGP
    - memset
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int sctp_trans_accept(struct osmo_fd *fd, unsigned int what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: sctp_m2ua_dummy
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sctp_m2ua_dummy(struct mtp_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:748,1
    - Dst: mtp_link_start_link_test
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - _link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 755
    functionName: sctp_m2ua_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - LOGP
    - mtp_link_start_link_test
    linkageType: ''
    returnType: int
    signature: int sctp_m2ua_reset(struct mtp_link *_link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:761,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:763,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:767,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bsc
    argTypes:
    - struct bsc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 772
    functionName: sctp_m2ua_transp_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - INIT_LLIST_HEAD
    - LOGP
    linkageType: ''
    returnType: struct sctp_m2ua_transport
    signature: struct sctp_m2ua_transport *sctp_m2ua_transp_create(struct bsc_data
      *bsc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:780,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:782,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:786,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:788,1
    - Dst: inet_addr
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:789,1
    - Dst: bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:791,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:792,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:793,1
    - Dst: listen
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:797,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:798,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:799,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:808,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:809,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - trans
    - ip
    - port
    argTypes:
    - struct sctp_m2ua_transport*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 815
    functionName: sctp_m2ua_transport_bind
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - bind
    - listen
    - socket
    - close
    - osmo_fd_register
    - LOGP
    - inet_addr
    - memset
    - htons
    linkageType: ''
    returnType: int
    signature: "int sctp_m2ua_transport_bind(struct sctp_m2ua_transport *trans,\n\t\t\t
      \    const char *ip, int port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:822,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:824,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - blnk
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 844
    functionName: mtp_m2ua_link_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m2ua.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - llist_add_tail
    - LOGP
    linkageType: ''
    returnType: struct mtp_m2ua_link
    signature: struct mtp_m2ua_link *mtp_m2ua_link_init(struct mtp_link *blnk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:34,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:35,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - not
    argTypes:
    - struct thread_notifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: thread_finish
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - close
    linkageType: ''
    returnType: int
    signature: int thread_finish(struct thread_notifier *not)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: thread_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c
    functionUses: 1
    functionsReached:
    - talloc_named_const
    linkageType: ''
    returnType: void
    signature: void thread_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:48,1
    - Dst: socketpair
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:52,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:57,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:58,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:59,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:65,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: thread_notifier_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c
    functionUses: 0
    functionsReached:
    - INIT_LLIST_HEAD
    - talloc_zero
    - socketpair
    - close
    - pthread_mutex_init
    linkageType: ''
    returnType: struct thread_notifier
    signature: struct thread_notifier *thread_notifier_alloc()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:76,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:78,1
    - Dst: write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:79,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:80,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - not
    - _new
    argTypes:
    - struct thread_notifier*
    - struct llist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: thread_safe_add
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c
    functionUses: 0
    functionsReached:
    - write
    - pthread_mutex_lock
    - llist_add_tail
    - pthread_mutex_unlock
    - fprintf
    linkageType: ''
    returnType: void
    signature: void thread_safe_add(struct thread_notifier *not, struct llist_head
      *_new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:88,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - not
    argTypes:
    - struct thread_notifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: thread_swap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/thread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void thread_swap(struct thread_notifier *not)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:41,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - set
    - _msg
    - sls
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: forward_sccp_stp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - mtp_link_set_submit_sccp_data
    linkageType: ''
    returnType: void
    signature: void forward_sccp_stp(struct mtp_link_set *set, struct msgb *_msg,
      int sls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isup_scan_for_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:49,1
    - Dst: mtp_link_set_submit_isup_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:50,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - set
    - msg
    - sls
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: forward_isup_stp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - msgb_l3len
    - mtp_link_set_submit_isup_data
    - isup_scan_for_reset
    linkageType: ''
    returnType: void
    signature: void forward_isup_stp(struct mtp_link_set *set, struct msgb *msg, int
      sls)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:56,1
    - Dst: forward_sccp_stp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:63,1
    - Dst: app_forward_sccp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - set
    - _msg
    - sls
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: mtp_link_set_forward_sccp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - LOGP
    - forward_sccp_stp
    - app_forward_sccp
    linkageType: ''
    returnType: void
    signature: void mtp_link_set_forward_sccp(struct mtp_link_set *set, struct msgb
      *_msg, int sls)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:75,1
    - Dst: forward_isup_stp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:83,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - set
    - msg
    - sls
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: mtp_link_set_forward_isup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - LOGP
    - forward_isup_stp
    linkageType: ''
    returnType: void
    signature: void mtp_link_set_forward_isup(struct mtp_link_set *set, struct msgb
      *msg, int sls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mtp_link_set_stop
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:95,1
    - Dst: app_clear_connections
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:106,1
    - Dst: msc_mgcp_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:109,1
    - Dst: msc_send_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 112
    functionName: mtp_linkset_down
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - app_clear_connections
    - msc_send_reset
    - msc_mgcp_reset
    - mtp_link_set_stop
    linkageType: ''
    returnType: void
    signature: void mtp_linkset_down(struct mtp_link_set *set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: app_clear_connections
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:127,1
    - Dst: app_resources_released
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:128,1
    - Dst: mtp_link_set_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: mtp_linkset_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_reset
    - app_clear_connections
    - app_resources_released
    linkageType: ''
    returnType: void
    signature: void mtp_linkset_up(struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:140,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:142,1
    - Dst: INIT_LLIST_HEAD
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:146,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - bsc
    argTypes:
    - struct bsc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: ss7_application_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - INIT_LLIST_HEAD
    - llist_add_tail
    - LOGP
    linkageType: ''
    returnType: struct ss7_application
    signature: struct ss7_application *ss7_application_alloc(struct bsc_data *bsc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bsc
    - num
    argTypes:
    - struct bsc_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: ss7_application_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: struct ss7_application
    signature: struct ss7_application *ss7_application_num(struct bsc_data *bsc, int
      num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:172,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:179,1
    - Dst: mtp_link_set_num
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:186,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:188,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:195,1
    - Dst: mtp_link_set_num
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:203,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:205,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 5
    argNames:
    - app
    - src_type
    - src_num
    - dst_type
    - dst_num
    argTypes:
    - struct ss7_application*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 237
    functionName: ss7_app_setup_stp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_num
    - LOGP
    linkageType: ''
    returnType: int
    signature: "int ss7_app_setup_stp(struct ss7_application *app,\n\t\t\t     int
      src_type, int src_num,\n\t\t\t     int dst_type, int dst_num)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:247,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:254,1
    - Dst: mtp_link_set_num
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:261,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:263,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:270,1
    - Dst: msc_connection_num
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:278,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:280,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 6
    argNames:
    - app
    - type
    - src_type
    - src_num
    - dst_type
    - dst_num
    argTypes:
    - struct ss7_application*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 313
    functionName: ss7_app_setup_relay
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_num
    - LOGP
    - msc_connection_num
    linkageType: ''
    returnType: int
    signature: "int ss7_app_setup_relay(struct ss7_application *app, int type,\n\t\t\t
      \      int src_type, int src_num, int dst_type, int dst_num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ss7_app_setup_relay
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:322,1
    - Dst: ss7_app_setup_stp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:326,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - ss7
    - type
    - src_type
    - src_num
    - dst_type
    - dst_num
    argTypes:
    - struct ss7_application*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 333
    functionName: ss7_application_setup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - LOGP
    - ss7_app_setup_relay
    - ss7_app_setup_stp
    linkageType: ''
    returnType: int
    signature: "int ss7_application_setup(struct ss7_application *ss7, int type,\n\t\t\t
      \ int src_type, int src_num,\n\t\t\t  int dst_type, int dst_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: start_mtp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: void
    signature: void start_mtp(struct mtp_link_set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msc_connection_start
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msc
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: start_msc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - msc_connection_start
    linkageType: ''
    returnType: void
    signature: void start_msc(struct msc_connection *msc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_mtp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: start_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - start_mtp
    linkageType: ''
    returnType: void
    signature: void start_set(struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - app
    - set
    argTypes:
    - struct ss7_application*
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: prepare_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_set(struct ss7_application *app, struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:372,1
    - Dst: struct mtp_link*::shutdown
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:373,1
    - Dst: mtp_link_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: shutdown_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - struct mtp_link*::shutdown
    - llist_for_each_entry
    - mtp_link_down
    linkageType: ''
    returnType: void
    signature: void shutdown_set(struct mtp_link_set *set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:381,1
    - Dst: prepare_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:386,1
    - Dst: prepare_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:387,1
    - Dst: start_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:389,1
    - Dst: start_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:390,1
    - Dst: start_msc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:394,1
    - Dst: start_msc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:396,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - app
    argTypes:
    - struct ss7_application*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 401
    functionName: ss7_application_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - start_set
    - LOGP
    - prepare_set
    - start_msc
    linkageType: ''
    returnType: int
    signature: int ss7_application_start(struct ss7_application *app)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - app
    - pass
    argTypes:
    - struct ss7_application*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 411
    functionName: ss7_application_pass_isup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ss7_application_pass_isup(struct ss7_application *app, int pass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:417,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:419,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:424,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:425,1
    - Dst: struct mtp_link*::write
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 427
    functionName: mtp_link_submit
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 7
    functionsReached:
    - struct mtp_link*::write
    - LOGP
    - msgb_free
    - rate_ctr_inc
    linkageType: ''
    returnType: void
    signature: void mtp_link_submit(struct mtp_link *link, struct msgb *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:433,1
    - Dst: mtp_link_handle_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: mtp_link_set_data
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 3
    functionsReached:
    - LOGP
    - mtp_link_handle_data
    linkageType: ''
    returnType: int
    signature: int mtp_link_set_data(struct mtp_link *link, struct msgb *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:445,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - app
    - name
    argTypes:
    - struct ss7_application*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 449
    functionName: ss7_application_mgcp_domain_name
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - talloc_free
    linkageType: ''
    returnType: int
    signature: "int ss7_application_mgcp_domain_name(struct ss7_application *app,\n\t\t\t\t
      \    const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:453,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - app
    - name
    argTypes:
    - struct ss7_application*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: ss7_application_trunk_name
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int ss7_application_trunk_name(struct ss7_application *app, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:463,1
    - Dst: start_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - app
    argTypes:
    - struct ss7_application*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: ss7_application_msc_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 2
    functionsReached:
    - start_set
    linkageType: ''
    returnType: int
    signature: int ss7_application_msc_up(struct ss7_application *app)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:472,1
    - Dst: shutdown_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - app
    argTypes:
    - struct ss7_application*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: ss7_application_msc_down
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/ss7_application.c
    functionUses: 1
    functionsReached:
    - shutdown_set
    linkageType: ''
    returnType: int
    signature: int ss7_application_msc_down(struct ss7_application *app)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: is_one_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: int
    signature: int is_one_up(struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_one_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:53,1
    - Dst: mtp_linkset_down
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:57,1
    - Dst: struct mtp_link*::clear_queue
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:58,1
    - Dst: mtp_link_stop_link_test
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:59,1
    - Dst: mtp_link_set_init_slc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: mtp_link_down
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 4
    functionsReached:
    - struct mtp_link*::clear_queue
    - is_one_up
    - mtp_linkset_down
    - mtp_link_stop_link_test
    - mtp_link_set_init_slc
    linkageType: ''
    returnType: void
    signature: void mtp_link_down(struct mtp_link *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:68,1
    - Dst: is_one_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:74,1
    - Dst: mtp_link_set_init_slc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:78,1
    - Dst: mtp_linkset_up
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:80,1
    - Dst: mtp_link_start_link_test
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: mtp_link_up
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 3
    functionsReached:
    - is_one_up
    - mtp_link_start_link_test
    - mtp_linkset_up
    - mtp_link_set_init_slc
    - LOGP
    linkageType: ''
    returnType: void
    signature: void mtp_link_up(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:87,1
    - Dst: struct mtp_link*::reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: mtp_link_restart
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 0
    functionsReached:
    - LOGP
    - struct mtp_link*::reset
    linkageType: ''
    returnType: void
    signature: void mtp_link_restart(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mtp_link_set_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:95,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - bsc
    argTypes:
    - struct bsc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: link_set_create
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_alloc
    - talloc_strdup
    linkageType: ''
    returnType: struct mtp_link_set
    signature: struct mtp_link_set *link_set_create(struct bsc_data *bsc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:118,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:122,1
    - Dst: link_global_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:124,1
    - Dst: link_global_bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:127,1
    - Dst: mtp_link_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:131,1
    - Dst: mtp_udp_link_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:132,1
    - Dst: snmp_mtp_peer_name
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:137,1
    - Dst: link_udp_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - bsc
    - set
    argTypes:
    - struct bsc_data*
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 145
    functionName: link_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 2
    functionsReached:
    - mtp_link_alloc
    - mtp_udp_link_init
    - snmp_mtp_peer_name
    - link_global_init
    - link_global_bind
    - LOGP
    - link_udp_init
    linkageType: ''
    returnType: int
    signature: int link_init(struct bsc_data *bsc, struct mtp_link_set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: link_shutdown_all
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 1
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: int
    signature: int link_shutdown_all(struct mtp_link_set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: link_reset_all
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: int
    signature: int link_reset_all(struct mtp_link_set *set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: link_clear_all
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: int
    signature: int link_clear_all(struct mtp_link_set *set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mtp_pcap_write_msu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:177,1
    - Dst: mtp_pcap_write_msu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:179,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:182,1
    - Dst: osmo_hexdump
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - link
    - dir
    - data
    - len
    argTypes:
    - struct mtp_link*
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: mtp_handle_pcap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/links.c
    functionUses: 6
    functionsReached:
    - mtp_pcap_write_msu
    - osmo_hexdump
    - LOGP
    linkageType: ''
    returnType: int
    signature: int mtp_handle_pcap(struct mtp_link *link, int dir, const uint8_t *data,
      int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:36,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:38,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:42,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:50,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:57,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:61,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:62,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:64,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - cic
    - msg_type
    - extra
    - range
    - val
    argTypes:
    - int
    - int
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 70
    functionName: isup_status_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - msgb_v_put
    - memset
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *isup_status_alloc(int cic, int msg_type, uint8_t *extra,
      int range, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:77,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:79,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:83,1
    - Dst: msgb_v_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cic
    - msg_type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: isup_simple_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    - msgb_v_put
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *isup_simple_alloc(int cic, int msg_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:100,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:106,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - in_length
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: isup_parse_status
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 1
    functionsReached:
    - LOGP
    linkageType: ''
    returnType: int
    signature: int isup_parse_status(const uint8_t *data, uint8_t in_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isup_parse_status
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:126,1
    - Dst: isup_status_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:130,1
    - Dst: mtp_link_set_submit_isup_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:134,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:134,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - set
    - sls
    - cic
    - data
    - size
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: handle_circuit_reset_grs
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_submit_isup_data
    - msgb_l2len
    - isup_parse_status
    - msgb_free
    - isup_status_alloc
    linkageType: ''
    returnType: int
    signature: "int handle_circuit_reset_grs(struct mtp_link_set *set, int sls, int
      cic,\n\t\t\t\t    const uint8_t *data, int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isup_parse_status
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:149,1
    - Dst: isup_status_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:154,1
    - Dst: mtp_link_set_submit_isup_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:158,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:158,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - set
    - sls
    - cic
    - data
    - size
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 161
    functionName: handle_circuit_reset_cgb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - mtp_link_set_submit_isup_data
    - msgb_l2len
    - isup_parse_status
    - msgb_free
    - isup_status_alloc
    linkageType: ''
    returnType: int
    signature: "int handle_circuit_reset_cgb(struct mtp_link_set *set, int sls, int
      cic,\n\t\t\t\t    const uint8_t *data, int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isup_status_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:169,1
    - Dst: mtp_link_set_submit_isup_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:173,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:173,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - set
    - sls
    - cic
    - range
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: send_cgu
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - isup_status_alloc
    - mtp_link_set_submit_isup_data
    - msgb_free
    linkageType: ''
    returnType: int
    signature: int send_cgu(struct mtp_link_set *set, int sls, int cic, int range)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:185,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:187,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:191,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:198,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:199,1
    - Dst: mtp_link_set_submit_isup_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:201,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:201,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - set
    - sls
    - cic
    - data
    - size
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 204
    functionName: handle_cgu
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - memcpy
    - msgb_put
    - msgb_l2len
    - msgb_free
    - mtp_link_set_submit_isup_data
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: int
    signature: "int handle_cgu(struct mtp_link_set *set, int sls, int cic,\n\t\t      uint8_t
      *data, uint16_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isup_simple_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:210,1
    - Dst: mtp_link_set_submit_isup_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:213,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:213,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - set
    - sls
    - cic
    - msg_type
    argTypes:
    - struct mtp_link_set*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: handle_simple_resp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - mtp_link_set_submit_isup_data
    - isup_simple_alloc
    - msgb_free
    linkageType: ''
    returnType: int
    signature: int handle_simple_resp(struct mtp_link_set *set, int sls, int cic,
      int msg_type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:224,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:225,1
    - Dst: mtp_link_set_forward_isup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:230,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:235,1
    - Dst: handle_circuit_reset_grs
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:239,1
    - Dst: handle_circuit_reset_cgb
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:242,1
    - Dst: send_cgu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:244,1
    - Dst: handle_cgu
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:247,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:250,1
    - Dst: handle_simple_resp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:254,1
    - Dst: mtp_link_set_forward_isup
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - set
    - msg
    - sls
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 263
    functionName: mtp_link_set_isup
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 1
    functionsReached:
    - send_cgu
    - mtp_link_set_forward_isup
    - handle_circuit_reset_cgb
    - handle_simple_resp
    - msgb_l3len
    - LOGP
    - handle_circuit_reset_grs
    - handle_cgu
    linkageType: ''
    returnType: int
    signature: int mtp_link_set_isup(struct mtp_link_set *set, struct msgb *msg, int
      sls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_swap_16
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct isup_msg_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: isup_cic_to_local
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/isup.c
    functionUses: 1
    functionsReached:
    - c_swap_16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t isup_cic_to_local(const struct isup_msg_hdr *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_msg_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:36,1
    - Dst: MTP_ADDR
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:43,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:45,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:48,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:50,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:50,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:51,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:51,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:54,1
    - Dst: ARRAY_SIZE
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: mtp_create_sltm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - memcpy
    - msgb_put
    - mtp_msg_alloc
    - MTP_ADDR
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *mtp_create_sltm(struct mtp_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtp_create_sltm
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:64,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:66,1
    - Dst: mtp_link_submit
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: mtp_send_sltm
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - LOGP
    - mtp_create_sltm
    - mtp_link_submit
    linkageType: ''
    returnType: void
    signature: void mtp_send_sltm(struct mtp_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:78,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:81,1
    - Dst: mtp_send_sltm
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:85,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:86,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:88,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:91,1
    - Dst: mtp_link_failure
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - _link
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: mtp_sltm_t1_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - mtp_send_sltm
    - rate_ctr_inc
    - osmo_timer_schedule
    - osmo_timer_del
    - LOGP
    - mtp_link_failure
    linkageType: ''
    returnType: void
    signature: void mtp_sltm_t1_timeout(void *_link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:101,1
    - Dst: mtp_send_sltm
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:108,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:110,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:113,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - _link
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: mtp_sltm_t2_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - osmo_timer_schedule
    - LOGP
    - mtp_send_sltm
    linkageType: ''
    returnType: void
    signature: void mtp_sltm_t2_timeout(void *_link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:121,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: mtp_link_stop_link_test
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 2
    functionsReached:
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void mtp_link_stop_link_test(struct mtp_link *link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:130,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:136,1
    - Dst: mtp_link_verified
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:140,1
    - Dst: mtp_sltm_t2_timeout
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: mtp_link_start_link_test
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 3
    functionsReached:
    - LOGP
    - mtp_sltm_t2_timeout
    - mtp_link_verified
    linkageType: ''
    returnType: void
    signature: void mtp_link_start_link_test(struct mtp_link *link)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:151,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:156,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:160,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:161,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - link
    - l3_len
    - mng
    argTypes:
    - struct mtp_link*
    - uint16_t
    - struct mtp_level_3_mng*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 171
    functionName: mtp_link_slta
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 1
    functionsReached:
    - osmo_timer_del
    - LOGP
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int mtp_link_slta(struct mtp_link *link, uint16_t l3_len,\n\t\t  struct
      mtp_level_3_mng *mng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:176,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:181,1
    - Dst: rate_ctr_inc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:183,1
    - Dst: struct mtp_link*::reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: mtp_link_failure
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 2
    functionsReached:
    - LOGP
    - struct mtp_link*::reset
    - rate_ctr_inc
    linkageType: ''
    returnType: void
    signature: void mtp_link_failure(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct mtp_link*::shutdown
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: mtp_link_block
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - struct mtp_link*::shutdown
    linkageType: ''
    returnType: void
    signature: void mtp_link_block(struct mtp_link *link)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct mtp_link*::reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: mtp_link_unblock
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - struct mtp_link*::reset
    linkageType: ''
    returnType: void
    signature: void mtp_link_unblock(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct mtp_link*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: dummy_arg1
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - LOGP
    linkageType: ''
    returnType: int
    signature: int dummy_arg1(struct mtp_link *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:210,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - link
    - msg
    argTypes:
    - struct mtp_link*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: dummy_arg2
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - LOGP
    - msgb_free
    linkageType: ''
    returnType: int
    signature: int dummy_arg2(struct mtp_link *link, struct msgb *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:220,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:222,1
    - Dst: rate_ctr_group_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:227,1
    - Dst: mtp_link_rate_ctr_desc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:228,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:230,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:231,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:250,1
    - Dst: mtp_link_set_init_slc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct mtp_link_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 254
    functionName: mtp_link_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 2
    functionsReached:
    - talloc_free
    - rate_ctr_group_alloc
    - llist_add_tail
    - talloc_zero
    - mtp_link_rate_ctr_desc
    - mtp_link_set_init_slc
    - LOGP
    linkageType: ''
    returnType: struct mtp_link
    signature: struct mtp_link *mtp_link_alloc(struct mtp_link_set *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - set
    - num
    argTypes:
    - struct mtp_link_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: mtp_link_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/mtp_link.c
    functionUses: 0
    functionsReached:
    - llist_for_each_entry
    linkageType: ''
    returnType: struct mtp_link
    signature: struct mtp_link *mtp_link_num(struct mtp_link_set *set, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:56,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:58,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:62,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:62,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:63,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:63,1
    - Dst: msc_send_direct
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - msc
    - _msg
    argTypes:
    - struct msc_connection*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: send_direct
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - memcpy
    - msgb_put
    - msgb_l2len
    - msc_send_direct
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: void
    signature: void send_direct(struct msc_connection *msc, struct msgb *_msg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: send_direct
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:83,1
    - Dst: bss_patch_filter_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:87,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:89,1
    - Dst: msc_mgcp_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:90,1
    - Dst: send_reset_ack
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:91,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:98,1
    - Dst: app_clear_connections
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:99,1
    - Dst: app_resources_released
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:100,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:105,1
    - Dst: handle_local_sccp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:109,1
    - Dst: update_con_state
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:113,1
    - Dst: send_local_rlsd
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:116,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:118,1
    - Dst: bsc_ussd_handle_out_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:123,1
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:125,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:127,1
    - Dst: bss_rewrite_header_for_msc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:131,1
    - Dst: msc_send_direct
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:132,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - app
    - _msg
    - sls
    argTypes:
    - struct ss7_application*
    - struct msgb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 133
    functionName: app_forward_sccp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - app_clear_connections
    - bsc_ussd_handle_out_msg
    - bss_patch_filter_msg
    - update_con_state
    - msgb_alloc_headroom
    - send_reset_ack
    - app_resources_released
    - bss_rewrite_header_for_msc
    - msc_send_direct
    - send_direct
    - LOGP
    - send_local_rlsd
    - msc_mgcp_reset
    - handle_local_sccp
    linkageType: ''
    returnType: void
    signature: void app_forward_sccp(struct ss7_application *app, struct msgb *_msg,
      int sls)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:145,1
    - Dst: create_sccp_refuse
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:147,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:149,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:149,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:150,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:159,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:163,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:164,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:166,1
    - Dst: create_sccp_rlsd
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:167,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:169,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:169,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:170,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:176,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:180,1
    - Dst: app_resources_released
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:181,1
    - Dst: update_con_state
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:188,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:189,1
    - Dst: app_resources_released
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:190,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - set
    - inpt
    - result
    - sls
    argTypes:
    - struct mtp_link_set*
    - struct msgb*
    - struct sccp_parse_result*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 192
    functionName: handle_local_sccp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - llist_for_each_entry
    - create_sccp_refuse
    - msgb_l2len
    - msgb_free
    - app_resources_released
    - create_sccp_rlsd
    - memcmp
    - update_con_state
    - LOGP
    - mtp_link_set_submit_sccp_data
    - llist_empty
    linkageType: ''
    returnType: void
    signature: void handle_local_sccp(struct mtp_link_set *set, struct msgb *inpt,
      struct sccp_parse_result *result, int sls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry_safe
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:198,1
    - Dst: free_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:199,1
    - Dst: link_clear_all
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - app
    argTypes:
    - struct ss7_application*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: app_clear_connections
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 3
    functionsReached:
    - link_clear_all
    - llist_for_each_entry_safe
    - free_con
    linkageType: ''
    returnType: void
    signature: void app_clear_connections(struct ss7_application *app)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - app
    argTypes:
    - struct ss7_application*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: app_resources_released
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 3
    functionsReached:
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void app_resources_released(struct ss7_application *app)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:218,1
    - Dst: mtp_link_set_stop
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:219,1
    - Dst: app_clear_connections
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:220,1
    - Dst: link_reset_all
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:221,1
    - Dst: app_resources_released
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:222,1
    - Dst: create_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:226,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:228,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:233,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:233,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:234,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - _app
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 236
    functionName: bsc_reset_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 0
    functionsReached:
    - app_clear_connections
    - msgb_l2len
    - create_reset
    - app_resources_released
    - mtp_link_set_stop
    - link_reset_all
    - osmo_timer_schedule
    - msgb_free
    - LOGP
    - mtp_link_set_submit_sccp_data
    linkageType: ''
    returnType: void
    signature: void bsc_reset_timeout(void *_app)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:268,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:275,1
    - Dst: msc_mgcp_reset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:278,1
    - Dst: llist_for_each_entry_safe
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:281,1
    - Dst: free_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:283,1
    - Dst: create_clear_command
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:287,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:292,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:292,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:293,1
    - Dst: llist_empty
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:296,1
    - Dst: app_resources_released
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:297,1
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - fw
    argTypes:
    - struct msc_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 305
    functionName: release_bsc_resources
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - msgb_l2len
    - msgb_free
    - app_resources_released
    - osmo_timer_schedule
    - mtp_link_set_submit_sccp_data
    - create_clear_command
    - free_con
    - LOGP
    - llist_for_each_entry_safe
    - msc_mgcp_reset
    - llist_empty
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void release_bsc_resources(struct msc_connection *fw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_sccp_rlc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:316,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:320,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:320,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - set
    - sls
    - src
    - dst
    argTypes:
    - struct mtp_link_set*
    - unsigned int
    - struct sccp_source_reference*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: send_rlc_to_bsc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - create_sccp_rlc
    - mtp_link_set_submit_sccp_data
    - msgb_free
    linkageType: ''
    returnType: void
    signature: "void send_rlc_to_bsc(struct mtp_link_set *set,\n\t\t\t    unsigned
      int sls, struct sccp_source_reference *src,\n\t\t\t    struct sccp_source_reference
      *dst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_con_by_src_dest_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:332,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:335,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:336,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:337,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:341,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:342,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:343,1
    - Dst: msc_send_rlc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:344,1
    - Dst: find_con_by_src_dest_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:349,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:352,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:353,1
    - Dst: msc_send_rlc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:356,1
    - Dst: free_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:358,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:360,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:361,1
    - Dst: send_rlc_to_bsc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - app
    - rlsd
    - from_msc
    argTypes:
    - struct ss7_application*
    - struct sccp_connection_released*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 367
    functionName: handle_rlsd
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 0
    functionsReached:
    - msc_send_rlc
    - sccp_src_ref_to_int
    - send_rlc_to_bsc
    - free_con
    - LOGP
    - find_con_by_src_dest_ref
    linkageType: ''
    returnType: void
    signature: void handle_rlsd(struct ss7_application *app, struct sccp_connection_released
      *rlsd, int from_msc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:402,1
    - Dst: find_con_by_src_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:407,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:409,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:410,1
    - Dst: free_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:411,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:414,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:416,1
    - Dst: llist_add_tail
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:423,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:424,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:424,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:428,1
    - Dst: find_con_by_src_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:433,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:437,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:438,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:438,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:442,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:443,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:447,1
    - Dst: find_con_by_src_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:452,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:454,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:454,1
    - Dst: free_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:455,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:459,1
    - Dst: handle_rlsd
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:462,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:466,1
    - Dst: find_con_by_src_dest_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:471,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:474,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:474,1
    - Dst: msc_send_rlc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:476,1
    - Dst: free_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:477,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:481,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:482,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:483,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 6
    argNames:
    - app
    - rc
    - res
    - msg
    - from_msc
    - sls
    argTypes:
    - struct ss7_application*
    - int
    - struct sccp_parse_result*
    - struct msgb*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 486
    functionName: update_con_state
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 2
    functionsReached:
    - handle_rlsd
    - llist_add_tail
    - msc_send_rlc
    - talloc_zero
    - sccp_src_ref_to_int
    - find_con_by_src_ref
    - free_con
    - LOGP
    - find_con_by_src_dest_ref
    linkageType: ''
    returnType: void
    signature: void update_con_state(struct ss7_application *app, int rc, struct sccp_parse_result
      *res, struct msgb *msg, int from_msc, int sls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osmo_timer_schedule
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:497,1
    - Dst: create_sccp_rlsd
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:500,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:508,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:512,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:513,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:514,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:514,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 516
    functionName: send_local_rlsd_for_con
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 0
    functionsReached:
    - msgb_l2len
    - msgb_free
    - osmo_timer_schedule
    - sccp_src_ref_to_int
    - create_sccp_rlsd
    - LOGP
    - mtp_link_set_submit_sccp_data
    linkageType: ''
    returnType: void
    signature: void send_local_rlsd_for_con(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:522,1
    - Dst: find_con_by_dest_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:524,1
    - Dst: send_local_rlsd_for_con
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - set
    - res
    argTypes:
    - struct mtp_link_set*
    - struct sccp_parse_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: send_local_rlsd
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - find_con_by_dest_ref
    - LOGP
    - send_local_rlsd_for_con
    linkageType: ''
    returnType: void
    signature: void send_local_rlsd(struct mtp_link_set *set, struct sccp_parse_result
      *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - set
    - sls
    argTypes:
    - struct mtp_link_set*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 540
    functionName: send_reset_ack
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - mtp_link_set_submit_sccp_data
    linkageType: ''
    returnType: void
    signature: void send_reset_ack(struct mtp_link_set *set, int sls)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:547,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:559,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:560,1
    - Dst: bss_patch_filter_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:565,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:568,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:570,1
    - Dst: update_con_state
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:571,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:574,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:576,1
    - Dst: update_con_state
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:580,1
    - Dst: sls_for_src_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:581,1
    - Dst: bsc_ussd_handle_in_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:584,1
    - Dst: bss_rewrite_header_to_bsc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:587,1
    - Dst: mtp_link_set_submit_sccp_data
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:590,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c:591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - msc
    - msg
    argTypes:
    - struct msc_connection*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 594
    functionName: msc_dispatch_sccp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sccp_state.c
    functionUses: 1
    functionsReached:
    - bss_patch_filter_msg
    - bsc_ussd_handle_in_msg
    - msgb_l2len
    - sls_for_src_ref
    - update_con_state
    - LOGP
    - mtp_link_set_submit_sccp_data
    - bss_rewrite_header_to_bsc
    linkageType: ''
    returnType: void
    signature: void msc_dispatch_sccp(struct msc_connection *msc, struct msgb *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - agent
    - msg
    argTypes:
    - struct mgcp_callagent*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: mgcp_destroy_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c
    functionUses: 0
    functionsReached:
    - msgb_free
    linkageType: ''
    returnType: void
    signature: void mgcp_destroy_cb(struct mgcp_callagent *agent, struct msgb *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:85,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bsc
    - len
    - buf
    argTypes:
    - struct bsc_data*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: find_link_set
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c
    functionUses: 0
    functionsReached:
    - strncmp
    - llist_for_each_entry
    linkageType: ''
    returnType: struct mtp_link_set
    signature: "struct mtp_link_set *find_link_set(struct bsc_data *bsc,\n\t\t\t\t\t
      \ int len, const char *buf)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:103,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:105,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:110,1
    - Dst: xua_from_msg
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:114,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:116,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:121,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:123,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:128,1
    - Dst: xua_msg_find_tag
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:132,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:134,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:139,1
    - Dst: find_link_set
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:143,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:145,1
    - Dst: msgb_alloc
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:149,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:151,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:155,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:156,1
    - Dst: mtp_link_set_send
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:159,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:160,1
    - Dst: msgb_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:161,1
    - Dst: xua_msg_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:166,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - fd
    - what
    argTypes:
    - struct osmo_fd*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 168
    functionName: inject_read_cb
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c
    functionUses: 0
    functionsReached:
    - xua_from_msg
    - mtp_link_set_send
    - xua_msg_free
    - memcpy
    - read
    - msgb_put
    - xua_msg_find_tag
    - msgb_alloc
    - msgb_free
    - find_link_set
    - LOGP
    linkageType: ''
    returnType: int
    signature: int inject_read_cb(struct osmo_fd *fd, unsigned int what)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:175,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:179,1
    - Dst: htons
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:181,1
    - Dst: bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:183,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:184,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:185,1
    - Dst: osmo_fd_register
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:194,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:195,1
    - Dst: close
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - bsc
    argTypes:
    - struct bsc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 201
    functionName: inject_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c
    functionUses: 0
    functionsReached:
    - bind
    - socket
    - close
    - osmo_fd_register
    - LOGP
    - memset
    - htons
    linkageType: ''
    returnType: int
    signature: int inject_init(struct bsc_data *bsc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rate_ctr_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:208,1
    - Dst: thread_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:210,1
    - Dst: osmo_init_logging
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:212,1
    - Dst: log_set_category_filter
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:215,1
    - Dst: log_set_category_filter
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:216,1
    - Dst: log_set_category_filter
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:217,1
    - Dst: log_set_category_filter
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:218,1
    - Dst: log_set_print_timestamp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:219,1
    - Dst: log_set_use_color
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:220,1
    - Dst: sccp_set_log_area
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:222,1
    - Dst: xua_set_log_area
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:223,1
    - Dst: bsc_data_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:225,1
    - Dst: handle_options
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:229,1
    - Dst: srand
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:231,1
    - Dst: time
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:231,1
    - Dst: cell_vty_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:233,1
    - Dst: telnet_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:234,1
    - Dst: inject_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:238,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:239,1
    - Dst: link_global_init
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:244,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:245,1
    - Dst: sctp_m2ua_transp_create
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:249,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:251,1
    - Dst: vty_read_config_file
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:255,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:256,1
    - Dst: link_global_bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:260,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:261,1
    - Dst: sctp_m2ua_transport_bind
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:265,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:266,1
    - Dst: mgcp_create_port
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:271,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:272,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:279,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:280,1
    - Dst: ss7_application_start
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:282,1
    - Dst: osmo_select_main
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c:286,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 290
    functionName: main
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/main_stp.c
    functionUses: 3
    functionsReached:
    - sctp_m2ua_transp_create
    - srand
    - time
    - osmo_select_main
    - osmo_init_logging
    - thread_init
    - inject_init
    - sccp_set_log_area
    - mgcp_create_port
    - LOGP
    - telnet_init
    - link_global_init
    - bsc_data_create
    - llist_for_each_entry
    - log_set_category_filter
    - xua_set_log_area
    - vty_read_config_file
    - log_set_use_color
    - handle_options
    - link_global_bind
    - cell_vty_init
    - log_set_print_timestamp
    - rate_ctr_init
    - fprintf
    - sctp_m2ua_transport_bind
    - ss7_application_start
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sccp_determine_msg_type
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_ussd.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - msc
    - result
    - msg
    argTypes:
    - struct msc_connection*
    - struct sccp_parse_result*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: bsc_ussd_handle_out_msg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_ussd.c
    functionUses: 1
    functionsReached:
    - sccp_determine_msg_type
    linkageType: ''
    returnType: int
    signature: "int bsc_ussd_handle_out_msg(struct msc_connection *msc, struct sccp_parse_result
      *result,\n\t\t\t    struct msgb *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msc
    - res
    - msg
    argTypes:
    - struct msc_connection*
    - struct sccp_parse_result*
    - struct msgb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: bsc_ussd_handle_in_msg
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_ussd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bsc_ussd_handle_in_msg(struct msc_connection *msc, struct sccp_parse_result
      *res,\n\t\t\t   struct msgb *msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:38,1
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:42,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:43,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:47,1
    - Dst: sccp_src_ref_to_int
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - fw
    - ref
    argTypes:
    - struct ss7_application*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: find_con_by_dest_ref
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c
    functionUses: 1
    functionsReached:
    - llist_for_each_entry
    - LOGP
    - sccp_src_ref_to_int
    - memcmp
    linkageType: ''
    returnType: struct active_sccp_con
    signature: struct active_sccp_con *find_con_by_dest_ref(struct ss7_application
      *fw, struct sccp_source_reference *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:60,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fw
    - src_ref
    argTypes:
    - struct ss7_application*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: find_con_by_src_ref
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c
    functionUses: 1
    functionsReached:
    - llist_for_each_entry
    - memcmp
    linkageType: ''
    returnType: struct active_sccp_con
    signature: struct active_sccp_con *find_con_by_src_ref(struct ss7_application
      *fw, struct sccp_source_reference *src_ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: llist_for_each_entry
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:74,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:75,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fw
    - src_ref
    - dst_ref
    argTypes:
    - struct ss7_application*
    - struct sccp_source_reference*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: find_con_by_src_dest_ref
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c
    functionUses: 2
    functionsReached:
    - llist_for_each_entry
    - memcmp
    linkageType: ''
    returnType: struct active_sccp_con
    signature: "struct active_sccp_con *find_con_by_src_dest_ref(struct ss7_application
      *fw,\n\t\t\t\t\t\t struct sccp_source_reference *src_ref,\n\t\t\t\t\t\t struct
      sccp_source_reference *dst_ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_con_by_src_ref
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fw
    - ref
    argTypes:
    - struct ss7_application*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sls_for_src_ref
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c
    functionUses: 1
    functionsReached:
    - find_con_by_src_ref
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sls_for_src_ref(struct ss7_application *fw, struct sccp_source_reference
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: llist_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:99,1
    - Dst: osmo_timer_del
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:100,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct active_sccp_con*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: free_con
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bsc_sccp.c
    functionUses: 4
    functionsReached:
    - talloc_free
    - llist_del
    - osmo_timer_del
    linkageType: ''
    returnType: void
    signature: void free_con(struct active_sccp_con *con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_misc.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: m3ua_traffic_mode_name
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_misc.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: char
    signature: char *m3ua_traffic_mode_name(uint32_t mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_misc.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: m3ua_traffic_mode_num
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_misc.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t m3ua_traffic_mode_num(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:36,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:38,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:42,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:50,1
    - Dst: msgb_l3len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - dest_ref
    argTypes:
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 60
    functionName: create_clear_command
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c
    functionUses: 1
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    - msgb_l3len
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *create_clear_command(struct sccp_source_reference *dest_ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:68,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:70,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - src_ref
    - dst_ref
    argTypes:
    - struct sccp_source_reference*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: create_sccp_rlsd
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c
    functionUses: 2
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: struct msgb
    signature: "struct msgb *create_sccp_rlsd(struct sccp_source_reference *src_ref,\n\t\t\t
      \     struct sccp_source_reference *dst_ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:90,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:92,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - src_ref
    - dst_ref
    argTypes:
    - struct sccp_source_reference*
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 103
    functionName: create_sccp_rlc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c
    functionUses: 2
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: struct msgb
    signature: "struct msgb *create_sccp_rlc(struct sccp_source_reference *src_ref,\n\t\t\t
      \    struct sccp_source_reference *dst_ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:110,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:112,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:116,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - dest_ref
    argTypes:
    - struct sccp_source_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: create_sccp_refuse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c
    functionUses: 1
    functionsReached:
    - msgb_put
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *create_sccp_refuse(struct sccp_source_reference *dest_ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgb_alloc_headroom
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:139,1
    - Dst: LOGP
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:141,1
    - Dst: msgb_put
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:145,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:146,1
    - Dst: msgb_l2len
      Src: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 148
    functionName: create_reset
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/bssap_sccp.c
    functionUses: 2
    functionsReached:
    - memcpy
    - msgb_put
    - msgb_l2len
    - LOGP
    - msgb_alloc_headroom
    linkageType: ''
    returnType: struct msgb
    signature: struct msgb *create_reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: mtp_link_set_rate_ctr_desc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/counter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct rate_ctr_group_desc
    signature: struct rate_ctr_group_desc *mtp_link_set_rate_ctr_desc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: mtp_link_rate_ctr_desc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_sigtran/libosmo-m3ua/counter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct rate_ctr_group_desc
    signature: struct rate_ctr_group_desc *mtp_link_rate_ctr_desc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:108,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:117,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:117,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:117,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:118,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:119,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:119,1
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:126,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:129,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:130,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:130,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:131,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:132,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:132,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:132,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:134,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 137
    functionName: lua_func_body_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cf_parent
    - fr_sha1_init
    - fr_base16_encode
    - fr_sha1_final
    - talloc_get_type_abort
    - fr_sha1_update
    - FR_SBUFF_OUT
    - cf_section_name2
    - FR_DBUFF_TMP
    - cf_log_debug
    - fr_box_strvalue_len
    - talloc_strlen
    - cf_pair_parse_value
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int lua_func_body_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:169,1
    - Dst: redisAppendCommandArgv
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:170,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:172,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:180,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:181,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:183,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:189,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:190,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:191,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:192,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:197,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:204,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:205,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:211,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:212,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:227,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:228,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:229,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:231,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:232,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:238,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 8
    argNames:
    - status_out
    - reply_out
    - request
    - conn
    - read_only
    - argc
    - argv
    - arg_len
    argTypes:
    - fr_redis_rcode_t*
    - redisReply**
    - request_t*
    - fr_redis_conn_t*
    - bool
    - int
    - char**
    - size_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 241
    functionName: redis_command
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - redisAppendCommand
    - fr_redis_reply_free
    - ROPTIONAL
    - fr_redis_command_status
    - redisGetReply
    - redisAppendCommandArgv
    linkageType: ''
    returnType: int
    signature: "int redis_command(fr_redis_rcode_t *status_out, redisReply **reply_out,\n\t\t\t
      request_t *request, fr_redis_conn_t *conn,\n\t\t\t bool read_only,\n\t\t\t int
      argc, char const **argv, size_t arg_len[])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:260,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:267,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:269,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:271,1
    - Dst: fr_redis_cluster_pool_by_node_addr
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:275,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:276,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:280,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:282,1
    - Dst: fr_redis_cluster_remap
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:286,1
    - Dst: fr_pool_connection_close
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:289,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:293,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:297,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:297,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:298,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:298,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 302
    functionName: redis_remap_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - fr_pool_connection_release
    - fr_value_box_strdup
    - fr_dcursor_append
    - fr_pool_connection_close
    - REDEBUG
    - fr_table_str_by_value
    - fr_pool_connection_get
    - fr_inet_pton_port
    - talloc_get_type_abort_const
    - fr_redis_cluster_remap
    - MEM
    - fr_value_box_alloc_null
    - fr_redis_cluster_pool_by_node_addr
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t redis_remap_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:322,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:331,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:332,1
    - Dst: fr_redis_cluster_slot_by_key
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:336,1
    - Dst: fr_redis_cluster_master
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:339,1
    - Dst: fr_redis_cluster_slave
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:341,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:345,1
    - Dst: fr_redis_cluster_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:349,1
    - Dst: fr_redis_cluster_port
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:349,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:354,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:354,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:355,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:355,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 359
    functionName: redis_node_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_redis_cluster_ipaddr
    - fr_redis_cluster_master
    - fr_value_box_alloc_null
    - fr_value_box_asprintf
    - fr_dcursor_append
    - REDEBUG
    - fr_redis_cluster_slot_by_key
    - RDEBUG2
    - fr_redis_cluster_port
    - talloc_get_type_abort_const
    - MEM
    - fr_value_box_list_next
    - fr_redis_cluster_slave
    - fr_box_ipaddr
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t redis_node_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:376,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:377,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:400,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:400,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:400,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:400,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:401,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:404,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:414,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:418,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:419,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:420,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:429,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:448,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:450,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:454,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:456,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:457,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:458,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:459,1
    - Dst: redis_command
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:461,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:471,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:473,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:484,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:493,1
    - Dst: redis_command
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:504,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:505,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:517,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:518,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:522,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:523,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:526,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:537,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:542,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:542,1
    - Dst: fr_redis_reply_to_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:543,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:544,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:551,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:551,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:552,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:554,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:558,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 105
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 561
    functionName: redis_lua_func_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_redis_reply_print
    - FR_SBUFF_OUT
    - REDEBUG
    - fr_type_is_string
    - fr_cond_assert
    - fr_value_box_list_pop_head
    - fr_redis_cluster_state_init
    - strlen
    - MEM
    - fr_value_box_alloc_null
    - fr_redis_reply_to_value_box
    - unlikely
    - talloc_get_type_abort
    - fr_redis_cluster_state_next
    - NUM_ELEMENTS
    - fr_value_box_list_talloc_free_head
    - REXDENT
    - RPERROR
    - RDEBUG3
    - strcmp
    - talloc_strlen
    - fr_value_box_print
    - fr_dcursor_append
    - talloc_free
    - RINDENT
    - fr_redis_reply_free
    - talloc_get_type_abort_const
    - redis_command
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t redis_lua_func_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:418,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:419,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:420,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 437
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 5
    functionsReached:
    - REXDENT
    - REDEBUG
    - fr_type_is_string
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:568,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 573
    functionName: redis_lua_func_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int redis_lua_func_instantiate(xlat_inst_ctx_t const *xctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:593,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:607,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:608,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:616,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:621,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:625,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:627,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:628,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:628,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:630,1
    - Dst: fr_redis_cluster_pool_by_node_addr
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:634,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:635,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:639,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:641,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:645,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:648,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:649,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:650,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:659,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:669,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:669,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:671,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:672,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:673,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:674,1
    - Dst: redis_command
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:677,1
    - Dst: fr_redis_reply_to_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:688,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:689,1
    - Dst: fr_pool_connection_close
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:699,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:705,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:712,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:713,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:714,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:735,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:737,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:738,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:738,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:740,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:741,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:742,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:743,1
    - Dst: redis_command
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:746,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:755,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:761,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:761,1
    - Dst: fr_redis_reply_to_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:762,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:763,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:770,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:770,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:771,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:773,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:777,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 132
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 780
    functionName: redis_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_pool_connection_release
    - REDEBUG
    - fr_type_is_string
    - fr_cond_assert
    - fr_value_box_list_pop_head
    - fr_sbuff_current
    - fr_redis_cluster_state_init
    - MEM
    - fr_value_box_alloc_null
    - fr_redis_reply_to_value_box
    - RPEDEBUG
    - fr_inet_pton_port
    - fr_sbuff_remaining
    - fr_redis_cluster_state_next
    - fr_value_box_list_talloc_free_head
    - NUM_ELEMENTS
    - fr_pool_connection_get
    - REXDENT
    - fr_pool_connection_close
    - FR_SBUFF_IN
    - RPERROR
    - RDEBUG3
    - RDEBUG2
    - fr_sbuff_next_if_char
    - fr_redis_cluster_pool_by_node_addr
    - fr_dcursor_append
    - talloc_free
    - RINDENT
    - fr_redis_reply_free
    - talloc_get_type_abort_const
    - redis_command
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t redis_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\txlat_ctx_t
      const *xctx,\n\t\t\t\trequest_t *request, fr_value_box_list_t *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:648,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:649,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:650,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 667
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 5
    functionsReached:
    - REXDENT
    - REDEBUG
    - fr_type_is_string
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:712,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:713,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 721
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 5
    functionsReached:
    - REXDENT
    - REDEBUG
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:784,1
    - Dst: fr_redis_cluster_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:788,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:794,1
    - Dst: fr_redis_cluster_node_addr_by_role
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:796,1
    - Dst: fr_redis_cluster_pool_by_node_addr
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:803,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:804,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:808,1
    - Dst: talloc_foreach
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:811,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:821,1
    - Dst: redis_command
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:830,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:831,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:833,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:834,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:838,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:845,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:849,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:853,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:858,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:860,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 863
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - fr_redis_cluster_alloc
    - redis_command
    - PERROR
    - DEBUG2
    - fr_redis_cluster_node_addr_by_role
    - talloc_free
    - fr_pool_connection_release
    - talloc_get_type_abort
    - fr_redis_reply_free
    - fr_pool_connection_get
    - talloc_array_length
    - talloc_strlen
    - talloc_foreach
    - PWARN
    - NUM_ELEMENTS
    - fr_redis_cluster_pool_by_node_addr
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:867,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:870,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:871,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:876,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:876,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:877,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:879,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:879,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:880,1
    - Dst: talloc_foreach
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:886,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:887,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:887,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:888,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 893
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_instantiate_set
    - talloc_get_type_abort
    - xlat_func_args_set
    - talloc_foreach
    - module_rlm_xlat_register
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_redis_version_print
      Src: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 900
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis/rlm_redis.c
    functionUses: 0
    functionsReached:
    - fr_redis_version_print
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _struct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: USER_CALL_ENV_COMMON
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USER_CALL_ENV_COMMON(_struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _section
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: USERMOD_ENV
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USERMOD_ENV(_section)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:433,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:438,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:440,1
    - Dst: fr_value_box_is_safe_for_only
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:441,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:442,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:446,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:446,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:448,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:449,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:450,1
    - Dst: fr_ldap_dn_escape_func
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:454,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:454,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:456,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:457,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:457,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:458,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 463
    functionName: ldap_dn_escape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_trim_talloc
    - fr_dcursor_append
    - talloc_free
    - fr_ldap_dn_escape_func
    - REDEBUG
    - fr_value_box_strdup_shallow
    - fr_sbuff_init_talloc
    - fr_value_box_list_pop_head
    - fr_assert
    - fr_value_box_is_safe_for_only
    - fr_sbuff_buff
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_dn_escape_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \ UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:478,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:480,1
    - Dst: fr_value_box_is_safe_for_only
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:481,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:482,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:486,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:486,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:488,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:489,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:490,1
    - Dst: fr_ldap_filter_escape_func
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:494,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:494,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:496,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:497,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:497,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:498,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 503
    functionName: ldap_filter_escape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_trim_talloc
    - fr_dcursor_append
    - talloc_free
    - fr_ldap_filter_escape_func
    - REDEBUG
    - fr_value_box_strdup_shallow
    - fr_sbuff_init_talloc
    - fr_value_box_list_pop_head
    - fr_assert
    - fr_value_box_is_safe_for_only
    - fr_sbuff_buff
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_filter_escape_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t      request_t
      *request, fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:518,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:523,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:525,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:527,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:527,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:531,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:532,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:533,1
    - Dst: fr_ldap_uri_unescape_func
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:540,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:540,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:545,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:546,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:546,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 551
    functionName: ldap_uri_unescape_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_trim_talloc
    - fr_dcursor_append
    - talloc_free
    - fr_ldap_uri_unescape_func
    - REDEBUG
    - fr_value_box_strdup_shallow
    - fr_sbuff_init_talloc
    - fr_assert
    - fr_sbuff_buff
    - MEM
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_uri_unescape_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t
      *request, fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:566,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:567,1
    - Dst: fr_ldap_dn_escape_func
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:574,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:574,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:576,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:577,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 580
    functionName: ldap_uri_part_escape
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_trim_talloc
    - fr_ldap_dn_escape_func
    - fr_sbuff_init_talloc
    - fr_sbuff_buff
    - fr_value_box_strdup_shallow_replace
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int ldap_uri_part_escape(fr_value_box_t *vb, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:587,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:597,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:600,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:602,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 606
    functionName: ldap_query_timeout
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_query_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:633,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:640,1
    - Dst: ldap_is_ldap_url
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:644,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:645,1
    - Dst: ldap_url_parse
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:649,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:651,1
    - Dst: fr_ldap_url_err_to_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:651,1
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:659,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:664,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:669,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:669,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:670,1
    - Dst: talloc_strdup_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:674,1
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:675,1
    - Dst: talloc_strdup_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:675,1
    - Dst: talloc_strdup_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:677,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:680,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:681,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:687,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:690,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:692,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 694
    functionName: ldap_xlat_uri_attr_option
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - xlat_arg_copy_out
    - talloc_strdup
    - fr_value_box_alloc
    - ldap_url_parse
    - fr_ldap_url_err_to_str
    - MEM
    - fr_value_box_asprintf
    - RPEDEBUG
    - ldap_is_ldap_url
    - fr_table_str_by_value
    - ldap_free_urldesc
    - talloc_strdup_append
    - RERROR
    - fr_dcursor_append
    - XLAT_ARGS
    - strstr
    - snprintf
    - talloc_asprintf
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_xlat_uri_attr_option(TALLOC_CTX *ctx, fr_dcursor_t
      *out, UNUSED xlat_ctx_t const *xctx,\n\t \t\t\t\t       request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:703,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:716,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:716,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:718,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:720,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:724,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:726,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:726,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:727,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:728,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:729,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:732,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:734,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 741
    functionName: ldap_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - ldap_count_values_len
    - talloc_free
    - fr_dcursor_append
    - talloc_get_type_abort
    - ldap_next_entry
    - fr_value_box_bstrndup
    - RPERROR
    - RDEBUG2
    - ldap_value_free_len
    - ldap_first_entry
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t \t\t\t      request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:748,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:752,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xctx
    - request
    - fr_signal_t
    argTypes:
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: ldap_xlat_signal
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_xlat_signal(xlat_ctx_t const *xctx, request_t *request, UNUSED
      fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_url_desc2str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:800,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:801,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - request
    - url_parsed
    - url_in
    argTypes:
    - request_t*
    - LDAPURLDesc*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 804
    functionName: host_uri_canonify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - REDEBUG
    - ldap_url_desc2str
    linkageType: ''
    returnType: char
    signature: char *host_uri_canonify(request_t *request, LDAPURLDesc *url_parsed,
      fr_value_box_t *url_in)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_uri_escape_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:829,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:830,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:839,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:841,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:843,1
    - Dst: ldap_is_ldap_url
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:847,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:848,1
    - Dst: ldap_url_parse
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:852,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:854,1
    - Dst: fr_ldap_url_err_to_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:854,1
    - Dst: host_uri_canonify
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:864,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:865,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:866,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 6
    argNames:
    - uri_parsed
    - host_out
    - free_host_out
    - request
    - host_default
    - uri_in
    argTypes:
    - LDAPURLDesc**
    - char**
    - bool*
    - request_t*
    - char*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 874
    functionName: ldap_xlat_uri_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - RPEDEBUG
    - ldap_is_ldap_url
    - REDEBUG
    - RPERROR
    - fr_uri_escape_list
    - fr_value_box_list_concat_in_place
    - host_uri_canonify
    - ldap_free_urldesc
    - ldap_url_parse
    - fr_ldap_url_err_to_str
    linkageType: ''
    returnType: int
    signature: "int ldap_xlat_uri_parse(LDAPURLDesc **uri_parsed, char **host_out,
      bool *free_host_out,\n\t\t\t       request_t *request, char *host_default, fr_value_box_t
      *uri_in)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:884,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:894,1
    - Dst: ldap_xlat_uri_parse
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:896,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:902,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:903,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:904,1
    - Dst: fr_ldap_search_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:908,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:908,1
    - Dst: fr_ldap_parse_url_extensions
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:919,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:919,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:921,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:922,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:925,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:944,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:946,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:948,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:952,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:958,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:962,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:962,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:964,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:965,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:969,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 970
    functionName: ldap_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - trunk_request_enqueue
    - fr_timer_in
    - unlang_xlat_yield
    - trunk_request_signal_cancel
    - fr_ldap_parse_url_extensions
    - talloc_get_type_abort
    - unlang_interpret_frame_talloc_ctx
    - NUM_ELEMENTS
    - unlang_interpret_event_list
    - ldap_memfree
    - RPERROR
    - ldap_free_urldesc
    - strcmp
    - fr_ldap_search_alloc
    - talloc_free
    - XLAT_ARGS
    - fr_thread_ldap_trunk_get
    - ldap_xlat_uri_parse
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t       xlat_ctx_t const *xctx,\n\t \t\t       request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:978,1
    - Dst: rlm_ldap_find_user_async
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 989
    functionName: ldap_group_xlat_user_find
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - rlm_ldap_find_user_async
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_group_xlat_user_find(UNUSED unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:996,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: ldap_group_xlat_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_group_xlat_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1016,1
    - Dst: rlm_find_user_dn_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1026,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1029,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1032,1
    - Dst: rlm_ldap_check_groupobj_dynamic
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1033,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1043,1
    - Dst: rlm_ldap_check_userobj_dynamic
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1046,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1054,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1060
    functionName: ldap_group_xlat_results
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - rlm_find_user_dn_cached
    - talloc_get_type_abort
    - rlm_ldap_check_groupobj_dynamic
    - RDEBUG3
    - rlm_ldap_check_userobj_dynamic
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_group_xlat_results(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1068,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1071,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1071,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1076
    functionName: ldap_group_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_value_box_alloc
    - talloc_get_type_abort
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_group_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t\t    UNUSED request_t *request, UNUSED
      fr_value_box_list_t *in)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1090,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1091,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1092,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1093,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1097,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1100,1
    - Dst: fr_ldap_util_is_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1104,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1109,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1109,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1109,1
    - Dst: fr_ldap_util_normalise_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1110,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1115,1
    - Dst: fr_value_box_bstr_realloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1120,1
    - Dst: rlm_ldap_check_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1126,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1129,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1133,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1133,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1135,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1146,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1146,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1146,1
    - Dst: rlm_find_user_dn_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1151,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1157,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1161,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1163,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1167,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1178
    functionName: ldap_group_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - REDEBUG
    - fr_value_box_list_pop_head
    - fr_value_box_alloc
    - MEM
    - unlang_xlat_yield
    - rlm_find_user_dn_cached
    - talloc_get_type_abort
    - fr_ldap_util_normalise_dn
    - unlang_interpret_frame_talloc_ctx
    - fr_value_box_bstr_realloc
    - RDEBUG2
    - talloc_array_length
    - fr_dcursor_append
    - talloc_free
    - fr_ldap_util_is_dn
    - fr_value_box_bstrdup_buffer_shallow
    - talloc
    - rlm_ldap_check_cached
    - fr_thread_ldap_trunk_get
    - talloc_get_type_abort_const
    - unlang_function_push_with_result
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_group_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,
      xlat_ctx_t const *xctx,\n\t \t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1193,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1196,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1196,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1201
    functionName: ldap_profile_xlat_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_value_box_alloc
    - talloc_get_type_abort
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_profile_xlat_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out, xlat_ctx_t const *xctx,\n\t\t\t\t\t      UNUSED request_t *request, UNUSED
      fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - ldap_xlat_profile_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1210
    functionName: ldap_xlat_profile_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_free_urldesc
    linkageType: ''
    returnType: int
    signature: int ldap_xlat_profile_ctx_free(ldap_xlat_profile_ctx_t *to_free)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1222,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1223,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1224,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1239,1
    - Dst: fr_uri_has_scheme
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1241,1
    - Dst: fr_uri_escape_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1248,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1249,1
    - Dst: fr_uri_escape_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1253,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1254,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1262,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1263,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1265,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1272,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1272,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1272,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1273,1
    - Dst: talloc_typed_strdup_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1277,1
    - Dst: ldap_url_parse
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1281,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1283,1
    - Dst: fr_ldap_url_err_to_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1283,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1285,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1293,1
    - Dst: host_uri_canonify
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1315,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1316,1
    - Dst: fr_ldap_map_expand
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1323,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1325,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1327,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1329,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1333,1
    - Dst: rlm_ldap_map_profile
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1338,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1342
    functionName: ldap_profile_xlat
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - REDEBUG
    - fr_ldap_map_expand
    - host_uri_canonify
    - fr_uri_escape_list
    - talloc_typed_strdup_buffer
    - fr_ldap_url_err_to_str
    - ldap_url_parse
    - fr_uri_has_scheme
    - MEM
    - unlang_xlat_yield
    - unlikely
    - rlm_ldap_map_profile
    - RPEDEBUG
    - talloc_get_type_abort
    - unlang_interpret_frame_talloc_ctx
    - talloc_set_destructor
    - ldap_memfree
    - RPERROR
    - fr_value_box_list_concat_in_place
    - talloc_free
    - XLAT_ARGS
    - talloc_zero
    - fr_thread_ldap_trunk_get
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t ldap_profile_xlat(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t       xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - cs
    - mod_inst
    - proc_inst
    - src
    - maps
    argTypes:
    - CONF_SECTION*
    - UNUSED*
    - UNUSED*
    - tmpl_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1347
    functionDepth: 1
    functionLinenumber: 1347
    functionLinenumberEnd: 1357
    functionName: ldap_map_verify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int ldap_map_verify(CONF_SECTION *cs, UNUSED void const *mod_inst,
      UNUSED void *proc_inst,\n\t\t\t   tmpl_t const *src, UNUSED map_list_t const
      *maps)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1374,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1398,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1400,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1405,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1406,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1409,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1410,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1412,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1416,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1423,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1427,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1429,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1434,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1437,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1443,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1447,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1449,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1450,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1453,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1457,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1458,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1462,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - fr_value_box_list_t *url
    - maps
    argTypes:
    - unlang_result_t*
    - map_ctx_t*
    - request_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1463
    functionName: mod_map_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - map_list_next
    - map_to_request
    - map_list_head
    - ldap_count_values_len
    - talloc_get_type_abort
    - ldap_get_dn
    - ldap_next_entry
    - RINDENT
    - ldap_memfree
    - RDEBUG2
    - RDEBUG3
    - strlen
    - ldap_first_entry
    - strcmp
    - ldap_value_free_len
    - RETURN_UNLANG_RCODE
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_resume(unlang_result_t *p_result, map_ctx_t
      const *mpctx, request_t *request,\n\t\t\t\t      UNUSED fr_value_box_list_t
      *url, UNUSED map_list_t const *maps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1471,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1472,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - map_ctx
    argTypes:
    - ldap_map_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1468
    functionDepth: 0
    functionLinenumber: 1468
    functionLinenumberEnd: 1478
    functionName: map_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_control_free
    - ldap_free_urldesc
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int map_ctx_free(ldap_map_ctx_t *map_ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1500,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1501,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1501,1
    - Dst: fr_uri_escape_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1511,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1512,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1516,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1518,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1522,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1524,1
    - Dst: ldap_is_ldap_url
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1528,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1529,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1533,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1533,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1533,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1534,1
    - Dst: ldap_url_parse
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1537,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1539,1
    - Dst: fr_ldap_url_err_to_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1539,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1541,1
    - Dst: fr_ldap_parse_url_extensions
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1547,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1547,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1549,1
    - Dst: fr_ldap_map_expand
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1557,1
    - Dst: host_uri_canonify
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1565,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1566,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1569,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1571,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1574,1
    - Dst: unlang_map_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1574,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1576,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - url
    - maps
    argTypes:
    - unlang_result_t*
    - map_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1579
    functionName: mod_map_proc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - REDEBUG
    - fr_ldap_map_expand
    - host_uri_canonify
    - fr_uri_escape_list
    - fr_ldap_url_err_to_str
    - ldap_url_parse
    - MEM
    - unlikely
    - RPEDEBUG
    - fr_ldap_parse_url_extensions
    - ldap_is_ldap_url
    - talloc_get_type_abort
    - module_thread
    - unlang_interpret_frame_talloc_ctx
    - NUM_ELEMENTS
    - fr_ldap_trunk_search
    - talloc_set_destructor
    - ldap_memfree
    - RPERROR
    - fr_value_box_list_concat_in_place
    - talloc_free
    - unlang_map_yield
    - talloc_zero
    - fr_thread_ldap_trunk_get
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_map_proc(unlang_result_t *p_result, map_ctx_t
      const *mpctx, request_t *request,\n\t\t\t\t    fr_value_box_list_t *url, map_list_t
      const *maps)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1583,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1584,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1584,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1586,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1589,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1590,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1591,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1592,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1593,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1594,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1596,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1600,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1600,1
    - Dst: rlm_find_user_dn_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1611,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1617,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1619,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1620,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1628,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1630,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1638,1
    - Dst: fr_ldap_sasl_bind_auth_async
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1640,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1645,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1651,1
    - Dst: fr_ldap_bind_auth_async
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1653,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1654
    functionName: mod_authenticate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - rlm_find_user_dn_cached
    - RDEBUG
    - talloc_free
    - REDEBUG
    - talloc_get_type_abort
    - module_thread
    - talloc
    - fr_ldap_sasl_bind_auth_async
    - RDEBUG2
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - RWDEBUG
    - fr_ldap_bind_auth_async
    linkageType: ''
    returnType: void
    signature: void mod_authenticate(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1676,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1677,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1678,1
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1680,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1705,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1707,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1708,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1708,1
    - Dst: rlm_ldap_check_access
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1717,1
    - Dst: rlm_ldap_cacheable_userobj
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1737,1
    - Dst: rlm_ldap_cacheable_groupobj
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1749,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1763,1
    - Dst: rlm_find_user_dn_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1769,1
    - Dst: fr_ldap_edir_get_password
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1776,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1783,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1785,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1785,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1789,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1794,1
    - Dst: fr_ldap_bind_auth_async
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1801,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1821,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1822,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1823,1
    - Dst: fr_ldap_map_do
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1824,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1826,1
    - Dst: rlm_ldap_check_reply
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1827,1
    - Dst: rlm_ldap_map_profile
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1837,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1869,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1870,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1872,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1875,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1875,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1879,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1888,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1889,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1891,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1894,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1895,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1899,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1916,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1921,1
    - Dst: rlm_ldap_map_profile
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1923,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 191
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1945
    functionName: mod_authorize_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_count_values_len
    - REDEBUG
    - rlm_ldap_cacheable_userobj
    - ldap_err2string
    - map_list_empty
    - fr_ldap_berval_to_string
    - ldap_first_entry
    - ldap_get_values_len
    - rlm_ldap_map_profile
    - fr_ldap_handle_thread_local
    - rlm_find_user_dn_cached
    - talloc_get_type_abort
    - module_thread
    - fr_ldap_map_do
    - rlm_ldap_check_reply
    - rlm_ldap_check_access
    - fr_pair_find_by_da_nested
    - RDEBUG2
    - RDEBUG3
    - fr_box_strvalue_len
    - fr_pair_find_by_da
    - TALLOC_FREE
    - ldap_get_option
    - RINDENT
    - talloc_get_type_abort_const
    - REXDENT
    - fr_ldap_bind_auth_async
    - rlm_ldap_cacheable_groupobj
    - fr_ldap_edir_get_password
    linkageType: ''
    returnType: void
    signature: void mod_authorize_resume(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1952,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1950
    functionDepth: 1
    functionLinenumber: 1950
    functionLinenumberEnd: 1955
    functionName: mod_authorize_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void mod_authorize_cancel(module_ctx_t const *mctx, UNUSED request_t
      *request, UNUSED fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1962,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - autz_ctx
    argTypes:
    - ldap_autz_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1965
    functionName: autz_ctx_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_value_free_len
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int autz_ctx_free(ldap_autz_ctx_t *autz_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1969,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1970,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1970,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1973,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1975,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1975,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1975,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1976,1
    - Dst: fr_ldap_map_expand
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1984,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1987,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:1991,1
    - Dst: CHECK_EXPANDED_SPACE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2001,1
    - Dst: CHECK_EXPANDED_SPACE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2006,1
    - Dst: CHECK_EXPANDED_SPACE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2011,1
    - Dst: CHECK_EXPANDED_SPACE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2016,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2027,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2027,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2031,1
    - Dst: rlm_ldap_find_user_async
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2035,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 2039
    functionName: mod_authorize
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 1
    functionsReached:
    - unlikely
    - rlm_ldap_find_user_async
    - talloc_set_destructor
    - talloc_free
    - CHECK_EXPANDED_SPACE
    - talloc_get_type_abort
    - module_thread
    - fr_ldap_map_expand
    - talloc_zero
    - unlang_module_yield
    - fr_thread_ldap_trunk_get
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - MEM
    linkageType: ''
    returnType: void
    signature: void mod_authorize(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _expanded
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 1996
    functionName: CHECK_EXPANDED_SPACE
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_EXPANDED_SPACE(_expanded)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2046,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2051
    functionName: user_modify_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void user_modify_cancel(module_ctx_t const *mctx, UNUSED request_t
      *request, UNUSED fr_signal_t action)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2058,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2068,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2081,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2083
    functionName: user_modify_final
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - RETURN_UNLANG_RCODE
    - RDEBUG2
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void user_modify_final(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2087,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2101,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2102,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2132,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2133,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2139,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2139,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2141,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2141,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2142,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2143,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2143,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2144,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2145,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2149,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2156,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2162,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2163,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2165,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2173,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2174,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2180,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2187,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2195,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2209,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2210,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2217,1
    - Dst: fr_ldap_trunk_modify
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2219,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2221
    functionName: user_modify_mod_build_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - memcpy
    - fr_value_box_cast_in_place
    - REDEBUG
    - talloc_get_type_abort
    - fr_value_box_list_pop_head
    - fr_table_str_by_value
    - RDEBUG2
    - fr_value_box_list_concat_in_place
    - fr_assert
    - talloc_zero_array
    - unlang_module_yield
    - fr_value_box_list_num_elements
    - fr_ldap_trunk_modify
    - MEM
    - unlang_tmpl_push
    linkageType: ''
    returnType: void
    signature: void user_modify_mod_build_resume(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2228,1
    - Dst: rlm_find_user_dn_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2234,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2238,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2245,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2245,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2246,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2246,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2247,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2249,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2255
    functionName: user_modify_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - rlm_find_user_dn_cached
    - fr_value_box_list_init
    - talloc_free
    - talloc_array
    - talloc_get_type_abort
    - unlang_module_yield
    - talloc_zero_array
    - MEM
    - unlang_tmpl_push
    linkageType: ''
    returnType: void
    signature: void user_modify_resume(unlang_result_t *p_result, module_ctx_t const
      *mctx, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2265,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2266,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2267,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2267,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2270,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2277,1
    - Dst: talloc_pooled_object
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2277,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2277,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2287,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2292,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2293,1
    - Dst: rlm_find_user_dn_cached
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2297,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2302,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2303,1
    - Dst: rlm_ldap_find_user_async
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2308,1
    - Dst: user_modify_resume
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2263
    functionDepth: 2
    functionLinenumber: 2263
    functionLinenumberEnd: 2326
    functionName: mod_modify
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - rlm_ldap_find_user_async
    - user_modify_resume
    - rlm_find_user_dn_cached
    - talloc_free
    - REDEBUG
    - talloc_get_type_abort
    - module_thread
    - unlang_module_yield
    - talloc_pooled_object
    - talloc_array_length
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - fr_thread_ldap_trunk_get
    - MEM
    linkageType: ''
    returnType: void
    signature: void mod_modify(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2333,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2335,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2339
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_control_free
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2346,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2359,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2359,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2371,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2371,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2372,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2374,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2376,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2384,1
    - Dst: tmpl_attr_tail
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2385,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2391,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2401,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2401,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2412,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2412,1
    - Dst: call_env_parsed_set_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - UNUSED*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2418
    functionName: ldap_update_section_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - call_env_parsed_add
    - call_env_parsed_set_value
    - call_env_parsed_set_data
    - talloc
    - tmpl_attr_tail
    - call_env_parsed_free
    - fr_value_box_alloc
    - map_list_init
    - MEM
    - map_afrom_cs
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int ldap_update_section_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out, tmpl_rules_t const *t_rules,\n\t\t\t\t     CONF_ITEM *ci,\n\t\t\t\t     UNUSED
      call_env_ctx_t const *cec, call_env_parser_t const *rule)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2431,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2433,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2433,1
    - Dst: tolower
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2436,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2442,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2443,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2445,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2449,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2449,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2452,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2454,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2455,1
    - Dst: cf_pair_count_descendents
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2459,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2461,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2465,1
    - Dst: cf_pair_next
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2467,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2468,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2477,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2481,1
    - Dst: call_env_parsed_add
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2481,1
    - Dst: FR_CALL_ENV_PARSE_ONLY_OFFSET
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2483,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2483,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2488,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2489,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2489,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2489,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2489,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2490,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2490,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2494,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2494,1
    - Dst: call_env_parsed_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2496,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2499,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2500,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2501,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2501,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2505,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2505,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2506,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2508,1
    - Dst: call_env_parsed_set_multi_index
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2510,1
    - Dst: call_env_parsed_set_data
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2511,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - tmpl_rules_t*
    - CONF_ITEM*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2420
    functionDepth: 1
    functionLinenumber: 2420
    functionLinenumberEnd: 2515
    functionName: ldap_mod_section_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - tolower
    - tmpl_needs_resolving
    - call_env_parsed_add
    - talloc_strdup
    - section_name_str
    - call_env_parsed_free
    - cf_pair_operator
    - MEM
    - cf_item_to_section
    - FR_CALL_ENV_PARSE_ONLY_OFFSET
    - cf_pair_next
    - cf_pair_attr
    - cf_pair_value_quote
    - FR_SBUFF_IN
    - fr_assert
    - talloc_strlen
    - tmpl_resolve
    - cf_canonicalize_error
    - cf_log_perr
    - talloc_free
    - call_env_parsed_set_multi_index
    - cf_pair_value
    - cf_pair_count_descendents
    - call_env_parsed_set_data
    - talloc
    - cf_log_warn
    - tmpl_afrom_substr
    linkageType: ''
    returnType: int
    signature: "int ldap_mod_section_parse(TALLOC_CTX *ctx, call_env_parsed_head_t
      *out, tmpl_rules_t const *t_rules,\n\t\t\t\t  CONF_ITEM *ci, call_env_ctx_t
      const *cec, UNUSED call_env_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2520,1
    - Dst: fr_ldap_filter_to_tmpl
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2524,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - UNUSED*
    - call_env_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2517
    functionDepth: 1
    functionLinenumber: 2517
    functionLinenumberEnd: 2528
    functionName: ldap_group_filter_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    - talloc_get_type_abort_const
    - fr_ldap_filter_to_tmpl
    linkageType: ''
    returnType: int
    signature: "int ldap_group_filter_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t
      const *t_rules, UNUSED CONF_ITEM *ci,\n\t\t\t\t   call_env_ctx_t const *cec,
      UNUSED call_env_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2535,1
    - Dst: fr_rb_flatten_inorder
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2539,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2542,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2533
    functionDepth: 0
    functionLinenumber: 2533
    functionLinenumberEnd: 2546
    functionName: mod_thread_detach
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_array_length
    - fr_rb_flatten_inorder
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_thread_detach(module_thread_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2553,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2554,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2560,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2560,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2572,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2575,1
    - Dst: fr_thread_ldap_bind_trunk_get
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2582,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2584,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2551
    functionDepth: 1
    functionLinenumber: 2551
    functionLinenumberEnd: 2587
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_thread_ldap_bind_trunk_get
    - fr_rb_inline_talloc_alloc
    - talloc_get_type_abort
    - fr_thread_ldap_trunk_get
    - MEM
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2603,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2604,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2612,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2626,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2627,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2636,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2648,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2650,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2657,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2667,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2672,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2680,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2685,1
    - Dst: ldap_is_ldap_url
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2699,1
    - Dst: fr_ldap_server_url_check
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2700,1
    - Dst: fr_ldap_server_config_check
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2706,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2714,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2715,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2731,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2734,1
    - Dst: ldap_create_sort_control
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2756,1
    - Dst: ldap_free_sort_keylist
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2757,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2759,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2759,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2762
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - ERROR
    - cf_section_find
    - ldap_create_sort_control
    - ldap_is_ldap_url
    - talloc_strdup
    - talloc_get_type_abort
    - fr_ldap_server_config_check
    - ldap_free_sort_keylist
    - ldap_err2string
    - talloc_array_length
    - fr_table_value_by_str
    - cf_pair_find
    - fr_ldap_server_url_check
    - cf_log_err
    - talloc_strlen
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2755
    functionName: SSS_CONTROL_BUILD
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSS_CONTROL_BUILD(_obj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2837,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2838,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2846,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2847,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2853,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2853,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2859,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2859,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2859,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2861,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2865,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2865,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2872,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2872,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2874,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2874,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2874,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2876,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2879,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2879,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2887,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2887,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2889,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2889,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2889,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2891,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2894,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2894,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2898,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2899,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2901,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2901,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2903,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2904,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2906,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2906,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2908,1
    - Dst: xlat_func_call_env_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2909,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2911,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2914
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_dict_attr_add_name_only
    - unlikely
    - fr_dict_unconst
    - fr_dict_attr_by_name
    - xlat_func_call_env_set
    - snprintf
    - talloc_get_type_abort
    - cf_section_name2
    - xlat_func_args_set
    - map_proc_register
    - module_rlm_xlat_register
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2920,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2920,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2921,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2922,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2923,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2925,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2925,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2926,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2927,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2928,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2930,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2930,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2931,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2932,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2934,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2934,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2935,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2936,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2937,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2939,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2939,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2940,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2941,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2942,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2944,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2944,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2945,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2946,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2948,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2948,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2949,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2950,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2957,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2957,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2958,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2959,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2960,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2962,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2962,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2963,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2964,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2965,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2967,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2967,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2968,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2969,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2972
      start: 2916
    functionDepth: 1
    functionLinenumber: 2916
    functionLinenumberEnd: 2972
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_safe_for_set
    - xlat_func_args_set
    - xlat_func_flags_set
    - xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2976,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2977,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2978,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2979,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2980,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2981,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2982,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2983,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c:2984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2974
    functionDepth: 1
    functionLinenumber: 2974
    functionLinenumberEnd: 2985
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:57,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:77,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:84,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:87,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:89,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:90,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:90,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:95,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:96,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:99,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:100,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:101,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:107,1
    - Dst: fr_ldap_map_do
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:108,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:129,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:134,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:135,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:138,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:141,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:143,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:144,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:145,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:145,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:147,1
    - Dst: xlat_impure_func
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:151,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:152,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:156,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:157,1
    - Dst: unlang_xlat_eval
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:158,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:159,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:162,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:162,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:162,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:163,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:164,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:166,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:167,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:169,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:172,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:173,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:176,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:179,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 181
    functionName: ldap_map_profile_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/profile.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - ldap_count_values_len
    - xlat_impure_func
    - REDEBUG
    - fr_value_box_is_truthy
    - ldap_err2string
    - fr_ldap_berval_to_string
    - ldap_first_entry
    - ldap_get_values_len
    - RPEDEBUG
    - RWARN
    - talloc_get_type_abort
    - ldap_next_entry
    - fr_ldap_map_do
    - fr_strerror_const
    - unlang_interpret_event_list
    - fr_value_box_list_init
    - FR_SBUFF_IN
    - ldap_memfree
    - fr_assert
    - RDEBUG2
    - RDEBUG3
    - ldap_value_free_len
    - talloc_strlen
    - xlat_tokenize_expression
    - ldap_get_option
    - talloc_free
    - RINDENT
    - ldap_get_dn
    - fr_value_box_list_talloc_free
    - unlang_xlat_eval
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_map_profile_resume(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:188,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: ldap_map_profile_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/profile.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_map_profile_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:221,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:221,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:221,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:231,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:237,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/profile.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 9
    argNames:
    - ret
    - applied
    - inst
    - request
    - ttrunk
    - dn
    - scope
    - filter
    - expanded
    argTypes:
    - fr_ldap_result_code_t*
    - int*
    - rlm_ldap_t*
    - request_t*
    - fr_ldap_thread_trunk_t*
    - char*
    - int
    - char*
    - fr_ldap_map_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 244
    functionName: rlm_ldap_map_profile
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/profile.c
    functionUses: 2
    functionsReached:
    - fr_ldap_trunk_search
    - talloc_free
    - talloc
    - unlang_function_push
    - unlang_interpret_frame_talloc_ctx
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_ldap_map_profile(fr_ldap_result_code_t *ret, int
      *applied,\n\t\t\t\t     rlm_ldap_t const *inst, request_t *request, fr_ldap_thread_trunk_t
      *ttrunk,\n\t\t\t\t     char const *dn, int scope, char const *filter, fr_ldap_map_exp_t
      const *expanded)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:91,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: ldap_group_userobj_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_group_userobj_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:113,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:120,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:124,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:128,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:134,1
    - Dst: fr_ldap_filter_escape_func
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:139,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:140,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:144,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 151
    functionName: ldap_group_name2dn_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf_append_buffer
    - fr_ldap_trunk_search
    - fr_ldap_filter_escape_func
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - talloc_typed_asprintf
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_group_name2dn_start(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:162,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:163,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:178,1
    - Dst: ldap_count_entries
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:186,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:188,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:195,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:199,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:201,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:202,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:202,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:209,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:211,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:212,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:212,1
    - Dst: fr_ldap_util_normalise_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:217,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:219,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:220,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:220,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:221,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:221,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:222,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:223,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:232,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:234,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 235
    functionName: ldap_group_name2dn_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - ldap_err2string
    - strlen
    - ldap_count_entries
    - ldap_first_entry
    - RWDEBUG
    - MEM
    - fr_pair_append
    - talloc_get_type_abort
    - ldap_next_entry
    - fr_ldap_util_normalise_dn
    - fr_pair_afrom_da
    - fr_pair_value_bstrndup
    - ldap_memfree
    - RDEBUG2
    - RETURN_UNLANG_RCODE
    - ldap_get_option
    - talloc_free
    - ldap_get_dn
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_group_name2dn_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:249,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:253,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:257,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: ldap_group_dn2name_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - fr_ldap_trunk_search
    - RDEBUG2
    - REDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_group_dn2name_start(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:275,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:276,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:290,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:299,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:301,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:302,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:302,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:307,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:309,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:314,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:314,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:315,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:316,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:317,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:326,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:327,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:329,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 330
    functionName: ldap_group_dn2name_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - fr_pair_afrom_da
    - ldap_get_option
    - fr_pair_value_bstrndup
    - talloc_free
    - REDEBUG
    - fr_pair_append
    - talloc_get_type_abort
    - ldap_err2string
    - RDEBUG2
    - ldap_value_free_len
    - ldap_first_entry
    - RETURN_UNLANG_RCODE
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_group_dn2name_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:345,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:346,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:348,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:349,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:351,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:353,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:354,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:358,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:359,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - request
    - group_ctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - ldap_group_userobj_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 363
    functionName: ldap_cacheable_userobj_store
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_next
    - talloc_free
    - tmpl_list_head
    - RINDENT
    - RDEBUG2
    - fr_assert
    - fr_pair_list_head
    - fr_pair_list_append
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t ldap_cacheable_userobj_store(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t\t    ldap_group_userobj_ctx_t *group_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:377,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:385,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:397,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:398,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:411,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:412,1
    - Dst: ldap_cacheable_userobj_store
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 426
    functionName: ldap_cacheable_userobj_resolve
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - unlang_function_repeat_set
    - ldap_cacheable_userobj_store
    - talloc_get_type_abort
    - unlang_function_push_with_result
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_cacheable_userobj_resolve(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:453,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:454,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:459,1
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:459,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:461,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:465,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:470,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:470,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:470,1
    - Dst: tmpl_list_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:474,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:475,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:488,1
    - Dst: fr_ldap_util_is_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:491,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:498,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:498,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:499,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:500,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:507,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:509,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:510,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:513,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:522,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:522,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:523,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:524,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:531,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:534,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:539,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:548,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:554,1
    - Dst: ldap_cacheable_userobj_store
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:564,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 4
    argNames:
    - p_result
    - request
    - autz_ctx
    - attr
    argTypes:
    - unlang_result_t*
    - request_t*
    - ldap_autz_ctx_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 565
    functionName: rlm_ldap_cacheable_userobj
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 1
    functionsReached:
    - ldap_count_values_len
    - REDEBUG
    - fr_ldap_berval_to_string
    - MEM
    - ldap_get_values_len
    - fr_ldap_handle_thread_local
    - fr_pair_append
    - unlang_interpret_frame_talloc_ctx
    - fr_pair_list_init
    - fr_pair_afrom_da
    - fr_pair_value_bstrndup
    - RDEBUG2
    - fr_assert
    - ldap_value_free_len
    - tmpl_list_ctx
    - talloc_free
    - fr_ldap_util_is_dn
    - ldap_cacheable_userobj_store
    - talloc_zero
    - unlang_function_push_with_result
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_ldap_cacheable_userobj(unlang_result_t *p_result,
      request_t *request, ldap_autz_ctx_t *autz_ctx,\n\t\t\t\t\t   char const *attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:576,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:580,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 588
    functionName: ldap_cacheable_groupobj_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_ldap_trunk_search
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_cacheable_groupobj_start(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:595,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 603
    functionName: ldap_group_groupobj_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_group_groupobj_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:614,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:629,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:638,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:640,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:641,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:641,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:646,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:649,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:651,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:652,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:652,1
    - Dst: fr_ldap_util_normalise_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:656,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:658,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:658,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:659,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:661,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:662,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:663,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:664,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:670,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:673,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:673,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:674,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:676,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:677,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:678,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:680,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:682,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:685,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:687,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 688
    functionName: ldap_cacheable_groupobj_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_value_strdup
    - ldap_err2string
    - ldap_first_entry
    - MEM
    - ldap_get_values_len
    - talloc_get_type_abort
    - ldap_next_entry
    - fr_ldap_util_normalise_dn
    - pair_append_control
    - fr_pair_value_bstrndup
    - ldap_memfree
    - RDEBUG2
    - ldap_value_free_len
    - RETURN_UNLANG_RCODE
    - ldap_get_option
    - talloc_free
    - ldap_get_dn
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_cacheable_groupobj_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:703,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:708,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:712,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:712,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:712,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:716,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:718,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:726,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - p_result
    - request
    - autz_ctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - ldap_autz_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 733
    functionName: rlm_ldap_cacheable_groupobj
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_init
    - talloc_free
    - REDEBUG
    - RDEBUG2
    - talloc_zero
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    - unlang_tmpl_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t rlm_ldap_cacheable_groupobj(unlang_result_t *p_result,
      request_t *request, ldap_autz_ctx_t *autz_ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:744,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:745,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:755,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:757,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:758,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:758,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:759,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:774,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 776
    functionName: ldap_check_groupobj_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - ldap_get_dn
    - ldap_memfree
    - RDEBUG2
    - ldap_first_entry
    - RETURN_UNLANG_RCODE
    - fr_box_strvalue
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_check_groupobj_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:792,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:792,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:792,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:798,1
    - Dst: fr_ldap_util_is_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:800,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:809,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:812,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:822,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:835,1
    - Dst: fr_ldap_filter_to_tmpl
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:838,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:838,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:841,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:845,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:853,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - p_result
    - request
    - xlat_ctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - ldap_group_xlat_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 860
    functionName: rlm_ldap_check_groupobj_dynamic
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_init
    - unlang_interpret_event_list
    - talloc_free
    - fr_ldap_util_is_dn
    - REDEBUG
    - snprintf
    - talloc
    - fr_assert
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    - unlang_tmpl_push
    - NUM_ELEMENTS
    - fr_ldap_filter_to_tmpl
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_ldap_check_groupobj_dynamic(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t\tldap_group_xlat_ctx_t *xlat_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:867,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:872,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:876,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:876,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 881
    functionName: ldap_dn2name_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - fr_ldap_trunk_search
    - REDEBUG
    - fr_box_strvalue_buffer
    - talloc_get_type_abort
    - RDEBUG2
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_dn2name_start(unlang_result_t *p_result, request_t
      *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:888,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: ldap_dn2name_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_dn2name_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:903,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:904,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 908
    functionName: ldap_check_userobj_start
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - fr_ldap_trunk_search
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t ldap_check_userobj_start(UNUSED unlang_result_t *p_result,\n\t\t\t\t\t\trequest_t
      *request, void *uctx)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:917,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:918,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:932,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:934,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:935,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:935,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:939,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:941,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:950,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:967,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:968,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:975,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:977,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:978,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:978,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:982,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:984,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:988,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:988,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:989,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:989,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:990,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:991,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1011,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1012,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1013,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1015,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1016,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1019,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1020,1
    - Dst: fr_ldap_util_is_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1026,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1028,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1029,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1037,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1038,1
    - Dst: fr_ldap_berval_strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1050,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1051,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1071,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1074,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1083,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1084,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1085,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1087,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1099,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1102,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1105,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1113,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 109
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 1120
    functionName: ldap_check_userobj_resume
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - ldap_count_values_len
    - talloc_bstrndup
    - REDEBUG
    - ldap_err2string
    - talloc_const_free
    - fr_ldap_berval_to_string
    - ldap_first_entry
    - MEM
    - ldap_get_values_len
    - fr_ldap_berval_strncasecmp
    - unlang_function_repeat_set
    - talloc_get_type_abort
    - memcmp
    - fr_box_strvalue_buffer
    - RDEBUG2
    - fr_assert
    - ldap_value_free_len
    - fr_box_strvalue_len
    - talloc_strlen
    - TALLOC_FREE
    - ldap_get_option
    - talloc_free
    - fr_ldap_util_is_dn
    - unlang_function_push_with_result
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_check_userobj_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group_ctx
    argTypes:
    - ldap_group_userobj_dyn_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1129
    functionName: userobj_dyn_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 0
    functionsReached:
    - ldap_value_free_len
    linkageType: ''
    returnType: int
    signature: int userobj_dyn_free(ldap_group_userobj_dyn_ctx_t *group_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1143,1
    - Dst: talloc
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1143,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1143,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1144,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1151,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1159,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - request
    - xlat_ctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - ldap_group_xlat_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1171
    functionName: rlm_ldap_check_userobj_dynamic
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 1
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - talloc
    - RDEBUG2
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_ldap_check_userobj_dynamic(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t       ldap_group_xlat_ctx_t *xlat_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1191,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1194,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1196,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1197,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1199,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/groups.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - p_result
    - inst
    - request
    - check
    argTypes:
    - unlang_result_t*
    - rlm_ldap_t*
    - request_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1209
    functionName: rlm_ldap_check_cached
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/groups.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - RDEBUG2
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_ldap_check_cached(unlang_result_t *p_result,\n\t\t\t\t
      \     rlm_ldap_t const *inst, request_t *request, fr_value_box_t const *check)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.h:261,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inst
    - request
    argTypes:
    - rlm_ldap_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: rlm_find_user_dn_cached
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/rlm_ldap.h
    functionUses: 6
    functionsReached:
    - RDEBUG2
    - fr_pair_find_by_da
    linkageType: ''
    returnType: char
    signature: char *rlm_find_user_dn_cached(rlm_ldap_t const *inst, request_t *request)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:55,1
    - Dst: ldap_count_entries
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:84,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:87,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:89,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:90,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:91,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:93,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:94,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:95,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:96,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:98,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:102,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:104,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:105,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:106,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:111,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:113,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:114,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:114,1
    - Dst: fr_ldap_util_normalise_dn
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:118,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:120,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:122,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:122,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:123,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 127
    functionName: ldap_find_user_async_result
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/user.c
    functionUses: 0
    functionsReached:
    - pair_update_control
    - ldap_get_option
    - REDEBUG
    - fr_pair_value_strdup
    - talloc_get_type_abort
    - RINDENT
    - ldap_next_entry
    - ldap_get_dn
    - ldap_memfree
    - ldap_err2string
    - RDEBUG2
    - fr_ldap_util_normalise_dn
    - ldap_first_entry
    - ldap_count_entries
    - REXDENT
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_find_user_async_result(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:133,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: ldap_find_user_async_cancel
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/user.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_find_user_async_cancel(UNUSED request_t *request, UNUSED
      fr_signal_t action, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:176,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:178,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:188,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:194,1
    - Dst: fr_ldap_trunk_search
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 9
    argNames:
    - ctx
    - p_result
    - inst
    - request
    - base
    - filter
    - ttrunk
    - attrs
    - query_out
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - rlm_ldap_t*
    - request_t*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_ldap_thread_trunk_t*
    - char*[]
    - fr_ldap_query_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 201
    functionName: rlm_ldap_find_user_async
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/user.c
    functionUses: 3
    functionsReached:
    - fr_ldap_trunk_search
    - talloc_free
    - talloc_zero
    - unlang_function_push_with_result
    - memset
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t rlm_ldap_find_user_async(TALLOC_CTX *ctx,\n\t\t\t\t\t
      unlang_result_t *p_result,\n\t\t\t\t\t rlm_ldap_t const *inst, request_t *request,\n\t\t\t\t\t
      fr_value_box_t *base, fr_value_box_t *filter,\n\t\t\t\t\t fr_ldap_thread_trunk_t
      *ttrunk, char const *attrs[], fr_ldap_query_t **query_out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:217,1
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:217,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:219,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:222,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:223,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:230,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:231,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:236,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:238,1
    - Dst: RIDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:239,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:245,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:247,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - inst
    - request
    - entry
    argTypes:
    - rlm_ldap_t*
    - request_t*
    - LDAPMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 252
    functionName: rlm_ldap_check_access
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/user.c
    functionUses: 1
    functionsReached:
    - ldap_get_values_len
    - fr_ldap_handle_thread_local
    - REDEBUG
    - ldap_value_free_len
    - talloc_strlen
    - RIDEBUG
    - strncasecmp
    linkageType: ''
    returnType: ldap_access_state_t
    signature: ldap_access_state_t rlm_ldap_check_access(rlm_ldap_t const *inst, request_t
      *request, LDAPMessage *entry)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:276,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:279,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:280,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:281,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:282,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:287,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:288,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:290,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:291,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:292,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:293,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:295,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:297,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:302,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:303,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:304,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:305,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:306,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:307,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:309,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:311,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:315,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:316,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:317,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:318,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:319,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:323,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:325,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_ldap/user.c:327,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - request
    - inst
    - inst_name
    - expect_password
    - ttrunk
    argTypes:
    - request_t*
    - rlm_ldap_t*
    - char*
    - bool
    - fr_ldap_thread_trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 331
    functionName: rlm_ldap_check_reply
    functionSourceFile: /src/freeradius-server/src/modules/rlm_ldap/user.c
    functionUses: 1
    functionsReached:
    - RWDEBUG2
    - fr_pair_find_by_da
    - RWDEBUG
    linkageType: ''
    returnType: void
    signature: void rlm_ldap_check_reply(request_t *request, rlm_ldap_t const *inst,
      char const *inst_name, bool expect_password, fr_ldap_thread_trunk_t const *ttrunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:96,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:99,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:99,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: brotli_pool_get
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - unlikely
    - MEM
    - talloc_pool
    - fr_atexit_thread_local
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *brotli_pool_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_size
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: brotli_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - talloc_size
    linkageType: ''
    returnType: void
    signature: void *brotli_talloc_alloc(void *uctx, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uctx
    - to_free
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: brotli_talloc_free
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void brotli_talloc_free(UNUSED void *uctx, void *to_free)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:122,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: quality_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int quality_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:139,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: window_bits_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int window_bits_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:156,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: block_bits_parse
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int block_bits_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:186,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:198,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:200,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:200,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:206,1
    - Dst: BrotliEncoderMaxCompressedSize
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:208,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:211,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:211,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:212,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:212,1
    - Dst: brotli_pool_get
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:214,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:215,1
    - Dst: BrotliEncoderCreateInstance
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:215,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:217,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:218,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:219,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:220,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:221,1
    - Dst: BrotliEncoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:222,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:229,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:232,1
    - Dst: BrotliEncoderCompressStream
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:244,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:248,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:249,1
    - Dst: BrotliEncoderHasMoreOutput
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:253,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:259,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:266,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:266,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:268,1
    - Dst: BrotliEncoderDestroyInstance
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:271,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 275
    functionName: brotli_xlat_compress
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - BrotliEncoderCreateInstance
    - BrotliEncoderDestroyInstance
    - BrotliEncoderHasMoreOutput
    - fr_value_box_alloc
    - fr_assert_msg
    - fr_value_box_mem_realloc
    - MEM
    - fr_type_is_group
    - BrotliEncoderMaxCompressedSize
    - fr_value_box_list_foreach
    - fr_assert
    - BrotliEncoderCompressStream
    - BrotliEncoderSetParameter
    - fr_value_box_list_next
    - fr_value_box_mem_alloc
    - RERROR
    - brotli_pool_get
    - XLAT_ARGS
    - talloc_get_type_abort_const
    - fr_dcursor_insert
    - talloc_free_children
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t brotli_xlat_compress(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \t  xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:295,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:312,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:314,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:314,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:316,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:316,1
    - Dst: brotli_pool_get
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:318,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:319,1
    - Dst: BrotliDecoderCreateInstance
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:319,1
    - Dst: BrotliDecoderSetParameter
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:321,1
    - Dst: BrotliDecoderDecompressStream
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:327,1
    - Dst: BrotliDecoderGetErrorCode
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:331,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:332,1
    - Dst: BrotliDecoderErrorString
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:332,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:338,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:355,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:355,1
    - Dst: BrotliDecoderIsFinished
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:361,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:362,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:362,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:363,1
    - Dst: BrotliDecoderDestroyInstance
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:371,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 375
    functionName: brotli_xlat_decompress
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - BrotliDecoderDestroyInstance
    - fr_value_box_mem_alloc
    - BrotliDecoderCreateInstance
    - RERROR
    - BrotliDecoderGetErrorCode
    - brotli_pool_get
    - XLAT_ARGS
    - REDEBUG
    - BrotliDecoderSetParameter
    - fr_value_box_alloc
    - BrotliDecoderIsFinished
    - talloc_get_type_abort_const
    - fr_value_box_mem_realloc
    - talloc_free_children
    - fr_dcursor_insert
    - BrotliDecoderDecompressStream
    - MEM
    - BrotliDecoderErrorString
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t brotli_xlat_decompress(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t \t    xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:381,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:381,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:383,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:385,1
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:385,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 390
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_brotli/rlm_brotli.c
    functionUses: 0
    functionsReached:
    - unlikely
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:60,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:68,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:68,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:70,1
    - Dst: strptime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:72,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:74,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:75,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:78,1
    - Dst: strptime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:88,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:89,1
    - Dst: timegm
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:94,1
    - Dst: mktime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:96,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:99,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:103,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:103,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:104,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - str
    - inst
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - request_t*
    - char*
    - rlm_date_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 107
    functionName: date_convert_string
    functionSourceFile: /src/freeradius-server/src/modules/rlm_date/rlm_date.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - fr_unix_time_from_sec
    - strptime
    - REDEBUG
    - fr_dcursor_append
    - talloc_strdup
    - strstr
    - timegm
    - fr_value_box_alloc
    - mktime
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t date_convert_string(TALLOC_CTX *ctx, fr_dcursor_t *out,
      request_t *request,\n\t\t\t\t\t const char *str, rlm_date_t const *inst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:117,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:118,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:118,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:122,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:123,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:123,1
    - Dst: strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:128,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:130,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:130,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:131,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:131,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - ctx
    - out
    - inst
    - request
    - fmt
    - date
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - rlm_date_t*
    - request_t*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: date_encode_strftime
    functionSourceFile: /src/freeradius-server/src/modules/rlm_date/rlm_date.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup
    - fr_dcursor_append
    - fr_syserror
    - REDEBUG
    - gmtime_r
    - strftime
    - localtime_r
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t date_encode_strftime(TALLOC_CTX *ctx, fr_dcursor_t *out,
      rlm_date_t const *inst,\n\t\t\t\t\t  request_t *request, char const *fmt, time_t
      date)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:172,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:174,1
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:176,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:184,1
    - Dst: date_encode_strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:185,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:186,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:189,1
    - Dst: date_encode_strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:191,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:191,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:191,1
    - Dst: date_encode_strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:198,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:198,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:198,1
    - Dst: date_encode_strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:209,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:209,1
    - Dst: date_encode_strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:212,1
    - Dst: date_encode_strftime
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:215,1
    - Dst: date_convert_string
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:223,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:226,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 230
    functionName: xlat_date_convert
    functionSourceFile: /src/freeradius-server/src/modules/rlm_date/rlm_date.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_time_to_sec
    - fr_time
    - REDEBUG
    - talloc_get_type_abort
    - date_encode_strftime
    - strcmp
    - fr_type_to_str
    - memset
    - fr_unix_time_to_sec
    - date_convert_string
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_date_convert(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_xlat_register
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:236,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/modules/rlm_date/rlm_date.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/modules/rlm_date/rlm_date.c
    functionUses: 0
    functionsReached:
    - module_rlm_xlat_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:505,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:506,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - request
    - wait_num
    - reply
    argTypes:
    - request_t*
    - uint32_t
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: ippool_wait_check
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_table_str_by_value
    linkageType: ''
    returnType: int
    signature: int ippool_wait_check(request_t *request, uint32_t wait_num, redisReply
      *reply)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:527,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:529,1
    - Dst: RDEBUGX
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:533,1
    - Dst: RDEBUGX
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:543,1
    - Dst: RDEBUGX
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:553,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:568,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:569,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 8
    argNames:
    - request
    - action
    - lvl
    - key_prefix
    - ip
    - owner
    - gateway_id
    - expires
    argTypes:
    - request_t*
    - ippool_action_t
    - fr_log_lvl_t
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_value_box_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 570
    functionName: ippool_action_print
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - RDEBUGX
    - fr_asprint
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void ippool_action_print(request_t *request, ippool_action_t action,\n\t\t\t\tfr_log_lvl_t
      lvl,\n\t\t\t\tfr_value_box_t const *key_prefix,\n\t\t\t\tfr_value_box_t const
      *ip,\n\t\t\t\tfr_value_box_t const *owner,\n\t\t\t\tfr_value_box_t  const *gateway_id,\n\t\t\t\tuint32_t
      expires)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:611,1
    - Dst: va_start
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:614,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:616,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:618,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:621,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:622,1
    - Dst: redisvAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:623,1
    - Dst: va_end
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:624,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:627,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:627,1
    - Dst: fr_redis_pipeline_result
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:630,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:631,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:638,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:645,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:646,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:647,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:648,1
    - Dst: redisvAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:649,1
    - Dst: va_end
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:650,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:651,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:654,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:654,1
    - Dst: fr_redis_pipeline_result
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:658,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:659,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:663,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:667,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:668,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:670,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:675,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:680,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:681,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:684,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:685,1
    - Dst: ippool_wait_check
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:695,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:696,1
    - Dst: ippool_wait_check
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:704,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:705,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:709,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:710,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:711,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:714,1
    - Dst: va_end
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:722,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 96
    argCount: 10
    argNames:
    - out
    - request
    - cluster
    - key
    - key_len
    - wait_num
    - wait_timeout
    - digest
    - script
    - cmd
    argTypes:
    - redisReply**
    - request_t*
    - fr_redis_cluster_t*
    - uint8_t*
    - size_t
    - uint32_t
    - fr_time_delta_t
    - char[]
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 724
    functionName: ippool_script
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - fr_redis_reply_print
    - fr_redis_pipeline_free
    - va_start
    - fr_redis_cluster_state_init
    - RWDEBUG
    - ippool_wait_check
    - va_copy
    - fr_table_str_by_value
    - fr_redis_cluster_state_next
    - memset
    - NUM_ELEMENTS
    - va_end
    - fr_time_delta_to_msec
    - redisvAppendCommand
    - RDEBUG3
    - strcmp
    - RERROR
    - redisAppendCommand
    - fr_redis_reply_free
    - fr_redis_pipeline_result
    linkageType: ''
    returnType: fr_redis_rcode_t
    signature: "fr_redis_rcode_t ippool_script(redisReply **out, request_t *request,
      fr_redis_cluster_t *cluster,\n\t\t\t\t      uint8_t const *key, size_t key_len,\n\t\t\t\t
      \     uint32_t wait_num, fr_time_delta_t wait_timeout,\n\t\t\t\t      char const
      digest[], char const *script,\n\t\t\t\t      char const *cmd, ...)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:739,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:740,1
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:742,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:742,1
    - Dst: ippool_script
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:748,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:759,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:763,1
    - Dst: ippool_script
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:768,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:786,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:788,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:789,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:795,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:804,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:805,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:823,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:833,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:836,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:836,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:837,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:837,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:839,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:844,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:845,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:851,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:854,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:861,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:862,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:885,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:886,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:888,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:899,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:900,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:917,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:919,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:920,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:925,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:926,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:932,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 118
    argCount: 4
    argNames:
    - inst
    - request
    - env
    - lease_time
    argTypes:
    - rlm_redis_ippool_t*
    - request_t*
    - redis_ippool_alloc_call_env_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 934
    functionName: redis_ippool_allocate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    - RPEDEBUG
    - map_to_request
    - fr_time
    - ippool_script
    - REDEBUG
    - tmpl_attr_tail_da
    - fr_redis_reply_free
    - fr_table_str_by_value
    - tmpl_value
    - fr_assert
    - fr_value_box
    - fr_value_box_cast
    - tmpl_init_shallow
    - fr_value_box_bstrndup_shallow
    - IPPOOL_SPRINT_IP
    - fr_time_to_timeval
    linkageType: ''
    returnType: ippool_rcode_t
    signature: "ippool_rcode_t redis_ippool_allocate(rlm_redis_ippool_t const *inst,
      request_t *request,\n\t\t\t\t\t    redis_ippool_alloc_call_env_t *env, uint32_t
      lease_time)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:953,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:953,1
    - Dst: ippool_script
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:959,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:967,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:974,1
    - Dst: ippool_script
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:975,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:994,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:995,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1001,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1010,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1011,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1031,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1032,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1034,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1045,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1046,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1064,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1066,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1067,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1074,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 7
    argNames:
    - inst
    - request
    - env
    - ip
    - owner
    - gateway_id
    - expires
    argTypes:
    - rlm_redis_ippool_t*
    - request_t*
    - redis_ippool_update_call_env_t*
    - fr_ipaddr_t*
    - fr_value_box_t*
    - fr_value_box_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 1077
    functionName: redis_ippool_update
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - htonl
    - map_to_request
    - fr_time
    - ippool_script
    - REDEBUG
    - fr_redis_reply_free
    - fr_table_str_by_value
    - fr_value_box
    - tmpl_init_shallow
    - fr_value_box_bstrndup_shallow
    - IPPOOL_SPRINT_IP
    - fr_time_to_timeval
    linkageType: ''
    returnType: ippool_rcode_t
    signature: "ippool_rcode_t redis_ippool_update(rlm_redis_ippool_t const *inst,
      request_t *request,\n\t\t\t\t\t  redis_ippool_update_call_env_t *env,\n\t\t\t\t\t
      \ fr_ipaddr_t *ip,\n\t\t\t\t\t  fr_value_box_t const *owner,\n\t\t\t\t\t  fr_value_box_t
      const *gateway_id,\n\t\t\t\t\t  uint32_t expires)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1093,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1093,1
    - Dst: ippool_script
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1096,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1104,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1109,1
    - Dst: ippool_script
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1110,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1127,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1128,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1134,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1143,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1144,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 6
    argNames:
    - inst
    - request
    - key_prefix
    - ip
    - owner
    - assoc_time
    argTypes:
    - rlm_redis_ippool_t*
    - request_t*
    - fr_value_box_t*
    - fr_ipaddr_t*
    - fr_value_box_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1155
    functionName: redis_ippool_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_time
    - ippool_script
    - REDEBUG
    - fr_redis_reply_free
    - fr_table_str_by_value
    - IPPOOL_SPRINT_IP
    - fr_time_to_timeval
    linkageType: ''
    returnType: ippool_rcode_t
    signature: "ippool_rcode_t redis_ippool_release(rlm_redis_ippool_t const *inst,
      request_t *request,\n\t\t\t\t\t   fr_value_box_t const *key_prefix,\n\t\t\t\t\t
      \  fr_ipaddr_t *ip,\n\t\t\t\t\t   fr_value_box_t const *owner, uint32_t assoc_time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1170,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1171,1
    - Dst: ippool_action_print
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1182,1
    - Dst: redis_ippool_allocate
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1184,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1186,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1168
    functionDepth: 4
    functionLinenumber: 1168
    functionLinenumberEnd: 1196
    functionName: mod_alloc
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - ippool_action_print
    - talloc_get_type_abort
    - redis_ippool_allocate
    - RDEBUG2
    - talloc_get_type_abort_const
    - RWDEBUG
    linkageType: ''
    returnType: void
    signature: void mod_alloc(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1200,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1201,1
    - Dst: redis_ippool_update
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1207,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1212,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1229,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1229,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1230,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1234,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1244,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1249,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1198
    functionDepth: 4
    functionLinenumber: 1198
    functionLinenumberEnd: 1261
    functionName: mod_update
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - RPEDEBUG
    - map_to_request
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - talloc_get_type_abort_const
    - redis_ippool_update
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void mod_update(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1265,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1266,1
    - Dst: redis_ippool_release
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1272,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1275,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1284,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1263
    functionDepth: 4
    functionLinenumber: 1263
    functionLinenumberEnd: 1296
    functionName: mod_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - redis_ippool_release
    - RDEBUG2
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mod_release(unlang_result_t *p_result, module_ctx_t const *mctx,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1303
    functionName: mod_bulk_release
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: "void mod_bulk_release(unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx,\n\t\t\t\t\t\t\t request_t *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1308,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1310,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1312,1
    - Dst: fr_redis_cluster_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1314,1
    - Dst: fr_redis_cluster_min_version
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1317,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1318,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1329,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1330,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1331,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1332,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1332,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1332,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1334,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1335,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1336,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1337,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1337,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1337,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1339,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1340,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1341,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1342,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1342,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1346
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - fr_redis_cluster_alloc
    - cf_section_find
    - fr_sha1_init
    - fr_base16_encode
    - fr_sha1_final
    - talloc_get_type_abort
    - fr_sha1_update
    - FR_SBUFF_OUT
    - fr_assert
    - FR_DBUFF_TMP
    - fr_redis_cluster_min_version
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_redis_version_print
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1353
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool.c
    functionUses: 0
    functionsReached:
    - fr_redis_version_print
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _buff
    - ','
    - _p
    - ','
    - _key
    - ','
    - _key_len
    - ','
    - _ip_str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: IPPOOL_BUILD_IP_KEY_FROM_STR
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPPOOL_BUILD_IP_KEY_FROM_STR(_buff, _p, _key, _key_len, _ip_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _buff
    - ','
    - _p
    - ','
    - _key
    - ','
    - _key_len
    - ','
    - _owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: IPPOOL_BUILD_OWNER_KEY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPPOOL_BUILD_OWNER_KEY(_buff, _p, _key, _key_len, _owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:346,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:347,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:348,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:349,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:350,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:351,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:352,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:353,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:354,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:355,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:356,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:357,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:358,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:359,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:360,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:361,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:362,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:363,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:366,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:369,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:370,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:371,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:372,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:373,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:375,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:376,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:377,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:378,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:379,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:380,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 382
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 25
    functionsReached:
    - INFO
    - fr_exit_now
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: uint32_gen_mask
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t uint32_gen_mask(uint8_t bits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:406,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:413,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:416,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:417,1
    - Dst: ntohlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:419,1
    - Dst: ntohlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:420,1
    - Dst: uint128_eq
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:423,1
    - Dst: uint128_add
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:426,1
    - Dst: uint128_lshift
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:426,1
    - Dst: uint128_new
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:426,1
    - Dst: htonlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:427,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:428,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:436,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:438,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:439,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - ipaddr
    - end
    - prefix
    argTypes:
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 450
    functionName: ipaddr_next
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    - uint128_add
    - ntohlll
    - memcpy
    - fr_cond_assert
    - htonlll
    - fr_assert
    - uint128_eq
    - uint128_lshift
    - uint128_new
    linkageType: ''
    returnType: bool
    signature: bool ipaddr_next(fr_ipaddr_t *ipaddr, fr_ipaddr_t const *end, uint8_t
      prefix)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:459,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:478,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:481,1
    - Dst: ipaddr_next
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:490,1
    - Dst: enqueue
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:494,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:500,1
    - Dst: fr_redis_pipeline_result
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:503,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:504,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:505,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:509,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:510,1
    - Dst: process
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:520,1
    - Dst: ipaddr_next
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:522,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:525,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:526,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 6
    argNames:
    - out
    - instance
    - op
    - enqueue
    - process
    - uctx
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    - redis_ippool_queue_t
    - redis_ippool_process_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 530
    functionName: driver_do_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - fr_redis_reply_print
    - fr_redis_pipeline_free
    - process
    - TALLOC_FREE
    - talloc_free
    - talloc_get_type_abort
    - ipaddr_next
    - enqueue
    - fr_redis_cluster_state_init
    - fr_redis_pipeline_result
    - talloc_zero_array
    - talloc_array_length
    - fr_redis_cluster_state_next
    linkageType: ''
    returnType: int
    signature: "int driver_do_lease(void *out, void *instance, ippool_tool_operation_t
      const *op,\n\t\t\t   redis_ippool_queue_t enqueue, redis_ippool_process_t process,
      void *uctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:541,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:551,1
    - Dst: strtoull
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:553,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:556,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:560,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:564,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:571,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:572,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:572,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - fr_ipaddr_t*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 576
    functionName: _driver_show_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_array
    - talloc_realloc
    - strtoull
    - talloc_zero
    - talloc_array_length
    - MEM
    linkageType: ''
    returnType: int
    signature: int _driver_show_lease_process(void *out, fr_ipaddr_t const *ipaddr,
      redisReply const *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_BUILD_KEY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:593,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:594,1
    - Dst: IPPOOL_BUILD_IP_KEY_FROM_STR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:595,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:597,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:598,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:600,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:601,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:602,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:603,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:604,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - UNUSED*
    - UNUSED
    - fr_ipaddr_t*
    - uint8_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 607
    functionName: _driver_show_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - redisAppendCommand
    - IPPOOL_BUILD_IP_KEY_FROM_STR
    - fr_box_strvalue_len
    - IPPOOL_BUILD_KEY
    - IPPOOL_SPRINT_IP
    - DEBUG
    linkageType: ''
    returnType: int
    signature: "int _driver_show_lease_enqueue(UNUSED redis_driver_conf_t *inst, fr_redis_conn_t
      *conn,\n\t\t\t\t      uint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t
      \     UNUSED uint8_t const *range, UNUSED size_t range_len,\n\t\t\t\t      fr_ipaddr_t
      *ipaddr, uint8_t prefix, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - instance
    - op
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: driver_show_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_show_lease(void *out, void *instance, ippool_tool_operation_t
      const *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - UNUSED*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 633
    functionName: _driver_release_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _driver_release_lease_process(void *out, UNUSED fr_ipaddr_t const
      *ipaddr, redisReply const *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:645,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:647,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:648,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - UNUSED*
    - UNUSED
    - fr_ipaddr_t*
    - uint8_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 651
    functionName: _driver_release_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - IPPOOL_SPRINT_IP
    - DEBUG
    - fr_box_strvalue_len
    - redisAppendCommand
    linkageType: ''
    returnType: int
    signature: "int _driver_release_lease_enqueue(UNUSED redis_driver_conf_t *inst,
      fr_redis_conn_t *conn,\n\t\t\t\t\t uint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t\t
      UNUSED uint8_t const *range, UNUSED size_t range_len,\n\t\t\t\t\t fr_ipaddr_t
      *ipaddr, uint8_t prefix, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - instance
    - op
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: driver_release_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_release_lease(void *out, void *instance, ippool_tool_operation_t
      const *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - UNUSED*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 680
    functionName: _driver_remove_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _driver_remove_lease_process(void *out, UNUSED fr_ipaddr_t const
      *ipaddr, redisReply const *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:694,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:696,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:697,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - UNUSED*
    - UNUSED
    - fr_ipaddr_t*
    - uint8_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 700
    functionName: _driver_remove_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - IPPOOL_SPRINT_IP
    - DEBUG
    - fr_box_strvalue_len
    - redisAppendCommand
    linkageType: ''
    returnType: int
    signature: "int _driver_remove_lease_enqueue(UNUSED redis_driver_conf_t *inst,
      fr_redis_conn_t *conn,\n\t\t\t\t\tuint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t\tUNUSED
      uint8_t const *range, UNUSED size_t range_len,\n\t\t\t\t\tfr_ipaddr_t *ipaddr,
      uint8_t prefix, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - instance
    - op
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 709
    functionName: driver_remove_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_remove_lease(void *out, void *instance, ippool_tool_operation_t
      const *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - UNUSED*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: _driver_add_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _driver_add_lease_process(void *out, UNUSED fr_ipaddr_t const *ipaddr,
      redisReply const *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_BUILD_KEY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:749,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:750,1
    - Dst: IPPOOL_BUILD_IP_KEY_FROM_STR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:751,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:753,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:753,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:754,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:756,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:765,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - fr_ipaddr_t*
    - uint8_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 772
    functionName: _driver_add_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - redisAppendCommand
    - IPPOOL_BUILD_IP_KEY_FROM_STR
    - fr_box_strvalue_len
    - IPPOOL_BUILD_KEY
    - IPPOOL_SPRINT_IP
    - DEBUG
    linkageType: ''
    returnType: int
    signature: "int _driver_add_lease_enqueue(UNUSED redis_driver_conf_t *inst, fr_redis_conn_t
      *conn,\n\t\t\t\t     uint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t
      \    uint8_t const *range, size_t range_len,\n\t\t\t\t     fr_ipaddr_t *ipaddr,
      uint8_t prefix, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - instance
    - op
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: driver_add_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_add_lease(void *out, void *instance, ippool_tool_operation_t
      const *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - UNUSED*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 801
    functionName: _driver_modify_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _driver_modify_lease_process(void *out, UNUSED fr_ipaddr_t const
      *ipaddr, redisReply const *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_BUILD_KEY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:820,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:821,1
    - Dst: IPPOOL_BUILD_IP_KEY_FROM_STR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:822,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:824,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:824,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - fr_ipaddr_t*
    - uint8_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 828
    functionName: _driver_modify_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - redisAppendCommand
    - IPPOOL_BUILD_IP_KEY_FROM_STR
    - fr_box_strvalue_len
    - IPPOOL_BUILD_KEY
    - IPPOOL_SPRINT_IP
    - DEBUG
    linkageType: ''
    returnType: int
    signature: "int _driver_modify_lease_enqueue(UNUSED redis_driver_conf_t *inst,
      fr_redis_conn_t *conn,\n\t\t\t\t\tuint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t\tuint8_t
      const *range, size_t range_len,\n\t\t\t\t\tfr_ipaddr_t *ipaddr, uint8_t prefix,
      UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - instance
    - op
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 837
    functionName: driver_modify_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_modify_lease(void *out, void *instance, ippool_tool_operation_t
      const *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - UNUSED*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 846
    functionName: _driver_assign_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _driver_assign_lease_process(void *out, UNUSED fr_ipaddr_t const
      *ipaddr, redisReply const *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:860,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:861,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:863,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:865,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:866,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - fr_ipaddr_t*
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 868
    functionName: _driver_assign_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - redisAppendCommand
    - fr_time
    - strlen
    - IPPOOL_SPRINT_IP
    - DEBUG
    linkageType: ''
    returnType: int
    signature: "int _driver_assign_lease_enqueue(UNUSED redis_driver_conf_t *inst,
      fr_redis_conn_t *conn,\n\t\t\t\t     uint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t
      \    uint8_t const *range, size_t range_len,\n\t\t\t\t     fr_ipaddr_t *ipaddr,
      uint8_t prefix, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - instance
    - op
    - owner
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 878
    functionName: driver_assign_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_assign_lease(void *out, void *instance, ippool_tool_operation_t
      const *op, char const *owner)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - ipaddr
    - reply
    argTypes:
    - void*
    - UNUSED*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: _driver_unassign_lease_process
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _driver_unassign_lease_process(void *out, UNUSED fr_ipaddr_t const
      *ipaddr, redisReply const *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:905,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:906,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:908,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:909,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:910,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - redis_driver_conf_t *inst
    - conn
    - key_prefix
    - key_prefix_len
    - range
    - range_len
    - ipaddr
    - prefix
    - uctx
    argTypes:
    - UNUSED
    - fr_redis_conn_t*
    - uint8_t*
    - size_t
    - UNUSED*
    - UNUSED
    - fr_ipaddr_t*
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 912
    functionName: _driver_unassign_lease_enqueue
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - redisAppendCommand
    - fr_time
    - strlen
    - IPPOOL_SPRINT_IP
    - DEBUG
    linkageType: ''
    returnType: int
    signature: "int _driver_unassign_lease_enqueue(UNUSED redis_driver_conf_t *inst,
      fr_redis_conn_t *conn,\n\t\t\t\t     uint8_t const *key_prefix, size_t key_prefix_len,\n\t\t\t\t
      \    UNUSED uint8_t const *range, UNUSED size_t range_len,\n\t\t\t\t     fr_ipaddr_t
      *ipaddr, uint8_t prefix, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: driver_do_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - instance
    - op
    - owner
    argTypes:
    - void*
    - void*
    - ippool_tool_operation_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 922
    functionName: driver_unassign_lease
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - driver_do_lease
    linkageType: ''
    returnType: int
    signature: int driver_unassign_lease(void *out, void *instance, ippool_tool_operation_t
      const *op, char const *owner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:933,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:934,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:936,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:939,1
    - Dst: CMP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 941
    functionName: pool_cmp
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - talloc_array_length
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t pool_cmp(void const *a, void const *b)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:958,1
    - Dst: IPPOOL_BUILD_KEY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:963,1
    - Dst: fr_redis_cluster_node_addr_by_role
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:970,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:976,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:978,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:979,1
    - Dst: fr_redis_cluster_pool_by_node_addr
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:994,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:995,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:997,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:998,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1002,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1009,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1011,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1012,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1015,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1016,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1018,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1021,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1022,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1027,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1028,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1034,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1036,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1041,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1042,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1047,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1048,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1052,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1053,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1053,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1056,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1060,1
    - Dst: memchr
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1071,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1076,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1083,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1086,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1089,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1094,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1104,1
    - Dst: fr_quick_sort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1106,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1109,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1111,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1112,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1122,1
    - Dst: pool_cmp
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1123,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1126,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 120
    argCount: 3
    argNames:
    - ctx
    - out
    - instance
    argTypes:
    - TALLOC_CTX*
    - uint8_t**[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 1129
    functionName: driver_get_pools
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - fr_redis_reply_print
    - pool_cmp
    - fr_redis_cluster_node_addr_by_role
    - fr_pool_connection_release
    - memcpy
    - talloc_realloc
    - memchr
    - talloc_array
    - MEM
    - strlcpy
    - ERROR
    - talloc_get_type_abort
    - fr_table_str_by_value
    - talloc_zero_array
    - IPPOOL_BUILD_KEY
    - memcmp
    - fr_pool_connection_get
    - redisCommand
    - talloc_memdup
    - fr_quick_sort
    - talloc_steal
    - talloc_array_length
    - fr_redis_command_status
    - PERROR
    - fr_redis_cluster_pool_by_node_addr
    - TALLOC_FREE
    - talloc_free
    - fr_redis_reply_free
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t driver_get_pools(TALLOC_CTX *ctx, uint8_t **out[], void *instance)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1133,1
    - Dst: IPPOOL_BUILD_KEY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1151,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1153,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1153,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1155,1
    - Dst: fr_redis_cluster_state_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1157,1
    - Dst: fr_redis_cluster_state_next
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1159,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1162,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1163,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1164,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1165,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1166,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1167,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1168,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1169,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1170,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1171,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1172,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1173,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1174,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1174,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1176,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1176,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1177,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1178,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1178,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1180,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1181,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1181,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1183,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1184,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1184,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1186,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1187,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1187,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1189,1
    - Dst: redisAppendCommand
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1190,1
    - Dst: fr_redis_pipeline_result
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1194,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1195,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1196,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1201,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1202,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1207,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1214,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1215,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1220,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1225,1
    - Dst: fr_redis_pipeline_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1242,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1243,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 4
    argNames:
    - out
    - instance
    - key_prefix
    - key_prefix_len
    argTypes:
    - ippool_tool_stats_t*
    - void*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1246
    functionName: driver_get_stats
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - fr_redis_reply_print
    - fr_redis_pipeline_free
    - ERROR
    - fr_time
    - redisAppendCommand
    - talloc_free
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_redis_cluster_state_init
    - fr_redis_pipeline_result
    - talloc_zero_array
    - talloc_array_length
    - IPPOOL_BUILD_KEY
    - fr_redis_cluster_state_next
    - STRINGIFY
    - MEM
    linkageType: ''
    returnType: int
    signature: int driver_get_stats(ippool_tool_stats_t *out, void *instance, uint8_t
      const *key_prefix, size_t key_prefix_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1258,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1260,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1263,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1265,1
    - Dst: fr_redis_cluster_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1273,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - conf
    - instance
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1282
    functionName: driver_init
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - fr_redis_cluster_alloc
    - talloc_free
    - cf_section_parse
    - cf_section_rules_push
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int driver_init(TALLOC_CTX *ctx, CONF_SECTION *conf, void **instance)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1300,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1307,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1311,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1312,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1313,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1317,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1318,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1319,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1323,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1324,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1328,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1329,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1334,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1338,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1346,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1347,1
    - Dst: uint128_gt
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1348,1
    - Dst: ntohlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1348,1
    - Dst: ntohlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1348,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1349,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1356,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1357,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1358,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1366,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1367,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1377,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1378,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1382,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1385,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1388,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1389,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1389,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1394,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1402,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1407,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1422,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1425,1
    - Dst: ntohlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1426,1
    - Dst: uint128_lshift
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1429,1
    - Dst: uint128_gen_mask
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1429,1
    - Dst: htonlll
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1430,1
    - Dst: uint128_bor
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1430,1
    - Dst: uint128_sub
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1433,1
    - Dst: uint128_new
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1433,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1434,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1439,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1441,1
    - Dst: uint32_gen_mask
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1444,1
    - Dst: htonl
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1448,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 99
    argCount: 4
    argNames:
    - start_out
    - end_out
    - ip_str
    - prefix
    argTypes:
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1455
    functionName: parse_ip_range
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    - memcpy
    - IPADDR_LEN
    - fr_cond_assert
    - is_truncated
    - strlcpy
    - uint128_new
    - ERROR
    - ntohlll
    - uint128_sub
    - fr_inet_pton
    - uint128_gen_mask
    - uint32_gen_mask
    - uint128_lshift
    - PERROR
    - uint128_gt
    - strchr
    - htonlll
    - uint128_bor
    - fr_ipaddr_mask
    linkageType: ''
    returnType: int
    signature: int parse_ip_range(fr_ipaddr_t *start_out, fr_ipaddr_t *end_out, char
      const *ip_str, uint8_t prefix)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1460,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1479,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1480,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1481,1
    - Dst: getopt
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1495,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1497,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1501,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1505,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1509,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1513,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1517,1
    - Dst: ADD_ACTION
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1521,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1534,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1535,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1538,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1539,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1540,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1541,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1557,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1566,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1580,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1586,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1587,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1590,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1591,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1593,1
    - Dst: cf_file_read
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1598,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1598,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1599,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1602,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1604,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1605,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1615,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1615,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1615,1
    - Dst: fr_value_str_unescape
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1616,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1617,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1618,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1618,1
    - Dst: MEM
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1626,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1626,1
    - Dst: strlen
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1626,1
    - Dst: fr_value_str_unescape
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1627,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1628,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1629,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1629,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1634,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1635,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1641,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1643,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1645,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1652,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1654,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1656,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1658,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1660,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1662,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1668,1
    - Dst: driver_init
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1671,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1672,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1673,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1677,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1681,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1691,1
    - Dst: driver_get_pools
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1695,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1696,1
    - Dst: driver_get_stats
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1700,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1701,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1701,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1703,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1703,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1704,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1705,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1706,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1707,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1708,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1710,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1714,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1716,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1717,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1718,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1719,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1720,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1721,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1722,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1724,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1728,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1730,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1731,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1732,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1733,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1734,1
    - Dst: driver_get_pools
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1743,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1744,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1747,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1747,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1747,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1749,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1752,1
    - Dst: parse_ip_range
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1761,1
    - Dst: usage
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1761,1
    - Dst: IPADDR_LEN
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1762,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1766,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1770,1
    - Dst: driver_add_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1779,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1780,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1782,1
    - Dst: driver_remove_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1790,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1791,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1793,1
    - Dst: driver_release_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1801,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1802,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1804,1
    - Dst: driver_show_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1813,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1814,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1816,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1818,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1819,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1830,1
    - Dst: fr_time_to_timeval
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1832,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1832,1
    - Dst: strftime
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1835,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1836,1
    - Dst: IPPOOL_SPRINT_IP
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1840,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1843,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1847,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1848,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1849,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1850,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1853,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1857,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1861,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1862,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1863,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1865,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1866,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1867,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1870,1
    - Dst: driver_modify_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1878,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1879,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1881,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1889,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1890,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1891,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1894,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1895,1
    - Dst: driver_assign_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1898,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1899,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1901,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1909,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1910,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1911,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1914,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1915,1
    - Dst: driver_unassign_lease
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1918,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1919,1
    - Dst: INFO
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1921,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c:1929,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 324
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1457
    functionDepth: 4
    functionLinenumber: 1457
    functionLinenumberEnd: 1932
    functionName: main
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 3
    functionsReached:
    - cf_section_find
    - fr_asprint
    - cf_section_pass2
    - talloc_realloc
    - IPADDR_LEN
    - fr_cond_assert
    - fr_ipaddr_cmp
    - strftime
    - driver_add_lease
    - strlen
    - IPPOOL_SPRINT_IP
    - MEM
    - driver_init
    - ERROR
    - driver_get_pools
    - fr_time
    - cf_pair_alloc
    - talloc_get_type_abort
    - talloc_zero_array
    - strtoul
    - fr_time_to_timeval
    - NUM_ELEMENTS
    - INFO
    - parse_ip_range
    - cf_section_alloc
    - cf_file_read
    - usage
    - getopt
    - fr_sbuff_init_talloc
    - localtime_r
    - talloc_array_length
    - fr_box_strvalue_len
    - cf_pair_find
    - driver_modify_lease
    - driver_assign_lease
    - fr_exit_now
    - ADD_ACTION
    - driver_remove_lease
    - driver_show_lease
    - driver_release_lease
    - talloc_free
    - fr_sbuff_used
    - FR_SBUFF_IN_STR
    - talloc_zero
    - driver_unassign_lease
    - driver_get_stats
    - fr_value_str_unescape
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _action
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1494
    functionName: ADD_ACTION
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ACTION(_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _af
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: IPADDR_LEN
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/redis_ippool.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPADDR_LEN(_af)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _buff
    - ','
    - _p
    - ','
    - _key
    - ','
    - _key_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: IPPOOL_BUILD_KEY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/redis_ippool.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPPOOL_BUILD_KEY(_buff, _p, _key, _key_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _buff
    - ','
    - _p
    - ','
    - _key
    - ','
    - _key_len
    - ','
    - _ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: IPPOOL_BUILD_IP_KEY
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/redis_ippool.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPPOOL_BUILD_IP_KEY(_buff, _p, _key, _key_len, _ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _buff
    - ','
    - _ip
    - ','
    - _prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: IPPOOL_SPRINT_IP
    functionSourceFile: /src/freeradius-server/src/modules/rlm_redis_ippool/redis_ippool.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPPOOL_SPRINT_IP(_buff, _ip, _prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - alphabet
    argTypes:
    - fr_sbuff_t*
    - fr_dbuff_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: fr_base16_encode_nstd
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 0
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_base16_encode_nstd(fr_sbuff_t *out, fr_dbuff_t *in, char
      const alphabet[static SBUFF_CHAR_CLASS])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - err
    - out
    - in
    - no_trailing
    - alphabet
    argTypes:
    - fr_sbuff_parse_error_t*
    - fr_dbuff_t*
    - fr_sbuff_t*
    - bool
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: fr_base16_decode_nstd
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 0
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_base16_decode_nstd(fr_sbuff_parse_error_t *err, fr_dbuff_t
      *out, fr_sbuff_t *in,\n\t\t\t\tbool no_trailing, uint8_t const alphabet[static
      SBUFF_CHAR_CLASS])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: fr_sbuff_out_bstrncpy_exact
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 0
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_sbuff_out_bstrncpy_exact(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - in
    - len
    - allowed
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - bool[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: fr_sbuff_out_bstrncpy_allowed
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 0
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: size_t
    signature: "size_t fr_sbuff_out_bstrncpy_allowed(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len,\n\t\t\t\t     bool const allowed[static SBUFF_CHAR_CLASS])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out
    - in
    - len
    - tt
    - u_rules
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - fr_sbuff_term_t*
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: fr_sbuff_out_bstrncpy_until
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 1
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: size_t
    signature: "size_t fr_sbuff_out_bstrncpy_until(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len,\n\t\t\t\t   fr_sbuff_term_t const *tt,\n\t\t\t\t   fr_sbuff_unescape_rules_t
      const *u_rules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out
    - in
    - len
    - tt
    - u_rules
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - fr_sbuff_term_t*
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: fr_sbuff_out_unescape_until
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 0
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: size_t
    signature: "size_t fr_sbuff_out_unescape_until(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len,\n\t\t\t\t   fr_sbuff_term_t const *tt,\n\t\t\t\t   fr_sbuff_unescape_rules_t
      const *u_rules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - ancestor
    - da
    - numeric
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: fr_dict_attr_oid_print
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 6
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dict_attr_oid_print(fr_sbuff_t *out,\n\t\t\t       fr_dict_attr_t
      const *ancestor, fr_dict_attr_t const *da, bool numeric)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - dict
    - type
    - flags
    argTypes:
    - fr_sbuff_t*
    - fr_dict_t*
    - fr_type_t
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: fr_dict_attr_flags_print
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 3
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dict_attr_flags_print(fr_sbuff_t *out, fr_dict_t const *dict,
      fr_type_t type, fr_dict_attr_flags_t const *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - out
    - outlen
    - request
    - fmt
    - escape
    - escape_ctx
    argTypes:
    - char*
    - size_t
    - request_t*
    - char*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: xlat_eval
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 2
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_eval(char *out, size_t outlen, request_t *request,\n\t\t
      \ char const *fmt, xlat_escape_legacy_t escape, void const *escape_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - vpt
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - tmpl_t*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: tmpl_print
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 2
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_print(fr_sbuff_t *out, tmpl_t const *vpt,\n                     fr_sbuff_escape_rules_t
      const *e_rules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_write_buffer_bytes__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: fr_md5_calc
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 5
    functionsReached:
    - __coverity_write_buffer_bytes__
    linkageType: ''
    returnType: void
    signature: void fr_md5_calc(uint8_t out[static MD5_DIGEST_LENGTH], uint8_t const
      *in, size_t inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_mark_pointee_as_sanitized__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:259,1
    - Dst: __coverity_mark_pointee_as_sanitized__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:260,1
    - Dst: __coverity_mark_pointee_as_sanitized__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - packet
    - packet_len_p
    - max_attributes
    - require_message_authenticator
    - reason
    argTypes:
    - uint8_t*
    - size_t*
    - uint32_t
    - bool
    - decode_fail_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: fr_radius_ok
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 1
    functionsReached:
    - __coverity_mark_pointee_as_sanitized__
    linkageType: ''
    returnType: bool
    signature: "bool fr_radius_ok(uint8_t const *packet, size_t *packet_len_p,\n                  uint32_t
      max_attributes, bool require_message_authenticator, decode_fail_t *reason)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_writeall__
      Src: /src/freeradius-server/src/coverity-model/merged_model.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - value
    - inlen
    - resolve
    - fallback
    - mask_bits
    argTypes:
    - fr_ipaddr_t*
    - char*
    - ssize_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: fr_inet_pton4
    functionSourceFile: /src/freeradius-server/src/coverity-model/merged_model.c
    functionUses: 0
    functionsReached:
    - __coverity_writeall__
    linkageType: ''
    returnType: int
    signature: int fr_inet_pton4(fr_ipaddr_t *out, char const *value, ssize_t inlen,
      bool resolve, bool fallback, bool mask_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: CMP_PREFER_SMALLER
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_PREFER_SMALLER(_a,_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CMP_PREFER_LARGER
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_PREFER_LARGER(_a,_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: CMP
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: CMP_RETURN
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_RETURN(_a, _b, _field)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/include/build.h:150,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/include/build.h:150,1
    - Dst: CMP
      Src: /src/freeradius-server/src/include/build.h:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - a
    - b
    - a_len
    - b_len
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: memcmp_return
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached:
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t memcmp_return(void const *a, void const *b, size_t a_len, size_t
      b_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _field
    - ','
    - _len_field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: MEMCMP_RETURN
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCMP_RETURN(_a, _b, _field, _len_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _field
    - ','
    - _len_field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: MEMCMP_FIELDS
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCMP_FIELDS(_a, _b, _field, _len_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: UNCONST
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNCONST(_type, _ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: typeof_field
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typeof_field(_type, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b1
    - ','
    - b2
    - ','
    - b3
    - ','
    - b4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: XHEXIFY4
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XHEXIFY4(b1,b2,b3,b4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b1
    - ','
    - b2
    - ','
    - b3
    - ','
    - b4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: HEXIFY4
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXIFY4(b1,b2,b3,b4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b1
    - ','
    - b2
    - ','
    - b3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: XHEXIFY3
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XHEXIFY3(b1,b2,b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b1
    - ','
    - b2
    - ','
    - b3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: HEXIFY3
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXIFY3(b1,b2,b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b1
    - ','
    - b2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: XHEXIFY2
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XHEXIFY2(b1,b2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b1
    - ','
    - b2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: HEXIFY2
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXIFY2(b1,b2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: XHEXIFY
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XHEXIFY(b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: HEXIFY
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXIFY(b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: XSTRINGIFY
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: STRINGIFY
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: JOINSTR
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOINSTR(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: _JOIN
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _JOIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: JOIN
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: L
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L(_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: F1
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F1(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: F2
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F2(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: F4
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F4(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: F8
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F8(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: F16
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F16(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: F32
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F32(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: F64
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F64(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: F128
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F128(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _idx
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: F256
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F256(_idx, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 131
    argNames:
    - (
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - ','
    - _11
    - ','
    - _12
    - ','
    - _13
    - ','
    - _14
    - ','
    - _15
    - ','
    - _16
    - ','
    - _17
    - ','
    - _18
    - ','
    - _19
    - ','
    - _20
    - ','
    - _21
    - ','
    - _22
    - ','
    - _23
    - ','
    - _24
    - ','
    - _25
    - ','
    - _26
    - ','
    - _27
    - ','
    - _28
    - ','
    - _29
    - ','
    - _30
    - ','
    - _31
    - ','
    - _32
    - ','
    - _33
    - ','
    - _34
    - ','
    - _35
    - ','
    - _36
    - ','
    - _37
    - ','
    - _38
    - ','
    - _39
    - ','
    - _40
    - ','
    - _41
    - ','
    - _42
    - ','
    - _43
    - ','
    - _44
    - ','
    - _45
    - ','
    - _46
    - ','
    - _47
    - ','
    - _48
    - ','
    - _49
    - ','
    - _50
    - ','
    - _51
    - ','
    - _52
    - ','
    - _53
    - ','
    - _54
    - ','
    - _55
    - ','
    - _56
    - ','
    - _57
    - ','
    - _58
    - ','
    - _59
    - ','
    - _60
    - ','
    - _61
    - ','
    - _62
    - ','
    - _63
    - ','
    - N
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: VA_ARG_N
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "VA_ARG_N( \\\n        _1, _2, _3, _4, _5, _6, _7, _8, _9,_10,  \\\n
      \       _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \\\n        _21,_22,_23,_24,_25,_26,_27,_28,_29,_30,
      \\\n        _31,_32,_33,_34,_35,_36,_37,_38,_39,_40, \\\n        _41,_42,_43,_44,_45,_46,_47,_48,_49,_50,
      \\\n        _51,_52,_53,_54,_55,_56,_57,_58,_59,_60, \\\n        _61,_62,_63,N,...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: VA_RSEQ_N
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_RSEQ_N()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: _VA_NARG
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _VA_NARG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: VA_NARG
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_NARG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: NDEBUG_LOCATION_NONNULL
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NDEBUG_LOCATION_NONNULL(_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: NDEBUG_LOCATION_NONNULL
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NDEBUG_LOCATION_NONNULL(_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: IS_CONST
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CONST(_type, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: IS_TYPE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TYPE(_type, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: UNUSED_VAR
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_VAR(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: PAD
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAD(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _t
    - ','
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: SIZEOF_MEMBER
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_MEMBER(_t, _m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: NUM_ELEMENTS
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUM_ELEMENTS(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: NUM_PTR_ELEMENTS
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUM_PTR_ELEMENTS(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: IS_COMPATIBLE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_COMPATIBLE(_x, _t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _s
    - ','
    - _f
    - ','
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: IS_FIELD_COMPATIBLE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_FIELD_COMPATIBLE(_s, _f, _t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: CC_HINT
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_HINT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: likely
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: unlikely
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 99
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: unpredictable
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpredictable(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: assume
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assume(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: assume
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assume(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: likely
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 408
    functionName: unlikely
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 99
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: unpredictable
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpredictable(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 423
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: PRAGMA
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRAGMA(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    functionName: CC_ACQUIRE_HANDLE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_ACQUIRE_HANDLE(_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: CC_USE_HANDLE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_USE_HANDLE(_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: CC_RELEASE_HANDLE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_RELEASE_HANDLE(_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: __has_feature
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sanitize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: CC_NO_UBSAN
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_NO_UBSAN(_sanitize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sanitize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: CC_NO_UBSAN
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_NO_UBSAN(_sanitize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _what
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: CC_NO_SANITIZE_UNDEFINED
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CC_NO_SANITIZE_UNDEFINED(_what)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: DIAG_PRAGMA
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_PRAGMA(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    functionName: DIAG_OFF
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_OFF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: DIAG_ON
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_ON(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: DIAG_PUSH
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_PUSH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: DIAG_POP
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: DIAG_PRAGMA
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_PRAGMA(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: DIAG_OFF
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_OFF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: DIAG_ON
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_ON(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: DIAG_PUSH
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_PUSH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: DIAG_POP
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG_POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: RCSID
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCSID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: RCSIDH
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCSIDH(h, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: RCSID
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCSID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: RCSIDH
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCSIDH(h, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _expr
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: IGNORE
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IGNORE(_expr, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dst
    - ','
    - _src
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    functionName: strncpy
    functionSourceFile: /src/freeradius-server/src/include/build.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncpy(_dst, _src, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DELETE_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:178,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/io/master.c:179,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - track
    argTypes:
    - fr_io_track_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: track_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - FR_TIMER_DELETE_RETURN
    - talloc_free_children
    linkageType: ''
    returnType: int
    signature: int track_free(fr_io_track_t *track)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:189,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:200,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/master.c:200,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/io/master.c:202,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:203,1
    - Dst: track_free
      Src: /src/freeradius-server/src/lib/io/master.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - track
    argTypes:
    - fr_io_track_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 207
    functionName: track_dedup_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_assert
    - fr_rb_delete
    - track_free
    linkageType: ''
    returnType: int
    signature: int track_dedup_free(fr_io_track_t *track)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:215,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:216,1
    - Dst: CMP_PREFER_LARGER
      Src: /src/freeradius-server/src/lib/io/master.c:224,1
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/lib/io/master.c:236,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/master.c:236,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/master.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 237
    functionName: pending_packet_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_LARGER
    - fr_time_unwrap
    - talloc_get_type_abort_const
    - CMP_PREFER_SMALLER
    linkageType: ''
    returnType: int8_t
    signature: int8_t pending_packet_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:248,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:249,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/io/master.c:251,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/io/master.c:252,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:254,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:255,1
    - Dst: pending_packet_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: pending_client_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_heap_peek
    - pending_packet_cmp
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t pending_client_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:263,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:264,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:267,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:268,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:269,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:271,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 275
    functionName: address_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    - talloc_get_type_abort_const
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t address_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:280,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/io/master.c:282,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/lib/io/master.c:283,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/lib/io/master.c:285,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/lib/io/master.c:287,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/lib/io/master.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: connection_hash
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_hash
    - talloc_get_type_abort_const
    - fr_hash_update
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t connection_hash(void const *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:293,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:294,1
    - Dst: address_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: connection_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    - address_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t connection_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:302,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:306,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:307,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:308,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:310,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:311,1
    - Dst: address_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:316,1
    - Dst: fr_io_track_t*::client::inst::app_io::track_compare
      Src: /src/freeradius-server/src/lib/io/master.c:322,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/master.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 327
    functionName: track_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_io_track_t*::client::inst::app_io::track_compare
    - CMP
    - address_cmp
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t track_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:332,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:333,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:336,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:337,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:339,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:340,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:341,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:342,1
    - Dst: fr_io_track_t*::client::inst::app_io::track_compare
      Src: /src/freeradius-server/src/lib/io/master.c:348,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/master.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 353
    functionName: track_connected_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - CMP
    - fr_assert
    - fr_io_track_t*::client::inst::app_io::track_compare
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t track_connected_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/master.c:361,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:363,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:370,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/master.c:375,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:376,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:382,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/master.c:383,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:384,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - thread
    argTypes:
    - fr_io_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 392
    functionName: pending_packet_pop
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_heap_num_elements
    - fr_assert
    - fr_heap_insert
    - fr_heap_pop
    linkageType: ''
    returnType: fr_io_pending_packet_t
    signature: fr_io_pending_packet_t *pending_packet_pop(fr_io_thread_t *thread)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:400,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:410,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:411,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:412,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:413,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:414,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:416,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:417,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:419,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:421,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:422,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:423,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:424,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:426,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:427,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:428,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:429,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:431,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:434,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - parent
    argTypes:
    - TALLOC_CTX*
    - fr_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 449
    functionName: radclient_clone
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - DUP_FIELD
    - talloc_zero
    - COPY_FIELD
    - talloc_free
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *radclient_clone(TALLOC_CTX *ctx, fr_client_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 408
    functionName: DUP_FIELD
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUP_FIELD(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: COPY_FIELD
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FIELD(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:462,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:465,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:468,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:472,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - key
    - size_t
    - data
    - ctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 479
    functionName: count_connections
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_assert
    - fr_hash_table_num_elements
    linkageType: ''
    returnType: int
    signature: int count_connections(UNUSED uint8_t const *key, UNUSED size_t keylen,
      void *data, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/io/master.c:484,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - client
    argTypes:
    - fr_io_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: _client_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int _client_free(fr_io_client_t *client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:495,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:499,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:501,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - client
    argTypes:
    - fr_io_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 505
    functionName: client_pending_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - TALLOC_FREE
    - fr_heap_num_elements
    linkageType: ''
    returnType: void
    signature: void client_pending_free(fr_io_client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - connection
    argTypes:
    - fr_io_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 517
    functionName: connection_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int connection_free(fr_io_connection_t *connection)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_walk
      Src: /src/freeradius-server/src/lib/io/master.c:560,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:563,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/master.c:566,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/io/master.c:575,1
    - Dst: module_instance_copy
      Src: /src/freeradius-server/src/lib/io/master.c:576,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:577,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/io/master.c:579,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/io/master.c:580,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/io/master.c:581,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/lib/io/master.c:582,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:583,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/lib/io/master.c:588,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:589,1
    - Dst: module_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/master.c:593,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:594,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:601,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/io/master.c:603,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:606,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:606,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:607,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/io/master.c:607,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/io/master.c:608,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:613,1
    - Dst: talloc_named
      Src: /src/freeradius-server/src/lib/io/master.c:613,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/master.c:614,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:616,1
    - Dst: radclient_clone
      Src: /src/freeradius-server/src/lib/io/master.c:616,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:618,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:619,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:631,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:631,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:655,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:655,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:707,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:715,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/master.c:715,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/master.c:716,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/master.c:731,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:733,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/io/master.c:734,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:747,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/master.c:747,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/master.c:755,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:760,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:771,1
    - Dst: fr_io_instance_t*::app_io::connection_set
      Src: /src/freeradius-server/src/lib/io/master.c:773,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:774,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/io/master.c:797,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:800,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:801,1
    - Dst: fr_io_instance_t*::app_io::open
      Src: /src/freeradius-server/src/lib/io/master.c:805,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:806,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:807,1
    - Dst: connect
      Src: /src/freeradius-server/src/lib/io/master.c:813,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:814,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/master.c:814,1
    - Dst: fr_io_instance_t*::app_io::fd_set
      Src: /src/freeradius-server/src/lib/io/master.c:824,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:825,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/io/master.c:832,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:835,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:837,1
    - Dst: fr_io_instance_t*::app_io::get_name
      Src: /src/freeradius-server/src/lib/io/master.c:840,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:854,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/io/master.c:856,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/io/master.c:857,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:862,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:863,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:869,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/master.c:876,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:877,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/master.c:879,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:885,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/lib/io/master.c:886,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:888,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:891,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/io/master.c:892,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:893,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/master.c:896,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:897,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 177
    argCount: 6
    argNames:
    - inst
    - thread
    - client
    - fd
    - address
    - nak
    argTypes:
    - fr_io_instance_t*
    - fr_io_thread_t*
    - fr_io_client_t*
    - int
    - fr_io_address_t*
    - fr_io_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 912
    functionName: fr_io_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_LOCAL
    - module_instance_copy
    - radclient_clone
    - memcpy
    - fr_rb_inline_talloc_alloc
    - talloc_strdup
    - pthread_mutex_unlock
    - module_thread_instantiate
    - fr_io_instance_t*::app_io::fd_set
    - close
    - fr_heap_alloc
    - MEM
    - cf_log_err
    - fr_asprintf
    - ERROR
    - pthread_mutex_lock
    - cf_section_name2
    - module_instantiate
    - fr_io_instance_t*::app_io::open
    - fr_io_instance_t*::app_io::get_name
    - fr_schedule_listen_add
    - talloc_zero_array
    - module_instance_conf_parse
    - cf_section_dup
    - fr_io_instance_t*::app_io::connection_set
    - memset
    - cf_section_name1
    - DEBUG
    - talloc_named
    - DEBUG3
    - fr_ipaddr_to_sockaddr
    - INFO
    - talloc_memdup
    - talloc_set_destructor
    - fr_syserror
    - fr_assert
    - talloc_init_const
    - fr_box_ipaddr
    - talloc_set_name
    - talloc_free
    - connect
    - fr_trie_walk
    - talloc
    - talloc_set_name_const
    - talloc_zero
    - talloc_asprintf
    - fr_hash_table_delete
    - fr_hash_table_insert
    linkageType: ''
    returnType: fr_io_connection_t
    signature: "fr_io_connection_t *fr_io_connection_alloc(fr_io_instance_t const
      *inst,\n\t\t\t\t\t\t  fr_io_thread_t *thread,\n\t\t\t\t\t\t  fr_io_client_t
      *client, int fd,\n\t\t\t\t\t\t  fr_io_address_t *address,\n\t\t\t\t\t\t  fr_io_connection_t
      *nak)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:932,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - li
    - inst
    - thread
    - connection
    - child
    argTypes:
    - fr_listen_t*
    - fr_io_instance_t**
    - fr_io_thread_t**
    - fr_io_connection_t**
    - fr_listen_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 939
    functionName: get_inst
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: "void get_inst(fr_listen_t *li, fr_io_instance_t const **inst, fr_io_thread_t
      **thread,\n\t\t     fr_io_connection_t **connection, fr_listen_t **child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:947,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:947,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/io/master.c:949,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:949,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/master.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - ipproto
    - address
    argTypes:
    - TALLOC_CTX*
    - int
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 962
    functionName: radclient_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_value_box_aprint
    - talloc_strdup
    - talloc_zero
    - MEM
    - fr_box_ipaddr
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *radclient_alloc(TALLOC_CTX *ctx, int ipproto, fr_io_address_t
      *address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:972,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:974,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:975,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:976,1
    - Dst: client_pending_free
      Src: /src/freeradius-server/src/lib/io/master.c:978,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:980,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:983,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:983,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/io/master.c:984,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/io/master.c:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - client
    argTypes:
    - fr_io_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 990
    functionName: _client_live_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_heap_num_elements
    - fr_heap_extract
    - fr_assert
    - fr_trie_remove_by_key
    - client_pending_free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int _client_live_free(fr_io_client_t *client)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1012,1
    - Dst: talloc_named
      Src: /src/freeradius-server/src/lib/io/master.c:1012,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/master.c:1013,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1038,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1038,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1046,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1047,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1047,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1055,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/io/master.c:1057,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1058,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1058,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:1065,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:1066,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/io/master.c:1068,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1069,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1081,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/master.c:1087,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:1095,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 6
    argNames:
    - ctx
    - state
    - inst
    - thread
    - radclient
    - network
    argTypes:
    - TALLOC_CTX*
    - fr_io_client_state_t
    - fr_io_instance_t*
    - fr_io_thread_t*
    - fr_client_t*
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1098
    functionName: client_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached:
    - fr_trie_insert_by_key
    - fr_heap_alloc
    - ERROR
    - talloc_set_destructor
    - talloc_free
    - fr_rb_inline_talloc_alloc
    - fr_hash_table_alloc
    - fr_assert
    - fr_heap_insert
    - memset
    - MEM
    - pthread_mutex_destroy
    - talloc_named
    - pthread_mutex_init
    linkageType: ''
    returnType: fr_io_client_t
    signature: "fr_io_client_t *client_alloc(TALLOC_CTX *ctx, fr_io_client_state_t
      state,\n\t\t\t\t    fr_io_instance_t const *inst, fr_io_thread_t *thread, fr_client_t
      *radclient,\n\t\t\t\t    fr_ipaddr_t const *network)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1116,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/io/master.c:1116,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1121,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/io/master.c:1121,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1122,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/master.c:1122,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:1141,1
    - Dst: fr_io_client_t*::inst::app_io::track_create
      Src: /src/freeradius-server/src/lib/io/master.c:1149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1154,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/master.c:1161,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1164,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1173,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/io/master.c:1186,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/io/master.c:1187,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/io/master.c:1188,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1189,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1196,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1198,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1204,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/lib/io/master.c:1212,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1226,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1229,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/io/master.c:1231,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1232,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/io/master.c:1234,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:1236,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/master.c:1242,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1243,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:1247,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 7
    argNames:
    - li
    - client
    - address
    - packet
    - packet_len
    - recv_time
    - is_dup
    argTypes:
    - fr_listen_t*
    - fr_io_client_t*
    - fr_io_address_t*
    - uint8_t*
    - size_t
    - fr_time_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1249
    functionName: fr_io_track_add
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_io_client_t*::inst::app_io::track_create
    - fr_rb_delete
    - FR_TIMER_DISARM
    - talloc_set_destructor
    - talloc_free
    - talloc
    - fr_rb_find
    - fr_assert
    - FR_TIMER_DELETE
    - talloc_array_length
    - fr_rb_insert
    - memcmp
    - MEM
    - DEBUG
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: fr_io_track_t
    signature: "fr_io_track_t *fr_io_track_add(fr_listen_t const *li, fr_io_client_t
      *client,\n\t\t\t\t      fr_io_address_t *address,\n\t\t\t\t      uint8_t const
      *packet, size_t packet_len,\n\t\t\t\t      fr_time_t recv_time, bool *is_dup)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1264,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pending
    argTypes:
    - fr_io_pending_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1274
    functionName: pending_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int pending_free(fr_io_pending_packet_t *pending)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1283,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:1283,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1285,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/io/master.c:1285,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:1291,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/master.c:1297,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - connection
    - client
    - buffer
    - packet_len
    - track
    - priority
    argTypes:
    - fr_io_connection_t*
    - fr_io_client_t*
    - uint8_t*
    - size_t
    - fr_io_track_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1311
    functionName: fr_io_pending_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_set_destructor
    - talloc_free
    - talloc_zero
    - fr_heap_insert
    - MEM
    linkageType: ''
    returnType: fr_io_pending_packet_t
    signature: "fr_io_pending_packet_t *fr_io_pending_alloc(fr_io_connection_t *connection,
      fr_io_client_t *client,\n\t\t\t\t\t\t   uint8_t const *buffer, size_t packet_len,\n\t\t\t\t\t\t
      \  fr_io_track_t *track,\n\t\t\t\t\t\t   int priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:1323,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/master.c:1324,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1327
    functionName: alive_client_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t alive_client_cmp(void const *one, void const *two)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:1339,1
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:1353,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1378,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/master.c:1382,1
    - Dst: pending_packet_pop
      Src: /src/freeradius-server/src/lib/io/master.c:1385,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1392,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:1399,1
    - Dst: fr_time_neq
      Src: /src/freeradius-server/src/lib/io/master.c:1411,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:1412,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:1413,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/master.c:1426,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/master.c:1432,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:1433,1
    - Dst: accept
      Src: /src/freeradius-server/src/lib/io/master.c:1453,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1461,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/master.c:1463,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/io/master.c:1470,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/master.c:1480,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1481,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/lib/io/master.c:1488,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1489,1
    - Dst: fr_io_instance_t*::app_io::read
      Src: /src/freeradius-server/src/lib/io/master.c:1523,1
    - Dst: fr_io_instance_t*::app::priority
      Src: /src/freeradius-server/src/lib/io/master.c:1535,1
    - Dst: LOG_IGNORED_CLIENTS
      Src: /src/freeradius-server/src/lib/io/master.c:1544,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1545,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1547,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1563,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/master.c:1566,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:1577,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1579,1
    - Dst: fr_io_instance_t*::app_io::client_find
      Src: /src/freeradius-server/src/lib/io/master.c:1589,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/master.c:1610,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1628,1
    - Dst: fr_io_instance_t*::app_io::client_find
      Src: /src/freeradius-server/src/lib/io/master.c:1630,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1637,1
    - Dst: radclient_clone
      Src: /src/freeradius-server/src/lib/io/master.c:1637,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:1641,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:1649,1
    - Dst: radclient_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1668,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/master.c:1681,1
    - Dst: LOG_IGNORED_CLIENTS
      Src: /src/freeradius-server/src/lib/io/master.c:1684,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1686,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1688,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:1695,1
    - Dst: client_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1695,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/io/master.c:1701,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1705,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1706,1
    - Dst: fr_io_connection_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1713,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1717,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/master.c:1725,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:1726,1
    - Dst: fr_io_track_add
      Src: /src/freeradius-server/src/lib/io/master.c:1751,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1753,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1766,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1771,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1776,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1777,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1797,1
    - Dst: fr_network_listen_write
      Src: /src/freeradius-server/src/lib/io/master.c:1798,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1828,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1830,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:1833,1
    - Dst: fr_io_pending_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1840,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1844,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1846,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:1850,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1851,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1852,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/master.c:1862,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1863,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/master.c:1871,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:1872,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/master.c:1879,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/lib/io/master.c:1880,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1895,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:1901,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:1915,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/io/master.c:1916,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:1918,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1925,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1926,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1928,1
    - Dst: fr_io_connection_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:1937,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1939,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:1945,1
    - Dst: fr_network_listen_inject
      Src: /src/freeradius-server/src/lib/io/master.c:1963,1
    - Dst: RATE_LIMIT_LOCAL
      Src: /src/freeradius-server/src/lib/io/master.c:1965,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:1967,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 254
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1974
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_LOCAL
    - fr_io_instance_t*::app_io::client_find
    - fr_ipaddr_from_sockaddr
    - memcpy
    - radclient_clone
    - fr_network_listen_write
    - fr_io_pending_alloc
    - fr_network_listen_inject
    - fr_io_connection_alloc
    - pthread_mutex_unlock
    - fr_heap_num_elements
    - close
    - fr_trie_lookup_by_key
    - MEM
    - fr_timer_armed
    - fr_io_instance_t*::app_io::read
    - pthread_mutex_lock
    - radclient_alloc
    - fr_nonblock
    - memset
    - fr_event_filter_update
    - DEBUG
    - DEBUG3
    - fr_heap_pop
    - fr_time_neq
    - INFO
    - talloc_set_destructor
    - LOG_IGNORED_CLIENTS
    - fr_hash_table_find
    - fr_syserror
    - talloc_steal
    - fr_io_track_add
    - FR_TIMER_DISARM_RETURN
    - get_inst
    - fr_assert
    - accept
    - pending_packet_pop
    - fr_io_instance_t*::app::priority
    - fr_box_ipaddr
    - TALLOC_FREE
    - fr_time_wrap
    - talloc_free
    - getsockname
    - client_alloc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,\n\t\t\tuint8_t
      *buffer, size_t buffer_len, size_t *leftover)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _inst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1352
    functionName: LOG_IGNORED_CLIENTS
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_IGNORED_CLIENTS(_inst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:1989,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/master.c:1992,1
    - Dst: fr_io_instance_t*::app::priority
      Src: /src/freeradius-server/src/lib/io/master.c:1997,1
    - Dst: fr_io_track_add
      Src: /src/freeradius-server/src/lib/io/master.c:2008,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/master.c:2011,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:2015,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2020,1
    - Dst: fr_io_pending_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:2025,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/master.c:2028,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - li
    - buffer
    - buffer_len
    - recv_time
    argTypes:
    - fr_listen_t*
    - uint8_t*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 2033
    functionName: mod_inject
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_io_pending_alloc
    - fr_io_track_add
    - talloc_get_type_abort
    - get_inst
    - fr_io_instance_t*::app::priority
    - fr_assert
    - DEBUG2
    linkageType: ''
    returnType: int
    signature: int mod_inject(fr_listen_t *li, uint8_t const *buffer, size_t buffer_len,
      fr_time_t recv_time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_io_instance_t*::app_io::open
      Src: /src/freeradius-server/src/lib/io/master.c:2046,1
    - Dst: fr_listen_t*::app_io::get_name
      Src: /src/freeradius-server/src/lib/io/master.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2065
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_io_instance_t*::app_io::open
    - fr_listen_t*::app_io::get_name
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:2081,1
    - Dst: fr_io_instance_t*::app_io::event_list_set
      Src: /src/freeradius-server/src/lib/io/master.c:2090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2104
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_io_instance_t*::app_io::event_list_set
    - get_inst
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, void
      *nr)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:2109,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2124,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/io/master.c:2130,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2130,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/master.c:2134,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2138,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/master.c:2140,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/master.c:2141,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2155,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2159,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/io/master.c:2159,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/master.c:2168,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2169,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2172,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:2179,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/io/master.c:2182,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:2184,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/lib/io/master.c:2192,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2196,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/master.c:2200,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2200,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2224,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2235,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2253,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:2259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2260,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:2261,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:2262,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2278,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2280,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/io/master.c:2307,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:2309,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 100
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2315
    functionName: client_expiry_timer
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_network_listen_read
    - pthread_mutex_unlock
    - fr_timer_in
    - fr_hash_table_num_elements
    - fr_timer_armed
    - ERROR
    - pthread_mutex_lock
    - talloc_get_type_abort
    - fr_time_delta_ispos
    - DEBUG2
    - DEBUG
    - INFO
    - fr_time_delta_lt
    - fr_assert
    - fr_box_ipaddr
    - fr_time_wrap
    - talloc_free
    - fr_time_eq
    - fr_box_time_delta
    - fr_hash_table_delete
    linkageType: ''
    returnType: void
    signature: void client_expiry_timer(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:2323,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/io/master.c:2332,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2332,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2333,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/master.c:2333,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2334,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/master.c:2336,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/master.c:2336,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/io/master.c:2343,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2346,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/master.c:2347,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2351,1
    - Dst: fr_time_neq
      Src: /src/freeradius-server/src/lib/io/master.c:2359,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2359,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/master.c:2360,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/master.c:2362,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2368,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2375,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2376,1
    - Dst: client_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2321
    functionDepth: 2
    functionLinenumber: 2321
    functionLinenumberEnd: 2385
    functionName: packet_expiry_timer
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - client_expiry_timer
    - fr_time_wrap
    - fr_time
    - talloc_free
    - fr_time_eq
    - talloc_get_type_abort
    - fr_time_add
    - fr_timer_at
    - fr_time_delta_ispos
    - fr_assert
    - DEBUG2
    - DEBUG
    - fr_time_neq
    linkageType: ''
    returnType: void
    signature: void packet_expiry_timer(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/io/master.c:2401,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/io/master.c:2402,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2404,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2405,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2406,1
    - Dst: DUP_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2407,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2409,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2410,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2411,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2412,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2414,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2416,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2417,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2418,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/io/master.c:2419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - client
    - radclient
    argTypes:
    - fr_io_client_t*
    - fr_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2387
    functionDepth: 1
    functionLinenumber: 2387
    functionLinenumberEnd: 2420
    functionName: update_client
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - COPY_FIELD
    - DUP_FIELD
    linkageType: ''
    returnType: void
    signature: void update_client(fr_io_client_t *client, fr_client_t *radclient)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dest
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2394
    functionDepth: 0
    functionLinenumber: 2394
    functionLinenumberEnd: 2395
    functionName: COPY_FIELD
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FIELD(_dest, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dest
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2395
    functionDepth: 0
    functionLinenumber: 2395
    functionLinenumberEnd: 2396
    functionName: DUP_FIELD
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUP_FIELD(_dest, _x)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:2428,1
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:2435,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:2446,1
    - Dst: fr_time_neq
      Src: /src/freeradius-server/src/lib/io/master.c:2460,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2461,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:2463,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:2475,1
    - Dst: fr_io_instance_t*::app_io::write
      Src: /src/freeradius-server/src/lib/io/master.c:2484,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:2487,1
    - Dst: packet_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2489,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2489,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:2499,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:2508,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/master.c:2519,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:2520,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/io/master.c:2520,1
    - Dst: packet_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2530,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2530,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2540,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2541,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2548,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2551,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:2560,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:2561,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:2567,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/io/master.c:2570,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:2572,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/lib/io/master.c:2582,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/master.c:2593,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2594,1
    - Dst: client_pending_free
      Src: /src/freeradius-server/src/lib/io/master.c:2598,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:2600,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:2602,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2603,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:2619,1
    - Dst: fr_io_connection_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:2619,1
    - Dst: client_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2620,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2620,1
    - Dst: client_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2631,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2631,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2635,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/master.c:2637,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2648,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2649,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2649,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2658,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2659,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2659,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/io/master.c:2664,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/io/master.c:2665,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2666,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2667,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2667,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/master.c:2684,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2687,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2692,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2693,1
    - Dst: update_client
      Src: /src/freeradius-server/src/lib/io/master.c:2698,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2702,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/io/master.c:2706,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2714,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2715,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2716,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/master.c:2734,1
    - Dst: update_client
      Src: /src/freeradius-server/src/lib/io/master.c:2751,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/io/master.c:2757,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2759,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/master.c:2768,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2769,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/io/master.c:2776,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2779,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2780,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2786,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2802,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/io/master.c:2810,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:2811,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:2811,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/master.c:2820,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:2821,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:2822,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:2832,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:2832,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:2836,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/master.c:2836,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/master.c:2837,1
    - Dst: client_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2845,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2845,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:2853,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/lib/io/master.c:2855,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/lib/io/master.c:2857,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 189
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - fr_time_t
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2422
    functionDepth: 3
    functionLinenumber: 2422
    functionLinenumberEnd: 2862
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 3
    functionsReached:
    - fr_network_listen_read
    - memcpy
    - fr_ipaddr_cmp
    - fr_io_connection_alloc
    - fr_hash_table_alloc
    - pthread_mutex_unlock
    - fr_heap_num_elements
    - client_pending_free
    - MEM
    - fr_heap_alloc
    - pthread_mutex_init
    - fr_io_instance_t*::app_io::write
    - ERROR
    - fr_ipaddr_mask
    - pthread_mutex_lock
    - talloc_get_type_abort
    - cf_section_name2
    - packet_expiry_timer
    - fr_event_filter_update
    - DEBUG
    - DEBUG3
    - fr_time_neq
    - INFO
    - talloc_memdup
    - talloc_steal
    - update_client
    - get_inst
    - fr_assert
    - fr_heap_insert
    - client_expiry_timer
    - fr_box_ipaddr
    - TALLOC_FREE
    - fr_time_wrap
    - talloc_free
    - fr_heap_entry_inserted
    - fr_hash_table_delete
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, fr_time_t request_time,\n\t\t\t
      uint8_t *buffer, size_t buffer_len, size_t written)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:2873,1
    - Dst: fr_io_instance_t*::app_io::close
      Src: /src/freeradius-server/src/lib/io/master.c:2878,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/master.c:2881,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/master.c:2891,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/master.c:2893,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/io/master.c:2899,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/io/master.c:2902,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/io/master.c:2910,1
    - Dst: client_expiry_timer
      Src: /src/freeradius-server/src/lib/io/master.c:2911,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2911,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/io/master.c:2913,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:2915,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2918
      start: 2867
    functionDepth: 2
    functionLinenumber: 2867
    functionLinenumberEnd: 2918
    functionName: mod_close
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_io_instance_t*::app_io::close
    - TALLOC_FREE
    - fr_time_wrap
    - talloc_free
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - get_inst
    - fr_hash_table_num_elements
    - close
    - client_expiry_timer
    - fr_hash_table_delete
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int mod_close(fr_listen_t *li)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/master.c:2937,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/io/master.c:2940,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/io/master.c:2940,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:2943,1
    - Dst: fr_io_instance_t*::app_io::network_get
      Src: /src/freeradius-server/src/lib/io/master.c:2953,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:2957,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/io/master.c:2965,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/io/master.c:2965,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/master.c:2967,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:2968,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/master.c:2972,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/io/master.c:2973,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/master.c:2976,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/io/master.c:2977,1
    - Dst: module_list_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:2988,1
    - Dst: module_list_mask_set
      Src: /src/freeradius-server/src/lib/io/master.c:2989,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2920
    functionDepth: 1
    functionLinenumber: 2920
    functionLinenumberEnd: 2992
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - cf_parent
    - fr_io_instance_t*::app_io::network_get
    - cf_section_find
    - module_list_mask_set
    - cf_log_warn
    - FR_TIME_DELTA_BOUND_CHECK
    - module_list_alloc
    - cf_log_err
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:3002,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:3004,1
    - Dst: fr_listen_t*::app_io::get_name
      Src: /src/freeradius-server/src/lib/io/master.c:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2995
    functionDepth: 1
    functionLinenumber: 2995
    functionLinenumberEnd: 3006
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - get_inst
    - fr_listen_t*::app_io::get_name
    - fr_assert
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3023,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:3023,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/io/master.c:3025,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:3026,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3035,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3036,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3037,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3044,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3047,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3048,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3049,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3064,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3067,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3067,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/master.c:3068,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3069,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3078,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3081,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3081,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3082,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/io/master.c:3090,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3104,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3105,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3106,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3113,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3116,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3116,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3117,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3124,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3127,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3128,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3129,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3139,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3140,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3141,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3150,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/master.c:3153,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/master.c:3153,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3154,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 4
    argNames:
    - ctx
    - af
    - allow
    - deny
    argTypes:
    - TALLOC_CTX*
    - int
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3018
    functionDepth: 1
    functionLinenumber: 3018
    functionLinenumberEnd: 3165
    functionName: fr_master_io_network
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_trie_match_by_key
    - fr_trie_insert_by_key
    - talloc_free
    - fr_strerror_printf
    - fr_assert
    - talloc_array_length
    - fr_trie_lookup_by_key
    - fr_strerror_const
    - MEM
    - fr_trie_alloc
    - fr_box_ipaddr
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *fr_master_io_network(TALLOC_CTX *ctx, int af, fr_ipaddr_t
      *allow, fr_ipaddr_t *deny)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3168
    functionDepth: 0
    functionLinenumber: 3168
    functionLinenumberEnd: 3174
    functionName: fr_io_listen_free
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_io_listen_free(fr_listen_t *li)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:3186,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/master.c:3191,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3200,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:3200,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:3201,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:3228,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3235,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:3235,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3238,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:3238,1
    - Dst: fr_io_instance_t*::app_io::hexdump_set
      Src: /src/freeradius-server/src/lib/io/master.c:3250,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:3262,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/master.c:3263,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/master.c:3272,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/master.c:3274,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/io/master.c:3276,1
    - Dst: fr_io_instance_t*::app_io::open
      Src: /src/freeradius-server/src/lib/io/master.c:3296,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3297,1
    - Dst: app_io::get_name
      Src: /src/freeradius-server/src/lib/io/master.c:3306,1
    - Dst: listen_find_any
      Src: /src/freeradius-server/src/lib/io/master.c:3316,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:3318,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/master.c:3319,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3321,1
    - Dst: listen_record
      Src: /src/freeradius-server/src/lib/io/master.c:3325,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/lib/io/master.c:3332,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/master.c:3333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 4
    argNames:
    - inst
    - sc
    - default_message_size
    - num_messages
    argTypes:
    - fr_io_instance_t*
    - fr_schedule_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3338
      start: 3176
    functionDepth: 1
    functionLinenumber: 3176
    functionLinenumberEnd: 3338
    functionName: fr_master_io_listen
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - fr_heap_alloc
    - talloc_set_name
    - app_io::get_name
    - talloc_set_destructor
    - fr_io_instance_t*::app_io::hexdump_set
    - memcpy
    - talloc_free
    - listen_find_any
    - listen_record
    - fr_assert
    - talloc_zero
    - fr_io_instance_t*::app_io::open
    - talloc_zero_array
    - fr_schedule_listen_add
    - fr_strerror_const
    - MEM
    - cf_log_err
    - fr_trie_alloc
    linkageType: ''
    returnType: int
    signature: "int fr_master_io_listen(fr_io_instance_t *inst, fr_schedule_t *sc,\n\t\t\tsize_t
      default_message_size, size_t num_messages)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/io/master.c:3353,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/master.c:3355,1
    - Dst: get_inst
      Src: /src/freeradius-server/src/lib/io/master.c:3357,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:3359,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/master.c:3361,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/master.c:3362,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/io/master.c:3364,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3366,1
    - Dst: client_alloc
      Src: /src/freeradius-server/src/lib/io/master.c:3366,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3369,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/io/master.c:3369,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/master.c:3370,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/master.c:3370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 6
    argNames:
    - li
    - radclient
    - src_ipaddr
    - src_port
    - dst_ipaddr
    - dst_port
    argTypes:
    - fr_listen_t*
    - fr_client_t*
    - fr_ipaddr_t*
    - int
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3343
    functionDepth: 1
    functionLinenumber: 3343
    functionLinenumberEnd: 3383
    functionName: fr_master_io_track_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/master.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - fr_assert
    - get_inst
    - client_alloc
    - talloc_zero
    - fr_trie_lookup_by_key
    - talloc_parent
    - MEM
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: fr_io_track_t
    signature: "fr_io_track_t *fr_master_io_track_alloc(fr_listen_t *li, fr_client_t
      *radclient, fr_ipaddr_t const *src_ipaddr, int src_port,\n\t\t\t\t\tfr_ipaddr_t
      const *dst_ipaddr, int dst_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/coord.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: coord_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t coord_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:141,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:142,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:143,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:147,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord.c:147,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/io/coord.c:148,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:151,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:151,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/io/coord.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - reg_ctx
    argTypes:
    - fr_coord_reg_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: fr_coord_register
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - fr_dlist_talloc_init
    - talloc
    - fr_assert
    - talloc_zero
    - fr_dlist_insert_tail
    - MEM
    linkageType: ''
    returnType: fr_coord_reg_t
    signature: fr_coord_reg_t *fr_coord_register(fr_coord_reg_ctx_t *reg_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/io/coord.c:174,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:176,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/coord.c:178,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/coord.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - coord_reg
    argTypes:
    - fr_coord_reg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: fr_coord_deregister
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - fr_dlist_num_elements
    - talloc_free
    - TALLOC_FREE
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void fr_coord_deregister(fr_coord_reg_t *coord_reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/freeradius-server/src/lib/io/coord.c:192,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:193,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/coord.c:193,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/coord.c:195,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/io/coord.c:198,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: fr_coord_thread_join
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - pthread_join
    - fr_syserror
    - fr_dlist_remove
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: void fr_coord_thread_join(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/freeradius-server/src/lib/io/coord.c:192,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:193,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/coord.c:193,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/coord.c:195,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/io/coord.c:198,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 2
    functionsReached:
    - ERROR
    - talloc_free
    - pthread_join
    - fr_syserror
    - fr_dlist_remove
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: void fr_dlist_foreach(coord_threads, fr_schedule_coord_t, sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord.c:207,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:212,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/coord.c:213,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:214,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/coord.c:216,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/coord.c:216,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/coord.c:218,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:222,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/coord.c:223,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/io/coord.c:227,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/io/coord.c:228,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/coord.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - now
    argTypes:
    - void*
    - void*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: coord_data_recv
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - fr_atomic_queue_pop
    - memcpy
    - fr_dbuff_init
    - talloc_get_type_abort
    - fr_assert
    - fr_message_done
    - DEBUG3
    - callback
    linkageType: ''
    returnType: void
    signature: void coord_data_recv(void *ctx, void const *data, size_t data_size,
      fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord.c:239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:244,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/coord.c:245,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/coord.c:247,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/coord.c:247,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/coord.c:249,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:252,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/coord.c:253,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/io/coord.c:257,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/io/coord.c:258,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/io/coord.c:259,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/io/coord.c:260,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/coord.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - now
    argTypes:
    - void*
    - void*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 263
    functionName: coord_worker_data_recv
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - fr_atomic_queue_pop
    - memcpy
    - fr_dbuff_init
    - MODULE_CTX
    - talloc_get_type_abort
    - module_thread
    - fr_assert
    - fr_message_done
    - DEBUG3
    - callback
    linkageType: ''
    returnType: void
    signature: void coord_worker_data_recv(void *ctx, void const *data, size_t data_size,
      fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord.c:269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:274,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:275,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/coord.c:277,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/coord.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - NDEBUG_UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 286
    functionName: coord_worker_attach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - DEBUG2
    - fr_assert
    - fr_control_message_send
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void coord_worker_attach(void *ctx, void const *data, NDEBUG_UNUSED
      size_t data_size, UNUSED fr_time_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord.c:292,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:297,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:298,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/coord.c:301,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/coord.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - NDEBUG_UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 311
    functionName: coord_worker_detach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - DEBUG2
    - fr_assert
    - fr_control_message_send
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void coord_worker_detach(void *ctx, void const *data, NDEBUG_UNUSED
      size_t data_size, UNUSED fr_time_t now)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:332,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:332,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:341,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/coord.c:343,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:345,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/lib/io/coord.c:348,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/coord.c:350,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:355,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/coord.c:357,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/coord.c:361,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/coord.c:363,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/coord.c:365,1
    - Dst: fr_control_open
      Src: /src/freeradius-server/src/lib/io/coord.c:375,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/coord.c:376,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:387,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/io/coord.c:387,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:388,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/io/coord.c:388,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/coord.c:390,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/lib/io/coord.c:393,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:397,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/coord.c:397,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:398,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/coord.c:398,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:400,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/coord.c:400,1
    - Dst: inst_create
      Src: /src/freeradius-server/src/lib/io/coord.c:404,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 5
    argNames:
    - ctx
    - el
    - coord_reg
    - single_thread
    - max_workers
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - fr_coord_reg_t*
    - bool
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 410
    functionName: fr_coord_create
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_array
    - fr_control_callback_add
    - fr_ring_buffer_create
    - fr_strerror_const
    - fr_control_create
    - talloc
    - inst_create
    - talloc_zero_array
    - fr_control_open
    - fr_atomic_queue_talloc
    - MEM
    - fr_message_set_create
    linkageType: ''
    returnType: fr_coord_t
    signature: "fr_coord_t *fr_coord_create(TALLOC_CTX *ctx, fr_event_list_t *el,
      fr_coord_reg_t *coord_reg,\n\t\t\t\t   bool single_thread, uint32_t max_workers)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inst_destroy
      Src: /src/freeradius-server/src/lib/io/coord.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - coord
    argTypes:
    - fr_coord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 420
    functionName: fr_coord_destroy
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - inst_destroy
    linkageType: ''
    returnType: void
    signature: void fr_coord_destroy(fr_coord_t *coord)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/coord.c:438,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/coord.c:445,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/io/coord.c:446,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord.c:446,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/coord.c:447,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/coord.c:455,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/io/coord.c:456,1
    - Dst: fr_coord_cb_inst_t*::event_cb
      Src: /src/freeradius-server/src/lib/io/coord.c:464,1
    - Dst: fr_coord_destroy
      Src: /src/freeradius-server/src/lib/io/coord.c:468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - coord
    argTypes:
    - fr_coord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 471
    functionName: fr_coordinate
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_coord_destroy
    - fr_event_service
    - fr_time
    - likely
    - fr_coord_cb_inst_t*::event_cb
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void fr_coordinate(fr_coord_t *coord)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord.c:477,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/coord.c:482,1
    - Dst: fr_thread_setup
      Src: /src/freeradius-server/src/lib/io/coord.c:484,1
    - Dst: fr_coord_create
      Src: /src/freeradius-server/src/lib/io/coord.c:486,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:488,1
    - Dst: fr_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/coord.c:495,1
    - Dst: fr_thread_start
      Src: /src/freeradius-server/src/lib/io/coord.c:500,1
    - Dst: fr_coordinate
      Src: /src/freeradius-server/src/lib/io/coord.c:502,1
    - Dst: fr_thread_detach
      Src: /src/freeradius-server/src/lib/io/coord.c:507,1
    - Dst: fr_thread_exit
      Src: /src/freeradius-server/src/lib/io/coord.c:509,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 512
    functionName: fr_coordinate_thread
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - fr_thread_start
    - fr_coordinate
    - fr_thread_detach
    - snprintf
    - talloc_get_type_abort
    - fr_thread_setup
    - fr_thread_instantiate
    - fr_coord_create
    - PERROR
    - fr_thread_exit
    linkageType: ''
    returnType: void
    signature: void *fr_coordinate_thread(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:528,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:528,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/io/coord.c:529,1
    - Dst: fr_rb_inline_talloc_init
      Src: /src/freeradius-server/src/lib/io/coord.c:530,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:535,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord.c:535,1
    - Dst: fr_thread_create
      Src: /src/freeradius-server/src/lib/io/coord.c:542,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:543,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:544,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/io/coord.c:548,1
    - Dst: fr_thread_wait_list
      Src: /src/freeradius-server/src/lib/io/coord.c:554,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:555,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:563,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/coord.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - num_workers
    - sem
    argTypes:
    - uint32_t
    - fr_sem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 568
    functionName: fr_coord_start
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - talloc_free
    - fr_dlist_init
    - talloc
    - talloc_zero
    - fr_thread_wait_list
    - fr_assert
    - fr_rb_insert
    - fr_thread_create
    - fr_dlist_insert_tail
    - MEM
    - fr_rb_inline_talloc_init
    linkageType: ''
    returnType: int
    signature: int fr_coord_start(uint32_t num_workers, fr_sem_t *sem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord.c:535,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord.c:535,1
    - Dst: fr_thread_create
      Src: /src/freeradius-server/src/lib/io/coord.c:542,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:543,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:544,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/io/coord.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 549
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 2
    functionsReached:
    - talloc_free
    - talloc_zero
    - fr_thread_create
    - fr_dlist_insert_tail
    - MEM
    - PERROR
    linkageType: ''
    returnType: void
    signature: void fr_dlist_foreach(coord_regs, fr_coord_reg_t, coord_reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:563,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/coord.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - fr_rb_insert
    linkageType: ''
    returnType: void
    signature: void fr_dlist_foreach(coord_threads, fr_schedule_coord_t, sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/io/coord.c:577,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:579,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:581,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:582,1
    - Dst: fr_coord_destroy
      Src: /src/freeradius-server/src/lib/io/coord.c:583,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: fr_coords_destroy
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - fr_coord_destroy
    - fr_rb_iter_delete_inorder
    - fr_rb_iter_next_inorder
    - fr_rb_num_elements
    - talloc_free
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: void
    signature: void fr_coords_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_inline_talloc_init
      Src: /src/freeradius-server/src/lib/io/coord.c:594,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/coord.c:600,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/coord.c:602,1
    - Dst: fr_coord_create
      Src: /src/freeradius-server/src/lib/io/coord.c:604,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:606,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/coord.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - el
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 614
    functionName: fr_coords_create
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - INFO
    - snprintf
    - fr_rb_insert
    - fr_coord_create
    - PERROR
    - fr_rb_inline_talloc_init
    linkageType: ''
    returnType: int
    signature: int fr_coords_create(TALLOC_CTX *ctx, fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/coord.c:600,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/coord.c:602,1
    - Dst: fr_coord_create
      Src: /src/freeradius-server/src/lib/io/coord.c:604,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/coord.c:606,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/coord.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 611
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 2
    functionsReached:
    - INFO
    - snprintf
    - fr_rb_insert
    - fr_coord_create
    - PERROR
    linkageType: ''
    returnType: void
    signature: void fr_dlist_foreach(coord_regs, fr_coord_reg_t, coord_reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:625,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/lib/io/coord.c:626,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/coord.c:629,1
    - Dst: fr_control_wait
      Src: /src/freeradius-server/src/lib/io/coord.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cw
    - exiting
    argTypes:
    - fr_coord_worker_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 636
    functionName: fr_coord_detach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - fr_schedule_worker_id
    - fr_control_message_send
    - fr_control_wait
    - talloc
    linkageType: ''
    returnType: int
    signature: int fr_coord_detach(fr_coord_worker_t *cw, bool exiting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:646,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:647,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/lib/io/coord.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - UNUSED*
    - NDEBUG_UNUSED*
    - NDEBUG_UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 649
    functionName: coordinate_worker_ack
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_schedule_worker_id
    linkageType: ''
    returnType: void
    signature: "void coordinate_worker_ack(UNUSED void *ctx, NDEBUG_UNUSED void const
      *data, NDEBUG_UNUSED size_t data_size,\n\t\t\t\t  UNUSED fr_time_t now)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord.c:668,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/coord.c:673,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord.c:676,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:680,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/coord.c:681,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/lib/io/coord.c:682,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/coord.c:683,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/lib/io/coord.c:684,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/coord.c:693,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/coord.c:695,1
    - Dst: fr_control_open
      Src: /src/freeradius-server/src/lib/io/coord.c:698,1
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/lib/io/coord.c:702,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/coord.c:704,1
    - Dst: fr_control_wait
      Src: /src/freeradius-server/src/lib/io/coord.c:708,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - el
    - coord_reg
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - fr_coord_reg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 711
    functionName: fr_coord_attach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - fr_control_callback_add
    - fr_ring_buffer_create
    - fr_schedule_worker_id
    - fr_control_create
    - fr_rb_find
    - talloc_zero
    - fr_control_open
    - fr_control_wait
    - fr_atomic_queue_talloc
    - fr_control_message_send
    - fr_message_set_create
    linkageType: ''
    returnType: fr_coord_worker_t
    signature: fr_coord_worker_t *fr_coord_attach(TALLOC_CTX *ctx, fr_event_list_t
      *el, fr_coord_reg_t *coord_reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord.c:729,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/coord.c:735,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/io/coord.c:736,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/coord.c:739,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/io/coord.c:739,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/io/coord.c:739,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/coord.c:741,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/coord.c:742,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/coord.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - coord
    - worker_id
    - cb_id
    - dbuff
    argTypes:
    - fr_coord_t*
    - int32_t
    - uint32_t
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 748
    functionName: fr_coord_to_worker_send
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_buff
    - memcpy
    - fr_atomic_queue_push
    - fr_dbuff_used
    - fr_assert
    - fr_message_and_data_commit
    - fr_message_done
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_coord_to_worker_send(fr_coord_t *coord, int32_t worker_id, uint32_t
      cb_id, fr_dbuff_t *dbuff)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_coord_to_worker_send
      Src: /src/freeradius-server/src/lib/io/coord.c:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - coord
    - cb_id
    - dbuff
    argTypes:
    - fr_coord_t*
    - uint32_t
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 770
    functionName: fr_coord_to_worker_broadcast
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - fr_coord_to_worker_send
    linkageType: ''
    returnType: int
    signature: int fr_coord_to_worker_broadcast(fr_coord_t *coord, uint32_t cb_id,
      fr_dbuff_t *dbuff)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_schedule_worker_id
      Src: /src/freeradius-server/src/lib/io/coord.c:787,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/coord.c:790,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/io/coord.c:790,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/coord.c:793,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/io/coord.c:793,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/io/coord.c:793,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/coord.c:795,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/coord.c:796,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/coord.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cw
    - cb_id
    - dbuff
    argTypes:
    - fr_coord_worker_t*
    - uint32_t
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 802
    functionName: fr_worker_to_coord_send
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_buff
    - memcpy
    - fr_atomic_queue_push
    - fr_dbuff_used
    - fr_message_and_data_commit
    - fr_schedule_worker_id
    - fr_message_done
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_worker_to_coord_send(fr_coord_worker_t *cw, uint32_t cb_id,
      fr_dbuff_t *dbuff)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:815,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:817,1
    - Dst: fr_event_pre_insert
      Src: /src/freeradius-server/src/lib/io/coord.c:821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 827
    functionName: fr_coord_pre_event_insert
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_event_pre_insert
    - fr_rb_iter_next_inorder
    linkageType: ''
    returnType: int
    signature: int fr_coord_pre_event_insert(fr_event_list_t *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:840,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/io/coord.c:842,1
    - Dst: fr_event_post_insert
      Src: /src/freeradius-server/src/lib/io/coord.c:846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 852
    functionName: fr_coord_post_event_insert
    functionSourceFile: /src/freeradius-server/src/lib/io/coord.c
    functionUses: 1
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_rb_iter_next_inorder
    - fr_event_post_insert
    linkageType: ''
    returnType: int
    signature: int fr_coord_post_event_insert(fr_event_list_t *el)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - slen
    - start
    - p
    argTypes:
    - ssize_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: fr_pair_decode_slen
    functionSourceFile: /src/freeradius-server/src/lib/io/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_decode_slen(ssize_t slen, uint8_t const *start, uint8_t
      const *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - slen
    argTypes:
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: fr_pair_encode_is_error
    functionSourceFile: /src/freeradius-server/src/lib/io/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_encode_is_error(ssize_t slen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _p
    - ','
    - _end
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: FR_PAIR_ENCODE_HAVE_SPACE
    functionSourceFile: /src/freeradius-server/src/lib/io/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_PAIR_ENCODE_HAVE_SPACE(_p, _end, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: fr_schedule_worker_id
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_schedule_worker_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: fr_schedule_worker_id_set
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_schedule_worker_id_set(int id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/schedule.c:131,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/schedule.c:138,1
    - Dst: pthread_setname_np
      Src: /src/freeradius-server/src/lib/io/schedule.c:142,1
    - Dst: pthread_setname_np
      Src: /src/freeradius-server/src/lib/io/schedule.c:144,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/schedule.c:144,1
    - Dst: fr_thread_setup
      Src: /src/freeradius-server/src/lib/io/schedule.c:148,1
    - Dst: fr_worker_alloc
      Src: /src/freeradius-server/src/lib/io/schedule.c:150,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:152,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/schedule.c:163,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/schedule.c:165,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/schedule.c:166,1
    - Dst: fr_schedule_t*::worker_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/schedule.c:168,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:169,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/io/schedule.c:177,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/schedule.c:178,1
    - Dst: fr_network_worker_add
      Src: /src/freeradius-server/src/lib/io/schedule.c:178,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:179,1
    - Dst: fr_thread_start
      Src: /src/freeradius-server/src/lib/io/schedule.c:187,1
    - Dst: fr_worker
      Src: /src/freeradius-server/src/lib/io/schedule.c:192,1
    - Dst: fr_worker_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:198,1
    - Dst: fr_schedule_t*::worker_thread_detach
      Src: /src/freeradius-server/src/lib/io/schedule.c:202,1
    - Dst: fr_thread_exit
      Src: /src/freeradius-server/src/lib/io/schedule.c:204,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 207
    functionName: fr_schedule_worker_thread
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 0
    functionsReached:
    - fr_thread_start
    - fr_dlist_foreach
    - pthread_setname_np
    - fr_worker_alloc
    - pthread_self
    - cf_section_find
    - unlikely
    - fr_network_worker_add
    - fr_worker
    - fr_worker_destroy
    - snprintf
    - talloc_get_type_abort
    - fr_schedule_t*::worker_thread_detach
    - fr_thread_setup
    - fr_schedule_t*::worker_thread_instantiate
    - PERROR
    - fr_thread_exit
    linkageType: ''
    returnType: void
    signature: void *fr_schedule_worker_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/schedule.c:212,1
    - Dst: fr_network_stats_log
      Src: /src/freeradius-server/src/lib/io/schedule.c:214,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/io/schedule.c:216,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/schedule.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: stats_timer
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 0
    functionsReached:
    - fr_network_stats_log
    - fr_time_add
    - fr_timer_at
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void stats_timer(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/schedule.c:226,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/schedule.c:231,1
    - Dst: pthread_setname_np
      Src: /src/freeradius-server/src/lib/io/schedule.c:235,1
    - Dst: pthread_setname_np
      Src: /src/freeradius-server/src/lib/io/schedule.c:237,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/schedule.c:237,1
    - Dst: fr_thread_setup
      Src: /src/freeradius-server/src/lib/io/schedule.c:241,1
    - Dst: fr_network_create
      Src: /src/freeradius-server/src/lib/io/schedule.c:243,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:245,1
    - Dst: fr_thread_start
      Src: /src/freeradius-server/src/lib/io/schedule.c:252,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/schedule.c:257,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/io/schedule.c:258,1
    - Dst: fr_network
      Src: /src/freeradius-server/src/lib/io/schedule.c:266,1
    - Dst: fr_thread_exit
      Src: /src/freeradius-server/src/lib/io/schedule.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 274
    functionName: fr_schedule_network_thread
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 0
    functionsReached:
    - fr_thread_start
    - pthread_setname_np
    - pthread_self
    - snprintf
    - talloc_get_type_abort
    - fr_network
    - fr_thread_setup
    - fr_network_create
    - fr_time_delta_ispos
    - fr_timer_in
    - PERROR
    - fr_thread_exit
    linkageType: ''
    returnType: void
    signature: void *fr_schedule_network_thread(void *arg)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/schedule.c:304,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/schedule.c:306,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/schedule.c:314,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/schedule.c:314,1
    - Dst: fr_network_create
      Src: /src/freeradius-server/src/lib/io/schedule.c:340,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:342,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:344,1
    - Dst: fr_coords_create
      Src: /src/freeradius-server/src/lib/io/schedule.c:348,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:349,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/schedule.c:350,1
    - Dst: fr_network_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:350,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:351,1
    - Dst: fr_worker_alloc
      Src: /src/freeradius-server/src/lib/io/schedule.c:357,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:359,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/schedule.c:360,1
    - Dst: fr_network_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:360,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:361,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/schedule.c:372,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/schedule.c:373,1
    - Dst: fr_schedule_t*::worker_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/schedule.c:375,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:376,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/schedule.c:378,1
    - Dst: fr_network_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:378,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:379,1
    - Dst: fr_worker_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:381,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/io/schedule.c:386,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:387,1
    - Dst: fr_schedule_t*::worker_thread_detach
      Src: /src/freeradius-server/src/lib/io/schedule.c:389,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/io/schedule.c:393,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:394,1
    - Dst: fr_network_worker_add_self
      Src: /src/freeradius-server/src/lib/io/schedule.c:402,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/schedule.c:403,1
    - Dst: fr_event_pre_insert
      Src: /src/freeradius-server/src/lib/io/schedule.c:405,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/schedule.c:406,1
    - Dst: fr_coord_pre_event_insert
      Src: /src/freeradius-server/src/lib/io/schedule.c:410,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/schedule.c:411,1
    - Dst: fr_event_post_insert
      Src: /src/freeradius-server/src/lib/io/schedule.c:418,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/schedule.c:419,1
    - Dst: fr_coord_post_event_insert
      Src: /src/freeradius-server/src/lib/io/schedule.c:423,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/schedule.c:424,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/io/schedule.c:434,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/io/schedule.c:435,1
    - Dst: fr_sem_alloc
      Src: /src/freeradius-server/src/lib/io/schedule.c:437,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:440,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/schedule.c:440,1
    - Dst: fr_sem_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:441,1
    - Dst: fr_sem_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:442,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:443,1
    - Dst: fr_sem_alloc
      Src: /src/freeradius-server/src/lib/io/schedule.c:447,1
    - Dst: fr_sem_alloc
      Src: /src/freeradius-server/src/lib/io/schedule.c:450,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/schedule.c:457,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/schedule.c:462,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:464,1
    - Dst: fr_thread_create
      Src: /src/freeradius-server/src/lib/io/schedule.c:472,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:473,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:474,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:478,1
    - Dst: fr_thread_wait_list
      Src: /src/freeradius-server/src/lib/io/schedule.c:486,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:487,1
    - Dst: fr_coord_start
      Src: /src/freeradius-server/src/lib/io/schedule.c:494,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:495,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/schedule.c:503,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/schedule.c:508,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:510,1
    - Dst: fr_thread_create
      Src: /src/freeradius-server/src/lib/io/schedule.c:518,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:519,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:520,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:524,1
    - Dst: fr_thread_wait_list
      Src: /src/freeradius-server/src/lib/io/schedule.c:532,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:533,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:537,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/io/schedule.c:542,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/schedule.c:544,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/io/schedule.c:545,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:546,1
    - Dst: fr_schedule_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:548,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:553,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/io/schedule.c:558,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/schedule.c:560,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/io/schedule.c:561,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:562,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/schedule.c:567,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/schedule.c:568,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/schedule.c:577,1
    - Dst: fr_schedule_t*::worker_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/schedule.c:577,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:578,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 205
    argCount: 8
    argNames:
    - ctx
    - single_threaded
    - el
    - logger
    - lvl
    - worker_thread_instantiate
    - worker_thread_detach
    - config
    argTypes:
    - TALLOC_CTX*
    - bool
    - fr_event_list_t*
    - fr_log_t*
    - fr_log_lvl_t
    - fr_schedule_thread_instantiate_t
    - fr_schedule_thread_detach_t
    - fr_schedule_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 583
    functionName: fr_schedule_create
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 3
    functionsReached:
    - fr_schedule_destroy
    - cf_section_find
    - fr_schedule_t*::worker_thread_detach
    - fr_command_register_hook
    - fr_network_worker_add_self
    - MEM
    - fr_thread_create
    - fr_dlist_head
    - unlikely
    - ERROR
    - fr_dlist_num_elements
    - fr_schedule_t*::worker_thread_instantiate
    - fr_thread_wait_list
    - fr_sem_free
    - fr_coord_start
    - fr_strerror_const
    - DEBUG
    - fr_network_destroy
    - DEBUG3
    - fr_dlist_insert_head
    - fr_sem_alloc
    - INFO
    - fr_event_pre_insert
    - fr_syserror
    - fr_dlist_init
    - fr_network_create
    - fr_coord_post_event_insert
    - fr_coords_create
    - PERROR
    - fr_worker_alloc
    - talloc_free
    - fr_coord_pre_event_insert
    - fr_dlist_next
    - fr_worker_destroy
    - snprintf
    - talloc_zero
    - fr_event_post_insert
    linkageType: ''
    returnType: fr_schedule_t
    signature: "fr_schedule_t *fr_schedule_create(TALLOC_CTX *ctx,\n\t\t\t\t  bool
      single_threaded,\n\t\t\t\t  fr_event_list_t *el,\n\t\t\t\t  fr_log_t *logger,
      fr_log_lvl_t lvl,\n\t\t\t\t  fr_schedule_thread_instantiate_t worker_thread_instantiate,\n\t\t\t\t
      \ fr_schedule_thread_detach_t worker_thread_detach,\n\t\t\t\t  fr_schedule_config_t
      *config)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/schedule.c:618,1
    - Dst: fr_network_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:618,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:619,1
    - Dst: fr_worker_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:621,1
    - Dst: fr_coords_destroy
      Src: /src/freeradius-server/src/lib/io/schedule.c:622,1
    - Dst: fr_schedule_t*::worker_thread_detach
      Src: /src/freeradius-server/src/lib/io/schedule.c:632,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/io/schedule.c:638,1
    - Dst: fr_network_exit
      Src: /src/freeradius-server/src/lib/io/schedule.c:639,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:640,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/schedule.c:651,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/schedule.c:652,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/schedule.c:653,1
    - Dst: SEM_WAIT_INTR
      Src: /src/freeradius-server/src/lib/io/schedule.c:654,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/schedule.c:656,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:658,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/lib/io/schedule.c:667,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:668,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/schedule.c:668,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/schedule.c:670,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/schedule.c:679,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/schedule.c:680,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/schedule.c:681,1
    - Dst: SEM_WAIT_INTR
      Src: /src/freeradius-server/src/lib/io/schedule.c:682,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/schedule.c:684,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:689,1
    - Dst: pthread_join
      Src: /src/freeradius-server/src/lib/io/schedule.c:698,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/schedule.c:699,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/schedule.c:699,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/schedule.c:701,1
    - Dst: fr_coord_thread_join
      Src: /src/freeradius-server/src/lib/io/schedule.c:705,1
    - Dst: fr_sem_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:707,1
    - Dst: fr_sem_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:708,1
    - Dst: fr_sem_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:709,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/schedule.c:716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 1
    argNames:
    - sc_to_free
    argTypes:
    - fr_schedule_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 720
    functionName: fr_schedule_destroy
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 4
    functionsReached:
    - PERROR
    - unlikely
    - ERROR
    - fr_dlist_foreach
    - fr_coord_thread_join
    - talloc_free
    - fr_dlist_pop_head
    - fr_dlist_num_elements
    - pthread_join
    - fr_worker_destroy
    - fr_network_exit
    - fr_syserror
    - fr_schedule_t*::worker_thread_detach
    - SEM_WAIT_INTR
    - fr_sem_free
    - DEBUG2
    - fr_network_destroy
    - fr_coords_destroy
    linkageType: ''
    returnType: int
    signature: int fr_schedule_destroy(fr_schedule_t **sc_to_free)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/schedule.c:734,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:745,1
    - Dst: fr_network_listen_add
      Src: /src/freeradius-server/src/lib/io/schedule.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sc
    - li
    argTypes:
    - fr_schedule_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 752
    functionName: fr_schedule_listen_add
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 3
    functionsReached:
    - fr_dlist_head
    - fr_network_listen_add
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_network_t
    signature: fr_network_t *fr_schedule_listen_add(fr_schedule_t *sc, fr_listen_t
      *li)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/schedule.c:766,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/io/schedule.c:777,1
    - Dst: fr_network_directory_add
      Src: /src/freeradius-server/src/lib/io/schedule.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sc
    - li
    argTypes:
    - fr_schedule_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 784
    functionName: fr_schedule_directory_add
    functionSourceFile: /src/freeradius-server/src/lib/io/schedule.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_network_directory_add
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_network_t
    signature: fr_network_t *fr_schedule_directory_add(fr_schedule_t *sc, fr_listen_t
      *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _rtt
    - ','
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: DIFF
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIFF(_rtt, _t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _rtt
    - ','
    - _rttvar
    - ','
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: RTTVAR
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTTVAR(_rtt, _rttvar, _t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _old
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: RTT
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTT(_old, _new)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/load.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - el
    - config
    - callback
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - fr_load_config_t*
    - fr_load_callback_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: fr_load_generator_create
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: fr_load_t
    signature: "fr_load_t *fr_load_generator_create(TALLOC_CTX *ctx, fr_event_list_t
      *el, fr_load_config_t *config,\n\t\t\t\t    fr_load_callback_t callback, void
      *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_load_t*::callback
      Src: /src/freeradius-server/src/lib/io/load.c:125,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:125,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/io/load.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - l
    - now
    - count
    argTypes:
    - fr_load_t*
    - fr_time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: fr_load_generator_send
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_from_nsec
    - fr_load_t*::callback
    - fr_time_add
    linkageType: ''
    returnType: void
    signature: void fr_load_generator_send(fr_load_t *l, fr_time_t now, int count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/io/load.c:145,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:147,1
    - Dst: fr_time_delta_div
      Src: /src/freeradius-server/src/lib/io/load.c:152,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/io/load.c:152,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:152,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:208,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/io/load.c:209,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/io/load.c:210,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:210,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:212,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/load.c:215,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/io/load.c:220,1
    - Dst: fr_load_generator_send
      Src: /src/freeradius-server/src/lib/io/load.c:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 226
    functionName: load_timer
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_div
    - fr_time_add
    - fr_time_gteq
    - fr_load_generator_send
    - fr_timer_in
    - fr_time_sub
    - fr_time_lt
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void load_timer(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/load.c:236,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:238,1
    - Dst: fr_time_delta_div
      Src: /src/freeradius-server/src/lib/io/load.c:252,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/io/load.c:252,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:252,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/load.c:253,1
    - Dst: load_timer
      Src: /src/freeradius-server/src/lib/io/load.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - l
    argTypes:
    - fr_load_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 257
    functionName: fr_load_generator_start
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_div
    - fr_time
    - load_timer
    - fr_time_add
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int fr_load_generator_start(fr_load_t *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/load.c:266,1
    - Dst: FR_TIMER_DELETE_RETURN
      Src: /src/freeradius-server/src/lib/io/load.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - fr_load_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: fr_load_generator_stop
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DELETE_RETURN
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: int fr_load_generator_stop(fr_load_t *l)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/load.c:286,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/load.c:287,1
    - Dst: RTTVAR
      Src: /src/freeradius-server/src/lib/io/load.c:289,1
    - Dst: RTT
      Src: /src/freeradius-server/src/lib/io/load.c:290,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:297,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:297,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:299,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:299,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:301,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:301,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:303,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:303,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:305,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:305,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:307,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:307,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/load.c:309,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/load.c:309,1
    - Dst: fr_load_generator_send
      Src: /src/freeradius-server/src/lib/io/load.c:329,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - l
    - request_time
    argTypes:
    - fr_load_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 349
    functionName: fr_load_generator_have_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time
    - fr_time_delta_lt
    - fr_time_sub
    - RTTVAR
    - RTT
    - fr_load_generator_send
    linkageType: ''
    returnType: fr_load_reply_t
    signature: fr_load_reply_t fr_load_generator_have_reply(fr_load_t *l, fr_time_t
      request_time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/load.c:360,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/load.c:364,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/load.c:364,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/load.c:366,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/load.c:366,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/io/load.c:374,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/load.c:376,1
    - Dst: fr_time_delta_div
      Src: /src/freeradius-server/src/lib/io/load.c:377,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/io/load.c:377,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/load.c:378,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/io/load.c:382,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/load.c:391,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/load.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - l
    - now
    - buffer
    - buflen
    argTypes:
    - fr_load_t*
    - fr_time_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 398
    functionName: fr_load_generator_stats_sprint
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_delta_div
    - fr_time_gt
    - snprintf
    - fr_time_sub
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: size_t
    signature: size_t fr_load_generator_stats_sprint(fr_load_t *l, fr_time_t now,
      char *buffer, size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - fr_load_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: fr_load_generator_stats
    functionSourceFile: /src/freeradius-server/src/lib/io/load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_load_stats_t
    signature: fr_load_stats_t * fr_load_generator_stats(fr_load_t const *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:67,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:70,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:77,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:78,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:93,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - TALLOC_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 101
    functionName: fr_ring_buffer_create
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 6
    functionsReached:
    - talloc_array
    - talloc_zero
    - fr_strerror_const
    - talloc_free
    linkageType: ''
    returnType: fr_ring_buffer_t
    signature: fr_ring_buffer_t *fr_ring_buffer_create(TALLOC_CTX *ctx, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:120,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:123,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:139,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:143,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - rb
    - size
    argTypes:
    - fr_ring_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 175
    functionName: fr_ring_buffer_reserve
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - fr_strerror_const
    - talloc_get_type_abort
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_ring_buffer_reserve(fr_ring_buffer_t *rb, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:199,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:203,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:232,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:237,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - rb
    - size
    argTypes:
    - fr_ring_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 285
    functionName: fr_ring_buffer_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - fr_strerror_const
    - talloc_get_type_abort
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_ring_buffer_alloc(fr_ring_buffer_t *rb, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:307,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:355,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:363,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - rb
    - size_to_free
    argTypes:
    - fr_ring_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 390
    functionName: fr_ring_buffer_free
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - fr_strerror_const
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_ring_buffer_free(fr_ring_buffer_t *rb, size_t size_to_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rb
    argTypes:
    - fr_ring_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: fr_ring_buffer_close
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_ring_buffer_close(fr_ring_buffer_t *rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rb
    argTypes:
    - fr_ring_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: fr_ring_buffer_size
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ring_buffer_size(fr_ring_buffer_t *rb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:440,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - rb
    argTypes:
    - fr_ring_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 452
    functionName: fr_ring_buffer_used
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 5
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ring_buffer_used(fr_ring_buffer_t *rb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rb
    - p_start
    - p_size
    argTypes:
    - fr_ring_buffer_t*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: fr_ring_buffer_start
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 3
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_ring_buffer_start(fr_ring_buffer_t *rb, uint8_t **p_start, size_t
      *p_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/ring_buffer.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rb
    argTypes:
    - FILE*
    - fr_ring_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: fr_ring_buffer_debug
    functionSourceFile: /src/freeradius-server/src/lib/io/ring_buffer.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_ring_buffer_debug(FILE *fp, fr_ring_buffer_t *rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: FR_COORD_PAIR_CALLBACK
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_COORD_PAIR_CALLBACK(_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: FR_COORD_WORKER_PAIR_CALLBACK
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_COORD_WORKER_PAIR_CALLBACK(_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _in_cb
    - ','
    - _out_cb
    - ','
    - _reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: FR_COORD_PAIR_CB_CTX_SET
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_COORD_PAIR_CB_CTX_SET(_in_cb, _out_cb, _reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/io/queue.c:64,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/io/queue.c:67,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/queue.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - TALLOC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: fr_queue_create
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - talloc_set_name_const
    - memset
    - talloc_size
    linkageType: ''
    returnType: fr_queue_t
    signature: fr_queue_t *fr_queue_create(TALLOC_CTX *ctx, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/queue.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fq
    - data
    argTypes:
    - fr_queue_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: fr_queue_push
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: bool
    signature: bool fr_queue_push(fr_queue_t *fq, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/queue.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fq
    - p_data
    argTypes:
    - fr_queue_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: fr_queue_pop
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: bool
    signature: bool fr_queue_pop(fr_queue_t *fq, void **p_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/queue.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fq
    argTypes:
    - fr_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: fr_queue_size
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_queue_size(fr_queue_t *fq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/queue.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fq
    argTypes:
    - fr_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: fr_queue_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_queue_num_elements(fr_queue_t *fq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/queue.c:163,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/io/queue.c:169,1
    - Dst: fr_queue_create
      Src: /src/freeradius-server/src/lib/io/queue.c:174,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/queue.c:188,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/queue.c:189,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/queue.c:200,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/queue.c:204,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/queue.c:206,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/queue.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - fq
    - size
    argTypes:
    - fr_queue_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 215
    functionName: fr_queue_resize
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - fr_queue_create
    - talloc_get_type_abort
    - fr_assert
    - talloc_parent
    linkageType: ''
    returnType: fr_queue_t
    signature: fr_queue_t *fr_queue_resize(fr_queue_t *fq, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/queue.c:230,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/queue.c:242,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/queue.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - fq
    - aq
    argTypes:
    - fr_queue_t*
    - fr_atomic_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 253
    functionName: fr_queue_localize_atomic
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_atomic_queue_pop
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_queue_localize_atomic(fr_queue_t *fq, fr_atomic_queue_t *aq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/queue.c:265,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/queue.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fp
    - fq
    argTypes:
    - FILE*
    - fr_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: fr_queue_debug
    functionSourceFile: /src/freeradius-server/src/lib/io/queue.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_queue_debug(FILE *fp, fr_queue_t *fq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/io/app_io.c:42,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/io/app_io.c:44,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/app_io.c:46,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/io/app_io.c:47,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/io/app_io.c:50,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/io/app_io.c:50,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/app_io.c:50,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/io/app_io.c:53,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/io/app_io.c:53,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/io/app_io.c:53,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/io/app_io.c:57,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/io/app_io.c:62,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/io/app_io.c:67,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/io/app_io.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - ctx
    - app_io
    - src_ipaddr
    - src_port
    - dst_ipaddr
    - dst_port
    - interface
    argTypes:
    - TALLOC_CTX*
    - fr_app_io_t*
    - fr_ipaddr_t*
    - int
    - fr_ipaddr_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 74
    functionName: fr_app_io_socket_name
    functionSourceFile: /src/freeradius-server/src/lib/io/app_io.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - talloc_typed_asprintf
    - fr_ipaddr_is_inaddr_any
    - FR_SBUFF_OUT
    - fr_assert
    - strlcpy
    - fr_box_ipaddr
    linkageType: ''
    returnType: char
    signature: "char *fr_app_io_socket_name(TALLOC_CTX *ctx, fr_app_io_t const *app_io,\n\t\t\t\t
      \ fr_ipaddr_t const *src_ipaddr, int src_port,\n\t\t\t\t  fr_ipaddr_t const
      *dst_ipaddr, int dst_port,\n\t\t\t\t  char const *interface)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: MPRINT
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPRINT(...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/channel.c:186,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/channel.c:189,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/channel.c:198,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/channel.c:200,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/channel.c:204,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/channel.c:206,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/channel.c:217,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/channel.c:220,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/channel.c:221,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/channel.c:225,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/channel.c:227,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/channel.c:234,1
    - Dst: atomic_store
      Src: /src/freeradius-server/src/lib/io/channel.c:239,1
    - Dst: atomic_store
      Src: /src/freeradius-server/src/lib/io/channel.c:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - requestor
    - responder
    - same
    argTypes:
    - TALLOC_CTX*
    - fr_control_t*
    - fr_control_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 247
    functionName: fr_channel_create
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - fr_time
    - atomic_store
    - fr_ring_buffer_create
    - fr_strerror_const
    - talloc_zero
    - fr_strerror_const_push
    - fr_atomic_queue_talloc
    linkageType: ''
    returnType: fr_channel_t
    signature: fr_channel_t *fr_channel_create(TALLOC_CTX *ctx, fr_control_t *requestor,
      fr_control_t *responder, bool same)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:282,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/io/channel.c:283,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/io/channel.c:284,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/channel.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ch
    - when
    - end
    - which
    argTypes:
    - fr_channel_t*
    - fr_time_t
    - fr_channel_end_t*
    - fr_channel_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 287
    functionName: fr_channel_data_ready
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - fr_control_message_send
    - MPRINT
    - fr_table_str_by_value
    linkageType: ''
    returnType: int
    signature: int fr_channel_data_ready(fr_channel_t *ch, fr_time_t when, fr_channel_end_t
      *end, fr_channel_signal_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _old
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: RTT
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTT(_old, _new)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/io/channel.c:311,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/io/channel.c:311,1
    - Dst: recv
      Src: /src/freeradius-server/src/lib/io/channel.c:317,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/channel.c:332,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/channel.c:333,1
    - Dst: fr_atomic_queue_size
      Src: /src/freeradius-server/src/lib/io/channel.c:334,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/lib/io/channel.c:335,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/channel.c:340,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/channel.c:342,1
    - Dst: RTT
      Src: /src/freeradius-server/src/lib/io/channel.c:345,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/channel.c:348,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/io/channel.c:348,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:350,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:350,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:356,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/lib/io/channel.c:371,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/lib/io/channel.c:373,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - ch
    - cd
    argTypes:
    - fr_channel_t*
    - fr_channel_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 384
    functionName: fr_channel_send_request
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 3
    functionsReached:
    - fr_cond_assert_msg
    - fr_strerror_printf
    - fr_atomic_queue_push
    - fr_time_sub
    - fr_time_delta_ispos
    - fr_time_lteq
    - fr_channel_recv_reply
    - atomic_load
    - RTT
    - fr_assert_msg
    - fr_atomic_queue_size
    - fr_time_unwrap
    - MPRINT
    - recv
    linkageType: ''
    returnType: int
    signature: int fr_channel_send_request(fr_channel_t *ch, fr_channel_data_t *cd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:412,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/channel.c:420,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/channel.c:436,1
    - Dst: RTT
      Src: /src/freeradius-server/src/lib/io/channel.c:437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:446,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:447,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:448,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:454,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/io/channel.c:454,1
    - Dst: recv
      Src: /src/freeradius-server/src/lib/io/channel.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 460
    functionName: fr_channel_recv_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 4
    functionsReached:
    - fr_atomic_queue_pop
    - fr_assert
    - fr_time_lteq
    - RTT
    - fr_time_delta_ispos
    - recv
    linkageType: ''
    returnType: bool
    signature: bool fr_channel_recv_reply(fr_channel_t *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/channel.c:482,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:484,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:485,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:491,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/io/channel.c:491,1
    - Dst: recv
      Src: /src/freeradius-server/src/lib/io/channel.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 497
    functionName: fr_channel_recv_request
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_time_lteq
    - fr_atomic_queue_pop
    - recv
    linkageType: ''
    returnType: bool
    signature: bool fr_channel_recv_request(fr_channel_t *ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/io/channel.c:516,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/io/channel.c:516,1
    - Dst: recv
      Src: /src/freeradius-server/src/lib/io/channel.c:522,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/channel.c:534,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/channel.c:535,1
    - Dst: fr_atomic_queue_size
      Src: /src/freeradius-server/src/lib/io/channel.c:536,1
    - Dst: fr_channel_recv_request
      Src: /src/freeradius-server/src/lib/io/channel.c:537,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:541,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:545,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/channel.c:548,1
    - Dst: RTT
      Src: /src/freeradius-server/src/lib/io/channel.c:549,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/channel.c:551,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/io/channel.c:551,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:553,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:553,1
    - Dst: fr_channel_recv_request
      Src: /src/freeradius-server/src/lib/io/channel.c:561,1
    - Dst: fr_channel_data_ready
      Src: /src/freeradius-server/src/lib/io/channel.c:568,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:572,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:573,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:574,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:597,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:602,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:607,1
    - Dst: fr_channel_data_ready
      Src: /src/freeradius-server/src/lib/io/channel.c:608,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - ch
    - cd
    argTypes:
    - fr_channel_t*
    - fr_channel_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 610
    functionName: fr_channel_send_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert_msg
    - fr_strerror_printf
    - fr_atomic_queue_push
    - fr_time_sub
    - fr_assert
    - fr_time_lteq
    - RTT
    - atomic_load
    - MPRINT
    - fr_assert_msg
    - fr_atomic_queue_size
    - fr_time_unwrap
    - fr_channel_recv_request
    - recv
    - fr_channel_data_ready
    linkageType: ''
    returnType: int
    signature: int fr_channel_send_reply(fr_channel_t *ch, fr_channel_data_t *cd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: fr_channel_null_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_channel_null_reply(fr_channel_t *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:664,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/channel.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 667
    functionName: fr_channel_responder_sleeping
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - fr_control_message_send
    - MPRINT
    linkageType: ''
    returnType: int
    signature: int fr_channel_responder_sleeping(fr_channel_t *ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:695,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/channel.c:696,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:715,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:724,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:730,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:744,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:745,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/channel.c:753,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/channel.c:765,1
    - Dst: fr_channel_data_ready
      Src: /src/freeradius-server/src/lib/io/channel.c:766,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 4
    argNames:
    - when
    - p_channel
    - data
    - data_size
    argTypes:
    - fr_time_t
    - fr_channel_t**
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 770
    functionName: fr_channel_service_message
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 4
    functionsReached:
    - MPRINT
    - fr_assert
    - memcpy
    - fr_channel_data_ready
    linkageType: ''
    returnType: fr_channel_event_t
    signature: fr_channel_event_t fr_channel_service_message(fr_time_t when, fr_channel_t
      **p_channel, void const *data, size_t data_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ch
    - c
    - kev
    argTypes:
    - fr_channel_t*
    - fr_control_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 797
    functionName: fr_channel_service_kevent
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 4
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_channel_service_kevent(fr_channel_t *ch, fr_control_t *c, UNUSED
      struct kevent const *kev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/io/channel.c:812,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/io/channel.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: fr_channel_active
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - atomic_load
    linkageType: ''
    returnType: bool
    signature: bool fr_channel_active(fr_channel_t *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/io/channel.c:828,1
    - Dst: atomic_store
      Src: /src/freeradius-server/src/lib/io/channel.c:831,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:833,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/channel.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 843
    functionName: fr_channel_signal_responder_close
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 2
    functionsReached:
    - atomic_store
    - talloc_get_type_abort
    - fr_control_message_send
    - atomic_load
    linkageType: ''
    returnType: int
    signature: int fr_channel_signal_responder_close(fr_channel_t *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/io/channel.c:859,1
    - Dst: atomic_store
      Src: /src/freeradius-server/src/lib/io/channel.c:862,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:864,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/channel.c:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 874
    functionName: fr_channel_responder_ack_close
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 1
    functionsReached:
    - atomic_store
    - talloc_get_type_abort
    - fr_control_message_send
    - atomic_load
    linkageType: ''
    returnType: int
    signature: int fr_channel_responder_ack_close(fr_channel_t *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ch
    - uctx
    argTypes:
    - fr_channel_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: fr_channel_responder_uctx_add
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_channel_responder_uctx_add(fr_channel_t *ch, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 898
    functionName: fr_channel_responder_uctx_get
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_channel_responder_uctx_get(fr_channel_t *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ch
    - uctx
    argTypes:
    - fr_channel_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 911
    functionName: fr_channel_requestor_uctx_add
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_channel_requestor_uctx_add(fr_channel_t *ch, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/channel.c:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 923
    functionName: fr_channel_requestor_uctx_get
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_channel_requestor_uctx_get(fr_channel_t *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ch
    - uctx
    - recv_reply
    argTypes:
    - fr_channel_t*
    - void*
    - fr_channel_recv_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 932
    functionName: fr_channel_set_recv_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_channel_set_recv_reply(fr_channel_t *ch, void *uctx, fr_channel_recv_callback_t
      recv_reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ch
    - uctx
    - recv_request
    argTypes:
    - fr_channel_t*
    - void*
    - fr_channel_recv_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 939
    functionName: fr_channel_set_recv_request
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_channel_set_recv_request(fr_channel_t *ch, void *uctx, fr_channel_recv_callback_t
      recv_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/channel.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 957
    functionName: fr_channel_signal_open
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 1
    functionsReached:
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_channel_signal_open(fr_channel_t *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:961,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:962,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:963,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:964,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:965,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:966,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:967,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:967,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:968,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:968,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:969,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:969,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:970,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:970,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:972,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:973,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:974,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:975,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:976,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:976,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:977,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:977,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:978,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:978,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/channel.c:979,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/io/channel.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - ch
    - log
    - file
    - line
    argTypes:
    - fr_channel_t*
    - fr_log_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 980
    functionName: fr_channel_stats_log
    functionSourceFile: /src/freeradius-server/src/lib/io/channel.c
    functionUses: 0
    functionsReached:
    - fr_time_unwrap
    - fr_time_delta_unwrap
    - fr_log
    linkageType: ''
    returnType: void
    signature: void fr_channel_stats_log(fr_channel_t const *ch, fr_log_t const *log,
      char const *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: MPRINT
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPRINT(...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/control.c:95,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/io/control.c:108,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/control.c:110,1
    - Dst: fr_control_message_pop
      Src: /src/freeradius-server/src/lib/io/control.c:112,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/io/control.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 119
    functionName: pipe_read
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 0
    functionsReached:
    - fr_time
    - read
    - talloc_get_type_abort
    - callback
    - fr_control_message_pop
    linkageType: ''
    returnType: void
    signature: void pipe_read(UNUSED fr_event_list_t *el, int fd, UNUSED int flags,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/control.c:129,1
    - Dst: fr_event_fd_unarmour
      Src: /src/freeradius-server/src/lib/io/control.c:132,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/io/control.c:134,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/control.c:136,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/control.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_control_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: _control_free
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 2
    functionsReached:
    - fr_event_fd_delete
    - talloc_get_type_abort
    - fr_event_fd_unarmour
    - close
    linkageType: ''
    returnType: int
    signature: int _control_free(fr_control_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_size
      Src: /src/freeradius-server/src/lib/io/control.c:156,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/io/control.c:157,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/control.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - el
    - aq
    - num_callbacks
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - fr_atomic_queue_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: fr_control_create
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 6
    functionsReached:
    - talloc_zero_size
    - talloc_set_type
    - fr_strerror_const
    linkageType: ''
    returnType: fr_control_t
    signature: fr_control_t *fr_control_create(TALLOC_CTX *ctx, fr_event_list_t *el,
      fr_atomic_queue_t *aq, size_t num_callbacks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/io/control.c:178,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/control.c:179,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/control.c:179,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/control.c:182,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/io/control.c:187,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/io/control.c:188,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/io/control.c:189,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/io/control.c:190,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/io/control.c:192,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/control.c:193,1
    - Dst: fr_event_fd_armour
      Src: /src/freeradius-server/src/lib/io/control.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_control_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 203
    functionName: fr_control_open
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 3
    functionsReached:
    - talloc_set_destructor
    - fr_cloexec
    - pipe
    - fr_event_fd_armour
    - fr_strerror_printf
    - fr_syserror
    - fr_event_fd_insert
    - fr_nonblock
    - fr_strerror_const_push
    linkageType: ''
    returnType: int
    signature: int fr_control_open(fr_control_t *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/lib/io/control.c:222,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/control.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/control.c:226,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/control.c:228,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/lib/io/control.c:242,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/control.c:248,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/control.c:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fr_control_t *c
    - rb
    argTypes:
    - UNUSED
    - fr_ring_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 254
    functionName: fr_control_gc
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 0
    functionsReached:
    - fr_ring_buffer_start
    - fr_ring_buffer_used
    - fr_ring_buffer_free
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_control_gc(UNUSED fr_control_t *c, fr_ring_buffer_t *rb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/lib/io/control.c:279,1
    - Dst: fr_control_gc
      Src: /src/freeradius-server/src/lib/io/control.c:281,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/lib/io/control.c:282,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/control.c:284,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/control.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - c
    - rb
    - id
    - data
    - data_size
    argTypes:
    - fr_control_t*
    - fr_ring_buffer_t*
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 298
    functionName: fr_control_message_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 0
    functionsReached:
    - fr_control_gc
    - fr_ring_buffer_alloc
    - fr_strerror_const_push
    - memcpy
    linkageType: ''
    returnType: fr_control_message_t
    signature: fr_control_message_t *fr_control_message_alloc(fr_control_t *c, fr_ring_buffer_t
      *rb, uint32_t id, void *data, size_t data_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/control.c:319,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/control.c:321,1
    - Dst: fr_control_message_alloc
      Src: /src/freeradius-server/src/lib/io/control.c:327,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/control.c:329,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/control.c:333,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/control.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - c
    - rb
    - id
    - data
    - data_size
    argTypes:
    - fr_control_t*
    - fr_ring_buffer_t*
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 340
    functionName: fr_control_message_push
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_atomic_queue_push
    - fr_control_message_alloc
    - fr_strerror_const_push
    - MPRINT
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_control_message_push(fr_control_t *c, fr_ring_buffer_t *rb,
      uint32_t id, void *data, size_t data_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/control.c:357,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/io/control.c:362,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/control.c:362,1
    - Dst: fr_control_message_push
      Src: /src/freeradius-server/src/lib/io/control.c:366,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/io/control.c:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - c
    - rb
    - id
    - data
    - data_size
    argTypes:
    - fr_control_t*
    - fr_ring_buffer_t*
    - uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 355
    functionDepth: 5
    functionLinenumber: 355
    functionLinenumberEnd: 387
    functionName: fr_control_message_send
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 12
    functionsReached:
    - write
    - fr_time
    - fr_control_message_push
    - talloc_get_type_abort
    - callback
    linkageType: ''
    returnType: int
    signature: int fr_control_message_send(fr_control_t *c, fr_ring_buffer_t *rb,
      uint32_t id, void *data, size_t data_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/control.c:408,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/control.c:410,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/control.c:412,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/control.c:419,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/control.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - aq
    - p_id
    - data
    - data_size
    argTypes:
    - fr_atomic_queue_t*
    - uint32_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 430
    functionName: fr_control_message_pop
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 5
    functionsReached:
    - fr_atomic_queue_pop
    - memcpy
    - fr_strerror_printf
    - fr_assert_msg
    - MPRINT
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_control_message_pop(fr_atomic_queue_t *aq, uint32_t *p_id,
      void *data, size_t data_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/control.c:445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/control.c:448,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/io/control.c:457,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/io/control.c:457,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/control.c:459,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/io/control.c:462,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/control.c:467,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/control.c:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - c
    - id
    - ctx
    - callback
    argTypes:
    - fr_control_t**
    - uint32_t
    - void*
    - fr_control_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 492
    functionName: fr_control_callback_add
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 3
    functionsReached:
    - fr_strerror_printf
    - talloc_realloc_size
    - talloc_set_type
    - talloc_get_type_abort
    - fr_strerror_const
    - memset
    - talloc_parent
    linkageType: ''
    returnType: int
    signature: int fr_control_callback_add(fr_control_t **c, uint32_t id, void *ctx,
      fr_control_callback_t callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/control.c:504,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/control.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - c
    - id
    argTypes:
    - fr_control_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 518
    functionName: fr_control_callback_delete
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_control_callback_delete(fr_control_t *c, uint32_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/io/control.c:523,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/control.c:524,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/control.c:525,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/control.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_control_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: fr_control_same_thread
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 0
    functionsReached:
    - fr_event_fd_delete
    - talloc_set_destructor
    - close
    linkageType: ''
    returnType: int
    signature: int fr_control_same_thread(fr_control_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/freeradius-server/src/lib/io/control.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_control_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 550
    functionName: fr_control_wait
    functionSourceFile: /src/freeradius-server/src/lib/io/control.c
    functionUses: 2
    functionsReached:
    - poll
    linkageType: ''
    returnType: void
    signature: void fr_control_wait(fr_control_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/freeradius-server/src/lib/io/thread.c:57,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/freeradius-server/src/lib/io/thread.c:58,1
    - Dst: pthread_create
      Src: /src/freeradius-server/src/lib/io/thread.c:60,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/thread.c:62,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/thread.c:62,1
    - Dst: pthread_attr_destroy
      Src: /src/freeradius-server/src/lib/io/thread.c:63,1
    - Dst: pthread_attr_destroy
      Src: /src/freeradius-server/src/lib/io/thread.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - thread
    - func
    - arg
    argTypes:
    - pthread_t*
    - fr_thread_entry_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: fr_thread_create
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 5
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - pthread_attr_init
    - pthread_attr_destroy
    - pthread_create
    - pthread_attr_setdetachstate
    linkageType: ''
    returnType: int
    signature: int fr_thread_create(pthread_t *thread, fr_thread_entry_t func, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/thread.c:84,1
    - Dst: SEM_WAIT_INTR
      Src: /src/freeradius-server/src/lib/io/thread.c:87,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/io/thread.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sem
    - head
    argTypes:
    - fr_sem_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: fr_thread_wait_list
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 2
    functionsReached:
    - SEM_WAIT_INTR
    - fr_dlist_num_elements
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int fr_thread_wait_list(fr_sem_t *sem, fr_dlist_head_t *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/io/thread.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 4
    functionsReached:
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void fr_dlist_foreach(head, fr_thread_t, thread)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/freeradius-server/src/lib/io/thread.c:127,1
    - Dst: pthread_sigmask
      Src: /src/freeradius-server/src/lib/io/thread.c:128,1
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/io/thread.c:132,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/thread.c:134,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/io/thread.c:138,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/thread.c:140,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/thread.c:141,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/thread.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - out
    - name
    argTypes:
    - fr_thread_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 155
    functionName: fr_thread_setup
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 3
    functionsReached:
    - ERROR
    - talloc_free
    - talloc_strdup
    - pthread_sigmask
    - fr_event_list_alloc
    - sigfillset
    - PERROR
    - talloc_init
    linkageType: ''
    returnType: int
    signature: int fr_thread_setup(fr_thread_t *out, char const *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_openssl_thread_init
      Src: /src/freeradius-server/src/lib/io/thread.c:171,1
    - Dst: modules_rlm_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/thread.c:175,1
    - Dst: virtual_servers_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/thread.c:177,1
    - Dst: xlat_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/thread.c:179,1
    - Dst: unlang_thread_instantiate
      Src: /src/freeradius-server/src/lib/io/thread.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - el
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: fr_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 3
    functionsReached:
    - modules_rlm_thread_instantiate
    - unlang_thread_instantiate
    - fr_openssl_thread_init
    - virtual_servers_thread_instantiate
    - xlat_thread_instantiate
    linkageType: ''
    returnType: int
    signature: int fr_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_thread_detach
      Src: /src/freeradius-server/src/lib/io/thread.c:192,1
    - Dst: virtual_servers_thread_detach
      Src: /src/freeradius-server/src/lib/io/thread.c:193,1
    - Dst: modules_rlm_thread_detach
      Src: /src/freeradius-server/src/lib/io/thread.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: fr_thread_detach
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 2
    functionsReached:
    - xlat_thread_detach
    - virtual_servers_thread_detach
    - modules_rlm_thread_detach
    linkageType: ''
    returnType: void
    signature: void fr_thread_detach(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/thread.c:207,1
    - Dst: sem_post
      Src: /src/freeradius-server/src/lib/io/thread.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - thread
    - sem
    argTypes:
    - fr_thread_t*
    - fr_sem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: fr_thread_start
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 3
    functionsReached:
    - INFO
    - sem_post
    linkageType: ''
    returnType: void
    signature: void fr_thread_start(fr_thread_t *thread, fr_sem_t *sem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/io/thread.c:225,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/lib/io/thread.c:234,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/thread.c:236,1
    - Dst: sem_post
      Src: /src/freeradius-server/src/lib/io/thread.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - thread
    - status
    - sem
    argTypes:
    - fr_thread_t*
    - fr_thread_status_t
    - fr_sem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: fr_thread_exit
    functionSourceFile: /src/freeradius-server/src/lib/io/thread.c
    functionUses: 3
    functionsReached:
    - INFO
    - TALLOC_FREE
    - sem_post
    - fr_event_loop_exit
    linkageType: ''
    returnType: void
    signature: void fr_thread_exit(fr_thread_t *thread, fr_thread_status_t status,
      fr_sem_t *sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MPRINT
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPRINT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: CACHE_ALIGN
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHE_ALIGN(_x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:138,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/message.c:143,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:148,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/message.c:152,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:154,1
    - Dst: CACHE_ALIGN
      Src: /src/freeradius-server/src/lib/io/message.c:158,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/message.c:161,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/message.c:163,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/message.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/message.c:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - num_messages
    - message_size
    - ring_buffer_size
    - unlimited_size
    argTypes:
    - TALLOC_CTX*
    - int
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: fr_message_set_create
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 7
    functionsReached:
    - talloc_free
    - fr_strerror_printf
    - fr_ring_buffer_create
    - talloc_zero
    - fr_strerror_const
    - CACHE_ALIGN
    linkageType: ''
    returnType: fr_message_set_t
    signature: "fr_message_set_t *fr_message_set_create(TALLOC_CTX *ctx, int num_messages,
      size_t message_size, size_t ring_buffer_size,\n\t\t\t\t\tbool unlimited_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:197,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:198,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/message.c:214,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:221,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_message_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: fr_message_done
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 10
    functionsReached:
    - fr_assert
    - fr_strerror_const
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_message_done(fr_message_t *m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:252,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:257,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/io/message.c:261,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:264,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/io/message.c:271,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/message.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - m
    - message_size
    argTypes:
    - TALLOC_CTX*
    - fr_message_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 294
    functionName: fr_message_localize
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - talloc_memdup
    - talloc_free
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *fr_message_localize(TALLOC_CTX *ctx, fr_message_t *m,
      size_t message_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_start
      Src: /src/freeradius-server/src/lib/io/message.c:318,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:321,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:322,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:324,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/lib/io/message.c:332,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/message.c:334,1
    - Dst: fr_ring_buffer_free
      Src: /src/freeradius-server/src/lib/io/message.c:338,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - ms
    - mr
    - max_to_clean
    argTypes:
    - fr_message_set_t*
    - fr_ring_buffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 345
    functionName: message_ring_gc
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - fr_ring_buffer_start
    - fr_ring_buffer_free
    - fr_assert
    - MPRINT
    - memset
    linkageType: ''
    returnType: int
    signature: int message_ring_gc(fr_message_set_t *ms, fr_ring_buffer_t *mr, int
      max_to_clean)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: message_ring_gc
      Src: /src/freeradius-server/src/lib/io/message.c:376,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:378,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:399,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:402,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:411,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:412,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/message.c:413,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:418,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:426,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:455,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:480,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:482,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:483,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:500,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:502,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:505,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:510,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:511,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/message.c:512,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:517,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:524,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:553,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:578,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:580,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:581,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/io/message.c:593,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/lib/io/message.c:596,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:597,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:602,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/lib/io/message.c:604,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:605,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:613,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:614,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 119
    argCount: 2
    argNames:
    - ms
    - max_to_clean
    argTypes:
    - fr_message_set_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 615
    functionName: message_gc
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - fr_ring_buffer_size
    - TALLOC_FREE
    - fr_ring_buffer_used
    - fr_cond_assert
    - fr_assert
    - MPRINT
    - message_ring_gc
    linkageType: ''
    returnType: void
    signature: void message_gc(fr_message_set_t *ms, int max_to_clean)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/freeradius-server/src/lib/io/message.c:648,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:650,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:654,1
    - Dst: message_gc
      Src: /src/freeradius-server/src/lib/io/message.c:660,1
    - Dst: message_ring_gc
      Src: /src/freeradius-server/src/lib/io/message.c:673,1
    - Dst: op
      Src: /src/freeradius-server/src/lib/io/message.c:674,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:676,1
    - Dst: message_ring_gc
      Src: /src/freeradius-server/src/lib/io/message.c:696,1
    - Dst: op
      Src: /src/freeradius-server/src/lib/io/message.c:697,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:700,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:701,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:711,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/message.c:719,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/lib/io/message.c:719,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/message.c:721,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:734,1
    - Dst: op
      Src: /src/freeradius-server/src/lib/io/message.c:736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 3
    argNames:
    - p_cleaned
    - ms
    - op
    argTypes:
    - bool*
    - fr_message_set_t*
    - fr_ring_buffer_op_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 737
    functionName: _message_ring_find
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - fr_ring_buffer_size
    - message_gc
    - fr_ring_buffer_create
    - fr_strerror_const
    - fr_strerror_const_push
    - MPRINT
    - op
    - message_ring_gc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *_message_ring_find(bool *p_cleaned, fr_message_set_t *ms,
      fr_ring_buffer_op_t op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _message_ring_find
      Src: /src/freeradius-server/src/lib/io/message.c:751,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/message.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ms
    - p_cleaned
    argTypes:
    - fr_message_set_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 747
    functionDepth: 5
    functionLinenumber: 747
    functionLinenumberEnd: 759
    functionName: message_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 1
    functionsReached:
    - _message_ring_find
    - memset
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *message_alloc(fr_message_set_t *ms, bool *p_cleaned)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _message_ring_find
      Src: /src/freeradius-server/src/lib/io/message.c:778,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/message.c:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ms
    - p_cleaned
    argTypes:
    - fr_message_set_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 785
    functionName: message_reserve
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - _message_ring_find
    - memset
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *message_reserve(fr_message_set_t *ms, bool *p_cleaned)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _message_ring_find
      Src: /src/freeradius-server/src/lib/io/message.c:808,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/io/message.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ms
    - m
    argTypes:
    - fr_message_set_t*
    - fr_message_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 798
    functionDepth: 5
    functionLinenumber: 798
    functionLinenumberEnd: 816
    functionName: message_finalise
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - _message_ring_find
    - fr_cond_assert_msg
    linkageType: ''
    returnType: int
    signature: int message_finalise(fr_message_set_t *ms, fr_message_t *m)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:837,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:838,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:858,1
    - Dst: message_gc
      Src: /src/freeradius-server/src/lib/io/message.c:861,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:867,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:868,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:871,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:889,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:890,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:892,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/message.c:903,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/lib/io/message.c:914,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/message.c:918,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/message.c:920,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:924,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:939,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:943,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 3
    argNames:
    - ms
    - m
    - cleaned_up
    argTypes:
    - fr_message_set_t*
    - fr_message_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 948
    functionName: message_data_reserve
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - fr_ring_buffer_size
    - message_gc
    - fr_ring_buffer_create
    - fr_assert
    - fr_strerror_const_push
    - MPRINT
    - fr_strerror_const
    - fr_ring_buffer_reserve
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *message_data_reserve(fr_message_set_t *ms, fr_message_t
      *m, bool cleaned_up)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:978,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/message.c:981,1
    - Dst: message_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:988,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/io/message.c:990,1
    - Dst: CACHE_ALIGN
      Src: /src/freeradius-server/src/lib/io/message.c:1006,1
    - Dst: message_data_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ms
    - reserve_size
    argTypes:
    - fr_message_set_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 973
    functionDepth: 6
    functionLinenumber: 973
    functionLinenumberEnd: 1010
    functionName: fr_message_and_data_reserve
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 2
    functionsReached:
    - message_data_reserve
    - message_reserve
    - fr_strerror_printf
    - talloc_get_type_abort
    - MPRINT
    - CACHE_ALIGN
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *fr_message_and_data_reserve(fr_message_set_t *ms, size_t
      reserve_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:1028,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ms
    - m
    argTypes:
    - fr_message_set_t*
    - fr_message_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1035
    functionName: fr_message_and_data_reset
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_message_and_data_reset(fr_message_set_t *ms, fr_message_t *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:1056,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1060,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1064,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1065,1
    - Dst: message_finalise
      Src: /src/freeradius-server/src/lib/io/message.c:1071,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1075,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1076,1
    - Dst: CACHE_ALIGN
      Src: /src/freeradius-server/src/lib/io/message.c:1079,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/lib/io/message.c:1081,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1082,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/message.c:1084,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1088,1
    - Dst: message_finalise
      Src: /src/freeradius-server/src/lib/io/message.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - ms
    - m
    - total_size
    argTypes:
    - fr_message_set_t*
    - fr_message_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1051
    functionDepth: 7
    functionLinenumber: 1051
    functionLinenumberEnd: 1095
    functionName: fr_message_and_data_commit
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 4
    functionsReached:
    - fr_message_and_data_reserve
    - talloc_get_type_abort
    - message_finalise
    - fr_assert
    - fr_strerror_const_push
    - fr_ring_buffer_alloc
    - CACHE_ALIGN
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *fr_message_and_data_commit(fr_message_set_t *ms, fr_message_t
      *m, size_t total_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1112,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/message.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ms
    - size
    argTypes:
    - fr_message_set_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1108
    functionDepth: 8
    functionLinenumber: 1108
    functionLinenumberEnd: 1116
    functionName: fr_message_and_data_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 3
    functionsReached:
    - fr_message_and_data_reserve
    - fr_message_and_data_commit
    linkageType: ''
    returnType: fr_message_t
    signature: fr_message_t *fr_message_and_data_alloc(fr_message_set_t *ms, size_t
      size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:1168,1
    - Dst: CACHE_ALIGN
      Src: /src/freeradius-server/src/lib/io/message.c:1171,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1175,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1176,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1177,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1178,1
    - Dst: fr_ring_buffer_alloc
      Src: /src/freeradius-server/src/lib/io/message.c:1180,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1181,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/message.c:1183,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/message.c:1187,1
    - Dst: message_finalise
      Src: /src/freeradius-server/src/lib/io/message.c:1192,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1200,1
    - Dst: message_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1205,1
    - Dst: CACHE_ALIGN
      Src: /src/freeradius-server/src/lib/io/message.c:1215,1
    - Dst: fr_ring_buffer_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1228,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/io/message.c:1237,1
    - Dst: message_data_reserve
      Src: /src/freeradius-server/src/lib/io/message.c:1250,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/io/message.c:1260,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 5
    argNames:
    - ms
    - m
    - actual_packet_size
    - leftover
    - reserve_size
    argTypes:
    - fr_message_set_t*
    - fr_message_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1159
    functionDepth: 7
    functionLinenumber: 1159
    functionLinenumberEnd: 1287
    functionName: fr_message_and_data_commit_with_leftover
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 0
    functionsReached:
    - message_data_reserve
    - message_reserve
    - memmove
    - fr_message_and_data_reserve
    - talloc_get_type_abort
    - message_finalise
    - fr_assert
    - fr_strerror_const_push
    - fr_ring_buffer_alloc
    - fr_ring_buffer_reserve
    - CACHE_ALIGN
    linkageType: ''
    returnType: fr_message_t
    signature: "fr_message_t *fr_message_and_data_commit_with_leftover(fr_message_set_t
      *ms, fr_message_t *m,\n\t\t\t\t       size_t actual_packet_size,\n\t\t\t\t       size_t
      leftover, size_t reserve_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:1299,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:1307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ms
    argTypes:
    - fr_message_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1311
    functionName: fr_message_set_messages_used
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 5
    functionsReached:
    - talloc_get_type_abort
    - fr_ring_buffer_used
    linkageType: ''
    returnType: int
    signature: int fr_message_set_messages_used(fr_message_set_t *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:1325,1
    - Dst: message_ring_gc
      Src: /src/freeradius-server/src/lib/io/message.c:1331,1
    - Dst: message_gc
      Src: /src/freeradius-server/src/lib/io/message.c:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ms
    argTypes:
    - fr_message_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1321
    functionDepth: 4
    functionLinenumber: 1321
    functionLinenumberEnd: 1338
    functionName: fr_message_set_gc
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 5
    functionsReached:
    - message_gc
    - message_ring_gc
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_message_set_gc(fr_message_set_t *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/message.c:1349,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/message.c:1351,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/message.c:1352,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/message.c:1357,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/lib/io/message.c:1358,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:1358,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/message.c:1362,1
    - Dst: fr_ring_buffer_size
      Src: /src/freeradius-server/src/lib/io/message.c:1363,1
    - Dst: fr_ring_buffer_used
      Src: /src/freeradius-server/src/lib/io/message.c:1363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fp
    - ms
    argTypes:
    - FILE*
    - fr_message_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1365
    functionName: fr_message_set_debug
    functionSourceFile: /src/freeradius-server/src/lib/io/message.c
    functionUses: 5
    functionsReached:
    - fr_ring_buffer_size
    - talloc_get_type_abort
    - fr_ring_buffer_used
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_message_set_debug(FILE *fp, fr_message_set_t *ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/network.c:157,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/io/network.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: reply_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_time_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t reply_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/network.c:168,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/io/network.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: waiting_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_time_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t waiting_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/network.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: socket_listen_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t socket_listen_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/network.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: socket_num_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t socket_num_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: _fr_network_rb_free
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_network_rb_free(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/network.c:208,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/io/network.c:210,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/io/network.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: fr_network_rb_init
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_ring_buffer_create
    - fr_atexit_thread_local
    linkageType: ''
    returnType: fr_ring_buffer_t
    signature: fr_ring_buffer_t *fr_network_rb_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/lib/io/network.c:221,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/network.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: is_network_thread
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: bool
    signature: bool is_network_thread(fr_network_t const *nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:242,1
    - Dst: fr_dict_proto_dict
      Src: /src/freeradius-server/src/lib/io/network.c:243,1
    - Dst: virtual_server_dict_by_cs
      Src: /src/freeradius-server/src/lib/io/network.c:243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:245,1
    - Dst: is_network_thread
      Src: /src/freeradius-server/src/lib/io/network.c:250,1
    - Dst: fr_network_listen_add_self
      Src: /src/freeradius-server/src/lib/io/network.c:251,1
    - Dst: fr_network_rb_init
      Src: /src/freeradius-server/src/lib/io/network.c:254,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/network.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - nr
    - li
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 258
    functionName: fr_network_listen_add
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_dict_proto_dict
    - fr_network_rb_init
    - is_network_thread
    - fr_network_listen_add_self
    - fr_assert
    - virtual_server_dict_by_cs
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_network_listen_add(fr_network_t *nr, fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:270,1
    - Dst: is_network_thread
      Src: /src/freeradius-server/src/lib/io/network.c:270,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:272,1
    - Dst: fr_network_socket_dead
      Src: /src/freeradius-server/src/lib/io/network.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - nr
    - li
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 278
    functionName: fr_network_listen_delete
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - is_network_thread
    - fr_rb_find
    - fr_assert
    - fr_network_socket_dead
    linkageType: ''
    returnType: int
    signature: int fr_network_listen_delete(fr_network_t *nr, fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_network_rb_init
      Src: /src/freeradius-server/src/lib/io/network.c:289,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/network.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - li
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 6
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: fr_network_directory_add
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_network_rb_init
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_network_directory_add(fr_network_t *nr, fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_network_rb_init
      Src: /src/freeradius-server/src/lib/io/network.c:304,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:307,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:308,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/network.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - nr
    - worker
    argTypes:
    - fr_network_t*
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 311
    functionName: fr_network_worker_add
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_network_rb_init
    - fr_control_message_send
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_network_worker_add(fr_network_t *nr, fr_worker_t *worker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_network_worker_started_callback
      Src: /src/freeradius-server/src/lib/io/network.c:322,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/io/network.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - worker
    argTypes:
    - fr_network_t*
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: fr_network_worker_add_self
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_network_worker_started_callback
    - fr_time_wrap
    linkageType: ''
    returnType: void
    signature: void fr_network_worker_add_self(fr_network_t *nr, fr_worker_t *worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:335,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/network.c:336,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:338,1
    - Dst: fr_network_read
      Src: /src/freeradius-server/src/lib/io/network.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - nr
    - li
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 345
    functionName: fr_network_listen_read
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 2
    functionsReached:
    - fr_rb_find
    - fr_network_read
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void fr_network_listen_read(fr_network_t *nr, fr_listen_t *li)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:379,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:380,1
    - Dst: fr_message_localize
      Src: /src/freeradius-server/src/lib/io/network.c:385,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/network.c:388,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - nr
    - li
    - packet
    - packet_len
    - packet_ctx
    - request_time
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    - uint8_t*
    - size_t
    - void*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 391
    functionName: fr_network_listen_write
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_heap_insert
    - fr_message_localize
    - memcpy
    - fr_message_done
    linkageType: ''
    returnType: void
    signature: "void fr_network_listen_write(fr_network_t *nr, fr_listen_t *li, uint8_t
      const *packet, size_t packet_len,\n\t\t\t     void *packet_ctx, fr_time_t request_time)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/network.c:415,1
    - Dst: is_network_thread
      Src: /src/freeradius-server/src/lib/io/network.c:422,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:425,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/network.c:427,1
    - Dst: fr_listen_t*::app_io::inject
      Src: /src/freeradius-server/src/lib/io/network.c:435,1
    - Dst: fr_network_read
      Src: /src/freeradius-server/src/lib/io/network.c:436,1
    - Dst: fr_network_rb_init
      Src: /src/freeradius-server/src/lib/io/network.c:442,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/network.c:446,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/io/network.c:446,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/network.c:450,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - nr
    - li
    - packet
    - packet_len
    - recv_time
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    - uint8_t*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 405
    functionDepth: 6
    functionLinenumber: 405
    functionLinenumberEnd: 454
    functionName: fr_network_listen_inject
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - talloc_memdup
    - fr_listen_t*::app_io::inject
    - fr_network_rb_init
    - talloc_free
    - is_network_thread
    - fr_network_read
    - fr_rb_find
    - fr_strerror_const
    - MEM
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_network_listen_inject(fr_network_t *nr, fr_listen_t *li, uint8_t
      const *packet, size_t packet_len, fr_time_t recv_time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:483,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:485,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/network.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: fr_network_suspend
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_event_filter_update
    - fr_rb_iter_next_inorder
    linkageType: ''
    returnType: void
    signature: void fr_network_suspend(fr_network_t *nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:498,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:500,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/network.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 504
    functionName: fr_network_unsuspend
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_event_filter_update
    - fr_rb_iter_next_inorder
    linkageType: ''
    returnType: void
    signature: void fr_network_unsuspend(fr_network_t *nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _old
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: RTT
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTT(_old, _new)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_channel_requestor_uctx_get
      Src: /src/freeradius-server/src/lib/io/network.c:525,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/network.c:528,1
    - Dst: RTT
      Src: /src/freeradius-server/src/lib/io/network.c:531,1
    - Dst: fr_network_unsuspend
      Src: /src/freeradius-server/src/lib/io/network.c:540,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/network.c:547,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:548,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - ch
    - cd
    argTypes:
    - void*
    - fr_channel_t*
    - fr_channel_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 551
    functionName: fr_network_recv_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_channel_requestor_uctx_get
    - fr_network_unsuspend
    - fr_time_delta_ispos
    - fr_assert
    - RTT
    - fr_heap_insert
    - fr_message_done
    linkageType: ''
    returnType: void
    signature: void fr_network_recv_reply(void *ctx, fr_channel_t *ch, fr_channel_data_t
      *cd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_channel_service_message
      Src: /src/freeradius-server/src/lib/io/network.c:569,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:570,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/io/network.c:571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:583,1
    - Dst: fr_channel_recv_reply
      Src: /src/freeradius-server/src/lib/io/network.c:584,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:588,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:592,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:597,1
    - Dst: fr_channel_requestor_uctx_get
      Src: /src/freeradius-server/src/lib/io/network.c:597,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:604,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/io/network.c:612,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - now
    argTypes:
    - void*
    - void*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 622
    functionName: fr_network_channel_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_channel_requestor_uctx_get
    - memmove
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_assert
    - fr_channel_recv_reply
    - fr_channel_service_message
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void fr_network_channel_callback(void *ctx, void const *data, size_t
      data_size, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: OUTSTANDING
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTSTANDING(_x)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:635,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/network.c:638,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/network.c:647,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/io/network.c:658,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/io/network.c:660,1
    - Dst: OUTSTANDING
      Src: /src/freeradius-server/src/lib/io/network.c:671,1
    - Dst: OUTSTANDING
      Src: /src/freeradius-server/src/lib/io/network.c:671,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/network.c:678,1
    - Dst: OUTSTANDING
      Src: /src/freeradius-server/src/lib/io/network.c:699,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/network.c:710,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/network.c:717,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:725,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:740,1
    - Dst: OUTSTANDING
      Src: /src/freeradius-server/src/lib/io/network.c:742,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/network.c:743,1
    - Dst: fr_channel_send_request
      Src: /src/freeradius-server/src/lib/io/network.c:754,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/network.c:759,1
    - Dst: fr_network_suspend
      Src: /src/freeradius-server/src/lib/io/network.c:763,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/io/network.c:777,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 2
    argNames:
    - nr
    - cd
    argTypes:
    - fr_network_t*
    - fr_channel_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 780
    functionName: fr_network_send_request
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_GLOBAL
    - fr_time_delta_add
    - fr_network_suspend
    - talloc_get_type_abort
    - fr_rand
    - fr_time_delta_lt
    - OUTSTANDING
    - fr_assert
    - fr_channel_send_request
    linkageType: ''
    returnType: int
    signature: int fr_network_send_request(fr_network_t *nr, fr_channel_data_t *cd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:804,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/network.c:805,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:807,1
    - Dst: fr_message_and_data_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:810,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:817,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/network.c:818,1
    - Dst: fr_network_send_request
      Src: /src/freeradius-server/src/lib/io/network.c:820,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:821,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 7
    argNames:
    - nr
    - parent
    - li
    - buffer
    - buflen
    - recv_time
    - packet_ctx
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    - fr_listen_t*
    - uint8_t*
    - size_t
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 798
    functionDepth: 9
    functionLinenumber: 798
    functionLinenumberEnd: 830
    functionName: fr_network_listen_send_packet
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_time
    - talloc_free
    - talloc_get_type_abort
    - fr_message_and_data_alloc
    - fr_rb_find
    - fr_network_send_request
    - talloc_get_type_abort_const
    - fr_message_done
    linkageType: ''
    returnType: int
    signature: "int fr_network_listen_send_packet(fr_network_t *nr, fr_listen_t *parent,
      fr_listen_t *li,\n\t\t\t\t  const uint8_t *buffer, size_t buflen, fr_time_t
      recv_time, void *packet_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:843,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/io/network.c:844,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - nr
    - li
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 850
    functionName: fr_network_listen_outstanding
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_network_listen_outstanding(fr_network_t *nr, fr_listen_t
      *li)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/io/network.c:867,1
    - Dst: fr_worker_listen_cancel
      Src: /src/freeradius-server/src/lib/io/network.c:872,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nr
    - s
    argTypes:
    - fr_network_t*
    - fr_network_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 890
    functionName: fr_network_socket_dead
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_worker_listen_cancel
    - fr_event_fd_delete
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_network_socket_dead(fr_network_t *nr, fr_network_socket_t *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/io/network.c:907,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:910,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/lib/io/network.c:913,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/network.c:915,1
    - Dst: fr_network_socket_dead
      Src: /src/freeradius-server/src/lib/io/network.c:917,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:924,1
    - Dst: fr_network_socket_t*::listen::app_io::read
      Src: /src/freeradius-server/src/lib/io/network.c:948,1
    - Dst: fr_message_and_data_reset
      Src: /src/freeradius-server/src/lib/io/network.c:979,1
    - Dst: fr_network_socket_dead
      Src: /src/freeradius-server/src/lib/io/network.c:990,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:995,1
    - Dst: HEXDUMP2
      Src: /src/freeradius-server/src/lib/io/network.c:996,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/network.c:1012,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/network.c:1020,1
    - Dst: fr_message_and_data_commit_with_leftover
      Src: /src/freeradius-server/src/lib/io/network.c:1028,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1031,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1033,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/network.c:1036,1
    - Dst: fr_network_socket_t*::listen::app::priority
      Src: /src/freeradius-server/src/lib/io/network.c:1055,1
    - Dst: fr_network_send_request
      Src: /src/freeradius-server/src/lib/io/network.c:1061,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1063,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1064,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - sockfd
    - flags
    - ctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 899
    functionDepth: 8
    functionLinenumber: 899
    functionLinenumberEnd: 1088
    functionName: fr_network_read
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 2
    functionsReached:
    - PERROR
    - fr_network_socket_dead
    - ERROR
    - HEXDUMP2
    - fr_message_and_data_reset
    - fr_time
    - talloc_free
    - fr_cond_assert_msg
    - fr_network_socket_t*::listen::app::priority
    - fr_message_and_data_reserve
    - fr_assert
    - fr_network_send_request
    - fr_message_and_data_commit_with_leftover
    - fr_message_and_data_commit
    - fr_network_socket_t*::listen::app_io::read
    - fr_message_done
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void fr_network_read(UNUSED fr_event_list_t *el, int sockfd, UNUSED
      int flags, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:1095,1
    - Dst: fr_message_and_data_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:1098,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:1109,1
    - Dst: fr_network_send_request
      Src: /src/freeradius-server/src/lib/io/network.c:1111,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1112,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 6
    argNames:
    - nr
    - li
    - packet_ctx
    - data
    - data_len
    - recv_time
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    - void*
    - uint8_t*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1090
    functionDepth: 9
    functionLinenumber: 1090
    functionLinenumberEnd: 1124
    functionName: fr_network_sendto_worker
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - fr_message_and_data_alloc
    - fr_rb_find
    - fr_network_send_request
    - fr_message_done
    linkageType: ''
    returnType: int
    signature: int fr_network_sendto_worker(fr_network_t *nr, fr_listen_t *li, void
      *packet_ctx, uint8_t const *data, size_t data_len, fr_time_t recv_time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1139,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:1141,1
    - Dst: fr_network_socket_t*::listen::app_io::vnode
      Src: /src/freeradius-server/src/lib/io/network.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - sockfd
    - fflags
    - ctx
    argTypes:
    - UNUSED
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1148
    functionName: fr_network_vnode_extend
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_network_socket_t*::listen::app_io::vnode
    - fr_cond_assert
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void fr_network_vnode_extend(UNUSED fr_event_list_t *el, int sockfd,
      int fflags, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_network_socket_t*::listen::app_io::error
      Src: /src/freeradius-server/src/lib/io/network.c:1166,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/network.c:1169,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1172,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/network.c:1172,1
    - Dst: fr_network_socket_dead
      Src: /src/freeradius-server/src/lib/io/network.c:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - sockfd
    - flags
    - fd_errno
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1176
    functionName: fr_network_error
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_network_socket_dead
    - ERROR
    - fr_network_socket_t*::listen::app_io::error
    - fr_syserror
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: "void fr_network_error(UNUSED fr_event_list_t *el, UNUSED int sockfd,
      int flags,\n\t\t\t     int fd_errno, void *ctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1193,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/network.c:1204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1210,1
    - Dst: HEXDUMP2
      Src: /src/freeradius-server/src/lib/io/network.c:1211,1
    - Dst: fr_listen_t*::app_io::write
      Src: /src/freeradius-server/src/lib/io/network.c:1212,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/network.c:1220,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1235,1
    - Dst: fr_message_localize
      Src: /src/freeradius-server/src/lib/io/network.c:1240,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1242,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/network.c:1250,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1251,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1262,1
    - Dst: fr_listen_t*::app_io::error
      Src: /src/freeradius-server/src/lib/io/network.c:1281,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1283,1
    - Dst: fr_listen_t*::app_io::error
      Src: /src/freeradius-server/src/lib/io/network.c:1287,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1292,1
    - Dst: fr_network_socket_dead
      Src: /src/freeradius-server/src/lib/io/network.c:1293,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1311,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/network.c:1318,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/network.c:1325,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1326,1
    - Dst: fr_network_socket_dead
      Src: /src/freeradius-server/src/lib/io/network.c:1327,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - sockfd
    - flags
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1331
    functionName: fr_network_write
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - HEXDUMP2
    - fr_listen_t*::app_io::write
    - ERROR
    - fr_network_socket_dead
    - RATE_LIMIT_GLOBAL
    - fr_message_done
    - fr_listen_t*::app_io::error
    - talloc_get_type_abort
    - fr_assert
    - fr_event_filter_update
    - fr_message_localize
    - PERROR
    - fr_heap_pop
    linkageType: ''
    returnType: void
    signature: void fr_network_write(UNUSED fr_event_list_t *el, UNUSED int sockfd,
      UNUSED int flags, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1338,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/io/network.c:1340,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/io/network.c:1341,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/io/network.c:1343,1
    - Dst: fr_network_socket_t*::listen::app_io::close
      Src: /src/freeradius-server/src/lib/io/network.c:1346,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/network.c:1348,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1352,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/network.c:1359,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1360,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - fr_network_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1367
    functionName: _network_socket_free
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_network_socket_t*::listen::app_io::close
    - talloc_free
    - fr_message_done
    - fr_assert
    - fr_event_fd_delete
    - close
    - fr_rb_delete
    - fr_heap_pop
    linkageType: ''
    returnType: int
    signature: int _network_socket_free(fr_network_socket_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1379,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1382,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1386,1
    - Dst: fr_network_listen_add_self
      Src: /src/freeradius-server/src/lib/io/network.c:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1389
    functionName: fr_network_listen_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_network_listen_add_self
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_network_listen_callback(void *ctx, void const *data, size_t
      data_size, UNUSED fr_time_t now)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - s
    - num_messages_p
    - size_p
    argTypes:
    - fr_network_socket_t*
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1406
    functionName: fr_network_limit_ringbuffer
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_network_limit_ringbuffer(fr_network_socket_t *s, int *num_messages_p,
      size_t *size_p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1415,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1423,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1424,1
    - Dst: fr_listen_t*::app_io::event_list_set
      Src: /src/freeradius-server/src/lib/io/network.c:1426,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/network.c:1431,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/io/network.c:1432,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/network.c:1437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1438,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/io/network.c:1439,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/network.c:1445,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:1445,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/network.c:1447,1
    - Dst: fr_network_limit_ringbuffer
      Src: /src/freeradius-server/src/lib/io/network.c:1454,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/lib/io/network.c:1459,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1463,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1464,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1471,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1476,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1477,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/lib/io/network.c:1486,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1493,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1494,1
    - Dst: fr_app_io_t*::event_list_set
      Src: /src/freeradius-server/src/lib/io/network.c:1496,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/io/network.c:1501,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/io/network.c:1502,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:1504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 2
    argNames:
    - nr
    - li
    argTypes:
    - fr_network_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1408
    functionDepth: 3
    functionLinenumber: 1408
    functionLinenumberEnd: 1507
    functionName: fr_network_listen_add_self
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 2
    functionsReached:
    - PERROR
    - fr_app_io_t*::event_list_set
    - talloc_set_destructor
    - talloc_free
    - DEBUG3
    - talloc_steal
    - fr_event_fd_insert
    - fr_listen_t*::app_io::event_list_set
    - cf_section_name2
    - fr_network_limit_ringbuffer
    - fr_assert
    - talloc_zero
    - fr_event_filter_update
    - fr_log
    - fr_rb_insert
    - fr_heap_alloc
    - MEM
    - fr_message_set_create
    linkageType: ''
    returnType: int
    signature: int fr_network_listen_add_self(fr_network_t *nr, fr_listen_t *li)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1520,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1521,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1526,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:1528,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/network.c:1530,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1531,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/io/network.c:1532,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/network.c:1538,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:1538,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/network.c:1540,1
    - Dst: fr_network_limit_ringbuffer
      Src: /src/freeradius-server/src/lib/io/network.c:1545,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/lib/io/network.c:1547,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1551,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1552,1
    - Dst: fr_app_io_t*::event_list_set
      Src: /src/freeradius-server/src/lib/io/network.c:1558,1
    - Dst: fr_event_filter_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1562,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1566,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1567,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1571,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1572,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/network.c:1574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1516
    functionDepth: 3
    functionLinenumber: 1516
    functionLinenumberEnd: 1575
    functionName: fr_network_directory_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_app_io_t*::event_list_set
    - memcpy
    - talloc_set_destructor
    - talloc_free
    - DEBUG3
    - fr_cond_assert
    - talloc_steal
    - talloc_get_type_abort
    - fr_network_limit_ringbuffer
    - fr_assert
    - talloc_zero
    - fr_rb_insert
    - fr_event_filter_insert
    - fr_heap_alloc
    - MEM
    - fr_message_set_create
    linkageType: ''
    returnType: void
    signature: void fr_network_directory_callback(void *ctx, void const *data, size_t
      data_size, UNUSED fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1591,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1594,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:1598,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1599,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/network.c:1601,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/network.c:1601,1
    - Dst: fr_worker_channel_create
      Src: /src/freeradius-server/src/lib/io/network.c:1604,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/io/network.c:1605,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/io/network.c:1606,1
    - Dst: fr_channel_requestor_uctx_add
      Src: /src/freeradius-server/src/lib/io/network.c:1608,1
    - Dst: fr_channel_set_recv_reply
      Src: /src/freeradius-server/src/lib/io/network.c:1609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1621
    functionName: fr_network_worker_started_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - ERROR
    - memcpy
    - fr_worker_channel_create
    - talloc_get_type_abort
    - fr_channel_requestor_uctx_add
    - fr_assert
    - talloc_zero
    - fr_time_delta_from_msec
    - fr_channel_set_recv_reply
    - fr_fatal_assert_msg
    - MEM
    linkageType: ''
    returnType: void
    signature: void fr_network_worker_started_callback(void *ctx, void const *data,
      size_t data_size, UNUSED fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1636,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/network.c:1638,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:1639,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1641,1
    - Dst: fr_network_socket_t*::listen::app_io::inject
      Src: /src/freeradius-server/src/lib/io/network.c:1649,1
    - Dst: fr_network_read
      Src: /src/freeradius-server/src/lib/io/network.c:1650,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1630
    functionDepth: 9
    functionLinenumber: 1630
    functionLinenumberEnd: 1654
    functionName: fr_network_inject_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - fr_network_read
    - fr_network_socket_t*::listen::app_io::inject
    - fr_rb_find
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_network_inject_callback(void *ctx, void const *data, size_t
      data_size, UNUSED fr_time_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1668,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/network.c:1670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fr_time_t
    - fr_time_delta_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1673
    functionName: fr_network_pre_event
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_heap_num_elements
    linkageType: ''
    returnType: int
    signature: int fr_network_pre_event(UNUSED fr_time_t now, UNUSED fr_time_delta_t
      wake, void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1684,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/network.c:1690,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:1700,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1706,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1711,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1719,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1725,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1734,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/network.c:1738,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1745,1
    - Dst: fr_network_write
      Src: /src/freeradius-server/src/lib/io/network.c:1746,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1681
    functionDepth: 3
    functionLinenumber: 1681
    functionLinenumberEnd: 1749
    functionName: fr_network_post_event
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - fr_rb_find
    - fr_assert
    - fr_heap_insert
    - fr_network_write
    - fr_message_done
    - fr_heap_pop
    linkageType: ''
    returnType: void
    signature: void fr_network_post_event(UNUSED fr_event_list_t *el, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1759,1
    - Dst: fr_rb_flatten_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:1769,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/io/network.c:1770,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1779,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1782,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/network.c:1804,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/network.c:1805,1
    - Dst: fr_channel_signal_responder_close
      Src: /src/freeradius-server/src/lib/io/network.c:1823,1
    - Dst: fr_event_pre_delete
      Src: /src/freeradius-server/src/lib/io/network.c:1827,1
    - Dst: fr_event_post_delete
      Src: /src/freeradius-server/src/lib/io/network.c:1828,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/io/network.c:1830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1833
    functionName: fr_network_destroy
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 2
    functionsReached:
    - fr_channel_signal_responder_close
    - fr_event_post_delete
    - talloc_free
    - fr_event_pre_delete
    - fr_rb_flatten_inorder
    - talloc_get_type_abort
    - fr_event_fd_delete
    - talloc_array_length
    - fr_message_done
    - fr_heap_pop
    linkageType: ''
    returnType: int
    signature: int fr_network_destroy(fr_network_t *nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/network.c:1840,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/io/network.c:1843,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1844,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/network.c:1844,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/network.c:1848,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/network.c:1860,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/network.c:1862,1
    - Dst: fr_network_destroy
      Src: /src/freeradius-server/src/lib/io/network.c:1862,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/network.c:1863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1838
    functionDepth: 3
    functionLinenumber: 1838
    functionLinenumberEnd: 1865
    functionName: _signal_pipe_read
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - read
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - DEBUG2
    - fr_network_destroy
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _signal_pipe_read(UNUSED fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/network.c:1886,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/network.c:1894,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/network.c:1900,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/io/network.c:1901,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/network.c:1901,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/network.c:1902,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/network.c:1910,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/io/network.c:1911,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1871
    functionDepth: 1
    functionLinenumber: 1871
    functionLinenumberEnd: 1915
    functionName: fr_network
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - DEBUG4
    - fr_event_service
    - fr_time
    - likely
    - fr_heap_num_elements
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void fr_network(fr_network_t *nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/lib/io/network.c:1928,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/network.c:1929,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/network.c:1929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1934
    functionName: fr_network_exit
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - write
    - fr_strerror_printf
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_network_exit(fr_network_t *nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/network.c:1941,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/io/network.c:1942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nr
    argTypes:
    - fr_network_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1945
    functionName: _fr_network_free
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int _fr_network_free(fr_network_t *nr)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/network.c:1965,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/network.c:1967,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/network.c:1970,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/network.c:1972,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/network.c:1974,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/network.c:1985,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1987,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/lib/io/network.c:1991,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:1993,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:1995,1
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/network.c:2005,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2007,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/network.c:2009,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/network.c:2013,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2014,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/network.c:2018,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2019,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/network.c:2023,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2024,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/network.c:2028,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2029,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/network.c:2033,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2034,1
    - Dst: fr_control_open
      Src: /src/freeradius-server/src/lib/io/network.c:2038,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2039,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:2046,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2048,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:2052,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2054,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/io/network.c:2058,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/network.c:2060,1
    - Dst: fr_event_pre_insert
      Src: /src/freeradius-server/src/lib/io/network.c:2064,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/network.c:2065,1
    - Dst: fr_event_post_insert
      Src: /src/freeradius-server/src/lib/io/network.c:2069,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/network.c:2070,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/io/network.c:2074,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/io/network.c:2075,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/io/network.c:2075,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/io/network.c:2078,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/io/network.c:2079,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/io/network.c:2081,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/network.c:2082,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 115
    argCount: 6
    argNames:
    - ctx
    - el
    - name
    - logger
    - lvl
    - config
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - char*
    - fr_log_t*
    - fr_log_lvl_t
    - fr_network_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 1959
    functionDepth: 2
    functionLinenumber: 1959
    functionLinenumberEnd: 2087
    functionName: fr_network_create
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 2
    functionsReached:
    - fr_rb_inline_talloc_alloc
    - fr_strerror_printf
    - fr_ring_buffer_create
    - talloc_strdup
    - fr_heap_alloc
    - fr_control_callback_add
    - fr_strerror_const_push
    - fr_nonblock
    - fr_strerror_const
    - talloc_set_destructor
    - fr_event_pre_insert
    - fr_syserror
    - pthread_self
    - talloc_free
    - pipe
    - fr_event_fd_insert
    - fr_control_create
    - talloc_zero
    - fr_control_open
    - fr_atomic_queue_talloc
    - fr_event_post_insert
    linkageType: ''
    returnType: fr_network_t
    signature: "fr_network_t *fr_network_create(TALLOC_CTX *ctx, fr_event_list_t *el,
      char const *name,\n\t\t\t\tfr_log_t const *logger, fr_log_lvl_t lvl,\n\t\t\t\tfr_network_config_t
      const *config)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - nr
    - num
    - stats
    argTypes:
    - fr_network_t*
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2103
    functionName: fr_network_stats
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_network_stats(fr_network_t const *nr, int num, uint64_t *stats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_channel_stats_log
      Src: /src/freeradius-server/src/lib/io/network.c:2115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - nr
    - log
    argTypes:
    - fr_network_t*
    - fr_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2117
    functionName: fr_network_stats_log
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 1
    functionsReached:
    - fr_channel_stats_log
    linkageType: ''
    returnType: void
    signature: void fr_network_stats_log(fr_network_t const *nr, fr_log_t const *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2123,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2124,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2125,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2126,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2127,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/io/network.c:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2130
    functionName: cmd_stats_self
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_stats_self(FILE *fp, UNUSED FILE *fp_err, void *ctx, UNUSED
      fr_cmd_info_t const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:2140,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/io/network.c:2142,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2144,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2146,1
    - Dst: fr_network_socket_t*::listen::app_io::get_name
      Src: /src/freeradius-server/src/lib/io/network.c:2146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2150
    functionName: cmd_socket_list
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_network_socket_t*::listen::app_io::get_name
    - fr_rb_iter_next_inorder
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_socket_list(FILE *fp, UNUSED FILE *fp_err, void *ctx, UNUSED
      fr_cmd_info_t const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/network.c:2157,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2159,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2163,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2164,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2165,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/network.c:2166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - FILE*
    - void*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2169
    functionName: cmd_stats_socket
    functionSourceFile: /src/freeradius-server/src/lib/io/network.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_stats_socket(FILE *fp, FILE *fp_err, void *ctx, fr_cmd_info_t
      const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:94,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:96,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:99,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:100,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - fr_coord_pair_reg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: _coord_pair_reg_free
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_assert
    - fr_dlist_num_elements
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int _coord_pair_reg_free(fr_coord_pair_reg_t *to_free)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:120,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:124,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:124,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:124,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:126,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:132,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:132,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:133,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:134,1
    - Dst: module_list_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:134,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:137,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:137,1
    - Dst: fr_time_delta_eq
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:142,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:142,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:157,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:159,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:159,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:168,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:174,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:177,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:179,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:182,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:190,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:192,1
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:196,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:196,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:198,1
    - Dst: virtual_server_dict_by_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:205,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:205,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:206,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:207,1
    - Dst: virtual_server_dict_by_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:207,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:207,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:208,1
    - Dst: virtual_server_packet_type_by_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:211,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:211,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:213,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:214,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - reg_ctx
    argTypes:
    - fr_coord_pair_reg_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 217
    functionName: fr_coord_pair_register
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 1
    functionsReached:
    - virtual_server_find
    - cf_section_find
    - cf_section_rules_push
    - virtual_server_packet_type_by_cs
    - fr_time_delta_from_msec
    - MEM
    - cf_log_err
    - ERROR
    - cf_section_parse
    - virtual_server_cs
    - fr_time_delta_eq
    - talloc_zero_array
    - fr_dict_attr_by_name
    - cf_section_alloc
    - talloc_set_destructor
    - fr_dlist_init
    - fr_assert
    - cf_pair_find
    - virtual_server_dict_by_cs
    - talloc_free
    - cf_pair_value
    - talloc
    - fr_dict_internal
    - talloc_zero
    - module_list_alloc
    - fr_dlist_insert_tail
    - fr_dict_root
    linkageType: ''
    returnType: fr_coord_pair_reg_t
    signature: fr_coord_pair_reg_t *fr_coord_pair_register(fr_coord_pair_reg_ctx_t
      *reg_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - coord_pair_reg
    argTypes:
    - fr_coord_pair_reg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: fr_coord_pair_reg_cb_id
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_coord_pair_reg_cb_id(fr_coord_pair_reg_t *coord_pair_reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: coord_pair_stop_request
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    linkageType: ''
    returnType: void
    signature: void coord_pair_stop_request(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:249,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:251,1
    - Dst: coord_pair_stop_request
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: _coord_pair_request_timeout
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - coord_pair_stop_request
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_timeout(UNUSED fr_timer_list_t *tl, UNUSED
      fr_time_t when, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:268,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:268,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - coord_pair
    - request
    - timeout
    argTypes:
    - fr_coord_pair_t*
    - request_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: fr_coord_pair_request_timeout_set
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_timer_in
    - unlikely
    - RERROR
    linkageType: ''
    returnType: int
    signature: int fr_coord_pair_request_timeout_set(fr_coord_pair_t *coord_pair,
      request_t *request, fr_time_delta_t timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:281,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:281,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:283,1
    - Dst: fr_coord_pair_request_timeout_set
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:283,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:285,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:289,1
    - Dst: fr_time_tracking_start
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:290,1
    - Dst: fr_time_tracking_yield
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:291,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:294,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:294,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - coord_pair
    - request
    - now
    argTypes:
    - fr_coord_pair_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: coord_pair_request_time_tracking_start
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - unlikely
    - RERROR
    - fr_coord_pair_request_timeout_set
    - fr_assert
    - RDEBUG3
    - fr_heap_entry_inserted
    - fr_time_tracking_yield
    - fr_heap_insert
    - fr_time_tracking_start
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: int coord_pair_request_time_tracking_start(fr_coord_pair_t *coord_pair,
      request_t *request, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:304,1
    - Dst: fr_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:305,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:306,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - coord_pair
    - request
    - now
    argTypes:
    - fr_coord_pair_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: coord_pair_request_time_tracking_end
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - RDEBUG3
    - TALLOC_FREE
    - fr_time_tracking_end
    linkageType: ''
    returnType: void
    signature: void coord_pair_request_time_tracking_end(fr_coord_pair_t *coord_pair,
      request_t *request, fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:316,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:316,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:317,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:317,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:320,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - el
    - request
    - now
    - packet_ctx
    argTypes:
    - fr_event_list_t*
    - request_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: coord_pair_request_init
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    - talloc_zero
    - MEM
    - fr_packet_alloc
    linkageType: ''
    returnType: void
    signature: void coord_pair_request_init(fr_event_list_t *el, request_t *request,
      fr_time_t now, void *packet_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add_explicit
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:330,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:331,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - request
    - name
    argTypes:
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: coord_pair_request_name_number
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - atomic_fetch_add_explicit
    - talloc_asprintf
    linkageType: ''
    returnType: void
    signature: void coord_pair_request_name_number(request_t *request, char const
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_slab_deinit
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: _coord_pair_request_deinit
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - request_slab_deinit
    linkageType: ''
    returnType: int
    signature: int _coord_pair_request_deinit( request_t *request, UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: request_slab_reserve
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:345,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:347,1
    - Dst: request_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:351,1
    - Dst: request_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:353,1
    - Dst: virtual_server_dict_by_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:355,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:355,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:357,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:358,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:362,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:362,1
    - Dst: coord_pair_request_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:367,1
    - Dst: coord_pair_request_name_number
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:368,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - coord_pair
    - now
    - uctx
    argTypes:
    - fr_coord_pair_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 373
    functionName: coord_pair_request_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - ERROR
    - request_slab_reserve
    - unlang_interpret_set
    - talloc
    - virtual_server_cs
    - request_slab_element_set_destructor
    - coord_pair_request_name_number
    - request_init
    - coord_pair_request_init
    - virtual_server_dict_by_cs
    - request_slab_release
    - MEM
    linkageType: ''
    returnType: request_t
    signature: request_t *coord_pair_request_bootstrap(fr_coord_pair_t *coord_pair,
      fr_time_t now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:379,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:381,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:383,1
    - Dst: virtual_server_push
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:389,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:390,1
    - Dst: coord_pair_request_time_tracking_start
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - coord_pair
    - request
    - now
    argTypes:
    - fr_coord_pair_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 395
    functionName: coord_pair_request_start
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - RERROR
    - virtual_server_push
    - request_slab_release
    - fr_pair_find_by_da
    - coord_pair_request_time_tracking_start
    linkageType: ''
    returnType: void
    signature: void coord_pair_request_start(fr_coord_pair_t *coord_pair, request_t
      *request, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:399,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:400,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:402,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:403,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:406,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:409,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:415,1
    - Dst: request_is_internal
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:415,1
    - Dst: coord_pair_request_time_tracking_start
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: _coord_pair_request_internal_init
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_time
    - fr_dlist_entry_init
    - talloc_get_type_abort
    - fr_assert
    - talloc_zero
    - request_is_internal
    - coord_pair_request_time_tracking_start
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_internal_init(request_t *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: _coord_pair_request_done_external
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_done_external(UNUSED request_t *request, UNUSED
      rlm_rcode_t rcode, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:433,1
    - Dst: coord_pair_request_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:435,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:435,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:437,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:438,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:438,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:439,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 440
    functionName: _coord_pair_request_done_internal
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - coord_pair_request_time_tracking_end
    - fr_time
    - talloc_get_type_abort
    - fr_assert
    - fr_heap_entry_inserted
    - fr_timer_armed
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_done_internal(request_t *request, UNUSED rlm_rcode_t
      rcode, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:449,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:449,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:451,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:453,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:453,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: _coord_pair_request_done_detached
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - TALLOC_FREE
    - talloc_free
    - fr_assert
    - fr_heap_entry_inserted
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_done_detached(request_t *request, UNUSED rlm_rcode_t
      rcode, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:463,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:465,1
    - Dst: request_is_detachable
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:467,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:474,1
    - Dst: fr_time_tracking_resume
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:475,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:475,1
    - Dst: coord_pair_request_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:477,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:477,1
    - Dst: request_detach
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:479,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:479,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:481,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 485
    functionName: _coord_pair_request_detach
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - request_detach
    - coord_pair_request_time_tracking_end
    - RPEDEBUG
    - fr_time
    - request_is_detachable
    - talloc_get_type_abort
    - RDEBUG3
    - fr_assert_msg
    - RDEBUG4
    - fr_time_tracking_resume
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_detach(request_t *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:494,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: _coord_pair_request_runnable
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_heap_insert
    - RDEBUG4
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_runnable(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:503,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:504,1
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:504,1
    - Dst: fr_time_tracking_yield
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:504,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: _coord_pair_request_yield
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_time
    - likely
    - request_is_detached
    - RDEBUG4
    - fr_time_tracking_yield
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_yield(request_t *request, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:512,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:513,1
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:513,1
    - Dst: fr_time_tracking_resume
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:513,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: _coord_pair_request_resume
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_time
    - likely
    - request_is_detached
    - RDEBUG4
    - fr_time_tracking_resume
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_resume(request_t *request, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: _coord_pair_request_scheduled
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_heap_entry_inserted
    linkageType: ''
    returnType: bool
    signature: bool _coord_pair_request_scheduled(request_t const *request, UNUSED
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:529,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:531,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:534,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 538
    functionName: _coord_pair_request_prioritise
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_heap_insert
    - RDEBUG4
    - fr_heap_extract
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _coord_pair_request_prioritise(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:547,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: coord_pair_runnable_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t coord_pair_runnable_cmp(void const *one, void const *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:554,1
    - Dst: unlang_interpret_set_thread_default
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:557,1
    - Dst: fr_timer_list_force_run
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:559,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:560,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:561,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fr_coord_t *coord
    - inst
    - single_thread
    - uctx
    argTypes:
    - UNUSED
    - fr_coord_cb_inst_t*
    - bool
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 567
    functionName: fr_coord_pair_inst_destroy
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_force_run
    - unlikely
    - unlang_interpret_set_thread_default
    - talloc_get_type_abort
    - fr_assert_msg
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_coord_pair_inst_destroy(UNUSED fr_coord_t *coord, fr_coord_cb_inst_t
      *inst, bool single_thread, UNUSED void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:575,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:577,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:577,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:584,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:586,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:588,1
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:592,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:594,1
    - Dst: unlang_interpret_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:598,1
    - Dst: request_slab_list_alloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:617,1
    - Dst: unlang_interpret_set_thread_default
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - ctx
    - coord
    - el
    - single_thread
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_coord_t*
    - fr_event_list_t*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 625
    functionName: fr_coord_pair_create
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_set_thread_default
    - talloc_free
    - fr_heap_talloc_alloc
    - talloc_get_type_abort
    - talloc
    - fr_timer_list_ordered_alloc
    - request_slab_list_alloc
    - fr_strerror_const
    - MEM
    - unlang_interpret_init
    linkageType: ''
    returnType: fr_coord_pair_t
    signature: "fr_coord_pair_t *fr_coord_pair_create(TALLOC_CTX *ctx, fr_coord_t
      *coord, fr_event_list_t *el,\n\t\t\t\t\t     bool single_thread, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:634,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:634,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:634,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:635,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:636,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:637,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:637,1
    - Dst: unlang_interpret
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:639,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - coord_pair
    - start
    argTypes:
    - fr_coord_pair_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: coord_run_request
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_time
    - unlang_interpret
    - fr_time_delta_lt
    - fr_time_sub
    - REQUEST_VERIFY
    - fr_assert
    - fr_heap_entry_inserted
    - fr_time_delta_from_msec
    - fr_heap_pop
    linkageType: ''
    returnType: void
    signature: void coord_run_request(fr_coord_pair_t *coord_pair, fr_time_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:651,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_time_t
    - fr_time_delta_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: fr_coord_pair_pre_event
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_heap_peek
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_coord_pair_pre_event(UNUSED fr_time_t now, UNUSED fr_time_delta_t
      wake, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:660,1
    - Dst: coord_run_request
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:662,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 663
    functionName: fr_coord_pair_post_event
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_time
    - talloc_get_type_abort
    - coord_run_request
    linkageType: ''
    returnType: void
    signature: void fr_coord_pair_post_event(UNUSED fr_event_list_t *el, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:669,1
    - Dst: coord_run_request
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:671,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_event_list_t *el
    - uctx
    argTypes:
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 672
    functionName: fr_coord_pair_event
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_time
    - talloc_get_type_abort
    - coord_run_request
    linkageType: ''
    returnType: void
    signature: void fr_coord_pair_event(UNUSED fr_event_list_t *el, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:680,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:681,1
    - Dst: coord_pair_request_bootstrap
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:685,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:688,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:690,1
    - Dst: fr_internal_decode_list_dbuff
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:695,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:696,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:697,1
    - Dst: coord_pair_request_start
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - fr_coord_t *coord
    - worker_id
    - dbuff
    - now
    - inst
    - uctx
    argTypes:
    - UNUSED
    - uint32_t
    - fr_dbuff_t*
    - fr_time_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 678
    functionDepth: 4
    functionLinenumber: 678
    functionLinenumberEnd: 702
    functionName: fr_coord_pair_data_recv
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - RERROR
    - fr_pair_append_by_da
    - talloc_get_type_abort
    - fr_dict_root
    - fr_internal_decode_list_dbuff
    - coord_pair_request_start
    - request_slab_release
    - coord_pair_request_bootstrap
    linkageType: ''
    returnType: void
    signature: void fr_coord_pair_data_recv(UNUSED fr_coord_t *coord, uint32_t worker_id,
      fr_dbuff_t *dbuff, fr_time_t now, void *inst, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:716,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:720,1
    - Dst: fr_internal_decode_list_dbuff
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:721,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:722,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:726,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:729,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:734,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:738,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:742,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - cw
    - dbuff
    - now
    - mctx
    - uctx
    argTypes:
    - fr_coord_worker_t*
    - fr_dbuff_t*
    - fr_time_t
    - module_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 743
    functionName: fr_coord_worker_pair_data_recv
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_pair_find_by_da_nested
    - fr_pair_list_init
    - talloc_get_type_abort
    - fr_internal_decode_list_dbuff
    - fr_pair_list_free
    - PERROR
    - callback
    linkageType: ''
    returnType: void
    signature: void fr_coord_worker_pair_data_recv(fr_coord_worker_t *cw, fr_dbuff_t
      *dbuff, fr_time_t now, module_ctx_t *mctx, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:757,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:758,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:761,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:762,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:763,1
    - Dst: fr_coord_to_worker_send
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:767,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - request
    - worker_id
    argTypes:
    - request_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 772
    functionName: fr_coord_to_worker_reply_send
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init_talloc
    - fr_internal_encode_list
    - fr_dbuff_free_talloc
    - talloc_get_type_abort
    - fr_coord_to_worker_send
    linkageType: ''
    returnType: int
    signature: int fr_coord_to_worker_reply_send(request_t *request, uint32_t worker_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:785,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:786,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:789,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:790,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:791,1
    - Dst: fr_coord_to_worker_broadcast
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:795,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 800
    functionName: fr_coord_to_worker_reply_broadcast
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init_talloc
    - fr_internal_encode_list
    - fr_dbuff_free_talloc
    - talloc_get_type_abort
    - fr_coord_to_worker_broadcast
    linkageType: ''
    returnType: int
    signature: int fr_coord_to_worker_reply_broadcast(request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:818,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:819,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:820,1
    - Dst: fr_worker_to_coord_send
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:824,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cw
    - coord_pair_reg
    - list
    argTypes:
    - fr_coord_worker_t*
    - fr_coord_pair_reg_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 828
    functionName: fr_worker_to_coord_pair_send
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 2
    functionsReached:
    - fr_worker_to_coord_send
    - fr_internal_encode_list
    - fr_dbuff_free_talloc
    - fr_dbuff_init_talloc
    linkageType: ''
    returnType: int
    signature: int fr_worker_to_coord_pair_send(fr_coord_worker_t *cw, fr_coord_pair_reg_t
      *coord_pair_reg, fr_pair_list_t *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:846,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:846,1
    - Dst: fr_coord_pair_create
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:854,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - coord
    - el
    - single_thread
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_coord_t*
    - fr_event_list_t*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 863
    functionName: fr_coord_pair_inst_create
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - MEM
    - fr_coord_pair_create
    - talloc
    - talloc_free
    linkageType: ''
    returnType: fr_coord_cb_inst_t
    signature: "fr_coord_cb_inst_t *fr_coord_pair_inst_create(TALLOC_CTX *ctx, fr_coord_t
      *coord, fr_event_list_t *el,\n\t\t\t\t\t       bool single_thread, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: fr_coord_pair_request_coord_pair
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_coord_pair_t
    signature: fr_coord_pair_t *fr_coord_pair_request_coord_pair(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: coord_pair_request_bootstrap
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:889,1
    - Dst: fr_pair_list_steal
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:892,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:893,1
    - Dst: coord_pair_request_start
      Src: /src/freeradius-server/src/lib/io/coord_pair.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - coord_pair
    - list
    - now
    argTypes:
    - fr_coord_pair_t*
    - fr_pair_list_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 885
    functionDepth: 4
    functionLinenumber: 885
    functionLinenumberEnd: 897
    functionName: fr_coord_pair_coord_request_start
    functionSourceFile: /src/freeradius-server/src/lib/io/coord_pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_append
    - coord_pair_request_start
    - coord_pair_request_bootstrap
    - fr_pair_list_steal
    linkageType: ''
    returnType: int
    signature: int fr_coord_pair_coord_request_start(fr_coord_pair_t *coord_pair,
      fr_pair_list_t *list, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/worker.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 154
    functionName: worker_listener_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: void
    signature: void worker_listener_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: _fr_worker_rb_free
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_worker_rb_free(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ring_buffer_create
      Src: /src/freeradius-server/src/lib/io/worker.c:177,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/io/worker.c:179,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/io/worker.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: fr_worker_rb_init
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_ring_buffer_create
    - fr_atexit_thread_local
    linkageType: ''
    returnType: fr_ring_buffer_t
    signature: fr_ring_buffer_t *fr_worker_rb_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/lib/io/worker.c:190,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/worker.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - worker
    argTypes:
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: is_worker_thread
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: bool
    signature: bool is_worker_thread(fr_worker_t const *worker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:207,1
    - Dst: worker_request_bootstrap
      Src: /src/freeradius-server/src/lib/io/worker.c:209,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ch
    - cd
    argTypes:
    - void*
    - fr_channel_t*
    - fr_channel_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: worker_recv_request
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - worker_request_bootstrap
    - DEBUG3
    - fr_time
    linkageType: ''
    returnType: void
    signature: void worker_recv_request(void *ctx, fr_channel_t *ch, fr_channel_data_t
      *cd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/io/worker.c:216,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/io/worker.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - fr_worker_channel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: worker_requests_cancel
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - fr_dlist_pop_head
    linkageType: ''
    returnType: void
    signature: void worker_requests_cancel(fr_worker_channel_t *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_post_delete
      Src: /src/freeradius-server/src/lib/io/worker.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - worker
    argTypes:
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 234
    functionName: worker_exit
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_event_post_delete
    linkageType: ''
    returnType: void
    signature: void worker_exit(fr_worker_t *worker)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_channel_service_message
      Src: /src/freeradius-server/src/lib/io/worker.c:259,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:260,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/io/worker.c:261,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:273,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:277,1
    - Dst: fr_channel_recv_request
      Src: /src/freeradius-server/src/lib/io/worker.c:279,1
    - Dst: fr_channel_recv_request
      Src: /src/freeradius-server/src/lib/io/worker.c:282,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:286,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:290,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/io/worker.c:295,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:297,1
    - Dst: fr_message_set_create
      Src: /src/freeradius-server/src/lib/io/worker.c:299,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:302,1
    - Dst: fr_channel_responder_uctx_add
      Src: /src/freeradius-server/src/lib/io/worker.c:303,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:310,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:314,1
    - Dst: worker_requests_cancel
      Src: /src/freeradius-server/src/lib/io/worker.c:327,1
    - Dst: fr_channel_responder_uctx_get
      Src: /src/freeradius-server/src/lib/io/worker.c:329,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:331,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/worker.c:331,1
    - Dst: fr_channel_responder_ack_close
      Src: /src/freeradius-server/src/lib/io/worker.c:334,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:335,1
    - Dst: fr_message_set_gc
      Src: /src/freeradius-server/src/lib/io/worker.c:336,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:337,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:341,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/io/worker.c:341,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:342,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:349,1
    - Dst: worker_exit
      Src: /src/freeradius-server/src/lib/io/worker.c:355,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - now
    argTypes:
    - void*
    - void*
    - size_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 358
    functionName: worker_channel_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_channel_responder_uctx_get
    - worker_exit
    - talloc_free
    - fr_cond_assert
    - fr_dlist_num_elements
    - fr_dlist_init
    - fr_message_set_create
    - fr_message_set_gc
    - fr_table_str_by_value
    - fr_assert
    - worker_requests_cancel
    - fr_assert_msg
    - fr_channel_responder_ack_close
    - fr_channel_service_message
    - fr_channel_responder_uctx_add
    - fr_channel_recv_request
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void worker_channel_callback(void *ctx, void const *data, size_t data_size,
      fr_time_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/worker.c:365,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/io/worker.c:368,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/worker.c:369,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/io/worker.c:370,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/io/worker.c:373,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - worker
    - li
    argTypes:
    - fr_worker_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: fr_worker_listen_cancel_self
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_free
    - fr_dlist_pop_head
    - unlang_interpret_signal
    - fr_rb_find
    - fr_rb_delete
    linkageType: ''
    returnType: int
    signature: int fr_worker_listen_cancel_self(fr_worker_t *worker, fr_listen_t const
      *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:392,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/io/worker.c:394,1
    - Dst: fr_worker_listen_cancel_self
      Src: /src/freeradius-server/src/lib/io/worker.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - data
    - data_size
    - fr_time_t
    argTypes:
    - void*
    - void*
    - NDEBUG_UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: worker_listen_cancel_callback
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_worker_listen_cancel_self
    - memcpy
    linkageType: ''
    returnType: void
    signature: void worker_listen_cancel_callback(void *ctx, void const *data, NDEBUG_UNUSED
      size_t data_size, UNUSED fr_time_t now)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:432,1
    - Dst: fr_channel_active
      Src: /src/freeradius-server/src/lib/io/worker.c:432,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/worker.c:433,1
    - Dst: fr_channel_responder_uctx_get
      Src: /src/freeradius-server/src/lib/io/worker.c:437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:438,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/worker.c:446,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/lib/io/worker.c:446,1
    - Dst: fr_listen_t*::app_io::nak
      Src: /src/freeradius-server/src/lib/io/worker.c:452,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/worker.c:458,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/io/worker.c:465,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/worker.c:474,1
    - Dst: fr_channel_send_reply
      Src: /src/freeradius-server/src/lib/io/worker.c:479,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/io/worker.c:480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - worker
    - cd
    - now
    argTypes:
    - fr_worker_t*
    - fr_channel_data_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 409
    functionDepth: 8
    functionLinenumber: 409
    functionLinenumberEnd: 484
    functionName: worker_nak
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_channel_responder_uctx_get
    - fr_cond_assert_msg
    - fr_message_and_data_reserve
    - fr_listen_t*::app_io::nak
    - fr_assert
    - fr_channel_send_reply
    - fr_channel_active
    - fr_time_delta_from_msec
    - fr_message_and_data_commit
    - DEBUG2
    - fr_message_done
    - MEM
    linkageType: ''
    returnType: void
    signature: void worker_nak(fr_worker_t *worker, fr_channel_data_t *cd, fr_time_t
      now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/io/worker.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: worker_stop_request
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    linkageType: ''
    returnType: void
    signature: void worker_stop_request(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:521,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/io/worker.c:526,1
    - Dst: worker_stop_request
      Src: /src/freeradius-server/src/lib/io/worker.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 533
    functionName: _worker_request_timeout
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - worker_stop_request
    - REDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _worker_request_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      when, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:546,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/worker.c:546,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/worker.c:548,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/io/worker.c:548,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/worker.c:550,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:558,1
    - Dst: fr_time_tracking_start
      Src: /src/freeradius-server/src/lib/io/worker.c:559,1
    - Dst: fr_time_tracking_yield
      Src: /src/freeradius-server/src/lib/io/worker.c:560,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:563,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:563,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/worker.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - worker
    - request
    - now
    argTypes:
    - fr_worker_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 567
    functionName: worker_request_time_tracking_start
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - unlikely
    - RERROR
    - fr_timer_in
    - fr_assert
    - RDEBUG3
    - fr_heap_entry_inserted
    - fr_time_tracking_yield
    - fr_heap_insert
    - fr_time_tracking_start
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: int worker_request_time_tracking_start(fr_worker_t *worker, request_t
      *request, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:571,1
    - Dst: fr_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/worker.c:572,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:573,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/worker.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - worker
    - request
    - now
    argTypes:
    - fr_worker_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 577
    functionName: worker_request_time_tracking_end
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - RDEBUG3
    - TALLOC_FREE
    - fr_time_tracking_end
    linkageType: ''
    returnType: void
    signature: void worker_request_time_tracking_end(fr_worker_t *worker, request_t
      *request, fr_time_t now)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/io/worker.c:593,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:598,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:598,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:609,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:618,1
    - Dst: fr_channel_active
      Src: /src/freeradius-server/src/lib/io/worker.c:618,1
    - Dst: fr_channel_responder_uctx_get
      Src: /src/freeradius-server/src/lib/io/worker.c:622,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:623,1
    - Dst: fr_message_and_data_reserve
      Src: /src/freeradius-server/src/lib/io/worker.c:625,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:626,1
    - Dst: fr_listen_t*::app_io::encode
      Src: /src/freeradius-server/src/lib/io/worker.c:636,1
    - Dst: fr_listen_t*::app::encode
      Src: /src/freeradius-server/src/lib/io/worker.c:639,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/io/worker.c:643,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:653,1
    - Dst: fr_message_and_data_commit
      Src: /src/freeradius-server/src/lib/io/worker.c:654,1
    - Dst: fr_time_elapsed_update
      Src: /src/freeradius-server/src/lib/io/worker.c:673,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/io/worker.c:673,1
    - Dst: fr_time_elapsed_update
      Src: /src/freeradius-server/src/lib/io/worker.c:674,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/io/worker.c:676,1
    - Dst: fr_channel_send_reply
      Src: /src/freeradius-server/src/lib/io/worker.c:681,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/io/worker.c:689,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:694,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/worker.c:694,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:695,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:695,1
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/lib/io/worker.c:697,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 4
    argNames:
    - worker
    - request
    - send_reply
    - now
    argTypes:
    - fr_worker_t*
    - request_t*
    - bool
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 586
    functionDepth: 8
    functionLinenumber: 586
    functionLinenumberEnd: 705
    functionName: worker_send_reply
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_channel_responder_uctx_get
    - RDEBUG
    - fr_cond_assert_msg
    - fr_message_and_data_reserve
    - fr_listen_t*::app::encode
    - fr_time_add
    - RPERROR
    - REQUEST_VERIFY
    - fr_assert
    - fr_message_and_data_commit
    - fr_channel_send_reply
    - fr_heap_entry_inserted
    - fr_channel_active
    - fr_listen_t*::app_io::encode
    - fr_time_elapsed_update
    - fr_dlist_entry_unlink
    - fr_timer_armed
    linkageType: ''
    returnType: void
    signature: void worker_send_reply(fr_worker_t *worker, request_t *request, bool
      send_reply, fr_time_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/worker.c:725,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/worker.c:727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - number
    argTypes:
    - TALLOC_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 728
    functionName: itoa_internal
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    linkageType: ''
    returnType: char
    signature: char *itoa_internal(TALLOC_CTX *ctx, uint64_t number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/worker.c:740,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:740,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/worker.c:741,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:741,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/worker.c:744,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/io/worker.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - worker
    - request
    - now
    argTypes:
    - fr_worker_t*
    - request_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 748
    functionName: worker_request_init
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    - talloc_zero
    - MEM
    - fr_packet_alloc
    linkageType: ''
    returnType: void
    signature: void worker_request_init(fr_worker_t *worker, request_t *request, fr_time_t
      now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add_explicit
      Src: /src/freeradius-server/src/lib/io/worker.c:753,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/io/worker.c:754,1
    - Dst: itoa_internal
      Src: /src/freeradius-server/src/lib/io/worker.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 756
    functionName: worker_request_name_number
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - atomic_fetch_add_explicit
    - itoa_internal
    linkageType: ''
    returnType: void
    signature: void worker_request_name_number(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/io/worker.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - worker
    argTypes:
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: worker_num_requests
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_num_events
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t worker_num_requests(fr_worker_t *worker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_slab_deinit
      Src: /src/freeradius-server/src/lib/io/worker.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: _worker_request_deinit
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - request_slab_deinit
    linkageType: ''
    returnType: int
    signature: int _worker_request_deinit(request_t *request, UNUSED void *uctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: worker_num_requests
      Src: /src/freeradius-server/src/lib/io/worker.c:775,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/worker.c:776,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:784,1
    - Dst: request_slab_reserve
      Src: /src/freeradius-server/src/lib/io/worker.c:786,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/io/worker.c:788,1
    - Dst: request_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/io/worker.c:796,1
    - Dst: request_init
      Src: /src/freeradius-server/src/lib/io/worker.c:802,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/worker.c:803,1
    - Dst: worker_request_init
      Src: /src/freeradius-server/src/lib/io/worker.c:811,1
    - Dst: worker_request_name_number
      Src: /src/freeradius-server/src/lib/io/worker.c:812,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/io/worker.c:817,1
    - Dst: fr_listen_t*::app::decode
      Src: /src/freeradius-server/src/lib/io/worker.c:838,1
    - Dst: fr_listen_t*::app_io::decode
      Src: /src/freeradius-server/src/lib/io/worker.c:840,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:845,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/io/worker.c:845,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/worker.c:846,1
    - Dst: worker_nak
      Src: /src/freeradius-server/src/lib/io/worker.c:849,1
    - Dst: unlang_call_push
      Src: /src/freeradius-server/src/lib/io/worker.c:856,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/io/worker.c:857,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/worker.c:868,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:873,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:874,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/io/worker.c:893,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/lib/io/worker.c:894,1
    - Dst: fr_channel_null_reply
      Src: /src/freeradius-server/src/lib/io/worker.c:896,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/worker.c:897,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/io/worker.c:910,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/worker.c:913,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/lib/io/worker.c:921,1
    - Dst: worker_stop_request
      Src: /src/freeradius-server/src/lib/io/worker.c:923,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/io/worker.c:925,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/worker.c:928,1
    - Dst: worker_request_time_tracking_start
      Src: /src/freeradius-server/src/lib/io/worker.c:931,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/io/worker.c:932,1
    - Dst: fr_message_done
      Src: /src/freeradius-server/src/lib/io/worker.c:939,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/io/worker.c:944,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/io/worker.c:946,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/worker.c:946,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/io/worker.c:947,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/io/worker.c:950,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/io/worker.c:953,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 90
    argCount: 3
    argNames:
    - worker
    - cd
    - now
    argTypes:
    - fr_worker_t*
    - fr_channel_data_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 769
    functionDepth: 9
    functionLinenumber: 769
    functionLinenumberEnd: 955
    functionName: worker_request_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 1
    functionsReached:
    - request_slab_reserve
    - worker_request_init
    - unlang_interpret_set
    - unlang_interpret_signal
    - fr_channel_null_reply
    - request_slab_release
    - fr_listen_t*::app_io::decode
    - fr_message_done
    - MEM
    - worker_num_requests
    - RATE_LIMIT_GLOBAL
    - RWARN
    - fr_listen_t*::app::decode
    - fr_rb_insert
    - talloc_parent
    - worker_nak
    - worker_stop_request
    - worker_request_time_tracking_start
    - worker_request_name_number
    - fr_dlist_init
    - fr_rb_find
    - fr_assert
    - unlang_call_push
    - RERROR
    - fr_time_eq
    - request_slab_element_set_destructor
    - talloc_zero
    - request_init
    - fr_dlist_insert_tail
    - fr_rb_remove
    linkageType: ''
    returnType: void
    signature: void worker_request_bootstrap(fr_worker_t *worker, fr_channel_data_t
      *cd, fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_LARGER
      Src: /src/freeradius-server/src/lib/io/worker.c:969,1
    - Dst: CMP_PREFER_LARGER
      Src: /src/freeradius-server/src/lib/io/worker.c:975,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/io/worker.c:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 982
    functionName: worker_runnable_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_LARGER
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t worker_runnable_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/worker.c:992,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/io/worker.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 996
    functionName: worker_dedup_cmp
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t worker_dedup_cmp(void const *one, void const *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_set_thread_default
      Src: /src/freeradius-server/src/lib/io/worker.c:1019,1
    - Dst: fr_timer_list_force_run
      Src: /src/freeradius-server/src/lib/io/worker.c:1032,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/worker.c:1033,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:1034,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1039,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/worker.c:1039,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/io/worker.c:1041,1
    - Dst: worker_requests_cancel
      Src: /src/freeradius-server/src/lib/io/worker.c:1055,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:1057,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/io/worker.c:1057,1
    - Dst: fr_channel_responder_ack_close
      Src: /src/freeradius-server/src/lib/io/worker.c:1060,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:1063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - worker
    argTypes:
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1064
    functionName: fr_worker_destroy
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 3
    functionsReached:
    - fr_timer_list_force_run
    - unlikely
    - unlang_interpret_set_thread_default
    - talloc_free
    - fr_dlist_num_elements
    - fr_heap_num_elements
    - fr_assert
    - worker_requests_cancel
    - fr_assert_msg
    - fr_channel_responder_ack_close
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_worker_destroy(fr_worker_t *worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1071,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1072,1
    - Dst: worker_request_init
      Src: /src/freeradius-server/src/lib/io/worker.c:1074,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1080,1
    - Dst: request_is_internal
      Src: /src/freeradius-server/src/lib/io/worker.c:1080,1
    - Dst: worker_request_time_tracking_start
      Src: /src/freeradius-server/src/lib/io/worker.c:1081,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/io/worker.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1084
    functionName: _worker_request_internal_init
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - worker_request_time_tracking_start
    - worker_request_init
    - fr_time
    - talloc_get_type_abort
    - unlang_interpret_signal
    - fr_assert
    - request_is_internal
    linkageType: ''
    returnType: void
    signature: void _worker_request_internal_init(request_t *request, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1092,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1093,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1098,1
    - Dst: request_is_external
      Src: /src/freeradius-server/src/lib/io/worker.c:1098,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1099,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/io/worker.c:1105,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/io/worker.c:1106,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:1120,1
    - Dst: request_is_internal
      Src: /src/freeradius-server/src/lib/io/worker.c:1120,1
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/io/worker.c:1120,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:1122,1
    - Dst: unlang_interpret_is_resumable
      Src: /src/freeradius-server/src/lib/io/worker.c:1122,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:1124,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/io/worker.c:1124,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/io/worker.c:1125,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/io/worker.c:1126,1
    - Dst: worker_request_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/worker.c:1131,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/io/worker.c:1136,1
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/lib/io/worker.c:1137,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/worker.c:1146,1
    - Dst: fr_channel_active
      Src: /src/freeradius-server/src/lib/io/worker.c:1146,1
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/lib/io/worker.c:1147,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/worker.c:1148,1
    - Dst: worker_send_reply
      Src: /src/freeradius-server/src/lib/io/worker.c:1152,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/io/worker.c:1152,1
    - Dst: request_slab_release
      Src: /src/freeradius-server/src/lib/io/worker.c:1153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1090
    functionDepth: 9
    functionLinenumber: 1090
    functionLinenumberEnd: 1154
    functionName: _worker_request_done_external
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - fr_assert_msg
    - worker_send_reply
    - fr_dlist_entry_unlink
    - request_is_external
    - request_slab_release
    - fr_rb_node_inline_in_tree
    - unlikely
    - fr_time
    - talloc_get_type_abort
    - fr_channel_active
    - fr_assert
    - request_is_internal
    - fr_rb_delete
    - unlang_interpret_is_resumable
    - unlang_request_is_cancelled
    - RDEBUG
    - unlang_interpret_stack_depth
    - request_is_detached
    - worker_request_time_tracking_end
    linkageType: ''
    returnType: void
    signature: void _worker_request_done_external(request_t *request, UNUSED rlm_rcode_t
      rcode, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1162,1
    - Dst: worker_request_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/worker.c:1164,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1164,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1166,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:1166,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1167,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/io/worker.c:1167,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1168,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/io/worker.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1169
    functionName: _worker_request_done_internal
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - fr_time
    - talloc_get_type_abort
    - fr_assert
    - fr_heap_entry_inserted
    - worker_request_time_tracking_end
    - fr_timer_armed
    linkageType: ''
    returnType: void
    signature: void _worker_request_done_internal(request_t *request, UNUSED rlm_rcode_t
      rcode, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1183,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:1183,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/io/worker.c:1191,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1193,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/io/worker.c:1193,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1203
    functionName: _worker_request_done_detached
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - TALLOC_FREE
    - talloc_free
    - fr_assert
    - fr_heap_entry_inserted
    linkageType: ''
    returnType: void
    signature: void _worker_request_done_detached(request_t *request, UNUSED rlm_rcode_t
      rcode, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1211,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1212,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1214,1
    - Dst: request_is_detachable
      Src: /src/freeradius-server/src/lib/io/worker.c:1216,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:1223,1
    - Dst: fr_time_tracking_resume
      Src: /src/freeradius-server/src/lib/io/worker.c:1224,1
    - Dst: worker_request_time_tracking_end
      Src: /src/freeradius-server/src/lib/io/worker.c:1226,1
    - Dst: request_detach
      Src: /src/freeradius-server/src/lib/io/worker.c:1228,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/io/worker.c:1228,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/io/worker.c:1230,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/io/worker.c:1232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1209
    functionDepth: 2
    functionLinenumber: 1209
    functionLinenumberEnd: 1236
    functionName: _worker_request_detach
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - request_detach
    - RPEDEBUG
    - fr_time
    - request_is_detachable
    - talloc_get_type_abort
    - RDEBUG3
    - fr_assert_msg
    - RDEBUG4
    - worker_request_time_tracking_end
    - fr_time_tracking_resume
    linkageType: ''
    returnType: void
    signature: void _worker_request_detach(request_t *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1245,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/worker.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1247
    functionName: _worker_request_runnable
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_heap_insert
    - RDEBUG4
    linkageType: ''
    returnType: void
    signature: void _worker_request_runnable(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1254,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/worker.c:1255,1
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/io/worker.c:1255,1
    - Dst: fr_time_tracking_yield
      Src: /src/freeradius-server/src/lib/io/worker.c:1255,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1256
    functionName: _worker_request_yield
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_time
    - likely
    - request_is_detached
    - RDEBUG4
    - fr_time_tracking_yield
    linkageType: ''
    returnType: void
    signature: void _worker_request_yield(request_t *request, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1263,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/worker.c:1264,1
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/io/worker.c:1264,1
    - Dst: fr_time_tracking_resume
      Src: /src/freeradius-server/src/lib/io/worker.c:1264,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1265
    functionName: _worker_request_resume
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_time
    - likely
    - request_is_detached
    - RDEBUG4
    - fr_time_tracking_resume
    linkageType: ''
    returnType: void
    signature: void _worker_request_resume(request_t *request, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1273
    functionName: _worker_request_scheduled
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_heap_entry_inserted
    linkageType: ''
    returnType: bool
    signature: bool _worker_request_scheduled(request_t const *request, UNUSED void
      *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1280,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1282,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/io/worker.c:1285,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/io/worker.c:1288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1289
    functionName: _worker_request_prioritise
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_heap_insert
    - RDEBUG4
    - fr_heap_extract
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _worker_request_prioritise(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/io/worker.c:1317,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/io/worker.c:1317,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/io/worker.c:1317,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/io/worker.c:1318,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/io/worker.c:1320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1321,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/io/worker.c:1321,1
    - Dst: fr_channel_active
      Src: /src/freeradius-server/src/lib/io/worker.c:1327,1
    - Dst: worker_stop_request
      Src: /src/freeradius-server/src/lib/io/worker.c:1328,1
    - Dst: unlang_interpret
      Src: /src/freeradius-server/src/lib/io/worker.c:1332,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - worker
    - start
    argTypes:
    - fr_worker_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1336
    functionName: worker_run_request
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - worker_stop_request
    - fr_time
    - unlang_interpret
    - fr_time_delta_lt
    - fr_time_sub
    - REQUEST_VERIFY
    - fr_assert
    - fr_heap_entry_inserted
    - fr_time_delta_from_msec
    - fr_channel_active
    - fr_heap_pop
    linkageType: ''
    returnType: void
    signature: void worker_run_request(fr_worker_t *worker, fr_time_t start)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/io/worker.c:1355,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1358,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/io/worker.c:1362,1
    - Dst: CHECK_CONFIG
      Src: /src/freeradius-server/src/lib/io/worker.c:1377,1
    - Dst: CHECK_CONFIG
      Src: /src/freeradius-server/src/lib/io/worker.c:1378,1
    - Dst: CHECK_CONFIG
      Src: /src/freeradius-server/src/lib/io/worker.c:1379,1
    - Dst: CHECK_CONFIG
      Src: /src/freeradius-server/src/lib/io/worker.c:1380,1
    - Dst: CHECK_CONFIG
      Src: /src/freeradius-server/src/lib/io/worker.c:1381,1
    - Dst: CHECK_CONFIG_TIME_DELTA
      Src: /src/freeradius-server/src/lib/io/worker.c:1382,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/io/worker.c:1382,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/io/worker.c:1382,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/io/worker.c:1384,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:1386,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/worker.c:1390,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/io/worker.c:1400,1
    - Dst: fr_atomic_queue_talloc
      Src: /src/freeradius-server/src/lib/io/worker.c:1402,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1404,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:1406,1
    - Dst: fr_control_create
      Src: /src/freeradius-server/src/lib/io/worker.c:1410,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/worker.c:1412,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/worker.c:1416,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/worker.c:1417,1
    - Dst: fr_control_callback_add
      Src: /src/freeradius-server/src/lib/io/worker.c:1421,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/worker.c:1422,1
    - Dst: fr_control_open
      Src: /src/freeradius-server/src/lib/io/worker.c:1426,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/io/worker.c:1427,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:1431,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1433,1
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:1437,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1439,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:1443,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1445,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:1449,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1451,1
    - Dst: unlang_interpret_init
      Src: /src/freeradius-server/src/lib/io/worker.c:1455,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1473,1
    - Dst: request_slab_list_alloc
      Src: /src/freeradius-server/src/lib/io/worker.c:1481,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/io/worker.c:1482,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/io/worker.c:1483,1
    - Dst: unlang_interpret_set_thread_default
      Src: /src/freeradius-server/src/lib/io/worker.c:1488,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 99
    argCount: 6
    argNames:
    - ctx
    - el
    - name
    - logger
    - lvl
    - config
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - char*
    - fr_log_t*
    - fr_log_lvl_t
    - fr_worker_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1350
    functionDepth: 2
    functionLinenumber: 1350
    functionLinenumberEnd: 1491
    functionName: fr_worker_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 2
    functionsReached:
    - CHECK_CONFIG
    - fr_rb_inline_talloc_alloc
    - talloc_strdup
    - unlang_interpret_init
    - fr_heap_talloc_alloc
    - fr_control_callback_add
    - talloc_zero_array
    - fr_strerror_const_push
    - memset
    - fr_strerror_const
    - unlang_interpret_set_thread_default
    - UNCONST
    - request_slab_list_alloc
    - fr_time_delta_from_sec
    - pthread_self
    - talloc_free
    - fr_control_create
    - CHECK_CONFIG_TIME_DELTA
    - talloc_zero
    - fr_timer_list_ordered_alloc
    - fr_control_open
    - fr_atomic_queue_talloc
    linkageType: ''
    returnType: fr_worker_t
    signature: "fr_worker_t *fr_worker_alloc(TALLOC_CTX *ctx, fr_event_list_t *el,
      char const *name, fr_log_t const *logger, fr_log_lvl_t lvl,\n\t\t\t     fr_worker_config_t
      *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _min
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1371
    functionName: CHECK_CONFIG
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CONFIG(_x, _min, _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _min
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1376
    functionName: CHECK_CONFIG_TIME_DELTA
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CONFIG_TIME_DELTA(_x, _min, _max)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/worker.c:1516,1
    - Dst: worker_num_requests
      Src: /src/freeradius-server/src/lib/io/worker.c:1518,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1520,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1527,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/io/worker.c:1528,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1528,1
    - Dst: fr_event_loop_exiting
      Src: /src/freeradius-server/src/lib/io/worker.c:1530,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1531,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/io/worker.c:1535,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1539,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/io/worker.c:1545,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/io/worker.c:1546,1
    - Dst: worker_run_request
      Src: /src/freeradius-server/src/lib/io/worker.c:1552,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1552,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - worker
    argTypes:
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1502
    functionDepth: 3
    functionLinenumber: 1502
    functionLinenumberEnd: 1554
    functionName: fr_worker
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 3
    functionsReached:
    - DEBUG4
    - PERROR
    - worker_num_requests
    - fr_event_service
    - fr_time
    - fr_heap_num_elements
    - worker_run_request
    - fr_event_loop_exiting
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void fr_worker(fr_worker_t *worker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1562,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/io/worker.c:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fr_time_t
    - fr_time_delta_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1574
    functionName: fr_worker_pre_event
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_heap_peek
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_worker_pre_event(UNUSED fr_time_t now, UNUSED fr_time_delta_t
      wake, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1583,1
    - Dst: worker_run_request
      Src: /src/freeradius-server/src/lib/io/worker.c:1585,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/io/worker.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1581
    functionDepth: 3
    functionLinenumber: 1581
    functionLinenumberEnd: 1586
    functionName: fr_worker_post_event
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - worker_run_request
    - talloc_get_type_abort
    - fr_time
    linkageType: ''
    returnType: void
    signature: void fr_worker_post_event(UNUSED fr_event_list_t *el, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1597,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1598,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1600,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1601,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1603,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1604,1
    - Dst: fr_time_tracking_debug
      Src: /src/freeradius-server/src/lib/io/worker.c:1607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - worker
    - fp
    argTypes:
    - fr_worker_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1593
    functionDepth: 1
    functionLinenumber: 1593
    functionLinenumberEnd: 1609
    functionName: fr_worker_debug
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 1
    functionsReached:
    - fr_time_tracking_debug
    - fr_time_delta_unwrap
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_worker_debug(fr_worker_t *worker, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/io/worker.c:1628,1
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/lib/io/worker.c:1629,1
    - Dst: fr_channel_create
      Src: /src/freeradius-server/src/lib/io/worker.c:1631,1
    - Dst: fr_channel_set_recv_request
      Src: /src/freeradius-server/src/lib/io/worker.c:1634,1
    - Dst: fr_channel_signal_open
      Src: /src/freeradius-server/src/lib/io/worker.c:1639,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/worker.c:1640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - worker
    - ctx
    - master
    argTypes:
    - fr_worker_t*
    - TALLOC_CTX*
    - fr_control_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1620
    functionDepth: 3
    functionLinenumber: 1620
    functionLinenumberEnd: 1645
    functionName: fr_worker_channel_create
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 3
    functionsReached:
    - pthread_self
    - talloc_free
    - fr_channel_set_recv_request
    - fr_channel_create
    - fr_channel_signal_open
    - pthread_equal
    linkageType: ''
    returnType: fr_channel_t
    signature: fr_channel_t *fr_worker_channel_create(fr_worker_t *worker, TALLOC_CTX
      *ctx, fr_control_t *master)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_worker_thread
      Src: /src/freeradius-server/src/lib/io/worker.c:1654,1
    - Dst: fr_worker_listen_cancel_self
      Src: /src/freeradius-server/src/lib/io/worker.c:1655,1
    - Dst: fr_worker_rb_init
      Src: /src/freeradius-server/src/lib/io/worker.c:1658,1
    - Dst: fr_control_message_send
      Src: /src/freeradius-server/src/lib/io/worker.c:1661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - worker
    - li
    argTypes:
    - fr_worker_t*
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1647
    functionDepth: 6
    functionLinenumber: 1647
    functionLinenumberEnd: 1662
    functionName: fr_worker_listen_cancel
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 1
    functionsReached:
    - is_worker_thread
    - fr_worker_listen_cancel_self
    - fr_worker_rb_init
    - fr_control_message_send
    linkageType: ''
    returnType: int
    signature: int fr_worker_listen_cancel(fr_worker_t *worker, fr_listen_t const
      *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1673,1
    - Dst: fr_atomic_queue_verify
      Src: /src/freeradius-server/src/lib/io/worker.c:1674,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1676,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1677,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1679,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1680,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1682,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1683,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/io/worker.c:1685,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1686,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/worker.c:1691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - worker
    argTypes:
    - fr_worker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1693
    functionName: worker_verify
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    - fr_atomic_queue_verify
    linkageType: ''
    returnType: void
    signature: void worker_verify(fr_worker_t *worker)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - worker
    - num
    - stats
    argTypes:
    - fr_worker_t*
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1696
    functionDepth: 0
    functionLinenumber: 1696
    functionLinenumberEnd: 1711
    functionName: fr_worker_stats
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_worker_stats(fr_worker_t const *worker, int num, uint64_t *stats)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/io/worker.c:1718,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1719,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1720,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1721,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1722,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1723,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1724,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1725,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/io/worker.c:1725,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/io/worker.c:1728,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1730,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1730,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/io/worker.c:1733,1
    - Dst: fr_time_delta_div
      Src: /src/freeradius-server/src/lib/io/worker.c:1734,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1734,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1736,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1736,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1739,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1739,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/worker.c:1742,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/io/worker.c:1742,1
    - Dst: fr_time_elapsed_fprint
      Src: /src/freeradius-server/src/lib/io/worker.c:1744,1
    - Dst: fr_time_elapsed_fprint
      Src: /src/freeradius-server/src/lib/io/worker.c:1745,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - void*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1749
    functionName: cmd_stats_worker
    functionSourceFile: /src/freeradius-server/src/lib/io/worker.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time_elapsed_fprint
    - fr_time_delta_div
    - fr_heap_num_elements
    - fprintf
    - fr_time_delta_ispos
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmd_stats_worker(FILE *fp, UNUSED FILE *fp_err, void *ctx, fr_cmd_info_t
      const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _store
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: cas_incr
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cas_incr(_store, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _store
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: cas_decr
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cas_decr(_store, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: load
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load(_var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: acquire
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: acquire(_var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _store
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: store
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store(_store, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:122,1
    - Dst: store
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:127,1
    - Dst: store
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:128,1
    - Dst: atomic_thread_fence
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - aq
    - size
    argTypes:
    - fr_atomic_queue_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: atomic_queue_init
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached:
    - atomic_thread_fence
    - store
    linkageType: ''
    returnType: void
    signature: void atomic_queue_init(fr_atomic_queue_t *aq, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_roundup_pow2_uint64
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:153,1
    - Dst: talloc_aligned_array
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:162,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:167,1
    - Dst: atomic_queue_init
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - TALLOC_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: fr_atomic_queue_talloc
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 10
    functionsReached:
    - talloc_set_name_const
    - talloc_aligned_array
    - fr_roundup_pow2_uint64
    - atomic_queue_init
    linkageType: ''
    returnType: fr_atomic_queue_t
    signature: fr_atomic_queue_t *fr_atomic_queue_talloc(TALLOC_CTX *ctx, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_roundup_pow2_uint64
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:195,1
    - Dst: posix_memalign
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:198,1
    - Dst: atomic_queue_init
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 204
    functionName: fr_atomic_queue_malloc
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached:
    - fr_roundup_pow2_uint64
    - atomic_queue_init
    - posix_memalign
    linkageType: ''
    returnType: fr_atomic_queue_t
    signature: fr_atomic_queue_t *fr_atomic_queue_malloc(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:217,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - aq
    argTypes:
    - fr_atomic_queue_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: fr_atomic_queue_free
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached:
    - free
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_atomic_queue_free(fr_atomic_queue_t **aq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:261,1
    - Dst: acquire
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:275,1
    - Dst: fr_atomic_queue_debug
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:287,1
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:297,1
    - Dst: cas_incr
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:314,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:335,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:335,1
    - Dst: store
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - aq
    - data
    argTypes:
    - fr_atomic_queue_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 344
    functionName: fr_atomic_queue_push
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 6
    functionsReached:
    - unlikely
    - load
    - cas_incr
    - store
    - exit
    - fr_atomic_queue_debug
    - acquire
    linkageType: ''
    returnType: bool
    signature: bool fr_atomic_queue_push(fr_atomic_queue_t *aq, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:362,1
    - Dst: acquire
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:368,1
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:388,1
    - Dst: cas_incr
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:396,1
    - Dst: store
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - aq
    - p_data
    argTypes:
    - fr_atomic_queue_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 415
    functionName: fr_atomic_queue_pop
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 7
    functionsReached:
    - store
    - acquire
    - cas_incr
    - load
    linkageType: ''
    returnType: bool
    signature: bool fr_atomic_queue_pop(fr_atomic_queue_t *aq, void **p_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aq
    argTypes:
    - fr_atomic_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 420
    functionName: fr_atomic_queue_size
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fr_atomic_queue_size(fr_atomic_queue_t *aq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:460,1
    - Dst: fr_atomic_queue_malloc
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:463,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:465,1
    - Dst: atomic_init
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - seg_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: atomic_ring_entry_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached:
    - atomic_init
    - free
    - fr_atomic_queue_malloc
    - malloc
    linkageType: ''
    returnType: fr_atomic_ring_entry_t
    signature: fr_atomic_ring_entry_t *atomic_ring_entry_alloc(size_t seg_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atomic_queue_free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:475,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - fr_atomic_ring_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: atomic_ring_entry_free
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 0
    functionsReached:
    - free
    - fr_atomic_queue_free
    linkageType: ''
    returnType: void
    signature: void atomic_ring_entry_free(fr_atomic_ring_entry_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:485,1
    - Dst: atomic_ring_entry_free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ring
    argTypes:
    - fr_atomic_ring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 492
    functionName: _atomic_ring_free
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 6
    functionsReached:
    - atomic_ring_entry_free
    - atomic_load_explicit
    linkageType: ''
    returnType: int
    signature: int _atomic_ring_free(fr_atomic_ring_t *ring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:511,1
    - Dst: atomic_ring_entry_alloc
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:514,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:516,1
    - Dst: atomic_init
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:522,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - seg_size
    argTypes:
    - TALLOC_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 526
    functionName: fr_atomic_ring_alloc
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 7
    functionsReached:
    - atomic_ring_entry_alloc
    - atomic_init
    - talloc_set_destructor
    - talloc_free
    - talloc
    linkageType: ''
    returnType: fr_atomic_ring_t
    signature: fr_atomic_ring_t *fr_atomic_ring_alloc(TALLOC_CTX *ctx, size_t seg_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ring_p
    argTypes:
    - fr_atomic_ring_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: fr_atomic_ring_free
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 6
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_atomic_ring_free(fr_atomic_ring_t **ring_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:557,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:559,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:559,1
    - Dst: atomic_ring_entry_alloc
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:561,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:562,1
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:569,1
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:570,1
    - Dst: fr_atomic_queue_push
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ring
    - data
    argTypes:
    - fr_atomic_ring_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 583
    functionName: fr_atomic_ring_push
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 6
    functionsReached:
    - unlikely
    - atomic_ring_entry_alloc
    - likely
    - atomic_store_explicit
    - fr_atomic_queue_push
    - atomic_load_explicit
    linkageType: ''
    returnType: bool
    signature: bool fr_atomic_ring_push(fr_atomic_ring_t *ring, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:604,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:604,1
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:611,1
    - Dst: fr_atomic_queue_pop
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:621,1
    - Dst: atomic_ring_entry_free
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ring
    - p_data
    argTypes:
    - fr_atomic_ring_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 628
    functionName: fr_atomic_ring_pop
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 7
    functionsReached:
    - atomic_ring_entry_free
    - likely
    - fr_atomic_queue_pop
    - atomic_load_explicit
    linkageType: ''
    returnType: bool
    signature: bool fr_atomic_ring_pop(fr_atomic_ring_t *ring, void **p_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aq
    argTypes:
    - fr_atomic_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: fr_atomic_queue_verify
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_atomic_queue_verify(fr_atomic_queue_t *aq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:666,1
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:667,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:669,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:677,1
    - Dst: load
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:678,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:685,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/io/atomic_queue.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - fp
    - aq
    argTypes:
    - FILE*
    - fr_atomic_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 691
    functionName: fr_atomic_queue_debug
    functionSourceFile: /src/freeradius-server/src/lib/io/atomic_queue.c
    functionUses: 2
    functionsReached:
    - fprintf
    - load
    linkageType: ''
    returnType: void
    signature: void fr_atomic_queue_debug(FILE * fp, fr_atomic_queue_t *aq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.h:158,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: fr_tls_session_conf
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_tls_conf_t
    signature: fr_tls_conf_t *fr_tls_session_conf(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.h:168,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: fr_tls_session
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_tls_session_t
    signature: fr_tls_session_t *fr_tls_session(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: fr_tls_session_request_bound
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    linkageType: ''
    returnType: bool
    signature: bool fr_tls_session_request_bound(SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:190,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.h:194,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: fr_tls_session_request
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 2
    functionsReached:
    - SSL_get_ex_data
    - talloc_get_type_abort
    linkageType: ''
    returnType: request_t
    signature: request_t *fr_tls_session_request(SSL const *ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.h:202,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:207,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.h:209,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/session.h:210,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:214,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/session.h:215,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/session.h:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - file
    - line
    - ssl
    - request
    argTypes:
    - char*
    - int
    - SSL*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 219
    functionName: _fr_tls_session_request_bind
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - SSL_get_ex_data
    - RDEBUG3
    - fr_assert
    - SSL_set_ex_data
    linkageType: ''
    returnType: void
    signature: "void _fr_tls_session_request_bind(char const *file, int line,\n\t\t\t\t\t\t\t\t
      SSL *ssl, request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ssl
    - ','
    - _request
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: fr_tls_session_request_bind
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_session_request_bind(_ssl, _request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/session.h:231,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.h:235,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.h:238,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.h:239,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/session.h:240,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/session.h:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - file
    - line
    - ssl
    argTypes:
    - char*
    - int
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 244
    functionName: _fr_tls_session_request_unbind
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - RDEBUG3
    - fr_assert
    - fr_tls_session_request
    - SSL_set_ex_data
    linkageType: ''
    returnType: void
    signature: void _fr_tls_session_request_unbind(char const *file, int line, SSL
      *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: fr_tls_session_request_unbind
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_session_request_unbind(_ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/tls/session.h:261,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.h:262,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/tls/session.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - child
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: fr_tls_session_extra_pairs_copy_to_child
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - MEM
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void fr_tls_session_extra_pairs_copy_to_child(request_t *child, fr_tls_session_t
      *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.h:276,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/tls/session.h:276,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/session.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tls_session
    - vp
    argTypes:
    - fr_tls_session_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: fr_tls_session_extra_pair_add
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - fr_pair_append
    - MEM
    - fr_pair_copy
    linkageType: ''
    returnType: void
    signature: void fr_tls_session_extra_pair_add(fr_tls_session_t *tls_session, fr_pair_t
      *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/session.h:288,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/tls/session.h:288,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/session.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tls_session
    - vp
    argTypes:
    - fr_tls_session_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: fr_tls_session_extra_pair_add_shallow
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.h
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_parent
    - fr_pair_append
    linkageType: ''
    returnType: void
    signature: void fr_tls_session_extra_pair_add_shallow(fr_tls_session_t *tls_session,
      fr_pair_t *vp)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - mode
    - depth
    - untrusted
    argTypes:
    - fr_tls_verify_mode_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: verify_applies
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_applies(fr_tls_verify_mode_t mode, int depth, int untrusted)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/verify.c:74,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/verify.c:90,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/tls/verify.c:92,1
    - Dst: fr_tls_x509_objects_log
      Src: /src/freeradius-server/src/lib/tls/verify.c:93,1
    - Dst: X509_STORE_get0_objects
      Src: /src/freeradius-server/src/lib/tls/verify.c:93,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/tls/verify.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - request
    - ctx
    - err
    argTypes:
    - request_t*
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 101
    functionName: tls_verify_error_detail
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached:
    - X509_STORE_get0_objects
    - fr_tls_x509_objects_log
    - RINDENT
    - RDEBUG2
    - SSL_CTX_get_ex_data
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void tls_verify_error_detail(request_t *request, SSL_CTX *ctx, int
      err)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/freeradius-server/src/lib/tls/verify.c:145,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/freeradius-server/src/lib/tls/verify.c:146,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/freeradius-server/src/lib/tls/verify.c:147,1
    - Dst: X509_STORE_CTX_get_num_untrusted
      Src: /src/freeradius-server/src/lib/tls/verify.c:148,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/verify.c:154,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/freeradius-server/src/lib/tls/verify.c:154,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/freeradius-server/src/lib/tls/verify.c:155,1
    - Dst: fr_tls_session_conf
      Src: /src/freeradius-server/src/lib/tls/verify.c:156,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/verify.c:157,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/verify.c:157,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/verify.c:158,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/verify.c:166,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/verify.c:175,1
    - Dst: X509_STORE_CTX_set_error
      Src: /src/freeradius-server/src/lib/tls/verify.c:176,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/verify.c:184,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:184,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/tls/verify.c:186,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/verify.c:193,1
    - Dst: X509_STORE_CTX_get0_chain
      Src: /src/freeradius-server/src/lib/tls/verify.c:196,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/verify.c:197,1
    - Dst: sk_X509_num
      Src: /src/freeradius-server/src/lib/tls/verify.c:198,1
    - Dst: sk_X509_value
      Src: /src/freeradius-server/src/lib/tls/verify.c:199,1
    - Dst: X509_NAME_oneline
      Src: /src/freeradius-server/src/lib/tls/verify.c:201,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/verify.c:201,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/verify.c:204,1
    - Dst: X509_verify_cert_error_string
      Src: /src/freeradius-server/src/lib/tls/verify.c:214,1
    - Dst: verify_applies
      Src: /src/freeradius-server/src/lib/tls/verify.c:215,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/verify.c:218,1
    - Dst: tls_verify_error_detail
      Src: /src/freeradius-server/src/lib/tls/verify.c:219,1
    - Dst: X509_STORE_CTX_set_error
      Src: /src/freeradius-server/src/lib/tls/verify.c:222,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/tls/verify.c:224,1
    - Dst: tls_verify_error_detail
      Src: /src/freeradius-server/src/lib/tls/verify.c:225,1
    - Dst: verify_applies
      Src: /src/freeradius-server/src/lib/tls/verify.c:230,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/lib/tls/verify.c:231,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/tls/verify.c:232,1
    - Dst: fr_pair_count_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:244,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/verify.c:247,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:247,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/verify.c:248,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/verify.c:257,1
    - Dst: fr_tls_session_pairs_from_x509_cert
      Src: /src/freeradius-server/src/lib/tls/verify.c:267,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:269,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:271,1
    - Dst: log_request_pair
      Src: /src/freeradius-server/src/lib/tls/verify.c:277,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/verify.c:292,1
    - Dst: fr_tls_verify_cert_request
      Src: /src/freeradius-server/src/lib/tls/verify.c:302,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/lib/tls/verify.c:302,1
    - Dst: ASYNC_pause_job
      Src: /src/freeradius-server/src/lib/tls/verify.c:311,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/verify.c:316,1
    - Dst: X509_STORE_CTX_set_error
      Src: /src/freeradius-server/src/lib/tls/verify.c:317,1
    - Dst: fr_tls_verify_cert_reset
      Src: /src/freeradius-server/src/lib/tls/verify.c:318,1
    - Dst: fr_tls_verify_cert_result
      Src: /src/freeradius-server/src/lib/tls/verify.c:327,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/verify.c:328,1
    - Dst: X509_STORE_CTX_set_error
      Src: /src/freeradius-server/src/lib/tls/verify.c:330,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/verify.c:336,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 92
    argCount: 2
    argNames:
    - ok
    - x509_ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 339
    functionName: fr_tls_verify_cert_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_get_num_untrusted
    - sk_X509_value
    - fr_cond_assert
    - fr_tls_verify_cert_request
    - REDEBUG
    - SSL_get_ex_data
    - tls_verify_error_detail
    - fr_assert_msg
    - fr_tls_session_pairs_from_x509_cert
    - X509_STORE_CTX_get_error
    - MEM
    - fr_pair_list_empty
    - unlikely
    - fr_pair_count_by_da
    - verify_applies
    - log_request_pair
    - X509_NAME_oneline
    - fr_tls_session_conf
    - talloc_get_type_abort
    - fr_pair_append
    - fr_tls_session_request
    - X509_STORE_CTX_get_ex_data
    - SSL_session_reused
    - X509_STORE_CTX_get_current_cert
    - ASYNC_pause_job
    - fr_pair_afrom_da
    - X509_verify_cert_error_string
    - fr_pair_delete_by_da
    - fr_pair_find_or_append_by_da
    - sk_X509_num
    - RDEBUG3
    - STACK_OF
    - RDEBUG2
    - X509_STORE_CTX_get_error_depth
    - fr_tls_verify_cert_result
    - unlang_request_is_cancelled
    - X509_STORE_CTX_set_error
    - RERROR
    - fr_tls_verify_cert_reset
    - X509_STORE_CTX_get0_chain
    - fr_pair_find_by_da_idx
    - SSL_get_SSL_CTX
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int fr_tls_verify_cert_cb(int ok, X509_STORE_CTX *x509_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/verify.c:362,1
    - Dst: SSL_get0_peer_certificate
      Src: /src/freeradius-server/src/lib/tls/verify.c:370,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/freeradius-server/src/lib/tls/verify.c:373,1
    - Dst: X509_STORE_CTX_new
      Src: /src/freeradius-server/src/lib/tls/verify.c:374,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/freeradius-server/src/lib/tls/verify.c:375,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/verify.c:376,1
    - Dst: X509_STORE_CTX_init
      Src: /src/freeradius-server/src/lib/tls/verify.c:394,1
    - Dst: X509_STORE_CTX_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/verify.c:395,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/freeradius-server/src/lib/tls/verify.c:395,1
    - Dst: X509_STORE_CTX_set_verify_cb
      Src: /src/freeradius-server/src/lib/tls/verify.c:396,1
    - Dst: X509_verify_cert
      Src: /src/freeradius-server/src/lib/tls/verify.c:398,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/freeradius-server/src/lib/tls/verify.c:400,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/verify.c:403,1
    - Dst: X509_verify_cert_error_string
      Src: /src/freeradius-server/src/lib/tls/verify.c:403,1
    - Dst: X509_STORE_CTX_free
      Src: /src/freeradius-server/src/lib/tls/verify.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - request
    - ssl
    argTypes:
    - request_t*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 411
    functionName: fr_tls_verify_cert_chain
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - X509_verify_cert_error_string
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - REDEBUG
    - X509_STORE_CTX_new
    - SSL_get_SSL_CTX
    - STACK_OF
    - SSL_CTX_get_ex_data
    - X509_STORE_CTX_set_verify_cb
    - SSL_get0_peer_certificate
    - X509_STORE_CTX_set_ex_data
    - X509_STORE_CTX_get_error
    - SSL_get_peer_cert_chain
    linkageType: ''
    returnType: int
    signature: int fr_tls_verify_cert_chain(request_t *request, SSL *ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/verify.c:418,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/verify.c:421,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:423,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/verify.c:425,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:431,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:433,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/tls/verify.c:434,1
    - Dst: fr_pair_steal_append
      Src: /src/freeradius-server/src/lib/tls/verify.c:435,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/verify.c:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 448
    functionName: tls_verify_client_cert_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - fr_pair_remove
    - fr_assert
    - RDEBUG2
    - fr_pair_find_by_da
    - fr_pair_steal_append
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_verify_client_cert_result(request_t *request, void
      *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_conf
      Src: /src/freeradius-server/src/lib/tls/verify.c:461,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/verify.c:466,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/lib/tls/verify.c:466,1
    - Dst: fr_tls_session_extra_pairs_copy_to_child
      Src: /src/freeradius-server/src/lib/tls/verify.c:472,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/verify.c:478,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/tls/verify.c:478,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:485,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/verify.c:486,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/tls/verify.c:486,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/verify.c:489,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/verify.c:490,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/tls/verify.c:490,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/verify.c:494,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/tls/verify.c:494,1
    - Dst: fr_tls_call_push
      Src: /src/freeradius-server/src/lib/tls/verify.c:501,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/verify.c:503,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/verify.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 509
    functionName: tls_verify_client_cert_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_pair_find_by_da
    - talloc_free
    - unlang_subrequest_alloc
    - pair_append_request
    - fr_pair_append
    - fr_tls_session_conf
    - pair_prepend_request
    - fr_tls_call_push
    - fr_tls_session_extra_pairs_copy_to_child
    - MEM
    - fr_pair_copy
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_verify_client_cert_push(request_t *request, fr_tls_session_t
      *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/verify.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tls_session
    argTypes:
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: fr_tls_verify_cert_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: bool
    signature: bool fr_tls_verify_cert_result(fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tls_session
    argTypes:
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: fr_tls_verify_cert_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_tls_verify_cert_reset(fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/verify.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tls_session
    - session_resumed
    argTypes:
    - fr_tls_session_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: fr_tls_verify_cert_request
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_tls_verify_cert_request(fr_tls_session_t *tls_session, bool
      session_resumed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls_verify_client_cert_push
      Src: /src/freeradius-server/src/lib/tls/verify.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 569
    functionName: fr_tls_verify_cert_pending_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/verify.c
    functionUses: 0
    functionsReached:
    - tls_verify_client_cert_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t fr_tls_verify_cert_pending_push(request_t *request,
      fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _chain
    - ','
    - _leaf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: fr_tls_strerror_push_chain
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_strerror_push_chain(_chain, _leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _chain
    - ','
    - _leaf
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: fr_tls_strerror_push_chain_marker
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_strerror_push_chain_marker(_chain, _leaf, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _objects
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: fr_tls_strerror_push_x509_objects
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_strerror_push_x509_objects(_objects)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _msg
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: fr_tls_strerror_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_strerror_vprintf(_msg, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: fr_tls_strerror_printf
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_strerror_printf(_msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/tls/strerror.h:88,1
    - Dst: _fr_tls_strerror_vprintf
      Src: /src/freeradius-server/src/lib/tls/strerror.h:89,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/strerror.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - msg
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: _fr_tls_strerror_printf
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.h
    functionUses: 0
    functionsReached:
    - va_end
    - _fr_tls_strerror_vprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int _fr_tls_strerror_printf(char const *file, int line, char const
      *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _request
    - ','
    - _log_type
    - ','
    - _chain
    - ','
    - _leaf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: fr_tls_chain_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_chain_log(_request, _log_type, _chain, _leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _request
    - ','
    - _log_type
    - ','
    - _chain
    - ','
    - _leaf
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: fr_tls_chain_marker_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_chain_marker_log(_request, _log_type, _chain, _leaf, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _request
    - ','
    - _log_type
    - ','
    - _objects
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: fr_tls_x509_objects_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_x509_objects_log(_request, _log_type, _objects)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _request
    - ','
    - _type
    - ','
    - _lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: fr_tls_request_log_bio
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_request_log_bio(_request, _type, _lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: fr_tls_global_log_bio
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tls_global_log_bio(_type, _lvl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_d2i
      Src: /src/freeradius-server/src/lib/tls/pairs.c:57,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/freeradius-server/src/lib/tls/pairs.c:59,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/freeradius-server/src/lib/tls/pairs.c:60,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:65,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:65,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:67,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:67,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:68,1
    - Dst: ASN1_STRING_length
      Src: /src/freeradius-server/src/lib/tls/pairs.c:69,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:74,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:74,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:76,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:76,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:77,1
    - Dst: ASN1_STRING_length
      Src: /src/freeradius-server/src/lib/tls/pairs.c:78,1
    - Dst: OBJ_obj2nid
      Src: /src/freeradius-server/src/lib/tls/pairs.c:84,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:88,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:88,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:90,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:90,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:91,1
    - Dst: ASN1_STRING_length
      Src: /src/freeradius-server/src/lib/tls/pairs.c:92,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/lib/tls/pairs.c:96,1
    - Dst: GENERAL_NAMES_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:104,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - pair_list
    - ctx
    - request
    - ext
    argTypes:
    - fr_pair_list_t*
    - TALLOC_CTX*
    - request_t*
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 107
    functionName: tls_session_pairs_from_san
    functionSourceFile: /src/freeradius-server/src/lib/tls/pairs.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - fr_pair_value_bstrndup
    - fr_pair_append_by_da
    - RWARN
    - sk_GENERAL_NAME_value
    - OBJ_obj2nid
    - X509V3_EXT_d2i
    - sk_GENERAL_NAME_num
    - GENERAL_NAMES_free
    - MEM
    linkageType: ''
    returnType: bool
    signature: bool tls_session_pairs_from_san(fr_pair_list_t *pair_list, TALLOC_CTX
      *ctx, request_t *request, X509_EXTENSION *ext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_EXTENSION_get_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:114,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:115,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/pairs.c:116,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/pairs.c:118,1
    - Dst: d2i_CRL_DIST_POINTS
      Src: /src/freeradius-server/src/lib/tls/pairs.c:123,1
    - Dst: ASN1_STRING_length
      Src: /src/freeradius-server/src/lib/tls/pairs.c:123,1
    - Dst: sk_DIST_POINT_num
      Src: /src/freeradius-server/src/lib/tls/pairs.c:125,1
    - Dst: sk_DIST_POINT_value
      Src: /src/freeradius-server/src/lib/tls/pairs.c:126,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:132,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/freeradius-server/src/lib/tls/pairs.c:144,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/freeradius-server/src/lib/tls/pairs.c:145,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:148,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:148,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:150,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:150,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:151,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - pair_list
    - ctx
    - request
    - ext
    argTypes:
    - fr_pair_list_t*
    - TALLOC_CTX*
    - UNUSED*
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 159
    functionName: tls_session_pairs_from_crl
    functionSourceFile: /src/freeradius-server/src/lib/tls/pairs.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - X509_EXTENSION_get_data
    - ASN1_STRING_length
    - d2i_CRL_DIST_POINTS
    - sk_DIST_POINT_value
    - fr_pair_append_by_da
    - sk_GENERAL_NAME_value
    - sk_DIST_POINT_num
    - fr_pair_value_strdup
    - STACK_OF
    - sk_GENERAL_NAME_num
    - CRL_DIST_POINTS_free
    - MEM
    linkageType: ''
    returnType: bool
    signature: bool tls_session_pairs_from_crl(fr_pair_list_t *pair_list, TALLOC_CTX
      *ctx, UNUSED request_t *request, X509_EXTENSION *ext)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/freeradius-server/src/lib/tls/pairs.c:205,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/pairs.c:207,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/tls/pairs.c:211,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/pairs.c:214,1
    - Dst: i2d_X509
      Src: /src/freeradius-server/src/lib/tls/pairs.c:215,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/tls/pairs.c:216,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/lib/tls/pairs.c:217,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/tls/pairs.c:218,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:219,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/pairs.c:221,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:222,1
    - Dst: fr_pair_list_prepend
      Src: /src/freeradius-server/src/lib/tls/pairs.c:229,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:236,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:236,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/pairs.c:237,1
    - Dst: X509_NAME_print_ex
      Src: /src/freeradius-server/src/lib/tls/pairs.c:237,1
    - Dst: fr_tls_bio_dbuff_thread_local
      Src: /src/freeradius-server/src/lib/tls/pairs.c:237,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/pairs.c:238,1
    - Dst: fr_tls_bio_dbuff_thread_local_clear
      Src: /src/freeradius-server/src/lib/tls/pairs.c:239,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/pairs.c:240,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:242,1
    - Dst: fr_pair_value_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/tls/pairs.c:245,1
    - Dst: fr_tls_bio_dbuff_thread_local_finalise_bstr
      Src: /src/freeradius-server/src/lib/tls/pairs.c:245,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/pairs.c:247,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/tls/pairs.c:247,1
    - Dst: X509_NAME_get_text_by_NID
      Src: /src/freeradius-server/src/lib/tls/pairs.c:252,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/pairs.c:252,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:257,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:257,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:258,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/lib/tls/pairs.c:258,1
    - Dst: X509_NAME_get_text_by_NID
      Src: /src/freeradius-server/src/lib/tls/pairs.c:260,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/pairs.c:260,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/pairs.c:262,1
    - Dst: X509_get0_signature
      Src: /src/freeradius-server/src/lib/tls/pairs.c:274,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:276,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:276,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:277,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:277,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:278,1
    - Dst: ASN1_STRING_length
      Src: /src/freeradius-server/src/lib/tls/pairs.c:279,1
    - Dst: OBJ_obj2txt
      Src: /src/freeradius-server/src/lib/tls/pairs.c:281,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:282,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:282,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:283,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:289,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:289,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/pairs.c:290,1
    - Dst: X509_NAME_print_ex
      Src: /src/freeradius-server/src/lib/tls/pairs.c:290,1
    - Dst: fr_tls_bio_dbuff_thread_local
      Src: /src/freeradius-server/src/lib/tls/pairs.c:290,1
    - Dst: X509_get_issuer_name
      Src: /src/freeradius-server/src/lib/tls/pairs.c:291,1
    - Dst: fr_tls_bio_dbuff_thread_local_clear
      Src: /src/freeradius-server/src/lib/tls/pairs.c:292,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/pairs.c:293,1
    - Dst: fr_pair_value_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/tls/pairs.c:296,1
    - Dst: fr_tls_bio_dbuff_thread_local_finalise_bstr
      Src: /src/freeradius-server/src/lib/tls/pairs.c:296,1
    - Dst: X509_get0_serialNumber
      Src: /src/freeradius-server/src/lib/tls/pairs.c:306,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/pairs.c:308,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/freeradius-server/src/lib/tls/pairs.c:312,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:313,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:313,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:314,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/tls/pairs.c:314,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/freeradius-server/src/lib/tls/pairs.c:315,1
    - Dst: X509_get0_notBefore
      Src: /src/freeradius-server/src/lib/tls/pairs.c:321,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/lib/tls/pairs.c:323,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:324,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:328,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:328,1
    - Dst: fr_unix_time_from_time
      Src: /src/freeradius-server/src/lib/tls/pairs.c:329,1
    - Dst: X509_get0_notAfter
      Src: /src/freeradius-server/src/lib/tls/pairs.c:334,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/lib/tls/pairs.c:336,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:337,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:341,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:341,1
    - Dst: fr_unix_time_from_time
      Src: /src/freeradius-server/src/lib/tls/pairs.c:342,1
    - Dst: X509_get_ext_by_NID
      Src: /src/freeradius-server/src/lib/tls/pairs.c:347,1
    - Dst: X509_get_ext
      Src: /src/freeradius-server/src/lib/tls/pairs.c:349,1
    - Dst: tls_session_pairs_from_san
      Src: /src/freeradius-server/src/lib/tls/pairs.c:350,1
    - Dst: X509_get_ext_by_NID
      Src: /src/freeradius-server/src/lib/tls/pairs.c:353,1
    - Dst: X509_get_ext
      Src: /src/freeradius-server/src/lib/tls/pairs.c:355,1
    - Dst: tls_session_pairs_from_crl
      Src: /src/freeradius-server/src/lib/tls/pairs.c:356,1
    - Dst: X509_get0_extensions
      Src: /src/freeradius-server/src/lib/tls/pairs.c:362,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/pairs.c:363,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:364,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/freeradius-server/src/lib/tls/pairs.c:372,1
    - Dst: fr_tls_bio_dbuff_alloc
      Src: /src/freeradius-server/src/lib/tls/pairs.c:378,1
    - Dst: fr_tls_bio_dbuff_in
      Src: /src/freeradius-server/src/lib/tls/pairs.c:379,1
    - Dst: fr_tls_bio_dbuff_out
      Src: /src/freeradius-server/src/lib/tls/pairs.c:380,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/freeradius-server/src/lib/tls/pairs.c:382,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/freeradius-server/src/lib/tls/pairs.c:388,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/freeradius-server/src/lib/tls/pairs.c:390,1
    - Dst: OBJ_obj2nid
      Src: /src/freeradius-server/src/lib/tls/pairs.c:400,1
    - Dst: tls_session_pairs_from_san
      Src: /src/freeradius-server/src/lib/tls/pairs.c:401,1
    - Dst: OBJ_obj2nid
      Src: /src/freeradius-server/src/lib/tls/pairs.c:405,1
    - Dst: tls_session_pairs_from_crl
      Src: /src/freeradius-server/src/lib/tls/pairs.c:406,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/freeradius-server/src/lib/tls/pairs.c:410,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:411,1
    - Dst: fr_tls_bio_dbuff_reset
      Src: /src/freeradius-server/src/lib/tls/pairs.c:414,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/pairs.c:418,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/pairs.c:423,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/lib/tls/pairs.c:424,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/pairs.c:431,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/tls/pairs.c:431,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:432,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/tls/pairs.c:436,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/pairs.c:436,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/tls/pairs.c:438,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/pairs.c:438,1
    - Dst: RWDEBUG3
      Src: /src/freeradius-server/src/lib/tls/pairs.c:441,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/tls/pairs.c:443,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/pairs.c:443,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/pairs.c:444,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/tls/pairs.c:445,1
    - Dst: fr_tls_bio_dbuff_reset
      Src: /src/freeradius-server/src/lib/tls/pairs.c:449,1
    - Dst: X509V3_EXT_print
      Src: /src/freeradius-server/src/lib/tls/pairs.c:451,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:452,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:456,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:456,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/tls/pairs.c:457,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/pairs.c:457,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/pairs.c:457,1
    - Dst: RPWDEBUG3
      Src: /src/freeradius-server/src/lib/tls/pairs.c:459,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/tls/pairs.c:460,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/pairs.c:460,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/pairs.c:461,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:462,1
    - Dst: fr_tls_bio_dbuff_reset
      Src: /src/freeradius-server/src/lib/tls/pairs.c:465,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/pairs.c:467,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:469,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 167
    argCount: 4
    argNames:
    - pair_list
    - ctx
    - request
    - cert
    argTypes:
    - fr_pair_list_t*
    - TALLOC_CTX*
    - request_t*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 474
    functionName: fr_tls_session_pairs_from_x509_cert
    functionSourceFile: /src/freeradius-server/src/lib/tls/pairs.c
    functionUses: 1
    functionsReached:
    - fr_tls_bio_dbuff_thread_local_clear
    - ASN1_STRING_length
    - X509_get_ext
    - fr_pair_value_bstr_alloc
    - fr_der_decode_pair_dbuff
    - talloc_array
    - fr_pair_value_mem_alloc
    - tls_session_pairs_from_crl
    - fr_pair_value_strdup
    - X509_get0_notBefore
    - OBJ_obj2nid
    - REDEBUG
    - fr_pair_value_memdup
    - FR_DBUFF_TMP
    - fr_tls_bio_dbuff_thread_local
    - talloc_new
    - fr_pair_list_free
    - sk_X509_EXTENSION_num
    - RWDEBUG
    - MEM
    - X509_EXTENSION_get_object
    - RWDEBUG3
    - i2a_ASN1_OBJECT
    - unlikely
    - ASN1_STRING_get0_data
    - X509V3_EXT_print
    - fr_pair_append_by_da
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_tls_bio_dbuff_in
    - fr_tls_bio_dbuff_thread_local_finalise_bstr
    - fr_tls_bio_dbuff_out
    - X509_get_issuer_name
    - fr_tls_utils_asn1time_to_epoch
    - fr_pair_list_init
    - fr_pair_value_from_str
    - i2d_ASN1_INTEGER
    - fr_pair_afrom_da
    - fr_tls_log
    - fr_dbuff_current
    - OBJ_obj2txt
    - fr_unix_time_from_time
    - fr_dict_attr_by_name
    - X509_get0_signature
    - fr_box_strvalue_buffer
    - RPWDEBUG3
    - RDEBUG3
    - X509_NAME_print_ex
    - fr_box_strvalue_len
    - X509_NAME_get_text_by_NID
    - X509_get0_extensions
    - fr_dbuff_set
    - RPWDEBUG
    - fr_pair_value_bstrdup_buffer_shallow
    - tls_session_pairs_from_san
    - talloc_free
    - sk_X509_EXTENSION_value
    - fr_pair_list_prepend
    - fr_tls_bio_dbuff_alloc
    - fr_dbuff_in_bytes
    - fr_tls_bio_dbuff_reset
    - fr_dbuff_end
    - X509_get0_notAfter
    - X509_get0_serialNumber
    - i2d_X509
    - fr_strerror_clear
    - X509_get_ext_by_NID
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int fr_tls_session_pairs_from_x509_cert(fr_pair_list_t *pair_list,
      TALLOC_CTX *ctx, request_t *request, X509 *cert,\n#if OPENSSL_VERSION_NUMBER
      >= 0x30400000L\n\t\t\t\t\tbool der_decode\n#else\n\t\t\t\t\tUNUSED bool der_decode\n#endif\n\t\t\t\t)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/pairs.c:482,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/pairs.c:483,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:486,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/pairs.c:491,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/pairs.c:494,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:499,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:508,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 7
    argNames:
    - request
    - container
    - extension
    - hlen
    - dlen
    - total_len
    - da
    argTypes:
    - request_t*
    - fr_pair_t*
    - uint8_t*
    - size_t
    - size_t
    - size_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 524
    functionName: fr_tls_extension_decode
    functionSourceFile: /src/freeradius-server/src/lib/tls/pairs.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - MEM
    - fr_pair_append_by_da
    - REDEBUG
    linkageType: ''
    returnType: int
    signature: "int fr_tls_extension_decode(request_t *request, fr_pair_t *container,
      uint8_t const *extension,\n\t\t\t\t   size_t hlen, size_t dlen, size_t total_len,
      fr_dict_attr_t const *da)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/pairs.c:531,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/pairs.c:536,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/pairs.c:538,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/pairs.c:541,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:543,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/pairs.c:546,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:546,1
    - Dst: SSL_client_hello_get0_ciphers
      Src: /src/freeradius-server/src/lib/tls/pairs.c:548,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/freeradius-server/src/lib/tls/pairs.c:549,1
    - Dst: SSL_client_hello_isv2
      Src: /src/freeradius-server/src/lib/tls/pairs.c:549,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:550,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:552,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:553,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/freeradius-server/src/lib/tls/pairs.c:557,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:558,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/freeradius-server/src/lib/tls/pairs.c:559,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/tls/pairs.c:560,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/freeradius-server/src/lib/tls/pairs.c:560,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:563,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:564,1
    - Dst: SSL_client_hello_get1_extensions_present
      Src: /src/freeradius-server/src/lib/tls/pairs.c:571,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:572,1
    - Dst: SSL_client_hello_get0_ext
      Src: /src/freeradius-server/src/lib/tls/pairs.c:579,1
    - Dst: RPDEBUG
      Src: /src/freeradius-server/src/lib/tls/pairs.c:580,1
    - Dst: fr_tls_extension_decode
      Src: /src/freeradius-server/src/lib/tls/pairs.c:586,1
    - Dst: fr_tls_extension_decode
      Src: /src/freeradius-server/src/lib/tls/pairs.c:591,1
    - Dst: fr_tls_extension_decode
      Src: /src/freeradius-server/src/lib/tls/pairs.c:596,1
    - Dst: fr_tls_extension_decode
      Src: /src/freeradius-server/src/lib/tls/pairs.c:601,1
    - Dst: fr_tls_extension_decode
      Src: /src/freeradius-server/src/lib/tls/pairs.c:606,1
    - Dst: OPENSSL_free
      Src: /src/freeradius-server/src/lib/tls/pairs.c:612,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/tls/pairs.c:618,1
    - Dst: SSL_client_hello_get0_legacy_version
      Src: /src/freeradius-server/src/lib/tls/pairs.c:619,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/tls/pairs.c:621,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 3
    argNames:
    - ssl
    - al
    - arg
    argTypes:
    - SSL*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 624
    functionName: fr_tls_session_client_hello_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/pairs.c
    functionUses: 0
    functionsReached:
    - SSL_client_hello_get1_extensions_present
    - sk_SSL_CIPHER_free
    - SSL_bytes_to_cipher_list
    - SSL_get_ex_data
    - RPDEBUG
    - MEM
    - sk_SSL_CIPHER_value
    - SSL_client_hello_get0_ext
    - SSL_CIPHER_get_name
    - RPEDEBUG
    - fr_value_box_strdup
    - fr_pair_append_by_da
    - fr_pair_append
    - fr_pair_afrom_da
    - SSL_client_hello_get0_legacy_version
    - OPENSSL_free
    - fr_assert
    - STACK_OF
    - sk_SSL_CIPHER_num
    - fr_pair_find_by_da
    - fr_tls_extension_decode
    - talloc_free
    - SSL_client_hello_isv2
    - SSL_client_hello_get0_ciphers
    linkageType: ''
    returnType: int
    signature: int fr_tls_session_client_hello_cb(SSL *ssl, UNUSED int *al, UNUSED
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - record
    argTypes:
    - fr_tls_record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: record_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void record_init(fr_tls_record_t *record)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - record
    argTypes:
    - fr_tls_record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: record_close
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void record_close(fr_tls_record_t *record)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/tls/session.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - record
    - in
    - inlen
    argTypes:
    - fr_tls_record_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: record_from_buff
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int record_from_buff(fr_tls_record_t *record, void const *in,
      unsigned int inlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/tls/session.c:234,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/tls/session.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - record
    - out
    - outlen
    argTypes:
    - fr_tls_record_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 244
    functionName: record_to_buff
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - memmove
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int record_to_buff(fr_tls_record_t *record, void *out, unsigned
      int outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/session.c:268,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/tls/session.c:272,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/session.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - u
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 279
    functionName: fr_tls_session_password_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int fr_tls_session_password_cb(char *buf, int size, int rwflag UNUSED,
      void *u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/tls/session.c:296,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/tls/session.c:296,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/tls/session.c:296,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 1
    argNames:
    - identity
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 305
    functionName: session_psk_identity_is_safe
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - isalpha
    - isspace
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool session_psk_identity_is_safe(const char *identity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:324,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/session.c:327,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/tls/session.c:330,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/tls/session.c:332,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/tls/session.c:333,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/tls/session.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ssl
    - hint
    - identity
    - max_identity_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - UNUSED*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 335
    functionName: fr_tls_session_psk_client_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN
    - SSL_get_ex_data
    - FR_DBUFF_TMP
    - strlen
    - fr_base16_decode
    - strlcpy
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int fr_tls_session_psk_client_cb(SSL *ssl, UNUSED char const
      *hint,\n\t\t\t\t\t  char *identity, unsigned int max_identity_len,\n\t\t\t\t\t
      \ unsigned char *psk, unsigned int max_psk_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:354,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/session.c:357,1
    - Dst: session_psk_identity_is_safe
      Src: /src/freeradius-server/src/lib/tls/session.c:366,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:367,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:371,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/session.c:371,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/tls/session.c:372,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/session.c:372,1
    - Dst: RPWDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:373,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:374,1
    - Dst: xlat_eval
      Src: /src/freeradius-server/src/lib/tls/session.c:378,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:380,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:390,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/tls/session.c:399,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/tls/session.c:400,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/tls/session.c:401,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:405,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/session.c:413,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/session.c:414,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/session.c:419,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/tls/session.c:422,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/tls/session.c:423,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/tls/session.c:424,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 425
    functionName: fr_tls_session_psk_server_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - ERROR
    - xlat_eval
    - talloc_free
    - RPWDEBUG2
    - fr_base16_decode
    - FR_SBUFF_IN
    - SSL_get_ex_data
    - FR_DBUFF_TMP
    - strlen
    - strcmp
    - fr_tls_session_request
    - pair_update_request
    - RWDEBUG
    - session_psk_identity_is_safe
    - MEM
    - DEBUG
    - fr_pair_value_from_str
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int fr_tls_session_psk_server_cb(SSL *ssl, const char *identity,\n\t\t\t\t\t
      \ unsigned char *psk, unsigned int max_psk_len)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:443,1
    - Dst: SSL_state_string_long
      Src: /src/freeradius-server/src/lib/tls/session.c:453,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/session.c:457,1
    - Dst: SSL_state_string
      Src: /src/freeradius-server/src/lib/tls/session.c:458,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/session.c:464,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:467,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/session.c:471,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/session.c:472,1
    - Dst: SSL_get_state
      Src: /src/freeradius-server/src/lib/tls/session.c:482,1
    - Dst: SSL_get_client_ciphers
      Src: /src/freeradius-server/src/lib/tls/session.c:483,1
    - Dst: SSL_get_ciphers
      Src: /src/freeradius-server/src/lib/tls/session.c:488,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:493,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/session.c:494,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/tls/session.c:495,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/freeradius-server/src/lib/tls/session.c:496,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/freeradius-server/src/lib/tls/session.c:498,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:499,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/freeradius-server/src/lib/tls/session.c:499,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/tls/session.c:501,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/session.c:508,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:509,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/tls/session.c:510,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/freeradius-server/src/lib/tls/session.c:511,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/freeradius-server/src/lib/tls/session.c:513,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:514,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/freeradius-server/src/lib/tls/session.c:514,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/tls/session.c:516,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:522,1
    - Dst: SSL_get_state
      Src: /src/freeradius-server/src/lib/tls/session.c:522,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:536,1
    - Dst: SSL_alert_type_string_long
      Src: /src/freeradius-server/src/lib/tls/session.c:536,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/freeradius-server/src/lib/tls/session.c:537,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:544,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:553,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/session.c:553,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:555,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:561,1
    - Dst: SSL_alert_type_string_long
      Src: /src/freeradius-server/src/lib/tls/session.c:562,1
    - Dst: SSL_alert_desc_string_long
      Src: /src/freeradius-server/src/lib/tls/session.c:562,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:569,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:584,1
    - Dst: SSL_want_read
      Src: /src/freeradius-server/src/lib/tls/session.c:589,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:590,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:593,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 94
    argCount: 3
    argNames:
    - ssl
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 596
    functionName: fr_tls_session_info_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - SSL_get_ex_data
    - strlen
    - MEM
    - sk_SSL_CIPHER_value
    - SSL_get_state
    - SSL_CIPHER_get_name
    - ROPTIONAL
    - SSL_alert_desc_string_long
    - ROPTIONAL_ENABLED
    - SSL_want_read
    - SSL_state_string
    - RDEBUG2
    - STACK_OF
    - SSL_alert_type_string_long
    - pair_update_request
    - sk_SSL_CIPHER_num
    - SSL_get_client_ciphers
    - RINDENT
    - SSL_state_string_long
    - SSL_get_ciphers
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void fr_tls_session_info_cb(SSL const *ssl, int where, int ret)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/session.c:620,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/tls/session.c:622,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/session.c:624,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/tls/session.c:634,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/session.c:636,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/session.c:654,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/tls/session.c:660,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/session.c:662,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/session.c:681,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/session.c:690,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/session.c:705,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:706,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:708,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - request
    - tls_session
    - data
    - data_len
    argTypes:
    - request_t*
    - fr_tls_session_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 710
    functionName: session_msg_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL_ENABLED
    - snprintf
    - ROPTIONAL
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void session_msg_log(request_t *request, fr_tls_session_t *tls_session,
      uint8_t const *data, size_t data_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.c:746,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/session.c:747,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/session.c:752,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:753,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/session.c:764,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:765,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/session.c:772,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:773,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:785,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:791,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:809,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/tls/session.c:834,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/session.c:837,1
    - Dst: session_msg_log
      Src: /src/freeradius-server/src/lib/tls/session.c:847,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/session.c:850,1
    - Dst: SSL_trace
      Src: /src/freeradius-server/src/lib/tls/session.c:851,1
    - Dst: fr_tls_request_log_bio
      Src: /src/freeradius-server/src/lib/tls/session.c:857,1
    - Dst: fr_tls_global_log_bio
      Src: /src/freeradius-server/src/lib/tls/session.c:858,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 7
    argNames:
    - write_p
    - msg_version
    - content_type
    - inbuf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 861
    functionName: fr_tls_session_msg_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - fr_tls_global_log_bio
    - fr_cond_assert
    - fr_tls_request_log_bio
    - talloc_get_type_abort
    - session_msg_log
    - ROPTIONAL
    - fr_tls_session_request
    - ROPTIONAL_ENABLED
    - fr_nbo_to_uint16
    - SSL_trace
    linkageType: ''
    returnType: void
    signature: "void fr_tls_session_msg_cb(int write_p, int msg_version, int content_type,\n\t\t\t
      \  void const *inbuf, size_t len,\n\t\t\t   SSL *ssl, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/tls/session.c:892,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:896,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/session.c:906,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:908,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/tls/session.c:917,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/tls/session.c:920,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:922,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/tls/session.c:922,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/tls/session.c:929,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:930,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/tls/session.c:930,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/tls/session.c:933,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 934
    functionName: fr_tls_session_keylog_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - write
    - memcpy
    - open
    - strerror
    - SSL_get_ex_data
    - strlen
    - getenv
    - close
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_tls_session_keylog_cb(const SSL *ssl, const char *line)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_request_bind
      Src: /src/freeradius-server/src/lib/tls/session.c:953,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/tls/session.c:955,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:956,1
    - Dst: BIO_write
      Src: /src/freeradius-server/src/lib/tls/session.c:966,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:968,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:969,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:973,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:980,1
    - Dst: ERR_clear_error
      Src: /src/freeradius-server/src/lib/tls/session.c:987,1
    - Dst: SSL_read
      Src: /src/freeradius-server/src/lib/tls/session.c:994,1
    - Dst: SSL_get_error
      Src: /src/freeradius-server/src/lib/tls/session.c:998,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1001,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1007,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1011,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1016,1
    - Dst: fr_tls_log_io_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1017,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/lib/tls/session.c:1029,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1032,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1035,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 1038
    functionName: fr_tls_session_recv
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - record_init
    - SSL_get_error
    - SSL_is_init_finished
    - REDEBUG
    - fr_tls_log_io_error
    - ERR_clear_error
    - fr_tls_session_request_bind
    - RDEBUG2
    - RHEXDUMP3
    - fr_tls_session_request_unbind
    - BIO_write
    - RWDEBUG
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int fr_tls_session_recv(request_t *request, fr_tls_session_t *tls_session)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_request_bind
      Src: /src/freeradius-server/src/lib/tls/session.c:1057,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/tls/session.c:1059,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1060,1
    - Dst: ERR_clear_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1078,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/lib/tls/session.c:1081,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1084,1
    - Dst: SSL_write
      Src: /src/freeradius-server/src/lib/tls/session.c:1087,1
    - Dst: record_to_buff
      Src: /src/freeradius-server/src/lib/tls/session.c:1089,1
    - Dst: BIO_read
      Src: /src/freeradius-server/src/lib/tls/session.c:1092,1
    - Dst: fr_tls_log_io_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1096,1
    - Dst: SSL_get_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1096,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1113
    functionName: fr_tls_session_send
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 6
    functionsReached:
    - record_to_buff
    - BIO_read
    - SSL_get_error
    - SSL_write
    - SSL_is_init_finished
    - REDEBUG
    - fr_tls_log_io_error
    - ERR_clear_error
    - fr_tls_session_request_bind
    - RDEBUG2
    - RHEXDUMP3
    - fr_tls_session_request_unbind
    linkageType: ''
    returnType: int
    signature: int fr_tls_session_send(request_t *request, fr_tls_session_t *tls_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - request
    - session
    - level
    - description
    argTypes:
    - UNUSED*
    - fr_tls_session_t*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1132
    functionName: fr_tls_session_alert
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_tls_session_alert(UNUSED request_t *request, fr_tls_session_t
      *session, uint8_t level, uint8_t description)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_clear
      Src: /src/freeradius-server/src/lib/tls/session.c:1157,1
    - Dst: session_msg_log
      Src: /src/freeradius-server/src/lib/tls/session.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - request
    - session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1134
    functionDepth: 2
    functionLinenumber: 1134
    functionLinenumberEnd: 1160
    functionName: fr_tls_session_alert_send
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - SSL_clear
    - session_msg_log
    linkageType: ''
    returnType: void
    signature: void fr_tls_session_alert_send(request_t *request, fr_tls_session_t
      *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1169
    functionName: tls_establish_session_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_establish_session_result(UNUSED request_t *request,
      UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1189,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/lib/tls/session.c:1189,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1195,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/tls/session.c:1195,1
    - Dst: SSL_SESSION_get_id
      Src: /src/freeradius-server/src/lib/tls/session.c:1198,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1200,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/tls/session.c:1200,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/tls/session.c:1201,1
    - Dst: fr_tls_call_push
      Src: /src/freeradius-server/src/lib/tls/session.c:1208,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:1210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - request
    - conf
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_conf_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1215
    functionName: tls_establish_session_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - unlang_subrequest_alloc
    - SSL_SESSION_get_id
    - fr_pair_value_memdup
    - pair_prepend_request
    - fr_tls_call_push
    - MEM
    - pair_append_request
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_establish_session_push(request_t *request, fr_tls_conf_t
      *conf, fr_tls_session_t *tls_session)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.c:1222,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.c:1225,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/tls/session.c:1236,1
    - Dst: SSL_get_current_cipher
      Src: /src/freeradius-server/src/lib/tls/session.c:1244,1
    - Dst: SSL_CIPHER_description
      Src: /src/freeradius-server/src/lib/tls/session.c:1245,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/tls/session.c:1252,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/tls/session.c:1254,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1261,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1263,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/tls/session.c:1264,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1265,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/tls/session.c:1265,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/tls/session.c:1266,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/freeradius-server/src/lib/tls/session.c:1266,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1267,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/tls/session.c:1269,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1276,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/tls/session.c:1276,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/tls/session.c:1277,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1278,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/tls/session.c:1279,1
    - Dst: SSL_get_session
      Src: /src/freeradius-server/src/lib/tls/session.c:1287,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1289,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1292,1
    - Dst: SSL_SESSION_print
      Src: /src/freeradius-server/src/lib/tls/session.c:1298,1
    - Dst: fr_tls_request_log_bio
      Src: /src/freeradius-server/src/lib/tls/session.c:1298,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.c:1300,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/lib/tls/session.c:1307,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1311,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/session.c:1311,1
    - Dst: BIO_ctrl_pending
      Src: /src/freeradius-server/src/lib/tls/session.c:1319,1
    - Dst: BIO_read
      Src: /src/freeradius-server/src/lib/tls/session.c:1321,1
    - Dst: BIO_should_retry
      Src: /src/freeradius-server/src/lib/tls/session.c:1325,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1326,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1327,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/session.c:1330,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1331,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1336,1
    - Dst: fr_tls_session_alert_send
      Src: /src/freeradius-server/src/lib/tls/session.c:1347,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1350,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1353,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/tls/session.c:1354,1
    - Dst: fr_tls_session_conf
      Src: /src/freeradius-server/src/lib/tls/session.c:1355,1
    - Dst: tls_establish_session_push
      Src: /src/freeradius-server/src/lib/tls/session.c:1356,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1220
    functionDepth: 3
    functionLinenumber: 1220
    functionLinenumberEnd: 1359
    functionName: tls_session_async_handshake_done_round
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - SSL_CIPHER_description
    - fr_pair_value_strdup
    - REDEBUG
    - SSL_get_session
    - SSL_SESSION_print
    - MEM
    - BIO_ctrl_pending
    - SSL_CIPHER_get_name
    - record_init
    - SSL_is_init_finished
    - fr_tls_session_conf
    - talloc_get_type_abort
    - BIO_should_retry
    - pair_update_session_state
    - SSL_session_reused
    - NUM_ELEMENTS
    - fr_tls_log
    - BIO_read
    - RDEBUG3
    - RDEBUG2
    - fr_tls_session_request_unbind
    - pair_update_request
    - fr_tls_session_alert_send
    - SSL_get_current_cipher
    - fr_tls_request_log_bio
    - fr_skip_whitespace
    - RINDENT
    - isspace
    - tls_establish_session_push
    - REXDENT
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_session_async_handshake_done_round(request_t *request,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.c:1371,1
    - Dst: SSL_get_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1393,1
    - Dst: SSL_read
      Src: /src/freeradius-server/src/lib/tls/session.c:1394,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1401
    functionName: tls_session_async_handshake_signal
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - SSL_read
    - fr_tls_session_request_unbind
    - talloc_get_type_abort
    - SSL_get_error
    linkageType: ''
    returnType: void
    signature: void tls_session_async_handshake_signal(UNUSED request_t *request,
      UNUSED fr_signal_t action, void *uctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.c:1415,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.c:1418,1
    - Dst: ERR_clear_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1437,1
    - Dst: SSL_read
      Src: /src/freeradius-server/src/lib/tls/session.c:1460,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1475,1
    - Dst: SSL_get_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1498,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/tls/session.c:1506,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/tls/session.c:1507,1
    - Dst: ERR_peek_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1508,1
    - Dst: ERR_GET_REASON
      Src: /src/freeradius-server/src/lib/tls/session.c:1508,1
    - Dst: ERR_get_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1509,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/tls/session.c:1511,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/tls/session.c:1512,1
    - Dst: SSL_get_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1522,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.c:1527,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/session.c:1533,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/lib/tls/session.c:1533,1
    - Dst: fr_tls_cache_pending_push
      Src: /src/freeradius-server/src/lib/tls/session.c:1542,1
    - Dst: IGNORE
      Src: /src/freeradius-server/src/lib/tls/session.c:1545,1
    - Dst: unlang_function_clear
      Src: /src/freeradius-server/src/lib/tls/session.c:1545,1
    - Dst: fr_tls_verify_cert_pending_push
      Src: /src/freeradius-server/src/lib/tls/session.c:1559,1
    - Dst: IGNORE
      Src: /src/freeradius-server/src/lib/tls/session.c:1562,1
    - Dst: unlang_function_clear
      Src: /src/freeradius-server/src/lib/tls/session.c:1562,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/tls/session.c:1571,1
    - Dst: fr_tls_log_io_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1579,1
    - Dst: tls_session_async_handshake_done_round
      Src: /src/freeradius-server/src/lib/tls/session.c:1581,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1413
    functionDepth: 4
    functionLinenumber: 1413
    functionLinenumberEnd: 1583
    functionName: tls_session_async_handshake_cont
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - DIAG_ON
    - DIAG_OFF
    - unlikely
    - IGNORE
    - SSL_get_error
    - unlang_function_repeat_set
    - ERR_peek_error
    - talloc_get_type_abort
    - ERR_get_error
    - unlang_function_clear
    - tls_session_async_handshake_done_round
    - SSL_read
    - fr_tls_verify_cert_pending_push
    - fr_tls_cache_pending_push
    - ERR_clear_error
    - RDEBUG3
    - fr_tls_session_request_unbind
    - RERROR
    - fr_tls_log_io_error
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_session_async_handshake_cont(request_t *request,
      void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/session.c:1602,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/session.c:1605,1
    - Dst: fr_tls_session_request_bind
      Src: /src/freeradius-server/src/lib/tls/session.c:1609,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/tls/session.c:1617,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1618,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1621,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1626,1
    - Dst: BIO_write
      Src: /src/freeradius-server/src/lib/tls/session.c:1636,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1638,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1639,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1642,1
    - Dst: tls_session_async_handshake_cont
      Src: /src/freeradius-server/src/lib/tls/session.c:1645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1600
    functionDepth: 5
    functionLinenumber: 1600
    functionLinenumberEnd: 1646
    functionName: tls_session_async_handshake
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - record_init
    - SSL_is_init_finished
    - REDEBUG
    - talloc_get_type_abort
    - fr_tls_session_request_bind
    - RDEBUG3
    - fr_tls_session_request_unbind
    - BIO_write
    - tls_session_async_handshake_cont
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_session_async_handshake(request_t *request, void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/tls/session.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1672
    functionName: fr_tls_session_async_handshake_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - unlang_function_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t fr_tls_session_async_handshake_push(request_t *request,
      fr_tls_session_t *tls_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_quiet_shutdown
      Src: /src/freeradius-server/src/lib/tls/session.c:1697,1
    - Dst: SSL_shutdown
      Src: /src/freeradius-server/src/lib/tls/session.c:1703,1
    - Dst: ERR_clear_error
      Src: /src/freeradius-server/src/lib/tls/session.c:1703,1
    - Dst: SSL_free
      Src: /src/freeradius-server/src/lib/tls/session.c:1705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - session
    argTypes:
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1710
    functionName: _fr_tls_session_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - SSL_free
    - ERR_clear_error
    - SSL_set_quiet_shutdown
    - SSL_shutdown
    linkageType: ''
    returnType: int
    signature: int _fr_tls_session_free(fr_tls_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1716,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1717,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1718,1
    - Dst: record_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1719,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/tls/session.c:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - session
    argTypes:
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1725
    functionName: session_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 4
    functionsReached:
    - memset
    - record_init
    linkageType: ''
    returnType: void
    signature: void session_init(fr_tls_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_ctx_conf
      Src: /src/freeradius-server/src/lib/tls/session.c:1742,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1744,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/tls/session.c:1744,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/tls/session.c:1745,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1746,1
    - Dst: SSL_new
      Src: /src/freeradius-server/src/lib/tls/session.c:1748,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:1750,1
    - Dst: SSL_set_msg_callback
      Src: /src/freeradius-server/src/lib/tls/session.c:1758,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/freeradius-server/src/lib/tls/session.c:1759,1
    - Dst: SSL_set_info_callback
      Src: /src/freeradius-server/src/lib/tls/session.c:1760,1
    - Dst: SSL_set_connect_state
      Src: /src/freeradius-server/src/lib/tls/session.c:1768,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1773,1
    - Dst: SSL_set_verify
      Src: /src/freeradius-server/src/lib/tls/session.c:1786,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:1787,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:1788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - ssl_ctx
    argTypes:
    - TALLOC_CTX*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1793
    functionName: fr_tls_session_alloc_client
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - SSL_set_msg_callback_arg
    - talloc_set_destructor
    - talloc_free
    - SSL_set_connect_state
    - SSL_set_verify
    - SSL_set_msg_callback
    - talloc_zero
    - SSL_new
    - SSL_set_info_callback
    - SSL_set_ex_data
    - DEBUG2
    - MEM
    - fr_tls_ctx_conf
    - fr_pair_list_init
    linkageType: ''
    returnType: fr_tls_session_t
    signature: fr_tls_session_t *fr_tls_session_alloc_client(TALLOC_CTX *ctx, SSL_CTX
      *ssl_ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_ctx_conf
      Src: /src/freeradius-server/src/lib/tls/session.c:1816,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1818,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1820,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/tls/session.c:1820,1
    - Dst: SSL_new
      Src: /src/freeradius-server/src/lib/tls/session.c:1822,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:1824,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/session.c:1825,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1828,1
    - Dst: session_init
      Src: /src/freeradius-server/src/lib/tls/session.c:1830,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/tls/session.c:1833,1
    - Dst: fr_tls_session_request_bind
      Src: /src/freeradius-server/src/lib/tls/session.c:1835,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1855,1
    - Dst: BIO_new
      Src: /src/freeradius-server/src/lib/tls/session.c:1855,1
    - Dst: BIO_s_mem
      Src: /src/freeradius-server/src/lib/tls/session.c:1855,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1856,1
    - Dst: BIO_new
      Src: /src/freeradius-server/src/lib/tls/session.c:1856,1
    - Dst: BIO_s_mem
      Src: /src/freeradius-server/src/lib/tls/session.c:1856,1
    - Dst: SSL_set_bio
      Src: /src/freeradius-server/src/lib/tls/session.c:1857,1
    - Dst: SSL_set_msg_callback
      Src: /src/freeradius-server/src/lib/tls/session.c:1863,1
    - Dst: SSL_set_msg_callback_arg
      Src: /src/freeradius-server/src/lib/tls/session.c:1864,1
    - Dst: SSL_set_info_callback
      Src: /src/freeradius-server/src/lib/tls/session.c:1865,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/session.c:1890,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/tls/session.c:1892,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/tls/session.c:1893,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1895,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:1896,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:1900,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/tls/session.c:1900,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/tls/session.c:1901,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/lib/tls/session.c:1901,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/tls/session.c:1902,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/tls/session.c:1902,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/lib/tls/session.c:1903,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/tls/session.c:1904,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:1905,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/session.c:1907,1
    - Dst: SSL_set_session_id_context
      Src: /src/freeradius-server/src/lib/tls/session.c:1907,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/session.c:1914,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1916,1
    - Dst: SSL_use_certificate_file
      Src: /src/freeradius-server/src/lib/tls/session.c:1918,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/session.c:1919,1
    - Dst: SSL_use_PrivateKey_file
      Src: /src/freeradius-server/src/lib/tls/session.c:1924,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/session.c:1925,1
    - Dst: SSL_check_private_key
      Src: /src/freeradius-server/src/lib/tls/session.c:1930,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/session.c:1931,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/session.c:1941,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/session.c:1946,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/session.c:1956,1
    - Dst: SSL_set_accept_state
      Src: /src/freeradius-server/src/lib/tls/session.c:1965,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1971,1
    - Dst: SSL_set_verify
      Src: /src/freeradius-server/src/lib/tls/session.c:1978,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:1979,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/session.c:1980,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/freeradius-server/src/lib/tls/session.c:1983,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/session.c:1988,1
    - Dst: fr_tls_cache_session_alloc
      Src: /src/freeradius-server/src/lib/tls/session.c:1994,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/session.c:1997,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 103
    argCount: 5
    argNames:
    - ctx
    - ssl_ctx
    - request
    - dynamic_mtu
    - client_cert
    argTypes:
    - TALLOC_CTX*
    - SSL_CTX*
    - request_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1810
    functionDepth: 2
    functionLinenumber: 1810
    functionLinenumberEnd: 2000
    functionName: fr_tls_session_alloc_server
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - fr_tls_session_request_bind
    - SSL_set_msg_callback
    - SSL_set_session_id_context
    - SSL_new
    - MEM
    - session_init
    - BIO_s_mem
    - ERROR
    - BIO_new
    - RPEDEBUG
    - tmpl_aexpand
    - EVP_MD_CTX_create
    - SSL_set_bio
    - SSL_use_PrivateKey_file
    - SSL_check_private_key
    - SSL_set_ex_data
    - fr_pair_list_init
    - fr_tls_log
    - EVP_MD_CTX_destroy
    - talloc_set_destructor
    - EVP_sha256
    - RDEBUG2
    - fr_assert
    - fr_tls_session_request_unbind
    - SSL_set_info_callback
    - EVP_DigestFinal_ex
    - talloc_strlen
    - SSL_set_accept_state
    - fr_tls_ctx_conf
    - fr_pair_find_by_da
    - fr_tls_cache_session_alloc
    - EVP_DigestUpdate
    - SSL_set_msg_callback_arg
    - talloc_free
    - EVP_DigestInit_ex
    - SSL_set_verify
    - talloc_zero
    - SSL_use_certificate_file
    - SSL_CTX_set_client_hello_cb
    linkageType: ''
    returnType: fr_tls_session_t
    signature: fr_tls_session_t *fr_tls_session_alloc_server(TALLOC_CTX *ctx, SSL_CTX
      *ssl_ctx, request_t *request, size_t dynamic_mtu, bool client_cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/session.c:2006,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/tls/session.c:2011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2002
    functionDepth: 1
    functionLinenumber: 2002
    functionLinenumberEnd: 2014
    functionName: tls_new_session_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_pair_list_copy
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_new_session_result(request_t *request, UNUSED void
      *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:2021,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/lib/tls/session.c:2021,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/session.c:2023,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/tls/session.c:2023,1
    - Dst: unlang_subrequest_child_push
      Src: /src/freeradius-server/src/lib/tls/session.c:2026,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:2027,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/tls/session.c:2031,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:2036,1
    - Dst: unlang_call_push
      Src: /src/freeradius-server/src/lib/tls/session.c:2040,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/session.c:2041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - request
    - tls_conf
    argTypes:
    - request_t*
    - fr_tls_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2046
    functionName: fr_tls_new_session_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/session.c
    functionUses: 3
    functionsReached:
    - talloc_free
    - unlang_subrequest_alloc
    - unlang_subrequest_child_push
    - unlang_function_push
    - unlang_call_push
    - pair_prepend_request
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t fr_tls_new_session_push(request_t *request, fr_tls_conf_t
      const *tls_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/freeradius-server/src/lib/tls/strerror.c:44,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/strerror.c:44,1
    - Dst: _fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:47,1
    - Dst: fr_tls_utils_x509_pkey_type
      Src: /src/freeradius-server/src/lib/tls/strerror.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - idx
    - cert
    argTypes:
    - char*
    - int
    - int
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: _tls_cert_line_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - _fr_strerror_printf_push
    - X509_NAME_oneline
    - fr_tls_utils_x509_pkey_type
    - X509_get_subject_name
    linkageType: ''
    returnType: void
    signature: void _tls_cert_line_push(char const *file, int line, int idx, X509
      *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/freeradius-server/src/lib/tls/strerror.c:55,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/strerror.c:55,1
    - Dst: _fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:58,1
    - Dst: fr_tls_utils_x509_pkey_type
      Src: /src/freeradius-server/src/lib/tls/strerror.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - idx
    - cert
    - marker
    argTypes:
    - char*
    - int
    - int
    - X509*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: _tls_cert_line_marker_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - _fr_strerror_printf_push
    - X509_NAME_oneline
    - fr_tls_utils_x509_pkey_type
    - X509_get_subject_name
    linkageType: ''
    returnType: void
    signature: "void _tls_cert_line_marker_push(char const *file, int line,\n\t\t\t\t
      \      int idx, X509 *cert, bool marker)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/freeradius-server/src/lib/tls/strerror.c:66,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/strerror.c:66,1
    - Dst: _fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:69,1
    - Dst: fr_tls_utils_x509_pkey_type
      Src: /src/freeradius-server/src/lib/tls/strerror.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - cert
    argTypes:
    - char*
    - int
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: _tls_cert_line_marker_no_idx_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - _fr_strerror_printf_push
    - X509_NAME_oneline
    - fr_tls_utils_x509_pkey_type
    - X509_get_subject_name
    linkageType: ''
    returnType: void
    signature: void _tls_cert_line_marker_no_idx_push(char const *file, int line,
      X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/freeradius-server/src/lib/tls/strerror.c:83,1
    - Dst: _tls_cert_line_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:84,1
    - Dst: sk_X509_value
      Src: /src/freeradius-server/src/lib/tls/strerror.c:84,1
    - Dst: _tls_cert_line_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - chain
    - cert
    argTypes:
    - char*
    - int
    - STACK_OF*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: _fr_tls_strerror_push_chain
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - _tls_cert_line_push
    - sk_X509_value
    linkageType: ''
    returnType: void
    signature: void _fr_tls_strerror_push_chain(char const *file, int line, STACK_OF(X509)
      *chain, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/freeradius-server/src/lib/tls/strerror.c:102,1
    - Dst: sk_X509_value
      Src: /src/freeradius-server/src/lib/tls/strerror.c:103,1
    - Dst: _tls_cert_line_marker_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:104,1
    - Dst: _tls_cert_line_marker_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - chain
    - cert
    - marker
    argTypes:
    - char*
    - int
    - STACK_OF*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: _fr_tls_strerror_push_chain_marker
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - sk_X509_value
    - _tls_cert_line_marker_push
    linkageType: ''
    returnType: void
    signature: "void _fr_tls_strerror_push_chain_marker(char const *file, int line,\n\t\t\t
      \      STACK_OF(X509) *chain, X509 *cert, X509 *marker)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_OBJECT_num
      Src: /src/freeradius-server/src/lib/tls/strerror.c:119,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/freeradius-server/src/lib/tls/strerror.c:120,1
    - Dst: X509_OBJECT_get_type
      Src: /src/freeradius-server/src/lib/tls/strerror.c:122,1
    - Dst: _tls_cert_line_marker_no_idx_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:127,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/freeradius-server/src/lib/tls/strerror.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - file
    - line
    - objects
    argTypes:
    - char*
    - int
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: _fr_tls_strerror_push_x509_objects
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - X509_OBJECT_get0_X509
    - _tls_cert_line_marker_no_idx_push
    - X509_OBJECT_get_type
    - sk_X509_OBJECT_value
    linkageType: ''
    returnType: void
    signature: void _fr_tls_strerror_push_x509_objects(char const *file, int line,
      STACK_OF(X509_OBJECT) *objects)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error_all
      Src: /src/freeradius-server/src/lib/tls/strerror.c:169,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/tls/strerror.c:178,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/tls/strerror.c:179,1
    - Dst: _fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/strerror.c:180,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/strerror.c:182,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/tls/strerror.c:191,1
    - Dst: _fr_strerror_vprintf
      Src: /src/freeradius-server/src/lib/tls/strerror.c:192,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/strerror.c:193,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/tls/strerror.c:196,1
    - Dst: _fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/strerror.c:197,1
    - Dst: ERR_get_error_all
      Src: /src/freeradius-server/src/lib/tls/strerror.c:203,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/tls/strerror.c:206,1
    - Dst: _fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - file
    - line
    - msg
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 213
    functionName: _fr_tls_strerror_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 1
    functionsReached:
    - va_end
    - talloc_free
    - ERR_get_error_all
    - _fr_strerror_vprintf
    - _fr_strerror_printf
    - ERR_error_string_n
    - va_copy
    - _fr_strerror_printf_push
    - talloc_vasprintf
    linkageType: ''
    returnType: int
    signature: int _fr_tls_strerror_vprintf(char const *file, int line, char const
      *msg, va_list ap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error_all
      Src: /src/freeradius-server/src/lib/tls/strerror.c:240,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/tls/strerror.c:244,1
    - Dst: _fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/strerror.c:245,1
    - Dst: ERR_get_error_all
      Src: /src/freeradius-server/src/lib/tls/strerror.c:248,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/tls/strerror.c:251,1
    - Dst: _fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/strerror.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 258
    functionName: fr_tls_strerror_drain
    functionSourceFile: /src/freeradius-server/src/lib/tls/strerror.c
    functionUses: 0
    functionsReached:
    - ERR_get_error_all
    - _fr_strerror_printf_push
    - _fr_strerror_printf
    - ERR_error_string_n
    linkageType: ''
    returnType: int
    signature: int fr_tls_strerror_drain(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_pubkey
      Src: /src/freeradius-server/src/lib/tls/utils.c:53,1
    - Dst: EVP_PKEY_type
      Src: /src/freeradius-server/src/lib/tls/utils.c:56,1
    - Dst: EVP_PKEY_id
      Src: /src/freeradius-server/src/lib/tls/utils.c:56,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/tls/utils.c:57,1
    - Dst: OBJ_nid2sn
      Src: /src/freeradius-server/src/lib/tls/utils.c:57,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/tls/utils.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: fr_tls_utils_x509_pkey_type
    functionSourceFile: /src/freeradius-server/src/lib/tls/utils.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_id
    - EVP_PKEY_type
    - fr_table_str_by_value
    - EVP_PKEY_free
    - OBJ_nid2sn
    - X509_get_pubkey
    linkageType: ''
    returnType: char
    signature: char *fr_tls_utils_x509_pkey_type(X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_cipher
      Src: /src/freeradius-server/src/lib/tls/utils.c:87,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/freeradius-server/src/lib/tls/utils.c:90,1
    - Dst: SSL_CIPHER_get_digest_nid
      Src: /src/freeradius-server/src/lib/tls/utils.c:91,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/utils.c:92,1
    - Dst: EVP_get_cipherbynid
      Src: /src/freeradius-server/src/lib/tls/utils.c:95,1
    - Dst: EVP_get_digestbynid
      Src: /src/freeradius-server/src/lib/tls/utils.c:96,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/utils.c:100,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/freeradius-server/src/lib/tls/utils.c:101,1
    - Dst: EVP_MD_size
      Src: /src/freeradius-server/src/lib/tls/utils.c:101,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/freeradius-server/src/lib/tls/utils.c:102,1
    - Dst: EVP_CIPHER_key_length
      Src: /src/freeradius-server/src/lib/tls/utils.c:103,1
    - Dst: EVP_MD_size
      Src: /src/freeradius-server/src/lib/tls/utils.c:103,1
    - Dst: EVP_CIPHER_iv_length
      Src: /src/freeradius-server/src/lib/tls/utils.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - request
    - ssl
    argTypes:
    - request_t*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: fr_tls_utils_keyblock_size_get
    functionSourceFile: /src/freeradius-server/src/lib/tls/utils.c
    functionUses: 1
    functionsReached:
    - SSL_CIPHER_get_digest_nid
    - EVP_CIPHER_key_length
    - EVP_CIPHER_iv_length
    - EVP_MD_size
    - RDEBUG2
    - EVP_get_digestbynid
    - EVP_get_cipherbynid
    - SSL_CIPHER_get_cipher_nid
    - SSL_get_current_cipher
    linkageType: ''
    returnType: int
    signature: int fr_tls_utils_keyblock_size_get(request_t *request, SSL *ssl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/utils.c:118,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/tls/utils.c:120,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/utils.c:124,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/utils.c:134,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/utils.c:147,1
    - Dst: timegm
      Src: /src/freeradius-server/src/lib/tls/utils.c:171,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - out
    - asn1
    argTypes:
    - time_t*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 174
    functionName: fr_tls_utils_asn1time_to_epoch
    functionSourceFile: /src/freeradius-server/src/lib/tls/utils.c
    functionUses: 2
    functionsReached:
    - memset
    - fr_strerror_printf
    - strlen
    - timegm
    linkageType: ''
    returnType: int
    signature: int fr_tls_utils_asn1time_to_epoch(time_t *out, ASN1_TIME const *asn1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/utils.c:196,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/utils.c:200,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/tls/utils.c:201,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/utils.c:203,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/tls/utils.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - u
    argTypes:
    - char*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 209
    functionName: fr_utils_get_private_key_password
    functionSourceFile: /src/freeradius-server/src/lib/tls/utils.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_array_length
    - talloc_get_type_abort
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_utils_get_private_key_password(char *buf, int size, UNUSED int
      rwflag, void *u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/virtual_server.c:61,1
    - Dst: unlang_subrequest_child_push
      Src: /src/freeradius-server/src/lib/tls/virtual_server.c:67,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/tls/virtual_server.c:77,1
    - Dst: unlang_call_push
      Src: /src/freeradius-server/src/lib/tls/virtual_server.c:90,1
    - Dst: request_detach
      Src: /src/freeradius-server/src/lib/tls/virtual_server.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - child
    - resume
    - conf
    - tls_session
    - cache_required
    argTypes:
    - request_t*
    - unlang_function_no_result_t
    - fr_tls_conf_t*
    - fr_tls_session_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 96
    functionName: fr_tls_call_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/virtual_server.c
    functionUses: 2
    functionsReached:
    - request_detach
    - unlang_subrequest_child_push
    - unlang_function_push
    - fr_assert
    - unlang_call_push
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fr_tls_call_push(request_t *child, unlang_function_no_result_t
      resume,\n\t\t\t\t fr_tls_conf_t *conf, fr_tls_session_t *tls_session,\n#ifdef
      NDEBUG\n\t\t\t\t UNUSED\n#endif\n\t\t\t\t bool cache_required)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/tls/engine.c:70,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/tls/engine.c:71,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/tls/engine.c:74,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/engine.c:74,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/tls/engine.c:84,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/engine.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: tls_engine_cmp
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t tls_engine_cmp(void const *one, void const *two)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/tls/engine.c:106,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:107,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:109,1
    - Dst: ENGINE_get_id
      Src: /src/freeradius-server/src/lib/tls/engine.c:109,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:111,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:113,1
    - Dst: ENGINE_cmd_is_executable
      Src: /src/freeradius-server/src/lib/tls/engine.c:118,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:123,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:124,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/engine.c:126,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:127,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:129,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:129,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:134,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/engine.c:136,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:137,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:139,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:139,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:144,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/tls/engine.c:158,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/engine.c:161,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/tls/engine.c:162,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/tls/engine.c:164,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:166,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 2
    argNames:
    - e
    - bad_ctrl
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 167
    functionName: tls_engine_control_notfound_strerror
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_array
    - talloc_free
    - fr_strerror_printf
    - ENGINE_get_id
    - fr_strerror_const_push
    - ENGINE_cmd_is_executable
    - ENGINE_ctrl
    - talloc_pool
    - talloc_free_children
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void tls_engine_control_notfound_strerror(ENGINE *e, char const *bad_ctrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/tls/engine.c:182,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:183,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/tls/engine.c:184,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/tls/engine.c:189,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/tls/engine.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_tls_engine_ctrl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 194
    functionName: tls_engine_ctrl_dup
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_const
    - talloc_strdup
    - talloc
    linkageType: ''
    returnType: fr_tls_engine_ctrl_t
    signature: "fr_tls_engine_ctrl_t *tls_engine_ctrl_dup(TALLOC_CTX *ctx,\n\t\t\t\t\t\t\t\t\t
      \      fr_tls_engine_ctrl_t const *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/tls/engine.c:201,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:207,1
    - Dst: ENGINE_finish
      Src: /src/freeradius-server/src/lib/tls/engine.c:207,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/engine.c:208,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:212,1
    - Dst: ENGINE_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:212,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/engine.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - our_e
    argTypes:
    - tls_engine_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 218
    functionName: _tls_engine_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_tls_log
    - ENGINE_finish
    - ENGINE_free
    - fr_rb_remove
    linkageType: ''
    returnType: int
    signature: int _tls_engine_free(tls_engine_t *our_e)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/tls/engine.c:252,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:253,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/tls/engine.c:255,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/tls/engine.c:261,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:263,1
    - Dst: ENGINE_by_id
      Src: /src/freeradius-server/src/lib/tls/engine.c:271,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:273,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/tls/engine.c:277,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:280,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/tls/engine.c:280,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:282,1
    - Dst: tls_engine_control_notfound_strerror
      Src: /src/freeradius-server/src/lib/tls/engine.c:287,1
    - Dst: ENGINE_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:289,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:302,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:304,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:308,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:309,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/tls/engine.c:319,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/tls/engine.c:319,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/tls/engine.c:320,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:323,1
    - Dst: ENGINE_ctrl
      Src: /src/freeradius-server/src/lib/tls/engine.c:325,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/tls/engine.c:325,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:327,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:336,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:341,1
    - Dst: ENGINE_init
      Src: /src/freeradius-server/src/lib/tls/engine.c:341,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:342,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/tls/engine.c:346,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:347,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/tls/engine.c:350,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/tls/engine.c:351,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/tls/engine.c:354,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/tls/engine.c:362,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/tls/engine.c:363,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/tls/engine.c:367,1
    - Dst: tls_engine_ctrl_dup
      Src: /src/freeradius-server/src/lib/tls/engine.c:368,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:369,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:370,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/tls/engine.c:373,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/tls/engine.c:379,1
    - Dst: tls_engine_ctrl_dup
      Src: /src/freeradius-server/src/lib/tls/engine.c:380,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/engine.c:381,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:382,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/tls/engine.c:385,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/tls/engine.c:389,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:390,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 103
    argCount: 5
    argNames:
    - e_out
    - id
    - instance
    - pre_ctrls
    - post_ctrls
    argTypes:
    - ENGINE**
    - char*
    - char*
    - fr_tls_engine_ctrl_list_t*
    - fr_tls_engine_ctrl_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 396
    functionName: fr_tls_engine_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - fr_strerror_printf
    - talloc_strdup
    - tls_engine_control_notfound_strerror
    - fr_rb_inline_alloc
    - fr_value_box_cast
    - fr_box_strvalue
    - unlikely
    - ENGINE_init
    - fr_tls_strerror_printf
    - fr_rb_insert
    - fr_strerror_const
    - talloc_set_destructor
    - UNCONST
    - fr_rb_find
    - ENGINE_ctrl
    - tls_engine_ctrl_dup
    - fr_strerror_printf_push
    - talloc_free
    - ENGINE_free
    - fr_dlist_next
    - ENGINE_by_id
    - talloc
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: "int fr_tls_engine_init(ENGINE **e_out,\n\t\t       char const *id,
      char const *instance,\n\t\t       fr_tls_engine_ctrl_list_t const *pre_ctrls,
      fr_tls_engine_ctrl_list_t const *post_ctrls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/engine.c:430,1
    - Dst: fr_tls_engine_init
      Src: /src/freeradius-server/src/lib/tls/engine.c:438,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/tls/engine.c:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - e_out
    - id
    - instance
    - auto_init
    argTypes:
    - ENGINE**
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 450
    functionName: fr_tls_engine
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - fr_tls_engine_init
    - fr_rb_find
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int fr_tls_engine(ENGINE **e_out, char const *id, char const *instance,
      bool auto_init)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_load_builtin_engines
      Src: /src/freeradius-server/src/lib/tls/engine.c:457,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/tls/engine.c:462,1
    - Dst: ENGINE_register_all_RAND
      Src: /src/freeradius-server/src/lib/tls/engine.c:465,1
    - Dst: ENGINE_get_default_RAND
      Src: /src/freeradius-server/src/lib/tls/engine.c:471,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/engine.c:474,1
    - Dst: ENGINE_get_id
      Src: /src/freeradius-server/src/lib/tls/engine.c:474,1
    - Dst: ENGINE_unregister_RAND
      Src: /src/freeradius-server/src/lib/tls/engine.c:475,1
    - Dst: ENGINE_finish
      Src: /src/freeradius-server/src/lib/tls/engine.c:481,1
    - Dst: ENGINE_free
      Src: /src/freeradius-server/src/lib/tls/engine.c:482,1
    - Dst: ENGINE_register_all_complete
      Src: /src/freeradius-server/src/lib/tls/engine.c:486,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 487
    functionName: fr_tls_engine_load_builtin
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_default_RAND
    - ENGINE_register_all_RAND
    - ENGINE_finish
    - ENGINE_free
    - ENGINE_unregister_RAND
    - fr_rb_find
    - ENGINE_get_id
    - strcmp
    - ENGINE_register_all_complete
    - ENGINE_load_builtin_engines
    linkageType: ''
    returnType: void
    signature: void fr_tls_engine_load_builtin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/tls/engine.c:494,1
    - Dst: ENGINE_cleanup
      Src: /src/freeradius-server/src/lib/tls/engine.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: fr_tls_engine_free_all
    functionSourceFile: /src/freeradius-server/src/lib/tls/engine.c
    functionUses: 0
    functionsReached:
    - ENGINE_cleanup
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void fr_tls_engine_free_all(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/conf.c:251,1
    - Dst: virtual_server_cf_parse
      Src: /src/freeradius-server/src/lib/tls/conf.c:254,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/tls/conf.c:261,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:262,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:263,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 266
    functionName: tls_virtual_server_cf_parse
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - virtual_server_cs
    - cf_section_find
    - virtual_server_cf_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int tls_virtual_server_cf_parse(TALLOC_CTX *ctx, void *out, void *parent,
      CONF_ITEM *ci, conf_parser_t const *rule)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/conf.c:270,1
    - Dst: cf_table_parse_int
      Src: /src/freeradius-server/src/lib/tls/conf.c:273,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/tls/conf.c:287,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:292,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/tls/conf.c:293,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:298,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/tls/conf.c:299,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:304,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/tls/conf.c:305,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/tls/conf.c:311,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/conf.c:318,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:325,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/tls/conf.c:326,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:331,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/tls/conf.c:332,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:337,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/tls/conf.c:338,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/tls/conf.c:344,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/conf.c:360,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/conf.c:360,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 369
    functionName: tls_conf_parse_cache_mode
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - WARN
    - talloc_array
    - cf_table_parse_int
    - talloc_get_type_abort
    - cf_log_warn
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int tls_conf_parse_cache_mode(TALLOC_CTX *ctx, void *out, void *parent,
      CONF_ITEM *ci, conf_parser_t const *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/tls/conf.c:388,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/tls/conf.c:397,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/conf.c:397,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/conf.c:399,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/tls/conf.c:402,1
    - Dst: popen
      Src: /src/freeradius-server/src/lib/tls/conf.c:404,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:406,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:407,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/conf.c:411,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:413,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:414,1
    - Dst: pclose
      Src: /src/freeradius-server/src/lib/tls/conf.c:415,1
    - Dst: fgets
      Src: /src/freeradius-server/src/lib/tls/conf.c:419,1
    - Dst: ferror
      Src: /src/freeradius-server/src/lib/tls/conf.c:421,1
    - Dst: pclose
      Src: /src/freeradius-server/src/lib/tls/conf.c:422,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/conf.c:423,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:424,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:425,1
    - Dst: pclose
      Src: /src/freeradius-server/src/lib/tls/conf.c:428,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/conf.c:438,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:439,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/conf.c:440,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/tls/conf.c:444,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/tls/conf.c:445,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 1
    argNames:
    - conf
    argTypes:
    - fr_tls_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 450
    functionName: conf_cert_admin_password
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - popen
    - ERROR
    - fgets
    - pclose
    - talloc_array
    - ferror
    - talloc_free
    - snprintf
    - talloc_const_free
    - strlen
    - talloc_array_length
    - DEBUG2
    - strncmp
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int conf_cert_admin_password(fr_tls_conf_t *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/freeradius-server/src/lib/tls/conf.c:465,1
    - Dst: X509_STORE_load_locations
      Src: /src/freeradius-server/src/lib/tls/conf.c:469,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/conf.c:470,1
    - Dst: X509_STORE_free
      Src: /src/freeradius-server/src/lib/tls/conf.c:471,1
    - Dst: X509_STORE_set_flags
      Src: /src/freeradius-server/src/lib/tls/conf.c:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - conf
    argTypes:
    - fr_tls_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 480
    functionName: conf_ocsp_revocation_store
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_STORE_new
    - fr_tls_log
    - X509_STORE_set_flags
    - X509_STORE_load_locations
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *conf_ocsp_revocation_store(fr_tls_conf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/tls/conf.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conf
    argTypes:
    - fr_tls_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: _conf_server_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int _conf_server_free(fr_tls_conf_t *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/conf.c:499,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/tls/conf.c:499,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/tls/conf.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 503
    functionName: fr_tls_conf_alloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_set_destructor
    linkageType: ''
    returnType: fr_tls_conf_t
    signature: fr_tls_conf_t *fr_tls_conf_alloc(TALLOC_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/tls/conf.c:513,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:513,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/tls/conf.c:515,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/tls/conf.c:519,1
    - Dst: fr_tls_conf_alloc
      Src: /src/freeradius-server/src/lib/tls/conf.c:521,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/tls/conf.c:523,1
    - Dst: cf_section_parse_pass2
      Src: /src/freeradius-server/src/lib/tls/conf.c:524,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/conf.c:528,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/tls/conf.c:537,1
    - Dst: conf_cert_admin_password
      Src: /src/freeradius-server/src/lib/tls/conf.c:540,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/tls/conf.c:546,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 549
    functionName: fr_tls_conf_parse_server
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - cf_section_parse
    - cf_section_parse_pass2
    - cf_data_find
    - cf_section_rules_push
    - FR_INTEGER_BOUND_CHECK
    - cf_data_add
    - fr_tls_conf_alloc
    - cf_data_value
    - conf_cert_admin_password
    - DEBUG
    linkageType: ''
    returnType: fr_tls_conf_t
    signature: fr_tls_conf_t *fr_tls_conf_parse_server(CONF_SECTION *cs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/tls/conf.c:555,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/tls/conf.c:555,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/tls/conf.c:557,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/tls/conf.c:561,1
    - Dst: fr_tls_conf_alloc
      Src: /src/freeradius-server/src/lib/tls/conf.c:563,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/tls/conf.c:565,1
    - Dst: cf_section_parse_pass2
      Src: /src/freeradius-server/src/lib/tls/conf.c:566,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/conf.c:570,1
    - Dst: conf_cert_admin_password
      Src: /src/freeradius-server/src/lib/tls/conf.c:583,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/tls/conf.c:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 589
    functionName: fr_tls_conf_parse_client
    functionSourceFile: /src/freeradius-server/src/lib/tls/conf.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - cf_section_parse
    - cf_section_parse_pass2
    - cf_data_find
    - cf_section_rules_push
    - cf_data_add
    - DEBUG2
    - cf_data_value
    - conf_cert_admin_password
    - fr_tls_conf_alloc
    linkageType: ''
    returnType: fr_tls_conf_t
    signature: fr_tls_conf_t *fr_tls_conf_parse_client(CONF_SECTION *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/tls/log.c:105,1
    - Dst: _fr_tls_strerror_push_chain
      Src: /src/freeradius-server/src/lib/tls/log.c:106,1
    - Dst: log_request_perror
      Src: /src/freeradius-server/src/lib/tls/log.c:108,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/tls/log.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - file
    - line
    - request
    - log_type
    - chain
    - cert
    argTypes:
    - char*
    - int
    - request_t*
    - fr_log_type_t
    - STACK_OF*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: _fr_tls_chain_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - _fr_tls_strerror_push_chain
    - log_request_perror
    - fr_perror
    - fr_strerror_clear
    linkageType: ''
    returnType: void
    signature: "void _fr_tls_chain_log(char const *file, int line,\n\t\t       request_t
      *request, fr_log_type_t log_type,\n\t\t       STACK_OF(X509) *chain, X509 *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/tls/log.c:131,1
    - Dst: _fr_tls_strerror_push_chain_marker
      Src: /src/freeradius-server/src/lib/tls/log.c:132,1
    - Dst: log_request_perror
      Src: /src/freeradius-server/src/lib/tls/log.c:134,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/tls/log.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - file
    - line
    - request
    - log_type
    - chain
    - cert
    - marker
    argTypes:
    - char*
    - int
    - request_t*
    - fr_log_type_t
    - STACK_OF*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: _fr_tls_chain_marker_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - _fr_tls_strerror_push_chain_marker
    - log_request_perror
    - fr_perror
    - fr_strerror_clear
    linkageType: ''
    returnType: void
    signature: "void _fr_tls_chain_marker_log(char const *file, int line,\n\t\t\t
      \     request_t *request, fr_log_type_t log_type,\n\t\t\t      STACK_OF(X509)
      *chain, X509 *cert, X509 *marker)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/tls/log.c:153,1
    - Dst: _fr_tls_strerror_push_x509_objects
      Src: /src/freeradius-server/src/lib/tls/log.c:154,1
    - Dst: log_request_perror
      Src: /src/freeradius-server/src/lib/tls/log.c:156,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/tls/log.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - file
    - line
    - request
    - log_type
    - objects
    argTypes:
    - char*
    - int
    - request_t*
    - fr_log_type_t
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: _fr_tls_x509_objects_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - _fr_tls_strerror_push_x509_objects
    - log_request_perror
    - fr_strerror_clear
    linkageType: ''
    returnType: void
    signature: "void _fr_tls_x509_objects_log(char const *file, int line,\n\t\t\t
      \     request_t *request, fr_log_type_t log_type,\n\t\t\t      STACK_OF(X509_OBJECT)
      *objects)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:186,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:187,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:188,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:189,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:190,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:191,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:192,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:193,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:194,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:195,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:196,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/tls/log.c:197,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/tls/log.c:199,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/tls/log.c:223,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/tls/log.c:224,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/log.c:225,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/log.c:227,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/tls/log.c:228,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/log.c:229,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/tls/log.c:239,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/tls/log.c:240,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/log.c:241,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/log.c:243,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/tls/log.c:244,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/log.c:246,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/tls/log.c:254,1
    - Dst: fr_tls_strerror_vprintf
      Src: /src/freeradius-server/src/lib/tls/log.c:255,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/log.c:256,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/log.c:258,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/tls/log.c:268,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/tls/log.c:269,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/log.c:270,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/log.c:272,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/tls/log.c:273,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/log.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - request
    - err
    - fmt
    argTypes:
    - request_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 281
    functionName: fr_tls_log_io_error
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 3
    functionsReached:
    - fr_tls_strerror_vprintf
    - L
    - va_end
    - va_start
    - talloc_free
    - fr_vasprintf
    - fr_table_str_by_value
    - ROPTIONAL
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int fr_tls_log_io_error(request_t *request, int err, char const *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/tls/log.c:298,1
    - Dst: fr_tls_strerror_vprintf
      Src: /src/freeradius-server/src/lib/tls/log.c:299,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/tls/log.c:300,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/log.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - request
    - msg
    argTypes:
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: fr_tls_log
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 13
    functionsReached:
    - ROPTIONAL
    - fr_tls_strerror_vprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int fr_tls_log(request_t *request, char const *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error
      Src: /src/freeradius-server/src/lib/tls/log.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: fr_tls_log_clear
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - ERR_get_error
    linkageType: ''
    returnType: void
    signature: void fr_tls_log_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/freeradius-server/src/lib/tls/log.c:320,1
    - Dst: BIO_set_init
      Src: /src/freeradius-server/src/lib/tls/log.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: tls_log_request_bio_create_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - atomic_fetch_add
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_log_request_bio_create_cb(BIO *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/log.c:335,1
    - Dst: BIO_get_data
      Src: /src/freeradius-server/src/lib/tls/log.c:335,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/log.c:336,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/tls/log.c:355,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/log.c:356,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/tls/log.c:361,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/tls/log.c:369,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/tls/log.c:370,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:370,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:371,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:371,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:380,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/tls/log.c:381,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/tls/log.c:382,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:382,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:383,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/tls/log.c:386,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/tls/log.c:392,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/tls/log.c:392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - bio
    - in
    - len
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 395
    functionName: tls_log_request_bio_write_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_sbuff_shift
    - REDEBUG2
    - BIO_get_data
    - fr_sbuff_used
    - memchr
    - talloc_get_type_abort
    - fr_sbuff_current
    - fr_sbuff_behind
    - func
    - fr_box_strvalue_len
    - fr_sbuff_set
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: int
    signature: int tls_log_request_bio_write_cb(BIO *bio, char const *in, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_log_request_bio_write_cb
      Src: /src/freeradius-server/src/lib/tls/log.c:406,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/log.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - in
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: tls_log_request_bio_puts_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - strlen
    - tls_log_request_bio_write_cb
    linkageType: ''
    returnType: int
    signature: int tls_log_request_bio_puts_cb(BIO *bio, char const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_sub
      Src: /src/freeradius-server/src/lib/tls/log.c:414,1
    - Dst: BIO_set_init
      Src: /src/freeradius-server/src/lib/tls/log.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: tls_log_request_bio_free_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - atomic_fetch_sub
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_log_request_bio_free_cb(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add
      Src: /src/freeradius-server/src/lib/tls/log.c:424,1
    - Dst: BIO_set_init
      Src: /src/freeradius-server/src/lib/tls/log.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 427
    functionName: tls_log_global_bio_create_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - atomic_fetch_add
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_log_global_bio_create_cb(BIO *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/log.c:439,1
    - Dst: BIO_get_data
      Src: /src/freeradius-server/src/lib/tls/log.c:439,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/tls/log.c:447,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/tls/log.c:452,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/tls/log.c:453,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:453,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:454,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:454,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:463,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/tls/log.c:464,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/tls/log.c:466,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:466,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/tls/log.c:467,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/tls/log.c:470,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/tls/log.c:476,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/tls/log.c:476,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - bio
    - in
    - len
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 479
    functionName: tls_log_global_bio_write_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_shift
    - BIO_get_data
    - fr_sbuff_used
    - memchr
    - talloc_get_type_abort
    - fr_sbuff_current
    - fr_sbuff_behind
    - fr_log
    - fr_box_strvalue_len
    - fr_sbuff_set
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: int
    signature: int tls_log_global_bio_write_cb(BIO *bio, char const *in, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_log_global_bio_write_cb
      Src: /src/freeradius-server/src/lib/tls/log.c:490,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/log.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - in
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: tls_log_global_bio_puts_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - strlen
    - tls_log_global_bio_write_cb
    linkageType: ''
    returnType: int
    signature: int tls_log_global_bio_puts_cb(BIO *bio, char const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_sub
      Src: /src/freeradius-server/src/lib/tls/log.c:498,1
    - Dst: BIO_set_init
      Src: /src/freeradius-server/src/lib/tls/log.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: tls_log_global_bio_free_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - atomic_fetch_sub
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int tls_log_global_bio_free_cb(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/log.c:508,1
    - Dst: BIO_free
      Src: /src/freeradius-server/src/lib/tls/log.c:510,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/log.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - log_bio
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 513
    functionName: _fr_tls_log_bio_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_tls_log_bio_free(void *log_bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/log.c:532,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/log.c:535,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/tls/log.c:535,1
    - Dst: BIO_new
      Src: /src/freeradius-server/src/lib/tls/log.c:537,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/log.c:544,1
    - Dst: BIO_set_data
      Src: /src/freeradius-server/src/lib/tls/log.c:545,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/tls/log.c:546,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/tls/log.c:547,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/tls/log.c:548,1
    - Dst: fr_sbuff_reset_talloc
      Src: /src/freeradius-server/src/lib/tls/log.c:551,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/tls/log.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - file
    - line
    - request
    - type
    - lvl
    argTypes:
    - char*
    - int
    - request_t*
    - fr_log_type_t
    - fr_log_lvl_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 560
    functionName: _fr_tls_request_log_bio
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - BIO_new
    - fr_atexit_thread_local
    - fr_sbuff_init_talloc
    - fr_sbuff_marker
    - talloc
    - BIO_set_data
    - fr_sbuff_reset_talloc
    - MEM
    linkageType: ''
    returnType: BIO
    signature: BIO *_fr_tls_request_log_bio(char const *file, int line, request_t
      *request, fr_log_type_t type, fr_log_lvl_t lvl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/log.c:578,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/log.c:581,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/tls/log.c:581,1
    - Dst: BIO_new
      Src: /src/freeradius-server/src/lib/tls/log.c:583,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/log.c:589,1
    - Dst: BIO_set_data
      Src: /src/freeradius-server/src/lib/tls/log.c:590,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/tls/log.c:591,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/tls/log.c:592,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/tls/log.c:593,1
    - Dst: fr_sbuff_reset_talloc
      Src: /src/freeradius-server/src/lib/tls/log.c:597,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/tls/log.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - file
    - line
    - type
    - lvl
    argTypes:
    - char*
    - int
    - fr_log_type_t
    - fr_log_lvl_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 605
    functionName: _fr_tls_global_log_bio
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - BIO_new
    - fr_atexit_thread_local
    - fr_sbuff_init_talloc
    - fr_sbuff_marker
    - talloc
    - BIO_set_data
    - fr_sbuff_reset_talloc
    - MEM
    linkageType: ''
    returnType: BIO
    signature: BIO *_fr_tls_global_log_bio(char const *file, int line, fr_log_type_t
      type, fr_log_lvl_t lvl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/freeradius-server/src/lib/tls/log.c:622,1
    - Dst: BIO_get_new_index
      Src: /src/freeradius-server/src/lib/tls/log.c:622,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/log.c:623,1
    - Dst: BIO_meth_set_create
      Src: /src/freeradius-server/src/lib/tls/log.c:625,1
    - Dst: BIO_meth_set_write
      Src: /src/freeradius-server/src/lib/tls/log.c:626,1
    - Dst: BIO_meth_set_puts
      Src: /src/freeradius-server/src/lib/tls/log.c:627,1
    - Dst: BIO_meth_set_destroy
      Src: /src/freeradius-server/src/lib/tls/log.c:628,1
    - Dst: BIO_meth_new
      Src: /src/freeradius-server/src/lib/tls/log.c:630,1
    - Dst: BIO_get_new_index
      Src: /src/freeradius-server/src/lib/tls/log.c:630,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/log.c:631,1
    - Dst: BIO_meth_free
      Src: /src/freeradius-server/src/lib/tls/log.c:632,1
    - Dst: BIO_meth_set_create
      Src: /src/freeradius-server/src/lib/tls/log.c:637,1
    - Dst: BIO_meth_set_write
      Src: /src/freeradius-server/src/lib/tls/log.c:638,1
    - Dst: BIO_meth_set_puts
      Src: /src/freeradius-server/src/lib/tls/log.c:639,1
    - Dst: BIO_meth_set_destroy
      Src: /src/freeradius-server/src/lib/tls/log.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 643
    functionName: fr_tls_log_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - BIO_meth_new
    - unlikely
    - BIO_meth_set_puts
    - BIO_meth_set_destroy
    - BIO_meth_set_create
    - BIO_get_new_index
    - BIO_meth_free
    - BIO_meth_set_write
    linkageType: ''
    returnType: int
    signature: int fr_tls_log_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/log.c:655,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/tls/log.c:655,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/tls/log.c:655,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/log.c:656,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/tls/log.c:656,1
    - Dst: atomic_load
      Src: /src/freeradius-server/src/lib/tls/log.c:656,1
    - Dst: BIO_meth_free
      Src: /src/freeradius-server/src/lib/tls/log.c:659,1
    - Dst: BIO_meth_free
      Src: /src/freeradius-server/src/lib/tls/log.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 667
    functionName: fr_tls_log_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/log.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    - fr_assert_msg
    - atomic_load
    linkageType: ''
    returnType: void
    signature: void fr_tls_log_free(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/base.c:267,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/tls/base.c:270,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/tls/base.c:288,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/base.c:294,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/base.c:301,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/tls/base.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - len
    - file
    - line
    argTypes:
    - size_t
    - char*
    - NDEBUG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 306
    functionName: fr_openssl_talloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - strrchr
    - talloc_set_name
    - strcmp
    - talloc_array
    linkageType: ''
    returnType: void
    signature: void *fr_openssl_talloc(size_t len, char const *file, NDEBUG_UNUSED
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/tls/base.c:318,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/tls/base.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - old
    - len
    - file
    - line
    argTypes:
    - void*
    - size_t
    - NDEBUG_UNUSED*
    - NDEBUG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 323
    functionName: fr_openssl_talloc_realloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - talloc_realloc_size
    - talloc_set_name
    linkageType: ''
    returnType: void
    signature: void *fr_openssl_talloc_realloc(void *old, size_t len, NDEBUG_UNUSED
      char const *file, NDEBUG_UNUSED int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_free
      Src: /src/freeradius-server/src/lib/tls/base.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to_free
    - file
    - line
    argTypes:
    - void*
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: fr_openssl_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - _talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_openssl_talloc_free(void *to_free, char const *file, UNUSED
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/base.c:343,1
    - Dst: _talloc_free
      Src: /src/freeradius-server/src/lib/tls/base.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - to_free
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: fr_openssl_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - _talloc_free
    - snprintf
    linkageType: ''
    returnType: void
    signature: void fr_openssl_talloc_free(void *to_free, char const *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_cleanup_thread
      Src: /src/freeradius-server/src/lib/tls/base.c:353,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/base.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - init
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: _openssl_thread_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - ASYNC_cleanup_thread
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _openssl_thread_free(void *init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/tls/base.c:375,1
    - Dst: ASYNC_init_thread
      Src: /src/freeradius-server/src/lib/tls/base.c:377,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:378,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/tls/base.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - async_pool_size_init
    - async_pool_size_max
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 386
    functionName: fr_openssl_thread_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 1
    functionsReached:
    - fr_tls_log
    - talloc_zero
    - ASYNC_init_thread
    - fr_atexit_thread_local
    linkageType: ''
    returnType: int
    signature: int fr_openssl_thread_init(size_t async_pool_size_init, size_t async_pool_size_max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_log_free
      Src: /src/freeradius-server/src/lib/tls/base.c:399,1
    - Dst: fr_tls_bio_free
      Src: /src/freeradius-server/src/lib/tls/base.c:401,1
    - Dst: fr_md5_openssl_free
      Src: /src/freeradius-server/src/lib/tls/base.c:403,1
    - Dst: fr_md4_openssl_free
      Src: /src/freeradius-server/src/lib/tls/base.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 405
    functionName: fr_openssl_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 3
    functionsReached:
    - fr_tls_log_free
    - fr_tls_bio_free
    - fr_md5_openssl_free
    - fr_md4_openssl_free
    linkageType: ''
    returnType: void
    signature: void fr_openssl_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/freeradius-server/src/lib/tls/base.c:409,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:410,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/freeradius-server/src/lib/tls/base.c:414,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: _openssl_provider_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - fr_tls_log
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void _openssl_provider_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanup
      Src: /src/freeradius-server/src/lib/tls/base.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: fr_openssl_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanup
    linkageType: ''
    returnType: int
    signature: int fr_openssl_cleanup(UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/freeradius-server/src/lib/tls/base.c:436,1
    - Dst: mmap
      Src: /src/freeradius-server/src/lib/tls/base.c:438,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:441,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/tls/base.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 447
    functionName: fr_openssl_stack_alloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - fr_tls_log
    - mmap
    - fr_syserror
    linkageType: ''
    returnType: void
    signature: void *fr_openssl_stack_alloc(size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/freeradius-server/src/lib/tls/base.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: fr_openssl_stack_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void fr_openssl_stack_free(void *stack)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/freeradius-server/src/lib/tls/base.c:470,1
    - Dst: pthread_attr_getstacksize
      Src: /src/freeradius-server/src/lib/tls/base.c:471,1
    - Dst: pthread_attr_destroy
      Src: /src/freeradius-server/src/lib/tls/base.c:472,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:475,1
    - Dst: CRYPTO_set_mem_functions
      Src: /src/freeradius-server/src/lib/tls/base.c:483,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:484,1
    - Dst: ASYNC_set_mem_functions
      Src: /src/freeradius-server/src/lib/tls/base.c:493,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:494,1
    - Dst: OPENSSL_init_ssl
      Src: /src/freeradius-server/src/lib/tls/base.c:507,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:508,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/freeradius-server/src/lib/tls/base.c:515,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:517,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/freeradius-server/src/lib/tls/base.c:526,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:528,1
    - Dst: OPENSSL_atexit
      Src: /src/freeradius-server/src/lib/tls/base.c:537,1
    - Dst: EVP_add_digest
      Src: /src/freeradius-server/src/lib/tls/base.c:544,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/lib/tls/base.c:544,1
    - Dst: fr_tls_log_init
      Src: /src/freeradius-server/src/lib/tls/base.c:546,1
    - Dst: fr_tls_bio_init
      Src: /src/freeradius-server/src/lib/tls/base.c:548,1
    - Dst: fr_md5_openssl_init
      Src: /src/freeradius-server/src/lib/tls/base.c:550,1
    - Dst: fr_md4_openssl_init
      Src: /src/freeradius-server/src/lib/tls/base.c:551,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/tls/base.c:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 566
    functionName: fr_openssl_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 4
    functionsReached:
    - fr_tls_log
    - OSSL_PROVIDER_load
    - OPENSSL_init_ssl
    - pthread_attr_getstacksize
    - CRYPTO_set_mem_functions
    - fr_atexit_global
    - pthread_attr_init
    - EVP_sha256
    - pthread_attr_destroy
    - EVP_add_digest
    - fr_tls_log_init
    - fr_tls_bio_init
    - OPENSSL_atexit
    - fr_md5_openssl_init
    - fr_md4_openssl_init
    - ASYNC_set_mem_functions
    linkageType: ''
    returnType: int
    signature: int fr_openssl_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_set_default_properties
      Src: /src/freeradius-server/src/lib/tls/base.c:577,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/base.c:578,1
    - Dst: fr_md5_openssl_init
      Src: /src/freeradius-server/src/lib/tls/base.c:586,1
    - Dst: fr_md4_openssl_init
      Src: /src/freeradius-server/src/lib/tls/base.c:587,1
    - Dst: fr_md5_openssl_free
      Src: /src/freeradius-server/src/lib/tls/base.c:589,1
    - Dst: fr_md4_openssl_free
      Src: /src/freeradius-server/src/lib/tls/base.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 594
    functionName: fr_openssl_fips_mode
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 1
    functionsReached:
    - fr_tls_log
    - fr_md5_openssl_free
    - fr_md4_openssl_free
    - fr_md5_openssl_init
    - fr_md4_openssl_init
    - EVP_set_default_properties
    linkageType: ''
    returnType: int
    signature: int fr_openssl_fips_mode(bool enabled)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/tls/base.c:614,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/base.c:615,1
    - Dst: fr_openssl_free
      Src: /src/freeradius-server/src/lib/tls/base.c:618,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/tls/base.c:622,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/base.c:623,1
    - Dst: fr_dict_enum_autoload
      Src: /src/freeradius-server/src/lib/tls/base.c:627,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/base.c:628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 633
    functionName: fr_tls_dict_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 3
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_enum_autoload
    - fr_openssl_free
    - PERROR
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_tls_dict_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/tls/base.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: fr_tls_dict_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/base.c
    functionUses: 2
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_tls_dict_free(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_options
      Src: /src/freeradius-server/src/lib/tls/ctx.c:56,1
    - Dst: strdup
      Src: /src/freeradius-server/src/lib/tls/ctx.c:61,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/freeradius-server/src/lib/tls/ctx.c:62,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:63,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:64,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - ecdh_curve
    - disable_single_dh_use
    argTypes:
    - SSL_CTX*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 69
    functionName: ctx_ecdh_curve_set
    functionSourceFile: /src/freeradius-server/src/lib/tls/ctx.c
    functionUses: 0
    functionsReached:
    - ERROR
    - SSL_CTX_set1_curves_list
    - free
    - strdup
    - SSL_CTX_set_options
    linkageType: ''
    returnType: int
    signature: int ctx_ecdh_curve_set(SSL_CTX *ctx, char const *ecdh_curve, bool disable_single_dh_use)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_default_properties_is_fips_enabled
      Src: /src/freeradius-server/src/lib/tls/ctx.c:94,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:95,1
    - Dst: BIO_new_file
      Src: /src/freeradius-server/src/lib/tls/ctx.c:99,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:100,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/freeradius-server/src/lib/tls/ctx.c:104,1
    - Dst: BIO_free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:105,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:107,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:108,1
    - Dst: SSL_CTX_set0_tmp_dh_pkey
      Src: /src/freeradius-server/src/lib/tls/ctx.c:112,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:114,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - file
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 120
    functionName: ctx_dh_params_load
    functionSourceFile: /src/freeradius-server/src/lib/tls/ctx.c
    functionUses: 0
    functionsReached:
    - ERROR
    - WARN
    - BIO_free
    - EVP_PKEY_free
    - EVP_default_properties_is_fips_enabled
    - SSL_CTX_set0_tmp_dh_pkey
    - BIO_new_file
    - PEM_read_bio_Parameters
    linkageType: ''
    returnType: int
    signature: int ctx_dh_params_load(SSL_CTX *ctx, char *file)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/ctx.c:128,1
    - Dst: SSL_CTX_get0_certificate
      Src: /src/freeradius-server/src/lib/tls/ctx.c:131,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:133,1
    - Dst: SSL_CTX_get0_chain_certs
      Src: /src/freeradius-server/src/lib/tls/ctx.c:137,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:138,1
    - Dst: fr_tls_cert_is_valid
      Src: /src/freeradius-server/src/lib/tls/ctx.c:142,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:144,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:145,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:152,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:153,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:157,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:158,1
    - Dst: X509_name_cmp
      Src: /src/freeradius-server/src/lib/tls/ctx.c:188,1
    - Dst: X509_get_subject_name
      Src: /src/freeradius-server/src/lib/tls/ctx.c:188,1
    - Dst: X509_get_issuer_name
      Src: /src/freeradius-server/src/lib/tls/ctx.c:189,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:193,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:194,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:195,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:198,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:199,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:204,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:205,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:206,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:209,1
    - Dst: fr_tls_chain_marker_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:210,1
    - Dst: fr_unix_time_ispos
      Src: /src/freeradius-server/src/lib/tls/ctx.c:231,1
    - Dst: fr_unix_time_gt
      Src: /src/freeradius-server/src/lib/tls/ctx.c:232,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 5
    argNames:
    - expires_first
    - self_signed
    - ctx
    - to_verify
    - verify_mode
    argTypes:
    - fr_unix_time_t*
    - X509**
    - SSL_CTX*
    - X509*
    - fr_tls_chain_verify_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 235
    functionName: tls_ctx_verify_chain_member
    functionSourceFile: /src/freeradius-server/src/lib/tls/ctx.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_tls_log
    - ERROR
    - WARN
    - fr_tls_cert_is_valid
    - fr_unix_time_gt
    - fr_unix_time_ispos
    - STACK_OF
    - SSL_CTX_get0_chain_certs
    - fr_tls_chain_marker_log
    - X509_get_subject_name
    - X509_get_issuer_name
    - X509_name_cmp
    - SSL_CTX_get0_certificate
    - PWARN
    linkageType: ''
    returnType: int
    signature: "int tls_ctx_verify_chain_member(fr_unix_time_t *expires_first, X509
      **self_signed,\n\t\t\t\t       SSL_CTX *ctx, X509 *to_verify,\n\t\t\t\t       fr_tls_chain_verify_mode_t
      verify_mode)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:244,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/tls/ctx.c:249,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/freeradius-server/src/lib/tls/ctx.c:250,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/freeradius-server/src/lib/tls/ctx.c:256,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/freeradius-server/src/lib/tls/ctx.c:260,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:261,1
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/freeradius-server/src/lib/tls/ctx.c:268,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:276,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/freeradius-server/src/lib/tls/ctx.c:280,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:281,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/tls/ctx.c:294,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/tls/ctx.c:300,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:302,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/tls/ctx.c:302,1
    - Dst: PEM_read_X509
      Src: /src/freeradius-server/src/lib/tls/ctx.c:311,1
    - Dst: d2i_X509_fp
      Src: /src/freeradius-server/src/lib/tls/ctx.c:315,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:319,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/tls/ctx.c:320,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/tls/ctx.c:323,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:326,1
    - Dst: SSL_CTX_add0_chain_cert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:330,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:331,1
    - Dst: X509_free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:332,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/freeradius-server/src/lib/tls/ctx.c:345,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:346,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/tls/ctx.c:359,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/ctx.c:361,1
    - Dst: tls_ctx_verify_chain_member
      Src: /src/freeradius-server/src/lib/tls/ctx.c:364,1
    - Dst: SSL_CTX_get0_certificate
      Src: /src/freeradius-server/src/lib/tls/ctx.c:365,1
    - Dst: SSL_CTX_get0_chain_certs
      Src: /src/freeradius-server/src/lib/tls/ctx.c:368,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:369,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/tls/ctx.c:375,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/tls/ctx.c:376,1
    - Dst: sk_X509_num
      Src: /src/freeradius-server/src/lib/tls/ctx.c:377,1
    - Dst: tls_ctx_verify_chain_member
      Src: /src/freeradius-server/src/lib/tls/ctx.c:383,1
    - Dst: sk_X509_value
      Src: /src/freeradius-server/src/lib/tls/ctx.c:384,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/tls/ctx.c:389,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/tls/ctx.c:390,1
    - Dst: SSL_CTX_build_cert_chain
      Src: /src/freeradius-server/src/lib/tls/ctx.c:413,1
    - Dst: SSL_CTX_build_cert_chain
      Src: /src/freeradius-server/src/lib/tls/ctx.c:422,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/ctx.c:423,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:424,1
    - Dst: SSL_CTX_build_cert_chain
      Src: /src/freeradius-server/src/lib/tls/ctx.c:429,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/ctx.c:430,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:431,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 106
    argCount: 3
    argNames:
    - ctx
    - chain
    - allow_multi_self_signed
    argTypes:
    - SSL_CTX*
    - fr_tls_chain_conf_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 442
    functionName: tls_ctx_load_cert_chain
    functionSourceFile: /src/freeradius-server/src/lib/tls/ctx.c
    functionUses: 0
    functionsReached:
    - PEM_read_X509
    - d2i_X509_fp
    - X509_free
    - memcpy
    - sk_X509_value
    - fr_unix_time_wrap
    - DIAG_ON
    - SSL_CTX_set_default_passwd_cb
    - SSL_CTX_use_certificate_chain_file
    - DIAG_OFF
    - fopen
    - ERROR
    - SSL_CTX_use_certificate_file
    - fr_tls_strerror_printf
    - fr_tls_log
    - fr_syserror
    - SSL_CTX_check_private_key
    - SSL_CTX_use_PrivateKey_file
    - sk_X509_num
    - fr_assert
    - SSL_CTX_set_default_passwd_cb_userdata
    - STACK_OF
    - talloc_array_length
    - PERROR
    - fclose
    - SSL_CTX_add0_chain_cert
    - SSL_CTX_get0_chain_certs
    - SSL_CTX_build_cert_chain
    - tls_ctx_verify_chain_member
    - SSL_CTX_get0_certificate
    - PWARN
    linkageType: ''
    returnType: int
    signature: int tls_ctx_load_cert_chain(SSL_CTX *ctx, fr_tls_chain_conf_t *chain,
      bool allow_multi_self_signed)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:469,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:476,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:494,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:495,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/freeradius-server/src/lib/tls/ctx.c:498,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:499,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:508,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:525,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:526,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/freeradius-server/src/lib/tls/ctx.c:529,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:530,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 3
    argNames:
    - ctx_options
    - ctx
    - conf
    argTypes:
    - UNUSED*
    - SSL_CTX*
    - fr_tls_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 536
    functionName: tls_ctx_version_set
    functionSourceFile: /src/freeradius-server/src/lib/tls/ctx.c
    functionUses: 0
    functionsReached:
    - fr_tls_log
    - ERROR
    - WARN
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_proto_version
    linkageType: ''
    returnType: int
    signature: "int tls_ctx_version_set(\n\t\t\tUNUSED\n\t\t\tint *ctx_options, SSL_CTX
      *ctx, fr_tls_conf_t const *conf)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/freeradius-server/src/lib/tls/ctx.c:557,1
    - Dst: TLS_method
      Src: /src/freeradius-server/src/lib/tls/ctx.c:557,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:559,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:579,1
    - Dst: SSL_CTX_free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:581,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:586,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:591,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:596,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:605,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:611,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:616,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/freeradius-server/src/lib/tls/ctx.c:624,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/freeradius-server/src/lib/tls/ctx.c:636,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/ctx.c:641,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/ctx.c:642,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:643,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/tls/ctx.c:651,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/tls/ctx.c:652,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:653,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/ctx.c:655,1
    - Dst: SSL_CTX_set_mode
      Src: /src/freeradius-server/src/lib/tls/ctx.c:659,1
    - Dst: SSL_CTX_set_mode
      Src: /src/freeradius-server/src/lib/tls/ctx.c:682,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/ctx.c:691,1
    - Dst: X509_STORE_new
      Src: /src/freeradius-server/src/lib/tls/ctx.c:691,1
    - Dst: SSL_CTX_set0_verify_cert_store
      Src: /src/freeradius-server/src/lib/tls/ctx.c:694,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/ctx.c:697,1
    - Dst: X509_STORE_load_locations
      Src: /src/freeradius-server/src/lib/tls/ctx.c:709,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:710,1
    - Dst: X509_STORE_set_purpose
      Src: /src/freeradius-server/src/lib/tls/ctx.c:723,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/freeradius-server/src/lib/tls/ctx.c:732,1
    - Dst: SSL_load_client_CA_file
      Src: /src/freeradius-server/src/lib/tls/ctx.c:732,1
    - Dst: X509_STORE_set_default_paths
      Src: /src/freeradius-server/src/lib/tls/ctx.c:734,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/tls/ctx.c:741,1
    - Dst: tls_ctx_load_cert_chain
      Src: /src/freeradius-server/src/lib/tls/ctx.c:756,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:775,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:777,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/tls/ctx.c:783,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:786,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:788,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:792,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:794,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/lib/tls/ctx.c:795,1
    - Dst: SSL_CTX_get0_certificate
      Src: /src/freeradius-server/src/lib/tls/ctx.c:798,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/tls/ctx.c:805,1
    - Dst: fr_tls_utils_x509_pkey_type
      Src: /src/freeradius-server/src/lib/tls/ctx.c:805,1
    - Dst: SSL_CTX_get0_chain_certs
      Src: /src/freeradius-server/src/lib/tls/ctx.c:806,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:807,1
    - Dst: fr_tls_chain_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:811,1
    - Dst: SSL_CTX_set_current_cert
      Src: /src/freeradius-server/src/lib/tls/ctx.c:813,1
    - Dst: tls_ctx_version_set
      Src: /src/freeradius-server/src/lib/tls/ctx.c:820,1
    - Dst: SSL_CTX_set_options
      Src: /src/freeradius-server/src/lib/tls/ctx.c:857,1
    - Dst: SSL_CTX_set_block_padding
      Src: /src/freeradius-server/src/lib/tls/ctx.c:869,1
    - Dst: ctx_ecdh_curve_set
      Src: /src/freeradius-server/src/lib/tls/ctx.c:875,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/freeradius-server/src/lib/tls/ctx.c:880,1
    - Dst: X509_STORE_set_flags
      Src: /src/freeradius-server/src/lib/tls/ctx.c:887,1
    - Dst: X509_STORE_set_flags
      Src: /src/freeradius-server/src/lib/tls/ctx.c:896,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/tls/ctx.c:899,1
    - Dst: SSL_CTX_set_verify_depth
      Src: /src/freeradius-server/src/lib/tls/ctx.c:910,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/freeradius-server/src/lib/tls/ctx.c:918,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/freeradius-server/src/lib/tls/ctx.c:927,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:928,1
    - Dst: SSL_new
      Src: /src/freeradius-server/src/lib/tls/ctx.c:941,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/ctx.c:943,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/tls/ctx.c:947,1
    - Dst: SSL_get_cipher_list
      Src: /src/freeradius-server/src/lib/tls/ctx.c:949,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/tls/ctx.c:950,1
    - Dst: SSL_free
      Src: /src/freeradius-server/src/lib/tls/ctx.c:954,1
    - Dst: ctx_dh_params_load
      Src: /src/freeradius-server/src/lib/tls/ctx.c:961,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/tls/ctx.c:961,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/freeradius-server/src/lib/tls/ctx.c:969,1
    - Dst: fr_tls_cache_ctx_init
      Src: /src/freeradius-server/src/lib/tls/ctx.c:975,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/tls/ctx.c:980,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/freeradius-server/src/lib/tls/ctx.c:981,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 195
    argCount: 2
    argNames:
    - conf
    - client
    argTypes:
    - fr_tls_conf_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 985
    functionName: fr_tls_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/ctx.c
    functionUses: 4
    functionsReached:
    - ctx_ecdh_curve_set
    - SSL_CTX_set_keylog_callback
    - WARN
    - SSL_CTX_set_tlsext_status_cb
    - SSL_CTX_set0_verify_cert_store
    - fr_tls_chain_log
    - fr_tls_cache_ctx_init
    - FR_DBUFF_TMP
    - strlen
    - SSL_CTX_set_block_padding
    - SSL_new
    - SSL_CTX_set_current_cert
    - SSL_CTX_set_verify_depth
    - MEM
    - SSL_CTX_set_ex_data
    - ERROR
    - fr_tls_utils_x509_pkey_type
    - tls_ctx_version_set
    - SSL_get_cipher_list
    - ctx_dh_params_load
    - X509_STORE_set_flags
    - SSL_CTX_set_info_callback
    - X509_STORE_set_default_paths
    - fr_base16_decode
    - SSL_CTX_set_client_CA_list
    - SSL_CTX_set_psk_server_callback
    - DEBUG3
    - X509_STORE_new
    - fr_tls_log
    - SSL_CTX_free
    - UNCONST
    - FR_SBUFF_IN
    - TLS_method
    - X509_STORE_load_locations
    - tls_ctx_load_cert_chain
    - SSL_CTX_set_psk_client_callback
    - talloc_array_length
    - STACK_OF
    - SSL_CTX_set_dh_auto
    - getenv
    - SSL_CTX_new
    - SSL_CTX_set_options
    - X509_STORE_set_purpose
    - SSL_CTX_set_mode
    - SSL_load_client_CA_file
    - SSL_CTX_set_cipher_list
    - SSL_CTX_get0_chain_certs
    - SSL_free
    - SSL_CTX_get0_certificate
    linkageType: ''
    returnType: SSL_CTX
    signature: SSL_CTX *fr_tls_ctx_alloc(fr_tls_conf_t const *conf, bool client)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_version_num
      Src: /src/freeradius-server/src/lib/tls/version.c:54,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/version.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: fr_openssl_version_consistent
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 2
    functionsReached:
    - ERROR
    - OpenSSL_version_num
    linkageType: ''
    returnType: int
    signature: int fr_openssl_version_consistent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/version.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: fr_openssl_version_str_from_num
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *fr_openssl_version_str_from_num(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/tls/version.c:117,1
    - Dst: fr_openssl_version_str_from_num
      Src: /src/freeradius-server/src/lib/tls/version.c:117,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/tls/version.c:118,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/tls/version.c:119,1
    - Dst: fr_openssl_version_str_from_num
      Src: /src/freeradius-server/src/lib/tls/version.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: fr_openssl_version_range
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - fr_openssl_version_str_from_num
    linkageType: ''
    returnType: char
    signature: char *fr_openssl_version_range(uint32_t low, uint32_t high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_version_num
      Src: /src/freeradius-server/src/lib/tls/version.c:132,1
    - Dst: fr_openssl_version_str_from_num
      Src: /src/freeradius-server/src/lib/tls/version.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: fr_openssl_version_basic
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version_num
    - fr_openssl_version_str_from_num
    linkageType: ''
    returnType: char
    signature: char *fr_openssl_version_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenSSL_version_num
      Src: /src/freeradius-server/src/lib/tls/version.c:146,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/tls/version.c:148,1
    - Dst: OpenSSL_version
      Src: /src/freeradius-server/src/lib/tls/version.c:149,1
    - Dst: fr_openssl_version_str_from_num
      Src: /src/freeradius-server/src/lib/tls/version.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: fr_openssl_version_expanded
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version_num
    - snprintf
    - fr_openssl_version_str_from_num
    - OpenSSL_version
    linkageType: ''
    returnType: char
    signature: char *fr_openssl_version_expanded(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: VM
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VM(_a,_b,_c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: Vm
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Vm(_a,_b,_c,_d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/version.c:207,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/version.c:211,1
    - Dst: OpenSSL_version_num
      Src: /src/freeradius-server/src/lib/tls/version.c:214,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/tls/version.c:215,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/tls/version.c:222,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/version.c:224,1
    - Dst: fr_openssl_version_expanded
      Src: /src/freeradius-server/src/lib/tls/version.c:225,1
    - Dst: fr_openssl_version_range
      Src: /src/freeradius-server/src/lib/tls/version.c:225,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/version.c:226,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/tls/version.c:227,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/tls/version.c:233,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - acknowledged
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 243
    functionName: fr_openssl_version_check
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 1
    functionsReached:
    - INFO
    - ERROR
    - fr_openssl_version_range
    - fr_openssl_version_expanded
    - strcmp
    - OpenSSL_version_num
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int fr_openssl_version_check(char const *acknowledged)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: fr_openssl_version_consistent
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_openssl_version_consistent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: fr_openssl_version_basic
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_openssl_version_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: fr_openssl_version_expanded
    functionSourceFile: /src/freeradius-server/src/lib/tls/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_openssl_version_expanded(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:49,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/lib/tls/cert.c:57,1
    - Dst: X509_get0_notAfter
      Src: /src/freeradius-server/src/lib/tls/cert.c:57,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/tls/cert.c:58,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/lib/tls/cert.c:61,1
    - Dst: X509_get0_notBefore
      Src: /src/freeradius-server/src/lib/tls/cert.c:61,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/tls/cert.c:62,1
    - Dst: fr_unix_time_from_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:66,1
    - Dst: fr_unix_time_from_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:67,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/tls/cert.c:72,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/tls/cert.c:72,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cert.c:73,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/lib/tls/cert.c:75,1
    - Dst: fr_unix_time_from_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:75,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/lib/tls/cert.c:75,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:75,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/tls/cert.c:83,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/tls/cert.c:83,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cert.c:84,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/lib/tls/cert.c:86,1
    - Dst: fr_unix_time_from_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:86,1
    - Dst: fr_box_date
      Src: /src/freeradius-server/src/lib/tls/cert.c:86,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/tls/cert.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - not_before_p
    - not_after_p
    - cert
    argTypes:
    - fr_unix_time_t*
    - fr_unix_time_t*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 91
    functionName: fr_tls_cert_is_valid
    functionSourceFile: /src/freeradius-server/src/lib/tls/cert.c
    functionUses: 2
    functionsReached:
    - fr_box_date
    - fr_unix_time_from_time
    - fr_time
    - fr_strerror_printf
    - X509_get0_notBefore
    - fr_time_gt
    - X509_get0_notAfter
    - fr_time_to_unix_time
    - fr_strerror_const_push
    - fr_tls_utils_asn1time_to_epoch
    - fr_time_lt
    - fr_time_from_sec
    linkageType: ''
    returnType: int
    signature: int fr_tls_cert_is_valid(fr_unix_time_t *not_before_p, fr_unix_time_t
      *not_after_p, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:60,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:61,1
    - Dst: talloc_typed_memdup
      Src: /src/freeradius-server/src/lib/tls/cache.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - TALLOC_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: fr_tls_cache_id
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - SSL_SESSION_get_id
    - talloc_typed_memdup
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_tls_cache_id(TALLOC_CTX *ctx, SSL_SESSION *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:79,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:80,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/tls/cache.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - sess
    argTypes:
    - fr_value_box_t*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: fr_tls_cache_id_to_box_shallow
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - SSL_SESSION_get_id
    - fr_value_box_memdup_shallow
    linkageType: ''
    returnType: void
    signature: void fr_tls_cache_id_to_box_shallow(fr_value_box_t *out, SSL_SESSION
      *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _box
    - ','
    - _sess
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: SESSION_ID
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SESSION_ID(_box, _sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:113,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:113,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/lib/tls/cache.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - request
    - session_id
    argTypes:
    - request_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: tls_cache_session_id_to_vp
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - pair_update_request
    - fr_pair_value_memdup_buffer
    - MEM
    linkageType: ''
    returnType: void
    signature: void tls_cache_session_id_to_vp(request_t *request, uint8_t const *session_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/cache.c:121,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:122,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/cache.c:123,1
    - Dst: SSL_SESSION_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - request
    - cache
    - func
    argTypes:
    - request_t*
    - fr_tls_cache_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: _tls_cache_load_state_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL_ENABLED
    - SESSION_ID
    - ROPTIONAL
    - SSL_SESSION_free
    linkageType: ''
    returnType: void
    signature: void _tls_cache_load_state_reset(request_t *request, fr_tls_cache_t
      *cache, char const *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _request
    - ','
    - _cache
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: tls_cache_load_state_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tls_cache_load_state_reset(_request, _cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/cache.c:137,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:138,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/cache.c:139,1
    - Dst: SSL_SESSION_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - request
    - cache
    - func
    argTypes:
    - request_t*
    - fr_tls_cache_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: _tls_cache_store_state_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL_ENABLED
    - SESSION_ID
    - ROPTIONAL
    - SSL_SESSION_free
    linkageType: ''
    returnType: void
    signature: void _tls_cache_store_state_reset(request_t *request, fr_tls_cache_t
      *cache, char const *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _request
    - ','
    - _cache
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: tls_cache_store_state_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tls_cache_store_state_reset(_request, _cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/tls/cache.c:152,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/cache.c:153,1
    - Dst: fr_box_octets_buffer
      Src: /src/freeradius-server/src/lib/tls/cache.c:154,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/tls/cache.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - request
    - cache
    - func
    argTypes:
    - request_t*
    - fr_tls_cache_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: _tls_cache_clear_state_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL_ENABLED
    - ROPTIONAL
    - fr_box_octets_buffer
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void _tls_cache_clear_state_reset(request_t *request, fr_tls_cache_t
      *cache, char const *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _request
    - ','
    - _cache
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: tls_cache_clear_state_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tls_cache_clear_state_reset(_request, _cache)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:177,1
    - Dst: pair_append_session_state
      Src: /src/freeradius-server/src/lib/tls/cache.c:177,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:181,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:183,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/tls/cache.c:184,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/tls/cache.c:185,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/tls/cache.c:186,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:194,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/tls/cache.c:194,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/tls/cache.c:200,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/tls/cache.c:202,1
    - Dst: fr_internal_encode_pair
      Src: /src/freeradius-server/src/lib/tls/cache.c:203,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:205,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:207,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/tls/cache.c:208,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/tls/cache.c:209,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/tls/cache.c:214,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/tls/cache.c:216,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/tls/cache.c:216,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/tls/cache.c:216,1
    - Dst: SSL_SESSION_set1_ticket_appdata
      Src: /src/freeradius-server/src/lib/tls/cache.c:222,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/tls/cache.c:222,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/tls/cache.c:222,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/tls/cache.c:223,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:225,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/cache.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - request
    - sess
    - resumption_type
    argTypes:
    - request_t*
    - SSL_SESSION*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 232
    functionName: tls_cache_app_data_set
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - fr_dbuff_start
    - SSL_SESSION_set1_ticket_appdata
    - MEM
    - SESSION_ID
    - fr_pair_delete
    - fr_dbuff_used
    - log_request_pair_list
    - RHEXDUMP4
    - fr_tls_log
    - fr_dbuff_free_talloc
    - RPERROR
    - RDEBUG2
    - fr_dbuff_init_talloc
    - fr_internal_encode_pair
    - pair_append_session_state
    - RINDENT
    - fr_pair_remove
    - REXDENT
    linkageType: ''
    returnType: int
    signature: int tls_cache_app_data_set(request_t *request, SSL_SESSION *sess, uint32_t
      resumption_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get0_ticket_appdata
      Src: /src/freeradius-server/src/lib/tls/cache.c:244,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:245,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/cache.c:247,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/tls/cache.c:251,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/tls/cache.c:252,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/tls/cache.c:254,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/tls/cache.c:254,1
    - Dst: fr_dbuff_len
      Src: /src/freeradius-server/src/lib/tls/cache.c:254,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/cache.c:262,1
    - Dst: fr_internal_decode_pair_dbuff
      Src: /src/freeradius-server/src/lib/tls/cache.c:263,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/tls/cache.c:264,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:265,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:267,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:268,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:274,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:276,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/tls/cache.c:277,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/tls/cache.c:278,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/tls/cache.c:279,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/tls/cache.c:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - request
    - sess
    argTypes:
    - request_t*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 285
    functionName: tls_cache_app_data_get
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SESSION_ID
    - fr_tls_log
    - RPEDEBUG
    - REXDENT
    - fr_dbuff_init
    - fr_dbuff_len
    - fr_dbuff_start
    - fr_dict_root
    - RINDENT
    - fr_dbuff_remaining
    - fr_internal_decode_pair_dbuff
    - RDEBUG2
    - log_request_pair_list
    - fr_pair_list_append
    - fr_pair_list_free
    - SSL_SESSION_get0_ticket_appdata
    - RHEXDUMP4
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int tls_cache_app_data_get(request_t *request, SSL_SESSION *sess)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/cache.c:297,1
    - Dst: SSL_SESSION_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/cache.c:297,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:301,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:307,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:309,1
    - Dst: fr_tls_cache_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:314,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:316,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:320,1
    - Dst: fr_box_octets_buffer
      Src: /src/freeradius-server/src/lib/tls/cache.c:320,1
    - Dst: ASYNC_pause_job
      Src: /src/freeradius-server/src/lib/tls/cache.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - sess
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 347
    functionName: tls_cache_delete_request
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - fr_box_octets_buffer
    - SSL_SESSION_get_ex_data
    - talloc_get_type_abort
    - fr_assert
    - RDEBUG3
    - fr_tls_session_request
    - fr_tls_cache_id
    - RWDEBUG
    - unlang_request_is_cancelled
    linkageType: ''
    returnType: void
    signature: void tls_cache_delete_request(SSL_SESSION *sess)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/cache.c:353,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/cache.c:359,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:361,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/cache.c:367,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:369,1
    - Dst: d2i_SSL_SESSION
      Src: /src/freeradius-server/src/lib/tls/cache.c:376,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/tls/cache.c:378,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:383,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:385,1
    - Dst: SSL_SESSION_print
      Src: /src/freeradius-server/src/lib/tls/cache.c:387,1
    - Dst: fr_tls_request_log_bio
      Src: /src/freeradius-server/src/lib/tls/cache.c:387,1
    - Dst: SSL_SESSION_set_ex_data
      Src: /src/freeradius-server/src/lib/tls/cache.c:399,1
    - Dst: fr_tls_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 405
    functionName: tls_cache_load_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SESSION_ID
    - fr_tls_log
    - fr_tls_request_log_bio
    - SSL_SESSION_set_ex_data
    - talloc_get_type_abort
    - fr_tls_session
    - RDEBUG3
    - SSL_SESSION_print
    - RWDEBUG
    - d2i_SSL_SESSION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_cache_load_result(request_t *request, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_conf
      Src: /src/freeradius-server/src/lib/tls/cache.c:419,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:426,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:428,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/lib/tls/cache.c:428,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:435,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:435,1
    - Dst: tls_cache_session_id_to_vp
      Src: /src/freeradius-server/src/lib/tls/cache.c:442,1
    - Dst: fr_tls_call_push
      Src: /src/freeradius-server/src/lib/tls/cache.c:448,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:450,1
    - Dst: tls_cache_load_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 456
    functionName: tls_cache_load_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - unlang_subrequest_alloc
    - fr_tls_session_conf
    - fr_assert
    - pair_prepend_request
    - fr_tls_call_push
    - tls_cache_session_id_to_vp
    - tls_cache_load_state_reset
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_cache_load_push(request_t *request, fr_tls_session_t
      *tls_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/cache.c:462,1
    - Dst: tls_cache_store_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:466,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/cache.c:468,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 477
    functionName: tls_cache_store_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - RWDEBUG
    - tls_cache_store_state_reset
    - fr_pair_find_by_da
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_cache_store_result(request_t *request, void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/tls/cache.c:503,1
    - Dst: SSL_SESSION_get_time_ex
      Src: /src/freeradius-server/src/lib/tls/cache.c:503,1
    - Dst: SSL_get_timeout
      Src: /src/freeradius-server/src/lib/tls/cache.c:503,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/tls/cache.c:505,1
    - Dst: SSL_SESSION_get_time
      Src: /src/freeradius-server/src/lib/tls/cache.c:505,1
    - Dst: SSL_get_timeout
      Src: /src/freeradius-server/src/lib/tls/cache.c:505,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/tls/cache.c:507,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:509,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:510,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/tls/cache.c:512,1
    - Dst: fr_tls_cache_id_to_box_shallow
      Src: /src/freeradius-server/src/lib/tls/cache.c:514,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:516,1
    - Dst: tls_cache_app_data_set
      Src: /src/freeradius-server/src/lib/tls/cache.c:524,1
    - Dst: tls_cache_store_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:526,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:532,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/lib/tls/cache.c:532,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:539,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:539,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:546,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:546,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/tls/cache.c:547,1
    - Dst: fr_tls_cache_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:547,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:552,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:552,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/tls/cache.c:553,1
    - Dst: i2d_SSL_SESSION
      Src: /src/freeradius-server/src/lib/tls/cache.c:558,1
    - Dst: fr_tls_cache_id_to_box_shallow
      Src: /src/freeradius-server/src/lib/tls/cache.c:561,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:564,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:565,1
    - Dst: tls_cache_store_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:568,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:569,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:574,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:574,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:575,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/cache.c:575,1
    - Dst: i2d_SSL_SESSION
      Src: /src/freeradius-server/src/lib/tls/cache.c:579,1
    - Dst: fr_tls_cache_id_to_box_shallow
      Src: /src/freeradius-server/src/lib/tls/cache.c:582,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:584,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:585,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:586,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/tls/cache.c:589,1
    - Dst: fr_tls_call_push
      Src: /src/freeradius-server/src/lib/tls/cache.c:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 3
    argNames:
    - request
    - conf
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_conf_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 599
    functionName: tls_cache_store_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SSL_get_timeout
    - talloc_array
    - fr_time_sub
    - fr_time_lteq
    - pair_prepend_request
    - fr_tls_call_push
    - fr_tls_cache_id
    - RWDEBUG
    - MEM
    - fr_tls_cache_id_to_box_shallow
    - SSL_SESSION_get_time_ex
    - fr_time
    - tls_cache_store_state_reset
    - SSL_SESSION_get_time
    - fr_tls_strerror_printf
    - fr_time_from_sec
    - fr_pair_value_memdup_buffer_shallow
    - i2d_SSL_SESSION
    - fr_assert
    - pair_update_request
    - RPWDEBUG
    - talloc_free
    - unlang_subrequest_alloc
    - tls_cache_app_data_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_cache_store_push(request_t *request, fr_tls_conf_t
      *conf, fr_tls_session_t *tls_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/cache.c:605,1
    - Dst: tls_cache_clear_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:609,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/cache.c:611,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 620
    functionName: tls_cache_clear_result
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - tls_cache_clear_state_reset
    - RWDEBUG
    - fr_pair_find_by_da
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_cache_clear_result(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:640,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:641,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:643,1
    - Dst: unlang_subrequest_alloc
      Src: /src/freeradius-server/src/lib/tls/cache.c:643,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:650,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:650,1
    - Dst: tls_cache_session_id_to_vp
      Src: /src/freeradius-server/src/lib/tls/cache.c:657,1
    - Dst: fr_tls_call_push
      Src: /src/freeradius-server/src/lib/tls/cache.c:663,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:665,1
    - Dst: tls_cache_clear_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - request
    - conf
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_conf_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 671
    functionName: tls_cache_clear_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - unlang_subrequest_alloc
    - fr_assert
    - pair_prepend_request
    - fr_tls_call_push
    - tls_cache_session_id_to_vp
    - tls_cache_clear_state_reset
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t tls_cache_clear_push(request_t *request, fr_tls_conf_t
      *conf, fr_tls_session_t *tls_session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_conf
      Src: /src/freeradius-server/src/lib/tls/cache.c:684,1
    - Dst: tls_cache_load_push
      Src: /src/freeradius-server/src/lib/tls/cache.c:692,1
    - Dst: SSL_SESSION_get_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:709,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/tls/cache.c:710,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/tls/cache.c:711,1
    - Dst: tls_cache_store_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:712,1
    - Dst: tls_cache_clear_push
      Src: /src/freeradius-server/src/lib/tls/cache.c:716,1
    - Dst: tls_cache_store_push
      Src: /src/freeradius-server/src/lib/tls/cache.c:720,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 724
    functionName: fr_tls_cache_pending_push
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 5
    functionsReached:
    - tls_cache_store_push
    - SSL_SESSION_get_id
    - tls_cache_store_state_reset
    - fr_tls_session_conf
    - tls_cache_clear_push
    - talloc_array_length
    - memcmp
    - tls_cache_load_push
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t fr_tls_cache_pending_push(request_t *request, fr_tls_session_t
      *tls_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:752,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:762,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:769,1
    - Dst: SSL_SESSION_get_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:771,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:772,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/lib/tls/cache.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 781
    functionName: tls_cache_store_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_id
    - fr_box_octets
    - RDEBUG3
    - fr_tls_session_request
    - fr_tls_session
    - unlang_request_is_cancelled
    linkageType: ''
    returnType: int
    signature: int tls_cache_store_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:803,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:804,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:811,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:834,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:837,1
    - Dst: talloc_typed_memdup
      Src: /src/freeradius-server/src/lib/tls/cache.c:837,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:839,1
    - Dst: fr_box_octets_buffer
      Src: /src/freeradius-server/src/lib/tls/cache.c:839,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:847,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/cache.c:849,1
    - Dst: ASYNC_pause_job
      Src: /src/freeradius-server/src/lib/tls/cache.c:860,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:868,1
    - Dst: tls_cache_load_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:869,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:876,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/tls/cache.c:884,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:886,1
    - Dst: tls_cache_app_data_get
      Src: /src/freeradius-server/src/lib/tls/cache.c:898,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:899,1
    - Dst: tls_cache_delete_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:905,1
    - Dst: tls_cache_load_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:906,1
    - Dst: fr_tls_verify_cert_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:918,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:920,1
    - Dst: ASYNC_pause_job
      Src: /src/freeradius-server/src/lib/tls/cache.c:928,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:936,1
    - Dst: tls_cache_load_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:937,1
    - Dst: fr_tls_verify_cert_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:938,1
    - Dst: fr_tls_verify_cert_result
      Src: /src/freeradius-server/src/lib/tls/cache.c:947,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:948,1
    - Dst: SESSION_ID
      Src: /src/freeradius-server/src/lib/tls/cache.c:960,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:962,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:971,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/tls/cache.c:975,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:976,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 4
    argNames:
    - ssl
    - key
    - key_len
    - copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 979
    functionName: tls_cache_load_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - tls_cache_delete_request
    - REDEBUG
    - fr_tls_verify_cert_request
    - fr_assert_msg
    - MEM
    - unlikely
    - SESSION_ID
    - tls_cache_app_data_get
    - talloc_typed_memdup
    - fr_tls_session_request
    - fr_tls_session
    - ASYNC_pause_job
    - fr_assert
    - RDEBUG3
    - RDEBUG2
    - fr_tls_verify_cert_result
    - unlang_request_is_cancelled
    - TALLOC_FREE
    - fr_tls_verify_cert_reset
    - tls_cache_load_state_reset
    - fr_box_octets_buffer
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *tls_cache_load_cb(SSL *ssl,\n\t\t\t\t      unsigned char
      const *key,\n\t\t\t\t      int key_len, int *copy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/cache.c:994,1
    - Dst: tls_cache_delete_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - UNUSED*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 996
    functionName: tls_cache_delete_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - tls_cache_delete_request
    - SSL_SESSION_get_ex_data
    linkageType: ''
    returnType: void
    signature: void tls_cache_delete_cb(UNUSED SSL_CTX *ctx, SSL_SESSION *sess)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:1016,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:1017,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:1023,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/cache.c:1028,1
    - Dst: SSL_get_ex_data
      Src: /src/freeradius-server/src/lib/tls/cache.c:1028,1
    - Dst: SSL_get_extms_support
      Src: /src/freeradius-server/src/lib/tls/cache.c:1029,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1030,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1036,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1051,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/tls/cache.c:1055,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1057,1
    - Dst: SSL_CTX_remove_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:1059,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1064,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - ssl
    - is_forward_secure
    argTypes:
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1067
    functionName: fr_tls_cache_disable_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SSL_get_extms_support
    - SSL_CTX_remove_session
    - talloc_get_type_abort
    - SSL_get_ex_data
    - RDEBUG2
    - fr_tls_session_request
    - fr_tls_session
    - fr_pair_find_by_da
    - unlang_request_is_cancelled
    linkageType: ''
    returnType: int
    signature: int fr_tls_cache_disable_cb(SSL *ssl, int is_forward_secure)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session_request_bound
      Src: /src/freeradius-server/src/lib/tls/cache.c:1090,1
    - Dst: fr_tls_session_request_bind
      Src: /src/freeradius-server/src/lib/tls/cache.c:1098,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:1104,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:1104,1
    - Dst: SSL_CTX_remove_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:1124,1
    - Dst: tls_cache_store_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:1130,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:1130,1
    - Dst: fr_tls_session_request_unbind
      Src: /src/freeradius-server/src/lib/tls/cache.c:1135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - request
    - tls_session
    argTypes:
    - request_t*
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1136
    functionName: fr_tls_cache_deny
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_remove_session
    - tls_cache_store_state_reset
    - fr_tls_session_request_bind
    - fr_assert
    - fr_tls_session_request_unbind
    - fr_tls_session_request
    - fr_tls_session_request_bound
    linkageType: ''
    returnType: void
    signature: void fr_tls_cache_deny(request_t *request, fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls_cache_load_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:1142,1
    - Dst: tls_cache_store_state_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tls_cache
    argTypes:
    - fr_tls_cache_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1146
    functionName: _tls_cache_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - tls_cache_store_state_reset
    - tls_cache_load_state_reset
    linkageType: ''
    returnType: int
    signature: int _tls_cache_free(fr_tls_cache_t *tls_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:1156,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:1158,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/tls/cache.c:1158,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/tls/cache.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tls_session
    argTypes:
    - fr_tls_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1160
    functionName: fr_tls_cache_session_alloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 1
    functionsReached:
    - talloc_set_destructor
    - fr_assert
    - MEM
    - talloc_zero
    linkageType: ''
    returnType: void
    signature: void fr_tls_cache_session_alloc(fr_tls_session_t *tls_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_options
      Src: /src/freeradius-server/src/lib/tls/cache.c:1169,1
    - Dst: SSL_CTX_set_options
      Src: /src/freeradius-server/src/lib/tls/cache.c:1175,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/freeradius-server/src/lib/tls/cache.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1184
    functionName: tls_cache_disable_stateless_resumption
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_num_tickets
    - SSL_CTX_get_options
    - SSL_CTX_set_options
    linkageType: ''
    returnType: void
    signature: void tls_cache_disable_stateless_resumption(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/freeradius-server/src/lib/tls/cache.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1205
    functionName: tls_cache_disable_statefull_resumption
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_session_cache_mode
    linkageType: ''
    returnType: void
    signature: void tls_cache_disable_statefull_resumption(SSL_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:1215,1
    - Dst: fr_tls_session_request_bound
      Src: /src/freeradius-server/src/lib/tls/cache.c:1226,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:1234,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:1239,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:1248,1
    - Dst: SSL_get_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:1252,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:1254,1
    - Dst: tls_cache_app_data_set
      Src: /src/freeradius-server/src/lib/tls/cache.c:1258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1261
    functionName: tls_cache_session_ticket_app_data_set
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - tls_cache_app_data_set
    - fr_tls_session_request
    - fr_tls_session
    - SSL_get_session
    - unlang_request_is_cancelled
    - fr_tls_session_request_bound
    linkageType: ''
    returnType: int
    signature: int tls_cache_session_ticket_app_data_set(SSL *ssl, void *arg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_session
      Src: /src/freeradius-server/src/lib/tls/cache.c:1273,1
    - Dst: fr_tls_session_conf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1274,1
    - Dst: fr_tls_session_request_bound
      Src: /src/freeradius-server/src/lib/tls/cache.c:1278,1
    - Dst: fr_tls_session_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:1279,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:1280,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/tls/cache.c:1285,1
    - Dst: tls_cache_app_data_get
      Src: /src/freeradius-server/src/lib/tls/cache.c:1320,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/tls/cache.c:1321,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1326,1
    - Dst: fr_tls_verify_cert_request
      Src: /src/freeradius-server/src/lib/tls/cache.c:1335,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:1343,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/cache.c:1344,1
    - Dst: ASYNC_pause_job
      Src: /src/freeradius-server/src/lib/tls/cache.c:1356,1
    - Dst: unlang_request_is_cancelled
      Src: /src/freeradius-server/src/lib/tls/cache.c:1362,1
    - Dst: fr_tls_verify_cert_reset
      Src: /src/freeradius-server/src/lib/tls/cache.c:1363,1
    - Dst: fr_tls_verify_cert_result
      Src: /src/freeradius-server/src/lib/tls/cache.c:1372,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/tls/cache.c:1373,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 6
    argNames:
    - ssl
    - sess
    - keyname
    - keyname_len
    - status
    - arg
    argTypes:
    - SSL*
    - SSL_SESSION*
    - UNUSED unsigned*
    - UNUSED
    - SSL_TICKET_STATUS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1267
    functionDepth: 3
    functionLinenumber: 1267
    functionLinenumberEnd: 1379
    functionName: tls_cache_session_ticket_app_data_get
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - unlikely
    - fr_tls_verify_cert_reset
    - tls_cache_app_data_get
    - REDEBUG
    - fr_tls_verify_cert_request
    - fr_tls_session_conf
    - ROPTIONAL
    - RDEBUG2
    - fr_assert_msg
    - fr_tls_session_request
    - fr_tls_session
    - fr_tls_verify_cert_result
    - unlang_request_is_cancelled
    - fr_tls_session_request_bound
    linkageType: ''
    returnType: SSL_TICKET_RETURN
    signature: "SSL_TICKET_RETURN tls_cache_session_ticket_app_data_get(SSL *ssl,
      SSL_SESSION *sess,\n\t\t\t\t\t\t\t       UNUSED unsigned char const *keyname,\n\t\t\t\t\t\t\t
      \      UNUSED size_t keyname_len,\n\t\t\t\t\t\t\t       SSL_TICKET_STATUS status,\n\t\t\t\t\t\t\t
      \      void *arg)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tls_cache_disable_stateless_resumption
      Src: /src/freeradius-server/src/lib/tls/cache.c:1393,1
    - Dst: tls_cache_disable_statefull_resumption
      Src: /src/freeradius-server/src/lib/tls/cache.c:1394,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/freeradius-server/src/lib/tls/cache.c:1403,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/freeradius-server/src/lib/tls/cache.c:1404,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/freeradius-server/src/lib/tls/cache.c:1405,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/freeradius-server/src/lib/tls/cache.c:1413,1
    - Dst: SSL_CTX_set_timeout
      Src: /src/freeradius-server/src/lib/tls/cache.c:1418,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/lib/tls/cache.c:1418,1
    - Dst: tls_cache_disable_stateless_resumption
      Src: /src/freeradius-server/src/lib/tls/cache.c:1424,1
    - Dst: tls_cache_disable_statefull_resumption
      Src: /src/freeradius-server/src/lib/tls/cache.c:1435,1
    - Dst: SSL_CTX_set_tlsext_ticket_keys
      Src: /src/freeradius-server/src/lib/tls/cache.c:1446,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:1448,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/freeradius-server/src/lib/tls/cache.c:1448,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1449,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1450,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:1452,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/cache.c:1455,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/freeradius-server/src/lib/tls/cache.c:1455,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1456,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1457,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1461,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1462,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1468,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1469,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1475,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1476,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/cache.c:1484,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/tls/cache.c:1484,1
    - Dst: EVP_PKEY_derive
      Src: /src/freeradius-server/src/lib/tls/cache.c:1485,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1486,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1487,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:1490,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/freeradius-server/src/lib/tls/cache.c:1493,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/tls/cache.c:1496,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/tls/cache.c:1496,1
    - Dst: SSL_CTX_set_tlsext_ticket_keys
      Src: /src/freeradius-server/src/lib/tls/cache.c:1501,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1503,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1504,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/tls/cache.c:1508,1
    - Dst: HEXDUMP3
      Src: /src/freeradius-server/src/lib/tls/cache.c:1509,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/tls/cache.c:1510,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/tls/cache.c:1520,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/tls/cache.c:1521,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 2
    argNames:
    - ctx
    - cache_conf
    argTypes:
    - SSL_CTX*
    - fr_tls_cache_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1389
    functionDepth: 2
    functionLinenumber: 1389
    functionLinenumberEnd: 1523
    functionName: fr_tls_cache_ctx_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/cache.c
    functionUses: 1
    functionsReached:
    - tls_cache_disable_statefull_resumption
    - talloc_array
    - fr_time_delta_to_sec
    - EVP_PKEY_derive_init
    - MEM
    - EVP_PKEY_CTX_free
    - SSL_CTX_sess_set_new_cb
    - unlikely
    - SSL_CTX_sess_set_get_cb
    - fr_tls_strerror_printf
    - tls_cache_disable_stateless_resumption
    - SSL_CTX_set_tlsext_ticket_keys
    - DEBUG3
    - fr_assert
    - talloc_array_length
    - EVP_PKEY_CTX_new_id
    - SSL_CTX_set_session_cache_mode
    - HEXDUMP3
    - PERROR
    - SSL_CTX_set_timeout
    - EVP_PKEY_derive
    - TALLOC_FREE
    - talloc_free
    - SSL_CTX_sess_set_remove_cb
    linkageType: ''
    returnType: int
    signature: int fr_tls_cache_ctx_init(SSL_CTX *ctx, fr_tls_cache_conf_t const *cache_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/bio.c:61,1
    - Dst: BIO_get_data
      Src: /src/freeradius-server/src/lib/tls/bio.c:61,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/bio.c:63,1
    - Dst: fr_dbuff_shift
      Src: /src/freeradius-server/src/lib/tls/bio.c:69,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/tls/bio.c:69,1
    - Dst: fr_dbuff_in_memcpy_partial
      Src: /src/freeradius-server/src/lib/tls/bio.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - in
    - len
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: _tls_bio_talloc_write_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - fr_dbuff_in_memcpy_partial
    - talloc_get_type_abort
    - fr_dbuff_used
    - fr_assert_msg
    - fr_dbuff_shift
    linkageType: ''
    returnType: int
    signature: int _tls_bio_talloc_write_cb(BIO *bio, char const *in, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tls_bio_talloc_write_cb
      Src: /src/freeradius-server/src/lib/tls/bio.c:81,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/tls/bio.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - in
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: _tls_bio_talloc_puts_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - strlen
    - _tls_bio_talloc_write_cb
    linkageType: ''
    returnType: int
    signature: int _tls_bio_talloc_puts_cb(BIO *bio, char const *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/bio.c:93,1
    - Dst: BIO_get_data
      Src: /src/freeradius-server/src/lib/tls/bio.c:93,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/bio.c:97,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/bio.c:99,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/tls/bio.c:102,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/bio.c:103,1
    - Dst: fr_dbuff_shift
      Src: /src/freeradius-server/src/lib/tls/bio.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: _tls_bio_talloc_read_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - fr_cond_assert
    - talloc_get_type_abort
    - fr_dbuff_remaining
    - fr_assert_msg
    - fr_dbuff_shift
    - fr_dbuff_out_memcpy
    linkageType: ''
    returnType: int
    signature: int _tls_bio_talloc_read_cb(BIO *bio, char *buf, int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/bio.c:125,1
    - Dst: BIO_get_data
      Src: /src/freeradius-server/src/lib/tls/bio.c:125,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/bio.c:130,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:135,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:138,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/tls/bio.c:145,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/bio.c:145,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/bio.c:145,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/tls/bio.c:147,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/tls/bio.c:149,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/tls/bio.c:154,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/tls/bio.c:155,1
    - Dst: fr_dbuff_shift
      Src: /src/freeradius-server/src/lib/tls/bio.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 164
    functionName: _tls_bio_talloc_gets_cb
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_current
    - BIO_get_data
    - memchr
    - fr_cond_assert
    - talloc_get_type_abort
    - fr_dbuff_remaining
    - fr_assert_msg
    - fr_dbuff_shift
    - fr_dbuff_out_memcpy
    linkageType: ''
    returnType: int
    signature: int _tls_bio_talloc_gets_cb(BIO *bio, char *buf, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:176,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:177,1
    - Dst: fr_dbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bd
    argTypes:
    - fr_tls_bio_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: fr_tls_bio_dbuff_finalise
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_trim_talloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_tls_bio_dbuff_finalise(fr_tls_bio_dbuff_t *bd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:197,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:198,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/tls/bio.c:200,1
    - Dst: fr_dbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - bd
    argTypes:
    - fr_tls_bio_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: fr_tls_bio_dbuff_finalise_bstr
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_trim_talloc
    - fr_dbuff_in_bytes
    linkageType: ''
    returnType: char
    signature: char *fr_tls_bio_dbuff_finalise_bstr(fr_tls_bio_dbuff_t *bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/tls/bio.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bd
    argTypes:
    - fr_tls_bio_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: fr_tls_bio_dbuff_reset
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_set_to_start
    linkageType: ''
    returnType: void
    signature: void fr_tls_bio_dbuff_reset(fr_tls_bio_dbuff_t *bd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/freeradius-server/src/lib/tls/bio.c:225,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bd
    argTypes:
    - fr_tls_bio_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: _fr_tls_bio_dbuff_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - fr_dbuff_free_talloc
    linkageType: ''
    returnType: int
    signature: int _fr_tls_bio_dbuff_free(fr_tls_bio_dbuff_t *bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bd
    argTypes:
    - fr_tls_bio_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: fr_tls_bio_dbuff_out
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_dbuff_t
    signature: fr_dbuff_t *fr_tls_bio_dbuff_out(fr_tls_bio_dbuff_t *bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bd
    argTypes:
    - fr_tls_bio_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: fr_tls_bio_dbuff_in
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_dbuff_t
    signature: fr_dbuff_t *fr_tls_bio_dbuff_in(fr_tls_bio_dbuff_t *bd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/bio.c:267,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/tls/bio.c:267,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/bio.c:268,1
    - Dst: BIO_new
      Src: /src/freeradius-server/src/lib/tls/bio.c:268,1
    - Dst: BIO_set_data
      Src: /src/freeradius-server/src/lib/tls/bio.c:269,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/bio.c:274,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:274,1
    - Dst: FR_DBUFF_BIND_END_ABS
      Src: /src/freeradius-server/src/lib/tls/bio.c:275,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/tls/bio.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - out
    - bio_ctx
    - buff_ctx
    - init
    - max
    - free_buff
    argTypes:
    - fr_tls_bio_dbuff_t**
    - TALLOC_CTX*
    - TALLOC_CTX*
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: fr_tls_bio_dbuff_alloc
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - fr_dbuff_init_talloc
    - talloc_set_destructor
    - BIO_set_data
    - talloc_zero
    - FR_DBUFF_BIND_END_ABS
    - MEM
    linkageType: ''
    returnType: BIO
    signature: "BIO *fr_tls_bio_dbuff_alloc(fr_tls_bio_dbuff_t **out, TALLOC_CTX *bio_ctx,
      TALLOC_CTX *buff_ctx,\n\t\t\t     size_t init, size_t max, bool free_buff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_bio_dbuff_finalise
      Src: /src/freeradius-server/src/lib/tls/bio.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: fr_tls_bio_dbuff_thread_local_finalise
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - fr_tls_bio_dbuff_finalise
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_tls_bio_dbuff_thread_local_finalise(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_bio_dbuff_finalise_bstr
      Src: /src/freeradius-server/src/lib/tls/bio.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: fr_tls_bio_dbuff_thread_local_finalise_bstr
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - fr_tls_bio_dbuff_finalise_bstr
    linkageType: ''
    returnType: char
    signature: char *fr_tls_bio_dbuff_thread_local_finalise_bstr(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:318,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:319,1
    - Dst: fr_dbuff_free_talloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: fr_tls_bio_dbuff_thread_local_clear
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_dbuff_free_talloc
    linkageType: ''
    returnType: void
    signature: void fr_tls_bio_dbuff_thread_local_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/tls/bio.c:329,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/tls/bio.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio_talloc_agg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: _fr_tls_bio_dbuff_thread_local_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_tls_bio_dbuff_thread_local_free(void *bio_talloc_agg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:346,1
    - Dst: fr_tls_bio_dbuff_alloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:347,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/tls/bio.c:348,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/tls/bio.c:353,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/tls/bio.c:354,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/tls/bio.c:354,1
    - Dst: FR_DBUFF_BIND_END_ABS
      Src: /src/freeradius-server/src/lib/tls/bio.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - init
    - max
    argTypes:
    - TALLOC_CTX*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: fr_tls_bio_dbuff_thread_local
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_dbuff_init_talloc
    - fr_tls_bio_dbuff_alloc
    - fr_atexit_thread_local
    - fr_assert_msg
    - FR_DBUFF_BIND_END_ABS
    - MEM
    linkageType: ''
    returnType: BIO
    signature: BIO *fr_tls_bio_dbuff_thread_local(TALLOC_CTX *ctx, size_t init, size_t
      max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/freeradius-server/src/lib/tls/bio.c:375,1
    - Dst: BIO_get_new_index
      Src: /src/freeradius-server/src/lib/tls/bio.c:375,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/tls/bio.c:376,1
    - Dst: BIO_meth_set_write
      Src: /src/freeradius-server/src/lib/tls/bio.c:383,1
    - Dst: BIO_meth_set_puts
      Src: /src/freeradius-server/src/lib/tls/bio.c:384,1
    - Dst: BIO_meth_set_read
      Src: /src/freeradius-server/src/lib/tls/bio.c:385,1
    - Dst: BIO_meth_set_gets
      Src: /src/freeradius-server/src/lib/tls/bio.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 389
    functionName: fr_tls_bio_init
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - BIO_meth_new
    - unlikely
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_read
    - BIO_get_new_index
    - BIO_meth_set_write
    linkageType: ''
    returnType: int
    signature: int fr_tls_bio_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/freeradius-server/src/lib/tls/bio.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: fr_tls_bio_free
    functionSourceFile: /src/freeradius-server/src/lib/tls/bio.c
    functionUses: 1
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void fr_tls_bio_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/eap/session.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: eap_session_get
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.h
    functionUses: 24
    functionsReached:
    - request_data_reference
    linkageType: ''
    returnType: eap_session_t
    signature: eap_session_t *eap_session_get(request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/eap/types.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: eap_name2type
    functionSourceFile: /src/freeradius-server/src/lib/eap/types.c
    functionUses: 3
    functionsReached:
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: eap_type_t
    signature: eap_type_t eap_name2type(char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/eap/types.c:58,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap/types.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - method
    argTypes:
    - eap_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: eap_type2name
    functionSourceFile: /src/freeradius-server/src/lib/eap/types.c
    functionUses: 4
    functionsReached:
    - fr_box_uint32
    - fr_dict_enum_by_value
    linkageType: ''
    returnType: char
    signature: char *eap_type2name(eap_type_t method)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/session.c:36,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap/session.c:41,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/eap/session.c:41,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap/session.c:42,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/eap/session.c:42,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/eap/session.c:53,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/eap/session.c:53,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/eap/session.c:53,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/eap/session.c:53,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/eap/session.c:54,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/eap/session.c:55,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/eap/session.c:57,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/eap/session.c:58,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/eap/session.c:61,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/eap/session.c:75,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/session.c:82,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/eap/session.c:85,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 89
    functionName: _eap_session_free
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 0
    functionsReached:
    - request_data_get
    - talloc_free
    - fr_time
    - fr_cond_assert
    - fr_time_delta_gt
    - fr_time_sub
    - ROPTIONAL
    - fr_assert
    - talloc_parent
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int _eap_session_free(eap_session_t *eap_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap/session.c:108,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap/session.c:109,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/eap/session.c:110,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/eap/session.c:116,1
    - Dst: request_data_talloc_add
      Src: /src/freeradius-server/src/lib/eap/session.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: eap_session_alloc
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - request_data_talloc_add
    - talloc_set_destructor
    - talloc_zero
    linkageType: ''
    returnType: eap_session_t
    signature: eap_session_t *eap_session_alloc(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/session.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: eap_session_destroy
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 4
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void eap_session_destroy(eap_session_t **eap_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/eap/session.c:176,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/lib/eap/session.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: eap_session_discard
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 1
    functionsReached:
    - request_data_get
    - eap_session_destroy
    linkageType: ''
    returnType: void
    signature: void eap_session_discard(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/session.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: eap_session_freeze
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 2
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void eap_session_freeze(eap_session_t **eap_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/eap/session.c:240,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap/session.c:243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/session.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: eap_session_thaw
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 1
    functionsReached:
    - request_data_reference
    - fr_cond_assert
    - fr_assert
    linkageType: ''
    returnType: eap_session_t
    signature: eap_session_t *eap_session_thaw(request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/eap/session.c:269,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/session.c:299,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/eap/session.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - request
    - eap_session
    - eap_packet
    argTypes:
    - request_t*
    - eap_session_t*
    - eap_packet_raw_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 308
    functionName: eap_identity
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 1
    functionsReached:
    - REDEBUG
    - talloc_array_length
    - talloc_bstrndup
    linkageType: ''
    returnType: char
    signature: char *eap_identity(request_t *request, eap_session_t *eap_session,
      eap_packet_raw_t *eap_packet)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_thaw
      Src: /src/freeradius-server/src/lib/eap/session.c:356,1
    - Dst: eap_session_alloc
      Src: /src/freeradius-server/src/lib/eap/session.c:358,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/session.c:360,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/eap/session.c:367,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/session.c:369,1
    - Dst: eap_identity
      Src: /src/freeradius-server/src/lib/eap/session.c:377,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/session.c:379,1
    - Dst: eap_session_destroy
      Src: /src/freeradius-server/src/lib/eap/session.c:381,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/session.c:382,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/lib/eap/session.c:391,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap/session.c:392,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap/session.c:394,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap/session.c:395,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/session.c:401,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/lib/eap/session.c:402,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/eap/session.c:411,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/eap/session.c:419,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/session.c:421,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/session.c:424,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/eap/session.c:427,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/eap/session.c:441,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/eap/session.c:442,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/lib/eap/session.c:443,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/lib/eap/session.c:444,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/eap/session.c:445,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/session.c:459,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/session.c:468,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/session.c:469,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/eap/session.c:469,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/eap/session.c:470,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap/session.c:481,1
    - Dst: talloc_memcmp_bstr
      Src: /src/freeradius-server/src/lib/eap/session.c:491,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/session.c:492,1
    - Dst: eap_round_build
      Src: /src/freeradius-server/src/lib/eap/session.c:498,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/session.c:500,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 3
    argNames:
    - instance
    - eap_packet_p
    - request
    argTypes:
    - void*
    - eap_packet_raw_t**
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 505
    functionName: eap_session_continue
    functionSourceFile: /src/freeradius-server/src/lib/eap/session.c
    functionUses: 1
    functionsReached:
    - talloc_bstrndup
    - eap_session_thaw
    - REDEBUG
    - RHEXDUMP3
    - talloc_memcmp_bstr
    - MEM
    - pair_append_request
    - eap_session_destroy
    - talloc_get_type_abort
    - eap_round_build
    - RDEBUG2
    - eap_session_alloc
    - fr_pair_value_bstrdup_buffer
    - fr_box_strvalue_len
    - talloc_strlen
    - fr_pair_find_by_da
    - eap_identity
    - RERROR
    - talloc_free
    - RDEBUG4
    - eap_type2name
    linkageType: ''
    returnType: eap_session_t
    signature: eap_session_t *eap_session_continue(void const *instance, eap_packet_raw_t
      **eap_packet_p, request_t *request)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/eap/chbind.c:45,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/eap/chbind.c:47,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/eap/chbind.c:61,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/eap/chbind.c:63,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/chbind.c:72,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/chbind.c:86,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/eap/chbind.c:87,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/eap/chbind.c:93,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap/chbind.c:94,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap/chbind.c:101,1
    - Dst: fr_radius_encode_pair
      Src: /src/freeradius-server/src/lib/eap/chbind.c:107,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/eap/chbind.c:107,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/eap/chbind.c:109,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:111,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 2
    argNames:
    - request
    - chbind
    argTypes:
    - request_t*
    - CHBIND_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 119
    functionName: chbind_build_response
    functionSourceFile: /src/freeradius-server/src/lib/eap/chbind.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - fr_pair_list_next
    - fr_dcursor_next
    - talloc_free
    - RPERROR
    - RDEBUG2
    - log_request_pair_list
    - fr_pair_list_head
    - talloc_zero_array
    - fr_radius_encode_pair
    - FR_DBUFF_TMP
    - fr_pair_find_by_da
    linkageType: ''
    returnType: bool
    signature: bool chbind_build_response(request_t *request, CHBIND_REQ *chbind)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/eap/chbind.c:141,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/eap/chbind.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - packet
    - desired_nsid
    - data
    argTypes:
    - chbind_packet_t*
    - int
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 169
    functionName: chbind_get_data
    functionSourceFile: /src/freeradius-server/src/lib/eap/chbind.c
    functionUses: 0
    functionsReached:
    - fr_nbo_to_uint16
    - talloc_array_length
    linkageType: ''
    returnType: size_t
    signature: "size_t chbind_get_data(chbind_packet_t const *packet,\n\t\t\t      int
      desired_nsid,\n\t\t\t      uint8_t const **data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/chbind.c:184,1
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/lib/eap/chbind.c:190,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/chbind.c:191,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/eap/chbind.c:191,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/eap/chbind.c:192,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/chbind.c:196,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/eap/chbind.c:196,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/eap/chbind.c:197,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/eap/chbind.c:204,1
    - Dst: chbind_get_data
      Src: /src/freeradius-server/src/lib/eap/chbind.c:207,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/chbind.c:209,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/eap/chbind.c:209,1
    - Dst: fr_radius_decode_pair
      Src: /src/freeradius-server/src/lib/eap/chbind.c:216,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:223,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:225,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/eap/chbind.c:233,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:235,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:236,1
    - Dst: rad_virtual_server
      Src: /src/freeradius-server/src/lib/eap/chbind.c:245,1
    - Dst: chbind_build_response
      Src: /src/freeradius-server/src/lib/eap/chbind.c:250,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/chbind.c:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - request
    - chbind
    argTypes:
    - request_t*
    - CHBIND_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 265
    functionName: chbind_process
    functionSourceFile: /src/freeradius-server/src/lib/eap/chbind.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - fr_pair_copy
    - fr_radius_decode_pair
    - fr_pair_prepend_by_da
    - fr_pair_append
    - chbind_get_data
    - fr_assert
    - request_local_alloc_internal
    - talloc_init_const
    - talloc_array_length
    - rad_virtual_server
    - chbind_build_response
    - MEM
    - fr_pair_value_from_str
    - talloc_free_children
    linkageType: ''
    returnType: fr_radius_packet_code_t
    signature: fr_radius_packet_code_t chbind_process(request_t *request, CHBIND_REQ
      *chbind)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap/chbind.c:279,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap/chbind.c:285,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap/chbind.c:287,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/eap/chbind.c:292,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/eap/chbind.c:299,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/eap/chbind.c:306,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap/chbind.c:308,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/chbind.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - vps
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 314
    functionName: eap_chbind_vp2packet
    functionSourceFile: /src/freeradius-server/src/lib/eap/chbind.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - memcpy
    - talloc_zero_array
    - fr_dcursor_head
    - DEBUG
    linkageType: ''
    returnType: chbind_packet_t
    signature: chbind_packet_t *eap_chbind_vp2packet(TALLOC_CTX *ctx, fr_pair_list_t
      *vps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/chbind.c:322,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap/chbind.c:322,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap/chbind.c:323,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/eap/chbind.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - chbind
    argTypes:
    - TALLOC_CTX*
    - chbind_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: eap_chbind_packet2vp
    functionSourceFile: /src/freeradius-server/src/lib/eap/chbind.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - MEM
    - talloc_array_length
    - fr_pair_value_memdup
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *eap_chbind_packet2vp(TALLOC_CTX *ctx, chbind_packet_t *chbind)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/compose.c:107,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap/compose.c:114,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/eap/compose.c:123,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/compose.c:124,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/compose.c:142,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/compose.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - reply
    argTypes:
    - eap_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 149
    functionName: eap_wireformat
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - talloc_array
    - fr_strerror_const
    - htons
    linkageType: ''
    returnType: int
    signature: int eap_wireformat(eap_packet_t *reply)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/compose.c:166,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/compose.c:167,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/compose.c:168,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/compose.c:169,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/compose.c:224,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/compose.c:225,1
    - Dst: eap_wireformat
      Src: /src/freeradius-server/src/lib/eap/compose.c:230,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/compose.c:234,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap/compose.c:234,1
    - Dst: fr_pair_value_memdup_shallow
      Src: /src/freeradius-server/src/lib/eap/compose.c:235,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/eap/compose.c:235,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/compose.c:246,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/compose.c:250,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap/compose.c:250,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap/compose.c:251,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/compose.c:277,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:284,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 289
    functionName: eap_compose
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 1
    functionsReached:
    - eap_wireformat
    - fr_pair_value_memdup_shallow
    - fr_pair_find_by_da
    - talloc_steal
    - REDEBUG
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - fr_assert
    - RDEBUG2
    - MEM
    - pair_append_reply
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t eap_compose(eap_session_t *eap_session)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/compose.c:307,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:309,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/compose.c:317,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:319,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:335,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/compose.c:337,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap/compose.c:337,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/compose.c:342,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/eap/compose.c:342,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/compose.c:360,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:373,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:383,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:389,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/compose.c:397,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/eap/compose.c:397,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:405,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:424,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:440,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:454,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:459,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:464,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:478,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:486,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/compose.c:497,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 3
    argNames:
    - request
    - methods
    - ignore_unknown_types
    argTypes:
    - request_t*
    - rlm_eap_method_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 500
    functionName: eap_start
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 1
    functionsReached:
    - fr_pair_value_mem_alloc
    - fr_pair_find_by_da
    - REDEBUG
    - RDEBUG2
    - MEM
    - pair_append_reply
    - pair_append_request
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t eap_start(request_t *request, rlm_eap_method_t const methods[],
      bool ignore_unknown_types)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_compose
      Src: /src/freeradius-server/src/lib/eap/compose.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: eap_continue
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 0
    functionsReached:
    - eap_compose
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t eap_continue(eap_session_t *eap_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/eap/compose.c:518,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/compose.c:520,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap/compose.c:521,1
    - Dst: eap_compose
      Src: /src/freeradius-server/src/lib/eap/compose.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 526
    functionName: eap_fail
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 3
    functionsReached:
    - eap_compose
    - fr_pair_delete_by_da
    - talloc_zero
    - talloc_free
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t eap_fail(eap_session_t *eap_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eap_compose
      Src: /src/freeradius-server/src/lib/eap/compose.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: eap_success
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 2
    functionsReached:
    - eap_compose
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t eap_success(eap_session_t *eap_session)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap/compose.c:546,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap/compose.c:549,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/compose.c:551,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap/compose.c:554,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/compose.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - eap_session
    argTypes:
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 561
    functionName: eap_round_alloc
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_free
    linkageType: ''
    returnType: eap_round_t
    signature: eap_round_t *eap_round_alloc(eap_session_t *eap_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eap_round_alloc
      Src: /src/freeradius-server/src/lib/eap/compose.c:573,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/eap/compose.c:577,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/compose.c:582,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/eap/compose.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - eap_session
    - eap_packet_p
    argTypes:
    - eap_session_t*
    - eap_packet_raw_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 612
    functionName: eap_round_build
    functionSourceFile: /src/freeradius-server/src/lib/eap/compose.c
    functionUses: 2
    functionsReached:
    - ntohs
    - talloc_steal
    - eap_round_alloc
    - memcpy
    linkageType: ''
    returnType: eap_round_t
    signature: eap_round_t *eap_round_build(eap_session_t *eap_session, eap_packet_raw_t
      **eap_packet_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/eap/base.c:137,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/base.c:147,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap/base.c:147,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap/base.c:148,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/eap/base.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - list
    - eap
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - eap_packet_raw_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: eap_packet_to_vp
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_append
    - fr_pair_value_memdup
    - MEM
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void eap_packet_to_vp(TALLOC_CTX *ctx, fr_pair_list_t *list, eap_packet_raw_t
      const *eap)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/eap/base.c:176,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:178,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/base.c:182,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/eap/base.c:183,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:186,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:195,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:201,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:213,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:220,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:227,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:233,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/lib/eap/base.c:234,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/eap/base.c:242,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/eap/base.c:244,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:246,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/lib/eap/base.c:247,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:262,1
    - Dst: eap_type2name
      Src: /src/freeradius-server/src/lib/eap/base.c:263,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 2
    argNames:
    - ctx
    - eap_packet_p
    argTypes:
    - TALLOC_CTX*
    - eap_packet_raw_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 268
    functionName: eap_is_valid
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - fr_strerror_printf
    - talloc_realloc
    - ntohs
    - eap_type2name
    - talloc_array_length
    - fr_strerror_const
    linkageType: ''
    returnType: bool
    signature: bool eap_is_valid(TALLOC_CTX *ctx, eap_packet_raw_t **eap_packet_p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/base.c:286,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:288,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:296,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/base.c:304,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/eap/base.c:305,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap/base.c:311,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap/base.c:320,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap/base.c:328,1
    - Dst: eap_is_valid
      Src: /src/freeradius-server/src/lib/eap/base.c:334,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/base.c:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - vps
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 340
    functionName: eap_packet_from_vp
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 2
    functionsReached:
    - talloc_memdup
    - memcpy
    - talloc_free
    - fr_strerror_printf
    - ntohs
    - fr_strerror_const
    - fr_pair_find_by_da
    - eap_is_valid
    linkageType: ''
    returnType: eap_packet_raw_t
    signature: eap_packet_raw_t *eap_packet_from_vp(TALLOC_CTX *ctx, fr_pair_list_t
      *vps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/base.c:349,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap/base.c:349,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap/base.c:350,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap/base.c:352,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/base.c:353,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap/base.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - request
    - da
    - value
    - len
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: eap_add_reply
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 2
    functionsReached:
    - RINDENT
    - fr_pair_value_memdup
    - pair_update_reply
    - RDEBUG2
    - REXDENT
    - MEM
    linkageType: ''
    returnType: void
    signature: void eap_add_reply(request_t *request, fr_dict_attr_t const *da, uint8_t
      const *value, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/base.c:364,1
    - Dst: fr_state_store_in_parent
      Src: /src/freeradius-server/src/lib/eap/base.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 372
    functionName: eap_virtual_server_resume
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 0
    functionsReached:
    - fr_state_store_in_parent
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t eap_virtual_server_resume(UNUSED unlang_result_t *p_result,\n\t\t\t\t\t\t
      request_t *request, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/base.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/base.c:390,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/base.c:392,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/eap/base.c:392,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/eap/base.c:392,1
    - Dst: fr_state_restore_from_parent
      Src: /src/freeradius-server/src/lib/eap/base.c:397,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/eap/base.c:399,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/eap/base.c:403,1
    - Dst: unlang_interpret_result
      Src: /src/freeradius-server/src/lib/eap/base.c:403,1
    - Dst: unlang_call_push
      Src: /src/freeradius-server/src/lib/eap/base.c:411,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/eap/base.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - request
    - eap_session
    - virtual_server
    argTypes:
    - request_t*
    - eap_session_t*
    - virtual_server_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 414
    functionName: eap_virtual_server
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 3
    functionsReached:
    - fr_pair_prepend_by_da
    - cf_section_name2
    - virtual_server_cs
    - RDEBUG2
    - fr_assert
    - unlang_call_push
    - unlang_interpret_result
    - unlang_function_push_with_result
    - fr_state_restore_from_parent
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_virtual_server(request_t *request, eap_session_t
      *eap_session, virtual_server_t *virtual_server)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/eap/base.c:421,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/eap/base.c:422,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/eap/base.c:430,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/eap/base.c:431,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/eap/base.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: eap_base_init
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_autoload
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int eap_base_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/eap/base.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: eap_base_free
    functionSourceFile: /src/freeradius-server/src/lib/eap/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void eap_base_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/crypto.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - prf_label
    - eap_session
    - keying_prf_label
    - keying_prf_label_len
    argTypes:
    - eap_tls_prf_label_t*
    - eap_session_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 77
    functionName: eap_crypto_prf_label_init
    functionSourceFile: /src/freeradius-server/src/lib/eap/crypto.c
    functionUses: 3
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void eap_crypto_prf_label_init(eap_tls_prf_label_t *prf_label, eap_session_t
      *eap_session,\n\t\t\t      char const *keying_prf_label, size_t keying_prf_label_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_export_keying_material
      Src: /src/freeradius-server/src/lib/eap/crypto.c:92,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/eap/crypto.c:98,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/crypto.c:108,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap/crypto.c:109,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/crypto.c:110,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/freeradius-server/src/lib/eap/crypto.c:111,1
    - Dst: SSL_get_session
      Src: /src/freeradius-server/src/lib/eap/crypto.c:111,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/crypto.c:112,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/lib/eap/crypto.c:112,1
    - Dst: SSL_get_client_random
      Src: /src/freeradius-server/src/lib/eap/crypto.c:113,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/crypto.c:114,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/lib/eap/crypto.c:114,1
    - Dst: SSL_get_server_random
      Src: /src/freeradius-server/src/lib/eap/crypto.c:115,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/crypto.c:116,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/lib/eap/crypto.c:116,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap/crypto.c:117,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/crypto.c:120,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/lib/eap/crypto.c:122,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/lib/eap/crypto.c:124,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/lib/eap/crypto.c:126,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/lib/eap/crypto.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - request
    - ssl
    - prf_label
    argTypes:
    - request_t*
    - SSL*
    - eap_tls_prf_label_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: eap_crypto_mppe_keys
    functionSourceFile: /src/freeradius-server/src/lib/eap/crypto.c
    functionUses: 0
    functionsReached:
    - fr_tls_log
    - eap_add_reply
    - SSL_SESSION_get_master_key
    - SSL_export_keying_material
    - RINDENT
    - fr_box_octets
    - RDEBUG3
    - SSL_get_server_random
    - RDEBUG2
    - REXDENT
    - SSL_get_session
    - SSL_get_client_random
    linkageType: ''
    returnType: int
    signature: int eap_crypto_mppe_keys(request_t *request, SSL *ssl, eap_tls_prf_label_t
      *prf_label)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_protocol_version
      Src: /src/freeradius-server/src/lib/eap/crypto.c:142,1
    - Dst: SSL_get_session
      Src: /src/freeradius-server/src/lib/eap/crypto.c:142,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/crypto.c:151,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap/crypto.c:151,1
    - Dst: SSL_get_client_random
      Src: /src/freeradius-server/src/lib/eap/crypto.c:154,1
    - Dst: SSL_get_server_random
      Src: /src/freeradius-server/src/lib/eap/crypto.c:156,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/crypto.c:166,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap/crypto.c:166,1
    - Dst: SSL_export_keying_material
      Src: /src/freeradius-server/src/lib/eap/crypto.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap/crypto.c:174,1
    - Dst: fr_tls_log
      Src: /src/freeradius-server/src/lib/eap/crypto.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 6
    argNames:
    - ctx
    - request
    - ssl
    - prf_label
    - out
    - eap_type
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - SSL*
    - eap_tls_prf_label_t*
    - uint8_t**
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 184
    functionName: eap_crypto_tls_session_id
    functionSourceFile: /src/freeradius-server/src/lib/eap/crypto.c
    functionUses: 0
    functionsReached:
    - fr_tls_log
    - talloc_array
    - talloc_free
    - SSL_SESSION_get_protocol_version
    - SSL_export_keying_material
    - SSL_get_server_random
    - SSL_get_session
    - MEM
    - SSL_get_client_random
    linkageType: ''
    returnType: int
    signature: "int eap_crypto_tls_session_id(TALLOC_CTX *ctx,\n\t\t\t      request_t
      *request, SSL *ssl, eap_tls_prf_label_t *prf_label,\n\t\t\t      uint8_t **out,
      uint8_t eap_type)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:117,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:122,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/tls.c:127,1
    - Dst: TLS_START
      Src: /src/freeradius-server/src/lib/eap/tls.c:128,1
    - Dst: TLS_MORE_FRAGMENTS
      Src: /src/freeradius-server/src/lib/eap/tls.c:129,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:130,1
    - Dst: TLS_RESERVED0
      Src: /src/freeradius-server/src/lib/eap/tls.c:131,1
    - Dst: TLS_RESERVED1
      Src: /src/freeradius-server/src/lib/eap/tls.c:132,1
    - Dst: TLS_RESERVED2
      Src: /src/freeradius-server/src/lib/eap/tls.c:133,1
    - Dst: TLS_RESERVED3
      Src: /src/freeradius-server/src/lib/eap/tls.c:134,1
    - Dst: TLS_RESERVED4
      Src: /src/freeradius-server/src/lib/eap/tls.c:135,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:144,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap/tls.c:170,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:176,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/eap/tls.c:185,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap/tls.c:186,1
    - Dst: fr_tls_session_t*::record_to_buff
      Src: /src/freeradius-server/src/lib/eap/tls.c:190,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:209,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 7
    argNames:
    - request
    - eap_session
    - status
    - flags
    - record
    - record_len
    - frag_len
    argTypes:
    - request_t*
    - eap_session_t*
    - eap_tls_status_t
    - uint8_t
    - fr_tls_record_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 214
    functionName: eap_tls_compose
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 1
    functionsReached:
    - TLS_RESERVED3
    - htonl
    - TLS_RESERVED0
    - memcpy
    - talloc_array
    - TLS_MORE_FRAGMENTS
    - talloc_get_type_abort
    - fr_tls_session_t*::record_to_buff
    - TLS_RESERVED2
    - fr_assert
    - RDEBUG3
    - TLS_LENGTH_INCLUDED
    - TLS_RESERVED4
    - TLS_START
    - TLS_RESERVED1
    linkageType: ''
    returnType: int
    signature: "int eap_tls_compose(request_t *request, eap_session_t *eap_session,
      eap_tls_status_t status, uint8_t flags,\n\t\t    fr_tls_record_t *record, size_t
      record_len, size_t frag_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:240,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:242,1
    - Dst: eap_tls_compose
      Src: /src/freeradius-server/src/lib/eap/tls.c:244,1
    - Dst: SET_START
      Src: /src/freeradius-server/src/lib/eap/tls.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: eap_tls_start
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 3
    functionsReached:
    - SET_START
    - fr_assert
    - eap_tls_compose
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int eap_tls_start(request_t *request, eap_session_t *eap_session)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:265,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:268,1
    - Dst: eap_tls_compose
      Src: /src/freeradius-server/src/lib/eap/tls.c:275,1
    - Dst: eap_crypto_mppe_keys
      Src: /src/freeradius-server/src/lib/eap/tls.c:283,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/tls.c:292,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap/tls.c:292,1
    - Dst: eap_crypto_tls_session_id
      Src: /src/freeradius-server/src/lib/eap/tls.c:293,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap/tls.c:295,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/eap/tls.c:298,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap/tls.c:300,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:301,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap/tls.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - request
    - eap_session
    - prf_label
    argTypes:
    - request_t*
    - eap_session_t*
    - eap_tls_prf_label_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 306
    functionName: eap_tls_success
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 4
    functionsReached:
    - fr_pair_value_memdup_buffer_shallow
    - eap_tls_compose
    - talloc_get_type_abort
    - pair_delete_reply
    - RINDENT
    - fr_assert
    - eap_crypto_mppe_keys
    - RDEBUG2
    - eap_crypto_tls_session_id
    - REXDENT
    - MEM
    - pair_append_reply
    linkageType: ''
    returnType: int
    signature: int eap_tls_success(request_t *request, eap_session_t *eap_session,
      eap_tls_prf_label_t *prf_label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:323,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:326,1
    - Dst: fr_tls_cache_deny
      Src: /src/freeradius-server/src/lib/eap/tls.c:333,1
    - Dst: eap_tls_compose
      Src: /src/freeradius-server/src/lib/eap/tls.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 338
    functionName: eap_tls_fail
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 4
    functionsReached:
    - fr_assert
    - eap_tls_compose
    - talloc_get_type_abort
    - fr_tls_cache_deny
    linkageType: ''
    returnType: int
    signature: int eap_tls_fail(request_t *request, eap_session_t *eap_session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:373,1
    - Dst: SET_MORE_FRAGMENTS
      Src: /src/freeradius-server/src/lib/eap/tls.c:405,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:412,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:414,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:417,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:429,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:431,1
    - Dst: SET_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:440,1
    - Dst: eap_tls_compose
      Src: /src/freeradius-server/src/lib/eap/tls.c:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 444
    functionName: eap_tls_request
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 4
    functionsReached:
    - SET_MORE_FRAGMENTS
    - eap_tls_compose
    - talloc_get_type_abort
    - SET_LENGTH_INCLUDED
    - RDEBUG2
    linkageType: ''
    returnType: int
    signature: int eap_tls_request(request_t *request, eap_session_t *eap_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:465,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:467,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:469,1
    - Dst: eap_tls_compose
      Src: /src/freeradius-server/src/lib/eap/tls.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: eap_tls_ack
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_assert
    - eap_tls_compose
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int eap_tls_ack(request_t *request, eap_session_t *eap_session)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:485,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:489,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:493,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:499,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:505,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/eap/tls.c:509,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:510,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:521,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:526,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 541
    functionName: eap_tls_session_status
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - REDEBUG
    - talloc_get_type_abort
    - SSL_is_init_finished
    linkageType: ''
    returnType: eap_tls_status_t
    signature: eap_tls_status_t eap_tls_session_status(request_t *request, eap_session_t
      *eap_session)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:563,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:568,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:574,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:590,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap/tls.c:597,1
    - Dst: TLS_START
      Src: /src/freeradius-server/src/lib/eap/tls.c:598,1
    - Dst: TLS_MORE_FRAGMENTS
      Src: /src/freeradius-server/src/lib/eap/tls.c:599,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:600,1
    - Dst: TLS_RESERVED0
      Src: /src/freeradius-server/src/lib/eap/tls.c:601,1
    - Dst: TLS_RESERVED1
      Src: /src/freeradius-server/src/lib/eap/tls.c:602,1
    - Dst: TLS_RESERVED2
      Src: /src/freeradius-server/src/lib/eap/tls.c:603,1
    - Dst: TLS_RESERVED3
      Src: /src/freeradius-server/src/lib/eap/tls.c:604,1
    - Dst: TLS_RESERVED4
      Src: /src/freeradius-server/src/lib/eap/tls.c:605,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:611,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:613,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:629,1
    - Dst: eap_tls_session_status
      Src: /src/freeradius-server/src/lib/eap/tls.c:632,1
    - Dst: TLS_START
      Src: /src/freeradius-server/src/lib/eap/tls.c:638,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:639,1
    - Dst: TLS_MORE_FRAGMENTS
      Src: /src/freeradius-server/src/lib/eap/tls.c:651,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:652,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:669,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:673,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:679,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:685,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:705,1
    - Dst: TLS_MORE_FRAGMENTS
      Src: /src/freeradius-server/src/lib/eap/tls.c:706,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:716,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:724,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:737,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:748,1
    - Dst: TLS_MORE_FRAGMENTS
      Src: /src/freeradius-server/src/lib/eap/tls.c:753,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:759,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:767,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:771,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:790,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:793,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:805,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 808
    functionName: eap_tls_verify
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 0
    functionsReached:
    - TLS_RESERVED3
    - TLS_RESERVED0
    - eap_tls_session_status
    - TLS_MORE_FRAGMENTS
    - REDEBUG
    - talloc_get_type_abort
    - TLS_RESERVED2
    - fr_assert
    - RDEBUG3
    - RDEBUG2
    - TLS_LENGTH_INCLUDED
    - TLS_RESERVED4
    - TLS_START
    - TLS_RESERVED1
    linkageType: ''
    returnType: eap_tls_status_t
    signature: eap_tls_status_t eap_tls_verify(request_t *request, eap_session_t *eap_session)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:821,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:822,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:823,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:829,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:833,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/lib/eap/tls.c:864,1
    - Dst: SSL_session_reused
      Src: /src/freeradius-server/src/lib/eap/tls.c:865,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:868,1
    - Dst: fr_tls_session_t*::record_from_buff
      Src: /src/freeradius-server/src/lib/eap/tls.c:869,1
    - Dst: fr_tls_session_async_handshake_push
      Src: /src/freeradius-server/src/lib/eap/tls.c:875,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:878,1
    - Dst: eap_tls_request
      Src: /src/freeradius-server/src/lib/eap/tls.c:890,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:891,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/eap/tls.c:906,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:921,1
    - Dst: fr_tls_cache_deny
      Src: /src/freeradius-server/src/lib/eap/tls.c:923,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 927
    functionName: eap_tls_handshake_resume
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 0
    functionsReached:
    - fr_tls_session_async_handshake_push
    - RDEBUG
    - fr_tls_cache_deny
    - SSL_is_init_finished
    - REDEBUG
    - talloc_get_type_abort
    - fr_assert
    - eap_tls_request
    - SSL_session_reused
    - fr_tls_session_t*::record_from_buff
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_tls_handshake_resume(request_t *request, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:938,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:939,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/eap/tls.c:944,1
    - Dst: fr_tls_session_async_handshake_push
      Src: /src/freeradius-server/src/lib/eap/tls.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 954
    functionName: eap_tls_handshake_push
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 0
    functionsReached:
    - unlang_function_push
    - fr_tls_session_async_handshake_push
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_tls_handshake_push(request_t *request, eap_session_t
      *eap_session)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap/tls.c:983,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:992,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:994,1
    - Dst: eap_tls_verify
      Src: /src/freeradius-server/src/lib/eap/tls.c:999,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:1003,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap/tls.c:1003,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap/tls.c:1007,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap/tls.c:1007,1
    - Dst: TLS_LENGTH_INCLUDED
      Src: /src/freeradius-server/src/lib/eap/tls.c:1036,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap/tls.c:1051,1
    - Dst: eap_tls_ack
      Src: /src/freeradius-server/src/lib/eap/tls.c:1060,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/eap/tls.c:1073,1
    - Dst: fr_tls_session_recv
      Src: /src/freeradius-server/src/lib/eap/tls.c:1078,1
    - Dst: eap_tls_handshake_push
      Src: /src/freeradius-server/src/lib/eap/tls.c:1096,1
    - Dst: SSL_is_init_finished
      Src: /src/freeradius-server/src/lib/eap/tls.c:1108,1
    - Dst: eap_tls_request
      Src: /src/freeradius-server/src/lib/eap/tls.c:1114,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 82
    argCount: 2
    argNames:
    - request
    - eap_session
    argTypes:
    - request_t*
    - eap_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1139
    functionName: eap_tls_process
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 4
    functionsReached:
    - fr_tls_session_recv
    - SSL_is_init_finished
    - REDEBUG
    - eap_tls_handshake_push
    - eap_tls_ack
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - fr_assert
    - eap_tls_request
    - TLS_LENGTH_INCLUDED
    - eap_tls_verify
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_tls_process(request_t *request, eap_session_t *eap_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tls_ctx_conf
      Src: /src/freeradius-server/src/lib/eap/tls.c:1160,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap/tls.c:1164,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/tls.c:1170,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap/tls.c:1170,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/tls.c:1196,1
    - Dst: fr_tls_session_alloc_server
      Src: /src/freeradius-server/src/lib/eap/tls.c:1206,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap/tls.c:1208,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/tls.c:1217,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap/tls.c:1217,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/eap/tls.c:1218,1
    - Dst: fr_tls_session_extra_pair_add_shallow
      Src: /src/freeradius-server/src/lib/eap/tls.c:1219,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap/tls.c:1228,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap/tls.c:1228,1
    - Dst: fr_tls_session_extra_pair_add_shallow
      Src: /src/freeradius-server/src/lib/eap/tls.c:1230,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/eap/tls.c:1236,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/eap/tls.c:1237,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/eap/tls.c:1238,1
    - Dst: SSL_set_ex_data
      Src: /src/freeradius-server/src/lib/eap/tls.c:1239,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/tls.c:1241,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap/tls.c:1242,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/eap/tls.c:1244,1
    - Dst: SET_TLS_VERSION
      Src: /src/freeradius-server/src/lib/eap/tls.c:1269,1
    - Dst: SET_TLS_VERSION
      Src: /src/freeradius-server/src/lib/eap/tls.c:1270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - request
    - eap_session
    - ssl_ctx
    - client_cert
    argTypes:
    - request_t*
    - eap_session_t*
    - SSL_CTX*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1274
    functionName: eap_tls_session_init
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 4
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - RERROR
    - SET_TLS_VERSION
    - fr_pair_find_by_da
    - fr_tls_session_extra_pair_add_shallow
    - fr_tls_session_alloc_server
    - fr_assert
    - talloc_zero
    - fr_pair_value_bstrdup_buffer
    - SSL_set_ex_data
    - MEM
    - fr_tls_ctx_conf
    linkageType: ''
    returnType: eap_tls_session_t
    signature: "eap_tls_session_t *eap_tls_session_init(request_t *request, eap_session_t
      *eap_session,\n\t\t\t\t\tSSL_CTX *ssl_ctx, bool client_cert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1268
    functionName: SET_TLS_VERSION
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TLS_VERSION(_type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/eap/tls.c:1295,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/eap/tls.c:1295,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/eap/tls.c:1300,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/eap/tls.c:1302,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/eap/tls.c:1304,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/eap/tls.c:1308,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/eap/tls.c:1308,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/eap/tls.c:1310,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/eap/tls.c:1315,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/eap/tls.c:1316,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/eap/tls.c:1321,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/eap/tls.c:1324,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/eap/tls.c:1325,1
    - Dst: fr_tls_conf_parse_server
      Src: /src/freeradius-server/src/lib/eap/tls.c:1329,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/eap/tls.c:1335,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/eap/tls.c:1344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1287
    functionDepth: 3
    functionLinenumber: 1287
    functionLinenumberEnd: 1354
    functionName: eap_tls_conf_parse
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.c
    functionUses: 4
    functionsReached:
    - cf_log_perr
    - cf_parent
    - cf_section_find
    - cf_item_is_section
    - cf_pair_value
    - cf_reference_item
    - FR_INTEGER_BOUND_CHECK
    - cf_section_name1
    - cf_pair_find
    - fr_tls_conf_parse_server
    - cf_root
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: fr_tls_conf_t
    signature: fr_tls_conf_t *eap_tls_conf_parse(CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: TLS_RESERVED4
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_RESERVED4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: TLS_RESERVED3
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_RESERVED3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: TLS_RESERVED2
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_RESERVED2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: TLS_RESERVED1
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_RESERVED1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: TLS_RESERVED0
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_RESERVED0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: TLS_START
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_START(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: TLS_MORE_FRAGMENTS
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_MORE_FRAGMENTS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: TLS_LENGTH_INCLUDED
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS_LENGTH_INCLUDED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: SET_START
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_START(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: SET_MORE_FRAGMENTS
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_MORE_FRAGMENTS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: SET_LENGTH_INCLUDED
    functionSourceFile: /src/freeradius-server/src/lib/eap/tls.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_LENGTH_INCLUDED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_get
      Src: /src/freeradius-server/src/lib/unlang/interpret_priv.h:42,1
    - Dst: unlang_interpret_t*::funcs::init_internal
      Src: /src/freeradius-server/src/lib/unlang/interpret_priv.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: interpret_child_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_priv.h
    functionUses: 0
    functionsReached:
    - unlang_interpret_t*::funcs::init_internal
    - unlang_interpret_get
    linkageType: ''
    returnType: void
    signature: void interpret_child_init(request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:60,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:68,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:80,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:93,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:102,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - state
    - cr
    argTypes:
    - unlang_parallel_state_t*
    - unlang_child_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 105
    functionName: unlang_parallel_cancel_child
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - fr_assert
    - RDEBUG3
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: void unlang_parallel_cancel_child(unlang_parallel_state_t *state, unlang_child_request_t
      *cr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:113,1
    - Dst: unlang_parallel_cancel_child
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:120,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:125,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - UNUSED*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 137
    functionName: unlang_parallel_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel.c
    functionUses: 0
    functionsReached:
    - UNLANG_RESULT_RCODE
    - unlang_interpret_signal
    - talloc_get_type_abort
    - unlang_parallel_cancel_child
    linkageType: ''
    returnType: void
    signature: "void unlang_parallel_signal(UNUSED request_t *request,\n\t\t\t\t   unlang_stack_frame_t
      *frame, fr_signal_t action)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:142,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:145,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:152,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:154,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:169,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:172,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:173,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:173,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:180,1
    - Dst: stack_depth_current
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:181,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:182,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:184,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:196,1
    - Dst: unlang_request_is_scheduled
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:196,1
    - Dst: unlang_subrequest_detach_and_free
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 205
    functionName: unlang_parallel_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel.c
    functionUses: 0
    functionsReached:
    - unlang_subrequest_detach_and_free
    - stack_depth_current
    - talloc_get_type_abort
    - fr_table_str_by_value
    - REQUEST_VERIFY
    - fr_assert
    - RDEBUG3
    - RDEBUG4
    - MOD_ACTION_VALID
    - UNLANG_RESULT_RCODE
    - unlang_request_is_scheduled
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_parallel_resume(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:216,1
    - Dst: unlang_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:218,1
    - Dst: unlang_group_to_parallel
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:221,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:226,1
    - Dst: _talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:226,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:231,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:232,1
    - Dst: unlang_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:236,1
    - Dst: unlang_list_head
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:241,1
    - Dst: unlang_list_next
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:243,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:247,1
    - Dst: unlang_io_subrequest_alloc
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:247,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:251,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:262,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:265,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:268,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:271,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:273,1
    - Dst: unlang_subrequest_detach_and_free
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:280,1
    - Dst: unlang_child_request_init
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:300,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:301,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:302,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:317,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:319,1
    - Dst: unlang_subrequest_detach_and_free
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:321,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:338,1
    - Dst: interpret_child_init
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:347,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:352,1
    - Dst: fr_state_restore_from_parent
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:371,1
    - Dst: interpret_child_init
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:381,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:390,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 400
    functionName: unlang_parallel
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel.c
    functionUses: 0
    functionsReached:
    - unlang_list_next
    - REDEBUG
    - unlang_interpret_push
    - unlang_list_num_elements
    - unlang_interpret_signal
    - unlang_io_subrequest_alloc
    - MEM
    - fr_state_restore_from_parent
    - interpret_child_init
    - frame_repeat
    - fr_pair_list_copy
    - talloc_set_type
    - RDEBUG3
    - fr_assert
    - talloc_array_length
    - unlang_list_head
    - unlang_group_to_parallel
    - frame_current
    - _talloc_zero_pooled_object
    - unlang_subrequest_detach_and_free
    - FRAME_CONF
    - talloc_free
    - unlang_child_request_init
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_parallel(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:404,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:414,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:422,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:424,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:427,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:431,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:432,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:432,1
    - Dst: unlang_compile_limit_subsection
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:442,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:442,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:446,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:449,1
    - Dst: unlang_group_to_parallel
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 455
    functionName: unlang_compile_parallel
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel.c
    functionUses: 0
    functionsReached:
    - unlang_compile_limit_subsection
    - unlang_compile_section
    - cf_item_next
    - cf_section_name2
    - DOC_KEYWORD_REF
    - strcmp
    - cf_section_name1
    - unlang_generic_to_group
    - unlang_group_to_parallel
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_parallel(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/parallel.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: unlang_parallel_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_parallel_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _request
    - ','
    - _signal
    - ','
    - _sigmask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: unlang_function_signal_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlang_function_signal_set(_request, _signal, _sigmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _request
    - ','
    - _repeat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: unlang_function_repeat_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlang_function_repeat_set(_request, _repeat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _result_p
    - ','
    - _request
    - ','
    - _func
    - ','
    - _repeat
    - ','
    - _signal
    - ','
    - _sigmask
    - ','
    - _top_frame
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: unlang_function_push_with_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlang_function_push_with_result(_result_p, _request, _func, _repeat,
      _signal, _sigmask, _top_frame, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _request
    - ','
    - _func
    - ','
    - _repeat
    - ','
    - _signal
    - ','
    - _sigmask
    - ','
    - _top_frame
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: unlang_function_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlang_function_push(_request, _func, _repeat, _signal, _sigmask, _top_frame,
      _uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:99,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:102,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ev
    argTypes:
    - unlang_xlat_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: _unlang_xlat_event_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DELETE
    - fr_event_fd_delete
    - unlang_interpret_event_list
    linkageType: ''
    returnType: int
    signature: int _unlang_xlat_event_free(unlang_xlat_event_t *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:117,1
    - Dst: unlang_xlat_event_t*::timeout
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:127,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:127,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - uctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: unlang_xlat_event_timeout_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - UNCONST
    - talloc_get_type_abort
    - XLAT_CTX
    - unlang_xlat_event_t*::timeout
    linkageType: ''
    returnType: void
    signature: void unlang_xlat_event_timeout_handler(UNUSED fr_timer_list_t *tl,
      fr_time_t now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:156,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:158,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:159,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:161,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:161,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:163,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:163,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:167,1
    - Dst: xlat_thread_instance_find
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:169,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:172,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:172,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:176,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - request
    - callback
    - rctx
    - when
    argTypes:
    - request_t*
    - fr_unlang_xlat_timeout_t
    - void*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: unlang_xlat_timeout_add
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 2
    functionsReached:
    - unlang_interpret_event_list
    - RPEDEBUG
    - talloc_free
    - talloc_set_destructor
    - fr_timer_at
    - talloc_get_type_abort
    - fr_assert
    - talloc_zero
    - MEM
    - xlat_thread_instance_find
    linkageType: ''
    returnType: int
    signature: "int unlang_xlat_timeout_add(request_t *request,\n\t\t\t    fr_unlang_xlat_timeout_t
      callback, void const *rctx, fr_time_t when)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:220,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:221,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:227,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:227,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:239,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:243,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:250,1
    - Dst: fr_value_box_list_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:250,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - ctx
    - p_result
    - out
    - request
    - xlat
    - node
    - top_frame
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - fr_value_box_list_t*
    - request_t*
    - xlat_exp_head_t*
    - xlat_exp_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 254
    functionName: unlang_xlat_push_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_value_box_list_init
    - FRAME_CONF
    - unlang_interpret_push
    - tmpl_is_data
    - talloc_zero
    - fr_value_box_list_dlist_head
    - fr_dcursor_init
    - MEM
    linkageType: ''
    returnType: int
    signature: "int unlang_xlat_push_internal(TALLOC_CTX *ctx, unlang_result_t *p_result,
      fr_value_box_list_t *out,\n\t\t\t\t     request_t *request, xlat_exp_head_t
      const *xlat, xlat_exp_t *node, bool top_frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:272,1
    - Dst: unlang_xlat_push_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:274,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - p_result
    - out
    - request
    - xlat
    - top_frame
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - fr_value_box_list_t*
    - request_t*
    - xlat_exp_head_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: unlang_xlat_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 1
    functionsReached:
    - unlang_xlat_push_internal
    - xlat_exp_head
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: "int unlang_xlat_push(TALLOC_CTX *ctx, unlang_result_t *p_result, fr_value_box_list_t
      *out,\n\t\t     request_t *request, xlat_exp_head_t const *xlat, bool top_frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_xlat_push_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - p_result
    - out
    - request
    - node
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - fr_value_box_list_t*
    - request_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: unlang_xlat_push_node
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push_internal
    linkageType: ''
    returnType: int
    signature: "int unlang_xlat_push_node(TALLOC_CTX *ctx, unlang_result_t *p_result,
      fr_value_box_list_t *out,\n\t\t\t  request_t *request, xlat_exp_t *node)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:297,1
    - Dst: call_env_expand
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:305,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:312,1
    - Dst: xlat_frame_eval_repeat
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:324,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:326,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:333,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:334,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:335,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:341,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:346,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:349,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:353,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:354,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:359,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:363,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 366
    functionName: unlang_xlat_repeat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - frame_repeat
    - RWDEBUG
    - talloc_get_type_abort
    - fr_value_box_list_talloc_free
    - call_env_expand
    - fr_assert
    - UNLANG_RESULT_RCODE
    - REXDENT
    - repeatable_set
    - xlat_frame_eval_repeat
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_xlat_repeat(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:375,1
    - Dst: RINDENT_SAVE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:379,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:380,1
    - Dst: xlat_frame_eval
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:382,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:385,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:387,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:394,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:395,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:396,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:402,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:407,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:410,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:414,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:415,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:420,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 427
    functionName: unlang_xlat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - frame_repeat
    - talloc_get_type_abort
    - RINDENT
    - fr_value_box_list_talloc_free
    - RINDENT_RESTORE
    - fr_assert
    - xlat_frame_eval
    - UNLANG_RESULT_RCODE
    - RWDEBUG
    - repeatable_set
    - RINDENT_SAVE
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_xlat(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:442,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:448,1
    - Dst: xlat_signal
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 454
    functionName: unlang_xlat_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - xlat_signal
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_xlat_signal(request_t *request, unlang_stack_frame_t *frame,
      fr_signal_t action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:470,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:474,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:479,1
    - Dst: xlat_frame_eval_resume
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:481,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:485,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:489,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:490,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:494,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:498,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:500,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:507,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:508,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:509,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:515,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:520,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 524
    functionName: unlang_xlat_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - TALLOC_FREE
    - xlat_frame_eval_resume
    - talloc_get_type_abort
    - RINDENT_RESTORE
    - fr_value_box_list_talloc_free
    - fr_assert
    - UNLANG_RESULT_RCODE
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_xlat_resume(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - request
    - resume
    - signal
    - sigmask
    - rctx
    argTypes:
    - request_t*
    - xlat_func_t
    - xlat_func_signal_t
    - fr_signal_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 562
    functionName: unlang_xlat_yield
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 18
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unlang_xlat_yield(request_t *request,\n\t\t\t\txlat_func_t
      resume, xlat_func_signal_t signal, fr_signal_t sigmask,\n\t\t\t\tvoid *rctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - unlang_xlat_retry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: _unlang_xlat_retry_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DELETE
    linkageType: ''
    returnType: int
    signature: int _unlang_xlat_retry_free(unlang_xlat_retry_t *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:586,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:589,1
    - Dst: unlang_xlat_retry_t*::retry_cb
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:595,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:595,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:599,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:605,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:605,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:607,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:608,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:609,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:614,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:615,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:615,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:615,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:619,1
    - Dst: unlang_xlat_retry_t*::retry_cb
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:627,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:627,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:631,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:637,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - uctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 639
    functionName: unlang_xlat_event_retry_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - unlang_interpret_event_list
    - RPEDEBUG
    - talloc_free
    - UNCONST
    - fr_timer_at
    - fr_retry_next
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_sub
    - XLAT_CTX
    - unlang_interpret_mark_runnable
    - unlang_xlat_retry_t*::retry_cb
    linkageType: ''
    returnType: void
    signature: void unlang_xlat_event_retry_handler(UNUSED fr_timer_list_t *tl, fr_time_t
      now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:670,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:672,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:673,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:675,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:675,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:677,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:677,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:680,1
    - Dst: xlat_thread_instance_find
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:682,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:686,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:686,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:688,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:688,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:691,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:692,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:696,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 7
    argNames:
    - request
    - resume
    - retry
    - signal
    - sigmask
    - rctx
    - retry_cfg
    argTypes:
    - request_t*
    - xlat_func_t
    - fr_unlang_xlat_retry_t
    - xlat_func_signal_t
    - fr_signal_t
    - void*
    - fr_retry_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 699
    functionName: unlang_xlat_yield_to_retry
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 1
    functionsReached:
    - unlang_xlat_yield
    - unlang_interpret_event_list
    - RPEDEBUG
    - fr_time
    - talloc_free
    - talloc_set_destructor
    - fr_timer_at
    - talloc_get_type_abort
    - fr_retry_init
    - fr_assert
    - talloc_zero
    - MEM
    - xlat_thread_instance_find
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unlang_xlat_yield_to_retry(request_t *request, xlat_func_t
      resume, fr_unlang_xlat_retry_t retry,\n\t\t\t\t\t xlat_func_signal_t signal,
      fr_signal_t sigmask, void *rctx,\n\t\t\t\t\t fr_retry_config_t const *retry_cfg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:716,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:720,1
    - Dst: unlang_interpret
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:722,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - xlat
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: unlang_xlat_eval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 1
    functionsReached:
    - unlang_xlat_push
    - fr_strerror_const
    - unlang_interpret
    - XLAT_RESULT_SUCCESS
    linkageType: ''
    returnType: int
    signature: int unlang_xlat_eval(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t
      *request, xlat_exp_head_t const *xlat)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:746,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:747,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:751,1
    - Dst: unlang_xlat_eval
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:753,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:755,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:762,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:764,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:766,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:770,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:771,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:782,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:786,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 6
    argNames:
    - ctx
    - vb
    - type
    - enumv
    - request
    - xlat
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - request_t*
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 793
    functionName: unlang_xlat_eval_type
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_init
    - fr_value_box_list_init
    - fr_type_is_structural
    - fr_value_box_list_talloc_free
    - fr_value_box_list_concat_in_place
    - fr_value_box_cast
    - fr_value_box_list_empty
    - unlang_xlat_eval
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int unlang_xlat_eval_type(TALLOC_CTX *ctx, fr_value_box_t *vb, fr_type_t
      type, fr_dict_attr_t const *enumv, request_t *request, xlat_exp_head_t const
      *xlat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:797,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - request
    - frame
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 801
    functionName: unlang_xlat_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_xlat_dump(request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/xlat.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 819
    functionName: unlang_xlat_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_xlat_init(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:37,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:38,1
    - Dst: unlang_list_next
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:72,1
    - Dst: unlang_list_head
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:73,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:89,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:94,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:95,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: unlang_load_balance_next
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - unlang_list_next
    - FRAME_CONF
    - talloc_get_type_abort
    - unlang_interpret_push
    - unlang_list_head
    - repeatable_set
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_load_balance_next(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t\tunlang_stack_frame_t *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:104,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:106,1
    - Dst: unlang_list_head
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:111,1
    - Dst: unlang_load_balance_next
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: unlang_redundant
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - unlang_list_head
    - unlang_load_balance_next
    - talloc_get_type_abort
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_redundant(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:120,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:126,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:129,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:129,1
    - Dst: unlang_group_to_load_balance
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:132,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:134,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:144,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:147,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:149,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:153,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:153,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:155,1
    - Dst: unlang_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:155,1
    - Dst: tmpl_expand
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:163,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:165,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:169,1
    - Dst: unlang_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:171,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:174,1
    - Dst: unlang_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:177,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:185,1
    - Dst: unlang_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:205,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:206,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:212,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:216,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:222,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:223,1
    - Dst: unlang_load_balance_next
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 231
    functionName: unlang_load_balance
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - REDEBUG
    - unlang_interpret_push
    - unlang_list_num_elements
    - talloc_get_type_abort
    - tmpl_is_attr
    - unlang_list_empty
    - unlang_load_balance_next
    - fr_rand
    - fr_assert
    - tmpl_expand
    - RDEBUG3
    - fr_value_box_hash
    - FRAME_CONF
    - unlang_group_to_load_balance
    - unlang_list_foreach
    - tmpl_find_vp
    - fr_hash
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_load_balance(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:245,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:252,1
    - Dst: unlang_compile_limit_subsection
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:254,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:254,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:256,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:259,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:265,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:266,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:269,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:269,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:269,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:269,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:275,1
    - Dst: cf_section_argv_quote
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:278,1
    - Dst: unlang_group_to_load_balance
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:295,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:296,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:297,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:302,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:307,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:312,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:312,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:313,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:319,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:320,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:327,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:327,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:328,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:329,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 4
    argNames:
    - parent
    - unlang_ctx
    - cs
    - type
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_SECTION*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 341
    functionName: compile_load_balance_subsection
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - fr_type_is_leaf
    - unlang_compile_section
    - tmpl_attr_tail_da
    - pass2_fixup_tmpl
    - cf_log_err
    - cf_item_to_section
    - cf_item_next
    - cf_section_name2
    - cf_section_to_item
    - cf_section_name2_quote
    - cf_section_name1
    - unlang_compile_limit_subsection
    - cf_parent
    - fr_assert
    - strcmp
    - cf_section_argv_quote
    - cf_canonicalize_error
    - cf_section_argv
    - talloc_free
    - unlang_group_to_load_balance
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: "unlang_t *compile_load_balance_subsection(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_SECTION *cs,\n\t\t\t\t\t\t unlang_type_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compile_load_balance_subsection
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:345,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: unlang_compile_load_balance
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - compile_load_balance_subsection
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_load_balance(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compile_load_balance_subsection
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:350,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: unlang_compile_redundant_load_balance
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - compile_load_balance_subsection
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_redundant_load_balance(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:356,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:358,1
    - Dst: unlang_compile_limit_subsection
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:360,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:360,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:371,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:372,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:372,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:372,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:372,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:373,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 378
    functionName: unlang_compile_redundant
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - unlang_compile_limit_subsection
    - cf_parent
    - unlang_compile_section
    - cf_log_err
    - cf_item_next
    - cf_section_name2
    - strcmp
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_redundant(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:383,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:398,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/load_balance.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 428
    functionName: unlang_load_balance_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_load_balance_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _xlat
    - ','
    - _escaped
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: xlat_func_safe_for_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_func_safe_for_set(_xlat, _escaped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _xlat
    - ','
    - _instantiate
    - ','
    - _inst_struct
    - ','
    - _detach
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: xlat_func_instantiate_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_func_instantiate_set(_xlat, _instantiate, _inst_struct, _detach,
      _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _xlat
    - ','
    - _instantiate
    - ','
    - _inst_struct
    - ','
    - _detach
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: xlat_func_thread_instantiate_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_func_thread_instantiate_set(_xlat, _instantiate, _inst_struct,
      _detach, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/foreach_priv.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: unlang_group_to_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach_priv.h
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_foreach_t
    signature: unlang_foreach_t *unlang_group_to_foreach(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - foreach
    argTypes:
    - unlang_foreach_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: unlang_foreach_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_foreach_to_group(unlang_foreach_t *foreach)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:69,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:73,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:73,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:79,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:81,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:93,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:93,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:94,1
    - Dst: unlang_op_t*::thread_instantiate
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:96,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 103
    functionName: unlang_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 2
    functionsReached:
    - TALLOC_FREE
    - fr_rb_iter_next_inorder
    - talloc_set_name_const
    - talloc_zero_array
    - fr_rb_iter_init_inorder
    - fr_strerror_const
    - MEM
    - unlang_op_t*::thread_instantiate
    linkageType: ''
    returnType: int
    signature: int unlang_thread_instantiate(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - instruction
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: unlang_thread_instance
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void *unlang_thread_instance(unlang_t const *instruction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - instruction
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: unlang_thread_data
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: unlang_thread_t
    signature: unlang_thread_t *unlang_thread_data(unlang_t const *instruction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:144,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:150,1
    - Dst: fr_time_tracking_start
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:152,1
    - Dst: fr_time_tracking_yield
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: unlang_frame_perf_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_time_tracking_start
    - fr_assert
    - fr_time_tracking_yield
    - fr_time
    linkageType: ''
    returnType: void
    signature: void unlang_frame_perf_init(unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_tracking_yield
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:167,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 168
    functionName: unlang_frame_perf_yield
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_time_tracking_yield
    - fr_time
    linkageType: ''
    returnType: void
    signature: void unlang_frame_perf_yield(unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_tracking_resume
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:183,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: unlang_frame_perf_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_time_tracking_resume
    - fr_time
    linkageType: ''
    returnType: void
    signature: void unlang_frame_perf_resume(unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:193,1
    - Dst: fr_time_tracking_resume
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:199,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:199,1
    - Dst: fr_time_tracking_end
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:204,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:204,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:205,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: unlang_frame_perf_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_add
    - fr_time
    - fr_assert
    - fr_time_tracking_end
    - fr_time_tracking_resume
    linkageType: ''
    returnType: void
    signature: void unlang_frame_perf_cleanup(unlang_stack_frame_t *frame)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:227,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:231,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:232,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:235,1
    - Dst: debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:238,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:239,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:241,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:246,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:247,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:247,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:249,1
    - Dst: unlang_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:250,1
    - Dst: unlang_perf_dump
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:251,1
    - Dst: debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:255,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:257,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - log
    - instruction
    - depth
    argTypes:
    - fr_log_t*
    - unlang_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 262
    functionName: unlang_perf_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - debug_braces
    - cf_lineno
    - fr_time_delta_unwrap
    - cf_filename
    - fr_log
    - unlang_list_foreach
    - unlang_list_empty
    - unlang_perf_dump
    - unlang_generic_to_group
    linkageType: ''
    returnType: void
    signature: void unlang_perf_dump(fr_log_t *log, unlang_t const *instruction, int
      depth)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:267,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:275,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:277,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:278,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:280,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:285,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:287,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:292,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:294,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:294,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:297,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:298,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:299,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:300,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:301,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:304,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:306,1
    - Dst: unlang_perf_dump
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:309,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:311,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - log
    - name
    argTypes:
    - fr_log_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 315
    functionName: unlang_perf_virtual_server
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - virtual_server_find
    - cf_item_is_section
    - cf_lineno
    - cf_filename
    - cf_data_find
    - virtual_server_cs
    - cf_item_next
    - cf_section_name2
    - fr_log
    - cf_data_value
    - cf_section_name1
    - unlang_perf_dump
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void unlang_perf_virtual_server(fr_log_t *log, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: unlang_interpret_instruction
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_interpret_instruction(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: forced_result_expiry_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void forced_result_expiry_handler(UNUSED fr_timer_list_t *tl, UNUSED
      fr_time_t now, void *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlang_thread_data
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:349,1
    - Dst: fr_timer_delete
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:354,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:358,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:359,1
    - Dst: fr_timer_delete
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - instruction
    - p_result
    - tl
    - expire
    argTypes:
    - unlang_t*
    - unlang_result_t*
    - fr_timer_list_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 373
    functionName: unlang_interpret_force_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - fr_timer_in
    - unlang_thread_data
    - fr_time_delta_ispos
    - fr_timer_delete
    linkageType: ''
    returnType: int
    signature: "int unlang_interpret_force_result(unlang_t const *instruction, unlang_result_t
      *p_result,\n\t\t\t\t  fr_timer_list_t *tl, fr_time_delta_t expire)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:422,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:445,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:450,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 4
    argNames:
    - location
    - chunk
    - request
    - ptr
    argTypes:
    - p_result_location_t*
    - void**
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 471
    functionName: find_p_result_location
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - talloc_get_size
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int find_p_result_location(p_result_location_t *location, void **chunk,
      request_t *request, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:484,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:486,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:487,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:491,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:492,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:493,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - request
    - instruction
    argTypes:
    - request_t*
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 495
    functionName: instruction_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - REXDENT
    - RDEBUG2
    - RINDENT
    linkageType: ''
    returnType: void
    signature: void instruction_dump(request_t *request, unlang_t const *instruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:501,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:502,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:504,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:505,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - request
    - instruction
    argTypes:
    - request_t*
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 509
    functionName: actions_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - REXDENT
    - RDEBUG2
    - RINDENT
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: void actions_dump(request_t *request, unlang_t const *instruction)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: instruction_dump
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:517,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:520,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:521,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:521,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:523,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:525,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:528,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:528,1
    - Dst: is_private_result
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:530,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:535,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:535,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:536,1
    - Dst: find_p_result_location
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:538,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:539,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:539,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:540,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:543,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:543,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:544,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:546,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:546,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:547,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:548,1
    - Dst: is_top_frame
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:548,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:549,1
    - Dst: is_repeatable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:549,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:550,1
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:550,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:551,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:551,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:554,1
    - Dst: is_break_point
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:555,1
    - Dst: is_return_point
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:556,1
    - Dst: is_continue_point
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:557,1
    - Dst: actions_dump
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:559,1
    - Dst: unlang_op_t*::dump
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:565,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:566,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - request
    - frame
    - with_actions
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 567
    functionName: frame_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - is_yielded
    - find_p_result_location
    - fr_table_str_by_value
    - is_return_point
    - is_break_point
    - is_repeatable
    - is_unwinding
    - is_top_frame
    - talloc_get_name
    - unlang_op_t*::dump
    - RDEBUG2
    - fr_assert
    - is_private_result
    - actions_dump
    - is_continue_point
    - RINDENT
    - MOD_ACTION_VALID
    - REXDENT
    - instruction_dump
    linkageType: ''
    returnType: void
    signature: void frame_dump(request_t *request, unlang_stack_frame_t *frame, bool
      with_actions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:574,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:578,1
    - Dst: frame_dump
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:579,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - request
    - with_actions
    argTypes:
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: stack_dump_body
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - frame_dump
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void stack_dump_body(request_t *request, bool with_actions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_dump_body
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: stack_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - stack_dump_body
    linkageType: ''
    returnType: void
    signature: void stack_dump(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_dump_body
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 592
    functionName: stack_dump_with_actions
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - stack_dump_body
    linkageType: ''
    returnType: void
    signature: void stack_dump_with_actions(request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:632,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:644,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:654,1
    - Dst: unlang_list_next
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:659,1
    - Dst: top_frame_set
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:664,1
    - Dst: frame_state_init
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:671,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - p_result
    - request
    - instruction
    - conf
    - do_next_sibling
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_t*
    - unlang_frame_conf_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 674
    functionName: unlang_interpret_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 4
    functionsReached:
    - RERROR
    - unlang_list_next
    - frame_state_init
    - RDEBUG3
    - memset
    - top_frame_set
    linkageType: ''
    returnType: int
    signature: "int unlang_interpret_push(unlang_result_t *p_result, request_t *request,\n\t\t\t
      \ unlang_t const *instruction, unlang_frame_conf_t const *conf, bool do_next_sibling)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:690,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:692,1
    - Dst: fr_pair_list_prev
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:694,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ref
    argTypes:
    - unlang_variable_ref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 706
    functionName: _local_variables_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_pair_delete
    - fr_pair_list_prev
    - fr_pair_list_tail
    linkageType: ''
    returnType: int
    signature: int _local_variables_free(unlang_variable_ref_t *ref)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:728,1
    - Dst: has_debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:728,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:730,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:737,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:738,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:742,1
    - Dst: unlang_list_head
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:742,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:743,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:755,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:755,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:758,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:758,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - p_result
    - request
    - default_rcode
    - do_next_sibling
    argTypes:
    - unlang_result_t*
    - request_t*
    - rlm_rcode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 771
    functionName: unlang_interpret_push_children
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - FRAME_CONF
    - talloc_set_destructor
    - unlang_interpret_push
    - talloc
    - fr_assert
    - RDEBUG2
    - unlang_list_head
    - has_debug_braces
    - MEM
    - unlang_list_empty
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_interpret_push_children(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t       rlm_rcode_t default_rcode, bool do_next_sibling)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:793,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:794,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:803,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:808,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:808,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:809,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:809,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:811,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:813,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:815,1
    - Dst: is_rcode_set
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:825,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:826,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:827,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:838,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:838,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:840,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:842,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:857,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:859,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:862,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:875,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:877,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:880,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:887,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:895,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:895,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:909,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:910,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:910,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:912,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:913,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:934,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:937,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:943,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:945,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:947,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:949,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:951,1
    - Dst: unlang_frame_perf_cleanup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:952,1
    - Dst: frame_state_init
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:953,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:967,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:967,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:968,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:968,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:970,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:972,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:974,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 87
    argCount: 3
    argNames:
    - request
    - frame
    - result
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - unlang_result_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 984
    functionName: result_calculate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_timer_in
    - UNLANG_RESULT_RCODE
    - MEM
    - RPEDEBUG
    - fr_table_str_by_value
    - fr_time_delta_ispos
    - is_unwinding
    - unlang_interpret_event_list
    - fr_assert
    - RDEBUG3
    - unlang_frame_perf_cleanup
    - frame_state_init
    - RDEBUG
    - TALLOC_FREE
    - is_rcode_set
    - RINDENT
    - talloc_zero
    - RDEBUG4
    - MOD_ACTION_VALID
    - REXDENT
    linkageType: ''
    returnType: unlang_frame_action_t
    signature: unlang_frame_action_t result_calculate(request_t *request, unlang_stack_frame_t
      *frame, unlang_result_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1002,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1002,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1015,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1015,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1019,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1021,1
    - Dst: result_calculate
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - request
    - frame
    - result
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - unlang_result_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 997
    functionDepth: 3
    functionLinenumber: 997
    functionLinenumberEnd: 1025
    functionName: result_pop
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - result_calculate
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG4
    - MOD_ACTION_VALID
    linkageType: ''
    returnType: unlang_frame_action_t
    signature: unlang_frame_action_t result_pop(request_t *request, unlang_stack_frame_t
      *frame, unlang_result_t *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1029,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1030,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1042,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1044,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1047,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - request
    - frame
    - instruction
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1053
    functionName: instruction_done_debug
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - REXDENT
    - fr_table_str_by_value
    - RDEBUG2
    - has_debug_braces
    linkageType: ''
    returnType: void
    signature: void instruction_done_debug(request_t *request, unlang_stack_frame_t
      *frame, unlang_t const *instruction)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1087,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1088,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1089,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1091,1
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1096,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1097,1
    - Dst: yielded_clear
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1098,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1109,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1111,1
    - Dst: is_repeatable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1121,1
    - Dst: has_debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1122,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1123,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1124,1
    - Dst: repeatable_clear
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1136,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1142,1
    - Dst: unlang_frame_perf_resume
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1145,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1150,1
    - Dst: unlang_thread_data
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1150,1
    - Dst: unlang_stack_frame_t*::process
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1163,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1166,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1166,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1168,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1169,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1170,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1180,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1189,1
    - Dst: unlang_frame_perf_yield
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1193,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1201,1
    - Dst: unlang_frame_perf_yield
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1205,1
    - Dst: yielded_set
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1206,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1207,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1208,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1220,1
    - Dst: result_calculate
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1235,1
    - Dst: instruction_done_debug
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1237,1
    - Dst: has_debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1244,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1245,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1246,1
    - Dst: has_debug_braces
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1259,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1260,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1261,1
    - Dst: frame_next
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1266,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1270,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1270,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1272,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1274,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 86
    argCount: 2
    argNames:
    - request
    - frame
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1279
    functionName: frame_eval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - repeatable_clear
    - is_yielded
    - REQUEST_VERIFY
    - unlang_interpret_signal
    - fr_assert_msg
    - unlang_frame_perf_yield
    - UNLANG_RESULT_RCODE
    - unlikely
    - fr_table_str_by_value
    - is_repeatable
    - unlang_thread_data
    - is_unwinding
    - REXDENT
    - frame_next
    - yielded_set
    - fr_assert
    - RDEBUG2
    - instruction_done_debug
    - result_calculate
    - RERROR
    - RDEBUG
    - RINDENT
    - unlang_stack_frame_t*::process
    - RDEBUG4
    - MOD_ACTION_VALID
    - has_debug_braces
    - unlang_frame_perf_resume
    - yielded_clear
    linkageType: ''
    returnType: unlang_frame_action_t
    signature: unlang_frame_action_t frame_eval(request_t *request, unlang_stack_frame_t
      *frame)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1303,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1306,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1310,1
    - Dst: unlang_request_is_scheduled
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1310,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1311,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1313,1
    - Dst: unlang_interpret_t*::funcs::resume
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1314,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1317,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1318,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1320,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1321,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1324,1
    - Dst: frame_eval
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1329,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1332,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1333,1
    - Dst: is_top_frame
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1338,1
    - Dst: is_private_result
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1339,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1348,1
    - Dst: frame_pop
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1355,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1356,1
    - Dst: result_calculate
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1371,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1380,1
    - Dst: result_pop
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1390,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1399,1
    - Dst: is_repeatable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1399,1
    - Dst: instruction_done_debug
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1408,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1410,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1410,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1419,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1421,1
    - Dst: frame_next
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1423,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1431,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1433,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1442,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1444,1
    - Dst: unlang_interpret_t*::funcs::yield
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1445,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1454,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1460,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1461,1
    - Dst: unlang_interpret_request_done
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1483,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 2
    argNames:
    - request
    - running
    argTypes:
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1291
    functionDepth: 4
    functionLinenumber: 1291
    functionLinenumberEnd: 1487
    functionName: unlang_interpret
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 3
    functionsReached:
    - DEBUG4
    - fr_assert_msg
    - unlang_interpret_request_done
    - unlikely
    - fr_table_str_by_value
    - DEBUG
    - is_repeatable
    - is_unwinding
    - is_top_frame
    - frame_next
    - fr_assert
    - instruction_done_debug
    - is_private_result
    - result_calculate
    - frame_pop
    - unlang_interpret_t*::funcs::resume
    - frame_eval
    - unlang_interpret_t*::funcs::yield
    - RDEBUG4
    - MOD_ACTION_VALID
    - result_pop
    - unlang_request_is_scheduled
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t unlang_interpret(request_t *request, bool running)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1533,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1533,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1535,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1536,1
    - Dst: unlang_interpret_push_instruction
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - p_result
    - request
    - cs
    - conf
    argTypes:
    - unlang_result_t*
    - request_t*
    - CONF_SECTION*
    - unlang_frame_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1542
    functionName: unlang_interpret_push_section
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - cf_data_find
    - unlang_interpret_push_instruction
    - cf_data_value
    - cf_section_name1
    linkageType: ''
    returnType: int
    signature: int unlang_interpret_push_section(unlang_result_t *p_result, request_t
      *request, CONF_SECTION *cs, unlang_frame_conf_t const *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1552,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1559,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - p_result
    - request
    - instruction
    - conf
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    - unlang_frame_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1566
    functionName: unlang_interpret_push_instruction
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - RDEBUG4
    - unlang_interpret_push
    - unlang_group_to_generic
    linkageType: ''
    returnType: int
    signature: int unlang_interpret_push_instruction(unlang_result_t *p_result, request_t
      *request, void *instruction, unlang_frame_conf_t const *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1600,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1607
    functionName: unlang_interpret_stack_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - MEM
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: void
    signature: void *unlang_interpret_stack_alloc(TALLOC_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1617,1
    - Dst: unlang_interpret_t*::funcs::done_external
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1624,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1624,1
    - Dst: unlang_interpret_t*::funcs::done_internal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1628,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1628,1
    - Dst: unlang_interpret_t*::funcs::done_detached
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1632,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1635
    functionName: unlang_interpret_request_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    - unlang_interpret_t*::funcs::done_internal
    - frame_current
    - unlang_interpret_t*::funcs::done_detached
    - unlang_interpret_t*::funcs::done_external
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_request_done(request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1648,1
    - Dst: request_is_detachable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1650,1
    - Dst: unlang_interpret_t*::funcs::detach
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1655
    functionName: unlang_interpret_request_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_t*::funcs::detach
    - fr_cond_assert
    - request_is_detachable
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_request_detach(request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1662,1
    - Dst: unlang_interpret_t*::funcs::prioritise
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - request
    - priority
    argTypes:
    - request_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1669
    functionName: unlang_interpret_request_prioritise
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - unlang_interpret_t*::funcs::prioritise
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_request_prioritise(request_t *request, uint32_t
      priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1681
    functionName: unlang_interpret_request_cancel_retry
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_request_cancel_retry(request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1712,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1714,1
    - Dst: unwind_to_depth
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1721,1
    - Dst: unlang_stack_frame_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1740,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - request
    - action
    - limit
    argTypes:
    - request_t*
    - fr_signal_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1755
    functionName: unlang_stack_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - unlang_stack_frame_t*::signal
    - talloc_get_type_abort
    - unwind_to_depth
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void unlang_stack_signal(request_t *request, fr_signal_t action, int
      limit)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1781,1
    - Dst: request_is_detachable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1781,1
    - Dst: unlang_stack_signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1795,1
    - Dst: unlang_interpret_request_prioritise
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1811,1
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1824,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1824,1
    - Dst: unlang_request_is_scheduled
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1824,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1825,1
    - Dst: unlang_interpret_request_detach
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1836,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - request
    - action
    argTypes:
    - request_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1771
    functionDepth: 2
    functionLinenumber: 1771
    functionLinenumberEnd: 1842
    functionName: unlang_interpret_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 13
    functionsReached:
    - is_unwinding
    - unlang_interpret_request_prioritise
    - unlang_interpret_request_detach
    - fr_cond_assert
    - request_is_detachable
    - is_yielded
    - unlang_stack_signal
    - unlang_request_is_scheduled
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_signal(request_t *request, fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1846,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1847,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1849,1
    - Dst: unlang_stack_signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1854,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1844
    functionDepth: 2
    functionLinenumber: 1844
    functionLinenumberEnd: 1858
    functionName: instruction_retry_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_mark_runnable
    - RDEBUG
    - talloc_get_type_abort
    - unlang_stack_signal
    linkageType: ''
    returnType: void
    signature: void instruction_retry_handler(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1862,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1864,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1860
    functionDepth: 3
    functionLinenumber: 1860
    functionLinenumberEnd: 1870
    functionName: instruction_timeout_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - RDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void instruction_timeout_handler(UNUSED fr_timer_list_t *tl, UNUSED
      fr_time_t now, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1884,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1885,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1885,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1887,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1895,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - request
    - timeout
    argTypes:
    - request_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1878
    functionDepth: 1
    functionLinenumber: 1878
    functionLinenumberEnd: 1897
    functionName: unlang_interpret_set_timeout
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_event_list
    - fr_timer_in
    - fr_assert
    - fr_time_delta_ispos
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int unlang_interpret_set_timeout(request_t *request, fr_time_delta_t
      timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1908
    functionName: unlang_interpret_stack_depth
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unlang_interpret_stack_depth(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1918
    functionName: unlang_interpret_rcode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - frame_current
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t unlang_interpret_rcode(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1928
    functionName: unlang_interpret_priority
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - frame_current
    linkageType: ''
    returnType: unlang_mod_action_t
    signature: unlang_mod_action_t unlang_interpret_priority(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1938
    functionName: unlang_interpret_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 3
    functionsReached:
    - frame_current
    linkageType: ''
    returnType: unlang_result_t
    signature: unlang_result_t *unlang_interpret_result(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_t*::funcs::scheduled
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1949
    functionName: unlang_request_is_scheduled
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 3
    functionsReached:
    - unlang_interpret_t*::funcs::scheduled
    linkageType: ''
    returnType: bool
    signature: bool unlang_request_is_scheduled(request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1953
    functionDepth: 0
    functionLinenumber: 1953
    functionLinenumberEnd: 1956
    functionName: unlang_request_is_cancelled
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool unlang_request_is_cancelled(request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1963
    functionName: unlang_request_is_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool unlang_request_is_done(request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 1978
    functionName: unlang_interpret_is_resumable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 3
    functionsReached:
    - is_yielded
    linkageType: ''
    returnType: bool
    signature: bool unlang_interpret_is_resumable(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_request_is_scheduled
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:1996,1
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2016,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2017,1
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2019,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2024,1
    - Dst: unlang_interpret_t*::funcs::mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1990
    functionDepth: 1
    functionLinenumber: 1990
    functionLinenumberEnd: 2027
    functionName: unlang_interpret_mark_runnable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 36
    functionsReached:
    - is_yielded
    - unlang_interpret_t*::funcs::mark_runnable
    - RDEBUG3
    - unlang_request_is_scheduled
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_mark_runnable(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2048
    functionName: unlang_interpret_frame_talloc_ctx
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 29
    functionsReached:
    - talloc_new
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *unlang_interpret_frame_talloc_ctx(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2067,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2069,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2074,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2074,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2065
    functionDepth: 3
    functionLinenumber: 2065
    functionLinenumberEnd: 2077
    functionName: unlang_cancel_event
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - request_data_get
    - talloc_free
    - talloc_get_type_abort
    - unlang_interpret_signal
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void unlang_cancel_event(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2090,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2093,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2095,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2097,1
    - Dst: fr_time_delta_eq
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2107,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2107,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2108,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2116,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2118,1
    - Dst: fr_timer_when
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2120,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2126,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2126,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2129,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2129,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2130,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2132,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2133,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2136,1
    - Dst: request_data_add
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2136,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2137,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2138,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2139,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2144,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2144,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2153,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2153,1
    - Dst: time
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2153,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2085
    functionDepth: 3
    functionLinenumber: 2085
    functionLinenumberEnd: 2161
    functionName: unlang_cancel_xlat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - time
    - unlang_interpret_signal
    - fr_timer_in
    - fr_time_sub
    - fr_value_box_alloc
    - MEM
    - fr_timer_when
    - unlikely
    - fr_time_delta_eq
    - fr_time_from_sec
    - unlang_interpret_event_list
    - UNCONST
    - request_data_add
    - RPERROR
    - fr_assert
    - fr_time_delta_from_sec
    - request_data_get
    - talloc_free
    - XLAT_ARGS
    - talloc_zero
    - fr_dcursor_insert
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unlang_cancel_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request, fr_value_box_list_t *args)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2180,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2184,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2184,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2191,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2193,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2217,1
    - Dst: fr_value_box_int32
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2218,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2225,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2228,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2236,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2239,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2240,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2247,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2250,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2258,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2259,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2259,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2267,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2282,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2286,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2286,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2294,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2295,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2296,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2305,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2313,1
    - Dst: fr_value_box_int32
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2314,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2314,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2322,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2323,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2323,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2330,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2333,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 112
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2337
    functionName: unlang_interpret_xlat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cf_lineno
    - unlang_call_current
    - fr_value_box_strdup
    - talloc_free
    - fr_dcursor_append
    - fr_value_box_int32
    - cf_filename
    - fr_value_box_bstrndup
    - fr_table_str_by_value
    - cf_section_name2
    - strlen
    - strcmp
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t unlang_interpret_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2356,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2358,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2359,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2362,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2363,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2364,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2365,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2366,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2368,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - el
    - funcs
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - unlang_request_func_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2376
    functionName: unlang_interpret_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - MEM
    - talloc
    linkageType: ''
    returnType: unlang_interpret_t
    signature: "unlang_interpret_t *unlang_interpret_init(TALLOC_CTX *ctx,\n\t\t\t\t\t
      \ fr_event_list_t *el, unlang_request_func_t *funcs, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_pop
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2387
    functionName: unlang_interpet_frame_discard
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 1
    functionsReached:
    - frame_pop
    linkageType: ''
    returnType: void
    signature: void unlang_interpet_frame_discard(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - intp
    argTypes:
    - request_t*
    - unlang_interpret_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2392
    functionDepth: 0
    functionLinenumber: 2392
    functionLinenumberEnd: 2396
    functionName: unlang_interpret_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_set(request_t *request, unlang_interpret_t *intp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2406
    functionName: unlang_interpret_get
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unlang_interpret_t
    signature: unlang_interpret_t *unlang_interpret_get(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2411
    functionDepth: 0
    functionLinenumber: 2411
    functionLinenumberEnd: 2418
    functionName: unlang_interpret_event_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: fr_event_list_t
    signature: fr_event_list_t *unlang_interpret_event_list(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - intp
    argTypes:
    - unlang_interpret_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2423
    functionDepth: 0
    functionLinenumber: 2423
    functionLinenumberEnd: 2428
    functionName: unlang_interpret_set_thread_default
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 4
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_interpret_set_thread_default(unlang_interpret_t *intp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2434
    functionDepth: 0
    functionLinenumber: 2434
    functionLinenumberEnd: 2439
    functionName: unlang_interpret_get_thread_default
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_interpret_t
    signature: unlang_interpret_t *unlang_interpret_get_thread_default(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2448,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2448,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2449,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2451,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2451,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/interpret.c:2452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2441
    functionDepth: 1
    functionLinenumber: 2441
    functionLinenumberEnd: 2455
    functionName: unlang_interpret_init_global
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int unlang_interpret_init_global(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ci
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: CALL_ENV_DEBUG
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_ENV_DEBUG(_ci, fmt, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:67,1
    - Dst: call_env_nullable
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:69,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:70,1
    - Dst: call_env_concat
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:79,1
    - Dst: call_env_attribute
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:79,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:81,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:83,1
    - Dst: call_env_single
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:87,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:87,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:88,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:89,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:93,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:96,1
    - Dst: fr_value_box_list_initialised
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:100,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:100,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:101,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - request
    - out
    - env
    - tmpl_expanded
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - void*
    - call_env_parsed_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 111
    functionName: call_env_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_copy_shallow
    - call_env_concat
    - RPEDEBUG
    - call_env_attribute
    - fr_value_box_list_init
    - call_env_nullable
    - fr_value_box_list_pop_head
    - fr_value_box_list_insert_tail
    - fr_value_box_list_concat_in_place
    - call_env_single
    - fr_assert
    - fr_value_box_list_num_elements
    - fr_value_box_list_initialised
    linkageType: ''
    returnType: call_env_result_t
    signature: "call_env_result_t call_env_result(TALLOC_CTX *ctx, request_t *request,
      void *out, call_env_parsed_t const *env,\n\t\t\t\t  fr_value_box_list_t *tmpl_expanded)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:132,1
    - Dst: call_env_parsed_next
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:138,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:140,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:146,1
    - Dst: call_env_is_subsection
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:146,1
    - Dst: call_env_multi
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:164,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:171,1
    - Dst: _talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:171,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:181,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:185,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:189,1
    - Dst: call_env_parse_only
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:197,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:207,1
    - Dst: call_env_multi
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:212,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:220,1
    - Dst: _talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:220,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:230,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:235,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:235,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:236,1
    - Dst: call_env_multi
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:240,1
    - Dst: call_env_result
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:246,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:254,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 259
    functionName: call_env_expand_start
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached:
    - call_env_is_subsection
    - call_env_parse_only
    - call_env_result
    - fr_value_box_acopy
    - _talloc_zero_array
    - UNCONST
    - talloc_get_type_abort
    - tmpl_is_data
    - fr_value_box_list_insert_tail
    - fr_assert
    - fr_assert_msg
    - MEM
    - unlang_tmpl_push
    - call_env_parsed_next
    - call_env_multi
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t call_env_expand_start(UNUSED unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:268,1
    - Dst: call_env_multi
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:292,1
    - Dst: call_env_result
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:298,1
    - Dst: call_env_parsed_next
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:304,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 316
    functionName: call_env_expand_repeat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached:
    - call_env_result
    - talloc_get_type_abort
    - unlang_function_push_with_result
    - call_env_parsed_next
    - call_env_multi
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t call_env_expand_repeat(UNUSED unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:331,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:331,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:332,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:332,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:333,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:338,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - request
    - env_result
    - env_data
    - call_env
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - call_env_result_t*
    - void**
    - call_env_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 347
    functionName: call_env_expand
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_init
    - talloc_set_name_const
    - talloc_zero
    - talloc_zero_array
    - unlang_function_push_with_result
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t call_env_expand(TALLOC_CTX *ctx, request_t *request,
      call_env_result_t *env_result, void **env_data,\n\t\t\t\tcall_env_t const *call_env)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:357,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 363
    functionName: call_env_parsed_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: call_env_parsed_t
    signature: call_env_parsed_t *call_env_parsed_alloc(TALLOC_CTX *ctx, call_env_parser_t
      const *rule)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:380,1
    - Dst: call_env_attribute
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:380,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:390,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - parsed
    - ci
    - rule
    argTypes:
    - call_env_parsed_t*
    - CONF_ITEM*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 396
    functionName: call_env_parsed_valid
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached:
    - tmpl_type_to_str
    - fr_assert
    - cf_log_err
    - call_env_attribute
    linkageType: ''
    returnType: int
    signature: int call_env_parsed_valid(call_env_parsed_t const *parsed, CONF_ITEM
      const *ci, call_env_parser_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:416,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:418,1
    - Dst: call_env_attribute
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:424,1
    - Dst: call_env_bare_word_attribute
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:425,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:426,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:426,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:430,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:431,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:431,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:431,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:431,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:432,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - ctx
    - out
    - t_rules
    - ci
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - tmpl_rules_t*
    - CONF_ITEM*
    - UNUSED*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 443
    functionName: call_env_parse_pair
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value_quote
    - call_env_attribute
    - cf_pair_value
    - FR_SBUFF_IN
    - tmpl_afrom_attr_str
    - tmpl_afrom_substr
    - talloc_strlen
    - tmpl_resolve
    - call_env_bare_word_attribute
    linkageType: ''
    returnType: int
    signature: "int call_env_parse_pair(TALLOC_CTX *ctx, void *out, tmpl_rules_t const
      *t_rules, CONF_ITEM *ci,\n\t\t\tUNUSED call_env_ctx_t const *cec, call_env_parser_t
      const *rule)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CALL_ENV_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:470,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:470,1
    - Dst: call_env_is_subsection
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:472,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:474,1
    - Dst: call_env_required
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:479,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:480,1
    - Dst: call_env_parse_missing
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:488,1
    - Dst: call_env_parsed_tail
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:499,1
    - Dst: CALL_ENV_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:501,1
    - Dst: call_env_parser_t*::section::func
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:503,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:503,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:504,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:505,1
    - Dst: CALL_ENV_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:509,1
    - Dst: call_env_parsed_num_elements
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:510,1
    - Dst: call_env_parsed_next
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:518,1
    - Dst: CALL_ENV_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:519,1
    - Dst: call_env_parsed_valid
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:520,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:520,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:521,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:521,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:522,1
    - Dst: call_env_parse
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:529,1
    - Dst: CALL_ENV_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:530,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:536,1
    - Dst: call_env_required
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:539,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:541,1
    - Dst: call_env_multi
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:549,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:549,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:550,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:550,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:554,1
    - Dst: call_env_parsed_alloc
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:574,1
    - Dst: call_env_force_quote
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:585,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:586,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:587,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:587,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:587,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:588,1
    - Dst: call_env_force_quote
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:589,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:589,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:594,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:604,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:604,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:604,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:606,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:606,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:607,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:608,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:612,1
    - Dst: call_env_parsed_valid
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:619,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:619,1
    - Dst: call_env_parsed_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:621,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:623,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:624,1
    - Dst: CALL_ENV_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:630,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 103
    argCount: 7
    argNames:
    - ctx
    - parsed
    - name
    - t_rules
    - cs
    - cec
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - char*
    - tmpl_rules_t*
    - CONF_SECTION*
    - call_env_ctx_t*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 633
    functionName: call_env_parse
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 3
    functionsReached:
    - cf_section_find
    - call_env_parsed_num_elements
    - call_env_parsed_alloc
    - section_name_str
    - func
    - cf_pair_operator
    - cf_log_err
    - call_env_parsed_next
    - unlikely
    - call_env_is_subsection
    - cf_pair_to_item
    - call_env_force_quote
    - call_env_parse
    - cf_pair_alloc
    - cf_section_name
    - call_env_required
    - cf_section_to_item
    - cf_pair_count
    - call_env_multi
    - call_env_parsed_tail
    - cf_pair_attr
    - cf_pair_value_quote
    - call_env_parser_t*::section::func
    - CALL_ENV_DEBUG
    - cf_pair_attr_quote
    - call_env_parse_missing
    - cf_pair_find
    - call_env_parsed_insert_tail
    - cf_log_perr
    - talloc_free
    - cf_pair_value
    - cf_pair_find_next
    - call_env_parsed_valid
    linkageType: ''
    returnType: int
    signature: "int call_env_parse(TALLOC_CTX *ctx, call_env_parsed_head_t *parsed,
      char const *name, tmpl_rules_t const *t_rules,\n\t\t\t  CONF_SECTION const *cs,\n\t\t\t
      \ call_env_ctx_t const *cec, call_env_parser_t const *rule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_env_is_subsection
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:650,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:652,1
    - Dst: call_env_count
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:658,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:663,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:665,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:665,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:669,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - names_len
    - cs
    - call_env
    argTypes:
    - size_t*
    - CONF_SECTION*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 677
    functionName: call_env_count
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - call_env_is_subsection
    - cf_section_find
    - cf_pair_value
    - call_env_count
    - cf_pair_find_next
    - strlen
    - talloc_array_length
    linkageType: ''
    returnType: size_t
    signature: size_t call_env_count(size_t *names_len, CONF_SECTION const *cs, call_env_parser_t
      const *call_env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:695,1
    - Dst: call_env_is_subsection
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:695,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:697,1
    - Dst: call_env_parsed_alloc
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:697,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:703,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:703,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:704,1
    - Dst: call_env_parsed_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - head
    - rule
    argTypes:
    - TALLOC_CTX*
    - call_env_parsed_head_t*
    - call_env_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 709
    functionName: call_env_parsed_add
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 13
    functionsReached:
    - call_env_parsed_insert_tail
    - call_env_is_subsection
    - memcpy
    - talloc
    - call_env_parsed_alloc
    - fr_assert_msg
    - MEM
    linkageType: ''
    returnType: call_env_parsed_t
    signature: call_env_parsed_t *call_env_parsed_add(TALLOC_CTX *ctx, call_env_parsed_head_t
      *head, call_env_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parsed
    - tmpl
    argTypes:
    - call_env_parsed_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: call_env_parsed_set_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 2
    functionsReached:
    - fr_assert_msg
    linkageType: ''
    returnType: void
    signature: void call_env_parsed_set_tmpl(call_env_parsed_t *parsed, tmpl_t const
      *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parsed
    - vb
    argTypes:
    - call_env_parsed_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: call_env_parsed_set_value
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - fr_assert_msg
    linkageType: ''
    returnType: void
    signature: void call_env_parsed_set_value(call_env_parsed_t *parsed, fr_value_box_t
      const *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parsed
    - data
    argTypes:
    - call_env_parsed_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 751
    functionName: call_env_parsed_set_data
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 11
    functionsReached:
    - fr_assert_msg
    linkageType: ''
    returnType: void
    signature: void call_env_parsed_set_data(call_env_parsed_t *parsed, void const
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:764,1
    - Dst: call_env_multi
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - parsed
    - count
    - index
    argTypes:
    - call_env_parsed_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 767
    functionName: call_env_parsed_set_multi_index
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 2
    functionsReached:
    - fr_assert_msg
    - call_env_multi
    linkageType: ''
    returnType: void
    signature: void call_env_parsed_set_multi_index(call_env_parsed_t *parsed, size_t
      count, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_env_parsed_remove
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:779,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parsed
    - ptr
    argTypes:
    - call_env_parsed_head_t*
    - call_env_parsed_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: call_env_parsed_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 7
    functionsReached:
    - call_env_parsed_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void call_env_parsed_free(call_env_parsed_head_t *parsed, call_env_parsed_t
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:805,1
    - Dst: call_env_count
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:812,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:823,1
    - Dst: talloc_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:823,1
    - Dst: call_env_parsed_init
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:825,1
    - Dst: call_env_parse
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:826,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - name
    - call_env_method
    - t_rules
    - cs
    - cec
    argTypes:
    - TALLOC_CTX*
    - char*
    - call_env_method_t*
    - tmpl_rules_t*
    - CONF_SECTION*
    - call_env_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 832
    functionName: call_env_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 0
    functionsReached:
    - call_env_parsed_init
    - talloc_free
    - call_env_parse
    - call_env_count
    - fr_assert_msg
    - talloc_pooled_object
    - MEM
    linkageType: ''
    returnType: call_env_t
    signature: "call_env_t *call_env_alloc(TALLOC_CTX *ctx, char const *name, call_env_method_t
      const *call_env_method,\n\t\t\t   tmpl_rules_t const *t_rules, CONF_SECTION
      *cs, call_env_ctx_t const *cec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - call_env_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: call_env_flag_to_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *call_env_flag_to_enum_str(call_env_flags_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - call_env_parse_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: call_env_parse_type_to_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *call_env_parse_type_to_enum_str(call_env_parse_type_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/call_env.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - call_env_result_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 877
    functionName: call_env_result_type_to_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.c
    functionUses: 1
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *call_env_result_type_to_enum_str(call_env_result_type_t t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/condition.c:38,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/condition.c:39,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/condition.c:47,1
    - Dst: unlang_group_to_cond
      Src: /src/freeradius-server/src/lib/unlang/condition.c:48,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/condition.c:50,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/condition.c:59,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/condition.c:63,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/condition.c:67,1
    - Dst: unlang_list_next
      Src: /src/freeradius-server/src/lib/unlang/condition.c:77,1
    - Dst: unlang_group
      Src: /src/freeradius-server/src/lib/unlang/condition.c:94,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 95
    functionName: unlang_if_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlang_list_next
    - fr_value_box_is_truthy
    - talloc_get_type_abort
    - unlang_group_to_cond
    - RDEBUG2
    - fr_value_box_list_next
    - unlang_group
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_if_resume(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/condition.c:99,1
    - Dst: unlang_group_to_cond
      Src: /src/freeradius-server/src/lib/unlang/condition.c:100,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/condition.c:101,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/condition.c:103,1
    - Dst: unlang_group
      Src: /src/freeradius-server/src/lib/unlang/condition.c:113,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/condition.c:116,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/condition.c:118,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/condition.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 124
    functionName: unlang_if
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - fr_value_box_list_init
    - frame_repeat
    - talloc_get_type_abort
    - unlang_group_to_cond
    - fr_assert
    - unlang_group
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_if(unlang_result_t *p_result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/condition.c:148,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/condition.c:149,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/condition.c:157,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/condition.c:165,1
    - Dst: xlat_tokenize_condition
      Src: /src/freeradius-server/src/lib/unlang/condition.c:177,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/condition.c:177,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/condition.c:179,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/condition.c:185,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/condition.c:192,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/condition.c:193,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/condition.c:193,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/condition.c:197,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/condition.c:197,1
    - Dst: xlat_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/condition.c:199,1
    - Dst: cf_log_debug_prefix
      Src: /src/freeradius-server/src/lib/unlang/condition.c:206,1
    - Dst: unlang_compile_empty
      Src: /src/freeradius-server/src/lib/unlang/condition.c:216,1
    - Dst: cf_section_free_children
      Src: /src/freeradius-server/src/lib/unlang/condition.c:217,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:219,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/condition.c:224,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/condition.c:226,1
    - Dst: unlang_group_to_cond
      Src: /src/freeradius-server/src/lib/unlang/condition.c:227,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/condition.c:233,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/condition.c:234,1
    - Dst: cf_item_is_data
      Src: /src/freeradius-server/src/lib/unlang/condition.c:235,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:243,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/condition.c:246,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:246,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/condition.c:247,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/condition.c:249,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/condition.c:249,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - parent
    - unlang_ctx
    - cs
    - type
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_SECTION*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 253
    functionName: compile_if_subsection
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - unlang_compile_section
    - fr_strerror
    - cf_log_err
    - cf_log_debug_prefix
    - cf_item_to_section
    - cf_section_free_children
    - xlat_tokenize_condition
    - unlang_compile_empty
    - unlang_group_to_cond
    - cf_section_name2
    - cf_item_next
    - xlat_needs_resolving
    - xlat_resolve
    - cf_section_to_item
    - cf_section_name1
    - cf_item_is_section
    - cf_item_is_data
    - fr_assert
    - strcmp
    - cf_canonicalize_error
    - FR_SBUFF_IN_STR
    - xlat_is_truthy
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *compile_if_subsection(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_SECTION *cs, unlang_type_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compile_if_subsection
      Src: /src/freeradius-server/src/lib/unlang/condition.c:257,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: unlang_compile_if
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - compile_if_subsection
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_if(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compile_if_subsection
      Src: /src/freeradius-server/src/lib/unlang/condition.c:262,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: unlang_compile_elsif
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - compile_if_subsection
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_elsif(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:267,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/condition.c:269,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/condition.c:270,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/condition.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: unlang_compile_else
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - cf_section_name2
    - unlang_compile_section
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_else(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/condition.c:280,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/condition.c:297,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/condition.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 325
    functionName: unlang_condition_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_condition_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _list
    - ','
    - _prev
    - ','
    - _curr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: XLAT_ARGS_NEXT
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_NEXT(_list, _prev, _curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list
    - ','
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: XLAT_ARGS_1
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_1(_list, _a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: XLAT_ARGS_2
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_2(_list, _a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: XLAT_ARGS_3
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_3(_list, _a, _b, _c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: XLAT_ARGS_4
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_4(_list, _a, _b, _c, _d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - ','
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: XLAT_ARGS_5
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_5(_list, _a, _b, _c, _d, _e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - ','
    - _e
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: XLAT_ARGS_6
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_6(_list, _a, _b, _c, _d, _e, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - ','
    - _e
    - ','
    - _f
    - ','
    - _g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: XLAT_ARGS_7
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_7(_list, _a, _b, _c, _d, _e, _f, _g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - _list
    - ','
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - ','
    - _e
    - ','
    - _f
    - ','
    - _g
    - ','
    - _h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: XLAT_ARGS_8
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS_8(_list, _a, _b, _c, _d, _e, _f, _g, _h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - XLAT_ARGS_N
    - ','
    - _list
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: _XLAT_ARGS_X
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XLAT_ARGS_X(XLAT_ARGS_N, _list, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    functionName: XLAT_ARGS
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_ARGS(_list, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _out
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: xlat_copy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_copy(_ctx, _out, _in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 461
    functionName: XLAT_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_VERIFY(_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: XLAT_HEAD_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_HEAD_VERIFY(_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: XLAT_RESULT_SUCCESS
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_RESULT_SUCCESS(_p_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: XLAT_DEBUG
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_DEBUG(_fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:74,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:79,1
    - Dst: xlat_exists_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:80,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:84,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:84,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:91,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:94,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:97,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:98,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:100,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - head
    - node
    - exists
    argTypes:
    - xlat_exp_t*
    - xlat_exp_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 103
    functionName: xlat_func_append_arg
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_exp_insert_tail
    - talloc_steal
    - fr_assert
    - xlat_exists_alloc
    - xlat_exp_alloc
    - xlat_flags_merge
    - xlat_exp_head_alloc
    - xlat_exp_set_name_shallow
    - MEM
    - tmpl_contains_attr
    linkageType: ''
    returnType: void
    signature: void xlat_func_append_arg(xlat_exp_t *head, xlat_exp_t *node, bool
      exists)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:116,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:117,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:117,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:122,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:122,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:123,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:125,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:125,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:126,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:131,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:133,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - child
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 138
    functionName: xlat_exists_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 1
    functionsReached:
    - tmpl_needs_resolving
    - tmpl_attr_tail_da
    - xlat_func_append_arg
    - fr_assert
    - xlat_exp_alloc
    - xlat_exp_set_name_shallow
    - MEM
    - xlat_func_find
    - tmpl_contains_attr
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *xlat_exists_alloc(TALLOC_CTX *ctx, xlat_exp_t *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:143,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:145,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:146,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:146,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - node
    - inst
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    - UNUSED*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: xlat_expr_print_unary
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_STRCPY_RETURN
    - xlat_print_node
    - xlat_exp_head
    - fr_sbuff_used_total
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_expr_print_unary(fr_sbuff_t *out, xlat_exp_t const *node,
      UNUSED void *inst, fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:153,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:154,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:156,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:158,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:159,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:161,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:162,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:164,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:165,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:167,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:169,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - out
    - node
    - inst
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    - UNUSED*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 172
    functionName: xlat_expr_print_binary
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_print_node
    - xlat_exp_head
    - xlat_exp_next
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_assert
    - FR_SBUFF_IN_STRCPY_RETURN
    - fr_sbuff_used_total
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_expr_print_binary(fr_sbuff_t *out, xlat_exp_t const
      *node, UNUSED void *inst, fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:180,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:182,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:183,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:184,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:186,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:187,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:188,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:190,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:191,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:196,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:196,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:206,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:216,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:217,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:220,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:221,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:225,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:227,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:228,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:231,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:236,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:237,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:240,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:241,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:246,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:248,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:249,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:252,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:261,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:266,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:268,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:271,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:272,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:275,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 3
    argNames:
    - node
    - inst
    - xr_rules
    argTypes:
    - xlat_exp_t*
    - UNUSED*
    - xlat_res_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 278
    functionName: xlat_expr_resolve_binary
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - xlat_exp_next
    - tmpl_attr_tail_da
    - tmpl_is_data
    - fr_assert
    - xlat_flags_merge
    - xlat_resolve
    - XLAT_DEBUG
    - tmpl_resolve
    - tmpl_contains_attr
    linkageType: ''
    returnType: int
    signature: int xlat_expr_resolve_binary(xlat_exp_t *node, UNUSED void *inst, xlat_res_rules_t
      const *xr_rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:284,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:288,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - vb
    - type
    argTypes:
    - fr_value_box_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 295
    functionName: fr_value_box_init_zero
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_memdup_shallow
    - fr_value_box_strdup_shallow
    - fr_value_box_init
    linkageType: ''
    returnType: void
    signature: void fr_value_box_init_zero(fr_value_box_t *vb, fr_type_t type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:313,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:313,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:318,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:320,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:322,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:326,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:328,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:332,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:334,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:335,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:336,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:339,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:341,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:342,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:343,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:346,1
    - Dst: fr_value_box_init_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:350,1
    - Dst: fr_value_box_init_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:355,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:358,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:360,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:369,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:371,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 8
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    - op
    - default_type
    - enumv
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    - fr_token_t
    - fr_type_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 373
    functionName: xlat_binary_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - fr_dcursor_append
    - talloc_free
    - REDEBUG
    - fr_value_calc_binary_op
    - VALUE_BOX_LIST_VERIFY
    - fr_assert
    - fr_value_box_list_num_elements
    - MEM
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    - fr_value_box_init_zero
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_binary_op(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, fr_value_box_list_t
      *in,\n\t\t\t\t    fr_token_t op,\n\t\t\t\t    fr_type_t default_type, fr_dict_attr_t
      const *enumv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: XLAT_BINARY_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_BINARY_FUNC(_name, _op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:460,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:462,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:466,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:468,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:472,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:475,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:477,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:477,1
    - Dst: fr_value_calc_list_cmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:481,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:485,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:488,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 6
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    - op
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 491
    functionName: xlat_cmp_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - talloc_free
    - REDEBUG
    - VALUE_BOX_LIST_VERIFY
    - fr_assert
    - fr_value_box_alloc
    - MEM
    - fr_value_box_list_next
    - fr_value_calc_list_cmp
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_cmp_op(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t UNUSED request_t *request, fr_value_box_list_t
      *in,\n\t\t\t\t fr_token_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 501
    functionName: XLAT_CMP_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_CMP_FUNC(_name, _op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:525,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:526,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:529,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:531,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:532,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:538,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:540,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:541,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:547,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:549,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:550,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:550,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:551,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:553,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:554,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:555,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:557,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:558,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:563,1
    - Dst: tmpl_regex_flags
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:563,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:567,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:567,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:569,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:570,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:571,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:572,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:574,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:577,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - out
    - node
    - instance
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    - void*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 580
    functionName: xlat_expr_print_regex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_print_node
    - xlat_exp_head
    - xlat_exp_next
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_assert
    - tmpl_contains_regex
    - FR_SBUFF_IN_STRCPY_RETURN
    - tmpl_regex_flags
    - FR_SBUFF_RETURN
    - fr_sbuff_used_total
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_expr_print_regex(fr_sbuff_t *out, xlat_exp_t const *node,
      void *instance, fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:589,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:592,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:593,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:595,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:596,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:597,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:599,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:600,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:600,1
    - Dst: tmpl_regex_flags
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:603,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:605,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:606,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:611,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:615,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:616,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:623,1
    - Dst: tmpl_is_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:623,1
    - Dst: tmpl_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 628
    functionName: xlat_instantiate_regex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - tmpl_is_regex
    - xlat_exp_head
    - xlat_exp_next
    - talloc_free
    - talloc_steal
    - tmpl_contains_xlat
    - talloc_get_type_abort
    - fr_dlist_remove
    - fr_assert
    - tmpl_regex
    - tmpl_contains_regex
    - tmpl_is_data_unresolved
    - fr_strerror_const
    - tmpl_regex_flags
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_regex(xlat_inst_ctx_t const *xctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:679,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:681,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:682,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:683,1
    - Dst: regex_subcapture_count
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:685,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:687,1
    - Dst: regex_match_data_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:687,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:689,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:693,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:698,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:699,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:700,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:707,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:709,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:710,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:714,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:715,1
    - Dst: regex_exec
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:721,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:722,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:726,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:727,1
    - Dst: regex_sub_to_request
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:731,1
    - Dst: regex_sub_to_request
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:735,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:741,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:743,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:743,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 6
    argNames:
    - ctx
    - request
    - in
    - preg
    - out
    - op
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_value_box_list_t*
    - regex_t**
    - fr_dcursor_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 749
    functionName: xlat_regex_do_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_start
    - fr_value_box_list_pop_head
    - fr_value_box_mark_safe_for
    - regex_match_data_alloc
    - fr_value_box_alloc
    - fr_value_box_list_insert_head
    - MEM
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - RPEDEBUG
    - regex_subcapture_count
    - regex_sub_to_request
    - fr_value_box_list_init
    - regex_exec
    - fr_assert
    - fr_value_box_safety_copy
    - fr_dcursor_append
    - talloc_free
    - fr_value_box_list_concat_as_string
    - fr_sbuff_used
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_regex_do_op(TALLOC_CTX *ctx, request_t *request,
      fr_value_box_list_t *in, regex_t **preg,\n\t\t\t\t      fr_dcursor_t *out, fr_token_t
      op)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:755,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:756,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:761,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:766,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:767,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:776,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:778,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:782,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:784,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:784,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:784,1
    - Dst: tmpl_regex_flags
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:785,1
    - Dst: xlat_regex_do_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 789
    functionName: xlat_regex_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - RPEDEBUG
    - talloc_free
    - fr_value_box_list_concat_as_string
    - fr_sbuff_used
    - regex_compile
    - talloc_get_type_abort
    - fr_assert
    - xlat_regex_do_op
    - talloc_get_type_abort_const
    - XLAT_RESULT_SUCCESS
    - tmpl_regex_flags
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_regex_resume(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:796,1
    - Dst: tmpl_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:804,1
    - Dst: xlat_regex_do_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:806,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:809,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:809,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:809,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:810,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:812,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:814,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:818,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    - op
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 822
    functionName: xlat_regex_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - fr_value_box_list_init
    - talloc_free
    - tmpl_xlat
    - tmpl_regex
    - talloc_zero
    - xlat_regex_do_op
    - talloc_get_type_abort_const
    - unlang_interpret_frame_talloc_ctx
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_regex_op(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *in,\n\t\t\t\t   fr_token_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 831
    functionName: XLAT_REGEX_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGEX_FUNC(_name, _op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:844,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:845,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:846,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:848,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:851,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:852,1
    - Dst: xlat_regex_do_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:856,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:857,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 860
    functionName: xlat_func_regex_search
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - talloc_free
    - fr_value_box_list_pop_head
    - fr_assert
    - xlat_regex_do_op
    - regex_compile
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_regex_search(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t
      *request, fr_value_box_list_t *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:879,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:883,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:891,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:894,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:896,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:898,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:899,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:905,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:908,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:909,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:910,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:914,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:916,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - out
    - node
    - instance
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    - void*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 917
    functionName: xlat_expr_print_nary
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_print_node
    - xlat_exp_next
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_assert
    - xlat_print
    - FR_SBUFF_IN_STRCPY_RETURN
    - fr_sbuff_used_total
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_expr_print_nary(fr_sbuff_t *out, xlat_exp_t const *node,
      void *instance, fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:894,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:896,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:898,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 900
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_IN_STRCPY_RETURN
    - xlat_print_node
    - xlat_exp_next
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, child)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:932,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:933,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:946,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:950,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:958,1
    - Dst: xlat_instance_unregister_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:962,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:964,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:965,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:965,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - result
    - parent
    - head
    - sense
    argTypes:
    - bool*
    - xlat_exp_t*
    - xlat_exp_head_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 968
    functionName: xlat_node_matches_bool
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - xlat_exp_next
    - fr_cond_assert
    - fr_value_box_is_truthy
    - tmpl_is_data
    - xlat_exp_set_type
    - xlat_instance_unregister_func
    - tmpl_value
    - fr_value_box_copy
    linkageType: ''
    returnType: bool
    signature: bool xlat_node_matches_bool(bool *result, xlat_exp_t *parent, xlat_exp_head_t
      *head, bool sense)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:977,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:978,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:982,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:983,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:985,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:986,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:987,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:989,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:991,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 993
    functionName: xlat_ungroup
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - talloc_free
    - xlat_exp_next
    - talloc_steal
    - fr_dlist_remove
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void xlat_ungroup(xlat_exp_head_t *head)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1004,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1007,1
    - Dst: xlat_purify_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1019,1
    - Dst: xlat_ungroup
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1025,1
    - Dst: xlat_node_matches_bool
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1034,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1050,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1097,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1098,1
    - Dst: xlat_instance_unregister_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1100,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1101,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1107,1
    - Dst: xlat_aprint
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1107,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1108,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1111,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - node
    - instance
    - request
    argTypes:
    - xlat_exp_t*
    - void*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1116
    functionName: xlat_expr_logical_purify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - xlat_aprint
    - talloc_free
    - talloc_steal
    - xlat_node_matches_bool
    - talloc_get_type_abort
    - fr_assert
    - xlat_instance_unregister_func
    - xlat_exp_set_type
    - xlat_purify_list
    - xlat_exp_set_name_shallow
    - MEM
    - xlat_ungroup
    linkageType: ''
    returnType: int
    signature: int xlat_expr_logical_purify(xlat_exp_t *node, void *instance, request_t
      *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1130,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1131,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1136,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1138,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1139,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1147
    functionName: xlat_logical_process_arg
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - talloc_free
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_logical_process_arg(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t      xlat_ctx_t const *xctx,\n\t\t\t\t\t      request_t
      *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1171,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1177,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1177,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1177,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1186,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1193,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1193,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1195,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1197,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - rctx
    - in
    argTypes:
    - xlat_logical_rctx_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1200
    functionName: xlat_logical_or
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_cond_assert
    - fr_value_box_is_truthy
    - fr_value_box_clear
    - fr_value_box_list_num_elements
    - fr_assert
    - fr_type_is_null
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_copy
    linkageType: ''
    returnType: bool
    signature: bool xlat_logical_or(xlat_logical_rctx_t *rctx, fr_value_box_list_t
      const *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1177,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1177,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1177,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1190
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 6
    functionsReached:
    - fr_assert
    - fr_value_box_is_truthy
    - fr_type_is_leaf
    - fr_type_is_null
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, box)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1209,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1210,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1216,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1217,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1218,1
    - Dst: xlat_logical_or
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1227,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1230,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1243,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1245,1
    - Dst: xlat_logical_process_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1205
    functionDepth: 4
    functionLinenumber: 1205
    functionLinenumberEnd: 1250
    functionName: xlat_logical_or_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_logical_process_arg
    - fr_dcursor_append
    - talloc_free
    - xlat_logical_or
    - talloc_get_type_abort
    - fr_value_box_list_talloc_free
    - talloc_get_type_abort_const
    - XLAT_RESULT_SUCCESS
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_logical_or_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t    xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1275,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1275,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1283,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1297,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1297,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1299,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1301,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - rctx
    - in
    argTypes:
    - xlat_logical_rctx_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1304
    functionName: xlat_logical_and
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_cond_assert
    - fr_value_box_is_truthy
    - fr_value_box_clear
    - fr_assert
    - fr_value_box_list_num_elements
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_copy
    linkageType: ''
    returnType: bool
    signature: bool xlat_logical_and(xlat_logical_rctx_t *rctx, fr_value_box_list_t
      const *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1275,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1275,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1292
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 6
    functionsReached:
    - fr_assert
    - fr_value_box_is_truthy
    - fr_type_is_leaf
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, box)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1313,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1314,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1320,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1321,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1322,1
    - Dst: xlat_logical_and
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1331,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1333,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1337,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1349,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1350,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1353,1
    - Dst: xlat_logical_process_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1309
    functionDepth: 4
    functionLinenumber: 1309
    functionLinenumberEnd: 1358
    functionName: xlat_logical_and_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - xlat_logical_process_arg
    - fr_dcursor_append
    - talloc_free
    - talloc_get_type_abort
    - fr_value_box_list_talloc_free
    - fr_assert
    - talloc_get_type_abort_const
    - XLAT_RESULT_SUCCESS
    - xlat_logical_and
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_logical_and_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t     xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1366,1
    - Dst: xlat_flatten_to_argv
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1378
    functionName: xlat_instantiate_logical
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_flatten_to_argv
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_logical(xlat_inst_ctx_t const *xctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1389,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1391,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1391,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1391,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1398,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1398,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1401,1
    - Dst: xlat_logical_process_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1384
    functionDepth: 4
    functionLinenumber: 1384
    functionLinenumberEnd: 1406
    functionName: xlat_func_logical
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_logical_process_arg
    - fr_value_box_list_init
    - talloc_zero
    - fr_value_box_alloc
    - unlang_interpret_frame_talloc_ctx
    - talloc_get_type_abort_const
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_logical(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1424,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1425,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1433,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1437,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1437,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1438,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1438,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1442,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1442,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1447,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1448,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1449,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    - op
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1455
    functionName: xlat_func_unary_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_type_is_leaf
    - fr_dcursor_append
    - talloc_free
    - fr_strerror_printf
    - REDEBUG
    - fr_value_calc_unary_op
    - fr_type_is_null
    - fr_type_to_str
    - MEM
    - fr_type_is_variable_size
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_unary_op(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request, fr_value_box_list_t *in,
      fr_token_t op)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1464,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1465,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1470,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1470,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1478,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1483
    functionName: xlat_func_unary_not
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - fr_value_box_is_truthy
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_unary_not(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t UNUSED request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unary_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1490
    functionName: xlat_func_unary_minus
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_func_unary_op
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_unary_minus(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unary_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1492
    functionDepth: 2
    functionLinenumber: 1492
    functionLinenumberEnd: 1497
    functionName: xlat_func_unary_complement
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_func_unary_op
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_unary_complement(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t\txlat_ctx_t const *xctx,\n\t\t\t\t\t\trequest_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1517,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1526,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1527,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1533,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1534,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1545,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1548,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1561,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1563,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1581,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1582,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1585
    functionName: xlat_instantiate_expr_rcode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - ERROR
    - xlat_exp_head
    - fr_value_box_cast_in_place
    - talloc_free
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_dlist_remove
    - fr_assert
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_expr_rcode(xlat_inst_ctx_t const *xctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1589,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1592,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1593,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1596,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1597,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1601,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1601,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1603,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - out
    - node
    - instance
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1606
    functionName: xlat_expr_print_rcode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - xlat_print_node
    - xlat_exp_head
    - xlat_exp_foreach
    - fr_table_str_by_value
    - FR_SBUFF_IN_STRCPY_RETURN
    - fr_sbuff_used_total
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_expr_print_rcode(fr_sbuff_t *out, xlat_exp_t const *node,
      void *instance, UNUSED fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1626,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1636,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1638,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1639,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1645,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1646,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1648,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1653,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1654,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1656,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1656,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1661
    functionName: xlat_func_expr_rcode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_dcursor_append
    - XLAT_ARGS
    - REDEBUG
    - fr_table_str_by_value
    - RDEBUG3
    - fr_value_box_alloc
    - fr_table_value_by_str
    - talloc_get_type_abort_const
    - fr_value_box_list_num_elements
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_expr_rcode(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    \t  xlat_ctx_t const *xctx,\n\t\t\t\t     \t  request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1688,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1688,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1689,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1689,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1690,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1696
    functionName: xlat_func_rcode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup
    - talloc_free
    - fr_dcursor_append
    - fr_table_str_by_value
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_rcode(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, UNUSED
      fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1712,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1716,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1718,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1718,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - node
    - instance
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    - void*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1722
    functionName: xlat_expr_print_exists
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_STRCPY_RETURN
    - xlat_print_node
    - xlat_exp_head
    - fr_sbuff_used_total
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_expr_print_exists(fr_sbuff_t *out, xlat_exp_t const
      *node, void *instance, fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1729,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1732,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1734,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1735,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1741,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1742,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1746,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1751,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1756
    functionName: xlat_instantiate_exists
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - talloc_free
    - fr_dlist_pop_head
    - talloc_steal
    - talloc_get_type_abort
    - fr_assert
    - fr_strerror_const
    - tmpl_contains_attr
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_exists(xlat_inst_ctx_t const *xctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1766,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1766,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1768,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1771,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1772,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - vpt
    - do_free
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - request_t*
    - tmpl_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1775
    functionName: xlat_attr_exists
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_const_free
    - fr_value_box_alloc
    - tmpl_dcursor_clear
    - tmpl_dcursor_init
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_attr_exists(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     request_t *request, tmpl_t const *vpt, bool do_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1790,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1795,1
    - Dst: xlat_attr_exists
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1786
    functionDepth: 2
    functionLinenumber: 1786
    functionLinenumberEnd: 1798
    functionName: xlat_func_exists
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort_const
    - xlat_attr_exists
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_exists(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _op
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1809
    functionName: XLAT_REGISTER_BINARY_OP
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_BINARY_OP(_op, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _op
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1820
    functionName: XLAT_REGISTER_BINARY_CMP
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_BINARY_CMP(_op, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _op
    - ','
    - _name
    - ','
    - _func_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1831
    functionName: XLAT_REGISTER_NARY_OP
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_NARY_OP(_op, _name, _func_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _op
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1842
    functionName: XLAT_REGISTER_REGEX_OP
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_REGEX_OP(_op, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _xlat
    - ','
    - _func
    - ','
    - _arg
    - ','
    - _ret_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1849
    functionName: XLAT_REGISTER_BOOL
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_BOOL(_xlat, _func, _arg, _ret_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _op
    - ','
    - _xlat
    - ','
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1858
    functionName: XLAT_REGISTER_UNARY
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_UNARY(_op, _xlat, _func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1863,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1864,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1865,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1866,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1867,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1868,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1869,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1870,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1871,1
    - Dst: XLAT_REGISTER_BINARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1872,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1874,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1875,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1876,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1877,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1878,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1879,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1880,1
    - Dst: XLAT_REGISTER_BINARY_CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1881,1
    - Dst: XLAT_REGISTER_REGEX_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1883,1
    - Dst: XLAT_REGISTER_REGEX_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1884,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1886,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1886,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1887,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1888,1
    - Dst: XLAT_REGISTER_NARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1896,1
    - Dst: XLAT_REGISTER_NARY_OP
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1897,1
    - Dst: XLAT_REGISTER_BOOL
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1899,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1900,1
    - Dst: xlat_func_print_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1901,1
    - Dst: XLAT_REGISTER_BOOL
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1903,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1905,1
    - Dst: xlat_func_print_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1906,1
    - Dst: XLAT_REGISTER_BOOL
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1908,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1909,1
    - Dst: xlat_func_print_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1910,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1911,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1913,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1913,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1914,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1915,1
    - Dst: XLAT_REGISTER_UNARY
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1922,1
    - Dst: XLAT_REGISTER_UNARY
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1923,1
    - Dst: XLAT_REGISTER_UNARY
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:1924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 1927
    functionName: xlat_register_expressions
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_instantiate_set
    - XLAT_REGISTER_BINARY_OP
    - XLAT_REGISTER_NARY_OP
    - XLAT_REGISTER_REGEX_OP
    - XLAT_REGISTER_BOOL
    - xlat_func_args_set
    - xlat_func_print_set
    - XLAT_REGISTER_UNARY
    - XLAT_REGISTER_BINARY_CMP
    - xlat_func_flags_set
    - xlat_func_register
    linkageType: ''
    returnType: int
    signature: int xlat_register_expressions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 1989
    functionName: P
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 216
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2044
    functionDepth: 0
    functionLinenumber: 2044
    functionLinenumberEnd: 2048
    functionName: fr_sbuff_skip_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_skip_whitespace(_x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2090,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2093,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2093,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2093,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2093,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2100,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2101,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2102,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2107,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2108,1
    - Dst: fr_sbuff_is_digit
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2113,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2115,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2116,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2121,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2123,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2128,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2132,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2133,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2134,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2135,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2136,1
    - Dst: tokenize_field
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2146,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2154,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2154,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2154,1
    - Dst: xlat_exp_set_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2155,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2156,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2156,1
    - Dst: tokenize_field
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2159,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2160,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2161,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2165,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2166,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2169,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2178,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 8
    argNames:
    - head
    - out
    - in
    - p_rules
    - t_rules
    - bracket_rules
    - out_c
    - cond
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    - fr_sbuff_parse_rules_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2084
    functionDepth: 2
    functionLinenumber: 2084
    functionLinenumberEnd: 2179
    functionName: tokenize_unary
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_current
    - strlen
    - xlat_exp_head_alloc
    - MEM
    - xlat_func_find
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_remaining
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_is_digit
    - xlat_func_append_arg
    - fr_sbuff_skip_whitespace
    - xlat_exp_set_func
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - fr_box_strvalue_len
    - XLAT_DEBUG
    - fr_sbuff_next_if_char
    - talloc_free
    - fr_sbuff_is_char
    - tokenize_field
    - xlat_exp_alloc
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tokenize_unary(xlat_exp_head_t *head, xlat_exp_t **out,
      fr_sbuff_t *in,\n\t\t\t\tfr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules,\n\t\t\t\tfr_sbuff_parse_rules_t const *bracket_rules, char *out_c,
      bool cond)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2196,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2196,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2197,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2197,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2199,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2208,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2209,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2211,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2211,1
    - Dst: xlat_exp_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2212,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2212,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2214,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2217,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2218,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - type
    - child
    argTypes:
    - TALLOC_CTX*
    - fr_type_t
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2187
    functionDepth: 2
    functionLinenumber: 2187
    functionLinenumberEnd: 2222
    functionName: expr_cast_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - xlat_exp_set_name
    - talloc_steal
    - xlat_func_append_arg
    - xlat_exp_alloc
    - fr_assert
    - strlen
    - fr_type_to_str
    - MEM
    - xlat_func_find
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *expr_cast_alloc(TALLOC_CTX *ctx, fr_type_t type, xlat_exp_t
      *child)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2226,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2229,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2238,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2254,1
    - Dst: fr_sbuff_is_in_charset
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2255,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2256,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2256,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2257,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2269,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2270,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2270,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2271,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2274,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - cast
    - in
    argTypes:
    - fr_type_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2224
    functionDepth: 1
    functionLinenumber: 2224
    functionLinenumberEnd: 2276
    functionName: expr_cast_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_by_longest_prefix
    - fr_type_is_leaf
    - fr_strerror_printf
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_adv_past_whitespace
    - FR_SBUFF
    - fr_sbuff_is_in_charset
    - fr_sbuff_next_if_char
    - fr_type_to_str
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t expr_cast_from_substr(fr_type_t *cast, fr_sbuff_t *in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2287,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2292,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2292,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2292,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2292,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2294,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2299,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2304,1
    - Dst: fr_sbuff_is_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2308,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2309,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2313,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2320,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2320,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2326,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2329,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2330,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2340,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2341,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2348,1
    - Dst: tmpl_regex_flags_substr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2349,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2350,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2351,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2354,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2360,1
    - Dst: tmpl_regex_compile
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2361,1
    - Dst: xlat_exp_set_vpt
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2366,1
    - Dst: XLAT_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2368,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2371,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - head
    - out
    - in
    - t_rules
    - bracket_rules
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_sbuff_t*
    - tmpl_rules_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2372
    functionName: tokenize_regex_rhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_current
    - fr_sbuff_is_str
    - MEM
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_remaining
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_skip_whitespace
    - fr_sbuff_marker
    - FR_SBUFF_ERROR_RETURN
    - fr_box_strvalue_len
    - fr_sbuff_advance
    - XLAT_DEBUG
    - xlat_exp_set_vpt
    - tmpl_regex_flags_substr
    - fr_sbuff_next_if_char
    - tmpl_regex_compile
    - talloc_free
    - XLAT_VERIFY
    - tmpl_contains_xlat
    - xlat_exp_alloc
    - tmpl_afrom_substr
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tokenize_regex_rhs(xlat_exp_head_t *head, xlat_exp_t **out,
      fr_sbuff_t *in,\n\t\t\t\t    tmpl_rules_t const *t_rules,\n\t\t\t\t    fr_sbuff_parse_rules_t
      const *bracket_rules)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2381,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2383,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2386,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2387,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2388,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2389,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2398,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2398,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2405,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2406,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2408,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2408,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2408,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2413,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2413,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2413,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2418,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2419,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2419,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2421,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - head
    - out
    - in
    - terminals
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2375
    functionDepth: 2
    functionLinenumber: 2375
    functionLinenumberEnd: 2426
    functionName: tokenize_rcode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_terminal
    - fr_sbuff_start
    - fr_value_box_init
    - fr_sbuff_out_by_longest_prefix
    - fr_sbuff_uint8
    - fr_sbuff_is_char
    - fr_value_box_bstrndup
    - xlat_func_append_arg
    - fr_assert
    - xlat_exp_alloc
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - fr_strerror_const
    - MEM
    - xlat_func_find
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tokenize_rcode(xlat_exp_head_t *head, xlat_exp_t **out, fr_sbuff_t
      *in, fr_sbuff_term_t const *terminals)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2438,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2446,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2446,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2446,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2446,1
    - Dst: expr_cast_from_substr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2451,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2451,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2475,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2489,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2493,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2494,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2495,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2496,1
    - Dst: tokenize_expression
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2503,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2504,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2507,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2508,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2509,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2520,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2521,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2531,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2532,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2534,1
    - Dst: tokenize_rcode
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2544,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2545,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2548,1
    - Dst: xlat_tokenize_word
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2555,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2556,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2558,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2568,1
    - Dst: xlat_exp_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2579,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2579,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2579,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2590,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2591,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2594,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2597,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2597,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2599,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2607,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2609,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2610,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2611,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2617,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2620,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2621,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2621,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2630,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2633,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2634,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2645,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2650,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2657,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2661,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2662,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2664,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2665,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2667,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2668,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2669,1
    - Dst: tmpl_debug
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2676,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2677,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2681,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2681,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2690,1
    - Dst: expr_cast_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2690,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2696,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2697,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 146
    argCount: 8
    argNames:
    - head
    - out
    - in
    - p_rules
    - t_rules
    - bracket_rules
    - out_c
    - cond
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    - fr_sbuff_parse_rules_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2432
    functionDepth: 3
    functionLinenumber: 2432
    functionLinenumberEnd: 2698
    functionName: tokenize_field
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 1
    functionsReached:
    - tmpl_cast_set
    - fr_type_is_leaf
    - fr_value_box_cast_in_place
    - fr_strerror_printf
    - tokenize_rcode
    - tmpl_attr_tail_da
    - fr_sbuff_current
    - tmpl_is_attr_unresolved
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_is_data_unresolved
    - MEM
    - xlat_exp_set_name
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - FR_SBUFF
    - tmpl_is_attr
    - fr_strerror_const
    - fr_sbuff_skip_whitespace
    - fr_sbuff_out_by_longest_prefix
    - fr_sbuff_marker
    - tokenize_expression
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - tmpl_contains_regex
    - fr_box_strvalue_len
    - XLAT_DEBUG
    - tmpl_rules_cast
    - xlat_tokenize_word
    - tmpl_debug
    - fr_sbuff_next_if_char
    - expr_cast_from_substr
    - talloc_free
    - tmpl_contains_xlat
    - fr_sbuff_is_char
    - tmpl_cast_in_place
    - expr_cast_alloc
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tokenize_field(xlat_exp_head_t *head, xlat_exp_t **out,
      fr_sbuff_t *in,\n\t\t\t\tfr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules,\n\t\t\t\tfr_sbuff_parse_rules_t const *bracket_rules, char *out_c,
      bool cond)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2747,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2749,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2753,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2755,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2756,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2757,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2737
    functionDepth: 1
    functionLinenumber: 2737
    functionLinenumberEnd: 2764
    functionName: valid_type
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - tmpl_is_list
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_dict_internal
    - tmpl_is_attr
    - fr_strerror_const
    linkageType: ''
    returnType: bool
    signature: bool valid_type(xlat_exp_t *node)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2786,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2789,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2789,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2789,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2789,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2791,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2793,1
    - Dst: tokenize_unary
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2798,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2799,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2802,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2804,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2810,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2815,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2821,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2831,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2833,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2834,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2839,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2844,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2849,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2854,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2854,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2854,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2854,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2855,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2857,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2858,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2859,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2860,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2866,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2867,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2868,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2869,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2870,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2873,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2882,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2890,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2892,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2893,1
    - Dst: fr_sbuff_skip_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2896,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2897,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2902,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2902,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2902,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2902,1
    - Dst: tmpl_cast_get
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2911,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2913,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2914,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2915,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2921,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2931,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2932,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2933,1
    - Dst: tokenize_regex_rhs
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2954,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2965,1
    - Dst: fr_sbuff_is_str_literal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2966,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2967,1
    - Dst: tokenize_expression
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2970,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2973,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2974,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2983,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2984,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:2988,1
    - Dst: valid_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3008,1
    - Dst: valid_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3009,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3010,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3011,1
    - Dst: xlat_purify_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3023,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3036,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3036,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3036,1
    - Dst: xlat_exp_set_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3037,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3039,1
    - Dst: xlat_func_append_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3040,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3042,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3042,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3048,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 155
    argCount: 9
    argNames:
    - head
    - out
    - in
    - p_rules
    - t_rules
    - prev
    - bracket_rules
    - input_rules
    - cond
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    - fr_token_t
    - fr_sbuff_parse_rules_t*
    - fr_sbuff_parse_rules_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 2776
    functionDepth: 3
    functionLinenumber: 2776
    functionLinenumberEnd: 3060
    functionName: tokenize_expression
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 7
    functionsReached:
    - tmpl_cast_set
    - fr_value_box_cast_in_place
    - fr_type_is_structural
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - fr_sbuff_current
    - valid_type
    - tokenize_unary
    - strlen
    - MEM
    - xlat_func_find
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_remaining
    - FR_SBUFF
    - tmpl_is_attr
    - fr_strerror_const
    - xlat_func_append_arg
    - fr_sbuff_skip_whitespace
    - xlat_exp_set_func
    - fr_sbuff_out_by_longest_prefix
    - xlat_exp_head
    - fr_sbuff_marker
    - tokenize_expression
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - fr_box_strvalue_len
    - XLAT_DEBUG
    - xlat_purify_op
    - fr_sbuff_extend
    - fr_sbuff_is_terminal
    - tokenize_regex_rhs
    - talloc_free
    - xlat_exp_foreach
    - fr_sbuff_is_char
    - tmpl_cast_get
    - fr_sbuff_is_str_literal
    - xlat_exp_alloc
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tokenize_expression(xlat_exp_head_t *head, xlat_exp_t **out,
      fr_sbuff_t *in,\n\t\t\t\t     fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules,\n\t\t\t\t     fr_token_t prev, fr_sbuff_parse_rules_t const
      *bracket_rules,\n\t\t\t\t     fr_sbuff_parse_rules_t const *input_rules, bool
      cond)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3102,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3102,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3103,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3103,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3109,1
    - Dst: fr_sbuff_terminals_amerge
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3109,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3118,1
    - Dst: fr_sbuff_terminals_amerge
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3118,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3122,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3122,1
    - Dst: tokenize_expression
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3125,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3126,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3127,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3130,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3144,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3145,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3152,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3153,1
    - Dst: xlat_exists_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3153,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - ctx
    - out
    - in
    - p_rules
    - t_rules
    - cond
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3087
    functionDepth: 4
    functionLinenumber: 3087
    functionLinenumberEnd: 3161
    functionName: xlat_tokenize_expression_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 0
    functionsReached:
    - xlat_exp_insert_tail
    - talloc_free
    - tokenize_expression
    - talloc_zero
    - xlat_exists_alloc
    - xlat_exp_head_alloc
    - tmpl_is_data_unresolved
    - fr_strerror_const
    - MEM
    - tmpl_contains_attr
    - fr_sbuff_terminals_amerge
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t xlat_tokenize_expression_internal(TALLOC_CTX *ctx, xlat_exp_head_t
      **out, fr_sbuff_t *in,\n\t\t\t\t\t\t   fr_sbuff_parse_rules_t const *p_rules,
      tmpl_rules_t const *t_rules, bool cond)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xlat_tokenize_expression_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3168,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3179,1
    - Dst: xlat_finalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3183,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3189
      start: 3163
    functionDepth: 5
    functionLinenumber: 3163
    functionLinenumberEnd: 3189
    functionName: xlat_tokenize_expression
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 5
    functionsReached:
    - TALLOC_FREE
    - fr_strerror_const
    - xlat_tokenize_expression_internal
    - xlat_finalize
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t
      **out, fr_sbuff_t *in,\n\t\t\t\t   fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xlat_tokenize_expression_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3196,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3203,1
    - Dst: xlat_finalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3207,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3213
      start: 3191
    functionDepth: 5
    functionLinenumber: 3191
    functionLinenumberEnd: 3213
    functionName: xlat_tokenize_condition
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 4
    functionsReached:
    - TALLOC_FREE
    - fr_strerror_const
    - xlat_tokenize_expression_internal
    - xlat_finalize
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t xlat_tokenize_condition(TALLOC_CTX *ctx, xlat_exp_head_t
      **out, fr_sbuff_t *in,\n\t\t\t\t  fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3236,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3242,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3247,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3248,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_expr.c:3256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - head
    - out
    argTypes:
    - xlat_exp_head_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3226
    functionDepth: 1
    functionLinenumber: 3226
    functionLinenumberEnd: 3258
    functionName: xlat_is_truthy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_expr.c
    functionUses: 1
    functionsReached:
    - xlat_exp_head
    - xlat_exp_next
    - fr_value_box_is_truthy
    - tmpl_is_data
    - tmpl_value
    linkageType: ''
    returnType: bool
    signature: bool xlat_is_truthy(xlat_exp_head_t const *head, bool *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:43,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:44,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: _request_init_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_set
    - RDEBUG3
    - fr_heap_insert
    linkageType: ''
    returnType: void
    signature: void _request_init_internal(request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:67,1
    - Dst: unlang_interpret_is_resumable
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:67,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 72
    functionName: _request_done_external
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - RDEBUG3
    - fr_assert_msg
    - unlang_interpret_is_resumable
    linkageType: ''
    returnType: void
    signature: void _request_done_external(request_t *request, UNUSED rlm_rcode_t
      rcode, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: _request_done_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - RDEBUG3
    linkageType: ''
    returnType: void
    signature: void _request_done_internal(request_t *request, UNUSED rlm_rcode_t
      rcode, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:86,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - request
    - rlm_rcode_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: _request_done_detached
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - RDEBUG3
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _request_done_detached(request_t *request, UNUSED rlm_rcode_t
      rcode, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:103,1
    - Dst: request_detach
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:105,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: _request_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 1
    functionsReached:
    - request_detach
    - RDEBUG3
    - RPEDEBUG
    linkageType: ''
    returnType: void
    signature: void _request_detach(request_t *request, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:115,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: _request_runnable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - fr_heap_insert
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void _request_runnable(request_t *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: _request_yield
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - RDEBUG3
    linkageType: ''
    returnType: void
    signature: void _request_yield(request_t *request, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: _request_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - RDEBUG3
    linkageType: ''
    returnType: void
    signature: void _request_resume(request_t *request, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: _request_scheduled
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - fr_heap_entry_inserted
    linkageType: ''
    returnType: bool
    signature: bool _request_scheduled(request_t const *request, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:153,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:153,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:154,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:154,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:158,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:158,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:160,1
    - Dst: unlang_interpret_init
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - el
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: unlang_interpret_synchronous_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 0
    functionsReached:
    - fr_heap_talloc_alloc
    - fr_event_list_alloc
    - talloc_zero
    - MEM
    - unlang_interpret_init
    linkageType: ''
    returnType: unlang_interpret_synchronous_t
    signature: unlang_interpret_synchronous_t *unlang_interpret_synchronous_alloc(TALLOC_CTX
      *ctx, fr_event_list_t *el)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_get
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:206,1
    - Dst: unlang_interpret_synchronous_alloc
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:209,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:210,1
    - Dst: unlang_interpret
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:214,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:216,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:226,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:227,1
    - Dst: fr_event_list_t*::tl::time
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:227,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:229,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:233,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:242,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:243,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:257,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:259,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:268,1
    - Dst: unlang_interpret
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:269,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:270,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:271,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:279,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:279,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:282,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - el
    - request
    argTypes:
    - fr_event_list_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 287
    functionName: unlang_interpret_synchronous
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret_synchronous.c
    functionUses: 1
    functionsReached:
    - DEBUG4
    - unlang_interpret_synchronous_alloc
    - fr_event_service
    - unlang_interpret_set
    - DEBUG3
    - talloc_free
    - unlang_interpret
    - fr_heap_pop
    - fr_heap_num_elements
    - RPERROR
    - fr_table_str_by_value
    - RDEBUG4
    - fr_event_corral
    - unlang_interpret_get
    - fr_event_list_t*::tl::time
    linkageType: ''
    returnType: rlm_rcode_t
    signature: rlm_rcode_t unlang_interpret_synchronous(fr_event_list_t *el, request_t
      *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:41,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - UNUSED*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: unlang_transaction_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_edit_list_abort
    linkageType: ''
    returnType: void
    signature: void unlang_transaction_signal(UNUSED request_t *request, unlang_stack_frame_t
      *frame, fr_signal_t action)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:59,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:62,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:75,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:83,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - UNUSED*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 98
    functionName: unlang_transaction_final
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_edit_list_commit
    - talloc_get_type_abort
    - fr_edit_list_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_transaction_final(UNUSED unlang_result_t *p_result,
      UNUSED request_t *request,\n\t\t\t\t\t\tunlang_stack_frame_t *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:102,1
    - Dst: unlang_interpret_edit_list
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:105,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:107,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:107,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:109,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: unlang_transaction
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 0
    functionsReached:
    - frame_repeat
    - unlang_interpret_push_children
    - talloc_get_type_abort
    - fr_edit_list_alloc
    - unlang_interpret_edit_list
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_transaction(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 135
    functionName: unlang_interpret_edit_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_edit_list_t
    signature: fr_edit_list_t *unlang_interpret_edit_list(request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:163,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:166,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:169,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:170,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:175,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:176,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:177,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:178,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:185,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:187,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:188,1
    - Dst: transaction_ok
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:192,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:196,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:199,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:200,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:205,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:210,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:214,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 223
    functionName: transaction_ok
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - cf_item_is_section
    - cf_pair_value
    - cf_log_err
    - cf_item_next
    - strcmp
    - fr_table_value_by_str
    - cf_item_is_pair
    - transaction_ok
    - cf_section_name2_quote
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: bool
    signature: bool transaction_ok(CONF_SECTION *cs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:227,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:232,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:233,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:234,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:234,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:241,1
    - Dst: transaction_ok
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:243,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:245,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:248,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:249,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:255,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:256,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:257,1
    - Dst: unlang_compile_ctx_copy
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:263,1
    - Dst: unlang_compile_children
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 271
    functionName: unlang_compile_transaction
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 0
    functionsReached:
    - unlang_compile_children
    - unlang_compile_ctx_copy
    - MOD_PRIORITY
    - unlang_group_to_generic
    - cf_section_name2
    - DOC_KEYWORD_REF
    - cf_item_next
    - cf_section_name1
    - transaction_ok
    - unlang_group_allocate
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_transaction(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/transaction.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: unlang_transaction_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_transaction_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: FUNC
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC(_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: REPEAT
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT(_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:77,1
    - Dst: unlang_frame_state_func_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/function.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: unlang_function_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_frame_state_func_t*::signal
    linkageType: ''
    returnType: void
    signature: "void unlang_function_signal(request_t *request,\n\t\t\t\t   unlang_stack_frame_t
      *frame, fr_signal_t action)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:106,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:111,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/function.c:112,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/function.c:118,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:118,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:124,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/unlang/function.c:126,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:127,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/function.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: call_with_result_repeat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - frame_repeat
    - talloc_get_type_abort
    - func
    - RDEBUG4
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t call_with_result_repeat(unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:152,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/function.c:156,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:156,1
    - Dst: unlang_frame_state_func_t*::func::wres
      Src: /src/freeradius-server/src/lib/unlang/function.c:157,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:158,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:160,1
    - Dst: call_with_result_repeat
      Src: /src/freeradius-server/src/lib/unlang/function.c:163,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/function.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 173
    functionName: call_with_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - frame_repeat
    - talloc_get_type_abort
    - FUNC
    - RDEBUG4
    - call_with_result_repeat
    - unlang_frame_state_func_t*::func::wres
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t call_with_result(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:184,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:189,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/function.c:190,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/function.c:196,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:196,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:202,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/unlang/function.c:204,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:205,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/function.c:212,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:213,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/function.c:218,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 228
    functionName: call_no_result_repeat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - frame_repeat
    - talloc_get_type_abort
    - func
    - RDEBUG4
    - fr_assert_msg
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t call_no_result_repeat(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:239,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/function.c:243,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:243,1
    - Dst: unlang_frame_state_func_t*::func::nres
      Src: /src/freeradius-server/src/lib/unlang/function.c:244,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:245,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:247,1
    - Dst: call_no_result_repeat
      Src: /src/freeradius-server/src/lib/unlang/function.c:250,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/function.c:255,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/function.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 268
    functionName: call_no_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - frame_repeat
    - talloc_get_type_abort
    - FUNC
    - call_no_result_repeat
    - fr_assert_msg
    - RDEBUG4
    - unlang_frame_state_func_t*::func::nres
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t call_no_result(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/function.c:286,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:290,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:291,1
    - Dst: repeatable_clear
      Src: /src/freeradius-server/src/lib/unlang/function.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 297
    functionName: unlang_function_clear
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 1
    functionsReached:
    - REPEAT
    - RERROR
    - repeatable_clear
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int unlang_function_clear(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/function.c:320,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - request
    - signal
    - sigmask
    - signal_name
    argTypes:
    - request_t*
    - unlang_function_signal_t
    - fr_signal_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 336
    functionName: _unlang_function_signal_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - RERROR
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int _unlang_function_signal_set(request_t *request, unlang_function_signal_t
      signal, fr_signal_t sigmask, char const *signal_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/function.c:359,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:363,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/function.c:365,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/function.c:366,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:375,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/function.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - request
    - repeat
    - repeat_name
    - type
    argTypes:
    - request_t*
    - void*
    - char*
    - unlang_function_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 380
    functionName: _unlang_function_repeat_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - unlikely
    - RERROR
    - talloc_get_type_abort
    - fr_assert_msg
    - repeatable_set
    linkageType: ''
    returnType: int
    signature: int _unlang_function_repeat_set(request_t *request, void *repeat, char
      const *repeat_name, unlang_function_type_t type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/function.c:399,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/function.c:406,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/function.c:407,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:423,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:425,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/function.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 12
    argNames:
    - p_result
    - request
    - func
    - func_name
    - repeat
    - repeat_name
    - signal
    - sigmask
    - signal_name
    - type
    - top_frame
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    - char*
    - void*
    - char*
    - unlang_function_signal_t
    - fr_signal_t
    - char*
    - unlang_function_type_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 431
    functionName: unlang_function_push_common
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - FRAME_CONF
    - unlang_interpret_push
    - FUNC
    - fr_assert_msg
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_function_push_common(unlang_result_t *p_result,\n\t\t\t\t\t
      \   request_t *request,\n\t\t\t\t\t    void *func,\n\t\t\t\t\t    char const
      *func_name,\n\t\t\t\t\t    void *repeat,\n\t\t\t\t\t    char const *repeat_name,\n\t\t\t\t\t
      \   unlang_function_signal_t signal, fr_signal_t sigmask, char const *signal_name,\n\t\t\t\t\t
      \   unlang_function_type_t type,\n\t\t\t\t\t    bool top_frame,\n\t\t\t\t\t
      \   void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_function_push_common
      Src: /src/freeradius-server/src/lib/unlang/function.c:467,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/function.c:474,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/function.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 11
    argNames:
    - p_result
    - request
    - func
    - func_name
    - repeat
    - repeat_name
    - signal
    - sigmask
    - signal_name
    - top_frame
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_function_with_result_t
    - char*
    - unlang_function_with_result_t
    - char*
    - unlang_function_signal_t
    - fr_signal_t
    - char*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 484
    functionName: _unlang_function_push_with_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - unlikely
    - frame_current
    - unlang_function_push_common
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t _unlang_function_push_with_result(unlang_result_t
      *p_result,\n\t\t\t\t\t\t  request_t *request,\n\t\t\t\t\t\t  unlang_function_with_result_t
      func, char const *func_name,\n\t\t\t\t\t\t  unlang_function_with_result_t repeat,
      char const *repeat_name,\n\t\t\t\t\t\t  unlang_function_signal_t signal, fr_signal_t
      sigmask, char const *signal_name,\n\t\t\t\t\t\t  bool top_frame, void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_function_push_common
      Src: /src/freeradius-server/src/lib/unlang/function.c:517,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/function.c:524,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/function.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 10
    argNames:
    - request
    - func
    - func_name
    - repeat
    - repeat_name
    - signal
    - sigmask
    - signal_name
    - top_frame
    - uctx
    argTypes:
    - request_t*
    - unlang_function_no_result_t
    - char*
    - unlang_function_no_result_t
    - char*
    - unlang_function_signal_t
    - fr_signal_t
    - char*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 534
    functionName: _unlang_function_push_no_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - unlikely
    - frame_current
    - unlang_function_push_common
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t _unlang_function_push_no_result(request_t *request,\n\t\t\t\t\t\tunlang_function_no_result_t
      func, char const *func_name,\n\t\t\t\t\t\tunlang_function_no_result_t repeat,
      char const *repeat_name,\n\t\t\t\t\t\tunlang_function_signal_t signal, fr_signal_t
      sigmask, char const *signal_name,\n\t\t\t\t\t\tbool top_frame, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/function.c:541,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/function.c:543,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:544,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/function.c:544,1
    - Dst: FUNC
      Src: /src/freeradius-server/src/lib/unlang/function.c:544,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:545,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/function.c:545,1
    - Dst: REPEAT
      Src: /src/freeradius-server/src/lib/unlang/function.c:545,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/function.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - request
    - frame
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 547
    functionName: unlang_function_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - REPEAT
    - RDEBUG2
    - FUNC
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_function_dump(request_t *request, unlang_stack_frame_t
      *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/function.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 566
    functionName: unlang_function_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/function.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_function_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: unlang_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlang_list_foreach(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:266,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:267,1
    - Dst: MOD_ACTION_VALID
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - unlang_compile_ctx_t*
    - unlang_compile_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: unlang_compile_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached:
    - fr_assert
    - MOD_ACTION_VALID
    linkageType: ''
    returnType: void
    signature: void unlang_compile_ctx_copy(unlang_compile_ctx_t *dst, unlang_compile_ctx_t
      const *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:276,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:277,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:277,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - rules
    argTypes:
    - tmpl_attr_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: unlang_attr_rules_verify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - fr_dict_internal
    linkageType: ''
    returnType: int
    signature: int unlang_attr_rules_verify(tmpl_attr_rules_t const *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:285,1
    - Dst: unlang_attr_rules_verify
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rules
    argTypes:
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: unlang_rules_verify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - unlang_attr_rules_verify
    - fr_cond_assert_msg
    linkageType: ''
    returnType: int
    signature: int unlang_rules_verify(tmpl_rules_t const *rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rules
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: RULES_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RULES_VERIFY(_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: debug_braces
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: debug_braces(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 487
    functionName: repeatable_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repeatable_set(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 488
    functionName: top_frame_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void top_frame_set(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: yielded_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yielded_set(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 490
    functionName: unwind_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unwind_set(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 492
    functionName: repeatable_clear
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void repeatable_clear(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 493
    functionName: top_frame_clear
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void top_frame_clear(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 494
    functionName: yielded_clear
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yielded_clear(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 495
    functionName: unwind_clear
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unwind_clear(unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    functionName: is_repeatable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_repeatable(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 498
    functionName: is_top_frame
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_top_frame(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 499
    functionName: is_yielded
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_yielded(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 500
    functionName: is_unwinding
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unwinding(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 501
    functionName: is_private_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_private_result(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - instruction
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 503
    functionName: _instruction_has_debug_braces
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _instruction_has_debug_braces(unlang_t const *instruction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: _frame_has_debug_braces
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _frame_has_debug_braces(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _thing
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: has_debug_braces
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_debug_braces(_thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 512
    functionName: is_rcode_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_rcode_set(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: is_cancellable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_cancellable(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 514
    functionName: is_break_point
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_break_point(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 515
    functionName: is_return_point
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_return_point(unlang_stack_frame_t const *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: is_continue_point
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_continue_point(unlang_stack_frame_t const *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - stack
    - flag
    argTypes:
    - unlang_stack_t*
    - unlang_frame_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: unlang_frame_by_flag
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int unlang_frame_by_flag(unlang_stack_t *stack, unlang_frame_flag_t
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - stack
    - flag
    argTypes:
    - unlang_stack_t*
    - unlang_op_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 560
    functionName: unlang_frame_by_op_flag
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int unlang_frame_by_op_flag(unlang_stack_t *stack, unlang_op_flag_t
      flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:576,1
    - Dst: is_cancellable
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:580,1
    - Dst: unwind_set
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - stack
    - to_depth
    argTypes:
    - unlang_stack_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 585
    functionName: unwind_to_depth
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached:
    - is_cancellable
    - fr_cond_assert
    - unwind_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unwind_to_depth(unlang_stack_t *stack, unsigned int
      to_depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlang_frame_by_op_flag
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:603,1
    - Dst: unwind_to_depth
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - depth_p
    - stack
    - flag
    argTypes:
    - unsigned int*
    - unlang_stack_t*
    - unlang_op_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 614
    functionName: unwind_to_op_flag
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - unwind_to_depth
    - unlang_frame_by_op_flag
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unwind_to_op_flag(unsigned int *depth_p, unlang_stack_t
      *stack, unlang_op_flag_t flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 621
    functionName: frame_current
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unlang_stack_frame_t
    signature: unlang_stack_frame_t *frame_current(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 628
    functionName: stack_depth_current
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stack_depth_current(request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlang_frame_perf_init
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:645,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:663,1
    - Dst: _talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:663,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:673,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:673,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:676,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:681,1
    - Dst: _talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - stack
    - frame
    argTypes:
    - unlang_stack_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 687
    functionName: frame_state_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached:
    - _talloc_zero
    - unlang_frame_perf_init
    - talloc_set_name_const
    - talloc_pool
    - MEM
    - _talloc_zero_pooled_object
    linkageType: ''
    returnType: void
    signature: void frame_state_init(unlang_stack_t *stack, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_frame_perf_cleanup
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:694,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:700,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:702,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - frame
    argTypes:
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: frame_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - unlang_frame_perf_cleanup
    - TALLOC_FREE
    - talloc_free_children
    linkageType: ''
    returnType: void
    signature: void frame_cleanup(unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: frame_cleanup
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:712,1
    - Dst: unlang_list_next
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:717,1
    - Dst: frame_state_init
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - stack
    - frame
    argTypes:
    - unlang_stack_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 726
    functionName: frame_next
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached:
    - frame_state_init
    - frame_cleanup
    - unlang_list_next
    linkageType: ''
    returnType: void
    signature: void frame_next(unlang_stack_t *stack, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:737,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:748,1
    - Dst: is_repeatable
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:748,1
    - Dst: unlang_stack_frame_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:749,1
    - Dst: repeatable_clear
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:750,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:760,1
    - Dst: frame_cleanup
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - request
    - stack
    argTypes:
    - request_t*
    - unlang_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 772
    functionName: frame_pop
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached:
    - is_repeatable
    - is_unwinding
    - TALLOC_FREE
    - unlang_stack_frame_t*::signal
    - repeatable_clear
    - fr_assert
    - frame_cleanup
    linkageType: ''
    returnType: void
    signature: void frame_pop(request_t *request, unlang_stack_t *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - frame
    - process
    argTypes:
    - unlang_stack_frame_t*
    - unlang_process_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: frame_repeat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 9
    functionsReached:
    - repeatable_set
    linkageType: ''
    returnType: void
    signature: void frame_repeat(unlang_stack_frame_t *frame, unlang_process_t process)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: frame_cleanup
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - frame
    - unlang
    argTypes:
    - unlang_stack_frame_t*
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 813
    functionName: frame_set_next
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - frame_cleanup
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t frame_set_next(unlang_stack_frame_t *frame, unlang_t
      const *unlang)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:824,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: unlang_generic_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 11
    functionsReached:
    - fr_assert
    - UNCONST
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_generic_to_group(unlang_t const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 832
    functionName: unlang_group_to_generic
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 2
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_group_to_generic(unlang_group_t const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unlang
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 837
    functionName: unlang_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_list_t
    signature: unlang_list_t *unlang_list(unlang_t *unlang)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_list
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:843,1
    - Dst: unlang_list_entry_init
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unlang
    - parent
    - type
    argTypes:
    - unlang_t*
    - unlang_t*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 845
    functionName: unlang_type_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - unlang_list
    - unlang_list_entry_init
    linkageType: ''
    returnType: void
    signature: void unlang_type_init(unlang_t *unlang, unlang_t *parent, unlang_type_t
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:849,1
    - Dst: unlang_list_init
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang
    - parent
    - type
    argTypes:
    - unlang_t*
    - unlang_t*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 851
    functionName: unlang_group_type_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - unlang_list_init
    - unlang_type_init
    linkageType: ''
    returnType: void
    signature: void unlang_group_type_init(unlang_t *unlang, unlang_t *parent, unlang_type_t
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:855,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:856,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 857
    functionName: unlang_generic_to_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - fr_assert
    - UNCONST
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_tmpl_t
    signature: unlang_tmpl_t *unlang_generic_to_tmpl(unlang_t const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/unlang_priv.h:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 862
    functionName: unlang_tmpl_to_generic
    functionSourceFile: /src/freeradius-server/src/lib/unlang/unlang_priv.h
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_tmpl_to_generic(unlang_tmpl_t const *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:52,1
    - Dst: fr_exec_oneshot_cleanup
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:58,1
    - Dst: unlang_frame_state_tmpl_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: unlang_tmpl_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - fr_exec_oneshot_cleanup
    - talloc_get_type_abort
    - unlang_frame_state_tmpl_t*::signal
    linkageType: ''
    returnType: void
    signature: void unlang_tmpl_signal(request_t *request, unlang_stack_frame_t *frame,
      fr_signal_t action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:79,1
    - Dst: unlang_generic_to_tmpl
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:80,1
    - Dst: tmpl_eval_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:82,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:83,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:87,1
    - Dst: unlang_frame_state_tmpl_t*::resume
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: unlang_tmpl_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - fr_value_box_list_move
    - unlang_frame_state_tmpl_t*::resume
    - talloc_get_type_abort
    - tmpl_eval_cast_in_place
    - unlang_generic_to_tmpl
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_tmpl_resume(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:100,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:108,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:112,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:115,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:115,1
    - Dst: fr_sbuff_trim
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:136,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:138,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:139,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:139,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:140,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:141,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:142,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:144,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:147,1
    - Dst: unlang_tmpl_resume
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 161
    functionName: unlang_tmpl_exec_wait_final
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_value_box_list_init
    - talloc_free
    - fr_sbuff_used
    - talloc_get_type_abort
    - fr_value_box_list_talloc_free
    - fr_assert
    - fr_value_box_alloc
    - fr_value_box_list_insert_head
    - unlang_tmpl_resume
    - fr_value_box_list_empty
    - MEM
    - fr_value_box_from_str
    - fr_sbuff_trim
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_tmpl_exec_wait_final(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t\t   unlang_stack_frame_t *frame)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:169,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:171,1
    - Dst: unlang_tmpl_resume
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: unlang_tmpl_xlat_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - XLAT_RESULT_SUCCESS
    - unlang_tmpl_resume
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_tmpl_xlat_resume(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t       unlang_stack_frame_t *frame)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:187,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:189,1
    - Dst: fr_exec_oneshot
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:191,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:197,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:201,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 205
    functionName: unlang_tmpl_exec_wait_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - frame_repeat
    - talloc_get_type_abort
    - fr_value_box_list_talloc_free
    - fr_exec_oneshot
    - XLAT_RESULT_SUCCESS
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_tmpl_exec_wait_resume(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t\t    unlang_stack_frame_t *frame)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:210,1
    - Dst: unlang_generic_to_tmpl
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:211,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:220,1
    - Dst: tmpl_async_required
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:229,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:229,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:230,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:231,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:241,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:242,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:246,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:246,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:251,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:253,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 259
    functionName: unlang_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - unlang_xlat_push
    - fr_value_box_list_init
    - RPEDEBUG
    - frame_repeat
    - tmpl_contains_xlat
    - tmpl_xlat
    - talloc_get_type_abort
    - tmpl_async_required
    - fr_assert
    - tmpl_eval
    - tmpl_is_exec
    - unlang_generic_to_tmpl
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_tmpl(unlang_result_t *p_result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:299,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:300,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:300,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:308,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:308,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:309,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:309,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:312,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:312,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:314,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:314,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:319,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:324,1
    - Dst: unlang_tmpl_to_generic
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:324,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:325,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:328,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:334,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:347,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:347,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 7
    argNames:
    - ctx
    - p_result
    - out
    - request
    - tmpl
    - args
    - top_frame
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - fr_value_box_list_t*
    - request_t*
    - tmpl_t*
    - unlang_tmpl_args_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 352
    functionName: unlang_tmpl_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 12
    functionsReached:
    - unlang_xlat_push
    - tmpl_needs_resolving
    - REDEBUG
    - unlang_interpret_push
    - MEM
    - talloc_get_type_abort
    - fr_time_delta_ispos
    - tmpl_is_xlat
    - fr_value_box_list_init
    - fr_assert
    - tmpl_contains_regex
    - tmpl_rules_cast
    - fr_box_strvalue_len
    - fr_time_delta_from_sec
    - unlang_type_init
    - unlang_tmpl_to_generic
    - FRAME_CONF
    - tmpl_xlat
    - talloc
    - repeatable_set
    linkageType: ''
    returnType: int
    signature: "int unlang_tmpl_push(TALLOC_CTX *ctx, unlang_result_t *p_result, fr_value_box_list_t
      *out, request_t *request,\n\t\t     tmpl_t const *tmpl, unlang_tmpl_args_t *args,
      bool top_frame)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:356,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:359,1
    - Dst: unlang_generic_to_tmpl
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:361,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - request
    - frame
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: unlang_tmpl_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - unlang_generic_to_tmpl
    - RDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_tmpl_dump(request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/tmpl.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: unlang_tmpl_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_tmpl_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:92,1
    - Dst: tmpl_set_dict_def
      Src: /src/freeradius-server/src/lib/unlang/compile.c:98,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/compile.c:103,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - vpt_p
    - ci
    - dict
    argTypes:
    - UNUSED
    - tmpl_t**
    - CONF_ITEM*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: pass2_fixup_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - TMPL_VERIFY
    - tmpl_resolve
    - tmpl_set_dict_def
    - cf_log_perr
    linkageType: ''
    returnType: bool
    signature: bool pass2_fixup_tmpl(UNUSED TALLOC_CTX *ctx, tmpl_t **vpt_p, CONF_ITEM
      const *ci, fr_dict_t const *dict)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:118,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/compile.c:120,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/compile.c:121,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:131,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:133,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/compile.c:139,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:140,1
    - Dst: tmpl_is_regex_xlat_unresolved
      Src: /src/freeradius-server/src/lib/unlang/compile.c:140,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/compile.c:142,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/lib/unlang/compile.c:151,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:155,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:156,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:160,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:165,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:167,1
    - Dst: pass2_fixup_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:168,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - map
    - rules
    - parent
    argTypes:
    - map_t*
    - tmpl_rules_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 175
    functionName: pass2_fixup_map
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - RULES_VERIFY
    - map_list_next
    - tmpl_is_regex_xlat_unresolved
    - tmpl_attr_tail_da
    - fr_table_str_by_value
    - pass2_fixup_tmpl
    - map_list_empty
    - fr_assert
    - tmpl_is_attr
    - tmpl_is_data_unresolved
    - cf_log_err
    - pass2_fixup_map
    linkageType: ''
    returnType: bool
    signature: bool pass2_fixup_map(map_t *map, tmpl_rules_t const *rules, fr_dict_attr_t
      const *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:182,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:185,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:187,1
    - Dst: pass2_fixup_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:192,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:198,1
    - Dst: unlang_fixup_update
      Src: /src/freeradius-server/src/lib/unlang/compile.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - g
    - rules
    argTypes:
    - unlang_group_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 202
    functionName: pass2_fixup_update
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - map_list_next
    - unlang_group_to_map
    - unlang_fixup_update
    - cf_item_is_pair
    - pass2_fixup_map
    linkageType: ''
    returnType: bool
    signature: bool pass2_fixup_update(unlang_group_t *g, tmpl_rules_t const *rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:209,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:212,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:220,1
    - Dst: pass2_fixup_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:221,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/compile.c:229,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/compile.c:231,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/unlang/compile.c:231,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - g
    - rules
    argTypes:
    - unlang_group_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 233
    functionName: pass2_fixup_map_rhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - map_list_next
    - unlang_group_to_map
    - map_list_head
    - pass2_fixup_tmpl
    - cf_section_to_item
    - map_list_num_elements
    - pass2_fixup_map
    linkageType: ''
    returnType: bool
    signature: bool pass2_fixup_map_rhs(unlang_group_t *g, tmpl_rules_t const *rules)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:245,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:249,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/compile.c:254,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:256,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:264,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/compile.c:266,1
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:267,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:269,1
    - Dst: map_print
      Src: /src/freeradius-server/src/lib/unlang/compile.c:270,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/compile.c:270,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:271,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:274,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:282,1
    - Dst: unlang_generic_to_edit
      Src: /src/freeradius-server/src/lib/unlang/compile.c:284,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:286,1
    - Dst: map_print
      Src: /src/freeradius-server/src/lib/unlang/compile.c:289,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/compile.c:289,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:290,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:293,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/compile.c:318,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:320,1
    - Dst: unlang_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/compile.c:321,1
    - Dst: unlang_dump
      Src: /src/freeradius-server/src/lib/unlang/compile.c:322,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:324,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/compile.c:333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 76
    argCount: 2
    argNames:
    - c
    - depth
    argTypes:
    - unlang_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 336
    functionName: unlang_dump
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - map_list_next
    - unlang_group_to_map
    - FR_SBUFF_OUT
    - unlang_generic_to_module
    - map_print
    - unlang_dump
    - fr_assert
    - unlang_generic_to_edit
    - unlang_list_foreach
    - DEBUG
    - unlang_generic_to_group
    linkageType: ''
    returnType: void
    signature: void unlang_dump(unlang_t *c, int depth)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:349,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/unlang/compile.c:360,1
    - Dst: tmpl_attr_rewrite_leaf_num
      Src: /src/freeradius-server/src/lib/unlang/compile.c:360,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:376,1
    - Dst: tmpl_attr_tail_da_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:380,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/unlang/compile.c:381,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:382,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:387,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:389,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/unlang/compile.c:394,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/compile.c:404,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:405,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/compile.c:409,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:418,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/compile.c:418,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:419,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/compile.c:426,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/compile.c:432,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:432,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:433,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:434,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:435,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:435,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/compile.c:442,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:443,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:444,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 2
    argNames:
    - map
    - ctx
    argTypes:
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 449
    functionName: unlang_fixup_update
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 3
    functionsReached:
    - cf_item_to_pair
    - tmpl_attr_rewrite_leaf_num
    - tmpl_is_list
    - unlikely
    - cf_log_perr
    - tmpl_is_xlat
    - tmpl_attr_tail_da_is_leaf
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - tmpl_cast_in_place
    - fr_table_str_by_value
    - fr_assert
    - cf_log_warn
    - tmpl_is_attr
    - tmpl_is_data_unresolved
    - fr_type_to_str
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int unlang_fixup_update(map_t *map, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:462,1
    - Dst: _talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/compile.c:467,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:473,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:474,1
    - Dst: unlang_group_type_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - parent
    - cs
    - type
    argTypes:
    - unlang_t*
    - CONF_SECTION*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 479
    functionName: unlang_group_allocate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - unlang_group_to_generic
    - CF_TO_ITEM
    - fr_assert
    - unlang_group_type_init
    - _talloc_zero_pooled_object
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_group_allocate(unlang_t *parent, CONF_SECTION
      *cs, unlang_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - unlang_ctx
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: compile_set_default_actions
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void compile_set_default_actions(unlang_t *c, unlang_compile_ctx_t
      *unlang_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: T
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 243
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T(_x)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:532,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:537,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:542,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:542,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:546,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:551,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:560,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:564,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:568,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:579,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:581,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:585,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:597,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:598,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - map
    - ctx
    argTypes:
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 603
    functionName: unlang_fixup_edit
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - tmpl_attr_tail_da
    - fr_assert
    - tmpl_is_attr
    - tmpl_type_to_str
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int unlang_fixup_edit(map_t *map, void *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:620,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:622,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:622,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/compile.c:626,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:628,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:628,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:633,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:634,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:643,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/compile.c:645,1
    - Dst: unlang_edit_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:648,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:649,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:650,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:652,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:654,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:659,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/compile.c:659,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:661,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:662,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:664,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:666,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:668,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/compile.c:668,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:670,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/compile.c:677,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:679,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:686,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/compile.c:687,1
    - Dst: map_afrom_cs_edit
      Src: /src/freeradius-server/src/lib/unlang/compile.c:696,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/unlang/compile.c:704,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:704,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:705,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/compile.c:707,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:708,1
    - Dst: tmpl_attr_num_elements
      Src: /src/freeradius-server/src/lib/unlang/compile.c:715,1
    - Dst: tmpl_attr_num_elements
      Src: /src/freeradius-server/src/lib/unlang/compile.c:715,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:716,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/compile.c:723,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:723,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:724,1
    - Dst: map_list_afrom_cs
      Src: /src/freeradius-server/src/lib/unlang/compile.c:733,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/compile.c:737,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:738,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:739,1
    - Dst: pass2_fixup_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:746,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/compile.c:754,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - cs
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 757
    functionName: compile_edit_section
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - map_list_afrom_cs
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_strerror
    - fr_type_to_str
    - MEM
    - cf_log_err
    - map_list_num_elements
    - map_list_head
    - unlang_edit_to_generic
    - fr_table_str_by_value
    - cf_section_name2
    - CF_TO_ITEM
    - cf_section_to_item
    - tmpl_is_attr
    - cf_section_name2_quote
    - tmpl_attr_num_elements
    - cf_section_name1
    - map_list_next
    - map_list_init
    - unlang_type_init
    - map_list_insert_tail
    - talloc_free
    - map_afrom_cs_edit
    - tmpl_attr_tail_num
    - talloc_zero
    - tmpl_afrom_attr_str
    - pass2_fixup_map
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *compile_edit_section(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_SECTION *cs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:777,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:777,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:778,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/compile.c:780,1
    - Dst: unlang_edit_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:783,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:784,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:785,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:787,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:789,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/unlang/compile.c:791,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:793,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:794,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:796,1
    - Dst: map_afrom_cp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:803,1
    - Dst: map_list_tail
      Src: /src/freeradius-server/src/lib/unlang/compile.c:803,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:810,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/compile.c:814,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:816,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/compile.c:820,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:820,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:821,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/compile.c:821,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:822,1
    - Dst: pass2_fixup_map
      Src: /src/freeradius-server/src/lib/unlang/compile.c:830,1
    - Dst: unlang_fixup_update
      Src: /src/freeradius-server/src/lib/unlang/compile.c:836,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/compile.c:838,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - cp
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 841
    functionName: compile_edit_pair
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - fr_type_is_structural
    - map_list_tail
    - tmpl_attr_tail_da
    - cf_pair_operator
    - cf_log_err
    - cf_pair_to_item
    - unlang_edit_to_generic
    - fr_table_str_by_value
    - CF_TO_ITEM
    - tmpl_is_attr
    - cf_pair_attr
    - fr_assert
    - unlang_fixup_update
    - map_list_init
    - unlang_type_init
    - map_afrom_cp
    - map_list_insert_tail
    - talloc_free
    - tmpl_attr_tail_num
    - talloc_zero
    - pass2_fixup_map
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *compile_edit_pair(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_PAIR *cp)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:855,1
    - Dst: debug_braces
      Src: /src/freeradius-server/src/lib/unlang/compile.c:855,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:877,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/compile.c:884,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/compile.c:889,1
    - Dst: fr_dict_protocol_alloc
      Src: /src/freeradius-server/src/lib/unlang/compile.c:892,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:895,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/compile.c:898,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:916,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:917,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:919,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:922,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:929,1
    - Dst: unlang_define_local_variable
      Src: /src/freeradius-server/src/lib/unlang/compile.c:931,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:931,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 4
    argNames:
    - parent
    - unlang_ctx
    - cp
    - t_rules
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_PAIR*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 932
    functionName: compile_variable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - debug_braces
    - fr_type_is_leaf
    - unlang_define_local_variable
    - cf_pair_to_item
    - talloc_free
    - cf_pair_value
    - fr_dict_protocol_alloc
    - fr_assert
    - talloc_zero
    - fr_table_value_by_str
    - cf_log_err
    - fr_dict_root
    - unlang_generic_to_group
    linkageType: ''
    returnType: int
    signature: int compile_variable(unlang_t *parent, unlang_compile_ctx_t *unlang_ctx,
      CONF_PAIR *cp, tmpl_rules_t *t_rules)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:942,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:943,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:946,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:949,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:952,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:955,1
    - Dst: strspn
      Src: /src/freeradius-server/src/lib/unlang/compile.c:958,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:958,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:959,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:961,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:965,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/unlang/compile.c:965,1
    - Dst: MOD_ACTION_VALID_SET
      Src: /src/freeradius-server/src/lib/unlang/compile.c:967,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:970,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:975,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:978,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:980,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - actions
    - cp
    argTypes:
    - unlang_mod_actions_t*
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 996
    functionName: compile_action_pair
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - cf_pair_value
    - MOD_PRIORITY
    - strcasecmp
    - MOD_ACTION_VALID_SET
    - strlen
    - strspn
    - fr_table_value_by_str
    - atoi
    - cf_log_err
    linkageType: ''
    returnType: bool
    signature: bool compile_action_pair(unlang_mod_actions_t *actions, CONF_PAIR *cp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1003,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1004,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1006,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1010,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1011,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1015,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1017,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1018,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1019,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1022,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1043,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1044,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1044,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1046,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1047,1
    - Dst: CLAMP
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1050,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1052,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1053,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1053,1
    - Dst: CLAMP
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1055,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1057,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1059,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1062,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1069,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1070,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1070,1
    - Dst: CLAMP
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1072,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1075,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - actions
    - ci
    argTypes:
    - unlang_mod_actions_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1081
    functionName: compile_retry_section
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - cf_item_is_section
    - fr_time_delta_from_str
    - cf_pair_value
    - cf_item_next
    - strlen
    - strcmp
    - fr_strerror
    - cf_item_is_pair
    - CLAMP
    - strtoul
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: bool
    signature: bool compile_retry_section(unlang_mod_actions_t *actions, CONF_ITEM
      *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _field
    - ','
    - _limit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1038
    functionName: CLAMP
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLAMP(_name, _field, _limit)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1092,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1094,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1098,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1099,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1101,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1106,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1106,1
    - Dst: compile_retry_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1107,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1111,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1115,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1117,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1122,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1123,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1125,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1128,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1132,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1132,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1132,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1134,1
    - Dst: compile_retry_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1138,1
    - Dst: compile_action_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1142,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1148,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1149,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1153,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1154,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1158,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1171,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1172,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1177,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1178,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1182,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1184,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1185,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1186,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 3
    argNames:
    - actions
    - cs
    - module_retry
    argTypes:
    - unlang_mod_actions_t*
    - CONF_SECTION*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1192
    functionName: unlang_compile_actions
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_log_err
    - cf_item_to_section
    - fr_table_str_by_value
    - cf_item_next
    - cf_section_name2
    - fr_time_delta_ispos
    - cf_section_to_item
    - cf_section_name1
    - cf_pair_attr
    - cf_item_is_section
    - cf_reference_item
    - strcmp
    - cf_item_is_pair
    - compile_retry_section
    - cf_log_perr
    - cf_pair_value
    - compile_action_pair
    - cf_root
    linkageType: ''
    returnType: bool
    signature: bool unlang_compile_actions(unlang_mod_actions_t *actions, CONF_SECTION
      *cs, bool module_retry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1204,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1207,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1215,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1217,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1221,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - parent
    - unlang_compile_ctx_t *unlang_ctx
    - cs
    - type
    argTypes:
    - unlang_t*
    - UNUSED
    - CONF_SECTION*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1194
    functionDepth: 5
    functionLinenumber: 1194
    functionLinenumberEnd: 1226
    functionName: unlang_compile_empty
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - unlang_group_to_generic
    - cf_section_name2
    - unlang_group_allocate
    - cf_section_name1
    - talloc_typed_asprintf
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_empty(unlang_t *parent, UNUSED unlang_compile_ctx_t
      *unlang_ctx, CONF_SECTION *cs, unlang_type_t type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1238,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1240,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1241,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1241,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1242,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1246,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1247,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1278,1
    - Dst: unlang_compile_actions
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - c
    - cs
    - subcs
    argTypes:
    - unlang_t*
    - CONF_SECTION*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1283
    functionName: compile_action_subsection
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - cf_item_next
    - cf_section_name2
    - unlang_compile_actions
    - cf_section_to_item
    - cf_item_is_pair
    - cf_log_err
    linkageType: ''
    returnType: bool
    signature: bool compile_action_subsection(unlang_t *c, CONF_SECTION *cs, CONF_SECTION
      *subcs)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1296,1
    - Dst: unlang_compile_ctx_copy
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1302,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1313,1
    - Dst: cf_item_is_data
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1314,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1323,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1325,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1331,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1337,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1342,1
    - Dst: compile_edit_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1343,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1346,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1353,1
    - Dst: compile_action_subsection
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1354,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1361,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1361,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1367,1
    - Dst: cf_data_remove
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1382,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1383,1
    - Dst: cf_section_free_children
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1385,1
    - Dst: cf_log_debug_prefix
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1387,1
    - Dst: compile_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1397,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1399,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1399,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1405,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1406,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1411,1
    - Dst: compile_variable
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1412,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1418,1
    - Dst: compile_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1419,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1421,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1421,1
    - Dst: compile_edit_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1432,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1437,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1460,1
    - Dst: unlang_group_to_cond
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1461,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1471,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1479,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1495,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1495,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1496,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1496,1
    - Dst: unlang_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1497,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1506,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 123
    argCount: 2
    argNames:
    - g
    - unlang_ctx_in
    argTypes:
    - unlang_group_t*
    - unlang_compile_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1286
    functionDepth: 4
    functionLinenumber: 1286
    functionLinenumberEnd: 1513
    functionName: unlang_compile_children
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - compile_variable
    - cf_data_find
    - compile_item
    - cf_pair_operator
    - compile_action_subsection
    - cf_log_err
    - cf_log_debug_prefix
    - cf_item_to_section
    - compile_edit_pair
    - cf_data_remove
    - cf_section_free_children
    - unlang_compile_ctx_copy
    - unlang_group_to_generic
    - cf_item_next
    - unlang_group_to_cond
    - cf_section_name2_quote
    - talloc_parent
    - cf_section_name1
    - cf_pair_attr
    - cf_item_is_section
    - cf_item_is_data
    - fr_assert
    - strcmp
    - unlang_list_insert_tail
    - cf_item_is_pair
    - talloc_free
    - cf_pair_value
    - cf_log_warn
    - compile_edit_section
    - fr_rb_remove
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_children(unlang_group_t *g, unlang_compile_ctx_t
      *unlang_ctx_in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1525,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1526,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1531,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1534,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1539,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1540,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1548,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1548,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1554,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1554,1
    - Dst: unlang_compile_children
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - parent
    - unlang_ctx
    - cs
    - type
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_SECTION*
    - unlang_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1519
    functionDepth: 5
    functionLinenumber: 1519
    functionLinenumberEnd: 1558
    functionName: unlang_compile_section
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 5
    functionsReached:
    - unlang_compile_children
    - unlang_group_to_generic
    - cf_section_name2
    - fr_assert
    - unlang_group_allocate
    - MEM
    - cf_section_name1
    - talloc_typed_asprintf
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_section(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_SECTION *cs, unlang_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1563,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1567,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1570,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1570,1
    - Dst: unlang_tmpl_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1571,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1572,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1575,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1577,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1578,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1579,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1579,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1580,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1584,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1561
    functionDepth: 3
    functionLinenumber: 1561
    functionLinenumberEnd: 1591
    functionName: compile_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - unlang_tmpl_to_generic
    - RULES_VERIFY
    - cf_canonicalize_error
    - talloc_free
    - cf_pair_attr_quote
    - FR_SBUFF_IN
    - CF_TO_ITEM
    - talloc_zero
    - tmpl_afrom_substr
    - talloc_strlen
    - MEM
    - unlang_type_init
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *compile_tmpl(unlang_t *parent, unlang_compile_ctx_t *unlang_ctx,
      CONF_ITEM *ci)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1601,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1603,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1611,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1612,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1613,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1622,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1623,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1624,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1631,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1632,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1634,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1636,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1637,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - cs
    - name
    argTypes:
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1644
    functionName: unlang_compile_limit_subsection
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 3
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - cf_item_is_section
    - cf_pair_value
    - cf_log_err
    - cf_item_next
    - strcmp
    - cf_item_is_pair
    - cf_pair_operator
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: bool
    signature: bool unlang_compile_limit_subsection(CONF_SECTION *cs, char const *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1667,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1669,1
    - Dst: compile_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1673,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1673,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1685,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1689,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1694,1
    - Dst: unlang_compile_actions
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1700,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1700,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - parent
    - unlang_ctx
    - ci
    - subcs
    - policy
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    - CONF_SECTION*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1647
    functionDepth: 6
    functionLinenumber: 1647
    functionLinenumberEnd: 1706
    functionName: compile_function
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - talloc_free
    - unlang_compile_section
    - compile_item
    - cf_section_name2
    - unlang_compile_actions
    - fr_assert
    - cf_section_to_item
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: "unlang_t *compile_function(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM *ci,\n\t\t\t\t  CONF_SECTION *subcs,\n\t\t\t\t  bool
      policy)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1730,1
    - Dst: module_rlm_virtual_by_name
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1741,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1749,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1761,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1762,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1763,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1776,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1777,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1783,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1784,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1787,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1797,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1799,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1800,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 6
    argNames:
    - ci
    - real_name
    - virtual_name
    - method_name
    - unlang_ctx
    - policy
    argTypes:
    - CONF_ITEM*
    - UNUSED*
    - char*
    - char*
    - unlang_compile_ctx_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1806
    functionName: virtual_module_find_cs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - module_rlm_virtual_by_name
    - cf_parent
    - cf_section_find
    - snprintf
    - cf_section_to_item
    - cf_root
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *virtual_module_find_cs(CONF_ITEM *ci, UNUSED char const
      *real_name, char const *virtual_name,\n\t\t\t\t\t    char const *method_name,
      unlang_compile_ctx_t *unlang_ctx, bool *policy)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1814,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1814,1
    - Dst: module_rlm_by_name_and_method
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1815,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1818,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1821,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1822,1
    - Dst: fr_dict_compatible
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1832,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1833,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1834,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1835,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1836,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1836,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1837,1
    - Dst: unlang_module_to_generic
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1841,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1842,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1843,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1858,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1863,1
    - Dst: call_env_alloc
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1866,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1875,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1884,1
    - Dst: unlang_compile_actions
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1885,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1885,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - parent
    - unlang_ctx
    - ci
    - name
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1808
    functionDepth: 4
    functionLinenumber: 1808
    functionLinenumberEnd: 1889
    functionName: compile_module
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - call_env_alloc
    - cf_log_perr
    - module_rlm_by_name_and_method
    - fr_dict_compatible
    - cf_item_is_section
    - talloc_free
    - cf_item_to_section
    - talloc_strdup
    - FR_SBUFF_IN_STR
    - DOC_KEYWORD_REF
    - talloc_zero
    - unlang_compile_actions
    - fr_assert_msg
    - unlang_module_to_generic
    - MEM
    - cf_log_err
    - fr_dict_root
    - unlang_type_init
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *compile_module(unlang_t *parent, unlang_compile_ctx_t *unlang_ctx,
      CONF_ITEM *ci, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1893
    functionDepth: 0
    functionLinenumber: 1893
    functionLinenumberEnd: 1894
    functionName: name_to_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: name_to_op(name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1910,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1912,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1916,1
    - Dst: tmpl_attr_list_from_substr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1917,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1917,1
    - Dst: name_to_op
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1922,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1924,1
    - Dst: fr_dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1931,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1932,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1941,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1941,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1943,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1951,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1952,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1959,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1961,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1965,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1967,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1967,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1970,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1971,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1977,1
    - Dst: fr_fatal_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1978,1
    - Dst: fr_dict_attr_acopy_local
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1980,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 6
    argNames:
    - ci
    - var
    - t_rules
    - type
    - name
    - ref
    argTypes:
    - CONF_ITEM*
    - unlang_variable_t*
    - tmpl_rules_t*
    - fr_type_t
    - char*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1985
    functionName: unlang_define_local_variable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_acopy_local
    - fr_fatal_assert
    - fr_dict_by_protocol_name
    - fr_dict_attr_by_name
    - fr_type_is_structural
    - FR_SBUFF_IN
    - tmpl_attr_list_from_substr
    - fr_assert
    - strlen
    - fr_table_value_by_str
    - fr_dict_attr_add
    - name_to_op
    - fr_strerror
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int unlang_define_local_variable(CONF_ITEM *ci, unlang_variable_t
      *var, tmpl_rules_t *t_rules, fr_type_t type, char const *name,\n\t\t\t\t fr_dict_attr_t
      const *ref)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:1999,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2000,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2001,1
    - Dst: name_to_op
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2002,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2010,1
    - Dst: unlang_op_t*::compile
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2014,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2021,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2027,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2032,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2033,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2037,1
    - Dst: name_to_op
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2038,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2045,1
    - Dst: unlang_op_t*::compile
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2049,1
    - Dst: compile_tmpl
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2066,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2066,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2073,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2111,1
    - Dst: virtual_module_find_cs
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2113,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2117,1
    - Dst: virtual_module_find_cs
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2120,1
    - Dst: compile_function
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2131,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2138,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2138,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2140,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2141,1
    - Dst: compile_module
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2152,1
    - Dst: compile_set_default_actions
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2165,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2167,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2170,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 1990
    functionDepth: 7
    functionLinenumber: 1990
    functionLinenumberEnd: 2175
    functionName: compile_item
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 2
    functionsReached:
    - cf_item_to_pair
    - cf_section_find
    - strrchr
    - virtual_module_find_cs
    - compile_module
    - name_to_op
    - cf_log_err
    - strlcpy
    - unlang_op_t*::compile
    - cf_item_to_section
    - cf_pair_to_item
    - compile_tmpl
    - fr_rb_insert
    - cf_section_name1
    - cf_pair_attr
    - cf_item_is_section
    - cf_item_is_pair
    - compile_function
    - compile_set_default_actions
    - talloc_free
    - cf_pair_value
    - cf_root
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *compile_item(unlang_t *parent, unlang_compile_ctx_t *unlang_ctx,
      CONF_ITEM *ci)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2199,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2201,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2209,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2213,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2214,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2218,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2220,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2223,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2224,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2231,1
    - Dst: unlang_dump
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2233,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2239,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - vs
    - cs
    - actions
    - rules
    - instruction
    argTypes:
    - virtual_server_t*
    - CONF_SECTION*
    - unlang_mod_actions_t*
    - tmpl_rules_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2188
    functionDepth: 6
    functionLinenumber: 2188
    functionLinenumberEnd: 2244
    functionName: unlang_compile
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - unlang_compile_section
    - cf_data_find
    - cf_item_mark_parsed
    - cf_section_name2
    - unlang_dump
    - fr_assert
    - cf_data_add
    - cf_log_debug
    - cf_section_name1
    - cf_data_value
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int unlang_compile(virtual_server_t const *vs,\n\t\t   CONF_SECTION
      *cs, unlang_mod_actions_t const *actions, tmpl_rules_t const *rules, void **instruction)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name_to_op
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2259
    functionName: unlang_compile_is_keyword
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - name_to_op
    linkageType: ''
    returnType: bool
    signature: bool unlang_compile_is_keyword(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2270
    functionName: instruction_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t instruction_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_alloc
      Src: /src/freeradius-server/src/lib/unlang/compile.c:2275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2273
    functionDepth: 1
    functionLinenumber: 2273
    functionLinenumberEnd: 2276
    functionName: unlang_compile_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/compile.c
    functionUses: 0
    functionsReached:
    - fr_rb_alloc
    linkageType: ''
    returnType: void
    signature: void unlang_compile_init(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:48,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:49,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:51,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:54,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: xlat_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - strlen
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t xlat_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: xlat_func_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t xlat_func_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:83,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:87,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - in
    - inlen
    argTypes:
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: xlat_func_find
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 5
    functionsReached:
    - fr_rb_find
    - memcpy
    linkageType: ''
    returnType: xlat_t
    signature: xlat_t *xlat_func_find(char const *in, ssize_t inlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:102,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:103,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - xlat
    argTypes:
    - xlat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: _xlat_func_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    - fr_rb_delete
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int _xlat_func_talloc_free(xlat_t *xlat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xlat
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: _xlat_func_tree_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _xlat_func_tree_free(void *xlat)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:133,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:136,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:139,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:142,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:145,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - xlat_arg_parser_t*
    - xlat_arg_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 149
    functionName: xlat_arg_cmp_no_escape
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int
    signature: int xlat_arg_cmp_no_escape(xlat_arg_parser_t const *a, xlat_arg_parser_t
      const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_arg_cmp_no_escape
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:172,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - xlat_arg_parser_t[]
    - xlat_arg_parser_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: xlat_arg_cmp_list_no_escape
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - xlat_arg_cmp_no_escape
    - CMP
    linkageType: ''
    returnType: int
    signature: int xlat_arg_cmp_list_no_escape(xlat_arg_parser_t const a[], xlat_arg_parser_t
      const b[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:184,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:187,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:196,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mctx
    - name
    argTypes:
    - module_inst_ctx_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 204
    functionName: xlat_func_find_module
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_rb_find
    - fr_assert
    - snprintf
    linkageType: ''
    returnType: xlat_t
    signature: xlat_t *xlat_func_find_module(module_inst_ctx_t const *mctx, char const
      *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:222,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:226,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:230,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:231,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:233,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:234,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:235,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:238,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:245,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:248,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:253,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:263,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:263,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:265,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:275,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:277,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:278,1
    - Dst: fr_rb_replace
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:280,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:281,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:282,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - name
    - func
    - return_type
    argTypes:
    - TALLOC_CTX*
    - char*
    - xlat_func_t
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 287
    functionName: xlat_func_register
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 14
    functionsReached:
    - talloc_link_ctx
    - ERROR
    - talloc_set_destructor
    - talloc_free
    - fr_sbuff_used
    - strchr
    - FR_SBUFF_IN
    - talloc_strdup
    - talloc
    - fr_rb_replace
    - fr_rb_find
    - fr_assert
    - strlen
    - MEM
    - DEBUG3
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: xlat_t
    signature: xlat_t *xlat_func_register(TALLOC_CTX *ctx, char const *name, xlat_func_t
      func, fr_type_t return_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:300,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:301,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:301,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - mctx
    argTypes:
    - xlat_t*
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: xlat_mctx_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - TALLOC_FREE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void xlat_mctx_set(xlat_t *x, module_inst_ctx_t const *mctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:315,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:318,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:322,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:326,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:327,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:332,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:336,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:346,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - x
    - arg
    - last
    argTypes:
    - xlat_t*
    - xlat_arg_parser_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 351
    functionName: xlat_arg_parser_validate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - fr_assert_fail
    linkageType: ''
    returnType: int
    signature: int xlat_arg_parser_validate(xlat_t *x, xlat_arg_parser_t const *arg,
      bool last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_arg_parser_validate
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - args
    argTypes:
    - xlat_t*
    - xlat_arg_parser_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: xlat_func_args_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 41
    functionsReached:
    - xlat_arg_parser_validate
    linkageType: ''
    returnType: int
    signature: int xlat_func_args_set(xlat_t *x, xlat_arg_parser_t const args[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - env_method
    argTypes:
    - xlat_t*
    - call_env_method_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: xlat_func_call_env_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_func_call_env_set(xlat_t *x, call_env_method_t const *env_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - flags
    argTypes:
    - xlat_t*
    - xlat_func_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: xlat_func_flags_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_func_flags_set(xlat_t *x, xlat_func_flags_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xlat
    - func
    argTypes:
    - xlat_t*
    - xlat_print_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: xlat_func_print_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_func_print_set(xlat_t *xlat, xlat_print_t func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xlat
    - func
    argTypes:
    - xlat_t*
    - xlat_resolve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: xlat_func_resolve_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_func_resolve_set(xlat_t *xlat, xlat_resolve_t func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xlat
    - func
    argTypes:
    - xlat_t*
    - xlat_purify_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: xlat_purify_func_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_purify_func_set(xlat_t *xlat, xlat_purify_t func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xlat
    - safe_for
    argTypes:
    - xlat_t*
    - fr_value_box_safe_for_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: _xlat_func_safe_for_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _xlat_func_safe_for_set(xlat_t *xlat, fr_value_box_safe_for_t
      safe_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - xlat
    - instantiate
    - inst_type
    - inst_size
    - detach
    - uctx
    argTypes:
    - xlat_t*
    - xlat_instantiate_t
    - char*
    - size_t
    - xlat_detach_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 461
    functionName: _xlat_func_instantiate_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: void
    signature: "void _xlat_func_instantiate_set(xlat_t const *xlat,\n\t\t\t\t xlat_instantiate_t
      instantiate, char const *inst_type, size_t inst_size,\n\t\t\t\t xlat_detach_t
      detach,\n\t\t\t\t void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:483,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - xlat
    - thread_instantiate
    - thread_inst_type
    - thread_inst_size
    - thread_detach
    - uctx
    argTypes:
    - xlat_t*
    - xlat_thread_instantiate_t
    - char*
    - size_t
    - xlat_thread_detach_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 498
    functionName: _xlat_func_thread_instantiate_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - UNCONST
    linkageType: ''
    returnType: void
    signature: "void _xlat_func_thread_instantiate_set(xlat_t const *xlat,\n\t\t\t\t\txlat_thread_instantiate_t
      thread_instantiate,\n\t\t\t\t        char const *thread_inst_type, size_t thread_inst_size,\n\t\t\t\t
      \       xlat_thread_detach_t thread_detach,\n\t\t\t\t        void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:513,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:516,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 519
    functionName: xlat_func_unregister
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 11
    functionsReached:
    - fr_rb_find
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void xlat_func_unregister(char const *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:528,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:530,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - inst
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 536
    functionName: xlat_func_unregister_module
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_rb_iter_delete_inorder
    - fr_rb_iter_next_inorder
    linkageType: ''
    returnType: void
    signature: void xlat_func_unregister_module(module_instance_t const *inst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:545,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 552
    functionName: xlat_func_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - fr_rb_inline_talloc_alloc
    - ERROR
    linkageType: ''
    returnType: int
    signature: int xlat_func_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_func.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 562
    functionName: xlat_func_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_func.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void xlat_func_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _env
    - ','
    - _timeout
    - ','
    - _stdout_on_error
    - ','
    - _status_out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: TMPL_ARGS_EXEC
    functionSourceFile: /src/freeradius-server/src/lib/unlang/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TMPL_ARGS_EXEC(_env, _timeout, _stdout_on_error, _status_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _op
    - ','
    - _box
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: RDEBUG_ASSIGN
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ASSIGN(_name, _op, _box)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:53,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:58,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:62,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:62,1
    - Dst: fr_value_box_enum_name
      Src: /src/freeradius-server/src/lib/unlang/edit.c:64,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:65,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - request
    - attr
    - op
    - box
    argTypes:
    - request_t*
    - char*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: rdebug_assign
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_value_box_enum_name
    - fr_type_is_leaf
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void rdebug_assign(request_t *request, char const *attr, fr_token_t
      op, fr_value_box_t const *box)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:136,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:139,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/edit.c:146,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:147,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/unlang/edit.c:155,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:164,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - map
    - out
    - request
    argTypes:
    - TALLOC_CTX*
    - map_t*
    - edit_result_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 172
    functionName: tmpl_attr_from_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - RPEDEBUG
    - fr_value_box_list_talloc_free
    - fr_value_box_list_concat_in_place
    - tmpl_afrom_attr_str
    - RWDEBUG
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_from_result(TALLOC_CTX *ctx, map_t const *map, edit_result_t
      *out, request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:180,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:181,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/edit.c:192,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/edit.c:196,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/edit.c:196,1
    - Dst: tmpl_debug
      Src: /src/freeradius-server/src/lib/unlang/edit.c:204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - vpt
    argTypes:
    - TALLOC_CTX*
    - edit_result_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 210
    functionName: tmpl_to_values
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - tmpl_xlat
    - fr_assert
    - tmpl_debug
    - unlang_tmpl_push
    linkageType: ''
    returnType: int
    signature: int tmpl_to_values(TALLOC_CTX *ctx, edit_result_t *out, request_t *request,
      tmpl_t const *vpt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:216,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:221,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:222,1
    - Dst: edit_debug_attr_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:223,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:223,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:224,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:225,1
    - Dst: RDEBUG_ASSIGN
      Src: /src/freeradius-server/src/lib/unlang/edit.c:229,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:237,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/unlang/edit.c:243,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:245,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:251,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:252,1
    - Dst: edit_debug_attr_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:253,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:254,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:255,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/lib/unlang/edit.c:259,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - request
    - vp
    - map
    argTypes:
    - request_t*
    - fr_pair_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 264
    functionName: edit_debug_attr_vp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_pair_print_value_quoted
    - REXDENT
    - map_list_head
    - FR_SBUFF_OUT
    - RINDENT
    - RDEBUG2
    - fr_assert
    - edit_debug_attr_list
    - fr_pair_print_name
    - RDEBUG_ASSIGN
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: void
    signature: void edit_debug_attr_vp(request_t *request, fr_pair_t const *vp, map_t
      const *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:271,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:273,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:275,1
    - Dst: edit_debug_attr_vp
      Src: /src/freeradius-server/src/lib/unlang/edit.c:276,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - request
    - list
    - map
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: edit_debug_attr_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 1
    functionsReached:
    - map_list_next
    - edit_debug_attr_vp
    - fr_pair_list_next
    - map_list_head
    linkageType: ''
    returnType: void
    signature: void edit_debug_attr_list(request_t *request, fr_pair_list_t const
      *list, map_t const *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:288,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:295,1
    - Dst: tmpl_dcursor_build_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:296,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:297,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - request
    - ctx
    - current
    argTypes:
    - request_t*
    - TALLOC_CTX*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 306
    functionName: edit_create_lhs_vp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - fr_assert
    - tmpl_dcursor_clear
    - fr_strerror_clear
    - tmpl_dcursor_build_init
    linkageType: ''
    returnType: int
    signature: int edit_create_lhs_vp(request_t *request, TALLOC_CTX *ctx, edit_map_t
      *current)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:321,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/edit.c:339,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/edit.c:340,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:343,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:348,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:354,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/edit.c:361,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:362,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:374,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/unlang/edit.c:375,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/edit.c:375,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/edit.c:382,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:388,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/edit.c:388,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:396,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:397,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:397,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:402,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:404,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:418,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:423,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:425,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:426,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/unlang/edit.c:432,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:433,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:438,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/unlang/edit.c:442,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:443,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:444,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:449,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:456,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:457,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/edit.c:459,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:460,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:471,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/unlang/edit.c:475,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:477,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:478,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/unlang/edit.c:481,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:483,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:485,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:493,1
    - Dst: edit_create_lhs_vp
      Src: /src/freeradius-server/src/lib/unlang/edit.c:498,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:502,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:512,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:514,1
    - Dst: edit_debug_attr_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:515,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:516,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:518,1
    - Dst: fr_dict_attr_can_contain
      Src: /src/freeradius-server/src/lib/unlang/edit.c:522,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:523,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:531,1
    - Dst: fr_edit_list_apply_list_assignment
      Src: /src/freeradius-server/src/lib/unlang/edit.c:533,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:535,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/unlang/edit.c:546,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/edit.c:549,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/edit.c:551,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:559,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 134
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 561
    functionName: apply_edits_to_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_type_is_structural
    - REDEBUG
    - tmpl_attr_tail_da
    - edit_create_lhs_vp
    - tmpl_is_data
    - fr_pair_list_afrom_substr
    - tmpl_dcursor_clear
    - fr_pair_list_free
    - RWDEBUG
    - edit_debug_attr_list
    - RPEDEBUG
    - fr_dcursor_next
    - fr_edit_list_apply_list_assignment
    - fr_type_is_group
    - fr_pair_append
    - tmpl_is_attr
    - fr_pair_list_init
    - fr_pair_list_copy
    - fr_edit_list_pair_delete
    - XDEBUG
    - REXDENT
    - fr_dict_attr_can_contain
    - FR_SBUFF_IN
    - fr_value_box_list_concat_in_place
    - fr_assert
    - RDEBUG2
    - fr_pair_list_append
    - fr_pair_copy
    - fr_pair_parent_list
    - fr_pair_immutable
    - RDEBUG
    - RINDENT
    - fr_dict_internal
    - tmpl_attr_tail_num
    - PAIR_VERIFY
    - tmpl_dcursor_init
    - tmpl_value
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int apply_edits_to_list(request_t *request, unlang_frame_state_edit_t
      *state, edit_map_t *current)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_can_contain
      Src: /src/freeradius-server/src/lib/unlang/edit.c:522,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 2
    functionsReached:
    - RDEBUG
    - fr_dict_attr_can_contain
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(children, child)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:566,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:570,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/edit.c:572,1
    - Dst: pair_is_editable
      Src: /src/freeradius-server/src/lib/unlang/edit.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - request
    - vp
    argTypes:
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 577
    functionName: pair_is_editable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 1
    functionsReached:
    - fr_type_is_structural
    - RWDEBUG
    - pair_is_editable
    - fr_pair_list_foreach
    linkageType: ''
    returnType: bool
    signature: bool pair_is_editable(request_t *request, fr_pair_t *vp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:588,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:590,1
    - Dst: request_attr_is_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:591,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:609,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:611,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/unlang/edit.c:613,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:614,1
    - Dst: pair_is_editable
      Src: /src/freeradius-server/src/lib/unlang/edit.c:616,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:621,1
    - Dst: fr_edit_list_free_pair_children
      Src: /src/freeradius-server/src/lib/unlang/edit.c:623,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/unlang/edit.c:638,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:639,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - request
    - current
    - delete
    argTypes:
    - request_t*
    - edit_map_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 645
    functionName: edit_delete_lhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - RPWDEBUG
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_pair_parent
    - fr_assert
    - tmpl_dcursor_clear
    - pair_is_editable
    - tmpl_dcursor_init
    - fr_edit_list_free_pair_children
    - request_attr_is_list
    linkageType: ''
    returnType: int
    signature: int edit_delete_lhs(request_t *request, edit_map_t *current, bool delete)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:672,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:674,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:675,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:685,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/edit.c:695,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/edit.c:696,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:710,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:713,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/edit.c:713,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/edit.c:714,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/edit.c:715,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/edit.c:717,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:719,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:722,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/edit.c:727,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:728,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:731,1
    - Dst: fr_value_box_list_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:731,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:742,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:742,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:747,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:749,1
    - Dst: edit_delete_lhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:756,1
    - Dst: fr_pair_dcursor_nested_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:759,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:765,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/edit.c:772,1
    - Dst: edit_create_lhs_vp
      Src: /src/freeradius-server/src/lib/unlang/edit.c:786,1
    - Dst: pair_append_by_tmpl_parent
      Src: /src/freeradius-server/src/lib/unlang/edit.c:796,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:797,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/unlang/edit.c:802,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/edit.c:804,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:808,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:818,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/edit.c:825,1
    - Dst: edit_create_lhs_vp
      Src: /src/freeradius-server/src/lib/unlang/edit.c:827,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:829,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:830,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:830,1
    - Dst: RDEBUG_ASSIGN
      Src: /src/freeradius-server/src/lib/unlang/edit.c:837,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/edit.c:843,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/unlang/edit.c:845,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:853,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/unlang/edit.c:860,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:860,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:867,1
    - Dst: RDEBUG_ASSIGN
      Src: /src/freeradius-server/src/lib/unlang/edit.c:868,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:870,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:870,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/edit.c:871,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/unlang/edit.c:872,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/unlang/edit.c:874,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:875,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/unlang/edit.c:879,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:892,1
    - Dst: RDEBUG_ASSIGN
      Src: /src/freeradius-server/src/lib/unlang/edit.c:903,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/unlang/edit.c:904,1
    - Dst: fr_edit_list_apply_pair_assignment
      Src: /src/freeradius-server/src/lib/unlang/edit.c:910,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:915,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:916,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:922,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:926,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:927,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 161
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 930
    functionName: apply_edits_to_leaf
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_type_is_structural
    - REDEBUG
    - edit_create_lhs_vp
    - tmpl_attr_tail_da
    - tmpl_is_data
    - tmpl_value
    - fr_value_box_alloc
    - tmpl_dcursor_clear
    - edit_delete_lhs
    - fr_value_box_cast
    - RWDEBUG
    - MEM
    - RDEBUG_ASSIGN
    - fr_value_box_mark_unsafe
    - RPEDEBUG
    - fr_value_box_strdup
    - fr_dcursor_next
    - pair_append_by_tmpl_parent
    - fr_edit_list_insert_pair_tail
    - fr_type_is_null
    - tmpl_is_attr
    - PAIR_ALLOCED
    - fr_dcursor_init
    - fr_pair_afrom_da
    - XDEBUG
    - fr_value_box_list_insert_tail
    - fr_assert
    - fr_value_box_list_concat_in_place
    - RDEBUG2
    - fr_pair_dcursor_nested_init
    - fr_dcursor_next_peek
    - fr_edit_list_apply_pair_assignment
    - talloc_free
    - fr_value_box_list_talloc_free
    - fr_value_box_list_num_elements
    - tmpl_dcursor_init
    - fr_value_box_list_dlist_head
    linkageType: ''
    returnType: int
    signature: int apply_edits_to_leaf(request_t *request, unlang_frame_state_edit_t
      *state, edit_map_t *current)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:956,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:959,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:963,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/unlang/edit.c:968,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/unlang/edit.c:970,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:971,1
    - Dst: fr_dcursor_set_current
      Src: /src/freeradius-server/src/lib/unlang/edit.c:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - parent
    - cursor
    - da
    - uctx
    argTypes:
    - fr_pair_t*
    - fr_dcursor_t*
    - fr_dict_attr_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 990
    functionName: edit_list_pair_build
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_dcursor_set_current
    - talloc_free
    - fr_type_is_structural
    - REDEBUG
    - fr_edit_list_insert_pair_tail
    - PAIR_ALLOCED
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *edit_list_pair_build(fr_pair_t *parent, fr_dcursor_t *cursor,
      fr_dict_attr_t const *da, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 993
    functionName: DECLARE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1006,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1007,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1008,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - request
    - unlang_frame_state_edit_t *state
    - current
    argTypes:
    - UNUSED*
    - UNUSED
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1022
    functionName: next_map
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - TALLOC_FREE
    - fr_pair_list_free
    linkageType: ''
    returnType: int
    signature: int next_map(UNUSED request_t *request, UNUSED unlang_frame_state_edit_t
      *state, edit_map_t *current)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1031,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1033,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1035,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1040,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1058,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1058,1
    - Dst: edit_delete_lhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1060,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1061,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1075,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1076,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1076,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1077,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1084,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1089,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1092,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1096,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1096,1
    - Dst: apply_edits_to_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1097,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1099,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1099,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1099,1
    - Dst: apply_edits_to_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1101,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1104,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1027
    functionDepth: 4
    functionLinenumber: 1027
    functionLinenumberEnd: 1105
    functionName: check_rhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - XDEBUG
    - RDEBUG
    - fr_type_is_leaf
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - apply_edits_to_list
    - tmpl_attr_tail_num
    - next_map
    - fr_assert
    - edit_delete_lhs
    - apply_edits_to_leaf
    - tmpl_is_attr
    - XLAT_RESULT_SUCCESS
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: int
    signature: int check_rhs(request_t *request, unlang_frame_state_edit_t *state,
      edit_map_t *current)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1116,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1121,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1126,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1127,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1127,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1128,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1128,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1128,1
    - Dst: check_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1132,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1140,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1140,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1155,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1158,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1158,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1164,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1164,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1164,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1172,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1173,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1175,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1176,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1177,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1111
    functionDepth: 5
    functionLinenumber: 1111
    functionLinenumberEnd: 1187
    functionName: expand_rhs_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - XDEBUG
    - fr_type_is_leaf
    - fr_value_box_list_init
    - map_list_head
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - REDEBUG
    - RINDENT
    - memset
    - fr_dlist_empty
    - fr_assert
    - check_rhs
    - talloc_zero
    - fr_type_to_str
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int expand_rhs_list(request_t *request, unlang_frame_state_edit_t *state,
      edit_map_t *current)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expand_rhs_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1198,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1200,1
    - Dst: tmpl_to_values
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1206,1
    - Dst: check_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1193
    functionDepth: 6
    functionLinenumber: 1193
    functionLinenumberEnd: 1215
    functionName: expand_rhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - expand_rhs_list
    - check_rhs
    - tmpl_to_values
    - XDEBUG
    linkageType: ''
    returnType: int
    signature: int expand_rhs(request_t *request, unlang_frame_state_edit_t *state,
      edit_map_t *current)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1231,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1233,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1235,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1239,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1239,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1240,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1240,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1240,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1242,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1244,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1254,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1254,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1257,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1257,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1262,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1264,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1264,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1265,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1265,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1266,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1270,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1272,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1274,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1276,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1284
    functionName: check_lhs_value
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - unlikely
    - XDEBUG
    - fr_dcursor_next
    - tmpl_is_data
    - fr_value_box_list_insert_tail
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_is_attr
    - tmpl_dcursor_init
    - next_map
    - tmpl_value
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int check_lhs_value(request_t *request, unlang_frame_state_edit_t *state,
      edit_map_t *current)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1296,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1300,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1307,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1307,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1313,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1318,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1319,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1320,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1324,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1334,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1335,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1335,1
    - Dst: fr_type_is_fixed_size
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1342,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1344,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1345,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1351,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1351,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1355,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1356,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1357,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1357,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1357,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1360,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1362,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1363,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1365
    functionName: expanded_lhs_value
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_safety_copy_changed
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_type_is_fixed_size
    - fr_value_box_alloc
    - fr_strerror
    - next_map
    - RWDEBUG
    - fr_type_to_str
    - MEM
    - tmpl_is_attr
    - fr_value_box_list_insert_tail
    - fr_assert
    - fr_value_box_list_concat_in_place
    - fr_value_box_list_next
    - fr_type_is_variable_size
    - talloc_free
    - fr_value_box_list_move
    - fr_value_box_list_talloc_free
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: int expanded_lhs_value(request_t *request, unlang_frame_state_edit_t
      *state, edit_map_t *current)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1378,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1380,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1386,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1386,1
    - Dst: expand_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1387,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1390,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1390,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1390,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1405,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1405,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1405,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1406,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1408,1
    - Dst: expand_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1374
    functionDepth: 7
    functionLinenumber: 1374
    functionLinenumberEnd: 1411
    functionName: check_lhs_nested
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - expand_rhs
    - XDEBUG
    - fr_pair_afrom_da
    - fr_type_is_leaf
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_pair_append
    - fr_assert
    - PAIR_ALLOCED
    - MEM
    linkageType: ''
    returnType: int
    signature: int check_lhs_nested(request_t *request, unlang_frame_state_edit_t
      *state, edit_map_t *current)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1425,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1426,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1433,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1439,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1439,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1440,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1449,1
    - Dst: expand_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1451,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1468,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1468,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1469,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1470,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1485,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1504,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1505,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1506,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1509,1
    - Dst: expand_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1516,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1525,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1525,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1529,1
    - Dst: tmpl_to_values
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1531,1
    - Dst: expand_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1539,1
    - Dst: next_map
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1547,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1553,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1565,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1566,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1574,1
    - Dst: expand_rhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1575,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1417
    functionDepth: 7
    functionLinenumber: 1417
    functionLinenumberEnd: 1576
    functionName: check_lhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - expand_rhs
    - XDEBUG
    - RDEBUG
    - fr_type_is_leaf
    - RWDEBUG
    - tmpl_is_exec
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - tmpl_attr_tail_num
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_to_values
    - fr_strerror_clear
    - tmpl_dcursor_init
    - next_map
    - XLAT_RESULT_SUCCESS
    - map_list_num_elements
    - fr_pair_parent
    linkageType: ''
    returnType: int
    signature: int check_lhs(request_t *request, unlang_frame_state_edit_t *state,
      edit_map_t *current)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1586,1
    - Dst: tmpl_attr_from_result
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1588,1
    - Dst: edit_map_t*::check_lhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1584
    functionDepth: 8
    functionLinenumber: 1584
    functionLinenumberEnd: 1591
    functionName: expanded_lhs_attribute
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - REXDENT
    - tmpl_attr_from_result
    - edit_map_t*::check_lhs
    linkageType: ''
    returnType: int
    signature: int expanded_lhs_attribute(request_t *request, unlang_frame_state_edit_t
      *state, edit_map_t *current)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1609,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1611,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1611,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1612,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1612,1
    - Dst: tmpl_to_values
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1614,1
    - Dst: edit_map_t*::check_lhs
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - request
    - state
    - current
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - edit_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1604
    functionDepth: 8
    functionLinenumber: 1604
    functionLinenumberEnd: 1623
    functionName: expand_lhs
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - XDEBUG
    - edit_map_t*::check_lhs
    - fr_assert
    - tmpl_to_values
    - fr_value_box_list_empty
    linkageType: ''
    returnType: int
    signature: int expand_lhs(request_t *request, unlang_frame_state_edit_t *state,
      edit_map_t *current)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1637,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1647,1
    - Dst: XDEBUG
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1649,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1652,1
    - Dst: unlang_frame_state_edit_t*::current::func
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1654,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1656,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1666,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1667,1
    - Dst: repeatable_clear
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1668,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1674,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1685,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1693,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1697
    functionName: process_edit
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - XDEBUG
    - TALLOC_FREE
    - repeatable_clear
    - unlang_frame_state_edit_t*::current::func
    - talloc_get_type_abort
    - RINDENT_RESTORE
    - fr_edit_list_abort
    - UNLANG_RESULT_RCODE
    - REXDENT
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t process_edit(unlang_result_t *p_result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1704,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1705,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1712,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1712,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1712,1
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1723,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1724,1
    - Dst: RINDENT_SAVE
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - request
    - state
    - el
    - map_list
    argTypes:
    - request_t*
    - unlang_frame_state_edit_t*
    - fr_edit_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1733
    functionName: edit_state_init_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_init
    - map_list_head
    - fr_edit_list_alloc
    - map_list_num_elements
    - MEM
    - fr_pair_list_init
    - RINDENT_SAVE
    linkageType: ''
    returnType: void
    signature: void edit_state_init_internal(request_t *request, unlang_frame_state_edit_t
      *state, fr_edit_list_t *el, map_list_t const *map_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_edit
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1749,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1750,1
    - Dst: unlang_interpret_edit_list
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1751,1
    - Dst: edit_state_init_internal
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1753,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1758,1
    - Dst: process_edit
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1747
    functionDepth: 2
    functionLinenumber: 1747
    functionLinenumberEnd: 1760
    functionName: unlang_edit_state_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - edit_state_init_internal
    - frame_repeat
    - talloc_get_type_abort
    - unlang_generic_to_edit
    - unlang_interpret_edit_list
    - process_edit
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_edit_state_init(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1790,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1790,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1795,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1796,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1801,1
    - Dst: unlang_edit_to_generic
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1801,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1802,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1805,1
    - Dst: edit_state_init_internal
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - request
    - success
    - el
    - map_list
    argTypes:
    - request_t*
    - bool*
    - fr_edit_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1775
    functionDepth: 3
    functionLinenumber: 1775
    functionLinenumberEnd: 1811
    functionName: unlang_edit_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - edit_state_init_internal
    - FRAME_CONF
    - unlang_edit_to_generic
    - unlang_interpret_push
    - talloc
    - talloc_get_type_abort
    - map_list_init
    - MEM
    - unlang_type_init
    linkageType: ''
    returnType: int
    signature: int unlang_edit_push(request_t *request, bool *success, fr_edit_list_t
      *el, map_list_t const *map_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/edit.c:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1828
    functionName: unlang_edit_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_edit_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module_priv.h:88,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/module_priv.h:89,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/module_priv.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: unlang_generic_to_module
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module_priv.h
    functionUses: 1
    functionsReached:
    - fr_assert
    - UNCONST
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_module_t
    signature: unlang_module_t *unlang_generic_to_module(unlang_t const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: unlang_module_to_generic
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module_priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_module_to_generic(unlang_module_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/switch_priv.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: unlang_group_to_switch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch_priv.h
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_switch_t
    signature: unlang_switch_t *unlang_group_to_switch(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sw
    argTypes:
    - unlang_switch_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: unlang_switch_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_switch_to_group(unlang_switch_t *sw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/switch_priv.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: unlang_group_to_case
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch_priv.h
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_case_t
    signature: unlang_case_t *unlang_group_to_case(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sw
    argTypes:
    - unlang_case_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: unlang_case_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_case_to_group(unlang_case_t *sw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/call_priv.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: unlang_group_to_call
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_priv.h
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_call_t
    signature: unlang_call_t *unlang_group_to_call(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - call
    argTypes:
    - unlang_call_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: unlang_call_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_call_to_group(unlang_call_t *call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - call
    argTypes:
    - unlang_call_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: unlang_call_to_generic
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_call_to_generic(unlang_call_t *call)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/module.c:63,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/module.c:63,1
    - Dst: unlang_type_init
      Src: /src/freeradius-server/src/lib/unlang/module.c:78,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/module.c:83,1
    - Dst: unlang_module_to_generic
      Src: /src/freeradius-server/src/lib/unlang/module.c:83,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/module.c:84,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/unlang/module.c:91,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/module.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - p_result
    - request
    - mi
    - method
    - top_frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - module_instance_t*
    - module_method_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 106
    functionName: unlang_module_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 1
    functionsReached:
    - FRAME_CONF
    - talloc_steal
    - unlang_interpret_push
    - talloc
    - module_thread
    - unlang_module_to_generic
    - MEM
    - unlang_type_init
    linkageType: ''
    returnType: int
    signature: "int unlang_module_push(unlang_result_t *p_result, request_t *request,\n\t\t
      \      module_instance_t *mi, module_method_t method, bool top_frame)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/module.c:125,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - request
    - resume
    argTypes:
    - request_t*
    - module_method_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: unlang_module_set_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 1
    functionsReached:
    - is_yielded
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int unlang_module_set_resume(request_t *request, module_method_t resume)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/lib/unlang/module.c:176,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/module.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - ctx
    - p_result
    - out
    - request
    - exp
    - resume
    - signal
    - sigmask
    - rctx
    argTypes:
    - TALLOC_CTX*
    - unlang_result_t*
    - fr_value_box_list_t*
    - request_t*
    - xlat_exp_head_t*
    - module_method_t
    - unlang_module_signal_t
    - fr_signal_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: unlang_module_yield_to_xlat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 1
    functionsReached:
    - unlang_xlat_push
    - unlang_module_yield
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_module_yield_to_xlat(TALLOC_CTX *ctx, unlang_result_t
      *p_result, fr_value_box_list_t *out,\n\t\t\t\t\t    request_t *request, xlat_exp_head_t
      const *exp,\n\t\t\t\t\t    module_method_t resume,\n\t\t\t\t\t    unlang_module_signal_t
      signal, fr_signal_t sigmask, void *rctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/lib/unlang/module.c:226,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/module.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - ctx
    - out
    - request
    - vpt
    - args
    - resume
    - signal
    - sigmask
    - rctx
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - tmpl_t*
    - unlang_tmpl_args_t*
    - module_method_t
    - unlang_module_signal_t
    - fr_signal_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: unlang_module_yield_to_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 4
    functionsReached:
    - unlang_module_yield
    - unlang_tmpl_push
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_module_yield_to_tmpl(TALLOC_CTX *ctx, fr_value_box_list_t
      *out,\n\t\t\t\t\t    request_t *request, tmpl_t const *vpt,\n\t\t\t\t\t    unlang_tmpl_args_t
      *args,\n\t\t\t\t\t    module_method_t resume,\n\t\t\t\t\t    unlang_module_signal_t
      signal, fr_signal_t sigmask, void *rctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/module.c:247,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/module.c:247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:256,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/module.c:257,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:265,1
    - Dst: resume
      Src: /src/freeradius-server/src/lib/unlang/module.c:275,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/unlang/module.c:276,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/unlang/module.c:276,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/lib/unlang/module.c:285,1
    - Dst: unlang_interpret_push_section
      Src: /src/freeradius-server/src/lib/unlang/module.c:287,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/module.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - p_result
    - request
    - subcs
    - default_rcode
    - resume
    - signal
    - sigmask
    - rctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - CONF_SECTION*
    - rlm_rcode_t
    - module_method_t
    - unlang_module_signal_t
    - fr_signal_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 293
    functionName: unlang_module_yield_to_section
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 2
    functionsReached:
    - FRAME_CONF
    - MODULE_CTX
    - unlang_generic_to_module
    - talloc_get_type_abort
    - module_thread
    - fr_table_str_by_value
    - unlang_interpret_push_section
    - RDEBUG3
    - fr_assert
    - resume
    - unlang_module_yield
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_module_yield_to_section(unlang_result_t *p_result,\n\t\t\t\t\t
      \      request_t *request, CONF_SECTION *subcs,\n\t\t\t\t\t       rlm_rcode_t
      default_rcode,\n\t\t\t\t\t       module_method_t resume,\n\t\t\t\t\t       unlang_module_signal_t
      signal, fr_signal_t sigmask, void *rctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:302,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:311,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:312,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:313,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:314,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/module.c:320,1
    - Dst: unlang_frame_state_module_t*::retry_cb
      Src: /src/freeradius-server/src/lib/unlang/module.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mctx
    - request
    argTypes:
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 324
    functionName: unlang_module_retry_now
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - unlang_frame_state_module_t*::retry_cb
    - fr_assert
    - talloc_get_type_abort
    - fr_time
    linkageType: ''
    returnType: void
    signature: void unlang_module_retry_now(module_ctx_t const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:333,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/module.c:338,1
    - Dst: unlang_frame_state_module_t*::retry_resume
      Src: /src/freeradius-server/src/lib/unlang/module.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 344
    functionName: unlang_module_retry_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - unlang_frame_state_module_t*::retry_resume
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_module_retry_resume(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:376,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:378,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:379,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/module.c:380,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:382,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/unlang/module.c:396,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/module.c:396,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/unlang/module.c:398,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/module.c:398,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/module.c:401,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/lib/unlang/module.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 7
    argNames:
    - request
    - resume
    - retry
    - signal
    - sigmask
    - rctx
    - retry_cfg
    argTypes:
    - request_t*
    - module_method_t
    - unlang_module_retry_t
    - unlang_module_signal_t
    - fr_signal_t
    - void*
    - fr_retry_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 407
    functionName: unlang_module_yield_to_retry
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 2
    functionsReached:
    - unlang_interpret_event_list
    - RPEDEBUG
    - fr_time
    - unlang_generic_to_module
    - fr_retry_init
    - talloc_get_type_abort
    - fr_timer_at
    - fr_assert
    - unlang_module_yield
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_module_yield_to_retry(request_t *request, module_method_t
      resume, unlang_module_retry_t retry,\n\t\t\t\t\t     unlang_module_signal_t
      signal, fr_signal_t sigmask, void *rctx,\n\t\t\t\t\t     fr_retry_config_t const
      *retry_cfg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/module.c:438,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/module.c:441,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:445,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/module.c:463,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:464,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:466,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - request
    - resume
    - signal
    - sigmask
    - rctx
    argTypes:
    - request_t*
    - module_method_t
    - unlang_module_signal_t
    - fr_signal_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 481
    functionName: unlang_module_yield
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 44
    functionsReached:
    - frame_repeat
    - unlang_generic_to_module
    - talloc_get_type_abort
    - REQUEST_VERIFY
    - fr_assert
    - fr_assert_msg
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_module_yield(request_t *request,\n\t\t\t\t
      \   module_method_t resume, unlang_module_signal_t signal, fr_signal_t sigmask,
      void *rctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/unlang/module.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: safe_lock
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void safe_lock(module_instance_t *mi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/unlang/module.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: safe_unlock
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void safe_unlock(module_instance_t *mi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:512,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/module.c:513,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/module.c:525,1
    - Dst: unlang_frame_state_module_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/module.c:539,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/unlang/module.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - request_t*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 553
    functionName: unlang_module_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - MODULE_CTX
    - unlang_generic_to_module
    - talloc_get_type_abort
    - unlang_frame_state_module_t*::signal
    linkageType: ''
    returnType: void
    signature: void unlang_module_signal(request_t *request, unlang_stack_frame_t
      *frame, fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:560,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:563,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:566,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:567,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/module.c:569,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/module.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: unlang_module_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - RDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_module_done(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:582,1
    - Dst: unlang_module_done
      Src: /src/freeradius-server/src/lib/unlang/module.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 587
    functionName: unlang_module_resume_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - unlang_module_done
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_module_resume_done(unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:596,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/module.c:597,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:601,1
    - Dst: safe_lock
      Src: /src/freeradius-server/src/lib/unlang/module.c:615,1
    - Dst: resume
      Src: /src/freeradius-server/src/lib/unlang/module.c:616,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/unlang/module.c:616,1
    - Dst: safe_unlock
      Src: /src/freeradius-server/src/lib/unlang/module.c:618,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:629,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/module.c:631,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:651,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/module.c:653,1
    - Dst: unlang_module_resume
      Src: /src/freeradius-server/src/lib/unlang/module.c:666,1
    - Dst: unlang_module_resume_done
      Src: /src/freeradius-server/src/lib/unlang/module.c:682,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 686
    functionName: unlang_module_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 1
    functionsReached:
    - unlang_module_resume
    - frame_repeat
    - safe_unlock
    - MODULE_CTX
    - unlang_generic_to_module
    - talloc_get_type_abort
    - unlang_module_resume_done
    - resume
    - fr_assert
    - safe_lock
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_module_resume(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:697,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:700,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/unlang/module.c:702,1
    - Dst: unlang_frame_state_module_t*::retry_cb
      Src: /src/freeradius-server/src/lib/unlang/module.c:709,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/unlang/module.c:709,1
    - Dst: unlang_stack_frame_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/module.c:730,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/unlang/module.c:736,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/module.c:736,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/module.c:738,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/module.c:739,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/module.c:744,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/unlang/module.c:745,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/unlang/module.c:745,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/unlang/module.c:745,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/module.c:749,1
    - Dst: unlang_frame_state_module_t*::retry_cb
      Src: /src/freeradius-server/src/lib/unlang/module.c:758,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/unlang/module.c:758,1
    - Dst: unlang_stack_frame_t*::signal
      Src: /src/freeradius-server/src/lib/unlang/module.c:760,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/module.c:766,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - ctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 767
    functionName: unlang_module_event_retry_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - unlang_frame_state_module_t*::retry_cb
    - RDEBUG
    - unlang_interpret_event_list
    - RPEDEBUG
    - unlang_stack_frame_t*::signal
    - MODULE_CTX
    - fr_timer_at
    - fr_retry_next
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_time_sub
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void unlang_module_event_retry_handler(UNUSED fr_timer_list_t *tl,
      fr_time_t now, void *ctx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/module.c:772,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/unlang/module.c:774,1
    - Dst: unlang_generic_to_module
      Src: /src/freeradius-server/src/lib/unlang/module.c:786,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:787,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/module.c:789,1
    - Dst: stack_depth_current
      Src: /src/freeradius-server/src/lib/unlang/module.c:789,1
    - Dst: call_env_expand
      Src: /src/freeradius-server/src/lib/unlang/module.c:803,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:809,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/unlang/module.c:826,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:827,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/module.c:838,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/module.c:838,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/module.c:843,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/module.c:870,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/module.c:870,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/unlang/module.c:872,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/unlang/module.c:874,1
    - Dst: safe_lock
      Src: /src/freeradius-server/src/lib/unlang/module.c:880,1
    - Dst: unlang_module_t*::mmc::mmb::method
      Src: /src/freeradius-server/src/lib/unlang/module.c:881,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/unlang/module.c:882,1
    - Dst: safe_unlock
      Src: /src/freeradius-server/src/lib/unlang/module.c:884,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:895,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:897,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/unlang/module.c:903,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/module.c:904,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/unlang/module.c:904,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/unlang/module.c:904,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/unlang/module.c:906,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/unlang/module.c:908,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/module.c:908,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/module.c:911,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/module.c:936,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/module.c:938,1
    - Dst: unlang_module_resume
      Src: /src/freeradius-server/src/lib/unlang/module.c:953,1
    - Dst: unlang_module_done
      Src: /src/freeradius-server/src/lib/unlang/module.c:971,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 105
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 973
    functionName: unlang_module
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - fr_assert_msg
    - MEM
    - RPEDEBUG
    - frame_repeat
    - fr_time
    - unlang_module_done
    - talloc_get_type_abort
    - module_thread
    - fr_time_delta_ispos
    - talloc_zero_array
    - unlang_module_t*::mmc::mmb::method
    - stack_depth_current
    - unlang_interpret_event_list
    - unlang_generic_to_module
    - fr_retry_init
    - call_env_expand
    - fr_assert
    - talloc_set_name
    - unlang_module_resume
    - fr_time_wrap
    - safe_unlock
    - fr_time_gt
    - MODULE_CTX
    - fr_timer_at
    - talloc_set_name_const
    - safe_lock
    - RDEBUG4
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_module(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/module.c:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1000
    functionName: unlang_module_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/module.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_module_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/group.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - unlang_stack_frame_t *frame
    argTypes:
    - UNUSED
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: unlang_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/group.c
    functionUses: 2
    functionsReached:
    - unlang_interpret_push_children
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_group(UNUSED unlang_result_t *p_result, request_t
      *request, UNUSED unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group
      Src: /src/freeradius-server/src/lib/unlang/group.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: unlang_policy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/group.c
    functionUses: 0
    functionsReached:
    - unlang_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_policy(unlang_result_t *result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/group.c:44,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/group.c:46,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/group.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: unlang_compile_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/group.c
    functionUses: 0
    functionsReached:
    - cf_item_next
    - unlang_compile_section
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_group(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/group.c:51,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/group.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: unlang_group_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/group.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_group_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/load_balance_priv.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: unlang_group_to_load_balance
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance_priv.h
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_load_balance_t
    signature: unlang_load_balance_t *unlang_group_to_load_balance(unlang_group_t
      *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - load_balance
    argTypes:
    - unlang_load_balance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: unlang_load_balance_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/load_balance_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_load_balance_to_group(unlang_load_balance_t
      *load_balance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/io.c:46,1
    - Dst: fr_dict_proto_dict
      Src: /src/freeradius-server/src/lib/unlang/io.c:46,1
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/lib/unlang/io.c:48,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/io.c:74,1
    - Dst: COPY_FIELD
      Src: /src/freeradius-server/src/lib/unlang/io.c:77,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/io.c:78,1
    - Dst: request_is_internal
      Src: /src/freeradius-server/src/lib/unlang/io.c:78,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/io.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - parent
    - namespace
    - detachable
    argTypes:
    - request_t*
    - fr_dict_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 83
    functionName: unlang_io_subrequest_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/io.c
    functionUses: 1
    functionsReached:
    - fr_dict_proto_dict
    - REQUEST_VERIFY
    - COPY_FIELD
    - fr_assert
    - request_local_alloc_internal
    - talloc_zero
    - request_is_internal
    linkageType: ''
    returnType: request_t
    signature: request_t *unlang_io_subrequest_alloc(request_t *parent, fr_dict_t
      const *namespace, bool detachable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: COPY_FIELD
    functionSourceFile: /src/freeradius-server/src/lib/unlang/io.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FIELD(_x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:38,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:39,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:39,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:40,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:40,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:41,1
    - Dst: xlat_exp_set_name_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:47,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:52,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:52,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:53,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:55,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - head
    - list
    argTypes:
    - xlat_exp_head_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: xlat_value_list_to_xlat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_aprint
    - xlat_exp_set_name_buffer
    - xlat_exp_insert_tail
    - talloc_free
    - fr_value_box_list_pop_head
    - xlat_exp_alloc
    - xlat_exp_set_name_shallow
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int xlat_value_list_to_xlat(xlat_exp_head_t *head, fr_value_box_list_t
      *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_purify_list_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - request
    argTypes:
    - xlat_exp_head_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: xlat_purify_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 1
    functionsReached:
    - xlat_purify_list_internal
    linkageType: ''
    returnType: int
    signature: int xlat_purify_list(xlat_exp_head_t *head, request_t *request)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:88,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:89,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:95,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:102,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:103,1
    - Dst: xlat_purify_list_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:105,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:118,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:130,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:132,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:135,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:136,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:138,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:139,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:139,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:147,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:148,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:150,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:163,1
    - Dst: xlat_purify_list_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:169,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:211,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:214,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:217,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:218,1
    - Dst: fr_dlist_insert_before
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:220,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:222,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:226,1
    - Dst: xlat_exp_t*::call::func::purify
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:238,1
    - Dst: xlat_purify_list_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:240,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:249,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:250,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:260,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:261,1
    - Dst: unlang_xlat_push_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:263,1
    - Dst: unlang_interpret_synchronous
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:271,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:272,1
    - Dst: xlat_instance_unregister_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:277,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:278,1
    - Dst: xlat_value_list_to_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:280,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:286,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 109
    argCount: 3
    argNames:
    - head
    - request
    - quote
    argTypes:
    - xlat_exp_head_t*
    - request_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 299
    functionName: xlat_purify_list_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 2
    functionsReached:
    - fr_sbuff_start
    - fr_dlist_pop_head
    - fr_value_box_bstrndup
    - unlang_interpret_synchronous
    - xlat_instance_unregister_func
    - fr_dlist_head
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_dlist_insert_before
    - fr_dlist_num_elements
    - xlat_exp_set_type
    - tmpl_is_attr
    - xlat_print
    - unlang_xlat_push_node
    - fr_value_box_list_init
    - talloc_steal
    - fr_assert
    - tmpl_rules_cast
    - fr_value_box_init
    - talloc_free
    - xlat_exp_foreach
    - fr_sbuff_used
    - fr_dlist_next
    - tmpl_contains_xlat
    - tmpl_xlat
    - xlat_exp_t*::call::func::purify
    - fr_dlist_remove
    - xlat_value_list_to_xlat
    - xlat_flags_merge
    - xlat_purify_list_internal
    - XLAT_RESULT_SUCCESS
    linkageType: ''
    returnType: int
    signature: int xlat_purify_list_internal(xlat_exp_head_t *head, request_t *request,
      fr_token_t quote)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:314,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:317,1
    - Dst: xlat_purify_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:319,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - head
    - intp
    argTypes:
    - xlat_exp_head_t*
    - unlang_interpret_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: xlat_purify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 2
    functionsReached:
    - talloc_free
    - unlang_interpret_set
    - fr_assert
    - request_local_alloc_internal
    - xlat_purify_list
    linkageType: ''
    returnType: int
    signature: int xlat_purify(xlat_exp_head_t *head, unlang_interpret_t *intp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:337,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 342
    functionName: xlat_value_box
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 0
    functionsReached:
    - tmpl_is_data
    - tmpl_value
    linkageType: ''
    returnType: fr_value_box_t
    signature: fr_value_box_t *xlat_value_box(xlat_exp_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_value_box
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:349,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - node
    - out
    argTypes:
    - xlat_exp_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: is_truthy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 11
    functionsReached:
    - xlat_value_box
    - fr_value_box_is_truthy
    linkageType: ''
    returnType: bool
    signature: bool is_truthy(xlat_exp_t *node, bool *out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:373,1
    - Dst: is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:378,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:392,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:404,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xlat_exp_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 410
    functionName: peephole_optimize_lor
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 0
    functionsReached:
    - is_truthy
    - talloc_free
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *peephole_optimize_lor(xlat_exp_t *lhs,  xlat_exp_t *rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:426,1
    - Dst: is_truthy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:431,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:434,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:438,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:447,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xlat_exp_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 453
    functionName: peephole_optimize_land
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 0
    functionsReached:
    - is_truthy
    - talloc_free
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *peephole_optimize_land(xlat_exp_t *lhs, xlat_exp_t *rhs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:478,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:479,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:479,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:484,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:485,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:491,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:492,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:493,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:496,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:508,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:509,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:509,1
    - Dst: xlat_value_box
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:520,1
    - Dst: xlat_value_box
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:523,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:526,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:528,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:528,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:532,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:532,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:533,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:534,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:534,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:535,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 5
    argNames:
    - ctx
    - out
    - lhs
    - op
    - rhs
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_t**
    - xlat_exp_t*
    - fr_token_t
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 542
    functionName: binary_peephole_optimize
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_aprint
    - talloc_free
    - xlat_value_box
    - tmpl_attr_tail_da
    - fr_value_calc_binary_op
    - tmpl_cast_in_place
    - tmpl_is_data
    - xlat_exp_alloc
    - tmpl_rules_cast
    - fr_type_is_null
    - tmpl_is_attr
    - tmpl_is_data_unresolved
    - xlat_exp_set_name_shallow
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int binary_peephole_optimize(TALLOC_CTX *ctx, xlat_exp_t **out, xlat_exp_t
      *lhs, fr_token_t op, xlat_exp_t *rhs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: peephole_optimize_lor
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:549,1
    - Dst: peephole_optimize_land
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:559,1
    - Dst: binary_peephole_optimize
      Src: /src/freeradius-server/src/lib/unlang/xlat_purify.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - out
    - lhs
    - op
    - rhs
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_t**
    - xlat_exp_t*
    - fr_token_t
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 544
    functionDepth: 4
    functionLinenumber: 544
    functionLinenumberEnd: 567
    functionName: xlat_purify_op
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_purify.c
    functionUses: 1
    functionsReached:
    - peephole_optimize_lor
    - binary_peephole_optimize
    - peephole_optimize_land
    linkageType: ''
    returnType: int
    signature: int xlat_purify_op(TALLOC_CTX *ctx, xlat_exp_t **out, xlat_exp_t *lhs,
      fr_token_t op, xlat_exp_t *rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - res
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: xlat_time_res_attr
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_table_value_by_str
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *xlat_time_res_attr(char const *res)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:153,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:154,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:154,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:157,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:158,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:161,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:166,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:166,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:167,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:170,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:175,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:187,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:187,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:189,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:190,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:193,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:195,1
    - Dst: xlat_fmt_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:198,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:199,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:205,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - out
    - node
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 212
    functionName: xlat_fmt_print
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - tmpl_is_xlat
    - xlat_exp_head
    - xlat_exp_foreach
    - fr_sbuff_used
    - fr_box_strvalue_buffer
    - xlat_fmt_print
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_assert
    - FR_SBUFF
    - tmpl_is_attr
    - fr_sbuff_in_strcpy
    - fr_sbuff_set
    - FR_SBUFF_IN_SPRINTF_RETURN
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t xlat_fmt_print(fr_sbuff_t *out, xlat_exp_t const *node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xlat_is_literal
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:233,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:237,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:241,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:243,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:246,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:252,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:258,1
    - Dst: xlat_fmt_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:260,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:261,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:264,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - request
    - node
    - args
    - line
    argTypes:
    - request_t*
    - xlat_exp_t*
    - fr_value_box_list_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 266
    functionName: xlat_debug_log_expansion
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - xlat_is_literal
    - RERROR
    - fr_sbuff_start
    - xlat_fmt_print
    - RDEBUG2
    - fr_value_box_list_next
    linkageType: ''
    returnType: void
    signature: void xlat_debug_log_expansion(request_t *request, xlat_exp_t const
      *node, fr_value_box_list_t const *args, UNUSED int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - request
    - node
    - result
    argTypes:
    - request_t*
    - xlat_exp_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: xlat_debug_log_list_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void xlat_debug_log_list_result(request_t *request, xlat_exp_t const
      *node, fr_value_box_list_t const *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - request
    - node
    - result
    argTypes:
    - request_t*
    - xlat_exp_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: xlat_debug_log_result
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void xlat_debug_log_result(request_t *request, xlat_exp_t const *node,
      fr_value_box_t const *result)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:303,1
    - Dst: xlat_arg_stringify
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:304,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:309,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:314,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:318,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:319,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:322,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:329,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:341,1
    - Dst: xlat_arg_parser_t*::func
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:343,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - request
    - arg
    - node
    - vb
    argTypes:
    - request_t*
    - xlat_arg_parser_t*
    - xlat_exp_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 348
    functionName: xlat_arg_stringify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_init
    - fr_value_box_strdup
    - fr_value_box_is_safe_for
    - fr_value_box_list_foreach
    - fr_value_box_mark_safe_for
    - xlat_arg_parser_t*::func
    - xlat_arg_stringify
    - fr_assert
    - fr_value_box_list_concat_in_place
    linkageType: ''
    returnType: int
    signature: int xlat_arg_stringify(request_t *request, xlat_arg_parser_t const
      *arg, xlat_exp_t const *node, fr_value_box_t *vb)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:375,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:392,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:392,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:404,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:417,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:417,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:418,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:419,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:425,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:442,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:444,1
    - Dst: xlat_arg_stringify
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:445,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:446,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:452,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:453,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:470,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:470,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:471,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:472,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:472,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:475,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:475,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:487,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:488,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:492,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:497,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:507,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:513,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:515,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:515,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:527,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:530,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:532,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:545,1
    - Dst: fr_value_box_get_cursor
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:545,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:552,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:562,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:562,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:566,1
    - Dst: fr_value_box_debug
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:567,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:568,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:572,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:580,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:584,1
    - Dst: tmpl_dcursor_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:592,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 112
    argCount: 7
    argNames:
    - ctx
    - list
    - request
    - name
    - arg
    - node
    - arg_num
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - char*
    - xlat_arg_parser_t*
    - xlat_exp_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 600
    functionName: xlat_process_arg_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_current
    - fr_type_is_leaf
    - fr_value_box_clear_value
    - fr_value_box_cast_in_place
    - REDEBUG
    - fr_value_box_alloc
    - fr_type_to_str
    - MEM
    - RPEDEBUG
    - fr_value_box_strdup
    - fr_dlist_num_elements
    - xlat_arg_stringify
    - fr_value_box_list_empty
    - fr_type_is_null
    - xlat_exp_head
    - tmpl_dcursor_value_box_init
    - fr_value_box_list_insert_tail
    - fr_assert
    - fr_value_box_list_concat_in_place
    - fr_value_box_list_next
    - fr_value_box_get_cursor
    - fr_value_box_is_safe_for
    - tmpl_afrom_attr_str
    - fr_value_box_list_num_elements
    - fr_value_box_debug
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_process_arg_list(TALLOC_CTX *ctx, fr_value_box_list_t
      *list, request_t *request,\n\t\t\t\t\t   char const *name, xlat_arg_parser_t
      const *arg, xlat_exp_t const *node, unsigned int arg_num)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:634,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:635,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:647,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:663,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:669,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:670,1
    - Dst: xlat_process_arg_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:672,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:679,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:685,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:718,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:739,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:747,1
    - Dst: fr_value_box_list_replace
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:748,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:749,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 4
    argNames:
    - ctx
    - list
    - request
    - node
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 763
    functionName: xlat_process_args
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - xlat_exp_head
    - xlat_exp_next
    - talloc_free
    - xlat_process_arg_list
    - REDEBUG
    - fr_cond_assert
    - fr_value_box_list_pop_head
    - fr_value_box_list_replace
    - fr_value_box_list_empty
    - fr_value_box_list_next
    - fr_value_box_list_talloc_free_head
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_process_args(TALLOC_CTX *ctx, fr_value_box_list_t
      *list,\n\t\t\t\trequest_t *request, xlat_exp_t const *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_void
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:784,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:786,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:788,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:789,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:792,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:799,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:800,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:800,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:803,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:808,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - request
    - func
    - returned
    - pos
    argTypes:
    - request_t*
    - xlat_t*
    - fr_value_box_list_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 813
    functionName: xlat_process_return
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_value_box_mark_safe_for
    - fr_value_box_list_next
    - fr_type_is_null
    - fr_type_to_str
    - fr_assert_fail
    - fr_type_is_void
    linkageType: ''
    returnType: bool
    signature: bool xlat_process_return(request_t *request, xlat_t const *func, fr_value_box_list_t
      const *returned, fr_value_box_t *pos)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:836,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:840,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:840,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:841,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:841,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:849,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:849,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:854,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:854,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:859,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:859,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:873,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:873,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:874,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:874,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:878,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:878,1
    - Dst: fr_time_to_usec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:879,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:879,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:887,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:889,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:889,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:893,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:893,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:898,1
    - Dst: strftime
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:900,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:902,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:902,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:903,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:903,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:907,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:909,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:909,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:914,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:916,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:916,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:921,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:923,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:923,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:933,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:933,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:938,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:940,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:940,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:945,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:945,1
    - Dst: fr_time_to_usec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:946,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:950,1
    - Dst: strftime
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:952,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:954,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:954,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:955,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:955,1
    - Dst: CTIME_R
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:962,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:963,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:966,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:966,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:967,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:967,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:975,1
    - Dst: strftime
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:977,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:978,1
    - Dst: strcat
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:981,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:983,1
    - Dst: fr_time_to_msec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:984,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:986,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:986,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:987,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:987,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:992,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:994,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:994,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1000,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1004,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 126
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - letter
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 1007
    functionName: xlat_eval_one_letter
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - REDEBUG
    - strftime
    - CTIME_R
    - fr_value_box_alloc
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_strdup
    - fr_time
    - fr_time_to_msec
    - fr_syserror
    - gmtime_r
    - fr_value_box_list_insert_tail
    - localtime_r
    - fr_time_to_usec
    - fr_assert_fail
    - strchr
    - snprintf
    - strcat
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_eval_one_letter(TALLOC_CTX *ctx, fr_value_box_list_t
      *out,\n\t\t\t\t   request_t *request, char letter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1019,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1022,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1058,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1059,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1067
    functionName: xlat_exec_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_move
    - fr_strerror_printf
    - talloc_get_type_abort
    - fr_table_str_by_value
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_exec_resume(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t      xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t
      *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_thread_instance_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1082,1
    - Dst: signal
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1084,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - signal
    - exp
    - request
    - rctx
    - action
    argTypes:
    - xlat_func_signal_t
    - xlat_exp_t*
    - request_t*
    - void*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1085
    functionName: xlat_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - signal
    - xlat_thread_instance_find
    - XLAT_CTX
    linkageType: ''
    returnType: void
    signature: "void xlat_signal(xlat_func_signal_t signal, xlat_exp_t const *exp,\n\t\t
      request_t *request, void *rctx, fr_signal_t action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1092
    functionName: xlat_null_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_null_resume(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t
      *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1127,1
    - Dst: resume
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1130,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1130,1
    - Dst: xlat_thread_instance_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1133,1
    - Dst: resume
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1134,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1134,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1135,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1137,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1142,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1146,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1148,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1150,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1150,1
    - Dst: xlat_process_return
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1151,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1152,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1158,1
    - Dst: xlat_frame_eval
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 9
    argNames:
    - ctx
    - out
    - child
    - request
    - head
    - in
    - result
    - resume
    - rctx
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_exp_head_t**
    - request_t*
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_value_box_list_t*
    - xlat_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1168
    functionName: xlat_frame_eval_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - unlang_xlat_yield
    - fr_dcursor_current
    - fr_dcursor_next
    - xlat_exp_next
    - VALUE_BOX_LIST_VERIFY
    - xlat_process_return
    - RDEBUG2
    - resume
    - XLAT_CTX
    - xlat_frame_eval
    - xlat_thread_instance_find
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_frame_eval_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t     xlat_exp_head_t const **child,\n\t\t\t\t     request_t *request,
      \ xlat_exp_head_t const *head, xlat_exp_t const **in,\n\t\t\t\t     fr_value_box_list_t
      *result, xlat_func_t resume, void *rctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1194,1
    - Dst: xlat_thread_instance_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1202,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1203,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1205,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1206,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1209,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1212,1
    - Dst: xlat_debug_log_expansion
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1213,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1214,1
    - Dst: xlat_process_args
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1217,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1222,1
    - Dst: xlat_exp_t*::call::func::func
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1223,1
    - Dst: XLAT_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1224,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1226,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1230,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1234,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1238,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1242,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1246,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1247,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1249,1
    - Dst: xlat_debug_log_result
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1250,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1250,1
    - Dst: xlat_process_return
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1251,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1253,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1254,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1257,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1271,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1271,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1287,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1288,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1288,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1289,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1289,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1290,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1297,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1298,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1300,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1305,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1306,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1307,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1312,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1312,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1314,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1315,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1316,1
    - Dst: VALUE_BOX_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1319,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1321,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1326,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1326,1
    - Dst: tmpl_eval_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1328,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1329,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1337,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1341,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1348,1
    - Dst: xlat_frame_eval
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1349,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 8
    argNames:
    - ctx
    - out
    - child
    - request
    - head
    - in
    - env_data
    - result
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_exp_head_t**
    - request_t*
    - xlat_exp_head_t*
    - xlat_exp_t**
    - void*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1350
    functionName: xlat_frame_eval_repeat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_current
    - tmpl_is_exec
    - fr_value_box_list_pop_head
    - tmpl_eval_cast_in_place
    - fr_value_box_alloc
    - xlat_frame_eval
    - MEM
    - fr_dcursor_next
    - fr_value_box_strdup
    - xlat_exp_next
    - VALUE_BOX_LIST_VERIFY
    - fr_value_box_list_empty
    - fr_value_box_list_talloc_free_head
    - VALUE_BOX_VERIFY
    - fr_dcursor_insert
    - talloc_steal
    - xlat_process_return
    - fr_assert
    - RDEBUG3
    - fr_value_box_list_concat_in_place
    - XLAT_DEBUG
    - xlat_debug_log_expansion
    - xlat_process_args
    - unlang_interpret_stack_depth
    - fr_value_box_list_move
    - xlat_debug_log_result
    - RINDENT
    - fr_dcursor_tail
    - fr_value_box_list_talloc_free
    - xlat_exp_t*::call::func::func
    - XLAT_CTX
    - REXDENT
    - xlat_thread_instance_find
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_frame_eval_repeat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t     xlat_exp_head_t const **child,\n\t\t\t\t     request_t *request,
      xlat_exp_head_t const *head, xlat_exp_t const **in,\n\t\t\t\t     void *env_data,
      fr_value_box_list_t *result)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1387,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1398,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1401,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1403,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1403,1
    - Dst: tmpl_dcursor_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1405,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1408,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1415,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1416,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1418,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1418,1
    - Dst: fr_value_box_set_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1419,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1419,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1421,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1425,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1425,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1427,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1429,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1430,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1432,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1432,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1436,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1436,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1445,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1445,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1445,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1451,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1451,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1452,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1452,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1453,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1457,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1457,1
    - Dst: xlat_debug_log_expansion
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1460,1
    - Dst: xlat_eval_one_letter
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1461,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1463,1
    - Dst: xlat_debug_log_list_result
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1467,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1468,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1475,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1475,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1477,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1478,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1478,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1481,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1481,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1481,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1483,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1483,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1483,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1484,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1487,1
    - Dst: tmpl_eval_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1492,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1494,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1497,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1499,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1499,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1502,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1502,1
    - Dst: xlat_debug_log_expansion
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1505,1
    - Dst: tmpl_eval_pair
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1507,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1509,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1509,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1515,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1515,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1515,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1516,1
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1517,1
    - Dst: xlat_debug_log_expansion
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1519,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1521,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1523,1
    - Dst: TMPL_ARGS_EXEC
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1524,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1524,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1540,1
    - Dst: xlat_debug_log_list_result
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1543,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1544,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1548,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1548,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1555,1
    - Dst: xlat_frame_eval_repeat
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1565,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1571,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1571,1
    - Dst: xlat_debug_log_expansion
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1574,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1575,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1575,1
    - Dst: regex_request_to_sub
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1576,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1577,1
    - Dst: xlat_debug_log_result
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1581,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1582,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1587,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1587,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1604,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1610,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1611,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1611,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1612,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 146
    argCount: 6
    argNames:
    - ctx
    - out
    - child
    - request
    - head
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_exp_head_t**
    - request_t*
    - xlat_exp_head_t*
    - xlat_exp_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1379
    functionDepth: 5
    functionLinenumber: 1379
    functionLinenumberEnd: 1615
    functionName: xlat_frame_eval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 3
    functionsReached:
    - tmpl_is_exec
    - tmpl_needs_resolving
    - tmpl_attr_tail_da
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_eval_cast_in_place
    - fr_value_box_alloc
    - TMPL_ARGS_EXEC
    - UNLANG_RESULT_RCODE
    - MEM
    - unlang_xlat_yield
    - unlang_tmpl_push
    - fr_value_box_alloc_null
    - unlikely
    - xlat_exp_next
    - VALUE_BOX_LIST_VERIFY
    - fr_table_str_by_value
    - unlang_interpret_frame_talloc_ctx
    - tmpl_is_attr
    - xlat_frame_eval_repeat
    - tmpl_is_xlat
    - fr_value_box_list_init
    - xlat_exp_head
    - tmpl_dcursor_value_box_init
    - xlat_eval_one_letter
    - tmpl_eval_pair
    - fr_value_box_list_insert_tail
    - fr_assert
    - talloc_array_length
    - XLAT_DEBUG
    - xlat_debug_log_expansion
    - fr_time_delta_from_sec
    - fr_value_box_set_attr
    - xlat_debug_log_list_result
    - unlang_interpret_stack_depth
    - fr_dcursor_append
    - talloc_free
    - fr_value_box_list_move
    - xlat_debug_log_result
    - fr_value_box_list_talloc_free
    - fr_dcursor_tail
    - regex_request_to_sub
    - talloc_zero
    - fr_value_box_list_num_elements
    - tmpl_value
    - fr_value_box_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_frame_eval(TALLOC_CTX *ctx, fr_dcursor_t *out,
      xlat_exp_head_t const **child,\n\t\t\t      request_t *request, xlat_exp_head_t
      const *head, xlat_exp_t const **in)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1625,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1628,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1629,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1642,1
    - Dst: xlat_sync_stringify
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1644,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1649,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1649,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1651,1
    - Dst: fr_value_box_list_insert_before
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1656,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1658,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1664,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1670,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1675,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1680,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1680,1
    - Dst: escape
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1681,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1681,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1683,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1684,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1687,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1688,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 6
    argNames:
    - ctx
    - request
    - head
    - list
    - escape
    - escape_ctx
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - xlat_exp_head_t*
    - fr_value_box_list_t*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1692
    functionName: xlat_sync_stringify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_head
    - xlat_sync_stringify
    - fr_value_box_cast_in_place
    - talloc_array
    - fr_value_box_mark_safe_for
    - fr_value_box_cast
    - MEM
    - fr_value_box_list_insert_before
    - fr_value_box_alloc_null
    - fr_value_box_list_remove
    - xlat_exp_next
    - escape
    - xlat_exp_head
    - UNCONST
    - fr_assert
    - fr_value_box_list_next
    - fr_value_box_is_safe_for
    - talloc_free
    - fr_value_box_strdup_shallow_replace
    linkageType: ''
    returnType: int
    signature: "int xlat_sync_stringify(TALLOC_CTX *ctx, request_t *request, xlat_exp_head_t
      const *head, fr_value_box_list_t *list,\n\t\t\t       xlat_escape_legacy_t escape,
      void const *escape_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1699,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1703,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1707,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1712,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1714,1
    - Dst: xlat_impure_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1723,1
    - Dst: unlang_interpret_get
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1723,1
    - Dst: unlang_interpret
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1724,1
    - Dst: unlang_interpret_synchronous
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1726,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1726,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1731,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1741,1
    - Dst: xlat_sync_stringify
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1745,1
    - Dst: fr_value_box_list_aprint
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1749,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1752,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1754,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1758,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 6
    argNames:
    - ctx
    - out
    - request
    - head
    - escape
    - escape_ctx
    argTypes:
    - TALLOC_CTX*
    - char**
    - request_t*
    - xlat_exp_head_t*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1694
    functionDepth: 6
    functionLinenumber: 1694
    functionLinenumberEnd: 1759
    functionName: xlat_eval_sync
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - xlat_sync_stringify
    - unlang_xlat_push
    - fr_value_box_list_init
    - xlat_impure_func
    - talloc_free
    - unlang_interpret_event_list
    - unlang_interpret
    - fr_value_box_list_empty
    - talloc_strdup
    - unlang_interpret_synchronous
    - talloc_new
    - XLAT_DEBUG
    - fr_value_box_list_aprint
    - XLAT_RESULT_SUCCESS
    - talloc_strlen
    - unlang_interpret_get
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_eval_sync(TALLOC_CTX *ctx, char **out, request_t *request,
      xlat_exp_head_t const * const head,\n\t\t\t      xlat_escape_legacy_t escape,
      void const *escape_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1780,1
    - Dst: xlat_eval_sync
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1782,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1784,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1799,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1800,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1807,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 7
    argNames:
    - ctx
    - out
    - outlen
    - request
    - head
    - escape
    - escape_ctx
    argTypes:
    - TALLOC_CTX*
    - char**
    - size_t
    - request_t*
    - xlat_exp_head_t*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1774
    functionDepth: 7
    functionLinenumber: 1774
    functionLinenumberEnd: 1812
    functionName: _xlat_eval_compiled
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - fr_assert
    - fr_strerror_const
    - xlat_eval_sync
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t _xlat_eval_compiled(TALLOC_CTX *ctx, char **out, size_t outlen,
      request_t *request,\n\t\t\t\t   xlat_exp_head_t const *head, xlat_escape_legacy_t
      escape, void const *escape_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1834,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1839,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1840,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1848,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1856,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1858,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1863,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1863,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1865,1
    - Dst: _xlat_eval_compiled
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1869,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1870,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 7
    argNames:
    - ctx
    - out
    - outlen
    - request
    - fmt
    - escape
    - escape_ctx
    argTypes:
    - TALLOC_CTX*
    - char**
    - size_t
    - request_t*
    - char*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1828
    functionDepth: 8
    functionLinenumber: 1828
    functionLinenumberEnd: 1875
    functionName: _xlat_eval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 2
    functionsReached:
    - unlang_interpret_event_list
    - talloc_free
    - xlat_tokenize
    - REMARKER
    - _xlat_eval_compiled
    - RINDENT
    - FR_SBUFF_IN_STR
    - talloc_zero_array
    - fr_strerror
    - REXDENT
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t _xlat_eval(TALLOC_CTX *ctx, char **out, size_t outlen, request_t
      *request, char const *fmt,\n\t\t   xlat_escape_legacy_t escape, void const *escape_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1880,1
    - Dst: _xlat_eval
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - outlen
    - request
    - fmt
    - escape
    - escape_ctx
    argTypes:
    - char*
    - size_t
    - request_t*
    - char*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1877
    functionDepth: 9
    functionLinenumber: 1877
    functionLinenumberEnd: 1883
    functionName: xlat_eval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 5
    functionsReached:
    - _xlat_eval
    - fr_assert
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_eval(char *out, size_t outlen, request_t *request,\n\t\t
      \ char const *fmt, xlat_escape_legacy_t escape, void const *escape_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1888,1
    - Dst: _xlat_eval_compiled
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - outlen
    - request
    - xlat
    - escape
    - escape_ctx
    argTypes:
    - char*
    - size_t
    - request_t*
    - xlat_exp_head_t*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1885
    functionDepth: 8
    functionLinenumber: 1885
    functionLinenumberEnd: 1891
    functionName: xlat_eval_compiled
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - _xlat_eval_compiled
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_eval_compiled(char *out, size_t outlen, request_t *request,\n\t\t\t
      \  xlat_exp_head_t const *xlat, xlat_escape_legacy_t escape, void const *escape_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1896,1
    - Dst: _xlat_eval
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - out
    - request
    - fmt
    - escape
    - escape_ctx
    argTypes:
    - TALLOC_CTX*
    - char**
    - request_t*
    - char*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1893
    functionDepth: 9
    functionLinenumber: 1893
    functionLinenumberEnd: 1900
    functionName: xlat_aeval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 3
    functionsReached:
    - _xlat_eval
    - fr_assert
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_aeval(TALLOC_CTX *ctx, char **out, request_t *request,
      char const *fmt,\n\t\t   xlat_escape_legacy_t escape, void const *escape_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1905,1
    - Dst: _xlat_eval_compiled
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - out
    - request
    - xlat
    - escape
    - escape_ctx
    argTypes:
    - TALLOC_CTX*
    - char**
    - request_t*
    - xlat_exp_head_t*
    - xlat_escape_legacy_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1902
    functionDepth: 8
    functionLinenumber: 1902
    functionLinenumberEnd: 1909
    functionName: xlat_aeval_compiled
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - _xlat_eval_compiled
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_aeval_compiled(TALLOC_CTX *ctx, char **out, request_t
      *request,\n\t\t\t    xlat_exp_head_t const *xlat, xlat_escape_legacy_t escape,
      void const *escape_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1923,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1932,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1932,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1935,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1939,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1940,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - argv
    - head
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t***
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1946
    functionName: xlat_flatten_to_argv
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 2
    functionsReached:
    - fr_strerror_printf
    - talloc_steal
    - fr_value_box_list_talloc_free
    - fr_assert
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: int
    signature: int xlat_flatten_to_argv(TALLOC_CTX *ctx, xlat_exp_head_t ***argv,
      xlat_exp_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1930
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1939,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1941
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 4
    functionsReached:
    - fr_assert
    - talloc_steal
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1973,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1974,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1979,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1985,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1986,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1991,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1998,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2006,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2012,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 4
    argNames:
    - head
    - walker
    - type
    - uctx
    argTypes:
    - xlat_exp_head_t*
    - xlat_walker_t
    - xlat_type_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1958
    functionDepth: 1
    functionLinenumber: 1958
    functionLinenumberEnd: 2020
    functionName: xlat_eval_walk
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 1
    functionsReached:
    - walker
    - xlat_exp_head
    - xlat_eval_walk
    linkageType: ''
    returnType: int
    signature: int xlat_eval_walk(xlat_exp_head_t *head, xlat_walker_t walker, xlat_type_t
      type, void *uctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1973,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1974,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1979,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1985,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1986,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1991,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:1998,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2006,1
    - Dst: walker
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2012,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 2017
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 4
    functionsReached:
    - walker
    - xlat_exp_head
    - xlat_eval_walk
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2029,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2030,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2034,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2035,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2042
    functionName: xlat_eval_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_autoload
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int xlat_eval_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2046,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/unlang/xlat_eval.c:2050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2051
    functionName: xlat_eval_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_eval.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void xlat_eval_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/caller.c:35,1
    - Dst: unlang_group_to_caller
      Src: /src/freeradius-server/src/lib/unlang/caller.c:36,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/caller.c:38,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/caller.c:38,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/caller.c:44,1
    - Dst: unlang_group
      Src: /src/freeradius-server/src/lib/unlang/caller.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: unlang_caller
    functionSourceFile: /src/freeradius-server/src/lib/unlang/caller.c
    functionUses: 0
    functionsReached:
    - unlang_group_to_caller
    - RDEBUG2
    - fr_assert
    - unlang_list_empty
    - unlang_group
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_caller(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/caller.c:57,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/caller.c:71,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/caller.c:73,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/caller.c:75,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/caller.c:75,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/caller.c:79,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/caller.c:81,1
    - Dst: fr_dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/unlang/caller.c:85,1
    - Dst: fr_dict_autoload_talloc
      Src: /src/freeradius-server/src/lib/unlang/caller.c:87,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/caller.c:89,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/caller.c:97,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/caller.c:98,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/caller.c:106,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/caller.c:111,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/caller.c:113,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/caller.c:121,1
    - Dst: unlang_group_to_caller
      Src: /src/freeradius-server/src/lib/unlang/caller.c:122,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/caller.c:131,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/caller.c:134,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/caller.c:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 140
    functionName: unlang_compile_caller
    functionSourceFile: /src/freeradius-server/src/lib/unlang/caller.c
    functionUses: 0
    functionsReached:
    - cf_log_perr
    - fr_dict_by_protocol_name
    - memcpy
    - talloc_free
    - unlang_group_to_caller
    - unlang_compile_section
    - talloc_steal
    - cf_section_name2
    - DOC_KEYWORD_REF
    - unlang_list_empty
    - fr_dict_autoload_talloc
    - unlang_generic_to_group
    - cf_section_name2_quote
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_caller(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/caller.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: unlang_caller_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/caller.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_caller_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/finally.c:44,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/finally.c:45,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/finally.c:47,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/finally.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: unlang_timeout_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/finally.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - RDEBUG
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_timeout_handler(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/finally.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: unlang_finally_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/finally.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_finally_resume(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/finally.c:72,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/unlang/finally.c:80,1
    - Dst: fr_timer_remaining
      Src: /src/freeradius-server/src/lib/unlang/finally.c:80,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/finally.c:81,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/unlang/finally.c:81,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/finally.c:81,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/finally.c:82,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/finally.c:85,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/finally.c:95,1
    - Dst: unlang_interpret_push_instruction
      Src: /src/freeradius-server/src/lib/unlang/finally.c:95,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/finally.c:96,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/finally.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 107
    functionName: unlang_finally
    functionSourceFile: /src/freeradius-server/src/lib/unlang/finally.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_timer_remaining
    - unlang_interpret_event_list
    - FRAME_CONF
    - frame_repeat
    - talloc_get_type_abort
    - fr_time_delta_lt
    - fr_timer_in
    - unlang_interpret_signal
    - unlang_interpret_push_instruction
    - unlang_interpret_frame_talloc_ctx
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_finally(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/finally.c:151,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/finally.c:152,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/finally.c:158,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/finally.c:158,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/finally.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - request
    - instruction
    - min_time
    - top_frame
    argTypes:
    - request_t*
    - void*
    - fr_time_delta_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 167
    functionName: unlang_finally_push_instruction
    functionSourceFile: /src/freeradius-server/src/lib/unlang/finally.c
    functionUses: 0
    functionsReached:
    - frame_repeat
    - FRAME_CONF
    - unlang_interpret_push
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: int
    signature: int unlang_finally_push_instruction(request_t *request, void *instruction,
      fr_time_delta_t min_time, bool top_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/finally.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 187
    functionName: unlang_finally_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/finally.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_finally_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_rcode
      Src: /src/freeradius-server/src/lib/unlang/try.c:32,1
    - Dst: unlang_generic_to_try
      Src: /src/freeradius-server/src/lib/unlang/try.c:33,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/try.c:35,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/try.c:36,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/try.c:43,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/try.c:44,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/try.c:51,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/try.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 58
    functionName: skip_to_catch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/try.c
    functionUses: 0
    functionsReached:
    - FRAME_CONF
    - unlang_interpret_push
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG3
    - unlang_interpret_rcode
    - unlang_generic_to_try
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t skip_to_catch(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/try.c:67,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/try.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: unlang_try
    functionSourceFile: /src/freeradius-server/src/lib/unlang/try.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_push_children
    - frame_repeat
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_try(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/try.c:74,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/try.c:86,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:87,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:89,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/try.c:89,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/try.c:93,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:94,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/try.c:98,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/unlang/try.c:98,1
    - Dst: cf_section_next
      Src: /src/freeradius-server/src/lib/unlang/try.c:99,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/try.c:102,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/try.c:102,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:103,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/try.c:107,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/try.c:110,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/try.c:111,1
    - Dst: unlang_compile_ctx_copy
      Src: /src/freeradius-server/src/lib/unlang/try.c:116,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/try.c:122,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/try.c:122,1
    - Dst: cf_section_next
      Src: /src/freeradius-server/src/lib/unlang/try.c:123,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:132,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:135,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/try.c:135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/try.c:136,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/try.c:140,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/try.c:146,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:148,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:153,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:154,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/try.c:159,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/try.c:160,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:162,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:167,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:168,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/try.c:192,1
    - Dst: unlang_compile_children
      Src: /src/freeradius-server/src/lib/unlang/try.c:250,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 107
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 251
    functionName: unlang_compile_try
    functionSourceFile: /src/freeradius-server/src/lib/unlang/try.c
    functionUses: 0
    functionsReached:
    - cf_section_argv
    - cf_parent
    - talloc_free
    - unlang_compile_children
    - unlang_compile_ctx_copy
    - unlang_group_to_generic
    - cf_item_next
    - DOC_KEYWORD_REF
    - cf_section_name2
    - strcmp
    - cf_section_name1
    - fr_table_value_by_str
    - unlang_group_allocate
    - cf_section_next
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_try(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/try.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: unlang_try_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/try.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_try_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:48,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - UNUSED*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: unlang_timeout_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_timeout_signal(UNUSED request_t *request, unlang_stack_frame_t
      *frame, fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:57,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:58,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:68,1
    - Dst: unlang_stack_signal
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:77,1
    - Dst: is_yielded
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:87,1
    - Dst: is_unwinding
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:87,1
    - Dst: unlang_request_is_scheduled
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:87,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:87,1
    - Dst: RINDENT_RESTORE
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: unlang_timeout_handler
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - is_unwinding
    - RDEBUG
    - talloc_get_type_abort
    - RINDENT_RESTORE
    - is_yielded
    - unlang_stack_signal
    - unlang_request_is_scheduled
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void unlang_timeout_handler(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: unlang_timeout_resume_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_timeout_resume_done(unlang_result_t *p_result,
      UNUSED request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:109,1
    - Dst: RINDENT_SAVE
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:114,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:116,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:116,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:118,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:122,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: unlang_timeout_set
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - unlang_interpret_event_list
    - frame_repeat
    - unlang_interpret_push_children
    - talloc_get_type_abort
    - fr_timer_in
    - RINDENT_SAVE
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_timeout_set(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:129,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:130,1
    - Dst: fr_time_delta_lteq
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:142,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:142,1
    - Dst: unlang_timeout_set
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: unlang_timeout_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - talloc_get_type_abort
    - fr_time_delta_from_usec
    - unlang_timeout_set
    - fr_time_delta_lteq
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_timeout_done(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:153,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:156,1
    - Dst: unlang_group_to_timeout
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:157,1
    - Dst: unlang_timeout_set
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:168,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:171,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:173,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 178
    functionName: unlang_timeout
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - unlang_group_to_timeout
    - fr_value_box_list_init
    - frame_repeat
    - talloc_get_type_abort
    - unlang_timeout_set
    - unlang_tmpl_push
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_timeout(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:182,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:187,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:194,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:196,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:198,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:198,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:202,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:204,1
    - Dst: unlang_group_to_timeout
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:207,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:209,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:211,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:212,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:212,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:213,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:214,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:226,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:228,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:229,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:234,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:235,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:242,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:242,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:243,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:247,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:248,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:250,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:254,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:255,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:262,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:263,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:271,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:274,1
    - Dst: unlang_group_to_timeout
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:275,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 280
    functionName: unlang_compile_timeout
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - unlang_group_to_timeout
    - isdigit
    - tmpl_is_list
    - tmpl_cast_set
    - unlang_compile_section
    - pass2_fixup_tmpl
    - strlen
    - fr_strerror
    - cf_log_err
    - cf_item_to_section
    - cf_section_name2
    - cf_item_next
    - cf_section_to_item
    - cf_section_name2_quote
    - DOC_KEYWORD_REF
    - tmpl_contains_regex
    - unlang_group_allocate
    - fr_time_delta_from_sec
    - cf_canonicalize_error
    - cf_log_perr
    - talloc_free
    - fr_time_delta_from_str
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_timeout(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/timeout.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 299
    functionName: unlang_timeout_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_timeout_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:62,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:64,1
    - Dst: fr_state_store_in_parent
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:76,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:80,1
    - Dst: repeatable_clear
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:92,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - request
    - unlang_stack_frame_t *frame
    - action
    argTypes:
    - request_t*
    - UNUSED
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 119
    functionName: unlang_child_request_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/child_request.c
    functionUses: 0
    functionsReached:
    - repeatable_clear
    - talloc_get_type_abort
    - fr_state_store_in_parent
    - request_is_detached
    - RDEBUG3
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void unlang_child_request_signal(request_t *request, UNUSED unlang_stack_frame_t
      *frame, fr_signal_t action)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:129,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:137,1
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:137,1
    - Dst: fr_state_store_in_parent
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:145,1
    - Dst: fr_state_discard_child
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:158,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:163,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:165,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:174,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:175,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 183
    functionName: unlang_child_request_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/child_request.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_state_store_in_parent
    - request_is_detached
    - fr_assert
    - fr_state_discard_child
    - fr_assert_msg
    - RDEBUG3
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_child_request_done(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:211,1
    - Dst: unlang_interpret_push_instruction
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:211,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:212,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:216,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cr
    argTypes:
    - unlang_child_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: unlang_child_request_stack_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/child_request.c
    functionUses: 0
    functionsReached:
    - unlikely
    - FRAME_CONF
    - unlang_interpret_push_instruction
    - frame_current
    - repeatable_set
    linkageType: ''
    returnType: int
    signature: int unlang_child_request_stack_init(unlang_child_request_t *cr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:247,1
    - Dst: unlang_child_request_stack_init
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ctx
    - out
    - child
    - p_result
    - sibling_count
    - unique_session_ptr
    - free_child
    argTypes:
    - TALLOC_CTX*
    - unlang_child_request_t*
    - request_t*
    - unlang_result_t*
    - unsigned int*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: unlang_child_request_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/child_request.c
    functionUses: 1
    functionsReached:
    - unlang_child_request_stack_init
    - talloc_bstrdup
    linkageType: ''
    returnType: int
    signature: "int unlang_child_request_init(TALLOC_CTX *ctx, unlang_child_request_t
      *out, request_t *child,\n\t\t\t      unlang_result_t *p_result, unsigned int
      *sibling_count, void const *unique_session_ptr, bool free_child)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/child_request.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 289
    functionName: unlang_child_request_op_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/child_request.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: int
    signature: int unlang_child_request_op_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: XLAT_DEBUG
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_DEBUG(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: XLAT_HEXDUMP
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_HEXDUMP(_data, _len, _fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:121,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:121,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:121,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:126,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:132,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:138,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:139,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:143,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:143,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:143,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:143,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - head
    - out
    - in
    - m_s
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t**
    - fr_sbuff_t*
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 150
    functionName: xlat_tokenize_regex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_advance
    - fr_sbuff_out
    - fr_strerror_printf
    - fr_sbuff_is_char
    - fr_sbuff_current
    - xlat_exp_alloc
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - XLAT_DEBUG
    - fr_sbuff_set
    - MEM
    linkageType: ''
    returnType: int
    signature: int xlat_tokenize_regex(xlat_exp_head_t *head, xlat_exp_t **out, fr_sbuff_t
      *in, fr_sbuff_marker_t *m_s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:170,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:170,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:172,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:179,1
    - Dst: tmpl_attr_unknown_add
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:180,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:181,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:181,1
    - Dst: tmpl_contains_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:188,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:189,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:189,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:193,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:193,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:198,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:198,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:203,1
    - Dst: tmpl_value_enumv
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:203,1
    - Dst: tmpl_value_enumv
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:204,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 213
    functionName: xlat_tmpl_normalize
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_unknown_add
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - tmpl_contains_data
    - tmpl_is_data
    - tmpl_is_attr_unresolved
    - fr_assert
    - tmpl_value_type
    - xlat_exp_set_type
    - tmpl_contains_regex
    - tmpl_rules_cast
    - tmpl_value_enumv
    - tmpl_is_attr
    - tmpl_is_data_unresolved
    - tmpl_resolve
    linkageType: ''
    returnType: int
    signature: int xlat_tmpl_normalize(xlat_exp_t *node)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:222,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:233,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:238,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:254,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:255,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:265,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:272,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:273,1
    - Dst: xlat_tmpl_normalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:277,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:281,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:282,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:299,1
    - Dst: xlat_tmpl_normalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:303,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:305,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:306,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:318,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:318,1
    - Dst: xlat_tmpl_normalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:324,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:354,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:356,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:365,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:366,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:366,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 3
    argNames:
    - arg_p
    - arg
    - argc
    argTypes:
    - xlat_arg_parser_t*
    - xlat_exp_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 371
    functionName: xlat_validate_function_arg
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - xlat_tmpl_normalize
    - fr_value_box_cast_in_place
    - fr_strerror_printf
    - fr_dlist_num_elements
    - fr_assert
    - tmpl_rules_cast
    - fr_type_is_null
    - tmpl_is_attr
    - fr_strerror
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int xlat_validate_function_arg(xlat_arg_parser_t const *arg_p, xlat_exp_t
      *arg, int argc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:376,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:379,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:386,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:397,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:407,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:424,1
    - Dst: xlat_validate_function_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:426,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 438
    functionName: xlat_validate_function_args
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - xlat_validate_function_arg
    - xlat_exp_next
    - fr_strerror_printf
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int xlat_validate_function_args(xlat_exp_t *node)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:457,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:459,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:459,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:459,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:459,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:464,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:471,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:474,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:479,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:486,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:488,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:489,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:501,1
    - Dst: xlat_exp_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:502,1
    - Dst: xlat_exp_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:504,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:504,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:505,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:507,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:513,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:520,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:523,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:525,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:525,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:525,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:527,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:528,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:536,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:537,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:538,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:545,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:545,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:545,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:547,1
    - Dst: xlat_exp_set_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:550,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:553,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:555,1
    - Dst: xlat_tokenize_argv
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:571,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:574,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:578,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:579,1
    - Dst: xlat_exp_finalize_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:583,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:585,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 3
    argNames:
    - head
    - in
    - t_rules
    argTypes:
    - xlat_exp_head_t*
    - fr_sbuff_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 587
    functionName: xlat_tokenize_function_args
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_exp_finalize_func
    - fr_strerror_printf
    - fr_sbuff_current
    - fr_sbuff_marker_release
    - xlat_tokenize_argv
    - xlat_func_find
    - xlat_exp_set_name
    - xlat_exp_set_type
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - fr_strerror_const
    - xlat_exp_set_func
    - fr_sbuff_char
    - xlat_exp_insert_tail
    - fr_sbuff_uint8
    - fr_sbuff_marker
    - fr_box_strvalue_len
    - XLAT_DEBUG
    - xlat_exp_alloc_null
    - fr_sbuff_next
    - fr_sbuff_next_if_char
    - talloc_free
    - strchr
    - fr_sbuff_is_char
    - xlat_exp_alloc
    - fr_sbuff_set
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: int
    signature: int xlat_tokenize_function_args(xlat_exp_head_t *head, fr_sbuff_t *in,
      tmpl_rules_t const *t_rules)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:601,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:603,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:603,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:603,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:611,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:613,1
    - Dst: xlat_exp_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:613,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:614,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:621,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:623,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:624,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:625,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:631,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:633,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:635,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:636,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:644,1
    - Dst: xlat_exp_set_vpt
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:645,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:655,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:657,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - head
    - in
    - p_rules
    - t_rules
    argTypes:
    - xlat_exp_head_t*
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 659
    functionName: xlat_tokenize_attribute
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_exp_insert_tail
    - talloc_free
    - fr_sbuff_marker
    - xlat_exp_alloc_null
    - fr_sbuff_current
    - tmpl_is_attr_unresolved
    - xlat_exp_set_type
    - fr_sbuff_marker_release
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_remaining
    - tmpl_afrom_attr_substr
    - XLAT_DEBUG
    - FR_SBUFF
    - xlat_exp_set_vpt
    - fr_strerror_const
    - MEM
    - fr_sbuff_set
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_tokenize_attribute(xlat_exp_head_t *head, fr_sbuff_t
      *in,\n\t\t\t\t\t\t\t       fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:675,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:676,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:677,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:678,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:683,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:689,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:689,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:689,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:691,1
    - Dst: xlat_tokenize_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:694,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:698,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:699,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:703,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:709,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:710,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:715,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:716,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:717,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:729,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:731,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:731,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:740,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:742,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:746,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:747,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:748,1
    - Dst: xlat_exp_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:752,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:752,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:752,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:761,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:763,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:768,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:779,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:780,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:788,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:789,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:790,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:794,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:796,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:801,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:805,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:822,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:823,1
    - Dst: xlat_tokenize_attribute
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:825,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:827,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:828,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:846,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:846,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:846,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 95
    argCount: 3
    argNames:
    - head
    - in
    - t_rules
    argTypes:
    - xlat_exp_head_t*
    - fr_sbuff_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 848
    functionName: xlat_tokenize_expansion
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_sbuff_current
    - fr_sbuff_marker_release
    - MEM
    - xlat_exp_set_name
    - fr_sbuff_adv_until
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - fr_strerror_const
    - FR_SBUFF_TERMS
    - fr_sbuff_char
    - L
    - xlat_exp_insert_tail
    - FR_SBUFF_TERM
    - fr_sbuff_marker
    - xlat_tokenize_regex
    - fr_assert
    - fr_box_strvalue_len
    - XLAT_DEBUG
    - fr_sbuff_next
    - fr_sbuff_next_if_char
    - xlat_tokenize_expression
    - fr_sbuff_extend
    - talloc_free
    - fr_sbuff_is_char
    - xlat_tokenize_attribute
    - xlat_exp_alloc
    - fr_sbuff_set
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: int
    signature: "int xlat_tokenize_expansion(xlat_exp_head_t *head, fr_sbuff_t *in,\n\t\t\t\t\t\t\t
      tmpl_rules_t const *t_rules)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:875,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:876,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:880,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:882,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:882,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:882,1
    - Dst: fr_sbuff_terminals_amerge
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:886,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:895,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:900,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:901,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:905,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:910,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:911,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:912,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:920,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:921,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:921,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:922,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:925,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:926,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:926,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:928,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:929,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:929,1
    - Dst: XLAT_HEXDUMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:931,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:931,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:933,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:936,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:950,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:951,1
    - Dst: xlat_tokenize_expansion
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:953,1
    - Dst: fr_sbuff_is_str_literal
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:955,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:956,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:961,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:968,1
    - Dst: fr_sbuff_is_alnum
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:972,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:973,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:975,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:979,1
    - Dst: xlat_tokenize_function_args
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:984,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:991,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:992,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:993,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1000,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1002,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 4
    argNames:
    - head
    - in
    - p_rules
    - t_rules
    argTypes:
    - xlat_exp_head_t*
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 870
    functionDepth: 7
    functionLinenumber: 870
    functionLinenumberEnd: 1003
    functionName: xlat_tokenize_input
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_alnum
    - talloc_strdup
    - fr_value_box_bstrndup
    - fr_value_box_mark_safe_for
    - fr_sbuff_current
    - fr_sbuff_marker_release
    - fr_sbuff_out_aunescape_until
    - xlat_tokenize_expansion
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - FR_SBUFF
    - fr_strerror_const
    - FR_SBUFF_TERMS
    - L
    - xlat_exp_insert_tail
    - fr_sbuff_marker
    - XLAT_HEXDUMP
    - FR_SBUFF_ERROR_RETURN
    - XLAT_DEBUG
    - talloc_strlen
    - fr_sbuff_next_if_char
    - fr_sbuff_terminals_amerge
    - xlat_tokenize_function_args
    - TALLOC_FREE
    - talloc_free
    - fr_sbuff_adv_past_str_literal
    - fr_sbuff_is_str_literal
    - xlat_exp_alloc
    - xlat_exp_set_name_shallow
    - fr_sbuff_set
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_tokenize_input(xlat_exp_head_t *head, fr_sbuff_t *in,\n\t\t\t\t\t\t\t
      \  fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1013
    functionName: INFO_INDENT
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO_INDENT(_fmt, ...)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1017,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1023,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1033,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1037,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1037,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1041,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1042,1
    - Dst: _xlat_debug_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1043,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1044,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1048,1
    - Dst: tmpl_cast_get
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1053,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1054,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1054,1
    - Dst: tmpl_cast_get
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1054,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1057,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1058,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1059,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1059,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1059,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1060,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1064,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1069,1
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1070,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1071,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1073,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1073,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1073,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1074,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1075,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1076,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1077,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1078,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1080,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1080,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1083,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1085,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1086,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1086,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1086,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1088,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1089,1
    - Dst: _xlat_debug_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1090,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1090,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1093,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1099,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1100,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1101,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1102,1
    - Dst: _xlat_debug_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1103,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1104,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1109,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1110,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1111,1
    - Dst: _xlat_debug_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1112,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1113,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1119,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1124,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1129,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 3
    argNames:
    - node
    - depth
    - print_flags
    argTypes:
    - xlat_exp_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1130
    functionName: _xlat_debug_node
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - xlat_exp_head
    - tmpl_attr_tail_da
    - tmpl_request
    - tmpl_xlat
    - tmpl_list_name
    - tmpl_cast_get
    - tmpl_attr_tail_num
    - tmpl_is_data
    - fr_assert
    - tmpl_request_list_next
    - tmpl_value_type
    - INFO_INDENT
    - tmpl_list
    - tmpl_is_attr
    - fr_type_to_str
    - DEBUG
    - _xlat_debug_head
    linkageType: ''
    returnType: void
    signature: void _xlat_debug_node(xlat_exp_t const *node, int depth, bool print_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xlat_debug_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1135
    functionName: xlat_debug
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - _xlat_debug_node
    linkageType: ''
    returnType: void
    signature: void xlat_debug(xlat_exp_t const *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1141,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1143,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1153,1
    - Dst: _xlat_debug_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - head
    - depth
    argTypes:
    - xlat_exp_head_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1162
    functionName: _xlat_debug_head
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 1
    functionsReached:
    - _xlat_debug_node
    - fr_assert
    - INFO_INDENT
    linkageType: ''
    returnType: void
    signature: void _xlat_debug_head(xlat_exp_head_t const *head, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1153,1
    - Dst: _xlat_debug_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1161
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 4
    functionsReached:
    - _xlat_debug_node
    - INFO_INDENT
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xlat_debug_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1164
    functionDepth: 3
    functionLinenumber: 1164
    functionLinenumberEnd: 1167
    functionName: xlat_debug_head
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 4
    functionsReached:
    - _xlat_debug_head
    linkageType: ''
    returnType: void
    signature: void xlat_debug_head(xlat_exp_head_t const *head)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1173,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1178,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1182,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1183,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1184,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1186,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1187,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1189,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1199,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1200,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1203,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1205,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1211,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1212,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1212,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1213,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1216,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1221,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1222,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1223,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1225,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1225,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1228,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1230,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1232,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1234,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1239,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1241,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1241,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1243,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1244,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1244,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1245,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1256,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1256,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1259,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1260,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1260,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1261,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1271,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1277,1
    - Dst: xlat_exp_t*::call::func::print
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1286,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1300,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1303,1
    - Dst: tmpl_attr_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1309,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1315,1
    - Dst: FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1320,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1321,1
    - Dst: FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1326,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1327,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1330,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1331,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1332,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1342,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1345,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1348,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1350,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 5
    argNames:
    - out
    - head
    - node
    - e_rules
    - c
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_head_t*
    - xlat_exp_t*
    - fr_sbuff_escape_rules_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1351
    functionName: xlat_print_node
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 8
    functionsReached:
    - tmpl_attr_print
    - tmpl_needs_resolving
    - tmpl_is_data
    - fr_type_to_str
    - FR_SBUFF_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - xlat_exp_next
    - tmpl_is_attr
    - xlat_print
    - talloc_parent
    - xlat_print_node
    - xlat_exp_head
    - fr_assert
    - da_is_bit_field
    - tmpl_contains_regex
    - FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN
    - strncmp
    - FR_SBUFF_IN_STRCPY_RETURN
    - fr_assert_fail
    - xlat_exp_foreach
    - tmpl_contains_xlat
    - tmpl_xlat
    - FR_SBUFF_IN_CHAR_RETURN
    - tmpl_value
    - xlat_exp_t*::call::func::print
    - fr_sbuff_used_total
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t xlat_print_node(fr_sbuff_t *out, xlat_exp_head_t const *head,
      xlat_exp_t const *node,\n\t\t\tfr_sbuff_escape_rules_t const *e_rules, char
      c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1362,1
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1365,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1368,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - head
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - xlat_exp_head_t*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1373
    functionName: xlat_print
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 10
    functionsReached:
    - xlat_print_node
    - fr_sbuff_used_total
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t xlat_print(fr_sbuff_t *out, xlat_exp_head_t const *head, fr_sbuff_escape_rules_t
      const *e_rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_print_node
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1365,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1370
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 5
    functionsReached:
    - xlat_print_node
    - fr_sbuff_used_total
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1382,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1384,1
    - Dst: xlat_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1388,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1392,1
    - Dst: xlat_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1394,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - head
    - safe_for
    argTypes:
    - xlat_exp_head_t*
    - fr_value_box_safe_for_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1401
    functionName: xlat_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_is_xlat
    - ERROR
    - tmpl_xlat
    - xlat_safe_for
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void xlat_safe_for(xlat_exp_head_t *head, fr_value_box_safe_for_t safe_for)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1382,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1384,1
    - Dst: xlat_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1388,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1392,1
    - Dst: xlat_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1394,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1400
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 5
    functionsReached:
    - tmpl_is_xlat
    - ERROR
    - tmpl_xlat
    - xlat_safe_for
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1410,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1419,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1420,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1421,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1425,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1426,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1430,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1435,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1439,1
    - Dst: xlat_tokenize_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1441,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1442,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1446,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1458,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1461,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1461,1
    - Dst: xlat_tokenize_input
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1463,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1465,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1466,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1469,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1469,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1471,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1472,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1473,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1474,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1485,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1486,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1494,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1507,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1507,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1516,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1518,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1521,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1522,1
    - Dst: xlat_exp_set_vpt
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1524,1
    - Dst: xlat_tmpl_normalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1526,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1536,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1536,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1539,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1540,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1540,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1540,1
    - Dst: xlat_tokenize_input
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1542,1
    - Dst: xlat_exp_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1546,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1546,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1546,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1558,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1559,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1561,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1562,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1565,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1565,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1567,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1567,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1568,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1572,1
    - Dst: XLAT_DEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1585,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1585,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1585,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1587,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1590,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1593,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1594,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1595,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1600,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1601,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1608,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1609,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1610,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1614,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1620,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 128
    argCount: 6
    argNames:
    - ctx
    - out
    - in
    - quote
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_t**
    - fr_sbuff_t*
    - fr_token_t
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1405
    functionDepth: 8
    functionLinenumber: 1405
    functionLinenumberEnd: 1621
    functionName: xlat_tokenize_word
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 1
    functionsReached:
    - fr_dlist_pop_head
    - fr_value_box_mark_safe_for
    - fr_sbuff_current
    - fr_sbuff_out_aunescape_until
    - xlat_exp_head_alloc
    - MEM
    - fr_sbuff_set_to_start
    - fr_value_box_strdup
    - xlat_exp_set_name
    - fr_dlist_num_elements
    - xlat_exp_set_type
    - fr_sbuff_behind
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_remaining
    - FR_SBUFF
    - fr_strerror_const
    - xlat_exp_head
    - xlat_tmpl_normalize
    - talloc_steal
    - fr_sbuff_marker
    - xlat_tokenize_regex
    - xlat_tokenize_input
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_advance
    - xlat_exp_set_vpt
    - XLAT_DEBUG
    - fr_value_box_init
    - talloc_free
    - fr_sbuff_adv_past_str_literal
    - fr_sbuff_is_char
    - xlat_exp_alloc
    - tmpl_afrom_substr
    - xlat_exp_set_name_shallow
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t xlat_tokenize_word(TALLOC_CTX *ctx, xlat_exp_t **out, fr_sbuff_t
      *in, fr_token_t quote,\n\t\t\t     fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t
      const *t_rules)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1645,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1663,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1664,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1666,1
    - Dst: fr_sbuff_terminals_amerge
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1669,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1682,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1684,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1706,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1706,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1711,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1712,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1715,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1722,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1723,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1725,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1725,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1727,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1731,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1739,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1742,1
    - Dst: xlat_tokenize_input
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1750,1
    - Dst: xlat_tokenize_word
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1755,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1757,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1759,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1766,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1767,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1769,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1771,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1777,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1781,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1788,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1790,1
    - Dst: xlat_exp_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1794,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1794,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1794,1
    - Dst: xlat_validate_function_arg
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1799,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1800,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1804,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1811,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1812,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1819,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1821,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1823,1
    - Dst: fr_sbuff_eof
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1825,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1826,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1830,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1838,1
    - Dst: fr_sbuff_eof
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1840,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1841,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1851,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1852,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1861,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1868,1
    - Dst: XLAT_HEAD_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1870,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1873,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 138
    argCount: 7
    argNames:
    - ctx
    - out
    - in
    - xlat_args
    - p_rules
    - t_rules
    - spaces
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t**
    - fr_sbuff_t*
    - xlat_arg_parser_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1640
    functionDepth: 9
    functionLinenumber: 1640
    functionLinenumberEnd: 1874
    functionName: xlat_tokenize_argv
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 3
    functionsReached:
    - fr_strerror_printf
    - likely
    - XLAT_HEAD_VERIFY
    - fr_sbuff_current
    - talloc_const_free
    - xlat_exp_head_alloc
    - MEM
    - unlikely
    - fr_sbuff_eof
    - xlat_exp_set_name
    - xlat_validate_function_arg
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_behind
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_out_by_longest_prefix
    - xlat_exp_insert_tail
    - fr_sbuff_marker
    - xlat_tokenize_input
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_adv_past_whitespace
    - xlat_tokenize_word
    - fr_sbuff_next_if_char
    - fr_sbuff_terminals_amerge
    - xlat_tokenize_expression
    - fr_sbuff_extend
    - fr_sbuff_is_terminal
    - talloc_free
    - fr_sbuff_is_char
    - xlat_exp_alloc
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t xlat_tokenize_argv(TALLOC_CTX *ctx, xlat_exp_head_t **out,
      fr_sbuff_t *in,\n\t\t\t     xlat_arg_parser_t const *xlat_args,\n\t\t\t     fr_sbuff_parse_rules_t
      const *p_rules, tmpl_rules_t const *t_rules, bool spaces)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1893,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1896,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1898,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1898,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1899,1
    - Dst: xlat_tokenize_input
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1901,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1902,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1903,1
    - Dst: xlat_finalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1910,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1911,1
    - Dst: XLAT_HEAD_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1915,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1890
    functionDepth: 8
    functionLinenumber: 1890
    functionLinenumberEnd: 1919
    functionName: xlat_tokenize
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 5
    functionsReached:
    - talloc_free
    - XLAT_HEAD_VERIFY
    - xlat_finalize
    - xlat_tokenize_input
    - fr_assert
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_strerror_clear
    - xlat_exp_head_alloc
    - FR_SBUFF
    - MEM
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t xlat_tokenize(TALLOC_CTX *ctx, xlat_exp_head_t **out, fr_sbuff_t
      *in,\n\t\t\tfr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1935
    functionName: xlat_is_literal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xlat_is_literal(xlat_exp_head_t const *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1930
    functionDepth: 0
    functionLinenumber: 1930
    functionLinenumberEnd: 1932
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1947
    functionName: xlat_needs_resolving
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xlat_needs_resolving(xlat_exp_head_t const *head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1974,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1976,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1979,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1981,1
    - Dst: fr_sbuff_in_bstrcpy_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1982,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:1985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - str
    - head
    argTypes:
    - TALLOC_CTX*
    - char**
    - xlat_exp_head_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 1988
    functionName: xlat_to_string
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_exp_foreach
    - fr_sbuff_in_bstrcpy_buffer
    - fr_sbuff_init_talloc
    - fr_sbuff_buff
    - talloc_strlen
    linkageType: ''
    returnType: bool
    signature: bool xlat_to_string(TALLOC_CTX *ctx, char **str, xlat_exp_head_t **head)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2016,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2022,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2033,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2033,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2039,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2040,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2046,1
    - Dst: xlat_exp_set_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2047,1
    - Dst: xlat_validate_function_args
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2052,1
    - Dst: xlat_instance_register_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2058,1
    - Dst: call::func::resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2076,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2079,1
    - Dst: xlat_exp_finalize_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2084,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2091,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2093,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2093,1
    - Dst: xlat_tmpl_normalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2096,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2100,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2104,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2109,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - head
    - xr_rules
    argTypes:
    - xlat_exp_head_t*
    - xlat_res_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 1999
    functionDepth: 4
    functionLinenumber: 1999
    functionLinenumberEnd: 2112
    functionName: xlat_resolve
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 6
    functionsReached:
    - xlat_validate_function_args
    - xlat_exp_finalize_func
    - xlat_instance_register_func
    - tmpl_needs_resolving
    - xlat_tmpl_normalize
    - fr_strerror_printf
    - fr_box_strvalue_buffer
    - call::func::resolve
    - tmpl_resolve
    - xlat_flags_merge
    - xlat_exp_set_type
    - xlat_resolve
    - fr_assert
    - talloc_strlen
    - xlat_func_find
    - xlat_exp_set_func
    linkageType: ''
    returnType: int
    signature: int xlat_resolve(xlat_exp_head_t *head, xlat_res_rules_t const *xr_rules)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2016,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2022,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2033,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2033,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2039,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2040,1
    - Dst: xlat_exp_set_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2046,1
    - Dst: xlat_exp_set_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2047,1
    - Dst: xlat_validate_function_args
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2052,1
    - Dst: xlat_instance_register_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2058,1
    - Dst: call::func::resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2076,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2079,1
    - Dst: xlat_exp_finalize_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2084,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2091,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2093,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2093,1
    - Dst: xlat_tmpl_normalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2096,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2100,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2104,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2011
    functionDepth: 5
    functionLinenumber: 2011
    functionLinenumberEnd: 2105
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 6
    functionsReached:
    - xlat_validate_function_args
    - xlat_exp_finalize_func
    - xlat_instance_register_func
    - tmpl_needs_resolving
    - xlat_tmpl_normalize
    - fr_strerror_printf
    - fr_box_strvalue_buffer
    - call::func::resolve
    - tmpl_resolve
    - xlat_flags_merge
    - xlat_exp_set_type
    - xlat_resolve
    - fr_assert
    - talloc_strlen
    - xlat_func_find
    - xlat_exp_set_func
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2126,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2128,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2134,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2134,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2136,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2136,1
    - Dst: tmpl_attr_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2139,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - head
    argTypes:
    - TALLOC_CTX*
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2144
    functionName: xlat_to_tmpl_attr
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_exp_head
    - tmpl_attr_copy
    - tmpl_attr_tail_num
    - TMPL_VERIFY
    - talloc_strlen
    - tmpl_is_attr
    - tmpl_alloc
    linkageType: ''
    returnType: tmpl_t
    signature: tmpl_t *xlat_to_tmpl_attr(TALLOC_CTX *ctx, xlat_exp_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2146
    functionDepth: 0
    functionLinenumber: 2146
    functionLinenumberEnd: 2149
    functionName: xlat_impure_func
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xlat_impure_func(xlat_exp_head_t const *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2160,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2161,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2163,1
    - Dst: tmpl_data_type
      Src: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c:2172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2176
    functionName: xlat_data_type
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - tmpl_data_type
    - xlat_exp_head
    - xlat_exp_next
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t xlat_data_type(xlat_exp_head_t const *head)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:89,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:90,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:93,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:95,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:102,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:108,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:114,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 123
    functionName: xlat_redundant_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - talloc_free
    - fr_strerror_printf
    - talloc_get_type_abort
    - talloc_array_length
    - talloc_get_type_abort_const
    - XLAT_RESULT_SUCCESS
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_redundant_resume(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      UNUSED fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:132,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:133,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: xlat_load_balance_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - XLAT_RESULT_SUCCESS
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_load_balance_resume(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t      xlat_ctx_t const *xctx,\n\t\t\t\t\t      UNUSED
      request_t *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:148,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:151,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:151,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:151,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:160,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:162,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:171,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:171,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:172,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:180,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:180,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:181,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:185,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 192
    functionName: xlat_redundant
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - talloc_free
    - fr_rand
    - talloc_zero
    - fr_assert
    - talloc_array_length
    - unlang_interpret_frame_talloc_ctx
    - talloc_get_type_abort_const
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_redundant(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, UNUSED fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:198,1
    - Dst: xlat_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - head
    - safe_for
    argTypes:
    - xlat_exp_head_t*
    - fr_value_box_safe_for_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: xlat_mark_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 1
    functionsReached:
    - xlat_mark_safe_for
    - fr_value_box_mark_safe_for
    linkageType: ''
    returnType: void
    signature: void xlat_mark_safe_for(xlat_exp_head_t *head, fr_value_box_safe_for_t
      safe_for)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:198,1
    - Dst: xlat_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 6
    functionsReached:
    - xlat_mark_safe_for
    - fr_value_box_mark_safe_for
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(head, node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:220,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:220,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:220,1
    - Dst: xlat_exp_set_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:221,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:227,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:235,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:235,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:238,1
    - Dst: xlat_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:238,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:252,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:254,1
    - Dst: xlat_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:259,1
    - Dst: xlat_exp_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - func
    - args
    - dict
    argTypes:
    - TALLOC_CTX*
    - xlat_t*
    - xlat_exp_head_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 266
    functionName: xlat_exp_func_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_copy
    - xlat_exp_head
    - talloc_free
    - xlat_exp_next
    - xlat_mark_safe_for
    - xlat_flags_merge
    - xlat_exp_alloc
    - strlen
    - fr_assert
    - xlat_exp_head_alloc
    - MEM
    - xlat_exp_set_func
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *xlat_exp_func_alloc(TALLOC_CTX *ctx, xlat_t const *func,
      xlat_exp_head_t const *args, fr_dict_t const *dict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:274,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:275,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:280,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:280,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:280,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:283,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:283,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:289,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:300,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:309,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:312,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:323,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:323,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:324,1
    - Dst: xlat_exp_func_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:324,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:325,1
    - Dst: xlat_validate_function_args
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:327,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:328,1
    - Dst: xlat_finalize
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:340,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:341,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 362
    functionName: xlat_redundant_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_dlist_foreach
    - fr_dlist_talloc_free
    - xlat_exp_insert_tail
    - talloc_array
    - talloc_free
    - fr_dlist_num_elements
    - xlat_finalize
    - talloc_get_type_abort
    - fr_assert
    - xlat_exp_func_alloc
    - xlat_exp_head_alloc
    - MEM
    - cf_log_err
    - PERROR
    - xlat_validate_function_args
    linkageType: ''
    returnType: int
    signature: int xlat_redundant_instantiate(xlat_inst_ctx_t const *xctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:374,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:374,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xr
    - x
    argTypes:
    - xlat_redundant_t*
    - xlat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: xlat_redundant_add_xlat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: void
    signature: void xlat_redundant_add_xlat(xlat_redundant_t *xr, xlat_t const *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:386,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:387,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:395,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:396,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:402,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:404,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 405
    functionName: module_xlat_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strchr
    - CMP
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t module_xlat_cmp(void const *a, void const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:411,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:412,1
    - Dst: module_xlat_cmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:414,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: module_qualified_xlat_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - CMP
    - talloc_get_type_abort_const
    - module_xlat_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t module_qualified_xlat_cmp(void const *a, void const *b)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:433,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:434,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:435,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:437,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:449,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:450,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:453,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:472,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:473,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:485,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:486,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:486,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:499,1
    - Dst: fr_rb_talloc_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:499,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:500,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:502,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:507,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:509,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:509,1
    - Dst: module_rlm_static_by_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:511,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:513,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:514,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:514,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:516,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:520,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:521,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:522,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:523,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:524,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:524,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:530,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:531,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:533,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:533,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:534,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:554,1
    - Dst: fr_sbuff_in_bstrcpy_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:561,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:561,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:562,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:563,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:567,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:573,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:589,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:592,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:593,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:593,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:594,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:597,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:599,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:602,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:602,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:605,1
    - Dst: xlat_redundant_add_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:622,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:624,1
    - Dst: module_xlat_cmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:624,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:632,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:633,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:634,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:635,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:646,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:647,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:648,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:649,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:650,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:653,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:655,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:656,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:657,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:659,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:660,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:661,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_redundant.c:664,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 667
    functionName: xlat_register_redundant
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_redundant.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fr_sbuff_start
    - fr_dlist_talloc_init
    - fr_rb_num_elements
    - strlen
    - xlat_func_args_set
    - MEM
    - cf_log_err
    - module_xlat_cmp
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_in_char
    - fr_dlist_head
    - unlikely
    - fr_rb_iter_next_inorder
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_table_str_by_value
    - cf_item_next
    - cf_section_name2
    - xlat_redundant_add_xlat
    - fr_table_value_by_str
    - fr_rb_insert
    - cf_section_name1
    - NUM_ELEMENTS
    - xlat_func_register
    - fr_sbuff_in_bstrncpy
    - cf_pair_attr
    - L
    - xlat_func_instantiate_set
    - fr_rb_talloc_alloc
    - fr_sbuff_in_bstrcpy_buffer
    - talloc_steal
    - fr_sbuff_marker
    - cf_log_debug
    - cf_item_is_pair
    - fr_rb_iter_init_inorder
    - fr_dlist_foreach
    - cf_log_perr
    - module_rlm_static_by_name
    - talloc_free
    - strchr
    - talloc_zero
    - cf_log_warn
    - fr_sbuff_set
    - xlat_func_flags_set
    linkageType: ''
    returnType: int
    signature: int xlat_register_redundant(CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/timeout_priv.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: unlang_group_to_timeout
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout_priv.h
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_timeout_t
    signature: unlang_timeout_t *unlang_group_to_timeout(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - to
    argTypes:
    - unlang_timeout_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: unlang_timeout_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/timeout_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_timeout_to_group(unlang_timeout_t *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:36,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:36,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - TALLOC_CTX *ctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: _xlat_exp_head_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - fr_dlist_init
    linkageType: ''
    returnType: xlat_exp_head_t
    signature: xlat_exp_head_t *_xlat_exp_head_alloc(NDEBUG_LOCATION_ARGS TALLOC_CTX
      *ctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:67,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:75,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:79,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:90,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:90,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:92,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:93,1
    - Dst: fr_value_box_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:102,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:102,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:103,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:107,1
    - Dst: _xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:119,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:134,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:147,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 72
    argCount: 2
    argNames:
    - xlat_exp_t *node
    - type
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - xlat_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 163
    functionName: _xlat_exp_set_type
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_steal
    - TALLOC_FREE
    - talloc_free
    - talloc_steal
    - _xlat_exp_head_alloc
    - tmpl_is_data
    - fr_assert
    - tmpl_rules_cast
    - tmpl_value
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void _xlat_exp_set_type(NDEBUG_LOCATION_ARGS xlat_exp_t *node, xlat_type_t
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:169,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - extra_hdrs
    - extra
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: xlat_exp_alloc_pool
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - MEM
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *xlat_exp_alloc_pool(NDEBUG_LOCATION_ARGS TALLOC_CTX *ctx,
      unsigned int extra_hdrs, size_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_alloc_pool
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - TALLOC_CTX *ctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: _xlat_exp_alloc_null
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - xlat_exp_alloc_pool
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *_xlat_exp_alloc_null(NDEBUG_LOCATION_ARGS TALLOC_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xlat_exp_alloc_pool
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:224,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:234,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - type
    - in
    - inlen
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - xlat_type_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 245
    functionName: _xlat_exp_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup_shallow
    - talloc_bstrndup
    - xlat_exp_alloc_pool
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *_xlat_exp_alloc(NDEBUG_LOCATION_ARGS TALLOC_CTX *ctx, xlat_type_t
      type, char const *in, size_t inlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:254,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:255,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:258,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:258,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:262,1
    - Dst: xlat_exp_set_name_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - node
    - vpt
    argTypes:
    - xlat_exp_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: xlat_exp_set_vpt
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 3
    functionsReached:
    - tmpl_needs_resolving
    - tmpl_contains_xlat
    - tmpl_xlat
    - tmpl_is_exec
    - xlat_exp_set_name_shallow
    - tmpl_contains_attr
    linkageType: ''
    returnType: void
    signature: void xlat_exp_set_vpt(xlat_exp_t *node, tmpl_t *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - node
    - func
    - dict
    argTypes:
    - xlat_exp_t*
    - xlat_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: xlat_exp_set_func
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_exp_set_func(xlat_exp_t *node, xlat_t const *func, fr_dict_t
      const *dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 299
    functionName: xlat_exp_finalize_func
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 3
    functionsReached:
    - xlat_flags_merge
    linkageType: ''
    returnType: void
    signature: void xlat_exp_finalize_func(xlat_exp_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:310,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:312,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:313,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - node
    - fmt
    - len
    argTypes:
    - xlat_exp_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: xlat_exp_set_name
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 6
    functionsReached:
    - talloc_const_free
    - fr_assert
    - MEM
    - talloc_bstrndup
    linkageType: ''
    returnType: void
    signature: void xlat_exp_set_name(xlat_exp_t *node, char const *fmt, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:325,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:327,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:330,1
    - Dst: talloc_typed_strdup_buffer
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - node
    - fmt
    argTypes:
    - xlat_exp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: xlat_exp_set_name_buffer
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 1
    functionsReached:
    - talloc_const_free
    - talloc_steal
    - MEM
    - talloc_typed_strdup_buffer
    linkageType: ''
    returnType: void
    signature: void xlat_exp_set_name_buffer(xlat_exp_t *node, char const *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:340,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:342,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - node
    - fmt
    argTypes:
    - xlat_exp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: xlat_exp_set_name_shallow
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 8
    functionsReached:
    - talloc_const_free
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void xlat_exp_set_name_shallow(xlat_exp_t *node, char const *fmt)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:357,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:365,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:371,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:371,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:372,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:372,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:379,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:384,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:384,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:405,1
    - Dst: tmpl_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:412,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:427,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - out
    - in
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - xlat_exp_head_t*
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 431
    functionName: _xlat_copy_internal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_exp_head_alloc
    - xlat_exp_insert_tail
    - fr_strerror_printf
    - tmpl_copy
    - talloc_get_type_abort
    - xlat_exp_alloc
    - xlat_flags_merge
    - talloc_get_type_abort_const
    - talloc_strlen
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void _xlat_copy_internal(NDEBUG_LOCATION_ARGS TALLOC_CTX *ctx, xlat_exp_head_t
      *out, xlat_exp_head_t const *in)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:365,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:371,1
    - Dst: xlat_exp_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:371,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:372,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:372,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:379,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:384,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:384,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:405,1
    - Dst: tmpl_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:412,1
    - Dst: xlat_exp_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:427,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 428
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 6
    functionsReached:
    - unlikely
    - xlat_exp_head_alloc
    - xlat_exp_insert_tail
    - fr_strerror_printf
    - tmpl_copy
    - talloc_get_type_abort
    - xlat_exp_alloc
    - talloc_get_type_abort_const
    - talloc_strlen
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void xlat_exp_foreach(in, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_HEAD_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:439,1
    - Dst: _xlat_copy_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:440,1
    - Dst: XLAT_HEAD_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - out
    - in
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - xlat_exp_head_t*
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 444
    functionName: _xlat_copy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - _xlat_copy_internal
    - XLAT_HEAD_VERIFY
    linkageType: ''
    returnType: int
    signature: int _xlat_copy(NDEBUG_LOCATION_ARGS TALLOC_CTX *ctx, xlat_exp_head_t
      *out, xlat_exp_head_t const *in)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:449,1
    - Dst: xlat_exp_head_verify
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:453,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:454,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:458,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:460,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:461,1
    - Dst: xlat_exp_head_verify
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:470,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:471,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:482,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:487,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:491,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:493,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:495,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:500,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:501,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:505,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:514,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:515,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:515,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:522,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:523,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:524,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:529,1
    - Dst: tmpl_is_exec_unresolved
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:529,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:530,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:531,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:532,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:533,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:540,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:541,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 548
    functionName: xlat_exp_verify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - xlat_exp_head_verify
    - xlat_exp_foreach
    - tmpl_is_exec_unresolved
    - tmpl_attr_tail_da
    - tmpl_is_data
    - fr_assert
    - talloc_get_type_abort_const
    - tmpl_rules_cast
    - tmpl_is_attr
    - tmpl_is_exec
    linkageType: ''
    returnType: void
    signature: void xlat_exp_verify(xlat_exp_t const *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:554,1
    - Dst: xlat_exp_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:556,1
    - Dst: xlat_exp_verify
      Src: /src/freeradius-server/src/lib/unlang/xlat_alloc.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 557
    functionName: xlat_exp_head_verify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_alloc.c
    functionUses: 1
    functionsReached:
    - xlat_exp_verify
    - talloc_get_type_abort_const
    - xlat_exp_foreach
    linkageType: ''
    returnType: void
    signature: void xlat_exp_head_verify(xlat_exp_head_t const *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map_priv.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: unlang_group_to_map
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_priv.h
    functionUses: 3
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_map_t
    signature: unlang_map_t *unlang_group_to_map(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - unlang_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: unlang_map_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_map_to_group(unlang_map_t *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _mod_inst
    - ','
    - _map_inst
    - ','
    - _rctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: MAP_CTX
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_CTX(_mod_inst, _map_inst, _rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map.c:69,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map.c:70,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/map.c:72,1
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/map.c:73,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/map.c:78,1
    - Dst: resume
      Src: /src/freeradius-server/src/lib/unlang/map.c:86,1
    - Dst: MAP_CTX
      Src: /src/freeradius-server/src/lib/unlang/map.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - request
    - "unlang_stack_frame_t *frame\n#else\n\t\t\t\t       UNUSED unlang_stack_frame_t
      *frame"
    argTypes:
    - unlang_result_t*
    - request_t*
    - WITH_VERIFY_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 89
    functionName: map_proc_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - unlang_group_to_map
    - talloc_get_type_abort
    - VALUE_BOX_LIST_VERIFY
    - resume
    - MAP_CTX
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t map_proc_resume(unlang_result_t *p_result, request_t
      *request,\n#ifdef WITH_VERIFY_PTR\n\t\t\t\t       unlang_stack_frame_t *frame\n#else\n\t\t\t\t
      \      UNUSED unlang_stack_frame_t *frame\n#endif\n\t\t\t\t      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map.c:114,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/map.c:116,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/map.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - request
    - resume
    - signal
    - sigmask
    - rctx
    argTypes:
    - request_t*
    - map_proc_func_t
    - unlang_map_signal_t
    - fr_signal_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: unlang_map_yield
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 2
    functionsReached:
    - REQUEST_VERIFY
    - talloc_get_type_abort
    - frame_repeat
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_map_yield(request_t *request,\n\t\t\t\t map_proc_func_t
      resume, unlang_map_signal_t signal, fr_signal_t sigmask, void *rctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/map.c:135,1
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/map.c:136,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map.c:139,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/map.c:141,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/map.c:143,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/map.c:144,1
    - Dst: map_proc_inst_t*::proc::evaluate
      Src: /src/freeradius-server/src/lib/unlang/map.c:146,1
    - Dst: MAP_CTX
      Src: /src/freeradius-server/src/lib/unlang/map.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: map_proc_apply
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - map_proc_inst_t*::proc::evaluate
    - unlang_group_to_map
    - frame_repeat
    - talloc_get_type_abort
    - VALUE_BOX_LIST_VERIFY
    - RDEBUG2
    - MAP_CTX
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t map_proc_apply(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/map.c:152,1
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/map.c:153,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map.c:155,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/map.c:160,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/map.c:162,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/unlang/map.c:176,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/map.c:178,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/unlang/map.c:182,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/map.c:186,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/map.c:193,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/map.c:194,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/map.c:205,1
    - Dst: map_proc_apply
      Src: /src/freeradius-server/src/lib/unlang/map.c:209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 210
    functionName: unlang_map_state_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - fr_value_box_list_init
    - unlang_group_to_map
    - unlang_tmpl_push
    - REDEBUG
    - tmpl_xlat
    - talloc_get_type_abort
    - tmpl_aexpand
    - fr_assert
    - map_proc_apply
    - fr_value_box_list_insert_head
    - repeatable_set
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_map_state_init(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/map.c:214,1
    - Dst: cf_section_argv_quote
      Src: /src/freeradius-server/src/lib/unlang/map.c:224,1
    - Dst: fr_snprint_len
      Src: /src/freeradius-server/src/lib/unlang/map.c:242,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/unlang/map.c:243,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/lib/unlang/map.c:244,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/map.c:246,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/map.c:246,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/map.c:248,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/map.c:253,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/map.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 257
    functionName: compile_map_name
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - unlang_group_to_map
    - talloc_array
    - talloc_free
    - fr_snprint
    - cf_section_name2
    - fr_snprint_len
    - cf_section_argv_quote
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int compile_map_name(unlang_group_t *g)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:274,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/map.c:276,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:290,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/map.c:291,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:296,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/map.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - map
    - ctx
    argTypes:
    - map_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 303
    functionName: fixup_map_cb
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - tmpl_type_to_str
    - cf_log_err
    - fr_table_str_by_value
    linkageType: ''
    returnType: int
    signature: int fixup_map_cb(map_t *map, UNUSED void *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/map.c:307,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/map.c:322,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/map.c:331,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/unlang/map.c:333,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/unlang/map.c:333,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:335,1
    - Dst: map_proc_find
      Src: /src/freeradius-server/src/lib/unlang/map.c:339,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:341,1
    - Dst: map_proc_literals_safe_for
      Src: /src/freeradius-server/src/lib/unlang/map.c:344,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/map.c:346,1
    - Dst: unlang_group_to_map
      Src: /src/freeradius-server/src/lib/unlang/map.c:349,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/map.c:356,1
    - Dst: cf_section_argv_quote
      Src: /src/freeradius-server/src/lib/unlang/map.c:360,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/map.c:365,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/map.c:366,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/map.c:366,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/map.c:371,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/map.c:373,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/map.c:392,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:393,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/unlang/map.c:401,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/lib/unlang/map.c:402,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/lib/unlang/map.c:404,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:405,1
    - Dst: map_proc_instantiate
      Src: /src/freeradius-server/src/lib/unlang/map.c:414,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map.c:416,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/map.c:419,1
    - Dst: compile_map_name
      Src: /src/freeradius-server/src/lib/unlang/map.c:424,1
    - Dst: pass2_fixup_map_rhs
      Src: /src/freeradius-server/src/lib/unlang/map.c:433,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 436
    functionName: unlang_compile_map
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - cf_section_find
    - map_list_empty
    - map_proc_find
    - cf_log_err
    - cf_item_to_section
    - map_proc_literals_safe_for
    - cf_section_name2
    - unlang_group_to_generic
    - FR_SBUFF_IN
    - compile_map_name
    - talloc_strlen
    - map_list_init
    - unlang_group_allocate
    - cf_section_argv_quote
    - pass2_fixup_map_rhs
    - cf_section_argv
    - cf_log_perr
    - unlang_group_to_map
    - talloc_free
    - map_proc_instantiate
    - tmpl_afrom_substr
    - cf_root
    - map_afrom_cs
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_map(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/map.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 455
    functionName: unlang_map_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_map_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:67,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:68,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:69,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - vb
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - fr_value_box_list_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: xlat_arg_copy_out
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached:
    - talloc_steal
    - talloc_parent
    - fr_dcursor_append
    - fr_value_box_list_remove
    linkageType: ''
    returnType: void
    signature: void xlat_arg_copy_out(TALLOC_CTX *ctx, fr_dcursor_t *out, fr_value_box_list_t
      *in, fr_value_box_t *vb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:98,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:103,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:103,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 122
    functionName: xlat_func_debug
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - XLAT_ARGS
    - MEM
    - fr_value_box_alloc
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_debug(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:133,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:135,1
    - Dst: xlat_debug_attr_vp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - request
    - list
    - parent
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: xlat_debug_attr_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_debug_attr_vp
    - fr_pair_list_next
    linkageType: ''
    returnType: void
    signature: "void xlat_debug_attr_list(request_t *request, fr_pair_list_t const
      *list,\n\t\t\t\t fr_dict_attr_t const *parent)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:156,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:162,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:164,1
    - Dst: RIDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:170,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:171,1
    - Dst: xlat_debug_attr_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:172,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:173,1
    - Dst: RIDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:174,1
    - Dst: RIDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:178,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:183,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:184,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:185,1
    - Dst: fr_box_bool
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:185,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:186,1
    - Dst: fr_box_bool
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:186,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:189,1
    - Dst: RIDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:191,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:193,1
    - Dst: fr_dict_vendor_by_da
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:194,1
    - Dst: RIDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:195,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:196,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:196,1
    - Dst: fr_box_is_variable_size
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:200,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:201,1
    - Dst: RIDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:203,1
    - Dst: fr_box_bool
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:203,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:210,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:226,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:226,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:228,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:228,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:231,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:237,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:238,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:239,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:242,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:245,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 3
    argNames:
    - request
    - vp
    - parent
    argTypes:
    - request_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 246
    functionName: xlat_debug_attr_vp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_value_box_cast_in_place
    - talloc_free
    - FR_SBUFF_OUT
    - fr_dict_vendor_by_da
    - fr_value_box_acopy
    - RINDENT
    - xlat_debug_attr_list
    - RIDEBUG2
    - RIDEBUG3
    - RDEBUG4
    - fr_box_bool
    - fr_box_is_variable_size
    - REXDENT
    - fr_type_to_str
    - fr_pair_print_name
    - MEM
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: void
    signature: "void xlat_debug_attr_vp(request_t *request, fr_pair_t const *vp,\n\t\t\t
      \      fr_dict_attr_t const *parent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: xlat_transparent
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_arg_copy_out
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_transparent(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t       UNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 7
    functionsReached:
    - xlat_arg_copy_out
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(args, vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:290,1
    - Dst: fr_value_box_get_cursor
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:294,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:296,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:298,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:299,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:301,1
    - Dst: xlat_debug_attr_vp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:302,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 307
    functionName: xlat_func_pairs_debug
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_value_box_get_cursor
    - RDEBUG
    - REXDENT
    - fr_dcursor_next
    - XLAT_ARGS
    - RINDENT
    - xlat_debug_attr_vp
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_pairs_debug(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t
      \  request_t *request, fr_value_box_list_t *args)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:344,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:364,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:366,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:376,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:390,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:392,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:399,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:400,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:400,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 3
    argNames:
    - request
    - vb
    - uctx
    argTypes:
    - UNUSED*
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 404
    functionName: filename_xlat_escape
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - fr_value_box_print
    - fr_value_box_is_safe_for
    - fr_value_box_cast_in_place
    - fr_sbuff_used
    - fr_value_box_clear
    - fr_value_box_bstrndup
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void filename_xlat_escape(UNUSED request_t *request, fr_value_box_t
      *vb, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:428,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:429,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:432,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:432,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:433,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 438
    functionName: xlat_func_file_exists
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - stat
    - fr_assert
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_exists(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   UNUSED request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:451,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:452,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:455,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:457,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:457,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:461,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:463,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:463,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:464,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:478,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:479,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:485,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:487,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:487,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:488,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:489,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:493,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 496
    functionName: xlat_func_file_head
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - open
    - fr_syserror
    - read
    - REDEBUG
    - fr_value_box_bstrndup
    - fr_assert
    - fr_value_box_alloc
    - close
    - REDEBUG3
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_head(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:507,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:508,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:511,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:512,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:512,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:516,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:516,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 522
    functionName: xlat_func_file_size
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_syserror
    - stat
    - fr_assert
    - fr_value_box_alloc
    - REDEBUG3
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_size(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:537,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:538,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:541,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:543,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:543,1
    - Dst: lseek
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:547,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:549,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:549,1
    - Dst: lseek
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:559,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:560,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:560,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:564,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:567,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:567,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:568,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:588,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:589,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:589,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:591,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:592,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:695,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:695,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:696,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:697,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:701,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 122
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 704
    functionName: xlat_func_file_tail
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - open
    - fr_syserror
    - read
    - fr_value_box_bstrndup
    - fr_value_box_list_num_elements
    - fr_assert
    - fr_value_box_alloc
    - close
    - REDEBUG3
    - MEM
    - lseek
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_tail(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:724,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:725,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:728,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:730,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:730,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:734,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:735,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:735,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:737,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:742,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:746,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:746,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:747,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:749,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:751,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:751,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:752,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:755,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:758,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:759,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:763,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 766
    functionName: xlat_func_file_cat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fstat
    - fr_value_box_mem_alloc
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - open
    - fr_syserror
    - read
    - RPERROR
    - fr_assert
    - fr_value_box_alloc
    - close
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_cat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request, fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:775,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:776,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:779,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:779,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:780,1
    - Dst: unlink
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:782,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:784,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 788
    functionName: xlat_func_file_rm
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_syserror
    - fr_assert
    - fr_value_box_alloc
    - unlink
    - REDEBUG3
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_rm(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:797,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:798,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:801,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:801,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:802,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:804,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:807,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:807,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 815
    functionName: xlat_func_file_touch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - open
    - fr_syserror
    - fr_assert
    - fr_value_box_alloc
    - close
    - REDEBUG3
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_touch(TALLOC_CTX *ctx, fr_dcursor_t *out,
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:823,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:824,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:827,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:827,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:828,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:830,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:832,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 836
    functionName: xlat_func_file_mkdir
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_syserror
    - fr_assert
    - fr_value_box_alloc
    - REDEBUG3
    - MEM
    - fr_mkdir
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_mkdir(TALLOC_CTX *ctx, fr_dcursor_t *out,
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:844,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:845,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:848,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:848,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:849,1
    - Dst: rmdir
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:851,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:853,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 857
    functionName: xlat_func_file_rmdir
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - rmdir
    - XLAT_ARGS
    - fr_syserror
    - fr_assert
    - fr_value_box_alloc
    - REDEBUG3
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_file_rmdir(TALLOC_CTX *ctx, fr_dcursor_t *out,
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_untaint
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:871,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:872,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 877
    functionName: xlat_func_untaint
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - fr_value_box_list_pop_head
    - fr_value_box_list_untaint
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_untaint(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t       UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       UNUSED
      request_t *request, fr_value_box_list_t *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:885,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:888,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:890,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:892,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 899
    functionName: xlat_func_taint
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_mark_unsafe
    - fr_assert
    - fr_value_box_list_pop_head
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_taint(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     UNUSED request_t
      *request, fr_value_box_list_t *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:934,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:940,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:947,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:948,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:954,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:955,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:959,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:960,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:962,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:963,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:967,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:969,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:969,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:970,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:970,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:971,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:972,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:973,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:976,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:977,1
    - Dst: fr_sbuff_set_to_end
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:981,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:982,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:982,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:983,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:983,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:984,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:986,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:987,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:990,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 994
    functionName: xlat_func_explode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_value_box_list_pop_head
    - fr_value_box_bstrndup
    - fr_sbuff_current
    - MEM
    - fr_value_box_alloc_null
    - fr_sbuff_set_to_end
    - fr_sbuff_set_to_start
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - FR_SBUFF_IN
    - fr_sbuff_marker
    - fr_sbuff_advance
    - fr_value_box_safety_copy
    - fr_sbuff_adv_to_str
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_sbuff_set
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_explode(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1013,1
    - Dst: fr_value_box_get_cursor
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1015,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1017,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1019,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1020,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1022,1
    - Dst: fr_pair_set_immutable
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1023,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1028
    functionName: xlat_func_immutable_attr
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_set_immutable
    - fr_value_box_get_cursor
    - RDEBUG
    - fr_dcursor_next
    - XLAT_ARGS
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_immutable_attr(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t
      \     request_t *request, fr_value_box_list_t *args)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1053,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1055,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1057,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1062,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1063,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1064,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1080,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1099,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1101,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1107,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1112,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1112,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1114,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1114,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1116,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1116,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1118,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1118,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1125,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1129,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1142,1
    - Dst: fr_snprint_uint128
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1144,1
    - Dst: ntohlll
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1144,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1146,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1146,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1147,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1147,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1148,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1149,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1154,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 84
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1157
    functionName: xlat_func_integer
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_snprint_uint128
    - RPEDEBUG
    - fr_value_box_cast_in_place
    - talloc_free
    - XLAT_ARGS
    - memcpy
    - fr_strerror_printf
    - ntohlll
    - fr_dcursor_append
    - fr_value_box_bstrndup
    - strlen
    - fr_strerror_clear
    - fr_type_to_str
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_list_remove
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_integer(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1179,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1186
    functionName: xlat_func_log_info
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - XLAT_ARGS
    - RINFO
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_log_info(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t\tUNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\trequest_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1204,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1211
    functionName: xlat_func_log_debug
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - XLAT_ARGS
    - RDEBUG
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_log_debug(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t\t UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1229,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1236
    functionName: xlat_func_log_err
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - XLAT_ARGS
    - REDEBUG
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_log_err(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t\t UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1254,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1261
    functionName: xlat_func_log_warn
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - XLAT_ARGS
    - RWDEBUG
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_log_warn(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t\t UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - log
    argTypes:
    - fr_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1267
    functionName: _log_dst_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int _log_dst_free(fr_log_t *log)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1293,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1300,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1301,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1302,1
    - Dst: request_log_prepend
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1305,1
    - Dst: log_dst_by_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1309,1
    - Dst: request_log_prepend
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1315,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1322,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1322,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1329,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1330,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1332,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1332,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1333,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1340,1
    - Dst: request_log_prepend
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1342,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1344
    functionName: xlat_func_log_dst
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_set_destructor
    - talloc_free
    - XLAT_ARGS
    - open
    - REDEBUG
    - fr_syserror
    - talloc_strdup
    - log_dst_by_name
    - fr_type_is_null
    - request_log_prepend
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_log_dst(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t       UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1379,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1383,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1385,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1385,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1387,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1389,1
    - Dst: map_afrom_attr_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1390,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1391,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1401,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1402,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1416,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1417,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1421,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1422,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1423,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1430
    functionName: xlat_func_map
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - map_afrom_attr_str
    - unlang_interpret_event_list
    - fr_dcursor_append
    - RPEDEBUG
    - XLAT_ARGS
    - map_to_request
    - REDEBUG
    - REXDENT
    - talloc_free
    - fr_value_box_list_foreach
    - RINDENT
    - fr_value_box_alloc
    - tmpl_type_to_str
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_map(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1462,1
    - Dst: time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1467,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1468,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1472,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1474,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1478,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1520,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1524,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1524,1
    - Dst: fr_value_box_uint64
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1525,1
    - Dst: mktime
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1525,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1526,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1528
    functionName: xlat_func_next_time
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_uint64
    - fr_dcursor_append
    - XLAT_ARGS
    - time
    - REDEBUG
    - localtime_r
    - mktime
    - strtoul
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_next_time(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1542,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1543,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - UNUSED
    - UNUSED
    - xlat_ctx_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1548
    functionName: xlat_eval_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - XLAT_RESULT_SUCCESS
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_eval_resume(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t
      *out,\n\t\t\t\t      xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t
      *request, UNUSED fr_value_box_list_t *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1583,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1585,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1587,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1587,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1587,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1592,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1594,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1607,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1611,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1613,1
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1623,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1624,1
    - Dst: unlang_xlat_yield
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1629,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1559
    functionDepth: 6
    functionLinenumber: 1559
    functionLinenumberEnd: 1635
    functionName: xlat_func_eval
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - xlat_tokenize_expression
    - unlang_xlat_push
    - unlang_interpret_event_list
    - RPEDEBUG
    - talloc_free
    - XLAT_ARGS
    - FR_SBUFF_IN
    - talloc_zero
    - xlat_resolve
    - unlang_interpret_frame_talloc_ctx
    - MEM
    - unlang_xlat_yield
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_eval(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1674,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1686,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1694,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1695,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1701,1
    - Dst: fr_value_box_bstr_realloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1705,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1706,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1710,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1711,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1718,1
    - Dst: fr_sbuff_move
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1719,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1719,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1719,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1723,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1723,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1723,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1730,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1732,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1732,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1733,1
    - Dst: fr_sbuff_set_to_end
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1735,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1736,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1740
    functionName: xlat_func_lpad
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_advance
    - fr_sbuff_set_to_end
    - RPEDEBUG
    - fr_dcursor_append
    - memcpy
    - XLAT_ARGS
    - fr_sbuff_move
    - fr_sbuff_terminate
    - fr_value_box_list_pop_head
    - fr_sbuff_marker
    - fr_value_box_bstr_realloc
    - fr_sbuff_init_in
    - fr_sbuff_current
    - fr_sbuff_ahead
    - talloc_strlen
    - FR_SBUFF
    - memset
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_lpad(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1770,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1780,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1788,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1789,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1794,1
    - Dst: fr_value_box_bstr_realloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1798,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1800,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1804,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1805,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1808,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1808,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1808,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1815,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1816,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1823
    functionName: xlat_func_rpad
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_advance
    - RPEDEBUG
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_list_pop_head
    - fr_value_box_bstr_realloc
    - fr_sbuff_init_in
    - fr_sbuff_current
    - fr_sbuff_remaining
    - talloc_strlen
    - memset
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_rpad(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1849,1
    - Dst: FR_BASE64_ENC_LENGTH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1851,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1853,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1853,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1854,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1855,1
    - Dst: fr_base64_encode
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1859,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1859,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1859,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1860,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1862,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1863,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1866,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1867,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1839
    functionDepth: 1
    functionLinenumber: 1839
    functionLinenumberEnd: 1871
    functionName: xlat_func_base64_encode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - RPEDEBUG
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_base64_encode
    - FR_SBUFF_OUT
    - FR_DBUFF_TMP
    - fr_assert
    - FR_BASE64_ENC_LENGTH
    - talloc_array_length
    - fr_value_box_bstr_alloc
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_base64_encode(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1897,1
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1905,1
    - Dst: FR_BASE64_DEC_LENGTH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1909,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1910,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1910,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1912,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1912,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1913,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1913,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1914,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1916,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1917,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1921,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1921,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1924,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1887
    functionDepth: 2
    functionLinenumber: 1887
    functionLinenumberEnd: 1928
    functionName: xlat_func_base64_decode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - FR_BASE64_DEC_LENGTH
    - fr_value_box_mem_alloc
    - fr_value_box_safety_copy_changed
    - RPEDEBUG
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_base64_decode
    - xlat_arg_copy_out
    - FR_SBUFF_IN
    - FR_DBUFF_TMP
    - fr_value_box_mem_realloc
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_base64_decode(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t     request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1957,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1959,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1962,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1984,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1984,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1985,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1985,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1986,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1986,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1986,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1988,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1989,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1993,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:1994,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1998
    functionName: xlat_func_bin
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_mem_alloc
    - fr_value_box_safety_copy_changed
    - fr_dcursor_append
    - REDEBUG2
    - XLAT_ARGS
    - fr_base16_decode
    - REDEBUG
    - talloc_free
    - FR_SBUFF_IN
    - fr_value_box_list_pop_head
    - FR_DBUFF_TMP
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_bin(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2025,1
    - Dst: fr_time_delta_to_timespec
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2027,1
    - Dst: nanosleep
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2029,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2031,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2031,1
    - Dst: fr_time_delta_sub
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2032,1
    - Dst: fr_time_delta_from_timespec
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2033,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2037
    functionName: xlat_func_block
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - nanosleep
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_time_delta_to_timespec
    - fr_time_delta_sub
    - fr_value_box_alloc
    - fr_time_delta_from_timespec
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_block(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     UNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2066,1
    - Dst: fr_type_is_numeric
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2071,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2072,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2073,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2080,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2081,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2086,1
    - Dst: xlat_time_res_attr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2088,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2089,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2097,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2102,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2102,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2106,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2106,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2107,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2108,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2113,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2113,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2124,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2126,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2128,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2128,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2129,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2131,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2133,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2137,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2137,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2137,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2138,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2139,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2148,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2151,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2153,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2155,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2157,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2158,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2158,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2161,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2162,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2057
    functionDepth: 2
    functionLinenumber: 2057
    functionLinenumberEnd: 2168
    functionName: xlat_func_cast
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_start
    - fr_value_box_cast_in_place
    - fr_value_box_list_pop_head
    - fr_value_box_mark_safe_for
    - fr_value_box_bstrndup
    - fr_value_box_alloc
    - fr_type_to_str
    - fr_type_is_numeric
    - MEM
    - fr_value_box_alloc_null
    - fr_value_box_list_remove
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - unlikely
    - RPEDEBUG
    - VALUE_BOX_LIST_VERIFY
    - fr_table_value_by_str
    - xlat_time_res_attr
    - fr_assert
    - fr_value_box_list_next
    - RDEBUG
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_value_box_list_concat_as_string
    - fr_sbuff_used
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_cast(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2201,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2206,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2209,1
    - Dst: fr_value_box_list_aprint
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2213,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2216,1
    - Dst: fr_value_box_list_tainted
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2216,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2221
    functionName: xlat_func_concat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_tainted
    - RPEDEBUG
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_bstrdup_buffer_shallow
    - fr_value_box_alloc
    - fr_value_box_list_aprint
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_concat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2247,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2249,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2250,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2255,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2255,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2257,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2257,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2258,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2259,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2260,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2265,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2266,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2269,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2274
    functionName: xlat_func_hex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - fr_value_box_strdup
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_base16_encode
    - FR_SBUFF_OUT
    - fr_value_box_strdup_shallow
    - fr_value_box_list_pop_head
    - FR_DBUFF_TMP
    - talloc_zero_array
    - MEM
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_hex(UNUSED TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2286,1
    - Dst: fr_hmac_md5
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2290,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2293,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2296,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2296,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2297,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - ctx
    - out
    - args
    - digest
    - digest_len
    - type
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - fr_value_box_list_t*
    - uint8_t*
    - int
    - hmac_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2302
    functionName: xlat_hmac
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_hmac_sha1
    - fr_value_box_memdup
    - fr_hmac_md5
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_hmac(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\tfr_value_box_list_t
      *args, uint8_t *digest, int digest_len, hmac_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_hmac
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2319
    functionDepth: 2
    functionLinenumber: 2319
    functionLinenumberEnd: 2325
    functionName: xlat_func_hmac_md5
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_hmac
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_hmac_md5(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx,\n\t\t\t\t\tUNUSED request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_hmac
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2337
    functionDepth: 2
    functionLinenumber: 2337
    functionLinenumberEnd: 2343
    functionName: xlat_func_hmac_sha1
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_hmac
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_hmac_sha1(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t UNUSED request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2360,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2362,1
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2355
    functionDepth: 2
    functionLinenumber: 2355
    functionLinenumberEnd: 2367
    functionName: xlat_func_join
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - xlat_arg_copy_out
    - fr_value_box_list_foreach
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_join(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    UNUSED request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2360,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2362,1
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2359
    functionDepth: 2
    functionLinenumber: 2359
    functionLinenumberEnd: 2365
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 10
    functionsReached:
    - fr_assert
    - xlat_arg_copy_out
    - fr_value_box_list_foreach
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2373,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2375,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_dcursor_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2380
    functionName: ungroup
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_pop_head
    - fr_dcursor_append
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void ungroup(fr_dcursor_t *out, fr_value_box_list_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2391,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2392,1
    - Dst: ungroup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2385
    functionDepth: 2
    functionLinenumber: 2385
    functionLinenumberEnd: 2397
    functionName: xlat_func_ungroup
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - ungroup
    - fr_value_box_list_next
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_ungroup(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t       UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       UNUSED
      request_t *request, fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2426,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2426,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2427,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2427,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2432
    functionName: xlat_func_length
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - fr_value_box_alloc
    - fr_value_box_network_length
    - MEM
    - fr_type_is_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_length(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t *request,
      fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2426,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2426,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2427,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2427,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2423
    functionDepth: 1
    functionLinenumber: 2423
    functionLinenumberEnd: 2429
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 10
    functionsReached:
    - fr_dcursor_append
    - fr_value_box_alloc
    - fr_value_box_network_length
    - MEM
    - fr_type_is_null
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2457,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2460,1
    - Dst: fr_md4_calc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2463,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2466,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2466,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2467,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2469,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2473
    functionName: xlat_func_md4
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_md4_calc
    - fr_value_box_alloc_null
    - fr_dcursor_append
    - XLAT_ARGS
    - VALUE_BOX_LIST_VERIFY
    - MEM
    - fr_value_box_memdup
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_md4(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2497,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2500,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2503,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2506,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2506,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2507,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2512
    functionName: xlat_func_md5
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_md5_calc
    - fr_value_box_alloc_null
    - fr_dcursor_append
    - XLAT_ARGS
    - MEM
    - fr_value_box_memdup
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_md5(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \  UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t   UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2539,1
    - Dst: fr_value_box_get_cursor
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2541,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2543,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2545,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2548,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2548,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2549,1
    - Dst: fr_pair_aprint
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2549,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2550,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2551,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2555,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2556,1
    - Dst: VALUE_BOX_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2562
    functionName: xlat_func_pairs_print
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - unlikely
    - fr_value_box_get_cursor
    - RPEDEBUG
    - fr_dcursor_next
    - talloc_free
    - XLAT_ARGS
    - fr_dcursor_append
    - fr_pair_aprint
    - fr_value_box_bstrdup_buffer_shallow
    - MEM
    - VALUE_BOX_VERIFY
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_pairs_print(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2586,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2593,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2596,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2596,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2602
    functionName: xlat_func_rand
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - fr_rand
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_rand(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    UNUSED request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2660,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2680,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2681,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2691,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2691,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2692,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2692,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2700,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2701,1
    - Dst: RMARKER
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2704,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2713,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2779,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2786,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2787,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2798,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2635
    functionDepth: 1
    functionLinenumber: 2635
    functionLinenumberEnd: 2801
    functionName: xlat_func_randstr
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - isdigit
    - memcpy
    - talloc_free
    - XLAT_ARGS
    - fr_dcursor_append
    - REDEBUG
    - strtol
    - RMARKER
    - fr_rand
    - fr_value_box_bstr_alloc
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_randstr(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UUID_CHARS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2815,1
    - Dst: UUID_CHARS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2817,1
    - Dst: UUID_CHARS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2819,1
    - Dst: UUID_CHARS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2821,1
    - Dst: UUID_CHARS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2823,1
    - Dst: UUID_CHARS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2824,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - vb
    - vals
    argTypes:
    - fr_value_box_t*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2805
    functionDepth: 1
    functionLinenumber: 2805
    functionLinenumberEnd: 2827
    functionName: uuid_print_vb
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - UUID_CHARS
    - fr_value_box_bstrndup
    linkageType: ''
    returnType: int
    signature: int uuid_print_vb(fr_value_box_t *vb, uint32_t vals[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _v
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2810
    functionDepth: 0
    functionLinenumber: 2810
    functionLinenumberEnd: 2814
    functionName: UUID_CHARS
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UUID_CHARS(_v, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vals
    - version
    argTypes:
    - uint32_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2829
    functionDepth: 0
    functionLinenumber: 2829
    functionLinenumberEnd: 2835
    functionName: uuid_set_version
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uuid_set_version(uint32_t vals[4], uint8_t version)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - vals
    - variant
    argTypes:
    - uint32_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2837
    functionDepth: 0
    functionLinenumber: 2837
    functionLinenumberEnd: 2860
    functionName: uuid_set_variant
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uuid_set_variant(uint32_t vals[4], uint8_t variant)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2879,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2879,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2885,1
    - Dst: uuid_set_version
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2890,1
    - Dst: uuid_set_variant
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2891,1
    - Dst: uuid_print_vb
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2893,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2894,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2872
    functionDepth: 2
    functionLinenumber: 2872
    functionLinenumberEnd: 2900
    functionName: xlat_func_uuid_v4
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - uuid_set_version
    - fr_dcursor_append
    - talloc_free
    - uuid_print_vb
    - fr_rand
    - fr_value_box_alloc
    - MEM
    - uuid_set_variant
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_uuid_v4(TALLOC_CTX *ctx, fr_dcursor_t *out,
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       UNUSED request_t *request, UNUSED
      fr_value_box_list_t *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2920,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2920,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2926,1
    - Dst: fr_time_to_msec
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2931,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2931,1
    - Dst: uuid_set_version
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2939,1
    - Dst: uuid_set_variant
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2940,1
    - Dst: uuid_print_vb
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2942,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2912
    functionDepth: 2
    functionLinenumber: 2912
    functionLinenumberEnd: 2946
    functionName: xlat_func_uuid_v7
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - uuid_set_version
    - fr_dcursor_append
    - fr_time
    - fr_time_to_msec
    - uuid_print_vb
    - fr_rand
    - fr_value_box_alloc
    - MEM
    - uuid_set_variant
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_uuid_v7(TALLOC_CTX *ctx, fr_dcursor_t *out,
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       UNUSED request_t *request, UNUSED
      fr_value_box_list_t *args)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2973,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2981,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2982,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2986,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2990,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2991,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2992,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2995,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:2996,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3001,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3006,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3011,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3016,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3021,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3026,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3026,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3028,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 2965
    functionDepth: 1
    functionLinenumber: 2965
    functionLinenumberEnd: 3032
    functionName: xlat_func_range
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - XLAT_ARGS
    - REDEBUG
    - fr_value_box_alloc
    - fr_type_is_null
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_range(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3040,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3042,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3046,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3047,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3047,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - request
    - vb
    - uctx
    argTypes:
    - UNUSED*
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3034
    functionDepth: 1
    functionLinenumber: 3034
    functionLinenumberEnd: 3051
    functionName: regex_xlat_escape
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - fr_value_box_print
    - fr_sbuff_used
    - fr_value_box_clear
    - fr_value_box_bstrndup
    linkageType: ''
    returnType: void
    signature: void regex_xlat_escape(UNUSED request_t *request, fr_value_box_t *vb,
      UNUSED void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3075,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3080,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3088,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3088,1
    - Dst: regex_request_to_sub
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3089,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3090,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3091,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3095,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3110,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3111,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3115,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3116,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3120,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3120,1
    - Dst: regex_request_to_sub
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3121,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3123,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3126,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3139,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3143,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3147,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3147,1
    - Dst: regex_request_to_sub_named
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3148,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3150,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3153,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3071
    functionDepth: 1
    functionLinenumber: 3071
    functionLinenumberEnd: 3162
    functionName: xlat_func_regex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - regex_request_to_sub_named
    - RPEDEBUG
    - fr_dcursor_append
    - REDEBUG2
    - talloc_free
    - RDEBUG
    - REDEBUG
    - regex_request_to_sub
    - fr_value_box_list_concat_in_place
    - fr_value_box_cast
    - MEM
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_regex(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t     request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3187,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3189,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3191,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3194,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3196,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3198,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3198,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3199,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3178
    functionDepth: 1
    functionLinenumber: 3178
    functionLinenumberEnd: 3204
    functionName: xlat_func_sha1
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    - fr_value_box_memdup
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_sha1(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    UNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3226,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3228,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3229,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3231,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3233,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3235,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3236,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3238,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3238,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3239,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    - md
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3216
    functionDepth: 1
    functionLinenumber: 3216
    functionLinenumberEnd: 3244
    functionName: xlat_evp_md
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_destroy
    - fr_dcursor_append
    - XLAT_ARGS
    - EVP_DigestInit_ex
    - fr_value_box_memdup
    - EVP_MD_CTX_create
    - EVP_DigestFinal_ex
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_evp_md(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t UNUSED request_t *request, fr_value_box_list_t
      *args, EVP_MD const *md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _md
    - ','
    - _md_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3254
      start: 3246
    functionDepth: 0
    functionLinenumber: 3246
    functionLinenumberEnd: 3254
    functionName: EVP_MD_XLAT
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_XLAT(_md, _md_func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3306,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3308,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3308,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3313,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3299
    functionDepth: 1
    functionLinenumber: 3299
    functionLinenumberEnd: 3319
    functionName: xlat_func_strlen
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_alloc
    - strlen
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_strlen(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t      UNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3352,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3359,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3359,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3360,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3342
    functionDepth: 1
    functionLinenumber: 3342
    functionLinenumberEnd: 3379
    functionName: xlat_func_str_printable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_utf8_char
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_str_printable(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t     UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t     UNUSED
      request_t *request, fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3405,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3407,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3407,1
    - Dst: fr_utf8_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3408,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3398
    functionDepth: 1
    functionLinenumber: 3398
    functionLinenumberEnd: 3414
    functionName: xlat_func_str_utf8
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_alloc
    - fr_utf8_str
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_str_utf8(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \       UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\tUNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3443,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3451,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3452,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3481,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3481,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3486,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3491,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3492,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3497,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3500,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3501,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3504
      start: 3437
    functionDepth: 1
    functionLinenumber: 3437
    functionLinenumberEnd: 3504
    functionName: xlat_func_substr
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_value_box_mem_alloc
    - RPEDEBUG
    - fr_value_box_cast_in_place
    - memcpy
    - XLAT_ARGS
    - fr_dcursor_append
    - fr_value_box_bstrndup
    - fr_assert
    - fr_value_box_alloc
    - MEM
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_substr(TALLOC_CTX *ctx, fr_dcursor_t *out,
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3518,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3524,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3524,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3525,1
    - Dst: xlat_is_literal
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3528,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3529,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3529,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3531,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3534,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3536,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3539,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3542,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3545,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3547,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3549,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3550,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3552,1
    - Dst: regex_flags_parse
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3553,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3557,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3562,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3563,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3563,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3563,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - xctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3516
    functionDepth: 1
    functionLinenumber: 3516
    functionLinenumberEnd: 3572
    functionName: xlat_instantiate_subst_regex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - PERROR
    - xlat_is_literal
    - fr_dlist_next
    - fr_dlist_num_elements
    - fr_type_is_string
    - talloc_get_type_abort
    - FR_SBUFF_IN
    - fr_sbuff_marker
    - fr_sbuff_adv_to_chr
    - fr_sbuff_current
    - fr_assert
    - regex_flags_parse
    - fr_sbuff_remaining
    - fr_sbuff_adv_past_whitespace
    - regex_compile
    - fr_sbuff_next
    - fr_sbuff_next_if_char
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_subst_regex(xlat_inst_ctx_t const *xctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3597,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3610,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3616,1
    - Dst: fr_sbuff_len
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3617,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3618,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3622,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3623,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3625,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3627,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3628,1
    - Dst: regex_flags_parse
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3630,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3632,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3639,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3640,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3640,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3640,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3642,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3652,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3652,1
    - Dst: regex_substitute
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3653,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3656,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3658,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3661,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3663,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3664,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3666,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3668,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3671
      start: 3593
    functionDepth: 1
    functionLinenumber: 3593
    functionLinenumberEnd: 3671
    functionName: xlat_func_subst_regex
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_sbuff_adv_to_chr
    - fr_sbuff_current
    - regex_substitute
    - MEM
    - fr_value_box_alloc_null
    - RPEDEBUG
    - regex_flags_parse
    - fr_value_box_safety_merge
    - regex_compile
    - FR_SBUFF_IN
    - fr_sbuff_marker
    - fr_sbuff_next
    - fr_value_box_safety_copy
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_value_box_bstrdup_buffer_shallow
    - fr_sbuff_len
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: "int xlat_func_subst_regex(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t fr_value_box_list_t *args)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3714,1
    - Dst: xlat_func_subst_regex
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3720,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3732,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3733,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3745,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3755,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3755,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3756,1
    - Dst: memmem
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3759,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3761,1
    - Dst: talloc_bstr_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3761,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3765,1
    - Dst: talloc_bstr_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3765,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3766,1
    - Dst: talloc_bstr_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3766,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3770,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3771,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3772,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3776,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3777,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3779,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 6
    argNames:
    - ctx
    - out
    - xctx
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - HAVE_REGEX_PCRE2*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3696
    functionDepth: 2
    functionLinenumber: 3696
    functionLinenumberEnd: 3782
    functionName: xlat_func_subst
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - memmem
    - talloc_bstrndup
    - XLAT_ARGS
    - talloc_free
    - xlat_func_subst_regex
    - memchr
    - REDEBUG
    - fr_value_box_bstrdup_buffer_shallow
    - fr_dcursor_append
    - talloc_bstr_append
    - fr_value_box_safety_merge
    - MEM
    - fr_value_box_safety_copy
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_subst(TALLOC_CTX *ctx, fr_dcursor_t *out,\n#ifdef
      HAVE_REGEX_PCRE2\n\t\t\t\t   xlat_ctx_t const *xctx,\n#else\n\t\t\t\t   UNUSED
      xlat_ctx_t const *xctx,\n#endif\n\t\t\t\t   request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3798,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3799,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3800,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3801,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3803,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3805,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3806,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3807,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3808,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3809,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3810,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3811,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3812,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3814,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3816,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3817,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3818,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3819,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3821,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3823,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3825,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3827,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3828,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3829,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3830,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3831,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3832,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3833,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3834,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3835,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3837,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3842,1
    - Dst: fr_table_value_by_substr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3844,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3846,1
    - Dst: raise
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3849,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3850,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - fr_dcursor_t *out
    - xctx
    - request
    - args
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3793
    functionDepth: 1
    functionLinenumber: 3793
    functionLinenumberEnd: 3854
    functionName: xlat_func_signal_raise
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - raise
    - RERROR
    - L
    - XLAT_ARGS
    - strerror
    - fr_table_value_by_substr
    - NUM_ELEMENTS
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_signal_raise(UNUSED TALLOC_CTX *ctx, UNUSED
      fr_dcursor_t *out,\n\t\t\t\t\t    UNUSED xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t\t
      \   fr_value_box_list_t *args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3887,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3894,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3896,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3897,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3897,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3899,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3900,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3902,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3903,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3903,1
    - Dst: fr_time_gmtoff
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3904,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3907,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3908,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3908,1
    - Dst: fr_time_is_dst
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3909,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3912,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3914,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3915,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3918,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3923,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3925,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3925,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3926,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3929,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3931,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3932,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3935,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3940,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3942,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3942,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3943,1
    - Dst: fr_unix_time_from_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3946,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3947,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3951,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3951,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3955,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3958
    functionName: xlat_func_time
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_dcursor_append
    - fr_time
    - XLAT_ARGS
    - fr_unix_time_to_sec
    - REDEBUG
    - fr_time_is_dst
    - gmtime_r
    - fr_time_to_unix_time
    - fr_time_gmtoff
    - fr_value_box_alloc
    - fr_unix_time_unwrap
    - strcmp
    - fr_type_is_null
    - fr_unix_time_from_str
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t    request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3983,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3983,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3984,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3984,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:3986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3989
      start: 3977
    functionDepth: 1
    functionLinenumber: 3977
    functionLinenumberEnd: 3989
    functionName: xlat_func_time_now
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - fr_time
    - fr_time_to_unix_time
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time_now(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx,\n\t\t\t\t\tUNUSED request_t *request, UNUSED fr_value_box_list_t
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4014,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4014,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4015,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 4008
    functionDepth: 1
    functionLinenumber: 4008
    functionLinenumberEnd: 4020
    functionName: xlat_func_time_request
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - MEM
    - fr_value_box_alloc
    - fr_time_to_unix_time
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time_request(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t    request_t
      *request, UNUSED fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4033,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4033,1
    - Dst: fr_time_gmtoff
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4034,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4027
    functionDepth: 1
    functionLinenumber: 4027
    functionLinenumberEnd: 4039
    functionName: xlat_func_time_offset
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_time_gmtoff
    - MEM
    - fr_value_box_alloc
    - fr_dcursor_append
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time_offset(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   UNUSED request_t
      *request, UNUSED fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4052,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4052,1
    - Dst: fr_time_is_dst
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4053,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4046
    functionDepth: 1
    functionLinenumber: 4046
    functionLinenumberEnd: 4058
    functionName: xlat_func_time_is_dst
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - MEM
    - fr_value_box_alloc
    - fr_time_is_dst
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_time_is_dst(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t   UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t   UNUSED request_t
      *request, UNUSED fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4072,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4074,1
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4078,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4078,1
    - Dst: xlat_arg_copy_out
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - args
    - upper
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - fr_value_box_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4065
    functionDepth: 2
    functionLinenumber: 4065
    functionLinenumberEnd: 4085
    functionName: xlat_change_case
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - tolower
    - toupper
    - XLAT_ARGS
    - UNCONST
    - xlat_arg_copy_out
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_change_case(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     UNUSED request_t *request, fr_value_box_list_t *args, bool upper)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_change_case
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4109
      start: 4104
    functionDepth: 3
    functionLinenumber: 4104
    functionLinenumberEnd: 4109
    functionName: xlat_func_tolower
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_change_case
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_tolower(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_change_case
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4123
    functionDepth: 3
    functionLinenumber: 4123
    functionLinenumberEnd: 4128
    functionName: xlat_func_toupper
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_change_case
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_toupper(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t       request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4155,1
    - Dst: isalnum
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4164,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4176,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4176,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4177,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4177,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4178,1
    - Dst: isalnum
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4184,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4199,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4208,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4145
    functionDepth: 1
    functionLinenumber: 4145
    functionLinenumberEnd: 4211
    functionName: xlat_func_urlquote
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - XLAT_ARGS
    - snprintf
    - fr_value_box_bstr_alloc
    - MEM
    - fr_value_box_safety_copy
    - fr_value_box_alloc_null
    - isalnum
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_urlquote(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx,\n\t\t\t\t\tUNUSED request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4241,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4252,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4262,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4262,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4263,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4263,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4264,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4277,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4277,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4278,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4278,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4279,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4280,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4292
      start: 4230
    functionDepth: 1
    functionLinenumber: 4230
    functionLinenumberEnd: 4292
    functionName: xlat_func_urlunquote
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - tolower
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - REMARKER
    - memchr
    - fr_value_box_bstr_alloc
    - MEM
    - fr_value_box_safety_copy
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_urlunquote(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\t
      \ UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t  request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4318,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4323,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4325,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4328,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4329,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4335,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4336,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4339,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4339,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4341,1
    - Dst: fr_test_point_pair_decode_t*::test_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4348,1
    - Dst: xlat_decode_value_box_list
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4353,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4357,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4358,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4360,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4368,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4368,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4370,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4372,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4374
      start: 4311
    functionDepth: 1
    functionLinenumber: 4311
    functionLinenumberEnd: 4374
    functionName: xlat_pair_decode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_pair_update_by_da_parent
    - fr_pair_delete
    - fr_dcursor_append
    - REDEBUG2
    - XLAT_ARGS
    - fr_type_is_structural
    - xlat_decode_value_box_list
    - talloc_free
    - talloc_get_type_abort
    - RPERROR
    - fr_assert
    - fr_test_point_pair_decode_t*::test_ctx
    - fr_value_box_alloc
    - fr_pair_list_parent
    - MEM
    - fr_dict_root
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_pair_decode(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4394,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4396,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4396,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4408,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4390
    functionDepth: 1
    functionLinenumber: 4390
    functionLinenumberEnd: 4415
    functionName: xlat_func_subnet_netmask
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_subnet_netmask(TALLOC_CTX *ctx, fr_dcursor_t
      *out, UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t      UNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4430,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4432,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4432,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4433,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4433,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4437
      start: 4426
    functionDepth: 1
    functionLinenumber: 4426
    functionLinenumberEnd: 4437
    functionName: xlat_func_subnet_broadcast
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_subnet_broadcast(TALLOC_CTX *ctx, fr_dcursor_t
      *out, UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t\tUNUSED request_t *request,
      fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - xlat_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4439
    functionDepth: 0
    functionLinenumber: 4439
    functionLinenumberEnd: 4443
    functionName: xlat_pair_dencode_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xlat_pair_dencode_instantiate(xlat_inst_ctx_t const *mctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4477,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4479,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4481,1
    - Dst: fr_value_box_get_cursor
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4483,1
    - Dst: fr_test_point_pair_encode_t*::test_ctx
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4489,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4495,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4496,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4499,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4500,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4501,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4510,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4513,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4514,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4516,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4517,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4519,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4529,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4531,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4552,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4552,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4559,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4560,1
    - Dst: fr_test_point_pair_encode_t*::func
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4561,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4564,1
    - Dst: fr_test_point_pair_encode_t*::func
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4566,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4569,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4579,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4579,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4580,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4580,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4580,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4581,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - xlat_ctx_t*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4584
      start: 4462
    functionDepth: 1
    functionLinenumber: 4462
    functionLinenumberEnd: 4584
    functionName: xlat_pair_encode
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - memcpy
    - REDEBUG2
    - fr_type_is_structural
    - fr_test_point_pair_encode_t*::func
    - fr_dbuff_start
    - MEM
    - fr_value_box_alloc_null
    - RPEDEBUG
    - fr_dcursor_next
    - fr_dbuff_used
    - fr_dcursor_head
    - fr_test_point_pair_encode_t*::test_ctx
    - fr_dict_attr_common_parent
    - RDEBUG2
    - fr_assert
    - FR_DBUFF_TALLOC_THREAD_LOCAL
    - fr_value_box_memdup
    - fr_value_box_get_cursor
    - fr_dcursor_append
    - XLAT_ARGS
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_pair_encode(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      \     xlat_ctx_t const *xctx,\n\t\t\t\t      request_t *request, fr_value_box_list_t
      *args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4597,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4598,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4600,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4603,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4605,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4605,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4606,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4607,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4612,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4618,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4619,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4621,1
    - Dst: xlat_func_find
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4623,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4625,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4625,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4626,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - dl
    - name
    - dict
    argTypes:
    - dl_t*
    - char*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4633
      start: 4586
    functionDepth: 3
    functionLinenumber: 4586
    functionLinenumberEnd: 4633
    functionName: xlat_protocol_register_by_name
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - unlikely
    - snprintf
    - talloc
    - xlat_func_args_set
    - xlat_func_find
    - xlat_func_flags_set
    - xlat_func_register
    - dlsym
    linkageType: ''
    returnType: int
    signature: int xlat_protocol_register_by_name(dl_t *dl, char const *name, fr_dict_t
      const *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_dl
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4637,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4647,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4647,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4649,1
    - Dst: xlat_protocol_register_by_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4652,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4653
      start: 4635
    functionDepth: 4
    functionLinenumber: 4635
    functionLinenumberEnd: 4653
    functionName: xlat_protocol_register
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - tolower
    - xlat_protocol_register_by_name
    - fr_dict_root
    - fr_dict_internal
    - fr_dict_dl
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int xlat_protocol_register(fr_dict_t const *dict)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dl_loader_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4661,1
    - Dst: dl_by_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4664,1
    - Dst: xlat_protocol_register_by_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4670
      start: 4657
    functionDepth: 4
    functionLinenumber: 4657
    functionLinenumberEnd: 4670
    functionName: xlat_protocol_register_cbor
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - dl_loader_init
    - dl_by_name
    - xlat_protocol_register_by_name
    linkageType: ''
    returnType: int
    signature: int xlat_protocol_register_cbor(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_global_ctx_iter_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4680,1
    - Dst: fr_dict_global_ctx_iter_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4682,1
    - Dst: xlat_protocol_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4683,1
    - Dst: xlat_protocol_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4689,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4689,1
    - Dst: xlat_protocol_register_cbor
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4697
      start: 4675
    functionDepth: 5
    functionLinenumber: 4675
    functionLinenumberEnd: 4697
    functionName: xlat_protocols_register
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - xlat_protocol_register_cbor
    - xlat_protocol_register
    - fr_dict_internal
    - fr_dict_global_ctx_iter_next
    - fr_dict_global_ctx_iter_init
    linkageType: ''
    returnType: int
    signature: int xlat_protocols_register(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4704,1
    - Dst: xlat_func_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4705,1
    - Dst: xlat_eval_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4706,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4710
      start: 4702
    functionDepth: 2
    functionLinenumber: 4702
    functionLinenumberEnd: 4710
    functionName: _xlat_global_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TALLOC_FREE
    - xlat_eval_free
    - xlat_func_free
    linkageType: ''
    returnType: int
    signature: int _xlat_global_free(UNUSED void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4726,1
    - Dst: xlat_func_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4729,1
    - Dst: xlat_eval_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4734,1
    - Dst: unlang_xlat_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4739,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4753,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4755,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4756,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4757,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4759,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4760,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4761,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4763,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4765,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4766,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4767,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4769,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4770,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4771,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4773,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4776,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4777,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4780,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4782,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4783,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4784,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4786,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4787,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4788,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4790,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4791,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4792,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4794,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4795,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4815,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4816,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4817,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4818,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4820,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4821,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4822,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4823,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4824,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4825,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4826,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4827,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4828,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4830,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4831,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4832,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4834,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4835,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4836,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4837,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4838,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4840,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4841,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4842,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4844,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4845,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4846,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4848,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4850,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4852,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4854,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4855,1
    - Dst: xlat_func_instantiate_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4857,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4861,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4864,1
    - Dst: XLAT_REGISTER_VOID
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4865,1
    - Dst: XLAT_REGISTER_VOID
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4866,1
    - Dst: XLAT_REGISTER_VOID
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4867,1
    - Dst: XLAT_REGISTER_VOID
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4868,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4870,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4871,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4872,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4873,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4875,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4876,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4877,1
    - Dst: XLAT_REGISTER_VOID
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4879,1
    - Dst: XLAT_REGISTER_VOID
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4880,1
    - Dst: XLAT_REGISTER_ARGS
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4882,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4884,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4884,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4885,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4886,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4888,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4888,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4889,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4890,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4902,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4903,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4904,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4905,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4906,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4908,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4909,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4910,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4912,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4912,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4913,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4914,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4915,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4915,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4916,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4917,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4918,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4933,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4933,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4935,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4936,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4937,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4939,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4939,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4941,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4942,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4943,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4952,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4955,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4956,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4957,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4958,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4959,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4962,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4965,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4968,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4969,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4970,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4971,1
    - Dst: XLAT_REGISTER_HASH
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4972,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4975,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4977,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4978,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4980,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4981,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4983,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4984,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4985,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4987,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4988,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4989,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4991,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4992,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4993,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4995,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4996,1
    - Dst: XLAT_NEW
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4997,1
    - Dst: XLAT_REGISTER_PURE
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:4999,1
    - Dst: xlat_register_expressions
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:5001,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 158
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 4722
    functionDepth: 3
    functionLinenumber: 4722
    functionLinenumberEnd: 5002
    functionName: _xlat_global_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - unlikely
    - unlang_xlat_init
    - xlat_eval_init
    - XLAT_REGISTER_VOID
    - xlat_func_instantiate_set
    - xlat_func_init
    - XLAT_NEW
    - xlat_func_safe_for_set
    - XLAT_REGISTER_PURE
    - XLAT_REGISTER_HASH
    - xlat_register_expressions
    - xlat_func_args_set
    - XLAT_REGISTER_ARGS
    - xlat_func_flags_set
    - xlat_func_register
    - talloc_init
    linkageType: ''
    returnType: int
    signature: int _xlat_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _xlat
    - ','
    - _func
    - ','
    - _return_type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4750
      start: 4744
    functionDepth: 0
    functionLinenumber: 4744
    functionLinenumberEnd: 4750
    functionName: XLAT_REGISTER_ARGS
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_ARGS(_xlat, _func, _return_type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4752
      start: 4751
    functionDepth: 0
    functionLinenumber: 4751
    functionLinenumberEnd: 4752
    functionName: XLAT_NEW
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_NEW(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _xlat
    - ','
    - _func
    - ','
    - _return_type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4807
      start: 4801
    functionDepth: 0
    functionLinenumber: 4801
    functionLinenumberEnd: 4807
    functionName: XLAT_REGISTER_ARGS
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_ARGS(_xlat, _func, _return_type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _xlat
    - ','
    - _func
    - ','
    - _return_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4809
    functionDepth: 0
    functionLinenumber: 4809
    functionLinenumberEnd: 4814
    functionName: XLAT_REGISTER_VOID
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_VOID(_xlat, _func, _return_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _xlat
    - ','
    - _func
    - ','
    - _return_type
    - ','
    - _arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4901
      start: 4895
    functionDepth: 0
    functionLinenumber: 4895
    functionLinenumberEnd: 4901
    functionName: XLAT_REGISTER_PURE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_PURE(_xlat, _func, _return_type, _arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4951
      start: 4946
    functionDepth: 0
    functionLinenumber: 4946
    functionLinenumberEnd: 4951
    functionName: XLAT_REGISTER_HASH
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_REGISTER_HASH(_name, _func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/unlang/xlat_builtin.c:5007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5009
      start: 5004
    functionDepth: 1
    functionLinenumber: 5004
    functionLinenumberEnd: 5009
    functionName: xlat_global_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_builtin.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int xlat_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/transaction_priv.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: unlang_group_to_transaction
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction_priv.h
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_transaction_t
    signature: unlang_transaction_t *unlang_group_to_transaction(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - to
    argTypes:
    - unlang_transaction_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: unlang_transaction_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/transaction_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_transaction_to_group(unlang_transaction_t *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: MOD_PRIORITY
    functionSourceFile: /src/freeradius-server/src/lib/unlang/mod_action.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_PRIORITY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: MOD_DEFINE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/mod_action.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_DEFINE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: MOD_ACTION_VALID
    functionSourceFile: /src/freeradius-server/src/lib/unlang/mod_action.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_ACTION_VALID(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: MOD_ACTION_VALID_SET
    functionSourceFile: /src/freeradius-server/src/lib/unlang/mod_action.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_ACTION_VALID_SET(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/try_priv.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: unlang_generic_to_try
    functionSourceFile: /src/freeradius-server/src/lib/unlang/try_priv.h
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_try_t
    signature: unlang_try_t *unlang_generic_to_try(unlang_t const *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: UNLANG_RESULT_RCODE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLANG_RESULT_RCODE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _default_rcode
    - ','
    - _top_frame
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: FRAME_CONF
    functionSourceFile: /src/freeradius-server/src/lib/unlang/interpret.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRAME_CONF(_default_rcode, _top_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/edit_priv.h:41,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/edit_priv.h:42,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/edit_priv.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: unlang_generic_to_edit
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit_priv.h
    functionUses: 2
    functionsReached:
    - fr_assert
    - UNCONST
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_edit_t
    signature: unlang_edit_t *unlang_generic_to_edit(unlang_t const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/unlang/edit_priv.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unlang_edit_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: unlang_edit_to_generic
    functionSourceFile: /src/freeradius-server/src/lib/unlang/edit_priv.h
    functionUses: 3
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_edit_to_generic(unlang_edit_t const *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/detach.c:38,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/detach.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p_result
    - request
    - unlang_stack_frame_t *frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: unlang_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/detach.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_signal
    - unlikely
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_detach(unlang_result_t *p_result, request_t
      *request, UNUSED unlang_stack_frame_t *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/detach.c:62,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/detach.c:63,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/detach.c:63,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/detach.c:71,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/detach.c:72,1
    - Dst: unlang_compile_empty
      Src: /src/freeradius-server/src/lib/unlang/detach.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 6
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: unlang_compile_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/detach.c
    functionUses: 0
    functionsReached:
    - cf_item_next
    - DOC_KEYWORD_REF
    - cf_log_err
    - unlang_compile_empty
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_detach(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/detach.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: unlang_detach_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/detach.c
    functionUses: 0
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_detach_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/unlang/base.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: unlang_section
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 0
    functionsReached:
    - cf_data_find
    linkageType: ''
    returnType: bool
    signature: bool unlang_section(CONF_SECTION *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/base.c:58,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/base.c:59,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/unlang/base.c:61,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/base.c:68,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/unlang/base.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - unlang_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: unlang_register
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 17
    functionsReached:
    - fr_assert
    - MEM
    - fr_hash_table_insert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void unlang_register(unlang_op_t *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/unlang/base.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: op_hash
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 0
    functionsReached:
    - fr_hash_string
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t op_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/base.c:85,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/base.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: op_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t op_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/base.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: _unlang_global_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int _unlang_global_free(UNUSED void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:98,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/unlang/base.c:101,1
    - Dst: xlat_global_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:107,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/base.c:109,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/unlang/base.c:111,1
    - Dst: map_global_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:118,1
    - Dst: unlang_interpret_init_global
      Src: /src/freeradius-server/src/lib/unlang/base.c:120,1
    - Dst: unlang_subrequest_op_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:125,1
    - Dst: unlang_compile_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:132,1
    - Dst: unlang_condition_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:133,1
    - Dst: unlang_finally_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:134,1
    - Dst: unlang_foreach_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:135,1
    - Dst: unlang_function_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:136,1
    - Dst: unlang_group_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:137,1
    - Dst: unlang_load_balance_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:138,1
    - Dst: unlang_map_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:139,1
    - Dst: unlang_module_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:140,1
    - Dst: unlang_parallel_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:141,1
    - Dst: unlang_return_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:142,1
    - Dst: unlang_detach_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:143,1
    - Dst: unlang_switch_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:144,1
    - Dst: unlang_call_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:145,1
    - Dst: unlang_caller_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:146,1
    - Dst: unlang_tmpl_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:147,1
    - Dst: unlang_edit_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:148,1
    - Dst: unlang_timeout_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:149,1
    - Dst: unlang_limit_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:150,1
    - Dst: unlang_transaction_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:151,1
    - Dst: unlang_try_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:152,1
    - Dst: unlang_catch_init
      Src: /src/freeradius-server/src/lib/unlang/base.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 156
    functionName: _unlang_global_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 0
    functionsReached:
    - unlang_detach_init
    - unlang_finally_init
    - unlang_limit_init
    - fr_hash_table_alloc
    - unlang_function_init
    - unlang_condition_init
    - unlang_parallel_init
    - xlat_global_init
    - unlang_caller_init
    - unlang_return_init
    - unlang_interpret_init_global
    - unlang_subrequest_op_init
    - unlang_compile_init
    - unlang_module_init
    - memset
    - unlang_transaction_init
    - talloc_init
    - unlang_foreach_init
    - unlang_group_init
    - unlang_load_balance_init
    - unlang_map_init
    - unlang_edit_init
    - unlang_try_init
    - TALLOC_FREE
    - unlang_call_init
    - map_global_init
    - unlang_catch_init
    - unlang_tmpl_init
    - unlang_timeout_init
    - unlang_switch_init
    linkageType: ''
    returnType: int
    signature: int _unlang_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/unlang/base.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: unlang_global_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/base.c
    functionUses: 5
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int unlang_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/caller_priv.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: unlang_group_to_caller
    functionSourceFile: /src/freeradius-server/src/lib/unlang/caller_priv.h
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_caller_t
    signature: unlang_caller_t *unlang_group_to_caller(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - caller
    argTypes:
    - unlang_caller_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: unlang_caller_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/caller_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_caller_to_group(unlang_caller_t *caller)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - cs
    - mod_inst
    - proc_inst
    - src
    - maps
    argTypes:
    - CONF_SECTION*
    - UNUSED*
    - UNUSED*
    - tmpl_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: list_map_verify
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_builtin.c
    functionUses: 0
    functionsReached:
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int list_map_verify(CONF_SECTION *cs, UNUSED void const *mod_inst,
      UNUSED void *proc_inst,\n\t\t\t   tmpl_t const *src, UNUSED map_list_t const
      *maps)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:49,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:51,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:51,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:54,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:55,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:56,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: _list_map_proc_get_value
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_builtin.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - RPEDEBUG
    - talloc_free
    - tmpl_attr_tail_da
    - fr_pair_append
    - talloc_get_type_abort
    - fr_value_box_cast
    linkageType: ''
    returnType: int
    signature: "int _list_map_proc_get_value(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \   request_t *request, map_t const *map, void *uctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:72,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:73,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:81,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:81,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:82,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:89,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:90,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:91,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:96,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:100,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:104,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:112,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:114,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 5
    argNames:
    - p_result
    - mpctx
    - request
    - in
    - maps
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 115
    functionName: mod_list_map_proc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_builtin.c
    functionUses: 0
    functionsReached:
    - map_list_next
    - map_to_request
    - talloc_array
    - RWARN
    - talloc_free
    - tmpl_aexpand
    - RPERROR
    - RDEBUG2
    - talloc_new
    - fr_value_box_list_num_elements
    - RETURN_UNLANG_RCODE
    - MEM
    - fr_value_box_list_next
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t mod_list_map_proc(unlang_result_t *p_result, UNUSED
      map_ctx_t const *mpctx, request_t *request,\n\t\t\t\t\t fr_value_box_list_t
      *in, map_list_t const *maps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:119,1
    - Dst: map_proc_register
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: _map_global_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_builtin.c
    functionUses: 0
    functionsReached:
    - map_proc_register
    - talloc_init
    linkageType: ''
    returnType: int
    signature: int _map_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: _map_global_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_builtin.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _map_global_free(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/unlang/map_builtin.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: map_global_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/map_builtin.c
    functionUses: 1
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int map_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/parallel_priv.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: unlang_group_to_parallel
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel_priv.h
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_parallel_t
    signature: unlang_parallel_t *unlang_group_to_parallel(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parallel
    argTypes:
    - unlang_parallel_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: unlang_parallel_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/parallel_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_parallel_to_group(unlang_parallel_t *parallel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:53,1
    - Dst: decode
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:61,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:63,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    - decode
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    - fr_pair_decode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: fr_pair_decode_multi
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_append
    - fr_pair_list_init
    - decode
    - fr_pair_list_free
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_decode_multi(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t    uint8_t const *data, size_t data_len,
      void *decode_ctx, fr_pair_decode_t decode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:96,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:99,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:105,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:107,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:108,1
    - Dst: fr_pair_decode_multi
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:112,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:115,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:124,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:125,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:129,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - ctx
    - out
    - request
    - decode_ctx
    - decode
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - void*
    - fr_pair_decode_t
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 134
    functionName: xlat_decode_value_box_list
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_dict_root
    - fr_pair_decode_multi
    - RDEBUG2
    - fr_pair_list_free
    - fr_pair_list_append
    - RWDEBUG
    - fr_type_to_str
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int xlat_decode_value_box_list(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \      request_t *request, void *decode_ctx, fr_pair_decode_t decode,\n\t\t\t
      \      fr_value_box_list_t *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:105,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:107,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:108,1
    - Dst: fr_pair_decode_multi
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:112,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_pair.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_pair.c
    functionUses: 10
    functionsReached:
    - RWDEBUG
    - fr_type_to_str
    - fr_pair_list_free
    - fr_pair_decode_multi
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/catch.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - unlang_stack_frame_t *frame
    argTypes:
    - UNUSED
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: unlang_catch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/catch.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_push_children
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_catch(UNUSED unlang_result_t *p_result, request_t
      *request, UNUSED unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/catch.c:44,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/catch.c:45,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/catch.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - gext
    - name
    - c
    argTypes:
    - unlang_try_t*
    - char*
    - unlang_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: catch_argv
    functionSourceFile: /src/freeradius-server/src/lib/unlang/catch.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_table_value_by_str
    linkageType: ''
    returnType: void
    signature: void catch_argv(unlang_try_t *gext, char const *name, unlang_t *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/catch.c:53,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/catch.c:59,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/catch.c:60,1
    - Dst: unlang_list_tail
      Src: /src/freeradius-server/src/lib/unlang/catch.c:67,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/catch.c:69,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/catch.c:70,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/catch.c:70,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/catch.c:74,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/catch.c:75,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/catch.c:77,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/catch.c:80,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/catch.c:82,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/catch.c:88,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/catch.c:102,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/catch.c:102,1
    - Dst: catch_argv
      Src: /src/freeradius-server/src/lib/unlang/catch.c:104,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/catch.c:106,1
    - Dst: catch_argv
      Src: /src/freeradius-server/src/lib/unlang/catch.c:107,1
    - Dst: unlang_compile_children
      Src: /src/freeradius-server/src/lib/unlang/catch.c:114,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/catch.c:121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 129
    functionName: unlang_compile_catch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/catch.c
    functionUses: 0
    functionsReached:
    - talloc_typed_asprintf
    - cf_section_argv
    - catch_argv
    - unlang_compile_children
    - cf_item_to_section
    - talloc_steal
    - talloc_get_type_abort
    - unlang_group_to_generic
    - cf_section_name2
    - DOC_KEYWORD_REF
    - fr_assert
    - unlang_list_tail
    - cf_section_name1
    - unlang_group_allocate
    - cf_log_err
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_catch(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/catch.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: unlang_catch_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/catch.c
    functionUses: 1
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_catch_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: _xlat_inst_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _xlat_inst_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: _xlat_thread_inst_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _xlat_thread_inst_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:78,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:80,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:82,1
    - Dst: xlat_call_t*::func::thread_detach
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:84,1
    - Dst: XLAT_THREAD_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - xt
    argTypes:
    - xlat_thread_inst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: _xlat_thread_inst_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_assert
    - XLAT_THREAD_INST_CTX
    - xlat_call_t*::func::thread_detach
    linkageType: ''
    returnType: int
    signature: int _xlat_thread_inst_detach(xlat_thread_inst_t *xt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:106,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:126,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:126,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:128,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:134,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:136,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:139,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:139,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:142,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:144,1
    - Dst: module_ctx_from_inst
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:158,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:159,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - el
    - xi
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - xlat_inst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 167
    functionName: xlat_thread_inst_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_set_name
    - module_ctx_from_inst
    - talloc_set_destructor
    - module_thread
    - talloc_set_name_const
    - fr_assert
    - talloc_zero
    - talloc_zero_array
    - talloc_get_type_abort_const
    - MEM
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: xlat_thread_inst_t
    signature: xlat_thread_inst_t *xlat_thread_inst_alloc(TALLOC_CTX *ctx, fr_event_list_t
      *el, xlat_inst_t *xi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:181,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:183,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:184,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:194,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:194,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:195,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:195,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:198,1
    - Dst: xlat_call_t*::func::detach
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:200,1
    - Dst: XLAT_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - xi
    argTypes:
    - xlat_inst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 205
    functionName: _xlat_inst_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - xlat_call_t*::func::detach
    - TALLOC_FREE
    - fr_heap_num_elements
    - fr_heap_extract
    - fr_assert
    - fr_heap_entry_inserted
    - talloc_get_type_abort_const
    - XLAT_INST_CTX
    linkageType: ''
    returnType: int
    signature: int _xlat_inst_detach(xlat_inst_t *xi)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:216,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:219,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:220,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:223,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:223,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:225,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:225,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:234,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:238,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:238,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:240,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:242,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:250,1
    - Dst: call_env_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:267,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 285
    functionName: xlat_inst_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - call_env_alloc
    - talloc_set_name
    - talloc_set_destructor
    - talloc_free
    - talloc_get_type_abort
    - talloc_set_name_const
    - fr_assert
    - talloc_zero
    - fr_assert_msg
    - talloc_zero_array
    - MEM
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: xlat_inst_t
    signature: xlat_inst_t *xlat_inst_alloc(xlat_exp_t *node)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:314,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:317,1
    - Dst: xlat_inst_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:325,1
    - Dst: XLAT_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:333,1
    - Dst: xlat_call_t*::func::instantiate
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:334,1
    - Dst: XLAT_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:334,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:339,1
    - Dst: XLAT_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:342,1
    - Dst: xlat_thread_inst_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:348,1
    - Dst: XLAT_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:352,1
    - Dst: xlat_call_t*::func::thread_instantiate
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:353,1
    - Dst: XLAT_THREAD_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:353,1
    - Dst: XLAT_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - node
    - uctx
    argTypes:
    - xlat_exp_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 364
    functionName: _xlat_instantiate_ephemeral_walker
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - XLAT_VERIFY
    - XLAT_INST_CTX
    - xlat_inst_alloc
    - talloc_get_type_abort
    - xlat_call_t*::func::thread_instantiate
    - fr_assert
    - xlat_thread_inst_alloc
    - xlat_call_t*::func::instantiate
    - XLAT_THREAD_INST_CTX
    linkageType: ''
    returnType: int
    signature: int _xlat_instantiate_ephemeral_walker(xlat_exp_t *node, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:384,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - head
    - el
    argTypes:
    - xlat_exp_head_t*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 395
    functionName: xlat_instantiate_ephemeral
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - xlat_resolve
    - xlat_eval_walk
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_ephemeral(xlat_exp_head_t *head, fr_event_list_t
      *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:411,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:412,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:413,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:413,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:413,1
    - Dst: fr_heap_peek_at
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 426
    functionName: xlat_thread_instance_find
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 5
    functionsReached:
    - fr_assert
    - fr_heap_peek_at
    - fr_heap_num_elements
    linkageType: ''
    returnType: xlat_thread_inst_t
    signature: xlat_thread_inst_t *xlat_thread_instance_find(xlat_exp_t const *node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:443,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:445,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:446,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:446,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:450,1
    - Dst: xlat_thread_inst_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:456,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:457,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:459,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:462,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:463,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:465,1
    - Dst: xlat_call_t*::func::thread_instantiate
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:471,1
    - Dst: XLAT_THREAD_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:471,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - el
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 478
    functionName: xlat_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 2
    functionsReached:
    - unlikely
    - TALLOC_FREE
    - fr_heap_talloc_alloc
    - fr_cond_assert
    - fr_heap_num_elements
    - fr_assert
    - fr_heap_insert
    - xlat_thread_inst_alloc
    - xlat_call_t*::func::thread_instantiate
    - MEM
    - XLAT_THREAD_INST_CTX
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int xlat_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t *el)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xlat_thread_inst_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:456,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:457,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:459,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:462,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:463,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:465,1
    - Dst: xlat_call_t*::func::thread_instantiate
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:471,1
    - Dst: XLAT_THREAD_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:471,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 478
    functionName: fr_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - unlikely
    - TALLOC_FREE
    - fr_cond_assert
    - fr_heap_insert
    - xlat_thread_inst_alloc
    - xlat_call_t*::func::thread_instantiate
    - XLAT_THREAD_INST_CTX
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void fr_heap_foreach(xlat_inst_tree, xlat_inst_t, xi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: xlat_thread_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 1
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void xlat_thread_detach(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:498,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: xlat_instantiate_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - fr_heap_talloc_alloc
    - unlikely
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:512,1
    - Dst: xlat_instantiate_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:512,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:528,1
    - Dst: xlat_call_t*::func::instantiate
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:532,1
    - Dst: XLAT_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 536
    functionName: xlat_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 1
    functionsReached:
    - unlikely
    - XLAT_INST_CTX
    - xlat_instantiate_init
    - fr_assert
    - xlat_call_t*::func::instantiate
    linkageType: ''
    returnType: int
    signature: int xlat_instantiate(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:528,1
    - Dst: xlat_call_t*::func::instantiate
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:532,1
    - Dst: XLAT_INST_CTX
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 536
    functionName: fr_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - xlat_call_t*::func::instantiate
    - XLAT_INST_CTX
    linkageType: ''
    returnType: void
    signature: void fr_heap_foreach(xlat_inst_tree, xlat_inst_t, xi)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:551,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:552,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:553,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:556,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:559,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:560,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:565,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:569,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 574
    functionName: xlat_instance_unregister_func
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 3
    functionsReached:
    - fr_heap_extract
    - fr_assert
    - TALLOC_FREE
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: int xlat_instance_unregister_func(xlat_exp_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:598,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:599,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:600,1
    - Dst: xlat_inst_alloc
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:602,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:603,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:605,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:619,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:620,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - node
    argTypes:
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 626
    functionName: xlat_instance_register_func
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 2
    functionsReached:
    - unlikely
    - TALLOC_FREE
    - fr_cond_assert
    - xlat_inst_alloc
    - fr_assert
    - fr_heap_insert
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int xlat_instance_register_func(xlat_exp_t *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlat_instance_register_func
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - node
    - uctx
    argTypes:
    - xlat_exp_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 628
    functionDepth: 6
    functionLinenumber: 628
    functionLinenumberEnd: 642
    functionName: _xlat_inst_walker
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - xlat_instance_register_func
    linkageType: ''
    returnType: int
    signature: int _xlat_inst_walker(xlat_exp_t *node, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:661,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:669,1
    - Dst: xlat_instantiate_init
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:669,1
    - Dst: xlat_eval_walk
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 682
    functionName: xlat_instance_register
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_assert_msg
    - xlat_instantiate_init
    - xlat_eval_walk
    linkageType: ''
    returnType: int
    signature: int xlat_instance_register(xlat_exp_head_t *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_instance_register
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:695,1
    - Dst: xlat_instantiate_ephemeral
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - head
    - runtime_el
    argTypes:
    - xlat_exp_head_t*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 692
    functionDepth: 6
    functionLinenumber: 692
    functionLinenumberEnd: 698
    functionName: xlat_finalize
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 4
    functionsReached:
    - xlat_instance_register
    - xlat_instantiate_ephemeral
    linkageType: ''
    returnType: int
    signature: int xlat_finalize(xlat_exp_head_t *head, fr_event_list_t *runtime_el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:715,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/xlat_inst.c:715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 716
    functionName: xlat_instances_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_inst.c
    functionUses: 0
    functionsReached:
    - fr_heap_pop
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void xlat_instances_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: call_env_pair_flags
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_pair_flags(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: call_env_subsection_flags
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_subsection_flags(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: call_env_required
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_required(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: call_env_concat
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_concat(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: call_env_single
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_single(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: call_env_multi
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_multi(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: call_env_nullable
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_nullable(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: call_env_force_quote
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_force_quote(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: call_env_parse_only
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_parse_only(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: call_env_attribute
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_attribute(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: call_env_is_subsection
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_is_subsection(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: call_env_parse_missing
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_parse_missing(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: call_env_secret
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_secret(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: call_env_bare_word_attribute
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_env_bare_word_attribute(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _inst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: FR_CALL_ENV_METHOD_OUT
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_METHOD_OUT(_inst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: CALL_ENV_PARSE_TYPE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_ENV_PARSE_TYPE(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _s
    - ','
    - _f
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: FR_CALL_ENV_SINGLE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_SINGLE(_s, _f, _c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: FR_CALL_ENV_MULTI
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_MULTI(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c
    - ','
    - _ct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: FR_CALL_ENV_CONCAT
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_CONCAT(_c, _ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: FR_CALL_ENV_DST_TYPE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_DST_TYPE(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: FR_CALL_ENV_DST_SIZE
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_DST_SIZE(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: FR_CALL_ENV_RESULT_TYPE_NAME
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_RESULT_TYPE_NAME(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _cast_type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: CALL_ENV_FLAGS
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_ENV_FLAGS(_cast_type, _flags, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _name
    - ','
    - _cast_type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 354
    functionName: FR_CALL_ENV_OFFSET
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_OFFSET(_name, _cast_type, _flags, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _name
    - ','
    - _cast_type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - ','
    - _parse_field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: FR_CALL_ENV_PARSE_OFFSET
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_PARSE_OFFSET(_name, _cast_type, _flags, _struct, _field,
      _parse_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _name
    - ','
    - _cast_type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _parse_field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: FR_CALL_ENV_PARSE_ONLY_OFFSET
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_PARSE_ONLY_OFFSET(_name, _cast_type, _flags, _struct, _parse_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _name2
    - ','
    - _flags
    - ','
    - _subcs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: FR_CALL_ENV_SUBSECTION
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_SUBSECTION(_name, _name2, _flags, _subcs )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _name2
    - ','
    - _flags
    - ','
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: FR_CALL_ENV_SUBSECTION_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CALL_ENV_SUBSECTION_FUNC(_name, _name2, _flags, _func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/call.c:36,1
    - Dst: unlang_group_to_call
      Src: /src/freeradius-server/src/lib/unlang/call.c:37,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/unlang/call.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: unlang_call_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 0
    functionsReached:
    - pair_update_reply
    - unlang_group_to_call
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_call_resume(UNUSED unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t  unlang_stack_frame_t *frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/call.c:55,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/call.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: unlang_call_children
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 0
    functionsReached:
    - unlang_interpret_push_children
    - frame_repeat
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_call_children(UNUSED unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t    unlang_stack_frame_t *frame)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/call.c:80,1
    - Dst: unlang_group_to_call
      Src: /src/freeradius-server/src/lib/unlang/call.c:81,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/unlang/call.c:86,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/unlang/call.c:86,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/unlang/call.c:88,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/call.c:91,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/call.c:92,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/unlang/call.c:96,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/unlang/call.c:110,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/call.c:132,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/call.c:133,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/call.c:135,1
    - Dst: virtual_server_push
      Src: /src/freeradius-server/src/lib/unlang/call.c:138,1
    - Dst: virtual_server_from_cs
      Src: /src/freeradius-server/src/lib/unlang/call.c:138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 141
    functionName: unlang_call_frame_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 0
    functionsReached:
    - fr_dict_enum_by_value
    - frame_repeat
    - REDEBUG
    - cf_section_name2
    - unlang_list_empty
    - virtual_server_push
    - unlang_generic_to_group
    - pair_update_request
    - fr_pair_find_by_da
    - virtual_server_from_cs
    - fr_box_uint32
    - unlang_group_to_call
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_call_frame_init(unlang_result_t *p_result,
      request_t *request,\n\t\t\t\t\t      unlang_stack_frame_t *frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: virtual_server_dict_by_cs
      Src: /src/freeradius-server/src/lib/unlang/call.c:158,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/call.c:160,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/call.c:160,1
    - Dst: virtual_server_packet_type_by_cs
      Src: /src/freeradius-server/src/lib/unlang/call.c:164,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/call.c:166,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/call.c:175,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/call.c:176,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/unlang/call.c:176,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/unlang/call.c:183,1
    - Dst: unlang_group_type_init
      Src: /src/freeradius-server/src/lib/unlang/call.c:193,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/call.c:198,1
    - Dst: unlang_call_to_generic
      Src: /src/freeradius-server/src/lib/unlang/call.c:198,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/call.c:199,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/call.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - p_result
    - request
    - server_cs
    - top_frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - CONF_SECTION*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 205
    functionName: unlang_call_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 6
    functionsReached:
    - FRAME_CONF
    - talloc_free
    - REDEBUG
    - unlang_call_to_generic
    - unlang_interpret_push
    - talloc
    - virtual_server_packet_type_by_cs
    - cf_section_name2
    - CF_TO_ITEM
    - unlang_group_type_init
    - virtual_server_dict_by_cs
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_call_push(unlang_result_t *p_result, request_t
      *request, CONF_SECTION *server_cs, bool top_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_depth_current
      Src: /src/freeradius-server/src/lib/unlang/call.c:223,1
    - Dst: unlang_group_to_call
      Src: /src/freeradius-server/src/lib/unlang/call.c:233,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/call.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: unlang_call_current
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 4
    functionsReached:
    - stack_depth_current
    - unlang_generic_to_group
    - unlang_group_to_call
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *unlang_call_current(request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/call.c:240,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/call.c:253,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:255,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:257,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/call.c:257,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/call.c:261,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:263,1
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/unlang/call.c:267,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:269,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/unlang/call.c:273,1
    - Dst: virtual_server_dict_by_name
      Src: /src/freeradius-server/src/lib/unlang/call.c:278,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:280,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/call.c:284,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/unlang/call.c:284,1
    - Dst: fr_dict_compatible
      Src: /src/freeradius-server/src/lib/unlang/call.c:285,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:286,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/call.c:287,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/call.c:287,1
    - Dst: virtual_server_packet_type_by_cs
      Src: /src/freeradius-server/src/lib/unlang/call.c:291,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/call.c:293,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/call.c:294,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/call.c:298,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/call.c:305,1
    - Dst: unlang_group_to_call
      Src: /src/freeradius-server/src/lib/unlang/call.c:306,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 311
    functionName: unlang_compile_call
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 0
    functionsReached:
    - virtual_server_find
    - fr_dict_compatible
    - unlang_compile_section
    - fr_dict_internal
    - cf_section_name2
    - DOC_KEYWORD_REF
    - virtual_server_cs
    - virtual_server_packet_type_by_cs
    - virtual_server_dict_by_name
    - unlang_group_to_call
    - unlang_generic_to_group
    - cf_section_name2_quote
    - cf_log_err
    - fr_dict_root
    - cf_item_to_section
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_call(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/call.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: unlang_call_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/call.c
    functionUses: 1
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_call_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _inst
    - ','
    - _thread
    - ','
    - _ex
    - ','
    - _mctx
    - ','
    - _env_data
    - ','
    - _rctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: XLAT_CTX
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_ctx.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_CTX(_inst, _thread, _ex, _mctx, _env_data, _rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _inst
    - ','
    - _ex
    - ','
    - _mctx
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: XLAT_INST_CTX
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_ctx.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_INST_CTX(_inst, _ex, _mctx, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _inst
    - ','
    - _thread
    - ','
    - _ex
    - ','
    - _mctx
    - ','
    - _el
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: XLAT_THREAD_INST_CTX
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_ctx.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_THREAD_INST_CTX(_inst, _thread, _ex, _mctx, _el, _uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:61,1
    - Dst: unlang_group_to_switch
      Src: /src/freeradius-server/src/lib/unlang/switch.c:62,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:70,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/unlang/switch.c:71,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/switch.c:83,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/unlang/switch.c:84,1
    - Dst: tmpl_aexpand_type
      Src: /src/freeradius-server/src/lib/unlang/switch.c:87,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/unlang/switch.c:87,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/switch.c:90,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/unlang/switch.c:90,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/switch.c:93,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/switch.c:93,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/unlang/switch.c:104,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/lib/unlang/switch.c:105,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/switch.c:118,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/unlang/switch.c:120,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/switch.c:126,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/switch.c:126,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 131
    functionName: unlang_switch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - fr_value_box_copy_shallow
    - RDEBUG
    - RWDEBUG
    - FRAME_CONF
    - fr_cond_assert_msg
    - unlang_group_to_switch
    - unlang_interpret_push
    - tmpl_aexpand_type
    - tmpl_type_to_str
    - fr_htrie_find
    - unlang_interpret_frame_talloc_ctx
    - fr_strerror
    - tmpl_is_attr
    - tmpl_is_exec
    - tmpl_find_vp
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_switch(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:136,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/switch.c:138,1
    - Dst: unlang_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: unlang_case
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - unlang_list_empty
    - unlang_group
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_case(unlang_result_t *p_result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/switch.c:146,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/switch.c:160,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:163,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:164,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/switch.c:164,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/switch.c:172,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:179,1
    - Dst: unlang_group_to_switch
      Src: /src/freeradius-server/src/lib/unlang/switch.c:180,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/switch.c:182,1
    - Dst: tmpl_expanded_type
      Src: /src/freeradius-server/src/lib/unlang/switch.c:190,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:197,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/switch.c:198,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/switch.c:202,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:204,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/switch.c:205,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/switch.c:210,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:217,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/unlang/switch.c:217,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:219,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/switch.c:223,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/unlang/switch.c:223,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/switch.c:226,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/unlang/switch.c:234,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/switch.c:246,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/switch.c:248,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:252,1
    - Dst: unlang_group_to_case
      Src: /src/freeradius-server/src/lib/unlang/switch.c:253,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/switch.c:254,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 264
    functionName: unlang_compile_case
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - unlang_compile_section
    - tmpl_attr_tail_da
    - tmpl_is_data
    - tmpl_is_attr_unresolved
    - tmpl_value_type
    - tmpl_is_data_unresolved
    - cf_log_err
    - cf_item_to_section
    - cf_section_name2
    - tmpl_is_attr
    - tmpl_expanded_type
    - cf_section_name2_quote
    - talloc_steal
    - unlang_group_to_switch
    - unlang_group_to_case
    - DOC_KEYWORD_REF
    - fr_assert
    - cf_canonicalize_error
    - talloc_free
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_case(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/unlang/switch.c:271,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/switch.c:271,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/switch.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: case_cmp
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - tmpl_value
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t case_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/unlang/switch.c:278,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/switch.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: case_hash
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - tmpl_value
    - fr_value_box_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t case_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_to_key
      Src: /src/freeradius-server/src/lib/unlang/switch.c:285,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/switch.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - outlen
    - data
    argTypes:
    - uint8_t**
    - size_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: case_to_key
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - tmpl_value
    - fr_value_box_to_key
    linkageType: ''
    returnType: int
    signature: int case_to_key(uint8_t **out, size_t *outlen, void const *data)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/switch.c:290,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/switch.c:312,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/switch.c:314,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:316,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:318,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/switch.c:318,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/switch.c:322,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/switch.c:324,1
    - Dst: unlang_group_to_switch
      Src: /src/freeradius-server/src/lib/unlang/switch.c:327,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/switch.c:336,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:339,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/switch.c:340,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:344,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/switch.c:345,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/switch.c:351,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/switch.c:352,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/switch.c:356,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/switch.c:358,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/switch.c:365,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/switch.c:365,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/switch.c:366,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/unlang/switch.c:370,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:371,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/switch.c:373,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/switch.c:377,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:378,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/switch.c:382,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:383,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/switch.c:387,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/switch.c:388,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:391,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/unlang/switch.c:397,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:398,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/switch.c:402,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/switch.c:404,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/switch.c:409,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/switch.c:410,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/switch.c:410,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/switch.c:413,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/switch.c:414,1
    - Dst: tmpl_data_type
      Src: /src/freeradius-server/src/lib/unlang/switch.c:423,1
    - Dst: fr_htrie_hint
      Src: /src/freeradius-server/src/lib/unlang/switch.c:430,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:432,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/switch.c:433,1
    - Dst: fr_htrie_alloc
      Src: /src/freeradius-server/src/lib/unlang/switch.c:437,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:443,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/switch.c:444,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/switch.c:452,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/switch.c:454,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/unlang/switch.c:459,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/unlang/switch.c:460,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:462,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/switch.c:466,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/unlang/switch.c:467,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/switch.c:469,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/unlang/switch.c:473,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/switch.c:474,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:475,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:481,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/switch.c:485,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:489,1
    - Dst: unlang_compile_case
      Src: /src/freeradius-server/src/lib/unlang/switch.c:497,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/switch.c:500,1
    - Dst: unlang_group_to_case
      Src: /src/freeradius-server/src/lib/unlang/switch.c:506,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:506,1
    - Dst: fr_htrie_insert
      Src: /src/freeradius-server/src/lib/unlang/switch.c:510,1
    - Dst: fr_htrie_find
      Src: /src/freeradius-server/src/lib/unlang/switch.c:511,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:516,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/switch.c:518,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/switch.c:518,1
    - Dst: unlang_list_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/switch.c:523,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 152
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 527
    functionName: unlang_compile_switch
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 0
    functionsReached:
    - unlang_compile_case
    - RULES_VERIFY
    - tmpl_is_list
    - tmpl_cast_set
    - fr_type_is_leaf
    - fr_htrie_hint
    - tmpl_needs_resolving
    - pass2_fixup_tmpl
    - tmpl_is_data
    - fr_htrie_find
    - tmpl_afrom_attr_substr
    - fr_type_to_str
    - cf_log_err
    - cf_item_to_section
    - tmpl_data_type
    - unlang_group_to_generic
    - cf_section_name2
    - cf_item_next
    - cf_section_to_item
    - fr_table_value_by_str
    - unlang_generic_to_group
    - cf_section_name2_quote
    - cf_section_name1
    - tmpl_is_xlat
    - cf_item_is_section
    - unlang_group_to_switch
    - DOC_KEYWORD_REF
    - fr_assert
    - tmpl_contains_regex
    - strcmp
    - fr_htrie_alloc
    - unlang_group_allocate
    - cf_item_is_pair
    - unlang_list_insert_tail
    - fr_htrie_insert
    - talloc_typed_asprintf
    - cf_canonicalize_error
    - cf_section_argv
    - cf_log_perr
    - talloc_free
    - tmpl_xlat
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - unlang_group_to_case
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_switch(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/switch.c:531,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/switch.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 558
    functionName: unlang_switch_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/switch.c
    functionUses: 1
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_switch_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/condition_priv.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: unlang_group_to_cond
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition_priv.h
    functionUses: 4
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_cond_t
    signature: unlang_cond_t *unlang_group_to_cond(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - unlang_cond_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: unlang_cond_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/condition_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_cond_to_group(unlang_cond_t *cond)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:93,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:93,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:94,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:94,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:96,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:105,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:106,1
    - Dst: fr_pair_afrom_child_num
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:111,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:114,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:116,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:117,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:117,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:121,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:121,1
    - Dst: unlang_foreach_pair_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - to
    - from
    - from_parent
    argTypes:
    - fr_pair_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 127
    functionName: unlang_foreach_pair_copy
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_pair_append
    - fr_assert
    - fr_pair_afrom_child_num
    - fr_pair_list_foreach
    - unlang_foreach_pair_copy
    - fr_pair_copy
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int unlang_foreach_pair_copy(fr_pair_t *to, fr_pair_t *from, fr_dict_attr_t
      const *from_parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:137,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:139,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:141,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:146,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:148,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:153,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - unlang_frame_state_foreach_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: _free_unlang_frame_state_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - fr_dcursor_next
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_dcursor_init
    linkageType: ''
    returnType: int
    signature: int _free_unlang_frame_state_foreach(unlang_frame_state_foreach_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:165,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:167,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:169,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - request
    - state
    argTypes:
    - request_t*
    - unlang_frame_state_foreach_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: unlang_foreach_xlat_key_update
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_value_box
    - fr_value_box_clear_value
    - fr_value_box_cast
    linkageType: ''
    returnType: int
    signature: int unlang_foreach_xlat_key_update(request_t *request, unlang_frame_state_foreach_t
      *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:180,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:186,1
    - Dst: unlang_foreach_xlat_key_update
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:189,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:191,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:192,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:193,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:197,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 203
    functionName: unlang_foreach_xlat_next
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - unlang_foreach_xlat_key_update
    - fr_value_box_clear_value
    - RPEDEBUG
    - fr_dcursor_next
    - unlang_interpret_push_children
    - talloc_get_type_abort
    - fr_value_box_cast
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_foreach_xlat_next(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:208,1
    - Dst: XLAT_RESULT_SUCCESS
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:211,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:212,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:216,1
    - Dst: fr_value_box_list_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:216,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:222,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:225,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:226,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:227,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:233,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 239
    functionName: unlang_foreach_xlat_expanded
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_value_box_clear_value
    - RPEDEBUG
    - fr_dcursor_next
    - frame_repeat
    - unlang_interpret_push_children
    - fr_value_box_list_dlist_head
    - talloc_get_type_abort
    - fr_value_box_cast
    - XLAT_RESULT_SUCCESS
    - fr_dcursor_init
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_foreach_xlat_expanded(unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:248,1
    - Dst: unlang_xlat_push
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:250,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:250,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:251,1
    - Dst: unlang_foreach_xlat_key_update
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:255,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - p_result
    - request
    - frame
    - state
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    - unlang_frame_state_foreach_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 263
    functionName: unlang_foreach_xlat_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - unlang_xlat_push
    - unlang_foreach_xlat_key_update
    - fr_value_box_list_init
    - REDEBUG
    - tmpl_xlat
    - repeatable_set
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_foreach_xlat_init(unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame,\n\t\t\t\t\t\tunlang_frame_state_foreach_t
      *state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:275,1
    - Dst: tmpl_dcursor_print
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:276,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:276,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:277,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - request
    - state
    argTypes:
    - UNUSED*
    - unlang_frame_state_foreach_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 286
    functionName: unlang_foreach_attr_key_update
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - fr_value_box_strdup
    - FR_SBUFF_OUT
    - fr_assert
    - tmpl_dcursor_print
    linkageType: ''
    returnType: void
    signature: void unlang_foreach_attr_key_update(UNUSED request_t *request, unlang_frame_state_foreach_t
      *state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:290,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:293,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:294,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:301,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:303,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:304,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:304,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:305,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:314,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:314,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:322,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:325,1
    - Dst: unlang_foreach_attr_key_update
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:330,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:336,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:338,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:340,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:341,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:345,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:348,1
    - Dst: unlang_foreach_pair_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:350,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:351,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:356,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:357,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:358,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:363,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:367,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:372,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 373
    functionName: unlang_foreach_attr_next
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_value_box_clear_value
    - fr_type_is_leaf
    - fr_type_is_structural
    - unlang_foreach_attr_key_update
    - REDEBUG
    - fr_value_box_cast
    - fr_pair_list_free
    - unlikely
    - RPEDEBUG
    - fr_dcursor_next
    - unlang_interpret_push_children
    - talloc_get_type_abort
    - unlang_foreach_pair_copy
    - fr_pair_list_copy
    - fr_assert
    - RDEBUG2
    - RDEBUG
    - repeatable_set
    - fr_value_box_copy
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_foreach_attr_next(unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:386,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:388,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:398,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:400,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:405,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:406,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:408,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:409,1
    - Dst: unlang_foreach_attr_key_update
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:415,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:418,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:420,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:421,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:425,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:427,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:430,1
    - Dst: unlang_foreach_pair_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:434,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:435,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:440,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:441,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:442,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:443,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:450,1
    - Dst: repeatable_set
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:457,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:462,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 4
    argNames:
    - p_result
    - request
    - frame
    - state
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    - unlang_frame_state_foreach_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 463
    functionName: unlang_foreach_attr_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - RDEBUG
    - fr_dcursor_next
    - unlang_foreach_attr_key_update
    - fr_type_is_structural
    - REDEBUG
    - unlang_interpret_push_children
    - fr_assert
    - tmpl_dcursor_clear
    - fr_value_box_cast
    - tmpl_dcursor_init
    - unlang_foreach_pair_copy
    - repeatable_set
    - fr_pair_list_copy
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_foreach_attr_init(unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame,\n\t\t\t\t\t\tunlang_frame_state_foreach_t
      *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:468,1
    - Dst: unlang_group_to_foreach
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:469,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:472,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:472,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:483,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:487,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:487,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:492,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:493,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:496,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:499,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:499,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:501,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:502,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:505,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:508,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:509,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:509,1
    - Dst: unlang_foreach_attr_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:510,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:513,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:513,1
    - Dst: unlang_foreach_xlat_init
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 516
    functionName: unlang_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - talloc_set_destructor
    - fr_pair_append_by_da
    - talloc_array
    - REDEBUG
    - unlang_foreach_xlat_init
    - unlang_foreach_attr_init
    - talloc_zero
    - fr_assert
    - tmpl_is_attr
    - MEM
    - fr_pair_find_by_da
    - unlang_group_to_foreach
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_foreach(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:524,1
    - Dst: unwind_to_op_flag
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:538,1
    - Dst: repeatable_clear
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 541
    functionName: unlang_break
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - repeatable_clear
    - unwind_to_op_flag
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_break(unlang_result_t *p_result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:547,1
    - Dst: unwind_to_op_flag
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: unlang_continue
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - unwind_to_op_flag
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_continue(UNUSED unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:554,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:577,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:587,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:589,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:590,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:592,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:594,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:595,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:595,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:602,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:605,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:613,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:615,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:617,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:617,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:619,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:623,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:624,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:629,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:637,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:639,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:640,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:641,1
    - Dst: tmpl_attr_rewrite_leaf_num
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:642,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:645,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:646,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:646,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:650,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:651,1
    - Dst: unlang_group_to_foreach
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:655,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:659,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:659,1
    - Dst: unlang_compile_ctx_copy
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:666,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:679,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:681,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:683,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:687,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:689,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:691,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:695,1
    - Dst: xlat_data_type
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:701,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:701,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:702,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:704,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:708,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:709,1
    - Dst: fr_type_is_numeric
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:713,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:714,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:714,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:720,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:720,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:723,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:723,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:731,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:732,1
    - Dst: tmpl_attr_tail_is_unspecified
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:737,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:741,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:746,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:746,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:748,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:749,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:749,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:752,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:757,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:762,1
    - Dst: fr_dict_protocol_alloc
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:765,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:768,1
    - Dst: unlang_define_local_variable
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:772,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:772,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:780,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:781,1
    - Dst: unlang_define_local_variable
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:787,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:787,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:789,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:790,1
    - Dst: unlang_compile_children
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:794,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 158
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 552
    functionDepth: 5
    functionLinenumber: 552
    functionLinenumberEnd: 795
    functionName: unlang_compile_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - fr_type_is_leaf
    - xlat_data_type
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_type_to_str
    - MEM
    - cf_log_err
    - fr_type_is_numeric
    - cf_item_to_section
    - unlang_compile_ctx_copy
    - fr_dict_protocol_alloc
    - unlang_group_to_generic
    - cf_item_next
    - cf_section_name2
    - fr_table_value_by_str
    - cf_section_to_item
    - tmpl_is_attr
    - cf_section_name2_quote
    - unlang_group_to_foreach
    - tmpl_is_xlat
    - tmpl_attr_rewrite_leaf_num
    - unlang_define_local_variable
    - fr_dict_attr_by_name
    - unlang_compile_children
    - DOC_KEYWORD_REF
    - fr_assert
    - unlang_group_allocate
    - talloc_typed_asprintf
    - cf_canonicalize_error
    - cf_section_argv
    - tmpl_attr_tail_is_unspecified
    - talloc_free
    - tmpl_contains_xlat
    - tmpl_xlat
    - FR_SBUFF_IN_STR
    - tmpl_attr_tail_num
    - talloc_zero
    - cf_log_warn
    - tmpl_afrom_substr
    - fr_dict_root
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_foreach(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:813,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:814,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:814,1
    - Dst: unlang_compile_empty
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:820,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 798
    functionDepth: 6
    functionLinenumber: 798
    functionLinenumberEnd: 821
    functionName: unlang_compile_break
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - DOC_KEYWORD_REF
    - cf_log_err
    - unlang_compile_empty
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_break(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:838,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:839,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:839,1
    - Dst: unlang_compile_empty
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:845,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 823
    functionDepth: 6
    functionLinenumber: 823
    functionLinenumberEnd: 846
    functionName: unlang_compile_continue
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 0
    functionsReached:
    - DOC_KEYWORD_REF
    - cf_log_err
    - unlang_compile_empty
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_continue(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:850,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:865,1
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/foreach.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 888
    functionName: unlang_foreach_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/foreach.c
    functionUses: 1
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_foreach_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/limit.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - UNUSED*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: unlang_limit_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void unlang_limit_signal(UNUSED request_t *request, unlang_stack_frame_t
      *frame, fr_signal_t action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/limit.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - UNUSED*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: unlang_limit_resume_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_limit_resume_done(UNUSED unlang_result_t *p_result,
      UNUSED request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/limit.c:69,1
    - Dst: unlang_thread_instance
      Src: /src/freeradius-server/src/lib/unlang/limit.c:72,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/limit.c:73,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/limit.c:77,1
    - Dst: unlang_interpret_push_children
      Src: /src/freeradius-server/src/lib/unlang/limit.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: unlang_limit_enforce
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 0
    functionsReached:
    - frame_repeat
    - unlang_interpret_push_children
    - unlang_thread_instance
    - talloc_get_type_abort
    - fr_assert
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_limit_enforce(UNUSED unlang_result_t *p_result,
      request_t *request, unlang_stack_frame_t *frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/limit.c:88,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/unlang/limit.c:89,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/unlang/limit.c:91,1
    - Dst: unlang_limit_enforce
      Src: /src/freeradius-server/src/lib/unlang/limit.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: unlang_limit_xlat_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - talloc_get_type_abort
    - unlang_limit_enforce
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_limit_xlat_done(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/limit.c:104,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/limit.c:106,1
    - Dst: unlang_group_to_limit
      Src: /src/freeradius-server/src/lib/unlang/limit.c:107,1
    - Dst: unlang_limit_enforce
      Src: /src/freeradius-server/src/lib/unlang/limit.c:113,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/unlang/limit.c:116,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/unlang/limit.c:118,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/limit.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 123
    functionName: unlang_limit
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_init
    - frame_repeat
    - unlang_group_to_limit
    - talloc_get_type_abort
    - unlang_limit_enforce
    - unlang_tmpl_push
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_limit(unlang_result_t *p_result, request_t *request,
      unlang_stack_frame_t *frame)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/limit.c:128,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/limit.c:141,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/limit.c:143,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/limit.c:145,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/limit.c:145,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/limit.c:149,1
    - Dst: unlang_group_allocate
      Src: /src/freeradius-server/src/lib/unlang/limit.c:151,1
    - Dst: unlang_group_to_generic
      Src: /src/freeradius-server/src/lib/unlang/limit.c:154,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/unlang/limit.c:156,1
    - Dst: unlang_group_to_limit
      Src: /src/freeradius-server/src/lib/unlang/limit.c:158,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/limit.c:160,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/limit.c:167,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/limit.c:169,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/unlang/limit.c:170,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/unlang/limit.c:176,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/limit.c:178,1
    - Dst: pass2_fixup_tmpl
      Src: /src/freeradius-server/src/lib/unlang/limit.c:186,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/unlang/limit.c:186,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/unlang/limit.c:190,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/limit.c:191,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/unlang/limit.c:195,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/limit.c:196,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/unlang/limit.c:200,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/limit.c:203,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/unlang/limit.c:203,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/unlang/limit.c:211,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/limit.c:212,1
    - Dst: unlang_compile_children
      Src: /src/freeradius-server/src/lib/unlang/limit.c:217,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 218
    functionName: unlang_compile_limit
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - tmpl_is_list
    - tmpl_cast_set
    - pass2_fixup_tmpl
    - tmpl_is_data
    - fr_value_box_cast
    - cf_log_err
    - cf_item_to_section
    - unlang_group_to_generic
    - cf_section_name2
    - cf_item_next
    - cf_section_to_item
    - cf_section_name2_quote
    - unlang_compile_children
    - unlang_group_to_limit
    - DOC_KEYWORD_REF
    - tmpl_contains_regex
    - unlang_group_allocate
    - talloc_typed_asprintf
    - cf_canonicalize_error
    - cf_log_perr
    - talloc_free
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - tmpl_value
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_limit(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/limit.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: unlang_limit_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit.c
    functionUses: 1
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_limit_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:44,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:45,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:49,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:53,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:57,1
    - Dst: unlang_request_is_scheduled
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:57,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:71,1
    - Dst: unlang_request_is_done
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:92,1
    - Dst: unlang_interpret_signal
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - request
    - frame
    - action
    argTypes:
    - NDEBUG*
    - unlang_stack_frame_t*
    - fr_signal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 98
    functionName: unlang_subrequest_signal
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 0
    functionsReached:
    - unlang_request_is_done
    - talloc_get_type_abort
    - unlang_interpret_signal
    - RDEBUG3
    - fr_assert
    - fr_assert_msg
    - unlang_request_is_scheduled
    linkageType: ''
    returnType: void
    signature: "void unlang_subrequest_signal(\n#ifndef NDEBUG\n\t\t\t\t     UNUSED\n#endif\n\t\t\t\t
      \    request_t *request, unlang_stack_frame_t *frame, fr_signal_t action)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:106,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:107,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:115,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:125,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:126,1
    - Dst: unlang_subrequest_detach_and_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:132,1
    - Dst: unlang_group_to_subrequest
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:140,1
    - Dst: tmpl_dcursor_build_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:149,1
    - Dst: RPDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:151,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:152,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:156,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:156,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:158,1
    - Dst: unlang_subrequest_detach_and_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 163
    functionName: unlang_subrequest_parent_resume
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 0
    functionsReached:
    - unlang_subrequest_detach_and_free
    - talloc_get_type_abort
    - fr_pair_list_copy
    - fr_table_str_by_value
    - RDEBUG3
    - unlang_group_to_subrequest
    - tmpl_dcursor_clear
    - tmpl_dcursor_build_init
    - RPDEBUG
    - MEM
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_subrequest_parent_resume(UNUSED unlang_result_t
      *p_result, request_t *request,\n\t\t\t\t\t\t       unlang_stack_frame_t *frame)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:170,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:180,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:185,1
    - Dst: unlang_list_empty
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:186,1
    - Dst: unlang_group_to_subrequest
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:188,1
    - Dst: unlang_io_subrequest_alloc
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:189,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:192,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:198,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:198,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:205,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:206,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:210,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:211,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:213,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:221,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:222,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:223,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:234,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:236,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:244,1
    - Dst: tmpl_copy_pair_children
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:246,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:247,1
    - Dst: unlang_child_request_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:258,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:264,1
    - Dst: unlang_list_head
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:264,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:265,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:273,1
    - Dst: unlang_subrequest_child_run
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:280,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 281
    functionName: unlang_subrequest_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_tail_da
    - unlang_interpret_push
    - fr_value_box_cast
    - unlang_io_subrequest_alloc
    - MEM
    - unlang_subrequest_child_run
    - RPEDEBUG
    - frame_repeat
    - fr_pair_append
    - talloc_get_type_abort
    - unlang_list_empty
    - fr_pair_afrom_da
    - fr_dict_enum_by_value
    - fr_assert
    - unlang_list_head
    - fr_dict_enum_by_name
    - fr_value_box_init
    - RDEBUG
    - tmpl_copy_pair_children
    - talloc_free
    - FRAME_CONF
    - unlang_group_to_subrequest
    - unlang_child_request_init
    - tmpl_find_vp
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_subrequest_init(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_detach
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:289,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - child
    argTypes:
    - request_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: unlang_subrequest_detach_and_free
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 3
    functionsReached:
    - request_detach
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void unlang_subrequest_detach_and_free(request_t **child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_io_subrequest_alloc
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parent
    - namespace
    argTypes:
    - request_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: unlang_subrequest_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 8
    functionsReached:
    - unlang_io_subrequest_alloc
    linkageType: ''
    returnType: request_t
    signature: request_t *unlang_subrequest_alloc(request_t *parent, fr_dict_t const
      *namespace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:315,1
    - Dst: request_is_detachable
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:333,1
    - Dst: unlang_subrequest_detach_and_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:334,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 341
    functionName: unlang_subrequest_child_done
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 0
    functionsReached:
    - unlang_subrequest_detach_and_free
    - request_is_detachable
    - TALLOC_FREE
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_subrequest_child_done(unlang_result_t *p_result,
      UNUSED request_t *request,\n\t\t\t\t\t\t    unlang_stack_frame_t *frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:358,1
    - Dst: fr_state_restore_from_parent
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:372,1
    - Dst: interpret_child_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:380,1
    - Dst: frame_repeat
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - frame
    argTypes:
    - UNUSED
    - UNUSED*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 396
    functionName: unlang_subrequest_child_run
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 1
    functionsReached:
    - interpret_child_init
    - fr_state_restore_from_parent
    - talloc_get_type_abort
    - frame_repeat
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t unlang_subrequest_child_run(UNUSED unlang_result_t
      *p_result, UNUSED request_t *request,\n\t\t\t\t\t    unlang_stack_frame_t *frame)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:438,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:440,1
    - Dst: stack_depth_current
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:440,1
    - Dst: stack_depth_current
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:442,1
    - Dst: unlang_interpret_push
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:454,1
    - Dst: FRAME_CONF
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:455,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:459,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:465,1
    - Dst: frame_current
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:465,1
    - Dst: unlang_child_request_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:474,1
    - Dst: unwind_set
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - p_result
    - child
    - unique_session_ptr
    - free_child
    - top_frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 480
    functionName: unlang_subrequest_child_push
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 4
    functionsReached:
    - unwind_set
    - stack_depth_current
    - FRAME_CONF
    - fr_cond_assert_msg
    - unlang_interpret_push
    - talloc_get_type_abort
    - fr_assert_msg
    - unlang_child_request_init
    - frame_current
    linkageType: ''
    returnType: int
    signature: int unlang_subrequest_child_push(unlang_result_t *p_result, request_t
      *child, void const *unique_session_ptr, bool free_child, bool top_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interpret_child_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:496,1
    - Dst: request_detach
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:498,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 504
    functionName: unlang_subrequest_child_push_and_detach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 0
    functionsReached:
    - request_detach
    - interpret_child_init
    - RPEDEBUG
    linkageType: ''
    returnType: int
    signature: int unlang_subrequest_child_push_and_detach(request_t *request)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:508,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:531,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:541,1
    - Dst: virtual_server_packet_type_by_cs
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:545,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:545,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:549,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:550,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:552,1
    - Dst: DOC_KEYWORD_REF
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:552,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:570,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:583,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:583,1
    - Dst: fr_dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:591,1
    - Dst: fr_dict_autoload_talloc
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:593,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:595,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:596,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:606,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:621,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:622,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:629,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:630,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:630,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:633,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:637,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:637,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:643,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:649,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:650,1
    - Dst: fr_dict_proto_dict
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:666,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:672,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:672,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:674,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:674,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:676,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:677,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:678,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:689,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:691,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:692,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:700,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:708,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:710,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:712,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:713,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:713,1
    - Dst: cf_section_argv_quote
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:714,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:716,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:720,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:721,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:722,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:723,1
    - Dst: cf_section_argv
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:727,1
    - Dst: RULES_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:729,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:731,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:732,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:732,1
    - Dst: cf_section_argv_quote
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:733,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:735,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:739,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:740,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:742,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:743,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:744,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:751,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:752,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:753,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:754,1
    - Dst: unlang_compile_ctx_copy
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:768,1
    - Dst: unlang_compile_section
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:780,1
    - Dst: unlang_generic_to_group
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:787,1
    - Dst: unlang_group_to_subrequest
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:788,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:796,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:798,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 161
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 506
    functionDepth: 6
    functionLinenumber: 506
    functionLinenumberEnd: 807
    functionName: unlang_compile_subrequest
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 0
    functionsReached:
    - RULES_VERIFY
    - unlang_compile_section
    - tmpl_attr_tail_da
    - talloc_strdup
    - virtual_server_packet_type_by_cs
    - tmpl_afrom_attr_substr
    - tmpl_type_to_str
    - MEM
    - cf_log_err
    - cf_item_to_section
    - fr_dict_by_protocol_name
    - unlang_compile_ctx_copy
    - cf_item_next
    - virtual_server_cs
    - cf_section_name2
    - fr_dict_autoload_talloc
    - tmpl_is_attr
    - cf_section_name2_quote
    - fr_dict_proto_dict
    - fr_dict_attr_by_name
    - talloc_steal
    - FR_SBUFF_IN
    - DOC_KEYWORD_REF
    - fr_assert
    - talloc_strlen
    - fr_dict_enum_by_name
    - cf_section_argv_quote
    - cf_log_perr
    - cf_section_argv
    - TALLOC_FREE
    - talloc_free
    - strchr
    - unlang_group_to_subrequest
    - tmpl_afrom_substr
    - fr_dict_root
    - tmpl_contains_attr
    - unlang_generic_to_group
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_subrequest(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:815,1
    - Dst: unlang_child_request_op_init
      Src: /src/freeradius-server/src/lib/unlang/subrequest.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 848
    functionName: unlang_subrequest_op_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest.c
    functionUses: 1
    functionsReached:
    - unlang_child_request_op_init
    - unlang_register
    linkageType: ''
    returnType: int
    signature: int unlang_subrequest_op_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/unlang/return.c:32,1
    - Dst: unwind_to_op_flag
      Src: /src/freeradius-server/src/lib/unlang/return.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - request
    - frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - unlang_stack_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: unlang_return
    functionSourceFile: /src/freeradius-server/src/lib/unlang/return.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - unwind_to_op_flag
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t unlang_return(unlang_result_t *p_result, request_t
      *request, unlang_stack_frame_t *frame)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlang_compile_empty
      Src: /src/freeradius-server/src/lib/unlang/return.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - parent
    - unlang_ctx
    - ci
    argTypes:
    - unlang_t*
    - unlang_compile_ctx_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: unlang_compile_return
    functionSourceFile: /src/freeradius-server/src/lib/unlang/return.c
    functionUses: 0
    functionsReached:
    - unlang_compile_empty
    linkageType: ''
    returnType: unlang_t
    signature: unlang_t *unlang_compile_return(unlang_t *parent, unlang_compile_ctx_t
      *unlang_ctx, UNUSED CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlang_register
      Src: /src/freeradius-server/src/lib/unlang/return.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: unlang_return_init
    functionSourceFile: /src/freeradius-server/src/lib/unlang/return.c
    functionUses: 1
    functionsReached:
    - unlang_register
    linkageType: ''
    returnType: void
    signature: void unlang_return_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/limit_priv.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: unlang_group_to_limit
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit_priv.h
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_limit_t
    signature: unlang_limit_t *unlang_group_to_limit(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - unlang_limit_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: unlang_limit_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/limit_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_limit_to_group(unlang_limit_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/unlang/xlat_priv.h:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - head
    argTypes:
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: xlat_exp_head
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 30
    functionsReached:
    - fr_dlist_head
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *xlat_exp_head(xlat_exp_head_t const *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: xlat_exp_foreach
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_exp_foreach(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - xlat_flags_t*
    - xlat_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: xlat_flags_merge
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xlat_flags_merge(xlat_flags_t *parent, xlat_flags_t const *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_VERIFY
      Src: /src/freeradius-server/src/lib/unlang/xlat_priv.h:241,1
    - Dst: xlat_flags_merge
      Src: /src/freeradius-server/src/lib/unlang/xlat_priv.h:243,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/unlang/xlat_priv.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - head
    - node
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: xlat_exp_insert_tail
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 11
    functionsReached:
    - fr_dlist_insert_tail
    - xlat_flags_merge
    - XLAT_VERIFY
    linkageType: ''
    returnType: int
    signature: int xlat_exp_insert_tail(xlat_exp_head_t *head, xlat_exp_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/unlang/xlat_priv.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - head
    - node
    argTypes:
    - xlat_exp_head_t*
    - xlat_exp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: xlat_exp_next
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 18
    functionsReached:
    - fr_dlist_next
    linkageType: ''
    returnType: xlat_exp_t
    signature: xlat_exp_t *xlat_exp_next(xlat_exp_head_t const *head, xlat_exp_t const
      *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: xlat_exp_head_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_exp_head_alloc(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _node
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: xlat_exp_set_type
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_exp_set_type(_node, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: xlat_exp_alloc_null
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_exp_alloc_null(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _in
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: xlat_exp_alloc
    functionSourceFile: /src/freeradius-server/src/lib/unlang/xlat_priv.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_exp_alloc(_ctx, _type, _in, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/unlang/subrequest_priv.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - unlang_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: unlang_group_to_subrequest
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest_priv.h
    functionUses: 3
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_subrequest_t
    signature: unlang_subrequest_t *unlang_group_to_subrequest(unlang_group_t *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - subrequest
    argTypes:
    - unlang_subrequest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: unlang_subrequest_to_group
    functionSourceFile: /src/freeradius-server/src/lib/unlang/subrequest_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_group_t
    signature: unlang_group_t *unlang_subrequest_to_group(unlang_subrequest_t *subrequest)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/connection.c:72,1
    - Dst: ldap_initialize
      Src: /src/freeradius-server/src/lib/ldap/connection.c:74,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:76,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/connection.c:76,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/connection.c:81,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/ldap/connection.c:99,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/ldap/connection.c:102,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:107,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:113,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:122,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/ldap/connection.c:123,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/ldap/connection.c:124,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:127,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/ldap/connection.c:127,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:130,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/lib/ldap/connection.c:132,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:133,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:136,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/lib/ldap/connection.c:138,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:139,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:141,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:151,1
    - Dst: maybe_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:153,1
    - Dst: maybe_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:154,1
    - Dst: maybe_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:159,1
    - Dst: maybe_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:160,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:163,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:167,1
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:177,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/connection.c:181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - c
    - config
    argTypes:
    - fr_ldap_connection_t*
    - fr_ldap_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 187
    functionName: fr_ldap_connection_configure
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - ERROR
    - WARN
    - DIAG_ON
    - ldap_err2string
    - fr_time_delta_to_sec
    - maybe_ldap_option
    - ldap_initialize
    - fr_assert
    - do_ldap_option
    - fr_time_delta_ispos
    - DIAG_OFF
    - fr_time_delta_to_timeval
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int fr_ldap_connection_configure(fr_ldap_connection_t *c, fr_ldap_config_t
      const *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _option
    - ','
    - _name
    - ','
    - _value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: do_ldap_option
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_ldap_option(_option, _name, _value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _option
    - ','
    - _name
    - ','
    - _value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: maybe_ldap_option
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maybe_ldap_option(_option, _name, _value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:197,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/ldap/connection.c:206,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/connection.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - el
    - h
    - uctx
    argTypes:
    - fr_event_list_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 211
    functionName: _ldap_connection_close
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_event_fd_delete
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _ldap_connection_close(fr_event_list_t *el, void *h, UNUSED void
      *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/ldap/connection.c:226,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/ldap/connection.c:226,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/ldap/connection.c:228,1
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/connection.c:234,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:235,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:236,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/connection.c:239,1
    - Dst: ldap_unbind_ext
      Src: /src/freeradius-server/src/lib/ldap/connection.c:240,1
    - Dst: fr_ldap_control_clear
      Src: /src/freeradius-server/src/lib/ldap/connection.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 246
    functionName: _ldap_connection_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_ldap_control_merge
    - DEBUG3
    - fr_rb_num_elements
    - fr_ldap_control_clear
    - fr_dlist_num_elements
    - ldap_unbind_ext
    - NUM_ELEMENTS
    - talloc_free_children
    linkageType: ''
    returnType: int
    signature: int _ldap_connection_free(fr_ldap_connection_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/connection.c:265,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/ldap/connection.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 278
    functionName: fr_ldap_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: fr_ldap_connection_t
    signature: fr_ldap_connection_t *fr_ldap_connection_alloc(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:289,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/ldap/connection.c:291,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/ldap/connection.c:291,1
    - Dst: talloc_reparent
      Src: /src/freeradius-server/src/lib/ldap/connection.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: _ldap_connection_close_watch
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    - fr_dlist_num_elements
    - talloc_reparent
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void _ldap_connection_close_watch(connection_t *conn, UNUSED connection_state_t
      prev,\n\t\t\t\t\t UNUSED connection_state_t state, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_connection_alloc
      Src: /src/freeradius-server/src/lib/ldap/connection.c:348,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/connection.c:353,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/ldap/connection.c:353,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/ldap/connection.c:354,1
    - Dst: fr_ldap_connection_configure
      Src: /src/freeradius-server/src/lib/ldap/connection.c:359,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/connection.c:361,1
    - Dst: ldap_set_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:366,1
    - Dst: fr_ldap_connection_timeout_set
      Src: /src/freeradius-server/src/lib/ldap/connection.c:367,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/connection.c:367,1
    - Dst: fr_ldap_state_next
      Src: /src/freeradius-server/src/lib/ldap/connection.c:369,1
    - Dst: connection_add_watch_pre
      Src: /src/freeradius-server/src/lib/ldap/connection.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - h
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 377
    functionName: _ldap_connection_init
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_ldap_connection_alloc
    - fr_time_delta_wrap
    - connection_add_watch_pre
    - talloc_free
    - fr_rb_inline_talloc_alloc
    - ldap_set_option
    - fr_ldap_state_next
    - fr_dlist_init
    - fr_ldap_connection_timeout_set
    - fr_ldap_connection_configure
    - MEM
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _ldap_connection_init(void **h, connection_t *conn,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/lib/ldap/connection.c:391,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - el
    - config
    - log_prefix
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - fr_ldap_config_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 407
    functionName: fr_ldap_connection_state_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - connection_alloc
    - PERROR
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *fr_ldap_connection_state_alloc(TALLOC_CTX *ctx, fr_event_list_t
      *el,\n\t\t\t\t\t        fr_ldap_config_t const *config, char const *log_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:420,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/ldap/connection.c:421,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/ldap/connection.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - fr_ldap_connection_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 429
    functionName: fr_ldap_connection_timeout_set
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_to_timeval
    - do_ldap_option
    - fr_time_delta_ispos
    linkageType: ''
    returnType: int
    signature: int fr_ldap_connection_timeout_set(fr_ldap_connection_t const *c, fr_time_delta_t
      timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_ldap_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:442,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/ldap/connection.c:443,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/ldap/connection.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 451
    functionName: fr_ldap_connection_timeout_reset
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_to_timeval
    - do_ldap_option
    - fr_time_delta_ispos
    linkageType: ''
    returnType: int
    signature: int fr_ldap_connection_timeout_reset(fr_ldap_connection_t const *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:458,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/connection.c:461,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/connection.c:462,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/connection.c:463,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/ldap/connection.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: _ldap_trunk_idle_timeout
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_timer_in
    - DEBUG2
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _ldap_trunk_idle_timeout(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:479,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/ldap/connection.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - connection_t *conn
    - preq
    - trunk_cancel_reason_t
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 485
    functionName: ldap_request_cancel
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_rb_remove
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void ldap_request_cancel(UNUSED connection_t *conn, void *preq, UNUSED
      trunk_cancel_reason_t reason,\n\t\t\t        UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:501,1
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/lib/ldap/connection.c:504,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:505,1
    - Dst: ldap_abandon_ext
      Src: /src/freeradius-server/src/lib/ldap/connection.c:506,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/lib/ldap/connection.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 510
    functionName: ldap_request_cancel_mux
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - trunk_connection_pop_cancellation
    - ldap_abandon_ext
    - trunk_request_signal_cancel_complete
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void ldap_request_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t    connection_t *conn, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:518,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - request_t*
    - void*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 530
    functionName: ldap_request_fail
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void ldap_request_fail(request_t *request, void *preq, UNUSED void
      *rctx,\n\t\t\t      UNUSED trunk_request_state_t state, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:547,1
    - Dst: fr_ldap_connection_state_alloc
      Src: /src/freeradius-server/src/lib/ldap/connection.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tconn
    - el
    - conn_conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - UNUSED*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: ldap_trunk_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_ldap_connection_state_alloc
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *ldap_trunk_connection_alloc(trunk_connection_t *tconn,
      fr_event_list_t *el,\n\t\t\t\t\t\t    UNUSED connection_conf_t const *conn_conf,\n\t\t\t\t\t\t
      \   char const *log_prefix, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dest
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: POPULATE_LDAP_CONTROLS
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POPULATE_LDAP_CONTROLS(_dest, _src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:571,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/lib/ldap/connection.c:579,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:585,1
    - Dst: POPULATE_LDAP_CONTROLS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:594,1
    - Dst: POPULATE_LDAP_CONTROLS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:595,1
    - Dst: fr_ldap_search_async
      Src: /src/freeradius-server/src/lib/ldap/connection.c:601,1
    - Dst: POPULATE_LDAP_CONTROLS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:614,1
    - Dst: POPULATE_LDAP_CONTROLS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:615,1
    - Dst: fr_ldap_modify_async
      Src: /src/freeradius-server/src/lib/ldap/connection.c:617,1
    - Dst: POPULATE_LDAP_CONTROLS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:626,1
    - Dst: POPULATE_LDAP_CONTROLS
      Src: /src/freeradius-server/src/lib/ldap/connection.c:627,1
    - Dst: fr_ldap_delete_async
      Src: /src/freeradius-server/src/lib/ldap/connection.c:629,1
    - Dst: fr_ldap_extended_async
      Src: /src/freeradius-server/src/lib/ldap/connection.c:638,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:644,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/lib/ldap/connection.c:646,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/ldap/connection.c:647,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/ldap/connection.c:658,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/ldap/connection.c:669,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/lib/ldap/connection.c:671,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 674
    functionName: ldap_trunk_request_mux
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_ldap_search_async
    - ERROR
    - fr_ldap_modify_async
    - trunk_connection_signal_reconnect
    - trunk_request_signal_sent
    - fr_ldap_extended_async
    - talloc_get_type_abort
    - fr_dlist_remove
    - trunk_request_signal_fail
    - fr_ldap_delete_async
    - POPULATE_LDAP_CONTROLS
    - fr_rb_insert
    - trunk_connection_pop_request
    linkageType: ''
    returnType: void
    signature: "void ldap_trunk_request_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t   connection_t *conn, UNUSED void *uctx)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:691,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:692,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/ldap/connection.c:706,1
    - Dst: ldap_result
      Src: /src/freeradius-server/src/lib/ldap/connection.c:721,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/connection.c:729,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:731,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/ldap/connection.c:732,1
    - Dst: ldap_msgid
      Src: /src/freeradius-server/src/lib/ldap/connection.c:744,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/ldap/connection.c:745,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/connection.c:748,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:750,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/ldap/connection.c:757,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/ldap/connection.c:763,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/connection.c:771,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:772,1
    - Dst: ldap_msgtype
      Src: /src/freeradius-server/src/lib/ldap/connection.c:776,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:783,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/connection.c:785,1
    - Dst: ldap_count_entries
      Src: /src/freeradius-server/src/lib/ldap/connection.c:791,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:803,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:810,1
    - Dst: ldap_memvfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:820,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/connection.c:822,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:824,1
    - Dst: fr_ldap_referral_follow
      Src: /src/freeradius-server/src/lib/ldap/connection.c:831,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:833,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:837,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:842,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:847,1
    - Dst: fr_dlist_talloc_free_item
      Src: /src/freeradius-server/src/lib/ldap/connection.c:853,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/ldap/connection.c:856,1
    - Dst: fr_ldap_referral_next
      Src: /src/freeradius-server/src/lib/ldap/connection.c:857,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/ldap/connection.c:867,1
    - Dst: parser
      Src: /src/freeradius-server/src/lib/ldap/connection.c:873,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:879,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/ldap/connection.c:892,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 107
    argCount: 4
    argNames:
    - el
    - tconn
    - conn
    - uctx
    argTypes:
    - fr_event_list_t*
    - trunk_connection_t*
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 894
    functionName: ldap_trunk_request_demux
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_ldap_error_check
    - WARN
    - ldap_msgtype
    - fr_timer_in
    - ldap_memvfree
    - FR_TIMER_DELETE
    - ldap_msgid
    - ldap_count_entries
    - ldap_msgfree
    - ERROR
    - connection_signal_reconnect
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - ROPTIONAL
    - unlang_interpret_mark_runnable
    - fr_ldap_referral_next
    - fr_ldap_referral_follow
    - parser
    - fr_rb_find
    - trunk_request_signal_complete
    - ldap_get_option
    - fr_dlist_talloc_free_item
    - ldap_result
    - fr_dlist_insert_tail
    - fr_rb_remove
    linkageType: ''
    returnType: void
    signature: void ldap_trunk_request_demux(fr_event_list_t *el, trunk_connection_t
      *tconn, connection_t *conn, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:898,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/ldap/connection.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ttrunk
    argTypes:
    - fr_ldap_thread_trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 901
    functionName: _thread_ldap_trunk_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_rb_node_inline_in_tree
    - fr_rb_remove
    linkageType: ''
    returnType: int
    signature: int _thread_ldap_trunk_free(fr_ldap_thread_trunk_t *ttrunk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:923,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/ldap/connection.c:925,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:932,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/connection.c:933,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/ldap/connection.c:934,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/connection.c:940,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/connection.c:941,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/connection.c:942,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/connection.c:943,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/ldap/connection.c:948,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/connection.c:963,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/connection.c:964,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/ldap/connection.c:973,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/ldap/connection.c:973,1
    - Dst: fr_ldap_trunk_directory_alloc_async
      Src: /src/freeradius-server/src/lib/ldap/connection.c:979,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/ldap/connection.c:981,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 6
    argNames:
    - thread
    - uri
    - bind_dn
    - bind_password
    - request
    - config
    argTypes:
    - fr_ldap_thread_t*
    - char*
    - char*
    - char*
    - request_t*
    - fr_ldap_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 984
    functionName: fr_thread_ldap_trunk_get
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 7
    functionsReached:
    - trunk_alloc
    - talloc_set_destructor
    - memcpy
    - talloc_free
    - fr_cond_assert_msg
    - talloc_strdup
    - fr_timer_in
    - fr_rb_find
    - ROPTIONAL
    - talloc_zero
    - fr_rb_insert
    - fr_ldap_trunk_directory_alloc_async
    linkageType: ''
    returnType: fr_ldap_thread_trunk_t
    signature: "fr_ldap_thread_trunk_t *fr_thread_ldap_trunk_get(fr_ldap_thread_t
      *thread, char const *uri,\n\t\t\t\t\t\t char const *bind_dn, char const *bind_password,\n\t\t\t\t\t\t
      request_t *request, fr_ldap_config_t const *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/ldap/connection.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - thread
    - uri
    - bind_dn
    argTypes:
    - fr_ldap_thread_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1002
    functionName: fr_thread_ldap_trunk_state
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    linkageType: ''
    returnType: trunk_state_t
    signature: trunk_state_t fr_thread_ldap_trunk_state(fr_ldap_thread_t *thread,
      char const *uri, char const *bind_dn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1015,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1016,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1025,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1030,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1038,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1041,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1042,1
    - Dst: ldap_sasl_bind
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1048,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1053,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1054,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1059,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1060,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1071,1
    - Dst: fr_ldap_sasl_bind_auth_send
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1074,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1081,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1082,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1087,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1092,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1093,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1106,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1107
    functionName: ldap_trunk_bind_auth_mux
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - RERROR
    - ldap_sasl_bind
    - fr_ldap_sasl_bind_auth_send
    - memcpy
    - trunk_request_signal_sent
    - talloc_get_type_abort
    - RDEBUG2
    - RDEBUG3
    - fr_rb_insert
    - talloc_strlen
    - trunk_connection_pop_request
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void ldap_trunk_bind_auth_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t   connection_t *conn, void *uctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1120,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1121,1
    - Dst: fr_ldap_result
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1139,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1139,1
    - Dst: ldap_msgid
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1149,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1150,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1153,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1154,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1165,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1198,1
    - Dst: ldap_parse_sasl_bind_result
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1202,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1204,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1204,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1209,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1210,1
    - Dst: ber_bvfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1211,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1214,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1222,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1223,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - trunk_connection_t *tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1224
    functionName: ldap_trunk_bind_auth_demux
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - RERROR
    - WARN
    - ber_bvfree
    - fr_rb_remove
    - talloc_get_type_abort
    - fr_ldap_result
    - ldap_err2string
    - fr_rb_find
    - RDEBUG3
    - ldap_msgid
    - fr_box_strvalue_len
    - ldap_parse_sasl_bind_result
    - ldap_msgfree
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void ldap_trunk_bind_auth_demux(UNUSED fr_event_list_t *el, UNUSED
      trunk_connection_t *tconn,\n\t\t\t\t       connection_t *conn, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1240,1
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1243,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1244,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1252,1
    - Dst: ldap_abandon_ext
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1255,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1261
    functionName: ldap_bind_auth_cancel_mux
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_reconnect
    - ldap_abandon_ext
    - talloc_get_type_abort
    - trunk_connection_pop_cancellation
    - trunk_request_signal_cancel_complete
    linkageType: ''
    returnType: void
    signature: "void ldap_bind_auth_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn,\n\t\t\t\t    connection_t *conn, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1269,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1277,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - request_t*
    - void*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1283
    functionName: ldap_trunk_bind_auth_fail
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 0
    functionsReached:
    - talloc_steal
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void ldap_trunk_bind_auth_fail(request_t *request, void *preq, UNUSED
      void *rctx,\n\t\t\t\tUNUSED trunk_request_state_t state, UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1300,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1300,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1301,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1306,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1319,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/connection.c:1320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - thread
    argTypes:
    - fr_ldap_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1328
    functionName: fr_thread_ldap_bind_trunk_get
    functionSourceFile: /src/freeradius-server/src/lib/ldap/connection.c
    functionUses: 1
    functionsReached:
    - ERROR
    - trunk_alloc
    - memcpy
    - talloc_free
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: fr_ldap_thread_trunk_t
    signature: fr_ldap_thread_trunk_t *fr_thread_ldap_bind_trunk_get(fr_ldap_thread_t
      *thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:53,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:56,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: _ldap_start_tls_io_error
    functionSourceFile: /src/freeradius-server/src/lib/ldap/start_tls.c
    functionUses: 0
    functionsReached:
    - fr_ldap_state_error
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void _ldap_start_tls_io_error(UNUSED fr_event_list_t *el, UNUSED int
      fd, UNUSED int flags,\n\t\t\t\t     UNUSED int fd_errno, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:98,1
    - Dst: fr_ldap_result
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:106,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:106,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:107,1
    - Dst: fr_ldap_connection_timeout_set
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:115,1
    - Dst: ldap_install_tls
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:121,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:122,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:124,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:124,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:125,1
    - Dst: fr_ldap_state_next
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:129,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:133,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 137
    functionName: _ldap_start_tls_io_read
    functionSourceFile: /src/freeradius-server/src/lib/ldap/start_tls.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - ERROR
    - talloc_free
    - fr_ldap_state_next
    - fr_ldap_state_error
    - talloc_get_type_abort
    - fr_ldap_result
    - ldap_err2string
    - fr_ldap_connection_timeout_set
    - ldap_install_tls
    - fr_ldap_connection_timeout_reset
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _ldap_start_tls_io_read(UNUSED fr_event_list_t *el, UNUSED int
      fd, UNUSED int flags, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:152,1
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:160,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:161,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:162,1
    - Dst: ldap_start_tls
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:165,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:174,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:177,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:178,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:179,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:183,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:188,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:193,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:197,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:202,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:206,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:206,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 211
    functionName: _ldap_start_tls_io_write
    functionSourceFile: /src/freeradius-server/src/lib/ldap/start_tls.c
    functionUses: 0
    functionsReached:
    - fr_ldap_control_merge
    - ERROR
    - ldap_get_option
    - talloc_free
    - fr_cond_assert
    - fr_ldap_state_error
    - fr_event_fd_insert
    - talloc_get_type_abort
    - ldap_err2string
    - fr_ldap_connection_timeout_reset
    - ldap_start_tls
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void _ldap_start_tls_io_write(fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:229,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:231,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:231,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:242,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:245,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:250,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:251,1
    - Dst: _ldap_start_tls_io_write
      Src: /src/freeradius-server/src/lib/ldap/start_tls.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - c
    - serverctrls
    - clientctrls
    argTypes:
    - fr_ldap_connection_t*
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 259
    functionName: fr_ldap_start_tls_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/start_tls.c
    functionUses: 0
    functionsReached:
    - ldap_get_option
    - talloc_free
    - fr_cond_assert
    - fr_event_fd_insert
    - talloc_zero
    - _ldap_start_tls_io_write
    - DEBUG2
    - MEM
    linkageType: ''
    returnType: int
    signature: int fr_ldap_start_tls_async(fr_ldap_connection_t *c, LDAPControl **serverctrls,
      LDAPControl **clientctrls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/ldap/base.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - berval
    argTypes:
    - fr_value_box_t*
    - struct berval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: fr_ldap_berval_to_value_shallow
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.h
    functionUses: 0
    functionsReached:
    - fr_value_box_memdup_shallow
    linkageType: ''
    returnType: void
    signature: void fr_ldap_berval_to_value_shallow(fr_value_box_t *value, struct
      berval *berval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/ldap/base.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - berval
    argTypes:
    - fr_value_box_t*
    - struct berval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: fr_ldap_berval_to_value_str_shallow
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.h
    functionUses: 0
    functionsReached:
    - fr_value_box_bstrndup_shallow
    linkageType: ''
    returnType: void
    signature: void fr_ldap_berval_to_value_str_shallow(fr_value_box_t *value, struct
      berval *berval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:682,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/base.h:685,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/base.h:685,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - value
    - str
    - strlen
    argTypes:
    - struct berval*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 689
    functionName: fr_ldap_berval_strncasecmp
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.h
    functionUses: 1
    functionsReached:
    - tolower
    - CMP
    linkageType: ''
    returnType: int
    signature: int fr_ldap_berval_strncasecmp(struct berval *value, char const *str,
      size_t strlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:700,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/ldap/base.h:700,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:703,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:704,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/ldap/base.h:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 705
    functionName: fr_ldap_trunk_cmp
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.h
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_ldap_trunk_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 718
    functionName: fr_ldap_query_cmp
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.h
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_ldap_query_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/ldap/base.h:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 731
    functionName: fr_ldap_bind_auth_cmp
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.h
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_ldap_bind_auth_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/ldap/state.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_TRANSITION(_new)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_start_tls_async
      Src: /src/freeradius-server/src/lib/ldap/state.c:58,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:59,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:62,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:73,1
    - Dst: fr_ldap_sasl_bind_async
      Src: /src/freeradius-server/src/lib/ldap/state.c:80,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:87,1
    - Dst: fr_ldap_bind_async
      Src: /src/freeradius-server/src/lib/ldap/state.c:97,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:101,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:111,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/lib/ldap/state.c:112,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:120,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/ldap/state.c:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 129
    functionName: fr_ldap_state_next
    functionSourceFile: /src/freeradius-server/src/lib/ldap/state.c
    functionUses: 2
    functionsReached:
    - fr_ldap_sasl_bind_async
    - fr_ldap_bind_async
    - connection_signal_reconnect
    - fr_ldap_start_tls_async
    - connection_signal_connected
    - STATE_TRANSITION
    linkageType: ''
    returnType: fr_ldap_state_t
    signature: fr_ldap_state_t fr_ldap_state_next(fr_ldap_connection_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/ldap/state.c:136,1
    - Dst: fr_ldap_state_next
      Src: /src/freeradius-server/src/lib/ldap/state.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: fr_ldap_state_error
    functionSourceFile: /src/freeradius-server/src/lib/ldap/state.c
    functionUses: 3
    functionsReached:
    - fr_ldap_state_next
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void fr_ldap_state_error(fr_ldap_connection_t *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ber_alloc
      Src: /src/freeradius-server/src/lib/ldap/edir.c:88,1
    - Dst: ber_printf
      Src: /src/freeradius-server/src/lib/ldap/edir.c:93,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/edir.c:93,1
    - Dst: ber_flatten
      Src: /src/freeradius-server/src/lib/ldap/edir.c:103,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/lib/ldap/edir.c:109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - dn
    - request_bv
    argTypes:
    - char*
    - struct berval**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: ber_encode_request_data
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 0
    functionsReached:
    - ber_free
    - ber_printf
    - ber_flatten
    - strlen
    - ber_alloc
    linkageType: ''
    returnType: int
    signature: int ber_encode_request_data(char const *dn, struct berval **request_bv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/edir.c:140,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/edir.c:141,1
    - Dst: ber_init
      Src: /src/freeradius-server/src/lib/ldap/edir.c:143,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/lib/ldap/edir.c:148,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/lib/ldap/edir.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - reply_bv
    - server_version
    - out
    - outlen
    argTypes:
    - struct berval*
    - int*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 158
    functionName: ber_decode_login_data
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 0
    functionsReached:
    - ber_free
    - fr_assert
    - ber_init
    - ber_scanf
    linkageType: ''
    returnType: int
    signature: int ber_decode_login_data(struct berval *reply_bv, int *server_version,
      void *out, size_t *outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/edir.c:169,1
    - Dst: fr_ldap_trunk_extended
      Src: /src/freeradius-server/src/lib/ldap/edir.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: ldap_edir_get_password_start
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 0
    functionsReached:
    - fr_ldap_trunk_extended
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_edir_get_password_start(UNUSED unlang_result_t
      *p_result, request_t *request, void *uctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/edir.c:183,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/edir.c:199,1
    - Dst: ldap_parse_extended_result
      Src: /src/freeradius-server/src/lib/ldap/edir.c:204,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/ldap/edir.c:218,1
    - Dst: ber_decode_login_data
      Src: /src/freeradius-server/src/lib/ldap/edir.c:234,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/edir.c:245,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/ldap/edir.c:245,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/ldap/edir.c:246,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/edir.c:249,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/edir.c:251,1
    - Dst: ber_bvfree
      Src: /src/freeradius-server/src/lib/ldap/edir.c:258,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/edir.c:259,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/edir.c:262,1
    - Dst: fr_ldap_edir_errstr
      Src: /src/freeradius-server/src/lib/ldap/edir.c:262,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/lib/ldap/edir.c:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 267
    functionName: ldap_edir_get_password_resume
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 0
    functionsReached:
    - pair_update_control
    - fr_pair_value_bstrndup
    - ber_bvfree
    - REDEBUG
    - ber_decode_login_data
    - talloc_get_type_abort
    - ldap_memfree
    - fr_ldap_edir_errstr
    - ldap_parse_extended_result
    - RDEBUG3
    - RDEBUG2
    - strcmp
    - RETURN_UNLANG_RCODE
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_edir_get_password_resume(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/edir.c:274,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/ldap/edir.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: ldap_edir_get_password_cancel
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_edir_get_password_cancel(UNUSED request_t *request, UNUSED
      fr_signal_t action, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/edir.c:300,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/edir.c:304,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/ldap/edir.c:304,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/ldap/edir.c:304,1
    - Dst: ber_encode_request_data
      Src: /src/freeradius-server/src/lib/ldap/edir.c:312,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/edir.c:314,1
    - Dst: fr_ldap_edir_errstr
      Src: /src/freeradius-server/src/lib/ldap/edir.c:314,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/edir.c:315,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/ldap/edir.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - p_result
    - request
    - dn
    - ttrunk
    - password_da
    argTypes:
    - unlang_result_t*
    - request_t*
    - char*
    - fr_ldap_thread_trunk_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 325
    functionName: fr_ldap_edir_get_password
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - REDEBUG
    - talloc
    - ber_encode_request_data
    - fr_ldap_edir_errstr
    - unlang_interpret_frame_talloc_ctx
    - unlang_function_push_with_result
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fr_ldap_edir_get_password(unlang_result_t *p_result,\n\t\t\t\t\t
      \ request_t *request, char const *dn, fr_ldap_thread_trunk_t *ttrunk,\n\t\t\t\t\t
      \ fr_dict_attr_t const *password_da)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/ldap/edir.c:344,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/edir.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 355
    functionName: fr_ldap_edir_errstr
    functionSourceFile: /src/freeradius-server/src/lib/ldap/edir.c
    functionUses: 2
    functionsReached:
    - STRINGIFY
    - ldap_err2string
    linkageType: ''
    returnType: char
    signature: char *fr_ldap_edir_errstr(int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/lib/ldap/referral.c:36,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/referral.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - referral
    argTypes:
    - fr_ldap_referral_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: _fr_ldap_referral_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/referral.c
    functionUses: 0
    functionsReached:
    - ldap_free_urldesc
    - ldap_memfree
    linkageType: ''
    returnType: int
    signature: int _fr_ldap_referral_free(fr_ldap_referral_t *referral)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/referral.c:53,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/ldap/referral.c:55,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/ldap/referral.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - request
    argTypes:
    - TALLOC_CTX*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: fr_ldap_referral_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/referral.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - PERROR
    - talloc_set_destructor
    linkageType: ''
    returnType: fr_ldap_referral_t
    signature: fr_ldap_referral_t *fr_ldap_referral_alloc(TALLOC_CTX *ctx, request_t
      *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/referral.c:71,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/referral.c:84,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:90,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/ldap/referral.c:92,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - trunk
    - trunk_state_t
    - trunk_state_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 97
    functionName: _ldap_referral_send
    functionSourceFile: /src/freeradius-server/src/lib/ldap/referral.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    - trunk_request_enqueue
    - talloc_get_type_abort
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: "void _ldap_referral_send(UNUSED trunk_t *trunk, UNUSED trunk_state_t
      prev,\n\t\t\t        UNUSED trunk_state_t state, void *uctx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/ldap/referral.c:121,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/ldap/referral.c:128,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/ldap/referral.c:134,1
    - Dst: ldap_is_ldap_url
      Src: /src/freeradius-server/src/lib/ldap/referral.c:138,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:139,1
    - Dst: fr_ldap_referral_alloc
      Src: /src/freeradius-server/src/lib/ldap/referral.c:144,1
    - Dst: ldap_url_parse
      Src: /src/freeradius-server/src/lib/ldap/referral.c:149,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:150,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/referral.c:153,1
    - Dst: ldap_url_desc2str
      Src: /src/freeradius-server/src/lib/ldap/referral.c:163,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:165,1
    - Dst: fr_table_value_by_substr
      Src: /src/freeradius-server/src/lib/ldap/referral.c:190,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/ldap/referral.c:192,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:195,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/ldap/referral.c:204,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:211,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:216,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/ldap/referral.c:227,1
    - Dst: fr_thread_ldap_trunk_state
      Src: /src/freeradius-server/src/lib/ldap/referral.c:228,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:230,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/lib/ldap/referral.c:236,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:240,1
    - Dst: fr_dlist_talloc_free_item
      Src: /src/freeradius-server/src/lib/ldap/referral.c:241,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/referral.c:249,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:255,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/ldap/referral.c:264,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:265,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/ldap/referral.c:274,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/lib/ldap/referral.c:275,1
    - Dst: fr_dlist_talloc_free_item
      Src: /src/freeradius-server/src/lib/ldap/referral.c:278,1
    - Dst: trunk_add_watch
      Src: /src/freeradius-server/src/lib/ldap/referral.c:282,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:283,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 111
    argCount: 3
    argNames:
    - t
    - request
    - query
    argTypes:
    - fr_ldap_thread_t*
    - request_t*
    - fr_ldap_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 287
    functionName: fr_ldap_referral_follow
    functionSourceFile: /src/freeradius-server/src/lib/ldap/referral.c
    functionUses: 1
    functionsReached:
    - fr_dlist_talloc_init
    - trunk_request_enqueue
    - ldap_url_parse
    - ldap_url_desc2str
    - fr_dlist_talloc_free
    - ldap_is_ldap_url
    - fr_dlist_num_elements
    - ROPTIONAL
    - fr_ldap_referral_alloc
    - fr_thread_ldap_trunk_state
    - fr_table_value_by_substr
    - trunk_request_signal_complete
    - talloc_free
    - fr_dlist_talloc_free_item
    - fr_dlist_next
    - strchr
    - trunk_add_watch
    - fr_thread_ldap_trunk_get
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: int fr_ldap_referral_follow(fr_ldap_thread_t *t, request_t *request,
      fr_ldap_query_t *query)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/ldap/referral.c:316,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/ldap/referral.c:319,1
    - Dst: fr_thread_ldap_trunk_state
      Src: /src/freeradius-server/src/lib/ldap/referral.c:320,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:322,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/lib/ldap/referral.c:327,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:331,1
    - Dst: fr_dlist_talloc_free_item
      Src: /src/freeradius-server/src/lib/ldap/referral.c:332,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/referral.c:340,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:346,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/ldap/referral.c:355,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:356,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/ldap/referral.c:365,1
    - Dst: fr_thread_ldap_trunk_get
      Src: /src/freeradius-server/src/lib/ldap/referral.c:366,1
    - Dst: fr_dlist_talloc_free_item
      Src: /src/freeradius-server/src/lib/ldap/referral.c:369,1
    - Dst: trunk_add_watch
      Src: /src/freeradius-server/src/lib/ldap/referral.c:373,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/referral.c:374,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - t
    - request
    - query
    argTypes:
    - fr_ldap_thread_t*
    - request_t*
    - fr_ldap_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 378
    functionName: fr_ldap_referral_next
    functionSourceFile: /src/freeradius-server/src/lib/ldap/referral.c
    functionUses: 1
    functionsReached:
    - trunk_request_signal_complete
    - fr_dlist_talloc_free_item
    - fr_dlist_next
    - trunk_request_enqueue
    - fr_dlist_num_elements
    - fr_thread_ldap_trunk_state
    - trunk_add_watch
    - ROPTIONAL
    - fr_thread_ldap_trunk_get
    linkageType: ''
    returnType: int
    signature: int fr_ldap_referral_next(fr_ldap_thread_t *t, request_t *request,
      fr_ldap_query_t *query)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: FR_LDAP_SYNC_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sync.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_LDAP_SYNC_PACKET_CODE_VALID(_code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:79,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 5
    argNames:
    - request
    - out
    - outlen
    - in
    - arg
    argTypes:
    - UNUSED*
    - char*
    - size_t
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 107
    functionName: fr_ldap_dn_escape_func
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 2
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ldap_dn_escape_func(UNUSED request_t *request, char *out,
      size_t outlen, char const *in, UNUSED void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/util.c:115,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/ldap/util.c:115,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/ldap/util.c:117,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/ldap/util.c:121,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/ldap/util.c:122,1
    - Dst: fr_ldap_dn_escape_func
      Src: /src/freeradius-server/src/lib/ldap/util.c:126,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/ldap/util.c:126,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/util.c:132,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/ldap/util.c:132,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/ldap/util.c:134,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/lib/ldap/util.c:135,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/ldap/util.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 139
    functionName: fr_ldap_dn_box_escape
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_trim_talloc
    - fr_value_box_is_safe_for
    - fr_value_box_cast_in_place
    - fr_ldap_dn_escape_func
    - talloc_free
    - fr_sbuff_init_talloc
    - fr_assert
    - fr_sbuff_buff
    - fr_value_box_strdup_shallow_replace
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_ldap_dn_box_escape(fr_value_box_t *vb, UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - request
    - out
    - outlen
    - in
    - arg
    argTypes:
    - UNUSED*
    - char*
    - size_t
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: fr_ldap_filter_escape_func
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 2
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ldap_filter_escape_func(UNUSED request_t *request, char *out,
      size_t outlen, char const *in, UNUSED void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/util.c:189,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/ldap/util.c:189,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/ldap/util.c:191,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/ldap/util.c:195,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/ldap/util.c:196,1
    - Dst: fr_ldap_filter_escape_func
      Src: /src/freeradius-server/src/lib/ldap/util.c:200,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/ldap/util.c:200,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/util.c:203,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/ldap/util.c:203,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/ldap/util.c:205,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/lib/ldap/util.c:206,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/ldap/util.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 210
    functionName: fr_ldap_filter_box_escape
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_trim_talloc
    - fr_value_box_is_safe_for
    - fr_value_box_cast_in_place
    - fr_ldap_filter_escape_func
    - talloc_free
    - fr_sbuff_init_talloc
    - fr_assert
    - fr_sbuff_buff
    - fr_value_box_strdup_shallow_replace
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_ldap_filter_box_escape(fr_value_box_t *vb, UNUSED void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:247,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:253,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/util.c:253,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:254,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/util.c:254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - request
    - out
    - outlen
    - in
    - arg
    argTypes:
    - UNUSED*
    - char*
    - size_t
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 264
    functionName: fr_ldap_uri_unescape_func
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 1
    functionsReached:
    - memchr
    - tolower
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ldap_uri_unescape_func(UNUSED request_t *request, char *out,
      size_t outlen, char const *in, UNUSED void *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/ldap/util.c:320,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/ldap/util.c:320,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/ldap/util.c:320,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - in
    - inlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 361
    functionName: fr_ldap_util_is_dn
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 4
    functionsReached:
    - FR_DBUFF_TMP
    - fr_base16_decode
    - FR_SBUFF_IN
    linkageType: ''
    returnType: bool
    signature: bool fr_ldap_util_is_dn(char const *in, size_t inlen)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/ldap/util.c:387,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/util.c:387,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/util.c:391,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:395,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/ldap/util.c:400,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:404,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/util.c:406,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/util.c:411,1
    - Dst: ldap_create_sort_keylist
      Src: /src/freeradius-server/src/lib/ldap/util.c:417,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/ldap/util.c:417,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/util.c:419,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/ldap/util.c:420,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/util.c:420,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/util.c:424,1
    - Dst: ldap_create_sort_control
      Src: /src/freeradius-server/src/lib/ldap/util.c:426,1
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/lib/ldap/util.c:426,1
    - Dst: ldap_free_sort_keylist
      Src: /src/freeradius-server/src/lib/ldap/util.c:427,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/util.c:429,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/util.c:430,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/ldap/util.c:438,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:444,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/util.c:446,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/ldap/util.c:453,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:454,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/ldap/util.c:457,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:461,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/ldap/util.c:465,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:466,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/ldap/util.c:469,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/util.c:473,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/ldap/util.c:474,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/ldap/util.c:475,1
    - Dst: ldap_create_vlv_control
      Src: /src/freeradius-server/src/lib/ldap/util.c:480,1
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/lib/ldap/util.c:480,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/util.c:483,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/util.c:484,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/util.c:493,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 100
    argCount: 3
    argNames:
    - sss
    - sss_len
    - extensions
    argTypes:
    - LDAPControl**
    - size_t
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 498
    functionName: fr_ldap_parse_url_extensions
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 2
    functionsReached:
    - ldap_create_sort_keylist
    - fr_ldap_handle_thread_local
    - ldap_create_vlv_control
    - fr_sbuff_out
    - ldap_create_sort_control
    - fr_strerror_printf
    - ldap_control_free
    - fr_sbuff_adv_past_str
    - FR_SBUFF_IN
    - ldap_err2string
    - ldap_free_sort_keylist
    - fr_sbuff_current
    - strlen
    - fr_sbuff_remaining
    - fr_strerror_const
    - fr_sbuff_next_if_char
    linkageType: ''
    returnType: int
    signature: int fr_ldap_parse_url_extensions(LDAPControl **sss, size_t sss_len,
      char *extensions[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/ldap/util.c:516,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/util.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - in
    argTypes:
    - TALLOC_CTX*
    - struct berval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 523
    functionName: fr_ldap_berval_to_string
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 4
    functionsReached:
    - memcpy
    - talloc_array
    linkageType: ''
    returnType: char
    signature: char *fr_ldap_berval_to_string(TALLOC_CTX *ctx, struct berval const
      *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/ldap/util.c:535,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/util.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - in
    argTypes:
    - TALLOC_CTX*
    - struct berval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: fr_ldap_berval_to_bin
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_array
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_ldap_berval_to_bin(TALLOC_CTX *ctx, struct berval const
      *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/ldap/util.c:585,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/ldap/util.c:585,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/ldap/util.c:585,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 598
    functionName: fr_ldap_util_normalise_dn
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 4
    functionsReached:
    - FR_DBUFF_TMP
    - fr_base16_decode
    - FR_SBUFF_IN
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ldap_util_normalise_dn(char *out, char const *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/util.c:616,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/util.c:620,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - full
    - part
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 628
    functionName: fr_ldap_common_dn
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ldap_common_dn(char const *full, char const *part)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/util.c:657,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/ldap/util.c:667,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/ldap/util.c:669,1
    - Dst: strcat
      Src: /src/freeradius-server/src/lib/ldap/util.c:672,1
    - Dst: strcat
      Src: /src/freeradius-server/src/lib/ldap/util.c:675,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/ldap/util.c:679,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/ldap/util.c:679,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/util.c:681,1
    - Dst: EMARKER
      Src: /src/freeradius-server/src/lib/ldap/util.c:684,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/ldap/util.c:684,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - ctx
    - t_rules
    - sub
    - sublen
    - out
    argTypes:
    - TALLOC_CTX*
    - tmpl_rules_t*
    - char**
    - size_t
    - tmpl_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 690
    functionName: fr_ldap_filter_to_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 2
    functionsReached:
    - talloc_array
    - talloc_free
    - EMARKER
    - FR_SBUFF_IN_STR
    - strlen
    - tmpl_afrom_substr
    - fr_strerror
    - strcpy
    - strcat
    linkageType: ''
    returnType: int
    signature: int fr_ldap_filter_to_tmpl(TALLOC_CTX *ctx, tmpl_rules_t const *t_rules,
      char const **sub, size_t sublen, tmpl_t **out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/ldap/util.c:707,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/ldap/util.c:711,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/ldap/util.c:712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - attrs
    - attr
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 716
    functionName: fr_ldap_attrs_check
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int fr_ldap_attrs_check(char const **attrs, char const *attr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/ldap/util.c:734,1
    - Dst: ldap_url_parse
      Src: /src/freeradius-server/src/lib/ldap/util.c:736,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:737,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/lib/ldap/util.c:739,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:744,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:749,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:757,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:767,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:769,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:769,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/ldap/util.c:777,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:779,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/ldap/util.c:784,1
    - Dst: ldap_url_desc2str
      Src: /src/freeradius-server/src/lib/ldap/util.c:803,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:805,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/lib/ldap/util.c:808,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/lib/ldap/util.c:810,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:811,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - handle_config
    - server
    - cs
    argTypes:
    - fr_ldap_config_t*
    - char*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 813
    functionName: fr_ldap_server_url_check
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 1
    functionsReached:
    - talloc_asprintf_append
    - strchr
    - ldap_memfree
    - ldap_free_urldesc
    - strcmp
    - cf_pair_find
    - ldap_url_parse
    - cf_log_err
    - ldap_url_desc2str
    linkageType: ''
    returnType: int
    signature: int fr_ldap_server_url_check(fr_ldap_config_t *handle_config, char
      const *server, CONF_SECTION const *cs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:837,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/ldap/util.c:840,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/util.c:841,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/ldap/util.c:846,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/ldap/util.c:848,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/util.c:852,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/lib/ldap/util.c:856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - handle_config
    - server
    - cs
    argTypes:
    - fr_ldap_config_t*
    - char*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 859
    functionName: fr_ldap_server_config_check
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 1
    functionsReached:
    - talloc_asprintf_append
    - strrchr
    - strchr
    - strtol
    - strlen
    - cf_pair_find
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int fr_ldap_server_config_check(fr_ldap_config_t *handle_config, char
      const *server, CONF_SECTION *cs)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ldap_url_err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 904
    functionName: fr_ldap_url_err_to_str
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_ldap_url_err_to_str(int ldap_url_err)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/lib/ldap/util.c:919,1
    - Dst: ldap_msgtype
      Src: /src/freeradius-server/src/lib/ldap/util.c:922,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/lib/ldap/util.c:925,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:927,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:928,1
    - Dst: ldap_first_attribute
      Src: /src/freeradius-server/src/lib/ldap/util.c:931,1
    - Dst: ldap_next_attribute
      Src: /src/freeradius-server/src/lib/ldap/util.c:933,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/util.c:934,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:936,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:937,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:954,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/lib/ldap/util.c:954,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:958,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/util.c:958,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/util.c:961,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:962,1
    - Dst: ldap_parse_result
      Src: /src/freeradius-server/src/lib/ldap/util.c:979,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:981,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/util.c:981,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:985,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/util.c:985,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:988,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:991,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:995,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:999,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:1000,1
    - Dst: ldap_memvfree
      Src: /src/freeradius-server/src/lib/ldap/util.c:1001,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/util.c:1006,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/lib/ldap/util.c:1010,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 1
    argNames:
    - entry
    argTypes:
    - LDAPMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 1011
    functionName: fr_ldap_entry_dump
    functionSourceFile: /src/freeradius-server/src/lib/ldap/util.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - ldap_next_attribute
    - fr_ldap_handle_thread_local
    - ber_free
    - ldap_msgtype
    - ldap_memfree
    - ldap_get_dn
    - ldap_first_attribute
    - fr_box_octets
    - ldap_err2string
    - ldap_memvfree
    - ldap_value_free_len
    - fr_box_strvalue_len
    - ldap_parse_result
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_ldap_entry_dump(LDAPMessage *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/bind.c:42,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/bind.c:45,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/bind.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: _ldap_bind_io_error
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 0
    functionsReached:
    - fr_ldap_state_error
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void _ldap_bind_io_error(UNUSED fr_event_list_t *el, UNUSED int fd,\n\t\t\t\tUNUSED
      int flags, UNUSED int fd_errno, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/bind.c:58,1
    - Dst: fr_ldap_result
      Src: /src/freeradius-server/src/lib/ldap/bind.c:66,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/bind.c:66,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/bind.c:69,1
    - Dst: fr_ldap_state_next
      Src: /src/freeradius-server/src/lib/ldap/bind.c:71,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/ldap/bind.c:75,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/bind.c:77,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/ldap/bind.c:81,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/bind.c:83,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/bind.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 87
    functionName: _ldap_bind_io_read
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - talloc_free
    - fr_ldap_state_next
    - fr_ldap_state_error
    - talloc_get_type_abort
    - fr_ldap_result
    - DEBUG2
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _ldap_bind_io_read(UNUSED fr_event_list_t *el, UNUSED int fd,
      UNUSED int flags, void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/bind.c:98,1
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/bind.c:107,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/bind.c:108,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/bind.c:109,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/bind.c:113,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/ldap/bind.c:114,1
    - Dst: ldap_sasl_bind
      Src: /src/freeradius-server/src/lib/ldap/bind.c:125,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/bind.c:135,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:136,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/bind.c:138,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/bind.c:139,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/bind.c:140,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:144,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:149,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/bind.c:154,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:158,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:163,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/bind.c:167,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/bind.c:167,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/bind.c:171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 96
    functionDepth: 6
    functionLinenumber: 96
    functionLinenumberEnd: 172
    functionName: _ldap_bind_io_write
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 0
    functionsReached:
    - fr_ldap_control_merge
    - ERROR
    - ldap_sasl_bind
    - ldap_get_option
    - memcpy
    - talloc_free
    - fr_cond_assert
    - fr_ldap_state_error
    - fr_event_fd_insert
    - talloc_get_type_abort
    - ldap_err2string
    - talloc_strlen
    - fr_ldap_connection_timeout_reset
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void _ldap_bind_io_write(fr_event_list_t *el, int fd, UNUSED int flags,
      void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/bind.c:193,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/bind.c:195,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/bind.c:195,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/bind.c:212,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:215,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/bind.c:220,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/bind.c:221,1
    - Dst: _ldap_bind_io_write
      Src: /src/freeradius-server/src/lib/ldap/bind.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - c
    - bind_dn
    - password
    - serverctrls
    - clientctrls
    argTypes:
    - fr_ldap_connection_t*
    - char*
    - char*
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 185
    functionDepth: 7
    functionLinenumber: 185
    functionLinenumberEnd: 234
    functionName: fr_ldap_bind_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 1
    functionsReached:
    - ldap_get_option
    - talloc_free
    - fr_cond_assert
    - fr_event_fd_insert
    - talloc_zero
    - DEBUG2
    - _ldap_bind_io_write
    - MEM
    linkageType: ''
    returnType: int
    signature: "int fr_ldap_bind_async(fr_ldap_connection_t *c,\n\t\t       char const
      *bind_dn, char const *password,\n\t\t       LDAPControl **serverctrls, LDAPControl
      **clientctrls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: ldap_async_auth_bind_start
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_async_auth_bind_start(UNUSED unlang_result_t *p_result,
      UNUSED request_t *request, UNUSED void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/bind.c:249,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/bind.c:255,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/bind.c:259,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/bind.c:264,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/ldap/bind.c:285,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/bind.c:290,1
    - Dst: RETURN_UNLANG_RCODE
      Src: /src/freeradius-server/src/lib/ldap/bind.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 294
    functionName: ldap_async_auth_bind_results
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_complete
    - talloc_free
    - talloc_get_type_abort
    - RDEBUG2
    - RETURN_UNLANG_RCODE
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_async_auth_bind_results(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/bind.c:301,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/lib/ldap/bind.c:303,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/ldap/bind.c:304,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/ldap/bind.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: ldap_async_auth_bind_cancel
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 0
    functionsReached:
    - fr_rb_remove
    - trunk_request_signal_cancel
    - talloc_get_type_abort
    - RWARN
    linkageType: ''
    returnType: void
    signature: void ldap_async_auth_bind_cancel(request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_thread_ldap_bind_trunk_get
      Src: /src/freeradius-server/src/lib/ldap/bind.c:330,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/bind.c:334,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/ldap/bind.c:338,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/bind.c:340,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/bind.c:344,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/ldap/bind.c:344,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/bind.c:352,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/ldap/bind.c:352,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/bind.c:358,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/bind.c:366,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/ldap/bind.c:367,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/ldap/bind.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - p_result
    - request
    - thread
    - bind_dn
    - password
    argTypes:
    - unlang_result_t*
    - request_t*
    - fr_ldap_thread_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 378
    functionName: fr_ldap_bind_auth_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/bind.c
    functionUses: 2
    functionsReached:
    - ERROR
    - trunk_request_free
    - fr_thread_ldap_bind_trunk_get
    - trunk_request_alloc
    - trunk_request_enqueue
    - talloc
    - unlang_function_push_with_result
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t fr_ldap_bind_auth_async(unlang_result_t *p_result,
      request_t *request, fr_ldap_thread_t *thread, char const *bind_dn, char const
      *password)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_switch
      Src: /src/freeradius-server/src/lib/ldap/filter.c:63,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/filter.c:66,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/filter.c:71,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/filter.c:76,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/ldap/filter.c:79,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/filter.c:81,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/ldap/filter.c:83,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:84,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/filter.c:84,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/ldap/filter.c:85,1
    - Dst: ldap_filter_parse_node
      Src: /src/freeradius-server/src/lib/ldap/filter.c:88,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/ldap/filter.c:95,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:97,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:98,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:100,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/filter.c:100,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/ldap/filter.c:101,1
    - Dst: ldap_filter_parse_node
      Src: /src/freeradius-server/src/lib/ldap/filter.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 5
    argNames:
    - node
    - sbuff
    - depth
    - attr_check
    - uctx
    argTypes:
    - ldap_filter_t*
    - fr_sbuff_t*
    - int
    - filter_attr_check_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 108
    functionName: ldap_filter_parse_logic
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 0
    functionsReached:
    - ldap_filter_parse_node
    - fr_dlist_insert_tail
    - fr_sbuff_switch
    - fr_sbuff_is_char
    - talloc_strdup
    - fr_dlist_init
    - talloc_zero
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_advance
    - fr_strerror_const
    - MEM
    - DEBUG3
    - fr_dlist_insert_head
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t ldap_filter_parse_logic(ldap_filter_t *node, fr_sbuff_t
      *sbuff, int depth,\n\t\t\t\t\t filter_attr_check_t attr_check, void *uctx)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:125,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:126,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/ldap/filter.c:132,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/ldap/filter.c:137,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/ldap/filter.c:138,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:140,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:141,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:144,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/ldap/filter.c:144,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/filter.c:145,1
    - Dst: attr_check
      Src: /src/freeradius-server/src/lib/ldap/filter.c:151,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/filter.c:157,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/ldap/filter.c:158,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/ldap/filter.c:162,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:167,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:168,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/filter.c:171,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:172,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:173,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/ldap/filter.c:177,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:190,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:191,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:196,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:197,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/ldap/filter.c:203,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/ldap/filter.c:204,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:204,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:207,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:208,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/ldap/filter.c:219,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/ldap/filter.c:220,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:224,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/ldap/filter.c:224,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/ldap/filter.c:230,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:231,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:232,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/ldap/filter.c:244,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:246,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/filter.c:255,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:262,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/ldap/filter.c:262,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/ldap/filter.c:262,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/filter.c:263,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/ldap/filter.c:263,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/ldap/filter.c:263,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/filter.c:264,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/ldap/filter.c:266,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 89
    argCount: 5
    argNames:
    - node
    - sbuff
    - depth
    - attr_check
    - uctx
    argTypes:
    - ldap_filter_t*
    - fr_sbuff_t*
    - int
    - filter_attr_check_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 267
    functionName: ldap_filter_parse_filter
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 0
    functionsReached:
    - attr_check
    - memcpy
    - fr_sbuff_adv_to_chr
    - fr_value_box_bstrndup
    - fr_sbuff_current
    - MEM
    - fr_value_box_alloc_null
    - fr_sbuff_set_to_start
    - fr_sbuff_diff
    - talloc_zero_array
    - memset
    - fr_strerror_const
    - DEBUG3
    - fr_sbuff_out_by_longest_prefix
    - FR_SBUFF_TERM
    - FR_SBUFF_IN
    - fr_sbuff_marker
    - fr_assert
    - fr_sbuff_out_bstrncpy_until
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_next_if_char
    - fr_sbuff_adv_past_str_literal
    - fr_sbuff_out_bstrncpy_allowed
    - fr_value_box_from_str
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t ldap_filter_parse_filter(ldap_filter_t *node, fr_sbuff_t
      *sbuff, int depth,\n\t\t\t\t\t  filter_attr_check_t attr_check, void *uctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/filter.c:294,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:295,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:296,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/ldap/filter.c:303,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/ldap/filter.c:304,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/ldap/filter.c:305,1
    - Dst: ldap_filter_parse_logic
      Src: /src/freeradius-server/src/lib/ldap/filter.c:306,1
    - Dst: ldap_filter_parse_filter
      Src: /src/freeradius-server/src/lib/ldap/filter.c:308,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/ldap/filter.c:314,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:315,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:316,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/ldap/filter.c:324,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/filter.c:325,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/ldap/filter.c:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - node
    - sbuff
    - depth
    - attr_check
    - uctx
    argTypes:
    - ldap_filter_t*
    - fr_sbuff_t*
    - int
    - filter_attr_check_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 330
    functionName: ldap_filter_parse_node
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_extend
    - ldap_filter_parse_logic
    - fr_sbuff_marker
    - FR_SBUFF_ERROR_RETURN
    - ldap_filter_parse_filter
    - fr_strerror_const
    - fr_sbuff_set
    - fr_sbuff_next_if_char
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t ldap_filter_parse_node(ldap_filter_t *node, fr_sbuff_t *sbuff,
      int depth,\n\t\t\t\t\tfilter_attr_check_t attr_check, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:349,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/filter.c:349,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/ldap/filter.c:350,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/filter.c:352,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/filter.c:352,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/ldap/filter.c:353,1
    - Dst: ldap_filter_parse_node
      Src: /src/freeradius-server/src/lib/ldap/filter.c:355,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/filter.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - root
    - filter
    - attr_check
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_dlist_head_t**
    - fr_sbuff_t*
    - filter_attr_check_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 363
    functionName: fr_ldap_filter_parse
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 0
    functionsReached:
    - ldap_filter_parse_node
    - talloc_free
    - fr_dlist_init
    - talloc_zero
    - MEM
    - fr_dlist_insert_head
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_ldap_filter_parse(TALLOC_CTX *ctx, fr_dlist_head_t **root,
      fr_sbuff_t *filter,\n\t\t\t       filter_attr_check_t attr_check, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/filter.c:382,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/ldap/filter.c:384,1
    - Dst: ldap_filter_group_eval
      Src: /src/freeradius-server/src/lib/ldap/filter.c:387,1
    - Dst: ldap_filter_node_eval
      Src: /src/freeradius-server/src/lib/ldap/filter.c:390,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/filter.c:407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - group
    - conn
    - msg
    - depth
    argTypes:
    - ldap_filter_t*
    - fr_ldap_connection_t*
    - LDAPMessage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: ldap_filter_group_eval
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 1
    functionsReached:
    - fr_dlist_next
    - ldap_filter_node_eval
    - DEBUG3
    - ldap_filter_group_eval
    linkageType: ''
    returnType: bool
    signature: bool ldap_filter_group_eval(ldap_filter_t *group, fr_ldap_connection_t
      *conn, LDAPMessage *msg, int depth)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ldap_filter_group_eval
      Src: /src/freeradius-server/src/lib/ldap/filter.c:433,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/filter.c:436,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/filter.c:437,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/filter.c:438,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/ldap/filter.c:449,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/filter.c:494,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/filter.c:494,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/filter.c:496,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/ldap/filter.c:496,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/filter.c:536,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/ldap/filter.c:539,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/filter.c:554,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/filter.c:563,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/filter.c:568,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/filter.c:571,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 90
    argCount: 4
    argNames:
    - node
    - conn
    - msg
    - depth
    argTypes:
    - ldap_filter_t*
    - fr_ldap_connection_t*
    - LDAPMessage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 574
    functionName: ldap_filter_node_eval
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 1
    functionsReached:
    - ldap_get_values_len
    - tolower
    - ldap_count_values_len
    - memcpy
    - strtol
    - fr_assert
    - ldap_value_free_len
    - ldap_filter_group_eval
    - DEBUG3
    - strncasecmp
    linkageType: ''
    returnType: bool
    signature: bool ldap_filter_node_eval(ldap_filter_t *node, fr_ldap_connection_t
      *conn, LDAPMessage *msg, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_filter_node_eval
      Src: /src/freeradius-server/src/lib/ldap/filter.c:584,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/ldap/filter.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - conn
    - msg
    argTypes:
    - fr_dlist_head_t*
    - fr_ldap_connection_t*
    - LDAPMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 585
    functionName: fr_ldap_filter_eval
    functionSourceFile: /src/freeradius-server/src/lib/ldap/filter.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - ldap_filter_node_eval
    linkageType: ''
    returnType: bool
    signature: bool fr_ldap_filter_eval(fr_dlist_head_t *root, fr_ldap_connection_t
      *conn, LDAPMessage *msg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/ldap/map.c:46,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/map.c:48,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:61,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:69,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:70,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:73,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/map.c:88,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:89,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/ldap/map.c:96,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:98,1
    - Dst: map_afrom_attr_str
      Src: /src/freeradius-server/src/lib/ldap/map.c:102,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:105,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:106,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:107,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:111,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/ldap/map.c:113,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:114,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:115,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:116,1
    - Dst: tmpl_request_ref_list_cmp
      Src: /src/freeradius-server/src/lib/ldap/map.c:120,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:120,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:120,1
    - Dst: tmpl_request_ref_list_aprint
      Src: /src/freeradius-server/src/lib/ldap/map.c:124,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:124,1
    - Dst: tmpl_request_ref_list_aprint
      Src: /src/freeradius-server/src/lib/ldap/map.c:125,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:125,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:127,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:128,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:132,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:135,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:139,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:139,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:140,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:141,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/lib/ldap/map.c:142,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:142,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/lib/ldap/map.c:143,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:143,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:147,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:148,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:153,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/map.c:171,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:171,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:171,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/ldap/map.c:173,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:175,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:176,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:177,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:179,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/ldap/map.c:183,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/ldap/map.c:192,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 195
    functionName: fr_ldap_map_getvalue
    functionSourceFile: /src/freeradius-server/src/lib/ldap/map.c
    functionUses: 0
    functionsReached:
    - tmpl_is_list
    - talloc_bstrndup
    - tmpl_attr_tail_da
    - tmpl_is_data_unresolved
    - RWDEBUG
    - MEM
    - fr_pair_append
    - fr_pair_list_init
    - fr_pair_value_from_str
    - fr_pair_afrom_da
    - unlang_interpret_event_list
    - map_to_request
    - tmpl_request_ref_list_aprint
    - tmpl_request
    - tmpl_list_name
    - fr_assert
    - RDEBUG3
    - fr_box_strvalue_len
    - fr_pair_list_append
    - map_afrom_attr_str
    - RPWDEBUG
    - talloc_free
    - tmpl_request_ref_list_cmp
    - tmpl_list
    linkageType: ''
    returnType: int
    signature: int fr_ldap_map_getvalue(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t
      *request, map_t const *map, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/map.c:208,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:209,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/ldap/map.c:215,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/ldap/map.c:216,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:216,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/map.c:220,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:220,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:220,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/ldap/map.c:222,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/map.c:222,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:223,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/ldap/map.c:224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:225,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/ldap/map.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 231
    functionName: fr_ldap_map_getdn
    functionSourceFile: /src/freeradius-server/src/lib/ldap/map.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - RERROR
    - RPWDEBUG
    - talloc_free
    - tmpl_attr_tail_da
    - fr_pair_append
    - fr_table_str_by_value
    - fr_assert
    - strlen
    - MEM
    - fr_pair_value_from_str
    linkageType: ''
    returnType: int
    signature: int fr_ldap_map_getdn(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t
      *request, map_t const *map, void *uctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/map.c:244,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/lib/ldap/map.c:244,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/map.c:248,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/ldap/map.c:249,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/map.c:265,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/lib/ldap/map.c:265,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/ldap/map.c:269,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/map.c:270,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/map.c:276,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/ldap/map.c:277,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/ldap/map.c:292,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/ldap/map.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - map
    - instance
    argTypes:
    - map_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 298
    functionName: fr_ldap_map_verify
    functionSourceFile: /src/freeradius-server/src/lib/ldap/map.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_tail_unresolved
    - cf_log_err
    - fr_table_str_by_value
    - tmpl_type_to_str
    - tmpl_resolve
    linkageType: ''
    returnType: int
    signature: int fr_ldap_map_verify(map_t *map, UNUSED void *instance)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/ldap/map.c:323,1
    - Dst: tmpl_expand
      Src: /src/freeradius-server/src/lib/ldap/map.c:324,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:325,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/ldap/map.c:326,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/ldap/map.c:334,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/ldap/map.c:335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 7
    argNames:
    - ctx
    - expanded
    - request
    - maps
    - generic_attr
    - check_attr
    - fallthrough_attr
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_map_exp_t*
    - request_t*
    - map_list_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 350
    functionName: fr_ldap_map_expand
    functionSourceFile: /src/freeradius-server/src/lib/ldap/map.c
    functionUses: 3
    functionsReached:
    - map_list_next
    - TALLOC_FREE
    - REDEBUG
    - talloc_strdup
    - tmpl_expand
    - talloc_new
    linkageType: ''
    returnType: int
    signature: "int fr_ldap_map_expand(TALLOC_CTX *ctx, fr_ldap_map_exp_t *expanded,
      request_t *request, map_list_t const *maps,\n\t\t       char const *generic_attr,
      char const *check_attr, char const *fallthrough_attr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/lib/ldap/map.c:378,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:389,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:394,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:395,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/lib/ldap/map.c:398,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/map.c:402,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/lib/ldap/map.c:404,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/ldap/map.c:405,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/ldap/map.c:405,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:407,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:411,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:412,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:413,1
    - Dst: xlat_impure_func
      Src: /src/freeradius-server/src/lib/ldap/map.c:417,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/map.c:418,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/map.c:422,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/ldap/map.c:423,1
    - Dst: unlang_xlat_eval
      Src: /src/freeradius-server/src/lib/ldap/map.c:424,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:425,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/ldap/map.c:428,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/ldap/map.c:428,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/ldap/map.c:428,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/map.c:429,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:430,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:433,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:434,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:435,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:437,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/ldap/map.c:440,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:448,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/ldap/map.c:454,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/lib/ldap/map.c:455,1
    - Dst: fr_ldap_util_normalise_dn
      Src: /src/freeradius-server/src/lib/ldap/map.c:456,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:457,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/map.c:458,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/map.c:464,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:473,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:480,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:489,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:501,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:502,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/ldap/map.c:514,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/lib/ldap/map.c:519,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/map.c:520,1
    - Dst: map_afrom_attr_str
      Src: /src/freeradius-server/src/lib/ldap/map.c:521,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:523,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:525,1
    - Dst: map_to_request
      Src: /src/freeradius-server/src/lib/ldap/map.c:528,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/ldap/map.c:529,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:533,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/map.c:534,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/map.c:536,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 90
    argCount: 5
    argNames:
    - request
    - check_attr
    - valuepair_attr
    - expanded
    - entry
    argTypes:
    - request_t*
    - char*
    - char*
    - fr_ldap_map_exp_t*
    - LDAPMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 369
    functionDepth: 6
    functionLinenumber: 369
    functionLinenumberEnd: 540
    functionName: fr_ldap_map_do
    functionSourceFile: /src/freeradius-server/src/lib/ldap/map.c
    functionUses: 2
    functionsReached:
    - fr_value_box_list_head
    - ldap_count_values_len
    - xlat_impure_func
    - fr_value_box_is_truthy
    - fr_ldap_berval_to_string
    - RWDEBUG
    - ldap_get_values_len
    - fr_ldap_handle_thread_local
    - RPEDEBUG
    - fr_ldap_util_normalise_dn
    - fr_strerror_const
    - map_list_next
    - unlang_interpret_event_list
    - fr_value_box_list_init
    - map_to_request
    - FR_SBUFF_IN
    - ldap_memfree
    - RDEBUG3
    - RDEBUG2
    - ldap_value_free_len
    - strcmp
    - talloc_strlen
    - xlat_tokenize_expression
    - map_afrom_attr_str
    - RPWDEBUG
    - talloc_free
    - fr_value_box_list_talloc_free
    - ldap_get_dn
    - unlang_xlat_eval
    linkageType: ''
    returnType: int
    signature: "int fr_ldap_map_do(request_t *request, char const *check_attr,\n\t\t
      \  char const *valuepair_attr, fr_ldap_map_exp_t const *expanded, LDAPMessage
      *entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 7
    argNames:
    - serverctrls_out
    - clientctrls_out
    - serverctrls_len
    - clientctrls_len
    - conn
    - serverctrls_in
    - clientctrls_in
    argTypes:
    - LDAPControl*[]
    - LDAPControl*[]
    - size_t
    - size_t
    - fr_ldap_connection_t*
    - LDAPControl*[]
    - LDAPControl*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: fr_ldap_control_merge
    functionSourceFile: /src/freeradius-server/src/lib/ldap/control.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fr_ldap_control_merge(LDAPControl *serverctrls_out[],\n\t\t\t
      \   LDAPControl *clientctrls_out[],\n \t\t\t    size_t serverctrls_len,\n\t\t\t
      \   size_t clientctrls_len,\n\t\t\t    fr_ldap_connection_t *conn,\n\t\t\t    LDAPControl
      *serverctrls_in[],\n\t\t\t    LDAPControl *clientctrls_in[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/control.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - ctrl
    - freeit
    argTypes:
    - fr_ldap_connection_t*
    - LDAPControl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: fr_ldap_control_add_server
    functionSourceFile: /src/freeradius-server/src/lib/ldap/control.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int fr_ldap_control_add_server(fr_ldap_connection_t *conn, LDAPControl
      *ctrl, bool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/control.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - conn
    - ctrl
    - freeit
    argTypes:
    - fr_ldap_connection_t*
    - LDAPControl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: fr_ldap_control_add_client
    functionSourceFile: /src/freeradius-server/src/lib/ldap/control.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int fr_ldap_control_add_client(fr_ldap_connection_t *conn, LDAPControl
      *ctrl, bool freeit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/control.c:139,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/control.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 151
    functionName: fr_ldap_control_clear
    functionSourceFile: /src/freeradius-server/src/lib/ldap/control.c
    functionUses: 1
    functionsReached:
    - ldap_control_free
    linkageType: ''
    returnType: void
    signature: void fr_ldap_control_clear(fr_ldap_connection_t *conn)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/control.c:193,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/ldap/control.c:198,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/ldap/control.c:200,1
    - Dst: fr_dict_attr_is_top_level
      Src: /src/freeradius-server/src/lib/ldap/control.c:201,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/lib/ldap/control.c:204,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/ldap/control.c:204,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/control.c:208,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/control.c:212,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/control.c:216,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/ldap/control.c:223,1
    - Dst: ldap_create_session_tracking_control
      Src: /src/freeradius-server/src/lib/ldap/control.c:225,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/control.c:231,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/control.c:231,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/control.c:233,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/control.c:234,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/control.c:235,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/ldap/control.c:242,1
    - Dst: ldap_create_session_tracking_control
      Src: /src/freeradius-server/src/lib/ldap/control.c:244,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/control.c:250,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/control.c:250,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/ldap/control.c:257,1
    - Dst: ldap_create_session_tracking_control
      Src: /src/freeradius-server/src/lib/ldap/control.c:259,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/control.c:265,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/control.c:266,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/ldap/control.c:272,1
    - Dst: fr_ldap_control_add_server
      Src: /src/freeradius-server/src/lib/ldap/control.c:276,1
    - Dst: fr_ldap_control_add_server
      Src: /src/freeradius-server/src/lib/ldap/control.c:278,1
    - Dst: fr_ldap_control_add_server
      Src: /src/freeradius-server/src/lib/ldap/control.c:284,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 2
    argNames:
    - conn
    - request
    argTypes:
    - fr_ldap_connection_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 293
    functionName: fr_ldap_control_add_session_tracking
    functionSourceFile: /src/freeradius-server/src/lib/ldap/control.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_is_top_level
    - fr_pair_list_next
    - memcpy
    - FR_SBUFF_OUT
    - REDEBUG
    - ldap_control_free
    - ldap_err2string
    - fr_pair_list_head
    - ldap_create_session_tracking_control
    - talloc_strlen
    - fr_ldap_control_add_server
    - fr_pair_print_value_quoted
    linkageType: ''
    returnType: int
    signature: int fr_ldap_control_add_session_tracking(fr_ldap_connection_t *conn,
      request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:45,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:48,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: _ldap_sasl_bind_io_error
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - fr_ldap_state_error
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void _ldap_sasl_bind_io_error(UNUSED fr_event_list_t *el, UNUSED int
      fd,\n\t\t\t\t     UNUSED int flags, UNUSED int fd_errno, void *uctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:62,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:67,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:68,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:83,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:90,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:97,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:97,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:104,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:110,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - handle
    - flags
    - uctx
    - sasl_callbacks
    argTypes:
    - UNUSED*
    - UNUSED unsigned
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 113
    functionName: _sasl_interact
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - strlen
    - talloc_get_type_abort
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int _sasl_interact(UNUSED LDAP *handle, UNUSED unsigned flags, void
      *uctx, void *sasl_callbacks)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:124,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:132,1
    - Dst: fr_ldap_result
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:140,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:141,1
    - Dst: ldap_parse_sasl_bind_result
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:149,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:151,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:151,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:153,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:154,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:163,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:164,1
    - Dst: ber_bvfree
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:165,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:176,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:178,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:183,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 191
    functionName: _ldap_sasl_bind_io_read
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_time_delta_wrap
    - ERROR
    - ber_bvfree
    - talloc_free
    - DEBUG3
    - fr_ldap_state_error
    - fr_event_fd_insert
    - fr_cond_assert
    - fr_ldap_result
    - talloc_get_type_abort
    - ldap_err2string
    - fr_box_strvalue_len
    - ldap_parse_sasl_bind_result
    - ldap_msgfree
    linkageType: ''
    returnType: void
    signature: void _ldap_sasl_bind_io_read(fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:202,1
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:210,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:211,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:212,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:215,1
    - Dst: ldap_sasl_interactive_bind
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:217,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:222,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:232,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:233,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:235,1
    - Dst: fr_ldap_connection_timeout_reset
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:236,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:237,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:241,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:246,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:254,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:258,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:263,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:270,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:272,1
    - Dst: fr_ldap_state_next
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:273,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:277,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:277,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 280
    functionName: _ldap_sasl_bind_io_write
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - fr_ldap_control_merge
    - ERROR
    - ldap_get_option
    - talloc_free
    - fr_ldap_state_next
    - fr_cond_assert
    - fr_ldap_state_error
    - fr_event_fd_insert
    - talloc_get_type_abort
    - ldap_err2string
    - DEBUG2
    - fr_ldap_connection_timeout_reset
    - NUM_ELEMENTS
    - ldap_sasl_interactive_bind
    linkageType: ''
    returnType: void
    signature: void _ldap_sasl_bind_io_write(fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sasl_ctx
    argTypes:
    - fr_ldap_sasl_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: _sasl_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - ldap_msgfree
    linkageType: ''
    returnType: int
    signature: int _sasl_ctx_free(fr_ldap_sasl_ctx_t *sasl_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:320,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:322,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:322,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:323,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:340,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:343,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:348,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:349,1
    - Dst: _ldap_sasl_bind_io_write
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 8
    argNames:
    - c
    - mechs
    - identity
    - password
    - proxy
    - realm
    - serverctrls
    - clientctrls
    argTypes:
    - fr_ldap_connection_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 357
    functionName: fr_ldap_sasl_bind_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 1
    functionsReached:
    - ldap_get_option
    - talloc_set_destructor
    - talloc_free
    - fr_cond_assert
    - fr_event_fd_insert
    - _ldap_sasl_bind_io_write
    - talloc_zero
    - DEBUG2
    - MEM
    linkageType: ''
    returnType: int
    signature: "int fr_ldap_sasl_bind_async(fr_ldap_connection_t *c,\n\t\t\t    char
      const *mechs,\n\t\t\t    char const *identity,\n\t\t\t    char const *password,\n\t\t\t
      \   char const *proxy,\n\t\t\t    char const *realm,\n\t\t\t    LDAPControl
      **serverctrls, LDAPControl **clientctrls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_sasl_interactive_bind
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sasl_ctx
    - msgid
    - ldap_conn
    argTypes:
    - fr_ldap_sasl_ctx_t*
    - int*
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: fr_ldap_sasl_bind_auth_send
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 1
    functionsReached:
    - ldap_sasl_interactive_bind
    linkageType: ''
    returnType: int
    signature: "int fr_ldap_sasl_bind_auth_send(fr_ldap_sasl_ctx_t *sasl_ctx, int
      *msgid,\n\t\t\t\t fr_ldap_connection_t *ldap_conn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: ldap_async_sasl_bind_auth_start
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t ldap_async_sasl_bind_auth_start(UNUSED unlang_result_t
      *p_result,\n\t\t\t\t\t\t       UNUSED request_t *request, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:393,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:395,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:396,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: ldap_async_sasl_bind_auth_cancel
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - fr_rb_remove
    - trunk_request_signal_cancel
    - talloc_get_type_abort
    - RWARN
    linkageType: ''
    returnType: void
    signature: void ldap_async_sasl_bind_auth_cancel(request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:409,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:416,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:420,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:424,1
    - Dst: trunk_request_requeue
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:428,1
    - Dst: unlang_function_repeat_set
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:437,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:452,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:457,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:462,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:483,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:484,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - p_result
    - request
    - uctx
    argTypes:
    - unlang_result_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 488
    functionName: ldap_async_sasl_bind_auth_results
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_complete
    - talloc_free
    - fr_ldap_state_error
    - unlang_function_repeat_set
    - talloc_get_type_abort
    - trunk_request_requeue
    - RPERROR
    - RDEBUG2
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_async_sasl_bind_auth_results(unlang_result_t *p_result,
      request_t *request, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_thread_ldap_bind_trunk_get
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:510,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:514,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:518,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:520,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:524,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:524,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:533,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:533,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:534,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:543,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:551,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:552,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/ldap/sasl.c:556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 8
    argNames:
    - p_result
    - request
    - thread
    - mechs
    - identity
    - password
    - proxy
    - realm
    argTypes:
    - unlang_result_t*
    - request_t*
    - fr_ldap_thread_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 563
    functionName: fr_ldap_sasl_bind_auth_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/sasl.c
    functionUses: 1
    functionsReached:
    - ERROR
    - trunk_request_free
    - talloc_set_destructor
    - fr_thread_ldap_bind_trunk_get
    - trunk_request_alloc
    - trunk_request_enqueue
    - talloc
    - talloc_zero
    - unlang_function_push_with_result
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fr_ldap_sasl_bind_auth_async(unlang_result_t *p_result,\n\t\t\t\t\t
      \    request_t *request, fr_ldap_thread_t *thread, char const *mechs,\n\t\t\t\t\t
      \    char const *identity, char const *password, char const *proxy, char const
      *realm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_init
      Src: /src/freeradius-server/src/lib/ldap/base.c:110,1
    - Dst: fr_ldap_global_config
      Src: /src/freeradius-server/src/lib/ldap/base.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: libldap_init
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - fr_ldap_init
    - fr_ldap_global_config
    linkageType: ''
    returnType: int
    signature: int libldap_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_unbind_ext_s
      Src: /src/freeradius-server/src/lib/ldap/base.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: libldap_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - ldap_unbind_ext_s
    linkageType: ''
    returnType: void
    signature: void libldap_free(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/ldap/base.c:158,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:160,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:161,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:164,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:165,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:168,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:169,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:172,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/ldap/base.c:174,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:175,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/ldap/base.c:176,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:178,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:182,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/ldap/base.c:183,1
    - Dst: fr_time_delta_from_timeval
      Src: /src/freeradius-server/src/lib/ldap/base.c:183,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:186,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:190,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/ldap/base.c:191,1
    - Dst: fr_time_delta_from_timeval
      Src: /src/freeradius-server/src/lib/ldap/base.c:191,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:193,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:197,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/ldap/base.c:198,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/ldap/base.c:200,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/ldap/base.c:201,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - request
    - conn
    - timeout
    - prefix
    argTypes:
    - request_t*
    - fr_ldap_connection_t*
    - fr_time_delta_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 202
    functionName: fr_ldap_timeout_debug
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - ldap_get_option
    - fr_time_delta_from_timeval
    - free
    - fr_box_time_delta
    - RINDENT
    - ROPTIONAL
    - fr_time_delta_ispos
    - REXDENT
    linkageType: ''
    returnType: void
    signature: "void fr_ldap_timeout_debug(request_t *request, fr_ldap_connection_t
      const *conn,\n\t\t\t   fr_time_delta_t timeout, char const *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:212,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/base.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: fr_ldap_error_str
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - ldap_get_option
    - ldap_err2string
    linkageType: ''
    returnType: char
    signature: char *fr_ldap_error_str(fr_ldap_connection_t const *conn)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:247,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:250,1
    - Dst: ldap_msgtype
      Src: /src/freeradius-server/src/lib/ldap/base.c:254,1
    - Dst: ldap_parse_result
      Src: /src/freeradius-server/src/lib/ldap/base.c:263,1
    - Dst: ldap_get_entry_controls
      Src: /src/freeradius-server/src/lib/ldap/base.c:273,1
    - Dst: ldap_parse_reference
      Src: /src/freeradius-server/src/lib/ldap/base.c:280,1
    - Dst: ldap_parse_intermediate
      Src: /src/freeradius-server/src/lib/ldap/base.c:287,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/base.c:301,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:302,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:314,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:318,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:323,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:328,1
    - Dst: fr_ldap_common_dn
      Src: /src/freeradius-server/src/lib/ldap/base.c:338,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/ldap/base.c:341,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/ldap/base.c:342,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/ldap/base.c:343,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:345,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:346,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:351,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:356,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:361,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:366,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:371,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:376,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/base.c:392,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/base.c:401,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/base.c:401,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/ldap/base.c:403,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/base.c:404,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/base.c:405,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/ldap/base.c:408,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:416,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:417,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 128
    argCount: 4
    argNames:
    - ctrls
    - conn
    - msg
    - dn
    argTypes:
    - LDAPControl***
    - fr_ldap_connection_t*
    - LDAPMessage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 420
    functionName: fr_ldap_error_check
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - ldap_parse_intermediate
    - ldap_get_option
    - talloc_free
    - ldap_msgtype
    - fr_strerror_printf_push
    - fr_strerror_printf
    - ldap_parse_reference
    - fr_ldap_common_dn
    - ldap_err2string
    - ldap_memfree
    - fr_assert
    - ldap_get_entry_controls
    - fr_strerror_const
    - ldap_parse_result
    - fr_canonicalize_error
    linkageType: ''
    returnType: fr_ldap_rcode_t
    signature: fr_ldap_rcode_t fr_ldap_error_check(LDAPControl ***ctrls, fr_ldap_connection_t
      const *conn, LDAPMessage *msg, char const *dn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:472,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:473,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/ldap/base.c:475,1
    - Dst: ldap_result
      Src: /src/freeradius-server/src/lib/ldap/base.c:481,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/ldap/base.c:481,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/ldap/base.c:485,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:489,1
    - Dst: ldap_first_message
      Src: /src/freeradius-server/src/lib/ldap/base.c:495,1
    - Dst: ldap_next_message
      Src: /src/freeradius-server/src/lib/ldap/base.c:497,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:498,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:503,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 7
    argNames:
    - result
    - ctrls
    - conn
    - msgid
    - all
    - dn
    - timeout
    argTypes:
    - LDAPMessage**
    - LDAPControl***
    - fr_ldap_connection_t*
    - int
    - int
    - char*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 508
    functionName: fr_ldap_result
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 4
    functionsReached:
    - ldap_next_message
    - fr_ldap_error_check
    - ldap_get_option
    - ldap_first_message
    - fr_time_delta_ispos
    - ldap_result
    - fr_strerror_const
    - ldap_msgfree
    - fr_time_delta_to_timeval
    linkageType: ''
    returnType: fr_ldap_rcode_t
    signature: "fr_ldap_rcode_t fr_ldap_result(LDAPMessage **result, LDAPControl ***ctrls,\n\t\t\t
      \      fr_ldap_connection_t const *conn, int msgid, int all,\n\t\t\t       char
      const *dn,\n\t\t\t       fr_time_delta_t timeout)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/base.c:540,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/base.c:541,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/base.c:542,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/base.c:545,1
    - Dst: fr_ldap_timeout_debug
      Src: /src/freeradius-server/src/lib/ldap/base.c:548,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/base.c:548,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/ldap/base.c:555,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:560,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/ldap/base.c:562,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/ldap/base.c:564,1
    - Dst: fr_sbuff_in_strcpy_literal
      Src: /src/freeradius-server/src/lib/ldap/base.c:566,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/ldap/base.c:568,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/ldap/base.c:569,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/ldap/base.c:571,1
    - Dst: fr_sbuff_in_array
      Src: /src/freeradius-server/src/lib/ldap/base.c:572,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:574,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/ldap/base.c:574,1
    - Dst: ldap_search_ext
      Src: /src/freeradius-server/src/lib/ldap/base.c:577,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:579,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:580,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 9
    argNames:
    - msgid
    - request
    - pconn
    - dn
    - scope
    - filter
    - attrs
    - serverctrls
    - clientctrls
    argTypes:
    - int*
    - request_t*
    - fr_ldap_connection_t*
    - char*
    - int
    - char*
    - char**
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 585
    functionName: fr_ldap_search_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_ldap_control_merge
    - fr_time_delta_wrap
    - fr_sbuff_start
    - fr_ldap_error_check
    - memcpy
    - fr_sbuff_in_array
    - fr_table_str_by_value
    - ROPTIONAL
    - fr_assert
    - ldap_search_ext
    - fr_sbuff_in_strcpy
    - fr_sbuff_in_strcpy_literal
    - NUM_ELEMENTS
    - fr_ldap_timeout_debug
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: fr_ldap_rcode_t
    signature: "fr_ldap_rcode_t fr_ldap_search_async(int *msgid, request_t *request,\n\t\t\t\t
      \    fr_ldap_connection_t *pconn,\n\t\t\t\t     char const *dn, int scope, char
      const *filter, char const * const *attrs,\n\t\t\t\t     LDAPControl **serverctrls,
      LDAPControl **clientctrls)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ldap_count_entries
      Src: /src/freeradius-server/src/lib/ldap/base.c:596,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/base.c:597,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/lib/ldap/base.c:598,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/ldap/base.c:599,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/lib/ldap/base.c:601,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/base.c:602,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:603,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/ldap/base.c:606,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/base.c:608,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/base.c:610,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/base.c:612,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/ldap/base.c:613,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/base.c:615,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/ldap/base.c:618,1
    - Dst: ldap_next_entry
      Src: /src/freeradius-server/src/lib/ldap/base.c:620,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/ldap/base.c:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - request
    - query
    argTypes:
    - request_t*
    - fr_ldap_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 623
    functionName: ldap_trunk_search_results_debug
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - ldap_count_values_len
    - ldap_next_entry
    - RINDENT
    - ldap_get_dn
    - ldap_memfree
    - RDEBUG3
    - ldap_value_free_len
    - ldap_count_entries
    - ldap_first_entry
    - REXDENT
    linkageType: ''
    returnType: void
    signature: void ldap_trunk_search_results_debug(request_t *request, fr_ldap_query_t
      *query)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/base.c:631,1
    - Dst: ldap_trunk_search_results_debug
      Src: /src/freeradius-server/src/lib/ldap/base.c:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - request
    - uctx
    argTypes:
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 645
    functionName: ldap_trunk_query_results
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - ldap_trunk_search_results_debug
    - talloc_get_type_abort
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t ldap_trunk_query_results(request_t *request, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/base.c:652,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/ldap/base.c:674,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/ldap/base.c:680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 688
    functionName: ldap_trunk_query_cancel
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - talloc_steal
    - talloc_get_type_abort
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void ldap_trunk_query_cancel(UNUSED request_t *request, UNUSED fr_signal_t
      action, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dest
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: SET_LDAP_CTRLS
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_LDAP_CTRLS(_dest, _src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_search_alloc
      Src: /src/freeradius-server/src/lib/ldap/base.c:726,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/base.c:728,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:736,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/ldap/base.c:740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 10
    argNames:
    - ctx
    - out
    - request
    - ttrunk
    - base_dn
    - scope
    - filter
    - attrs
    - serverctrls
    - clientctrls
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_query_t**
    - request_t*
    - fr_ldap_thread_trunk_t*
    - char*
    - int
    - char*
    - char**
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 752
    functionName: fr_ldap_trunk_search
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 8
    functionsReached:
    - unlang_function_push
    - fr_ldap_search_alloc
    - trunk_request_enqueue
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fr_ldap_trunk_search(TALLOC_CTX *ctx,\n\t\t\t\t     fr_ldap_query_t
      **out,\n\t\t\t\t     request_t *request, fr_ldap_thread_trunk_t *ttrunk,\n\t\t\t\t
      \    char const *base_dn, int scope, char const *filter, char const * const
      *attrs,\n\t\t\t\t     LDAPControl **serverctrls, LDAPControl **clientctrls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_modify_alloc
      Src: /src/freeradius-server/src/lib/ldap/base.c:777,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/base.c:779,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:787,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/ldap/base.c:791,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 8
    argNames:
    - ctx
    - out
    - request
    - ttrunk
    - dn
    - mods
    - serverctrls
    - clientctrls
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_query_t**
    - request_t*
    - fr_ldap_thread_trunk_t*
    - char*
    - LDAPMod*[]
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 803
    functionName: fr_ldap_trunk_modify
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - unlang_function_push
    - fr_ldap_modify_alloc
    - trunk_request_enqueue
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fr_ldap_trunk_modify(TALLOC_CTX *ctx,\n\t\t\t\t     fr_ldap_query_t
      **out, request_t *request, fr_ldap_thread_trunk_t *ttrunk,\n\t\t\t\t     char
      const *dn, LDAPMod *mods[],\n\t\t\t\t     LDAPControl **serverctrls, LDAPControl
      **clientctrls)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/base.c:826,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/base.c:827,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/base.c:828,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/base.c:831,1
    - Dst: fr_ldap_timeout_debug
      Src: /src/freeradius-server/src/lib/ldap/base.c:833,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/base.c:833,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/base.c:835,1
    - Dst: ldap_modify_ext
      Src: /src/freeradius-server/src/lib/ldap/base.c:836,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:837,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - msgid
    - request
    - pconn
    - dn
    - mods
    - serverctrls
    - clientctrls
    argTypes:
    - int*
    - request_t*
    - fr_ldap_connection_t*
    - char*
    - LDAPMod*[]
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 844
    functionName: fr_ldap_modify_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - fr_ldap_control_merge
    - fr_time_delta_wrap
    - fr_ldap_error_check
    - ROPTIONAL
    - fr_assert
    - RDEBUG2
    - ldap_modify_ext
    - NUM_ELEMENTS
    - fr_ldap_timeout_debug
    linkageType: ''
    returnType: fr_ldap_rcode_t
    signature: "fr_ldap_rcode_t fr_ldap_modify_async(int *msgid, request_t *request,
      fr_ldap_connection_t *pconn,\n\t\t\t\t     char const *dn, LDAPMod *mods[],\n\t\t\t\t
      \    LDAPControl **serverctrls, LDAPControl **clientctrls)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_control_merge
      Src: /src/freeradius-server/src/lib/ldap/base.c:866,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/base.c:867,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/ldap/base.c:868,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/base.c:871,1
    - Dst: fr_ldap_timeout_debug
      Src: /src/freeradius-server/src/lib/ldap/base.c:873,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/ldap/base.c:873,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/base.c:875,1
    - Dst: ldap_delete_ext
      Src: /src/freeradius-server/src/lib/ldap/base.c:876,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:877,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/ldap/base.c:878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - msgid
    - request
    - pconn
    - dn
    - serverctrls
    - clientctrls
    argTypes:
    - int*
    - request_t*
    - fr_ldap_connection_t*
    - char*
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 884
    functionName: fr_ldap_delete_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - fr_ldap_control_merge
    - fr_time_delta_wrap
    - fr_ldap_error_check
    - ldap_delete_ext
    - ROPTIONAL
    - fr_assert
    - RDEBUG2
    - NUM_ELEMENTS
    - fr_ldap_timeout_debug
    linkageType: ''
    returnType: fr_ldap_rcode_t
    signature: "fr_ldap_rcode_t fr_ldap_delete_async(int *msgid, request_t *request,
      fr_ldap_connection_t *pconn,\n\t\t\t\t     char const *dn,\n\t\t\t\t     LDAPControl
      **serverctrls, LDAPControl **clientctrls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_extended_alloc
      Src: /src/freeradius-server/src/lib/ldap/base.c:909,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/base.c:911,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:919,1
    - Dst: unlang_function_push
      Src: /src/freeradius-server/src/lib/ldap/base.c:923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 8
    argNames:
    - ctx
    - out
    - request
    - ttrunk
    - reqoid
    - reqdata
    - serverctrls
    - clientctrls
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_query_t**
    - request_t*
    - fr_ldap_thread_trunk_t*
    - char*
    - struct berval*
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 935
    functionName: fr_ldap_trunk_extended
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - unlang_function_push
    - fr_ldap_extended_alloc
    - trunk_request_enqueue
    - talloc_free
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fr_ldap_trunk_extended(TALLOC_CTX *ctx,\n\t\t\t\t
      \      fr_ldap_query_t **out, request_t *request, fr_ldap_thread_trunk_t *ttrunk,\n\t\t\t\t
      \      char const *reqoid, struct berval *reqdata,\n\t\t\t\t       LDAPControl
      **serverctrls, LDAPControl **clientctrls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/ldap/base.c:951,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/ldap/base.c:953,1
    - Dst: ldap_extended_operation
      Src: /src/freeradius-server/src/lib/ldap/base.c:954,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/lib/ldap/base.c:955,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/ldap/base.c:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - msgid
    - request
    - pconn
    - reqoid
    - reqdata
    argTypes:
    - int*
    - request_t*
    - fr_ldap_connection_t*
    - char*
    - struct berval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: fr_ldap_extended_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - fr_ldap_error_check
    - ldap_extended_operation
    - RPERROR
    - RDEBUG2
    - fr_assert
    linkageType: ''
    returnType: fr_ldap_rcode_t
    signature: "fr_ldap_rcode_t fr_ldap_extended_async(int *msgid, request_t *request,
      fr_ldap_connection_t *pconn,\n\t\t\t\t       char const *reqoid, struct berval
      *reqdata)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:974,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:981,1
    - Dst: ldap_control_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:986,1
    - Dst: ldap_free_urldesc
      Src: /src/freeradius-server/src/lib/ldap/base.c:992,1
    - Dst: ldap_memvfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:997,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:999,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/ldap/base.c:1005,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/ldap/base.c:1011,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/ldap/base.c:1012,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/ldap/base.c:1012,1
    - Dst: ber_bvfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:1018,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 1
    argNames:
    - query
    argTypes:
    - fr_ldap_query_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 1021
    functionName: _ldap_query_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_free
    - ber_bvfree
    - talloc_free
    - fr_rb_num_elements
    - ldap_control_free
    - fr_dlist_num_elements
    - fr_dlist_remove
    - ldap_memvfree
    - ldap_free_urldesc
    - ldap_msgfree
    linkageType: ''
    returnType: int
    signature: int _ldap_query_free(fr_ldap_query_t *query)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/base.c:1031,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/base.c:1031,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/ldap/base.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_request_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1038
    functionName: ldap_query_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_set_destructor
    linkageType: ''
    returnType: fr_ldap_query_t
    signature: fr_ldap_query_t *ldap_query_alloc(TALLOC_CTX *ctx, fr_ldap_request_type_t
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_query_alloc
      Src: /src/freeradius-server/src/lib/ldap/base.c:1056,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/ldap/base.c:1060,1
    - Dst: SET_LDAP_CTRLS
      Src: /src/freeradius-server/src/lib/ldap/base.c:1061,1
    - Dst: SET_LDAP_CTRLS
      Src: /src/freeradius-server/src/lib/ldap/base.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - ctx
    - base_dn
    - scope
    - filter
    - attrs
    - serverctrls
    - clientctrls
    argTypes:
    - TALLOC_CTX*
    - char*
    - int
    - char*
    - char**
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1065
    functionName: fr_ldap_search_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 2
    functionsReached:
    - UNCONST
    - ldap_query_alloc
    - SET_LDAP_CTRLS
    linkageType: ''
    returnType: fr_ldap_query_t
    signature: "fr_ldap_query_t *fr_ldap_search_alloc(TALLOC_CTX *ctx,\n\t\t\t\t      char
      const *base_dn, int scope, char const *filter, char const * const * attrs,\n\t\t\t\t
      \     LDAPControl **serverctrls, LDAPControl **clientctrls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_query_alloc
      Src: /src/freeradius-server/src/lib/ldap/base.c:1081,1
    - Dst: SET_LDAP_CTRLS
      Src: /src/freeradius-server/src/lib/ldap/base.c:1084,1
    - Dst: SET_LDAP_CTRLS
      Src: /src/freeradius-server/src/lib/ldap/base.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - dn
    - mods
    - serverctrls
    - clientctrls
    argTypes:
    - TALLOC_CTX*
    - char*
    - LDAPMod*[]
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1088
    functionName: fr_ldap_modify_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - ldap_query_alloc
    - SET_LDAP_CTRLS
    linkageType: ''
    returnType: fr_ldap_query_t
    signature: "fr_ldap_query_t *fr_ldap_modify_alloc(TALLOC_CTX *ctx, char const
      *dn,\n\t\t\t\t      LDAPMod *mods[], LDAPControl **serverctrls, LDAPControl
      **clientctrls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_query_alloc
      Src: /src/freeradius-server/src/lib/ldap/base.c:1104,1
    - Dst: SET_LDAP_CTRLS
      Src: /src/freeradius-server/src/lib/ldap/base.c:1107,1
    - Dst: SET_LDAP_CTRLS
      Src: /src/freeradius-server/src/lib/ldap/base.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - reqoid
    - reqdata
    - serverctrls
    - clientctrls
    argTypes:
    - TALLOC_CTX*
    - char*
    - struct berval*
    - LDAPControl**
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1111
    functionName: fr_ldap_extended_alloc
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - ldap_query_alloc
    - SET_LDAP_CTRLS
    linkageType: ''
    returnType: fr_ldap_query_t
    signature: "fr_ldap_query_t *fr_ldap_extended_alloc(TALLOC_CTX *ctx, char const
      *reqoid, struct berval *reqdata,\n\t\t\t\t\tLDAPControl **serverctrls, LDAPControl
      **clientctrls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ldap_unbind_ext_s
      Src: /src/freeradius-server/src/lib/ldap/base.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1117
    functionName: _ldap_handle_thread_local_free
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 0
    functionsReached:
    - ldap_unbind_ext_s
    linkageType: ''
    returnType: int
    signature: int _ldap_handle_thread_local_free(void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/ldap/base.c:1134,1
    - Dst: ldap_initialize
      Src: /src/freeradius-server/src/lib/ldap/base.c:1134,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/ldap/base.c:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1141
    functionName: fr_ldap_handle_thread_local
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 6
    functionsReached:
    - ldap_initialize
    - MEM
    - fr_atexit_thread_local
    linkageType: ''
    returnType: LDAP
    signature: LDAP *fr_ldap_handle_thread_local(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_ldap_global_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:1169,1
    - Dst: maybe_ldap_global_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - debug_level
    - tls_random_file
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1181
    functionName: fr_ldap_global_config
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - do_ldap_global_option
    - maybe_ldap_global_option
    linkageType: ''
    returnType: int
    signature: int fr_ldap_global_config(int debug_level, char const *tls_random_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _option
    - ','
    - _name
    - ','
    - _value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1165
    functionName: do_ldap_global_option
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_ldap_global_option(_option, _name, _value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _option
    - ','
    - _name
    - ','
    - _value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1168
    functionName: maybe_ldap_global_option
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maybe_ldap_global_option(_option, _name, _value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ldap_initialize
      Src: /src/freeradius-server/src/lib/ldap/base.c:1201,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/ldap/base.c:1202,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/base.c:1206,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/base.c:1215,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/base.c:1216,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/base.c:1217,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/base.c:1221,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/base.c:1222,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/base.c:1226,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/base.c:1233,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:1234,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:1237,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/lib/ldap/base.c:1240,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/ldap/base.c:1243,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/base.c:1245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1250
    functionName: fr_ldap_init
    functionSourceFile: /src/freeradius-server/src/lib/ldap/base.c
    functionUses: 1
    functionsReached:
    - INFO
    - ERROR
    - ldap_get_option
    - WARN
    - strcasestr
    - ldap_memfree
    - ldap_initialize
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int fr_ldap_init(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ldap_count_entries
      Src: /src/freeradius-server/src/lib/ldap/directory.c:59,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/directory.c:61,1
    - Dst: ldap_first_entry
      Src: /src/freeradius-server/src/lib/ldap/directory.c:65,1
    - Dst: ldap_get_option
      Src: /src/freeradius-server/src/lib/ldap/directory.c:67,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/directory.c:69,1
    - Dst: ldap_err2string
      Src: /src/freeradius-server/src/lib/ldap/directory.c:69,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:73,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/lib/ldap/directory.c:75,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/directory.c:76,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:78,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:81,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/lib/ldap/directory.c:83,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/directory.c:84,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:86,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:90,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:92,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:103,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:108,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:113,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:118,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:123,1
    - Dst: strcasestr
      Src: /src/freeradius-server/src/lib/ldap/directory.c:128,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:138,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:141,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:148,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:150,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/ldap/directory.c:152,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:156,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:163,1
    - Dst: memmem
      Src: /src/freeradius-server/src/lib/ldap/directory.c:165,1
    - Dst: memmem
      Src: /src/freeradius-server/src/lib/ldap/directory.c:167,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:170,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/directory.c:174,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/ldap/directory.c:174,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:191,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:193,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/ldap/directory.c:195,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/directory.c:196,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/ldap/directory.c:200,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/directory.c:201,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/ldap/directory.c:205,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/ldap/directory.c:206,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:211,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/ldap/directory.c:213,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:219,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:222,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/ldap/directory.c:223,1
    - Dst: fr_ldap_berval_to_string
      Src: /src/freeradius-server/src/lib/ldap/directory.c:225,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/lib/ldap/directory.c:227,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 132
    argCount: 4
    argNames:
    - directory
    - handle
    - result
    - name
    argTypes:
    - fr_ldap_directory_t*
    - LDAP*
    - LDAPMessage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 230
    functionName: fr_ldap_directory_result_parse
    functionSourceFile: /src/freeradius-server/src/lib/ldap/directory.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - INFO
    - ldap_get_option
    - WARN
    - ldap_count_values_len
    - memmem
    - talloc_array
    - strcasestr
    - ldap_err2string
    - fr_table_str_by_value
    - fr_ldap_berval_to_string
    - ldap_value_free_len
    - ldap_count_entries
    - ldap_first_entry
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int fr_ldap_directory_result_parse(fr_ldap_directory_t *directory,
      LDAP *handle,\n\t\t\t\t   LDAPMessage *result, char const *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/ldap/directory.c:242,1
    - Dst: fr_ldap_directory_result_parse
      Src: /src/freeradius-server/src/lib/ldap/directory.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - query
    - result
    - rctx
    argTypes:
    - LDAP*
    - fr_ldap_query_t*
    - LDAPMessage*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: ldap_trunk_directory_alloc_read
    functionSourceFile: /src/freeradius-server/src/lib/ldap/directory.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_ldap_directory_result_parse
    linkageType: ''
    returnType: void
    signature: void ldap_trunk_directory_alloc_read(LDAP *handle, fr_ldap_query_t
      *query, LDAPMessage *result, void *rctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/directory.c:263,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/ldap/directory.c:266,1
    - Dst: fr_ldap_search_alloc
      Src: /src/freeradius-server/src/lib/ldap/directory.c:269,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/ldap/directory.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - ttrunk
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_thread_trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: fr_ldap_trunk_directory_alloc_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/directory.c
    functionUses: 1
    functionsReached:
    - talloc_zero
    - fr_ldap_search_alloc
    - trunk_request_enqueue
    - trunk_request_alloc
    linkageType: ''
    returnType: int
    signature: int fr_ldap_trunk_directory_alloc_async(TALLOC_CTX *ctx, fr_ldap_thread_trunk_t
      *ttrunk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/ldap/directory.c:292,1
    - Dst: fr_ldap_search_async
      Src: /src/freeradius-server/src/lib/ldap/directory.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ldap_conn
    argTypes:
    - fr_ldap_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: fr_ldap_conn_directory_alloc_async
    functionSourceFile: /src/freeradius-server/src/lib/ldap/directory.c
    functionUses: 0
    functionsReached:
    - fr_ldap_search_async
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int fr_ldap_conn_directory_alloc_async(fr_ldap_connection_t *ldap_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _conf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: FR_LDAP_COMMON_CONF
    functionSourceFile: /src/freeradius-server/src/lib/ldap/conf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_LDAP_COMMON_CONF(_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/bio_priv.h:86,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/bio_priv.h:87,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/bio_priv.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - fr_bio_t*
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: fr_bio_chain
    functionSourceFile: /src/freeradius-server/src/lib/bio/bio_priv.h
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_bio_chain(fr_bio_t *first, fr_bio_t *second)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/bio_priv.h:103,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/bio_priv.h:104,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/bio_priv.h:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: fr_bio_unchain
    functionSourceFile: /src/freeradius-server/src/lib/bio/bio_priv.h
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_prev
    - fr_bio_next
    linkageType: ''
    returnType: void
    signature: void fr_bio_unchain(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/bio/pipe.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_pipe_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: fr_bio_pipe_destructor
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int fr_bio_pipe_destructor(fr_bio_pipe_t *my)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/pipe.c:62,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:64,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/pipe.c:65,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/pipe.c:67,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:71,1
    - Dst: fr_bio_pipe_t*::cb::eof
      Src: /src/freeradius-server/src/lib/bio/pipe.c:75,1
    - Dst: fr_bio_pipe_t*::cb::write_resume
      Src: /src/freeradius-server/src/lib/bio/pipe.c:79,1
    - Dst: fr_bio_pipe_t*::cb::read_blocked
      Src: /src/freeradius-server/src/lib/bio/pipe.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 87
    functionName: fr_bio_pipe_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - fr_bio_pipe_t*::cb::eof
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_bio_pipe_t*::cb::read_blocked
    - fr_bio_buf_read
    - fr_bio_pipe_t*::cb::write_resume
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_pipe_read(fr_bio_t *bio, UNUSED void *packet_ctx, void
      *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/pipe.c:97,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:99,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/pipe.c:100,1
    - Dst: fr_bio_buf_write
      Src: /src/freeradius-server/src/lib/bio/pipe.c:103,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:107,1
    - Dst: fr_bio_pipe_t*::cb::read_resume
      Src: /src/freeradius-server/src/lib/bio/pipe.c:110,1
    - Dst: fr_bio_pipe_t*::cb::write_blocked
      Src: /src/freeradius-server/src/lib/bio/pipe.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: fr_bio_pipe_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - fr_bio_pipe_t*::cb::write_blocked
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_bio_buf_write
    - fr_bio_pipe_t*::cb::read_resume
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_pipe_write(fr_bio_t *bio, UNUSED void *packet_ctx, void
      const *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/pipe.c:123,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:125,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: fr_bio_pipe_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int fr_bio_pipe_shutdown(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/pipe.c:135,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/pipe.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: fr_bio_pipe_shutdown_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_pipe_shutdown_write(UNUSED fr_bio_t *bio, UNUSED void
      *packet_ctx, UNUSED void const *buffer, UNUSED size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/pipe.c:147,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:153,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/pipe.c:156,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/bio/pipe.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: fr_bio_pipe_eof
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - fr_bio_buf_used
    linkageType: ''
    returnType: int
    signature: int fr_bio_pipe_eof(fr_bio_t *bio)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/pipe.c:193,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/bio/pipe.c:196,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/pipe.c:198,1
    - Dst: fr_bio_buf_init
      Src: /src/freeradius-server/src/lib/bio/pipe.c:204,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/bio/pipe.c:206,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/pipe.c:213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - cb
    - buffer_size
    argTypes:
    - TALLOC_CTX*
    - fr_bio_cb_funcs_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 215
    functionName: fr_bio_pipe_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/pipe.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - talloc_array
    - fr_bio_buf_init
    - talloc_zero
    - pthread_mutex_init
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_pipe_alloc(TALLOC_CTX *ctx, fr_bio_cb_funcs_t *cb,
      size_t buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: XDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDEBUG(fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/bio/base.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: fr_bio_prev
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 1
    functionsReached:
    - fr_dlist_entry_to_item
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_prev(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/bio/base.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: fr_bio_next
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 1
    functionsReached:
    - fr_dlist_entry_to_item
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_next(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/base.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: fr_bio_head
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 0
    functionsReached:
    - fr_bio_prev
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_head(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/base.h:168,1
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/base.h:168,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/base.h:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: fr_bio_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 4
    functionsReached:
    - fr_bio_t*::read
    - fr_assert
    - fr_bio_prev
    linkageType: ''
    returnType: void
    signature: void fr_bio_read(fr_bio_t *bio, void *packet_ctx, void *buffer, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/base.h:191,1
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/base.h:191,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/base.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: fr_bio_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 3
    functionsReached:
    - fr_bio_t*::write
    - fr_assert
    - fr_bio_prev
    linkageType: ''
    returnType: void
    signature: void fr_bio_write(fr_bio_t *bio, void *packet_ctx, void const *buffer,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: fr_bio_error
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_bio_error(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::read
      Src: /src/freeradius-server/src/lib/bio/packet.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - my
    - pctx_p
    - packet_p
    - out_ctx
    - out
    argTypes:
    - fr_bio_packet_t*
    - void**
    - fr_packet_t**
    - TALLOC_CTX*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: fr_bio_packet_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.h
    functionUses: 1
    functionsReached:
    - fr_bio_packet_t*::read
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_read(fr_bio_packet_t *my, void **pctx_p, fr_packet_t
      **packet_p, TALLOC_CTX *out_ctx, fr_pair_list_t *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/packet.h:145,1
    - Dst: fr_bio_packet_t*::write
      Src: /src/freeradius-server/src/lib/bio/packet.h:147,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/packet.h:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - my
    - pctx
    - packet
    - list
    argTypes:
    - fr_bio_packet_t*
    - void*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: fr_bio_packet_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.h
    functionUses: 1
    functionsReached:
    - fr_bio_packet_t*::write
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_write(fr_bio_packet_t *my, void *pctx, fr_packet_t
      *packet, fr_pair_list_t *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::bio::write
      Src: /src/freeradius-server/src/lib/bio/packet.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: fr_bio_packet_write_flush
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.h
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::bio::write
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_write_flush(fr_bio_packet_t *my)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::cb::write_blocked
      Src: /src/freeradius-server/src/lib/bio/packet.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: fr_bio_packet_write_blocked
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::cb::write_blocked
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_write_blocked(fr_bio_t *bio)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/packet.c:73,1
    - Dst: priv_cb::write_resume
      Src: /src/freeradius-server/src/lib/bio/packet.c:77,1
    - Dst: fr_bio_packet_t*::cb::write_resume
      Src: /src/freeradius-server/src/lib/bio/packet.c:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 93
    functionName: fr_bio_packet_write_resume
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::cb::write_resume
    - fr_bio_next
    - priv_cb::write_resume
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_write_resume(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::cb::read_blocked
      Src: /src/freeradius-server/src/lib/bio/packet.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: fr_bio_packet_read_blocked
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::cb::read_blocked
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_read_blocked(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::cb::read_resume
      Src: /src/freeradius-server/src/lib/bio/packet.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: fr_bio_packet_read_resume
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::cb::read_resume
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_read_resume(fr_bio_t *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/packet.c:125,1
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/packet.c:131,1
    - Dst: priv_cb::connected
      Src: /src/freeradius-server/src/lib/bio/packet.c:137,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/bio/packet.c:149,1
    - Dst: fr_bio_packet_t*::cb::connected
      Src: /src/freeradius-server/src/lib/bio/packet.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 157
    functionName: fr_bio_packet_connected
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DELETE
    - fr_assert
    - fr_bio_packet_t*::cb::connected
    - fr_bio_prev
    - priv_cb::connected
    linkageType: ''
    returnType: void
    signature: void fr_bio_packet_connected(fr_bio_t *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/packet.c:164,1
    - Dst: fr_bio_packet_t*::cb::shutdown
      Src: /src/freeradius-server/src/lib/bio/packet.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: fr_bio_packet_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_shutdown
    - fr_bio_packet_t*::cb::shutdown
    linkageType: ''
    returnType: int
    signature: int fr_bio_packet_shutdown(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::cb::eof
      Src: /src/freeradius-server/src/lib/bio/packet.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: fr_bio_packet_eof
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::cb::eof
    linkageType: ''
    returnType: void
    signature: void fr_bio_packet_eof(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_packet_t*::cb::failed
      Src: /src/freeradius-server/src/lib/bio/packet.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: fr_bio_packet_failed
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_packet_t*::cb::failed
    linkageType: ''
    returnType: void
    signature: void fr_bio_packet_failed(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_cb_set
      Src: /src/freeradius-server/src/lib/bio/packet.c:213,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/packet.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 216
    functionName: fr_bio_packet_init
    functionSourceFile: /src/freeradius-server/src/lib/bio/packet.c
    functionUses: 0
    functionsReached:
    - fr_bio_cb_set
    - fr_bio_next
    linkageType: ''
    returnType: void
    signature: void fr_bio_packet_init(fr_bio_packet_t *my)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: fr_bio_fd_connect
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_bio_fd_connect(_x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_uctx_remove
      Src: /src/freeradius-server/src/lib/bio/retry.c:134,1
    - Dst: fr_timer_uctx_remove
      Src: /src/freeradius-server/src/lib/bio/retry.c:135,1
    - Dst: fr_bio_retry_t*::release
      Src: /src/freeradius-server/src/lib/bio/retry.c:142,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:161,1
    - Dst: fr_bio_retry_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/retry.c:161,1
    - Dst: fr_bio_retry_t*::cb::write_resume
      Src: /src/freeradius-server/src/lib/bio/retry.c:172,1
    - Dst: fr_bio_retry_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/retry.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - my
    - item
    - reason
    argTypes:
    - fr_bio_retry_t*
    - fr_bio_retry_entry_t*
    - fr_bio_retry_release_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 178
    functionName: fr_bio_retry_release
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_bio_retry_list_insert_head
    - fr_bio_retry_t*::cb::write_resume
    - fr_bio_retry_list_num_elements
    - fr_assert
    - fr_timer_uctx_remove
    - fr_bio_retry_t*::release
    linkageType: ''
    returnType: void
    signature: void fr_bio_retry_release(fr_bio_retry_t *my, fr_bio_retry_entry_t
      *item, fr_bio_retry_release_reason_t reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:185,1
    - Dst: fr_timer_list_disarm
      Src: /src/freeradius-server/src/lib/bio/retry.c:196,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:196,1
    - Dst: fr_timer_list_arm
      Src: /src/freeradius-server/src/lib/bio/retry.c:198,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: fr_bio_retry_write_blocked
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_disarm
    - fr_timer_list_arm
    - talloc_get_type_abort
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_retry_write_blocked(fr_bio_t *bio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:219,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/bio/retry.c:226,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:228,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/bio/retry.c:236,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/bio/retry.c:239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:242,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/bio/retry.c:242,1
    - Dst: fr_timer_uctx_remove
      Src: /src/freeradius-server/src/lib/bio/retry.c:249,1
    - Dst: fr_timer_uctx_insert
      Src: /src/freeradius-server/src/lib/bio/retry.c:250,1
    - Dst: fr_bio_retry_entry_t*::rewrite
      Src: /src/freeradius-server/src/lib/bio/retry.c:260,1
    - Dst: fr_bio_retry_t*::rewrite
      Src: /src/freeradius-server/src/lib/bio/retry.c:262,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:265,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:267,1
    - Dst: fr_bio_retry_save_write
      Src: /src/freeradius-server/src/lib/bio/retry.c:275,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:275,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - my
    - item
    - now
    argTypes:
    - fr_bio_retry_t*
    - fr_bio_retry_entry_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 281
    functionName: fr_bio_retry_write_item
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_bio_retry_entry_t*::rewrite
    - fr_bio_retry_save_write
    - fr_time_gt
    - fr_bio_retry_release
    - fr_retry_next
    - fr_assert
    - fr_time_lteq
    - fr_timer_uctx_remove
    - fr_timer_uctx_insert
    - fr_time_lt
    - fr_bio_retry_t*::rewrite
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_retry_write_item(fr_bio_retry_t *my, fr_bio_retry_entry_t
      *item, fr_time_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:289,1
    - Dst: fr_timer_list_disarm
      Src: /src/freeradius-server/src/lib/bio/retry.c:302,1
    - Dst: fr_timer_list_arm
      Src: /src/freeradius-server/src/lib/bio/retry.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: fr_bio_retry_write_resume
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_disarm
    - fr_timer_list_arm
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_bio_retry_write_resume(fr_bio_t *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:318,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:322,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:323,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/retry.c:325,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:326,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/retry.c:331,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:332,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/retry.c:334,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/retry.c:342,1
    - Dst: fr_bio_buf_reset
      Src: /src/freeradius-server/src/lib/bio/retry.c:347,1
    - Dst: fr_bio_retry_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/retry.c:358,1
    - Dst: fr_bio_retry_write_resume
      Src: /src/freeradius-server/src/lib/bio/retry.c:367,1
    - Dst: fr_bio_retry_write
      Src: /src/freeradius-server/src/lib/bio/retry.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 374
    functionName: fr_bio_retry_write_partial
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_reset
    - fr_bio_retry_list_insert_head
    - fr_bio_retry_write
    - fr_bio_t*::write
    - fr_bio_next
    - talloc_get_type_abort
    - fr_bio_retry_write_resume
    - fr_assert
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_retry_write_partial(fr_bio_t *bio, void *packet_ctx,
      const void *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:380,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:381,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:382,1
    - Dst: fr_bio_buf_size
      Src: /src/freeradius-server/src/lib/bio/retry.c:388,1
    - Dst: fr_bio_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/retry.c:389,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:392,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/retry.c:392,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:393,1
    - Dst: fr_bio_buf_write
      Src: /src/freeradius-server/src/lib/bio/retry.c:395,1
    - Dst: fr_bio_retry_write_blocked
      Src: /src/freeradius-server/src/lib/bio/retry.c:403,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - my
    - item
    - rcode
    argTypes:
    - fr_bio_retry_t*
    - fr_bio_retry_entry_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 413
    functionName: fr_bio_retry_save_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 1
    functionsReached:
    - fr_bio_retry_write_blocked
    - fr_bio_buf_alloc
    - fr_bio_buf_size
    - fr_bio_buf_write
    - fr_assert
    - fr_bio_error
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_retry_save_write(fr_bio_retry_t *my, fr_bio_retry_entry_t
      *item, ssize_t rcode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:432,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/retry.c:445,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:446,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/retry.c:461,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:476,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:478,1
    - Dst: fr_bio_retry_save_write
      Src: /src/freeradius-server/src/lib/bio/retry.c:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - bio
    - item
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - fr_bio_retry_entry_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 486
    functionName: fr_bio_retry_rewrite
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_bio_retry_save_write
    - fr_bio_t*::write
    - fr_bio_retry_release
    - talloc_get_type_abort
    - fr_bio_next
    - fr_assert
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_retry_rewrite(fr_bio_t *bio, fr_bio_retry_entry_t *item,
      const void *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: fr_bio_retry_write_fatal
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_retry_write_fatal(fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void const *buffer, UNUSED size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:507,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:513,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 520
    functionName: fr_bio_retry_expiry_timer
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_retry_release
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_bio_retry_expiry_timer(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:528,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:531,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:532,1
    - Dst: fr_bio_retry_write_item
      Src: /src/freeradius-server/src/lib/bio/retry.c:537,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - uctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 545
    functionName: fr_bio_retry_next_timer
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    - fr_bio_retry_write_item
    - fr_bio_error
    linkageType: ''
    returnType: void
    signature: void fr_bio_retry_next_timer(UNUSED fr_timer_list_t *tl, fr_time_t
      now, void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:554,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:557,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/retry.c:562,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:563,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/retry.c:570,1
    - Dst: fr_bio_retry_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/retry.c:576,1
    - Dst: fr_timer_uctx_peek
      Src: /src/freeradius-server/src/lib/bio/retry.c:580,1
    - Dst: fr_bio_retry_entry_cancel
      Src: /src/freeradius-server/src/lib/bio/retry.c:591,1
    - Dst: fr_bio_write_blocked
      Src: /src/freeradius-server/src/lib/bio/retry.c:602,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/retry.c:605,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:611,1
    - Dst: fr_bio_retry_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/retry.c:611,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/retry.c:621,1
    - Dst: fr_bio_retry_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/retry.c:627,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:628,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:630,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/retry.c:633,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/bio/retry.c:645,1
    - Dst: fr_bio_retry_t*::sent
      Src: /src/freeradius-server/src/lib/bio/retry.c:651,1
    - Dst: fr_timer_uctx_insert
      Src: /src/freeradius-server/src/lib/bio/retry.c:656,1
    - Dst: fr_timer_uctx_insert
      Src: /src/freeradius-server/src/lib/bio/retry.c:657,1
    - Dst: fr_bio_retry_save_write
      Src: /src/freeradius-server/src/lib/bio/retry.c:663,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 667
    functionName: fr_bio_retry_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 1
    functionsReached:
    - fr_bio_retry_list_pop_head
    - fr_bio_retry_entry_cancel
    - fr_time
    - fr_bio_retry_save_write
    - fr_bio_t*::write
    - talloc_get_type_abort
    - fr_bio_next
    - fr_bio_retry_list_num_elements
    - fr_timer_uctx_peek
    - fr_bio_write_blocked
    - fr_assert
    - fr_retry_init
    - fr_bio_retry_t*::sent
    - fr_timer_uctx_insert
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_retry_write(fr_bio_t *bio, void *packet_ctx, void const
      *buffer, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:673,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/retry.c:679,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:680,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/retry.c:685,1
    - Dst: fr_bio_retry_t*::response
      Src: /src/freeradius-server/src/lib/bio/retry.c:695,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/bio/retry.c:703,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:704,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:710,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:711,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:712,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/bio/retry.c:718,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/retry.c:724,1
    - Dst: fr_bio_retry_outstanding
      Src: /src/freeradius-server/src/lib/bio/retry.c:744,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/bio/retry.c:749,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:750,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/bio/retry.c:758,1
    - Dst: fr_timer_uctx_remove
      Src: /src/freeradius-server/src/lib/bio/retry.c:760,1
    - Dst: fr_timer_uctx_insert
      Src: /src/freeradius-server/src/lib/bio/retry.c:761,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 764
    functionName: fr_bio_retry_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_time
    - fr_bio_retry_release
    - fr_bio_retry_outstanding
    - talloc_get_type_abort
    - fr_bio_next
    - fr_assert
    - fr_time_delta_ispos
    - fr_timer_uctx_remove
    - fr_time_add_time_delta
    - fr_timer_uctx_insert
    - fr_bio_retry_t*::response
    - fr_bio_t*::read
    - fr_time_lt
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_retry_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:777,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:778,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/bio/retry.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 781
    functionName: _next_retry_cmp
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t _next_retry_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:793,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:794,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/bio/retry.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 797
    functionName: _expiry_cmp
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t _expiry_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:812,1
    - Dst: fr_timer_uctx_peek
      Src: /src/freeradius-server/src/lib/bio/retry.c:818,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:830,1
    - Dst: fr_bio_retry_release
      Src: /src/freeradius-server/src/lib/bio/retry.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bio
    - item
    argTypes:
    - fr_bio_t*
    - fr_bio_retry_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 835
    functionName: fr_bio_retry_entry_cancel
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 1
    functionsReached:
    - fr_timer_uctx_peek
    - fr_assert
    - fr_bio_retry_release
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_bio_retry_entry_cancel(fr_bio_t *bio, fr_bio_retry_entry_t *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:844,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:848,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/bio/retry.c:848,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/bio/retry.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bio
    - item
    - cfg
    argTypes:
    - UNUSED*
    - fr_bio_retry_entry_t*
    - fr_retry_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 853
    functionName: fr_bio_retry_entry_init
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_time_delta_unwrap
    - fr_retry_init
    linkageType: ''
    returnType: int
    signature: int fr_bio_retry_entry_init(UNUSED fr_bio_t *bio, fr_bio_retry_entry_t
      *item, fr_retry_config_t const *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - item
    argTypes:
    - UNUSED*
    - fr_bio_retry_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 866
    functionName: fr_bio_retry_entry_info
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: fr_retry_t
    signature: fr_retry_t *fr_bio_retry_entry_info(UNUSED fr_bio_t *bio, fr_bio_retry_entry_t
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:873,1
    - Dst: fr_timer_list_disarm
      Src: /src/freeradius-server/src/lib/bio/retry.c:876,1
    - Dst: fr_timer_list_disarm
      Src: /src/freeradius-server/src/lib/bio/retry.c:877,1
    - Dst: fr_timer_uctx_peek
      Src: /src/freeradius-server/src/lib/bio/retry.c:883,1
    - Dst: fr_timer_uctx_remove
      Src: /src/freeradius-server/src/lib/bio/retry.c:884,1
    - Dst: fr_bio_retry_t*::release
      Src: /src/freeradius-server/src/lib/bio/retry.c:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 889
    functionName: fr_bio_retry_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_timer_uctx_peek
    - fr_timer_uctx_remove
    - fr_bio_retry_t*::release
    - fr_timer_list_disarm
    linkageType: ''
    returnType: int
    signature: int fr_bio_retry_shutdown(fr_bio_t *bio)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:906,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/retry.c:914,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/bio/retry.c:921,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/retry.c:924,1
    - Dst: fr_bio_retry_list_init
      Src: /src/freeradius-server/src/lib/bio/retry.c:931,1
    - Dst: fr_bio_retry_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/retry.c:934,1
    - Dst: fr_timer_list_shared_alloc
      Src: /src/freeradius-server/src/lib/bio/retry.c:937,1
    - Dst: fr_timer_list_shared_alloc
      Src: /src/freeradius-server/src/lib/bio/retry.c:942,1
    - Dst: fr_timer_list_disarm
      Src: /src/freeradius-server/src/lib/bio/retry.c:951,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/retry.c:962,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/retry.c:975,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/retry.c:977,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 8
    argNames:
    - ctx
    - max_saved
    - sent
    - response
    - rewrite
    - release
    - cfg
    - next
    argTypes:
    - TALLOC_CTX*
    - size_t
    - fr_bio_retry_sent_t
    - fr_bio_retry_response_t
    - fr_bio_retry_rewrite_t
    - fr_bio_retry_release_t
    - fr_bio_retry_config_t*
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 979
    functionName: fr_bio_retry_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_bio_retry_list_init
    - talloc_set_destructor
    - talloc_free
    - talloc_array
    - fr_timer_list_shared_alloc
    - fr_time
    - fr_assert
    - talloc_zero
    - fr_bio_chain
    - fr_timer_list_disarm
    - fr_bio_retry_list_insert_tail
    linkageType: ''
    returnType: fr_bio_t
    signature: "fr_bio_t *fr_bio_retry_alloc(TALLOC_CTX *ctx, size_t max_saved,\n\t\t\t
      \    fr_bio_retry_sent_t sent,\n\t\t\t     fr_bio_retry_response_t response,\n\t\t\t
      \    fr_bio_retry_rewrite_t rewrite,\n\t\t\t     fr_bio_retry_release_t release,\n\t\t\t
      \    fr_bio_retry_config_t const *cfg,\n\t\t\t     fr_bio_t *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 986
    functionName: fr_bio_retry_info
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_bio_retry_info_t
    signature: fr_bio_retry_info_t *fr_bio_retry_info(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:990,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/bio/retry.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1001
    functionName: fr_bio_retry_outstanding
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    - fr_timer_list_num_events
    linkageType: ''
    returnType: size_t
    signature: size_t fr_bio_retry_outstanding(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/retry.c:1009,1
    - Dst: fr_bio_retry_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/retry.c:1012,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/retry.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1022
    functionName: fr_bio_retry_item_reserve
    functionSourceFile: /src/freeradius-server/src/lib/bio/retry.c
    functionUses: 0
    functionsReached:
    - fr_bio_retry_list_pop_head
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_bio_retry_entry_t
    signature: fr_bio_retry_entry_t *fr_bio_retry_item_reserve(fr_bio_t *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_queue_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/queue.c:88,1
    - Dst: fr_bio_queue_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:93,1
    - Dst: fr_bio_queue_t*::cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:94,1
    - Dst: fr_bio_queue_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: fr_bio_queue_list_cancel
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_queue_list_insert_head
    - fr_bio_queue_t*::cancel
    - fr_bio_queue_list_pop_head
    - fr_bio_queue_list_num_elements
    linkageType: ''
    returnType: void
    signature: void fr_bio_queue_list_cancel(fr_bio_queue_t *my)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:104,1
    - Dst: fr_bio_queue_list_cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: fr_bio_queue_destructor
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_queue_list_cancel
    linkageType: ''
    returnType: int
    signature: int fr_bio_queue_destructor(fr_bio_queue_t *my)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_queue_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:118,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/queue.c:119,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:126,1
    - Dst: fr_bio_queue_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/queue.c:126,1
    - Dst: fr_bio_queue_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/queue.c:135,1
    - Dst: fr_bio_queue_t*::saved
      Src: /src/freeradius-server/src/lib/bio/queue.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - my
    - packet_ctx
    - buffer
    - size
    - already_written
    argTypes:
    - fr_bio_queue_t*
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 140
    functionName: fr_bio_queue_list_push
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_queue_list_insert_tail
    - fr_bio_queue_list_pop_head
    - fr_assert
    - fr_bio_error
    - fr_bio_queue_t*::saved
    - fr_bio_queue_list_num_elements
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_queue_list_push(fr_bio_queue_t *my, void *packet_ctx,
      const void *buffer, size_t size, size_t already_written)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/queue.c:149,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:155,1
    - Dst: fr_bio_queue_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/queue.c:155,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/queue.c:157,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:158,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/queue.c:163,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/queue.c:170,1
    - Dst: fr_bio_queue_list_cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:175,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:190,1
    - Dst: fr_bio_queue_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/queue.c:190,1
    - Dst: fr_bio_queue_list_push
      Src: /src/freeradius-server/src/lib/bio/queue.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 196
    functionName: fr_bio_queue_write_next
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_t*::write
    - fr_bio_next
    - talloc_get_type_abort
    - fr_bio_queue_list_cancel
    - fr_assert
    - fr_bio_error
    - fr_bio_queue_list_push
    - fr_bio_queue_list_num_elements
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_queue_write_next(fr_bio_t *bio, void *packet_ctx, void
      const *buffer, size_t size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_queue_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/queue.c:206,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/queue.c:211,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:212,1
    - Dst: fr_bio_queue_list_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:232,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/queue.c:237,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/queue.c:241,1
    - Dst: fr_bio_queue_t*::cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:258,1
    - Dst: fr_bio_queue_t*::sent
      Src: /src/freeradius-server/src/lib/bio/queue.c:260,1
    - Dst: fr_bio_queue_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:263,1
    - Dst: fr_bio_queue_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:272,1
    - Dst: fr_bio_queue_list_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:278,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - my
    - size
    argTypes:
    - fr_bio_queue_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 281
    functionName: fr_bio_queue_write_flush
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_queue_list_head
    - fr_bio_queue_list_pop_head
    - fr_bio_t*::write
    - fr_bio_next
    - fr_assert
    - fr_bio_queue_t*::cancel
    - fr_bio_queue_t*::sent
    - fr_bio_error
    - fr_bio_queue_list_insert_head
    - fr_bio_queue_list_num_elements
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_queue_write_flush(fr_bio_queue_t *my, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/queue.c:290,1
    - Dst: fr_bio_queue_write_flush
      Src: /src/freeradius-server/src/lib/bio/queue.c:292,1
    - Dst: fr_bio_queue_list_push
      Src: /src/freeradius-server/src/lib/bio/queue.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: fr_bio_queue_write_buffer
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_queue_list_push
    - fr_bio_queue_write_flush
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_queue_write_buffer(fr_bio_t *bio, void *packet_ctx,
      void const *buffer, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/queue.c:312,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/queue.c:315,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:316,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/queue.c:318,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/queue.c:324,1
    - Dst: fr_bio_queue_list_cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 332
    functionName: fr_bio_queue_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_bio_next
    - fr_bio_queue_list_cancel
    - fr_assert
    - fr_bio_t*::read
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_queue_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/queue.c:340,1
    - Dst: fr_bio_queue_list_cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: fr_bio_queue_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_bio_queue_list_cancel
    linkageType: ''
    returnType: int
    signature: int fr_bio_queue_shutdown(fr_bio_t *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/bio/queue.c:403,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/bio/queue.c:407,1
    - Dst: fr_bio_queue_list_init
      Src: /src/freeradius-server/src/lib/bio/queue.c:411,1
    - Dst: fr_bio_queue_list_init
      Src: /src/freeradius-server/src/lib/bio/queue.c:412,1
    - Dst: fr_bio_queue_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/queue.c:421,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/queue.c:428,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/queue.c:431,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/queue.c:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 6
    argNames:
    - ctx
    - max_saved
    - saved
    - sent
    - cancel
    - next
    argTypes:
    - TALLOC_CTX*
    - size_t
    - fr_bio_queue_saved_t
    - fr_bio_queue_callback_t
    - fr_bio_queue_callback_t
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 437
    functionName: fr_bio_queue_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_queue_list_insert_tail
    - fr_bio_queue_list_init
    - talloc_set_destructor
    - talloc_set_type
    - talloc_zero_array
    - fr_bio_chain
    linkageType: ''
    returnType: fr_bio_t
    signature: "fr_bio_t *fr_bio_queue_alloc(TALLOC_CTX *ctx, size_t max_saved,\n\t\t\t
      \     fr_bio_queue_saved_t saved,\n\t\t\t      fr_bio_queue_callback_t sent,\n\t\t\t
      \     fr_bio_queue_callback_t cancel,\n\t\t\t      fr_bio_t *next)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/queue.c:455,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/queue.c:474,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/queue.c:475,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/queue.c:480,1
    - Dst: fr_bio_queue_list_remove
      Src: /src/freeradius-server/src/lib/bio/queue.c:497,1
    - Dst: fr_bio_queue_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/queue.c:498,1
    - Dst: fr_bio_queue_t*::cancel
      Src: /src/freeradius-server/src/lib/bio/queue.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - bio
    - item
    argTypes:
    - fr_bio_t*
    - fr_bio_queue_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 504
    functionName: fr_bio_queue_cancel
    functionSourceFile: /src/freeradius-server/src/lib/bio/queue.c
    functionUses: 0
    functionsReached:
    - fr_bio_t*::write
    - talloc_get_type_abort
    - fr_bio_next
    - fr_assert
    - fr_bio_queue_t*::cancel
    - fr_bio_queue_list_remove
    - fr_bio_queue_list_insert_head
    linkageType: ''
    returnType: int
    signature: int fr_bio_queue_cancel(fr_bio_t *bio, fr_bio_queue_entry_t *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:96,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/bio/fd.c:100,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/bio/fd.c:102,1
    - Dst: fr_bio_fd_close
      Src: /src/freeradius-server/src/lib/bio/fd.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: fr_bio_fd_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DELETE
    - fr_bio_fd_close
    - fr_event_fd_delete
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_shutdown(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: fr_bio_fd_eof
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_eof(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: fr_bio_fd_write_resume
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_write_resume(fr_bio_t *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:142,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/bio/fd.c:145,1
    - Dst: fr_bio_head
      Src: /src/freeradius-server/src/lib/bio/fd.c:152,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/lib/bio/fd.c:154,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:156,1
    - Dst: fr_bio_eof
      Src: /src/freeradius-server/src/lib/bio/fd.c:159,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 166
    functionName: fr_bio_fd_read_stream
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_bio_shutdown
    - fr_bio_write
    - read
    - fr_bio_head
    - talloc_get_type_abort
    - fr_bio_eof
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_read_stream(fr_bio_t *bio, UNUSED void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:179,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/bio/fd.c:190,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:192,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:193,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:194,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 205
    functionName: fr_bio_fd_read_connected_datagram
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - recvfrom
    - fr_assert
    - talloc_get_type_abort
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_read_connected_datagram(fr_bio_t *bio, UNUSED void
      *packet_ctx, void *buffer, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:213,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/bio/fd.c:220,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:222,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:229,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 238
    functionName: fr_bio_fd_recvfrom
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - talloc_get_type_abort
    - recvfrom
    - fr_bio_fd_packet_ctx
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_recvfrom(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:248,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/bio/fd.c:270,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 275
    functionName: fr_bio_fd_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - write
    - talloc_get_type_abort
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_write(fr_bio_t *bio, UNUSED void *packet_ctx, const
      void *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:284,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:285,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:295,1
    - Dst: sendto
      Src: /src/freeradius-server/src/lib/bio/fd.c:298,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 303
    functionName: fr_bio_fd_sendto
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - sendto
    - talloc_get_type_abort
    - fr_bio_fd_packet_ctx
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_sendto(fr_bio_t *bio, void *packet_ctx, const void
      *buffer, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:312,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:318,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:319,1
    - Dst: recvmsg
      Src: /src/freeradius-server/src/lib/bio/fd.c:337,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:344,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - my
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_fd_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 353
    functionName: fd_fd_recvfromto_common
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - recvmsg
    - memset
    - fr_bio_fd_packet_ctx
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fd_fd_recvfromto_common(fr_bio_fd_t *my, void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/bio/fd.c:364,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:365,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:366,1
    - Dst: fd_fd_recvfromto_common
      Src: /src/freeradius-server/src/lib/bio/fd.c:368,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/bio/fd.c:371,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:373,1
    - Dst: CMSG_NXTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:375,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/bio/fd.c:376,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:381,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:387,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:397,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:402,1
    - Dst: fr_time_from_timespec
      Src: /src/freeradius-server/src/lib/bio/fd.c:410,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:410,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/lib/bio/fd.c:415,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:415,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/bio/fd.c:420,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/bio/fd.c:420,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/fd.c:420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 425
    functionName: fr_bio_fd_recvfromto4
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fd_fd_recvfromto_common
    - fr_time_from_timeval
    - fr_time_wrap
    - fr_time
    - DIAG_ON
    - CMSG_DATA
    - talloc_get_type_abort
    - fr_time_from_timespec
    - fr_time_eq
    - CMSG_NXTHDR
    - DIAG_OFF
    - CMSG_FIRSTHDR
    - fr_bio_fd_packet_ctx
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_recvfromto4(fr_bio_t *bio, void *packet_ctx, void
      *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:436,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:437,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:439,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:440,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:442,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/bio/fd.c:445,1
    - Dst: CMSG_SPACE
      Src: /src/freeradius-server/src/lib/bio/fd.c:463,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:465,1
    - Dst: CMSG_LEN
      Src: /src/freeradius-server/src/lib/bio/fd.c:468,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:470,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:471,1
    - Dst: CMSG_SPACE
      Src: /src/freeradius-server/src/lib/bio/fd.c:478,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:480,1
    - Dst: CMSG_LEN
      Src: /src/freeradius-server/src/lib/bio/fd.c:483,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:485,1
    - Dst: sendmsg
      Src: /src/freeradius-server/src/lib/bio/fd.c:491,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 496
    functionName: fr_bio_fd_sendfromto4
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - CMSG_LEN
    - UNCONST
    - CMSG_DATA
    - talloc_get_type_abort
    - CMSG_SPACE
    - CMSG_FIRSTHDR
    - memset
    - sendmsg
    - fr_bio_fd_packet_ctx
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_sendfromto4(fr_bio_t *bio, void *packet_ctx, const
      void *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 519
    functionName: fr_bio_fd_udpfromto_init4
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_udpfromto_init4(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/bio/fd.c:529,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:530,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:531,1
    - Dst: fd_fd_recvfromto_common
      Src: /src/freeradius-server/src/lib/bio/fd.c:533,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/bio/fd.c:536,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:538,1
    - Dst: CMSG_NXTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:540,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/bio/fd.c:541,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:545,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:551,1
    - Dst: fr_time_from_timespec
      Src: /src/freeradius-server/src/lib/bio/fd.c:559,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:559,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/lib/bio/fd.c:564,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:564,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/bio/fd.c:569,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/bio/fd.c:569,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/fd.c:569,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 574
    functionName: fr_bio_fd_recvfromto6
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fd_fd_recvfromto_common
    - fr_time_from_timeval
    - fr_time_wrap
    - fr_time
    - DIAG_ON
    - CMSG_DATA
    - talloc_get_type_abort
    - fr_time_from_timespec
    - fr_time_eq
    - CMSG_NXTHDR
    - DIAG_OFF
    - CMSG_FIRSTHDR
    - fr_bio_fd_packet_ctx
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_recvfromto6(fr_bio_t *bio, void *packet_ctx, void
      *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:585,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/fd.c:586,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:588,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:589,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:591,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/bio/fd.c:594,1
    - Dst: CMSG_SPACE
      Src: /src/freeradius-server/src/lib/bio/fd.c:611,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/bio/fd.c:613,1
    - Dst: CMSG_LEN
      Src: /src/freeradius-server/src/lib/bio/fd.c:616,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/bio/fd.c:618,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:619,1
    - Dst: sendmsg
      Src: /src/freeradius-server/src/lib/bio/fd.c:625,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 630
    functionName: fr_bio_fd_sendfromto6
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - CMSG_LEN
    - UNCONST
    - CMSG_DATA
    - talloc_get_type_abort
    - CMSG_SPACE
    - CMSG_FIRSTHDR
    - memset
    - sendmsg
    - fr_bio_fd_packet_ctx
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_sendfromto6(fr_bio_t *bio, void *packet_ctx, const
      void *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: fr_bio_fd_udpfromto_init6
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_udpfromto_init6(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/bio/fd.c:645,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd.c:647,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/bio/fd.c:652,1
    - Dst: SUN_LEN
      Src: /src/freeradius-server/src/lib/bio/fd.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - sun
    - sunlen
    - filename
    argTypes:
    - struct sockaddr_un*
    - socklen_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: fr_filename_to_sockaddr
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - SUN_LEN
    - fr_strerror_const
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_filename_to_sockaddr(struct sockaddr_un *sun, socklen_t *sunlen,
      char const *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/bio/fd.c:667,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/fd.c:678,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/lib/bio/fd.c:679,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd.c:680,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd.c:680,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:684,1
    - Dst: fr_ipaddr_get_scope_id
      Src: /src/freeradius-server/src/lib/bio/fd.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 690
    functionName: fr_bio_fd_socket_name
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_ipaddr_is_inaddr_any
    - fr_strerror_printf
    - fr_syserror
    - getsockname
    - fr_ipaddr_get_scope_id
    - memset
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_name(fr_bio_fd_t *my)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_fd_t*::cb::connected
      Src: /src/freeradius-server/src/lib/bio/fd.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: fr_bio_fd_set_open
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_t*::cb::connected
    linkageType: ''
    returnType: void
    signature: void fr_bio_fd_set_open(fr_bio_fd_t *my)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:720,1
    - Dst: fr_filename_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:723,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:728,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:729,1
    - Dst: connect
      Src: /src/freeradius-server/src/lib/bio/fd.c:735,1
    - Dst: fr_bio_fd_socket_name
      Src: /src/freeradius-server/src/lib/bio/fd.c:739,1
    - Dst: fr_bio_fd_init_common
      Src: /src/freeradius-server/src/lib/bio/fd.c:741,1
    - Dst: fr_bio_fd_set_open
      Src: /src/freeradius-server/src/lib/bio/fd.c:743,1
    - Dst: fr_bio_write_blocked
      Src: /src/freeradius-server/src/lib/bio/fd.c:767,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:771,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:778,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:779,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 780
    functionName: fr_bio_fd_try_connect
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - fr_bio_shutdown
    - connect
    - fr_bio_fd_set_open
    - fr_filename_to_sockaddr
    - fr_bio_write_blocked
    - fr_bio_fd_init_common
    - fr_bio_fd_socket_name
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_try_connect(fr_bio_fd_t *my)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_fd_set_open
      Src: /src/freeradius-server/src/lib/bio/fd.c:788,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd.c:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 815
    functionName: fr_bio_fd_init_file
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_set_open
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_init_file(fr_bio_fd_t *my)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_fd_init_file
      Src: /src/freeradius-server/src/lib/bio/fd.c:821,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/bio/fd.c:830,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd.c:831,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd.c:857,1
    - Dst: fr_bio_fd_try_connect
      Src: /src/freeradius-server/src/lib/bio/fd.c:866,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:869,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:874,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 878
    functionName: fr_bio_fd_init_connected
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_is_inaddr_any
    - fr_assert
    - fr_bio_fd_init_file
    - fr_bio_error
    - fr_strerror_const
    - fr_bio_fd_try_connect
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_init_connected(fr_bio_fd_t *my)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/bio/fd.c:890,1
    - Dst: fr_bio_fd_udpfromto_init4
      Src: /src/freeradius-server/src/lib/bio/fd.c:896,1
    - Dst: fr_bio_fd_udpfromto_init6
      Src: /src/freeradius-server/src/lib/bio/fd.c:905,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd.c:912,1
    - Dst: fr_bio_fd_set_open
      Src: /src/freeradius-server/src/lib/bio/fd.c:916,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 919
    functionName: fr_bio_fd_init_common
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 1
    functionsReached:
    - fr_ipaddr_is_inaddr_any
    - fr_bio_fd_set_open
    - fr_bio_fd_udpfromto_init6
    - fr_bio_fd_udpfromto_init4
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_init_common(fr_bio_fd_t *my)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:923,1
    - Dst: listen
      Src: /src/freeradius-server/src/lib/bio/fd.c:928,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd.c:929,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd.c:929,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:930,1
    - Dst: fr_bio_fd_set_open
      Src: /src/freeradius-server/src/lib/bio/fd.c:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 936
    functionName: fr_bio_fd_init_listen
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - listen
    - fr_syserror
    - fr_strerror_printf
    - fr_bio_fd_set_open
    - fr_assert
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_init_listen(fr_bio_fd_t *my)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/fd.c:975,1
    - Dst: fr_bio_fd_open
      Src: /src/freeradius-server/src/lib/bio/fd.c:1002,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/fd.c:1003,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/fd.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - cfg
    - offset
    argTypes:
    - TALLOC_CTX*
    - fr_bio_fd_config_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1014
    functionName: fr_bio_fd_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 2
    functionsReached:
    - talloc_zero
    - fr_bio_fd_open
    - talloc_set_destructor
    - talloc_free
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_fd_alloc(TALLOC_CTX *ctx, fr_bio_fd_config_t const
      *cfg, size_t offset)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1023,1
    - Dst: shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:1042,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd.c:1046,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1053,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1070
    functionName: fr_bio_fd_close
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 1
    functionsReached:
    - shutdown
    - fr_bio_error
    - talloc_get_type_abort
    - close
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_close(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1077,1
    - Dst: fr_bio_fd_t*::connect::error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1082,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1089
    functionName: fr_bio_fd_el_error
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_t*::connect::error
    - fr_bio_shutdown
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_bio_fd_el_error(UNUSED fr_event_list_t *el, UNUSED int fd,
      UNUSED int flags, int fd_errno, void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1098,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1100,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1101,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1103,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1104,1
    - Dst: getsockopt
      Src: /src/freeradius-server/src/lib/bio/fd.c:1128,1
    - Dst: fr_bio_fd_el_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1129,1
    - Dst: fr_bio_fd_el_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1137,1
    - Dst: fr_bio_fd_try_connect
      Src: /src/freeradius-server/src/lib/bio/fd.c:1150,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1151,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/bio/fd.c:1154,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/bio/fd.c:1163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - NDEBUG_UNUSED
    - NDEBUG_UNUSED
    - NDEBUG_UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1095
    functionDepth: 3
    functionLinenumber: 1095
    functionLinenumberEnd: 1165
    functionName: fr_bio_fd_el_connect
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - talloc_get_type_abort
    - FR_TIMER_DELETE
    - fr_assert
    - fr_bio_fd_el_error
    - fr_bio_fd_try_connect
    - fr_bio_error
    linkageType: ''
    returnType: void
    signature: void fr_bio_fd_el_connect(NDEBUG_UNUSED fr_event_list_t *el, NDEBUG_UNUSED
      int fd, NDEBUG_UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1172,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1174,1
    - Dst: fr_bio_fd_t*::connect::timeout
      Src: /src/freeradius-server/src/lib/bio/fd.c:1176,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1179
    functionName: fr_bio_fd_el_timeout
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_shutdown
    - talloc_get_type_abort
    - fr_bio_fd_t*::connect::timeout
    linkageType: ''
    returnType: void
    signature: void fr_bio_fd_el_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1202,1
    - Dst: error_cb
      Src: /src/freeradius-server/src/lib/bio/fd.c:1214,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:1215,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1216,1
    - Dst: connected_cb
      Src: /src/freeradius-server/src/lib/bio/fd.c:1225,1
    - Dst: fr_bio_fd_set_open
      Src: /src/freeradius-server/src/lib/bio/fd.c:1235,1
    - Dst: fr_bio_fd_try_connect
      Src: /src/freeradius-server/src/lib/bio/fd.c:1250,1
    - Dst: error_cb
      Src: /src/freeradius-server/src/lib/bio/fd.c:1252,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/bio/fd.c:1275,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1283,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 6
    argNames:
    - bio
    - el
    - connected_cb
    - error_cb
    - timeout
    - timeout_cb
    argTypes:
    - fr_bio_t*
    - fr_event_list_t*
    - fr_bio_callback_t
    - fr_bio_callback_t
    - fr_time_delta_t*
    - fr_bio_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1290
    functionName: fr_bio_fd_connect_full
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 1
    functionsReached:
    - fr_bio_shutdown
    - connected_cb
    - fr_bio_fd_set_open
    - fr_event_fd_insert
    - talloc_get_type_abort
    - fr_timer_in
    - error_cb
    - fr_bio_fd_try_connect
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: "int fr_bio_fd_connect_full(fr_bio_t *bio, fr_event_list_t *el, fr_bio_callback_t
      connected_cb,\n\t\t\t   fr_bio_callback_t error_cb,\n\t\t\t   fr_time_delta_t
      *timeout, fr_bio_callback_t timeout_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1300
    functionName: fr_bio_fd_info
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_bio_fd_info_t
    signature: fr_bio_fd_info_t *fr_bio_fd_info(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1309,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/bio/fd.c:1312,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1320
    functionName: fr_bio_fd_read_discard_datagram
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - read
    - talloc_get_type_abort
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_read_discard_datagram(fr_bio_t *bio, UNUSED void
      *packet_ctx, void *buffer, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1328,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/bio/fd.c:1331,1
    - Dst: fr_bio_eof
      Src: /src/freeradius-server/src/lib/bio/fd.c:1334,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1343
    functionName: fr_bio_fd_read_discard_stream
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - read
    - fr_bio_eof
    - talloc_get_type_abort
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fd_read_discard_stream(fr_bio_t *bio, UNUSED void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1350,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd.c:1358,1
    - Dst: shutdown
      Src: /src/freeradius-server/src/lib/bio/fd.c:1367,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd.c:1368,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd.c:1368,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd.c:1382,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd.c:1383,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd.c:1383,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd.c:1392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1402
    functionName: fr_bio_fd_write_only
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 2
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - shutdown
    - talloc_get_type_abort
    - fr_strerror_const
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_write_only(fr_bio_t *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/freeradius-server/src/lib/bio/fd.c:1407,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/bio/fd.c:1409,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/bio/fd.c:1409,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd.c:1410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - sockaddr
    - salen
    - flags
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1416
    functionName: accept4
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - close
    - accept
    - fr_nonblock
    - fr_cloexec
    linkageType: ''
    returnType: int
    signature: int accept4(int fd, struct sockaddr *sockaddr, socklen_t *salen, UNUSED
      int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/freeradius-server/src/lib/bio/fd.c:1440,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1451,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd.c:1458,1
    - Dst: fr_bio_fd_init_common
      Src: /src/freeradius-server/src/lib/bio/fd.c:1468,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd.c:1471,1
    - Dst: fr_bio_fd_name
      Src: /src/freeradius-server/src/lib/bio/fd.c:1475,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd.c:1478,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - my
    - parent
    argTypes:
    - fr_bio_fd_t*
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1483
    functionName: fr_bio_fd_accept_stream
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - accept4
    - fr_bio_fd_init_common
    - fr_bio_fd_name
    - close
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_accept_stream(fr_bio_fd_t *my, fr_bio_fd_t const *parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd.c:1492,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1497,1
    - Dst: fr_bio_fd_alloc
      Src: /src/freeradius-server/src/lib/bio/fd.c:1502,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd.c:1503,1
    - Dst: fr_bio_fd_accept_stream
      Src: /src/freeradius-server/src/lib/bio/fd.c:1516,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd.c:1519,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/fd.c:1525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - out_p
    - bio
    argTypes:
    - TALLOC_CTX*
    - fr_bio_t**
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1489
    functionDepth: 3
    functionLinenumber: 1489
    functionLinenumberEnd: 1535
    functionName: fr_bio_fd_accept
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_alloc
    - talloc_free
    - fr_bio_fd_accept_stream
    - talloc_get_type_abort
    - fr_assert
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_accept(TALLOC_CTX *ctx, fr_bio_t **out_p, fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:66,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:71,1
    - Dst: fr_bio_eof
      Src: /src/freeradius-server/src/lib/bio/mem.c:77,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: fr_bio_mem_read_eof
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_eof
    - talloc_get_type_abort
    - fr_bio_buf_read
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_read_eof(fr_bio_t *bio, UNUSED void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:89,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: fr_bio_mem_eof
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_bio_buf_used
    linkageType: ''
    returnType: int
    signature: int fr_bio_mem_eof(fr_bio_t *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:121,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:127,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:129,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/mem.c:135,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:136,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/mem.c:142,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:143,1
    - Dst: fr_bio_buf_write_reserve
      Src: /src/freeradius-server/src/lib/bio/mem.c:149,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:150,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/mem.c:152,1
    - Dst: fr_bio_buf_write_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:159,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 172
    functionName: fr_bio_mem_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_next
    - talloc_get_type_abort
    - fr_bio_buf_write_reserve
    - fr_assert
    - fr_bio_buf_read
    - fr_bio_buf_write_alloc
    - fr_bio_t*::read
    - fr_bio_buf_write_room
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:182,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:188,1
    - Dst: fr_bio_mem_call_verify
      Src: /src/freeradius-server/src/lib/bio/mem.c:193,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:194,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:209,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:211,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/mem.c:222,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:223,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/mem.c:228,1
    - Dst: fr_bio_buf_make_room
      Src: /src/freeradius-server/src/lib/bio/mem.c:230,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:240,1
    - Dst: fr_bio_buf_write_reserve
      Src: /src/freeradius-server/src/lib/bio/mem.c:247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:248,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/mem.c:250,1
    - Dst: fr_bio_buf_write_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:261,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:263,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:265,1
    - Dst: fr_bio_mem_call_verify
      Src: /src/freeradius-server/src/lib/bio/mem.c:272,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:273,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:278,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 293
    functionName: fr_bio_mem_read_verify_stream
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_mem_call_verify
    - fr_bio_buf_make_room
    - talloc_get_type_abort
    - fr_bio_buf_used
    - fr_bio_next
    - fr_bio_buf_write_reserve
    - fr_bio_buf_read
    - fr_assert
    - fr_bio_buf_write_alloc
    - fr_bio_t*::read
    - fr_bio_buf_write_room
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_read_verify_stream(fr_bio_t *bio, void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:301,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/mem.c:307,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:308,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/mem.c:310,1
    - Dst: fr_bio_mem_t*::verify
      Src: /src/freeradius-server/src/lib/bio/mem.c:329,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:336,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/mem.c:356,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 366
    functionName: fr_bio_mem_read_verify_datagram
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_mem_t*::verify
    - fr_bio_shutdown
    - talloc_get_type_abort
    - fr_bio_next
    - fr_assert
    - fr_bio_t*::read
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_read_verify_datagram(fr_bio_t *bio, void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:379,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:387,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:387,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/mem.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:390,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/mem.c:395,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:403,1
    - Dst: fr_bio_write_blocked
      Src: /src/freeradius-server/src/lib/bio/mem.c:420,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:423,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/mem.c:436,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:441,1
    - Dst: fr_bio_buf_write
      Src: /src/freeradius-server/src/lib/bio/mem.c:448,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 458
    functionName: fr_bio_mem_write_next
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_t*::write
    - fr_bio_next
    - talloc_get_type_abort
    - fr_bio_write_blocked
    - fr_bio_buf_write
    - fr_assert
    - fr_bio_error
    - fr_bio_buf_write_room
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_write_next(fr_bio_t *bio, void *packet_ctx, void
      const *buffer, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:475,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/mem.c:481,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:482,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/mem.c:494,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:499,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:499,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:510,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:515,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:520,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - my
    - size
    argTypes:
    - fr_bio_mem_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 523
    functionName: fr_bio_mem_write_flush
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_t*::write
    - fr_bio_next
    - fr_bio_buf_used
    - fr_assert
    - fr_bio_buf_read
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_write_flush(fr_bio_mem_t *my, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:533,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/bio/mem.c:538,1
    - Dst: fr_bio_mem_write_flush
      Src: /src/freeradius-server/src/lib/bio/mem.c:538,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/mem.c:543,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:548,1
    - Dst: fr_bio_write_blocked
      Src: /src/freeradius-server/src/lib/bio/mem.c:560,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:563,1
    - Dst: fr_bio_buf_write
      Src: /src/freeradius-server/src/lib/bio/mem.c:569,1
    - Dst: fr_bio_write_blocked
      Src: /src/freeradius-server/src/lib/bio/mem.c:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 583
    functionName: fr_bio_mem_write_buffer
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - fr_bio_write_blocked
    - fr_bio_buf_write
    - fr_bio_buf_write_room
    - fr_bio_mem_write_flush
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_write_buffer(fr_bio_t *bio, UNUSED void *packet_ctx,
      void const *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:592,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bio
    - size
    argTypes:
    - fr_bio_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 600
    functionName: fr_bio_mem_read_peek
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_bio_buf_used
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_bio_mem_read_peek(fr_bio_t *bio, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:609,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - size
    argTypes:
    - fr_bio_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: fr_bio_mem_read_discard
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_read
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_bio_mem_read_discard(fr_bio_t *bio, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:629,1
    - Dst: fr_bio_mem_t*::verify
      Src: /src/freeradius-server/src/lib/bio/mem.c:644,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:651,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:659,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:668,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:669,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/mem.c:677,1
    - Dst: fr_bio_buf_reset
      Src: /src/freeradius-server/src/lib/bio/mem.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - bio
    - packet_ctx
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 690
    functionName: fr_bio_mem_call_verify
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 1
    functionsReached:
    - fr_bio_buf_reset
    - fr_bio_mem_t*::verify
    - fr_bio_shutdown
    - talloc_get_type_abort
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_bio_mem_call_verify(fr_bio_t *bio, void *packet_ctx, size_t
      *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:699,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/mem.c:700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - my
    - buf
    - size
    argTypes:
    - fr_bio_mem_t*
    - fr_bio_buf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 705
    functionName: fr_bio_mem_buf_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_alloc
    - talloc_free
    linkageType: ''
    returnType: bool
    signature: bool fr_bio_mem_buf_alloc(fr_bio_mem_t *my, fr_bio_buf_t *buf, size_t
      size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/mem.c:733,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/mem.c:745,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/mem.c:746,1
    - Dst: fr_bio_mem_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:756,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/mem.c:758,1
    - Dst: fr_bio_mem_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:764,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/mem.c:786,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/mem.c:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - read_size
    - write_size
    - next
    argTypes:
    - TALLOC_CTX*
    - size_t
    - size_t
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 790
    functionName: fr_bio_mem_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 1
    functionsReached:
    - fr_bio_mem_buf_alloc
    - talloc_set_destructor
    - talloc_free
    - talloc_zero
    - fr_bio_chain
    - fr_strerror_const
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_mem_alloc(TALLOC_CTX *ctx, size_t read_size, size_t
      write_size, fr_bio_t *next)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/mem.c:807,1
    - Dst: fr_bio_mem_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:810,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/mem.c:822,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/mem.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - write_size
    - next
    argTypes:
    - TALLOC_CTX*
    - size_t
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 826
    functionName: fr_bio_mem_source_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_mem_buf_alloc
    - talloc_zero
    - talloc_set_destructor
    - fr_bio_chain
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_mem_source_alloc(TALLOC_CTX *ctx, size_t write_size,
      fr_bio_t *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:834,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/mem.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: fr_bio_mem_read_buffer
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_read
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_read_buffer(fr_bio_t *bio, UNUSED void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:846,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/mem.c:851,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:856,1
    - Dst: fr_bio_buf_write
      Src: /src/freeradius-server/src/lib/bio/mem.c:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 864
    functionName: fr_bio_mem_write_read_buffer
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_error
    - fr_bio_buf_write
    - talloc_get_type_abort
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_mem_write_read_buffer(fr_bio_t *bio, UNUSED void *packet_ctx,
      void const *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/mem.c:879,1
    - Dst: fr_bio_mem_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/mem.c:882,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/mem.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - read_size
    argTypes:
    - TALLOC_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 892
    functionName: fr_bio_mem_sink_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - fr_bio_mem_buf_alloc
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_mem_sink_alloc(TALLOC_CTX *ctx, size_t read_size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:908,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:912,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/mem.c:917,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/mem.c:918,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:921,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/mem.c:923,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/mem.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - bio
    - verify
    - verify_ctx
    - datagram
    argTypes:
    - fr_bio_t*
    - fr_bio_verify_t
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 959
    functionName: fr_bio_mem_set_verify
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - fr_assert
    - fr_strerror_const
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_mem_set_verify(fr_bio_t *bio, fr_bio_verify_t verify, void
      *verify_ctx, bool datagram)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:974,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/mem.c:979,1
    - Dst: fr_bio_mem_write_flush
      Src: /src/freeradius-server/src/lib/bio/mem.c:984,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/mem.c:987,1
    - Dst: fr_bio_mem_t*::cb::write_resume
      Src: /src/freeradius-server/src/lib/bio/mem.c:994,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 995
    functionName: fr_bio_mem_write_resume
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_assert
    - fr_bio_mem_write_flush
    - fr_bio_mem_t*::cb::write_resume
    - fr_bio_buf_used
    linkageType: ''
    returnType: int
    signature: int fr_bio_mem_write_resume(fr_bio_t *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/mem.c:1005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1017
    functionName: fr_bio_mem_write_pause
    functionSourceFile: /src/freeradius-server/src/lib/bio/mem.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_bio_mem_write_pause(fr_bio_t *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/buf.c:32,1
    - Dst: fr_bio_buf_reset
      Src: /src/freeradius-server/src/lib/bio/buf.c:36,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/buf.c:37,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/bio/buf.c:40,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/buf.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: fr_bio_buf_make_room
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.c
    functionUses: 1
    functionsReached:
    - memmove
    - fr_bio_buf_reset
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: size_t
    signature: size_t fr_bio_buf_make_room(fr_bio_buf_t *bio_buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.c:52,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/bio/buf.c:62,1
    - Dst: fr_bio_buf_reset
      Src: /src/freeradius-server/src/lib/bio/buf.c:66,1
    - Dst: fr_bio_buf_make_room
      Src: /src/freeradius-server/src/lib/bio/buf.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - bio_buf
    - buffer
    - size
    argTypes:
    - fr_bio_buf_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: fr_bio_buf_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.c
    functionUses: 7
    functionsReached:
    - fr_bio_buf_verify
    - fr_bio_buf_reset
    - memcpy
    - fr_bio_buf_make_room
    linkageType: ''
    returnType: size_t
    signature: size_t fr_bio_buf_read(fr_bio_buf_t *bio_buf, void *buffer, size_t
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.c:88,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/buf.c:90,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.c:109,1
    - Dst: fr_bio_buf_contains
      Src: /src/freeradius-server/src/lib/bio/buf.c:109,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/bio/buf.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bio_buf
    - buffer
    - size
    argTypes:
    - fr_bio_buf_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 115
    functionName: fr_bio_buf_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.c
    functionUses: 5
    functionsReached:
    - memcpy
    - fr_bio_buf_contains
    - fr_bio_buf_verify
    - fr_assert
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_buf_write(fr_bio_buf_t *bio_buf, const void *buffer,
      size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/bio/buf.c:121,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/buf.c:124,1
    - Dst: fr_bio_buf_init
      Src: /src/freeradius-server/src/lib/bio/buf.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - bio_buf
    - size
    argTypes:
    - TALLOC_CTX*
    - fr_bio_buf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: fr_bio_buf_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.c
    functionUses: 2
    functionsReached:
    - fr_bio_buf_init
    - talloc_free
    - talloc_array
    linkageType: ''
    returnType: int
    signature: int fr_bio_buf_alloc(TALLOC_CTX *ctx, fr_bio_buf_t *bio_buf, size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:62,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:63,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:63,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:83,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:84,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - sock
    - cfg
    argTypes:
    - int
    - UNUSED*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 91
    functionName: fr_bio_fd_common_tcp
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_common_tcp(int fd, UNUSED fr_socket_t const *sock, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:107,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:108,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:108,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:118,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:119,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:119,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:134,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:135,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:135,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:150,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:151,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - fd
    - sock
    - cfg
    argTypes:
    - int
    - UNUSED*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 158
    functionName: fr_bio_fd_common_datagram
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_common_datagram(int fd, UNUSED fr_socket_t const *sock,
      fr_bio_fd_config_t const *cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:176,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:177,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:177,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:211,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:212,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:212,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:225,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:226,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:226,1
    - Dst: fr_bio_fd_common_datagram
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - fd
    - sock
    - cfg
    argTypes:
    - int
    - fr_socket_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 234
    functionName: fr_bio_fd_common_udp
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_common_datagram
    - fr_strerror_printf
    - fr_syserror
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_common_udp(int fd, fr_socket_t const *sock, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:243,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:244,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - sock
    argTypes:
    - int
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: fr_bio_fd_server_tcp
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_server_tcp(int fd, UNUSED fr_socket_t const *sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_fd_common_udp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:259,1
    - Dst: fr_bio_fd_server_tcp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - sock
    - cfg
    argTypes:
    - int
    - fr_socket_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: fr_bio_fd_server_ipv4
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_common_udp
    - fr_bio_fd_server_tcp
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_server_ipv4(int fd, fr_socket_t const *sock, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:276,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:276,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:277,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:277,1
    - Dst: fr_bio_fd_common_udp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:286,1
    - Dst: fr_bio_fd_server_tcp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - sock
    - cfg
    argTypes:
    - int
    - fr_socket_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 289
    functionName: fr_bio_fd_server_ipv6
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - if
    - fr_syserror
    - fr_strerror_printf
    - fr_bio_fd_server_tcp
    - fr_bio_fd_common_udp
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_server_ipv6(int fd, fr_socket_t const *sock, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:304,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:306,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:306,1
    - Dst: S_ISSOCK
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:316,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:317,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:326,1
    - Dst: fr_socket_client_unix
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:338,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:340,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:341,1
    - Dst: unlinkat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:348,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:349,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - dirfd
    - filename
    - cfg
    argTypes:
    - int
    - char*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 355
    functionName: fr_bio_fd_socket_unix_verify
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_socket_client_unix
    - unlinkat
    - fr_strerror_printf
    - fr_syserror
    - fstatat
    - S_ISSOCK
    - close
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_unix_verify(int dirfd, char const *filename, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_dirfd
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:378,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:381,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:382,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:384,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:385,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:385,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:387,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:388,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:393,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:398,1
    - Dst: fchmod
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:407,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:408,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:408,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:418,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:438,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:460,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:462,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:462,1
    - Dst: mkdirat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:471,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:472,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:472,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:474,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:478,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:480,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:480,1
    - Dst: fchmod
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:484,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:485,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:485,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:487,1
    - Dst: fchown
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:496,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:497,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:497,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:502,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:507,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:508,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 3
    argNames:
    - dirfd
    - filename
    - cfg
    argTypes:
    - int*
    - char**
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 511
    functionName: fr_bio_fd_socket_unix_mkdir
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fstat
    - talloc_free
    - open
    - fr_strerror_printf
    - fr_syserror
    - close
    - talloc_strdup
    - strrchr
    - openat
    - fr_assert
    - mkdirat
    - fchown
    - fr_dirfd
    - fchmod
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_unix_mkdir(int *dirfd, char const **filename,
      fr_bio_fd_config_t const *cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:515,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:525,1
    - Dst: fr_bio_fd_t*::user_shutdown
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:533,1
    - Dst: unlink
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:537,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 540
    functionName: fr_bio_fd_unix_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_bio_fd_t*::user_shutdown
    - talloc_get_type_abort
    - fr_assert
    - unlink
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_unix_shutdown(fr_bio_t *bio)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:561,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:570,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:575,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:582,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:591,1
    - Dst: fr_bio_fd_socket_unix_mkdir
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:594,1
    - Dst: fr_bio_fd_socket_unix_verify
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:601,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:603,1
    - Dst: fr_filename_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:614,1
    - Dst: bindat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:616,1
    - Dst: fr_filename_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:621,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:623,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:630,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:630,1
    - Dst: fchmod
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:638,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:639,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:639,1
    - Dst: fchown
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:648,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:649,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:649,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:660,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - my
    - cfg
    argTypes:
    - fr_bio_fd_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 663
    functionName: fr_bio_fd_socket_bind_unix
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - bind
    - bindat
    - strrchr
    - fr_strerror_printf
    - fr_bio_fd_socket_unix_mkdir
    - fr_filename_to_sockaddr
    - fr_syserror
    - fr_bio_fd_socket_unix_verify
    - fchown
    - close
    - fchmod
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_bind_unix(fr_bio_fd_t *my, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cap_enable
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:693,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:696,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:696,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:697,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - my
    - cfg
    argTypes:
    - fr_bio_fd_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 702
    functionName: fr_bio_fd_socket_bind_to_device
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - strlen
    - fr_cap_enable
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_bind_to_device(fr_bio_fd_t *my, fr_bio_fd_config_t
      const *cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:718,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:722,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:731,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - my
    - cfg
    argTypes:
    - fr_bio_fd_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 733
    functionName: fr_bio_fd_socket_bind_to_device
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_bind_to_device(fr_bio_fd_t *my, UNUSED fr_bio_fd_config_t
      const *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - my
    - cfg
    argTypes:
    - fr_bio_fd_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: fr_bio_fd_socket_bind_to_device
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_bind_to_device(fr_bio_fd_t *my, UNUSED fr_bio_fd_config_t
      const *cfg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:764,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:771,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:776,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:785,1
    - Dst: fr_cap_enable
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:791,1
    - Dst: fr_suid_up
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:798,1
    - Dst: fr_bio_fd_socket_bind_to_device
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:800,1
    - Dst: fr_suid_down
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:802,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:809,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:815,1
    - Dst: fr_suid_down
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:816,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:819,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:819,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:827,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:828,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:829,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:832,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:837,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:839,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:845,1
    - Dst: fr_suid_down
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:847,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:867,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:869,1
    - Dst: fr_suid_down
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:871,1
    - Dst: fr_suid_down
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:880,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:881,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:881,1
    - Dst: fr_bio_fd_socket_name
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:889,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 2
    argNames:
    - my
    - cfg
    argTypes:
    - fr_bio_fd_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 890
    functionName: fr_bio_fd_socket_bind
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - bind
    - geteuid
    - fr_bio_fd_socket_bind_to_device
    - fr_strerror_printf
    - fr_syserror
    - fr_rand
    - fr_assert
    - fr_bio_fd_socket_name
    - fr_suid_up
    - fr_strerror_const
    - fr_cap_enable
    - fr_suid_down
    - htons
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_socket_bind(fr_bio_fd_t *my, fr_bio_fd_config_t const
      *cfg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:904,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:909,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:910,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:915,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:920,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:930,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:932,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:934,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:939,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:945,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:948,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:952,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:955,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:961,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:971,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:973,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:978,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:983,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 989
    functionName: fr_bio_fd_name
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_box_ipaddr
    - fr_asprintf
    linkageType: ''
    returnType: void
    signature: void fr_bio_fd_name(fr_bio_fd_t *my)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1002,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1010,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1015,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1023,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1030,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1040,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1045,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1052
    functionName: fr_bio_fd_check_config
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_check_config(fr_bio_fd_config_t const *cfg)
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1062,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1064,1
    - Dst: fr_bio_fd_check_config
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1083,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1113,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1130,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1131,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1140,1
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1151,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1154,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1154,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1159,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1161,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1161,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1162,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1170,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1172,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1172,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1173,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1178,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1192,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1195,1
    - Dst: dup
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1199,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1201,1
    - Dst: dup
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1204,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1208,1
    - Dst: dup
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1212,1
    - Dst: fr_bio_fd_reopen
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1220,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1223,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1223,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1224,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1231,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1232,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1232,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1233,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1241,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1245,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1275,1
    - Dst: fr_bio_fd_common_udp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1282,1
    - Dst: fr_bio_fd_common_datagram
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1286,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1290,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1294,1
    - Dst: fr_bio_fd_socket_bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1298,1
    - Dst: fr_bio_fd_init_common
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1300,1
    - Dst: fr_bio_fd_common_udp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1311,1
    - Dst: fr_bio_fd_common_datagram
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1314,1
    - Dst: fr_bio_fd_common_tcp
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1319,1
    - Dst: fr_bio_fd_socket_bind_unix
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1325,1
    - Dst: fr_bio_fd_socket_bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1333,1
    - Dst: fr_bio_fd_init_connected
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1340,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1348,1
    - Dst: fr_bio_fd_server_ipv4
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1355,1
    - Dst: fr_bio_fd_socket_bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1357,1
    - Dst: fr_bio_fd_server_ipv6
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1361,1
    - Dst: fr_bio_fd_socket_bind
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1363,1
    - Dst: fr_bio_fd_socket_bind_unix
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1367,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1371,1
    - Dst: fr_bio_fd_init_listen
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1376,1
    - Dst: fr_bio_fd_name
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1383,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 239
    argCount: 2
    argNames:
    - bio
    - cfg
    argTypes:
    - fr_bio_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1386
    functionName: fr_bio_fd_open
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 1
    functionsReached:
    - fr_cloexec
    - fr_bio_fd_common_tcp
    - fr_strerror_printf
    - fr_bio_fd_socket_bind
    - fr_bio_fd_reopen
    - close
    - fr_bio_fd_socket_bind_unix
    - if_nametoindex
    - dup
    - talloc_get_type_abort
    - fr_nonblock
    - fr_bio_fd_name
    - fr_bio_fd_check_config
    - fr_bio_fd_server_ipv6
    - fr_strerror_const
    - fr_bio_fd_init_listen
    - fr_bio_error
    - fr_ipaddr_is_inaddr_any
    - fr_syserror
    - fr_bio_fd_common_datagram
    - fr_bio_fd_init_connected
    - fr_bio_fd_init_common
    - fr_assert
    - strcmp
    - fr_strerror_printf_push
    - socket
    - fr_bio_fd_server_ipv4
    - fr_strerror_clear
    - fr_bio_fd_common_udp
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_open(fr_bio_t *bio, fr_bio_fd_config_t const *cfg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1394,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1399,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1414,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1417,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1417,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1425,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1430,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1438,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1440,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1444,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1458,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1459,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1460,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1460,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/bio/fd_open.c:1464,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1466
    functionName: fr_bio_fd_reopen
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_open.c
    functionUses: 1
    functionsReached:
    - open
    - fr_strerror_printf
    - fr_syserror
    - strrchr
    - talloc_get_type_abort
    - openat
    - close
    - dup2
    - fr_strerror_const
    - fr_mkdir
    linkageType: ''
    returnType: int
    signature: int fr_bio_fd_reopen(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: fr_bio_destructor
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_bio_destructor(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/base.c:53,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/base.c:54,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/base.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: fr_bio_next_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 0
    functionsReached:
    - fr_bio_t*::read
    - fr_assert
    - fr_bio_next
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_next_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/base.c:68,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/base.c:69,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/base.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: fr_bio_next_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 0
    functionsReached:
    - fr_bio_t*::write
    - fr_assert
    - fr_bio_next
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_next_write(fr_bio_t *bio, void *packet_ctx, void const
      *buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: fr_bio_shutdown_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 0
    functionsReached:
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_shutdown_read(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void *buffer, UNUSED size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: fr_bio_shutdown_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 0
    functionsReached:
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_shutdown_write(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void const *buffer, UNUSED size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_head
      Src: /src/freeradius-server/src/lib/bio/base.c:107,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/base.c:118,1
    - Dst: fr_bio_common_t*::priv_cb::shutdown
      Src: /src/freeradius-server/src/lib/bio/base.c:122,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/base.c:129,1
    - Dst: fr_bio_common_t*::cb::shutdown
      Src: /src/freeradius-server/src/lib/bio/base.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 145
    functionName: fr_bio_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 8
    functionsReached:
    - talloc_set_destructor
    - fr_bio_head
    - fr_bio_next
    - fr_bio_common_t*::priv_cb::shutdown
    - fr_bio_common_t*::cb::shutdown
    linkageType: ''
    returnType: int
    signature: int fr_bio_shutdown(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/base.c:154,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/base.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: fr_bio_shutdown_intermediate
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 0
    functionsReached:
    - fr_bio_shutdown
    - fr_bio_prev
    linkageType: ''
    returnType: int
    signature: int fr_bio_shutdown_intermediate(fr_bio_t *bio)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:164,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:167,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:170,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/bio/base.c:171,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:173,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/bio/base.c:174,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:176,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:179,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:182,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/base.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - error
    argTypes:
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 191
    functionName: fr_bio_strerror
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 1
    functionsReached:
    - fr_syserror
    - fr_strerror
    - fr_bio_error
    linkageType: ''
    returnType: char
    signature: char *fr_bio_strerror(ssize_t error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/bio/base.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bio
    - cb
    argTypes:
    - fr_bio_t*
    - fr_bio_cb_funcs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: fr_bio_cb_set
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_bio_cb_set(fr_bio_t *bio, fr_bio_cb_funcs_t const *cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/base.c:233,1
    - Dst: cb::eof
      Src: /src/freeradius-server/src/lib/bio/base.c:240,1
    - Dst: priv_cb::eof
      Src: /src/freeradius-server/src/lib/bio/base.c:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 263
    functionName: fr_bio_eof
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 3
    functionsReached:
    - cb::eof
    - fr_bio_prev
    - priv_cb::eof
    linkageType: ''
    returnType: void
    signature: void fr_bio_eof(fr_bio_t *bio)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_prev
      Src: /src/freeradius-server/src/lib/bio/base.c:278,1
    - Dst: cb::write_blocked
      Src: /src/freeradius-server/src/lib/bio/base.c:286,1
    - Dst: priv_cb::write_blocked
      Src: /src/freeradius-server/src/lib/bio/base.c:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 309
    functionName: fr_bio_write_blocked
    functionSourceFile: /src/freeradius-server/src/lib/bio/base.c
    functionUses: 4
    functionsReached:
    - cb::write_blocked
    - priv_cb::write_blocked
    - fr_bio_prev
    linkageType: ''
    returnType: int
    signature: int fr_bio_write_blocked(fr_bio_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _my
    - ','
    - _packet_ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: fr_bio_fd_packet_ctx
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_priv.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_bio_fd_packet_ctx(_my, _packet_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: fr_bio_null_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_null_read(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void *buffer, UNUSED size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: fr_bio_null_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_null_write(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void const *buffer, UNUSED size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/null.c:49,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/null.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: fr_bio_fail_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/null.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fail_read(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void *buffer, UNUSED size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/null.c:58,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/null.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: fr_bio_fail_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/null.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_fail_write(UNUSED fr_bio_t *bio, UNUSED void *packet_ctx,
      UNUSED void const *buffer, UNUSED size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/network.c:52,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/network.c:57,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/network.c:58,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/network.c:61,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/network.c:62,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/network.c:64,1
    - Dst: fr_bio_fd_packet_ctx
      Src: /src/freeradius-server/src/lib/bio/network.c:67,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/bio/network.c:72,1
    - Dst: fr_bio_network_t*::discard
      Src: /src/freeradius-server/src/lib/bio/network.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: fr_bio_network_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/network.c
    functionUses: 0
    functionsReached:
    - fr_bio_network_t*::discard
    - fr_bio_next
    - talloc_get_type_abort
    - fr_assert
    - fr_trie_lookup_by_key
    - fr_bio_t*::read
    - fr_strerror_const
    - fr_bio_fd_packet_ctx
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_network_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/bio/network.c:106,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/bio/network.c:106,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/network.c:107,1
    - Dst: fr_bio_fd_info
      Src: /src/freeradius-server/src/lib/bio/network.c:111,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/network.c:112,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/network.c:130,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/network.c:137,1
    - Dst: fr_bio_network_trie_alloc
      Src: /src/freeradius-server/src/lib/bio/network.c:146,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/network.c:148,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/network.c:152,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/network.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - allow
    - deny
    - discard
    - next
    argTypes:
    - TALLOC_CTX*
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    - fr_bio_read_t
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 156
    functionName: fr_bio_network_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/network.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - fr_bio_fd_info
    - talloc_free
    - talloc_get_name
    - fr_assert
    - talloc_zero
    - strcmp
    - fr_bio_chain
    - fr_strerror_const
    - fr_bio_network_trie_alloc
    linkageType: ''
    returnType: fr_bio_t
    signature: "fr_bio_t *fr_bio_network_alloc(TALLOC_CTX *ctx, fr_ipaddr_t const
      *allow, fr_ipaddr_t const *deny,\n\t\t\t       fr_bio_read_t discard, fr_bio_t
      *next)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/bio/network.c:166,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/bio/network.c:169,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/network.c:170,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:179,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:180,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/network.c:182,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/bio/network.c:192,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:194,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:195,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/bio/network.c:202,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:203,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:203,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/bio/network.c:211,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:224,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:225,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/bio/network.c:232,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:234,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:234,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/bio/network.c:241,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:243,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:244,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:252,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:253,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/bio/network.c:260,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/bio/network.c:261,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/bio/network.c:261,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - ctx
    - af
    - allow
    - deny
    argTypes:
    - TALLOC_CTX*
    - int
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 267
    functionName: fr_bio_network_trie_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/network.c
    functionUses: 1
    functionsReached:
    - fr_trie_match_by_key
    - fr_trie_insert_by_key
    - talloc_free
    - fr_strerror_printf
    - fr_assert
    - talloc_array_length
    - fr_trie_lookup_by_key
    - fr_trie_alloc
    - fr_box_ipaddr
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *fr_bio_network_trie_alloc(TALLOC_CTX *ctx, int af, fr_ipaddr_t
      const *allow, fr_ipaddr_t const *deny)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:61,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:61,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:66,1
    - Dst: fr_bio_shutdown
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:68,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:69,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:101,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:118,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:126,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:130,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:131,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:133,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:138,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 86
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_haproxy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 147
    functionName: fr_bio_haproxy_v1
    functionSourceFile: /src/freeradius-server/src/lib/bio/haproxy.c
    functionUses: 0
    functionsReached:
    - fr_bio_shutdown
    - fr_inet_pton
    - fr_bio_buf_used
    - fr_assert
    - strtoul
    - memcmp
    - fr_strerror_const
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_haproxy_v1(fr_bio_haproxy_t *my)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:157,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:161,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:168,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:175,1
    - Dst: fr_bio_haproxy_t*::cb::connected
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - UNUSED*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: fr_bio_haproxy_read_next
    functionSourceFile: /src/freeradius-server/src/lib/bio/haproxy.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_read
    - talloc_get_type_abort
    - fr_bio_haproxy_t*::cb::connected
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_haproxy_read_next(fr_bio_t *bio, UNUSED void *packet_ctx,
      void *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:191,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:194,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:195,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:197,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:197,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:199,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:199,1
    - Dst: fr_bio_buf_write_alloc
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:202,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:209,1
    - Dst: fr_bio_haproxy_v1
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:214,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:220,1
    - Dst: fr_bio_haproxy_read_next
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: fr_bio_haproxy_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/haproxy.c
    functionUses: 0
    functionsReached:
    - fr_bio_haproxy_v1
    - talloc_get_type_abort
    - fr_bio_next
    - fr_bio_buf_used
    - fr_bio_haproxy_read_next
    - fr_assert
    - fr_bio_buf_read
    - fr_bio_buf_write_alloc
    - fr_bio_t*::read
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_haproxy_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:233,1
    - Dst: fr_bio_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:236,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:237,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:245,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - cb
    - next
    argTypes:
    - TALLOC_CTX*
    - fr_bio_cb_funcs_t*
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: fr_bio_haproxy_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/haproxy.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - fr_bio_buf_alloc
    - talloc_zero
    - fr_bio_chain
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_bio_haproxy_alloc(TALLOC_CTX *ctx, fr_bio_cb_funcs_t *cb,
      fr_bio_t *next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/haproxy.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: fr_bio_haproxy_info
    functionSourceFile: /src/freeradius-server/src/lib/bio/haproxy.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_bio_haproxy_info_t
    signature: fr_bio_haproxy_info_t *fr_bio_haproxy_info(fr_bio_t *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_dedup_timer_reset
      Src: /src/freeradius-server/src/lib/bio/dedup.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - my
    - item
    argTypes:
    - fr_bio_dedup_t*
    - fr_bio_dedup_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: fr_bio_dedup_timer_reset_item
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_dedup_timer_reset
    linkageType: ''
    returnType: void
    signature: void fr_bio_dedup_timer_reset_item(fr_bio_dedup_t *my, fr_bio_dedup_entry_t
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:183,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:185,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/bio/dedup.c:191,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/dedup.c:191,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - my
    - item
    argTypes:
    - fr_bio_dedup_t*
    - fr_bio_dedup_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 198
    functionName: fr_bio_dedup_replied
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_dedup_list_remove
    - fr_time
    - fr_assert
    - fr_rb_insert
    - fr_time_add_time_delta
    linkageType: ''
    returnType: void
    signature: void fr_bio_dedup_replied(fr_bio_dedup_t *my, fr_bio_dedup_entry_t
      *item)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:216,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:230,1
    - Dst: fr_bio_dedup_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/dedup.c:231,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/bio/dedup.c:234,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/dedup.c:234,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/bio/dedup.c:253,1
    - Dst: fr_bio_dedup_timer_reset_item
      Src: /src/freeradius-server/src/lib/bio/dedup.c:262,1
    - Dst: fr_bio_dedup_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/dedup.c:264,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:275,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:279,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:280,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/dedup.c:286,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:287,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:292,1
    - Dst: fr_bio_dedup_replied
      Src: /src/freeradius-server/src/lib/bio/dedup.c:294,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:301,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:307,1
    - Dst: fr_bio_dedup_release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:318,1
    - Dst: fr_bio_dedup_blocked
      Src: /src/freeradius-server/src/lib/bio/dedup.c:325,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - bio
    - item
    argTypes:
    - fr_bio_t*
    - fr_bio_dedup_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 326
    functionName: fr_bio_dedup_respond
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_dedup_list_remove
    - fr_time
    - fr_bio_dedup_timer_reset_item
    - fr_bio_t*::write
    - talloc_get_type_abort
    - fr_bio_next
    - fr_assert
    - fr_bio_dedup_list_insert_tail
    - fr_time_add_time_delta
    - fr_rb_remove_by_inline_node
    - fr_bio_dedup_replied
    - fr_bio_dedup_release
    - fr_bio_dedup_blocked
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_respond(fr_bio_t *bio, fr_bio_dedup_entry_t *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/bio/dedup.c:338,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/bio/dedup.c:340,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:355,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/bio/dedup.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_dedup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 369
    functionName: fr_bio_dedup_timer_reset
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 1
    functionsReached:
    - fr_rb_first
    - fr_assert
    - fr_timer_at
    - talloc_const_free
    linkageType: ''
    returnType: int
    signature: int fr_bio_dedup_timer_reset(fr_bio_dedup_t *my)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_dedup_t*::release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:376,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:383,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/bio/dedup.c:392,1
    - Dst: fr_bio_dedup_timer_reset_item
      Src: /src/freeradius-server/src/lib/bio/dedup.c:394,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:401,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:408,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:414,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:424,1
    - Dst: fr_bio_dedup_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - my
    - item
    - reason
    argTypes:
    - fr_bio_dedup_t*
    - fr_bio_dedup_entry_t*
    - fr_bio_dedup_release_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 426
    functionName: fr_bio_dedup_release
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 1
    functionsReached:
    - fr_bio_dedup_list_remove
    - fr_bio_dedup_timer_reset_item
    - fr_bio_dedup_t*::release
    - fr_bio_dedup_list_insert_head
    - fr_assert
    - fr_rb_remove_by_inline_node
    linkageType: ''
    returnType: void
    signature: void fr_bio_dedup_release(fr_bio_dedup_t *my, fr_bio_dedup_entry_t
      *item, fr_bio_dedup_release_reason_t reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:441,1
    - Dst: fr_bio_dedup_list_num_elements
      Src: /src/freeradius-server/src/lib/bio/dedup.c:446,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/dedup.c:451,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:452,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/dedup.c:454,1
    - Dst: fr_bio_dedup_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:460,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:461,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/bio/dedup.c:466,1
    - Dst: fr_bio_dedup_release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:467,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:474,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:481,1
    - Dst: fr_bio_dedup_blocked
      Src: /src/freeradius-server/src/lib/bio/dedup.c:486,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:488,1
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/bio/dedup.c:496,1
    - Dst: fr_bio_dedup_timer_reset
      Src: /src/freeradius-server/src/lib/bio/dedup.c:498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_dedup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 502
    functionName: fr_bio_dedup_flush_pending
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_time
    - fr_bio_dedup_list_pop_head
    - fr_bio_t*::write
    - fr_bio_dedup_timer_reset
    - fr_bio_next
    - fr_rb_first
    - fr_assert
    - fr_time_lteq
    - fr_bio_dedup_list_num_elements
    - fr_rb_insert
    - fr_bio_dedup_release
    - fr_bio_dedup_blocked
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_flush_pending(fr_bio_dedup_t *my)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_size
      Src: /src/freeradius-server/src/lib/bio/dedup.c:513,1
    - Dst: fr_bio_buf_alloc
      Src: /src/freeradius-server/src/lib/bio/dedup.c:514,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:517,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/dedup.c:517,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:518,1
    - Dst: fr_bio_buf_write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - my
    - buffer
    - size
    - rcode
    argTypes:
    - fr_bio_dedup_t*
    - uint8_t*
    - size_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 523
    functionName: fr_bio_dedup_buffer_save
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_alloc
    - fr_bio_buf_size
    - fr_bio_buf_write
    - fr_assert
    - fr_bio_buf_used
    linkageType: ''
    returnType: int
    signature: int fr_bio_dedup_buffer_save(fr_bio_dedup_t *my, uint8_t const *buffer,
      size_t size, ssize_t rcode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:534,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/dedup.c:536,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:537,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/dedup.c:542,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:543,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:545,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/dedup.c:553,1
    - Dst: fr_bio_buf_reset
      Src: /src/freeradius-server/src/lib/bio/dedup.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - my
    argTypes:
    - fr_bio_dedup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 561
    functionName: fr_bio_dedup_buffer_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_buf_reset
    - fr_bio_t*::write
    - fr_bio_next
    - fr_assert
    - fr_bio_buf_used
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_buffer_write(fr_bio_dedup_t *my)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:574,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:575,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:577,1
    - Dst: fr_bio_dedup_buffer_write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:580,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/bio/dedup.c:596,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/bio/dedup.c:596,1
    - Dst: fr_bio_dedup_release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:597,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:605,1
    - Dst: fr_bio_dedup_timer_reset
      Src: /src/freeradius-server/src/lib/bio/dedup.c:607,1
    - Dst: fr_bio_dedup_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:620,1
    - Dst: fr_bio_dedup_flush_pending
      Src: /src/freeradius-server/src/lib/bio/dedup.c:626,1
    - Dst: fr_bio_dedup_write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:638,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 639
    functionName: fr_bio_dedup_write_partial
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_time
    - fr_bio_dedup_buffer_write
    - talloc_get_type_abort
    - fr_bio_dedup_list_insert_head
    - fr_assert
    - fr_time_lteq
    - fr_rb_insert
    - fr_bio_dedup_flush_pending
    - fr_bio_dedup_write
    - fr_bio_dedup_release
    - fr_bio_dedup_timer_reset
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_write_partial(fr_bio_t *bio, void *packet_ctx,
      const void *buffer, size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:651,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:652,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:653,1
    - Dst: fr_bio_dedup_buffer_save
      Src: /src/freeradius-server/src/lib/bio/dedup.c:655,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:655,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:659,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/bio/dedup.c:667,1
    - Dst: fr_bio_dedup_timer_reset_item
      Src: /src/freeradius-server/src/lib/bio/dedup.c:668,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:675,1
    - Dst: fr_bio_dedup_list_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:675,1
    - Dst: fr_bio_dedup_list_remove
      Src: /src/freeradius-server/src/lib/bio/dedup.c:676,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:685,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - my
    - item
    - rcode
    argTypes:
    - fr_bio_dedup_t*
    - fr_bio_dedup_entry_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 698
    functionName: fr_bio_dedup_blocked
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 2
    functionsReached:
    - fr_bio_dedup_list_remove
    - fr_bio_dedup_list_head
    - fr_bio_dedup_timer_reset_item
    - fr_assert
    - fr_rb_remove_by_inline_node
    - fr_bio_dedup_buffer_save
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_blocked(fr_bio_dedup_t *my, fr_bio_dedup_entry_t
      *item, ssize_t rcode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:705,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:707,1
    - Dst: fr_bio_dedup_buffer_write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:712,1
    - Dst: fr_bio_dedup_flush_pending
      Src: /src/freeradius-server/src/lib/bio/dedup.c:718,1
    - Dst: fr_bio_dedup_write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 726
    functionName: fr_bio_dedup_write_data
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_dedup_buffer_write
    - talloc_get_type_abort
    - fr_assert
    - fr_bio_dedup_flush_pending
    - fr_bio_dedup_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_write_data(fr_bio_t *bio, void *packet_ctx, const
      void *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:739,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:740,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:741,1
    - Dst: fr_bio_dedup_buffer_save
      Src: /src/freeradius-server/src/lib/bio/dedup.c:743,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - my
    - buffer
    - size
    - rcode
    argTypes:
    - fr_bio_dedup_t*
    - uint8_t*
    - size_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 751
    functionName: fr_bio_dedup_blocked_data
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_dedup_buffer_save
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_blocked_data(fr_bio_dedup_t *my, uint8_t const
      *buffer, size_t size, ssize_t rcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:763,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:767,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:768,1
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/bio/dedup.c:768,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/bio/dedup.c:778,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/bio/dedup.c:778,1
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/bio/dedup.c:780,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/bio/dedup.c:781,1
    - Dst: fr_bio_dedup_release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:783,1
    - Dst: fr_bio_dedup_timer_reset
      Src: /src/freeradius-server/src/lib/bio/dedup.c:786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - uctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 787
    functionName: fr_bio_dedup_timer
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_time_gt
    - fr_time_add
    - talloc_get_type_abort
    - fr_rb_first
    - fr_assert
    - fr_time_delta_from_msec
    - fr_bio_dedup_release
    - fr_bio_dedup_timer_reset
    linkageType: ''
    returnType: void
    signature: void fr_bio_dedup_timer(UNUSED fr_timer_list_t *tl, fr_time_t now,
      void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:801,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:804,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/dedup.c:809,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:810,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:817,1
    - Dst: fr_bio_t*::write
      Src: /src/freeradius-server/src/lib/bio/dedup.c:827,1
    - Dst: fr_bio_dedup_t*::get_item
      Src: /src/freeradius-server/src/lib/bio/dedup.c:835,1
    - Dst: fr_bio_dedup_replied
      Src: /src/freeradius-server/src/lib/bio/dedup.c:837,1
    - Dst: fr_bio_dedup_blocked_data
      Src: /src/freeradius-server/src/lib/bio/dedup.c:841,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:843,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:844,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:845,1
    - Dst: fr_bio_dedup_blocked
      Src: /src/freeradius-server/src/lib/bio/dedup.c:847,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 848
    functionName: fr_bio_dedup_write
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 2
    functionsReached:
    - fr_bio_dedup_t*::get_item
    - fr_bio_t*::write
    - talloc_get_type_abort
    - fr_bio_next
    - fr_assert
    - fr_bio_dedup_blocked
    - fr_bio_dedup_replied
    - fr_bio_dedup_blocked_data
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_write(fr_bio_t *bio, void *packet_ctx, void const
      *buffer, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:854,1
    - Dst: fr_bio_next
      Src: /src/freeradius-server/src/lib/bio/dedup.c:860,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:861,1
    - Dst: fr_bio_t*::read
      Src: /src/freeradius-server/src/lib/bio/dedup.c:866,1
    - Dst: fr_bio_dedup_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:872,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:873,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:875,1
    - Dst: fr_bio_dedup_t*::receive
      Src: /src/freeradius-server/src/lib/bio/dedup.c:905,1
    - Dst: fr_bio_dedup_list_insert_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:907,1
    - Dst: fr_bio_dedup_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/dedup.c:911,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 914
    functionName: fr_bio_dedup_read
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_bio_dedup_list_pop_head
    - fr_bio_dedup_t*::receive
    - talloc_get_type_abort
    - fr_bio_next
    - fr_bio_dedup_list_insert_head
    - fr_assert
    - fr_bio_dedup_list_insert_tail
    - fr_bio_t*::read
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bio_dedup_read(fr_bio_t *bio, void *packet_ctx, void *buffer,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:921,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:922,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/bio/dedup.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 925
    functionName: _entry_cmp
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t _entry_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:934,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:936,1
    - Dst: fr_bio_dedup_release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bio
    - item
    argTypes:
    - fr_bio_t*
    - fr_bio_dedup_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 939
    functionName: fr_bio_dedup_entry_cancel
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_dedup_release
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_bio_dedup_entry_cancel(fr_bio_t *bio, fr_bio_dedup_entry_t
      *item)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:952,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:972,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/lib/bio/dedup.c:973,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/bio/dedup.c:980,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:981,1
    - Dst: fr_bio_dedup_timer_reset
      Src: /src/freeradius-server/src/lib/bio/dedup.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - bio
    - item
    - expires
    argTypes:
    - fr_bio_t*
    - fr_bio_dedup_entry_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 994
    functionName: fr_bio_dedup_entry_extend
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_assert
    - fr_rb_insert
    - fr_rb_remove_by_inline_node
    - fr_bio_dedup_timer_reset
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_bio_dedup_entry_extend(fr_bio_t *bio, fr_bio_dedup_entry_t *item,
      fr_time_t expires)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1004,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1006,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1012,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1013,1
    - Dst: fr_bio_dedup_t*::release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1014,1
    - Dst: fr_bio_dedup_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1017,1
    - Dst: fr_bio_dedup_t*::release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1018,1
    - Dst: fr_bio_dedup_list_pop_head
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1021,1
    - Dst: fr_bio_dedup_t*::release
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1031
    functionName: fr_bio_dedup_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_delete_inorder
    - fr_bio_dedup_list_pop_head
    - talloc_get_type_abort
    - fr_bio_dedup_t*::release
    - talloc_const_free
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: int
    signature: int fr_bio_dedup_shutdown(fr_bio_t *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1047,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1055,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1062,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1064,1
    - Dst: fr_bio_dedup_list_init
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1071,1
    - Dst: fr_bio_dedup_list_insert_tail
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1076,1
    - Dst: fr_bio_dedup_list_init
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1079,1
    - Dst: fr_bio_dedup_list_init
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1080,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1082,1
    - Dst: fr_bio_chain
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1094,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/bio/dedup.c:1098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 7
    argNames:
    - ctx
    - max_saved
    - receive
    - release
    - get_item
    - cfg
    - next
    argTypes:
    - TALLOC_CTX*
    - size_t
    - fr_bio_dedup_receive_t
    - fr_bio_dedup_release_t
    - fr_bio_dedup_get_item_t
    - fr_bio_dedup_config_t*
    - fr_bio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1101
    functionName: fr_bio_dedup_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/dedup.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - talloc_array
    - fr_assert
    - talloc_zero
    - fr_bio_dedup_list_init
    - fr_bio_dedup_list_insert_tail
    - fr_bio_chain
    - fr_rb_inline_init
    linkageType: ''
    returnType: fr_bio_t
    signature: "fr_bio_t *fr_bio_dedup_alloc(TALLOC_CTX *ctx, size_t max_saved,\n\t\t\t
      \    fr_bio_dedup_receive_t receive,\n\t\t\t     fr_bio_dedup_release_t release,\n\t\t\t
      \    fr_bio_dedup_get_item_t get_item,\n\t\t\t     fr_bio_dedup_config_t const
      *cfg,\n\t\t\t     fr_bio_t *next)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:44,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:44,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:46,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: mode_parse
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_config.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - cf_log_err
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int mode_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void *parent,
      CONF_ITEM *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:64,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:64,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:68,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:70,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:74,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:74,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:80,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:82,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:90,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:91,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    - transport_table
    - transport_table_len
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    - fr_table_ptr_sorted_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 104
    functionName: common_transport_parse
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_config.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_log_perr
    - cf_parent
    - cf_section_find
    - cf_pair_value
    - cf_section_rules_push
    - fr_table_value_by_str
    - strcmp
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int common_transport_parse(UNUSED TALLOC_CTX *ctx, void *out, void
      *parent, CONF_ITEM *ci, UNUSED conf_parser_t const *rule, fr_table_ptr_sorted_t
      const *transport_table, size_t transport_table_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:245,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:245,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:246,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:246,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:248,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:249,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:253,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:254,1
    - Dst: common_transport_parse
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 268
    functionName: client_transport_parse
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_config.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_log_perr
    - cf_parent
    - cf_pair_value
    - cf_section_rules_push
    - common_transport_parse
    - strcmp
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int client_transport_parse(TALLOC_CTX *ctx, void *out, void *parent,
      CONF_ITEM *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: common_transport_parse
      Src: /src/freeradius-server/src/lib/bio/fd_config.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 418
    functionName: server_transport_parse
    functionSourceFile: /src/freeradius-server/src/lib/bio/fd_config.c
    functionUses: 0
    functionsReached:
    - common_transport_parse
    linkageType: ''
    returnType: int
    signature: int server_transport_parse(TALLOC_CTX *ctx, void *out, void *parent,
      CONF_ITEM *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bio_buf
    - buffer
    - size
    argTypes:
    - fr_bio_buf_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: fr_bio_buf_init
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_init(fr_bio_buf_t *bio_buf, uint8_t *buffer, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:52,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:53,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:54,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: fr_bio_buf_verify
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 2
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_verify(fr_bio_buf_t const *bio_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: fr_bio_buf_reset
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 5
    functionsReached:
    - fr_bio_buf_verify
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_reset(fr_bio_buf_t *bio_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: fr_bio_buf_initialized
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_initialized(fr_bio_buf_t const *bio_buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_initialized
      Src: /src/freeradius-server/src/lib/bio/buf.h:75,1
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fr_bio_buf_used
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 17
    functionsReached:
    - fr_bio_buf_verify
    - fr_bio_buf_initialized
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_used(fr_bio_buf_t const *bio_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: fr_bio_buf_write_room
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 9
    functionsReached:
    - fr_bio_buf_verify
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_write_room(fr_bio_buf_t const *bio_buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:91,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/buf.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bio_buf
    - size
    argTypes:
    - fr_bio_buf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: fr_bio_buf_write_reserve
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 2
    functionsReached:
    - fr_bio_buf_verify
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_write_reserve(fr_bio_buf_t *bio_buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:100,1
    - Dst: fr_bio_buf_write_room
      Src: /src/freeradius-server/src/lib/bio/buf.h:102,1
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bio_buf
    - size
    argTypes:
    - fr_bio_buf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: fr_bio_buf_write_alloc
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 3
    functionsReached:
    - fr_bio_buf_verify
    - fr_bio_buf_write_room
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_write_alloc(fr_bio_buf_t *bio_buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:113,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:115,1
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:118,1
    - Dst: fr_bio_buf_reset
      Src: /src/freeradius-server/src/lib/bio/buf.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bio_buf
    - size
    argTypes:
    - fr_bio_buf_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: fr_bio_buf_write_undo
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 0
    functionsReached:
    - fr_bio_buf_verify
    - fr_bio_buf_reset
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_write_undo(fr_bio_buf_t *bio_buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - bio_buf
    - buffer
    argTypes:
    - fr_bio_buf_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: fr_bio_buf_contains
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_bio_buf_contains(fr_bio_buf_t *bio_buf, void const *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_initialized
      Src: /src/freeradius-server/src/lib/bio/buf.h:133,1
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:135,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:138,1
    - Dst: fr_bio_buf_used
      Src: /src/freeradius-server/src/lib/bio/buf.h:138,1
    - Dst: fr_bio_buf_read
      Src: /src/freeradius-server/src/lib/bio/buf.h:140,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/bio/buf.h:146,1
    - Dst: fr_bio_buf_contains
      Src: /src/freeradius-server/src/lib/bio/buf.h:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio_buf
    - buffer
    - size
    - written
    argTypes:
    - fr_bio_buf_t*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: fr_bio_buf_write_update
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 0
    functionsReached:
    - fr_bio_buf_contains
    - fr_bio_buf_verify
    - fr_bio_buf_initialized
    - fr_assert
    - fr_bio_buf_read
    - fr_bio_buf_used
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_write_update(fr_bio_buf_t *bio_buf, void const *buffer,
      size_t size, size_t written)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bio_buf_verify
      Src: /src/freeradius-server/src/lib/bio/buf.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio_buf
    argTypes:
    - fr_bio_buf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: fr_bio_buf_size
    functionSourceFile: /src/freeradius-server/src/lib/bio/buf.h
    functionUses: 2
    functionsReached:
    - fr_bio_buf_verify
    linkageType: ''
    returnType: void
    signature: void fr_bio_buf_size(fr_bio_buf_t const *bio_buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:51,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:53,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:61,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:66,1
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:67,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:72,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:73,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:73,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:76,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:77,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:81,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:81,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:81,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:83,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:85,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:86,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - request
    - input_pairs
    - envp
    - envlen
    - shell_escape
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - char**
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 96
    functionName: exec_pair_to_env_legacy
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_legacy.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_next
    - fr_pair_dcursor_by_da_init
    - toupper
    - DEBUG3
    - fr_dcursor_next
    - FR_SBUFF_OUT
    - memcpy
    - talloc_strdup
    - snprintf
    - fr_dict_root
    - fr_dict_internal
    - isalpha
    - fr_pair_list_head
    - strlen
    - fr_dict_attr_child_by_num
    - fr_pair_print_value_quoted
    linkageType: ''
    returnType: void
    signature: "void exec_pair_to_env_legacy(request_t *request, fr_pair_list_t *input_pairs,
      char **envp,\n\t\t\t\t    size_t envlen, bool shell_escape)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:114,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:116,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:116,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:124,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:133,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:134,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:136,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:140,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:141,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:143,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:147,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:148,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:150,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:153,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:154,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:164,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:167,1
    - Dst: fr_closefrom
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:174,1
    - Dst: fr_atexit_thread_local_disarm_all
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:181,1
    - Dst: execve
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:191,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:192,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:192,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 7
    argNames:
    - request
    - argv
    - envp
    - exec_wait
    - stdin_pipe
    - stdout_pipe
    - stderr_pipe
    argTypes:
    - request_t*
    - char**
    - char**
    - bool
    - int[]
    - int[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 201
    functionName: exec_child_legacy
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_legacy.c
    functionUses: 0
    functionsReached:
    - fr_closefrom
    - fr_atexit_thread_local_disarm_all
    - open
    - fr_syserror
    - close
    - execve
    - fprintf
    - exit
    - dup2
    - printf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: "NEVER_RETURNS exec_child_legacy(request_t *request, char **argv, char
      **envp,\n\t\t\t\t\t    bool exec_wait,\n\t\t\t\t\t    int stdin_pipe[static
      2], int stdout_pipe[static 2], int stderr_pipe[static 2])"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:249,1
    - Dst: rad_expand_xlat
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:250,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:252,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:257,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:265,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:266,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:266,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:271,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:272,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:272,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:275,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:276,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:277,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:278,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:279,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:280,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:285,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:286,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:286,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:293,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:293,1
    - Dst: exec_pair_to_env_legacy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:295,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:297,1
    - Dst: exec_child_legacy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:299,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:305,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:311,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:311,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:326,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:330,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:334,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:337,1
    - Dst: fr_event_pid_wait
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:339,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 8
    argNames:
    - stdin_fd
    - stdout_fd
    - stderr_fd
    - cmd
    - request
    - exec_wait
    - input_pairs
    - shell_escape
    argTypes:
    - int*
    - int*
    - int*
    - char*
    - request_t*
    - bool
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 343
    functionName: radius_start_program_legacy
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_legacy.c
    functionUses: 1
    functionsReached:
    - ERROR
    - rad_expand_xlat
    - memcpy
    - talloc_free
    - pipe
    - unlang_interpret_event_list
    - fr_syserror
    - exec_pair_to_env_legacy
    - fr_event_pid_wait
    - ROPTIONAL
    - talloc_zero_array
    - fork
    - close
    - exec_child_legacy
    - MEM
    - DEBUG3
    linkageType: ''
    returnType: pid_t
    signature: "pid_t radius_start_program_legacy(int *stdin_fd, int *stdout_fd, int
      *stderr_fd,\n\t\t\t\t  char const *cmd, request_t *request, bool exec_wait,\n\t\t\t\t
      \ fr_pair_list_t *input_pairs, bool shell_escape)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:363,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:368,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:368,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:374,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:380,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:381,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:383,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:383,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:384,1
    - Dst: select
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:386,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:386,1
    - Dst: fr_time_delta_sub
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:386,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:389,1
    - Dst: kill
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:390,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:391,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:396,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:409,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:415,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 5
    argNames:
    - fd
    - pid
    - timeout
    - answer
    - left
    argTypes:
    - int
    - pid_t
    - fr_time_delta_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 455
    functionName: radius_readfrom_program_legacy
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_legacy.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_unwrap
    - FD_SET
    - FD_ZERO
    - fr_time
    - waitpid
    - read
    - fr_time_delta_sub
    - close
    - fr_time_delta_gteq
    - fr_time_sub
    - fr_nonblock
    - select
    - fr_time_delta_to_timeval
    - DEBUG
    - fr_time_delta_from_sec
    - kill
    linkageType: ''
    returnType: int
    signature: int radius_readfrom_program_legacy(int fd, pid_t pid, fr_time_delta_t
      timeout, char *answer, int left)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:485,1
    - Dst: radius_start_program_legacy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:489,1
    - Dst: radius_readfrom_program_legacy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:498,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:504,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:514,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:526,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:530,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:532,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:538,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:539,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:541,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:542,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:544,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:545,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:552,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec_legacy.c:552,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 8
    argNames:
    - out
    - outlen
    - request
    - cmd
    - input_pairs
    - exec_wait
    - shell_escape
    - timeout
    argTypes:
    - char*
    - size_t
    - request_t*
    - char*
    - fr_pair_list_t*
    - bool
    - bool
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 555
    functionName: radius_exec_program_legacy
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_legacy.c
    functionUses: 1
    functionsReached:
    - RERROR
    - WEXITSTATUS
    - radius_start_program_legacy
    - fr_syserror
    - WIFEXITED
    - RDEBUG2
    - fr_box_strvalue_len
    - close
    - radius_readfrom_program_legacy
    - strlcpy
    - waitpid
    linkageType: ''
    returnType: int
    signature: "int radius_exec_program_legacy(char *out, size_t outlen,\n\t\t\t       request_t
      *request, char const *cmd, fr_pair_list_t *input_pairs,\n\t\t\t       bool exec_wait,
      bool shell_escape, fr_time_delta_t timeout)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/server/regex.c:68,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:70,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/regex.c:71,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:73,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/regex.c:78,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/regex.c:79,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/regex.c:80,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:82,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/regex.c:87,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/regex.c:87,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/regex.c:94,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/regex.c:104,1
    - Dst: request_data_talloc_add
      Src: /src/freeradius-server/src/lib/server/regex.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - request
    - preg
    - regmatch
    - in
    argTypes:
    - request_t*
    - regex_t**
    - fr_regmatch_t**
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 110
    functionName: regex_sub_to_request
    functionSourceFile: /src/freeradius-server/src/lib/server/regex.c
    functionUses: 1
    functionsReached:
    - request_data_get
    - DEBUG4
    - request_data_talloc_add
    - talloc_free
    - talloc_steal
    - talloc
    - fr_assert
    - MEM
    linkageType: ''
    returnType: void
    signature: void regex_sub_to_request(request_t *request, regex_t **preg, fr_regmatch_t
      **regmatch, fr_value_box_t const *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/server/regex.c:133,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:135,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/regex.c:138,1
    - Dst: pcre2_substring_length_bynumber
      Src: /src/freeradius-server/src/lib/server/regex.c:140,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/regex.c:143,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:150,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/regex.c:158,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/regex.c:158,1
    - Dst: pcre2_substring_copy_bynumber
      Src: /src/freeradius-server/src/lib/server/regex.c:159,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/regex.c:161,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/regex.c:162,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/regex.c:163,1
    - Dst: fr_value_box_set_secret
      Src: /src/freeradius-server/src/lib/server/regex.c:164,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - num
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - request_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 171
    functionName: regex_request_to_sub
    functionSourceFile: /src/freeradius-server/src/lib/server/regex.c
    functionUses: 2
    functionsReached:
    - request_data_reference
    - fr_value_box_init
    - pcre2_substring_length_bynumber
    - talloc_array
    - talloc_get_type_abort
    - fr_value_box_mark_safe_for
    - pcre2_substring_copy_bynumber
    - RDEBUG4
    - fr_value_box_bstrndup_shallow
    - fr_value_box_set_secret
    - MEM
    linkageType: ''
    returnType: int
    signature: int regex_request_to_sub(TALLOC_CTX *ctx, fr_value_box_t *out, request_t
      *request, uint32_t num)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/server/regex.c:193,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:195,1
    - Dst: pcre2_substring_length_byname
      Src: /src/freeradius-server/src/lib/server/regex.c:200,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/regex.c:203,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:210,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/regex.c:216,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/regex.c:216,1
    - Dst: pcre2_substring_copy_byname
      Src: /src/freeradius-server/src/lib/server/regex.c:217,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/regex.c:219,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/regex.c:220,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/regex.c:221,1
    - Dst: fr_value_box_set_secret
      Src: /src/freeradius-server/src/lib/server/regex.c:222,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - name
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 229
    functionName: regex_request_to_sub_named
    functionSourceFile: /src/freeradius-server/src/lib/server/regex.c
    functionUses: 1
    functionsReached:
    - request_data_reference
    - fr_value_box_init
    - talloc_array
    - fr_value_box_mark_safe_for
    - RDEBUG4
    - fr_value_box_bstrndup_shallow
    - fr_value_box_set_secret
    - MEM
    - pcre2_substring_copy_byname
    - pcre2_substring_length_byname
    linkageType: ''
    returnType: int
    signature: int regex_request_to_sub_named(TALLOC_CTX *ctx, fr_value_box_t *out,
      request_t *request, char const *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/server/regex.c:251,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:253,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:264,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/regex.c:271,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/regex.c:271,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/regex.c:272,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/regex.c:272,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/regex.c:277,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/server/regex.c:277,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/regex.c:279,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/regex.c:280,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/regex.c:281,1
    - Dst: fr_value_box_set_secret
      Src: /src/freeradius-server/src/lib/server/regex.c:282,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/regex.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - num
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - request_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 287
    functionName: regex_request_to_sub
    functionSourceFile: /src/freeradius-server/src/lib/server/regex.c
    functionUses: 2
    functionsReached:
    - request_data_reference
    - fr_value_box_init
    - talloc_bstrndup
    - fr_value_box_mark_safe_for
    - fr_assert
    - talloc_array_length
    - RDEBUG4
    - fr_value_box_bstrndup_shallow
    - fr_value_box_set_secret
    - MEM
    linkageType: ''
    returnType: int
    signature: int regex_request_to_sub(TALLOC_CTX *ctx, fr_value_box_t *out, request_t
      *request, uint32_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: ATOMIC_VAR_INIT
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_VAR_INIT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: CONN_TRIGGER
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_TRIGGER(_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: BAD_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: DEFER_SIGNALS
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFER_SIGNALS(_conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/connection.c:225,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/connection.c:228,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/connection.c:228,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/connection.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - signal
    argTypes:
    - connection_t*
    - connection_dsignal_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 233
    functionName: connection_deferred_signal_add
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - talloc_zero
    - MEM
    - fr_dlist_tail
    linkageType: ''
    returnType: void
    signature: void connection_deferred_signal_add(connection_t *conn, connection_dsignal_t
      signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: _deferred_signal_connection_on_halted
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _deferred_signal_connection_on_halted(UNUSED connection_t *conn,\n\t\t\t\t\t\t
      \ UNUSED connection_state_t prev,\n\t\t\t\t\t\t  UNUSED connection_state_t state,
      void *uctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: connection_watch_enable_set_uctx
      Src: /src/freeradius-server/src/lib/server/connection.c:264,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/connection.c:267,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/connection.c:269,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/connection.c:271,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/connection.c:273,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:274,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/lib/server/connection.c:278,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/lib/server/connection.c:282,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/connection.c:286,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/connection.c:290,1
    - Dst: connection_signal_shutdown
      Src: /src/freeradius-server/src/lib/server/connection.c:294,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/connection.c:298,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/connection.c:302,1
    - Dst: connection_watch_disable
      Src: /src/freeradius-server/src/lib/server/connection.c:314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 315
    functionName: connection_deferred_signal_process
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - DEBUG4
    - connection_signal_shutdown
    - talloc_free
    - connection_signal_reconnect
    - fr_dlist_remove
    - fr_table_str_by_value
    - connection_signal_init
    - connection_signal_connected
    - connection_watch_enable_set_uctx
    - connection_watch_disable
    - connection_signal_halt
    linkageType: ''
    returnType: void
    signature: void connection_deferred_signal_process(connection_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: connection_signals_pause
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void connection_signals_pause(connection_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: connection_deferred_signal_process
      Src: /src/freeradius-server/src/lib/server/connection.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 343
    functionName: connection_signals_resume
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_deferred_signal_process
    linkageType: ''
    returnType: void
    signature: void connection_signals_resume(connection_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _conn
    - ','
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: HANDLER_BEGIN
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLER_BEGIN(_conn, _func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: HANDLER_END
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLER_END(_conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:375,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/connection.c:377,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/connection.c:382,1
    - Dst: connection_watch_entry_t*::func
      Src: /src/freeradius-server/src/lib/server/connection.c:394,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/connection.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - list
    argTypes:
    - connection_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 399
    functionName: connection_watch_call
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    - fr_assert
    - connection_watch_entry_t*::func
    linkageType: ''
    returnType: void
    signature: void connection_watch_call(connection_t *conn, fr_dlist_head_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: WATCH_PRE
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WATCH_PRE(_conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _conn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 426
    functionName: WATCH_POST
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WATCH_POST(_conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/connection.c:436,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/connection.c:444,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/connection.c:446,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/connection.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - conn
    - state_lists
    - state
    - watch
    argTypes:
    - connection_t*
    - fr_dlist_head_t*
    - connection_state_t
    - connection_watch_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 454
    functionName: connection_del_watch
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: "int connection_del_watch(connection_t *conn, fr_dlist_head_t *state_lists,\n\t\t\t\tconnection_state_t
      state, connection_watch_t watch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_del_watch
      Src: /src/freeradius-server/src/lib/server/connection.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - state
    - watch
    argTypes:
    - connection_t*
    - connection_state_t
    - connection_watch_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: connection_del_watch_pre
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_del_watch
    linkageType: ''
    returnType: int
    signature: int connection_del_watch_pre(connection_t *conn, connection_state_t
      state, connection_watch_t watch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_del_watch
      Src: /src/freeradius-server/src/lib/server/connection.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - state
    - watch
    argTypes:
    - connection_t*
    - connection_state_t
    - connection_watch_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: connection_del_watch_post
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_del_watch
    linkageType: ''
    returnType: int
    signature: int connection_del_watch_post(connection_t *conn, connection_state_t
      state, connection_watch_t watch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/connection.c:498,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/connection.c:498,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/connection.c:503,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/connection.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - list
    - watch
    - oneshot
    - uctx
    argTypes:
    - connection_t*
    - fr_dlist_head_t*
    - connection_watch_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 508
    functionName: connection_add_watch
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - talloc_zero
    - MEM
    - memcpy
    linkageType: ''
    returnType: connection_watch_entry_t
    signature: "connection_watch_entry_t *connection_add_watch(connection_t *conn,
      fr_dlist_head_t *list,\n\t\t\t\t\t\t\t connection_watch_t watch, bool oneshot,
      void const *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_add_watch
      Src: /src/freeradius-server/src/lib/server/connection.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - conn
    - state
    - watch
    - oneshot
    - uctx
    argTypes:
    - connection_t*
    - connection_state_t
    - connection_watch_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: connection_add_watch_pre
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - connection_add_watch
    linkageType: ''
    returnType: connection_watch_entry_t
    signature: "connection_watch_entry_t *connection_add_watch_pre(connection_t *conn,
      connection_state_t state,\n\t\t\t\t \t\t\t connection_watch_t watch, bool oneshot,
      void const *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_add_watch
      Src: /src/freeradius-server/src/lib/server/connection.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - conn
    - state
    - watch
    - oneshot
    - uctx
    argTypes:
    - connection_t*
    - connection_state_t
    - connection_watch_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 549
    functionName: connection_add_watch_post
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 2
    functionsReached:
    - connection_add_watch
    linkageType: ''
    returnType: connection_watch_entry_t
    signature: "connection_watch_entry_t *connection_add_watch_post(connection_t *conn,
      connection_state_t state,\n\t\t\t\t\t\t\t  connection_watch_t watch, bool oneshot,
      void const *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - connection_watch_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: connection_watch_enable
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void connection_watch_enable(connection_watch_entry_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - connection_watch_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: connection_watch_disable
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void connection_watch_disable(connection_watch_entry_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:578,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/connection.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - uctx
    argTypes:
    - connection_watch_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: connection_watch_enable_set_uctx
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - talloc_get_type_abort
    - memcpy
    linkageType: ''
    returnType: void
    signature: void connection_watch_enable_set_uctx(connection_watch_entry_t *entry,
      void const *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:590,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/connection.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - entry
    - uctx
    argTypes:
    - connection_watch_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: connection_watch_set_uctx
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - memcpy
    linkageType: ''
    returnType: void
    signature: void connection_watch_set_uctx(connection_watch_entry_t *entry, void
      const *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - connection_watch_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 605
    functionName: connection_watch_is_enabled
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: bool
    signature: bool connection_watch_is_enabled(connection_watch_entry_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 617
    functionName: connection_get_num_reconnected
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t connection_get_num_reconnected(connection_t const *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: connection_get_num_timed_out
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t connection_get_num_timed_out(connection_t const *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:637,1
    - Dst: connection_state_enter_init
      Src: /src/freeradius-server/src/lib/server/connection.c:642,1
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 649
    functionName: _reconnect_delay_done
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - BAD_STATE_TRANSITION
    - connection_state_enter_init
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _reconnect_delay_done(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:665,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:669,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/lib/server/connection.c:671,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:678,1
    - Dst: HANDLER_BEGIN
      Src: /src/freeradius-server/src/lib/server/connection.c:687,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/connection.c:688,1
    - Dst: connection_t*::close
      Src: /src/freeradius-server/src/lib/server/connection.c:689,1
    - Dst: HANDLER_END
      Src: /src/freeradius-server/src/lib/server/connection.c:691,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:702,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 703
    functionName: connection_state_enter_closed
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - HANDLER_BEGIN
    - DEBUG4
    - FR_TIMER_DISARM
    - HANDLER_END
    - BAD_STATE_TRANSITION
    - WATCH_POST
    - connection_t*::close
    - STATE_TRANSITION
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_closed(connection_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:715,1
    - Dst: connection_state_enter_timeout
      Src: /src/freeradius-server/src/lib/server/connection.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 718
    functionName: _connection_timeout
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_state_enter_timeout
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _connection_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:732,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:736,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:738,1
    - Dst: HANDLER_BEGIN
      Src: /src/freeradius-server/src/lib/server/connection.c:740,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/connection.c:741,1
    - Dst: connection_t*::shutdown
      Src: /src/freeradius-server/src/lib/server/connection.c:742,1
    - Dst: HANDLER_END
      Src: /src/freeradius-server/src/lib/server/connection.c:743,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:757,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:760,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/connection.c:771,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/connection.c:772,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:777,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:778,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 781
    functionName: connection_state_enter_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - HANDLER_BEGIN
    - DEBUG4
    - connection_state_enter_failed
    - HANDLER_END
    - BAD_STATE_TRANSITION
    - WATCH_POST
    - fr_timer_in
    - fr_time_delta_ispos
    - connection_t*::shutdown
    - STATE_TRANSITION
    - PERROR
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_shutdown(connection_t *conn)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:799,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/lib/server/connection.c:804,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:815,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:822,1
    - Dst: HANDLER_BEGIN
      Src: /src/freeradius-server/src/lib/server/connection.c:824,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/connection.c:825,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:826,1
    - Dst: connection_t*::failed
      Src: /src/freeradius-server/src/lib/server/connection.c:827,1
    - Dst: HANDLER_END
      Src: /src/freeradius-server/src/lib/server/connection.c:828,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:837,1
    - Dst: connection_state_enter_closed
      Src: /src/freeradius-server/src/lib/server/connection.c:848,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:873,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/connection.c:888,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:889,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/connection.c:889,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/connection.c:890,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:895,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:896,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:907,1
    - Dst: connection_state_enter_init
      Src: /src/freeradius-server/src/lib/server/connection.c:911,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:915,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 917
    functionName: connection_state_enter_failed
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - HANDLER_BEGIN
    - DEBUG4
    - FR_TIMER_DISARM
    - HANDLER_END
    - WATCH_POST
    - fr_box_time_delta
    - fr_table_str_by_value
    - fr_timer_in
    - fr_assert
    - connection_t*::failed
    - fr_time_delta_ispos
    - connection_state_enter_halted
    - connection_state_enter_init
    - connection_state_enter_closed
    - DEBUG2
    - STATE_TRANSITION
    - PERROR
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_failed(connection_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:932,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:936,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/connection.c:936,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:938,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 943
    functionName: connection_state_enter_timeout
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - connection_state_enter_failed
    - ERROR
    - BAD_STATE_TRANSITION
    - fr_box_time_delta
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_timeout(connection_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:951,1
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:960,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/lib/server/connection.c:964,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:966,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:967,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 969
    functionName: connection_state_enter_halted
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - FR_TIMER_DISARM
    - BAD_STATE_TRANSITION
    - WATCH_POST
    - fr_assert
    - STATE_TRANSITION
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_halted(connection_t *conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:988,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:990,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/lib/server/connection.c:992,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:993,1
    - Dst: HANDLER_BEGIN
      Src: /src/freeradius-server/src/lib/server/connection.c:995,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/connection.c:996,1
    - Dst: connection_t*::open
      Src: /src/freeradius-server/src/lib/server/connection.c:997,1
    - Dst: HANDLER_END
      Src: /src/freeradius-server/src/lib/server/connection.c:998,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:1015,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:1016,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:1024,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1025,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 1028
    functionName: connection_state_enter_connected
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - HANDLER_BEGIN
    - DEBUG4
    - connection_state_enter_failed
    - FR_TIMER_DISARM
    - HANDLER_END
    - connection_t*::open
    - WATCH_POST
    - fr_assert
    - DEBUG2
    - STATE_TRANSITION
    - PERROR
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_connected(connection_t *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:1044,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:1048,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:1050,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:1051,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/connection.c:1057,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/connection.c:1058,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:1060,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1037
    functionDepth: 3
    functionLinenumber: 1037
    functionLinenumberEnd: 1075
    functionName: connection_state_enter_connecting
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_state_enter_failed
    - WATCH_POST
    - BAD_STATE_TRANSITION
    - fr_timer_in
    - fr_time_delta_ispos
    - STATE_TRANSITION
    - PERROR
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_connecting(connection_t *conn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:1095,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/connection.c:1109,1
    - Dst: WATCH_PRE
      Src: /src/freeradius-server/src/lib/server/connection.c:1114,1
    - Dst: HANDLER_BEGIN
      Src: /src/freeradius-server/src/lib/server/connection.c:1116,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/connection.c:1117,1
    - Dst: connection_t*::init
      Src: /src/freeradius-server/src/lib/server/connection.c:1118,1
    - Dst: HANDLER_END
      Src: /src/freeradius-server/src/lib/server/connection.c:1119,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:1134,1
    - Dst: connection_state_enter_connecting
      Src: /src/freeradius-server/src/lib/server/connection.c:1135,1
    - Dst: WATCH_POST
      Src: /src/freeradius-server/src/lib/server/connection.c:1140,1
    - Dst: connection_state_enter_connected
      Src: /src/freeradius-server/src/lib/server/connection.c:1141,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:1149,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1084
    functionDepth: 4
    functionLinenumber: 1084
    functionLinenumberEnd: 1153
    functionName: connection_state_enter_init
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 2
    functionsReached:
    - HANDLER_BEGIN
    - DEBUG4
    - PERROR
    - connection_state_enter_failed
    - HANDLER_END
    - connection_state_enter_connected
    - BAD_STATE_TRANSITION
    - connection_t*::init
    - WATCH_POST
    - STATE_TRANSITION
    - connection_state_enter_connecting
    - WATCH_PRE
    linkageType: ''
    returnType: void
    signature: void connection_state_enter_init(connection_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:1160,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:1161,1
    - Dst: DEFER_SIGNALS
      Src: /src/freeradius-server/src/lib/server/connection.c:1163,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1164,1
    - Dst: connection_state_enter_init
      Src: /src/freeradius-server/src/lib/server/connection.c:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1158
    functionDepth: 5
    functionLinenumber: 1158
    functionLinenumberEnd: 1176
    functionName: connection_signal_init
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 4
    functionsReached:
    - DEFER_SIGNALS
    - fr_table_str_by_value
    - connection_state_enter_init
    - DEBUG2
    - connection_deferred_signal_add
    linkageType: ''
    returnType: void
    signature: void connection_signal_init(connection_t *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1190,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:1192,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:1193,1
    - Dst: DEFER_SIGNALS
      Src: /src/freeradius-server/src/lib/server/connection.c:1195,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1196,1
    - Dst: connection_state_enter_connected
      Src: /src/freeradius-server/src/lib/server/connection.c:1202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1188
    functionDepth: 4
    functionLinenumber: 1188
    functionLinenumberEnd: 1208
    functionName: connection_signal_connected
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 8
    functionsReached:
    - DEFER_SIGNALS
    - connection_state_enter_connected
    - fr_table_str_by_value
    - fr_assert
    - DEBUG2
    - connection_deferred_signal_add
    linkageType: ''
    returnType: void
    signature: void connection_signal_connected(connection_t *conn)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:1220,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:1221,1
    - Dst: DEFER_SIGNALS
      Src: /src/freeradius-server/src/lib/server/connection.c:1223,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1225,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1229,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/lib/server/connection.c:1239,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1244,1
    - Dst: connection_state_enter_shutdown
      Src: /src/freeradius-server/src/lib/server/connection.c:1250,1
    - Dst: connection_state_enter_closed
      Src: /src/freeradius-server/src/lib/server/connection.c:1253,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1260,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - conn
    - reason
    argTypes:
    - connection_t*
    - connection_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1218
    functionDepth: 6
    functionLinenumber: 1218
    functionLinenumberEnd: 1270
    functionName: connection_signal_reconnect
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 45
    functionsReached:
    - connection_state_enter_failed
    - connection_state_enter_shutdown
    - DEFER_SIGNALS
    - fr_table_str_by_value
    - connection_signal_init
    - fr_assert
    - connection_state_enter_closed
    - DEBUG2
    - connection_deferred_signal_add
    linkageType: ''
    returnType: void
    signature: void connection_signal_reconnect(connection_t *conn, connection_reason_t
      reason)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:1283,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:1284,1
    - Dst: DEFER_SIGNALS
      Src: /src/freeradius-server/src/lib/server/connection.c:1286,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1287,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:1297,1
    - Dst: connection_state_enter_shutdown
      Src: /src/freeradius-server/src/lib/server/connection.c:1309,1
    - Dst: connection_state_enter_closed
      Src: /src/freeradius-server/src/lib/server/connection.c:1323,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1324,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:1328,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1335
    functionName: connection_signal_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - connection_state_enter_shutdown
    - DEFER_SIGNALS
    - fr_table_str_by_value
    - fr_assert
    - connection_state_enter_halted
    - connection_state_enter_closed
    - DEBUG2
    - connection_deferred_signal_add
    linkageType: ''
    returnType: void
    signature: void connection_signal_shutdown(connection_t *conn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/connection.c:1346,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/connection.c:1347,1
    - Dst: DEFER_SIGNALS
      Src: /src/freeradius-server/src/lib/server/connection.c:1349,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1350,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:1360,1
    - Dst: connection_state_enter_closed
      Src: /src/freeradius-server/src/lib/server/connection.c:1378,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1379,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:1380,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1344
    functionDepth: 2
    functionLinenumber: 1344
    functionLinenumberEnd: 1387
    functionName: connection_signal_halt
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 3
    functionsReached:
    - DEFER_SIGNALS
    - fr_table_str_by_value
    - fr_assert
    - connection_state_enter_halted
    - connection_state_enter_closed
    - DEBUG2
    - connection_deferred_signal_add
    linkageType: ''
    returnType: void
    signature: void connection_signal_halt(connection_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:1398,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:1400,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/connection.c:1400,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1396
    functionDepth: 3
    functionLinenumber: 1396
    functionLinenumberEnd: 1402
    functionName: _connection_error
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - ERROR
    - talloc_get_type_abort
    - connection_state_enter_failed
    linkageType: ''
    returnType: void
    signature: void _connection_error(UNUSED fr_event_list_t *el, int fd, UNUSED int
      flags, int fd_errno, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/connection.c:1413,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/connection.c:1415,1
    - Dst: connection_state_enter_connected
      Src: /src/freeradius-server/src/lib/server/connection.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1411
    functionDepth: 4
    functionLinenumber: 1411
    functionLinenumberEnd: 1417
    functionName: _connection_writable
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_state_enter_connected
    - fr_event_fd_delete
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _connection_writable(fr_event_list_t *el, int fd, UNUSED int flags,
      void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: connection_del_watch_pre
      Src: /src/freeradius-server/src/lib/server/connection.c:1433,1
    - Dst: connection_del_watch_pre
      Src: /src/freeradius-server/src/lib/server/connection.c:1437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/connection.c:1441,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/connection.c:1445,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/connection.c:1446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - conn
    - connection_state_t
    - state
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - connection_state_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1447
    functionName: _connection_signal_on_fd_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 0
    functionsReached:
    - connection_del_watch_pre
    - fr_assert
    - fr_event_fd_delete
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void _connection_signal_on_fd_cleanup(connection_t *conn,\n\t\t\t\t\t
      \    UNUSED connection_state_t prev, connection_state_t state, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/connection.c:1466,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/connection.c:1471,1
    - Dst: connection_state_enter_failed
      Src: /src/freeradius-server/src/lib/server/connection.c:1473,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/connection.c:1482,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/connection.c:1482,1
    - Dst: connection_add_watch_pre
      Src: /src/freeradius-server/src/lib/server/connection.c:1490,1
    - Dst: connection_add_watch_pre
      Src: /src/freeradius-server/src/lib/server/connection.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - fd
    argTypes:
    - connection_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1458
    functionDepth: 3
    functionLinenumber: 1458
    functionLinenumberEnd: 1495
    functionName: connection_signal_on_fd
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 3
    functionsReached:
    - connection_state_enter_failed
    - connection_add_watch_pre
    - fr_event_fd_insert
    - talloc_zero
    - MEM
    - PERROR
    linkageType: ''
    returnType: int
    signature: int connection_signal_on_fd(connection_t *conn, int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DELETE_RETURN
      Src: /src/freeradius-server/src/lib/server/connection.c:1509,1
    - Dst: DEFER_SIGNALS
      Src: /src/freeradius-server/src/lib/server/connection.c:1517,1
    - Dst: connection_deferred_signal_add
      Src: /src/freeradius-server/src/lib/server/connection.c:1518,1
    - Dst: connection_state_enter_closed
      Src: /src/freeradius-server/src/lib/server/connection.c:1533,1
    - Dst: connection_state_enter_halted
      Src: /src/freeradius-server/src/lib/server/connection.c:1537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1504
    functionDepth: 2
    functionLinenumber: 1504
    functionLinenumberEnd: 1541
    functionName: _connection_free
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 1
    functionsReached:
    - DEFER_SIGNALS
    - FR_TIMER_DELETE_RETURN
    - connection_state_enter_halted
    - connection_state_enter_closed
    - connection_deferred_signal_add
    linkageType: ''
    returnType: int
    signature: int _connection_free(connection_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/connection.c:1576,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/connection.c:1578,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/connection.c:1578,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/connection.c:1579,1
    - Dst: atomic_fetch_add_explicit
      Src: /src/freeradius-server/src/lib/server/connection.c:1581,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/server/connection.c:1600,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/connection.c:1602,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/connection.c:1604,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/connection.c:1605,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/connection.c:1607,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/connection.c:1608,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/connection.c:1610,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/lib/server/connection.c:1618,1
    - Dst: connection_watch_disable
      Src: /src/freeradius-server/src/lib/server/connection.c:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 6
    argNames:
    - ctx
    - el
    - funcs
    - conf
    - log_prefix
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - connection_funcs_t*
    - connection_conf_t*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1566
    functionDepth: 3
    functionLinenumber: 1566
    functionLinenumberEnd: 1623
    functionName: connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/connection.c
    functionUses: 10
    functionsReached:
    - fr_dlist_talloc_init
    - atomic_fetch_add_explicit
    - talloc_set_destructor
    - memcpy
    - connection_add_watch_post
    - talloc
    - fr_assert_msg
    - talloc_asprintf
    - MEM
    - connection_watch_disable
    - NUM_ELEMENTS
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *connection_alloc(TALLOC_CTX *ctx, fr_event_list_t *el,\n\t\t\t
      \      connection_funcs_t const *funcs,\n\t\t\t       connection_conf_t const
      *conf,\n\t\t\t       char const *log_prefix,\n\t\t\t       void const *uctx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/pairmove.c:70,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/pairmove.c:71,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/server/pairmove.c:73,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/pairmove.c:75,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/pairmove.c:76,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/server/pairmove.c:78,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:80,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/server/pairmove.c:80,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pairmove.c:86,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:89,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:91,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:106,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/server/pairmove.c:107,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/server/pairmove.c:108,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pairmove.c:114,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:115,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:138,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/server/pairmove.c:140,1
    - Dst: fr_pair_replace
      Src: /src/freeradius-server/src/lib/server/pairmove.c:141,1
    - Dst: paircmp_pairs
      Src: /src/freeradius-server/src/lib/server/pairmove.c:184,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:202,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:217,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:225,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/server/pairmove.c:228,1
    - Dst: fr_pair_replace
      Src: /src/freeradius-server/src/lib/server/pairmove.c:229,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:239,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:254,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/server/pairmove.c:256,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/pairmove.c:257,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/pairmove.c:266,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:268,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pairmove.c:275,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:276,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/server/pairmove.c:279,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/pairmove.c:283,1
    - Dst: fr_pair_list_prepend
      Src: /src/freeradius-server/src/lib/server/pairmove.c:299,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/server/pairmove.c:305,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:307,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pairmove.c:309,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pairmove.c:310,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 114
    argCount: 3
    argNames:
    - request
    - to
    - from
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 311
    functionName: radius_pairmove
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 2
    functionsReached:
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_pair_list_free
    - talloc_free
    - fr_pair_replace
    - fr_pair_list_prepend
    - fr_pair_append
    - fr_pair_remove
    - fr_assert
    - paircmp_pairs
    - fr_pair_list_head
    - RDEBUG4
    - talloc_zero_array
    - fr_pair_prepend
    - fr_pair_list_append
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t
      *from)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/pairmove.c:319,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/pairmove.c:321,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:322,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/pairmove.c:322,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/pairmove.c:324,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/pairmove.c:325,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/pairmove.c:327,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:330,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:333,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/pairmove.c:339,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/server/pairmove.c:340,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:345,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/server/pairmove.c:349,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/pairmove.c:351,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:352,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - request
    - parent
    - map
    argTypes:
    - request_t*
    - fr_pair_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 358
    functionName: radius_legacy_map_to_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - fr_type_is_leaf
    - RDEBUG
    - TALLOC_FREE
    - fr_pair_append_by_da
    - tmpl_attr_tail_da
    - tmpl_aexpand
    - tmpl_is_data
    - fr_assert
    - fr_value_box_cast
    - tmpl_is_attr
    - tmpl_value
    - fr_strerror_const
    - tmpl_find_vp
    linkageType: ''
    returnType: int
    signature: int radius_legacy_map_to_vp(request_t *request, fr_pair_t *parent,
      map_t const *map)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:376,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:378,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:379,1
    - Dst: radius_legacy_map_to_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:380,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/pairmove.c:389,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:392,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:395,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:400,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/pairmove.c:404,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/pairmove.c:410,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/pairmove.c:411,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/pairmove.c:413,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/server/pairmove.c:414,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:419,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:424,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:425,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/pairmove.c:445,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/server/pairmove.c:451,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/pairmove.c:451,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/pairmove.c:452,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:453,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:458,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - request
    - map
    - vp
    argTypes:
    - request_t*
    - map_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 460
    functionName: radius_legacy_map_apply_structural
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - map_list_next
    - TALLOC_FREE
    - RPEDEBUG
    - radius_legacy_map_to_vp
    - FR_SBUFF_IN
    - tmpl_aexpand
    - fr_dict_internal
    - tmpl_is_data
    - fr_pair_list_afrom_substr
    - fr_assert
    - tmpl_is_attr
    - tmpl_value
    - fr_strerror_const
    - tmpl_find_vp
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void radius_legacy_map_apply_structural(request_t *request, map_t const
      *map, fr_pair_t *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/pairmove.c:476,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/server/pairmove.c:479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pairmove.c:480,1
    - Dst: fr_dcursor_set_current
      Src: /src/freeradius-server/src/lib/server/pairmove.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - parent
    - cursor
    - da
    - uctx
    argTypes:
    - fr_pair_t*
    - fr_dcursor_t*
    - fr_dict_attr_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 501
    functionName: legacy_pair_build
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - talloc_free
    - fr_dcursor_set_current
    - fr_edit_list_insert_pair_tail
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *legacy_pair_build(fr_pair_t *parent, fr_dcursor_t *cursor,
      fr_dict_attr_t const *da, void *uctx)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_pair_list_and_ctx
      Src: /src/freeradius-server/src/lib/server/pairmove.c:524,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/server/pairmove.c:524,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/pairmove.c:524,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/pairmove.c:527,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:534,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/pairmove.c:550,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:552,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/pairmove.c:556,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/pairmove.c:564,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/server/pairmove.c:565,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:567,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/pairmove.c:567,1
    - Dst: fr_edit_list_free_pair_children
      Src: /src/freeradius-server/src/lib/server/pairmove.c:569,1
    - Dst: request_attr_is_list
      Src: /src/freeradius-server/src/lib/server/pairmove.c:577,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:578,1
    - Dst: fr_edit_list_free_pair_children
      Src: /src/freeradius-server/src/lib/server/pairmove.c:580,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/server/pairmove.c:589,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:590,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/server/pairmove.c:592,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:593,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/pairmove.c:602,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/server/pairmove.c:605,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:606,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/server/pairmove.c:608,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:609,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:621,1
    - Dst: tmpl_dcursor_build_init
      Src: /src/freeradius-server/src/lib/server/pairmove.c:622,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:623,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/pairmove.c:625,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/server/pairmove.c:633,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:634,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/pairmove.c:636,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/pairmove.c:636,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/server/pairmove.c:637,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/pairmove.c:646,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:648,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/pairmove.c:653,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/pairmove.c:655,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/pairmove.c:655,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:659,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/pairmove.c:664,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:668,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/pairmove.c:676,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/pairmove.c:676,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:677,1
    - Dst: radius_legacy_map_apply_structural
      Src: /src/freeradius-server/src/lib/server/pairmove.c:678,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/pairmove.c:690,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/pairmove.c:691,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/pairmove.c:693,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:696,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:699,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:704,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/pairmove.c:710,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/server/pairmove.c:711,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:716,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/pairmove.c:724,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:726,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/server/pairmove.c:730,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:731,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/server/pairmove.c:736,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/server/pairmove.c:741,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/pairmove.c:746,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/server/pairmove.c:750,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/server/pairmove.c:754,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/server/pairmove.c:756,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:761,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:768,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 180
    argCount: 3
    argNames:
    - request
    - map
    - el
    argTypes:
    - request_t*
    - map_t*
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 770
    functionName: radius_legacy_map_apply
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_strerror_printf
    - tmpl_list
    - tmpl_is_data
    - tmpl_dcursor_clear
    - fr_value_box_cast
    - RWDEBUG
    - fr_type_to_str
    - MEM
    - fr_edit_list_free_pair_children
    - fr_value_box_mark_unsafe
    - tmpl_aexpand
    - fr_edit_list_insert_pair_tail
    - tmpl_pair_list_and_ctx
    - tmpl_is_attr
    - fr_strerror_const
    - fr_value_box_cmp_op
    - fr_edit_list_pair_delete
    - fr_pair_afrom_da
    - tmpl_is_xlat
    - fr_pair_find_by_da_nested
    - tmpl_request
    - fr_assert
    - request_attr_is_list
    - fr_pair_parent_list
    - TALLOC_FREE
    - fr_edit_list_save_pair_value
    - tmpl_attr_tail_num
    - fr_strerror_clear
    - tmpl_dcursor_init
    - tmpl_dcursor_build_init
    - tmpl_value
    - tmpl_find_vp
    - fr_pair_parent
    - radius_legacy_map_apply_structural
    linkageType: ''
    returnType: int
    signature: int radius_legacy_map_apply(request_t *request, map_t const *map, fr_edit_list_t
      *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_list_head
      Src: /src/freeradius-server/src/lib/server/pairmove.c:776,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:778,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/pairmove.c:779,1
    - Dst: radius_legacy_map_apply
      Src: /src/freeradius-server/src/lib/server/pairmove.c:782,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/pairmove.c:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - request
    - list
    - el
    argTypes:
    - request_t*
    - map_list_t*
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 772
    functionDepth: 4
    functionLinenumber: 772
    functionLinenumberEnd: 789
    functionName: radius_legacy_map_list_apply
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 3
    functionsReached:
    - map_list_next
    - RPEDEBUG
    - map_list_head
    - RDEBUG2
    - radius_legacy_map_apply
    linkageType: ''
    returnType: int
    signature: int radius_legacy_map_list_apply(request_t *request, map_list_t const
      *list, fr_edit_list_t *el)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:801,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/pairmove.c:801,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pairmove.c:802,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/pairmove.c:804,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:807,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:813,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/pairmove.c:817,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:818,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:820,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/pairmove.c:824,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/pairmove.c:825,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/pairmove.c:827,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/pairmove.c:830,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/server/pairmove.c:834,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/server/pairmove.c:835,1
    - Dst: tmpl_is_regex
      Src: /src/freeradius-server/src/lib/server/pairmove.c:839,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/pairmove.c:843,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/pairmove.c:847,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/server/pairmove.c:860,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/pairmove.c:862,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/pairmove.c:864,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/pairmove.c:865,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - request
    - map
    argTypes:
    - request_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 870
    functionName: radius_legacy_map_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/pairmove.c
    functionUses: 2
    functionsReached:
    - tmpl_is_regex
    - TALLOC_FREE
    - fr_dcursor_next
    - fr_type_is_structural
    - tmpl_contains_xlat
    - fr_value_box_strdup_shallow
    - fr_value_calc_binary_op
    - tmpl_aexpand
    - tmpl_is_data
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_dcursor_init
    - tmpl_is_attr
    - tmpl_value
    - fr_strerror_const
    - tmpl_find_vp
    linkageType: ''
    returnType: int
    signature: int radius_legacy_map_cmp(request_t *request, map_t const *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _tt
    - ','
    - _now
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: ASSERT_ON_TIME_TRAVEL
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_ON_TIME_TRAVEL(_tt, _now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _tt
    - ','
    - _now
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: UPDATE_PARENT_START_TIME
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_PARENT_START_TIME(_tt, _now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _tt
    - ','
    - _run_time
    - ','
    - _event
    - ','
    - _now
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: UPDATE_PARENT_RUN_TIME
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_PARENT_RUN_TIME(_tt, _run_time, _event, _now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _tt
    - ','
    - _wait_time
    - ','
    - _event
    - ','
    - _now
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: UPDATE_PARENT_WAIT_TIME
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_PARENT_WAIT_TIME(_tt, _wait_time, _event, _now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tt
    argTypes:
    - fr_time_tracking_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: fr_time_tracking_init
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_time_tracking_init(fr_time_tracking_t *tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:156,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:157,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:158,1
    - Dst: ASSERT_ON_TIME_TRAVEL
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:160,1
    - Dst: UPDATE_PARENT_START_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - parent
    - tt
    - now
    argTypes:
    - fr_time_tracking_t*
    - fr_time_tracking_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: fr_time_tracking_start
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 3
    functionsReached:
    - ASSERT_ON_TIME_TRAVEL
    - fr_table_str_by_value
    - fr_assert
    - fr_assert_msg
    - UPDATE_PARENT_START_TIME
    linkageType: ''
    returnType: void
    signature: "void fr_time_tracking_start(fr_time_tracking_t *parent,\n\t\t\t\t\t\t\t
      \  fr_time_tracking_t *tt, fr_time_t now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:182,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:183,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:185,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:186,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:187,1
    - Dst: UPDATE_PARENT_RUN_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - parent
    - tt
    - now
    argTypes:
    - fr_time_tracking_t*
    - fr_time_tracking_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: fr_time_tracking_push
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached:
    - UPDATE_PARENT_RUN_TIME
    - fr_table_str_by_value
    - fr_time_sub
    - fr_assert
    - fr_assert_msg
    linkageType: ''
    returnType: void
    signature: "void fr_time_tracking_push(fr_time_tracking_t *parent,\n\t\t\t\t\t\t\t
      \ fr_time_tracking_t *tt, fr_time_t now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:206,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:207,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:208,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:210,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:213,1
    - Dst: UPDATE_PARENT_RUN_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tt
    - now
    argTypes:
    - fr_time_tracking_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: fr_time_tracking_pop
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_add
    - UPDATE_PARENT_RUN_TIME
    - fr_table_str_by_value
    - fr_time_sub
    - fr_assert
    - fr_assert_msg
    linkageType: ''
    returnType: void
    signature: void fr_time_tracking_pop(fr_time_tracking_t *tt, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ON_TIME_TRAVEL
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:228,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:230,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:231,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:235,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:236,1
    - Dst: UPDATE_PARENT_RUN_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tt
    - now
    argTypes:
    - fr_time_tracking_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: fr_time_tracking_yield
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 6
    functionsReached:
    - fr_time_delta_add
    - ASSERT_ON_TIME_TRAVEL
    - UPDATE_PARENT_RUN_TIME
    - fr_table_str_by_value
    - fr_time_sub
    - fr_assert_msg
    linkageType: ''
    returnType: void
    signature: void fr_time_tracking_yield(fr_time_tracking_t *tt, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ON_TIME_TRAVEL
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:249,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:251,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:252,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:256,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:257,1
    - Dst: UPDATE_PARENT_WAIT_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tt
    - now
    argTypes:
    - fr_time_tracking_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 259
    functionName: fr_time_tracking_resume
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 6
    functionsReached:
    - fr_time_delta_add
    - ASSERT_ON_TIME_TRAVEL
    - fr_table_str_by_value
    - fr_time_sub
    - fr_assert_msg
    - UPDATE_PARENT_WAIT_TIME
    linkageType: ''
    returnType: void
    signature: void fr_time_tracking_resume(fr_time_tracking_t *tt, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _old
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: RTT
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTT(_old, _new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:275,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:276,1
    - Dst: ASSERT_ON_TIME_TRAVEL
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:277,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:282,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:283,1
    - Dst: UPDATE_PARENT_RUN_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:284,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:287,1
    - Dst: RTT
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - predicted
    - tt
    - now
    argTypes:
    - fr_time_delta_t*
    - fr_time_tracking_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 292
    functionName: fr_time_tracking_end
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 3
    functionsReached:
    - fr_time_delta_add
    - ASSERT_ON_TIME_TRAVEL
    - UPDATE_PARENT_RUN_TIME
    - fr_table_str_by_value
    - fr_time_sub
    - fr_time_delta_ispos
    - fr_assert_msg
    - RTT
    linkageType: ''
    returnType: void
    signature: "void fr_time_tracking_end(fr_time_delta_t *predicted,\n\t\t\t\t\tfr_time_tracking_t
      *tt, fr_time_t now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DPRINT_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:304,1
    - Dst: DPRINT_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:305,1
    - Dst: DPRINT_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:306,1
    - Dst: DPRINT_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:308,1
    - Dst: DPRINT_TIME
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:309,1
    - Dst: DPRINT
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:311,1
    - Dst: DPRINT
      Src: /src/freeradius-server/src/lib/server/time_tracking.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tt
    - fp
    argTypes:
    - fr_time_tracking_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: fr_time_tracking_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 1
    functionsReached:
    - DPRINT
    - DPRINT_TIME
    linkageType: ''
    returnType: void
    signature: void fr_time_tracking_debug(fr_time_tracking_t *tt, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: DPRINT_TIME
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINT_TIME(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: DPRINT
    functionSourceFile: /src/freeradius-server/src/lib/server/time_tracking.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINT(_x)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: INC_AUTH
      Src: /src/freeradius-server/src/lib/server/stats.c:76,1
    - Dst: INC_AUTH
      Src: /src/freeradius-server/src/lib/server/stats.c:79,1
    - Dst: fr_stats_bins
      Src: /src/freeradius-server/src/lib/server/stats.c:84,1
    - Dst: fr_stats_bins
      Src: /src/freeradius-server/src/lib/server/stats.c:87,1
    - Dst: INC_AUTH
      Src: /src/freeradius-server/src/lib/server/stats.c:93,1
    - Dst: INC_AUTH
      Src: /src/freeradius-server/src/lib/server/stats.c:97,1
    - Dst: INC_ACCT
      Src: /src/freeradius-server/src/lib/server/stats.c:101,1
    - Dst: fr_stats_bins
      Src: /src/freeradius-server/src/lib/server/stats.c:102,1
    - Dst: INC_AUTH
      Src: /src/freeradius-server/src/lib/server/stats.c:115,1
    - Dst: INC_AUTH
      Src: /src/freeradius-server/src/lib/server/stats.c:117,1
    - Dst: INC_ACCT
      Src: /src/freeradius-server/src/lib/server/stats.c:124,1
    - Dst: INC_ACCT
      Src: /src/freeradius-server/src/lib/server/stats.c:126,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 140
    functionName: request_stats_final
    functionSourceFile: /src/freeradius-server/src/lib/server/stats.c
    functionUses: 0
    functionsReached:
    - INC_AUTH
    - INC_ACCT
    - fr_stats_bins
    linkageType: ''
    returnType: void
    signature: void request_stats_final(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: INC_AUTH
    functionSourceFile: /src/freeradius-server/src/lib/server/stats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INC_AUTH(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: INC_ACCT
    functionSourceFile: /src/freeradius-server/src/lib/server/stats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INC_ACCT(_x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/stats.c:156,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/stats.c:157,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/lib/server/stats.c:159,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/stats.c:159,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/server/stats.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - stats
    - start
    - end
    argTypes:
    - fr_stats_t*
    - fr_time_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: fr_stats_bins
    functionSourceFile: /src/freeradius-server/src/lib/server/stats.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_gteq
    - fr_time_sub
    - fr_time_delta_to_usec
    - fr_time_lt
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void fr_stats_bins(fr_stats_t *stats, fr_time_t start, fr_time_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_list_debug
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: virtual_server_listen_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - module_list_debug
    linkageType: ''
    returnType: void
    signature: void virtual_server_listen_debug(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_list_debug
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: virtual_server_process_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - module_list_debug
    linkageType: ''
    returnType: void
    signature: void virtual_server_process_debug(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_by_data
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: virtual_server_listener_by_data
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - module_instance_by_data
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *virtual_server_listener_by_data(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_submodule_parse
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: virtual_server_listen_transport_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - module_submodule_parse
    linkageType: ''
    returnType: int
    signature: "int virtual_server_listen_transport_parse(TALLOC_CTX *ctx, void *out,
      void *parent,\n\t\t\t\t\t CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:228,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:229,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:229,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:236,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:240,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:245,1
    - Dst: module_instance_name_from_conf
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:249,1
    - Dst: module_instance_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:257,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:260,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:263,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:266,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:266,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:267,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:273,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:274,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:277,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 281
    functionName: namespace_on_read
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - unlikely
    - cf_log_perr
    - cf_parent
    - talloc_free
    - fr_cond_assert_msg
    - talloc_strdup
    - cf_data_add
    - module_instance_conf_parse
    - talloc_strlen
    - module_instance_name_from_conf
    - cf_log_err
    - module_instance_alloc
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int namespace_on_read(TALLOC_CTX *ctx, UNUSED void *out, UNUSED void
      *parent,\n\t\t\t     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:299,1
    - Dst: virtual_server_section_register
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:304,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - vs
    - cs
    - compile_list
    - name
    argTypes:
    - virtual_server_t*
    - CONF_SECTION*
    - virtual_server_compile_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 312
    functionName: add_compile_list
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - cf_log_err
    - virtual_server_section_register
    linkageType: ''
    returnType: int
    signature: int add_compile_list(virtual_server_t *vs, CONF_SECTION *cs, virtual_server_compile_t
      const *compile_list, char const *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:327,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:328,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:328,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:330,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:331,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:332,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:332,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:348,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:350,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:353,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:354,1
    - Dst: cf_data_remove
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:355,1
    - Dst: cf_data_remove
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:356,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:357,1
    - Dst: add_compile_list
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 366
    functionName: namespace_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_log_perr
    - cf_parent
    - cf_section_find
    - cf_section_alloc
    - cf_data_remove
    - TALLOC_FREE
    - cf_pair_value
    - cf_data_find
    - talloc_get_type_abort
    - module_instance_conf_parse
    - add_compile_list
    - cf_data_value
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int namespace_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent, CONF_ITEM *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:381,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:382,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:383,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:383,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:384,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:392,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:396,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:397,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:398,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:409,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:410,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:412,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:414,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:418,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:426,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:428,1
    - Dst: module_instance_name_valid
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:443,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:444,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:451,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:452,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:458,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:459,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:460,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:463,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:464,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:466,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:467,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:468,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:469,1
    - Dst: module_instance_name_valid
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:472,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:472,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:473,1
    - Dst: module_instance_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:477,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:477,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:479,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:483,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:483,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:484,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:485,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:491,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:497,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:499,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:500,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:504,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:505,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 512
    functionName: listen_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - cf_section_find
    - fr_cond_assert_msg
    - cf_data_add
    - cf_log_err
    - module_instance_alloc
    - cf_item_to_section
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - unlikely
    - talloc_get_type_abort
    - cf_section_name2
    - module_instance_name_valid
    - module_instance_conf_parse
    - cf_parent
    - cf_pair_find
    - FR_SBUFF_IN_STRCPY_RETURN
    - cf_log_perr
    - talloc_free
    - cf_pair_value
    - FR_SBUFF_IN_CHAR_RETURN
    - cf_pair_find_next
    linkageType: ''
    returnType: int
    signature: int listen_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void *parent,
      CONF_ITEM *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: section_name_cmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: virtual_server_compile_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - section_name_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t virtual_server_compile_name_cmp(void const *a, void const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:536,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:537,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:542,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:543,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:547,1
    - Dst: fr_rb_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:547,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:553,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 561
    functionName: server_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_section_parse
    - talloc_get_type_abort
    - cf_section_name2
    - fr_rb_alloc
    - cf_data_add
    - MEM
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int server_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void *parent,\n\t\t\tCONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:574,1
    - Dst: virtual_server_dict_by_cs
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - virtual_server
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: virtual_server_dict_by_name
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 2
    functionsReached:
    - virtual_server_dict_by_cs
    - virtual_server_find
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *virtual_server_dict_by_name(char const *virtual_server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:592,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:595,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - server_cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 599
    functionName: virtual_server_dict_by_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 5
    functionsReached:
    - cf_data_value
    - cf_data_find
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *virtual_server_dict_by_cs(CONF_SECTION const *server_cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_find_in_parent
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:613,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:616,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 620
    functionName: virtual_server_dict_by_child_ci
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_data_value
    - talloc_get_type_abort
    - cf_data_find_in_parent
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *virtual_server_dict_by_child_ci(CONF_ITEM const *ci)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:645,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:647,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:650,1
    - Dst: virtual_server_dict_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:652,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:657,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:663,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:665,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - out
    - virtual_server
    - namespace
    - ci
    argTypes:
    - CONF_SECTION**
    - char*
    - fr_dict_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 673
    functionName: virtual_server_has_namespace
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - virtual_server_find
    - virtual_server_cs
    - virtual_server_dict_by_name
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int virtual_server_has_namespace(CONF_SECTION **out,\n\t\t\t\t char
      const *virtual_server, fr_dict_t const *namespace, CONF_ITEM *ci)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_log_prepend
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - request
    - uctx
    argTypes:
    - UNUSED
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 686
    functionName: server_remove_log_destination
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - request_log_prepend
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t server_remove_log_destination(UNUSED unlang_result_t
      *p_result,\n\t\t\t\t\t\t     request_t *request, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_log_prepend
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - fr_signal_t
    - uctx
    argTypes:
    - request_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 693
    functionName: server_signal_remove_log_destination
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - request_log_prepend
    linkageType: ''
    returnType: void
    signature: void server_signal_remove_log_destination(request_t *request, UNUSED
      fr_signal_t action, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:714,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:721,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:723,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:726,1
    - Dst: unlang_finally_push_instruction
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:726,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:727,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:736,1
    - Dst: unlang_finally_push_instruction
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:736,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:737,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - request
    - vs
    - top_frame
    argTypes:
    - request_t*
    - virtual_server_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 743
    functionName: virtual_server_push_finally
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_cast
    - unlang_finally_push_instruction
    - talloc_array_length
    - fr_pair_find_by_da
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int virtual_server_push_finally(request_t *request, virtual_server_t
      const *vs, bool *top_frame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: request_log_prepend
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:765,1
    - Dst: unlang_interpret_stack_depth
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:767,1
    - Dst: unlang_function_push_with_result
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:770,1
    - Dst: unlang_interpret_result
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:770,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:776,1
    - Dst: virtual_server_push_finally
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:786,1
    - Dst: unlang_module_push
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - p_result
    - request
    - vs
    - top_frame
    argTypes:
    - unlang_result_t*
    - request_t*
    - virtual_server_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 795
    functionName: virtual_server_push
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 2
    functionsReached:
    - unlang_interpret_stack_depth
    - UNCONST
    - unlang_module_push
    - unlang_interpret_result
    - virtual_server_push_finally
    - unlang_function_push_with_result
    - request_log_prepend
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t virtual_server_push(unlang_result_t *p_result, request_t
      *request, virtual_server_t const *vs, bool top_frame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:799,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:804,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:804,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 809
    functionName: cmd_show_server_list
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_section_name2
    - fr_dict_root
    - talloc_array_length
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_show_server_list(FILE *fp, UNUSED FILE *fp_err, UNUSED void
      *ctx, UNUSED fr_cmd_info_t const *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:852,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:854,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:859,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:864,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:875,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:882,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:894,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:897,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:901,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 902
    functionName: listen_addr_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_ipaddr_mask
    - fr_ipaddr_cmp
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t listen_addr_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 912
    functionName: listen_find_any
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    linkageType: ''
    returnType: fr_listen_t
    signature: fr_listen_t *listen_find_any(fr_listen_t *li)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: listen_find_any
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:924,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: listen_record
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - fr_rb_insert
    - listen_find_any
    linkageType: ''
    returnType: bool
    signature: bool listen_record(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vs
    argTypes:
    - virtual_server_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: virtual_server_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *virtual_server_cs(virtual_server_t const *vs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:947,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:947,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - server_cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 954
    functionName: virtual_server_from_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - cf_data_value
    - cf_data_find
    - cf_log_err
    linkageType: ''
    returnType: virtual_server_t
    signature: virtual_server_t *virtual_server_from_cs(CONF_SECTION const *server_cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:967,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:970,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:972,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:973,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 976
    functionName: virtual_server_find
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 6
    functionsReached:
    - cf_data_value
    - unlikely
    - cf_data_find
    - cf_section_find
    linkageType: ''
    returnType: virtual_server_t
    signature: virtual_server_t *virtual_server_find(char const *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find_parent
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:990,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:991,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:992,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:996,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:997,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:998,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1003
    functionName: virtual_server_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cf_data_find
    - cf_section_find_parent
    - cf_data_value
    - cf_log_err
    linkageType: ''
    returnType: virtual_server_t
    signature: virtual_server_t *virtual_server_by_child(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virtual_server_from_cs
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1014,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1016,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - server_cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1018
    functionName: virtual_server_packet_type_by_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 4
    functionsReached:
    - unlikely
    - virtual_server_from_cs
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *virtual_server_packet_type_by_cs(CONF_SECTION const
      *server_cs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1029,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1029,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1029,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1031,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1031,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1031,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1048,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1049,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1051,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1051,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1064,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1070,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1072,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1072,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1073,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1074,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1083
    functionName: virtual_server_cf_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - virtual_server_find
    - cf_pair_value
    - fr_cond_assert_msg
    - strcmp
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int virtual_server_cf_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED
      void *parent,\n\t\t\t    CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1089,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1090,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1091,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1093,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1094,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1095,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1096,1
    - Dst: MOD_PRIORITY
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1097,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1107,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1110,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1120,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1122,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1123,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1131,1
    - Dst: unlang_compile
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1135,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1149,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1149,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1151,1
    - Dst: fr_type_is_integer_except_bool
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1160,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1162,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1163,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1165,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1169,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1173,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1174,1
    - Dst: talloc_realloc_zero
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1174,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1179,1
    - Dst: unlang_compile
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1183,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - vs
    - rules
    - found
    argTypes:
    - virtual_server_t*
    - tmpl_rules_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1085
    functionDepth: 7
    functionLinenumber: 1085
    functionLinenumberEnd: 1192
    functionName: virtual_server_compile_finally_sections
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_section_find
    - MOD_PRIORITY
    - MEM
    - talloc_realloc_zero
    - cf_section_name2
    - fr_assert
    - fr_value_box_cast
    - talloc_array_length
    - fr_dict_enum_by_name
    - fr_type_to_str
    - fr_type_is_integer_except_bool
    - cf_log_err
    - talloc_strlen
    - unlang_compile
    linkageType: ''
    returnType: int
    signature: int virtual_server_compile_finally_sections(virtual_server_t *vs, tmpl_rules_t
      const *rules, int *found)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1204,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1206,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1218,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1220,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1226,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1226,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1228,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1229,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1231,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1232,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1244,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1246,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1261,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1268,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1269,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1274,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 2
    argNames:
    - server
    - list
    argTypes:
    - CONF_SECTION*
    - virtual_server_compile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1279
    functionName: virtual_server_warn_unused
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_item_is_parsed
    - cf_section_name2
    - strcasecmp
    - cf_log_warn
    - strcmp
    - cf_section_name1
    - cf_log_err
    linkageType: ''
    returnType: bool
    signature: bool virtual_server_warn_unused(CONF_SECTION *server, virtual_server_compile_t
      const *list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1204,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1206,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1218,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1220,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1226,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1226,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1228,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1229,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1231,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1232,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1244,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1246,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1261,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1268,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1269,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1274,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1276
    functionName: cf_section_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_item_is_parsed
    - cf_section_name2
    - strcasecmp
    - cf_log_warn
    - strcmp
    - cf_section_name1
    - cf_log_err
    linkageType: ''
    returnType: void
    signature: void cf_section_foreach(server, subcs)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1315,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1316,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1318,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1319,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1320,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1321,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1322,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1323,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1324,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1325,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1326,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1355,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1357,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1371,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1374,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1375,1
    - Dst: unlang_compile
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1379,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1409,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1410,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1412,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1419,1
    - Dst: unlang_compile
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1422,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1441,1
    - Dst: virtual_server_compile_finally_sections
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1441,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1442,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1455,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1456,1
    - Dst: virtual_server_warn_unused
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1462,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 80
    argCount: 2
    argNames:
    - vs
    - rules
    argTypes:
    - virtual_server_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1293
    functionDepth: 8
    functionLinenumber: 1293
    functionLinenumberEnd: 1471
    functionName: virtual_server_compile_sections
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - unlikely
    - cf_section_find
    - virtual_server_warn_unused
    - cf_section_name2
    - virtual_server_compile_finally_sections
    - strcmp
    - cf_section_name1
    - cf_section_next
    - cf_log_err
    - DEBUG3
    - unlang_compile
    linkageType: ''
    returnType: int
    signature: int virtual_server_compile_sections(virtual_server_t *vs, tmpl_rules_t
      const *rules)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1482,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1499,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1504,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1512,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - vs
    - entry
    argTypes:
    - virtual_server_t*
    - virtual_server_compile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1518
    functionName: virtual_server_section_register
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - ERROR
    - fr_strerror_const
    - fr_rb_insert
    linkageType: ''
    returnType: int
    signature: int virtual_server_section_register(virtual_server_t *vs, virtual_server_compile_t
      const *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1532,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1542,1
    - Dst: SECTION_NAME
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1549
    functionName: virtual_server_section_methods
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - SECTION_NAME
    linkageType: ''
    returnType: section_name_t
    signature: section_name_t **virtual_server_section_methods(virtual_server_t const
      *vs, section_name_t const *section)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1567,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1567,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1567,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1569,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1573,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1575,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1583,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1586,1
    - Dst: fr_dict_enum_add_name_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1594,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1594,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - server_cs
    - subcs_name
    - da
    argTypes:
    - CONF_SECTION*
    - char*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1603
    functionName: virtual_server_section_attribute_define
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_err
    - cf_section_name2
    - fr_assert
    - cf_log_debug
    - strcmp
    - fr_dict_enum_add_name_next
    - fr_dict_enum_by_name
    - fr_dict_attr_unconst
    - cf_section_name1
    - PERROR
    linkageType: ''
    returnType: int
    signature: int virtual_server_section_attribute_define(CONF_SECTION *server_cs,
      char const *subcs_name, fr_dict_attr_t const *da)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1611,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1613,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1617,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1619,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1623,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1624,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1633,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1637,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1644,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1645,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1649,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1651,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1652,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1657,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1658,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1659,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1663,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1664,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1666,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1666,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1668,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1672,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1674,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1679,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1681,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1681,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1686,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1691,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1691,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1695,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - cs
    - parent
    argTypes:
    - CONF_SECTION*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1696
    functionName: define_server_values
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fr_type_is_structural
    - fr_strerror
    - cf_pair_operator
    - cf_log_err
    - fr_value_box_clear
    - cf_section_name2
    - cf_item_next
    - cf_pair_attr
    - cf_item_is_section
    - fr_dict_attr_by_name
    - cf_pair_attr_quote
    - fr_assert
    - fr_dict_enum_by_name
    - cf_item_is_pair
    - talloc_strlen
    - fr_value_box_init_null
    - cf_pair_value
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: int define_server_values(CONF_SECTION *cs, fr_dict_attr_t *parent)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1712,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1713,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1715,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1721,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1722,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1723,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1725,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1727,1
    - Dst: define_server_values
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1728,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1732,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1734,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1736,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1744,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1746,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1747,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1752,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1753,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1754,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1755,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1759,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1760,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1762,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1765,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1772,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1778,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1779,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1783,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1784,1
    - Dst: fr_dict_attr_add_name_only
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1788,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1789,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1789,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1798,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1799,1
    - Dst: define_server_attrs
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1801,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1801,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 4
    argNames:
    - cs
    - dict
    - parent
    - root
    argTypes:
    - CONF_SECTION*
    - fr_dict_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1702
    functionDepth: 2
    functionLinenumber: 1702
    functionLinenumberEnd: 1806
    functionName: define_server_attrs
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - fr_dict_attr_add_name_only
    - fr_type_is_leaf
    - define_server_attrs
    - fr_strerror
    - cf_pair_operator
    - cf_log_err
    - cf_item_to_section
    - cf_item_next
    - cf_section_name2
    - fr_table_value_by_str
    - cf_section_name1
    - cf_pair_attr
    - cf_pair_value_quote
    - cf_item_is_section
    - fr_dict_attr_by_name
    - define_server_values
    - cf_pair_attr_quote
    - UNCONST
    - fr_assert
    - strcmp
    - cf_item_is_pair
    - cf_pair_value
    linkageType: ''
    returnType: int
    signature: int define_server_attrs(CONF_SECTION *cs, fr_dict_t *dict, fr_dict_attr_t
      *parent, fr_dict_attr_t const *root)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1813,1
    - Dst: fr_dict_protocol_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1816,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1818,1
    - Dst: define_server_attrs
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1822,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1822,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1822,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1822,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1823,1
    - Dst: cf_data_remove
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1830,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1831,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - server_cs
    - dict_def
    argTypes:
    - CONF_SECTION*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1808
    functionDepth: 3
    functionLinenumber: 1808
    functionLinenumberEnd: 1835
    functionName: virtual_server_local_dict
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - define_server_attrs
    - cf_section_find
    - cf_data_remove
    - talloc_free
    - UNCONST
    - fr_dict_protocol_alloc
    - cf_item_mark_parsed
    - cf_data_add
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *virtual_server_local_dict(CONF_SECTION *server_cs, fr_dict_t
      const *dict_def)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1847,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1850,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1852,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1853,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1862,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1868,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1869,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1870,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1872,1
    - Dst: module_instance_data_unprotect
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1890,1
    - Dst: virtual_server_listen_t*::proto_module::open
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1891,1
    - Dst: module_instance_data_protect
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1893,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1894,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1904,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1909,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1910,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - sc
    argTypes:
    - fr_schedule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1915
    functionName: virtual_servers_open
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ERROR
    - module_instance_data_protect
    - virtual_server_listen_t*::proto_module::open
    - fr_assert
    - module_instance_data_unprotect
    - talloc_array_length
    - fr_strerror_clear
    - DEBUG2
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int virtual_servers_open(fr_schedule_t *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modules_thread_detach
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1922,1
    - Dst: modules_thread_detach
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1924
    functionName: virtual_servers_thread_detach
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - modules_thread_detach
    linkageType: ''
    returnType: void
    signature: void virtual_servers_thread_detach(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: modules_thread_instantiate
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1931,1
    - Dst: modules_thread_instantiate
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1932,1
    - Dst: modules_thread_detach
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - el
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1937
    functionName: virtual_servers_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 1
    functionsReached:
    - modules_thread_instantiate
    - modules_thread_detach
    linkageType: ''
    returnType: int
    signature: int virtual_servers_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t
      *el)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1952,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1953,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1957,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1959,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1961,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1962,1
    - Dst: log_dst_by_name
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1977,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1979,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1982,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1984,1
    - Dst: virtual_server_local_dict
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1991,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1994,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1994,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:1996,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2014,1
    - Dst: virtual_server_compile_sections
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2016,1
    - Dst: virtual_server_warn_unused
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2021,1
    - Dst: modules_instantiate
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2024,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2025,1
    - Dst: modules_instantiate
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2028,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2029,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1945
    functionDepth: 9
    functionLinenumber: 1945
    functionLinenumberEnd: 2034
    functionName: virtual_servers_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - modules_instantiate
    - virtual_server_local_dict
    - virtual_server_compile_sections
    - virtual_server_warn_unused
    - cf_section_name2
    - DEBUG
    - fr_command_register_hook
    - log_dst_by_name
    - talloc_array_length
    - fr_assert
    - cf_pair_find
    - DEBUG2
    - cf_log_err
    - PERROR
    linkageType: ''
    returnType: int
    signature: int virtual_servers_instantiate(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: global_lib_instantiate
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2050,1
    - Dst: modules_bootstrap
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2052,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2053,1
    - Dst: modules_bootstrap
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2056,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - config
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2062
    functionName: virtual_servers_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - modules_bootstrap
    - global_lib_instantiate
    - PERROR
    linkageType: ''
    returnType: int
    signature: int virtual_servers_bootstrap(CONF_SECTION *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2066,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2068,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2070,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2075
    functionName: virtual_servers_free
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 2
    functionsReached:
    - fr_dict_autofree
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int virtual_servers_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_servers_free
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2077
    functionDepth: 2
    functionLinenumber: 2077
    functionLinenumberEnd: 2080
    functionName: _virtual_servers_atexit
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 0
    functionsReached:
    - virtual_servers_free
    linkageType: ''
    returnType: int
    signature: int _virtual_servers_atexit(UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2092,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2093,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2096,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2097,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2098,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2102,1
    - Dst: module_list_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2102,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2109,1
    - Dst: module_list_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2109,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2110,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2110,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/server/virtual_servers.c:2116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2119
    functionName: virtual_servers_init
    functionSourceFile: /src/freeradius-server/src/lib/server/virtual_servers.c
    functionUses: 3
    functionsReached:
    - fr_dict_attr_autoload
    - fr_atexit_global
    - fr_rb_inline_alloc
    - module_list_alloc
    - MEM
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int virtual_servers_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/exfile.c:97,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/exfile.c:98,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/exfile.c:99,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/exfile.c:103,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/exfile.c:103,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/exfile.c:103,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/exfile.c:105,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/exfile.c:109,1
    - Dst: fr_pair_list_prepend_by_da_len
      Src: /src/freeradius-server/src/lib/server/exfile.c:111,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/exfile.c:112,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/exfile.c:114,1
    - Dst: trigger
      Src: /src/freeradius-server/src/lib/server/exfile.c:115,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/lib/server/exfile.c:115,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ef
    - entry
    - ex_trigger
    argTypes:
    - exfile_t*
    - exfile_entry_t*
    - exfile_trigger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 120
    functionName: exfile_trigger
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_pair_list_free
    - fr_pair_list_prepend_by_da_len
    - fr_dict_root
    - snprintf
    - fr_dict_internal
    - fr_assert
    - unlang_interpret_get_thread_default
    - fr_dict_attr_child_by_num
    - talloc_strlen
    - trigger
    - fr_pair_list_init
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void exfile_trigger(exfile_t *ef, exfile_entry_t *entry, exfile_trigger_t
      ex_trigger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exfile.c:125,1
    - Dst: exfile_trigger
      Src: /src/freeradius-server/src/lib/server/exfile.c:133,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/exfile.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ef
    - entry
    argTypes:
    - exfile_t*
    - exfile_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: exfile_cleanup_entry
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - exfile_trigger
    - close
    linkageType: ''
    returnType: void
    signature: void exfile_cleanup_entry(exfile_t *ef, exfile_entry_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/exfile.c:146,1
    - Dst: exfile_cleanup_entry
      Src: /src/freeradius-server/src/lib/server/exfile.c:151,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/exfile.c:154,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/server/exfile.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ef
    argTypes:
    - exfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: _exfile_free
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_destroy
    - exfile_cleanup_entry
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int _exfile_free(exfile_t *ef)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/exfile.c:174,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/exfile.c:176,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/server/exfile.c:178,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/exfile.c:191,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:193,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/server/exfile.c:197,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:198,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/exfile.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - max_entries
    - max_idle
    - locking
    argTypes:
    - TALLOC_CTX*
    - uint32_t
    - fr_time_delta_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: exfile_init
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 3
    functionsReached:
    - talloc_link_ctx
    - talloc_set_destructor
    - talloc_free
    - talloc_zero
    - talloc_zero_array
    - fr_pair_list_init
    - pthread_mutex_init
    linkageType: ''
    returnType: exfile_t
    signature: exfile_t *exfile_init(TALLOC_CTX *ctx, uint32_t max_entries, fr_time_delta_t
      max_idle, bool locking)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:220,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/exfile.c:221,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/exfile.c:221,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/exfile.c:221,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:223,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/exfile.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ef
    - conf
    - trigger_prefix
    - trigger_args
    argTypes:
    - exfile_t*
    - CONF_SECTION*
    - char*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: exfile_enable_triggers
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - talloc_const_free
    - fr_pair_list_free
    - MEM
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void exfile_enable_triggers(exfile_t *ef, CONF_SECTION *conf, char
      const *trigger_prefix, fr_pair_list_t *trigger_args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/exfile.c:241,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/exfile.c:251,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/exfile.c:253,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:255,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:256,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/server/exfile.c:270,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:271,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exfile.c:271,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:272,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/server/exfile.c:276,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exfile.c:277,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exfile.c:278,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:281,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exfile.c:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - filename
    - permissions
    - flags
    argTypes:
    - char*
    - mode_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 287
    functionName: exfile_open_mkdir
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - open
    - strrchr
    - fr_strerror_printf
    - talloc_strdup
    - fr_syserror
    - openat
    - close
    - fr_mkdir
    linkageType: ''
    returnType: int
    signature: int exfile_open_mkdir(char const *filename, mode_t permissions, int
      flags)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/server/exfile.c:307,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/exfile.c:308,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/exfile.c:311,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/exfile.c:313,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/exfile.c:313,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/exfile.c:313,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/exfile.c:328,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/exfile.c:343,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/server/exfile.c:357,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/exfile.c:357,1
    - Dst: exfile_cleanup_entry
      Src: /src/freeradius-server/src/lib/server/exfile.c:359,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/server/exfile.c:376,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exfile.c:383,1
    - Dst: exfile_cleanup_entry
      Src: /src/freeradius-server/src/lib/server/exfile.c:394,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/exfile.c:404,1
    - Dst: exfile_open_mkdir
      Src: /src/freeradius-server/src/lib/server/exfile.c:410,1
    - Dst: exfile_trigger
      Src: /src/freeradius-server/src/lib/server/exfile.c:413,1
    - Dst: lseek
      Src: /src/freeradius-server/src/lib/server/exfile.c:419,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:420,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exfile.c:420,1
    - Dst: exfile_cleanup_entry
      Src: /src/freeradius-server/src/lib/server/exfile.c:423,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/exfile.c:424,1
    - Dst: rad_lockfd_nonblock
      Src: /src/freeradius-server/src/lib/server/exfile.c:435,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:438,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exfile.c:438,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exfile.c:442,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/exfile.c:443,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:445,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exfile.c:445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exfile.c:451,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/server/exfile.c:459,1
    - Dst: fr_perm_mode_to_oct
      Src: /src/freeradius-server/src/lib/server/exfile.c:478,1
    - Dst: fr_perm_mode_to_str
      Src: /src/freeradius-server/src/lib/server/exfile.c:479,1
    - Dst: fr_perm_mode_to_oct
      Src: /src/freeradius-server/src/lib/server/exfile.c:481,1
    - Dst: fr_perm_mode_to_str
      Src: /src/freeradius-server/src/lib/server/exfile.c:482,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/exfile.c:484,1
    - Dst: fchmod
      Src: /src/freeradius-server/src/lib/server/exfile.c:488,1
    - Dst: fr_perm_mode_to_oct
      Src: /src/freeradius-server/src/lib/server/exfile.c:489,1
    - Dst: fr_perm_mode_to_str
      Src: /src/freeradius-server/src/lib/server/exfile.c:490,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/exfile.c:492,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exfile.c:493,1
    - Dst: lseek
      Src: /src/freeradius-server/src/lib/server/exfile.c:501,1
    - Dst: exfile_trigger
      Src: /src/freeradius-server/src/lib/server/exfile.c:509,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 119
    argCount: 5
    argNames:
    - ef
    - filename
    - permissions
    - flags
    - offset
    argTypes:
    - exfile_t*
    - char*
    - mode_t
    - int
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 513
    functionName: exfile_open_lock
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - WARN
    - fr_strerror_printf
    - fr_time_add
    - talloc_strdup
    - pthread_mutex_unlock
    - exfile_open_mkdir
    - close
    - rad_lockfd_nonblock
    - fr_time
    - pthread_mutex_lock
    - open
    - fr_perm_mode_to_oct
    - fr_time_lt
    - fstat
    - fr_syserror
    - exfile_cleanup_entry
    - fr_time_gteq
    - exfile_trigger
    - strcmp
    - fr_time_delta_from_sec
    - fr_hash_string
    - fr_time_gt
    - stat
    - fr_perm_mode_to_str
    - fchmod
    - lseek
    linkageType: ''
    returnType: int
    signature: int exfile_open_lock(exfile_t *ef, char const *filename, mode_t permissions,
      int flags, off_t *offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exfile_open_mkdir
      Src: /src/freeradius-server/src/lib/server/exfile.c:534,1
    - Dst: lseek
      Src: /src/freeradius-server/src/lib/server/exfile.c:538,1
    - Dst: exfile_open_lock
      Src: /src/freeradius-server/src/lib/server/exfile.c:543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - ef
    - filename
    - permissions
    - flags
    - offset
    argTypes:
    - exfile_t*
    - char*
    - mode_t
    - int
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 544
    functionName: exfile_open
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 4
    functionsReached:
    - exfile_open_lock
    - exfile_open_mkdir
    - lseek
    linkageType: ''
    returnType: int
    signature: int exfile_open(exfile_t *ef, char const *filename, mode_t permissions,
      int flags, off_t *offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/freeradius-server/src/lib/server/exfile.c:559,1
    - Dst: rad_unlockfd
      Src: /src/freeradius-server/src/lib/server/exfile.c:560,1
    - Dst: fr_time_delta_eq
      Src: /src/freeradius-server/src/lib/server/exfile.c:566,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/exfile.c:566,1
    - Dst: exfile_cleanup_entry
      Src: /src/freeradius-server/src/lib/server/exfile.c:567,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/exfile.c:568,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/exfile.c:572,1
    - Dst: exfile_trigger
      Src: /src/freeradius-server/src/lib/server/exfile.c:574,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/exfile.c:578,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exfile.c:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ef
    - fd
    argTypes:
    - exfile_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 582
    functionName: exfile_close_lock
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - exfile_cleanup_entry
    - pthread_mutex_unlock
    - exfile_trigger
    - fr_time_delta_eq
    - rad_unlockfd
    - fr_time_delta_from_sec
    - lseek
    linkageType: ''
    returnType: int
    signature: int exfile_close_lock(exfile_t *ef, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exfile.c:602,1
    - Dst: exfile_close_lock
      Src: /src/freeradius-server/src/lib/server/exfile.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ef
    - fd
    argTypes:
    - exfile_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: exfile_close
    functionSourceFile: /src/freeradius-server/src/lib/server/exfile.c
    functionUses: 4
    functionsReached:
    - exfile_close_lock
    - close
    linkageType: ''
    returnType: int
    signature: int exfile_close(exfile_t *ef, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: debug_enabled
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: debug_enabled(_type, _lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: _FR_LOG_DST
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_DST(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: _FR_LOG_DST_PERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_DST_PERROR(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: _FR_LOG_DST_FATAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_DST_FATAL(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _lvl
    - ','
    - _str
    - ','
    - _str_len
    - ','
    - _marker_idx
    - ','
    - _line_prefix_fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: _FR_LOG_DST_MARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_DST_MARKER(_lvl, _str, _str_len, _marker_idx, _line_prefix_fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: _FR_LOG_PREFIX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: _FR_LOG_PREFIX_PERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX_PERROR(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: _FR_LOG_PREFIX_FATAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX_FATAL(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _lvl
    - ','
    - _str
    - ','
    - _str_len
    - ','
    - _marker_idx
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: _FR_LOG_PREFIX_MARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX_MARKER(_lvl, _str, _str_len, _marker_idx, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: _FR_LOG_PREFIX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: _FR_LOG_PREFIX_PERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX_PERROR(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: _FR_LOG_PREFIX_FATAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX_FATAL(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _lvl
    - ','
    - _str
    - ','
    - _str_len
    - ','
    - _marker_idx
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: _FR_LOG_PREFIX_MARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_LOG_PREFIX_MARKER(_lvl, _str, _str_len, _marker_idx, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: INFO
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: WARN
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 94
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 502
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: FATAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATAL(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: PINFO
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PINFO(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: PWARN
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PWARN(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: PERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 125
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: IMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMARKER(_str, _marker_idx, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: WMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WMARKER(_str, _marker_idx, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: EMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMARKER(_str, _marker_idx, _marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _type
    - ','
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: _DEBUG_LOG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DEBUG_LOG(_type, _lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 519
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: DEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 340
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG2(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: DEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 193
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG3(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: DEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG4(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: DEBUGX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGX(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _type
    - ','
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: _PDEBUG_LOG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PDEBUG_LOG(_type, _lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: PDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDEBUG(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: PDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDEBUG2(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: PDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDEBUG3(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: PDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDEBUG4(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: PDEBUGX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDEBUGX(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: WDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WDEBUG(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: WDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WDEBUG2(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: WDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WDEBUG3(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: WDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WDEBUG4(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: WDEBUGX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WDEBUGX(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: EDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 344
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDEBUG(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: EDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDEBUG2(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: EDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDEBUG3(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: EDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDEBUG4(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lvl
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: EDEBUGX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDEBUGX(_lvl, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: RINFO
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RINFO(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: RWARN
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RWARN(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: RERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: RPINFO
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPINFO(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: RPWARN
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPWARN(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: RPERROR
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: RDEBUG_ENABLEDX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG_ENABLEDX(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _l
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: RDEBUGX
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUGX(_l, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: RDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 75
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: RDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 256
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: RDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 107
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: RDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: RPDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: RPDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: RPDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: RPDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: RIDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: RIDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: RIDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: RIDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: RPIDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPIDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: RPIDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPIDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: RPIDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPIDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: RPIDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPIDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: RWDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RWDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: RWDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RWDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: RWDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RWDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: RWDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RWDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: RPWDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPWDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: RPWDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPWDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: RPWDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPWDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: RPWDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPWDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    functionName: REDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 281
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: REDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: REDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: REDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: RPEDEBUG
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 102
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPEDEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: RPEDEBUG2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPEDEBUG2(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: RPEDEBUG3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPEDEBUG3(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: RPEDEBUG4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPEDEBUG4(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _request
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: RINDENT_SAVE
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RINDENT_SAVE(_x, _request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _request
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: RINDENT_RESTORE
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RINDENT_RESTORE(_request, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: RINDENT
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RINDENT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: REXDENT
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REXDENT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 449
    functionName: RINDENT
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RINDENT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: REXDENT
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REXDENT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _type
    - ','
    - _lvl
    - ','
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: RMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RMARKER(_type, _lvl, _str, _marker_idx, _marker, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _type
    - ','
    - _lvl
    - ','
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: RMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RMARKER(_type, _lvl, _str, _marker_idx, _marker, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: REMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMARKER(_str, _marker_idx, _marker, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _str
    - ','
    - _marker_idx
    - ','
    - _marker
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    functionName: RDMARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RDMARKER(_str, _marker_idx, _marker, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _l_request
    - ','
    - _l_global
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 548
    functionName: ROPTIONAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROPTIONAL(_l_request, _l_global, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _e_request
    - ','
    - _e_global
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: ROPTIONAL_ENABLED
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROPTIONAL_ENABLED(_e_request, _e_global)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _entry
    - ','
    - _log
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 598
    functionName: RATE_LIMIT_LOCAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RATE_LIMIT_LOCAL(_entry, _log, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _entry
    - ','
    - _l_request
    - ','
    - _l_global
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 637
    functionName: RATE_LIMIT_LOCAL_ROPTIONAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RATE_LIMIT_LOCAL_ROPTIONAL(_entry, _l_request, _l_global, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _log
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 658
    functionName: RATE_LIMIT_GLOBAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RATE_LIMIT_GLOBAL(_log, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _l_request
    - ','
    - _l_global
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: RATE_LIMIT_GLOBAL_ROPTIONAL
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RATE_LIMIT_GLOBAL_ROPTIONAL(_l_request, _l_global, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _lvl
    - ','
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: _RHEXDUMP_INLINE
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _RHEXDUMP_INLINE(_lvl, _data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 697
    functionName: RHEXDUMP_INLINE1
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP_INLINE1(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: RHEXDUMP_INLINE2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP_INLINE2(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 699
    functionName: RHEXDUMP_INLINE3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP_INLINE3(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 700
    functionName: RHEXDUMP_INLINE4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP_INLINE4(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _lvl
    - ','
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: _RHEXDUMP
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _RHEXDUMP(_lvl, _data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 716
    functionName: RHEXDUMP1
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP1(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 717
    functionName: RHEXDUMP2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP2(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 718
    functionName: RHEXDUMP3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP3(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 719
    functionName: RHEXDUMP4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RHEXDUMP4(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _lvl
    - ','
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: _HEXDUMP
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HEXDUMP(_lvl, _data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 734
    functionName: HEXDUMP1
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXDUMP1(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 735
    functionName: HEXDUMP2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXDUMP2(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 736
    functionName: HEXDUMP3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXDUMP3(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 737
    functionName: HEXDUMP4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXDUMP4(_data, _len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _lvl
    - ','
    - _data
    - ','
    - _len
    - ','
    - _slen
    - ','
    - _error
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: _HEX_MARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HEX_MARKER(_lvl, _data, _len, _slen, _error, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _slen
    - ','
    - _error
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 754
    functionName: HEX_MARKER1
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_MARKER1(_data, _len, _slen, _error, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _slen
    - ','
    - _error
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 755
    functionName: HEX_MARKER2
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_MARKER2(_data, _len, _slen, _error, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _slen
    - ','
    - _error
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 756
    functionName: HEX_MARKER3
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_MARKER3(_data, _len, _slen, _error, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _data
    - ','
    - _len
    - ','
    - _slen
    - ','
    - _error
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 757
    functionName: HEX_MARKER4
    functionSourceFile: /src/freeradius-server/src/lib/server/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_MARKER4(_data, _len, _slen, _error, _fmt, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:90,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - request
    - list
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: tmpl_list_head
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 8
    functionsReached:
    - RWDEBUG2
    - tmpl_list_name
    linkageType: ''
    returnType: fr_pair_list_t
    signature: fr_pair_list_t *tmpl_list_head(request_t *request, fr_dict_attr_t const
      *list)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - request
    - list
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: tmpl_list_ctx
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *tmpl_list_ctx(request_t *request, fr_dict_attr_t const
      *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - request
    - list
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: tmpl_packet_ptr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *tmpl_packet_ptr(request_t *request, fr_dict_attr_t const
      *list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:168,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - context
    - rql
    argTypes:
    - request_t**
    - FR_DLIST_HEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: tmpl_request_ptr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - tmpl_request_list_next
    linkageType: ''
    returnType: int
    signature: int tmpl_request_ptr(request_t **context, FR_DLIST_HEAD(tmpl_request_list)
      const *rql)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:208,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:213,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:213,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:224,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 238
    functionName: tmpl_expanded_type
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 5
    functionsReached:
    - tmpl_value_type
    - tmpl_attr_tail_da
    - tmpl_contains_regex
    - tmpl_rules_cast
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t tmpl_expanded_type(tmpl_t const *vpt)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:282,1
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:283,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:291,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:293,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:293,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:294,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:294,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:296,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:300,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:302,1
    - Dst: radius_exec_program_legacy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:306,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:307,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:309,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:314,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:319,1
    - Dst: xlat_eval_compiled
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:324,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:324,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:327,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:332,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:333,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:334,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:342,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:343,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:359,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:377,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:378,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:378,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:378,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:385,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:386,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:386,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:396,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:400,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:408,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:410,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:421,1
    - Dst: fr_value_box_memcpy_out
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:424,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 6
    argNames:
    - out
    - buff
    - bufflen
    - request
    - vpt
    - dst_type
    argTypes:
    - void*
    - uint8_t*
    - size_t
    - request_t*
    - tmpl_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 427
    functionName: _tmpl_to_type
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - memcpy
    - tmpl_needs_resolving
    - fr_type_is_structural
    - REDEBUG
    - fr_value_box_strdup_shallow
    - fr_value_box_cast
    - fr_type_to_str
    - FR_VALUE_BOX_INITIALISER_NULL
    - RPEDEBUG
    - fr_value_box_clear
    - fr_value_box_bstrndup_shallow
    - radius_exec_program_legacy
    - fr_assert
    - fr_type_is_variable_size
    - fr_time_delta_from_sec
    - tmpl_xlat
    - TMPL_VERIFY
    - xlat_eval_compiled
    - RDEBUG4
    - tmpl_value
    - fr_value_box_memcpy_out
    - tmpl_find_vp
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t _tmpl_to_type(void *out,\n\t\t      uint8_t *buff, size_t
      bufflen,\n\t\t      request_t *request,\n\t\t      tmpl_t const *vpt,\n\t\t
      \     fr_type_t dst_type)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:470,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:481,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:483,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:483,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:484,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:484,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:488,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:490,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:490,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:492,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:492,1
    - Dst: radius_exec_program_legacy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:493,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:494,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:496,1
    - Dst: fr_value_box_strtrim
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:500,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:506,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:508,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:508,1
    - Dst: xlat_aeval_compiled
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:515,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:515,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:517,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:524,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:529,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:531,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:533,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:534,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:538,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:545,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:548,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:548,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:563,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:567,1
    - Dst: VALUE_BOX_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:568,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:577,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:577,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:578,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:582,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:582,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:583,1
    - Dst: fr_value_box_steal
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:587,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:591,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:594,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:598,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:598,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:603,1
    - Dst: VALUE_BOX_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:604,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:617,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:618,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:619,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:621,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:622,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:624,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:629,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:638,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:644,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:646,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:646,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:649,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:650,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:652,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:653,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:657,1
    - Dst: fr_value_box_memcpy_out
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:660,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:666,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 131
    argCount: 7
    argNames:
    - ctx
    - out
    - request
    - vpt
    - escape
    - escape_ctx
    - dst_type
    argTypes:
    - TALLOC_CTX*
    - void*
    - request_t*
    - tmpl_t*
    - xlat_escape_legacy_t
    - void*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 669
    functionName: _tmpl_to_atype
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - tmpl_needs_resolving
    - fr_type_is_structural
    - fr_value_box_cast
    - talloc_new
    - fr_type_to_str
    - MEM
    - fr_value_box_alloc_null
    - unlikely
    - FR_VALUE_BOX_INITIALISER_NULL
    - RPEDEBUG
    - fr_value_box_bstrndup_shallow
    - xlat_aeval_compiled
    - VALUE_BOX_VERIFY
    - radius_exec_program_legacy
    - talloc_steal
    - UNCONST
    - fr_assert
    - tmpl_rules_cast
    - talloc_strlen
    - fr_type_is_variable_size
    - fr_time_delta_from_sec
    - fr_value_box_strtrim
    - fr_value_box_steal
    - RDEBUG
    - talloc_free
    - tmpl_xlat
    - TMPL_VERIFY
    - RDEBUG4
    - fr_value_box_bstr_alloc
    - tmpl_value
    - fr_value_box_memcpy_out
    - tmpl_find_vp
    - fr_value_box_from_str
    - fr_value_box_copy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t _tmpl_to_atype(TALLOC_CTX *ctx, void *out,\n\t\t       request_t
      *request,\n\t\t       tmpl_t const *vpt,\n\t\t       xlat_escape_legacy_t escape,
      void const *escape_ctx,\n\t\t       fr_type_t dst_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:692,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:694,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:694,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:696,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:698,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:699,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:701,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:702,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:706,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - vpt
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 711
    functionName: tmpl_copy_pairs
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 2
    functionsReached:
    - fr_pair_list_free
    - fr_dcursor_next
    - fr_pair_append
    - TMPL_VERIFY
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_dcursor_init
    - tmpl_is_attr
    - fr_strerror_const
    - fr_pair_copy
    linkageType: ''
    returnType: int
    signature: int tmpl_copy_pairs(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t
      *request, tmpl_t const *vpt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:735,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:737,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:737,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:739,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:741,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:743,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:746,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - vpt
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 760
    functionName: tmpl_copy_pair_children
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_free
    - fr_dcursor_next
    - TMPL_VERIFY
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_dcursor_init
    - tmpl_is_attr
    - fr_pair_list_copy
    linkageType: ''
    returnType: int
    signature: int tmpl_copy_pair_children(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t
      *request, tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:783,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:785,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - request
    - vpt
    argTypes:
    - fr_pair_t**
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 791
    functionName: tmpl_find_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 12
    functionsReached:
    - TMPL_VERIFY
    - tmpl_dcursor_clear
    - tmpl_dcursor_init
    linkageType: ''
    returnType: int
    signature: int tmpl_find_vp(fr_pair_t **out, request_t *request, tmpl_t const
      *vpt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:812,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:813,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:813,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:817,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:818,1
    - Dst: tmpl_pair_list_and_ctx
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:830,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:830,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:830,1
    - Dst: pair_append_by_tmpl_parent
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:833,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - out
    - request
    - vpt
    argTypes:
    - fr_pair_t**
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 843
    functionName: tmpl_find_or_add_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 2
    functionsReached:
    - pair_append_by_tmpl_parent
    - tmpl_request
    - tmpl_list
    - TMPL_VERIFY
    - fr_assert
    - tmpl_dcursor_clear
    - tmpl_pair_list_and_ctx
    - tmpl_dcursor_init
    - tmpl_is_attr
    - PAIR_ALLOCED
    linkageType: ''
    returnType: int
    signature: int tmpl_find_or_add_vp(fr_pair_t **out, request_t *request, tmpl_t
      const *vpt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:869,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:875,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:876,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:878,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:878,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:885,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:890,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:897,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:898,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:915,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - out
    - list
    - vpt
    - skip_list
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t**
    - fr_pair_list_t*
    - tmpl_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 917
    functionName: pair_append_by_tmpl_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 2
    functionsReached:
    - unlikely
    - tmpl_attr_list_next
    - fr_pair_append_by_da
    - tmpl_attr_list_head
    - tmpl_attr_list_tail
    - tmpl_is_attr
    - PAIR_ALLOCED
    - tmpl_attr_is_list_attr
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int pair_append_by_tmpl_parent(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_t
      *list, tmpl_t const *vpt, bool skip_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:930,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:930,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:931,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:932,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:936,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:936,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:936,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:938,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - list
    - box
    - vpt
    argTypes:
    - fr_value_box_list_t*
    - fr_value_box_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 941
    functionName: tmpl_value_list_insert_tail
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - fr_value_box_cast_in_place
    - tmpl_rules_enumv
    - VALUE_BOX_LIST_VERIFY
    - fr_value_box_list_insert_tail
    - tmpl_rules_cast
    - fr_type_is_null
    linkageType: ''
    returnType: int
    signature: int tmpl_value_list_insert_tail(fr_value_box_list_t *list, fr_value_box_t
      *box, tmpl_t const *vpt)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:964,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:964,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:966,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:974,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:986,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:987,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:990,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:995,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1001,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1011,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1014,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1017,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1030,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1031,1
    - Dst: fr_pair_list_copy_to_box
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1034,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1035,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1040,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1042,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1042,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1043,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1048,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1049,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1054,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1055,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1059,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1062,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1062,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1063,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1066,1
    - Dst: tmpl_eval_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1075,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1076,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1081,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1085,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1086,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - vpt
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 1088
    functionName: tmpl_eval_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - tmpl_eval_cast_in_place
    - fr_value_box_alloc
    - tmpl_dcursor_clear
    - fr_pair_list_copy_to_box
    - unlikely
    - fr_dcursor_next
    - VALUE_BOX_LIST_VERIFY
    - tmpl_is_attr
    - fr_strerror_const
    - fr_value_box_list_init
    - fr_value_box_list_insert_tail
    - fr_assert
    - talloc_free
    - fr_value_box_list_move
    - fr_value_box_list_talloc_free
    - tmpl_attr_tail_num
    - tmpl_dcursor_init
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int tmpl_eval_pair(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t
      *request, tmpl_t const *vpt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1109,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1110,1
    - Dst: tmpl_async_required
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1114,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1115,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1119,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1120,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1124,1
    - Dst: tmpl_eval_pair
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1125,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1128,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1129,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1129,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1129,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1131,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1131,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1132,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1138,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1138,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1146,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1146,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1147,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1148,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1151,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1151,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1157,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1158,1
    - Dst: tmpl_eval_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1160,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1161,1
    - Dst: fr_value_box_list_move
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1165,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1166,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - vpt
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1169
    functionName: tmpl_eval
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 1
    functionsReached:
    - tmpl_needs_resolving
    - tmpl_async_required
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_eval_cast_in_place
    - fr_value_box_alloc
    - MEM
    - fr_value_box_alloc_null
    - unlikely
    - tmpl_aexpand
    - VALUE_BOX_LIST_VERIFY
    - fr_value_box_bstrndup_shallow
    - tmpl_is_attr
    - fr_strerror_const
    - tmpl_is_xlat
    - fr_value_box_list_init
    - tmpl_eval_pair
    - fr_value_box_list_insert_tail
    - fr_assert
    - tmpl_contains_regex
    - talloc_strlen
    - talloc_free
    - fr_value_box_list_move
    - fr_value_box_list_talloc_free
    - tmpl_value
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int tmpl_eval(TALLOC_CTX *ctx, fr_value_box_list_t *out, request_t
      *request, tmpl_t const *vpt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1182,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1188,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1189,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1189,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1190,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1195,1
    - Dst: tmpl_escape_t*::uctx::func::alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1196,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - request
    - escape
    argTypes:
    - request_t*
    - tmpl_escape_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1202
    functionName: tmpl_eval_escape_uctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - talloc_set_type
    - UNCONST
    - tmpl_escape_t*::uctx::func::alloc
    - fr_assert_msg
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: void
    signature: void *tmpl_eval_escape_uctx_alloc(request_t *request, tmpl_escape_t
      const *escape)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1216,1
    - Dst: tmpl_escape_t*::uctx::func::free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - escape
    - uctx
    argTypes:
    - tmpl_escape_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1223
    functionName: tmpl_eval_escape_uctx_free
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - tmpl_escape_t*::uctx::func::free
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void tmpl_eval_escape_uctx_free(tmpl_escape_t const *escape, void *uctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1236,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1240,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1241,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1241,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1259,1
    - Dst: tmpl_escape_pre_concat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1262,1
    - Dst: tmpl_eval_escape_uctx_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1263,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1268,1
    - Dst: fr_value_box_list_escape_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1268,1
    - Dst: tmpl_eval_escape_uctx_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1270,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1275,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1278,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1287,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1287,1
    - Dst: tmpl_eval_escape_uctx_free
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1289,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1301,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1309,1
    - Dst: tmpl_escape_pre_concat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1318,1
    - Dst: tmpl_escape_post_concat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1318,1
    - Dst: tmpl_eval_escape_uctx_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1319,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1320,1
    - Dst: fr_value_box_list_escape_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1320,1
    - Dst: fr_value_box_list_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1334,1
    - Dst: VALUE_BOX_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1337,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 3
    argNames:
    - list
    - request
    - vpt
    argTypes:
    - fr_value_box_list_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1234
    functionDepth: 2
    functionLinenumber: 1234
    functionLinenumberEnd: 1340
    functionName: tmpl_eval_cast_in_place
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 5
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - fr_value_box_cast_in_place
    - tmpl_eval_escape_uctx_alloc
    - fr_type_is_structural
    - fr_strerror_printf
    - tmpl_eval_escape_uctx_free
    - fr_type_is_string
    - VALUE_BOX_LIST_VERIFY
    - fr_value_box_list_escape_in_place
    - fr_value_box_list_concat_in_place
    - tmpl_rules_cast
    - tmpl_escape_pre_concat
    - fr_value_box_list_mark_safe_for
    - fr_type_to_str
    - fr_type_is_null
    - tmpl_escape_post_concat
    linkageType: ''
    returnType: int
    signature: int tmpl_eval_cast_in_place(fr_value_box_list_t *list, request_t *request,
      tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1310
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 10
    functionsReached:
    - fr_value_box_cast_in_place
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1344,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1344,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1348,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1348,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1350,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1350,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1352,1
    - Dst: xlat_data_type
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1352,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1355
    functionName: tmpl_data_type
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 2
    functionsReached:
    - tmpl_is_xlat
    - xlat_data_type
    - tmpl_attr_tail_da
    - tmpl_xlat
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_rules_cast
    - tmpl_is_attr
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t tmpl_data_type(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1363
    functionName: _tmpl_global_free
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _tmpl_global_free(UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1369,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1370,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1374,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1374,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1374,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1381
    functionName: _tmpl_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - PERROR
    - UNCONST
    - fr_assert
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_dict_root
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int _tmpl_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/server/tmpl_eval.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1390
    functionName: tmpl_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_eval.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int tmpl_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: pair_append_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_append_request(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: pair_append_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_append_reply(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: pair_append_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_append_control(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: pair_append_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_append_session_state(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: pair_prepend_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_prepend_request(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: pair_prepend_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_prepend_reply(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: pair_prepend_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_prepend_control(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: pair_prepend_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_prepend_session_state(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: pair_update_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_update_request(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: pair_update_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_update_reply(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: pair_update_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_update_control(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _attr
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: pair_update_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_update_session_state(_attr, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list
    - ','
    - _pair_or_da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: pair_delete
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_delete(_list, _pair_or_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pair_or_da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: pair_delete_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_delete_request(_pair_or_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pair_or_da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: pair_delete_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_delete_reply(_pair_or_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pair_or_da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: pair_delete_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_delete_control(_pair_or_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pair_or_da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: pair_delete_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_delete_session_state(_pair_or_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name1
    - ','
    - _name2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: SECTION_NAME
    functionSourceFile: /src/freeradius-server/src/lib/server/section.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION_NAME(_name1, _name2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/section.h:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - section_name_t*
    - section_name_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: section_name2_match
    functionSourceFile: /src/freeradius-server/src/lib/server/section.h
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int section_name2_match(section_name_t const *a, section_name_t const
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/section.h:87,1
    - Dst: section_name2_match
      Src: /src/freeradius-server/src/lib/server/section.h:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - section_name_t*
    - section_name_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: section_name_match
    functionSourceFile: /src/freeradius-server/src/lib/server/section.h
    functionUses: 0
    functionsReached:
    - section_name2_match
    - strcmp
    linkageType: ''
    returnType: int
    signature: int section_name_match(section_name_t const *a, section_name_t const
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: section_name_str
    functionSourceFile: /src/freeradius-server/src/lib/server/section.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *section_name_str(char const *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/section.h:109,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/section.h:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - TALLOC_CTX*
    - section_name_t*
    - section_name_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: section_name_dup
    functionSourceFile: /src/freeradius-server/src/lib/server/section.h
    functionUses: 0
    functionsReached:
    - talloc_strdup
    linkageType: ''
    returnType: void
    signature: void section_name_dup(TALLOC_CTX *ctx, section_name_t *dst, section_name_t
      const *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/state.c:183,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/state.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: state_entry_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t state_entry_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/server/state.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: state_dedup_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t state_dedup_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/server/state.c:205,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/state.c:207,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/state.c:209,1
    - Dst: state_entry_unlink
      Src: /src/freeradius-server/src/lib/server/state.c:210,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/state.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:212,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - fr_state_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 221
    functionName: _state_tree_free
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_dlist_head
    - talloc_free
    - state_entry_unlink
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int _state_tree_free(fr_state_tree_t *state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/state.c:240,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/state.c:241,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/state.c:245,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/state.c:257,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/state.c:258,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/state.c:259,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/state.c:260,1
    - Dst: tmpl_async_required
      Src: /src/freeradius-server/src/lib/server/state.c:264,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/state.c:265,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/server/state.c:277,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/server/state.c:279,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:280,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/state.c:284,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/state.c:292,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:294,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/state.c:297,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/state.c:300,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:302,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - da
    - config
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - fr_state_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 308
    functionName: fr_state_tree_init
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - tmpl_is_xlat
    - talloc_link_ctx
    - fr_dlist_talloc_init
    - talloc_set_destructor
    - tmpl_needs_resolving
    - talloc_free
    - fr_rb_inline_talloc_alloc
    - fr_strerror_printf
    - fr_strerror_const
    - tmpl_async_required
    - talloc_zero
    - tmpl_is_attr
    - fr_type_to_str
    - pthread_mutex_init
    linkageType: ''
    returnType: fr_state_tree_t
    signature: fr_state_tree_t *fr_state_tree_init(TALLOC_CTX *ctx, fr_dict_attr_t
      const *da, fr_state_config_t const *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/state.c:319,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/state.c:321,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/state.c:322,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/state.c:323,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/state.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - state
    - entry
    argTypes:
    - fr_state_tree_t*
    - fr_state_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 326
    functionName: state_entry_unlink
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 1
    functionsReached:
    - DEBUG4
    - fr_rb_delete
    - talloc_get_type_abort
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void state_entry_unlink(fr_state_tree_t *state, fr_state_entry_t *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/server/state.c:342,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/state.c:344,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:345,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/state.c:345,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/state.c:353,1
    - Dst: request_data_verify_parent
      Src: /src/freeradius-server/src/lib/server/state.c:353,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/state.c:359,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/state.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_state_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 364
    functionName: _state_entry_free
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - request_data_verify_parent
    - fr_pair_dcursor_init
    - TALLOC_FREE
    - fr_dcursor_next
    - fr_cond_assert
    - fr_assert
    - talloc_parent
    linkageType: ''
    returnType: int
    signature: int _state_entry_free(fr_state_entry_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/state.c:375,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/state.c:382,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/lib/server/state.c:384,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/state.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - entry
    - vb
    argTypes:
    - fr_state_entry_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: state_entry_fill
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - memset
    - fr_hash64
    - memcpy
    linkageType: ''
    returnType: void
    signature: void state_entry_fill(fr_state_entry_t *entry, fr_value_box_t const
      *vb)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/state.c:396,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:409,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/server/state.c:410,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/server/state.c:411,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:418,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/server/state.c:418,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:423,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/state.c:430,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/server/state.c:439,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/state.c:440,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:445,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/state.c:450,1
    - Dst: state_entry_unlink
      Src: /src/freeradius-server/src/lib/server/state.c:451,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/state.c:452,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/server/state.c:474,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/state.c:483,1
    - Dst: state_entry_unlink
      Src: /src/freeradius-server/src/lib/server/state.c:485,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/state.c:486,1
    - Dst: PTHREAD_MUTEX_UNLOCK
      Src: /src/freeradius-server/src/lib/server/state.c:491,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/state.c:494,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:507,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/state.c:510,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/state.c:511,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/state.c:521,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/state.c:521,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/state.c:522,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:527,1
    - Dst: request_data_list_init
      Src: /src/freeradius-server/src/lib/server/state.c:531,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/state.c:539,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/state.c:547,1
    - Dst: state_entry_fill
      Src: /src/freeradius-server/src/lib/server/state.c:549,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/state.c:559,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/state.c:566,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/server/state.c:572,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/state.c:573,1
    - Dst: HEXIFY
      Src: /src/freeradius-server/src/lib/server/state.c:587,1
    - Dst: HEXIFY
      Src: /src/freeradius-server/src/lib/server/state.c:589,1
    - Dst: HEXIFY
      Src: /src/freeradius-server/src/lib/server/state.c:591,1
    - Dst: HEXIFY
      Src: /src/freeradius-server/src/lib/server/state.c:593,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/state.c:602,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/state.c:602,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/server/state.c:603,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/state.c:604,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/state.c:607,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/state.c:609,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/state.c:609,1
    - Dst: PTHREAD_MUTEX_LOCK
      Src: /src/freeradius-server/src/lib/server/state.c:621,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/state.c:623,1
    - Dst: PTHREAD_MUTEX_UNLOCK
      Src: /src/freeradius-server/src/lib/server/state.c:625,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/state.c:626,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/server/state.c:628,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:629,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/state.c:637,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/server/state.c:638,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/state.c:647,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 101
    argCount: 5
    argNames:
    - state
    - request
    - reply_list
    - old
    - dedup_key
    argTypes:
    - fr_state_tree_t*
    - request_t*
    - fr_pair_list_t*
    - fr_state_entry_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 652
    functionName: state_entry_create
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_dlist_entry_in_list
    - request_data_list_init
    - memcpy
    - fr_rb_num_elements
    - fr_time_add
    - fr_pair_value_memdup
    - talloc_const_free
    - fr_time_sub
    - RWDEBUG
    - PTHREAD_MUTEX_LOCK
    - fr_rb_node_inline_in_tree
    - MEM
    - fr_dlist_talloc_free
    - fr_time
    - state_entry_unlink
    - fr_pair_append
    - talloc_get_type_abort
    - fr_rb_insert
    - HEXIFY
    - fr_time_lt
    - PTHREAD_MUTEX_UNLOCK
    - fr_pair_afrom_da
    - fr_pair_delete_by_da
    - talloc_set_destructor
    - talloc_steal
    - fr_dlist_init
    - state_entry_fill
    - fr_rand
    - fr_rb_find
    - fr_assert
    - fr_pair_find_by_da
    - fr_dlist_foreach
    - RERROR
    - talloc_free
    - fr_box_time_delta
    - talloc_zero
    - fr_dlist_insert_tail
    - fr_rb_remove
    linkageType: ''
    returnType: fr_state_entry_t
    signature: "fr_state_entry_t *state_entry_create(fr_state_tree_t *state, request_t
      *request,\n\t\t\t\t\t    fr_pair_list_t *reply_list, fr_state_entry_t *old,\n\t\t\t\t\t
      \   fr_value_box_t const *dedup_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: state_entry_fill
      Src: /src/freeradius-server/src/lib/server/state.c:661,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/server/state.c:668,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/state.c:670,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/state.c:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - state
    - vb
    argTypes:
    - fr_state_tree_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 675
    functionName: state_entry_find_and_unlink
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - fr_rb_remove
    - talloc_get_type_abort
    - state_entry_fill
    - fr_dlist_remove
    linkageType: ''
    returnType: fr_state_entry_t
    signature: fr_state_entry_t *state_entry_find_and_unlink(fr_state_tree_t *state,
      fr_value_box_t const *vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/server/state.c:701,1
    - Dst: PTHREAD_MUTEX_LOCK
      Src: /src/freeradius-server/src/lib/server/state.c:713,1
    - Dst: state_entry_unlink
      Src: /src/freeradius-server/src/lib/server/state.c:714,1
    - Dst: PTHREAD_MUTEX_UNLOCK
      Src: /src/freeradius-server/src/lib/server/state.c:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - request
    argTypes:
    - fr_state_tree_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 718
    functionName: fr_state_discard
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - state_entry_unlink
    - request_data_reference
    - PTHREAD_MUTEX_LOCK
    - PTHREAD_MUTEX_UNLOCK
    linkageType: ''
    returnType: void
    signature: void fr_state_discard(fr_state_tree_t *state, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/state.c:743,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:745,1
    - Dst: PTHREAD_MUTEX_LOCK
      Src: /src/freeradius-server/src/lib/server/state.c:750,1
    - Dst: state_entry_find_and_unlink
      Src: /src/freeradius-server/src/lib/server/state.c:751,1
    - Dst: PTHREAD_MUTEX_UNLOCK
      Src: /src/freeradius-server/src/lib/server/state.c:752,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/state.c:754,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/state.c:759,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/state.c:760,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:768,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:769,1
    - Dst: request_state_replace
      Src: /src/freeradius-server/src/lib/server/state.c:769,1
    - Dst: request_data_add
      Src: /src/freeradius-server/src/lib/server/state.c:783,1
    - Dst: request_data_restore
      Src: /src/freeradius-server/src/lib/server/state.c:784,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/state.c:788,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/state.c:789,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/server/state.c:790,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:793,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/server/state.c:799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - state
    - request
    argTypes:
    - fr_state_tree_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 801
    functionName: fr_state_restore
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - unlikely
    - RERROR
    - talloc_free
    - request_data_add
    - request_data_restore
    - REQUEST_VERIFY
    - RDEBUG3
    - RDEBUG2
    - fr_assert
    - log_request_pair_list
    - PTHREAD_MUTEX_LOCK
    - fr_pair_find_by_da
    - PTHREAD_MUTEX_UNLOCK
    - request_state_replace
    - state_entry_find_and_unlink
    linkageType: ''
    returnType: int
    signature: int fr_state_restore(fr_state_tree_t *state, request_t *request)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/server/state.c:818,1
    - Dst: request_data_list_init
      Src: /src/freeradius-server/src/lib/server/state.c:819,1
    - Dst: request_data_by_persistance
      Src: /src/freeradius-server/src/lib/server/state.c:820,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/state.c:822,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/server/state.c:822,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/state.c:824,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/state.c:825,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/server/state.c:826,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/server/state.c:834,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/state.c:845,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/server/state.c:847,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/state.c:848,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/server/state.c:850,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/state.c:852,1
    - Dst: fr_value_box_list_talloc_free_head
      Src: /src/freeradius-server/src/lib/server/state.c:854,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/state.c:858,1
    - Dst: request_state_replace
      Src: /src/freeradius-server/src/lib/server/state.c:858,1
    - Dst: PTHREAD_MUTEX_LOCK
      Src: /src/freeradius-server/src/lib/server/state.c:863,1
    - Dst: state_entry_create
      Src: /src/freeradius-server/src/lib/server/state.c:864,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:866,1
    - Dst: request_state_replace
      Src: /src/freeradius-server/src/lib/server/state.c:866,1
    - Dst: request_data_restore
      Src: /src/freeradius-server/src/lib/server/state.c:867,1
    - Dst: PTHREAD_MUTEX_UNLOCK
      Src: /src/freeradius-server/src/lib/server/state.c:874,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:879,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/state.c:880,1
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/server/state.c:884,1
    - Dst: PTHREAD_MUTEX_UNLOCK
      Src: /src/freeradius-server/src/lib/server/state.c:885,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:887,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/server/state.c:888,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - state
    - request
    argTypes:
    - fr_state_tree_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 891
    functionName: fr_state_store
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - request_data_list_init
    - state_entry_create
    - REDEBUG
    - fr_value_box_list_pop_head
    - REQUEST_VERIFY
    - tmpl_eval
    - fr_pair_list_verify
    - PTHREAD_MUTEX_LOCK
    - MEM
    - fr_dlist_move
    - fr_pair_list_empty
    - request_data_restore
    - fr_dlist_empty
    - log_request_pair_list
    - fr_value_box_list_talloc_free_head
    - request_state_replace
    - PTHREAD_MUTEX_UNLOCK
    - fr_value_box_list_init
    - RDEBUG2
    - fr_assert
    - RDEBUG3
    - request_data_get
    - RDEBUG
    - talloc_free
    - request_data_by_persistance
    linkageType: ''
    returnType: int
    signature: int fr_state_store(fr_state_tree_t *state, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:898,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - child_entry
    argTypes:
    - state_child_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 902
    functionName: _free_child_data
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_free
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _free_child_data(state_child_entry_t *child_entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/state.c:917,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:920,1
    - Dst: request_data_by_persistance_count
      Src: /src/freeradius-server/src/lib/server/state.c:922,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/state.c:923,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/state.c:924,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/state.c:924,1
    - Dst: request_data_list_init
      Src: /src/freeradius-server/src/lib/server/state.c:925,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/state.c:926,1
    - Dst: request_state_replace
      Src: /src/freeradius-server/src/lib/server/state.c:928,1
    - Dst: request_data_by_persistance
      Src: /src/freeradius-server/src/lib/server/state.c:939,1
    - Dst: request_data_talloc_add
      Src: /src/freeradius-server/src/lib/server/state.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - child
    - unique_ptr
    - unique_int
    argTypes:
    - request_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 948
    functionName: fr_state_store_in_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 3
    functionsReached:
    - fr_pair_list_empty
    - request_data_list_init
    - request_data_talloc_add
    - talloc_set_destructor
    - fr_cond_assert_msg
    - RDEBUG3
    - talloc_zero
    - request_data_by_persistance
    - request_data_by_persistance_count
    - MEM
    - request_state_replace
    linkageType: ''
    returnType: void
    signature: void fr_state_store_in_parent(request_t *child, void const *unique_ptr,
      int unique_int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/state.c:963,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/server/state.c:967,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:969,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/state.c:977,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:981,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/state.c:986,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:987,1
    - Dst: request_state_replace
      Src: /src/freeradius-server/src/lib/server/state.c:987,1
    - Dst: request_data_restore
      Src: /src/freeradius-server/src/lib/server/state.c:991,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - child
    - unique_ptr
    - unique_int
    argTypes:
    - request_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 994
    functionName: fr_state_restore_from_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 3
    functionsReached:
    - request_data_get
    - talloc_free
    - fr_cond_assert_msg
    - request_data_restore
    - RDEBUG3
    - fr_assert_msg
    - request_state_replace
    linkageType: ''
    returnType: void
    signature: void fr_state_restore_from_parent(request_t *child, void const *unique_ptr,
      int unique_int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/server/state.c:1013,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/state.c:1015,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/state.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - parent
    - unique_ptr
    - unique_int
    argTypes:
    - request_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1020
    functionName: fr_state_discard_child
    functionSourceFile: /src/freeradius-server/src/lib/server/state.c
    functionUses: 2
    functionsReached:
    - request_data_get
    - RDEBUG3
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_state_discard_child(request_t *parent, void const *unique_ptr,
      int unique_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/dl_module.c:67,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/dl_module.c:68,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/dl_module.c:70,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/dl_module.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: dl_module_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dl_module_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - child
    argTypes:
    - dl_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: dl_module_root
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dl_module_t
    signature: dl_module_t *dl_module_root(dl_module_t const *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_module_root
      Src: /src/freeradius-server/src/lib/server/dl_module.c:107,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/dl_module.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - dl_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: dl_module_root_prefix_str
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - dl_module_root
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *dl_module_root_prefix_str(dl_module_t const *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/dl_module.c:123,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/dl_module.c:128,1
    - Dst: dl_module_t*::exported::onload
      Src: /src/freeradius-server/src/lib/server/dl_module.c:133,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:136,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - dl
    - symbol
    - ctx
    argTypes:
    - dl_t*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: dl_module_onload_func
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - PERROR
    - dl_module_t*::exported::onload
    - talloc_get_type_abort
    - fr_strerror_clear
    linkageType: ''
    returnType: int
    signature: int dl_module_onload_func(dl_t const *dl, UNUSED void *symbol, UNUSED
      void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/dl_module.c:156,1
    - Dst: dl_module_t*::exported::unload
      Src: /src/freeradius-server/src/lib/server/dl_module.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - dl
    - symbol
    - ctx
    argTypes:
    - dl_t*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: dl_module_unload_func
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - dl_module_t*::exported::unload
    linkageType: ''
    returnType: void
    signature: void dl_module_unload_func(dl_t const *dl, UNUSED void *symbol, UNUSED
      void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/freeradius-server/src/lib/server/dl_module.c:181,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dl_module.c:184,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dl_module.c:184,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:186,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:188,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dl_module.c:190,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dl_module.c:191,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dl_module.c:195,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dl_module.c:195,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:197,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:199,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dl_module.c:201,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dl_module.c:202,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dl_module.c:206,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dl_module.c:206,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:208,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:210,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dl_module.c:212,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dl_module.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - dl_module_common_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 218
    functionName: dl_module_magic_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - ERROR
    - dladdr
    - MAGIC_VERSION
    - MAGIC_COMMIT
    - MAGIC_PREFIX
    linkageType: ''
    returnType: int
    signature: int dl_module_magic_verify(dl_module_common_t const *module)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/dl_module.c:236,1
    - Dst: pthread_mutex_trylock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:236,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:250,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/dl_module.c:253,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/dl_module.c:258,1
    - Dst: dl_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - dl_module
    argTypes:
    - dl_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 265
    functionName: _dl_module_free
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - dl_free
    - pthread_mutex_trylock
    - fr_assert_msg
    - fr_rb_delete
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int _dl_module_free(dl_module_t *dl_module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:283,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:284,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dl_module
    argTypes:
    - dl_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: dl_module_free
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int dl_module_free(dl_module_t *dl_module)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/dl_module.c:322,1
    - Dst: dl_module_root_prefix_str
      Src: /src/freeradius-server/src/lib/server/dl_module.c:323,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/dl_module.c:326,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/dl_module.c:327,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/dl_module.c:332,1
    - Dst: talloc_bstr_tolower
      Src: /src/freeradius-server/src/lib/server/dl_module.c:336,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:338,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/dl_module.c:342,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:352,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:353,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/dl_module.c:358,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/dl_module.c:358,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/dl_module.c:359,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/dl_module.c:364,1
    - Dst: dl_by_name
      Src: /src/freeradius-server/src/lib/server/dl_module.c:370,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:372,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:373,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:376,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:377,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:378,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/dl_module.c:383,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/server/dl_module.c:385,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:387,1
    - Dst: dlerror
      Src: /src/freeradius-server/src/lib/server/dl_module.c:387,1
    - Dst: dl_module_magic_verify
      Src: /src/freeradius-server/src/lib/server/dl_module.c:395,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/dl_module.c:397,1
    - Dst: dl_symbol_init
      Src: /src/freeradius-server/src/lib/server/dl_module.c:399,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:400,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dl_module.c:404,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/dl_module.c:409,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:411,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:422,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:424,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 3
    argNames:
    - parent
    - name
    - type
    argTypes:
    - dl_module_t*
    - char*
    - dl_module_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 427
    functionName: dl_module_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 1
    functionsReached:
    - dlerror
    - dl_symbol_init
    - talloc_strdup
    - pthread_mutex_unlock
    - MEM
    - ERROR
    - pthread_mutex_lock
    - dl_module_magic_verify
    - fr_table_str_by_value
    - dl_module_root_prefix_str
    - fr_rb_insert
    - DEBUG2
    - fr_strerror_const
    - DEBUG3
    - dlsym
    - talloc_set_destructor
    - talloc_bstr_tolower
    - dl_by_name
    - fr_rb_find
    - PERROR
    - talloc_typed_asprintf
    - talloc_free
    - talloc_zero
    linkageType: ''
    returnType: dl_module_t
    signature: dl_module_t *dl_module_alloc(dl_module_t const *parent, char const
      *name, dl_module_type_t type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/dl_module.c:436,1
    - Dst: pthread_mutex_trylock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:436,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/server/dl_module.c:439,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dl_module.c:444,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/dl_module.c:445,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/dl_module.c:447,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/dl_module.c:448,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dl_module.c:450,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dl_module.c:460,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/lib/server/dl_module.c:462,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dl_module.c:468,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/dl_module.c:474,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/server/dl_module.c:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - dl_module_l
    argTypes:
    - dl_module_loader_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 478
    functionName: _dl_module_loader_free
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - WARN
    - fr_rb_iter_next_inorder
    - fr_rb_num_elements
    - talloc_free
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - pthread_mutex_trylock
    - fr_assert_msg
    - fr_rb_iter_init_inorder
    - pthread_mutex_destroy
    - PWARN
    linkageType: ''
    returnType: int
    signature: int _dl_module_loader_free(dl_module_loader_t *dl_module_l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_search_path
      Src: /src/freeradius-server/src/lib/server/dl_module.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: dl_module_search_path
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 1
    functionsReached:
    - dl_search_path
    linkageType: ''
    returnType: char
    signature: char *dl_module_search_path(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dl_dict_enum_autoload
      Src: /src/freeradius-server/src/lib/server/dl_module.c:491,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - dl_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: dl_dict_enum_autoload
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 1
    functionsReached:
    - fr_dl_dict_enum_autoload
    - PERROR
    linkageType: ''
    returnType: int
    signature: int dl_dict_enum_autoload(dl_t const *module, void *symbol, void *user_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dl_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/dl_module.c:503,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - dl_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 507
    functionName: dl_dict_attr_autoload
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 1
    functionsReached:
    - fr_dl_dict_attr_autoload
    - PERROR
    linkageType: ''
    returnType: int
    signature: int dl_dict_attr_autoload(dl_t const *module, void *symbol, void *user_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dl_dict_autoload
      Src: /src/freeradius-server/src/lib/server/dl_module.c:515,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - dl_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: dl_dict_autoload
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 1
    functionsReached:
    - PERROR
    - fr_dl_dict_autoload
    linkageType: ''
    returnType: int
    signature: int dl_dict_autoload(dl_t const *module, void *symbol, void *user_ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dl_search_path_set
      Src: /src/freeradius-server/src/lib/server/dl_module.c:530,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/dl_module.c:537,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:539,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/server/dl_module.c:542,1
    - Dst: dl_loader_init
      Src: /src/freeradius-server/src/lib/server/dl_module.c:544,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:546,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/dl_module.c:548,1
    - Dst: dl_search_path_prepend
      Src: /src/freeradius-server/src/lib/server/dl_module.c:551,1
    - Dst: fr_rb_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/dl_module.c:553,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:556,1
    - Dst: dl_symbol_init_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:560,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:562,1
    - Dst: dl_symbol_free_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:566,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dl_module.c:568,1
    - Dst: dl_symbol_init_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:575,1
    - Dst: dl_symbol_init_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:577,1
    - Dst: dl_symbol_init_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:579,1
    - Dst: dl_symbol_free_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:581,1
    - Dst: dl_symbol_init_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:588,1
    - Dst: dl_symbol_free_cb_register
      Src: /src/freeradius-server/src/lib/server/dl_module.c:590,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/dl_module.c:593,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:595,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/dl_module.c:602,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:604,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/dl_module.c:606,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:608,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/dl_module.c:610,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:612,1
    - Dst: getcwd
      Src: /src/freeradius-server/src/lib/server/dl_module.c:614,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:616,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/dl_module.c:619,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:621,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/dl_module.c:623,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 1
    argNames:
    - lib_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 628
    functionName: dl_module_loader_init
    functionSourceFile: /src/freeradius-server/src/lib/server/dl_module.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - getcwd
    - ERROR
    - TALLOC_FREE
    - talloc_set_destructor
    - dl_search_path_set
    - fr_rb_talloc_alloc
    - dl_symbol_init_cb_register
    - dl_loader_init
    - talloc_zero
    - dl_search_path_prepend
    - getenv
    - dl_symbol_free_cb_register
    - PERROR
    - pthread_mutex_init
    linkageType: ''
    returnType: dl_module_loader_t
    signature: dl_module_loader_t *dl_module_loader_init(char const *lib_dir)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/server/exec.c:52,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/exec.c:59,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/exec.c:60,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:62,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:66,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/exec.c:70,1
    - Dst: fr_value_box_list_aprint
      Src: /src/freeradius-server/src/lib/server/exec.c:77,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exec.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - argv_p
    - in
    argTypes:
    - TALLOC_CTX*
    - char***
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 88
    functionName: fr_exec_value_box_list_to_argv
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - talloc_free
    - fr_strerror_printf
    - talloc_zero_array
    - fr_value_box_list_num_elements
    - fr_value_box_list_aprint
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_exec_value_box_list_to_argv(TALLOC_CTX *ctx, char ***argv_p,
      fr_value_box_list_t const *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_aprint
      Src: /src/freeradius-server/src/lib/server/exec.c:77,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exec.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 10
    functionsReached:
    - fr_value_box_list_aprint
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(in, vb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/exec.c:101,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/exec.c:102,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/exec.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - request
    - argv_in
    - env_in
    - env_inherit
    argTypes:
    - request_t*
    - char**
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: exec_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - ROPTIONAL
    linkageType: ''
    returnType: void
    signature: void exec_debug(request_t *request, char **argv_in, char **env_in,
      bool env_inherit)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/server/exec.c:135,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/exec.c:150,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/server/exec.c:152,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:153,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:163,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/exec.c:164,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:165,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/exec.c:166,1
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/server/exec.c:166,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/exec.c:168,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/server/exec.c:172,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:173,1
    - Dst: fr_value_box_print_quoted
      Src: /src/freeradius-server/src/lib/server/exec.c:178,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:179,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/server/exec.c:201,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:202,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/server/exec.c:206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:207,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:222,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/exec.c:225,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/exec.c:225,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/exec.c:225,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/server/exec.c:229,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/exec.c:231,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/exec.c:232,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:236,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 7
    argNames:
    - env_p
    - env_len
    - env_sbuff
    - env_m
    - request
    - env_pairs
    - env_escape
    argTypes:
    - char**
    - size_t
    - fr_sbuff_t*
    - fr_sbuff_marker_t[]
    - request_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 247
    functionName: exec_pair_to_env
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_in_char
    - fr_value_box_print
    - isdigit
    - unlikely
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - toupper
    - FR_SBUFF_BIND_CURRENT
    - fr_value_box_print_quoted
    - fr_strerror_printf
    - UNCONST
    - fr_sbuff_marker
    - fr_dict_internal
    - fr_sbuff_current
    - isalpha
    - fr_dict_attr_child_by_num
    - fr_sbuff_in_strcpy
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int exec_pair_to_env(char **env_p, size_t env_len,\n\t\t     fr_sbuff_t
      *env_sbuff, fr_sbuff_marker_t env_m[],\n\t\t     request_t *request, fr_pair_list_t
      *env_pairs, bool env_escape)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/exec.c:150,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/server/exec.c:152,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:153,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:163,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/exec.c:164,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:165,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/exec.c:166,1
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/server/exec.c:166,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/exec.c:168,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/server/exec.c:172,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:173,1
    - Dst: fr_value_box_print_quoted
      Src: /src/freeradius-server/src/lib/server/exec.c:178,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:179,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/server/exec.c:201,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:202,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/server/exec.c:206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:207,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 214
    functionName: fr_pair_list_foreach_leaf
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_in_char
    - fr_value_box_print
    - isdigit
    - toupper
    - fr_value_box_print_quoted
    - fr_strerror_printf
    - fr_sbuff_marker
    - fr_sbuff_current
    - isalpha
    - fr_sbuff_in_strcpy
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach_leaf(env_pairs, vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/exec.c:263,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/exec.c:264,1
    - Dst: exec_pair_to_env
      Src: /src/freeradius-server/src/lib/server/exec.c:266,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/exec.c:266,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/exec.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: fr_exec_pair_to_env
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - exec_pair_to_env
    - FR_SBUFF_OUT
    - NUM_ELEMENTS
    linkageType: ''
    returnType: char
    signature: char **fr_exec_pair_to_env(request_t *request, fr_pair_list_t *env_pairs,
      bool env_escape)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/exec.c:302,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/exec.c:304,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec.c:304,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/server/exec.c:312,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:321,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:322,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:324,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:328,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:329,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:331,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:335,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:336,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:338,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:341,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:342,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/server/exec.c:352,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:355,1
    - Dst: fr_closefrom
      Src: /src/freeradius-server/src/lib/server/exec.c:362,1
    - Dst: fr_atexit_thread_local_disarm_all
      Src: /src/freeradius-server/src/lib/server/exec.c:369,1
    - Dst: fr_atexit_global_disarm_all
      Src: /src/freeradius-server/src/lib/server/exec.c:374,1
    - Dst: execve
      Src: /src/freeradius-server/src/lib/server/exec.c:384,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/exec.c:385,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec.c:385,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/server/exec.c:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 7
    argNames:
    - argv
    - envp
    - exec_wait
    - debug
    - stdin_pipe
    - stdout_pipe
    - stderr_pipe
    argTypes:
    - char**
    - char**
    - bool
    - bool
    - int[]
    - int[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 394
    functionName: exec_child
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - fr_closefrom
    - fr_atexit_thread_local_disarm_all
    - open
    - fr_syserror
    - close
    - execve
    - fprintf
    - exit
    - dup2
    - printf
    - fr_atexit_global_disarm_all
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: "NEVER_RETURNS exec_child(char **argv, char **envp,\n\t\t\t\t     bool
      exec_wait, bool debug,\n\t\t\t\t     int stdin_pipe[static 2], int stdout_pipe[static
      2], int stderr_pipe[static 2])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/exec.c:426,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/exec.c:433,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/exec.c:436,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/exec.c:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 443
    functionName: exec_build_env
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    - memcpy
    linkageType: ''
    returnType: char
    signature: char **exec_build_env(char **env_in, bool env_inherit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exec_build_env
      Src: /src/freeradius-server/src/lib/server/exec.c:468,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/server/exec.c:469,1
    - Dst: exec_child
      Src: /src/freeradius-server/src/lib/server/exec.c:476,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:480,1
    - Dst: fr_event_pid_reap
      Src: /src/freeradius-server/src/lib/server/exec.c:489,1
    - Dst: kill
      Src: /src/freeradius-server/src/lib/server/exec.c:496,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/server/exec.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - el
    - argv_in
    - env_in
    - env_inherit
    - debug
    argTypes:
    - fr_event_list_t*
    - char**
    - char**
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 502
    functionName: fr_exec_fork_nowait
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - fr_event_pid_reap
    - exec_child
    - fr_strerror_printf
    - exec_build_env
    - fork
    - waitpid
    - kill
    linkageType: ''
    returnType: int
    signature: int fr_exec_fork_nowait(fr_event_list_t *el, char **argv_in, char **env_in,
      bool env_inherit, bool debug)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/exec.c:541,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:542,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/exec.c:547,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:548,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/exec.c:554,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:555,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:558,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:559,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/exec.c:562,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:563,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/exec.c:569,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:570,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:573,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:574,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/exec.c:577,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:578,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:579,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:580,1
    - Dst: exec_build_env
      Src: /src/freeradius-server/src/lib/server/exec.c:585,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/server/exec.c:586,1
    - Dst: exec_child
      Src: /src/freeradius-server/src/lib/server/exec.c:591,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/exec.c:593,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:605,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:610,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:615,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 8
    argNames:
    - pid_p
    - stdin_fd
    - stdout_fd
    - stderr_fd
    - argv_in
    - env_in
    - env_inherit
    - debug
    argTypes:
    - pid_t*
    - int*
    - int*
    - int*
    - char**
    - char**
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 619
    functionName: fr_exec_fork_wait
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - exec_child
    - pipe
    - fr_strerror_printf
    - exec_build_env
    - fr_nonblock
    - fork
    - close
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int fr_exec_fork_wait(pid_t *pid_p,\n\t\t      int *stdin_fd, int
      *stdout_fd, int *stderr_fd,\n\t\t      char **argv_in, char **env_in, bool env_inherit,
      bool debug)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:644,1
    - Dst: fr_exec_value_box_list_to_argv
      Src: /src/freeradius-server/src/lib/server/exec.c:644,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/server/exec.c:644,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:645,1
    - Dst: fr_exec_pair_to_env
      Src: /src/freeradius-server/src/lib/server/exec.c:650,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:651,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:652,1
    - Dst: exec_debug
      Src: /src/freeradius-server/src/lib/server/exec.c:657,1
    - Dst: fr_exec_fork_nowait
      Src: /src/freeradius-server/src/lib/server/exec.c:658,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/exec.c:658,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/server/exec.c:659,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exec.c:660,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:661,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - request
    - args
    - env_pairs
    - env_escape
    - env_inherit
    argTypes:
    - request_t*
    - fr_value_box_list_t*
    - fr_pair_list_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 664
    functionName: fr_exec_oneshot_nowait
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 2
    functionsReached:
    - unlikely
    - RPEDEBUG
    - fr_exec_value_box_list_to_argv
    - exec_debug
    - unlang_interpret_event_list
    - talloc_free
    - fr_exec_pair_to_env
    - unlang_interpret_frame_talloc_ctx
    - ROPTIONAL_ENABLED
    - fr_exec_fork_nowait
    linkageType: ''
    returnType: int
    signature: "int fr_exec_oneshot_nowait(request_t *request,\n\t\t\t   fr_value_box_list_t
      *args, fr_pair_list_t *env_pairs,\n\t\t\t   bool env_escape, bool env_inherit)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/exec.c:682,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/exec.c:685,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/exec.c:688,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/exec.c:696,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/exec.c:697,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/exec.c:701,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/server/exec.c:702,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:704,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/exec.c:709,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/server/exec.c:710,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:712,1
    - Dst: kill
      Src: /src/freeradius-server/src/lib/server/exec.c:717,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:719,1
    - Dst: fr_event_pid_reap
      Src: /src/freeradius-server/src/lib/server/exec.c:719,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/server/exec.c:722,1
    - Dst: kill
      Src: /src/freeradius-server/src/lib/server/exec.c:728,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/server/exec.c:729,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/server/exec.c:734,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - exec
    - signal
    argTypes:
    - fr_exec_state_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 735
    functionName: fr_exec_oneshot_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 2
    functionsReached:
    - fr_event_pid_reap
    - unlikely
    - unlang_interpret_event_list
    - RPERROR
    - talloc_const_free
    - RDEBUG3
    - fr_assert
    - fr_event_fd_delete
    - FR_TIMER_DELETE
    - close
    - waitpid
    - kill
    linkageType: ''
    returnType: void
    signature: void fr_exec_oneshot_cleanup(fr_exec_state_t *exec, int signal)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/exec.c:747,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:747,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/server/exec.c:754,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:756,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec.c:756,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:765,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:773,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/src/lib/server/exec.c:776,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:777,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/lib/server/exec.c:777,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/lib/server/exec.c:778,1
    - Dst: WIFSIGNALED
      Src: /src/freeradius-server/src/lib/server/exec.c:779,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:780,1
    - Dst: WTERMSIG
      Src: /src/freeradius-server/src/lib/server/exec.c:780,1
    - Dst: WTERMSIG
      Src: /src/freeradius-server/src/lib/server/exec.c:781,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:783,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/server/exec.c:788,1
    - Dst: fr_event_fd_handle
      Src: /src/freeradius-server/src/lib/server/exec.c:810,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/exec.c:811,1
    - Dst: fr_event_fd_cb
      Src: /src/freeradius-server/src/lib/server/exec.c:814,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/exec.c:815,1
    - Dst: cb
      Src: /src/freeradius-server/src/lib/server/exec.c:823,1
    - Dst: fr_event_fd_uctx
      Src: /src/freeradius-server/src/lib/server/exec.c:823,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/exec.c:830,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:832,1
    - Dst: fr_event_fd_handle
      Src: /src/freeradius-server/src/lib/server/exec.c:840,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/exec.c:841,1
    - Dst: fr_event_fd_cb
      Src: /src/freeradius-server/src/lib/server/exec.c:844,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/exec.c:845,1
    - Dst: cb
      Src: /src/freeradius-server/src/lib/server/exec.c:848,1
    - Dst: fr_event_fd_uctx
      Src: /src/freeradius-server/src/lib/server/exec.c:848,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/exec.c:849,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:851,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/server/exec.c:855,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - el
    - pid
    - status
    - uctx
    argTypes:
    - fr_event_list_t*
    - pid_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 856
    functionName: exec_reap
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - RDEBUG
    - WEXITSTATUS
    - WTERMSIG
    - fr_cond_assert
    - fr_syserror
    - WIFEXITED
    - fr_cond_assert_msg
    - fr_event_fd_handle
    - FR_TIMER_DELETE
    - fr_event_fd_delete
    - fr_event_fd_uctx
    - close
    - cb
    - RWDEBUG
    - fr_event_fd_cb
    - unlang_interpret_mark_runnable
    - waitpid
    linkageType: ''
    returnType: void
    signature: void exec_reap(fr_event_list_t *el, pid_t pid, int status, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_exec_oneshot_cleanup
      Src: /src/freeradius-server/src/lib/server/exec.c:876,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:879,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/exec.c:881,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/server/exec.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 885
    functionName: exec_timeout
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - fr_exec_oneshot_cleanup
    - fr_strerror_const
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void exec_timeout(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/exec.c:896,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/server/exec.c:902,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:907,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:908,1
    - Dst: fr_exec_oneshot_cleanup
      Src: /src/freeradius-server/src/lib/server/exec.c:912,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/exec.c:916,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:916,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:929,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/exec.c:929,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/exec.c:939,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/exec.c:947,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/exec.c:947,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:948,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/server/exec.c:955,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/server/exec.c:956,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/server/exec.c:963,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/exec.c:964,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/server/exec.c:965,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/exec.c:965,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/server/exec.c:965,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/exec.c:968,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 969
    functionName: exec_stdout_read
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 0
    functionsReached:
    - unlikely
    - unlang_interpret_event_list
    - read
    - REDEBUG
    - fr_syserror
    - close
    - fr_sbuff_marker
    - fr_sbuff_current
    - FR_TIMER_DELETE
    - fr_exec_oneshot_cleanup
    - fr_sbuff_behind
    - fr_event_fd_delete
    - RDEBUG2
    - fr_box_strvalue_len
    - fr_sbuff_advance
    - fr_sbuff_marker_release
    - fr_sbuff_extend_lowat
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void exec_stdout_read(UNUSED fr_event_list_t *el, int fd, int flags,
      void *uctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/exec.c:1006,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:1011,1
    - Dst: fr_exec_value_box_list_to_argv
      Src: /src/freeradius-server/src/lib/server/exec.c:1011,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/lib/server/exec.c:1011,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1012,1
    - Dst: fr_exec_pair_to_env
      Src: /src/freeradius-server/src/lib/server/exec.c:1017,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/exec.c:1018,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1019,1
    - Dst: exec_debug
      Src: /src/freeradius-server/src/lib/server/exec.c:1024,1
    - Dst: fr_exec_fork_wait
      Src: /src/freeradius-server/src/lib/server/exec.c:1037,1
    - Dst: ROPTIONAL_ENABLED
      Src: /src/freeradius-server/src/lib/server/exec.c:1041,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/exec.c:1042,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1045,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:1052,1
    - Dst: fr_exec_oneshot_cleanup
      Src: /src/freeradius-server/src/lib/server/exec.c:1055,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/server/exec.c:1075,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/exec.c:1076,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1077,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/exec.c:1086,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/exec.c:1094,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1096,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/exec.c:1104,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/exec.c:1112,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1114,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:1115,1
    - Dst: fr_event_pid_wait
      Src: /src/freeradius-server/src/lib/server/exec.c:1123,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/exec.c:1125,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:1134,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/exec.c:1139,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/exec.c:1149,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/exec.c:1150,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 11
    argNames:
    - ctx
    - exec
    - request
    - args
    - env_pairs
    - env_escape
    - env_inherit
    - need_stdin
    - store_stdout
    - stdout_ctx
    - timeout
    argTypes:
    - TALLOC_CTX*
    - fr_exec_state_t*
    - request_t*
    - fr_value_box_list_t*
    - fr_pair_list_t*
    - bool
    - bool
    - bool
    - bool
    - TALLOC_CTX*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 998
    functionDepth: 3
    functionLinenumber: 998
    functionLinenumberEnd: 1153
    functionName: fr_exec_oneshot
    functionSourceFile: /src/freeradius-server/src/lib/server/exec.c
    functionUses: 2
    functionsReached:
    - unlikely
    - RPEDEBUG
    - unlang_interpret_event_list
    - fr_exec_value_box_list_to_argv
    - exec_debug
    - talloc_free
    - fr_event_pid_wait
    - fr_event_fd_insert
    - fr_sbuff_init_talloc
    - snprintf
    - fr_exec_pair_to_env
    - fr_timer_in
    - fr_exec_oneshot_cleanup
    - fr_time_delta_ispos
    - unlang_interpret_frame_talloc_ctx
    - close
    - ROPTIONAL_ENABLED
    - fr_exec_fork_wait
    linkageType: ''
    returnType: int
    signature: "int fr_exec_oneshot(TALLOC_CTX *ctx, fr_exec_state_t *exec, request_t
      *request,\n\t\t    fr_value_box_list_t *args,\n\t\t    fr_pair_list_t *env_pairs,
      bool env_escape, bool env_inherit,\n\t\t    bool need_stdin,\n\t\t    bool store_stdout,
      TALLOC_CTX *stdout_ctx,\n\t\t    fr_time_delta_t timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/global_lib.c:69,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/global_lib.c:69,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/global_lib.c:70,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/global_lib.c:72,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/global_lib.c:73,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/global_lib.c:75,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/global_lib.c:76,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/global_lib.c:77,1
    - Dst: global_lib_inst_t*::autoinit::init
      Src: /src/freeradius-server/src/lib/server/global_lib.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - lib
    argTypes:
    - global_lib_inst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: lib_init_call
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_alloc
    - cf_section_parse
    - global_lib_inst_t*::autoinit::init
    - cf_section_rules_push
    - cf_root
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int lib_init_call(global_lib_inst_t *lib)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/global_lib.c:105,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/global_lib.c:116,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/global_lib.c:116,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/global_lib.c:118,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/global_lib.c:127,1
    - Dst: lib_init_call
      Src: /src/freeradius-server/src/lib/server/global_lib.c:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - to_init
    argTypes:
    - global_lib_autoinst_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: lib_auto_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - lib_init_call
    - fr_rb_find
    - talloc_zero
    - fr_rb_insert
    - DEBUG2
    - MEM
    linkageType: ''
    returnType: int
    signature: int lib_auto_instantiate(global_lib_autoinst_t * const *to_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lib_auto_instantiate
      Src: /src/freeradius-server/src/lib/server/global_lib.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: global_lib_auto_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - lib_auto_instantiate
    linkageType: ''
    returnType: int
    signature: int global_lib_auto_instantiate(UNUSED dl_t const *module, void *symbol,
      UNUSED void *user_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/global_lib.c:155,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/global_lib.c:157,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/server/global_lib.c:164,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/server/global_lib.c:166,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/global_lib.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - global_lib_autoinst_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: lib_autofree
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - free
    - fr_rb_find
    - fr_assert_msg
    - fr_rb_remove
    linkageType: ''
    returnType: void
    signature: void lib_autofree(global_lib_autoinst_t * const *to_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_autofree
      Src: /src/freeradius-server/src/lib/server/global_lib.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: global_lib_autofree
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - lib_autofree
    linkageType: ''
    returnType: void
    signature: void global_lib_autofree(UNUSED dl_t const *module, void *symbol, UNUSED
      void *user_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/global_lib.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: _lib_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _lib_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/global_lib.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: _lib_list_free_atexit
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _lib_list_free_atexit(UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/global_lib.c:208,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/global_lib.c:208,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/lib/server/global_lib.c:209,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/server/global_lib.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: global_lib_init
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - fr_atexit_global
    - fr_rb_inline_init
    linkageType: ''
    returnType: int
    signature: int global_lib_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/global_lib.c:223,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/global_lib.c:225,1
    - Dst: fr_rb_inorder_foreach
      Src: /src/freeradius-server/src/lib/server/global_lib.c:226,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/global_lib.c:229,1
    - Dst: lib_init_call
      Src: /src/freeradius-server/src/lib/server/global_lib.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: global_lib_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/global_lib.c
    functionUses: 1
    functionsReached:
    - lib_init_call
    - DEBUG2
    - fr_assert
    - fr_rb_inorder_foreach
    linkageType: ''
    returnType: int
    signature: int global_lib_instantiate(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/lib/server/protocol.c:50,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/server/protocol.c:59,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/server/protocol.c:63,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/lib/server/protocol.c:68,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/server/protocol.c:74,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/lib/server/protocol.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - pairs
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: common_packet_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/protocol.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void common_packet_debug(request_t *request, fr_packet_t *packet, fr_pair_list_t
      *pairs, bool received)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: fr_assert
    functionSourceFile: /src/freeradius-server/src/lib/server/rad_assert.h
    functionUses: 719
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert(_expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:70,1
    - Dst: fr_value_box_ipaddr
      Src: /src/freeradius-server/src/lib/server/packet.c:71,1
    - Dst: fr_pair_set_immutable
      Src: /src/freeradius-server/src/lib/server/packet.c:72,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:74,1
    - Dst: fr_pair_set_immutable
      Src: /src/freeradius-server/src/lib/server/packet.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - list
    - attr_ip
    - attr_port
    - ipaddr
    - port
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_ipaddr_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: inet2pairs
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 0
    functionsReached:
    - fr_pair_set_immutable
    - fr_pair_find_or_append_by_da
    - fr_value_box_ipaddr
    linkageType: ''
    returnType: int
    signature: "int inet2pairs(TALLOC_CTX *ctx, fr_pair_list_t *list,\n\t\t      fr_dict_attr_t
      const *attr_ip, fr_dict_attr_t const *attr_port,\n\t\t      fr_ipaddr_t const
      *ipaddr, uint16_t port)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:101,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:106,1
    - Dst: inet2pairs
      Src: /src/freeradius-server/src/lib/server/packet.c:108,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:113,1
    - Dst: inet2pairs
      Src: /src/freeradius-server/src/lib/server/packet.c:115,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:120,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/server/packet.c:121,1
    - Dst: fr_pair_set_immutable
      Src: /src/freeradius-server/src/lib/server/packet.c:122,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:129,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/lib/server/packet.c:130,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/server/packet.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - list
    - packet
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 135
    functionName: fr_packet_pairs_from_packet
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 2
    functionsReached:
    - inet2pairs
    - fr_pair_set_immutable
    - fr_ifname_from_ifindex
    - fr_value_box_strdup
    - fr_pair_find_or_append_by_da
    - fr_time_to_unix_time
    linkageType: ''
    returnType: int
    signature: int fr_packet_pairs_from_packet(TALLOC_CTX *ctx, fr_pair_list_t *list,
      fr_packet_t const *packet)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:142,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ipaddr
    - port
    - list
    - attr_ip
    - attr_port
    argTypes:
    - fr_ipaddr_t*
    - uint16_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: pairs2inet
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: "void pairs2inet(fr_ipaddr_t *ipaddr, uint16_t *port, fr_pair_list_t
      const *list,\n\t\t       fr_dict_attr_t const *attr_ip, fr_dict_attr_t const
      *attr_port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:158,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:161,1
    - Dst: pairs2inet
      Src: /src/freeradius-server/src/lib/server/packet.c:163,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/packet.c:167,1
    - Dst: pairs2inet
      Src: /src/freeradius-server/src/lib/server/packet.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - packet
    - list
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: fr_packet_net_from_pairs
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 4
    functionsReached:
    - pairs2inet
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void fr_packet_net_from_pairs(fr_packet_t *packet, fr_pair_list_t const
      *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/packet.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: _packet_global_free
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _packet_global_free(UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/packet.c:183,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/packet.c:185,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/packet.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: _packet_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_dict_attr_autoload
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int _packet_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/server/packet.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: packet_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/packet.c
    functionUses: 3
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int packet_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _field
    - ','
    - _ctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: TALLOCED_TYPE
    functionSourceFile: /src/freeradius-server/src/lib/server/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TALLOCED_TYPE(_field, _ctype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: MODULE_BOOT
    functionSourceFile: /src/freeradius-server/src/lib/server/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_BOOT(_ctype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: MODULE_INST
    functionSourceFile: /src/freeradius-server/src/lib/server/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_INST(_ctype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: MODULE_THREAD_INST
    functionSourceFile: /src/freeradius-server/src/lib/server/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_THREAD_INST(_ctype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: MODULE_RCTX
    functionSourceFile: /src/freeradius-server/src/lib/server/module.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_RCTX(_ctype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_t*::ml::thread_data_get
      Src: /src/freeradius-server/src/lib/server/module.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: module_thread
    functionSourceFile: /src/freeradius-server/src/lib/server/module.h
    functionUses: 18
    functionsReached:
    - module_instance_t*::ml::thread_data_get
    linkageType: ''
    returnType: module_thread_instance_t
    signature: module_thread_instance_t *module_thread(module_instance_t const *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:38,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:40,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:41,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:47,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:48,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_check_lib_magic
    - fr_exit_now
    - talloc_autofree_context
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:62,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:63,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:65,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:65,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:65,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:66,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:66,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:67,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:67,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:67,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: test_section_alloc_name1_only
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_section_name2
    - cf_section_name
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - cf_section_name1
    linkageType: ''
    returnType: void
    signature: void test_section_alloc_name1_only(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:76,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:77,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:79,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:79,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:79,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:80,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:80,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:80,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: test_section_alloc_name1_name2
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_section_name2
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - cf_section_name1
    linkageType: ''
    returnType: void
    signature: void test_section_alloc_name1_name2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:89,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:90,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:92,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:95,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:95,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:95,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:96,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:96,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: test_section_alloc_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_section_alloc
    - talloc_free
    - cf_section_to_item
    - TEST_CHECK
    - TEST_ASSERT
    - cf_root
    linkageType: ''
    returnType: void
    signature: void test_section_alloc_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:105,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:106,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:108,1
    - Dst: cf_section_name_cmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:109,1
    - Dst: cf_section_name_cmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:109,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:110,1
    - Dst: cf_section_name_cmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:110,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: test_section_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    - cf_section_name_cmp
    linkageType: ''
    returnType: void
    signature: void test_section_name_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:120,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:121,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:123,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:124,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:125,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:125,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:126,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:126,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:127,1
    - Dst: cf_item_is_data
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:127,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:128,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:128,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: test_section_to_item_roundtrip
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - cf_section_alloc
    - cf_item_is_data
    - talloc_free
    - cf_section_to_item
    - cf_item_is_pair
    - TEST_CHECK
    - TEST_ASSERT
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void test_section_to_item_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:143,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:144,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:146,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:147,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:149,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:149,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:149,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:150,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:150,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:151,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:151,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: test_pair_alloc_basic
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - cf_pair_alloc
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_operator
    linkageType: ''
    returnType: void
    signature: void test_pair_alloc_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:161,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:162,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:164,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:165,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:167,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:167,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:168,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: test_pair_alloc_quoted
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_pair_value_quote
    - cf_section_alloc
    - talloc_free
    - cf_pair_attr_quote
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_alloc_quoted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:178,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:179,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:181,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:182,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:184,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:184,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:184,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:185,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:185,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 188
    functionName: test_pair_alloc_no_value
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - cf_pair_alloc
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_alloc_no_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:195,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:196,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:198,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:199,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:200,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:200,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:202,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:203,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:204,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:204,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:206,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:207,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:208,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:208,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 211
    functionName: test_pair_alloc_operators
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_operator
    linkageType: ''
    returnType: void
    signature: void test_pair_alloc_operators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:219,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:220,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:222,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:223,1
    - Dst: cf_pair_replace
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:225,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:227,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:227,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:227,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 230
    functionName: test_pair_replace
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_pair_replace
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - cf_pair_alloc
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:238,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:239,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:241,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:242,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:244,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:245,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:246,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:247,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:247,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:248,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:248,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 251
    functionName: test_pair_to_item_roundtrip
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_item_is_section
    - cf_section_alloc
    - cf_pair_to_item
    - talloc_free
    - cf_pair_alloc
    - cf_item_is_pair
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_to_item_roundtrip(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:262,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:263,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:265,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:266,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:268,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:269,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:271,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:272,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:274,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:275,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:277,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:278,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 281
    functionName: test_section_find_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_find_child(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:287,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:288,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:290,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:291,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:293,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:294,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:296,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:297,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:299,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:300,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 303
    functionName: test_section_find_name1_name2
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_find_name1_name2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:309,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:310,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:312,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:314,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:315,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: test_section_find_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_find_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:324,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:325,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:327,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:328,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:330,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:331,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:333,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:334,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:336,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:337,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:339,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:340,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 343
    functionName: test_section_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_section_find
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_find_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:349,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:350,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:352,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:353,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:355,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:356,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:358,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:359,1
    - Dst: cf_section_first
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:362,1
    - Dst: cf_section_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:364,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:365,1
    - Dst: cf_section_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:367,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:368,1
    - Dst: cf_section_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:370,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:371,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 374
    functionName: test_section_first_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_next
    - cf_section_alloc
    - talloc_free
    - cf_section_first
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_first_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:380,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:381,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:383,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:384,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:386,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:387,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:389,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:390,1
    - Dst: cf_section_prev
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:392,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:393,1
    - Dst: cf_section_prev
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:395,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:396,1
    - Dst: cf_section_prev
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:398,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:399,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 402
    functionName: test_section_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_section_prev
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_prev(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:409,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:410,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:412,1
    - Dst: cf_section_value_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:414,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:415,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:416,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:416,1
    - Dst: cf_section_value_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:418,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:419,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 422
    functionName: test_section_value_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - strcmp
    - cf_section_value_find
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_section_value_find(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:434,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:435,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:437,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:438,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:440,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:441,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:442,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:442,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:442,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 445
    functionName: test_pair_find_basic
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - cf_pair_alloc
    - strcmp
    - cf_pair_find
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_find_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:452,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:453,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:455,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:457,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:458,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: test_pair_find_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_pair_find
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_find_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:468,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:469,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:471,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:472,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:474,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:475,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:477,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:478,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:480,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:481,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:483,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:484,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 487
    functionName: test_pair_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_pair_find_next
    - cf_pair_find
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_find_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:494,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:495,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:497,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:498,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:500,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:501,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:503,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:504,1
    - Dst: cf_pair_first
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:506,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:507,1
    - Dst: cf_pair_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:509,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:510,1
    - Dst: cf_pair_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:513,1
    - Dst: cf_pair_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:515,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:516,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 519
    functionName: test_pair_first_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_pair_next
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_first
    linkageType: ''
    returnType: void
    signature: void test_pair_first_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:526,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:527,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:529,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:530,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:531,1
    - Dst: cf_pair_prev
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:533,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:534,1
    - Dst: cf_pair_prev
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:536,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:537,1
    - Dst: cf_pair_prev
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:539,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:540,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 543
    functionName: test_pair_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - cf_pair_prev
    - talloc_free
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_prev(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:549,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:550,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:552,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:553,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:554,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:555,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:556,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:558,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:558,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:559,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:559,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:560,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:560,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: test_pair_count
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_count
    linkageType: ''
    returnType: void
    signature: void test_pair_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:569,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:570,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:572,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:573,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:575,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:576,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:578,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:580,1
    - Dst: cf_pair_count_descendents
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:580,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:581,1
    - Dst: cf_pair_count_descendents
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:581,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 584
    functionName: test_pair_count_descendents
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_count_descendents
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_count_descendents(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:596,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:597,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:599,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:600,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:602,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:602,1
    - Dst: cf_item_remove
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:604,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:605,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:605,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:607,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 609
    functionName: test_item_remove_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_pair_find
    - TEST_CHECK
    - TEST_ASSERT
    - cf_item_remove
    linkageType: ''
    returnType: void
    signature: void test_item_remove_pair(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:615,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:616,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:618,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:621,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:621,1
    - Dst: cf_item_remove
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:623,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:624,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:624,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:626,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 628
    functionName: test_item_remove_section
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    - cf_item_remove
    linkageType: ''
    returnType: void
    signature: void test_item_remove_section(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:638,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:639,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:641,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:642,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:644,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:645,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:647,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:652,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:652,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:655,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:656,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 659
    functionName: test_item_next_mixed
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - TEST_MSG
    - talloc_free
    - cf_pair_alloc
    - cf_item_next
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_item_next_mixed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:665,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:666,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:668,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:669,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:670,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:672,1
    - Dst: cf_pair_first
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:672,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:673,1
    - Dst: cf_section_first
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:673,1
    - Dst: cf_section_free_children
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:675,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:677,1
    - Dst: cf_pair_first
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:677,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:678,1
    - Dst: cf_section_first
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:678,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 681
    functionName: test_item_free_children
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_free_children
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_section_first
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_first
    linkageType: ''
    returnType: void
    signature: void test_item_free_children(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:688,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:689,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:691,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:692,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:694,1
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:694,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:696,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:697,1
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:697,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 700
    functionName: test_item_mark_parsed
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - cf_item_is_parsed
    - talloc_free
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    - cf_item_mark_parsed
    linkageType: ''
    returnType: void
    signature: void test_item_mark_parsed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:712,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:713,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:715,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:716,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:717,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:719,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:720,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:721,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:723,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:723,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:723,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:724,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:725,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:726,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:726,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:726,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:727,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:727,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:727,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:729,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:730,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:731,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:731,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:731,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:733,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:734,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:735,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:735,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:735,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:737,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 739
    functionName: test_section_dup_basic
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - cf_pair_alloc
    - cf_section_name2
    - strcmp
    - cf_section_dup
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_find
    - cf_section_name1
    linkageType: ''
    returnType: void
    signature: void test_section_dup_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:746,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:747,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:749,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:750,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:751,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:753,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:755,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:755,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:755,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:756,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:756,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:756,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:761,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:761,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:763,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 765
    functionName: test_section_dup_rename
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_section_name2
    - strcmp
    - cf_section_dup
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_find
    - cf_section_name1
    linkageType: ''
    returnType: void
    signature: void test_section_dup_rename(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:772,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:773,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:775,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:776,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:778,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:779,1
    - Dst: cf_pair_dup
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:781,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:782,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:783,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:784,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:784,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:784,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:785,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:785,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:785,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:786,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:786,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:787,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:787,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:789,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 791
    functionName: test_pair_dup
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_pair_attr
    - cf_pair_value_quote
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - cf_pair_alloc
    - strcmp
    - cf_pair_dup
    - TEST_CHECK
    - TEST_ASSERT
    - cf_pair_operator
    linkageType: ''
    returnType: void
    signature: void test_pair_dup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:802,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:803,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:810,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:810,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:811,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:811,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 815
    functionName: test_filename_lineno
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_lineno
    - cf_section_alloc
    - talloc_free
    - cf_filename
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_filename_lineno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:821,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:822,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:824,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:825,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:825,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:825,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 828
    functionName: test_filename_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - cf_section_alloc
    - talloc_free
    - cf_filename
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_filename_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:834,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:835,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:837,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:838,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:838,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 841
    functionName: test_lineno_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_lineno
    - cf_section_alloc
    - talloc_free
    - cf_lineno_set
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_lineno_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:847,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:848,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:850,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:851,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:853,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:854,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:856,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:856,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:857,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:857,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:858,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:858,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 861
    functionName: test_cf_root
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    - cf_root
    linkageType: ''
    returnType: void
    signature: void test_cf_root(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:875,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:876,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:878,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:879,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:882,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:883,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:885,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:886,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:887,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 890
    functionName: test_data_add_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - talloc
    - cf_data_add
    - cf_data_value
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_data_add_find(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:897,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:898,1
    - Dst: _cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:900,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:900,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:901,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 904
    functionName: test_data_find_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - _cf_data_find
    - cf_section_to_item
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_data_find_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:912,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:913,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:915,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:918,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:919,1
    - Dst: _cf_data_remove
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:921,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:921,1
    - Dst: _cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:923,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:923,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:924,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 927
    functionName: test_data_remove
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - talloc
    - _cf_data_find
    - _cf_data_remove
    - cf_data_add
    - cf_section_to_item
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_data_remove(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:940,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:941,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:943,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:946,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:948,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:948,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:949,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 953
    functionName: test_expand_no_variables
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - TEST_MSG
    - talloc_free
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - cf_expand_variables
    linkageType: ''
    returnType: void
    signature: void test_expand_no_variables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:961,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:962,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:964,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:966,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:969,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:971,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:971,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:972,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 976
    functionName: test_expand_section_ref
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - TEST_MSG
    - talloc_free
    - cf_pair_alloc
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - cf_expand_variables
    linkageType: ''
    returnType: void
    signature: void test_expand_section_ref(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:984,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:985,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:987,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:988,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:990,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:992,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:995,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:997,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:997,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:998,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 1002
    functionName: test_expand_nested_ref
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - TEST_MSG
    - talloc_free
    - cf_pair_alloc
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - cf_expand_variables
    linkageType: ''
    returnType: void
    signature: void test_expand_nested_ref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1011,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1012,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1014,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1017,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1018,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1019,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1022
    functionName: test_expand_missing_ref
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CHECK
    - TEST_ASSERT
    - cf_expand_variables
    linkageType: ''
    returnType: void
    signature: void test_expand_missing_ref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1033,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1036,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1037,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1039,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1040,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1041,1
    - Dst: cf_pair_values_concat
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1043,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1044,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1045,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1047,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1048,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1048,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1049,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1052
    functionName: test_pair_values_concat
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - TEST_MSG
    - talloc_free
    - FR_SBUFF_OUT
    - fr_sbuff_terminate
    - cf_pair_alloc
    - strcmp
    - cf_pair_values_concat
    - TEST_ASSERT
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_values_concat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1058,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1061,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1062,1
    - Dst: cf_pair_values_concat
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1064,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1065,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1068
    functionName: test_pair_values_concat_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - FR_SBUFF_OUT
    - cf_pair_values_concat
    - TEST_ASSERT
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_values_concat_missing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1081,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1082,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1084,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1085,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1087,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1088,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1090,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1090,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1091,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1091,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1095
    functionName: test_reference_item_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_section_alloc
    - talloc_free
    - cf_pair_alloc
    - cf_reference_item
    - cf_item_is_pair
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_reference_item_pair(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1102,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1103,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1105,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1106,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1109,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1111,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1111,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1112,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1112,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1116
    functionName: test_reference_item_section
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - cf_section_alloc
    - talloc_free
    - cf_reference_item
    - TEST_CHECK
    - TEST_ASSERT
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void test_reference_item_section(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1123,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1124,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1126,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1127,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1130
    functionName: test_reference_item_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_reference_item
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_reference_item_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1150,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1151,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1153,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1154,1
    - Dst: cf_pair_in_table
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1156,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1157,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1158,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1161
    functionName: test_pair_in_table_found
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_in_table
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_in_table_found(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1170,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1171,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1173,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1174,1
    - Dst: cf_pair_in_table
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1177,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_tests.c:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1180
    functionName: test_pair_in_table_invalid
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_tests.c
    functionUses: 0
    functionsReached:
    - cf_section_alloc
    - talloc_free
    - cf_pair_in_table
    - cf_pair_alloc
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_pair_in_table_invalid(void)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/paircmp.c:65,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/server/paircmp.c:82,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/server/paircmp.c:89,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/paircmp.c:94,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:97,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:98,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:99,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/server/paircmp.c:106,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/paircmp.c:106,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/lib/server/paircmp.c:109,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/paircmp.c:109,1
    - Dst: regex_subcapture_count
      Src: /src/freeradius-server/src/lib/server/paircmp.c:114,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/paircmp.c:116,1
    - Dst: regex_match_data_alloc
      Src: /src/freeradius-server/src/lib/server/paircmp.c:116,1
    - Dst: regex_exec
      Src: /src/freeradius-server/src/lib/server/paircmp.c:121,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/paircmp.c:121,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/lib/server/paircmp.c:123,1
    - Dst: regex_sub_to_request
      Src: /src/freeradius-server/src/lib/server/paircmp.c:132,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:138,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:139,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:140,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/paircmp.c:141,1
    - Dst: MEMCMP_FIELDS
      Src: /src/freeradius-server/src/lib/server/paircmp.c:162,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:169,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/paircmp.c:169,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:172,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:175,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:178,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:181,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:184,1
    - Dst: fr_unix_time_cmp
      Src: /src/freeradius-server/src/lib/server/paircmp.c:187,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:190,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/server/paircmp.c:190,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/server/paircmp.c:190,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:193,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/paircmp.c:193,1
    - Dst: fr_pair_cmp_op
      Src: /src/freeradius-server/src/lib/server/paircmp.c:198,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/paircmp.c:209,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/paircmp.c:209,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 107
    argCount: 3
    argNames:
    - request
    - check
    - vp
    argTypes:
    - UNUSED*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 219
    functionName: paircmp_pairs
    functionSourceFile: /src/freeradius-server/src/lib/server/paircmp.c
    functionUses: 1
    functionsReached:
    - fr_value_box_aprint
    - ntohl
    - REDEBUG
    - fr_pair_cmp_op
    - regex_match_data_alloc
    - fr_strerror
    - MEM
    - regex_subcapture_count
    - REMARKER
    - memcmp
    - fr_unix_time_cmp
    - regex_compile
    - regex_sub_to_request
    - regex_exec
    - CMP
    - RPERROR
    - strcmp
    - talloc_strlen
    - talloc_free
    - MEMCMP_FIELDS
    linkageType: ''
    returnType: int
    signature: int paircmp_pairs(UNUSED request_t *request, fr_pair_t const *check,
      fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: tmpl_is_uninitialised
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_uninitialised(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: tmpl_is_data
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_data(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: tmpl_is_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_attr(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: tmpl_is_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_xlat(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: tmpl_is_exec
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_exec(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: tmpl_is_regex
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_regex(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: tmpl_is_regex_uncompiled
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_regex_uncompiled(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: tmpl_is_regex_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_regex_xlat(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: tmpl_is_data_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_data_unresolved(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: tmpl_is_exec_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_exec_unresolved(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: tmpl_is_attr_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_attr_unresolved(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: tmpl_is_xlat_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_xlat_unresolved(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: tmpl_is_regex_xlat_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_is_regex_xlat_unresolved(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: tmpl_needs_resolving
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_needs_resolving(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: tmpl_contains_data
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_contains_data(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: tmpl_contains_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_contains_attr(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: tmpl_contains_regex
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_contains_regex(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: tmpl_contains_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_contains_xlat(vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: ar_is_normal
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_is_normal(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: ar_is_unspecified
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_is_unspecified(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: ar_is_unknown
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_is_unknown(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: ar_is_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_is_unresolved(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: ar_is_raw
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_is_raw(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: ar_filter_is_none
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_filter_is_none(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: ar_filter_is_num
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_filter_is_num(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: ar_filter_is_cond
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_filter_is_cond(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: ar_filter_is_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_filter_is_tmpl(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: ar_filter_is_expr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ar_filter_is_expr(_ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/server/tmpl.h:564,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/server/tmpl.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: struct
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 4
    functionsReached:
    - FR_DLIST_HEAD
    linkageType: ''
    returnType: _CONST
    signature: _CONST struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: struct
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: _CONST
    signature: _CONST struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: struct
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: _CONST
    signature: _CONST struct
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: tmpl_assert_type
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_assert_type(_cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - tmpl_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: tmpl_type_to_str
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 9
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *tmpl_type_to_str(tmpl_type_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/tmpl.h:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 651
    functionName: tmpl_type_from_str
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - fr_table_value_by_str
    linkageType: ''
    returnType: tmpl_type_t
    signature: tmpl_type_t tmpl_type_from_str(char const *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: tmpl_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_attr(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:662,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:662,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl.h:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 666
    functionName: tmpl_request
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 7
    functionsReached:
    - tmpl_is_attr
    - tmpl_is_attr_unresolved
    - tmpl_assert_type
    linkageType: ''
    returnType: void
    signature: void tmpl_request(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:673,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:673,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl.h:674,1
    - Dst: tmpl_request_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl.h:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 677
    functionName: tmpl_request_ref_count
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - tmpl_is_attr
    - tmpl_is_attr_unresolved
    - tmpl_request_list_num_elements
    - tmpl_assert_type
    linkageType: ''
    returnType: size_t
    signature: size_t tmpl_request_ref_count(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ar_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl.h:685,1
    - Dst: request_attr_is_list
      Src: /src/freeradius-server/src/lib/server/tmpl.h:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ar
    argTypes:
    - tmpl_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: tmpl_attr_is_list_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached:
    - ar_is_normal
    - request_attr_is_list
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_is_list_attr(tmpl_attr_t const *ar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:698,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:698,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl.h:700,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:700,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl.h:701,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 704
    functionName: tmpl_attr_head_is_list
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - unlikely
    - tmpl_attr
    - tmpl_attr_list_head
    - tmpl_attr_is_list_attr
    - tmpl_assert_type
    - tmpl_contains_attr
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_head_is_list(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:714,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:714,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:716,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:716,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl.h:717,1
    - Dst: ar_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl.h:719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 720
    functionName: tmpl_attr_tail_is_normal
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - unlikely
    - ar_is_normal
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_is_attr
    - tmpl_assert_type
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_is_normal(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:730,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:730,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:732,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:732,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl.h:733,1
    - Dst: ar_is_unspecified
      Src: /src/freeradius-server/src/lib/server/tmpl.h:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 736
    functionName: tmpl_attr_tail_is_unspecified
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached:
    - unlikely
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_is_attr
    - tmpl_assert_type
    - ar_is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_is_unspecified(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:746,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:746,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:748,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:748,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl.h:749,1
    - Dst: ar_is_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl.h:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 752
    functionName: tmpl_attr_tail_is_unknown
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - ar_is_unknown
    - unlikely
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_is_attr
    - tmpl_assert_type
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_is_unknown(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:762,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:762,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:764,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:764,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl.h:765,1
    - Dst: ar_is_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl.h:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: tmpl_attr_tail_is_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - unlikely
    - tmpl_attr
    - ar_is_unresolved
    - tmpl_attr_list_tail
    - tmpl_assert_type
    - tmpl_contains_attr
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_is_unresolved(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:778,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:778,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:780,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:780,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl.h:781,1
    - Dst: ar_is_raw
      Src: /src/freeradius-server/src/lib/server/tmpl.h:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 784
    functionName: tmpl_attr_tail_is_raw
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - unlikely
    - ar_is_raw
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_assert_type
    - tmpl_contains_attr
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_is_raw(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:792,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:792,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:794,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 795
    functionName: tmpl_attr_tail
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached:
    - tmpl_is_attr
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_assert_type
    linkageType: ''
    returnType: tmpl_attr_t
    signature: tmpl_attr_t *tmpl_attr_tail(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:805,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:805,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:807,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    functionName: tmpl_attr_tail_da
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 68
    functionsReached:
    - tmpl_is_attr
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_assert_type
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *tmpl_attr_tail_da(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:821,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:821,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:823,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:823,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl.h:826,1
    - Dst: ar_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl.h:826,1
    - Dst: ar_is_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl.h:826,1
    - Dst: ar_is_unspecified
      Src: /src/freeradius-server/src/lib/server/tmpl.h:826,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/tmpl.h:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 829
    functionName: tmpl_attr_tail_da_is_leaf
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached:
    - ar_is_unknown
    - ar_is_normal
    - fr_type_is_leaf
    - tmpl_attr
    - fr_assert
    - tmpl_attr_list_tail
    - tmpl_assert_type
    - tmpl_contains_attr
    - ar_is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_da_is_leaf(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:839,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:839,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:841,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:841,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl.h:844,1
    - Dst: ar_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl.h:844,1
    - Dst: ar_is_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl.h:844,1
    - Dst: ar_is_unspecified
      Src: /src/freeradius-server/src/lib/server/tmpl.h:844,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl.h:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 847
    functionName: tmpl_attr_tail_da_is_structural
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached:
    - ar_is_unknown
    - ar_is_normal
    - fr_type_is_structural
    - tmpl_attr
    - fr_assert
    - tmpl_attr_list_tail
    - tmpl_assert_type
    - tmpl_contains_attr
    - ar_is_unspecified
    linkageType: ''
    returnType: bool
    signature: bool tmpl_attr_tail_da_is_structural(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:857,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:857,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:859,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 863
    functionName: tmpl_attr_tail_unknown
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached:
    - tmpl_is_attr
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_assert_type
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *tmpl_attr_tail_unknown(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:873,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl.h:873,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:875,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 879
    functionName: tmpl_attr_tail_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 3
    functionsReached:
    - tmpl_attr_list_tail
    - tmpl_is_attr_unresolved
    - tmpl_assert_type
    - tmpl_attr
    linkageType: ''
    returnType: char
    signature: char *tmpl_attr_tail_unresolved(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:887,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:887,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl.h:888,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:890,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 891
    functionName: tmpl_attr_tail_num
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 10
    functionsReached:
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_is_attr_unresolved
    - tmpl_is_attr
    - tmpl_assert_type
    linkageType: ''
    returnType: int16_t
    signature: int16_t tmpl_attr_tail_num(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl.h:898,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:898,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl.h:899,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl.h:901,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 902
    functionName: tmpl_attr_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached:
    - tmpl_attr_list_num_elements
    - tmpl_attr
    - tmpl_is_attr_unresolved
    - tmpl_is_attr
    - tmpl_assert_type
    linkageType: ''
    returnType: size_t
    signature: size_t tmpl_attr_num_elements(tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_head_is_list
      Src: /src/freeradius-server/src/lib/server/tmpl.h:906,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl.h:908,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 904
    functionDepth: 3
    functionLinenumber: 904
    functionLinenumberEnd: 909
    functionName: tmpl_list
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 13
    functionsReached:
    - tmpl_attr
    - tmpl_attr_list_head
    - tmpl_attr_head_is_list
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *tmpl_list(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - def
    argTypes:
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: tmpl_list_name
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tmpl_list_name(fr_dict_attr_t const *list, char const *def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:922,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl.h:923,1
    - Dst: tmpl_attr_tail
      Src: /src/freeradius-server/src/lib/server/tmpl.h:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: tmpl_is_list
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 8
    functionsReached:
    - tmpl_is_attr
    - tmpl_attr_is_list_attr
    - tmpl_attr_tail
    linkageType: ''
    returnType: bool
    signature: bool tmpl_is_list(tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 931
    functionName: tmpl_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_xlat(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 938
    functionName: tmpl_value
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_value(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 939
    functionName: tmpl_value_length
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_value_length(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 940
    functionName: tmpl_value_type
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_value_type(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 941
    functionName: tmpl_value_enumv
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_value_enumv(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 943
    functionName: tmpl_rules_cast
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_rules_cast(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 944
    functionName: tmpl_rules_enumv
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_rules_enumv(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 955
    functionName: tmpl_regex
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_regex(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 956
    functionName: tmpl_regex_flags
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_regex_flags(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: TMPL_ATTR_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TMPL_ATTR_VERIFY(_vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 965
    functionName: TMPL_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TMPL_VERIFY(_vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _head
    - ','
    - _request
    - ','
    - _ref
    - ','
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1003
    functionName: tmpl_pair_list_and_ctx
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_pair_list_and_ctx(_ctx, _head, _request, _ref, _list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1047
    functionName: FR_TYPE_FROM_PTR
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_FROM_PTR(_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _out
    - ','
    - _buff
    - ','
    - _buff_len
    - ','
    - _request
    - ','
    - _vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1057
    functionName: tmpl_expand
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_expand(_out, _buff, _buff_len, _request, _vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _ctx
    - ','
    - _out
    - ','
    - _request
    - ','
    - _vpt
    - ','
    - _escape
    - ','
    - _escape_ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1066
    functionName: tmpl_aexpand
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_aexpand(_ctx, _out, _request, _vpt, _escape, _escape_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _out
    - ','
    - _type
    - ','
    - _request
    - ','
    - _vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1075
    functionName: tmpl_aexpand_type
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_aexpand_type(_ctx, _out, _type, _request, _vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1135
    functionName: tmpl_request_ref_is_current
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_request_ref_is_current(_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1144
    functionName: tmpl_request_ref_is_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_request_ref_is_parent(_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1153
    functionName: tmpl_request_ref_is_outer
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_request_ref_is_outer(_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1223
    functionName: tmpl_cast_get
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t tmpl_cast_get(tmpl_t *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: MIN_LEN
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN_LEN(_info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/password.c:448,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/server/password.c:448,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/password.c:448,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/lib/server/password.c:462,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/server/password.c:462,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/password.c:462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - action
    - buffer
    - bufflen
    - known_good
    - len
    - min_len
    argTypes:
    - normalise_t*
    - uint8_t*
    - size_t
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 471
    functionName: normify
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_base64_decode
    - FR_DBUFF_TMP
    - fr_base16_decode
    - FR_SBUFF_IN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t normify(normalise_t *action, uint8_t *buffer, size_t bufflen,\n\t\t
      \      char const *known_good, size_t len, size_t min_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/password.c:501,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/password.c:501,1
    - Dst: MIN_LEN
      Src: /src/freeradius-server/src/lib/server/password.c:504,1
    - Dst: normify
      Src: /src/freeradius-server/src/lib/server/password.c:509,1
    - Dst: normify
      Src: /src/freeradius-server/src/lib/server/password.c:514,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:523,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/password.c:524,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:526,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:526,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/server/password.c:527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - request
    - known_good
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 535
    functionName: password_normify
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - MIN_LEN
    - normify
    - fr_cond_assert
    - fr_pair_value_memdup
    - fr_table_str_by_value
    - RDEBUG2
    - MEM
    - NUM_ELEMENTS
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *password_normify(TALLOC_CTX *ctx, request_t *request, fr_pair_t
      const *known_good)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:553,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:553,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:554,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:558,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:558,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:559,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:563,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:563,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:564,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:568,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:568,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:569,1
    - Dst: password_normify
      Src: /src/freeradius-server/src/lib/server/password.c:573,1
    - Dst: password_process_sha2
      Src: /src/freeradius-server/src/lib/server/password.c:576,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/password.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - request
    - known_good
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 581
    functionName: password_process_sha2
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - TALLOC_FREE
    - password_normify
    - password_process_sha2
    - fr_pair_value_copy
    - MEM
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *password_process_sha2(TALLOC_CTX *ctx, request_t *request,
      fr_pair_t *known_good)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:598,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:598,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:599,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:603,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:603,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:604,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:608,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:608,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:609,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:613,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:613,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/password.c:614,1
    - Dst: password_normify
      Src: /src/freeradius-server/src/lib/server/password.c:618,1
    - Dst: password_process_sha3
      Src: /src/freeradius-server/src/lib/server/password.c:621,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/password.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - request
    - known_good
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 626
    functionName: password_process_sha3
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - TALLOC_FREE
    - password_normify
    - fr_pair_value_copy
    - MEM
    - password_process_sha3
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *password_process_sha3(TALLOC_CTX *ctx, request_t *request,
      fr_pair_t *known_good)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/password.c:657,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/password.c:663,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/server/password.c:672,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:679,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/password.c:684,1
    - Dst: fr_table_value_by_substr
      Src: /src/freeradius-server/src/lib/server/password.c:687,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:693,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:696,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/password.c:705,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/password.c:705,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:708,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/server/password.c:711,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/server/password.c:715,1
    - Dst: p::p
      Src: /src/freeradius-server/src/lib/server/password.c:715,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/password.c:720,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/password.c:730,1
    - Dst: normify
      Src: /src/freeradius-server/src/lib/server/password.c:743,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/server/password.c:745,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:746,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/password.c:747,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/password.c:755,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:770,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:772,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/password.c:776,1
    - Dst: fr_pair_afrom_da::fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/password.c:776,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 3
    argNames:
    - ctx
    - request
    - known_good
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 780
    functionName: password_process_header
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - memcpy
    - normify
    - memchr
    - REDEBUG
    - fr_cond_assert
    - fr_pair_value_memdup
    - MEM
    - fr_pair_afrom_da::fr_pair_afrom_da
    - fr_table_str_by_value
    - memset
    - NUM_ELEMENTS
    - fr_pair_afrom_da
    - fr_pair_value_bstrndup
    - fr_assert
    - RDEBUG3
    - RDEBUG2
    - fr_table_value_by_substr
    - fr_assert_fail
    - p::p
    - PAIR_VERIFY
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *password_process_header(TALLOC_CTX *ctx, request_t *request,
      fr_pair_t *known_good)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/password.c:790,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/password.c:790,1
    - Dst: password_info_t*::func
      Src: /src/freeradius-server/src/lib/server/password.c:800,1
    - Dst: password_process
      Src: /src/freeradius-server/src/lib/server/password.c:807,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/password.c:815,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/password.c:818,1
    - Dst: password_normify
      Src: /src/freeradius-server/src/lib/server/password.c:830,1
    - Dst: MIN_LEN
      Src: /src/freeradius-server/src/lib/server/password.c:839,1
    - Dst: RWDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:841,1
    - Dst: MIN_LEN
      Src: /src/freeradius-server/src/lib/server/password.c:842,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:844,1
    - Dst: MIN_LEN
      Src: /src/freeradius-server/src/lib/server/password.c:845,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/password.c:848,1
    - Dst: RWDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:857,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:860,1
    - Dst: RWDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:872,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:875,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - request
    - known_good
    - normify
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_pair_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 882
    functionName: password_process
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 1
    functionsReached:
    - RWDEBUG2
    - TALLOC_FREE
    - password_normify
    - RWDEBUG3
    - MIN_LEN
    - fr_cond_assert
    - password_info_t*::func
    - password_process
    - NUM_ELEMENTS
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *password_process(TALLOC_CTX *ctx, request_t *request, fr_pair_t
      *known_good, bool normify)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/lib/server/password.c:896,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/password.c:898,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/password.c:899,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/password.c:899,1
    - Dst: password_process::password_process
      Src: /src/freeradius-server/src/lib/server/password.c:904,1
    - Dst: known_good::known_good
      Src: /src/freeradius-server/src/lib/server/password.c:910,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:916,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:920,1
    - Dst: da::da
      Src: /src/freeradius-server/src/lib/server/password.c:921,1
    - Dst: fr_dcursor_free_item
      Src: /src/freeradius-server/src/lib/server/password.c:923,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/server/password.c:924,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - request
    - normify
    argTypes:
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 929
    functionName: password_normalise_and_replace
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dcursor_next
    - fr_cond_assert
    - fr_pair_dcursor_by_ancestor_init
    - password_process::password_process
    - da::da
    - RDEBUG3
    - RDEBUG2
    - known_good::known_good
    - fr_dcursor_free_item
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int password_normalise_and_replace(request_t *request, bool normify)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/password.c:938,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/password.c:938,1
    - Dst: password_process::password_process
      Src: /src/freeradius-server/src/lib/server/password.c:943,1
    - Dst: da::da
      Src: /src/freeradius-server/src/lib/server/password.c:951,1
    - Dst: da::da
      Src: /src/freeradius-server/src/lib/server/password.c:952,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - request
    - allowed_attrs
    - allowed_attrs_len
    - normify
    - known_good
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_dict_attr_t*[]
    - size_t
    - bool
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 965
    functionName: password_normalise_and_recheck
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - da::da
    - NUM_ELEMENTS
    - password_process::password_process
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *password_normalise_and_recheck(TALLOC_CTX *ctx, request_t
      *request,\n\t\t\t\t\t\t  fr_dict_attr_t const *allowed_attrs[], size_t allowed_attrs_len,\n\t\t\t\t\t\t
      \ bool normify, fr_pair_t *const known_good)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/password.c:1000,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:1001,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:1002,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:1003,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:1004,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:1005,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/password.c:1006,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/lib/server/password.c:1009,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/password.c:1011,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/password.c:1016,1
    - Dst: password_normalise_and_recheck
      Src: /src/freeradius-server/src/lib/server/password.c:1025,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/password.c:1031,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/password.c:1032,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/password.c:1036,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/password.c:1037,1
    - Dst: password_normalise_and_recheck
      Src: /src/freeradius-server/src/lib/server/password.c:1048,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 6
    argNames:
    - ephemeral
    - ctx
    - request
    - allowed_attrs
    - allowed_attrs_len
    - normify
    argTypes:
    - bool*
    - TALLOC_CTX*
    - request_t*
    - fr_dict_attr_t*[]
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 994
    functionDepth: 5
    functionLinenumber: 994
    functionLinenumberEnd: 1057
    functionName: password_find
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 6
    functionsReached:
    - fr_dcursor_next
    - fr_pair_dcursor_by_ancestor_init
    - fr_table_str_by_value
    - RDEBUG3
    - RDEBUG2
    - RWDEBUG
    - password_normalise_and_recheck
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *password_find(bool *ephemeral, TALLOC_CTX *ctx, request_t
      *request,\n\t\t\t  fr_dict_attr_t const *allowed_attrs[], size_t allowed_attrs_len,
      bool normify)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/password.c:1061,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/password.c:1062,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/password.c:1065,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/password.c:1066,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/password.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1072
    functionName: _password_init
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_autoload
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int _password_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/password.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1079
    functionName: _password_free
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _password_free(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/server/password.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1091
    functionName: password_init
    functionSourceFile: /src/freeradius-server/src/lib/server/password.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int password_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: request_is_external
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_is_external(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: request_is_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_is_internal(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: request_is_detached
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_is_detached(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: request_is_detachable
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_is_detachable(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: request_is_dynamic_client
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_is_dynamic_client(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: request_set_dynamic_client
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_set_dynamic_client(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: REQUEST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: REQUEST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: request_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_init(_ctx, _type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ctx
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: request_local_alloc_external
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_local_alloc_external(_ctx, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ctx
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: request_local_alloc_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_local_alloc_internal(_ctx, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: request_attr_is_list
    functionSourceFile: /src/freeradius-server/src/lib/server/request.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool request_attr_is_list(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _t
    - ','
    - _f
    - ','
    - _ct
    - ','
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 183
    functionName: FR_CONF_FLAG_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_FLAG_CHECK(_t, _f, _ct, _p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _type
    - ','
    - _flags
    - ','
    - _c_type
    - ','
    - _ptr_or_offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: FR_CONF_FLAG_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_FLAG_CHECK(_type, _flags, _c_type, _ptr_or_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 227
    functionName: CONF_CTYPE_TO_FLAGS
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONF_CTYPE_TO_FLAGS(_ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: FR_CONF_OFFSET_TYPE_FLAGS
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET_TYPE_FLAGS(_name, _type, _flags, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: FR_CONF_OFFSET_HINT_TYPE
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET_HINT_TYPE(_name, _type, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: FR_CONF_OFFSET_FLAGS
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET_FLAGS(_name, _flags, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: FR_CONF_OFFSET
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET(_name, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: FR_CONF_OFFSET_IS_SET
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET_IS_SET(_name, _type, _flags, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _name
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - ','
    - _subcs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: FR_CONF_OFFSET_SUBSECTION
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET_SUBSECTION(_name, _flags, _struct, _field, _subcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _struct
    - ','
    - _field
    - ','
    - _subcs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: FR_CONF_OFFSET_REF
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_OFFSET_REF(_struct, _field, _subcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _flags
    - ','
    - _res_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: FR_CONF_POINTER
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_POINTER(_name, _type, _flags, _res_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _flags
    - ','
    - _res_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: FR_CONF_POINTER_IS_SET
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_POINTER_IS_SET(_name, _type, _flags, _res_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _res_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: FR_ITEM_POINTER
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_ITEM_POINTER(_type, _res_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _flags
    - ','
    - _struct
    - ','
    - _field
    - ','
    - _subcs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: FR_CONF_SUBSECTION_ALLOC
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_SUBSECTION_ALLOC(_name, _type, _flags, _struct, _field, _subcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _flags
    - ','
    - _func
    - ','
    - _dflt_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: FR_CONF_PAIR_GLOBAL
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_PAIR_GLOBAL(_name, _type, _flags, _func, _dflt_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _flags
    - ','
    - _subcs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: FR_CONF_SUBSECTION_GLOBAL
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_SUBSECTION_GLOBAL(_name, _flags, _subcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: FR_CONF_DEPRECATED
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CONF_DEPRECATED(_name, _struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: fr_rule_deprecated
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_deprecated(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: fr_rule_required
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_required(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    functionName: fr_rule_secret
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_secret(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: fr_rule_file_readable
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_file_readable(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: fr_rule_file_writable
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_file_writable(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: fr_rule_file_socket
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_file_socket(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: fr_rule_file_exists
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_file_exists(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: fr_rule_multi
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_multi(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: fr_rule_not_empty
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_not_empty(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: fr_rule_is_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_is_set(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: fr_rule_ok_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_ok_missing(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: fr_rule_dflt
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_dflt(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: fr_rule_is_attribute
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_is_attribute(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: fr_rule_is_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_is_xlat(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: fr_rule_is_tmpl
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rule_is_tmpl(_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _cond
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: FR_SIZE_COND_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SIZE_COND_CHECK(_name, _var, _cond, _new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _op
    - ','
    - _bound
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: FR_SIZE_BOUND_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SIZE_BOUND_CHECK(_name, _var, _op, _bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _cond
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: FR_INTEGER_COND_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_INTEGER_COND_CHECK(_name, _var, _cond, _new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _op
    - ','
    - _bound
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: FR_INTEGER_BOUND_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_INTEGER_BOUND_CHECK(_name, _var, _op, _bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _cond
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 539
    functionName: FR_TIME_DELTA_COND_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIME_DELTA_COND_CHECK(_name, _var, _cond, _new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _op
    - ','
    - _bound
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: FR_TIME_DELTA_BOUND_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIME_DELTA_BOUND_CHECK(_name, _var, _op, _bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _cs
    - ','
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 700
    functionName: cf_section_rule_push
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_rule_push(_cs, _rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _cs
    - ','
    - _rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 702
    functionName: cf_section_rules_push
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_rules_push(_cs, _rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: module_rlm_from_module
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: module_rlm_t
    signature: module_rlm_t *module_rlm_from_module(module_t *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/util.c:54,1
    - Dst: sigemptyset
      Src: /src/freeradius-server/src/lib/server/util.c:56,1
    - Dst: sigaction
      Src: /src/freeradius-server/src/lib/server/util.c:61,1
    - Dst: signal
      Src: /src/freeradius-server/src/lib/server/util.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: (*reset_signal(int signo, void (*func)(int)))(int)
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - signal
    - sigaction
    - memset
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void (*reset_signal(int signo, void (*func)(int)))(int)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 129
    functionName: rad_filename_make_safe
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rad_filename_make_safe(char *out, char const *in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/util.c:138,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/server/util.c:138,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/util.c:143,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/util.c:143,1
    - Dst: rad_filename_make_safe
      Src: /src/freeradius-server/src/lib/server/util.c:145,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/lib/server/util.c:147,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/util.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - vb
    - uxtc
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: rad_filename_box_make_safe
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - fr_value_box_is_safe_for
    - talloc_array
    - rad_filename_make_safe
    - fr_value_box_mark_safe_for
    - fr_assert
    - fr_value_box_strdup_shallow_replace
    - MEM
    linkageType: ''
    returnType: int
    signature: int rad_filename_box_make_safe(fr_value_box_t *vb, UNUSED void *uxtc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/server/util.c:188,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/util.c:194,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/util.c:198,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/util.c:202,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/util.c:243,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 5
    argNames:
    - request
    - out
    - outlen
    - in
    - arg
    argTypes:
    - UNUSED*
    - char*
    - size_t
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 251
    functionName: rad_filename_escape
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - fr_utf8_char
    - snprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rad_filename_escape(UNUSED request_t *request, char *out, size_t
      outlen, char const *in, UNUSED void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/util.c:260,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/server/util.c:260,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/util.c:266,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/util.c:266,1
    - Dst: rad_filename_escape
      Src: /src/freeradius-server/src/lib/server/util.c:268,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:274,1
    - Dst: fr_value_box_strdup_shallow_replace
      Src: /src/freeradius-server/src/lib/server/util.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - vb
    - uxtc
    argTypes:
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 281
    functionName: rad_filename_box_escape
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - fr_value_box_is_safe_for
    - talloc_array
    - talloc_free
    - fr_assert
    - rad_filename_escape
    - fr_value_box_strdup_shallow_replace
    - MEM
    linkageType: ''
    returnType: int
    signature: int rad_filename_box_escape(fr_value_box_t *vb, UNUSED void *uxtc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: rad_copy_string
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rad_copy_string(char *to, char const *from)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 335
    functionName: rad_copy_string_bare
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rad_copy_string_bare(char *to, char const *from)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rad_copy_string
      Src: /src/freeradius-server/src/lib/server/util.c:353,1
    - Dst: rad_copy_variable
      Src: /src/freeradius-server/src/lib/server/util.c:377,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 398
    functionName: rad_copy_variable
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - rad_copy_variable
    - rad_copy_string
    linkageType: ''
    returnType: int
    signature: int rad_copy_variable(char *to, char const *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - past
    - present
    - then
    - now
    argTypes:
    - uint32_t*
    - uint32_t*
    - time_t*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 435
    functionName: rad_pps
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rad_pps(uint32_t *past, uint32_t *present, time_t *then, struct
      timeval *now)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/util.c:459,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:462,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:470,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/util.c:474,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/util.c:485,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:497,1
    - Dst: rad_copy_string_bare
      Src: /src/freeradius-server/src/lib/server/util.c:504,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:506,1
    - Dst: rad_copy_variable
      Src: /src/freeradius-server/src/lib/server/util.c:517,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:519,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:545,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/util.c:559,1
    - Dst: xlat_eval
      Src: /src/freeradius-server/src/lib/server/util.c:563,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:574,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/util.c:586,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 90
    argCount: 7
    argNames:
    - request
    - cmd
    - max_argc
    - argv
    - can_fail
    - argv_buflen
    - argv_buf
    argTypes:
    - request_t*
    - char*
    - int
    - char*[]
    - bool
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 593
    functionName: rad_expand_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 2
    functionsReached:
    - xlat_eval
    - rad_copy_variable
    - strchr
    - rad_copy_string_bare
    - fr_skip_whitespace
    - strlen
    - fr_strerror_const
    - strlcpy
    linkageType: ''
    returnType: int
    signature: "int rad_expand_xlat(request_t *request, char const *cmd,\n\t\t    int
      max_argc, char const *argv[], bool can_fail,\n\t\t    size_t argv_buflen, char
      *argv_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 609
    functionName: rad_suid_set_down_uid
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rad_suid_set_down_uid(uid_t uid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getresuid
      Src: /src/freeradius-server/src/lib/server/util.c:616,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:617,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:618,1
    - Dst: setresuid
      Src: /src/freeradius-server/src/lib/server/util.c:621,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:622,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:623,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/util.c:626,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:627,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 630
    functionName: rad_suid_up
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - fr_exit_now
    - ERROR
    - geteuid
    - setresuid
    - getresuid
    linkageType: ''
    returnType: void
    signature: void rad_suid_up(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setresuid
      Src: /src/freeradius-server/src/lib/server/util.c:636,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/util.c:636,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/server/util.c:640,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:641,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:641,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:642,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:643,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/util.c:646,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:647,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:648,1
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/lib/server/util.c:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 652
    functionName: rad_suid_down
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - fr_perm_getpwuid
    - ERROR
    - fr_exit_now
    - geteuid
    - talloc_free
    - fr_syserror
    - fr_reset_dumpable
    - setresuid
    linkageType: ''
    returnType: void
    signature: void rad_suid_down(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setresuid
      Src: /src/freeradius-server/src/lib/server/util.c:658,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/server/util.c:662,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:663,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:663,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:664,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:665,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/util.c:668,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:669,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:670,1
    - Dst: fr_cap_disable
      Src: /src/freeradius-server/src/lib/server/util.c:676,1
    - Dst: fr_cap_disable
      Src: /src/freeradius-server/src/lib/server/util.c:677,1
    - Dst: fr_cap_disable
      Src: /src/freeradius-server/src/lib/server/util.c:678,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:679,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:680,1
    - Dst: fr_cap_disable
      Src: /src/freeradius-server/src/lib/server/util.c:684,1
    - Dst: fr_cap_disable
      Src: /src/freeradius-server/src/lib/server/util.c:685,1
    - Dst: fr_cap_disable
      Src: /src/freeradius-server/src/lib/server/util.c:686,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:687,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:688,1
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/lib/server/util.c:692,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 695
    functionName: rad_suid_down_permanent
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - fr_perm_getpwuid
    - ERROR
    - fr_exit_now
    - geteuid
    - fr_cap_disable
    - talloc_free
    - fr_syserror
    - fr_reset_dumpable
    - setresuid
    linkageType: ''
    returnType: void
    signature: void rad_suid_down_permanent(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: seteuid
      Src: /src/freeradius-server/src/lib/server/util.c:704,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:705,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:705,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 709
    functionName: rad_suid_up
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - seteuid
    - ERROR
    - fr_syserror
    - fr_exit_now
    linkageType: ''
    returnType: void
    signature: void rad_suid_up(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/util.c:715,1
    - Dst: seteuid
      Src: /src/freeradius-server/src/lib/server/util.c:717,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/server/util.c:721,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:722,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:722,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:723,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:724,1
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/lib/server/util.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 728
    functionName: rad_suid_down
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - fr_perm_getpwuid
    - ERROR
    - fr_exit_now
    - geteuid
    - talloc_free
    - seteuid
    - fr_syserror
    - fr_reset_dumpable
    linkageType: ''
    returnType: void
    signature: void rad_suid_down(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/freeradius-server/src/lib/server/util.c:737,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/util.c:743,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/lib/server/util.c:744,1
    - Dst: setuid
      Src: /src/freeradius-server/src/lib/server/util.c:747,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/server/util.c:751,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/util.c:752,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:752,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:753,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/util.c:754,1
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/lib/server/util.c:757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 760
    functionName: rad_suid_down_permanent
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - fr_perm_getpwuid
    - ERROR
    - fr_exit_now
    - geteuid
    - talloc_free
    - fr_syserror
    - fr_reset_dumpable
    - setuid
    - rad_suid_up
    - getuid
    linkageType: ''
    returnType: void
    signature: void rad_suid_down_permanent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 765
    functionName: rad_suid_set_down_uid
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rad_suid_set_down_uid(uid_t uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 769
    functionName: rad_suid_up
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rad_suid_up(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/lib/server/util.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: rad_suid_down
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - fr_reset_dumpable
    linkageType: ''
    returnType: void
    signature: void rad_suid_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_reset_dumpable
      Src: /src/freeradius-server/src/lib/server/util.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: rad_suid_down_permanent
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached:
    - fr_reset_dumpable
    linkageType: ''
    returnType: void
    signature: void rad_suid_down_permanent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 791
    functionName: rad_suid_is_down_permanent
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rad_suid_is_down_permanent(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: seteuid
      Src: /src/freeradius-server/src/lib/server/util.c:802,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/server/util.c:806,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/util.c:807,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:807,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 813
    functionName: rad_seuid
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - fr_perm_getpwuid
    - talloc_free
    - seteuid
    - fr_strerror_printf
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int rad_seuid(uid_t uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setegid
      Src: /src/freeradius-server/src/lib/server/util.c:824,1
    - Dst: fr_perm_getgrgid
      Src: /src/freeradius-server/src/lib/server/util.c:828,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/util.c:829,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/util.c:829,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/util.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - gid
    argTypes:
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 835
    functionName: rad_segid
    functionSourceFile: /src/freeradius-server/src/lib/server/util.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_strerror_printf
    - fr_syserror
    - setegid
    - fr_perm_getgrgid
    linkageType: ''
    returnType: int
    signature: int rad_segid(gid_t gid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:45,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:48,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:49,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:55,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:57,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:60,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:62,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 1
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - fr_pair_test_list_alloc
    - request_global_init
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_local_alloc_external
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:74,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:76,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:77,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:79,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: request_fake_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - request_local_alloc_external
    - fr_packet_alloc
    linkageType: ''
    returnType: request_t
    signature: request_t *request_fake_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:92,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:94,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:95,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:95,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:97,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:98,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:98,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:99,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:103,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:104,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:106,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: test_pair_append_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_pair_list_head
    - PAIR_VERIFY
    - TEST_CHECK
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void test_pair_append_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:113,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:116,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:119,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:119,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:120,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:125,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:126,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:128,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 129
    functionName: test_pair_append_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_pair_list_head
    - PAIR_VERIFY
    - TEST_CHECK
    - pair_append_reply
    linkageType: ''
    returnType: void
    signature: void test_pair_append_reply(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:135,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:137,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:138,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:138,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:141,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:141,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:142,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:144,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:147,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:148,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:150,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: test_pair_append_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_pair_list_head
    - PAIR_VERIFY
    - TEST_CHECK
    - pair_append_control
    linkageType: ''
    returnType: void
    signature: void test_pair_append_control(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:157,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:160,1
    - Dst: pair_append_session_state
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:160,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:163,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:163,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:164,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:166,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:169,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:170,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:172,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: test_pair_append_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - pair_append_session_state
    - TEST_MSG
    - TEST_CASE
    - talloc_free
    - fr_pair_list_head
    - PAIR_VERIFY
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_append_session_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:178,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:180,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:181,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:181,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:183,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:184,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:186,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:189,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:190,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:190,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:192,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:193,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:195,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:199,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:201,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 202
    functionName: test_pair_update_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - pair_update_request
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_pair_update_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:207,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:209,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:210,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:210,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:212,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:213,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:215,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:218,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:219,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:219,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:221,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:222,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:224,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:226,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 227
    functionName: test_pair_update_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - pair_update_reply
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_pair_update_reply(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:232,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:234,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:235,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:235,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:237,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:238,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:240,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:244,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:244,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:246,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:247,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:249,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:251,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 252
    functionName: test_pair_update_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - pair_update_control
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_pair_update_control(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:257,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:259,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:260,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:260,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:262,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:263,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:265,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:269,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:269,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:271,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:272,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:274,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:276,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: test_pair_update_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - pair_update_session_state
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_pair_update_session_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:281,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:284,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:284,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:287,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:287,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:289,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:290,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:290,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:292,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 293
    functionName: test_pair_delete_request
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - TEST_CHECK_RET
    - request_fake_alloc
    - talloc_free
    - TEST_CASE
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:297,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:299,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:300,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:300,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:302,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:303,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:303,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:305,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:306,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:306,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:308,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: test_pair_delete_reply
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - talloc_free
    - TEST_CASE
    - pair_delete_reply
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_reply(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:313,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:315,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:316,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:316,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:318,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:319,1
    - Dst: pair_delete_control
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:319,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:321,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:322,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:322,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:324,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: test_pair_delete_control
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - pair_delete_control
    - request_fake_alloc
    - talloc_free
    - TEST_CASE
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_control(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:329,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:332,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:332,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:334,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:335,1
    - Dst: pair_delete_session_state
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:335,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:338,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:338,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:340,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pair_server_tests.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: test_pair_delete_session_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pair_server_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - request_fake_alloc
    - talloc_free
    - TEST_CASE
    - pair_delete_session_state
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_session_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:125,1
    - Dst: cf_section_write
      Src: /src/freeradius-server/src/lib/server/module.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: cmd_show_module_config
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - cf_section_write
    linkageType: ''
    returnType: int
    signature: int cmd_show_module_config(FILE *fp, UNUSED FILE *fp_err, void *ctx,
      UNUSED fr_cmd_info_t const *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:144,1
    - Dst: fr_command_strncmp
      Src: /src/freeradius-server/src/lib/server/module.c:149,1
    - Dst: strdup
      Src: /src/freeradius-server/src/lib/server/module.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - TALLOC_CTX *talloc_ctx
    - uctx
    - info
    - max_expansions
    - expansions
    argTypes:
    - UNUSED
    - UNUSED*
    - fr_cmd_info_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: module_name_tab_expand
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_command_strncmp
    - talloc_get_type_abort
    - strdup
    linkageType: ''
    returnType: int
    signature: "int module_name_tab_expand(UNUSED TALLOC_CTX *talloc_ctx, UNUSED void
      *uctx,\n\t\t\t\t  fr_cmd_info_t *info, int max_expansions, char const **expansions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:144,1
    - Dst: fr_command_strncmp
      Src: /src/freeradius-server/src/lib/server/module.c:149,1
    - Dst: strdup
      Src: /src/freeradius-server/src/lib/server/module.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: fr_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_command_strncmp
    - talloc_get_type_abort
    - strdup
    linkageType: ''
    returnType: void
    signature: void fr_heap_foreach(mlg_index, module_instance_t, instance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:161,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/module.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - fp_err
    - uctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: cmd_show_module_list
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_show_module_list(FILE *fp, UNUSED FILE *fp_err, UNUSED void
      *uctx, UNUSED fr_cmd_info_t const *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:161,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/module.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: fr_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_heap_foreach(mlg_index, module_instance_t, instance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/module.c:174,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/module.c:178,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/module.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: cmd_show_module_status
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_table_str_by_value
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_show_module_status(FILE *fp, UNUSED FILE *fp_err, void *ctx,
      UNUSED fr_cmd_info_t const *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module.c:188,1
    - Dst: module_instance_data_unprotect
      Src: /src/freeradius-server/src/lib/server/module.c:189,1
    - Dst: module_instance_data_protect
      Src: /src/freeradius-server/src/lib/server/module.c:191,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/module.c:195,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/module.c:197,1
    - Dst: module_instance_data_unprotect
      Src: /src/freeradius-server/src/lib/server/module.c:201,1
    - Dst: module_instance_data_protect
      Src: /src/freeradius-server/src/lib/server/module.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - UNUSED*
    - FILE*
    - void*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: cmd_set_module_status
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - module_instance_data_protect
    - fprintf
    - module_instance_data_unprotect
    - strcmp
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int cmd_set_module_status(UNUSED FILE *fp, FILE *fp_err, void *ctx,
      fr_cmd_info_t const *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/module.c:364,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/module.c:365,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:368,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module.c:370,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: _mlg_module_instance_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - CMP
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t _mlg_module_instance_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: _mlg_global_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _mlg_global_free(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:389,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: _mlg_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_heap_alloc
    - MEM
    linkageType: ''
    returnType: int
    signature: int _mlg_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once
      Src: /src/freeradius-server/src/lib/server/module.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module_list_t *ml
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 406
    functionName: mlg_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_once
    linkageType: ''
    returnType: int
    signature: int mlg_init(UNUSED module_list_t *ml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/server/module.c:417,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 423
    functionName: mlg_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_heap_insert
    - ERROR
    linkageType: ''
    returnType: int
    signature: int mlg_data_add(module_instance_t *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:427,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/server/module.c:429,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/server/module.c:431,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: mlg_data_del
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_heap_entry_inserted
    - fr_assert
    - fr_heap_extract
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mlg_data_del(module_instance_t *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:442,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/module.c:443,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/module.c:448,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tilp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 455
    functionName: _module_thread_inst_list_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - talloc_array_length
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _module_thread_inst_list_free(void *tilp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:474,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/module.c:474,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/module.c:474,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/server/module.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - TALLOC_CTX **ctx
    - ml
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: mlg_thread_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_atexit_thread_local
    - MEM
    - talloc_zero_array
    - fr_heap_num_elements
    linkageType: ''
    returnType: int
    signature: int mlg_thread_init(UNUSED TALLOC_CTX **ctx, UNUSED module_list_t const
      *ml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/module.c:490,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/module.c:494,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/server/module.c:494,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/module.c:495,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/module.c:497,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/module.c:499,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/module.c:499,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/module.c:499,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/module.c:501,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/module.c:501,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:509,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:511,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/module.c:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 516
    functionName: mlg_thread_data_get
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_get_type_abort
    - fr_heap_num_elements
    - fr_assert_msg
    - talloc_array_length
    - fr_heap_entry_inserted
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: module_thread_instance_t
    signature: module_thread_instance_t *mlg_thread_data_get(module_instance_t const
      *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/module.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ti
    argTypes:
    - module_thread_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: mlg_thread_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mlg_thread_data_add(module_thread_instance_t *ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/module.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ti
    argTypes:
    - module_thread_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: mlg_thread_data_del
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void mlg_thread_data_del(module_thread_instance_t *ti)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:558,1
    - Dst: module_thread_detach
      Src: /src/freeradius-server/src/lib/server/module.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: mltl_mlg_data_del
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - module_thread_detach
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mltl_mlg_data_del(module_instance_t *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/module.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: mltl_thread_data_get
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: module_thread_instance_t
    signature: module_thread_instance_t *mltl_thread_data_get(module_instance_t const
      *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ti
    argTypes:
    - module_thread_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: mltl_thread_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mltl_thread_data_add(module_thread_instance_t *ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ti
    argTypes:
    - module_thread_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: mltl_thread_data_del
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mltl_thread_data_del(module_thread_instance_t *ti)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:604,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:605,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/module.c:605,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:607,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:609,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:610,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:611,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:612,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:613,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 615
    functionName: module_instance_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: void module_instance_debug(module_instance_t const *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:625,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:626,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:627,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:628,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:629,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/module.c:630,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:636,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:638,1
    - Dst: module_instance_debug
      Src: /src/freeradius-server/src/lib/server/module.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ml
    argTypes:
    - module_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 641
    functionName: module_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - fr_rb_iter_init_inorder
    - FR_FAULT_LOG
    - module_instance_debug
    - fr_rb_iter_next_inorder
    linkageType: ''
    returnType: void
    signature: void module_list_debug(module_list_t const *ml)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/module.c:656,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:659,1
    - Dst: mprotect
      Src: /src/freeradius-server/src/lib/server/module.c:659,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module.c:660,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/module.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mi
    - pool
    argTypes:
    - module_instance_t*
    - module_data_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 665
    functionName: module_data_protect
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_syserror
    - fr_strerror_printf
    - mprotect
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int module_data_protect(module_instance_t *mi, module_data_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/module.c:680,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:683,1
    - Dst: mprotect
      Src: /src/freeradius-server/src/lib/server/module.c:683,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module.c:684,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/module.c:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mi
    - pool
    argTypes:
    - module_instance_t*
    - module_data_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 689
    functionName: module_data_unprotect
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_syserror
    - fr_strerror_printf
    - mprotect
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int module_data_unprotect(module_instance_t const *mi, module_data_pool_t
      const *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_data_protect
      Src: /src/freeradius-server/src/lib/server/module.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: module_instance_data_protect
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - module_data_protect
    linkageType: ''
    returnType: int
    signature: int module_instance_data_protect(module_instance_t *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_data_unprotect
      Src: /src/freeradius-server/src/lib/server/module.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: module_instance_data_unprotect
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - module_data_unprotect
    linkageType: ''
    returnType: int
    signature: int module_instance_data_unprotect(module_instance_t *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_root
      Src: /src/freeradius-server/src/lib/server/module.c:726,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/module.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 729
    functionName: module_instance_root_prefix_str
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - module_instance_root
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *module_instance_root_prefix_str(module_instance_t const *mi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module.c:740,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module.c:746,1
    - Dst: module_instance_name_valid
      Src: /src/freeradius-server/src/lib/server/module.c:748,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - name
    - conf
    argTypes:
    - char**
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 758
    functionName: module_instance_name_from_conf
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - cf_section_name2
    - module_instance_name_valid
    - cf_section_name1
    - cf_log_perr
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t module_instance_name_from_conf(char const **name, CONF_SECTION
      *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/module.c:769,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/module.c:773,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/module.c:774,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module.c:775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - mi
    - conf
    argTypes:
    - module_instance_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 782
    functionName: module_instance_conf_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 4
    functionsReached:
    - cf_section_parse
    - cf_data_add
    - cf_log_err
    - cf_section_rules_push
    linkageType: ''
    returnType: int
    signature: int module_instance_conf_parse(module_instance_t *mi, CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module.c:798,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module.c:799,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module.c:810,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module.c:813,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module.c:816,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module.c:817,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 818
    functionName: module_instance_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t module_instance_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 829
    functionName: module_instance_data_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t module_instance_data_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/module.c:849,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/module.c:849,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/module.c:850,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/module.c:850,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:853,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module.c:860,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:866,1
    - Dst: module_instance_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:874,1
    - Dst: module_instance_by_data
      Src: /src/freeradius-server/src/lib/server/module.c:874,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:875,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module.c:876,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:880,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/lib/server/module.c:880,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module.c:881,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 889
    functionName: module_submodule_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - unlikely
    - cf_parent
    - cf_section_find
    - cf_section_alloc
    - talloc_free
    - cf_pair_value
    - module_instance_by_data
    - talloc_get_type_abort
    - module_instance_conf_parse
    - cf_log_err
    - module_instance_alloc
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int module_submodule_parse(UNUSED TALLOC_CTX *ctx, void *out, void
      *parent,\n\t\t\t   CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/module.c:917,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/module.c:919,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ml
    - parent
    - asked_name
    argTypes:
    - module_list_t*
    - module_instance_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 925
    functionName: module_instance_by_name
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - UNCONST
    - talloc_get_type_abort
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *module_instance_by_name(module_list_t const *ml,
      module_instance_t const *parent, char const *asked_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/module.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - child
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 946
    functionName: module_instance_root
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *module_instance_root(module_instance_t const *child)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/module.c:960,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/module.c:962,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ml
    - data
    argTypes:
    - module_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 967
    functionName: module_instance_by_data
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - fr_rb_find
    - UNCONST
    - talloc_get_type_abort
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *module_instance_by_data(module_list_t const *ml,
      void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_by_data
      Src: /src/freeradius-server/src/lib/server/module.c:981,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/server/module.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ml
    - data
    argTypes:
    - module_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 986
    functionName: module_thread_by_data
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - module_instance_by_data
    - module_thread
    linkageType: ''
    returnType: module_thread_instance_t
    signature: module_thread_instance_t *module_thread_by_data(module_list_t const
      *ml, void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:997,1
    - Dst: module_list_t*::type::thread::data_del
      Src: /src/freeradius-server/src/lib/server/module.c:1000,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ti
    argTypes:
    - module_thread_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1002
    functionName: module_thread_detach
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_free
    - module_list_t*::type::thread::data_del
    linkageType: ''
    returnType: void
    signature: void module_thread_detach(module_thread_instance_t *ti)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1018,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1020,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1021,1
    - Dst: module_thread
      Src: /src/freeradius-server/src/lib/server/module.c:1022,1
    - Dst: module_thread_detach
      Src: /src/freeradius-server/src/lib/server/module.c:1024,1
    - Dst: module_list_t*::type::thread::free
      Src: /src/freeradius-server/src/lib/server/module.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ml
    argTypes:
    - module_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1031
    functionName: modules_thread_detach
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - fr_rb_iter_next_inorder
    - module_list_t*::type::thread::free
    - module_thread_detach
    - talloc_get_type_abort
    - module_thread
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: void
    signature: void modules_thread_detach(module_list_t *ml)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module.c:1052,1
    - Dst: module_instance_t*::exported::thread_detach
      Src: /src/freeradius-server/src/lib/server/module.c:1056,1
    - Dst: module_thread_instance_t*::mi::ml::type::thread::data_del
      Src: /src/freeradius-server/src/lib/server/module.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ti
    argTypes:
    - module_thread_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1066
    functionName: _module_thread_inst_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - module_instance_t*::exported::thread_detach
    - module_thread_instance_t*::mi::ml::type::thread::data_del
    linkageType: ''
    returnType: int
    signature: int _module_thread_inst_free(module_thread_instance_t *ti)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_skip_thread_instantiate
      Src: /src/freeradius-server/src/lib/server/module.c:1097,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1102,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1104,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/module.c:1104,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/module.c:1105,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1110,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/module.c:1110,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/server/module.c:1117,1
    - Dst: module_instance_root_prefix_str
      Src: /src/freeradius-server/src/lib/server/module.c:1118,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/module.c:1121,1
    - Dst: module_list_t*::type::thread::data_add
      Src: /src/freeradius-server/src/lib/server/module.c:1125,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1126,1
    - Dst: module_list_t*::type::thread::data_del
      Src: /src/freeradius-server/src/lib/server/module.c:1128,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1129,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/module.c:1136,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module.c:1138,1
    - Dst: module_instance_t*::exported::thread_instantiate
      Src: /src/freeradius-server/src/lib/server/module.c:1140,1
    - Dst: MODULE_THREAD_INST_CTX
      Src: /src/freeradius-server/src/lib/server/module.c:1140,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - ctx
    - mi
    - el
    argTypes:
    - TALLOC_CTX*
    - module_instance_t*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1146
    functionName: module_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - PERROR
    - DEBUG4
    - MODULE_THREAD_INST_CTX
    - talloc_set_name
    - talloc_set_destructor
    - module_list_t*::type::thread::data_del
    - talloc_free
    - talloc_get_type_abort
    - talloc_set_name_const
    - talloc_zero
    - module_instance_t*::exported::thread_instantiate
    - module_instance_skip_thread_instantiate
    - talloc_zero_array
    - fr_strerror_clear
    - module_list_t*::type::thread::data_add
    - MEM
    - module_instance_root_prefix_str
    linkageType: ''
    returnType: int
    signature: int module_thread_instantiate(TALLOC_CTX *ctx, module_instance_t *mi,
      fr_event_list_t *el)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: module_list_t*::type::thread::init
      Src: /src/freeradius-server/src/lib/server/module.c:1169,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1170,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1173,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1175,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1176,1
    - Dst: module_thread_instantiate
      Src: /src/freeradius-server/src/lib/server/module.c:1178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - ml
    - el
    argTypes:
    - TALLOC_CTX*
    - module_list_t*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1159
    functionDepth: 3
    functionLinenumber: 1159
    functionLinenumberEnd: 1185
    functionName: modules_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_rb_iter_next_inorder
    - module_list_t*::type::thread::init
    - talloc_get_type_abort
    - module_thread_instantiate
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: int
    signature: int modules_thread_instantiate(TALLOC_CTX *ctx, module_list_t const
      *ml, fr_event_list_t *el)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1200,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1202,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1203,1
    - Dst: module_list_t*::thread_data_get
      Src: /src/freeradius-server/src/lib/server/module.c:1208,1
    - Dst: module_instance_t*::exported::coord_attach
      Src: /src/freeradius-server/src/lib/server/module.c:1211,1
    - Dst: MODULE_THREAD_INST_CTX
      Src: /src/freeradius-server/src/lib/server/module.c:1211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ml
    - el
    argTypes:
    - module_list_t*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1215
    functionName: modules_coord_attach
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - MODULE_THREAD_INST_CTX
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - fr_rb_iter_init_inorder
    - module_instance_t*::exported::coord_attach
    - module_list_t*::thread_data_get
    linkageType: ''
    returnType: int
    signature: int modules_coord_attach(module_list_t const *ml, fr_event_list_t *el)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1226,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1243,1
    - Dst: module_data_protect
      Src: /src/freeradius-server/src/lib/server/module.c:1243,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:1244,1
    - Dst: module_instance_skip_instantiate
      Src: /src/freeradius-server/src/lib/server/module.c:1251,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/server/module.c:1254,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1255,1
    - Dst: cf_section_parse_pass2
      Src: /src/freeradius-server/src/lib/server/module.c:1264,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module.c:1271,1
    - Dst: module_instance_root_prefix_str
      Src: /src/freeradius-server/src/lib/server/module.c:1272,1
    - Dst: module_instance_t*::exported::instantiate
      Src: /src/freeradius-server/src/lib/server/module.c:1279,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/lib/server/module.c:1279,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module.c:1280,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1291,1
    - Dst: module_data_protect
      Src: /src/freeradius-server/src/lib/server/module.c:1291,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:1292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - instance
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1298
    functionName: module_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - PERROR
    - unlikely
    - cf_log_perr
    - module_instance_t*::exported::instantiate
    - cf_section_parse_pass2
    - talloc_get_type_abort
    - fr_command_register_hook
    - cf_log_debug
    - module_instance_root_prefix_str
    - MODULE_INST_CTX
    - cf_log_err
    - module_data_protect
    - module_instance_skip_instantiate
    linkageType: ''
    returnType: int
    signature: int module_instantiate(module_instance_t *instance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/module.c:1315,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1317,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1319,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1320,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/lib/server/module.c:1321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ml
    argTypes:
    - module_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1310
    functionDepth: 3
    functionLinenumber: 1310
    functionLinenumberEnd: 1325
    functionName: modules_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - module_instantiate
    - fr_rb_iter_init_inorder
    - DEBUG2
    linkageType: ''
    returnType: int
    signature: int modules_instantiate(module_list_t const *ml)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_skip_bootstrap
      Src: /src/freeradius-server/src/lib/server/module.c:1342,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module.c:1354,1
    - Dst: module_instance_root_prefix_str
      Src: /src/freeradius-server/src/lib/server/module.c:1355,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1373,1
    - Dst: module_data_protect
      Src: /src/freeradius-server/src/lib/server/module.c:1373,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:1374,1
    - Dst: module_instance_t*::exported::bootstrap
      Src: /src/freeradius-server/src/lib/server/module.c:1377,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/lib/server/module.c:1377,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module.c:1378,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1381,1
    - Dst: module_data_unprotect
      Src: /src/freeradius-server/src/lib/server/module.c:1381,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:1382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1389
    functionName: module_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cf_log_perr
    - MODULE_INST_CTX
    - module_instance_skip_bootstrap
    - cf_log_debug
    - module_data_protect
    - module_data_unprotect
    - module_instance_t*::exported::bootstrap
    - cf_log_err
    - module_instance_root_prefix_str
    linkageType: ''
    returnType: int
    signature: int module_bootstrap(module_instance_t *mi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/module.c:1406,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1408,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1410,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module.c:1411,1
    - Dst: module_bootstrap
      Src: /src/freeradius-server/src/lib/server/module.c:1412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ml
    argTypes:
    - module_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1401
    functionDepth: 3
    functionLinenumber: 1401
    functionLinenumberEnd: 1416
    functionName: modules_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - fr_rb_iter_init_inorder
    - DEBUG2
    - module_bootstrap
    linkageType: ''
    returnType: int
    signature: int modules_bootstrap(module_list_t const *ml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/server/module.c:1430,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/module.c:1437,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/module.c:1438,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/module.c:1440,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1442,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/server/module.c:1442,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/module.c:1442,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/module.c:1442,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/module.c:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - parent
    - inst_name
    argTypes:
    - TALLOC_CTX*
    - char**
    - module_instance_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1445
    functionName: module_instance_name
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - talloc_bstrndup
    - fr_sbuff_used
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_IN_STRCPY_RETURN
    - MEM
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t module_instance_name(TALLOC_CTX *ctx, char **out,\n\t\t\t\t
      \     module_instance_t const *parent, char const *inst_name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: module_detach_parent
      Src: /src/freeradius-server/src/lib/server/module.c:1466,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/module.c:1466,1
    - Dst: module_instance_t*::exported::detach
      Src: /src/freeradius-server/src/lib/server/module.c:1470,1
    - Dst: MODULE_DETACH_CTX
      Src: /src/freeradius-server/src/lib/server/module.c:1470,1
    - Dst: module_instance_t*::exported::unstrap
      Src: /src/freeradius-server/src/lib/server/module.c:1477,1
    - Dst: MODULE_DETACH_CTX
      Src: /src/freeradius-server/src/lib/server/module.c:1477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1481
    functionName: module_detach_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - module_instance_t*::exported::unstrap
    - module_instance_t*::exported::detach
    - UNCONST
    - module_detach_parent
    - MODULE_DETACH_CTX
    linkageType: ''
    returnType: void
    signature: void module_detach_parent(module_instance_t *mi)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/module.c:1492,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1498,1
    - Dst: module_data_unprotect
      Src: /src/freeradius-server/src/lib/server/module.c:1498,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:1499,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1502,1
    - Dst: module_data_unprotect
      Src: /src/freeradius-server/src/lib/server/module.c:1502,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module.c:1503,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/server/module.c:1515,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1515,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/module.c:1515,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/server/module.c:1519,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1519,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/module.c:1519,1
    - Dst: module_list_t*::type::data_del
      Src: /src/freeradius-server/src/lib/server/module.c:1521,1
    - Dst: pthread_mutex_trylock
      Src: /src/freeradius-server/src/lib/server/module.c:1537,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/module.c:1538,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/module.c:1538,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/module.c:1539,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/server/module.c:1541,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/server/module.c:1548,1
    - Dst: xlat_func_unregister_module
      Src: /src/freeradius-server/src/lib/server/module.c:1549,1
    - Dst: module_detach_parent
      Src: /src/freeradius-server/src/lib/server/module.c:1552,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/module.c:1562,1
    - Dst: dl_module_free
      Src: /src/freeradius-server/src/lib/server/module.c:1564,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1567
    functionName: _module_instance_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - dl_module_free
    - unlikely
    - cf_log_perr
    - fr_rb_delete
    - xlat_func_unregister_module
    - fr_cond_assert
    - fr_syserror
    - module_list_t*::type::data_del
    - pthread_mutex_unlock
    - pthread_mutex_trylock
    - module_detach_parent
    - fr_assert_msg
    - xlat_func_unregister
    - module_data_unprotect
    - fr_rb_node_inline_in_tree
    - pthread_mutex_destroy
    - DEBUG3
    - talloc_free_children
    linkageType: ''
    returnType: int
    signature: int _module_instance_free(module_instance_t *mi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:1577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - inst_name
    argTypes:
    - module_list_t*
    - module_instance_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1583
    functionName: module_instance_copy
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached:
    - module_instance_alloc
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *module_instance_copy(module_list_t *dst, module_instance_t
      const *src, char const *inst_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_page_aligned_pool
      Src: /src/freeradius-server/src/lib/server/module.c:1610,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1613,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/module.c:1613,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/server/module.c:1615,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/module.c:1617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - pool_out
    - out
    - mi
    - size
    - type
    argTypes:
    - TALLOC_CTX*
    - module_data_pool_t*
    - void**
    - module_instance_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1620
    functionName: module_instance_data_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_set_name
    - talloc_page_aligned_pool
    - talloc_set_name_const
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: void
    signature: "void module_instance_data_alloc(TALLOC_CTX *ctx, module_data_pool_t
      *pool_out, void **out,\n\t\t\t\tmodule_instance_t *mi, size_t size, char const
      *type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/module.c:1641,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module.c:1645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - inst_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1653
    functionName: module_instance_name_valid
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 2
    functionsReached:
    - fr_strerror_printf
    - strlen
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t module_instance_name_valid(char const *inst_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mi
    - uctx
    argTypes:
    - module_instance_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1663
    functionName: module_instance_uctx_set
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void module_instance_uctx_set(module_instance_t *mi, void *uctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1700,1
    - Dst: module_instance_name
      Src: /src/freeradius-server/src/lib/server/module.c:1709,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1710,1
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module.c:1717,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1724,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/module.c:1725,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/module.c:1728,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/server/module.c:1729,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1732,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/module.c:1733,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1737,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1745,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/module.c:1745,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/module.c:1746,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/module.c:1747,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1748,1
    - Dst: dl_module_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:1758,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1761,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1769,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module.c:1770,1
    - Dst: module_instance_data_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:1778,1
    - Dst: module_instance_data_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:1785,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/server/module.c:1795,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/module.c:1796,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1802,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/module.c:1802,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1803,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/module.c:1803,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module.c:1804,1
    - Dst: module_list_t*::type::data_add
      Src: /src/freeradius-server/src/lib/server/module.c:1804,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 6
    argNames:
    - ml
    - parent
    - type
    - mod_name
    - inst_name
    - init_state
    argTypes:
    - module_list_t*
    - module_instance_t*
    - dl_module_type_t
    - char*
    - char*
    - module_instance_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1807
    functionName: module_instance_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 4
    functionsReached:
    - fr_cond_assert
    - talloc_strdup
    - module_instance_by_name
    - MEM
    - pthread_mutex_init
    - unlikely
    - ERROR
    - cf_lineno
    - cf_filename
    - fr_table_str_by_value
    - talloc_zero_array
    - fr_rb_insert
    - module_instance_data_alloc
    - talloc_set_destructor
    - module_list_t*::type::data_add
    - fr_assert
    - module_instance_name
    - talloc_free
    - dl_module_alloc
    - talloc_set_name_const
    linkageType: ''
    returnType: module_instance_t
    signature: "module_instance_t *module_instance_alloc(module_list_t *ml,\n\t\t\t\t\t
      module_instance_t const *parent,\n\t\t\t\t\t dl_module_type_t type, char const
      *mod_name, char const *inst_name,\n\t\t\t\t\t module_instance_state_t init_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1825,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/lib/server/module.c:1826,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1827,1
    - Dst: module_list_t*::type::free
      Src: /src/freeradius-server/src/lib/server/module.c:1830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ml
    argTypes:
    - module_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1833
    functionName: _module_list_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_inorder
    - module_list_t*::type::free
    - fr_rb_iter_delete_inorder
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _module_list_free(module_list_t *ml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1842
    functionDepth: 0
    functionLinenumber: 1842
    functionLinenumberEnd: 1845
    functionName: module_instance_skip_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool module_instance_skip_bootstrap(module_instance_t *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1857
    functionName: module_instance_skip_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool module_instance_skip_instantiate(module_instance_t *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1869
    functionName: module_instance_skip_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool module_instance_skip_thread_instantiate(module_instance_t *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ml
    - mask
    argTypes:
    - module_list_t*
    - module_instance_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1876
    functionDepth: 0
    functionLinenumber: 1876
    functionLinenumberEnd: 1879
    functionName: module_list_mask_set
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void module_list_mask_set(module_list_t *ml, module_instance_state_t
      mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1906,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1907,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module.c:1908,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1910,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/module.c:1910,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1914,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/module.c:1914,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1915,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:1915,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module.c:1916,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/module.c:1916,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/module.c:1917,1
    - Dst: module_list_t*::type::init
      Src: /src/freeradius-server/src/lib/server/module.c:1919,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - type
    - name
    - write_protect
    argTypes:
    - TALLOC_CTX*
    - module_list_type_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1926
    functionName: module_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 3
    functionsReached:
    - talloc_set_destructor
    - module_list_t*::type::init
    - talloc_free
    - talloc_strdup
    - fr_rb_inline_alloc
    - fr_assert
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: module_list_t
    signature: "module_list_t *module_list_alloc(TALLOC_CTX *ctx, module_list_type_t
      const *type,\n\t\t\t\t char const *name, bool write_protect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dl_module_loader_init
      Src: /src/freeradius-server/src/lib/server/module.c:1930,1
    - Dst: global_lib_init
      Src: /src/freeradius-server/src/lib/server/module.c:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1928
    functionDepth: 2
    functionLinenumber: 1928
    functionLinenumberEnd: 1939
    functionName: _module_dl_loader_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - dl_module_loader_init
    - global_lib_init
    linkageType: ''
    returnType: int
    signature: int _module_dl_loader_init(void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module.c:1943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1946
    functionName: _module_dl_loader_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _module_dl_loader_free(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lib_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1959
    functionName: modules_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void modules_init(char const *lib_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _request
    - ','
    - _unique_ptr
    - ','
    - _unique_int
    - ','
    - _opaque
    - ','
    - _free_on_replace
    - ','
    - _free_on_parent
    - ','
    - _persist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: request_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_data_add(_request, _unique_ptr, _unique_int, _opaque, _free_on_replace,
      _free_on_parent, _persist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _request
    - ','
    - _unique_ptr
    - ','
    - _unique_int
    - ','
    - _type
    - ','
    - _opaque
    - ','
    - _free_on_replace
    - ','
    - _free_on_parent
    - ','
    - _persist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: request_data_talloc_add
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_data_talloc_add(_request, _unique_ptr, _unique_int, _type,
      _opaque, _free_on_replace, _free_on_parent, _persist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/users_file.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - PAIR_LIST_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: pairlist_list_init
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.h
    functionUses: 2
    functionsReached:
    - fr_dlist_talloc_init
    linkageType: ''
    returnType: void
    signature: void pairlist_list_init(PAIR_LIST_LIST *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _trunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 936
    functionName: TRUNK_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_VERIFY(_trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 937
    functionName: TRUNK_CONNECTION_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_CONNECTION_VERIFY(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 938
    functionName: TRUNK_REQUEST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_REQUEST_VERIFY(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _trunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 940
    functionName: TRUNK_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_VERIFY(_trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 941
    functionName: TRUNK_CONNECTION_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_CONNECTION_VERIFY(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 942
    functionName: TRUNK_REQUEST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_REQUEST_VERIFY(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 976
    functionName: TRUNK_NOTIFY_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_NOTIFY_FUNC(_name, _type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.h:980,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/trunk.h:984,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/trunk.h:997,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trunk.h:998,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk.h:999,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - trunk_connection_t*
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 1001
    functionName: _name
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.h
    functionUses: 128
    functionsReached:
    - trunk_connection_signal_reconnect
    - fr_event_fd_insert
    - talloc_get_type_abort
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: void
    signature: "void _name(trunk_connection_t *tconn, connection_t *conn, \\\n\t\t
      \ fr_event_list_t *el, trunk_connection_event_t notify_on, UNUSED void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/server/client.c:71,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/client.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: client_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t client_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/client.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: client_list_free
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void client_list_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - client
    argTypes:
    - fr_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: client_free
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void client_free(fr_client_t *client)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/client.c:110,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/client.c:114,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/client.c:114,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:117,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:119,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:123,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:125,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:129,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:131,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 143
    functionName: client_list_init
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_strdup
    - talloc_zero
    - cf_section_name1
    - fr_trie_alloc
    linkageType: ''
    returnType: fr_client_list_t
    signature: fr_client_list_t *client_list_init(CONF_SECTION *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/client.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - clients
    - ipaddr
    - proto
    argTypes:
    - fr_client_list_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 171
    functionName: clients_trie
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: fr_trie_t
    signature: "fr_trie_t *clients_trie(fr_client_list_t const *clients, fr_ipaddr_t
      const *ipaddr,\n\t\t\t       int proto)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/server/client.c:201,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/client.c:211,1
    - Dst: fr_inet_ntop_prefix
      Src: /src/freeradius-server/src/lib/server/client.c:214,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/client.c:215,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/client.c:227,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/client.c:231,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/client.c:231,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/client.c:233,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/client.c:241,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/client.c:248,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/client.c:248,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/client.c:250,1
    - Dst: client_list_init
      Src: /src/freeradius-server/src/lib/server/client.c:250,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/client.c:251,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/client.c:252,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:253,1
    - Dst: client_list_init
      Src: /src/freeradius-server/src/lib/server/client.c:264,1
    - Dst: clients_trie
      Src: /src/freeradius-server/src/lib/server/client.c:274,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/server/client.c:279,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:284,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/client.c:291,1
    - Dst: namecmp
      Src: /src/freeradius-server/src/lib/server/client.c:298,1
    - Dst: namecmp
      Src: /src/freeradius-server/src/lib/server/client.c:298,1
    - Dst: namecmp
      Src: /src/freeradius-server/src/lib/server/client.c:299,1
    - Dst: namecmp
      Src: /src/freeradius-server/src/lib/server/client.c:299,1
    - Dst: namecmp
      Src: /src/freeradius-server/src/lib/server/client.c:300,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/client.c:302,1
    - Dst: client_free
      Src: /src/freeradius-server/src/lib/server/client.c:303,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/client.c:307,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/server/client.c:316,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/client.c:320,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/client.c:328,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 2
    argNames:
    - clients
    - client
    argTypes:
    - fr_client_list_t*
    - fr_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 331
    functionName: client_add
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 1
    functionsReached:
    - fr_inet_ntop_prefix
    - clients_trie
    - cf_section_find
    - WARN
    - fr_rb_inline_talloc_alloc
    - cf_data_find
    - client_list_init
    - cf_data_add
    - MEM
    - fr_trie_match_by_key
    - ERROR
    - namecmp
    - fr_rb_insert
    - DEBUG3
    - fr_trie_insert_by_key
    - fr_ipaddr_is_inaddr_any
    - client_free
    - talloc_steal
    - fr_rb_find
    - fr_assert
    - cf_data_value
    - talloc_free
    - cf_root
    linkageType: ''
    returnType: bool
    signature: bool client_add(fr_client_list_t *clients, fr_client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: namecmp
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: namecmp(a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/client.c:344,1
    - Dst: clients_trie
      Src: /src/freeradius-server/src/lib/server/client.c:347,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/server/client.c:352,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/client.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - clients
    - client
    argTypes:
    - fr_client_list_t*
    - fr_client_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 359
    functionName: client_delete
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - fr_trie_remove_by_key
    - fr_assert
    - clients_trie
    - fr_rb_delete
    linkageType: ''
    returnType: void
    signature: void client_delete(fr_client_list_t *clients, fr_client_t *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fr_client_list_t *clients
    - number
    argTypes:
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: client_findbynumber
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_findbynumber(UNUSED const fr_client_list_t *clients,
      UNUSED int number)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clients_trie
      Src: /src/freeradius-server/src/lib/server/client.c:384,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/server/client.c:386,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/server/client.c:402,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/client.c:403,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - clients
    - ipaddr
    - proto
    argTypes:
    - fr_client_list_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 411
    functionName: client_find
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 5
    functionsReached:
    - fr_trie_lookup_by_key
    - fr_rb_find
    - clients_trie
    - fr_ipaddr_mask
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_find(fr_client_list_t const *clients, fr_ipaddr_t
      const *ipaddr, int proto)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/client.c:515,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/client.c:515,1
    - Dst: client_list_init
      Src: /src/freeradius-server/src/lib/server/client.c:521,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/client.c:529,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:531,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/client.c:531,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/client.c:537,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/client.c:545,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/client.c:547,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:550,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:551,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:555,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:558,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:561,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:564,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:567,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:568,1
    - Dst: client_afrom_cs
      Src: /src/freeradius-server/src/lib/server/client.c:583,1
    - Dst: client_free
      Src: /src/freeradius-server/src/lib/server/client.c:586,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:587,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:602,1
    - Dst: client_add
      Src: /src/freeradius-server/src/lib/server/client.c:607,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:608,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/client.c:608,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/server/client.c:612,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/client.c:620,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:621,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/client.c:621,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:622,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 3
    argNames:
    - section
    - proto
    - tls_required
    argTypes:
    - CONF_SECTION*
    - int
    - TLS_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 634
    functionName: client_list_parse_section
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - client_add
    - talloc_free
    - client_free
    - cf_pair_value
    - cf_data_find
    - cf_item_mark_parsed
    - cf_log_err
    - client_list_init
    - cf_section_name2
    - cf_data_add
    - strcmp
    - cf_pair_find
    - cf_data_value
    - cf_root
    - client_afrom_cs
    - cf_section_name1
    linkageType: ''
    returnType: fr_client_list_t
    signature: fr_client_list_t *client_list_parse_section(CONF_SECTION *section,
      int proto, TLS_UNUSED bool tls_required)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/client.c:658,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/client.c:660,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/client.c:669,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/client.c:672,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/client.c:676,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/client.c:676,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/client.c:676,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:678,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/client.c:678,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/client.c:678,1
    - Dst: client_map_section
      Src: /src/freeradius-server/src/lib/server/client.c:682,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/client.c:686,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/client.c:687,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/server/client.c:695,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:696,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/client.c:696,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/client.c:704,1
    - Dst: cf_pair_replace
      Src: /src/freeradius-server/src/lib/server/client.c:706,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:707,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:714,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:716,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:717,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:720,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/client.c:721,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/client.c:721,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - out
    - map
    - func
    - data
    argTypes:
    - CONF_SECTION*
    - CONF_SECTION*
    - client_value_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 725
    functionName: client_map_section
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_section_find
    - func
    - cf_log_err
    - cf_item_to_section
    - cf_pair_to_item
    - cf_pair_alloc
    - cf_item_next
    - cf_section_name2
    - client_map_section
    - cf_item_add
    - cf_section_name1
    - cf_pair_attr
    - cf_item_is_section
    - cf_section_alloc
    - cf_pair_find
    - cf_pair_replace
    - talloc_free
    - cf_pair_value
    linkageType: ''
    returnType: int
    signature: int client_map_section(CONF_SECTION *out, CONF_SECTION const *map,
      client_value_cb_t func, void *data)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/client.c:742,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:744,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/client.c:752,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/client.c:755,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/client.c:757,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/client.c:760,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/client.c:765,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/client.c:766,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/client.c:768,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:769,1
    - Dst: client_free
      Src: /src/freeradius-server/src/lib/server/client.c:771,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/client.c:780,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/client.c:781,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/client.c:784,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/client.c:792,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/client.c:794,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/client.c:794,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/client.c:795,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/server/client.c:796,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/client.c:797,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:799,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/client.c:803,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:814,1
    - Dst: virtual_server_find
      Src: /src/freeradius-server/src/lib/server/client.c:818,1
    - Dst: virtual_server_cs
      Src: /src/freeradius-server/src/lib/server/client.c:821,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:823,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/client.c:828,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/client.c:837,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/client.c:837,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/client.c:837,1
    - Dst: fr_inet_ntoh
      Src: /src/freeradius-server/src/lib/server/client.c:848,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/client.c:849,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/client.c:854,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:859,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:866,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:869,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:873,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:879,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:883,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/server/client.c:896,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/client.c:897,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/server/client.c:903,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/client.c:904,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/client.c:909,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/client.c:921,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/client.c:922,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/lib/server/client.c:922,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/client.c:923,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/client.c:923,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/client.c:924,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:935,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/client.c:936,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/client.c:937,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/client.c:940,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/client.c:946,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/server/client.c:946,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/client.c:946,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/client.c:947,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/client.c:948,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/server/client.c:948,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/client.c:948,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/client.c:949,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/client.c:950,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/server/client.c:950,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/server/client.c:951,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/server/client.c:954,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 153
    argCount: 4
    argNames:
    - ctx
    - cs
    - server_cs
    - extra
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - CONF_SECTION*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 956
    functionName: client_afrom_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 2
    functionsReached:
    - virtual_server_find
    - talloc_array
    - talloc_strdup
    - cf_section_rules_push
    - talloc_const_free
    - FR_DBUFF_TMP
    - cf_pair_operator
    - MEM
    - cf_log_err
    - fr_inet_ntoh
    - cf_section_parse
    - cf_section_name2
    - virtual_server_cs
    - fr_time_delta_ispos
    - talloc_zero_array
    - FR_TIME_DELTA_BOUND_CHECK
    - memset
    - fr_base16_decode
    - fr_inet_pton4
    - client_free
    - FR_SBUFF_IN
    - fr_time_delta_lt
    - fr_time_delta_from_usec
    - fr_assert
    - talloc_array_length
    - strcmp
    - cf_pair_find
    - fr_time_delta_from_sec
    - fr_time_delta_wrap
    - cf_log_perr
    - cf_pair_value
    - fr_inet_pton6
    - talloc_set_name_const
    - talloc_zero
    - cf_log_warn
    - cf_item_mark_parsed
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_afrom_cs(TALLOC_CTX *ctx, CONF_SECTION *cs, CONF_SECTION
      *server_cs, size_t extra)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/server/client.c:975,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/client.c:977,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/server/client.c:977,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/client.c:979,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/client.c:982,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/server/client.c:982,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/server/client.c:982,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/client.c:983,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:985,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/client.c:985,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/client.c:987,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/server/client.c:988,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/server/client.c:990,1
    - Dst: fr_dict_attr_is_top_level
      Src: /src/freeradius-server/src/lib/server/client.c:996,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/client.c:1002,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/client.c:1003,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/lib/server/client.c:1003,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/client.c:1004,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:1006,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/client.c:1009,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/client.c:1057,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/server/client.c:1058,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/client.c:1059,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:1064,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/lib/server/client.c:1066,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/client.c:1070,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/client.c:1070,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/client.c:1070,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/server/client.c:1073,1
    - Dst: client_afrom_cs
      Src: /src/freeradius-server/src/lib/server/client.c:1079,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/lib/server/client.c:1079,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 2
    argNames:
    - ctx
    - request
    argTypes:
    - TALLOC_CTX*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1083
    functionName: client_afrom_request
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - unlang_call_current
    - fr_sbuff_current
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - unlikely
    - fr_sbuff_set_to_start
    - cf_pair_alloc
    - fr_pair_list_foreach
    - client_afrom_cs
    - fr_sbuff_in_sprintf
    - fr_dict_attr_is_top_level
    - cf_pair_attr
    - cf_section_alloc
    - RDEBUG2
    - fr_pair_print_value_quoted
    - fr_box_ipaddr
    - RERROR
    - fr_value_box_print
    - talloc_free
    - cf_pair_value
    - RINDENT
    - REXDENT
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_afrom_request(TALLOC_CTX *ctx, request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/client.c:1105,1
    - Dst: cf_file_read
      Src: /src/freeradius-server/src/lib/server/client.c:1108,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/lib/server/client.c:1108,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:1110,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/client.c:1114,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/client.c:1116,1
    - Dst: client_afrom_cs
      Src: /src/freeradius-server/src/lib/server/client.c:1120,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/client.c:1128,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/client.c:1129,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/client.c:1131,1
    - Dst: fr_inet_ntoh
      Src: /src/freeradius-server/src/lib/server/client.c:1143,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/client.c:1144,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/client.c:1145,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/client.c:1146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - filename
    - server_cs
    - check_dns
    argTypes:
    - char*
    - CONF_SECTION*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1096
    functionDepth: 3
    functionLinenumber: 1096
    functionLinenumberEnd: 1151
    functionName: client_read
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 1
    functionsReached:
    - fr_inet_ntoh
    - ERROR
    - cf_section_find
    - cf_section_alloc
    - cf_section_pass2
    - talloc_free
    - cf_file_read
    - talloc_steal
    - strrchr
    - strcmp
    - client_afrom_cs
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_read(char const *filename, CONF_SECTION *server_cs,
      bool check_dns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: client_from_request
    functionSourceFile: /src/freeradius-server/src/lib/server/client.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *client_from_request(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:254,1
    - Dst: fr_vlog
      Src: /src/freeradius-server/src/lib/server/log.c:255,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - log
    - type
    - file
    - line
    - fmt
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: log_always
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - fr_vlog
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void log_always(fr_log_t const *log, fr_log_type_t type,\n\t\tchar
      const *file, int line,\n\t\tchar const *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lvl
    - request
    argTypes:
    - fr_log_lvl_t
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: log_rdebug_enabled
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool log_rdebug_enabled(fr_log_lvl_t lvl, request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: _fr_vlog_request_pool_free
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_vlog_request_pool_free(void *arg)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: log_rdebug_enabled
      Src: /src/freeradius-server/src/lib/server/log.c:317,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/server/log.c:325,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:327,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/server/log.c:330,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/server/log.c:349,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/lib/server/log.c:367,1
    - Dst: funopen
      Src: /src/freeradius-server/src/lib/server/log.c:369,1
    - Dst: xlat_aeval
      Src: /src/freeradius-server/src/lib/server/log.c:398,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/log.c:409,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/server/log.c:412,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/log.c:413,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/log.c:413,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:414,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/server/log.c:420,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:421,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/log.c:432,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/log.c:434,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/log.c:456,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/log.c:468,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/log.c:470,1
    - Dst: fr_vasprintf_secure
      Src: /src/freeradius-server/src/lib/server/log.c:472,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:474,1
    - Dst: time
      Src: /src/freeradius-server/src/lib/server/log.c:483,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/log.c:486,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/lib/server/log.c:492,1
    - Dst: ASCTIME_R
      Src: /src/freeradius-server/src/lib/server/log.c:493,1
    - Dst: CTIME_R
      Src: /src/freeradius-server/src/lib/server/log.c:497,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/log.c:503,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/log.c:506,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/log.c:518,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/log.c:522,1
    - Dst: log_always
      Src: /src/freeradius-server/src/lib/server/log.c:543,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/log.c:556,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 8
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - fmt
    - ap
    - uctx
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - char*
    - int
    - char*
    - va_list
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 293
    functionDepth: 10
    functionLinenumber: 293
    functionLinenumberEnd: 557
    functionName: vlog_request
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - strrchr
    - time
    - CTIME_R
    - fopen
    - ERROR
    - fr_atexit_thread_local
    - fr_vasprintf
    - xlat_aeval
    - va_copy
    - fr_table_str_by_value
    - log_always
    - fopencookie
    - va_end
    - fr_syserror
    - gmtime_r
    - fr_vasprintf_secure
    - fr_perror
    - log_rdebug_enabled
    - talloc_pool
    - fr_mkdir
    - talloc_typed_asprintf
    - fclose
    - talloc_free
    - fprintf
    - funopen
    - ASCTIME_R
    - talloc_free_children
    linkageType: ''
    returnType: void
    signature: "void vlog_request(fr_log_type_t type, fr_log_lvl_t lvl, request_t
      *request,\n\t\t  char const *file, int line,\n\t\t  char const *fmt, va_list
      ap, void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:573,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/log.c:575,1
    - Dst: pair_prepend_request
      Src: /src/freeradius-server/src/lib/server/log.c:575,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/log.c:586,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/log.c:587,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:588,1
    - Dst: fr_pair_value_aprintf
      Src: /src/freeradius-server/src/lib/server/log.c:591,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:592,1
    - Dst: fr_pair_value_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/log.c:594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - request
    - fmt
    - ap
    argTypes:
    - request_t*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 596
    functionName: vlog_module_failure_msg
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - va_end
    - talloc_free
    - fr_pair_value_strdup_shallow
    - fr_vasprintf
    - fr_pair_value_aprintf
    - va_copy
    - fr_assert
    - pair_prepend_request
    - MEM
    linkageType: ''
    returnType: void
    signature: void vlog_module_failure_msg(request_t *request, char const *fmt, va_list
      ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:618,1
    - Dst: log_dst_t*::func
      Src: /src/freeradius-server/src/lib/server/log.c:622,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 6
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - fmt
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 625
    functionName: log_request
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 1
    functionsReached:
    - va_end
    - log_dst_t*::func
    - va_start
    linkageType: ''
    returnType: void
    signature: "void log_request(fr_log_type_t type, fr_log_lvl_t lvl, request_t *request,\n\t\t
      char const *file, int line, char const *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:653,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/log.c:656,1
    - Dst: log_dst_t*::func
      Src: /src/freeradius-server/src/lib/server/log.c:658,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:660,1
    - Dst: vlog_module_failure_msg
      Src: /src/freeradius-server/src/lib/server/log.c:664,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - fmt
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 668
    functionName: log_request_error
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - va_end
    - log_dst_t*::func
    - va_start
    - va_copy
    - vlog_module_failure_msg
    linkageType: ''
    returnType: void
    signature: "void log_request_error(fr_log_type_t type, fr_log_lvl_t lvl, request_t
      *request,\n\t\t       char const *file, int line, char const *fmt, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/server/log.c:693,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:700,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/log.c:703,1
    - Dst: log_dst_t*::func
      Src: /src/freeradius-server/src/lib/server/log.c:705,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:707,1
    - Dst: vlog_module_failure_msg
      Src: /src/freeradius-server/src/lib/server/log.c:710,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:712,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:724,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/log.c:725,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:726,1
    - Dst: log_request_error
      Src: /src/freeradius-server/src/lib/server/log.c:730,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:731,1
    - Dst: log_request_error
      Src: /src/freeradius-server/src/lib/server/log.c:733,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/server/log.c:739,1
    - Dst: log_request_error
      Src: /src/freeradius-server/src/lib/server/log.c:739,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 6
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - fmt
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 740
    functionName: log_request_perror
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 3
    functionsReached:
    - va_end
    - log_dst_t*::func
    - va_start
    - talloc_free
    - fr_vasprintf
    - fr_strerror_pop
    - va_copy
    - vlog_module_failure_msg
    - log_request_error
    linkageType: ''
    returnType: void
    signature: "void log_request_perror(fr_log_type_t type, fr_log_lvl_t lvl, request_t
      *request,\n\t\t\tchar const *file, int line, char const *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: _fr_log_request_oid_buff_free
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_log_request_oid_buff_free(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/log.c:759,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/log.c:760,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:762,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/log.c:765,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:767,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:768,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/server/log.c:772,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/server/log.c:774,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/log.c:776,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/log.c:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 780
    functionName: log_request_oid_buff
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_sbuff_start
    - talloc_free
    - fr_atexit_thread_local
    - fr_sbuff_init_talloc
    - talloc
    - fr_perror
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_sbuff_t
    signature: fr_sbuff_t *log_request_oid_buff(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_rdebug_enabled
      Src: /src/freeradius-server/src/lib/server/log.c:797,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/log.c:799,1
    - Dst: log_request_oid_buff
      Src: /src/freeradius-server/src/lib/server/log.c:801,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/server/log.c:803,1
    - Dst: RDEBUGX
      Src: /src/freeradius-server/src/lib/server/log.c:810,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/log.c:810,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/server/log.c:811,1
    - Dst: RDEBUGX
      Src: /src/freeradius-server/src/lib/server/log.c:812,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:816,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/log.c:816,1
    - Dst: RDEBUGX
      Src: /src/freeradius-server/src/lib/server/log.c:818,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/log.c:818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - lvl
    - request
    - parent
    - vp
    - prefix
    argTypes:
    - fr_log_lvl_t
    - request_t*
    - fr_pair_t*
    - fr_pair_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 821
    functionName: log_request_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - fr_type_is_leaf
    - log_request_pair_list
    - log_request_oid_buff
    - log_rdebug_enabled
    - PAIR_VERIFY
    - fr_assert
    - RDEBUGX
    - fr_pair_print_name
    linkageType: ''
    returnType: void
    signature: "void log_request_pair(fr_log_lvl_t lvl, request_t *request,\n\t\t
      \     fr_pair_t const *parent, fr_pair_t const *vp, char const *prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/log.c:834,1
    - Dst: log_rdebug_enabled
      Src: /src/freeradius-server/src/lib/server/log.c:836,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/server/log.c:838,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/log.c:840,1
    - Dst: log_request_pair
      Src: /src/freeradius-server/src/lib/server/log.c:842,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/server/log.c:844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - lvl
    - request
    - parent
    - vps
    - prefix
    argTypes:
    - fr_log_lvl_t
    - request_t*
    - fr_pair_t*
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 845
    functionName: log_request_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 17
    functionsReached:
    - fr_pair_list_empty
    - log_request_pair
    - RINDENT
    - log_rdebug_enabled
    - PAIR_VERIFY
    - REXDENT
    linkageType: ''
    returnType: void
    signature: "void log_request_pair_list(fr_log_lvl_t lvl, request_t *request,\n\t\t\t
      \  fr_pair_t const *parent, fr_pair_list_t const *vps, char const *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/log.c:840,1
    - Dst: log_request_pair
      Src: /src/freeradius-server/src/lib/server/log.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 843
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 5
    functionsReached:
    - log_request_pair
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(vps, vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/log.c:858,1
    - Dst: log_rdebug_enabled
      Src: /src/freeradius-server/src/lib/server/log.c:860,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/server/log.c:862,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/log.c:864,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/server/log.c:866,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/log.c:866,1
    - Dst: log_request_pair
      Src: /src/freeradius-server/src/lib/server/log.c:868,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/server/log.c:870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - lvl
    - request
    - parent
    - vps
    - prefix
    argTypes:
    - fr_log_lvl_t
    - request_t*
    - fr_pair_t*
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 871
    functionName: log_request_proto_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 3
    functionsReached:
    - fr_pair_list_empty
    - fr_dict_attr_common_parent
    - log_request_pair
    - RINDENT
    - log_rdebug_enabled
    - PAIR_VERIFY
    - REXDENT
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: "void log_request_proto_pair_list(fr_log_lvl_t lvl, request_t *request,\n\t\t\t\t
      fr_pair_t const *parent, fr_pair_list_t const *vps, char const *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/log.c:864,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/server/log.c:866,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/log.c:866,1
    - Dst: log_request_pair
      Src: /src/freeradius-server/src/lib/server/log.c:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 869
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 5
    functionsReached:
    - fr_dict_attr_common_parent
    - log_request_pair
    - PAIR_VERIFY
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(vps, vp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/log.c:898,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:925,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/log.c:926,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:927,1
    - Dst: log_request
      Src: /src/freeradius-server/src/lib/server/log.c:929,1
    - Dst: log_request
      Src: /src/freeradius-server/src/lib/server/log.c:930,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 9
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - str
    - str_len
    - marker_idx
    - marker_fmt
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - char*
    - int
    - char*
    - size_t
    - ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 934
    functionName: log_request_marker
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - log_request
    - va_end
    - va_start
    - talloc_free
    - fr_vasprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void log_request_marker(fr_log_type_t type, fr_log_lvl_t lvl, request_t
      *request,\n\t\t\tchar const *file, int line,\n\t\t\tchar const *str, size_t
      str_len,\n\t\t\tssize_t marker_idx, char const *marker_fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/log.c:948,1
    - Dst: log_request
      Src: /src/freeradius-server/src/lib/server/log.c:949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 7
    argNames:
    - type
    - lvl
    - request
    - file
    - line
    - data
    - data_len
    argTypes:
    - fr_log_type_t
    - fr_log_lvl_t
    - request_t*
    - char*
    - int
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 951
    functionName: log_request_hex
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - log_request
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void log_request_hex(fr_log_type_t type, fr_log_lvl_t lvl, request_t
      *request,\n\t\t     char const *file, int line,\n\t\t     uint8_t const *data,
      size_t data_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/server/log.c:972,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/log.c:972,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/log.c:972,1
    - Dst: RDEBUG_ENABLEDX
      Src: /src/freeradius-server/src/lib/server/log.c:974,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/log.c:975,1
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/server/log.c:979,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/log.c:980,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/log.c:981,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/log.c:984,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/log.c:990,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/log.c:990,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/server/log.c:990,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/log.c:1007,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/server/log.c:1009,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/server/log.c:1010,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/server/log.c:1010,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/log.c:1015,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/server/log.c:1016,1
    - Dst: log_request
      Src: /src/freeradius-server/src/lib/server/log.c:1020,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/server/log.c:1025,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/log.c:1025,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/server/log.c:1026,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/log.c:1028,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/log.c:1029,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/server/log.c:1040,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/log.c:1040,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 1042
    functionName: log_request_fd_event
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - log_request
    - RDEBUG_ENABLEDX
    - fr_sbuff_current
    - fr_sbuff_shift
    - read
    - fr_sbuff_adv_until
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - fr_sbuff_ahead
    - memset
    - FR_SBUFF_TERMS
    - L
    - fr_sbuff_marker
    - fr_box_strvalue_len
    - fr_sbuff_advance
    - fr_sbuff_is_terminal
    - fr_sbuff_used
    - fr_sbuff_init_out
    - fr_sbuff_set
    linkageType: ''
    returnType: void
    signature: void log_request_fd_event(UNUSED fr_event_list_t *el, int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/log.c:1051,1
    - Dst: fr_vlog
      Src: /src/freeradius-server/src/lib/server/log.c:1052,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/log.c:1053,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/log.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - log
    - file
    - line
    - fmt
    argTypes:
    - fr_log_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1056
    functionName: log_fatal
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - fr_vlog
    - fr_exit_now
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void log_fatal(fr_log_t const *log, char const *file, int line, char
      const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/log.c:1065,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/log.c:1065,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/log.c:1070,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1074,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/log.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - name
    - log
    - cs
    argTypes:
    - char*
    - fr_log_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1077
    functionName: log_register_dst
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_zero
    - MEM
    - fr_rb_insert
    linkageType: ''
    returnType: void
    signature: void log_register_dst(char const *name, fr_log_t *log, CONF_SECTION
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/log.c:1086,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/log.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1091
    functionName: log_dst_by_name
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 2
    functionsReached:
    - fr_rb_find
    - memset
    linkageType: ''
    returnType: fr_log_t
    signature: fr_log_t *log_dst_by_name(char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1095,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/log.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - log
    argTypes:
    - fr_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1099
    functionName: _log_free
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fclose
    linkageType: ''
    returnType: int
    signature: int _log_free(fr_log_t *log)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/log.c:1147,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/log.c:1150,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/log.c:1154,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/log.c:1158,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/log.c:1158,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/log.c:1160,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/log.c:1162,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/log.c:1166,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/log.c:1168,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/log.c:1171,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/log.c:1172,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/log.c:1178,1
    - Dst: fr_log_init_syslog
      Src: /src/freeradius-server/src/lib/server/log.c:1181,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/log.c:1186,1
    - Dst: fr_log_init_std
      Src: /src/freeradius-server/src/lib/server/log.c:1189,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/log.c:1193,1
    - Dst: fr_log_init_std
      Src: /src/freeradius-server/src/lib/server/log.c:1196,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/log.c:1200,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/log.c:1204,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/log.c:1208,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/log.c:1212,1
    - Dst: fr_log_init_file
      Src: /src/freeradius-server/src/lib/server/log.c:1217,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/log.c:1219,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/log.c:1226,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1229,1
    - Dst: log_register_dst
      Src: /src/freeradius-server/src/lib/server/log.c:1239,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1242
    functionName: log_parse_section
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - fr_log_init_std
    - fr_log_init_file
    - talloc_set_destructor
    - talloc_free
    - cf_section_parse
    - fr_log_init_syslog
    - fr_strerror_printf
    - log_register_dst
    - cf_section_rules_push
    - cf_section_name2
    - fr_rb_find
    - talloc_zero
    - talloc_const_free
    - fr_assert
    - fr_table_value_by_str
    - fr_strerror_const
    - MEM
    linkageType: ''
    returnType: int
    signature: int log_parse_section(CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/log.c:1249,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/log.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - two
    - one
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1250
    functionName: _log_track_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _log_track_name_cmp(void const *two, void const *one)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1257,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1258,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1260,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/log.c:1261,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/log.c:1263,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/log.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - two
    - one
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1264
    functionName: _log_track_filename_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _log_track_filename_cmp(void const *two, void const *one)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_init_legacy
      Src: /src/freeradius-server/src/lib/server/log.c:1280,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/log.c:1283,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:1284,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/log.c:1288,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:1289,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/log.c:1293,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:1296,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/log.c:1300,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/log.c:1303,1
    - Dst: log_register_dst
      Src: /src/freeradius-server/src/lib/server/log.c:1307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - log
    - daemonize
    argTypes:
    - fr_log_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1310
    functionName: log_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_autoload
    - log_register_dst
    - fr_perror
    - fr_rb_inline_alloc
    - fr_log_init_legacy
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int log_global_init(fr_log_t *log, bool daemonize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/log.c:1314,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/log.c:1315,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/log.c:1316,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/log.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1318
    functionName: log_global_free
    functionSourceFile: /src/freeradius-server/src/lib/server/log.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void log_global_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: MAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/map.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: MAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/map.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_VERIFY(_x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:43,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:46,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:47,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:53,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:55,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 2
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - request_global_init
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_local_alloc_external
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:67,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:69,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:70,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:72,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: request_fake_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 12
    functionsReached:
    - TEST_ASSERT
    - request_local_alloc_external
    - fr_packet_alloc
    linkageType: ''
    returnType: request_t
    signature: request_t *request_fake_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: test_rules
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_rules()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:98,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:99,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:102,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:103,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:103,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: test_parse_attr_simple
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_attr_tail_da
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:113,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:114,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:117,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:118,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:119,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:119,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: test_parse_attr_index
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_attr_tail_da
    - tmpl_attr_tail_num
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:129,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:129,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:130,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:133,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:134,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:134,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: test_parse_attr_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_attr_tail_num
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:144,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:144,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:145,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:146,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:148,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:148,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:149,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:149,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: test_parse_attr_count
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_attr_tail_num
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:159,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:160,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:161,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:163,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:163,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:164,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:164,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: test_parse_attr_last
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_attr_tail_num
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:174,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:175,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:176,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:179,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:180,1
    - Dst: tmpl_attr_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:180,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:181,1
    - Dst: tmpl_attr_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:182,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:182,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: test_parse_attr_nested
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - TEST_MSG
    - talloc_free
    - tmpl_attr_tail_da
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    - tmpl_attr_num_elements
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:199,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:200,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:201,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:203,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: test_parse_attr_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - tmpl_is_attr_unresolved
    - tmpl_afrom_attr_str
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_missing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:213,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:213,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:214,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:215,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: test_parse_attr_invalid
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - TEST_MSG
    - tmpl_afrom_attr_str
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:232,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:233,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:234,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 236
    functionName: test_parse_attr_emptystring
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - tmpl_afrom_attr_str
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_emptystring(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:248,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:248,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:249,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:250,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:251,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:253,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:253,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:254,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:254,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: test_parse_bareword_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_attr_tail_da
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_bareword_attr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:263,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:263,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:264,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:265,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:273,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:273,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 275
    functionName: test_parse_single_quoted
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - tmpl_is_data_unresolved
    - talloc_free
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_single_quoted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:282,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:282,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:284,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:285,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:292,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:292,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:292,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: test_parse_double_quoted_literal
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - tmpl_is_data_unresolved
    - talloc_free
    - FR_SBUFF_IN_STR
    - tmpl_is_data
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_double_quoted_literal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:308,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:308,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:310,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:311,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:317,1
    - Dst: tmpl_is_xlat_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:317,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 319
    functionName: test_parse_double_quoted_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - tmpl_is_xlat_unresolved
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_parse_double_quoted_xlat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:331,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:332,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:334,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:335,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:336,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:338,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:338,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:339,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:339,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:340,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:340,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:340,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 343
    functionName: test_from_value_box_string
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - talloc_free
    - tmpl_afrom_value_box
    - fr_value_box_strdup_shallow
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_value
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_from_value_box_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:351,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:354,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:355,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:356,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:358,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:358,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:359,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:359,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:360,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:360,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: test_from_value_box_uint32
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - talloc_free
    - tmpl_afrom_value_box
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_value
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_from_value_box_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:371,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:374,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:376,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:377,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:378,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:380,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:380,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:381,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:381,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: test_from_value_box_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - htonl
    - talloc_free
    - tmpl_afrom_value_box
    - tmpl_is_data
    - tmpl_value_type
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_from_value_box_ipaddr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:395,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:401,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:401,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:403,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:404,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:406,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:406,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:408,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:409,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:410,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:412,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:412,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:413,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:413,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:414,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:414,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 417
    functionName: test_cast_unresolved_to_uint32
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - tmpl_is_data_unresolved
    - TEST_MSG
    - talloc_free
    - tmpl_cast_in_place
    - FR_SBUFF_IN_STR
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_value
    - tmpl_afrom_substr
    - fr_strerror
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_cast_unresolved_to_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:425,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:425,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:426,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:427,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:428,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:430,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:431,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:433,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:433,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:434,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:434,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:435,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:435,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:435,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 438
    functionName: test_cast_unresolved_to_string
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_cast_in_place
    - FR_SBUFF_IN_STR
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_value
    - strcmp
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_cast_unresolved_to_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:446,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:449,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:450,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:451,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:453,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:454,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:455,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:455,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:457,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:457,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:458,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:458,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:459,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:459,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 462
    functionName: test_cast_uint32_to_uint64
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - talloc_free
    - tmpl_afrom_value_box
    - tmpl_cast_in_place
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_value
    - fr_strerror
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_cast_uint32_to_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:470,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:470,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:472,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:473,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:475,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:476,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:477,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: test_cast_invalid
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - TEST_MSG
    - talloc_free
    - tmpl_cast_in_place
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_cast_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:493,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:494,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:496,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:497,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:498,1
    - Dst: tmpl_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:500,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:501,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:503,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:504,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:504,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:505,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:505,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:506,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:506,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:506,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:508,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 510
    functionName: test_copy_data
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - talloc_free
    - tmpl_afrom_value_box
    - fr_value_box_strdup_shallow
    - tmpl_copy
    - tmpl_is_data
    - tmpl_value_type
    - tmpl_value
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_copy_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:519,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:519,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:520,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:521,1
    - Dst: tmpl_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:523,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:524,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:526,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:527,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:527,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:528,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:528,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:528,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:530,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 532
    functionName: test_copy_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_copy
    - tmpl_attr_tail_da
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_copy_attr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:540,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:540,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:541,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:542,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:543,1
    - Dst: tmpl_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:545,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:546,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:548,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:549,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:551,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: test_copy_data_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - talloc_free
    - tmpl_copy
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_copy_data_unresolved(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:565,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:568,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:570,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:574,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:575,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:577,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:578,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:579,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:579,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:581,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:582,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:583,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:584,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:586,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:587,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 589
    functionName: test_eval_data
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_init
    - fr_value_box_list_init
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - tmpl_afrom_value_box
    - fr_value_box_list_talloc_free
    - tmpl_eval
    - fr_strerror
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_eval_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:597,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:602,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:604,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:605,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:606,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:607,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:609,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:609,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:610,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:611,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:613,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:614,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:615,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:615,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:617,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:618,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:620,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:620,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:622,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:623,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 625
    functionName: test_eval_attr_found
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - test_rules
    - fr_value_box_list_init
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - fr_pair_value_strdup
    - fr_value_box_list_talloc_free
    - tmpl_afrom_attr_str
    - tmpl_eval
    - fr_strerror
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void test_eval_attr_found(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:633,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:637,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:639,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:639,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:640,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:641,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:643,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:647,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:650,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:651,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:653,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:654,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 656
    functionName: test_eval_attr_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - test_rules
    - fr_value_box_list_init
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - fr_value_box_list_talloc_free
    - tmpl_afrom_attr_str
    - tmpl_eval
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_eval_attr_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:664,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:669,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:671,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:674,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:677,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:677,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:678,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:679,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:681,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:682,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:683,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:683,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:685,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:686,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:687,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:688,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:690,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:691,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:692,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:694,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:695,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 697
    functionName: test_eval_attr_multiple
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - test_rules
    - fr_value_box_list_init
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - fr_value_box_list_talloc_free
    - tmpl_afrom_attr_str
    - tmpl_eval
    - fr_strerror
    - TEST_CHECK
    - TEST_ASSERT
    - fr_value_box_list_next
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void test_eval_attr_multiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:705,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:710,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:712,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:715,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:718,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:718,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:719,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:720,1
    - Dst: tmpl_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:722,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:723,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:724,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:724,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:726,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:727,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:728,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:729,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:730,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:732,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:733,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 735
    functionName: test_eval_attr_count
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - test_rules
    - fr_value_box_list_init
    - request_fake_alloc
    - TEST_MSG
    - talloc_free
    - fr_value_box_list_talloc_free
    - tmpl_afrom_attr_str
    - tmpl_eval
    - fr_strerror
    - TEST_CHECK
    - TEST_ASSERT
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void test_eval_attr_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:745,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:751,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:752,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:754,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:755,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:756,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:758,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:759,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:760,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:762,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 764
    functionName: test_find_vp_found
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - request_fake_alloc
    - talloc_free
    - fr_pair_value_strdup
    - tmpl_afrom_attr_str
    - TEST_CHECK
    - TEST_ASSERT
    - tmpl_find_vp
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void test_find_vp_found(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:770,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:775,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:775,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:776,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:777,1
    - Dst: tmpl_find_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:779,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:780,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:781,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:783,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 785
    functionName: test_find_vp_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - request_fake_alloc
    - talloc_free
    - tmpl_afrom_attr_str
    - TEST_CHECK
    - TEST_ASSERT
    - tmpl_find_vp
    linkageType: ''
    returnType: void
    signature: void test_find_vp_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:791,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:797,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:798,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:800,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:800,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:801,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:802,1
    - Dst: tmpl_find_or_add_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:804,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:805,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:806,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:807,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:809,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 811
    functionName: test_find_or_add_existing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - request_fake_alloc
    - tmpl_find_or_add_vp
    - TEST_MSG
    - talloc_free
    - fr_pair_value_strdup
    - tmpl_afrom_attr_str
    - TEST_CHECK
    - TEST_ASSERT
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void test_find_or_add_existing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_fake_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:817,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:822,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:822,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:823,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:824,1
    - Dst: tmpl_find_or_add_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:826,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:827,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:828,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:829,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:830,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:832,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 834
    functionName: test_find_or_add_new
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - request_fake_alloc
    - tmpl_find_or_add_vp
    - TEST_MSG
    - talloc_free
    - tmpl_afrom_attr_str
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_find_or_add_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:847,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:847,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:848,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:849,1
    - Dst: tmpl_aprint
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:851,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:852,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:853,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:855,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:855,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:856,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:857,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 861
    functionName: test_print_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - TEST_MSG
    - talloc_free
    - tmpl_afrom_attr_str
    - tmpl_aprint
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_print_attr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:871,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:872,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:874,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:875,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:876,1
    - Dst: tmpl_aprint
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:878,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:879,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:880,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:882,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:882,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:883,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:884,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 888
    functionName: test_print_data_string
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - talloc_free
    - tmpl_afrom_value_box
    - fr_value_box_strdup_shallow
    - tmpl_aprint
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_print_data_string(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:898,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:901,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:902,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:903,1
    - Dst: tmpl_aprint
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:905,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:906,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:907,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:909,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:909,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:910,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:911,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 915
    functionName: test_print_data_uint32
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - talloc_free
    - tmpl_afrom_value_box
    - tmpl_aprint
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_print_data_uint32(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:925,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:926,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:928,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:929,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:930,1
    - Dst: tmpl_aprint_quoted
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:936,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:937,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:938,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:940,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:940,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:941,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:942,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 946
    functionName: test_print_quoted
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - talloc_free
    - tmpl_aprint_quoted
    - tmpl_afrom_value_box
    - fr_value_box_strdup_shallow
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_print_quoted(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:963,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:965,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:966,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:967,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:968,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:968,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:969,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:969,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:970,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:970,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:973,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:973,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:974,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:975,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:976,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:976,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:977,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:977,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:978,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:978,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:979,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:979,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:982,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:982,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:983,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:984,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:985,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:990,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:991,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:991,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:992,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:992,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:995,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:996,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 998
    functionName: test_type_checking
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - test_rules
    - fr_value_box_init
    - tmpl_is_data_unresolved
    - tmpl_needs_resolving
    - talloc_free
    - tmpl_afrom_value_box
    - FR_SBUFF_IN_STR
    - tmpl_is_data
    - tmpl_afrom_attr_str
    - tmpl_is_attr
    - tmpl_afrom_substr
    - TEST_CHECK
    - TEST_ASSERT
    - tmpl_contains_attr
    linkageType: ''
    returnType: void
    signature: void test_type_checking(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1010,1
    - Dst: test_rules
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1010,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1011,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1012,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1013,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1014,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1016
    functionName: test_parse_attr_empty_ref
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - test_rules
    - tmpl_afrom_attr_str
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_empty_ref(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1031,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1032,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1033,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_tests.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1035
    functionName: test_parse_attr_unresolved_disallowed
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - tmpl_afrom_attr_str
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_parse_attr_unresolved_disallowed(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:59,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:61,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:62,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:63,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:65,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:67,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - request
    - map
    argTypes:
    - request_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: map_dump
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - tmpl_type_to_str
    - RDEBUG2
    linkageType: ''
    returnType: void
    signature: void map_dump(request_t *request, map_t const *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/map.c:78,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/map.c:80,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - parent
    argTypes:
    - TALLOC_CTX*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: map_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - map_list_init
    - talloc_zero
    linkageType: ''
    returnType: map_t
    signature: map_t *map_alloc(TALLOC_CTX *ctx, map_t *parent)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:128,1
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:128,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/map.c:129,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/map.c:130,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/map.c:132,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/map.c:133,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:135,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:144,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/map.c:144,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/server/map.c:150,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:154,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:155,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/map.c:155,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/map.c:164,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:165,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/map.c:166,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:169,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/map.c:175,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:177,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/map.c:177,1
    - Dst: tmpl_attr_tail_is_unknown
      Src: /src/freeradius-server/src/lib/server/map.c:182,1
    - Dst: tmpl_attr_unknown_add
      Src: /src/freeradius-server/src/lib/server/map.c:182,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/map.c:183,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:187,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:187,1
    - Dst: tmpl_rules_child_init
      Src: /src/freeradius-server/src/lib/server/map.c:195,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:203,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:210,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:212,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/server/map.c:221,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/server/map.c:224,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:225,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/map.c:225,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/map.c:243,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:245,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:245,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/lib/server/map.c:250,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:250,1
    - Dst: tmpl_set_xlat
      Src: /src/freeradius-server/src/lib/server/map.c:257,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/map.c:264,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:265,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/map.c:269,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/server/map.c:269,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/map.c:273,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:282,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:287,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:288,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/map.c:298,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:302,1
    - Dst: tmpl_attr_unknown_add
      Src: /src/freeradius-server/src/lib/server/map.c:302,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/map.c:303,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:311,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/map.c:312,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:313,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:335,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/map.c:335,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/map.c:337,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:337,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:341,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/map.c:348,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:349,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/map.c:349,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:355,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/map.c:356,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/map.c:363,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:364,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 153
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - cp
    - lhs_rules
    - input_rhs_rules
    - edit
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - map_t*
    - CONF_PAIR*
    - tmpl_rules_t*
    - tmpl_rules_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 366
    functionName: map_afrom_cp
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - fr_strerror_printf
    - tmpl_attr_tail_is_unknown
    - tmpl_is_data
    - fr_sbuff_out_aunescape_until
    - fr_strerror
    - cf_pair_operator
    - MEM
    - cf_log_err
    - fr_box_strvalue
    - cf_pair_to_item
    - tmpl_attr_unknown_add
    - tmpl_rules_child_init
    - tmpl_is_attr
    - map_alloc
    - cf_pair_attr
    - cf_pair_value_quote
    - MAP_VERIFY
    - tmpl_set_xlat
    - cf_pair_attr_quote
    - FR_SBUFF_IN
    - fr_assert
    - strcmp
    - talloc_strlen
    - tmpl_alloc
    - xlat_tokenize_expression
    - cf_log_perr
    - TALLOC_FREE
    - talloc_free
    - cf_pair_value
    - tmpl_afrom_value_box
    - tmpl_cast_in_place
    - talloc
    - tmpl_attr_tail_num
    - tmpl_afrom_attr_str
    - tmpl_afrom_substr
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: "int map_afrom_cp(TALLOC_CTX *ctx, map_t **out, map_t *parent, CONF_PAIR
      *cp,\n\t\t tmpl_rules_t const *lhs_rules, tmpl_rules_t const *input_rhs_rules,
      bool edit)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/map.c:474,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:488,1
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:488,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/server/map.c:490,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/map.c:492,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/server/map.c:493,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:496,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/map.c:517,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/map.c:521,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:536,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/map.c:543,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:545,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:556,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:556,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:557,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/map.c:559,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:570,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:573,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:573,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/server/map.c:575,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/map.c:576,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/server/map.c:581,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:583,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:595,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:597,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:598,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/server/map.c:603,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/map.c:609,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:620,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:623,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:624,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:625,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:637,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:638,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/map.c:648,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/server/map.c:652,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/map.c:657,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:658,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:659,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:671,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:671,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/server/map.c:672,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/map.c:672,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/server/map.c:685,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:686,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/map.c:690,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/server/map.c:690,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:695,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/map.c:701,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/server/map.c:707,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:713,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:721,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:721,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/server/map.c:728,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/map.c:732,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:744,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/map.c:754,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:755,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/server/map.c:764,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:765,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:768,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/map.c:768,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/map.c:768,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:775,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/map.c:777,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:778,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/map.c:782,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:783,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/map.c:789,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:790,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:791,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/map.c:796,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:797,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:798,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/map.c:802,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/map.c:803,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:804,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/map.c:816,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/map.c:818,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/map.c:822,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:822,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/map.c:832,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:832,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/map.c:832,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/server/map.c:833,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:836,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:839,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 228
    argCount: 9
    argNames:
    - ctx
    - out
    - parent_p
    - in
    - op_table
    - op_table_len
    - lhs_rules
    - rhs_rules
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - map_t**
    - fr_sbuff_t*
    - fr_table_num_sorted_t*
    - size_t
    - tmpl_rules_t*
    - tmpl_rules_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 840
    functionName: map_afrom_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 1
    functionsReached:
    - tmpl_cast_set
    - fr_type_is_leaf
    - tmpl_needs_resolving
    - tmpl_attr_tail_da
    - fr_strerror_printf
    - tmpl_is_data
    - fr_value_box_alloc
    - tmpl_afrom_attr_substr
    - tmpl_is_data_unresolved
    - MEM
    - fr_box_strvalue
    - fr_value_box_strdup
    - FR_SBUFF_SET_RETURN
    - tmpl_is_attr
    - FR_SBUFF
    - fr_strerror_const
    - map_alloc
    - tmpl_is_xlat
    - MAP_VERIFY
    - fr_sbuff_out_by_longest_prefix
    - talloc_steal
    - fr_sbuff_marker
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - tmpl_contains_regex
    - fr_sbuff_adv_past_whitespace
    - tmpl_resolve
    - fr_sbuff_next_if_char
    - tmpl_alloc
    - map_list_insert_tail
    - talloc_free
    - fr_value_box_from_substr
    - tmpl_afrom_value_box
    - fr_sbuff_adv_past_str_literal
    - tmpl_cast_in_place
    - tmpl_attr_tail_da_is_structural
    - tmpl_afrom_substr
    - tmpl_value
    - fr_sbuff_set
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t map_afrom_substr(TALLOC_CTX *ctx, map_t **out, map_t **parent_p,
      fr_sbuff_t *in,\n\t\t\t fr_table_num_sorted_t const *op_table, size_t op_table_len,\n\t\t\t
      tmpl_rules_t const *lhs_rules, tmpl_rules_t const *rhs_rules,\n\t\t\t fr_sbuff_parse_rules_t
      const *p_rules)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/map.c:864,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/map.c:870,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:874,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:874,1
    - Dst: tmpl_attr_list_from_substr
      Src: /src/freeradius-server/src/lib/server/map.c:895,1
    - Dst: fr_sbuff_eof
      Src: /src/freeradius-server/src/lib/server/map.c:896,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:897,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/map.c:905,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/map.c:907,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:916,1
    - Dst: map_list_talloc_reverse_free
      Src: /src/freeradius-server/src/lib/server/map.c:922,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/map.c:930,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:936,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/map.c:937,1
    - Dst: cf_section_name2_quote
      Src: /src/freeradius-server/src/lib/server/map.c:938,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:941,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/map.c:941,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:946,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:950,1
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:950,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/map.c:961,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/map.c:961,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:963,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/map.c:964,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/map.c:964,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:965,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:973,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:974,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:976,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:980,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:981,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:982,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:991,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/server/map.c:1000,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/map.c:1001,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/map.c:1002,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:1017,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1017,1
    - Dst: _map_afrom_cs
      Src: /src/freeradius-server/src/lib/server/map.c:1028,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/map.c:1028,1
    - Dst: map_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1031,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1032,1
    - Dst: map_list_move
      Src: /src/freeradius-server/src/lib/server/map.c:1035,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1037,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/map.c:1037,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1037,1
    - Dst: map_list_afrom_cs
      Src: /src/freeradius-server/src/lib/server/map.c:1047,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/map.c:1047,1
    - Dst: map_list_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:1051,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1052,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:1053,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1053,1
    - Dst: map_list_move
      Src: /src/freeradius-server/src/lib/server/map.c:1057,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1060,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/map.c:1064,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1065,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/map.c:1069,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1070,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/map.c:1090,1
    - Dst: map_afrom_cp
      Src: /src/freeradius-server/src/lib/server/map.c:1098,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1099,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1100,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/map.c:1100,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1104,1
    - Dst: validate
      Src: /src/freeradius-server/src/lib/server/map.c:1109,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/map.c:1113,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 128
    argCount: 11
    argNames:
    - ctx
    - out
    - parent
    - cs
    - lhs_rules
    - rhs_rules
    - validate
    - uctx
    - max
    - update
    - edit
    argTypes:
    - TALLOC_CTX*
    - map_list_t*
    - map_t*
    - CONF_SECTION*
    - tmpl_rules_t*
    - tmpl_rules_t*
    - map_validate_t
    - void*
    - unsigned int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 842
    functionDepth: 7
    functionLinenumber: 842
    functionLinenumberEnd: 1118
    functionName: _map_afrom_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - map_list_afrom_cs
    - fr_type_is_leaf
    - map_list_move
    - validate
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - strlen
    - fr_strerror
    - fr_type_to_str
    - MEM
    - cf_log_err
    - map_list_num_elements
    - cf_item_to_section
    - map_list_talloc_free
    - fr_sbuff_eof
    - tmpl_attr_list_from_substr
    - cf_section_name2
    - cf_item_next
    - map_list_talloc_reverse_free
    - cf_section_to_item
    - tmpl_is_attr
    - cf_section_name2_quote
    - cf_section_name1
    - map_alloc
    - MAP_VERIFY
    - cf_pair_attr
    - cf_item_is_section
    - FR_SBUFF_IN
    - fr_assert
    - cf_item_is_pair
    - map_list_init
    - map_afrom_cp
    - map_list_insert_tail
    - talloc_free
    - cf_pair_value
    - _map_afrom_cs
    - fr_dict_internal
    - tmpl_afrom_attr_str
    - fr_dict_attr_ref
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: "int _map_afrom_cs(TALLOC_CTX *ctx, map_list_t *out, map_t *parent,
      CONF_SECTION const *cs,\n\t\t\t tmpl_rules_t const *lhs_rules, tmpl_rules_t
      const *rhs_rules,\n\t\t\t map_validate_t validate, void *uctx,\n\t\t\t unsigned
      int max, bool update, bool edit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/map.c:1145,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/map.c:1146,1
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/lib/server/map.c:1148,1
    - Dst: _map_afrom_cs
      Src: /src/freeradius-server/src/lib/server/map.c:1150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - ctx
    - out
    - cs
    - lhs_rules
    - rhs_rules
    - validate
    - uctx
    - max
    argTypes:
    - TALLOC_CTX*
    - map_list_t*
    - CONF_SECTION*
    - tmpl_rules_t*
    - tmpl_rules_t*
    - map_validate_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1136
    functionDepth: 8
    functionLinenumber: 1136
    functionLinenumberEnd: 1151
    functionName: map_afrom_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 8
    functionsReached:
    - _map_afrom_cs
    - cf_section_name1
    - strcmp
    - talloc_get_type
    linkageType: ''
    returnType: int
    signature: "int map_afrom_cs(TALLOC_CTX *ctx, map_list_t *out, CONF_SECTION const
      *cs,\n\t\t tmpl_rules_t const *lhs_rules, tmpl_rules_t const *rhs_rules,\n\t\t
      map_validate_t validate, void *uctx,\n\t\t unsigned int max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/lib/server/map.c:1174,1
    - Dst: _map_afrom_cs
      Src: /src/freeradius-server/src/lib/server/map.c:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - ctx
    - out
    - cs
    - lhs_rules
    - rhs_rules
    - validate
    - uctx
    - max
    argTypes:
    - TALLOC_CTX*
    - map_list_t*
    - CONF_SECTION*
    - tmpl_rules_t*
    - tmpl_rules_t*
    - map_validate_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1167
    functionDepth: 8
    functionLinenumber: 1167
    functionLinenumberEnd: 1177
    functionName: map_afrom_cs_edit
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 1
    functionsReached:
    - _map_afrom_cs
    - talloc_get_type
    linkageType: ''
    returnType: int
    signature: "int map_afrom_cs_edit(TALLOC_CTX *ctx, map_list_t *out, CONF_SECTION
      *cs,\n\t\t      tmpl_rules_t const *lhs_rules, tmpl_rules_t const *rhs_rules,\n\t\t
      \     map_validate_t validate, void *uctx,\n\t\t      unsigned int max)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1210,1
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:1210,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/map.c:1212,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1214,1
    - Dst: cf_pair_attr_quote
      Src: /src/freeradius-server/src/lib/server/map.c:1220,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:1225,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:1226,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/map.c:1226,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/map.c:1235,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1236,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/map.c:1237,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1239,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1240,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:1246,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:1254,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:1254,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/map.c:1254,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1257,1
    - Dst: tmpl_attr_unknown_add
      Src: /src/freeradius-server/src/lib/server/map.c:1257,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:1258,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1264,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - cp
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - map_t*
    - CONF_PAIR*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1273
    functionName: map_value_afrom_cp
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - map_alloc
    - cf_pair_attr
    - cf_log_perr
    - MAP_VERIFY
    - cf_pair_to_item
    - talloc_free
    - cf_pair_attr_quote
    - tmpl_attr_unknown_add
    - fr_strerror_printf
    - FR_SBUFF_IN
    - tmpl_afrom_substr
    - talloc_strlen
    - tmpl_is_attr
    - fr_strerror_const
    - MEM
    - cf_log_err
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: "int map_value_afrom_cp(TALLOC_CTX *ctx, map_t **out, map_t *parent,
      CONF_PAIR *cp,\n\t\t\t      tmpl_rules_t const *t_rules)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/map.c:1296,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/map.c:1298,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1300,1
    - Dst: map_list_talloc_reverse_free
      Src: /src/freeradius-server/src/lib/server/map.c:1306,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/map.c:1310,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1311,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/map.c:1315,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1316,1
    - Dst: map_value_afrom_cp
      Src: /src/freeradius-server/src/lib/server/map.c:1318,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1319,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/map.c:1320,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1320,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1324,1
    - Dst: validate
      Src: /src/freeradius-server/src/lib/server/map.c:1329,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/map.c:1332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 8
    argNames:
    - ctx
    - out
    - parent
    - cs
    - t_rules
    - validate
    - uctx
    - max
    argTypes:
    - TALLOC_CTX*
    - map_list_t*
    - map_t*
    - CONF_SECTION*
    - tmpl_rules_t*
    - map_validate_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1337
    functionName: _map_list_afrom_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - MAP_VERIFY
    - cf_item_is_section
    - map_list_insert_tail
    - validate
    - map_value_afrom_cp
    - cf_item_next
    - fr_assert
    - map_list_talloc_reverse_free
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int _map_list_afrom_cs(TALLOC_CTX *ctx, map_list_t *out, map_t *parent,
      CONF_SECTION *cs,\n\t\t\t     tmpl_rules_t const *t_rules,\n\t\t\t     map_validate_t
      validate, void *uctx,\n\t\t\t     unsigned int max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/lib/server/map.c:1359,1
    - Dst: _map_list_afrom_cs
      Src: /src/freeradius-server/src/lib/server/map.c:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - ctx
    - out
    - cs
    - t_rules
    - validate
    - uctx
    - max
    argTypes:
    - TALLOC_CTX*
    - map_list_t*
    - CONF_SECTION*
    - tmpl_rules_t*
    - map_validate_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1352
    functionDepth: 3
    functionLinenumber: 1352
    functionLinenumberEnd: 1362
    functionName: map_list_afrom_cs
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 3
    functionsReached:
    - _map_list_afrom_cs
    - talloc_get_type
    linkageType: ''
    returnType: int
    signature: "int map_list_afrom_cs(TALLOC_CTX *ctx, map_list_t *out, CONF_SECTION
      *cs,\n\t\t      tmpl_rules_t const *t_rules,\n\t\t      map_validate_t validate,
      void *uctx,\n\t\t      unsigned int max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:1391,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:1393,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/map.c:1394,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1400,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/map.c:1406,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 8
    argNames:
    - ctx
    - out
    - lhs
    - lhs_quote
    - lhs_rules
    - op
    - rhs
    - steal_rhs_buffs
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - char*
    - fr_token_t
    - tmpl_rules_t*
    - fr_token_t
    - fr_value_box_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1383
    functionDepth: 1
    functionLinenumber: 1383
    functionLinenumberEnd: 1412
    functionName: map_afrom_value_box
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - map_alloc
    - MAP_VERIFY
    - talloc_free
    - tmpl_afrom_value_box
    - FR_SBUFF_IN_STR
    - tmpl_afrom_substr
    linkageType: ''
    returnType: int
    signature: "int map_afrom_value_box(TALLOC_CTX *ctx, map_t **out,\n\t\t\tchar
      const *lhs, fr_token_t lhs_quote, tmpl_rules_t const *lhs_rules,\n\t\t\tfr_token_t
      op,\n\t\t\tfr_value_box_t *rhs, bool steal_rhs_buffs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:1436,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:1436,1
    - Dst: map_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:1438,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1443,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1445,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/map.c:1446,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:1447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - vp_str
    - lhs_rules
    - rhs_rules
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - char*
    - tmpl_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1433
    functionDepth: 3
    functionLinenumber: 1433
    functionLinenumberEnd: 1452
    functionName: map_afrom_attr_str
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 4
    functionsReached:
    - TALLOC_FREE
    - fr_cond_assert
    - FR_SBUFF_IN
    - strlen
    - map_afrom_substr
    - tmpl_is_attr
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int map_afrom_attr_str(TALLOC_CTX *ctx, map_t **out, char const *vp_str,\n\t\t
      \      tmpl_rules_t const *lhs_rules, tmpl_rules_t const *rhs_rules)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/map.c:1467,1
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:1471,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:1474,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:1481,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1483,1
    - Dst: tmpl_attr_set_leaf_da
      Src: /src/freeradius-server/src/lib/server/map.c:1487,1
    - Dst: tmpl_attr_set_request_ref
      Src: /src/freeradius-server/src/lib/server/map.c:1489,1
    - Dst: tmpl_attr_set_list
      Src: /src/freeradius-server/src/lib/server/map.c:1490,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/lib/server/map.c:1492,1
    - Dst: tmpl_set_name
      Src: /src/freeradius-server/src/lib/server/map.c:1493,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/map.c:1493,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:1498,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1500,1
    - Dst: tmpl_set_name_printf
      Src: /src/freeradius-server/src/lib/server/map.c:1506,1
    - Dst: tmpl_set_name_printf
      Src: /src/freeradius-server/src/lib/server/map.c:1510,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/map.c:1514,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/map.c:1514,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/map.c:1514,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - out
    - vp
    - rules
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - fr_pair_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1522
    functionName: map_afrom_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - map_alloc
    - fr_sbuff_start
    - tmpl_set_name
    - tmpl_attr_set_request_ref
    - unlikely
    - talloc_free
    - FR_SBUFF_OUT
    - tmpl_attr_set_leaf_da
    - tmpl_attr_set_list
    - fr_value_box_copy
    - tmpl_value
    - fr_strerror_const
    - tmpl_set_name_printf
    - tmpl_print
    - tmpl_alloc
    linkageType: ''
    returnType: int
    signature: int map_afrom_vp(TALLOC_CTX *ctx, map_t **out, fr_pair_t *vp, tmpl_rules_t
      const *rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:1545,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1547,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1549,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1550,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/server/map.c:1550,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1551,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1551,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:1553,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1553,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1554,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/lib/server/map.c:1561,1
    - Dst: radius_exec_program_legacy
      Src: /src/freeradius-server/src/lib/server/map.c:1569,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/map.c:1571,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1573,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1581,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/map.c:1581,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1581,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/server/map.c:1583,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:1583,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1584,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1585,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:1588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - map
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1538
    functionDepth: 4
    functionLinenumber: 1538
    functionLinenumberEnd: 1591
    functionName: map_exec_to_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached:
    - MAP_VERIFY
    - fr_pair_afrom_da
    - radius_exec_program_legacy
    - RPEDEBUG
    - talloc_free
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - REDEBUG
    - tmpl_list_head
    - fr_pair_append
    - fr_assert
    - strlen
    - fr_pair_list_free
    - tmpl_is_attr
    - tmpl_is_exec
    - MEM
    - fr_pair_value_from_str
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int map_exec_to_vp(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t
      *request, map_t const *map)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:1613,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:1614,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1616,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1617,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1619,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1619,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1628,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1630,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1643,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/map.c:1643,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1643,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/server/map.c:1646,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/server/map.c:1648,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:1656,1
    - Dst: map_to_vp
      Src: /src/freeradius-server/src/lib/server/map.c:1657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1658,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/server/map.c:1662,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:1665,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1674,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:1674,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1675,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:1675,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/lib/server/map.c:1678,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/server/map.c:1678,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/lib/server/map.c:1679,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/map.c:1679,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/map.c:1683,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/map.c:1688,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/server/map.c:1690,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/server/map.c:1694,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1704,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1704,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1705,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1705,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1706,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/map.c:1706,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1708,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/map.c:1708,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1708,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:1715,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/server/map.c:1716,1
    - Dst: xlat_aeval_compiled
      Src: /src/freeradius-server/src/lib/server/map.c:1719,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/map.c:1719,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/server/map.c:1720,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:1727,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/server/map.c:1729,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:1729,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1730,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:1736,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1740,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1740,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1741,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1741,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1743,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/map.c:1743,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1743,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/server/map.c:1745,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:1745,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:1750,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1758,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1758,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1758,1
    - Dst: tmpl_copy_pairs
      Src: /src/freeradius-server/src/lib/server/map.c:1763,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/server/map.c:1765,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1771,1
    - Dst: tmpl_attr_tail_da_is_leaf
      Src: /src/freeradius-server/src/lib/server/map.c:1771,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1772,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1772,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/map.c:1773,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1774,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/map.c:1774,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1774,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/map.c:1776,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1777,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1777,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1778,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:1779,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1780,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/server/map.c:1783,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1784,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1786,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:1789,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/map.c:1799,1
    - Dst: fr_pair_reinit_from_da
      Src: /src/freeradius-server/src/lib/server/map.c:1800,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1800,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/server/map.c:1803,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1808,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1808,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1809,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1809,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:1811,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/map.c:1811,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1811,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:1813,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/map.c:1813,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/map.c:1814,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/map.c:1814,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/map.c:1814,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1816,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/map.c:1820,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/map.c:1820,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1821,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:1826,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1828,1
    - Dst: map_exec_to_vp
      Src: /src/freeradius-server/src/lib/server/map.c:1839,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:1842,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1845,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 145
    argCount: 5
    argNames:
    - ctx
    - out
    - request
    - map
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - map_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1604
    functionDepth: 9
    functionLinenumber: 1604
    functionLinenumberEnd: 1850
    functionName: map_to_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 4
    functionsReached:
    - tmpl_copy_pairs
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - fr_cond_assert
    - tmpl_attr_tail_da
    - tmpl_value_type
    - tmpl_value
    - strlen
    - fr_value_box_cast
    - map_exec_to_vp
    - fr_pair_list_free
    - MEM
    - fr_pair_list_empty
    - unlikely
    - map_to_vp
    - RPEDEBUG
    - fr_dcursor_next
    - tmpl_attr_tail_da_is_leaf
    - fr_pair_append
    - tmpl_request_ptr
    - fr_pair_list_foreach
    - tmpl_is_attr
    - fr_strerror_const
    - fr_pair_list_init
    - xlat_aeval_compiled
    - fr_pair_list_copy
    - MAP_VERIFY
    - fr_pair_afrom_da
    - map_list_next
    - fr_pair_value_from_str
    - fr_pair_reinit_from_da
    - tmpl_request
    - tmpl_list_head
    - fr_assert
    - RDEBUG2
    - fr_pair_list_append
    - fr_dcursor_remove
    - talloc_free
    - tmpl_xlat
    - tmpl_attr_tail_da_is_structural
    - RINDENT
    - tmpl_list
    - REXDENT
    - tmpl_contains_attr
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int map_to_vp(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t *request,
      map_t const *map, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _old
    - ','
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1852
    functionDepth: 0
    functionLinenumber: 1852
    functionLinenumberEnd: 1866
    functionName: DEBUG_OVERWRITE
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_OVERWRITE(_old, _new)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:1899,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:1900,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1901,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1902,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1908,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/server/map.c:1912,1
    - Dst: tmpl_aexpand
      Src: /src/freeradius-server/src/lib/server/map.c:1936,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1938,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1939,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/map.c:1944,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1952,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1953,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:1957,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1958,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1958,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/map.c:1960,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:1967,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:1976,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1977,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:1979,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/lib/server/map.c:1985,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/server/map.c:1985,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1986,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/map.c:1992,1
    - Dst: tmpl_list_head
      Src: /src/freeradius-server/src/lib/server/map.c:1993,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/map.c:1995,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/lib/server/map.c:1997,1
    - Dst: tmpl_list_ctx
      Src: /src/freeradius-server/src/lib/server/map.c:2002,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/map.c:2002,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2003,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/server/map.c:2011,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2013,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/map.c:2013,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/map.c:2016,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:2017,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/server/map.c:2028,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:2029,1
    - Dst: map_debug_log
      Src: /src/freeradius-server/src/lib/server/map.c:2031,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/server/map.c:2038,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2042,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/map.c:2042,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:2045,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/server/map.c:2049,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:2050,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/server/map.c:2051,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:2052,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2057,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/server/map.c:2057,1
    - Dst: fr_pair_list_move_op
      Src: /src/freeradius-server/src/lib/server/map.c:2061,1
    - Dst: fr_pair_list_move_op
      Src: /src/freeradius-server/src/lib/server/map.c:2066,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/map.c:2080,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2094,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/map.c:2094,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/map.c:2100,1
    - Dst: fr_pair_delete_by_child_num
      Src: /src/freeradius-server/src/lib/server/map.c:2101,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:2101,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:2101,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/server/map.c:2107,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2108,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/map.c:2134,1
    - Dst: tmpl_attr_tail_num
      Src: /src/freeradius-server/src/lib/server/map.c:2139,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/server/map.c:2140,1
    - Dst: paircmp_pairs
      Src: /src/freeradius-server/src/lib/server/map.c:2142,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/server/map.c:2144,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:2145,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/map.c:2156,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/server/map.c:2158,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:2158,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/server/map.c:2159,1
    - Dst: paircmp_pairs
      Src: /src/freeradius-server/src/lib/server/map.c:2161,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/server/map.c:2163,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:2164,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:2170,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/map.c:2189,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/map.c:2193,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/map.c:2194,1
    - Dst: tmpl_extents_find
      Src: /src/freeradius-server/src/lib/server/map.c:2199,1
    - Dst: tmpl_extents_build_to_leaf_parent
      Src: /src/freeradius-server/src/lib/server/map.c:2200,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2201,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2202,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/map.c:2210,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2212,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2217,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/map.c:2218,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:2219,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/server/map.c:2219,1
    - Dst: fr_dlist_talloc_free_tail
      Src: /src/freeradius-server/src/lib/server/map.c:2220,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/map.c:2223,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:2224,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/server/map.c:2224,1
    - Dst: fr_dlist_talloc_free_head
      Src: /src/freeradius-server/src/lib/server/map.c:2225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2229,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2229,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2230,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2230,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/server/map.c:2244,1
    - Dst: DEBUG_OVERWRITE
      Src: /src/freeradius-server/src/lib/server/map.c:2247,1
    - Dst: fr_pair_reinit_from_da
      Src: /src/freeradius-server/src/lib/server/map.c:2249,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/server/map.c:2250,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/map.c:2254,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/map.c:2255,1
    - Dst: tmpl_extents_find
      Src: /src/freeradius-server/src/lib/server/map.c:2260,1
    - Dst: tmpl_extents_build_to_leaf_parent
      Src: /src/freeradius-server/src/lib/server/map.c:2261,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2263,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2264,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2269,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/map.c:2270,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/map.c:2274,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/map.c:2275,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/server/map.c:2275,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2277,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2277,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2278,1
    - Dst: fr_pair_list_prepend
      Src: /src/freeradius-server/src/lib/server/map.c:2286,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/map.c:2298,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/map.c:2299,1
    - Dst: tmpl_extents_find
      Src: /src/freeradius-server/src/lib/server/map.c:2304,1
    - Dst: tmpl_extents_build_to_leaf_parent
      Src: /src/freeradius-server/src/lib/server/map.c:2305,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2306,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2307,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2312,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/map.c:2313,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/map.c:2314,1
    - Dst: fr_dlist_talloc_free_tail
      Src: /src/freeradius-server/src/lib/server/map.c:2315,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/map.c:2318,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/map.c:2319,1
    - Dst: fr_dlist_talloc_free_head
      Src: /src/freeradius-server/src/lib/server/map.c:2320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2323,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2323,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2324,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/map.c:2324,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/server/map.c:2340,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/server/map.c:2341,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/server/map.c:2343,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/server/map.c:2345,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/map.c:2346,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/map.c:2348,1
    - Dst: fr_pair_cmp_by_da
      Src: /src/freeradius-server/src/lib/server/map.c:2351,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/server/map.c:2355,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/server/map.c:2357,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2358,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2367,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/map.c:2373,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/map.c:2374,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2375,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 302
    argCount: 4
    argNames:
    - request
    - map
    - func
    - ctx
    argTypes:
    - request_t*
    - map_t*
    - radius_map_getvalue_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 1884
    functionDepth: 4
    functionLinenumber: 1884
    functionLinenumberEnd: 2377
    functionName: map_to_request
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 17
    functionsReached:
    - fr_dcursor_current
    - tmpl_is_list
    - fr_dlist_talloc_init
    - fr_dlist_tail
    - memcpy
    - fr_pair_list_tail
    - REDEBUG
    - tmpl_attr_tail_da
    - tmpl_extents_find
    - fr_pair_list_sort
    - paircmp_pairs
    - func
    - tmpl_dcursor_clear
    - fr_pair_list_free
    - tmpl_type_to_str
    - fr_pair_value_copy
    - fr_pair_list_empty
    - fr_dlist_talloc_free_tail
    - fr_dlist_head
    - fr_dlist_talloc_free
    - ERROR
    - RPEDEBUG
    - fr_dcursor_next
    - fr_dlist_num_elements
    - fr_pair_append
    - tmpl_aexpand
    - tmpl_request_ptr
    - fr_pair_list_foreach
    - tmpl_is_attr
    - map_debug_log
    - fr_dcursor_head
    - fr_pair_list_init
    - fr_value_box_cmp_op
    - fr_pair_list_copy
    - MAP_VERIFY
    - fr_pair_reinit_from_da
    - DEBUG_OVERWRITE
    - tmpl_extents_build_to_leaf_parent
    - fr_dlist_talloc_free_head
    - fr_pair_cmp_by_da
    - tmpl_request
    - tmpl_list_head
    - tmpl_list_name
    - fr_assert
    - RDEBUG2
    - RDEBUG3
    - fr_pair_list_append
    - talloc_pool
    - fr_pair_copy
    - fr_dcursor_remove
    - fr_dcursor_filter_next
    - tmpl_list_ctx
    - talloc_free
    - fr_pair_list_prepend
    - tmpl_dcursor_init
    - tmpl_attr_tail_num
    - fr_pair_delete_by_child_num
    - tmpl_afrom_attr_str
    - PAIR_VERIFY
    - fr_pair_list_move_op
    - tmpl_list
    - fr_pair_list_head
    - tmpl_is_exec
    linkageType: ''
    returnType: int
    signature: int map_to_request(request_t *request, map_t const *map, radius_map_getvalue_t
      func, void *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/map.c:2389,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:2391,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/map.c:2396,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2397,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:2398,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/map.c:2398,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2400,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2405,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2406,1
    - Dst: fr_token_name
      Src: /src/freeradius-server/src/lib/server/map.c:2406,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2407,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2413,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2414,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2422,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/lib/server/map.c:2422,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/server/map.c:2423,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/map.c:2427,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2428,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/map.c:2429,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/map.c:2429,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2435,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/map.c:2437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - out
    - map
    argTypes:
    - fr_sbuff_t*
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2387
    functionDepth: 1
    functionLinenumber: 2387
    functionLinenumberEnd: 2438
    functionName: map_print
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 3
    functionsReached:
    - MAP_VERIFY
    - fr_sbuff_terminate
    - map_list_empty
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - fr_assert
    - fr_token_name
    - tmpl_rules_cast
    - FR_SBUFF
    - fr_type_to_str
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t map_print(fr_sbuff_t *out, map_t const *map)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:2448,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2449,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2450,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2452,1
    - Dst: fr_pair_aprint_value_quoted
      Src: /src/freeradius-server/src/lib/server/map.c:2460,1
    - Dst: fr_pair_aprint_value_quoted
      Src: /src/freeradius-server/src/lib/server/map.c:2464,1
    - Dst: fr_pair_aprint_value_quoted
      Src: /src/freeradius-server/src/lib/server/map.c:2468,1
    - Dst: fr_pair_aprint_value_quoted
      Src: /src/freeradius-server/src/lib/server/map.c:2489,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/lib/server/map.c:2490,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/map.c:2490,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/map.c:2491,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/lib/server/map.c:2498,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/map.c:2498,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/map.c:2499,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/map.c:2499,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2509,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2510,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - request
    - map
    - vp
    argTypes:
    - request_t*
    - map_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2511
    functionName: map_debug_log
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 2
    functionsReached:
    - MAP_VERIFY
    - talloc_free
    - fr_cond_assert
    - FR_SBUFF_OUT
    - fr_pair_aprint_value_quoted
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG2
    - tmpl_print
    - talloc_typed_asprintf
    linkageType: ''
    returnType: void
    signature: void map_debug_log(request_t *request, map_t const *map, fr_pair_t
      const *vp)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/map.c:2539,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2541,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2551,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2556,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:2580,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:2600,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:2605,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:2611,1
    - Dst: map_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:2611,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2618,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/map.c:2618,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:2619,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/map.c:2621,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/map.c:2621,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/map.c:2636,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map.c:2640,1
    - Dst: tmpl_attr_tail_is_unknown
      Src: /src/freeradius-server/src/lib/server/map.c:2644,1
    - Dst: tmpl_attr_unknown_add
      Src: /src/freeradius-server/src/lib/server/map.c:2644,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2645,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/map.c:2651,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:2652,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/map.c:2658,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/map.c:2669,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2670,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/map.c:2674,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/server/map.c:2674,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:2684,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:2684,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/map.c:2689,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:2690,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/server/map.c:2693,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:2714,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:2717,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:2725,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/map.c:2725,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/server/map.c:2728,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2730,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/map.c:2730,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2734,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/map.c:2737,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/map.c:2742,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2755,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/server/map.c:2760,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/server/map.c:2762,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:2770,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map.c:2773,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/map.c:2773,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map.c:2773,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/server/map.c:2780,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/map.c:2780,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/map.c:2786,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/map.c:2786,1
    - Dst: tmpl_attr_tail_da_is_structural
      Src: /src/freeradius-server/src/lib/server/map.c:2795,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/map.c:2795,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/server/map.c:2796,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/map.c:2800,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/map.c:2803,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map.c:2806,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/map.c:2806,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/server/map.c:2808,1
    - Dst: REDEBUG3
      Src: /src/freeradius-server/src/lib/server/map.c:2809,1
    - Dst: tmpl_attr_tail_da_is_leaf
      Src: /src/freeradius-server/src/lib/server/map.c:2823,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/map.c:2829,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/map.c:2831,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 198
    argCount: 10
    argNames:
    - ctx
    - out
    - parent_p
    - request
    - lhs
    - op_str
    - rhs
    - lhs_rules
    - rhs_rules
    - bare_word_only
    argTypes:
    - TALLOC_CTX*
    - map_t**
    - map_t**
    - request_t*
    - char*
    - char*
    - char*
    - tmpl_rules_t*
    - tmpl_rules_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2529
    functionDepth: 2
    functionLinenumber: 2529
    functionLinenumberEnd: 2835
    functionName: map_afrom_fields
    functionSourceFile: /src/freeradius-server/src/lib/server/map.c
    functionUses: 1
    functionsReached:
    - tmpl_cast_set
    - fr_type_is_leaf
    - tmpl_needs_resolving
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - tmpl_attr_tail_is_unknown
    - fr_value_box_alloc
    - strlen
    - tmpl_afrom_attr_substr
    - fr_strerror
    - tmpl_is_data_unresolved
    - fr_box_strvalue
    - MEM
    - fr_value_box_strdup
    - tmpl_attr_tail_da_is_leaf
    - tmpl_attr_unknown_add
    - fr_table_value_by_str
    - tmpl_is_attr
    - fr_strerror_const
    - map_alloc
    - tmpl_is_xlat
    - MAP_VERIFY
    - unlang_interpret_event_list
    - FR_SBUFF_IN
    - fr_assert
    - strcmp
    - REDEBUG3
    - tmpl_resolve
    - tmpl_alloc
    - map_list_insert_tail
    - talloc_free
    - tmpl_afrom_value_box
    - tmpl_attr_tail_da_is_structural
    - FR_SBUFF_IN_STR
    - tmpl_afrom_attr_str
    - tmpl_afrom_substr
    - tmpl_value
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int map_afrom_fields(TALLOC_CTX *ctx, map_t **out, map_t **parent_p,
      request_t *request,\n\t\t     char const *lhs, char const *op_str, char const
      *rhs,\n\t\t     tmpl_rules_t const *lhs_rules, tmpl_rules_t const *rhs_rules,
      bool bare_word_only)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parent
    - current
    - type
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    - CONF_ITEM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: cf_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_next(CONF_ITEM const *parent, CONF_ITEM const *current,
      CONF_ITEM_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: cf_item_foreach_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach_next(parent, ci, UNCONST(CONF_ITEM *, current))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parent
    - current
    - type
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    - CONF_ITEM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: cf_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_prev(CONF_ITEM const *parent, CONF_ITEM const *current,
      CONF_ITEM_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: cf_item_foreach_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach_prev(parent, ci, UNCONST(CONF_ITEM *, current))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ident
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: IS_WILDCARD
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WILDCARD(_ident)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_has_no_children
      Src: /src/freeradius-server/src/lib/server/cf_util.c:96,1
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:98,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_util.c:102,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:105,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:111,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:111,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_util.c:113,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_util.c:121,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:124,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/cf_util.c:130,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:137,1
    - Dst: cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:141,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:152,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:154,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:167,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - parent
    - type
    - ident1
    - ident2
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM_TYPE
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 168
    functionName: cf_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_assert
    - cf_item_has_no_children
    - cf_ident2_cmp
    - IS_WILDCARD
    - memset
    - fr_assert_fail
    - cf_next
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_find(CONF_ITEM const *parent, CONF_ITEM_TYPE type, char
      const *ident1, char const *ident2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: cf_item_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_ident2_cmp
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach(parent, ci)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:193,1
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:194,1
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:196,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_util.c:200,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:203,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:209,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:209,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_util.c:211,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_util.c:219,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:222,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/cf_util.c:228,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:232,1
    - Dst: cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:236,1
    - Dst: IS_WILDCARD
      Src: /src/freeradius-server/src/lib/server/cf_util.c:242,1
    - Dst: _cf_ident1_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:244,1
    - Dst: _cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:252,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 5
    argNames:
    - parent
    - prev
    - type
    - ident1
    - ident2
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    - CONF_ITEM_TYPE
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 256
    functionName: cf_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - _cf_ident2_cmp
    - fr_assert
    - _cf_ident1_cmp
    - cf_ident2_cmp
    - IS_WILDCARD
    - memset
    - fr_assert_fail
    - cf_find
    - cf_next
    linkageType: ''
    returnType: CONF_ITEM
    signature: "CONF_ITEM *cf_find_next(CONF_ITEM const *parent, CONF_ITEM const *prev,\n\t\t\t
      \      CONF_ITEM_TYPE type, char const *ident1, char const *ident2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: cf_item_foreach_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_ident2_cmp
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach_next(parent, ci, prev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cf_ident1_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: cf_item_foreach_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - _cf_ident1_cmp
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach_next(parent, ci, prev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: cf_item_foreach_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - _cf_ident2_cmp
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach_next(parent, ci, prev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/cf_util.c:278,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:288,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:289,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:297,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:298,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:306,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:307,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/cf_util.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 314
    functionName: _cf_ident1_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - fr_assert_fail
    - strcmp
    - CMP
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t _cf_ident1_cmp(void const *one, void const *two)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:343,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:344,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:356,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:357,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/cf_util.c:361,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 364
    functionName: cf_ident2_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 5
    functionsReached:
    - fr_assert_fail
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t cf_ident2_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cf_ident1_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:379,1
    - Dst: cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 383
    functionName: _cf_ident2_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - _cf_ident1_cmp
    - cf_ident2_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t _cf_ident2_cmp(void const *a, void const *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:392,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:399,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:401,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/cf_util.c:402,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:406,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 409
    functionName: _cf_item_add
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_rb_inline_alloc
    - fr_assert
    - fr_dlist_insert_tail
    - fr_rb_insert
    linkageType: ''
    returnType: void
    signature: void _cf_item_add(CONF_ITEM *parent, CONF_ITEM *child)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:419,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:420,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/cf_util.c:428,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:435,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:437,1
    - Dst: fr_dlist_insert_after
      Src: /src/freeradius-server/src/lib/server/cf_util.c:438,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:442,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - parent
    - prev
    - child
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 444
    functionName: _cf_item_insert_after
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_rb_insert
    - cf_item_add
    - fr_dlist_insert_after
    linkageType: ''
    returnType: void
    signature: void _cf_item_insert_after(CONF_ITEM *parent, CONF_ITEM *prev, CONF_ITEM
      *child)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_has_no_children
      Src: /src/freeradius-server/src/lib/server/cf_util.c:461,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/cf_util.c:476,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/server/cf_util.c:478,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/server/cf_util.c:486,1
    - Dst: _cf_ident1_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:496,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:497,1
    - Dst: _cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:501,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:502,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 508
    functionName: _cf_item_remove
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_dlist_remove
    - _cf_ident2_cmp
    - cf_item_has_no_children
    - _cf_ident1_cmp
    - fr_rb_insert
    - fr_rb_remove_by_inline_node
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *_cf_item_remove(CONF_ITEM *parent, CONF_ITEM *child)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: cf_item_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach(parent, ci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _cf_ident1_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:496,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:497,1
    - Dst: _cf_ident2_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:501,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 505
    functionName: cf_item_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - _cf_ident2_cmp
    - _cf_ident1_cmp
    - fr_rb_insert
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach(parent, ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parent
    - curr
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 523
    functionName: _cf_item_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *_cf_item_next(CONF_ITEM const *parent, CONF_ITEM const *curr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/server/cf_util.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ci
    - curr
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: _cf_item_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_dlist_prev
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *_cf_item_prev(CONF_ITEM const *ci, CONF_ITEM const *curr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/cf_util.c:553,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:555,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ci
    - type
    - parent
    - filename
    - lineno
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM_TYPE
    - CONF_ITEM*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 557
    functionName: cf_item_init
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - fr_dlist_init
    - cf_lineno_set
    linkageType: ''
    returnType: void
    signature: void cf_item_init(CONF_ITEM *ci, CONF_ITEM_TYPE type, CONF_ITEM *parent,
      char const *filename, int lineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 575
    functionName: _cf_root
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *_cf_root(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: _cf_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *_cf_parent(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: _cf_lineno
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _cf_lineno(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 617
    functionName: _cf_filename
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *_cf_filename(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: cf_item_is_section
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_item_is_section(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: cf_item_is_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_item_is_pair(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 659
    functionName: cf_item_is_data
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_item_is_data(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:676,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: cf_item_to_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 55
    functionsReached:
    - fr_assert
    - UNCONST
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_item_to_pair(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:696,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 699
    functionName: cf_item_to_section
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 69
    functionsReached:
    - fr_assert
    - UNCONST
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *cf_item_to_section(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:716,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: cf_item_to_data
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - UNCONST
    linkageType: ''
    returnType: CONF_DATA
    signature: CONF_DATA *cf_item_to_data(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cp
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 735
    functionName: cf_pair_to_item
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 8
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_pair_to_item(CONF_PAIR const *cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 751
    functionName: cf_section_to_item
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 18
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_section_to_item(CONF_SECTION const *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cd
    argTypes:
    - CONF_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 767
    functionName: cf_data_to_item
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_data_to_item(CONF_DATA const *cd)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: cf_item_is_comment
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cf_item_is_comment(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:782,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: cf_item_to_comment
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - UNCONST
    linkageType: ''
    returnType: CONF_COMMENT
    signature: CONF_COMMENT *cf_item_to_comment(CONF_ITEM const *ci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - CONF_COMMENT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 792
    functionName: cf_comment_to_item
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *cf_comment_to_item(CONF_COMMENT const *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - CONF_COMMENT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 798
    functionName: cf_comment_text
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cf_comment_text(CONF_COMMENT const *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - preserve
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: cf_preserve_comments_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_preserve_comments_set(bool preserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: _cf_preserve_comments
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _cf_preserve_comments(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expand
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: cf_expand_variables_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_expand_variables_set(bool expand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: _cf_expand_variables
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _cf_expand_variables(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/cf_util.c:848,1
    - Dst: cf_item_init
      Src: /src/freeradius-server/src/lib/server/cf_util.c:851,1
    - Dst: cf_comment_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:851,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:852,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:854,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/cf_util.c:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - parent
    - text
    argTypes:
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 863
    functionName: cf_comment_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached:
    - cf_comment_to_item
    - cf_item_init
    - talloc_strdup
    - talloc_zero
    - cf_section_to_item
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: CONF_COMMENT
    signature: CONF_COMMENT *cf_comment_alloc(CONF_SECTION *parent, char const *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/cf_util.c:872,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/cf_util.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 876
    functionName: _cf_section_free
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int _cf_section_free(CONF_SECTION *cs)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:903,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_util.c:907,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_util.c:913,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/cf_util.c:919,1
    - Dst: cf_item_init
      Src: /src/freeradius-server/src/lib/server/cf_util.c:922,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:922,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:922,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:924,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:924,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:926,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:926,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/cf_util.c:929,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:942,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:942,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_util.c:942,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:944,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:953,1
    - Dst: _cf_section_rule_push
      Src: /src/freeradius-server/src/lib/server/cf_util.c:954,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:957,1
    - Dst: conf_parser_t*::on_read
      Src: /src/freeradius-server/src/lib/server/cf_util.c:961,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:962,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:975,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:975,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:977,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/cf_util.c:980,1
    - Dst: conf_parser_t*::on_read
      Src: /src/freeradius-server/src/lib/server/cf_util.c:981,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:981,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/cf_util.c:987,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 65
    argCount: 6
    argNames:
    - ctx
    - parent
    - name1
    - name2
    - filename
    - lineno
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 991
    functionName: _cf_section_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_data_find
    - talloc_strdup
    - cf_section_rules_push
    - MEM
    - ERROR
    - cf_item_init
    - _cf_section_rule_push
    - CF_TO_ITEM
    - cf_section_to_item
    - cf_item_add
    - cf_section_name1
    - talloc_set_destructor
    - strcmp
    - cf_data_value
    - cf_expand_variables
    - conf_parser_t*::on_read
    - talloc_free
    - strchr
    - talloc_zero
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *_cf_section_alloc(TALLOC_CTX *ctx, CONF_SECTION *parent,\n\t\t\t\tchar
      const *name1, char const *name2,\n\t\t\t\tchar const *filename, int lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1000,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ci
    - filename
    argTypes:
    - CONF_ITEM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1003
    functionName: _cf_filename_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - talloc_strdup
    linkageType: ''
    returnType: void
    signature: void _cf_filename_set(CONF_ITEM *ci, char const *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ci
    - lineno
    argTypes:
    - CONF_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1013
    functionName: _cf_lineno_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _cf_lineno_set(CONF_ITEM *ci, int lineno)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc::cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1038,1
    - Dst: cf_item_foreach
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1049,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1052,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1053,1
    - Dst: subcs::subcs
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1053,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1054,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1054,1
    - Dst: cf_pair_dup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1063,1
    - Dst: cf_item_to_pair::cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1063,1
    - Dst: cf_item_to_comment
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1080,1
    - Dst: cf_comment_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1081,1
    - Dst: src::src
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1081,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1083,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1084,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1090,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 6
    argNames:
    - ctx
    - parent
    - cs
    - name1
    - name2
    - copy_meta
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - CONF_SECTION*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1095
    functionName: cf_section_dup
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 4
    functionsReached:
    - cf_filename_set
    - cf_comment_alloc
    - cf_item_to_pair::cf_item_to_pair
    - src::src
    - cf_section_name2
    - cf_item_to_comment
    - fr_assert
    - subcs::subcs
    - cf_pair_dup
    - cf_section_dup
    - cf_lineno_set
    - cf_section_alloc::cf_section_alloc
    - cf_section_name1
    - cf_item_foreach
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *cf_section_dup(TALLOC_CTX *ctx, CONF_SECTION *parent,
      CONF_SECTION const *cs,\n\t\t\t     char const *name1, char const *name2, bool
      copy_meta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1106,1
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1106,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1107
    functionName: cf_section_first
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - cf_section_to_item
    - cf_next
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *cf_section_first(CONF_SECTION const *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1119,1
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1119,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1119,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - curr
    argTypes:
    - CONF_SECTION*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1120
    functionName: cf_section_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 3
    functionsReached:
    - cf_section_to_item
    - cf_next
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *cf_section_next(CONF_SECTION const *cs, CONF_SECTION
      const *curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1132,1
    - Dst: cf_prev
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1132,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1132,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - curr
    argTypes:
    - CONF_SECTION*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1133
    functionName: cf_section_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached:
    - cf_prev
    - cf_section_to_item
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *cf_section_prev(CONF_SECTION const *cs, CONF_SECTION
      const *curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1151,1
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1151,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cs
    - name1
    - name2
    argTypes:
    - CONF_SECTION*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1152
    functionName: cf_section_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 55
    functionsReached:
    - cf_section_to_item
    - cf_find
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *cf_section_find(CONF_SECTION const *cs,\n\t\t\t      char
      const *name1, char const *name2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1172,1
    - Dst: cf_find_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1172,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1172,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cs
    - prev
    - name1
    - name2
    argTypes:
    - CONF_SECTION*
    - CONF_SECTION*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1174
    functionName: cf_section_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 5
    functionsReached:
    - cf_find_next
    - cf_section_to_item
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *cf_section_find_next(CONF_SECTION const *cs, CONF_SECTION
      const *prev,\n\t\t\t\t   char const *name1, char const *name2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1198,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1199,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ci
    - name1
    - name2
    argTypes:
    - CONF_ITEM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1192
    functionDepth: 2
    functionLinenumber: 1192
    functionLinenumberEnd: 1203
    functionName: _cf_section_find_in_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_find
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *_cf_section_find_in_parent(CONF_ITEM const *ci,\n\t\t\t
      \     \t\t char const *name1, char const *name2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1219,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1222,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1224,1
    - Dst: cf_section_name_cmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ci
    - name1
    - name2
    argTypes:
    - CONF_ITEM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1230
    functionName: _cf_section_find_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_is_section
    - cf_parent
    - cf_section_name_cmp
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_SECTION
    signature: "CONF_SECTION *_cf_section_find_parent(CONF_ITEM const *ci,\n\t\t\t\t
      \     char const *name1, char const *name2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cs
    - attr
    argTypes:
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1247
    functionName: cf_section_value_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached:
    - cf_pair_find
    linkageType: ''
    returnType: char
    signature: char *cf_section_value_find(CONF_SECTION const *cs, char const *attr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1264,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1264,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1264,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1269,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1277,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - cs
    - name1
    - name2
    argTypes:
    - CONF_SECTION*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1281
    functionName: cf_section_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - cf_section_name2
    - cf_section_name1
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t cf_section_name_cmp(CONF_SECTION const *cs, char const *name1,
      char const *name2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1295
    functionName: cf_section_name1
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cf_section_name1(CONF_SECTION const *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1309
    functionName: cf_section_name2
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cf_section_name2(CONF_SECTION const *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1322,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1326
    functionName: cf_section_name
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 4
    functionsReached:
    - cf_section_name2
    - cf_section_name1
    linkageType: ''
    returnType: char
    signature: char *cf_section_name(CONF_SECTION const *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - argc
    argTypes:
    - CONF_SECTION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1339
    functionName: cf_section_argv
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cf_section_argv(CONF_SECTION const *cs, int argc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1356
    functionName: cf_section_name2_quote
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t cf_section_name2_quote(CONF_SECTION const *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - argc
    argTypes:
    - CONF_SECTION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1374
    functionName: cf_section_argv_quote
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t cf_section_argv_quote(CONF_SECTION const *cs, int argc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1393,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1396,1
    - Dst: cf_item_init
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1399,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1399,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1399,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1405,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1408,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1413,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1417,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 6
    argNames:
    - parent
    - attr
    - value
    - op
    - lhs_quote
    - rhs_quote
    argTypes:
    - CONF_SECTION*
    - char*
    - char*
    - fr_token_t
    - fr_token_t
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1388
    functionDepth: 2
    functionLinenumber: 1388
    functionLinenumberEnd: 1419
    functionName: cf_pair_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 33
    functionsReached:
    - cf_item_init
    - cf_pair_to_item
    - talloc_free
    - talloc_strdup
    - fr_assert
    - talloc_zero
    - cf_section_to_item
    - cf_item_add
    linkageType: ''
    returnType: CONF_PAIR
    signature: "CONF_PAIR *cf_pair_alloc(CONF_SECTION *parent, char const *attr, char
      const *value,\n\t\t\t fr_token_t op, fr_token_t lhs_quote, fr_token_t rhs_quote)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1434,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1435,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1437,1
    - Dst: cf_pair_alloc::cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1437,1
    - Dst: item::item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1441,1
    - Dst: item::item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - parent
    - cp
    - copy_meta
    argTypes:
    - CONF_SECTION*
    - CONF_PAIR*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1430
    functionDepth: 3
    functionLinenumber: 1430
    functionLinenumberEnd: 1448
    functionName: cf_pair_dup
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - item::item
    - cf_pair_value
    - cf_pair_alloc::cf_pair_alloc
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_dup(CONF_SECTION *parent, CONF_PAIR *cp, bool copy_meta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1466,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1468,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - cs
    - cp
    - value
    argTypes:
    - CONF_SECTION*
    - CONF_PAIR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1471
    functionName: cf_pair_replace
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - talloc_const_free
    - MEM
    - talloc_strdup
    linkageType: ''
    returnType: int
    signature: int cf_pair_replace(CONF_SECTION *cs, CONF_PAIR *cp, char const *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1481
    functionName: _cf_item_mark_parsed
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _cf_item_mark_parsed(CONF_ITEM *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1493
    functionName: _cf_item_is_parsed
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _cf_item_is_parsed(CONF_ITEM *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1504,1
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1504,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1505
    functionName: cf_pair_first
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - cf_item_to_pair
    - cf_section_to_item
    - cf_next
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_first(CONF_SECTION const *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1517,1
    - Dst: cf_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1517,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1517,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - curr
    argTypes:
    - CONF_SECTION*
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1518
    functionName: cf_pair_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - cf_item_to_pair
    - cf_section_to_item
    - cf_next
    - cf_pair_to_item
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_next(CONF_SECTION const *cs, CONF_PAIR const *curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1530,1
    - Dst: cf_prev
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1530,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1530,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - curr
    argTypes:
    - CONF_SECTION*
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1531
    functionName: cf_pair_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_prev
    - cf_section_to_item
    - cf_pair_to_item
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_prev(CONF_SECTION const *cs, CONF_PAIR const *curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1543,1
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1543,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - attr
    argTypes:
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1541
    functionDepth: 2
    functionLinenumber: 1541
    functionLinenumberEnd: 1544
    functionName: cf_pair_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 36
    functionsReached:
    - cf_item_to_pair
    - cf_find
    - cf_section_to_item
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_find(CONF_SECTION const *cs, char const *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1557,1
    - Dst: cf_find_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1557,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1557,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cs
    - prev
    - attr
    argTypes:
    - CONF_SECTION*
    - CONF_PAIR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1555
    functionDepth: 3
    functionLinenumber: 1555
    functionLinenumberEnd: 1558
    functionName: cf_pair_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 11
    functionsReached:
    - cf_item_to_pair
    - cf_find_next
    - cf_section_to_item
    - cf_pair_to_item
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_find_next(CONF_SECTION const *cs, CONF_PAIR const
      *prev, char const *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1571,1
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1576,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1577,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cs
    - attr
    argTypes:
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1581
    functionName: cf_pair_find_in_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_parent
    - cf_section_to_item
    - cf_find
    linkageType: ''
    returnType: CONF_PAIR
    signature: CONF_PAIR *cf_pair_find_in_parent(CONF_SECTION const *cs, char const
      *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1592,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1593,1
    - Dst: _pair_count
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1594,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - count
    - cs
    argTypes:
    - int*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1600
    functionName: _pair_count
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 4
    functionsReached:
    - cf_item_next
    - _pair_count
    - cf_item_is_section
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void _pair_count(int *count, CONF_SECTION const *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pair_count
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1614
    functionName: cf_pair_count_descendents
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - _pair_count
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cf_pair_count_descendents(CONF_SECTION const *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - attr
    argTypes:
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1622
    functionDepth: 4
    functionLinenumber: 1622
    functionLinenumberEnd: 1630
    functionName: cf_pair_count
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 3
    functionsReached:
    - cf_pair_find_next
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cf_pair_count(CONF_SECTION const *cs, char const *attr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1644,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1654,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1655,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1657,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1661,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1661,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1665,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - out
    - cs
    - attr
    - sep
    argTypes:
    - fr_sbuff_t*
    - CONF_SECTION*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1642
    functionDepth: 4
    functionLinenumber: 1642
    functionLinenumberEnd: 1671
    functionName: cf_pair_values_concat
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - cf_pair_value
    - cf_pair_find_next
    - FR_SBUFF_SET_RETURN
    - strlen
    - cf_pair_find
    - FR_SBUFF
    - fr_sbuff_in_strcpy
    - fr_sbuff_in_escape
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t cf_pair_values_concat(fr_sbuff_t *out, CONF_SECTION const
      *cs, char const *attr, char const *sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1687
    functionName: cf_pair_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cf_pair_attr(CONF_PAIR const *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1703
    functionName: cf_pair_value
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cf_pair_value(CONF_PAIR const *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1717
    functionName: cf_pair_operator
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t cf_pair_operator(CONF_PAIR const *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1729
    functionDepth: 0
    functionLinenumber: 1729
    functionLinenumberEnd: 1732
    functionName: cf_pair_attr_quote
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t cf_pair_attr_quote(CONF_PAIR const *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1747
    functionName: cf_pair_value_quote
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t cf_pair_value_quote(CONF_PAIR const *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1756,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cd
    argTypes:
    - CONF_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1754
    functionDepth: 0
    functionLinenumber: 1754
    functionLinenumberEnd: 1757
    functionName: _cd_free
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _cd_free(CONF_DATA *cd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1774,1
    - Dst: cf_item_init
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1777,1
    - Dst: cf_data_to_item
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1777,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1785,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1788,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1790,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - parent
    - data
    - type
    - name
    - do_free
    argTypes:
    - CONF_ITEM*
    - void*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1794
    functionName: cf_data_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_init
    - talloc_set_destructor
    - talloc_strdup
    - talloc_zero
    - cf_item_add
    - cf_data_to_item
    linkageType: ''
    returnType: CONF_DATA
    signature: CONF_DATA *cf_data_alloc(CONF_ITEM *parent, void const *data, char
      const *type, char const *name, bool do_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_data
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1809,1
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ci
    - type
    - name
    argTypes:
    - CONF_ITEM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1807
    functionDepth: 2
    functionLinenumber: 1807
    functionLinenumberEnd: 1810
    functionName: _cf_data_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 2
    functionsReached:
    - cf_item_to_data
    - cf_find
    linkageType: ''
    returnType: CONF_DATA
    signature: CONF_DATA *_cf_data_find(CONF_ITEM const *ci, char const *type, char
      const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_data
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1827,1
    - Dst: cf_find_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ci
    - prev
    - type
    - name
    argTypes:
    - CONF_ITEM*
    - CONF_ITEM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1825
    functionDepth: 3
    functionLinenumber: 1825
    functionLinenumberEnd: 1828
    functionName: _cf_data_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_find_next
    - cf_item_to_data
    linkageType: ''
    returnType: CONF_DATA
    signature: CONF_DATA *_cf_data_find_next(CONF_ITEM const *ci, CONF_ITEM const
      *prev, char const *type, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1848,1
    - Dst: cf_item_to_data
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1849,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ci
    - type
    - name
    argTypes:
    - CONF_ITEM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1841
    functionDepth: 2
    functionLinenumber: 1841
    functionLinenumberEnd: 1853
    functionName: _cf_data_find_in_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_item_to_data
    - cf_find
    linkageType: ''
    returnType: CONF_DATA
    signature: CONF_DATA *_cf_data_find_in_parent(CONF_ITEM const *ci, char const
      *type, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cd
    argTypes:
    - CONF_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1869
    functionName: cf_data_value
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 16
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *cf_data_value(CONF_DATA const *cd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1892,1
    - Dst: _cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1897,1
    - Dst: cf_data_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1902,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1904,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1908,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - ci
    - data
    - name
    - do_free
    - filename
    - lineno
    argTypes:
    - CONF_ITEM*
    - void*
    - char*
    - bool
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1883
    functionDepth: 3
    functionLinenumber: 1883
    functionLinenumberEnd: 1912
    functionName: _cf_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - _cf_data_find
    - talloc_get_name
    - cf_data_alloc
    - cf_lineno_set
    - cf_log_err
    linkageType: ''
    returnType: CONF_DATA
    signature: "CONF_DATA *_cf_data_add(CONF_ITEM *ci, void const *data, char const
      *name, bool do_free,\n\t\t\t      char const *filename, int lineno)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1934,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1939,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1941,1
    - Dst: cf_data_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1946,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1948,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1952,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - ci
    - data
    - type
    - name
    - filename
    - lineno
    argTypes:
    - CONF_ITEM*
    - void*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1925
    functionDepth: 3
    functionLinenumber: 1925
    functionLinenumberEnd: 1956
    functionName: _cf_data_add_static
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - _cf_data_find
    - cf_data_alloc
    - strcmp
    - cf_lineno_set
    - cf_log_err
    linkageType: ''
    returnType: CONF_DATA
    signature: "CONF_DATA *_cf_data_add_static(CONF_ITEM *ci, void const *data, char
      const *type, char const *name,\n\t\t\t\t     char const *filename, int lineno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_remove
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1975,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1977,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1978,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:1979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - cd
    argTypes:
    - CONF_ITEM*
    - CONF_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1982
    functionName: _cf_data_remove
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached:
    - talloc_const_free
    - cf_item_remove
    - talloc_set_destructor
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *_cf_data_remove(CONF_ITEM *parent, CONF_DATA const *cd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2006,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2008,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2015,1
    - Dst: cb
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2017,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2017,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - ci
    - type
    - cb
    - ctx
    argTypes:
    - CONF_ITEM*
    - char*
    - cf_walker_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2024
    functionName: _cf_data_walk
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_next_inorder
    - UNCONST
    - cb
    - strcmp
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: int
    signature: int _cf_data_walk(CONF_ITEM *ci, char const *type, cf_walker_t cb,
      void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2036,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - e
    - p
    - len
    - filename
    argTypes:
    - char**
    - char**
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2026
    functionDepth: 1
    functionLinenumber: 2026
    functionLinenumberEnd: 2053
    functionName: truncate_filename
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - strchr
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void truncate_filename(char const **e, char const **p, int *len, char
      const *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2073,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2073,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2079,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2079,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2082,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2082,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2089,1
    - Dst: talloc_bstr_realloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2089,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2089,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2091,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2091,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - out
    - table
    - table_len
    - cp
    argTypes:
    - int32_t*
    - fr_table_num_sorted_t*
    - size_t
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2096
    functionName: cf_pair_in_table
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 3
    functionsReached:
    - talloc_asprintf_append_buffer
    - cf_pair_attr
    - talloc_free
    - cf_pair_value
    - fr_table_value_by_str
    - talloc_array_length
    - talloc_bstr_realloc
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int cf_pair_in_table(int32_t *out, fr_table_num_sorted_t const *table,
      size_t table_len, CONF_PAIR *cp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2115,1
    - Dst: fr_vlog
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2116,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2117,1
    - Dst: truncate_filename
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2126,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2128,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2129,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2130,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2132,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 6
    argNames:
    - type
    - ci
    - file
    - line
    - fmt
    - ap
    argTypes:
    - fr_log_type_t
    - CONF_ITEM*
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2107
    functionDepth: 2
    functionLinenumber: 2107
    functionLinenumberEnd: 2135
    functionName: _cf_vlog
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - va_end
    - talloc_free
    - fr_vasprintf
    - va_copy
    - fr_vlog
    - truncate_filename
    - fr_log
    linkageType: ''
    returnType: void
    signature: void _cf_vlog(fr_log_type_t type, CONF_ITEM const *ci, char const *file,
      int line, char const *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2152,1
    - Dst: _cf_vlog
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2153,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - type
    - ci
    - file
    - line
    - fmt
    argTypes:
    - fr_log_type_t
    - CONF_ITEM*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2146
    functionDepth: 3
    functionLinenumber: 2146
    functionLinenumberEnd: 2155
    functionName: _cf_log
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - _cf_vlog
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void _cf_log(fr_log_type_t type, CONF_ITEM const *ci, char const *file,
      int line, char const *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2177,1
    - Dst: fr_vlog_perror
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2178,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2179,1
    - Dst: fr_log_pool_init
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2200,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2201,1
    - Dst: truncate_filename
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2203,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2208,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2216,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2217,1
    - Dst: talloc_strndup_append_buffer
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2217,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2230,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2231,1
    - Dst: talloc_strndup_append_buffer
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2231,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2238,1
    - Dst: fr_vlog_perror
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2239,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2240,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 7
    argNames:
    - type
    - ci
    - file
    - line
    - f_rules
    - fmt
    - ap
    argTypes:
    - fr_log_type_t
    - CONF_ITEM*
    - char*
    - int
    - fr_log_perror_format_t*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2169
    functionDepth: 2
    functionLinenumber: 2169
    functionLinenumberEnd: 2244
    functionName: _cf_vlog_perr
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - va_end
    - talloc_free
    - talloc_strndup_append_buffer
    - va_copy
    - truncate_filename
    - fr_vlog_perror
    - talloc_new
    - fr_asprintf
    - MEM
    - talloc_bstrdup
    - fr_log_pool_init
    linkageType: ''
    returnType: void
    signature: "void _cf_vlog_perr(fr_log_type_t type, CONF_ITEM const *ci, char const
      *file, int line,\n\t\t   fr_log_perror_format_t const *f_rules, char const *fmt,
      va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2265,1
    - Dst: _cf_vlog_perr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2266,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - type
    - ci
    - file
    - line
    - f_rules
    - fmt
    argTypes:
    - fr_log_type_t
    - CONF_ITEM*
    - char*
    - int
    - fr_log_perror_format_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2258
    functionDepth: 3
    functionLinenumber: 2258
    functionLinenumberEnd: 2268
    functionName: _cf_log_perr
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - _cf_vlog_perr
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: "void _cf_log_perr(fr_log_type_t type, CONF_ITEM const *ci, char const
      *file, int line,\n\t\t  fr_log_perror_format_t const *f_rules, char const *fmt,
      ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2288,1
    - Dst: fr_vlog
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2289,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2290,1
    - Dst: truncate_filename
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2299,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2301,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2302,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2303,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2305,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - type
    - ci
    - file
    - line
    - fmt
    argTypes:
    - fr_log_type_t
    - CONF_ITEM*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2308
    functionName: _cf_log_with_filename
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_vasprintf
    - fr_vlog
    - truncate_filename
    - fr_log
    linkageType: ''
    returnType: void
    signature: void _cf_log_with_filename(fr_log_type_t type, CONF_ITEM const *ci,
      char const *file, int line, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2326,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2328,1
    - Dst: _cf_vlog
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2329,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2329,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2330,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2334,1
    - Dst: _cf_vlog
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2335,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2335,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - type
    - parent
    - child
    - file
    - line
    - fmt
    argTypes:
    - fr_log_type_t
    - CONF_SECTION*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2320
    functionDepth: 3
    functionLinenumber: 2320
    functionLinenumberEnd: 2337
    functionName: _cf_log_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - _cf_vlog
    - CF_TO_ITEM
    - cf_pair_find
    linkageType: ''
    returnType: void
    signature: "void _cf_log_by_child(fr_log_type_t type, CONF_SECTION const *parent,
      char const *child,\n\t\t      char const *file, int line, char const *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2358,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2360,1
    - Dst: _cf_vlog_perr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2361,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2361,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2362,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2366,1
    - Dst: _cf_vlog_perr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2367,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2367,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - type
    - parent
    - child
    - file
    - line
    - f_rules
    - fmt
    argTypes:
    - fr_log_type_t
    - CONF_SECTION*
    - char*
    - char*
    - int
    - fr_log_perror_format_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2351
    functionDepth: 3
    functionLinenumber: 2351
    functionLinenumberEnd: 2369
    functionName: _cf_log_perr_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - _cf_vlog_perr
    - CF_TO_ITEM
    - cf_pair_find
    linkageType: ''
    returnType: void
    signature: "void _cf_log_perr_by_child(fr_log_type_t type, CONF_SECTION const
      *parent, char const *child,\n\t\t\t   char const *file, int line, fr_log_perror_format_t
      const *f_rules,\n\t\t\t   char const *fmt, ...)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2383,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2386,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2387,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2388,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2389,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2389,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2390,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2393,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2394,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2401,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2403,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2404,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2405,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2406,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2406,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2407,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2407,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2408,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2408,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2409,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2410,1
    - Dst: cf_item_to_data
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2416,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2418,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2419,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2420,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2421,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2426,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2430,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2431,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2432,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2432,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2433,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2434,1
    - Dst: cf_item_has_no_children
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2434,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2435,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2435,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2436,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2436,1
    - Dst: cf_item_has_no_children
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2438,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2443,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2448,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2453,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2459,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2461,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2468,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2469,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2470,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2472,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2474,1
    - Dst: cf_item_to_data
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2482,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2484,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2491,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2495
    functionName: _cf_item_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fr_rb_num_elements
    - fr_dlist_next
    - fr_table_str_by_value
    - fr_rb_find
    - cf_item_has_no_children
    - cf_item_to_data
    - DEBUG
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void _cf_item_debug(CONF_ITEM const *ci)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2448,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2453,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2459,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2461,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2468,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2469,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2470,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2472,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2474,1
    - Dst: cf_item_to_data
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2482,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2484,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2494
    functionName: cf_item_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - fr_table_str_by_value
    - fr_rb_find
    - cf_item_to_data
    - DEBUG
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void cf_item_foreach(ci, child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_debug
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cp
    argTypes:
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2502
    functionName: cf_pair_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_debug
    linkageType: ''
    returnType: void
    signature: void cf_pair_debug(CONF_PAIR *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_debug
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2506
    functionDepth: 1
    functionLinenumber: 2506
    functionLinenumberEnd: 2509
    functionName: cf_section_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_debug
    linkageType: ''
    returnType: void
    signature: void cf_section_debug(CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2520,1
    - Dst: _cf_item_remove
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2516
    functionDepth: 4
    functionLinenumber: 2516
    functionLinenumberEnd: 2523
    functionName: cf_item_free_children
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_item_next
    - _cf_item_remove
    linkageType: ''
    returnType: void
    signature: void cf_item_free_children(CONF_ITEM *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2529,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2531,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2532,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2533,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2535,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ci
    - slen
    - msg
    - str
    argTypes:
    - CONF_ITEM*
    - ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2525
    functionDepth: 1
    functionLinenumber: 2525
    functionLinenumberEnd: 2537
    functionName: _cf_canonicalize_error
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_log_perr
    - talloc_free
    - cf_log_err
    - fr_canonicalize_error
    linkageType: ''
    returnType: void
    signature: void _cf_canonicalize_error(CONF_ITEM *ci, ssize_t slen, char const
      *msg, char const *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2555,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2561,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2563,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2572,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2574,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2582,1
    - Dst: cf_pair_replace
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2583,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_util.c:2585,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - cs
    - ref
    - value
    argTypes:
    - CONF_SECTION*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2546
    functionDepth: 3
    functionLinenumber: 2546
    functionLinenumberEnd: 2589
    functionName: cf_pair_replace_or_add
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.c
    functionUses: 0
    functionsReached:
    - cf_pair_replace
    - cf_section_find
    - cf_section_alloc
    - fr_strerror_printf
    - strchr
    - cf_pair_alloc
    - cf_pair_find
    linkageType: ''
    returnType: int
    signature: int cf_pair_replace_or_add(CONF_SECTION *cs, char *ref, char const
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _signal
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: fr_signal_is_cancel
    functionSourceFile: /src/freeradius-server/src/lib/server/signal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_signal_is_cancel(_signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _signal
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: fr_signal_is_dup
    functionSourceFile: /src/freeradius-server/src/lib/server/signal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_signal_is_dup(_signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _signal
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: fr_signal_is_detach
    functionSourceFile: /src/freeradius-server/src/lib/server/signal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_signal_is_detach(_signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _signal
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: fr_signal_is_retry
    functionSourceFile: /src/freeradius-server/src/lib/server/signal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_signal_is_retry(_signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _signal
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: fr_signal_is_timeout
    functionSourceFile: /src/freeradius-server/src/lib/server/signal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_signal_is_timeout(_signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: TMPL_REQUEST_REF_DEF
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TMPL_REQUEST_REF_DEF(_name, _ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: UNRESOLVED_SET
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNRESOLVED_SET(_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: RESOLVED_SET
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESOLVED_SET(_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:191,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:194,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:195,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:196,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - in
    - p_rules
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 199
    functionName: tmpl_substr_terminal_check
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    - fr_sbuff_is_terminal
    - fr_sbuff_marker
    - fr_sbuff_marker_release
    - fr_sbuff_set
    linkageType: ''
    returnType: void
    signature: "void tmpl_substr_terminal_check(fr_sbuff_t *in,\n\t\t\t\t\t\t\t\t
      \    fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:203,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:205,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:212,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:214,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:216,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:221,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:223,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:224,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:227,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:232,1
    - Dst: ar_is_raw
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:232,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:233,1
    - Dst: ar_is_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:233,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:234,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:243,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:245,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:248,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:250,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:251,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:255,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - fp
    - ar
    - i
    argTypes:
    - FILE*
    - tmpl_attr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 259
    functionName: tmpl_attr_ref_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - ar_is_unknown
    - snprintf
    - fr_table_str_by_value
    - fprintf
    - ar_is_raw
    - STRINGIFY
    - fr_type_to_str
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_ref_debug(FILE *fp, const tmpl_attr_t *ar, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:266,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:270,1
    - Dst: tmpl_attr_ref_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fp
    - ar_head
    argTypes:
    - FILE*
    - FR_DLIST_HEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: tmpl_attr_ref_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_ref_debug
    - tmpl_attr_list_next
    - fprintf
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_ref_list_debug(FILE *fp, FR_DLIST_HEAD(tmpl_attr_list)
      const *ar_head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:287,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:288,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:292,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:293,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:295,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:297,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:297,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:297,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:298,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:298,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:300,1
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:305,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:306,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:307,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:311,1
    - Dst: tmpl_list_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:311,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:311,1
    - Dst: tmpl_attr_ref_list_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:312,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - fp
    - vpt
    argTypes:
    - FILE*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 313
    functionName: tmpl_attr_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_ref_list_debug
    - tmpl_attr
    - tmpl_list_name
    - fprintf
    - fr_table_str_by_value
    - tmpl_list
    - tmpl_request_list_next
    - tmpl_rules_cast
    - fr_box_strvalue_len
    - tmpl_type_to_str
    - fr_type_to_str
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_debug(FILE *fp, tmpl_t const *vpt)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:320,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:327,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:328,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:332,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:332,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:332,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:333,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:333,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:336,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:336,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:336,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:337,1
    - Dst: tmpl_value_length
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:337,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:338,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:338,1
    - Dst: tmpl_value_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:340,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:340,1
    - Dst: tmpl_value_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:341,1
    - Dst: tmpl_value_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:341,1
    - Dst: xlat_aprint
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:350,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:350,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:352,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:354,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:360,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:365,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:366,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:367,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:368,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:368,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:370,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:371,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - fp
    - vpt
    argTypes:
    - FILE*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 378
    functionName: tmpl_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 2
    functionsReached:
    - tmpl_is_data_unresolved
    - xlat_aprint
    - talloc_free
    - tmpl_needs_resolving
    - tmpl_attr_debug
    - tmpl_xlat
    - fprintf
    - fr_table_str_by_value
    - tmpl_value_type
    - tmpl_value_length
    - tmpl_value
    - tmpl_rules_cast
    - tmpl_value_enumv
    - tmpl_type_to_str
    - fr_type_to_str
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void tmpl_debug(FILE *fp, tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:404,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:406,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:408,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:410,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:412,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:416,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - da_p
    - in
    argTypes:
    - fr_dict_attr_t**
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: tmpl_attr_list_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 3
    functionsReached:
    - FR_SBUFF
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_adv_past_strcase
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t tmpl_attr_list_from_substr(fr_dict_attr_t const **da_p, fr_sbuff_t
      *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:469,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:470,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rql
    argTypes:
    - FR_DLIST_HEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 474
    functionName: tmpl_request_ref_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - tmpl_request_list_next
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: void tmpl_request_ref_list_debug(FR_DLIST_HEAD(tmpl_request_list) const
      *rql)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_request_list_initialised
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:496,1
    - Dst: tmpl_request_list_empty
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:496,1
    - Dst: tmpl_request_list_initialised
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:497,1
    - Dst: tmpl_request_list_empty
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:497,1
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:505,1
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:506,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:508,1
    - Dst: tmpl_request_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:508,1
    - Dst: tmpl_request_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:508,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:510,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FR_DLIST_HEAD*
    - FR_DLIST_HEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 512
    functionName: tmpl_request_ref_list_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_request_list_initialised
    - tmpl_request_list_empty
    - CMP
    - tmpl_request_list_next
    - tmpl_request_list_num_elements
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t tmpl_request_ref_list_cmp(FR_DLIST_HEAD(tmpl_request_list) const
      *a, FR_DLIST_HEAD(tmpl_request_list) const *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: request_attr_is_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:521,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:534,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:537,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:541,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - t_rules
    argTypes:
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 545
    functionName: tmpl_namespace
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ref
    - request_attr_is_list
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *tmpl_namespace(tmpl_rules_t const *t_rules)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:746,1
    - Dst: tmpl_attr_list_talloc_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:752,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:752,1
    - Dst: tmpl_request_list_talloc_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - vpt
    - type
    argTypes:
    - tmpl_t*
    - tmpl_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 760
    functionName: tmpl_type_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr
    - fr_assert
    - tmpl_request_list_talloc_init
    - tmpl_attr_list_talloc_init
    linkageType: ''
    returnType: void
    signature: void tmpl_type_init(tmpl_t *vpt, tmpl_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:776,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:777,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:779,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:780,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - vpt
    - quote
    - fmt
    argTypes:
    - tmpl_t*
    - fr_token_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 783
    functionName: tmpl_set_name_printf
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - fr_vasprintf
    - talloc_const_free
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void tmpl_set_name_printf(tmpl_t *vpt, fr_token_t quote, char const
      *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:795,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - vpt
    - quote
    - name
    - len
    argTypes:
    - tmpl_t*
    - fr_token_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 800
    functionName: tmpl_set_name_shallow
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - strlen
    linkageType: ''
    returnType: void
    signature: void tmpl_set_name_shallow(tmpl_t *vpt, fr_token_t quote, char const
      *name, ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:812,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:814,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:816,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:816,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - vpt
    - quote
    - name
    - len
    argTypes:
    - tmpl_t*
    - fr_token_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 819
    functionName: tmpl_set_name
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - talloc_bstrndup
    - talloc_const_free
    - fr_assert
    - strlen
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void tmpl_set_name(tmpl_t *vpt, fr_token_t quote, char const *name,
      ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpt
    - dict
    argTypes:
    - tmpl_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 829
    functionName: tmpl_set_dict_def
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tmpl_set_dict_def(tmpl_t *vpt, fr_dict_t const *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpt
    - escape
    argTypes:
    - tmpl_t*
    - tmpl_escape_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 839
    functionName: tmpl_set_escape
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tmpl_set_escape(tmpl_t *vpt, tmpl_escape_t const *escape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:848,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - vpt
    - xlat
    argTypes:
    - tmpl_t*
    - xlat_exp_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 851
    functionName: tmpl_set_xlat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - tmpl_xlat
    linkageType: ''
    returnType: void
    signature: void tmpl_set_xlat(tmpl_t *vpt, xlat_exp_head_t *xlat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:867,1
    - Dst: tmpl_type_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:868,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:870,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:871,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:872,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - vpt
    - type
    - quote
    - fmt
    argTypes:
    - tmpl_t*
    - tmpl_type_t
    - fr_token_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: tmpl_init_printf
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - fr_vasprintf
    - tmpl_type_init
    - talloc_strlen
    - memset
    linkageType: ''
    returnType: tmpl_t
    signature: tmpl_t *tmpl_init_printf(tmpl_t *vpt, tmpl_type_t type, fr_token_t
      quote, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:896,1
    - Dst: tmpl_type_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:897,1
    - Dst: tmpl_set_name_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - vpt
    - type
    - quote
    - name
    - len
    - t_rules
    argTypes:
    - tmpl_t*
    - tmpl_type_t
    - fr_token_t
    - char*
    - ssize_t
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 902
    functionName: tmpl_init_shallow
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 7
    functionsReached:
    - memset
    - tmpl_set_name_shallow
    - tmpl_type_init
    linkageType: ''
    returnType: tmpl_t
    signature: "tmpl_t *tmpl_init_shallow(tmpl_t *vpt, tmpl_type_t type, fr_token_t
      quote,\n\t\t\t  char const *name, ssize_t len, tmpl_rules_t const *t_rules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:918,1
    - Dst: tmpl_type_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:919,1
    - Dst: tmpl_set_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - vpt
    - type
    - quote
    - name
    - len
    - t_rules
    argTypes:
    - tmpl_t*
    - tmpl_type_t
    - fr_token_t
    - char*
    - ssize_t
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 924
    functionName: tmpl_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_set_name
    - memset
    - tmpl_type_init
    linkageType: ''
    returnType: tmpl_t
    signature: "tmpl_t *tmpl_init(tmpl_t *vpt, tmpl_type_t type, fr_token_t quote,\n\t\t
      \ char const *name, ssize_t len, tmpl_rules_t const *t_rules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:942,1
    - Dst: talloc_pooled_object
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 946
    functionName: tmpl_alloc_null
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - MEM
    - talloc_pooled_object
    linkageType: ''
    returnType: tmpl_t
    signature: tmpl_t *tmpl_alloc_null(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:963,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:964,1
    - Dst: tmpl_type_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:966,1
    - Dst: tmpl_set_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - type
    - quote
    - name
    - len
    argTypes:
    - TALLOC_CTX*
    - tmpl_type_t
    - fr_token_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: tmpl_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 6
    functionsReached:
    - tmpl_alloc_null
    - memset
    - tmpl_set_name
    - tmpl_type_init
    linkageType: ''
    returnType: tmpl_t
    signature: tmpl_t *tmpl_alloc(TALLOC_CTX *ctx, tmpl_type_t type, fr_token_t quote,
      char const *name, ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:986,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:986,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:989,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:989,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:992,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:992,1
    - Dst: tmpl_attr_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1000,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - vpt
    - type
    argTypes:
    - tmpl_t*
    - tmpl_attr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1003
    functionName: tmpl_attr_add
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_list_num_elements
    - tmpl_attr
    - talloc
    - tmpl_attr_list_insert_tail
    - tmpl_attr_list_tail
    - MEM
    linkageType: ''
    returnType: tmpl_attr_t
    signature: tmpl_attr_t *tmpl_attr_add(tmpl_t *vpt, tmpl_attr_type_t type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1023,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1023,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1024,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1027,1
    - Dst: tmpl_init_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1031,1
    - Dst: fr_value_box_steal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1034,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1034,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1036,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1036,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1036,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - out
    - data
    - steal
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_value_box_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1041
    functionName: tmpl_afrom_value_box
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 14
    functionsReached:
    - unlikely
    - fr_value_box_aprint
    - fr_value_box_steal
    - talloc_free
    - talloc
    - tmpl_init_shallow
    - tmpl_value
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int tmpl_afrom_value_box(TALLOC_CTX *ctx, tmpl_t **out, fr_value_box_t
      *data, bool steal)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1053,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1053,1
    - Dst: tmpl_attr_list_talloc_reverse_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1053,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1053,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1055,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1055,1
    - Dst: tmpl_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1056,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1067,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1071,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1075,1
    - Dst: tmpl_request_list_talloc_reverse_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1086,1
    - Dst: tmpl_request_ref_list_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1087,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - tmpl_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1097
    functionName: tmpl_attr_copy
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_attr_list_num_elements
    - fr_dict_attr_unknown_copy
    - tmpl_attr_add
    - tmpl_attr_list_next
    - tmpl_attr
    - fr_cond_assert
    - tmpl_request_ref_list_copy
    - tmpl_attr_list_talloc_reverse_free
    - TMPL_ATTR_VERIFY
    - talloc_bstrdup
    - tmpl_request_list_talloc_reverse_free
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_copy(tmpl_t *dst, tmpl_t const *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1106,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1111,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1111,1
    - Dst: tmpl_attr_list_talloc_reverse_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1112,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1112,1
    - Dst: tmpl_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1119,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1120,1
    - Dst: tmpl_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1122,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1125,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1125,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - vpt
    - da
    argTypes:
    - tmpl_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1130
    functionName: tmpl_attr_set_da
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_list_num_elements
    - fr_dict_attr_unknown_copy
    - tmpl_attr_add
    - tmpl_attr
    - tmpl_attr_list_talloc_reverse_free
    - talloc_get_type_abort_const
    - TMPL_ATTR_VERIFY
    - fr_dict_root
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_set_da(tmpl_t *vpt, fr_dict_attr_t const *da)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1139,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1139,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1140,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1145,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1145,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1146,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1146,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1147,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1147,1
    - Dst: tmpl_attr_list_prev
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1148,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1148,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1150,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1151,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1155,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1155,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1161,1
    - Dst: tmpl_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1170,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1178,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1186,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1186,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - vpt
    - da
    argTypes:
    - tmpl_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1191
    functionName: tmpl_attr_set_leaf_da
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_attr_list_num_elements
    - fr_dict_attr_unknown_copy
    - tmpl_attr_add
    - tmpl_attr_list_prev
    - tmpl_attr
    - fr_dict_attr_common_parent
    - tmpl_attr_list_tail
    - TMPL_ATTR_VERIFY
    - talloc_free_children
    - talloc_get_type_abort_const
    - tmpl_is_attr
    - fr_strerror_const
    - fr_dict_root
    - tmpl_assert_type
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_set_leaf_da(tmpl_t *vpt, fr_dict_attr_t const *da)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1206,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1206,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1206,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1208,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1208,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1210,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1210,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - vpt
    - to
    argTypes:
    - tmpl_t*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1224
    functionName: tmpl_attr_rewrite_leaf_num
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 2
    functionsReached:
    - tmpl_attr_list_num_elements
    - tmpl_attr
    - tmpl_attr_list_tail
    - tmpl_is_attr_unresolved
    - TMPL_ATTR_VERIFY
    - tmpl_is_attr
    - tmpl_assert_type
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_rewrite_leaf_num(tmpl_t *vpt, int16_t to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1231,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1231,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1232,1
    - Dst: tmpl_request_list_talloc_reverse_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1237,1
    - Dst: tmpl_request_ref_list_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1238,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - vpt
    - request_def
    argTypes:
    - tmpl_t*
    - FR_DLIST_HEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1241
    functionName: tmpl_attr_set_request_ref
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_request_ref_list_copy
    - TMPL_ATTR_VERIFY
    - fr_assert_msg
    - tmpl_is_attr
    - tmpl_type_to_str
    - tmpl_request_list_talloc_reverse_free
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_set_request_ref(tmpl_t *vpt, FR_DLIST_HEAD(tmpl_request_list)
      const *request_def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1245,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1245,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1246,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vpt
    - list
    argTypes:
    - tmpl_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1249
    functionName: tmpl_attr_set_list
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - TMPL_ATTR_VERIFY
    - tmpl_attr
    - tmpl_attr_list_head
    - tmpl_attr_is_list_attr
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_set_list(tmpl_t *vpt, fr_dict_attr_t const *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1262,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1262,1
    - Dst: tmpl_attr_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1267,1
    - Dst: tmpl_attr_set_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1268,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1268,1
    - Dst: tmpl_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1271,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1272,1
    - Dst: tmpl_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1274,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1278,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1278,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1284,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1284,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1287,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1288,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1289,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1294,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - out
    - list
    - da
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - tmpl_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1254
    functionDepth: 4
    functionLinenumber: 1254
    functionLinenumberEnd: 1302
    functionName: tmpl_attr_afrom_list
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_unknown_copy
    - fr_dict_by_da
    - tmpl_attr_add
    - talloc_free
    - FR_SBUFF_OUT
    - fr_strerror_printf
    - talloc_strdup
    - tmpl_attr_copy
    - tmpl_attr_set_list
    - tmpl_list
    - TMPL_ATTR_VERIFY
    - STRINGIFY
    - MEM
    - fr_dict_root
    - tmpl_print
    - tmpl_alloc
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_afrom_list(TALLOC_CTX *ctx, tmpl_t **out, tmpl_t const
      *list, fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1323,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1323,1
    - Dst: tmpl_attr_list_prev
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1332,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - vpt
    - ar
    argTypes:
    - tmpl_t*
    - tmpl_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1335
    functionName: tmpl_attr_insert
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_list_prev
    - tmpl_attr
    - tmpl_attr_list_insert_tail
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_insert(tmpl_t *vpt, tmpl_attr_t *ar)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1351,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1356,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1358,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1359,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1361,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1362,1
    - Dst: fr_sbuff_switch
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1366,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1369,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1374,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1390,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1395,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1396,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1399,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1404,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1412,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1418,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1421,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1425,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1429,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1429,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1432,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1443,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1446,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1447,1
    - Dst: xlat_tokenize_condition
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1462,1
    - Dst: xlat_impure_func
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1465,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1466,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1471,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1477,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1481,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1481,1
    - Dst: fr_sbuff_is_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1483,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1484,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1488,1
    - Dst: xlat_tokenize_expression
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1500,1
    - Dst: xlat_impure_func
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1503,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1504,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1510,1
    - Dst: fr_sbuff_is_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1520,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1522,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1530,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1534,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1534,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1536,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1555,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1558,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1559,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1569,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1570,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1575,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1584,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1586,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 149
    argCount: 4
    argNames:
    - err
    - ar
    - name
    - at_rules
    argTypes:
    - tmpl_attr_error_t*
    - tmpl_attr_t*
    - fr_sbuff_t*
    - tmpl_attr_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1348
    functionDepth: 6
    functionLinenumber: 1348
    functionLinenumberEnd: 1587
    functionName: tmpl_attr_parse_filter
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - xlat_impure_func
    - fr_sbuff_out
    - fr_type_is_structural
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - fr_sbuff_is_str
    - fr_sbuff_set_to_start
    - xlat_tokenize_condition
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_is_attr
    - fr_strerror_const
    - FR_SBUFF_TERMS
    - tmpl_attr_is_list_attr
    - fr_sbuff_switch
    - L
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_next
    - fr_sbuff_next_if_char
    - xlat_tokenize_expression
    - fr_sbuff_is_char
    - tmpl_afrom_substr
    - fr_sbuff_set
    - fr_dict_root
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_attr_parse_filter(tmpl_attr_error_t *err, tmpl_attr_t
      *ar,\n\t\t\t\t\tfr_sbuff_t *name, tmpl_attr_rules_t const *at_rules)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_parse_filter
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1604,1
    - Dst: tmpl_attr_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1615,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1616,1
    - Dst: tmpl_attr_insert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ar
    - err
    - vpt
    - name
    - at_rules
    argTypes:
    - tmpl_attr_t*
    - tmpl_attr_error_t*
    - tmpl_t*
    - fr_sbuff_t*
    - tmpl_attr_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1592
    functionDepth: 7
    functionLinenumber: 1592
    functionLinenumberEnd: 1624
    functionName: tmpl_attr_ref_from_unspecified_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_insert
    - fr_strerror_const
    - tmpl_attr_num_elements
    - tmpl_attr_parse_filter
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_attr_ref_from_unspecified_substr(tmpl_attr_t *ar, tmpl_attr_error_t
      *err,\n\t\t\t\t\t\ttmpl_t *vpt,\n\t\t\t\t\t\tfr_sbuff_t *name, tmpl_attr_rules_t
      const *at_rules)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1651,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1658,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1658,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1660,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1660,1
    - Dst: fr_sbuff_out_abstrncpy_allowed
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1667,1
    - Dst: tmpl_attr_ref_from_unspecified_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1671,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1673,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1675,1
    - Dst: tmpl_attr_list_talloc_free_to_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1676,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1676,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1679,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1681,1
    - Dst: tmpl_attr_parse_filter
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1694,1
    - Dst: tmpl_attr_insert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1699,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1705,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1714,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 7
    argNames:
    - ctx
    - err
    - vpt
    - parent
    - namespace
    - name
    - at_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_attr_error_t*
    - tmpl_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - tmpl_attr_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1645
    functionDepth: 8
    functionLinenumber: 1645
    functionLinenumberEnd: 1715
    functionName: tmpl_attr_ref_afrom_unresolved_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - tmpl_attr
    - fr_strerror_const
    - tmpl_attr_list_tail
    - talloc
    - fr_sbuff_out_abstrncpy_allowed
    - tmpl_attr_parse_filter
    - fr_sbuff_advance
    - FR_SBUFF
    - tmpl_attr_ref_from_unspecified_substr
    - fr_sbuff_set
    - MEM
    - tmpl_attr_insert
    - fr_sbuff_next_if_char
    - tmpl_attr_list_talloc_free_to_tail
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_attr_ref_afrom_unresolved_substr(TALLOC_CTX *ctx, tmpl_attr_error_t
      *err,\n\t\t\t\t\t\ttmpl_t *vpt,\n\t\t\t\t\t\tfr_dict_attr_t const *parent, fr_dict_attr_t
      const *namespace,\n\t\t\t\t\t\tfr_sbuff_t *name, tmpl_attr_rules_t const *at_rules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1725,1
    - Dst: tmpl_attr_ref_fixup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1727,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1729,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1729,1
    - Dst: tmpl_attr_insert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - vpt
    - da
    - parent
    argTypes:
    - TALLOC_CTX*
    - tmpl_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1738
    functionName: tmpl_attr_ref_fixup
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_attr_tail_da
    - tmpl_attr_ref_fixup
    - talloc
    - tmpl_attr_insert
    - MEM
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_ref_fixup(TALLOC_CTX *ctx, tmpl_t *vpt, fr_dict_attr_t
      const *da, fr_dict_attr_t const *parent)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1780,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1783,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1786,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1787,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1788,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1794,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1795,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1811,1
    - Dst: fr_dict_attr_search_by_qualified_name_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1813,1
    - Dst: tmpl_attr_ref_fixup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1829,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1829,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1833,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1845,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1860,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1862,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1862,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1864,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1880,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1889,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1904,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1911,1
    - Dst: tmpl_attr_ref_fixup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1912,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1931,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1933,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1933,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1937,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1938,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1946,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1948,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1957,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1960,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1963,1
    - Dst: fr_dict_unlocal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1968,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1970,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1972,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1974,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1974,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1981,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1983,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1989,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:1991,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2000,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2000,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2007,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2011,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2023,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2037,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2038,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2040,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2044,1
    - Dst: tmpl_attr_ref_afrom_unresolved_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2050,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2058,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2060,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2060,1
    - Dst: tmpl_attr_parse_filter
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2080,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2088,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2090,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2099,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2100,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2102,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2107,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2128,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2128,1
    - Dst: request_attr_is_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2134,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2138,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2153,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2153,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2154,1
    - Dst: tmpl_attr_insert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2158,1
    - Dst: tmpl_attr_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2160,1
    - Dst: tmpl_attr_list_talloc_free_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2162,1
    - Dst: tmpl_attr_insert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2178,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2184,1
    - Dst: tmpl_attr_tail_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2184,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2185,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2185,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2187,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2189,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 207
    argCount: 9
    argNames:
    - ctx
    - err
    - vpt
    - parent
    - namespace
    - name
    - p_rules
    - at_rules
    - depth
    argTypes:
    - TALLOC_CTX*
    - tmpl_attr_error_t*
    - tmpl_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_attr_rules_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 1766
    functionDepth: 9
    functionLinenumber: 1766
    functionLinenumberEnd: 2191
    functionName: tmpl_attr_afrom_attr_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_search_by_qualified_name_substr
    - fr_sbuff_out
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - fr_dict_attr_by_name_substr
    - fr_sbuff_marker_release
    - tmpl_attr_afrom_attr_substr
    - fr_dict_attr_unknown_raw_afrom_num
    - tmpl_attr_list_tail
    - fr_dict_unlocal
    - fr_type_to_str
    - MEM
    - tmpl_attr_insert
    - fr_dict_attr_unknown_vendor_afrom_num
    - fr_strerror_const_push
    - tmpl_is_attr
    - fr_strerror_const
    - tmpl_attr_ref_afrom_unresolved_substr
    - fr_sbuff_uint8
    - tmpl_attr_ref_fixup
    - UNCONST
    - fr_sbuff_marker
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - tmpl_attr_tail_is_normal
    - tmpl_attr_parse_filter
    - tmpl_rules_cast
    - fr_sbuff_next_if_char
    - request_attr_is_list
    - fr_sbuff_extend
    - talloc_free
    - fr_sbuff_is_char
    - tmpl_attr_list_talloc_free_tail
    - talloc
    - fr_dict_internal
    - TMPL_VERIFY
    - fr_dict_attr_child_by_num
    - fr_strerror_clear
    - fr_sbuff_set
    - fr_dict_attr_ref
    - fr_dict_root
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: "int tmpl_attr_afrom_attr_substr(TALLOC_CTX *ctx, tmpl_attr_error_t
      *err,\n\t\t\t\t       tmpl_t *vpt,\n\t\t\t\t       fr_dict_attr_t const *parent,
      fr_dict_attr_t const *namespace,\n\t\t\t\t       fr_sbuff_t *name,\n\t\t\t\t
      \      fr_sbuff_parse_rules_t const *p_rules, tmpl_attr_rules_t const *at_rules,\n\t\t\t\t
      \      unsigned int depth)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_unknown_afrom_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2198,1
    - Dst: TMPL_ATTR_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - vpt
    - ref
    argTypes:
    - tmpl_t*
    - tmpl_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2222
    functionName: attr_to_raw
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - TMPL_ATTR_VERIFY
    - fr_dict_attr_unknown_afrom_da
    linkageType: ''
    returnType: int
    signature: int attr_to_raw(tmpl_t *vpt, tmpl_attr_t *ref)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2271,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2285,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2286,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2288,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2294,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2295,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2301,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2301,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2309,1
    - Dst: tmpl_request_ref_list_from_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2320,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2328,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2329,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2332,1
    - Dst: tmpl_attr_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2337,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2343,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2344,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2357,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2357,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2357,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2358,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2365,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2365,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2365,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2366,1
    - Dst: tmpl_set_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2373,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2373,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2373,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2385,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2386,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2386,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2398,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2400,1
    - Dst: attr_to_raw
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2403,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2403,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2403,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2412,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2412,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2421,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2423,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2438,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2438,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2442,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2442,1
    - Dst: tmpl_attr_list_insert_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2449,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2449,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2456,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2456,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2456,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2459,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2459,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2462,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2462,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2465,1
    - Dst: tmpl_attr_list_insert_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2472,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2472,1
    - Dst: tmpl_request_ref_list_acopy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2481,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2488,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2495,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2495,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2496,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2498,1
    - Dst: tmpl_attr_tail_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2500,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2504,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2504,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2511,1
    - Dst: fr_type_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2512,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2512,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2512,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2513,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2514,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2514,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2514,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2516,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2522,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2525,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 135
    argCount: 6
    argNames:
    - ctx
    - err
    - out
    - name
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_attr_error_t*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2264
    functionDepth: 10
    functionLinenumber: 2264
    functionLinenumberEnd: 2526
    functionName: tmpl_afrom_attr_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 8
    functionsReached:
    - fr_sbuff_start
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - tmpl_attr_afrom_attr_substr
    - tmpl_attr_list_tail
    - fr_type_to_str
    - MEM
    - fr_sbuff_set_to_start
    - tmpl_attr
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_is_attr
    - fr_strerror_const
    - tmpl_attr_is_list_attr
    - attr_to_raw
    - tmpl_set_name
    - fr_type_cast
    - fr_sbuff_marker
    - fr_assert
    - FR_SBUFF_ERROR_RETURN
    - tmpl_attr_tail_is_normal
    - tmpl_rules_cast
    - fr_sbuff_next_if_char
    - tmpl_alloc
    - fr_sbuff_extend
    - tmpl_substr_terminal_check
    - talloc_free
    - tmpl_attr_list_next
    - fr_sbuff_used
    - tmpl_attr_list_head
    - tmpl_request_ref_list_acopy
    - talloc
    - fr_dict_internal
    - tmpl_attr_list_insert_head
    - TMPL_VERIFY
    - fr_sbuff_adv_past_strcase_literal
    - cf_log_warn
    - tmpl_request_ref_list_from_substr
    - fr_sbuff_set
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_afrom_attr_substr(TALLOC_CTX *ctx, tmpl_attr_error_t
      *err,\n\t\t\t       tmpl_t **out, fr_sbuff_t *name,\n\t\t\t       fr_sbuff_parse_rules_t
      const *p_rules,\n\t\t\t       tmpl_rules_t const *t_rules)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2548,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2549,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2549,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2552,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2556,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2557,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - err
    - out
    - name
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_attr_error_t*
    - tmpl_t**
    - char*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2540
    functionDepth: 11
    functionLinenumber: 2540
    functionLinenumberEnd: 2564
    functionName: tmpl_afrom_attr_str
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 35
    functionsReached:
    - fr_strerror_printf
    - fr_cond_assert
    - FR_SBUFF_IN
    - TMPL_VERIFY
    - strlen
    - tmpl_afrom_attr_substr
    - tmpl_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_afrom_attr_str(TALLOC_CTX *ctx, tmpl_attr_error_t *err,\n\t\t\t
      \   tmpl_t **out, char const *name, tmpl_rules_t const *t_rules)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2584,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2589,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2591,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2592,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2593,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2594,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2597,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2598,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2601,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2602,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2604,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2606,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2606,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2606,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2608,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2608,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2612,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2614,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - ctx
    - out
    - in
    - quote
    - t_rules
    - allow_enum
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_token_t
    - tmpl_rules_t*
    - bool
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2579
    functionDepth: 3
    functionLinenumber: 2579
    functionLinenumberEnd: 2617
    functionName: tmpl_afrom_value_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_init
    - fr_sbuff_start
    - fr_value_box_copy_shallow
    - fr_type_is_leaf
    - fr_value_box_from_substr
    - talloc_free
    - tmpl_alloc_null
    - fr_strerror_printf
    - fr_sbuff_used
    - fr_value_box_mark_safe_for
    - tmpl_value_type
    - TMPL_VERIFY
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_type_is_null
    - FR_SBUFF
    - tmpl_value
    - fr_type_to_str
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_value_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t\t fr_token_t quote,\n\t\t\t\t\t tmpl_rules_t const *t_rules,
      bool allow_enum,\n\t\t\t\t\t fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2639,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2642,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2643,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2645,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2645,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2646,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2646,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2647,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2636
    functionDepth: 3
    functionLinenumber: 2636
    functionLinenumberEnd: 2652
    functionName: tmpl_afrom_null_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - fr_value_box_init
    - fr_sbuff_used
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_adv_past_strcase_literal
    - FR_SBUFF
    - MEM
    - tmpl_alloc
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_null_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t\tfr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2667,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2671,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2672,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2676,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2677,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2678,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2681,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2681,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2681,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2681,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2683,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2664
    functionDepth: 3
    functionLinenumber: 2664
    functionLinenumberEnd: 2689
    functionName: tmpl_afrom_bool_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - fr_value_box_init
    - fr_sbuff_out
    - fr_sbuff_used
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - fr_strerror_const
    - MEM
    - tmpl_alloc
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_bool_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t\tfr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2705,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2711,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2713,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2713,1
    - Dst: fr_sbuff_out_abstrncpy_allowed
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2720,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2722,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2724,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2725,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2728,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2732,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2733,1
    - Dst: tmpl_set_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2740,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2740,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2740,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2742,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2742,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2742,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2743,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2743,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2744,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2748,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2702
    functionDepth: 3
    functionLinenumber: 2702
    functionLinenumberEnd: 2749
    functionName: tmpl_afrom_octets_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - tmpl_set_name
    - talloc_free
    - fr_sbuff_used
    - fr_base16_decode
    - talloc_realloc_size
    - FR_SBUFF_IN
    - FR_DBUFF_TMP
    - fr_sbuff_adv_past_strcase_literal
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF_SET_RETURN
    - fr_value_box_memdup_shallow
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_out_abstrncpy_allowed
    - MEM
    - tmpl_alloc
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_octets_substr(TALLOC_CTX *ctx, tmpl_t **out,
      fr_sbuff_t *in,\n\t\t\t\t\t  fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2765,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2772,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2772,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2776,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2778,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2778,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2784,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2785,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2786,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2787,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2791,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2792,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2800,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2801,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2802,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2805,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2805,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2805,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2805,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2806,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2820,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2824,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2761
    functionDepth: 3
    functionLinenumber: 2761
    functionLinenumberEnd: 2825
    functionName: tmpl_afrom_ipv4_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - fr_value_box_init
    - htonl
    - fr_sbuff_out
    - fr_sbuff_used
    - fr_sbuff_is_char
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - fr_strerror_const
    - MEM
    - fr_sbuff_next_if_char
    - tmpl_alloc
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_ipv4_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t\tfr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2841,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2861,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2868,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2871,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2880,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2880,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2881,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2881,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2882,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2890,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2890,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2892,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2899,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2900,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2902,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2910,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2913,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2914,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2918,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2927,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2928,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2932,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2932,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2932,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2932,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2933,1
    - Dst: FR_SBUFF_REPARSE
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2934,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2936,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2941,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2942
      start: 2837
    functionDepth: 3
    functionLinenumber: 2837
    functionLinenumberEnd: 2942
    functionName: tmpl_afrom_ipv6_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_out
    - memchr
    - fr_sbuff_current
    - MEM
    - fr_sbuff_adv_until
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_marker
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_next_if_char
    - tmpl_alloc
    - tmpl_substr_terminal_check
    - FR_SBUFF_REPARSE
    - fr_value_box_from_substr
    - talloc_free
    - fr_sbuff_used
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_ipv6_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t\tfr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2959,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2965,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2967,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2970,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2972,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2975,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2977,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2980,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2982,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2985,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2987,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2990,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2992,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2995,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:2996,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3000,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3000,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3001,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3001,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3002,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3004,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3005,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3009,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 2955
    functionDepth: 3
    functionLinenumber: 2955
    functionLinenumberEnd: 3010
    functionName: tmpl_afrom_ether_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - fr_value_box_init
    - memcpy
    - fr_dbuff_init
    - fr_sbuff_used
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_value
    - fr_strerror_const
    - fr_base16_decode
    - MEM
    - fr_sbuff_next_if_char
    - tmpl_alloc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_afrom_ether_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t       fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3026,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3033,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3036,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3039,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3040,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3042,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3045,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3045,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3046,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3046,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3047,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3049,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3052,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3055,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3058,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3067,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3070,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3071,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3075,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3075,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3076,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3076,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3077,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3079,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3082,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3085,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3088,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3095,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3096
      start: 3022
    functionDepth: 3
    functionLinenumber: 3022
    functionLinenumberEnd: 3096
    functionName: tmpl_afrom_integer_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - fr_value_box_init
    - fr_sbuff_out
    - fr_sbuff_used
    - fr_sbuff_is_char
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - tmpl_value
    - fr_strerror_const
    - MEM
    - tmpl_alloc
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_integer_substr(TALLOC_CTX *ctx, tmpl_t **out,
      fr_sbuff_t *in,\n\t\t\t\t\t   fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3102,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3107,1
    - Dst: tmpl_substr_terminal_check
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3110,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3111,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3112,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3115,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3115,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3116,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3116,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3117,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3118,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3098
    functionDepth: 3
    functionLinenumber: 3098
    functionLinenumberEnd: 3124
    functionName: tmpl_afrom_float_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - tmpl_substr_terminal_check
    - fr_value_box_init
    - fr_sbuff_out
    - fr_sbuff_used
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - tmpl_value
    - fr_strerror_const
    - MEM
    - tmpl_alloc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_afrom_float_substr(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t       fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3130,1
    - Dst: fr_time_delta_from_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3135,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3138,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3138,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3139,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3139,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3140,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3141,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - p_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3126
    functionDepth: 3
    functionLinenumber: 3126
    functionLinenumberEnd: 3147
    functionName: tmpl_afrom_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_value_box_init
    - fr_time_delta_from_substr
    - fr_sbuff_used
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_value
    - MEM
    - tmpl_alloc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_afrom_time_delta(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t\t     fr_sbuff_parse_rules_t const *p_rules)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3177,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3180,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3190,1
    - Dst: fr_sbuff_in_strcpy_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3209,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3211,1
    - Dst: fr_dict_enum_name_from_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3219,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3226,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3231,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3235,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3239,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3240,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3249,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3249,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3249,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3251,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3252,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3252,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3253,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3253,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3254,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3260,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3271,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3272,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3272,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3273,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3273,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3273,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3273,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3276,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3171
    functionDepth: 3
    functionLinenumber: 3171
    functionLinenumberEnd: 3277
    functionName: tmpl_afrom_enum
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - tmpl_init
    - unlikely
    - talloc_free
    - talloc_bstrndup
    - tmpl_alloc_null
    - fr_sbuff_used
    - fr_sbuff_adv_past_str_literal
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_dict_enum_by_name
    - FR_SBUFF
    - fr_dict_enum_name_from_substr
    - fr_strerror_const
    - fr_sbuff_in_strcpy_literal
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_afrom_enum(TALLOC_CTX *ctx, tmpl_t **out, fr_sbuff_t
      *in,\n\t\t\t       fr_sbuff_parse_rules_t const *p_rules,\n\t\t\t       tmpl_rules_t
      const *t_rules)"
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3311,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3330,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3330,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3337,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3341,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3342,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3343,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3345,1
    - Dst: UNRESOLVED_SET
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3346,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3349,1
    - Dst: xlat_exp_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3350,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3364,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3365,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3370,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3370,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3376,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3378,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3384,1
    - Dst: tmpl_afrom_value_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3385,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3391,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3402,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3402,1
    - Dst: tmpl_afrom_value_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3406,1
    - Dst: fr_sbuff_is_str_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3412,1
    - Dst: tmpl_afrom_enum
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3413,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3415,1
    - Dst: tmpl_afrom_null_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3424,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3426,1
    - Dst: tmpl_afrom_bool_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3431,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3434,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3436,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3438,1
    - Dst: tmpl_afrom_octets_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3443,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3445,1
    - Dst: tmpl_afrom_ether_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3454,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3456,1
    - Dst: tmpl_afrom_ipv4_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3461,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3463,1
    - Dst: tmpl_afrom_ipv6_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3468,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3470,1
    - Dst: tmpl_afrom_enum
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3472,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3474,1
    - Dst: tmpl_afrom_integer_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3479,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3481,1
    - Dst: tmpl_afrom_float_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3486,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3488,1
    - Dst: tmpl_afrom_time_delta
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3497,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3499,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3505,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3507,1
    - Dst: fr_sbuff_is_str_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3516,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3520,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3526,1
    - Dst: fr_dict_enum_name_afrom_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3534,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3541,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3546,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3550,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3554,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3555,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3558,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3559,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3559,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3563,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3571,1
    - Dst: tmpl_afrom_value_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3571,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3574,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3575,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3578,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3578,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3587,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3589,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3590,1
    - Dst: xlat_is_literal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3597,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3598,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3599,1
    - Dst: tmpl_afrom_value_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3601,1
    - Dst: xlat_to_string
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3611,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3612,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3614,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3615,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3625,1
    - Dst: UNRESOLVED_SET
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3625,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3627,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3627,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3637,1
    - Dst: xlat_tokenize_argv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3647,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3649,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3650,1
    - Dst: xlat_finalize
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3658,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3659,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3660,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3663,1
    - Dst: UNRESOLVED_SET
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3663,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3665,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3665,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3678,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3679,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3680,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3681,1
    - Dst: tmpl_alloc_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3684,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3686,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3688,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3689,1
    - Dst: xlat_to_string
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3702,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3703,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3704,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3713,1
    - Dst: UNRESOLVED_SET
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3713,1
    - Dst: tmpl_init
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3715,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3715,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3721,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3722,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3725,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3728,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 215
    argCount: 6
    argNames:
    - ctx
    - out
    - in
    - quote
    - p_rules
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - tmpl_t**
    - fr_sbuff_t*
    - fr_token_t
    - fr_sbuff_parse_rules_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3729
      start: 3306
    functionDepth: 11
    functionLinenumber: 3306
    functionLinenumberEnd: 3729
    functionName: tmpl_afrom_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 40
    functionsReached:
    - fr_sbuff_start
    - xlat_is_literal
    - fr_type_is_leaf
    - tmpl_afrom_bool_substr
    - tmpl_afrom_value_substr
    - tmpl_afrom_ether_substr
    - xlat_to_string
    - xlat_finalize
    - fr_sbuff_out_aunescape_until
    - tmpl_afrom_attr_substr
    - fr_dict_enum_name_afrom_substr
    - fr_assert_msg
    - xlat_tokenize_argv
    - UNRESOLVED_SET
    - fr_sbuff_set_to_start
    - fr_dlist_num_elements
    - tmpl_afrom_ipv4_substr
    - FR_SBUFF_SET_RETURN
    - xlat_needs_resolving
    - tmpl_afrom_null_substr
    - tmpl_afrom_ipv6_substr
    - fr_type_is_null
    - FR_SBUFF
    - fr_strerror_const
    - xlat_exp_head
    - tmpl_alloc_null
    - talloc_steal
    - tmpl_afrom_octets_substr
    - fr_assert
    - tmpl_afrom_integer_substr
    - FR_SBUFF_ERROR_RETURN
    - tmpl_afrom_float_substr
    - tmpl_afrom_time_delta
    - tmpl_init
    - TALLOC_FREE
    - talloc_free
    - fr_sbuff_used
    - xlat_tokenize
    - fr_sbuff_is_char
    - fr_sbuff_is_str_literal
    - TMPL_VERIFY
    - tmpl_afrom_enum
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_afrom_substr(TALLOC_CTX *ctx, tmpl_t **out,\n\t\t\t
      \   fr_sbuff_t *in, fr_token_t quote,\n\t\t\t    fr_sbuff_parse_rules_t const
      *p_rules,\n\t\t\t    tmpl_rules_t const *t_rules)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3746,1
    - Dst: tmpl_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3746,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3752,1
    - Dst: tmpl_is_regex_uncompiled
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3752,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3753,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3753,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3755,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3763,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3764,1
    - Dst: tmpl_attr_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3764,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3769,1
    - Dst: tmpl_is_regex
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3780,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3782,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3782,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3783,1
    - Dst: tmpl_regex_compile
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3783,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3790,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3790,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3801,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3803,1
    - Dst: xlat_exp_head_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3805,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3808,1
    - Dst: xlat_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3808,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3810,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3811,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3811,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3814,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3817,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 2
    argNames:
    - ctx
    - in
    argTypes:
    - TALLOC_CTX*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3742
    functionDepth: 3
    functionLinenumber: 3742
    functionLinenumberEnd: 3820
    functionName: tmpl_copy
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 5
    functionsReached:
    - tmpl_is_data
    - xlat_exp_head_alloc
    - tmpl_is_data_unresolved
    - MEM
    - unlikely
    - xlat_copy
    - tmpl_is_regex_uncompiled
    - talloc_bstrdup
    - fr_assert
    - tmpl_contains_regex
    - tmpl_alloc
    - tmpl_is_regex
    - tmpl_regex_compile
    - talloc_free
    - tmpl_contains_xlat
    - tmpl_attr_copy
    - TMPL_VERIFY
    - tmpl_contains_attr
    - fr_value_box_copy
    linkageType: ''
    returnType: tmpl_t
    signature: tmpl_t *tmpl_copy(TALLOC_CTX *ctx, tmpl_t const *in)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3845,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3850,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3858,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3859,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3860,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3861,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3862,1
    - Dst: fr_type_is_non_leaf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3864,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3865,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3865,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3866,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3869,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3870,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3871,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3873,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - rules
    - in
    argTypes:
    - tmpl_rules_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3878
      start: 3842
    functionDepth: 1
    functionLinenumber: 3842
    functionLinenumberEnd: 3878
    functionName: tmpl_cast_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_by_longest_prefix
    - fr_strerror_printf
    - fr_sbuff_marker
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_type_is_non_leaf
    - fr_type_is_null
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_next_if_char
    - fr_sbuff_adv_past_whitespace
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tmpl_cast_from_substr(tmpl_rules_t *rules, fr_sbuff_t *in)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3894,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3895,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3922,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3937,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3942,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3964,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3965,1
    - Dst: fr_type_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3971,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3972,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3973,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:3974,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - vpt
    - dst_type
    argTypes:
    - tmpl_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3888
    functionDepth: 2
    functionLinenumber: 3888
    functionLinenumberEnd: 3983
    functionName: tmpl_cast_set
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 8
    functionsReached:
    - fr_strerror_printf
    - tmpl_attr_tail_da
    - tmpl_rules_enumv
    - tmpl_value_type
    - fr_type_cast
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int tmpl_cast_set(tmpl_t *vpt, fr_type_t dst_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4001,1
    - Dst: tmpl_is_regex_uncompiled
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4001,1
    - Dst: tmpl_is_regex_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4001,1
    - Dst: tmpl_is_regex_xlat_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4001,1
    - Dst: regex_flags_parse
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - vpt
    - in
    - terminals
    argTypes:
    - tmpl_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 3996
    functionDepth: 1
    functionLinenumber: 3996
    functionLinenumberEnd: 4014
    functionName: tmpl_regex_flags_substr
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_is_regex_xlat_unresolved
    - fr_assert
    - regex_flags_parse
    - tmpl_is_regex_xlat
    - tmpl_is_regex_uncompiled
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tmpl_regex_flags_substr(tmpl_t *vpt, fr_sbuff_t *in, fr_sbuff_term_t
      const *terminals)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4041,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4043,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - existing_quote
    - type
    - enumv
    - unescaped
    - unescaped_len
    argTypes:
    - fr_token_t
    - fr_type_t
    - fr_dict_attr_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4037
    functionDepth: 1
    functionLinenumber: 4037
    functionLinenumberEnd: 4058
    functionName: tmpl_cast_quote
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_type_is_string
    - fr_dict_enum_by_name
    linkageType: ''
    returnType: fr_token_t
    signature: "fr_token_t tmpl_cast_quote(fr_token_t existing_quote,\n \t\t\t   fr_type_t
      type, fr_dict_attr_t const *enumv,\n \t\t\t   char const *unescaped, size_t
      unescaped_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4076,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4078,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4078,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4078,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4079,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4079,1
    - Dst: fr_type_is_octets
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4101,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4102,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4103,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4106,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4108,1
    - Dst: tmpl_cast_quote
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4112,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4113,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4114,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4115,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4126,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4135,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4142,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4159,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4170,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4172,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - vpt
    - type
    - enumv
    argTypes:
    - tmpl_t*
    - fr_type_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4074
    functionDepth: 2
    functionLinenumber: 4074
    functionLinenumberEnd: 4175
    functionName: tmpl_cast_in_place
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 10
    functionsReached:
    - fr_value_box_from_str
    - talloc_free
    - fr_value_box_cast_in_place
    - fr_type_is_octets
    - tmpl_attr_tail_da
    - fr_type_is_string
    - fr_value_box_mark_safe_for
    - tmpl_is_data
    - tmpl_is_attr_unresolved
    - TMPL_VERIFY
    - fr_assert
    - tmpl_cast_quote
    - tmpl_value_type
    - talloc_strlen
    - tmpl_is_attr
    - tmpl_is_data_unresolved
    - fr_value_box_memdup
    linkageType: ''
    returnType: int
    signature: int tmpl_cast_in_place(tmpl_t *vpt, fr_type_t type, fr_dict_attr_t
      const *enumv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4196,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4196,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4198,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4210,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4210,1
    - Dst: fr_dict_attr_search_by_name_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4212,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4215,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4216,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4224,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4224,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4237,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4237,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4247,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4247,1
    - Dst: tmpl_attr_list_prev
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4260,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4260,1
    - Dst: tmpl_attr_is_list_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4265,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4265,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4267,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4270,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4271,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4284,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4286,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4286,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4287,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4288,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4304,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4310,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4310,1
    - Dst: tmpl_attr_list_prev
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4323,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4323,1
    - Dst: tmpl_attr_list_remove
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4325,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4325,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4327,1
    - Dst: RESOLVED_SET
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4331,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4332,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - vpt
    - tr_rules
    argTypes:
    - tmpl_t*
    - tmpl_res_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4335
      start: 4190
    functionDepth: 2
    functionLinenumber: 4190
    functionLinenumberEnd: 4335
    functionName: tmpl_attr_resolve
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_list_remove
    - tmpl_attr_list_next
    - tmpl_attr_list_prev
    - tmpl_attr
    - talloc_free
    - tmpl_attr_list_head
    - FR_SBUFF_IN
    - fr_dict_attr_by_name_substr
    - RESOLVED_SET
    - fr_dict_internal
    - tmpl_is_attr_unresolved
    - fr_assert
    - TMPL_VERIFY
    - talloc_strlen
    - tmpl_attr_is_list_attr
    - fr_dict_root
    - fr_dict_attr_search_by_name_substr
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_resolve(tmpl_t *vpt, tmpl_res_rules_t const *tr_rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_resolve
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4356,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4362,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4362,1
    - Dst: RESOLVED_SET
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4364,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vpt
    - tr_rules
    argTypes:
    - tmpl_t*
    - tmpl_res_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4354
    functionDepth: 5
    functionLinenumber: 4354
    functionLinenumberEnd: 4368
    functionName: tmpl_xlat_resolve
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - RESOLVED_SET
    - TMPL_VERIFY
    - fr_assert
    - xlat_needs_resolving
    - xlat_resolve
    linkageType: ''
    returnType: int
    signature: int tmpl_xlat_resolve(tmpl_t *vpt, tmpl_res_rules_t const *tr_rules)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4390,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4404,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4404,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4405,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4406,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4407,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4418,1
    - Dst: tmpl_xlat_resolve
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4419,1
    - Dst: tmpl_contains_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4424,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4425,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4427,1
    - Dst: tmpl_attr_resolve
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4429,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4432,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4441,1
    - Dst: tmpl_rules_cast
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4442,1
    - Dst: tmpl_rules_enumv
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4443,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4459,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4469,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4473,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4489,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4491,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4499,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4502,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - vpt
    - tr_rules
    argTypes:
    - tmpl_t*
    - tmpl_res_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4505
      start: 4384
    functionDepth: 6
    functionLinenumber: 4384
    functionLinenumberEnd: 4505
    functionName: tmpl_resolve
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 14
    functionsReached:
    - tmpl_xlat_resolve
    - tmpl_needs_resolving
    - fr_strerror_printf
    - tmpl_rules_enumv
    - tmpl_contains_xlat
    - tmpl_attr_tail_da
    - tmpl_cast_in_place
    - fr_assert
    - TMPL_VERIFY
    - tmpl_rules_cast
    - fr_type_is_null
    - tmpl_is_data_unresolved
    - strncmp
    - tmpl_attr_resolve
    - tmpl_contains_attr
    linkageType: ''
    returnType: int
    signature: int tmpl_resolve(tmpl_t *vpt, tmpl_res_rules_t const *tr_rules)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4526,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4534,1
    - Dst: tmpl_attr_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4543,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4543,1
    - Dst: tmpl_request_list_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4544,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4556,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4560,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4565,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4566,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4567,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4568
      start: 4514
    functionDepth: 1
    functionLinenumber: 4514
    functionLinenumberEnd: 4568
    functionName: tmpl_unresolve
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - memcpy
    - talloc_free
    - tmpl_attr
    - tmpl_attr_list_talloc_free
    - tmpl_request_list_talloc_free
    - fr_value_box_clear
    - fr_assert
    - TMPL_VERIFY
    - talloc_bstrdup
    linkageType: ''
    returnType: void
    signature: void tmpl_unresolve(tmpl_t *vpt)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_assert_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4590,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4590,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4592,1
    - Dst: tmpl_attr_tail_is_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4594,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4596,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4596,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4605,1
    - Dst: fr_dict_attr_unknown_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4613,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4613,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4613,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4620,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4620,1
    - Dst: fr_dict_attr_unknown_parent_to_known
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4623,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4623,1
    - Dst: ar_is_raw
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4648,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4649,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4651,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4652,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4658
      start: 4579
    functionDepth: 2
    functionLinenumber: 4579
    functionLinenumberEnd: 4658
    functionName: tmpl_attr_unknown_add
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 4
    functionsReached:
    - ar_is_raw
    - fr_dict_unconst
    - tmpl_attr_list_next
    - fr_dict_attr_unknown_free
    - tmpl_attr
    - fr_cond_assert
    - tmpl_attr_tail_is_unknown
    - fr_dict_attr_unknown_parent_to_known
    - TMPL_VERIFY
    - tmpl_is_attr
    - fr_dict_attr_unknown_add
    - fr_strerror_const
    - fr_dict_attr_unconst
    - tmpl_assert_type
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: int tmpl_attr_unknown_add(tmpl_t *vpt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4691,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4693,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4695,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4696,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4696,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4696,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4699,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4699,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4699,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4703,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4704,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4705,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4709,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4710,1
    - Dst: tmpl_attr_set_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - dict_def
    - vpt
    - type
    - flags
    argTypes:
    - fr_dict_t*
    - tmpl_t*
    - fr_type_t
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4681
    functionDepth: 3
    functionLinenumber: 4681
    functionLinenumberEnd: 4718
    functionName: tmpl_attr_tail_unresolved_add
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_by_name
    - tmpl_attr_tail_unresolved
    - fr_strerror_printf
    - fr_dict_internal
    - tmpl_is_attr_unresolved
    - TMPL_VERIFY
    - fr_dict_attr_add
    - memcmp
    - fr_type_to_str
    - fr_dict_root
    - tmpl_attr_set_da
    linkageType: ''
    returnType: int
    signature: "int tmpl_attr_tail_unresolved_add(fr_dict_t *dict_def, tmpl_t *vpt,\n\t\t\t\t
      \ fr_type_t type, fr_dict_attr_flags_t const *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_regex_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4730,1
    - Dst: tmpl_is_regex
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4730,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4732,1
    - Dst: tmpl_is_regex_uncompiled
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4732,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4734,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4735,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - vpt
    - subcaptures
    argTypes:
    - tmpl_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4746
      start: 4725
    functionDepth: 1
    functionLinenumber: 4725
    functionLinenumberEnd: 4746
    functionName: tmpl_regex_compile
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 2
    functionsReached:
    - tmpl_is_regex
    - regex_compile
    - fr_assert
    - TMPL_VERIFY
    - tmpl_is_regex_xlat
    - tmpl_is_regex_uncompiled
    - talloc_strlen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tmpl_regex_compile(tmpl_t *vpt, bool subcaptures)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4755,1
    - Dst: tmpl_request_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4756,1
    - Dst: FR_SBUFF_IN_TABLE_STR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4762,1
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4763,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4764,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - rql
    argTypes:
    - fr_sbuff_t*
    - FR_DLIST_HEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4768
      start: 4753
    functionDepth: 1
    functionLinenumber: 4753
    functionLinenumberEnd: 4768
    functionName: tmpl_request_ref_list_print
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_IN_TABLE_STR_RETURN
    - tmpl_request_list_next
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_request_list_head
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t tmpl_request_ref_list_print(fr_sbuff_t *out, FR_DLIST_HEAD(tmpl_request_list)
      const *rql)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4785,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4788,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4799,1
    - Dst: tmpl_request_ref_list_print
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4806,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4807,1
    - Dst: tmpl_attr_tail_is_raw
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4819,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4819,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4825,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4825,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4835,1
    - Dst: fr_proto_da_stack_build_partial
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4837,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4842,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4842,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4866,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4866,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4870,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4876,1
    - Dst: fr_proto_da_stack_build_partial
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4895,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4903,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4904,1
    - Dst: FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4910,1
    - Dst: ar_filter_is_none
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4915,1
    - Dst: ar_filter_is_num
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4918,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4924,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4928,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4932,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4936,1
    - Dst: ar_filter_is_cond
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4940,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4941,1
    - Dst: xlat_print
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4942,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4943,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4946,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4949,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4949,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4949,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4951,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 2
    argNames:
    - out
    - vpt
    argTypes:
    - fr_sbuff_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4952
      start: 4781
    functionDepth: 3
    functionLinenumber: 4781
    functionLinenumberEnd: 4952
    functionName: tmpl_attr_print
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - ar_filter_is_num
    - FR_SBUFF_IN_SPRINTF_RETURN
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - tmpl_attr
    - FR_SBUFF_SET_RETURN
    - fr_proto_da_stack_build_partial
    - FR_SBUFF
    - xlat_print
    - tmpl_attr_tail_is_raw
    - fr_assert
    - FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN
    - ar_filter_is_cond
    - tmpl_request_ref_list_print
    - FR_SBUFF_IN_STRCPY_RETURN
    - tmpl_attr_list_next
    - tmpl_attr_list_head
    - ar_filter_is_none
    - FR_SBUFF_IN_CHAR_RETURN
    - TMPL_VERIFY
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t tmpl_attr_print(fr_sbuff_t *out, tmpl_t const *vpt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4977,1
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4979,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4984,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4988,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4988,1
    - Dst: FR_SBUFF_IN_BSTRNCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4992,1
    - Dst: FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:4996,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5001,1
    - Dst: tmpl_contains_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5012,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5013,1
    - Dst: tmpl_xlat
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5013,1
    - Dst: tmpl_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5017,1
    - Dst: FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5018,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5022,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5022,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5027,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5031,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - out
    - vpt
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - tmpl_t*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 4974
    functionDepth: 2
    functionLinenumber: 4974
    functionLinenumberEnd: 5032
    functionName: tmpl_print
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 5
    functionsReached:
    - FR_SBUFF_IN_BSTRNCPY_RETURN
    - FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
    - tmpl_needs_resolving
    - tmpl_contains_xlat
    - tmpl_xlat
    - TMPL_VERIFY
    - tmpl_type_to_str
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_value
    - fr_sbuff_terminate
    - fr_assert_fail
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t tmpl_print(fr_sbuff_t *out, tmpl_t const *vpt,\n\t\t     fr_sbuff_escape_rules_t
      const *e_rules)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5051,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5055,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5056,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5058,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5063,1
    - Dst: tmpl_regex_flags
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5063,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - out
    - vpt
    argTypes:
    - fr_sbuff_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5066
      start: 5049
    functionDepth: 1
    functionLinenumber: 5049
    functionLinenumberEnd: 5066
    functionName: tmpl_print_quoted
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - tmpl_regex_flags
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t tmpl_print_quoted(fr_sbuff_t *out, tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5088
      start: 5079
    functionDepth: 0
    functionLinenumber: 5079
    functionLinenumberEnd: 5088
    functionName: is_zeroed
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *is_zeroed(uint8_t const *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _vpt
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5094
      start: 5093
    functionDepth: 0
    functionLinenumber: 5093
    functionLinenumberEnd: 5094
    functionName: CHECK_ZEROED
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ZEROED(_vpt, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _vpt
    - ','
    - _field
    - ','
    - _nz_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5111
      start: 5099
    functionDepth: 0
    functionLinenumber: 5099
    functionLinenumberEnd: 5111
    functionName: PRINT_NON_ZEROED
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_NON_ZEROED(_vpt, _field, _nz_ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5128,1
    - Dst: tmpl_is_attr_unresolved
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5128,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5128,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5133,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5133,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5134,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5134,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5139,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5139,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5140,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5154,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5154,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5154,1
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5158,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5159,1
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5168,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5169,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5177,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5182,1
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5194,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5195,1
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5203,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5204,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5215,1
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5223,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - file
    - line
    - vpt
    argTypes:
    - char*
    - int
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5234
      start: 5121
    functionDepth: 5
    functionLinenumber: 5121
    functionLinenumberEnd: 5234
    functionName: tmpl_attr_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_is_list
    - tmpl_attr_list_next
    - tmpl_attr
    - tmpl_attr_debug
    - tmpl_is_attr_unresolved
    - fr_assert
    - fr_fatal_assert_fail
    - tmpl_is_attr
    - fr_fatal_assert_msg
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_verify(char const *file, int line, tmpl_t const *vpt)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5248,1
    - Dst: tmpl_is_uninitialised
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5250,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5251,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5256,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5263,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5268,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5283,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5290,1
    - Dst: xlat_needs_resolving
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5295,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5296,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5303,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5331,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5331,1
    - Dst: tmpl_attr_list_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5332,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5332,1
    - Dst: tmpl_attr_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5334,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5336,1
    - Dst: tmpl_attr_list_num_elements
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5337,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5337,1
    - Dst: CHECK_ZEROED
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5342,1
    - Dst: PRINT_NON_ZEROED
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5343,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5344,1
    - Dst: tmpl_attr_tail_is_unspecified
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5349,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5350,1
    - Dst: tmpl_attr_tail_is_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5354,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5355,1
    - Dst: tmpl_attr_tail_unknown
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5355,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5356,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5370,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5370,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5372,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5374,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5375,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5375,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5378,1
    - Dst: tmpl_attr_tail_is_raw
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5379,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5379,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5380,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5384,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5384,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5385,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5385,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5387,1
    - Dst: tmpl_attr_verify
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5390,1
    - Dst: CHECK_ZEROED
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5395,1
    - Dst: PRINT_NON_ZEROED
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5396,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5397,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5408,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5409,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5410,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5416,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5418,1
    - Dst: tmpl_value_length
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5418,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5419,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5425,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5438,1
    - Dst: tmpl_regex
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5445,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5446,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5450,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5456,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5459,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 103
    argCount: 3
    argNames:
    - file
    - line
    - vpt
    argTypes:
    - char*
    - int
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5461
      start: 5244
    functionDepth: 6
    functionLinenumber: 5244
    functionLinenumberEnd: 5461
    functionName: tmpl_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - tmpl_attr_tail_da
    - tmpl_attr_debug
    - tmpl_attr_tail_is_unknown
    - tmpl_value_type
    - fr_fatal_assert_fail
    - tmpl_value_length
    - tmpl_attr_list_tail
    - fr_type_to_str
    - tmpl_is_uninitialised
    - tmpl_attr_verify
    - tmpl_attr
    - PRINT_NON_ZEROED
    - xlat_needs_resolving
    - tmpl_attr_tail_unknown
    - tmpl_attr_list_num_elements
    - tmpl_attr_tail_is_raw
    - CHECK_ZEROED
    - fr_assert
    - tmpl_regex
    - tmpl_attr_tail_is_unspecified
    - tmpl_value
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void tmpl_verify(char const *file, int line, tmpl_t const *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5469
      start: 5468
    functionDepth: 0
    functionLinenumber: 5468
    functionLinenumberEnd: 5469
    functionName: return_P
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_P(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _offset
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5471
      start: 5470
    functionDepth: 0
    functionLinenumber: 5470
    functionLinenumberEnd: 5471
    functionName: is_char
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_char(_offset, _x)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5501,1
    - Dst: isalnum
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5517,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5523,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5578,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5579,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5585,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5585,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5586,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5587,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5612,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5640,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5640,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5666,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5666,1
    - Dst: is_char
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5677,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5678,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5691,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5712,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5825,1
    - Dst: fr_skip_condition
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5841,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5866,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5870,1
    - Dst: return_P
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5874,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 234
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - type
    argTypes:
    - char**
    - size_t*
    - char*
    - size_t
    - fr_token_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5882
      start: 5490
    functionDepth: 1
    functionLinenumber: 5490
    functionLinenumberEnd: 5882
    functionName: tmpl_preparse
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - is_char
    - isspace
    - fr_skip_condition
    - fr_strerror_const
    - return_P
    - isalnum
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t tmpl_preparse(char const **out, size_t *outlen, char const
      *in, size_t inlen,\n\t\t      fr_token_t *type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - vpt
    argTypes:
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5908
      start: 5891
    functionDepth: 0
    functionLinenumber: 5891
    functionLinenumberEnd: 5908
    functionName: tmpl_async_required
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tmpl_async_required(tmpl_t const *vpt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5922,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5924,1
    - Dst: tmpl_request_ref_list_acopy
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5935,1
    - Dst: tmpl_list
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5937,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5943,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5948,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5949,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - out
    - parent
    - vpt
    argTypes:
    - TALLOC_CTX*
    - tmpl_rules_t*
    - tmpl_rules_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5967
      start: 5913
    functionDepth: 4
    functionLinenumber: 5913
    functionLinenumberEnd: 5967
    functionName: tmpl_rules_child_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 1
    functionsReached:
    - tmpl_attr_tail_da
    - tmpl_request_ref_list_acopy
    - fr_dict_internal
    - tmpl_list
    - tmpl_is_attr
    - fr_dict_attr_ref
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void tmpl_rules_child_init(TALLOC_CTX *ctx, tmpl_rules_t *out, tmpl_rules_t
      const *parent, tmpl_t *vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5971,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5971,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5972,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5974,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5976,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5977,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5978,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5979,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - at_rules
    argTypes:
    - tmpl_attr_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5981
      start: 5969
    functionDepth: 1
    functionLinenumber: 5969
    functionLinenumberEnd: 5981
    functionName: tmpl_attr_rules_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void tmpl_attr_rules_debug(tmpl_attr_rules_t const *at_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5986,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5987,1
    - Dst: tmpl_attr_rules_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5988,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5989,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5990,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5991,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5991,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5992,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/tmpl_tokenize.c:5993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - rules
    argTypes:
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5995
      start: 5984
    functionDepth: 2
    functionLinenumber: 5984
    functionLinenumberEnd: 5995
    functionName: tmpl_rules_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_type_to_str
    - tmpl_attr_rules_debug
    linkageType: ''
    returnType: void
    signature: void tmpl_rules_debug(tmpl_rules_t const *rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _rcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: RETURN_UNLANG_RCODE
    functionSourceFile: /src/freeradius-server/src/lib/server/rcode.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_UNLANG_RCODE(_rcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:111,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/lib/server/snmp.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - NDEBUG_UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: snmp_value_serv_ident_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_value_box_asprintf
    linkageType: ''
    returnType: int
    signature: "int snmp_value_serv_ident_get(TALLOC_CTX *ctx, fr_value_box_t *out,
      NDEBUG_UNUSED fr_snmp_map_t const *map,\n\t\t\t\t     UNUSED void *snmp_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:124,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/snmp.c:126,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/snmp.c:127,1
    - Dst: fr_time_delta_to_csec
      Src: /src/freeradius-server/src/lib/server/snmp.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - NDEBUG_UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: snmp_value_uptime_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_time_sub
    - fr_assert
    - fr_time_delta_to_csec
    - fr_time
    linkageType: ''
    returnType: int
    signature: "int snmp_value_uptime_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t *out,
      NDEBUG_UNUSED fr_snmp_map_t const *map,\n\t\t\t\t UNUSED void *snmp_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:143,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/snmp.c:145,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/snmp.c:146,1
    - Dst: fr_time_delta_to_csec
      Src: /src/freeradius-server/src/lib/server/snmp.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - NDEBUG_UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: snmp_config_reset_time_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_time_sub
    - fr_assert
    - fr_time_delta_to_csec
    - fr_time
    linkageType: ''
    returnType: int
    signature: "int snmp_config_reset_time_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *out, NDEBUG_UNUSED fr_snmp_map_t const *map,\n\t\t\t\t      UNUSED void *snmp_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - NDEBUG_UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: snmp_config_reset_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int snmp_config_reset_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t *out,
      NDEBUG_UNUSED fr_snmp_map_t const *map,\n\t\t\t\t UNUSED void *snmp_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:168,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/lib/server/snmp.c:172,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/snmp.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - map
    - snmp_ctx
    - in
    argTypes:
    - NDEBUG_UNUSED*
    - UNUSED*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 180
    functionName: snmp_config_reset_set
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - main_loop_signal_raise
    - fr_assert
    - fr_time
    linkageType: ''
    returnType: int
    signature: int snmp_config_reset_set(NDEBUG_UNUSED fr_snmp_map_t const *map, UNUSED
      void *snmp_ctx, fr_value_box_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_snmp_map_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: snmp_auth_stats_offset_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int snmp_auth_stats_offset_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *out,\n\t\t\t\t      fr_snmp_map_t const *map, UNUSED void *snmp_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:198,1
    - Dst: client_findbynumber
      Src: /src/freeradius-server/src/lib/server/snmp.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - snmp_ctx_out
    - map
    - snmp_ctx_in
    - index_num
    argTypes:
    - UNUSED
    - void**
    - UNUSED*
    - NDEBUG_UNUSED*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: snmp_client_index
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - client_findbynumber
    linkageType: ''
    returnType: int
    signature: "int snmp_client_index(UNUSED TALLOC_CTX *ctx, void **snmp_ctx_out,\n\t\t\t
      \    UNUSED fr_snmp_map_t const *map,\n\t\t\t     NDEBUG_UNUSED void const *snmp_ctx_in,
      uint32_t index_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: snmp_client_index_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int snmp_client_index_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t *out,\n\t\t\t\t
      UNUSED fr_snmp_map_t const *map, void *snmp_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:226,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/snmp.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - NDEBUG_UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: snmp_client_ipv4addr_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int snmp_client_ipv4addr_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *out,\n\t\t\t\t    NDEBUG_UNUSED fr_snmp_map_t const *map, void *snmp_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:246,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:247,1
    - Dst: fr_value_box_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/server/snmp.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - NDEBUG_UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: snmp_client_id_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_value_box_bstrdup_buffer
    linkageType: ''
    returnType: int
    signature: "int snmp_client_id_get(TALLOC_CTX *ctx, fr_value_box_t *out,\n\t\t\t
      \     NDEBUG_UNUSED fr_snmp_map_t const *map, void *snmp_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - TALLOC_CTX *ctx
    - out
    - map
    - snmp_ctx
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_snmp_map_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: snmp_auth_client_stats_offset_get
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int snmp_auth_client_stats_offset_get(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *out,\n\t\t\t\t  \t     fr_snmp_map_t const *map, void *snmp_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:478,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:484,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - map
    - da
    argTypes:
    - fr_snmp_map_t[]
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 501
    functionName: snmp_map_search
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: fr_snmp_map_t
    signature: fr_snmp_map_t *snmp_map_search(fr_snmp_map_t const map[], fr_dict_attr_t
      const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - da_stack
    - depth
    - map
    argTypes:
    - fr_da_stack_t*
    - unsigned int
    - fr_snmp_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 523
    functionName: snmp_next_leaf
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void snmp_next_leaf(fr_da_stack_t *da_stack, unsigned int depth, fr_snmp_map_t
      const *map)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/server/snmp.c:545,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:547,1
    - Dst: fr_snmp_map_t*::index
      Src: /src/freeradius-server/src/lib/server/snmp.c:551,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/snmp.c:553,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/snmp.c:557,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:561,1
    - Dst: snmp_process
      Src: /src/freeradius-server/src/lib/server/snmp.c:568,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/snmp.c:572,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/server/snmp.c:588,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/snmp.c:598,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/snmp.c:600,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/snmp.c:604,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/snmp.c:604,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/server/snmp.c:606,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:611,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 9
    argNames:
    - out
    - request
    - da_stack
    - depth
    - cursor
    - map
    - snmp_ctx
    - snmp_op
    - index_num
    argTypes:
    - fr_dcursor_t*
    - request_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t
    - fr_snmp_map_t*
    - void*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 614
    functionName: snmp_process_index
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_dcursor_prepend
    - TALLOC_FREE
    - fr_snmp_map_t*::index
    - talloc_free
    - fr_strerror_printf
    - fr_proto_da_stack_build
    - fr_dict_attr_child_by_num
    - talloc_new
    - fr_strerror_const
    - MEM
    - snmp_process
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t snmp_process_index(fr_dcursor_t *out, request_t *request,\n\t\t\t\t
      \ fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t\t  fr_dcursor_t cursor,\n\t\t\t\t
      \ fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op,\n\t\t\t\t
      \ uint32_t index_num)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/server/snmp.c:625,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:628,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:634,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/snmp.c:639,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/snmp.c:645,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/snmp.c:647,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/snmp.c:654,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/server/snmp.c:661,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/server/snmp.c:662,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/server/snmp.c:663,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/snmp.c:665,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/server/snmp.c:665,1
    - Dst: snmp_process_index
      Src: /src/freeradius-server/src/lib/server/snmp.c:668,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 8
    argNames:
    - out
    - request
    - da_stack
    - depth
    - cursor
    - map
    - snmp_ctx
    - snmp_op
    argTypes:
    - fr_dcursor_t*
    - request_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - fr_snmp_map_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 673
    functionName: snmp_process_index_attr
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - snmp_process_index
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dict_attr_common_parent
    - fr_strerror_printf
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t snmp_process_index_attr(fr_dcursor_t *out, request_t *request,\n\t\t\t\t
      \      fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t\t       fr_dcursor_t
      *cursor,\n\t\t\t\t       fr_snmp_map_t const *map, void *snmp_ctx, unsigned
      int snmp_op)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/server/snmp.c:683,1
    - Dst: snmp_map_search
      Src: /src/freeradius-server/src/lib/server/snmp.c:689,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:692,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:698,1
    - Dst: snmp_process_index
      Src: /src/freeradius-server/src/lib/server/snmp.c:715,1
    - Dst: snmp_process
      Src: /src/freeradius-server/src/lib/server/snmp.c:723,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 8
    argNames:
    - out
    - request
    - da_stack
    - depth
    - cursor
    - map
    - snmp_ctx
    - snmp_op
    argTypes:
    - fr_dcursor_t*
    - request_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - fr_snmp_map_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 735
    functionName: snmp_process_tlv
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - snmp_process_index
    - snmp_map_search
    - FR_PROTO_STACK_PRINT
    - fr_strerror_const
    - snmp_process
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t snmp_process_tlv(fr_dcursor_t *out, request_t *request,\n\t\t\t\tfr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\tfr_dcursor_t *cursor,\n\t\t\t\tfr_snmp_map_t
      const *map, void *snmp_ctx, unsigned int snmp_op)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/server/snmp.c:745,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/snmp.c:747,1
    - Dst: snmp_map_search
      Src: /src/freeradius-server/src/lib/server/snmp.c:753,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:755,1
    - Dst: snmp_process
      Src: /src/freeradius-server/src/lib/server/snmp.c:776,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:792,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:797,1
    - Dst: fr_snmp_map_t*::get
      Src: /src/freeradius-server/src/lib/server/snmp.c:809,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/snmp.c:811,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/snmp.c:811,1
    - Dst: fr_value_box_steal
      Src: /src/freeradius-server/src/lib/server/snmp.c:812,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/server/snmp.c:813,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/snmp.c:815,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/snmp.c:815,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/server/snmp.c:817,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/snmp.c:826,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/snmp.c:826,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/server/snmp.c:828,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/snmp.c:832,1
    - Dst: fr_snmp_map_t*::set
      Src: /src/freeradius-server/src/lib/server/snmp.c:833,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/snmp.c:840,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/snmp.c:840,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/server/snmp.c:842,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:852,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 8
    argNames:
    - out
    - request
    - da_stack
    - depth
    - cursor
    - map
    - snmp_ctx
    - snmp_op
    argTypes:
    - fr_dcursor_t*
    - request_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - fr_snmp_map_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 855
    functionName: snmp_process_leaf
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_afrom_da
    - fr_value_box_steal
    - fr_dcursor_append
    - snmp_map_search
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - fr_snmp_map_t*::get
    - fr_snmp_map_t*::set
    - fr_strerror_const
    - MEM
    - snmp_process
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t snmp_process_leaf(fr_dcursor_t *out, request_t *request,\n\t\t\t\t
      fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t\t fr_dcursor_t *cursor,\n\t\t\t\t
      fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:878,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/server/snmp.c:880,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/snmp.c:889,1
    - Dst: snmp_next_leaf
      Src: /src/freeradius-server/src/lib/server/snmp.c:892,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:894,1
    - Dst: snmp_process_index_attr
      Src: /src/freeradius-server/src/lib/server/snmp.c:901,1
    - Dst: snmp_process_tlv
      Src: /src/freeradius-server/src/lib/server/snmp.c:911,1
    - Dst: snmp_process_leaf
      Src: /src/freeradius-server/src/lib/server/snmp.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 8
    argNames:
    - out
    - request
    - da_stack
    - depth
    - cursor
    - map
    - snmp_ctx
    - snmp_op
    argTypes:
    - fr_dcursor_t*
    - request_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - fr_snmp_map_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 924
    functionName: snmp_process
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 3
    functionsReached:
    - snmp_next_leaf
    - fr_cond_assert
    - snmp_process_leaf
    - fr_assert
    - FR_PROTO_STACK_PRINT
    - snmp_process_tlv
    - snmp_process_index_attr
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t snmp_process(fr_dcursor_t *out, request_t *request,\n\t\t\t
      \   fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor,\n\t\t\t
      \   fr_snmp_map_t const *map, void *snmp_ctx, unsigned int snmp_op)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/snmp.c:941,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/server/snmp.c:942,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/server/snmp.c:943,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/server/snmp.c:944,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/server/snmp.c:945,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/snmp.c:947,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/server/snmp.c:957,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/snmp.c:959,1
    - Dst: fr_dict_attr_unknown_resolve
      Src: /src/freeradius-server/src/lib/server/snmp.c:964,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/snmp.c:966,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/snmp.c:970,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/snmp.c:975,1
    - Dst: fr_pair_reinit_from_da
      Src: /src/freeradius-server/src/lib/server/snmp.c:977,1
    - Dst: RPWARN
      Src: /src/freeradius-server/src/lib/server/snmp.c:978,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/lib/server/snmp.c:983,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/snmp.c:985,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/server/snmp.c:986,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:998,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:999,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/snmp.c:1004,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/snmp.c:1006,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/snmp.c:1009,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/snmp.c:1019,1
    - Dst: snmp_process
      Src: /src/freeradius-server/src/lib/server/snmp.c:1026,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/snmp.c:1031,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/snmp.c:1032,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/server/snmp.c:1034,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/lib/server/snmp.c:1037,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/lib/server/snmp.c:1040,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/lib/server/snmp.c:1044,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/snmp.c:1044,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/server/snmp.c:1050,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/server/snmp.c:1051,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 1054
    functionName: fr_snmp_process
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - WARN
    - RPWARN
    - FR_SBUFF_OUT
    - fr_dict_attr_oid_print
    - fr_strerror
    - fr_pair_list_free
    - fr_pair_dcursor_by_ancestor_init
    - fr_sbuff_in_char
    - ERROR
    - fr_dcursor_merge
    - fr_dcursor_next
    - REMARKER
    - fr_value_box_clear
    - fr_dcursor_head
    - fr_pair_list_init
    - fr_pair_reinit_from_da
    - fr_dict_attr_unknown_resolve
    - RDEBUG2
    - fr_assert
    - snmp_process
    - fr_pair_dcursor_by_da_init
    - fr_proto_da_stack_build
    linkageType: ''
    returnType: int
    signature: int fr_snmp_process(request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/snmp.c:1067,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/snmp.c:1069,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/snmp.c:1071,1
    - Dst: _fr_snmp_init_r
      Src: /src/freeradius-server/src/lib/server/snmp.c:1075,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/server/snmp.c:1081,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/snmp.c:1083,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/server/snmp.c:1095,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/snmp.c:1096,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - map
    - parent
    argTypes:
    - fr_snmp_map_t[]
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1101
    functionName: _fr_snmp_init_r
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 1
    functionsReached:
    - ERROR
    - _fr_snmp_init_r
    - fr_dict_attr_by_name
    - memmove
    - fr_assert
    - memset
    linkageType: ''
    returnType: int
    signature: int _fr_snmp_init_r(fr_snmp_map_t map[], fr_dict_attr_t const *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/snmp.c:1104,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/snmp.c:1107,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/snmp.c:1108,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/snmp.c:1112,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/snmp.c:1113,1
    - Dst: _fr_snmp_init_r
      Src: /src/freeradius-server/src/lib/server/snmp.c:1117,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/snmp.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1118
    functionName: _fr_snmp_init
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - _fr_snmp_init_r
    - fr_dict_attr_autoload
    - fr_time
    - fr_perror
    - fr_dict_root
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int _fr_snmp_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/snmp.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1125
    functionName: _fr_snmp_free
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _fr_snmp_free(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/server/snmp.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1137
    functionName: fr_snmp_init
    functionSourceFile: /src/freeradius-server/src/lib/server/snmp.c
    functionUses: 1
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int fr_snmp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _err
    - ','
    - _ctx
    - ','
    - _cc
    - ','
    - _cursor
    - ','
    - _request
    - ','
    - _vpt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: tmpl_dcursor_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_dcursor_init(_err, _ctx, _cc, _cursor, _request, _vpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - _err
    - ','
    - _ctx
    - ','
    - _cc
    - ','
    - _cursor
    - ','
    - _request
    - ','
    - _vpt
    - ','
    - _build
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: tmpl_dcursor_build_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_dcursor_build_init(_err, _ctx, _cc, _cursor, _request, _vpt, _build,
      _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/server/pool.c:173,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/pool.c:174,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pool.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - out
    - parent
    - cs
    - quote
    - rule
    argTypes:
    - CONF_PAIR**
    - UNUSED*
    - CONF_SECTION*
    - fr_token_t
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: max_dflt
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - cf_pair_alloc
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: int max_dflt(CONF_PAIR **out, UNUSED void *parent, CONF_SECTION *cs,
      fr_token_t quote, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/server/pool.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: last_reserved_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t last_reserved_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/server/pool.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: last_released_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t last_released_cmp(void const *one, void const *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:208,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:211,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:215,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - pool
    - this
    argTypes:
    - fr_pool_t*
    - fr_pool_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 223
    functionName: connection_unlink
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void connection_unlink(fr_pool_t *pool, fr_pool_connection_t *this)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:234,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:235,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:236,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:237,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - pool
    - this
    argTypes:
    - fr_pool_t*
    - fr_pool_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: connection_link_head
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void connection_link_head(fr_pool_t *pool, fr_pool_connection_t *this)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:263,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:264,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/pool.c:268,1
    - Dst: trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:269,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/lib/server/pool.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - event
    argTypes:
    - fr_pool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: fr_pool_trigger
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - unlang_interpret_get_thread_default
    - trigger
    - snprintf
    linkageType: ''
    returnType: void
    signature: void fr_pool_trigger(fr_pool_t *pool, char const *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:293,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/server/pool.c:305,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:306,1
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/lib/server/pool.c:306,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:309,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pool
    - conn
    argTypes:
    - fr_pool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 316
    functionName: connection_find
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - fr_assert
    - pthread_equal
    linkageType: ''
    returnType: fr_pool_connection_t
    signature: fr_pool_connection_t *connection_find(fr_pool_t *pool, void *conn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:344,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/pool.c:353,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/pool.c:353,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:355,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:356,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:362,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:364,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/pool.c:372,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/pool.c:372,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/pool.c:373,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/pool.c:373,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/lib/server/pool.c:376,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:376,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/pool.c:376,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:382,1
    - Dst: fr_rate_limit_enabled
      Src: /src/freeradius-server/src/lib/server/pool.c:384,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:385,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/pool.c:386,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:386,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/pool.c:386,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:396,1
    - Dst: RATE_LIMIT_GLOBAL_ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:398,1
    - Dst: pthread_cond_wait
      Src: /src/freeradius-server/src/lib/server/pool.c:411,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:419,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:429,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/pool.c:435,1
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/server/pool.c:435,1
    - Dst: fr_pool_t*::create
      Src: /src/freeradius-server/src/lib/server/pool.c:443,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:445,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:447,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:456,1
    - Dst: pthread_cond_broadcast
      Src: /src/freeradius-server/src/lib/server/pool.c:457,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:458,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pool.c:460,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:469,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/pool.c:471,1
    - Dst: pthread_cond_broadcast
      Src: /src/freeradius-server/src/lib/server/pool.c:476,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:477,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pool.c:481,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/pool.c:485,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/server/pool.c:485,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:492,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/server/pool.c:499,1
    - Dst: connection_link_head
      Src: /src/freeradius-server/src/lib/server/pool.c:501,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:510,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:522,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/pool.c:525,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:531,1
    - Dst: pthread_cond_broadcast
      Src: /src/freeradius-server/src/lib/server/pool.c:533,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:534,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 86
    argCount: 5
    argNames:
    - pool
    - request
    - now
    - in_use
    - unlock
    argTypes:
    - fr_pool_t*
    - request_t*
    - fr_time_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 538
    functionName: connection_spawn
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_GLOBAL_ROPTIONAL
    - pthread_cond_broadcast
    - fr_time_add
    - pthread_mutex_unlock
    - fr_time_delta_gteq
    - fr_time_sub
    - MEM
    - ERROR
    - connection_link_head
    - fr_time
    - pthread_mutex_lock
    - ROPTIONAL
    - talloc_init
    - fr_pool_t*::create
    - pthread_cond_wait
    - fr_assert
    - fr_heap_insert
    - fr_pool_trigger
    - fr_time_delta_from_sec
    - talloc_link_ctx
    - fr_time_wrap
    - talloc_free
    - fr_time_gt
    - fr_box_time_delta
    - fr_rate_limit_enabled
    - talloc_zero
    linkageType: ''
    returnType: fr_pool_connection_t
    signature: fr_pool_connection_t *connection_spawn(fr_pool_t *pool, request_t *request,
      fr_time_t now, bool in_use, bool unlock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/server/pool.c:558,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:559,1
    - Dst: pthread_equal
      Src: /src/freeradius-server/src/lib/server/pool.c:559,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:564,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/server/pool.c:571,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:574,1
    - Dst: connection_unlink
      Src: /src/freeradius-server/src/lib/server/pool.c:576,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:578,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pool.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - pool
    - this
    argTypes:
    - fr_pool_t*
    - fr_pool_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 581
    functionName: connection_close_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - connection_unlink
    - pthread_self
    - talloc_free
    - fr_heap_extract
    - fr_assert
    - fr_pool_trigger
    - pthread_equal
    linkageType: ''
    returnType: void
    signature: void connection_close_internal(fr_pool_t *pool, fr_pool_connection_t
      *this)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:601,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:602,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:610,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:614,1
    - Dst: connection_close_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:616,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:622,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:627,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/pool.c:628,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/pool.c:628,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:629,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:634,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/pool.c:635,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/pool.c:635,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:636,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/pool.c:637,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:637,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - pool
    - request
    - this
    - now
    argTypes:
    - fr_pool_t*
    - request_t*
    - fr_pool_connection_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 599
    functionDepth: 3
    functionLinenumber: 599
    functionLinenumberEnd: 642
    functionName: connection_manage
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_time_add
    - fr_box_time_delta
    - ROPTIONAL
    - fr_assert
    - fr_time_delta_ispos
    - fr_time_sub
    - connection_close_internal
    - fr_time_lt
    linkageType: ''
    returnType: int
    signature: int connection_manage(fr_pool_t *pool, request_t *request, fr_pool_connection_t
      *this, fr_time_t now)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:662,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/server/pool.c:665,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:665,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/pool.c:665,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:666,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:686,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/pool.c:746,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/pool.c:746,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/pool.c:755,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:758,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:760,1
    - Dst: connection_close_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:762,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/server/pool.c:768,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/server/pool.c:768,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:769,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/server/pool.c:769,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/server/pool.c:770,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:796,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:803,1
    - Dst: connection_spawn
      Src: /src/freeradius-server/src/lib/server/pool.c:804,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:805,1
    - Dst: connection_manage
      Src: /src/freeradius-server/src/lib/server/pool.c:816,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:822,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 80
    argCount: 2
    argNames:
    - pool
    - request
    argTypes:
    - fr_pool_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 825
    functionName: connection_check
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time
    - fr_time_delta_add
    - pthread_mutex_lock
    - fr_cond_assert
    - fr_time_add
    - pthread_mutex_unlock
    - fr_time_delta_lt
    - fr_time_sub
    - ROPTIONAL
    - fr_time_delta_ispos
    - connection_manage
    - connection_close_internal
    - fr_time_lt
    - connection_spawn
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int connection_check(fr_pool_t *pool, request_t *request)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:845,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:847,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/server/pool.c:855,1
    - Dst: connection_manage
      Src: /src/freeradius-server/src/lib/server/pool.c:857,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/server/pool.c:864,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/server/pool.c:874,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:874,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/pool.c:874,1
    - Dst: fr_rate_limit_enabled
      Src: /src/freeradius-server/src/lib/server/pool.c:879,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:880,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:886,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:888,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:893,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:897,1
    - Dst: connection_spawn
      Src: /src/freeradius-server/src/lib/server/pool.c:903,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:909,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/server/pool.c:913,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:915,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:917,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - pool
    - request
    - spawn
    argTypes:
    - fr_pool_t*
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 920
    functionName: connection_get_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - pthread_self
    - fr_time
    - pthread_mutex_lock
    - fr_time_delta_gt
    - pthread_mutex_unlock
    - connection_manage
    - fr_heap_extract
    - fr_time_sub
    - fr_rate_limit_enabled
    - ROPTIONAL
    - fr_heap_peek
    - fr_pool_trigger
    - connection_spawn
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void *connection_get_internal(fr_pool_t *pool, request_t *request,
      bool spawn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/pool.c:940,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/pool.c:941,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/pool.c:941,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/server/pool.c:943,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/pool.c:947,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/pool.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pool
    - trigger_prefix
    - trigger_args
    argTypes:
    - fr_pool_t*
    - char*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 948
    functionName: fr_pool_enable_triggers
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - talloc_const_free
    - fr_pair_list_free
    - MEM
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void fr_pool_enable_triggers(fr_pool_t *pool, char const *trigger_prefix,
      fr_pair_list_t *trigger_args)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/pool.c:985,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/pool.c:985,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/server/pool.c:986,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/server/pool.c:992,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:993,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pool.c:994,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/pool.c:1025,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/pool.c:1045,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:1048,1
    - Dst: fr_pool_free
      Src: /src/freeradius-server/src/lib/server/pool.c:1050,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/pool.c:1054,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/server/pool.c:1055,1
    - Dst: pthread_cond_init
      Src: /src/freeradius-server/src/lib/server/pool.c:1056,1
    - Dst: pthread_cond_init
      Src: /src/freeradius-server/src/lib/server/pool.c:1057,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/pool.c:1059,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/pool.c:1062,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/pool.c:1062,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:1063,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/pool.c:1071,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/pool.c:1085,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/pool.c:1089,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/pool.c:1090,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/pool.c:1091,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:1093,1
    - Dst: FR_TIME_DELTA_COND_CHECK
      Src: /src/freeradius-server/src/lib/server/pool.c:1094,1
    - Dst: fr_time_delta_lteq
      Src: /src/freeradius-server/src/lib/server/pool.c:1095,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/server/pool.c:1095,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:1098,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/pool.c:1099,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/pool.c:1107,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/server/pool.c:1107,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 6
    argNames:
    - ctx
    - cs
    - opaque
    - c
    - a
    - log_prefix
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - void*
    - fr_pool_connection_create_t
    - fr_pool_connection_alive_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1117
    functionName: fr_pool_init
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - fr_time_delta_from_msec
    - MEM
    - cf_log_err
    - pthread_mutex_init
    - ERROR
    - fr_heap_talloc_alloc
    - cf_section_parse
    - FR_INTEGER_BOUND_CHECK
    - fr_time_delta_ispos
    - FR_TIME_DELTA_BOUND_CHECK
    - DEBUG2
    - fr_pair_list_init
    - fr_pool_free
    - UNCONST
    - fr_time_delta_lteq
    - PERROR
    - talloc_link_ctx
    - fr_time_delta_wrap
    - talloc_free
    - pthread_cond_init
    - talloc_zero
    - FR_TIME_DELTA_COND_CHECK
    linkageType: ''
    returnType: fr_pool_t
    signature: "fr_pool_t *fr_pool_init(TALLOC_CTX *ctx,\n\t\t\tCONF_SECTION const
      *cs,\n\t\t\tvoid *opaque,\n\t\t\tfr_pool_connection_create_t c, fr_pool_connection_alive_t
      a,\n\t\t\tchar const *log_prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: connection_spawn
      Src: /src/freeradius-server/src/lib/server/pool.c:1138,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:1138,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/pool.c:1140,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:1145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1119
    functionDepth: 3
    functionLinenumber: 1119
    functionLinenumberEnd: 1148
    functionName: fr_pool_start
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_pool_trigger
    - connection_spawn
    - fr_time
    linkageType: ''
    returnType: int
    signature: int fr_pool_start(fr_pool_t *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pool_init
      Src: /src/freeradius-server/src/lib/server/pool.c:1163,1
    - Dst: fr_pool_enable_triggers
      Src: /src/freeradius-server/src/lib/server/pool.c:1166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - pool
    - opaque
    argTypes:
    - TALLOC_CTX*
    - fr_pool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1169
    functionName: fr_pool_copy
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_pool_init
    - fr_pool_enable_triggers
    linkageType: ''
    returnType: fr_pool_t
    signature: fr_pool_t *fr_pool_copy(TALLOC_CTX *ctx, fr_pool_t *pool, void *opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1179
    functionName: fr_pool_state
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_pool_state_t
    signature: fr_pool_state_t *fr_pool_state(fr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1189
    functionName: fr_pool_timeout
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_pool_timeout(fr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1199
    functionName: fr_pool_start_num
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_pool_start_num(fr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1209
    functionName: fr_pool_opaque
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_pool_opaque(fr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1218
    functionName: fr_pool_ref
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_pool_ref(fr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - reconnect
    argTypes:
    - fr_pool_t*
    - fr_pool_reconnect_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1230
    functionName: fr_pool_reconnect_func
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_pool_reconnect_func(fr_pool_t *pool, fr_pool_reconnect_t reconnect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:1253,1
    - Dst: pthread_cond_wait
      Src: /src/freeradius-server/src/lib/server/pool.c:1266,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/server/pool.c:1276,1
    - Dst: connection_close_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:1279,1
    - Dst: fr_pool_t*::reconnect
      Src: /src/freeradius-server/src/lib/server/pool.c:1293,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:1299,1
    - Dst: pthread_cond_broadcast
      Src: /src/freeradius-server/src/lib/server/pool.c:1306,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:1307,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:1309,1
    - Dst: connection_spawn
      Src: /src/freeradius-server/src/lib/server/pool.c:1315,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - pool
    - request
    argTypes:
    - fr_pool_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1320
    functionName: fr_pool_reconnect
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 0
    functionsReached:
    - fr_pool_t*::reconnect
    - fr_time
    - pthread_mutex_lock
    - pthread_cond_broadcast
    - pthread_mutex_unlock
    - pthread_cond_wait
    - connection_close_internal
    - fr_heap_peek
    - fr_pool_trigger
    - connection_spawn
    linkageType: ''
    returnType: int
    signature: int fr_pool_reconnect(fr_pool_t *pool, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/pool.c:1347,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/pool.c:1349,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/pool.c:1356,1
    - Dst: connection_close_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:1358,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:1361,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:1363,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:1364,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:1365,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/pool.c:1367,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/server/pool.c:1368,1
    - Dst: pthread_cond_destroy
      Src: /src/freeradius-server/src/lib/server/pool.c:1369,1
    - Dst: pthread_cond_destroy
      Src: /src/freeradius-server/src/lib/server/pool.c:1370,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/pool.c:1372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - pool
    argTypes:
    - fr_pool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1373
    functionName: fr_pool_free
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 3
    functionsReached:
    - INFO
    - talloc_free
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - fr_assert
    - connection_close_internal
    - pthread_cond_destroy
    - DEBUG2
    - fr_pool_trigger
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void fr_pool_free(fr_pool_t *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connection_get_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - request
    argTypes:
    - fr_pool_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1395
    functionDepth: 5
    functionLinenumber: 1395
    functionLinenumberEnd: 1398
    functionName: fr_pool_connection_get
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 6
    functionsReached:
    - connection_get_internal
    linkageType: ''
    returnType: void
    signature: void *fr_pool_connection_get(fr_pool_t *pool, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: connection_find
      Src: /src/freeradius-server/src/lib/server/pool.c:1416,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:1424,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:1431,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:1438,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/server/pool.c:1439,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/lib/server/pool.c:1440,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:1440,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/pool.c:1440,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/pool.c:1445,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/server/pool.c:1446,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/lib/server/pool.c:1447,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/pool.c:1447,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/pool.c:1447,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/server/pool.c:1460,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/pool.c:1462,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:1465,1
    - Dst: connection_check
      Src: /src/freeradius-server/src/lib/server/pool.c:1472,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:1474,1
    - Dst: fr_pool_trigger
      Src: /src/freeradius-server/src/lib/server/pool.c:1475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - pool
    - request
    - conn
    argTypes:
    - fr_pool_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1410
    functionDepth: 5
    functionLinenumber: 1410
    functionLinenumberEnd: 1476
    functionName: fr_pool_connection_release
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 6
    functionsReached:
    - fr_time
    - fr_time_delta_gt
    - fr_time_delta_gteq
    - fr_time_delta_lt
    - fr_time_sub
    - fr_time_delta_ispos
    - fr_assert
    - ROPTIONAL
    - connection_check
    - fr_heap_insert
    - fr_pool_trigger
    - fr_time_delta_from_sec
    - connection_find
    linkageType: ''
    returnType: void
    signature: void fr_pool_connection_release(fr_pool_t *pool, request_t *request,
      void *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: connection_find
      Src: /src/freeradius-server/src/lib/server/pool.c:1512,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:1515,1
    - Dst: connection_close_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:1517,1
    - Dst: connection_check
      Src: /src/freeradius-server/src/lib/server/pool.c:1518,1
    - Dst: connection_get_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:1523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - request
    - conn
    argTypes:
    - fr_pool_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1503
    functionDepth: 5
    functionLinenumber: 1503
    functionLinenumberEnd: 1524
    functionName: fr_pool_connection_reconnect
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 1
    functionsReached:
    - ROPTIONAL
    - connection_close_internal
    - connection_check
    - connection_get_internal
    - connection_find
    linkageType: ''
    returnType: void
    signature: void *fr_pool_connection_reconnect(fr_pool_t *pool, request_t *request,
      void *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_find
      Src: /src/freeradius-server/src/lib/server/pool.c:1544,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/pool.c:1550,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/pool.c:1552,1
    - Dst: connection_close_internal
      Src: /src/freeradius-server/src/lib/server/pool.c:1554,1
    - Dst: connection_check
      Src: /src/freeradius-server/src/lib/server/pool.c:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pool
    - request
    - conn
    argTypes:
    - fr_pool_t*
    - request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1540
    functionDepth: 5
    functionLinenumber: 1540
    functionLinenumberEnd: 1557
    functionName: fr_pool_connection_close
    functionSourceFile: /src/freeradius-server/src/lib/server/pool.c
    functionUses: 2
    functionsReached:
    - fr_time
    - ROPTIONAL
    - connection_close_internal
    - connection_check
    - connection_find
    linkageType: ''
    returnType: int
    signature: int fr_pool_connection_close(fr_pool_t *pool, request_t *request, void
      *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - TALLOC_CTX *talloc_ctx
    - name
    - ctx
    - fr_cmd_table_t *table
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: fr_command_register
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_command_register(UNUSED TALLOC_CTX *talloc_ctx, UNUSED char
      const *name, UNUSED void *ctx, UNUSED fr_cmd_table_t *table)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/command.c:121,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - head
    - name
    - insert
    argTypes:
    - fr_cmd_t**
    - char*
    - fr_cmd_t***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 145
    functionName: fr_command_find
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: fr_cmd_t
    signature: fr_cmd_t *fr_command_find(fr_cmd_t **head, char const *name, fr_cmd_t
      ***insert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/command.c:162,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:162,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - head
    - name
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 172
    functionName: fr_command_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_strdup
    linkageType: ''
    returnType: fr_cmd_t
    signature: fr_cmd_t *fr_command_alloc(TALLOC_CTX *ctx, fr_cmd_t **head, char const
      *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:187,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:196,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/server/command.c:203,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:205,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 210
    functionName: fr_command_valid_name
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_utf8_char
    linkageType: ''
    returnType: bool
    signature: bool fr_command_valid_name(char const *name)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_valid_name
      Src: /src/freeradius-server/src/lib/server/command.c:220,1
    - Dst: isupper
      Src: /src/freeradius-server/src/lib/server/command.c:225,1
    - Dst: islower
      Src: /src/freeradius-server/src/lib/server/command.c:226,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:234,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:242,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/command.c:253,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:260,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - argv
    argTypes:
    - fr_cmd_argv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 271
    functionName: fr_command_valid_syntax
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_command_valid_name
    - fr_strerror_printf
    - isupper
    - fr_table_value_by_str
    - islower
    linkageType: ''
    returnType: bool
    signature: bool fr_command_valid_syntax(fr_cmd_argv_t *argv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:325,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:347,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 54
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 391
    functionName: split_alternation
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int split_alternation(char **input, char **output)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:441,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:451,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:475,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:498,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:522,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 70
    argCount: 3
    argNames:
    - input
    - output
    - syntax_string
    argTypes:
    - char**
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 559
    functionName: split
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int split(char **input, char **output, bool syntax_string)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/freeradius-server/src/lib/server/command.c:575,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/command.c:586,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:588,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:593,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:602,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:605,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:614,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/command.c:618,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:620,1
    - Dst: fr_command_add_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:630,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:633,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:642,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/command.c:646,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:648,1
    - Dst: split_alternation
      Src: /src/freeradius-server/src/lib/server/command.c:666,1
    - Dst: fr_command_add_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:675,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:678,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:687,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:693,1
    - Dst: fr_command_valid_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:699,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:700,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:711,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 93
    argCount: 4
    argNames:
    - ctx
    - syntax
    - head
    - allow_varargs
    argTypes:
    - TALLOC_CTX*
    - char*
    - fr_cmd_argv_t**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 716
    functionName: fr_command_add_syntax
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - split
    - talloc_strdup
    - fr_command_add_syntax
    - split_alternation
    - talloc_zero
    - fr_command_valid_syntax
    - strlen
    - strcmp
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_command_add_syntax(TALLOC_CTX *ctx, char *syntax, fr_cmd_argv_t
      **head, bool allow_varargs)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:744,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:749,1
    - Dst: fr_command_valid_name
      Src: /src/freeradius-server/src/lib/server/command.c:753,1
    - Dst: fr_command_valid_name
      Src: /src/freeradius-server/src/lib/server/command.c:757,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:775,1
    - Dst: split
      Src: /src/freeradius-server/src/lib/server/command.c:778,1
    - Dst: fr_command_valid_name
      Src: /src/freeradius-server/src/lib/server/command.c:782,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:783,1
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:791,1
    - Dst: fr_command_alloc
      Src: /src/freeradius-server/src/lib/server/command.c:793,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:798,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:802,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:807,1
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:824,1
    - Dst: fr_command_alloc
      Src: /src/freeradius-server/src/lib/server/command.c:826,1
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:833,1
    - Dst: fr_command_alloc
      Src: /src/freeradius-server/src/lib/server/command.c:835,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:837,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:838,1
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:844,1
    - Dst: fr_command_alloc
      Src: /src/freeradius-server/src/lib/server/command.c:846,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/command.c:878,1
    - Dst: fr_command_add_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:880,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:887,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:888,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:893,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:894,1
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:904,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:916,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:924,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:928,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:940,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:947,1
    - Dst: fr_command_alloc
      Src: /src/freeradius-server/src/lib/server/command.c:948,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/server/command.c:970,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 119
    argCount: 5
    argNames:
    - talloc_ctx
    - head
    - name
    - ctx
    - table
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_t**
    - char*
    - void*
    - fr_cmd_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 976
    functionName: fr_command_add
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_command_valid_name
    - split
    - talloc_free
    - fr_strerror_printf
    - talloc_steal
    - talloc_strdup
    - fr_command_add_syntax
    - fr_assert
    - fr_strerror_const
    - fr_command_alloc
    - fr_command_find
    linkageType: ''
    returnType: int
    signature: int fr_command_add(TALLOC_CTX *talloc_ctx, fr_cmd_t **head, char const
      *name, void *ctx, fr_cmd_table_t const *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_add
      Src: /src/freeradius-server/src/lib/server/command.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - talloc_ctx
    - head
    - name
    - ctx
    - table
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_t**
    - char*
    - void*
    - fr_cmd_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 993
    functionDepth: 5
    functionLinenumber: 993
    functionLinenumberEnd: 1002
    functionName: fr_command_add_multi
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_command_add
    linkageType: ''
    returnType: int
    signature: int fr_command_add_multi(TALLOC_CTX *talloc_ctx, fr_cmd_t **head, char
      const *name, void *ctx, fr_cmd_table_t const *table)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:1035,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:1047,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:1064,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/command.c:1069,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/server/command.c:1091,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:1093,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1103,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1127,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 4
    argNames:
    - head
    - walk_ctx
    - ctx
    - callback
    argTypes:
    - fr_cmd_t*
    - void**
    - void*
    - fr_cmd_walk_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1137
    functionName: fr_command_walk
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - talloc_zero
    - fr_assert
    - talloc_zero_array
    - fr_strerror_const
    - callback
    linkageType: ''
    returnType: int
    signature: int fr_command_walk(fr_cmd_t *head, void **walk_ctx, void *ctx, fr_cmd_walk_t
      callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/command.c:1151,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/command.c:1157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - head
    - partial
    - max_expansions
    - expansions
    argTypes:
    - fr_cmd_t*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1163
    functionName: fr_command_tab_expand_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int fr_command_tab_expand_partial(fr_cmd_t *head, char const *partial,
      int max_expansions, char const **expansions)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_cmd_t*::tab_expand
      Src: /src/freeradius-server/src/lib/server/command.c:1181,1
    - Dst: fr_command_tab_expand_argv
      Src: /src/freeradius-server/src/lib/server/command.c:1189,1
    - Dst: fr_command_tab_expand_argv
      Src: /src/freeradius-server/src/lib/server/command.c:1204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1213,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 7
    argNames:
    - ctx
    - cmd
    - info
    - name
    - argv
    - max_expansions
    - expansions
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_t*
    - fr_cmd_info_t*
    - char*
    - fr_cmd_argv_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1254
    functionName: fr_command_tab_expand_argv
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_cmd_t*::tab_expand
    - fr_command_tab_expand_argv
    linkageType: ''
    returnType: int
    signature: "int fr_command_tab_expand_argv(TALLOC_CTX *ctx, fr_cmd_t *cmd, fr_cmd_info_t
      *info, char const *name, fr_cmd_argv_t *argv,\n\t\t\t\t      int max_expansions,
      char const **expansions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_verify_argv
      Src: /src/freeradius-server/src/lib/server/command.c:1276,1
    - Dst: fr_command_tab_expand_argv
      Src: /src/freeradius-server/src/lib/server/command.c:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - cmd
    - syntax_offset
    - info
    - max_expansions
    - expansions
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_t*
    - int
    - fr_cmd_info_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1283
    functionName: fr_command_tab_expand_syntax
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_command_verify_argv
    - fr_command_tab_expand_argv
    linkageType: ''
    returnType: int
    signature: "int fr_command_tab_expand_syntax(TALLOC_CTX *ctx, fr_cmd_t *cmd, int
      syntax_offset, fr_cmd_info_t *info,\n\t\t\t\t\tint max_expansions, char const
      **expansions)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:1312,1
    - Dst: fr_command_tab_expand_partial
      Src: /src/freeradius-server/src/lib/server/command.c:1320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1324,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1343,1
    - Dst: fr_command_tab_expand_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:1344,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1354,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1355,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - ctx
    - head
    - info
    - max_expansions
    - expansions
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_t*
    - fr_cmd_info_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1298
    functionDepth: 3
    functionLinenumber: 1298
    functionLinenumberEnd: 1362
    functionName: fr_command_tab_expand
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_command_find
    - fr_command_tab_expand_syntax
    - fr_command_tab_expand_partial
    linkageType: ''
    returnType: int
    signature: int fr_command_tab_expand(TALLOC_CTX *ctx, fr_cmd_t *head, fr_cmd_info_t
      *info, int max_expansions, char const **expansions)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: SKIP_NAME
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_NAME(name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1382,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1383,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1390,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:1406,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1441,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1448,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/server/command.c:1461,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 6
    argNames:
    - fp
    - fp_err
    - info
    - read_only
    - offset
    - head
    argTypes:
    - FILE*
    - FILE*
    - fr_cmd_info_t*
    - bool
    - int
    - fr_cmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1464
    functionName: fr_command_run_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - SKIP_NAME
    - fr_assert
    - func
    - fprintf
    linkageType: ''
    returnType: int
    signature: int fr_command_run_partial(FILE *fp, FILE *fp_err, fr_cmd_info_t *info,
      bool read_only, int offset, fr_cmd_t *head)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1496,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1499,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1504,1
    - Dst: fr_command_run_partial
      Src: /src/freeradius-server/src/lib/server/command.c:1506,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1526,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1533,1
    - Dst: fr_cmd_t*::func
      Src: /src/freeradius-server/src/lib/server/command.c:1546,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - fp
    - fp_err
    - info
    - read_only
    argTypes:
    - FILE*
    - FILE*
    - fr_cmd_info_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1549
    functionName: fr_command_run
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - fr_command_run_partial
    - fr_assert
    - fr_cmd_t*::func
    - fprintf
    linkageType: ''
    returnType: int
    signature: int fr_command_run(FILE *fp, FILE *fp_err, fr_cmd_info_t *info, bool
      read_only)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_find
      Src: /src/freeradius-server/src/lib/server/command.c:1569,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1573,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - head
    - argc
    - argv
    argTypes:
    - fr_cmd_t*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1587
    functionName: fr_command_help
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_command_find
    linkageType: ''
    returnType: char
    signature: char *fr_command_help(fr_cmd_t *head, int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1593,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1594,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fp
    - cmd
    - depth
    argTypes:
    - FILE*
    - fr_cmd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1596
    functionName: fr_command_debug_node
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_command_debug_node(FILE *fp, fr_cmd_t *cmd, int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_debug_node
      Src: /src/freeradius-server/src/lib/server/command.c:1603,1
    - Dst: fr_command_debug_internal
      Src: /src/freeradius-server/src/lib/server/command.c:1605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - head
    - depth
    argTypes:
    - FILE*
    - fr_cmd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1608
    functionName: fr_command_debug_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_command_debug_internal
    - fr_command_debug_node
    linkageType: ''
    returnType: void
    signature: void fr_command_debug_internal(FILE *fp, fr_cmd_t *head, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_debug_internal
      Src: /src/freeradius-server/src/lib/server/command.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - head
    argTypes:
    - FILE*
    - fr_cmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1613
    functionName: fr_cmd_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_command_debug_internal
    linkageType: ''
    returnType: void
    signature: void fr_cmd_debug(FILE *fp, fr_cmd_t *head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1621,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1625,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1629,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1631,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:1635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - fp
    - cmd
    - depth
    - argv
    - options
    argTypes:
    - FILE*
    - fr_cmd_t*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1637
    functionName: fr_command_list_node
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_command_list_node(FILE *fp, fr_cmd_t *cmd, int depth, char
      const **argv, int options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_list_internal
      Src: /src/freeradius-server/src/lib/server/command.c:1650,1
    - Dst: fr_command_list_node
      Src: /src/freeradius-server/src/lib/server/command.c:1652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - fp
    - head
    - depth
    - max_depth
    - argv
    - options
    argTypes:
    - FILE*
    - fr_cmd_t*
    - int
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1655
    functionName: fr_command_list_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_command_list_node
    - fr_command_list_internal
    linkageType: ''
    returnType: void
    signature: void fr_command_list_internal(FILE *fp, fr_cmd_t *head, int depth,
      int max_depth, char const **argv, int options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1668,1
    - Dst: fr_command_list_node
      Src: /src/freeradius-server/src/lib/server/command.c:1670,1
    - Dst: fr_command_list_internal
      Src: /src/freeradius-server/src/lib/server/command.c:1676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - fp
    - max_depth
    - head
    - options
    argTypes:
    - FILE*
    - int
    - fr_cmd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1677
    functionName: fr_command_list
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_command_list_node
    - fr_assert
    - fr_command_list_internal
    linkageType: ''
    returnType: void
    signature: void fr_command_list(FILE *fp, int max_depth, fr_cmd_t *head, int options)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1692,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1698,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/command.c:1725,1
    - Dst: fr_command_verify_argv
      Src: /src/freeradius-server/src/lib/server/command.c:1747,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1786,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1787,1
    - Dst: fr_command_verify_argv
      Src: /src/freeradius-server/src/lib/server/command.c:1790,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1812,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:1836,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/command.c:1847,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/command.c:1849,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/server/command.c:1851,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/command.c:1855,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:1872,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 106
    argCount: 6
    argNames:
    - info
    - start
    - verify
    - argc
    - argv_p
    - optional
    argTypes:
    - fr_cmd_info_t*
    - int
    - int
    - int
    - fr_cmd_argv_t**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1878
    functionName: fr_command_verify_argv
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - fr_strerror_printf
    - fr_value_box_clear
    - fr_command_verify_argv
    - fr_assert
    - talloc_zero
    - strlen
    - strcmp
    - fr_value_box_from_str
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_command_verify_argv(fr_cmd_info_t *info, int start, int verify,
      int argc, fr_cmd_argv_t **argv_p, bool optional)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_not_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:1886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1904
    functionName: skip_word
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 0
    functionsReached:
    - fr_skip_not_whitespace
    linkageType: ''
    returnType: char
    signature: char *skip_word(char const *text)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:1926,1
    - Dst: skip_word
      Src: /src/freeradius-server/src/lib/server/command.c:1938,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:1940,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:1948,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:1959,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:1974,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:1979,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/command.c:1982,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/server/command.c:1994,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2007,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:2014,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:2023,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2049,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2050,1
    - Dst: syntax_str_to_argv
      Src: /src/freeradius-server/src/lib/server/command.c:2059,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:2069,1
    - Dst: syntax_str_to_argv
      Src: /src/freeradius-server/src/lib/server/command.c:2081,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:2110,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 122
    argCount: 5
    argNames:
    - start_argc
    - start
    - info
    - text
    - runnable
    argTypes:
    - int
    - fr_cmd_argv_t*
    - fr_cmd_info_t*
    - char**
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 1912
    functionDepth: 2
    functionLinenumber: 1912
    functionLinenumberEnd: 2133
    functionName: syntax_str_to_argv
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - talloc_memdup
    - SKIP_NAME
    - fr_strerror_printf
    - syntax_str_to_argv
    - fr_skip_whitespace
    - skip_word
    - fr_assert
    - talloc_zero
    - fr_strerror_const
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int syntax_str_to_argv(int start_argc, fr_cmd_argv_t *start, fr_cmd_info_t
      *info,\n\t\t\t      char const **text, bool *runnable)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:2156,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:2161,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:2169,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2182,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2184,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/command.c:2186,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2191,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2222,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:2246,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/command.c:2255,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2256,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2257,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2267,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:2276,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2298,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:2319,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/command.c:2328,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2332,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2333,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2342,1
    - Dst: syntax_str_to_argv
      Src: /src/freeradius-server/src/lib/server/command.c:2354,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2364,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 3
    argNames:
    - head
    - info
    - text
    argTypes:
    - fr_cmd_t*
    - fr_cmd_info_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2149
    functionDepth: 3
    functionLinenumber: 2149
    functionLinenumberEnd: 2370
    functionName: fr_command_str_to_argv
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - SKIP_NAME
    - fr_strerror_printf
    - syntax_str_to_argv
    - fr_skip_whitespace
    - fr_assert
    - isspace
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_command_str_to_argv(fr_cmd_t *head, fr_cmd_info_t *info, char
      const *text)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/command.c:2383,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/command.c:2391,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/command.c:2392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - new_argc
    - info
    argTypes:
    - int
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2400
    functionName: fr_command_clear
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - talloc_const_free
    - fr_strerror_const
    - fr_value_box_clear
    linkageType: ''
    returnType: int
    signature: int fr_command_clear(int new_argc, fr_cmd_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/command.c:2407,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/command.c:2411,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/command.c:2411,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/command.c:2412,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/command.c:2412,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/command.c:2413,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/command.c:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - info
    argTypes:
    - TALLOC_CTX*
    - fr_cmd_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2405
    functionDepth: 0
    functionLinenumber: 2405
    functionLinenumberEnd: 2414
    functionName: fr_command_info_init
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - memset
    - MEM
    - talloc_zero_array
    linkageType: ''
    returnType: void
    signature: void fr_command_info_init(TALLOC_CTX *ctx, fr_cmd_info_t *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2429,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2430,1
    - Dst: expand_all
      Src: /src/freeradius-server/src/lib/server/command.c:2433,1
    - Dst: expand_all
      Src: /src/freeradius-server/src/lib/server/command.c:2443,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2453,1
    - Dst: fr_cmd_t*::tab_expand
      Src: /src/freeradius-server/src/lib/server/command.c:2454,1
    - Dst: strdup
      Src: /src/freeradius-server/src/lib/server/command.c:2460,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - cmd
    - info
    - argv
    - count
    - max_expansions
    - expansions
    argTypes:
    - fr_cmd_t*
    - fr_cmd_info_t*
    - fr_cmd_argv_t*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2462
    functionName: expand_all
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 1
    functionsReached:
    - fr_cmd_t*::tab_expand
    - fr_assert
    - expand_all
    - strdup
    linkageType: ''
    returnType: int
    signature: int expand_all(fr_cmd_t *cmd, fr_cmd_info_t *info, fr_cmd_argv_t *argv,
      int count, int max_expansions, char const **expansions)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2474,1
    - Dst: expand_all
      Src: /src/freeradius-server/src/lib/server/command.c:2477,1
    - Dst: expand_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:2492,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2505,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2506,1
    - Dst: expand_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:2513,1
    - Dst: skip_word
      Src: /src/freeradius-server/src/lib/server/command.c:2532,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/command.c:2543,1
    - Dst: strdup
      Src: /src/freeradius-server/src/lib/server/command.c:2545,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2563,1
    - Dst: fr_cmd_t*::tab_expand
      Src: /src/freeradius-server/src/lib/server/command.c:2564,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/command.c:2571,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/command.c:2572,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:2576,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/command.c:2587,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2600,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2602,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/command.c:2621,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 9
    argNames:
    - cmd
    - info
    - argv
    - text
    - start
    - word_p
    - count
    - max_expansions
    - expansions
    argTypes:
    - fr_cmd_t*
    - fr_cmd_info_t*
    - fr_cmd_argv_t*
    - char*
    - int
    - char**
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2636
    functionName: expand_syntax
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - expand_syntax
    - expand_all
    - fr_cmd_t*::tab_expand
    - memcpy
    - SKIP_NAME
    - fr_skip_whitespace
    - strdup
    - skip_word
    - fr_assert
    - isspace
    - talloc_zero
    - talloc_zero_array
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int expand_syntax(fr_cmd_t *cmd, fr_cmd_info_t *info, fr_cmd_argv_t
      *argv, char const *text, int start,\n\t\t\t char const **word_p, int count,
      int max_expansions, char const **expansions)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/command.c:2665,1
    - Dst: fr_command_info_init
      Src: /src/freeradius-server/src/lib/server/command.c:2666,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2672,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2690,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/command.c:2696,1
    - Dst: strdup
      Src: /src/freeradius-server/src/lib/server/command.c:2697,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:2705,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2709,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2741,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:2761,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:2769,1
    - Dst: expand_syntax
      Src: /src/freeradius-server/src/lib/server/command.c:2773,1
    - Dst: fr_command_clear
      Src: /src/freeradius-server/src/lib/server/command.c:2774,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/command.c:2775,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 5
    argNames:
    - head
    - text
    - start
    - max_expansions
    - expansions
    argTypes:
    - fr_cmd_t*
    - char*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2777
      start: 2653
    functionDepth: 3
    functionLinenumber: 2653
    functionLinenumberEnd: 2777
    functionName: fr_command_complete
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - fr_command_clear
    - expand_syntax
    - talloc_free
    - SKIP_NAME
    - fr_skip_whitespace
    - strdup
    - talloc_zero
    - isspace
    - fr_assert
    - fr_command_info_init
    linkageType: ''
    returnType: int
    signature: "int fr_command_complete(fr_cmd_t *head, char const *text, int start,\n\t\t\tint
      max_expansions, char const **expansions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:2782,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:2784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fp
    - cmd
    argTypes:
    - FILE*
    - fr_cmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2786
    functionName: print_help
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_help(FILE *fp, fr_cmd_t *cmd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/command.c:2808,1
    - Dst: print_help
      Src: /src/freeradius-server/src/lib/server/command.c:2815,1
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2824,1
    - Dst: print_help
      Src: /src/freeradius-server/src/lib/server/command.c:2830,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/command.c:2859,1
    - Dst: print_help
      Src: /src/freeradius-server/src/lib/server/command.c:2883,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/command.c:2885,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - fp
    - head
    - text
    argTypes:
    - FILE*
    - fr_cmd_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2796
    functionDepth: 1
    functionLinenumber: 2796
    functionLinenumberEnd: 2889
    functionName: fr_command_print_help
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 2
    functionsReached:
    - SKIP_NAME
    - fr_skip_whitespace
    - fprintf
    - print_help
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_command_print_help(FILE *fp, fr_cmd_t *head, char const *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_NAME
      Src: /src/freeradius-server/src/lib/server/command.c:2906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - word
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2900
    functionDepth: 1
    functionLinenumber: 2900
    functionLinenumberEnd: 2912
    functionName: fr_command_strncmp
    functionSourceFile: /src/freeradius-server/src/lib/server/command.c
    functionUses: 3
    functionsReached:
    - SKIP_NAME
    linkageType: ''
    returnType: bool
    signature: bool fr_command_strncmp(const char *word, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/users_file.c:49,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:50,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/server/users_file.c:51,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/users_file.c:52,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/users_file.c:53,1
    - Dst: fr_log_marker
      Src: /src/freeradius-server/src/lib/server/users_file.c:55,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/users_file.c:56,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/server/users_file.c:56,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/users_file.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - src_file
    - src_line
    - user_file
    - user_line
    - sbuff
    - error
    argTypes:
    - char*
    - int
    - char*
    - int
    - fr_sbuff_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: line_error_marker
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 0
    functionsReached:
    - fr_log_marker
    - fr_sbuff_start
    - fr_sbuff_used
    - fr_sbuff_adv_to_chr
    - fr_sbuff_marker
    - fr_sbuff_marker_release
    - fr_sbuff_end
    - fr_sbuff_set
    linkageType: ''
    returnType: void
    signature: "void line_error_marker(char const *src_file, int src_line,\n\t\t\t\t
      \    char const *user_file, int user_line,\n\t\t\t\t     fr_sbuff_t *sbuff,
      char const *error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: ERROR_MARKER
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_MARKER(_sbuff, _error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/users_file.c:73,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:74,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/server/users_file.c:75,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/users_file.c:76,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/users_file.c:77,1
    - Dst: fr_log_marker
      Src: /src/freeradius-server/src/lib/server/users_file.c:79,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/users_file.c:80,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/users_file.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - src_file
    - src_line
    - user_file
    - user_line
    - sbuff
    - marker_idx
    - error
    argTypes:
    - char*
    - int
    - char*
    - int
    - fr_sbuff_t*
    - ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: line_error_marker_adj
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 0
    functionsReached:
    - fr_log_marker
    - fr_sbuff_adv_to_chr
    - fr_sbuff_marker
    - fr_sbuff_current
    - fr_sbuff_marker_release
    - fr_sbuff_end
    - fr_sbuff_set
    linkageType: ''
    returnType: void
    signature: "void line_error_marker_adj(char const *src_file, int src_line,\n\t\t\t\t\t
      char const *user_file, int user_line,\n\t\t\t\t\t fr_sbuff_t *sbuff, ssize_t
      marker_idx, char const *error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _idx
    - ','
    - _error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: ERROR_MARKER_ADJ
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_MARKER_ADJ(_sbuff, _idx, _error)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/users_file.c:150,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:155,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:156,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/users_file.c:164,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/server/users_file.c:165,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:167,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/users_file.c:168,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:183,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/users_file.c:185,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/server/users_file.c:189,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/users_file.c:191,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/server/users_file.c:194,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/server/users_file.c:194,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/server/users_file.c:196,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:201,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:202,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:203,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:214,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:215,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:216,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/users_file.c:217,1
    - Dst: pairlist_read_internal
      Src: /src/freeradius-server/src/lib/server/users_file.c:224,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/users_file.c:225,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/users_file.c:226,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/users_file.c:227,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/users_file.c:230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 8
    argNames:
    - ctx
    - dict
    - sbuff
    - list
    - file
    - lineno
    - v3_compat
    - order
    argTypes:
    - TALLOC_CTX*
    - fr_dict_t*
    - fr_sbuff_t*
    - PAIR_LIST_LIST*
    - char*
    - int
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 233
    functionName: users_include
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 0
    functionsReached:
    - ERROR_MARKER
    - fr_sbuff_char
    - ERROR
    - talloc_free
    - pairlist_read_internal
    - strrchr
    - fr_sbuff_adv_to_chr
    - fr_sbuff_is_char
    - fr_sbuff_marker
    - fr_syserror
    - fr_sbuff_current
    - fr_sbuff_adv_until
    - fr_sbuff_marker_release
    - fr_sbuff_advance
    - fr_sbuff_adv_past_blank
    - fr_sbuff_next_if_char
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: "int users_include(TALLOC_CTX *ctx, fr_dict_t const *dict, fr_sbuff_t
      *sbuff, PAIR_LIST_LIST *list,\n\t\t\t char const *file, int lineno, bool v3_compat,
      int *order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pairlist_read_internal
      Src: /src/freeradius-server/src/lib/server/users_file.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - dict
    - file
    - list
    - v3_compat
    argTypes:
    - TALLOC_CTX*
    - fr_dict_t*
    - char*
    - PAIR_LIST_LIST*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: pairlist_read
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 2
    functionsReached:
    - pairlist_read_internal
    linkageType: ''
    returnType: int
    signature: int pairlist_read(TALLOC_CTX *ctx, fr_dict_t const *dict, char const
      *file, PAIR_LIST_LIST *list, bool v3_compat)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/users_file.c:254,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/users_file.c:257,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/server/users_file.c:263,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/users_file.c:264,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/users_file.c:264,1
    - Dst: fr_sbuff_init_file
      Src: /src/freeradius-server/src/lib/server/users_file.c:268,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:300,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:301,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:302,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:304,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:315,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/users_file.c:317,1
    - Dst: fr_sbuff_is_str
      Src: /src/freeradius-server/src/lib/server/users_file.c:325,1
    - Dst: users_include
      Src: /src/freeradius-server/src/lib/server/users_file.c:326,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:328,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/users_file.c:345,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/users_file.c:345,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/server/users_file.c:346,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/server/users_file.c:347,1
    - Dst: fr_sbuff_out_abstrncpy_until
      Src: /src/freeradius-server/src/lib/server/users_file.c:355,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/users_file.c:357,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:373,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:374,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:375,1
    - Dst: map_afrom_substr
      Src: /src/freeradius-server/src/lib/server/users_file.c:380,1
    - Dst: ERROR_MARKER_ADJ
      Src: /src/freeradius-server/src/lib/server/users_file.c:383,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/users_file.c:383,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/users_file.c:385,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/users_file.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/users_file.c:390,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/users_file.c:397,1
    - Dst: tmpl_attr_set_list
      Src: /src/freeradius-server/src/lib/server/users_file.c:398,1
    - Dst: tmpl_contains_regex
      Src: /src/freeradius-server/src/lib/server/users_file.c:401,1
    - Dst: tmpl_is_regex_uncompiled
      Src: /src/freeradius-server/src/lib/server/users_file.c:402,1
    - Dst: tmpl_regex_compile
      Src: /src/freeradius-server/src/lib/server/users_file.c:403,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/users_file.c:404,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/users_file.c:405,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/users_file.c:413,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/users_file.c:414,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:419,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:425,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:439,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:440,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:443,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:449,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:461,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:462,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:471,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/users_file.c:473,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:496,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/users_file.c:498,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/users_file.c:511,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/users_file.c:515,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/users_file.c:518,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:526,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:527,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:529,1
    - Dst: map_afrom_substr
      Src: /src/freeradius-server/src/lib/server/users_file.c:541,1
    - Dst: ERROR_MARKER_ADJ
      Src: /src/freeradius-server/src/lib/server/users_file.c:544,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/users_file.c:544,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/users_file.c:548,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/users_file.c:550,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/users_file.c:551,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/users_file.c:561,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:563,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:569,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/server/users_file.c:571,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:582,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/server/users_file.c:583,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/users_file.c:586,1
    - Dst: ERROR_MARKER
      Src: /src/freeradius-server/src/lib/server/users_file.c:597,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/users_file.c:606,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 194
    argCount: 7
    argNames:
    - ctx
    - dict
    - file
    - list
    - complain
    - v3_compat
    - order
    argTypes:
    - TALLOC_CTX*
    - fr_dict_t*
    - char*
    - PAIR_LIST_LIST*
    - bool
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 609
    functionName: pairlist_read_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/users_file.c
    functionUses: 2
    functionsReached:
    - ERROR_MARKER
    - fr_sbuff_adv_to_chr
    - tmpl_attr_tail_da
    - talloc_strdup
    - tmpl_attr_set_list
    - fr_sbuff_is_str
    - fr_strerror
    - fopen
    - fr_sbuff_adv_past_blank
    - MEM
    - users_include
    - ERROR
    - ERROR_MARKER_ADJ
    - tmpl_is_attr
    - DEBUG2
    - tmpl_is_regex_uncompiled
    - fr_syserror
    - fr_assert
    - fr_sbuff_init_file
    - tmpl_contains_regex
    - map_list_init
    - fr_sbuff_out_abstrncpy_until
    - fr_sbuff_next_if_char
    - fclose
    - map_list_insert_tail
    - tmpl_regex_compile
    - talloc_free
    - fr_sbuff_is_char
    - talloc_zero
    - map_afrom_substr
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: int pairlist_read_internal(TALLOC_CTX *ctx, fr_dict_t const *dict,
      char const *file, PAIR_LIST_LIST *list, bool complain, bool v3_compat, int *order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:38,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cc
    argTypes:
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: _tmpl_cursor_pool_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - talloc_pool
    - MEM
    linkageType: ''
    returnType: void
    signature: void _tmpl_cursor_pool_init(tmpl_dcursor_ctx_t *cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:57,1
    - Dst: fr_dict_attr_cmp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - cursor
    - curr
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: _tmpl_cursor_child_next
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - fr_dict_attr_cmp
    linkageType: ''
    returnType: void
    signature: void *_tmpl_cursor_child_next(fr_dcursor_t *cursor, void *curr, void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - ns
    argTypes:
    - tmpl_dcursor_ctx_t*
    - tmpl_dcursor_nested_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: tmpl_cursor_nested_push
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void tmpl_cursor_nested_push(tmpl_dcursor_ctx_t *cc, tmpl_dcursor_nested_t
      *ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_pop_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:71,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cc
    argTypes:
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: tmpl_cursor_nested_pop
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_dlist_pop_tail
    - talloc_free
    linkageType: ''
    returnType: bool
    signature: bool tmpl_cursor_nested_pop(tmpl_dcursor_ctx_t *cc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:88,1
    - Dst: _tmpl_cursor_pool_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:89,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:90,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:90,1
    - Dst: ar_is_normal
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:103,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:104,1
    - Dst: ar_is_unspecified
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:108,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:109,1
    - Dst: fr_pair_list_to_dlist
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:109,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:111,1
    - Dst: tmpl_cursor_nested_push
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - list_ctx
    - list
    - ar
    - cc
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - tmpl_attr_t*
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: _tmpl_cursor_pair_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - ar_is_normal
    - tmpl_attr_list_next
    - _tmpl_cursor_pool_init
    - talloc
    - fr_pair_dcursor_iter_init
    - tmpl_cursor_nested_push
    - fr_assert_msg
    - fr_dcursor_init
    - MEM
    - fr_pair_list_to_dlist
    - ar_is_unspecified
    linkageType: ''
    returnType: void
    signature: void _tmpl_cursor_pair_init(TALLOC_CTX *list_ctx, fr_pair_list_t *list,
      tmpl_attr_t const *ar, tmpl_dcursor_ctx_t *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_cursor_nested_pop
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:118,1
    - Dst: _tmpl_cursor_pair_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:123,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cc
    argTypes:
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: tmpl_cursor_reset
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - _tmpl_cursor_pair_init
    - tmpl_attr_list_head
    - tmpl_cursor_nested_pop
    linkageType: ''
    returnType: void
    signature: void tmpl_cursor_reset(tmpl_dcursor_ctx_t *cc)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:144,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:146,1
    - Dst: ar_filter_is_tmpl
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:158,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:161,1
    - Dst: ar_filter_is_tmpl
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:161,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:162,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:162,1
    - Dst: tmpl_expand
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:167,1
    - Dst: ar_filter_is_none
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:186,1
    - Dst: ar_filter_is_expr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:189,1
    - Dst: unlang_xlat_eval_type
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:193,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:194,1
    - Dst: ar_filter_is_cond
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:202,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:205,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:211,1
    - Dst: ar_filter_is_num
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:211,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:239,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:247,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:261,1
    - Dst: tmpl_dcursor_ctx_t*::build
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:275,1
    - Dst: tmpl_cursor_nested_pop
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:283,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 2
    argNames:
    - curr
    - cc
    argTypes:
    - fr_pair_t*
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 286
    functionName: _tmpl_cursor_eval
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - ar_filter_is_num
    - fr_dlist_tail
    - RPEDEBUG
    - RDEBUG
    - fr_dcursor_next
    - ar_filter_is_none
    - ar_filter_is_expr
    - tmpl_cursor_nested_pop
    - ar_filter_is_tmpl
    - fr_assert
    - tmpl_expand
    - unlang_xlat_eval_type
    - ar_filter_is_cond
    - tmpl_dcursor_ctx_t*::build
    - tmpl_is_attr
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *_tmpl_cursor_eval(fr_pair_t *curr, tmpl_dcursor_ctx_t *cc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_cursor_reset
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:300,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:317,1
    - Dst: _tmpl_cursor_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:319,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:322,1
    - Dst: _tmpl_cursor_pair_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:327,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:328,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - fr_dcursor_t *cursor
    - curr
    - uctx
    argTypes:
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 343
    functionName: _tmpl_cursor_next
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_dlist_tail
    - tmpl_attr_list_next
    - tmpl_cursor_reset
    - _tmpl_cursor_eval
    - _tmpl_cursor_pair_init
    - fr_assert
    - fr_pair_list_head
    linkageType: ''
    returnType: void
    signature: void *_tmpl_cursor_next(UNUSED fr_dcursor_t *cursor, void *curr, void
      *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:380,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:394,1
    - Dst: _tmpl_cursor_pair_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:401,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:401,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:405,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:412,1
    - Dst: tmpl_is_list
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:416,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:417,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:419,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 9
    argNames:
    - err
    - ctx
    - cc
    - cursor
    - request
    - list
    - vpt
    - build
    - uctx
    argTypes:
    - int*
    - TALLOC_CTX*
    - tmpl_dcursor_ctx_t*
    - fr_dcursor_t*
    - request_t*
    - fr_pair_t*
    - tmpl_t*
    - tmpl_dcursor_build_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 427
    functionName: tmpl_dcursor_init_relative
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - tmpl_is_list
    - fr_strerror_printf
    - tmpl_attr_list_head
    - fr_dlist_init
    - tmpl_attr_tail_da
    - fr_pair_dcursor_iter_init
    - _tmpl_cursor_pair_init
    - TMPL_VERIFY
    - fr_assert
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *tmpl_dcursor_init_relative(int *err, TALLOC_CTX *ctx, tmpl_dcursor_ctx_t
      *cc,\n\t\t\t\t      fr_dcursor_t *cursor,\n\t\t\t\t      request_t *request,
      fr_pair_t *list, tmpl_t const *vpt,\n\t\t\t\t      tmpl_dcursor_build_t build,
      void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:461,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:461,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:468,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:468,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:470,1
    - Dst: tmpl_dcursor_init_relative
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 8
    argNames:
    - err
    - ctx
    - cc
    - cursor
    - request
    - vpt
    - build
    - uctx
    argTypes:
    - int*
    - TALLOC_CTX*
    - tmpl_dcursor_ctx_t*
    - fr_dcursor_t*
    - request_t*
    - tmpl_t*
    - tmpl_dcursor_build_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: _tmpl_dcursor_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - tmpl_dcursor_init_relative
    - tmpl_request
    - tmpl_request_ptr
    - fr_assert
    - tmpl_is_attr
    - memset
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *_tmpl_dcursor_init(int *err, TALLOC_CTX *ctx, tmpl_dcursor_ctx_t
      *cc,\n\t\t\t      fr_dcursor_t *cursor, request_t *request, tmpl_t const *vpt,\n\t\t\t
      \     tmpl_dcursor_build_t build, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:489,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:490,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cc
    argTypes:
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 493
    functionName: tmpl_dcursor_clear
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 20
    functionsReached:
    - fr_dlist_talloc_free
    - TALLOC_FREE
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void tmpl_dcursor_clear(tmpl_dcursor_ctx_t *cc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:522,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:522,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:523,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:523,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:531,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:533,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:536,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:540,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:541,1
    - Dst: fr_value_box_set_cursor_shallow
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - err
    - ctx
    - vb
    - request
    - vpt
    argTypes:
    - int*
    - TALLOC_CTX*
    - fr_value_box_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 548
    functionName: tmpl_dcursor_value_box_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 2
    functionsReached:
    - RPEDEBUG
    - talloc_free
    - talloc
    - fr_value_box_set_cursor_shallow
    - tmpl_dcursor_init
    - RWDEBUG
    - MEM
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *tmpl_dcursor_value_box_init(int *err, TALLOC_CTX *ctx, fr_value_box_t
      *vb, request_t *request, tmpl_t const *vpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:568,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:570,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - parent
    - cursor
    - da
    - uctx
    argTypes:
    - fr_pair_t*
    - fr_dcursor_t*
    - fr_dict_attr_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 574
    functionName: tmpl_dcursor_pair_build
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - PAIR_ALLOCED
    - fr_dcursor_append
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *tmpl_dcursor_pair_build(fr_pair_t *parent, fr_dcursor_t
      *cursor, fr_dict_attr_t const *da, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _out
    - ','
    - _ar
    - ','
    - _list_ctx
    - ','
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 587
    functionName: EXTENT_ADD
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTENT_ADD(_out, _ar, _list_ctx, _list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TMPL_VERIFY
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:628,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:630,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:630,1
    - Dst: tmpl_request_ptr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:635,1
    - Dst: tmpl_request
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:635,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:649,1
    - Dst: EXTENT_ADD
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:655,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:668,1
    - Dst: _tmpl_cursor_pair_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:673,1
    - Dst: tmpl_attr_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:673,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:684,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:685,1
    - Dst: _tmpl_cursor_eval
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:690,1
    - Dst: EXTENT_ADD
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:696,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:703,1
    - Dst: _tmpl_cursor_pair_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:708,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:709,1
    - Dst: EXTENT_ADD
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:721,1
    - Dst: tmpl_dcursor_clear
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:726,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 5
    argNames:
    - ctx
    - existing
    - to_build
    - request
    - vpt
    argTypes:
    - TALLOC_CTX*
    - fr_dlist_head_t*
    - fr_dlist_head_t*
    - request_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 614
    functionDepth: 6
    functionLinenumber: 614
    functionLinenumberEnd: 728
    functionName: tmpl_extents_find
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 1
    functionsReached:
    - fr_dlist_tail
    - tmpl_attr_list_next
    - EXTENT_ADD
    - tmpl_request
    - tmpl_attr_list_head
    - fr_dlist_init
    - _tmpl_cursor_eval
    - _tmpl_cursor_pair_init
    - tmpl_request_ptr
    - TMPL_VERIFY
    - fr_assert
    - fr_pair_list_head
    - tmpl_dcursor_clear
    - tmpl_is_attr
    linkageType: ''
    returnType: int
    signature: "int tmpl_extents_find(TALLOC_CTX *ctx,\n\t\t      fr_dlist_head_t
      *existing, fr_dlist_head_t *to_build,\n\t\t      request_t *request, tmpl_t
      const *vpt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:745,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:751,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:759,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:766,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:768,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:768,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:769,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:770,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:776,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:781,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - existing
    - to_build
    - vpt
    argTypes:
    - fr_dlist_head_t*
    - fr_dlist_head_t*
    - tmpl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 790
    functionName: tmpl_extents_build_to_leaf_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_pair_afrom_da
    - tmpl_attr_list_next
    - fr_type_is_structural
    - fr_pair_append
    - fr_dlist_remove
    - fr_assert
    - PAIR_ALLOCED
    - fr_dlist_insert_tail
    - MEM
    - fr_assert_fail
    linkageType: ''
    returnType: int
    signature: int tmpl_extents_build_to_leaf_parent(fr_dlist_head_t *existing, fr_dlist_head_t
      *to_build, tmpl_t const *vpt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:797,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:799,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:804,1
    - Dst: tmpl_attr_ref_debug
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:805,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:807,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:810,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:811,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:812,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:815,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:817,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:818,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:819,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:821,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - fp
    - head
    argTypes:
    - FILE*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 826
    functionName: tmpl_extents_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_pair_list_empty
    - fr_dlist_next
    - talloc_get_name
    - fprintf
    - tmpl_attr_ref_debug
    - fr_pair_list_head
    - strcmp
    linkageType: ''
    returnType: void
    signature: void tmpl_extents_debug(FILE *fp, fr_dlist_head_t *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:833,1
    - Dst: tmpl_request_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:838,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:839,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:839,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:840,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:843,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:844,1
    - Dst: tmpl_attr_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:849,1
    - Dst: tmpl_attr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:849,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:854,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:855,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:866,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:868,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:869,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:870,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:871,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:873,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:876,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor.c:879,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - out
    - cc
    argTypes:
    - fr_sbuff_t*
    - tmpl_dcursor_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 880
    functionName: tmpl_dcursor_print
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor.c
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - tmpl_attr_list_next
    - tmpl_attr
    - fr_dlist_next
    - fr_table_str_by_value
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - tmpl_request_list_next
    - fr_assert
    - FR_SBUFF
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tmpl_dcursor_print(fr_sbuff_t *out, tmpl_dcursor_ctx_t const
      *cc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_global_init
      Src: /src/freeradius-server/src/lib/server/base.c:47,1
    - Dst: password_init
      Src: /src/freeradius-server/src/lib/server/base.c:52,1
    - Dst: virtual_servers_bootstrap
      Src: /src/freeradius-server/src/lib/server/base.c:59,1
    - Dst: modules_rlm_bootstrap
      Src: /src/freeradius-server/src/lib/server/base.c:67,1
    - Dst: xlat_protocols_register
      Src: /src/freeradius-server/src/lib/server/base.c:78,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/lib/server/base.c:86,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/base.c:88,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/base.c:91,1
    - Dst: trigger_init
      Src: /src/freeradius-server/src/lib/server/base.c:105,1
    - Dst: virtual_servers_instantiate
      Src: /src/freeradius-server/src/lib/server/base.c:110,1
    - Dst: modules_rlm_instantiate
      Src: /src/freeradius-server/src/lib/server/base.c:115,1
    - Dst: xlat_instantiate
      Src: /src/freeradius-server/src/lib/server/base.c:120,1
    - Dst: packet_global_init
      Src: /src/freeradius-server/src/lib/server/base.c:125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - cs
    - conf_dir
    - dict
    argTypes:
    - CONF_SECTION*
    - char*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 42
    functionDepth: 10
    functionLinenumber: 42
    functionLinenumberEnd: 131
    functionName: server_init
    functionSourceFile: /src/freeradius-server/src/lib/server/base.c
    functionUses: 2
    functionsReached:
    - PERROR
    - xlat_instantiate
    - modules_rlm_bootstrap
    - xlat_protocols_register
    - modules_rlm_instantiate
    - fr_dict_read
    - packet_global_init
    - virtual_servers_instantiate
    - password_init
    - trigger_init
    - DEBUG2
    - virtual_servers_bootstrap
    - tmpl_global_init
    linkageType: ''
    returnType: int
    signature: int server_init(CONF_SECTION *cs, char const *conf_dir, fr_dict_t *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_instances_free
      Src: /src/freeradius-server/src/lib/server/base.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: server_free
    functionSourceFile: /src/freeradius-server/src/lib/server/base.c
    functionUses: 2
    functionsReached:
    - xlat_instances_free
    linkageType: ''
    returnType: void
    signature: void server_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stat_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: WEXITSTATUS
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_priv.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(stat_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stat_val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: WIFEXITED
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_priv.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFEXITED(stat_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: fr_closefrom
    functionSourceFile: /src/freeradius-server/src/lib/server/exec_priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_closefrom(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: tmpl_escape_pre_concat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_escape.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_escape_pre_concat(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tmpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: tmpl_escape_post_concat
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_escape.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_escape_post_concat(_tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: FR_TIMEVAL_TO_MS
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIMEVAL_TO_MS(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: FR_TIMESPEC_TO_MS
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIMESPEC_TO_MS(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: CF_TO_ITEM
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF_TO_ITEM(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _parent
    - ','
    - _child
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: cf_item_add
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_add(_parent, _child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _parent
    - ','
    - _prev
    - ','
    - _child
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: cf_item_insert_after
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_insert_after(_parent, _prev, _child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _parent
    - ','
    - _child
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: cf_item_remove
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_remove(_parent, _child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _parent
    - ','
    - _curr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: cf_item_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_next(_parent, _curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _parent
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: cf_item_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_foreach(_parent, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _parent
    - ','
    - _curr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: cf_item_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_prev(_parent, _curr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: cf_root
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_root(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: cf_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_parent(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: cf_lineno
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_lineno(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: cf_filename
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_filename(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ci
    - ','
    - _filename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: cf_filename_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_filename_set(_ci, _filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ci
    - ','
    - _lineno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: cf_lineno_set
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_lineno_set(_ci, _lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: cf_item_mark_parsed
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_mark_parsed(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: cf_item_is_parsed
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_is_parsed(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _parent
    - ','
    - _name1
    - ','
    - _name2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: cf_section_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_alloc(_ctx, _parent, _name1, _name2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _parent
    - ','
    - _name1
    - ','
    - _name2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: cf_section_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_alloc(_ctx, _parent, _name1, _name2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _parent
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: cf_section_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_foreach(_parent, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _name1
    - ','
    - _name2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: cf_section_find_in_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_find_in_parent(_cf, _name1, _name2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _name1
    - ','
    - _name2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: cf_section_find_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_find_parent(_cf, _name1, _name2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: cf_section_free_children
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_section_free_children(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: cf_data_find
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_find(_cf, _type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _cf
    - ','
    - _prev
    - ','
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: cf_data_find_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_find_next(_cf, _prev, _type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: cf_data_find_in_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_find_in_parent(_cf, _type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _cf
    - ','
    - _data
    - ','
    - _name
    - ','
    - _free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: cf_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_add(_cf, _data, _name, _free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _cf
    - ','
    - _data
    - ','
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: cf_data_add_static
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_add_static(_cf, _data, _type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: cf_data_remove
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_remove(_cf, _type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _cf
    - ','
    - _cd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: cf_data_remove_by_data
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_remove_by_data(_cf, _cd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _cf
    - ','
    - _type
    - ','
    - _cb
    - ','
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: cf_data_walk
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_data_walk(_cf, _type, _cb, _ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: cf_log_err
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 174
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_err(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: cf_log_warn
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_warn(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: cf_log_info
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_info(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: cf_log_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_debug(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: cf_log_perr
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_perr(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: cf_log_pwarn
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_pwarn(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cf
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: cf_log_debug_prefix
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_debug_prefix(_cf, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _parent
    - ','
    - _child
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: cf_log_err_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_err_by_child(_parent, _child, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _parent
    - ','
    - _child
    - ','
    - _f_rules
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: cf_log_perr_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_perr_by_child(_parent, _child, _f_rules, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _parent
    - ','
    - _child
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: cf_log_warn_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_warn_by_child(_parent, _child, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _parent
    - ','
    - _child
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: cf_log_info_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_info_by_child(_parent, _child, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _parent
    - ','
    - _child
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: cf_log_debug_by_child
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_log_debug_by_child(_parent, _child, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    functionName: cf_item_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_debug(_cf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ci
    - ','
    - _slen
    - ','
    - _msg
    - ','
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: cf_canonicalize_error
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_util.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_canonicalize_error(_ci, _slen, _msg, _str)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: _cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_file.c:180,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:181,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:183,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_file.c:193,1
    - Dst: fr_skip_xlat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:219,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:221,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:234,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:239,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/cf_file.c:249,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:253,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:253,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:257,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:259,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:260,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:260,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:265,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:266,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/cf_file.c:271,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:274,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:281,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:286,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:289,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:303,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:307,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:308,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:318,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:322,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:325,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_file.c:333,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:344,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:350,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:355,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:356,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:361,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:363,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:374,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:375,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:383,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:384,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_file.c:385,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:385,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:388,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:392,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:393,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:398,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:401,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:411,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:414,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:424,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:429,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/cf_file.c:436,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:439,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:448,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:449,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:454,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:455,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:468,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 181
    argCount: 9
    argNames:
    - cf
    - lineno
    - outer_cs
    - output
    - outsize
    - input
    - inlen
    - soft_fail
    - soft_fail_env
    argTypes:
    - char*
    - int
    - CONF_SECTION*
    - char*
    - size_t
    - char*
    - ssize_t
    - bool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 477
    functionName: cf_expand_variables
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 6
    functionsReached:
    - cf_item_to_pair
    - cf_filename_set
    - memcpy
    - fr_skip_xlat
    - strlen
    - close
    - cf_item_to_section
    - ERROR
    - open
    - read
    - cf_section_name2
    - fr_table_value_by_str
    - cf_section_dup
    - cf_section_name1
    - fstat
    - fr_syserror
    - cf_reference_item
    - _cf_expand_variables
    - talloc_strlen
    - getenv
    - strncmp
    - PERROR
    - strchr
    - cf_lineno_set
    - strcpy
    - cf_root
    linkageType: ''
    returnType: char
    signature: "char *cf_expand_variables(char const *cf, int lineno,\n\t\t\t\tCONF_SECTION
      *outer_cs,\n\t\t\t\tchar *output, size_t outsize,\n\t\t\t\tchar const *input,
      ssize_t inlen, bool *soft_fail, bool soft_fail_env)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_file.c:500,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:501,1
    - Dst: cf_pair_dup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:509,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:512,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:513,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:520,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:521,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:523,1
    - Dst: cf_template_merge
      Src: /src/freeradius-server/src/lib/server/cf_file.c:528,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:539,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_file.c:540,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:540,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:544,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:545,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 553
    functionName: cf_template_merge
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_filename_set
    - cf_section_find
    - cf_section_name2
    - cf_section_dup
    - fr_assert
    - cf_lineno_set
    - cf_pair_dup
    - cf_template_merge
    - cf_pair_find
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: bool
    signature: bool cf_template_merge(CONF_SECTION *cs, CONF_SECTION const *template)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/server/cf_file.c:562,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_file.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: _inode_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - CMP
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t _inode_cmp(void const *one, void const *two)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_file.c:574,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_file.c:575,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:575,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:576,1
    - Dst: fr_dirfd
      Src: /src/freeradius-server/src/lib/server/cf_file.c:595,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:596,1
    - Dst: fstatat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:600,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:601,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:605,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:617,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:621,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:622,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:624,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:626,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_file.c:629,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:633,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:633,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:637,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:637,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:639,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:643,1
    - Dst: fileno
      Src: /src/freeradius-server/src/lib/server/cf_file.c:643,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:646,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/cf_file.c:649,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:650,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:662,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:662,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - cs
    - filename
    - from_dir
    - fp_p
    argTypes:
    - CONF_SECTION*
    - char*
    - bool
    - FILE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 666
    functionName: cf_file_open
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_data_find
    - talloc_strdup
    - openat
    - fdopen
    - fopen
    - close
    - fileno
    - MEM
    - ERROR
    - fstatat
    - fr_rb_insert
    - fstat
    - fr_syserror
    - fr_rb_find
    - fr_assert
    - cf_log_debug
    - cf_data_value
    - fclose
    - talloc_free
    - talloc
    - fr_dirfd
    - cf_root
    linkageType: ''
    returnType: int
    signature: int cf_file_open(CONF_SECTION *cs, char const *filename, bool from_dir,
      FILE **fp_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: cf_file_check_set_uid_gid
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cf_file_check_set_uid_gid(uid_t uid, gid_t gid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getegid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:701,1
    - Dst: setegid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:702,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:703,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:704,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:708,1
    - Dst: seteuid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:709,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:710,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:711,1
    - Dst: setegid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:715,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/server/cf_file.c:716,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:717,1
    - Dst: cb
      Src: /src/freeradius-server/src/lib/server/cf_file.c:723,1
    - Dst: seteuid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:725,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:726,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:727,1
    - Dst: setegid
      Src: /src/freeradius-server/src/lib/server/cf_file.c:732,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:733,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:734,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - filename
    - uctx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 740
    functionName: cf_file_check_effective
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - geteuid
    - getegid
    - fr_strerror_printf
    - fr_syserror
    - seteuid
    - setegid
    - cb
    - fr_strerror_printf_push
    linkageType: ''
    returnType: cf_file_check_err_t
    signature: "cf_file_check_err_t cf_file_check_effective(char const *filename,\n\t\t\t\t\t
      \   cf_file_check_err_t (*cb)(char const *filename, void *uctx), void *uctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/cf_file.c:760,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:762,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:763,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:767,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/server/cf_file.c:769,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:771,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:772,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/server/cf_file.c:775,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:776,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:777,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:778,1
    - Dst: connect
      Src: /src/freeradius-server/src/lib/server/cf_file.c:782,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:788,1
    - Dst: fr_perm_file_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:793,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/server/cf_file.c:794,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:799,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:804,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:804,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:810,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - filename
    - uctx
    argTypes:
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 813
    functionName: cf_file_check_unix_connect
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - connect
    - socket
    - fr_strerror_printf
    - fr_syserror
    - close
    - fr_strerror_printf_push
    - fr_strerror_clear
    - talloc_strlen
    - fr_perm_file_error
    - strlcpy
    - fcntl
    linkageType: ''
    returnType: cf_file_check_err_t
    signature: cf_file_check_err_t cf_file_check_unix_connect(char const *filename,
      UNUSED void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/cf_file.c:830,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:832,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:835,1
    - Dst: fr_perm_file_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:840,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/server/cf_file.c:841,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:842,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:846,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:846,1
    - Dst: S_ISSOCK
      Src: /src/freeradius-server/src/lib/server/cf_file.c:851,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - filename
    - uctx
    argTypes:
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 857
    functionName: cf_file_check_unix_perm
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - stat
    - fr_syserror
    - S_ISSOCK
    - fr_strerror_clear
    - fr_perm_file_error
    - fr_strerror_printf_push
    linkageType: ''
    returnType: cf_file_check_err_t
    signature: cf_file_check_err_t cf_file_check_unix_perm(char const *filename, UNUSED
      void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/cf_file.c:877,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/cf_file.c:879,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:882,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:886,1
    - Dst: fr_perm_file_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:891,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/server/cf_file.c:892,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:893,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:897,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:897,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:903,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/cf_file.c:905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - filename
    - uctx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 907
    functionName: cf_file_check_open_read
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - fstat
    - open
    - fr_strerror_printf
    - fr_syserror
    - fr_strerror_clear
    - close
    - fr_perm_file_error
    - fr_strerror_printf_push
    linkageType: ''
    returnType: cf_file_check_err_t
    signature: cf_file_check_err_t cf_file_check_open_read(char const *filename, void
      *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_file.c:927,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_file.c:930,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_file.c:931,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:931,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:934,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:937,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:938,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_file.c:938,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:941,1
    - Dst: fr_perm_file_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:942,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:943,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:945,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:948,1
    - Dst: cf_file_check_effective
      Src: /src/freeradius-server/src/lib/server/cf_file.c:957,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:959,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:964,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:966,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:974,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - cp
    - check_perms
    argTypes:
    - CONF_PAIR*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 977
    functionName: cf_file_check
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_log_perr
    - cf_parent
    - talloc_free
    - fr_perm_file_error
    - cf_pair_value
    - cf_data_find
    - talloc_strdup
    - stat
    - talloc
    - cf_file_check_effective
    - fr_rb_insert
    - cf_data_value
    - cf_root
    - cf_item_to_section
    linkageType: ''
    returnType: cf_file_check_err_t
    signature: cf_file_check_err_t cf_file_check(CONF_PAIR *cp, bool check_perms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_foreach
      Src: /src/freeradius-server/src/lib/server/cf_file.c:986,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_file.c:993,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:996,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1001,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1005,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1006,1
    - Dst: cf_item_foreach
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1009,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1012,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1012,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 984
    functionDepth: 5
    functionLinenumber: 984
    functionLinenumberEnd: 1016
    functionName: cf_section_pass2
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 4
    functionsReached:
    - cf_item_to_pair
    - cf_section_pass2
    - talloc_strdup
    - talloc_const_free
    - fr_assert
    - cf_expand_variables
    - cf_item_foreach
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int cf_section_pass2(CONF_SECTION *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1025,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1027,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1035,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - base
    - filename
    - buffer
    - bufsize
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1042
    functionName: cf_local_file
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strlen
    - strlcpy
    linkageType: ''
    returnType: char
    signature: "char *cf_local_file(char const *base, char const *filename,\n\t\t\t\t
      char *buffer, size_t bufsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_preparse
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1063,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1063,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1067,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1069,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1070,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1070,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1072,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1073,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1078,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1085,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1091,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 7
    argNames:
    - parent
    - ptr_p
    - token
    - buffer
    - buflen
    - filename
    - lineno
    argTypes:
    - CONF_SECTION*
    - char**
    - fr_token_t*
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1048
    functionDepth: 5
    functionLinenumber: 1048
    functionLinenumberEnd: 1095
    functionName: cf_get_token
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - fr_skip_whitespace
    - strlen
    - tmpl_preparse
    - fr_strerror
    - cf_expand_variables
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: "int cf_get_token(CONF_SECTION *parent, char const **ptr_p, fr_token_t
      *token, char *buffer, size_t buflen,\n\t\t\tchar const *filename, int lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1108,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1110
    functionName: filename_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t filename_cmp(void const *one, void const *two)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1122,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1127,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1133,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1138,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1144,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1153,1
    - Dst: FR_DIR_IS_RELATIVE
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1157,1
    - Dst: cf_local_file
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1160,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1162,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1167,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1169,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1174,1
    - Dst: glob
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1187,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1189,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1190,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1203,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1218,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1219,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1219,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1227,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1229,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1235,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1241,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1266,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1268,1
    - Dst: opendir
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1270,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1272,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1274,1
    - Dst: closedir
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1276,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1277,1
    - Dst: dirfd
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1282,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1283,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1288,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1289,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1290,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1295,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1305,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1319,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1319,1
    - Dst: readdir
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1327,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1337,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1338,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1349,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1350,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1352,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1355,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1356,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1357,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1359,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1362,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1363,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1365,1
    - Dst: S_ISDIR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1369,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1370,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1376,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1376,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1377,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1377,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1379,1
    - Dst: closedir
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1382,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1386,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 155
    argCount: 5
    argNames:
    - stack
    - parent
    - ptr
    - required
    - relative
    argTypes:
    - cf_stack_t*
    - CONF_SECTION*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1113
    functionDepth: 5
    functionLinenumber: 1113
    functionLinenumberEnd: 1390
    functionName: process_include
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - isdigit
    - dirfd
    - WARN
    - talloc_strdup
    - strlen
    - fr_heap_alloc
    - MEM
    - ERROR
    - readdir
    - memset
    - fstat
    - fr_syserror
    - glob
    - fr_assert
    - cf_log_debug
    - fr_heap_insert
    - FR_DIR_IS_RELATIVE
    - strncmp
    - cf_expand_variables
    - closedir
    - talloc_free
    - strchr
    - stat
    - snprintf
    - fr_skip_whitespace
    - S_ISDIR
    - opendir
    - isalpha
    - isspace
    - cf_local_file
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int process_include(cf_stack_t *stack, CONF_SECTION *parent, char const
      *ptr, bool required, bool relative)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getword
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1401,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1403,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1408,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1413,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1420,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1420,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1420,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1426,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1428,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1430,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1435,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1393
    functionDepth: 3
    functionLinenumber: 1393
    functionLinenumberEnd: 1444
    functionName: process_template
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - ERROR
    - cf_parent
    - cf_section_find
    - cf_reference_item
    - cf_root
    - PERROR
    - getword
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int process_template(cf_stack_t *stack)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1487,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1489,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1492,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1493,1
    - Dst: fr_skip_condition
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1507,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1519,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1521,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1522,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1539,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1557,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1564,1
    - Dst: cf_file_fill
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1565,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1567,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1572,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1575,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1578,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1579,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1588,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1592,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1601,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1603,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1607,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1607,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1614,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1466
    functionDepth: 5
    functionLinenumber: 1466
    functionLinenumberEnd: 1615
    functionName: process_if
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - cf_canonicalize_error
    - cf_section_alloc
    - memcpy
    - talloc_free
    - UNCONST
    - talloc_strdup
    - MEM
    - fr_skip_whitespace
    - cf_file_fill
    - fr_assert
    - fr_skip_condition
    - isspace
    - cf_section_to_item
    - cf_lineno_set
    - fr_strerror_const
    - cf_expand_variables
    - cf_log_err
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *process_if(cf_stack_t *stack)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1634,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1640,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1658,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1663,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1669,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1680,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1682,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1686,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1687,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1692,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1693,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1694,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1701,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1617
    functionDepth: 6
    functionLinenumber: 1617
    functionLinenumberEnd: 1702
    functionName: process_map
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - ERROR
    - cf_section_alloc
    - talloc_array
    - talloc_strdup
    - cf_get_token
    - cf_lineno_set
    - cf_section_to_item
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *process_map(cf_stack_t *stack)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1726,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1735,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1753,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1759,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1773,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1779,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1786,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1796,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1798,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1802,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1803,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1810,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1811,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1814,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1823,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1705
    functionDepth: 6
    functionLinenumber: 1705
    functionLinenumberEnd: 1824
    functionName: process_subrequest
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - ERROR
    - cf_section_alloc
    - talloc_array
    - talloc_strdup
    - fr_skip_whitespace
    - cf_get_token
    - cf_lineno_set
    - cf_section_to_item
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *process_subrequest(cf_stack_t *stack)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1840,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1854,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1858,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1863,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1864,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1870,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1875,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1877,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1881,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1884,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1886,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1887,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1891,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1892,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1900,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1901,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1905,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1911,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1915,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1826
    functionDepth: 1
    functionLinenumber: 1826
    functionLinenumberEnd: 1916
    functionName: process_catch
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - ERROR
    - talloc_strndup
    - cf_section_alloc
    - talloc_free
    - talloc_array
    - talloc_strdup
    - fr_skip_whitespace
    - isalpha
    - isspace
    - cf_section_to_item
    - cf_lineno_set
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *process_catch(cf_stack_t *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1928,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1930,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1931,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1933,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - stack
    - ptr
    - message
    argTypes:
    - cf_stack_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 1936
    functionName: parse_error
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: int parse_error(cf_stack_t *stack, char const *ptr, char const *message)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1948,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1957,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1961,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1967,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1969,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - stack
    - ptr_p
    - type_ptr
    - type_p
    argTypes:
    - cf_stack_t*
    - char**
    - char*
    - fr_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1938
    functionDepth: 2
    functionLinenumber: 1938
    functionLinenumberEnd: 1978
    functionName: parse_type_name
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - parse_error
    - fr_table_value_by_str
    - fr_skip_whitespace
    - gettoken
    linkageType: ''
    returnType: int
    signature: int parse_type_name(cf_stack_t *stack, char const **ptr_p, char const
      *type_ptr, fr_type_t *type_p)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:1998,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2000,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2005,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2006,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2016,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2023,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2027,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2035,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2040,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2041,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2044,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2051,1
    - Dst: parse_type_name
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2059,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2079,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2080,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2082,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2085,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2089,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2095,1
    - Dst: parse_type_name
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2098,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2100,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2101,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2110,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2118,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2119,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2127,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2130,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2139,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2143,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2145,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2149,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2152,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2156,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2161,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2164,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2170,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 105
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 1989
    functionDepth: 6
    functionLinenumber: 1989
    functionLinenumberEnd: 2171
    functionName: process_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - ERROR
    - parse_error
    - fr_type_is_leaf
    - cf_section_alloc
    - talloc_array
    - talloc_strdup
    - fr_skip_whitespace
    - cf_log_warn
    - cf_get_token
    - cf_lineno_set
    - cf_section_to_item
    - parse_type_name
    - strcpy
    - fr_type_to_str
    - gettoken
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *process_foreach(cf_stack_t *stack)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2191,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2191,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2212,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2214,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2215,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2218,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2218,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2221,1
    - Dst: conf_parser_t*::on_read
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2227,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 9
    argNames:
    - parent
    - attr
    - value
    - name1_token
    - op_token
    - value_token
    - buff
    - filename
    - lineno
    argTypes:
    - CONF_SECTION*
    - char*
    - char*
    - fr_token_t
    - fr_token_t
    - fr_token_t
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2174
    functionDepth: 5
    functionLinenumber: 2174
    functionLinenumberEnd: 2228
    functionName: add_pair
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - conf_parser_t*::on_read
    - cf_pair_to_item
    - cf_data_find
    - cf_pair_alloc
    - CF_TO_ITEM
    - talloc_array_length
    - cf_lineno_set
    - cf_data_value
    - cf_expand_variables
    linkageType: ''
    returnType: int
    signature: "int add_pair(CONF_SECTION *parent, char const *attr, char const *value,\n\t\t
      \   fr_token_t name1_token, fr_token_t op_token, fr_token_t value_token,\n\t\t
      \   char *buff, char const *filename, int lineno)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2243,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2250,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2253,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2258,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2261,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2266,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2267,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2273,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2279,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2284,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2286,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2291,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2292,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2297,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2300,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2304,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2311,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2312,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2314,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2233
    functionDepth: 6
    functionLinenumber: 2233
    functionLinenumberEnd: 2322
    functionName: process_switch
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - ERROR
    - parse_error
    - fr_type_is_leaf
    - fr_table_value_by_longest_prefix
    - cf_section_alloc
    - talloc_array
    - talloc_strdup
    - fr_skip_whitespace
    - isalpha
    - cf_get_token
    - cf_lineno_set
    - cf_section_to_item
    - fr_type_to_str
    linkageType: ''
    returnType: CONF_ITEM
    signature: CONF_ITEM *process_switch(cf_stack_t *stack)
  - BBCount: 129
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2380,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2401,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2417,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2420,1
    - Dst: cf_template_merge
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2429,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2446,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2450,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2450,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2454,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2458,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2462,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2465,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2474,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2483,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2493,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2500,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2501,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2513,1
    - Dst: process
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2517,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2521,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2523,1
    - Dst: isalnum
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2537,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2547,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2561,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2569,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2573,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2585,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2591,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2599,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2605,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2664,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2664,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2668,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2670,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2673,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2676,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2678,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2678,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2682,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2685,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2692,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2693,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2697,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2702,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2705,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2710,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2714,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2715,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2716,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2722,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2748,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2749,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2750,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2758,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2758,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2767,1
    - Dst: fr_type_from_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2773,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2779,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2783,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2787,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2790,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2821,1
    - Dst: cf_root
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2825,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2827,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2830,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2834,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2837,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2838,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2848,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2849,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2850,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2851,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2852,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2856,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2857,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2865,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2866,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2868,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2879,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2883,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2890,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2894,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2900,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2906,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2907,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2921,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2922,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2923,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2924,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2926,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2927,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2951,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2960,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2969,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2978,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2979,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2980,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:2981,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3031,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3056,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3079,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3087,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3092,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3099,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3115,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3119,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3140,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3159,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3164,1
    - Dst: fr_skip_condition
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3189,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3191,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3191,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3198,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3204,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3231,1
    - Dst: cf_get_token
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3235,1
    - Dst: add_pair
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3249,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3252,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3280,1
    CyclomaticComplexity: 173
    EdgeCount: 173
    ICount: 484
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 2360
    functionDepth: 6
    functionLinenumber: 2360
    functionLinenumberEnd: 3288
    functionName: parse_input
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - cf_filename_set
    - isdigit
    - fr_type_is_leaf
    - cf_section_find
    - WARN
    - talloc_array
    - memcpy
    - talloc_strdup
    - fr_strerror
    - gettoken
    - cf_item_to_section
    - ERROR
    - fr_table_value_by_str
    - cf_template_merge
    - cf_item_is_section
    - process
    - cf_section_alloc
    - cf_reference_item
    - fr_assert
    - fr_skip_condition
    - strcmp
    - PERROR
    - fr_type_from_str
    - parse_error
    - fr_skip_whitespace
    - isalpha
    - add_pair
    - cf_get_token
    - cf_lineno_set
    - cf_root
    - isalnum
    linkageType: ''
    returnType: int
    signature: int parse_input(cf_stack_t *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3297,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3303,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3291
    functionDepth: 1
    functionLinenumber: 3291
    functionLinenumberEnd: 3323
    functionName: frame_readdir
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - memset
    - fr_heap_pop
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int frame_readdir(cf_stack_t *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_ctx_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3331
      start: 3328
    functionDepth: 1
    functionLinenumber: 3328
    functionLinenumberEnd: 3331
    functionName: cf_md5_init
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - fr_md5_ctx_alloc
    linkageType: ''
    returnType: void
    signature: void cf_md5_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3338,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3334
    functionDepth: 1
    functionLinenumber: 3334
    functionLinenumberEnd: 3339
    functionName: cf_md5_update
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - fr_md5_update
    - strlen
    linkageType: ''
    returnType: void
    signature: void cf_md5_update(char const *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3344,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3348,1
    - Dst: fr_md5_ctx_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3341
    functionDepth: 1
    functionLinenumber: 3341
    functionLinenumberEnd: 3351
    functionName: cf_md5_final
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 1
    functionsReached:
    - memset
    - fr_md5_ctx_free
    - fr_md5_final
    linkageType: ''
    returnType: void
    signature: void cf_md5_final(uint8_t *digest)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3367,1
    - Dst: cf_md5_update
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3368,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3378,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3380,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3390,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3393,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3406,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3411,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3443,1
    - Dst: _cf_preserve_comments
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3454,1
    - Dst: cf_comment_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3470,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3473,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3475,1
    - Dst: cf_filename_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3480,1
    - Dst: cf_lineno_set
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3481,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3488
      start: 3353
    functionDepth: 3
    functionLinenumber: 3353
    functionLinenumberEnd: 3488
    functionName: cf_file_fill
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 1
    functionsReached:
    - cf_filename_set
    - ERROR
    - cf_comment_alloc
    - _cf_preserve_comments
    - fgets
    - memmove
    - UNCONST
    - fr_skip_whitespace
    - strlen
    - cf_md5_update
    - cf_lineno_set
    linkageType: ''
    returnType: int
    signature: int cf_file_fill(cf_stack_t *stack)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: globfree
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3510,1
    - Dst: process_include
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3517,1
    - Dst: frame_readdir
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3532,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3540,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3553,1
    - Dst: cf_file_open
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3564,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3571,1
    - Dst: cf_file_fill
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3585,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3594,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3600,1
    - Dst: process_include
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3604,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3608,1
    - Dst: process_include
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3612,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3621,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3623,1
    - Dst: process_template
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3626,1
    - Dst: parse_error
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3631,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3638,1
    - Dst: parse_input
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3642,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3650,1
    - Dst: feof
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3655,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3656,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3657,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3657,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3661,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 111
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3674
      start: 3494
    functionDepth: 7
    functionLinenumber: 3494
    functionLinenumberEnd: 3674
    functionName: cf_file_include
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - process_template
    - parse_input
    - parse_error
    - ERROR
    - cf_lineno
    - fr_skip_whitespace
    - cf_file_open
    - cf_file_fill
    - fr_assert
    - process_include
    - cf_log_warn
    - fclose
    - cf_section_name1
    - feof
    - frame_readdir
    - cf_log_err
    - strncasecmp
    - globfree
    linkageType: ''
    returnType: int
    signature: int cf_file_include(cf_stack_t *stack)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3683,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3689,1
    - Dst: globfree
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3695,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3704,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - stack
    argTypes:
    - cf_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3676
    functionDepth: 0
    functionLinenumber: 3676
    functionLinenumberEnd: 3705
    functionName: cf_stack_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - globfree
    - talloc_free
    - fclose
    linkageType: ''
    returnType: void
    signature: void cf_stack_cleanup(cf_stack_t *stack)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3728,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3737,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3739,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3740,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3741,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3743,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3748,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3748,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3750,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3753,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3759,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3760,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3760,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3766,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3770,1
    - Dst: cf_file_include
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3773,1
    - Dst: cf_stack_cleanup
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3774,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3778,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3784,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - cs
    - filename
    - root
    argTypes:
    - CONF_SECTION*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3710
    functionDepth: 8
    functionLinenumber: 3710
    functionLinenumberEnd: 3790
    functionName: cf_file_read
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 4
    functionsReached:
    - cf_section_pass2
    - talloc_free
    - talloc_bstrndup
    - fr_rb_inline_talloc_alloc
    - strrchr
    - talloc_array
    - cf_pair_alloc
    - talloc_strdup
    - cf_file_include
    - cf_data_add
    - memset
    - MEM
    - cf_log_err
    - cf_stack_cleanup
    linkageType: ''
    returnType: int
    signature: int cf_file_read(CONF_SECTION *cs, char const *filename, bool root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3792
    functionDepth: 0
    functionLinenumber: 3792
    functionLinenumberEnd: 3795
    functionName: cf_file_free
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void cf_file_free(CONF_SECTION *cs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3823,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3825,1
    - Dst: fwrite
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3826,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3828,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - fp
    - string
    - len
    - t
    argTypes:
    - FILE*
    - char*
    - size_t
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3799
    functionDepth: 1
    functionLinenumber: 3799
    functionLinenumberEnd: 3830
    functionName: cf_string_write
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - fr_snprint
    - fwrite
    - fprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cf_string_write(FILE *fp, char const *string, size_t len, fr_token_t
      t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3835,1
    - Dst: cf_string_write
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3839,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3839,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3840,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3840,1
    - Dst: cf_string_write
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3841,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3841,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fp
    - cp
    argTypes:
    - FILE*
    - CONF_PAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3845
      start: 3832
    functionDepth: 2
    functionLinenumber: 3832
    functionLinenumberEnd: 3845
    functionName: cf_pair_write
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 0
    functionsReached:
    - fr_table_str_by_value
    - strlen
    - cf_string_write
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cf_pair_write(FILE *fp, CONF_PAIR *cp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3855,1
    - Dst: cf_string_write
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3856,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3856,1
    - Dst: fputs
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3865,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3868,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3868,1
    - Dst: cond_print
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3872,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3872,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3873,1
    - Dst: cf_string_write
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3876,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3876,1
    - Dst: fputs
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3879,1
    - Dst: cf_section_write_children
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3881,1
    - Dst: fwrite
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3883,1
    - Dst: fputs
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - fp
    - cs
    - depth
    argTypes:
    - FILE*
    - CONF_SECTION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3848
    functionDepth: 2
    functionLinenumber: 3848
    functionLinenumberEnd: 3887
    functionName: cf_section_write
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 3
    functionsReached:
    - fwrite
    - FR_SBUFF_OUT
    - cf_data_find
    - cond_print
    - cf_string_write
    - fprintf
    - fputs
    - cf_section_write_children
    - strlen
    - cf_data_value
    linkageType: ''
    returnType: int
    signature: int cf_section_write(FILE *fp, CONF_SECTION *cs, int depth)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_foreach
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3909,1
    - Dst: cf_section_write
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3912,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3912,1
    - Dst: fwrite
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3928,1
    - Dst: cf_pair_write
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3929,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3929,1
    - Dst: cf_item_to_comment
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3934,1
    - Dst: fputc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3942,1
    - Dst: fwrite
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3948,1
    - Dst: fputc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3949,1
    - Dst: fputs
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3950,1
    - Dst: fputc
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3951,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - fp
    - cs
    - depth
    argTypes:
    - FILE*
    - CONF_SECTION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3961
      start: 3903
    functionDepth: 3
    functionLinenumber: 3903
    functionLinenumberEnd: 3961
    functionName: cf_section_write_children
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 2
    functionsReached:
    - cf_item_to_pair
    - fwrite
    - fputc
    - cf_item_to_comment
    - fputs
    - cf_pair_write
    - cf_section_write
    - cf_item_foreach
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int cf_section_write_children(FILE *fp, CONF_SECTION *cs, int depth)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3975,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3980,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3984,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:3997,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4004,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4010,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4016,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4019,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4031,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4032,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4035,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4036,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4053,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4083,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4107,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4118,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4138,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4139,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4143,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4144,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4145,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4154,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4155,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4159,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4160,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4163,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4164,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4165,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4175,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4176,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4184,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4185,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4186,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4195,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 129
    argCount: 3
    argNames:
    - parent_cs
    - outer_cs
    - ptr
    argTypes:
    - CONF_SECTION*
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4197
      start: 3964
    functionDepth: 3
    functionLinenumber: 3964
    functionLinenumberEnd: 4197
    functionName: cf_reference_item
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 12
    functionsReached:
    - cf_section_find
    - fr_strerror_printf
    - strchr
    - cf_section_name2
    - fr_assert
    - cf_section_to_item
    - cf_pair_find
    - fr_strerror_const
    - cf_section_name1
    - strlcpy
    - cf_item_to_section
    linkageType: ''
    returnType: CONF_ITEM
    signature: "CONF_ITEM *cf_reference_item(CONF_SECTION const *parent_cs,\n\t\t\t
      \    CONF_SECTION const *outer_cs,\n\t\t\t     char const *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_file.c:4205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4202
    functionDepth: 0
    functionLinenumber: 4202
    functionLinenumberEnd: 4208
    functionName: cf_section_set_unlang
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_file.c
    functionUses: 2
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void cf_section_set_unlang(CONF_SECTION *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/request_data.c:61,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/request_data.c:70,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/request_data.c:72,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/request_data.c:75,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:82,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - rd
    argTypes:
    - TALLOC_CTX*
    - request_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: request_data_description
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_typed_asprintf
    linkageType: ''
    returnType: char
    signature: char *request_data_description(TALLOC_CTX *ctx, request_data_t *rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/request_data.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: request_data_list_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 3
    functionsReached:
    - fr_dlist_talloc_init
    linkageType: ''
    returnType: void
    signature: void request_data_list_init(fr_dlist_head_t *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/lib/server/request_data.c:124,1
    - Dst: request_data_description
      Src: /src/freeradius-server/src/lib/server/request_data.c:126,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:131,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:133,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - rd
    argTypes:
    - request_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: _request_data_free
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_unlink
    - request_data_description
    - DEBUG4
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _request_data_free(request_data_t *rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/request_data.c:153,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/request_data.c:153,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/request_data.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: request_data_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_set_destructor
    linkageType: ''
    returnType: request_data_t
    signature: request_data_t *request_data_alloc(TALLOC_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request_data.c:197,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request_data.c:198,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request_data.c:199,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request_data.c:200,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request_data.c:201,1
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/server/request_data.c:201,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request_data.c:202,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request_data.c:202,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request_data.c:205,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:208,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/request_data.c:211,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:218,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:222,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/request_data.c:230,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request_data.c:246,1
    - Dst: request_data_alloc
      Src: /src/freeradius-server/src/lib/server/request_data.c:247,1
    - Dst: request_data_alloc
      Src: /src/freeradius-server/src/lib/server/request_data.c:249,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/server/request_data.c:267,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:269,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 11
    argNames:
    - request
    - unique_ptr
    - unique_int
    - type
    - opaque
    - free_on_replace
    - free_on_parent
    - persist
    - file
    - file
    - int
    argTypes:
    - request_t*
    - void*
    - int
    - char*
    - void*
    - bool
    - bool
    - bool
    - NDEBUG*
    - int*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 278
    functionName: _request_data_add
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - talloc_null_ctx
    - TALLOC_FREE
    - request_data_alloc
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    - fr_assert
    - RDEBUG4
    - _talloc_get_type_abort
    - talloc_parent
    - fr_dlist_insert_head
    linkageType: ''
    returnType: int
    signature: "int _request_data_add(request_t *request, void const *unique_ptr,
      int unique_int, char const *type, void *opaque,\n\t\t      bool free_on_replace,
      bool free_on_parent, bool persist,\n#ifndef NDEBUG\n\t\t      char const *file,
      int line\n#else\n\t\t      UNUSED char const *file, UNUSED int line\n#endif\n\t\t
      \     )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:298,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/request_data.c:306,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request_data.c:309,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:312,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:317,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - request
    - unique_ptr
    - unique_int
    argTypes:
    - request_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 325
    functionName: request_data_get
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 11
    functionsReached:
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    - RDEBUG4
    - _talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *request_data_get(request_t *request, void const *unique_ptr,
      int unique_int)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:345,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request_data.c:349,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:352,1
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request_data.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - request
    - unique_ptr
    - unique_int
    argTypes:
    - request_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 363
    functionName: request_data_reference
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 6
    functionsReached:
    - _talloc_get_type_abort
    - fr_dlist_next
    - RDEBUG4
    linkageType: ''
    returnType: void
    signature: void *request_data_reference(request_t *request, void const *unique_ptr,
      int unique_int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:377,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/request_data.c:380,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/request_data.c:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - out
    - request
    - persist
    argTypes:
    - fr_dlist_head_t*
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 387
    functionName: request_data_by_persistance
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 2
    functionsReached:
    - fr_dlist_insert_tail
    - fr_dlist_next
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int request_data_by_persistance(fr_dlist_head_t *out, request_t *request,
      bool persist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/request_data.c:404,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:406,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/request_data.c:409,1
    - Dst: request_data_alloc::request_data_alloc
      Src: /src/freeradius-server/src/lib/server/request_data.c:411,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/request_data.c:417,1
    - Dst: list::list
      Src: /src/freeradius-server/src/lib/server/request_data.c:417,1
    - Dst: list::list
      Src: /src/freeradius-server/src/lib/server/request_data.c:417,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:419,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/request_data.c:424,1
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/server/request_data.c:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - persist
    argTypes:
    - TALLOC_CTX*
    - fr_dlist_head_t*
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 433
    functionName: request_data_by_persistance_reparent
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - fr_dlist_insert_tail
    - request_data_alloc::request_data_alloc
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    - list::list
    - memset
    - fr_dlist_move
    linkageType: ''
    returnType: int
    signature: int request_data_by_persistance_reparent(TALLOC_CTX *ctx, fr_dlist_head_t
      *out, request_t *request, bool persist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - request
    - persist
    argTypes:
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 453
    functionName: request_data_by_persistance_count
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 1
    functionsReached:
    - fr_dlist_next
    linkageType: ''
    returnType: int
    signature: int request_data_by_persistance_count(request_t *request, bool persist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/server/request_data.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - request
    - in
    argTypes:
    - request_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: request_data_restore
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 3
    functionsReached:
    - fr_dlist_move
    linkageType: ''
    returnType: void
    signature: void request_data_restore(request_t *request, fr_dlist_head_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/request_data.c:476,1
    - Dst: request_data_by_persistance
      Src: /src/freeradius-server/src/lib/server/request_data.c:478,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 481
    functionName: request_data_persistable_free
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - fr_dlist_talloc_free
    - request_data_by_persistance
    linkageType: ''
    returnType: void
    signature: void request_data_persistable_free(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/server/request_data.c:488,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:490,1
    - Dst: request_data_description
      Src: /src/freeradius-server/src/lib/server/request_data.c:493,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/request_data.c:494,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request_data.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - request
    - head
    argTypes:
    - request_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 497
    functionName: request_data_list_dump
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - request_data_description
    - talloc_free
    - fr_dlist_next
    - ROPTIONAL
    - fr_dlist_empty
    linkageType: ''
    returnType: void
    signature: void request_data_list_dump(request_t *request, fr_dlist_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_data_list_dump
      Src: /src/freeradius-server/src/lib/server/request_data.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: request_data_dump
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached:
    - request_data_list_dump
    linkageType: ''
    returnType: void
    signature: void request_data_dump(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rd
    argTypes:
    - request_data_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: request_data_persistable
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool request_data_persistable(request_data_t *rd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request_data.c:524,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request_data.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - parent
    - entry
    argTypes:
    - TALLOC_CTX*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 527
    functionName: request_data_verify_parent
    functionSourceFile: /src/freeradius-server/src/lib/server/request_data.c
    functionUses: 1
    functionsReached:
    - fr_dlist_next
    - talloc_parent
    linkageType: ''
    returnType: bool
    signature: bool request_data_verify_parent(TALLOC_CTX *parent, fr_dlist_head_t
      *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:80,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - TALLOC_CTX*
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: module_ctx_from_inst
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_zero
    linkageType: ''
    returnType: module_ctx_t
    signature: module_ctx_t *module_ctx_from_inst(TALLOC_CTX *ctx, module_inst_ctx_t
      const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:94,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - TALLOC_CTX*
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: module_ctx_from_thread_inst
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_zero
    linkageType: ''
    returnType: module_ctx_t
    signature: module_ctx_t *module_ctx_from_thread_inst(TALLOC_CTX *ctx, module_thread_inst_ctx_t
      const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:109,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:110,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/module_ctx.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - TALLOC_CTX*
    - module_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: module_ctx_dup
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_zero
    - memcpy
    linkageType: ''
    returnType: module_ctx_t
    signature: module_ctx_t *module_ctx_dup(TALLOC_CTX *ctx, module_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _mi
    - ','
    - _thread
    - ','
    - _env_data
    - ','
    - _rctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: MODULE_CTX
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_CTX(_mi, _thread, _env_data, _rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: MODULE_CTX_FROM_INST
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_CTX_FROM_INST(_mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: MODULE_CTX_FROM_THREAD_INST
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_CTX_FROM_THREAD_INST(_mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: MODULE_INST_CTX
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_INST_CTX(_mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: MODULE_DETACH_CTX
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_DETACH_CTX(_mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _mi
    - ','
    - _thread
    - ','
    - _el
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: MODULE_THREAD_INST_CTX
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_THREAD_INST_CTX(_mi, _thread, _el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: MODULE_THREAD_INST_CTX_FROM_INST_CTX
    functionSourceFile: /src/freeradius-server/src/lib/server/module_ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODULE_THREAD_INST_CTX_FROM_INST_CTX(_mctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:33,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:36,1
    - Dst: trunk_request_signal_partial
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:44,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:49,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:51,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:54,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:56,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:58,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: test_mux
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - write
    - trunk_request_signal_sent
    - talloc_get_type_abort
    - TEST_CHECK
    - trunk_request_signal_partial
    - abort
    - trunk_connection_pop_request
    - printf
    linkageType: ''
    returnType: void
    signature: void test_mux(UNUSED fr_event_list_t *el, trunk_connection_t *tconn,
      connection_t *conn, UNUSED void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:65,1
    - Dst: trunk_connection_pop_cancellation
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:71,1
    - Dst: trunk_request_signal_cancel_partial
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:79,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:84,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:85,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:87,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:87,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:91,1
    - Dst: trunk_request_signal_cancel_sent
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: test_cancel_mux
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - write
    - fr_syserror
    - talloc_get_type_abort
    - TEST_CHECK
    - trunk_connection_pop_cancellation
    - fr_perror
    - abort
    - printf
    - trunk_request_signal_cancel_sent
    - trunk_request_signal_cancel_partial
    linkageType: ''
    returnType: void
    signature: void test_cancel_mux(UNUSED fr_event_list_t *el, trunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:100,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:105,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:120,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:121,1
    - Dst: trunk_request_signal_cancel_complete
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:134,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:139,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - trunk_connection_t *tconn
    - conn
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 147
    functionName: test_demux
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_request_signal_complete
    - read
    - trunk_request_signal_cancel_complete
    - talloc_get_type_abort
    - fr_assert
    - printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_demux(UNUSED fr_event_list_t *el, UNUSED trunk_connection_t
      *tconn, connection_t *conn, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:153,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: _conn_io_error
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_reconnect
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void _conn_io_error(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags,\n\t\t\t   UNUSED int fd_errno, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:160,1
    - Dst: trunk_connection_signal_readable
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: _conn_io_read
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_readable
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _conn_io_read(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:166,1
    - Dst: trunk_connection_signal_writable
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: _conn_io_write
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_connection_signal_writable
    linkageType: ''
    returnType: void
    signature: void _conn_io_write(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:174,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:178,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:182,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:182,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:186,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:186,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:190,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:190,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - tconn
    - conn
    - el
    - notify_on
    - uctx
    argTypes:
    - trunk_connection_t*
    - connection_t*
    - fr_event_list_t*
    - trunk_connection_event_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 196
    functionName: _conn_notify
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_fd_insert
    - talloc_get_type_abort
    - fr_assert
    - fr_event_fd_delete
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void _conn_notify(trunk_connection_t *tconn, connection_t *conn,\n\t\t\t
      fr_event_list_t *el,\n\t\t\t trunk_connection_event_t notify_on, UNUSED void
      *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - connection_t *conn
    - preq
    - trunk_cancel_reason_t
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: test_request_cancel
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void test_request_cancel(UNUSED connection_t *conn, void *preq,\n\t\t\t\tUNUSED
      trunk_cancel_reason_t reason, void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: test_request_complete
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void test_request_complete(UNUSED request_t *request, void *preq, UNUSED
      void *rctx, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - request
    - preq
    - rctx
    - trunk_request_state_t
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: test_request_fail
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void test_request_fail(UNUSED request_t *request, void *preq, UNUSED
      void *rctx, UNUSED trunk_request_state_t state, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - request
    - preq
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: test_request_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void test_request_free(UNUSED request_t *request, void *preq, void
      *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:252,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:257,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:260,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:265,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:266,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:272,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:276,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 279
    functionName: _conn_io_loopback
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - write
    - read
    - talloc_get_type_abort
    - fr_assert
    - printf
    linkageType: ''
    returnType: void
    signature: void _conn_io_loopback(UNUSED fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:283,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:285,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:287,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:288,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 291
    functionName: _conn_close
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - talloc_free_children
    - close
    linkageType: ''
    returnType: void
    signature: void _conn_close(UNUSED fr_event_list_t *el, void *h, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:303,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - el
    - h
    - uctx
    argTypes:
    - fr_event_list_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: _conn_open
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_event_fd_insert
    - talloc_get_type_abort
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _conn_open(fr_event_list_t *el, void *h, UNUSED
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:316,1
    - Dst: socketpair
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:317,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:319,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:320,1
    - Dst: connection_signal_on_fd
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - h_out
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 325
    functionName: _conn_init
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - socketpair
    - fr_nonblock
    - connection_signal_on_fd
    - talloc_array
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _conn_init(void **h_out, connection_t *conn, UNUSED
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:335,1
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - tconn
    - el
    - conn_conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - connection_conf_t*
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: test_setup_socket_pair_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - connection_alloc
    - memset
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *test_setup_socket_pair_connection_alloc(trunk_connection_t
      *tconn,\n\t\t\t\t\t\t\t\tfr_event_list_t *el,\n\t\t\t\t\t\t\t\tconnection_conf_t
      const *conn_conf,\n\t\t\t\t\t\t\t\tchar const *log_prefix, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: test_preq_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_SMALLER
    linkageType: ''
    returnType: int8_t
    signature: int8_t test_preq_cmp(void const *a, void const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - el
    - conf
    - with_cancel_mux
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - trunk_conf_t*
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: test_setup_trunk
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    linkageType: ''
    returnType: trunk_t
    signature: trunk_t *test_setup_trunk(TALLOC_CTX *ctx, fr_event_list_t *el, trunk_conf_t
      *conf, bool with_cancel_mux, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:380,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:396,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:398,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:400,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:401,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:404,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:404,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:405,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:406,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:407,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:408,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:408,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:411,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:413,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 415
    functionName: test_socket_pair_alloc_then_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    - trunk_connection_count_by_state
    - fr_event_service
    - talloc_free
    - fr_event_list_alloc
    - talloc_init_const
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void test_socket_pair_alloc_then_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:419,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:427,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:436,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:440,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:442,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:443,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:447,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:448,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:448,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:449,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:450,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:450,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:452,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:453,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:454,1
    - Dst: trunk_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:456,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:458,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:458,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:459,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:460,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:461,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:462,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:464,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:464,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:466,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:467,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:468,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:470,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:470,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:472,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:474,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 476
    functionName: test_socket_pair_alloc_then_reconnect_then_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    - trunk_connection_count_by_state
    - fr_event_service
    - TEST_MSG
    - talloc_free
    - fr_time_delta_from_sec
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - fr_time_add_time_delta
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    - trunk_reconnect
    linkageType: ''
    returnType: void
    signature: void test_socket_pair_alloc_then_reconnect_then_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:483,1
    - Dst: socketpair
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - h_out
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: _conn_init_no_signal
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - socketpair
    - talloc_array
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _conn_init_no_signal(void **h_out, connection_t
      *conn, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:495,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:502,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tconn
    - el
    - conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - UNUSED*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 506
    functionName: test_setup_socket_pair_1s_timeout_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - connection_alloc
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *test_setup_socket_pair_1s_timeout_connection_alloc(trunk_connection_t
      *tconn,\n\t\t\t\t\t\t\t\t\t   fr_event_list_t *el,\n\t\t\t\t\t\t\t\t\t   UNUSED
      connection_conf_t const *conf,\n\t\t\t\t\t\t\t\t\t   char const *log_prefix,
      void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:510,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:526,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:528,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:531,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:532,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:538,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:538,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:539,1
    - Dst: fr_event_list_num_timers
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:539,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:540,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:541,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:543,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:544,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:547,1
    - Dst: connection_get_num_timed_out
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:547,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:548,1
    - Dst: connection_get_num_reconnected
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:548,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:553,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:558,1
    - Dst: connection_get_num_timed_out
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:558,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:559,1
    - Dst: connection_get_num_reconnected
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:559,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:561,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:562,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:564,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 566
    functionName: test_socket_pair_alloc_then_connect_timeout
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - trunk_alloc
    - connection_get_num_timed_out
    - fr_event_service
    - talloc_free
    - fr_event_list_num_timers
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - connection_get_num_reconnected
    - fr_time_add_time_delta
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void test_socket_pair_alloc_then_connect_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:573,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:580,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tconn
    - el
    - conn_conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - UNUSED*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 584
    functionName: test_setup_socket_pair_1s_reconnection_delay_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - connection_alloc
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *test_setup_socket_pair_1s_reconnection_delay_alloc(trunk_connection_t
      *tconn,\n\t\t\t\t\t\t\t\t\t   fr_event_list_t *el,\n\t\t\t\t\t\t\t\t\t   UNUSED
      connection_conf_t const *conn_conf,\n\t\t\t\t\t\t\t\t\t   char const *log_prefix,
      void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:588,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:597,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:598,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:608,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:609,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:611,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:612,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:618,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:618,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:619,1
    - Dst: fr_event_list_num_timers
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:619,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:620,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:621,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:622,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:624,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:625,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:628,1
    - Dst: connection_get_num_timed_out
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:628,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:629,1
    - Dst: connection_get_num_reconnected
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:629,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:634,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:635,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:635,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:637,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:638,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:639,1
    - Dst: fr_event_list_num_timers
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:639,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:641,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:641,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:642,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:643,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:645,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:647,1
    - Dst: connection_get_num_timed_out
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:647,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:648,1
    - Dst: connection_get_num_reconnected
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:648,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:650,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:651,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:653,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 586
    functionDepth: 7
    functionLinenumber: 586
    functionLinenumberEnd: 655
    functionName: test_socket_pair_alloc_then_reconnect_check_delay
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_alloc
    - connection_get_num_timed_out
    - fr_event_service
    - connection_signal_reconnect
    - talloc_free
    - fr_event_list_num_timers
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - connection_get_num_reconnected
    - fr_minmax_heap_min_peek
    - fr_time_add_time_delta
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_socket_pair_alloc_then_reconnect_check_delay(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:662,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:668,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:676,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:677,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:679,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:686,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:696,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:698,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:700,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:700,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:705,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:706,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:708,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:708,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:709,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:709,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:715,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:715,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:725,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:726,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:728,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:728,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:734,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:735,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:745,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:746,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:748,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:749,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:750,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:751,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:752,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:754,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 756
    functionName: test_enqueue_basic
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - trunk_connection_count_by_state
    - talloc_free
    - test_setup_trunk
    - trunk_request_enqueue
    - trunk_request_count_by_state
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - talloc_zero
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void test_enqueue_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:763,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:769,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:776,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:777,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:779,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:780,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:781,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:783,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:784,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:785,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:786,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:787,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:788,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:789,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:791,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:792,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:793,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:795,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:797,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:798,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:798,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:800,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:801,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:802,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:803,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:804,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:805,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:807,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:808,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:809,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:812,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:815,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:816,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:818,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:819,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:821,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:821,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:823,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:825,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:826,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:827,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:828,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:829,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:831,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:832,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:833,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:836,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:839,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:840,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:842,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:843,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:845,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:845,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:846,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:847,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:847,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:849,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:850,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:851,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:852,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:853,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:854,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:856,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:857,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:858,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:860,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:863,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:864,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:866,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:867,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:869,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:869,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:870,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:872,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:873,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:874,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:875,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:876,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:878,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:879,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:880,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:882,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:885,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:886,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:888,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:889,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:891,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:891,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:892,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:893,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:893,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:895,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:896,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:897,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:898,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:899,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:900,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:902,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:903,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:904,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:907,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:910,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:911,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:913,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:914,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:916,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:916,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:917,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:918,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:918,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:920,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:921,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:923,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:923,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:925,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:927,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:928,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:929,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:930,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:931,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:933,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:934,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:935,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:937,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:940,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:941,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:943,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:944,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:946,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:946,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:947,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:948,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:948,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:950,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:951,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:953,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:953,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:955,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:957,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:958,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:959,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:960,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:961,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:963,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:964,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:965,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:967,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:970,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:971,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:973,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:974,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:976,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:976,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:977,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:978,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:978,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:980,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:981,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:983,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:983,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:985,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:986,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:988,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:989,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:991,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:991,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:993,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:995,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:996,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:997,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:998,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:999,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 175
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 1003
    functionName: test_enqueue_cancellation_points
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - talloc_free
    - TEST_CASE
    - test_setup_trunk
    - trunk_request_enqueue
    - trunk_request_count_by_state
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - talloc_zero
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void test_enqueue_cancellation_points(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1010,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1016,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1023,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1024,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1026,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1027,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1031,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1033,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1036,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1037,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1039,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1040,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1042,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1042,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1044,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1045,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1047,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1047,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1049,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1050,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1050,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1052,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1054,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1055,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1057,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1057,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1059,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1060,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1062,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1062,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1064,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1065,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1067,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1067,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1069,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1071,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1072,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1073,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1074,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1075,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1078
    functionName: test_partial_to_complete_states
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - talloc_free
    - TEST_CASE
    - test_setup_trunk
    - trunk_request_enqueue
    - trunk_request_count_by_state
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - talloc_zero
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    - trunk_request_signal_cancel
    linkageType: ''
    returnType: void
    signature: void test_partial_to_complete_states(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1085,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1091,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1093,1
    - Dst: fr_talloc_fault_setup
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1102,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1104,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1105,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1107,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1108,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1112,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1113,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1115,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1117,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1117,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1119,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1123,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1123,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1125,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1130,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1131,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1131,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1136,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1137,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1137,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1138,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1140,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1145,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1145,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1146,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1147,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1148,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1149,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1155,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1155,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1156,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1158,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1158,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1159,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1160,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1162,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1162,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1171,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1173,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1174,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1175,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1176,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1180,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1180,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1181,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1183,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1188,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1189,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1196,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1197,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1198,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1198,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1201,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1203,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1203,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1209,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1209,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1210,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1211,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1212,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1214,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1215,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1216,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1221,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1226,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1227,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1227,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1234,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1236,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1236,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1237,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1238,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1240,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1240,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1241,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1242,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1244,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1244,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1245,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1248,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1249,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1250,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1251,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1258,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1258,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1259,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1260,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1262,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1267,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1270,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1273,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1273,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1278,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1278,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1279,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1280,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1282,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1282,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1283,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1285,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1285,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1290,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1290,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1291,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1292,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1294,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1294,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1299,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1301,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1301,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1302,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1303,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1305,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1306,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1307,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1308,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1315,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1315,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1316,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1317,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1319,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1324,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1326,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1329,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1329,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1334,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1334,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1335,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1336,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1338,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1338,1
    - Dst: trunk_request_signal_cancel
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1339,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1341,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1341,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1346,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1346,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1347,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1348,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1350,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1350,1
    - Dst: trunk_connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1355,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1357,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1357,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1358,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1359,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1362,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1363,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1364,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1366,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 136
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1369
    functionName: test_requeue_on_reconnect
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - trunk_request_enqueue
    - trunk_request_count_by_state
    - trunk_request_signal_cancel
    - test_setup_trunk
    - fr_time_delta_from_nsec
    - TEST_CHECK
    - fr_event_list_alloc
    - talloc_init_const
    - fr_time_add_time_delta
    - fr_time_delta_from_sec
    - trunk_connection_signal_reconnect
    - fr_event_service
    - trunk_connection_count_by_state
    - talloc_free
    - fr_talloc_fault_setup
    - talloc_zero
    - TEST_CHECK_LEN
    - fr_timer_list_set_time_func
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void test_requeue_on_reconnect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1373,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1379,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1386,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1387,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1390,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1390,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1392,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1393,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1395,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1396,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1403,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1404,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1406,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1406,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1408,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1409,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1411,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1411,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1416,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1417,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1419,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1419,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1421,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1422,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1424,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1424,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1425,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1425,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1427,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1371
    functionDepth: 2
    functionLinenumber: 1371
    functionLinenumberEnd: 1429
    functionName: test_connection_start_on_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - trunk_connection_count_by_state
    - talloc_free
    - TEST_CASE
    - test_setup_trunk
    - trunk_request_enqueue
    - trunk_request_count_by_state
    - fr_event_list_alloc
    - fr_time_delta_from_nsec
    - talloc_init_const
    - talloc_zero
    - fr_time_add_time_delta
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void test_connection_start_on_enqueue(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1433,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1439,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1447,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1448,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1450,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1451,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1452,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1457,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1458,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1464,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1466,1
    - Dst: trunk_connection_signal_inactive
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1467,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1470,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1471,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1472,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1474,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1475,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1475,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1476,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1476,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1483,1
    - Dst: trunk_connection_signal_active
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1484,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1486,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1486,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1487,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1487,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1489,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1431
    functionDepth: 2
    functionLinenumber: 1431
    functionLinenumberEnd: 1491
    functionName: test_connection_rebalance_requests
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - talloc_free
    - TEST_CASE
    - test_setup_trunk
    - trunk_request_enqueue
    - trunk_connection_signal_active
    - trunk_connection_signal_inactive
    - TEST_CHECK
    - fr_event_list_alloc
    - trunk_request_count_by_state
    - fr_time_delta_from_nsec
    - talloc_init_const
    - talloc_zero
    - trunk_request_count_by_connection
    - printf
    - fr_timer_list_set_time_func
    - fr_event_corral
    - fr_minmax_heap_min_peek
    linkageType: ''
    returnType: void
    signature: void test_connection_rebalance_requests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1500
    functionName: ALLOC_REQ
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC_REQ(_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1503,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1512,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1520,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1521,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1524,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1524,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1526,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1527,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1532,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1533,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1534,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1534,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1535,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1541,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1541,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1542,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1543,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1545,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1545,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1546,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1551,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1552,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1553,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1553,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1554,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1554,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1555,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1557,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1558,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1559,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1559,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1560,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1560,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1561,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1563,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1564,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1565,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1565,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1566,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1566,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1567,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1569,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1570,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1571,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1571,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1572,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1572,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1573,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1578,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1579,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1581,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1582,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1582,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1583,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1583,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1584,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1589,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1590,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1592,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1593,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1593,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1594,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1599,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1599,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1600,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1601,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1606,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1606,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1607,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1608,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1610,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1611,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1612,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1613,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1615,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1616,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1617,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1618,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1620,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1620,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1621,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1621,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1622,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1624,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1629,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1630,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1635,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1636,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1641,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1642,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1644,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1645,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1646,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1647,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1650,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1651,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1652,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1654,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1654,1
    - Dst: TRUNK_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1655,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1659
    functionName: test_connection_levels_max
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - ALLOC_REQ
    - trunk_connection_count_by_state
    - TEST_CASE
    - test_setup_trunk
    - trunk_request_enqueue
    - talloc_free
    - trunk_request_count_by_state
    - fr_event_list_alloc
    - TRUNK_VERIFY
    - fr_time_delta_from_nsec
    - talloc_init_const
    - fr_time_add_time_delta
    - TEST_CHECK_LEN
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_connection_levels_max(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1663,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1672,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1682,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1683,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1686,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1686,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1688,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1689,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1694,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1695,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1696,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1696,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1702,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1703,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1705,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1705,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1707,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1708,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1709,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1709,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1710,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1710,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1711,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1711,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1716,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1717,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1719,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1719,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1721,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1722,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1723,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1723,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1724,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1724,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1726,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1727,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1729,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1729,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1730,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1730,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1731,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1731,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1736,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1736,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1738,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1739,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1741,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1741,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1743,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1744,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1744,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1745,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1745,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1750,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1751,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1753,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1753,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1755,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1756,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1756,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1757,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1757,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1762,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1763,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1765,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1765,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1767,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1768,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1768,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1770,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1771,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1772,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1773,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1778,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1779,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1780,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1780,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1785,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1786,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1788,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1788,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1790,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1791,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1792,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1792,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1793,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1793,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1794,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1794,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1799,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1800,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1802,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1802,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1804,1
    - Dst: ALLOC_REQ
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1805,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1806,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1806,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1807,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1807,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1809,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1810,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1812,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1812,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1813,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1813,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1814,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1814,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1816,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1818
    functionName: test_connection_levels_alternating_edges
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - fr_event_service
    - ALLOC_REQ
    - trunk_connection_count_by_state
    - TEST_CASE
    - test_setup_trunk
    - trunk_request_enqueue
    - talloc_free
    - trunk_request_count_by_state
    - fr_event_list_alloc
    - memset
    - fr_time_delta_from_nsec
    - talloc_init_const
    - fr_time_add_time_delta
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_event_corral
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_connection_levels_alternating_edges(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1823,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1835,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1846,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1847,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1850,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1850,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1852,1
    - Dst: test_setup_trunk
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1853,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1858,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1859,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1868,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1868,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1869,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1870,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1872,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1872,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1876,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1877,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1883,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1884,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1886,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1888,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1889,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1891,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1892,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1893,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1897,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1898,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1900,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1902,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1903,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1903,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1905,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1906,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1909,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1910,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1911,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1915,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1916,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1917,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1918,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1921,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1922,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1923,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1924,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk_tests.c:1928,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1821
    functionDepth: 2
    functionLinenumber: 1821
    functionLinenumberEnd: 1929
    functionName: test_enqueue_and_io_speed
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk_tests.c
    functionUses: 0
    functionsReached:
    - trunk_request_free
    - talloc_array
    - TEST_CASE
    - trunk_request_enqueue
    - fr_time_sub
    - MEM
    - fr_time
    - test_setup_trunk
    - fr_time_delta_from_nsec
    - memset
    - INFO
    - fr_time_delta_unwrap
    - fr_event_list_alloc
    - talloc_init_const
    - fr_time_add_time_delta
    - fr_event_service
    - talloc_free
    - trunk_request_alloc
    - fr_box_time_delta
    - talloc_zero
    - TEST_CHECK_LEN
    - fr_timer_list_set_time_func
    - fr_event_corral
    linkageType: ''
    returnType: void
    signature: void test_enqueue_and_io_speed(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/main_loop.c:63,1
    - Dst: sd_notify
      Src: /src/freeradius-server/src/lib/server/main_loop.c:65,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/main_loop.c:67,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_loop.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - ctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: sd_watchdog_event
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 0
    functionsReached:
    - sd_notify
    - ERROR
    - DEBUG
    - fr_timer_in
    linkageType: ''
    returnType: void
    signature: void sd_watchdog_event(fr_timer_list_t *tl, UNUSED fr_time_t now, void
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/main_loop.c:86,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/server/main_loop.c:99,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/server/main_loop.c:100,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_loop.c:100,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/server/main_loop.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 103
    functionName: main_loop_signal_raise
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 7
    functionsReached:
    - write
    - read
    - FR_FAULT_LOG
    - fr_syserror
    - fr_exit
    linkageType: ''
    returnType: void
    signature: void main_loop_signal_raise(int flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:109,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/lib/server/main_loop.c:110,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:112,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/lib/server/main_loop.c:113,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/main_loop.c:116,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/main_loop.c:126,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/main_loop.c:128,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/server/main_loop.c:129,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/main_loop.c:129,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/main_loop.c:129,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:130,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:134,1
    - Dst: trigger
      Src: /src/freeradius-server/src/lib/server/main_loop.c:138,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/lib/server/main_loop.c:138,1
    - Dst: fr_event_loop_exit
      Src: /src/freeradius-server/src/lib/server/main_loop.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 141
    functionName: main_loop_signal_process
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 0
    functionsReached:
    - INFO
    - fr_time_wrap
    - fr_time
    - fr_event_loop_exit
    - fr_time_delta_lt
    - fr_time_sub
    - unlang_interpret_get_thread_default
    - close
    - trigger
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void main_loop_signal_process(int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/freeradius-server/src/lib/server/main_loop.c:152,1
    - Dst: main_loop_signal_process
      Src: /src/freeradius-server/src/lib/server/main_loop.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - fr_event_list_t *xel
    - int
    - flags
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 161
    functionName: main_loop_signal_recv
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 0
    functionsReached:
    - read
    - main_loop_signal_process
    linkageType: ''
    returnType: void
    signature: "void main_loop_signal_recv(UNUSED fr_event_list_t *xel,\n\t\t\t\t
      \ UNUSED int fd, UNUSED int flags, UNUSED void *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: main_loop_event_list
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: fr_event_list_t
    signature: fr_event_list_t *main_loop_event_list(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sd_watchdog_enabled
      Src: /src/freeradius-server/src/lib/server/main_loop.c:176,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/server/main_loop.c:182,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:184,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/main_loop.c:184,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 188
    functionName: main_loop_set_sd_watchdog_interval
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 1
    functionsReached:
    - INFO
    - fr_time_delta_wrap
    - sd_watchdog_enabled
    - fr_box_time_delta
    linkageType: ''
    returnType: void
    signature: void main_loop_set_sd_watchdog_interval(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/main_loop.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: main_loop_free
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 3
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void main_loop_free(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/main_loop.c:201,1
    - Dst: sd_notify
      Src: /src/freeradius-server/src/lib/server/main_loop.c:210,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/main_loop.c:215,1
    - Dst: sd_watchdog_event
      Src: /src/freeradius-server/src/lib/server/main_loop.c:215,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/main_loop.c:215,1
    - Dst: fr_event_loop
      Src: /src/freeradius-server/src/lib/server/main_loop.c:218,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_loop.c:222,1
    - Dst: sd_notify
      Src: /src/freeradius-server/src/lib/server/main_loop.c:223,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/server/main_loop.c:224,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/server/main_loop.c:233,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/main_loop.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 237
    functionName: main_loop_start
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 1
    functionsReached:
    - sd_notify
    - INFO
    - sd_watchdog_event
    - fr_time_wrap
    - FR_TIMER_DELETE
    - fr_time_delta_ispos
    - fr_event_fd_delete
    - getenv
    - close
    - fr_event_loop
    linkageType: ''
    returnType: int
    signature: int main_loop_start(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/server/main_loop.c:241,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/main_loop.c:241,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/main_loop.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fr_time_t
    - wake
    - ctx
    argTypes:
    - UNUSED
    - fr_time_delta_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: _loop_status
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_time_delta_unwrap
    - fr_box_time_delta
    linkageType: ''
    returnType: int
    signature: int _loop_status(UNUSED fr_time_t now, fr_time_delta_t wake, UNUSED
      void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/server/main_loop.c:257,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/server/main_loop.c:269,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_loop.c:270,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_loop.c:270,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/server/main_loop.c:273,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/server/main_loop.c:273,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/main_loop.c:274,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/server/main_loop.c:274,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_loop.c:275,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_loop.c:275,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/main_loop.c:277,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/main_loop.c:278,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/main_loop.c:282,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/server/main_loop.c:284,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/main_loop.c:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 294
    functionName: main_loop_init
    functionSourceFile: /src/freeradius-server/src/lib/server/main_loop.c
    functionUses: 3
    functionsReached:
    - DEBUG4
    - ERROR
    - fr_cloexec
    - pipe
    - fr_syserror
    - fr_event_fd_insert
    - fr_event_list_alloc
    - fr_nonblock
    - close
    - PERROR
    linkageType: ''
    returnType: int
    signature: int main_loop_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dependency.c:72,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dependency.c:72,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dependency.c:73,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dependency.c:75,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/server/dependency.c:75,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dependency.c:79,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dependency.c:79,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dependency.c:80,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dependency.c:82,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/server/dependency.c:82,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dependency.c:86,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dependency.c:86,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/dependency.c:87,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dependency.c:89,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/server/dependency.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - magic
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: rad_check_lib_magic
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 1
    functionsReached:
    - MAGIC_COMMIT
    - ERROR
    - MAGIC_PREFIX
    - MAGIC_VERSION
    linkageType: ''
    returnType: int
    signature: int rad_check_lib_magic(uint64_t magic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/dependency.c:116,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/dependency.c:120,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/dependency.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - cs
    - name
    - enabled
    argTypes:
    - CONF_SECTION*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: dependency_feature_add
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - cf_pair_alloc
    - cf_pair_find
    linkageType: ''
    returnType: int
    signature: int dependency_feature_add(CONF_SECTION *cs, char const *name, bool
      enabled)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/dependency.c:157,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/dependency.c:161,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/dependency.c:165,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:169,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/dependency.c:169,1
    - Dst: cf_pair_replace
      Src: /src/freeradius-server/src/lib/server/dependency.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - cs
    - name
    - version
    argTypes:
    - CONF_SECTION*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: dependency_version_number_add
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 2
    functionsReached:
    - cf_pair_replace
    - WARN
    - fr_cond_assert_msg
    - cf_pair_value
    - cf_pair_alloc
    - cf_pair_find
    linkageType: ''
    returnType: int
    signature: int dependency_version_number_add(CONF_SECTION *cs, char const *name,
      char const *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:187,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:195,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:204,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:205,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:213,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:214,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:217,1
    - Dst: defined
      Src: /src/freeradius-server/src/lib/server/dependency.c:218,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:225,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:233,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:241,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:249,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:257,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:265,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:277,1
    - Dst: fr_get_lsan_state
      Src: /src/freeradius-server/src/lib/server/dependency.c:277,1
    - Dst: ProfilerGetCurrentState
      Src: /src/freeradius-server/src/lib/server/dependency.c:284,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:289,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:297,1
    - Dst: dependency_feature_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:303,1
    - Dst: fr_get_debug_state
      Src: /src/freeradius-server/src/lib/server/dependency.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 304
    functionName: dependency_features_init
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 1
    functionsReached:
    - ProfilerGetCurrentState
    - defined
    - dependency_feature_add
    - fr_get_debug_state
    - fr_get_lsan_state
    linkageType: ''
    returnType: void
    signature: void dependency_features_init(CONF_SECTION *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kqueue
      Src: /src/freeradius-server/src/lib/server/dependency.c:312,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:315,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/dependency.c:315,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/server/dependency.c:319,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/server/dependency.c:320,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/dependency.c:321,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: dependency_libqueue_version
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 0
    functionsReached:
    - kevent
    - fr_syserror
    - close
    - EV_SET
    - kqueue
    - dependency_version_number_add
    linkageType: ''
    returnType: void
    signature: void dependency_libqueue_version(CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:339,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/dependency.c:341,1
    - Dst: talloc_version_major
      Src: /src/freeradius-server/src/lib/server/dependency.c:341,1
    - Dst: talloc_version_minor
      Src: /src/freeradius-server/src/lib/server/dependency.c:341,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:342,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:345,1
    - Dst: fr_openssl_version_basic
      Src: /src/freeradius-server/src/lib/server/dependency.c:345,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/dependency.c:350,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/server/dependency.c:350,1
    - Dst: dependency_version_number_add
      Src: /src/freeradius-server/src/lib/server/dependency.c:351,1
    - Dst: dependency_libqueue_version
      Src: /src/freeradius-server/src/lib/server/dependency.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 333
    functionDepth: 5
    functionLinenumber: 333
    functionLinenumberEnd: 358
    functionName: dependency_version_numbers_init
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 0
    functionsReached:
    - talloc_version_major
    - dependency_libqueue_version
    - talloc_version_minor
    - snprintf
    - fr_openssl_version_basic
    - STRINGIFY
    - dependency_version_number_add
    linkageType: ''
    returnType: void
    signature: void dependency_version_numbers_init(CONF_SECTION *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/dependency.c:374,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/dependency.c:374,1
    - Dst: dependency_features_init
      Src: /src/freeradius-server/src/lib/server/dependency.c:375,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/dependency.c:377,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/dependency.c:377,1
    - Dst: dependency_version_numbers_init
      Src: /src/freeradius-server/src/lib/server/dependency.c:378,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:380,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:382,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:384,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/dependency.c:385,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/dependency.c:385,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/dependency.c:385,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:389,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:391,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/dependency.c:392,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/dependency.c:392,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/dependency.c:392,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:396,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:398,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/dependency.c:401,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/dependency.c:402,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:404,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/dependency.c:405,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/dependency.c:405,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:408,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:410,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/dependency.c:412,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/dependency.c:415,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/dependency.c:416,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:418,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/dependency.c:419,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/dependency.c:419,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dependency.c:422,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/dependency.c:423,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:425,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:427,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:429,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:432,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:434,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:437,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:440,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:443,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/dependency.c:445,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:448,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:449,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:450,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:451,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:452,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:453,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:454,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:455,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:456,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:457,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:458,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/dependency.c:459,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:462,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:463,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:464,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:465,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:466,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:467,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:468,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:469,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:470,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/dependency.c:471,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/server/dependency.c:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 365
    functionDepth: 6
    functionLinenumber: 365
    functionLinenumberEnd: 474
    functionName: dependency_version_print
    functionSourceFile: /src/freeradius-server/src/lib/server/dependency.c
    functionUses: 2
    functionsReached:
    - cf_pair_attr
    - dependency_version_numbers_init
    - cf_item_to_pair
    - INFO
    - cf_section_alloc
    - WARN
    - talloc_free
    - dependency_features_init
    - cf_pair_value
    - cf_item_next
    - fflush
    - talloc_array_length
    - DEBUG2
    - MEM
    linkageType: ''
    returnType: void
    signature: void dependency_version_print(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:46,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/auth.c:46,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/lib/server/auth.c:46,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/server/auth.c:47,1
    - Dst: fr_pair_find_by_num
      Src: /src/freeradius-server/src/lib/server/auth.c:62,1
    - Dst: fr_pair_find_by_num
      Src: /src/freeradius-server/src/lib/server/auth.c:63,1
    - Dst: fr_pair_find_by_num
      Src: /src/freeradius-server/src/lib/server/auth.c:66,1
    - Dst: fr_pair_find_by_num
      Src: /src/freeradius-server/src/lib/server/auth.c:67,1
    - Dst: fr_pair_find_by_num
      Src: /src/freeradius-server/src/lib/server/auth.c:78,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/auth.c:87,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/auth.c:90,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/auth.c:100,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:101,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/auth.c:107,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:108,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/auth.c:115,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/auth.c:124,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/auth.c:143,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:144,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:149,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:156,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/auth.c:165,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/server/auth.c:167,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/auth.c:168,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/server/auth.c:168,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:171,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/auth.c:171,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/lib/server/auth.c:171,1
    - Dst: request_t*::async::process
      Src: /src/freeradius-server/src/lib/server/auth.c:172,1
    - Dst: MODULE_CTX
      Src: /src/freeradius-server/src/lib/server/auth.c:173,1
    - Dst: module_rlm_by_data
      Src: /src/freeradius-server/src/lib/server/auth.c:173,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/auth.c:175,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/auth.c:175,1
    - Dst: unlang_call_current
      Src: /src/freeradius-server/src/lib/server/auth.c:175,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/auth.c:177,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 2
    argNames:
    - p_result
    - request
    argTypes:
    - unlang_result_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 190
    functionName: rad_virtual_server
    functionSourceFile: /src/freeradius-server/src/lib/server/auth.c
    functionUses: 1
    functionsReached:
    - talloc_memdup
    - RDEBUG
    - unlang_call_current
    - request_t*::async::process
    - module_rlm_by_data
    - fr_cond_assert
    - strchr
    - MODULE_CTX
    - talloc_get_name
    - cf_section_name2
    - fr_pair_find_by_num
    - log_request_pair_list
    - fr_assert
    - talloc_set_name_const
    - strcmp
    - memcmp
    - RWDEBUG
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t rad_virtual_server(unlang_result_t *p_result, request_t
      *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/lib/server/auth.c:205,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/server/auth.c:214,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/server/auth.c:218,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/lib/server/auth.c:223,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/server/auth.c:229,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/lib/server/auth.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - pairs
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 233
    functionName: common_packet_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/auth.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void common_packet_debug(request_t *request, fr_packet_t *packet, fr_pair_list_t
      *pairs, bool received)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: FR_STATS_INC
    functionSourceFile: /src/freeradius-server/src/lib/server/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_INC(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: FR_STATS_TYPE_INC
    functionSourceFile: /src/freeradius-server/src/lib/server/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_TYPE_INC(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: PAIR_SPACE
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_SPACE(_cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SECTION_SPACE
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION_SPACE(_cs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:71,1
    - Dst: PAIR_SPACE
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:71,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:78,1
    - Dst: fr_asprint
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:79,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:79,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:82,1
    - Dst: fr_type_is_quoted
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:85,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:86,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:108,1
    - Dst: PAIR_SPACE
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:108,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:110,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - cs
    - cp
    - rule
    argTypes:
    - CONF_SECTION*
    - CONF_PAIR*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 113
    functionName: cf_pair_debug_log
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - fr_type_is_quoted
    - cf_pair_value_quote
    - fr_asprint
    - talloc_free
    - PAIR_SPACE
    - cf_pair_value
    - fr_type_is_string
    - cf_log_debug
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void cf_pair_debug_log(CONF_SECTION const *cs, CONF_PAIR *cp, conf_parser_t
      const *rule)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:130,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:130,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:131,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:132,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:140,1
    - Dst: fr_rule_file_socket
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:141,1
    - Dst: fr_rule_file_readable
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:149,1
    - Dst: fr_rule_file_writable
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:149,1
    - Dst: cf_file_check_effective
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:150,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:150,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:151,1
    - Dst: fr_rule_file_exists
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:158,1
    - Dst: cf_file_check_effective
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:159,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:159,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:160,1
    - Dst: cf_file_check_effective
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:168,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:168,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:174,1
    - Dst: fr_rule_file_readable
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:185,1
    - Dst: cf_file_check
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:185,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:187,1
    - Dst: fr_rule_file_exists
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:190,1
    - Dst: cf_file_check
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:190,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - out
    - cp
    - rule
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - CONF_PAIR*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 196
    functionName: cf_pair_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_log_perr
    - fr_rule_file_socket
    - cf_pair_value
    - fr_type_is_string
    - cf_file_check_effective
    - fr_rule_file_exists
    - fr_value_box_clear
    - fr_value_box_mark_safe_for
    - cf_file_check
    - talloc_strlen
    - fr_rule_file_readable
    - fr_type_to_str
    - fr_rule_file_writable
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: int cf_pair_to_value_box(TALLOC_CTX *ctx, fr_value_box_t *out, CONF_PAIR
      *cp, conf_parser_t const *rule)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:220,1
    - Dst: fr_rule_not_empty
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:222,1
    - Dst: fr_rule_is_tmpl
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:223,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:226,1
    - Dst: fr_rule_is_attribute
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:226,1
    - Dst: fr_rule_required
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:228,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:234,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:242,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:250,1
    - Dst: fr_rule_required
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:251,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:251,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:267,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:267,1
    - Dst: fr_rule_is_attribute
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:278,1
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:279,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:282,1
    - Dst: fr_rule_is_attribute
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:293,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:294,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:298,1
    - Dst: cf_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:303,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:306,1
    - Dst: tmpl_contains_data
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:312,1
    - Dst: tmpl_is_data_unresolved
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:315,1
    - Dst: tmpl_cast_set
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:316,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:318,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:321,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:321,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:323,1
    - Dst: cf_pair_to_value_box
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:340,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:340,1
    - Dst: fr_value_box_memcpy_out
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:342,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:343,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:344,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 5
    argNames:
    - ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - UNUSED*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 213
    functionDepth: 12
    functionLinenumber: 213
    functionLinenumberEnd: 352
    functionName: cf_pair_parse_value
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 4
    functionsReached:
    - cf_item_to_pair
    - tmpl_cast_set
    - fr_value_box_clear_value
    - tmpl_value_type
    - tmpl_is_data
    - fr_rule_not_empty
    - strlen
    - tmpl_afrom_attr_substr
    - fr_strerror
    - tmpl_is_data_unresolved
    - cf_log_err
    - fr_rule_required
    - tmpl_contains_data
    - fr_rule_is_tmpl
    - FR_SBUFF_IN
    - fr_assert
    - tmpl_resolve
    - cf_canonicalize_error
    - cf_log_perr
    - cf_pair_to_value_box
    - tmpl_cast_in_place
    - tmpl_afrom_substr
    - fr_value_box_memcpy_out
    - fr_rule_is_attribute
    linkageType: ''
    returnType: int
    signature: int cf_pair_parse_value(TALLOC_CTX *ctx, void *out, UNUSED void *base,
      CONF_ITEM *ci, conf_parser_t const *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:375,1
    - Dst: fr_rule_required
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:377,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:378,1
    - Dst: fr_type_is_quoted
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:386,1
    - Dst: conf_parser_t*::dflt_func
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:397,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:398,1
    - Dst: cf_expand_variables
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:405,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:408,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - out
    - parent
    - cs
    - rule
    argTypes:
    - CONF_PAIR**
    - void*
    - CONF_SECTION*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 366
    functionDepth: 5
    functionLinenumber: 366
    functionLinenumberEnd: 421
    functionName: cf_pair_default
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - fr_type_is_quoted
    - cf_log_perr
    - fr_rule_required
    - conf_parser_t*::dflt_func
    - cf_pair_alloc
    - fr_assert
    - cf_expand_variables
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int cf_pair_default(CONF_PAIR **out, void *parent, CONF_SECTION *cs,
      conf_parser_t const *rule)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:436,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:438,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:466,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:468,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:470,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:475,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:480,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:496,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:497,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:503,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 2
    argNames:
    - cp
    - rule
    argTypes:
    - CONF_PAIR*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 507
    functionName: cf_pair_unescape
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - strchr
    - talloc_strdup
    - talloc_const_free
    - strtoul
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int cf_pair_unescape(CONF_PAIR *cp, conf_parser_t const *rule)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:537,1
    - Dst: fr_rule_is_tmpl
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:537,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:545,1
    - Dst: fr_rule_required
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:550,1
    - Dst: fr_rule_deprecated
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:551,1
    - Dst: fr_rule_multi
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:557,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:564,1
    - Dst: fr_rule_dflt
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:573,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:576,1
    - Dst: cf_pair_default
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:582,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:583,1
    - Dst: fr_rule_not_empty
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:585,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:586,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:598,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:599,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:602,1
    - Dst: fr_rule_is_tmpl
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:615,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:616,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:616,1
    - Dst: fr_type_array_alloc
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:625,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:626,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:627,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:632,1
    - Dst: cf_pair_unescape
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:648,1
    - Dst: cf_pair_debug_log
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:654,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:657,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:659,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:673,1
    - Dst: fr_rule_dflt
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:677,1
    - Dst: cf_pair_default
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:682,1
    - Dst: fr_rule_not_empty
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:685,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:686,1
    - Dst: cf_pair_unescape
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:694,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:697,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:699,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:699,1
    - Dst: cf_pair_debug_log
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:704,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:707,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:707,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 121
    argCount: 5
    argNames:
    - ctx
    - out
    - base
    - cs
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_SECTION*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 524
    functionDepth: 6
    functionLinenumber: 524
    functionLinenumberEnd: 713
    functionName: cf_pair_parse_internal
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_pair_unescape
    - fr_rule_not_empty
    - func
    - MEM
    - cf_log_err
    - unlikely
    - cf_pair_to_item
    - fr_rule_required
    - fr_rule_dflt
    - fr_rule_multi
    - fr_rule_is_tmpl
    - talloc_zero_array
    - cf_pair_count
    - cf_pair_debug_log
    - fr_assert
    - cf_pair_default
    - cf_pair_find
    - cf_log_perr
    - fr_type_array_alloc
    - talloc_free
    - fr_rule_deprecated
    - cf_pair_find_next
    linkageType: ''
    returnType: void
    signature: "void cf_pair_parse_internal(TALLOC_CTX *ctx, void *out, void *base,\n\t\t\t\t\t\t
      \       CONF_SECTION *cs, conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_internal
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - cs
    - name
    - type
    - data
    - dflt
    - dflt_quote
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - char*
    - unsigned int
    - void*
    - char*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 785
    functionDepth: 7
    functionLinenumber: 785
    functionLinenumberEnd: 796
    functionName: cf_pair_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_internal
    linkageType: ''
    returnType: int
    signature: "int cf_pair_parse(TALLOC_CTX *ctx, CONF_SECTION *cs, char const *name,\n\t\t
      \ unsigned int type, void *data, char const *dflt, fr_token_t dflt_quote)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:825,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:847,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:864,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:877,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:891,1
    - Dst: cf_section_parse_init
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:896,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:905,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 3
    argNames:
    - cs
    - base
    - rule
    argTypes:
    - CONF_SECTION*
    - void*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 929
    functionName: cf_section_parse_init
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 1
    functionsReached:
    - cf_section_find
    - cf_section_alloc
    - cf_section_parse_init
    - fr_assert
    - cf_log_debug
    - cf_pair_find
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int cf_section_parse_init(CONF_SECTION *cs, void *base, conf_parser_t
      const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_foreach
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:933,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:943,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:946,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 955
    functionName: cf_section_parse_warn
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_item_foreach
    - WARN
    linkageType: ''
    returnType: void
    signature: void cf_section_parse_warn(CONF_SECTION *cs)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:997,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1000,1
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1001,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1001,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1004,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1014,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1015,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1021,1
    - Dst: conf_parser_t*::func
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1022,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1022,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1029,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1032,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1032,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1033,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1036,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1038,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1047,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1053,1
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1054,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1054,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1062,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1062,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1063,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1073,1
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1076,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1076,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1078,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1079,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1083,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1083,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1084,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1092,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1093,1
    - Dst: conf_parser_t*::func
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1097,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1097,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1099,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1105,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1107,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 80
    argCount: 5
    argNames:
    - ctx
    - out
    - base
    - cs
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_SECTION*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 1115
    functionName: cf_subsection_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - talloc_set_name
    - cf_section_find
    - cf_item_is_parsed
    - cf_section_parse
    - talloc_free
    - conf_parser_t*::func
    - cf_section_rules_push
    - talloc_set_name_const
    - fr_assert
    - cf_log_debug
    - cf_section_to_item
    - talloc_zero_array
    - MEM
    - cf_section_name1
    linkageType: ''
    returnType: int
    signature: int cf_subsection_parse(TALLOC_CTX *ctx, void *out, void *base, CONF_SECTION
      *cs, conf_parser_t const *rule)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_parse_init
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1132,1
    - Dst: cf_subsection_parse
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1153,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1175,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1179,1
    - Dst: cf_item_is_parsed
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1180,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1180,1
    - Dst: conf_parser_t*::func
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1182,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1182,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1183,1
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1183,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1197,1
    - Dst: cf_section_parse_rule
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1204,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1212,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1227,1
    - Dst: cf_pair_parse_internal
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1242,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1259,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 68
    argCount: 4
    argNames:
    - ctx
    - base
    - cs
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - CONF_SECTION*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1117
    functionDepth: 7
    functionLinenumber: 1117
    functionLinenumberEnd: 1266
    functionName: cf_section_parse_rule
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 1
    functionsReached:
    - cf_subsection_parse
    - cf_pair_parse_internal
    - cf_section_parse_init
    - cf_pair_to_item
    - cf_item_is_parsed
    - conf_parser_t*::func
    - fr_cond_assert
    - cf_item_mark_parsed
    - cf_pair_find_next
    - fr_assert
    - cf_section_parse_rule
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int cf_section_parse_rule(TALLOC_CTX *ctx, void *base, CONF_SECTION
      *cs, conf_parser_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1284,1
    - Dst: SECTION_SPACE
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1284,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1286,1
    - Dst: SECTION_SPACE
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1286,1
    - Dst: cf_data_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1292,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1296,1
    - Dst: cf_section_parse_rule
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1298,1
    - Dst: cf_section_parse_warn
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1308,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1310,1
    - Dst: SECTION_SPACE
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1310,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - base
    - cs
    argTypes:
    - TALLOC_CTX*
    - void*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1279
    functionDepth: 8
    functionLinenumber: 1279
    functionLinenumberEnd: 1314
    functionName: cf_section_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 12
    functionsReached:
    - cf_data_find_next
    - cf_section_parse_warn
    - SECTION_SPACE
    - cf_log_debug
    - cf_data_value
    - cf_section_parse_rule
    - cf_item_mark_parsed
    linkageType: ''
    returnType: int
    signature: int cf_section_parse(TALLOC_CTX *ctx, void *base, CONF_SECTION *cs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1327,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1329,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1330,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1335,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1336,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1337,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1347,1
    - Dst: tmpl_attr_tail_unresolved
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1347,1
    - Dst: tmpl_cast_in_place
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1354,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1355,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 6
    argNames:
    - CONF_SECTION *cs
    - out
    - cp
    - type
    - attribute
    - dict_def
    argTypes:
    - UNUSED
    - tmpl_t**
    - CONF_PAIR*
    - fr_type_t
    - bool
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1322
    functionDepth: 7
    functionLinenumber: 1322
    functionLinenumberEnd: 1379
    functionName: cf_parse_tmpl_pass2
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_log_perr
    - tmpl_attr_tail_unresolved
    - tmpl_cast_in_place
    - cf_log_err
    - fr_assert
    - tmpl_is_attr
    - tmpl_type_to_str
    - tmpl_resolve
    linkageType: ''
    returnType: int
    signature: "int cf_parse_tmpl_pass2(UNUSED CONF_SECTION *cs, tmpl_t **out, CONF_PAIR
      *cp, fr_type_t type,\n\t\t\t       bool attribute, fr_dict_t const *dict_def)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cf_data_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1393,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1396,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1412,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1425,1
    - Dst: cf_section_parse_pass2
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1427,1
    - Dst: cf_section_parse_pass2
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1433,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1442,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1472,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1473,1
    - Dst: virtual_server_dict_by_child_ci
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1485,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1485,1
    - Dst: xlat_tokenize
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1503,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1504,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1504,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1517,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1519,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1520,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1521,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1523,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1524,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1525,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1529,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1535,1
    - Dst: cf_parse_tmpl_pass2
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1544,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1553,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1553,1
    - Dst: cf_parse_tmpl_pass2
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1556,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 2
    argNames:
    - base
    - cs
    argTypes:
    - void*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1389
    functionDepth: 9
    functionLinenumber: 1389
    functionLinenumberEnd: 1564
    functionName: cf_section_parse_pass2
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 4
    functionsReached:
    - cf_log_perr
    - virtual_server_dict_by_child_ci
    - cf_section_find
    - cf_data_find_next
    - talloc_free
    - cf_section_parse_pass2
    - xlat_tokenize
    - strstr
    - FR_SBUFF_IN
    - cf_pair_find_next
    - cf_parse_tmpl_pass2
    - talloc_array_length
    - cf_section_to_item
    - cf_pair_find
    - cf_data_value
    - cf_log_err
    - talloc_strlen
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: int cf_section_parse_pass2(void *base, CONF_SECTION *cs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1587,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1588,1
    - Dst: _cf_data_add_static
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1597,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1597,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1601,1
    - Dst: CF_TO_ITEM
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1601,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1602,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1603,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1608,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1628,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1643,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1645,1
    - Dst: cf_item_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1646,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1654,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1657,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1660,1
    - Dst: cf_item_debug
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1664,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - cs
    - rule
    - filename
    - lineno
    argTypes:
    - CONF_SECTION*
    - conf_parser_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1577
    functionDepth: 4
    functionLinenumber: 1577
    functionLinenumberEnd: 1669
    functionName: _cf_section_rule_push
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 1
    functionsReached:
    - cf_section_find
    - memcpy
    - cf_data_find
    - cf_log_err
    - cf_section_rules_push
    - CF_TO_ITEM
    - fr_assert
    - cf_log_debug
    - cf_item_debug
    - memcmp
    - cf_data_value
    - cf_section_name1
    - _cf_data_add_static
    linkageType: ''
    returnType: int
    signature: int _cf_section_rule_push(CONF_SECTION *cs, conf_parser_t const *rule,
      char const *filename, int lineno)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _cf_section_rule_push
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1689,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - cs
    - rules
    - filename
    - lineno
    argTypes:
    - CONF_SECTION*
    - conf_parser_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1681
    functionDepth: 5
    functionLinenumber: 1681
    functionLinenumberEnd: 1699
    functionName: _cf_section_rules_push
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - _cf_section_rule_push
    linkageType: ''
    returnType: int
    signature: int _cf_section_rules_push(CONF_SECTION *cs, conf_parser_t const *rules,
      char const *filename, int lineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_in_table
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1713,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1718
    functionName: cf_table_parse_int
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 2
    functionsReached:
    - cf_item_to_pair
    - cf_pair_in_table
    linkageType: ''
    returnType: int
    signature: "int cf_table_parse_int(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent,\n\t\t       CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_in_table
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1729,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1734
    functionName: cf_table_parse_int32
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_in_table
    linkageType: ''
    returnType: int
    signature: "int cf_table_parse_int32(UNUSED TALLOC_CTX *ctx, void *out, UNUSED
      void *parent,\n\t\t\t CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_in_table
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1745,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1745,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1739
    functionDepth: 2
    functionLinenumber: 1739
    functionLinenumberEnd: 1753
    functionName: cf_table_parse_uint32
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_in_table
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int cf_table_parse_uint32(UNUSED TALLOC_CTX *ctx, void *out, UNUSED
      void *parent,\n\t\t\t  CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_uid_from_str
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1762,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1762,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1762,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1759
    functionDepth: 1
    functionLinenumber: 1759
    functionLinenumberEnd: 1768
    functionName: cf_parse_uid
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - fr_perm_uid_from_str
    - cf_log_perr
    linkageType: ''
    returnType: int
    signature: "int cf_parse_uid(TALLOC_CTX *ctx, void *out, UNUSED void *parent,\n\t\t
      CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_gid_from_str
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1777,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1777,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1777,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1783
    functionName: cf_parse_gid
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - fr_perm_gid_from_str
    - cf_pair_value
    - cf_item_to_pair
    - cf_log_perr
    linkageType: ''
    returnType: int
    signature: "int cf_parse_gid(TALLOC_CTX *ctx, void *out, UNUSED void *parent,\n\t\t
      CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1793,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1793,1
    - Dst: fr_perm_mode_from_str
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1795,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1789
    functionDepth: 1
    functionLinenumber: 1789
    functionLinenumberEnd: 1803
    functionName: cf_parse_permissions
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - cf_log_perr
    - fr_perm_mode_from_str
    linkageType: ''
    returnType: int
    signature: "int cf_parse_permissions(UNUSED TALLOC_CTX *ctx, void *out, UNUSED
      void *parent,\n\t\t\t CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1821
    functionDepth: 0
    functionLinenumber: 1821
    functionLinenumberEnd: 1825
    functionName: cf_null_on_read
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cf_null_on_read(UNUSED TALLOC_CTX *ctx, UNUSED void *out, UNUSED
      void *parent,\n\t\t    UNUSED CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/cf_parse.c:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - conf_parser_flags_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1857
    functionDepth: 1
    functionLinenumber: 1857
    functionLinenumberEnd: 1860
    functionName: cf_parser_flag_to_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_parse.c
    functionUses: 1
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *cf_parser_flag_to_enum_str(conf_parser_flags_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: fr_override_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_override_list_foreach(_list_head, _iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:328,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 13
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: reverse_lookups_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int reverse_lookups_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t\t
      CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:340,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 13
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: hostname_lookups_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hostname_lookups_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t\t
      \ CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:353,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:355,1
    - Dst: FR_SIZE_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:357,1
    - Dst: FR_SIZE_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:358,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 347
    functionDepth: 13
    functionLinenumber: 347
    functionLinenumberEnd: 363
    functionName: talloc_pool_size_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - FR_SIZE_BOUND_CHECK
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int talloc_pool_size_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t\t
      \ CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:371,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:373,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:375,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/main_config.c:375,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:376,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/main_config.c:376,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 13
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: max_request_time_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - FR_TIME_DELTA_BOUND_CHECK
    - fr_time_delta_from_sec
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int max_request_time_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t\t
      \ CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/main_config.c:386,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/main_config.c:389,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:390,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:394,1
    - Dst: dl_module_loader_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:403,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/main_config.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 409
    functionName: lib_dir_on_read
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_log_perr
    - memcpy
    - cf_pair_value
    - fr_assert
    - dl_module_loader_init
    linkageType: ''
    returnType: int
    signature: "int lib_dir_on_read(UNUSED TALLOC_CTX *ctx, UNUSED void *out, UNUSED
      void *parent,\n\t\t\t CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:422,1
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 13
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: name_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - talloc_free
    linkageType: ''
    returnType: int
    signature: "int name_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t      CONF_ITEM
      *ci, conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:434,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:436,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:438,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 428
    functionDepth: 13
    functionLinenumber: 428
    functionLinenumberEnd: 443
    functionName: num_networks_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - FR_INTEGER_BOUND_CHECK
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int num_networks_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t
      \     CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_hw_num_cores_active
      Src: /src/freeradius-server/src/lib/server/main_config.c:450,1
    - Dst: cf_log_pwarn
      Src: /src/freeradius-server/src/lib/server/main_config.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - conf
    - parent
    argTypes:
    - main_config_t*
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 472
    functionName: num_workers_auto
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_log_pwarn
    - fr_hw_num_cores_active
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t num_workers_auto(main_config_t *conf, CONF_ITEM *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:480,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:482,1
    - Dst: num_workers_auto
      Src: /src/freeradius-server/src/lib/server/main_config.c:484,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:490,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/lib/server/main_config.c:491,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 474
    functionDepth: 13
    functionLinenumber: 474
    functionLinenumberEnd: 496
    functionName: num_workers_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - cf_pair_parse_value
    - num_workers_auto
    - FR_INTEGER_BOUND_CHECK
    - memcpy
    linkageType: ''
    returnType: int
    signature: int num_workers_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_workers_auto
      Src: /src/freeradius-server/src/lib/server/main_config.c:504,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/lib/server/main_config.c:504,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:505,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/main_config.c:506,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:507,1
    - Dst: cf_log_info
      Src: /src/freeradius-server/src/lib/server/main_config.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - out
    - parent
    - cs
    - quote
    - rule
    argTypes:
    - CONF_PAIR**
    - void*
    - CONF_SECTION*
    - fr_token_t
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 516
    functionName: num_workers_dflt
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - num_workers_auto
    - cf_pair_alloc
    - cf_section_to_item
    - talloc_asprintf
    - cf_log_info
    linkageType: ''
    returnType: int
    signature: int num_workers_dflt(CONF_PAIR **out, void *parent, CONF_SECTION *cs,
      fr_token_t quote, conf_parser_t const *rule)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/main_config.c:528,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/main_config.c:530,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:541,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/main_config.c:546,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:565,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/server/main_config.c:572,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - request
    - vb
    - uctx
    argTypes:
    - UNUSED*
    - fr_value_box_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 577
    functionName: xlat_config_escape
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_array
    - strchr
    - snprintf
    - fr_value_box_bstrndup
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int xlat_config_escape(UNUSED request_t *request, fr_value_box_t *vb,
      UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/server/main_config.c:599,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/main_config.c:602,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/main_config.c:603,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/server/main_config.c:604,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/main_config.c:608,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:610,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:613,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/server/main_config.c:613,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/server/main_config.c:614,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/main_config.c:614,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/server/main_config.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 618
    functionName: xlat_config
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - cf_item_to_pair
    - RPEDEBUG
    - fr_dcursor_append
    - cf_pair_value
    - fr_value_box_bstrndup
    - cf_reference_item
    - strlen
    - cf_item_is_pair
    - MEM
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_config(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t
      UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t request_t *request, fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/lib/server/main_config.c:627,1
    - Dst: fchown
      Src: /src/freeradius-server/src/lib/server/main_config.c:628,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/main_config.c:629,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:630,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/lib/server/main_config.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - path
    - uctx
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 635
    functionName: mkdir_chown
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - rad_suid_down
    - fchown
    - rad_suid_up
    linkageType: ''
    returnType: int
    signature: int mkdir_chown(int fd, char const *path, void *uctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_set_dumpable_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:649,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/main_config.c:650,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/main_config.c:654,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:655,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/main_config.c:660,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/main_config.c:661,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:662,1
    - Dst: getuid
      Src: /src/freeradius-server/src/lib/server/main_config.c:671,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/main_config.c:672,1
    - Dst: getgid
      Src: /src/freeradius-server/src/lib/server/main_config.c:679,1
    - Dst: getuid
      Src: /src/freeradius-server/src/lib/server/main_config.c:689,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/server/main_config.c:701,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:702,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:703,1
    - Dst: initgroups
      Src: /src/freeradius-server/src/lib/server/main_config.c:707,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:708,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:710,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:711,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:715,1
    - Dst: cf_file_check_set_uid_gid
      Src: /src/freeradius-server/src/lib/server/main_config.c:724,1
    - Dst: setgid
      Src: /src/freeradius-server/src/lib/server/main_config.c:732,1
    - Dst: fr_perm_getgrgid
      Src: /src/freeradius-server/src/lib/server/main_config.c:735,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:736,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:737,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:741,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:742,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:743,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/server/main_config.c:768,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/main_config.c:769,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:769,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/server/main_config.c:780,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/main_config.c:781,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:781,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/main_config.c:792,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:795,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:796,1
    - Dst: fchown
      Src: /src/freeradius-server/src/lib/server/main_config.c:811,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:812,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:813,1
    - Dst: rad_suid_set_down_uid
      Src: /src/freeradius-server/src/lib/server/main_config.c:823,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/lib/server/main_config.c:824,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 2
    argNames:
    - config
    - cs
    argTypes:
    - main_config_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 639
    functionDepth: 9
    functionLinenumber: 639
    functionLinenumberEnd: 828
    functionName: switch_users
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - WARN
    - cf_section_rules_push
    - rad_suid_down
    - getuid
    - cf_file_check_set_uid_gid
    - setgid
    - cf_section_parse
    - open
    - rad_suid_set_down_uid
    - fchown
    - getgid
    - DEBUG
    - fr_perm_getpwuid
    - fr_syserror
    - fr_perror
    - fr_perm_getgrgid
    - fr_mkdir
    - initgroups
    - fr_set_dumpable_init
    - talloc_free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int switch_users(main_config_t *config, CONF_SECTION *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/main_config.c:845,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:846,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/main_config.c:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - config
    - name
    - overwrite_config
    argTypes:
    - main_config_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 852
    functionName: main_config_name_set_default
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 4
    functionsReached:
    - talloc_strdup
    - memcpy
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void main_config_name_set_default(main_config_t *config, char const
      *name, bool overwrite_config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:862,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/main_config.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - main_config_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 866
    functionName: main_config_confdir_set
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 3
    functionsReached:
    - talloc_const_free
    - talloc_strdup
    linkageType: ''
    returnType: void
    signature: void main_config_confdir_set(main_config_t *config, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sem_close
      Src: /src/freeradius-server/src/lib/server/main_config.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - HAVE_SEMAPHORES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 883
    functionName: main_config_exclusive_proc_done
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 1
    functionsReached:
    - fr_sem_close
    linkageType: ''
    returnType: void
    signature: "void main_config_exclusive_proc_done(\n#ifndef HAVE_SEMAPHORES\n\t\t\t\t
      \     UNUSED\n#endif\n\t\t\t\t      main_config_t const *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sem_take
      Src: /src/freeradius-server/src/lib/server/main_config.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - HAVE_SEMAPHORES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 903
    functionName: main_config_exclusive_proc_child
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 1
    functionsReached:
    - fr_sem_take
    linkageType: ''
    returnType: int
    signature: "int main_config_exclusive_proc_child(\n#ifndef HAVE_SEMAPHORES\n\t\t\t\t
      \     UNUSED\n#endif\n\t\t\t\t      main_config_t const *config)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/main_config.c:925,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/main_config.c:928,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/server/main_config.c:929,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/main_config.c:931,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:932,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:935,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/main_config.c:935,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:937,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:937,1
    - Dst: fr_sem_get
      Src: /src/freeradius-server/src/lib/server/main_config.c:941,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/server/main_config.c:942,1
    - Dst: getegid
      Src: /src/freeradius-server/src/lib/server/main_config.c:943,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:946,1
    - Dst: fr_sem_wait
      Src: /src/freeradius-server/src/lib/server/main_config.c:953,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:956,1
    - Dst: fr_sem_pid
      Src: /src/freeradius-server/src/lib/server/main_config.c:966,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/main_config.c:967,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:968,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:973,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/server/main_config.c:978,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - config
    argTypes:
    - main_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 981
    functionName: main_config_exclusive_proc
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_sem_get
    - geteuid
    - talloc_free
    - getegid
    - fr_strerror_printf
    - fr_syserror
    - talloc_strdup
    - fr_assert
    - fr_sem_pid
    - fr_sem_wait
    - fopen
    - fclose
    - MEM
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: int main_config_exclusive_proc(main_config_t *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:991,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/main_config.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - main_config_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 995
    functionName: main_config_dict_dir_set
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 3
    functionsReached:
    - talloc_const_free
    - talloc_strdup
    linkageType: ''
    returnType: void
    signature: void main_config_dict_dir_set(main_config_t *config, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/main_config.c:1004,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/main_config.c:1006,1
    - Dst: main_config_confdir_set
      Src: /src/freeradius-server/src/lib/server/main_config.c:1014,1
    - Dst: main_config_dict_dir_set
      Src: /src/freeradius-server/src/lib/server/main_config.c:1015,1
    - Dst: fr_override_list_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1022
    functionName: main_config_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 5
    functionsReached:
    - main_config_dict_dir_set
    - fr_override_list_init
    - talloc_zero
    - fr_strerror_const
    - main_config_confdir_set
    linkageType: ''
    returnType: main_config_t
    signature: main_config_t *main_config_alloc(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/freeradius-server/src/lib/server/main_config.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dl_handle
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1028
    functionName: _dlhandle_free
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: int
    signature: int _dlhandle_free(void **dl_handle)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:1048,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/server/main_config.c:1050,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1051,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:1051,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1057,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1065,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_config.c:1070,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/main_config.c:1072,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/main_config.c:1082,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/main_config.c:1084,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1087,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1088,1
    - Dst: dependency_features_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:1092,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/lib/server/main_config.c:1094,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1095,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/server/main_config.c:1104,1
    - Dst: isatty
      Src: /src/freeradius-server/src/lib/server/main_config.c:1105,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/server/main_config.c:1105,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/main_config.c:1117,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/main_config.c:1119,1
    - Dst: dependency_version_numbers_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:1122,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/main_config.c:1138,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/main_config.c:1139,1
    - Dst: cf_md5_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:1144,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1147,1
    - Dst: cf_file_read
      Src: /src/freeradius-server/src/lib/server/main_config.c:1148,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1149,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/main_config.c:1159,1
    - Dst: cf_pair_replace
      Src: /src/freeradius-server/src/lib/server/main_config.c:1161,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1162,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:1166,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/server/main_config.c:1166,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/lib/server/main_config.c:1170,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/main_config.c:1175,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/main_config.c:1181,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/main_config.c:1183,1
    - Dst: cf_item_is_data
      Src: /src/freeradius-server/src/lib/server/main_config.c:1184,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/main_config.c:1186,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1187,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/main_config.c:1191,1
    - Dst: cf_pair_operator
      Src: /src/freeradius-server/src/lib/server/main_config.c:1192,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1193,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/main_config.c:1197,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/main_config.c:1198,1
    - Dst: unsetenv
      Src: /src/freeradius-server/src/lib/server/main_config.c:1200,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1201,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:1202,1
    - Dst: setenv
      Src: /src/freeradius-server/src/lib/server/main_config.c:1209,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1210,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/server/main_config.c:1211,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/main_config.c:1218,1
    - Dst: dlopen
      Src: /src/freeradius-server/src/lib/server/main_config.c:1220,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1222,1
    - Dst: dlerror
      Src: /src/freeradius-server/src/lib/server/main_config.c:1222,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:1229,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/main_config.c:1229,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/main_config.c:1231,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/main_config.c:1232,1
    - Dst: fr_override_list_foreach
      Src: /src/freeradius-server/src/lib/server/main_config.c:1240,1
    - Dst: cf_pair_replace_or_add
      Src: /src/freeradius-server/src/lib/server/main_config.c:1241,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1242,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/main_config.c:1243,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/main_config.c:1251,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1252,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/main_config.c:1257,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/main_config.c:1258,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1259,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1270,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/server/main_config.c:1275,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1279,1
    - Dst: openlog
      Src: /src/freeradius-server/src/lib/server/main_config.c:1289,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/server/main_config.c:1295,1
    - Dst: switch_users
      Src: /src/freeradius-server/src/lib/server/main_config.c:1319,1
    - Dst: fr_set_dumpable
      Src: /src/freeradius-server/src/lib/server/main_config.c:1326,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/main_config.c:1326,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_config.c:1327,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/main_config.c:1333,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/lib/server/main_config.c:1334,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/main_config.c:1336,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/server/main_config.c:1337,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_config.c:1357,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/main_config.c:1366,1
    - Dst: log_global_init
      Src: /src/freeradius-server/src/lib/server/main_config.c:1371,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1372,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/main_config.c:1379,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/main_config.c:1381,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/main_config.c:1382,1
    - Dst: log_parse_section
      Src: /src/freeradius-server/src/lib/server/main_config.c:1384,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/main_config.c:1385,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/main_config.c:1385,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/main_config.c:1390,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/lib/server/main_config.c:1391,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/main_config.c:1396,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/server/main_config.c:1396,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/server/main_config.c:1397,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/server/main_config.c:1398,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/server/main_config.c:1403,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 222
    argCount: 1
    argNames:
    - config
    argTypes:
    - main_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1035
    functionDepth: 10
    functionLinenumber: 1035
    functionLinenumberEnd: 1406
    functionName: main_config_init
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 3
    functionsReached:
    - cf_item_to_pair
    - dependency_version_numbers_init
    - cf_section_find_next
    - cf_section_find
    - cf_section_pass2
    - dlerror
    - fr_dict_internal_afrom_file
    - cf_section_rules_push
    - log_global_init
    - cf_data_add
    - fr_dict_free
    - fr_strerror
    - xlat_func_args_set
    - cf_pair_operator
    - xlat_func_init
    - MEM
    - cf_log_err
    - cf_md5_init
    - switch_users
    - ERROR
    - unlikely
    - cf_section_parse
    - cf_pair_alloc
    - isatty
    - cf_item_next
    - cf_section_name2
    - dlopen
    - fr_table_value_by_str
    - DEBUG2
    - DEBUG
    - setenv
    - xlat_func_register
    - cf_pair_attr
    - INFO
    - cf_pair_replace_or_add
    - cf_section_alloc
    - cf_item_is_data
    - talloc_set_destructor
    - cf_file_read
    - fr_syserror
    - dependency_features_init
    - fr_assert
    - strcmp
    - getenv
    - cf_pair_find
    - cf_item_is_pair
    - unsetenv
    - PERROR
    - log_parse_section
    - cf_pair_replace
    - openlog
    - talloc_free
    - cf_pair_value
    - stat
    - strstr
    - snprintf
    - talloc
    - fprintf
    - client_list_parse_section
    - fr_strerror_clear
    - fr_override_list_foreach
    - xlat_func_flags_set
    - fr_set_dumpable
    linkageType: ''
    returnType: int
    signature: int main_config_init(main_config_t *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_global_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1417,1
    - Dst: client_list_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1423,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/main_config.c:1428,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1429,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/main_config.c:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - main_config_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1433
    functionName: main_config_free
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 3
    functionsReached:
    - client_list_free
    - fr_dict_free
    - TALLOC_FREE
    - log_global_free
    linkageType: ''
    returnType: int
    signature: int main_config_free(main_config_t **config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/lib/server/main_config.c:1441,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/server/main_config.c:1453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - main_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1455
    functionName: hup_logfile
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 0
    functionsReached:
    - open
    - close
    linkageType: ''
    returnType: void
    signature: void hup_logfile(main_config_t *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/main_config.c:1461,1
    - Dst: hup_logfile
      Src: /src/freeradius-server/src/lib/server/main_config.c:1470,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/main_config.c:1475,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/server/main_config.c:1476,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/main_config.c:1476,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/main_config.c:1476,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_config.c:1477,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/server/main_config.c:1482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - main_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1483
    functionName: main_config_hup
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 1
    functionsReached:
    - INFO
    - hup_logfile
    - fr_time_wrap
    - fr_time
    - fr_time_add
    - fr_time_gteq
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void main_config_hup(main_config_t *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:1497,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/main_config.c:1497,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/main_config.c:1499,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/main_config.c:1499,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/server/main_config.c:1501,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1503,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/main_config.c:1504,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/main_config.c:1510,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/main_config.c:1511,1
    - Dst: fr_override_list_insert_tail
      Src: /src/freeradius-server/src/lib/server/main_config.c:1516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1518
    functionName: main_config_save_override
    functionSourceFile: /src/freeradius-server/src/lib/server/main_config.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - strchr
    - talloc_strdup
    - fr_override_list_insert_tail
    - talloc_zero
    - fr_strerror_const
    - MEM
    linkageType: ''
    returnType: int
    signature: int main_config_save_override(char const *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ATOMIC_VAR_INIT
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_VAR_INIT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: test_time
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t test_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 456
    functionName: CONN_TRIGGER
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_TRIGGER(_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _new
    - ','
    - _log
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 467
    functionName: CONN_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_STATE_TRANSITION(_new, _log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: CONN_BAD_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_BAD_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: REQUEST_TRIGGER
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_TRIGGER(_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: REQUEST_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: REQUEST_BAD_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_BAD_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 523
    functionName: REQUEST_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: REQUEST_BAD_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_BAD_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _treq
    - ','
    - _reason
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 553
    functionName: DO_REQUEST_CANCEL
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_CANCEL(_treq, _reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 571
    functionName: DO_REQUEST_CONN_RELEASE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_CONN_RELEASE(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 590
    functionName: DO_REQUEST_COMPLETE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_COMPLETE(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _treq
    - ','
    - _prev_state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 610
    functionName: DO_REQUEST_FAIL
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_FAIL(_treq, _prev_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 628
    functionName: DO_REQUEST_FREE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_FREE(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: DO_REQUEST_MUX
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_MUX(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 661
    functionName: DO_REQUEST_DEMUX
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_DEMUX(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 679
    functionName: DO_REQUEST_CANCEL_MUX
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REQUEST_CANCEL_MUX(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 701
    functionName: DO_CONNECTION_ALLOC
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_CONNECTION_ALLOC(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _tconn
    - ','
    - _events
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 721
    functionName: DO_CONNECTION_NOTIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_CONNECTION_NOTIFY(_tconn, _events)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _trunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 723
    functionName: IN_HANDLER
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_HANDLER(_trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _trunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 724
    functionName: IN_REQUEST_MUX
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_REQUEST_MUX(_trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _trunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 725
    functionName: IN_REQUEST_DEMUX
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_REQUEST_DEMUX(_trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _trunk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 726
    functionName: IN_REQUEST_CANCEL_MUX
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_REQUEST_CANCEL_MUX(_trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 728
    functionName: IS_SERVICEABLE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SERVICEABLE(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 729
    functionName: IS_PROCESSING
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PROCESSING(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 739
    functionName: REQUEST_EXTRACT_BACKLOG
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_BACKLOG(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 749
    functionName: REQUEST_EXTRACT_PENDING
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_PENDING(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: REQUEST_EXTRACT_PARTIAL
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_PARTIAL(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: REQUEST_EXTRACT_SENT
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_SENT(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 768
    functionName: REQUEST_EXTRACT_REAPABLE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_REAPABLE(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 773
    functionName: REQUEST_EXTRACT_CANCEL
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_CANCEL(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 782
    functionName: REQUEST_EXTRACT_CANCEL_PARTIAL
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_CANCEL_PARTIAL(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _treq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    functionName: REQUEST_EXTRACT_CANCEL_SENT
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUEST_EXTRACT_CANCEL_SENT(_treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tconn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 801
    functionName: CONN_REORDER
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONN_REORDER(_tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 821
    functionName: FR_TRUNK_LIST_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TRUNK_LIST_FUNC(_list,_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:840,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:842,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:847,1
    - Dst: trunk_watch_entry_t*::func
      Src: /src/freeradius-server/src/lib/server/trunk.c:849,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:851,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - trunk
    - list
    - state
    argTypes:
    - trunk_t*
    - fr_dlist_head_t*
    - trunk_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 854
    functionName: trunk_watch_call
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_dlist_next
    - trunk_watch_entry_t*::func
    - fr_dlist_remove
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void trunk_watch_call(trunk_t *trunk, fr_dlist_head_t *list, trunk_state_t
      state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _trunk
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 864
    functionName: CALL_WATCHERS
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_WATCHERS(_trunk, _state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:883,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:886,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:888,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - trunk
    - state
    - watch
    argTypes:
    - trunk_t*
    - trunk_state_t
    - trunk_watch_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 896
    functionName: trunk_del_watch
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int trunk_del_watch(trunk_t *trunk, trunk_state_t state, trunk_watch_t
      watch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:918,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk.c:918,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/trunk.c:923,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - trunk
    - state
    - watch
    - oneshot
    - uctx
    argTypes:
    - trunk_t*
    - trunk_state_t
    - trunk_watch_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 927
    functionName: trunk_add_watch
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 2
    functionsReached:
    - fr_dlist_insert_tail
    - talloc_zero
    - MEM
    - memcpy
    linkageType: ''
    returnType: trunk_watch_entry_t
    signature: "trunk_watch_entry_t *trunk_add_watch(trunk_t *trunk, trunk_state_t
      state,\n\t\t\t\t\t   trunk_watch_t watch, bool oneshot, void const *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: TRUNK_STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_STATE_TRANSITION(_new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/trunk.c:985,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/trunk.c:986,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:988,1
    - Dst: trunk_request_t*::pub::trunk::funcs::request_prioritise
      Src: /src/freeradius-server/src/lib/server/trunk.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 991
    functionName: _trunk_request_prioritise
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_request_t*::pub::trunk::funcs::request_prioritise
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t _trunk_request_prioritise(void const *a, void const *b)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1012,1
    - Dst: REQUEST_EXTRACT_PENDING
      Src: /src/freeradius-server/src/lib/server/trunk.c:1019,1
    - Dst: REQUEST_EXTRACT_PARTIAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1023,1
    - Dst: REQUEST_EXTRACT_SENT
      Src: /src/freeradius-server/src/lib/server/trunk.c:1027,1
    - Dst: REQUEST_EXTRACT_REAPABLE
      Src: /src/freeradius-server/src/lib/server/trunk.c:1031,1
    - Dst: REQUEST_EXTRACT_CANCEL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1035,1
    - Dst: REQUEST_EXTRACT_CANCEL_PARTIAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1039,1
    - Dst: REQUEST_EXTRACT_CANCEL_SENT
      Src: /src/freeradius-server/src/lib/server/trunk.c:1043,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1047,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1061,1
    - Dst: DO_REQUEST_CONN_RELEASE
      Src: /src/freeradius-server/src/lib/server/trunk.c:1068,1
    - Dst: trunk_connection_auto_unfull
      Src: /src/freeradius-server/src/lib/server/trunk.c:1072,1
    - Dst: CONN_REORDER
      Src: /src/freeradius-server/src/lib/server/trunk.c:1077,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:1090,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1091
    functionName: trunk_request_remove_from_conn
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - DO_REQUEST_CONN_RELEASE
    - fr_cond_assert
    - REQUEST_EXTRACT_CANCEL_SENT
    - REQUEST_EXTRACT_PENDING
    - REQUEST_EXTRACT_SENT
    - REQUEST_EXTRACT_CANCEL_PARTIAL
    - ROPTIONAL
    - fr_assert
    - REQUEST_EXTRACT_REAPABLE
    - trunk_connection_auto_unfull
    - REQUEST_EXTRACT_CANCEL
    - REQUEST_EXTRACT_PARTIAL
    - CONN_REORDER
    linkageType: ''
    returnType: void
    signature: void trunk_request_remove_from_conn(trunk_request_t *treq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REQUEST_EXTRACT_BACKLOG
      Src: /src/freeradius-server/src/lib/server/trunk.c:1110,1
    - Dst: trunk_request_remove_from_conn
      Src: /src/freeradius-server/src/lib/server/trunk.c:1117,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1121,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1125
    functionName: trunk_request_enter_unassigned
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - REQUEST_BAD_STATE_TRANSITION
    - REQUEST_EXTRACT_BACKLOG
    - trunk_request_remove_from_conn
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_unassigned(trunk_request_t *treq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REQUEST_EXTRACT_PENDING
      Src: /src/freeradius-server/src/lib/server/trunk.c:1147,1
    - Dst: REQUEST_EXTRACT_CANCEL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1151,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1155,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1158,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1159,1
    - Dst: trunk_requests_per_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:1165,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:1165,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:1179,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:1180,1
    - Dst: trunk_connection_manage_schedule
      Src: /src/freeradius-server/src/lib/server/trunk.c:1181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - treq
    - new
    argTypes:
    - trunk_request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1183
    functionName: trunk_request_enter_backlog
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - trunk_connection_count_by_state
    - fr_time
    - trunk_connection_manage_schedule
    - REQUEST_BAD_STATE_TRANSITION
    - REQUEST_EXTRACT_PENDING
    - trunk_requests_per_connection
    - fr_heap_insert
    - REQUEST_EXTRACT_CANCEL
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_backlog(trunk_request_t *treq, bool new)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1202,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1203,1
    - Dst: IS_PROCESSING
      Src: /src/freeradius-server/src/lib/server/trunk.c:1203,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1208,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1212,1
    - Dst: REQUEST_EXTRACT_BACKLOG
      Src: /src/freeradius-server/src/lib/server/trunk.c:1213,1
    - Dst: REQUEST_EXTRACT_CANCEL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1217,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1221,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1230,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1235,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1238,1
    - Dst: trunk_requests_per_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:1244,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:1244,1
    - Dst: trunk_connection_auto_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:1250,1
    - Dst: CONN_REORDER
      Src: /src/freeradius-server/src/lib/server/trunk.c:1256,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:1262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - treq
    - tconn
    - new
    argTypes:
    - trunk_request_t*
    - trunk_connection_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1263
    functionName: trunk_request_enter_pending
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - trunk_connection_auto_full
    - REQUEST_EXTRACT_BACKLOG
    - REQUEST_STATE_TRANSITION
    - fr_time
    - REQUEST_BAD_STATE_TRANSITION
    - IS_PROCESSING
    - trunk_requests_per_connection
    - ROPTIONAL
    - fr_assert
    - fr_heap_insert
    - REQUEST_EXTRACT_CANCEL
    - CONN_REORDER
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_pending(trunk_request_t *treq, trunk_connection_t
      *tconn, bool new)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1274,1
    - Dst: REQUEST_EXTRACT_PENDING
      Src: /src/freeradius-server/src/lib/server/trunk.c:1278,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1282,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1285,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1289
    functionName: trunk_request_enter_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - REQUEST_EXTRACT_PENDING
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_partial(trunk_request_t *treq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1304,1
    - Dst: REQUEST_EXTRACT_PENDING
      Src: /src/freeradius-server/src/lib/server/trunk.c:1308,1
    - Dst: REQUEST_EXTRACT_PARTIAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1312,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1316,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1319,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1320,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:1327,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:1337,1
    - Dst: trunk_connection_enter_draining_to_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:1338,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:1347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1348
    functionName: trunk_request_enter_sent
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - REQUEST_STATE_TRANSITION
    - fr_time
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - REQUEST_EXTRACT_PENDING
    - trunk_connection_enter_draining_to_free
    - fr_dlist_insert_tail
    - DEBUG3
    - REQUEST_EXTRACT_PARTIAL
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_sent(trunk_request_t *treq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1361,1
    - Dst: REQUEST_EXTRACT_PENDING
      Src: /src/freeradius-server/src/lib/server/trunk.c:1365,1
    - Dst: REQUEST_EXTRACT_PARTIAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1369,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1373,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1376,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1377,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:1384,1
    - Dst: trunk_connection_enter_draining_to_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:1385,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:1389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1390
    functionName: trunk_request_enter_reapable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - REQUEST_STATE_TRANSITION
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - REQUEST_EXTRACT_PENDING
    - trunk_connection_enter_draining_to_free
    - fr_dlist_insert_tail
    - DEBUG3
    - REQUEST_EXTRACT_PARTIAL
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_reapable(trunk_request_t *treq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1424,1
    - Dst: REQUEST_EXTRACT_PARTIAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1428,1
    - Dst: REQUEST_EXTRACT_SENT
      Src: /src/freeradius-server/src/lib/server/trunk.c:1432,1
    - Dst: REQUEST_EXTRACT_REAPABLE
      Src: /src/freeradius-server/src/lib/server/trunk.c:1436,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1440,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1443,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1444,1
    - Dst: DO_REQUEST_CANCEL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1447,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:1459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - treq
    - reason
    argTypes:
    - trunk_request_t*
    - trunk_cancel_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1460
    functionName: trunk_request_enter_cancel
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - REQUEST_STATE_TRANSITION
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - REQUEST_EXTRACT_SENT
    - REQUEST_EXTRACT_REAPABLE
    - DO_REQUEST_CANCEL
    - fr_dlist_insert_tail
    - REQUEST_EXTRACT_PARTIAL
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_cancel(trunk_request_t *treq, trunk_cancel_reason_t
      reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1475,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1476,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1477,1
    - Dst: REQUEST_EXTRACT_CANCEL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1481,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1485,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1488,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1491
    functionName: trunk_request_enter_cancel_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - fr_assert
    - REQUEST_EXTRACT_CANCEL
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_cancel_partial(trunk_request_t *treq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1510,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1511,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1512,1
    - Dst: REQUEST_EXTRACT_CANCEL_PARTIAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1516,1
    - Dst: REQUEST_EXTRACT_CANCEL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1520,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1524,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1527,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1528,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:1535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1536
    functionName: trunk_request_enter_cancel_sent
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - REQUEST_STATE_TRANSITION
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - REQUEST_EXTRACT_CANCEL_PARTIAL
    - fr_assert
    - fr_dlist_insert_tail
    - REQUEST_EXTRACT_CANCEL
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_cancel_sent(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1555,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1556,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1564,1
    - Dst: trunk_request_remove_from_conn
      Src: /src/freeradius-server/src/lib/server/trunk.c:1567,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1569,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:1570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1550
    functionDepth: 2
    functionLinenumber: 1550
    functionLinenumberEnd: 1571
    functionName: trunk_request_enter_cancel_complete
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - trunk_request_free
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - trunk_request_remove_from_conn
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_cancel_complete(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1586,1
    - Dst: trunk_request_remove_from_conn
      Src: /src/freeradius-server/src/lib/server/trunk.c:1592,1
    - Dst: REQUEST_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1596,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1599,1
    - Dst: DO_REQUEST_COMPLETE
      Src: /src/freeradius-server/src/lib/server/trunk.c:1600,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:1601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1602
    functionName: trunk_request_enter_complete
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - trunk_request_free
    - REQUEST_BAD_STATE_TRANSITION
    - fr_cond_assert
    - DO_REQUEST_COMPLETE
    - trunk_request_remove_from_conn
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_complete(trunk_request_t *treq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1618,1
    - Dst: REQUEST_EXTRACT_BACKLOG
      Src: /src/freeradius-server/src/lib/server/trunk.c:1622,1
    - Dst: trunk_request_remove_from_conn
      Src: /src/freeradius-server/src/lib/server/trunk.c:1626,1
    - Dst: REQUEST_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:1630,1
    - Dst: DO_REQUEST_FAIL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1631,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:1632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1612
    functionDepth: 2
    functionLinenumber: 1612
    functionLinenumberEnd: 1633
    functionName: trunk_request_enter_failed
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - REQUEST_STATE_TRANSITION
    - REQUEST_EXTRACT_BACKLOG
    - trunk_request_free
    - DO_REQUEST_FAIL
    - fr_cond_assert
    - trunk_request_remove_from_conn
    linkageType: ''
    returnType: void
    signature: void trunk_request_enter_failed(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:1656,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:1672,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/trunk.c:1672,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/trunk.c:1673,1
    - Dst: RATE_LIMIT_LOCAL_ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1674,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:1698,1
    - Dst: RATE_LIMIT_LOCAL_ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1701,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - tconn_out
    - trunk
    - request
    argTypes:
    - trunk_connection_t**
    - trunk_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1713
    functionName: trunk_request_check_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - fr_time_gt
    - trunk_request_count_by_state
    - fr_time_lt
    - fr_minmax_heap_min_peek
    - RATE_LIMIT_LOCAL_ROPTIONAL
    linkageType: ''
    returnType: trunk_enqueue_t
    signature: "trunk_enqueue_t trunk_request_check_enqueue(trunk_connection_t **tconn_out,
      trunk_t *trunk,\n\t\t\t\t\t\t      request_t *request)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1735,1
    - Dst: trunk_request_check_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk.c:1737,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:1741,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:1742,1
    - Dst: trunk_connection_writable
      Src: /src/freeradius-server/src/lib/server/trunk.c:1743,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:1744,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:1746,1
    - Dst: trunk_request_enter_backlog
      Src: /src/freeradius-server/src/lib/server/trunk.c:1759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1726
    functionDepth: 3
    functionLinenumber: 1726
    functionLinenumberEnd: 1767
    functionName: trunk_request_enqueue_existing
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_request_enter_pending
    - trunk_request_enter_backlog
    - connection_signals_resume
    - connection_signals_pause
    - fr_assert
    - trunk_request_check_enqueue
    - trunk_connection_writable
    linkageType: ''
    returnType: trunk_enqueue_t
    signature: trunk_enqueue_t trunk_request_enqueue_existing(trunk_request_t *treq)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEQUEUE_ALL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1805,1
    - Dst: DEQUEUE_ALL
      Src: /src/freeradius-server/src/lib/server/trunk.c:1811,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1821,1
    - Dst: trunk_request_enter_unassigned
      Src: /src/freeradius-server/src/lib/server/trunk.c:1822,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1823,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:1831,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1833,1
    - Dst: trunk_request_enter_unassigned
      Src: /src/freeradius-server/src/lib/server/trunk.c:1834,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1835,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1846,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:1852,1
    - Dst: trunk_request_enter_cancel
      Src: /src/freeradius-server/src/lib/server/trunk.c:1853,1
    - Dst: trunk_request_enter_unassigned
      Src: /src/freeradius-server/src/lib/server/trunk.c:1854,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1855,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:1856,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:1868,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:1869,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1871,1
    - Dst: trunk_request_enter_cancel
      Src: /src/freeradius-server/src/lib/server/trunk.c:1873,1
    - Dst: trunk_request_enter_unassigned
      Src: /src/freeradius-server/src/lib/server/trunk.c:1874,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:1875,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:1877,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - out
    - tconn
    - states
    - max
    argTypes:
    - fr_dlist_head_t*
    - trunk_connection_t*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1783
    functionDepth: 3
    functionLinenumber: 1783
    functionLinenumberEnd: 1881
    functionName: trunk_connection_requests_dequeue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - trunk_request_enter_unassigned
    - trunk_request_enter_cancel
    - connection_signals_resume
    - connection_signals_pause
    - fr_assert
    - fr_heap_peek
    - fr_dlist_insert_tail
    - DEQUEUE_ALL
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t trunk_connection_requests_dequeue(fr_dlist_head_t *out, trunk_connection_t
      *tconn,\n\t\t\t\t\t\t  int states, uint64_t max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _src_list
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1800
    functionName: DEQUEUE_ALL
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEQUEUE_ALL(_src_list, _state)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:1903,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:1913,1
    - Dst: trunk_connection_requests_dequeue
      Src: /src/freeradius-server/src/lib/server/trunk.c:1918,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/server/trunk.c:1932,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:1933,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/trunk.c:1934,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:1942,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:1945,1
    - Dst: IS_SERVICEABLE
      Src: /src/freeradius-server/src/lib/server/trunk.c:1953,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:1954,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:1956,1
    - Dst: trunk_request_enqueue_existing
      Src: /src/freeradius-server/src/lib/server/trunk.c:1961,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:1983,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/server/trunk.c:1996,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:1997,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/trunk.c:1998,1
    - Dst: trunk_connection_requests_dequeue
      Src: /src/freeradius-server/src/lib/server/trunk.c:2011,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:2013,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:2016,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:2017,1
    - Dst: trunk_requests_per_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:2036,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:2036,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:2038,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - tconn
    - states
    - max
    - fail_bound
    argTypes:
    - trunk_connection_t*
    - int
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 1894
    functionDepth: 4
    functionLinenumber: 1894
    functionLinenumberEnd: 2040
    functionName: trunk_connection_requests_requeue_priv
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_minmax_heap_extract
    - fr_dlist_talloc_init
    - trunk_request_free
    - trunk_request_enter_pending
    - fr_time
    - fr_cond_assert_msg
    - fr_dlist_next
    - connection_signals_resume
    - fr_minmax_heap_insert
    - connection_signals_pause
    - fr_dlist_remove
    - trunk_requests_per_connection
    - trunk_connection_requests_dequeue
    - trunk_request_enter_failed
    - fr_strerror
    - IS_SERVICEABLE
    - trunk_request_enqueue_existing
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t trunk_connection_requests_requeue_priv(trunk_connection_t
      *tconn, int states, uint64_t max, bool fail_bound)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_requests_requeue_priv
      Src: /src/freeradius-server/src/lib/server/trunk.c:2062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - tconn
    - states
    - max
    - fail_bound
    argTypes:
    - trunk_connection_t*
    - int
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2056
    functionDepth: 5
    functionLinenumber: 2056
    functionLinenumberEnd: 2067
    functionName: trunk_connection_requests_requeue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 3
    functionsReached:
    - trunk_connection_requests_requeue_priv
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t trunk_connection_requests_requeue(trunk_connection_t *tconn,
      int states, uint64_t max, bool fail_bound)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2077,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2079,1
    - Dst: IN_REQUEST_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2079,1
    - Dst: trunk_request_enter_partial
      Src: /src/freeradius-server/src/lib/server/trunk.c:2084,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2090
    functionName: trunk_request_signal_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 3
    functionsReached:
    - fr_cond_assert_msg
    - trunk_request_enter_partial
    - IN_REQUEST_MUX
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_partial(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2098,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2100,1
    - Dst: IN_REQUEST_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2100,1
    - Dst: trunk_request_enter_sent
      Src: /src/freeradius-server/src/lib/server/trunk.c:2106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2096
    functionDepth: 2
    functionLinenumber: 2096
    functionLinenumberEnd: 2112
    functionName: trunk_request_signal_sent
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 10
    functionsReached:
    - fr_cond_assert_msg
    - trunk_request_enter_sent
    - IN_REQUEST_MUX
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_sent(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2120,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2122,1
    - Dst: IN_REQUEST_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2122,1
    - Dst: trunk_request_enter_reapable
      Src: /src/freeradius-server/src/lib/server/trunk.c:2128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2118
    functionDepth: 2
    functionLinenumber: 2118
    functionLinenumberEnd: 2134
    functionName: trunk_request_signal_reapable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 8
    functionsReached:
    - trunk_request_enter_reapable
    - fr_cond_assert_msg
    - IN_REQUEST_MUX
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_reapable(trunk_request_t *treq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2144,1
    - Dst: IN_REQUEST_DEMUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2155,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:2158,1
    - Dst: trunk_request_enter_complete
      Src: /src/freeradius-server/src/lib/server/trunk.c:2166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2140
    functionDepth: 3
    functionLinenumber: 2140
    functionLinenumberEnd: 2172
    functionName: trunk_request_signal_complete
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 13
    functionsReached:
    - fr_cond_assert_msg
    - IN_REQUEST_DEMUX
    - trunk_request_enter_complete
    - fr_time
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_complete(trunk_request_t *treq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2180,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:2182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2178
    functionDepth: 3
    functionLinenumber: 2178
    functionLinenumberEnd: 2183
    functionName: trunk_request_signal_fail
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 15
    functionsReached:
    - fr_cond_assert_msg
    - trunk_request_enter_failed
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_fail(trunk_request_t *treq)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:2205,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2207,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2209,1
    - Dst: IN_HANDLER
      Src: /src/freeradius-server/src/lib/server/trunk.c:2209,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:2227,1
    - Dst: trunk_request_enter_cancel
      Src: /src/freeradius-server/src/lib/server/trunk.c:2228,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2229,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/trunk.c:2231,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:2232,1
    - Dst: trunk_request_enter_unassigned
      Src: /src/freeradius-server/src/lib/server/trunk.c:2248,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:2249,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:2251,1
    - Dst: trunk_request_enter_unassigned
      Src: /src/freeradius-server/src/lib/server/trunk.c:2270,1
    - Dst: trunk_request_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:2271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2198
    functionDepth: 3
    functionLinenumber: 2198
    functionLinenumberEnd: 2274
    functionName: trunk_request_signal_cancel
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 21
    functionsReached:
    - trunk_request_free
    - IN_HANDLER
    - trunk_request_enter_unassigned
    - fr_cond_assert_msg
    - trunk_request_enter_cancel
    - talloc_get_type_abort
    - connection_signals_pause
    - fr_table_str_by_value
    - connection_signals_resume
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_cancel(trunk_request_t *treq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2284,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2286,1
    - Dst: IN_REQUEST_CANCEL_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2286,1
    - Dst: trunk_request_enter_cancel_partial
      Src: /src/freeradius-server/src/lib/server/trunk.c:2291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2282
    functionDepth: 2
    functionLinenumber: 2282
    functionLinenumberEnd: 2297
    functionName: trunk_request_signal_cancel_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert_msg
    - trunk_request_enter_cancel_partial
    - IN_REQUEST_CANCEL_MUX
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_cancel_partial(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2308,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2310,1
    - Dst: IN_REQUEST_CANCEL_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2310,1
    - Dst: trunk_request_enter_cancel_sent
      Src: /src/freeradius-server/src/lib/server/trunk.c:2316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2322
    functionName: trunk_request_signal_cancel_sent
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 3
    functionsReached:
    - fr_cond_assert_msg
    - IN_REQUEST_CANCEL_MUX
    - trunk_request_enter_cancel_sent
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_cancel_sent(trunk_request_t *treq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2332,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2334,1
    - Dst: IN_REQUEST_DEMUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2334,1
    - Dst: IN_REQUEST_CANCEL_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:2334,1
    - Dst: trunk_request_enter_cancel_complete
      Src: /src/freeradius-server/src/lib/server/trunk.c:2353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2330
    functionDepth: 3
    functionLinenumber: 2330
    functionLinenumberEnd: 2359
    functionName: trunk_request_signal_cancel_complete
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 9
    functionsReached:
    - trunk_request_enter_cancel_complete
    - fr_cond_assert_msg
    - IN_REQUEST_DEMUX
    - IN_REQUEST_CANCEL_MUX
    linkageType: ''
    returnType: void
    signature: void trunk_request_signal_cancel_complete(trunk_request_t *treq)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trunk.c:2373,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2390,1
    - Dst: DO_REQUEST_FREE
      Src: /src/freeradius-server/src/lib/server/trunk.c:2402,1
    - Dst: trunk_requests_per_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:2410,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:2410,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2417,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:2422,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/trunk.c:2431,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2438,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2438,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2439,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:2442,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/trunk.c:2450,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2458,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2458,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2459,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:2472,1
    - Dst: trunk_list_free_requests_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:2484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - treq_to_free
    argTypes:
    - trunk_request_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2486
    functionName: trunk_request_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 10
    functionsReached:
    - unlikely
    - fr_time
    - talloc_free
    - fr_cond_assert
    - fr_dlist_num_elements
    - DO_REQUEST_FREE
    - trunk_requests_per_connection
    - trunk_list_free_requests_add
    - fr_time_delta_ispos
    - fr_assert_msg
    - talloc_free_children
    linkageType: ''
    returnType: void
    signature: void trunk_request_free(trunk_request_t **treq_to_free)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2501,1
    - Dst: trunk_list_free_requests_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:2505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2491
    functionDepth: 0
    functionLinenumber: 2491
    functionLinenumberEnd: 2508
    functionName: _trunk_request_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - trunk_list_free_requests_remove
    linkageType: ''
    returnType: int
    signature: int _trunk_request_free(trunk_request_t *treq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RATE_LIMIT_LOCAL_ROPTIONAL
      Src: /src/freeradius-server/src/lib/server/trunk.c:2537,1
    - Dst: trunk_list_free_requests_pop
      Src: /src/freeradius-server/src/lib/server/trunk.c:2553,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2555,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2556,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2557,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2558,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:2559,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:2559,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/trunk.c:2559,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:2562,1
    - Dst: talloc_pooled_object
      Src: /src/freeradius-server/src/lib/server/trunk.c:2562,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/trunk.c:2564,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:2575,1
    - Dst: atomic_fetch_add_explicit
      Src: /src/freeradius-server/src/lib/server/trunk.c:2580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - trunk
    - request
    argTypes:
    - trunk_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2588
    functionName: trunk_request_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 6
    functionsReached:
    - atomic_fetch_add_explicit
    - fr_time_wrap
    - talloc_set_destructor
    - fr_time_gt
    - fr_dlist_init
    - fr_assert
    - talloc_pooled_object
    - trunk_list_free_requests_pop
    - MEM
    - RATE_LIMIT_LOCAL_ROPTIONAL
    linkageType: ''
    returnType: trunk_request_t
    signature: trunk_request_t *trunk_request_alloc(trunk_t *trunk, request_t *request)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2646,1
    - Dst: IN_HANDLER
      Src: /src/freeradius-server/src/lib/server/trunk.c:2646,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2649,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trunk.c:2656,1
    - Dst: trunk_start
      Src: /src/freeradius-server/src/lib/server/trunk.c:2657,1
    - Dst: trunk_request_check_enqueue
      Src: /src/freeradius-server/src/lib/server/trunk.c:2660,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/server/trunk.c:2666,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:2672,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:2673,1
    - Dst: trunk_connection_writable
      Src: /src/freeradius-server/src/lib/server/trunk.c:2674,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:2675,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:2677,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/server/trunk.c:2685,1
    - Dst: trunk_request_enter_backlog
      Src: /src/freeradius-server/src/lib/server/trunk.c:2690,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 5
    argNames:
    - treq_out
    - trunk
    - request
    - preq
    - rctx
    argTypes:
    - trunk_request_t**
    - trunk_t*
    - request_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2639
    functionDepth: 3
    functionLinenumber: 2639
    functionLinenumberEnd: 2710
    functionName: trunk_request_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 22
    functionsReached:
    - unlikely
    - IN_HANDLER
    - trunk_request_enter_pending
    - trunk_request_enter_backlog
    - trunk_start
    - fr_cond_assert_msg
    - trunk_request_alloc
    - connection_signals_resume
    - connection_signals_pause
    - trunk_request_check_enqueue
    - trunk_connection_writable
    linkageType: ''
    returnType: trunk_enqueue_t
    signature: "trunk_enqueue_t trunk_request_enqueue(trunk_request_t **treq_out,
      trunk_t *trunk,\n\t\t\t\t\t    request_t *request, void *preq, void *rctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_PROCESSING
      Src: /src/freeradius-server/src/lib/server/trunk.c:2734,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:2735,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:2743,1
    - Dst: trunk_request_enter_cancel
      Src: /src/freeradius-server/src/lib/server/trunk.c:2744,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:2745,1
    - Dst: trunk_connection_writable
      Src: /src/freeradius-server/src/lib/server/trunk.c:2747,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:2749,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:2757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - treq
    argTypes:
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2728
    functionDepth: 3
    functionLinenumber: 2728
    functionLinenumberEnd: 2762
    functionName: trunk_request_requeue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 7
    functionsReached:
    - trunk_request_enter_pending
    - IS_PROCESSING
    - trunk_request_enter_cancel
    - connection_signals_resume
    - connection_signals_pause
    - trunk_request_enter_failed
    - trunk_connection_writable
    linkageType: ''
    returnType: trunk_enqueue_t
    signature: trunk_enqueue_t trunk_request_requeue(trunk_request_t *treq)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2800,1
    - Dst: IS_SERVICEABLE
      Src: /src/freeradius-server/src/lib/server/trunk.c:2803,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:2810,1
    - Dst: trunk_request_alloc
      Src: /src/freeradius-server/src/lib/server/trunk.c:2819,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:2828,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:2829,1
    - Dst: trunk_connection_writable
      Src: /src/freeradius-server/src/lib/server/trunk.c:2830,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:2831,1
    - Dst: trunk_request_enter_pending
      Src: /src/freeradius-server/src/lib/server/trunk.c:2833,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 6
    argNames:
    - treq_out
    - tconn
    - request
    - preq
    - rctx
    - ignore_limits
    argTypes:
    - trunk_request_t**
    - trunk_connection_t*
    - request_t*
    - void*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2793
    functionDepth: 3
    functionLinenumber: 2793
    functionLinenumberEnd: 2837
    functionName: trunk_request_enqueue_on_conn
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 2
    functionsReached:
    - trunk_request_enter_pending
    - trunk_request_alloc
    - fr_cond_assert_msg
    - connection_signals_resume
    - connection_signals_pause
    - trunk_request_count_by_connection
    - IS_SERVICEABLE
    - trunk_connection_writable
    linkageType: ''
    returnType: trunk_enqueue_t
    signature: "trunk_enqueue_t trunk_request_enqueue_on_conn(trunk_request_t **treq_out,
      trunk_connection_t *tconn,\n\t\t\t\t\t\t    request_t *request, void *preq,
      void *rctx,\n\t\t\t\t\t\t    bool ignore_limits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:2845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slog
    argTypes:
    - trunk_request_state_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2843
    functionDepth: 1
    functionLinenumber: 2843
    functionLinenumberEnd: 2848
    functionName: _state_log_entry_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int _state_log_entry_free(trunk_request_state_log_t *slog)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2855,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:2856,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:2857,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2858,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:2859,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/trunk.c:2860,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:2862,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk.c:2862,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/trunk.c:2863,1
    - Dst: slog::slog
      Src: /src/freeradius-server/src/lib/server/trunk.c:2868,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:2877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - function
    - line
    - treq
    - new
    argTypes:
    - char*
    - int
    - trunk_request_t*
    - trunk_request_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2879
    functionName: trunk_request_state_log_entry_add
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_dlist_insert_tail
    - slog::slog
    - talloc_set_destructor
    - fr_dlist_num_elements
    - fr_dlist_remove
    - talloc_zero
    - fr_assert_msg
    - memset
    - MEM
    linkageType: ''
    returnType: void
    signature: "void trunk_request_state_log_entry_add(char const *function, int line,\n\t\t\t\t
      \      trunk_request_t *treq, trunk_request_state_t new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:2888,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:2890,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/server/trunk.c:2891,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/trunk.c:2894,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/trunk.c:2896,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/trunk.c:2897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - log
    - log_type
    - file
    - line
    - treq
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2881
    functionDepth: 1
    functionLinenumber: 2881
    functionLinenumberEnd: 2899
    functionName: trunk_request_state_log
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_dlist_next
    - fr_log
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: "void trunk_request_state_log(fr_log_t const *log, fr_log_type_t log_type,
      char const *file, int line,\n\t\t\t\ttrunk_request_t const *treq)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2912,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2913,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2914,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2915,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2916,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2917,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2918,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2919,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2920,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - trunk
    - conn_state
    argTypes:
    - trunk_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2908
    functionDepth: 1
    functionLinenumber: 2908
    functionLinenumberEnd: 2923
    functionName: trunk_connection_count_by_state
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 8
    functionsReached:
    - fr_dlist_num_elements
    - fr_minmax_heap_num_elements
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t trunk_connection_count_by_state(trunk_t *trunk, int conn_state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2936,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2938,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2939,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2940,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:2942,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - tconn
    - req_state
    argTypes:
    - trunk_connection_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2945
    functionName: trunk_request_count_by_connection
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 2
    functionsReached:
    - fr_dlist_num_elements
    - fr_heap_num_elements
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t trunk_request_count_by_connection(trunk_connection_t const
      *tconn, int req_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:2962,1
    - Dst: trunk_connection_enter_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:2963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2951
    functionDepth: 2
    functionLinenumber: 2951
    functionLinenumberEnd: 2965
    functionName: trunk_connection_auto_full
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - trunk_request_count_by_connection
    - trunk_connection_enter_full
    linkageType: ''
    returnType: void
    signature: void trunk_connection_auto_full(trunk_connection_t *tconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:2982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2974
    functionDepth: 2
    functionLinenumber: 2974
    functionLinenumberEnd: 2986
    functionName: trunk_connection_is_full
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_request_count_by_connection
    linkageType: ''
    returnType: bool
    signature: bool trunk_connection_is_full(trunk_connection_t *tconn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_is_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:2999,1
    - Dst: trunk_connection_enter_active
      Src: /src/freeradius-server/src/lib/server/trunk.c:2999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2992
    functionDepth: 3
    functionLinenumber: 2992
    functionLinenumberEnd: 3000
    functionName: trunk_connection_auto_unfull
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - trunk_connection_enter_active
    - trunk_connection_is_full
    linkageType: ''
    returnType: void
    signature: void trunk_connection_auto_unfull(trunk_connection_t *tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_REQUEST_DEMUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:3009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3010
    functionName: trunk_connection_readable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - DO_REQUEST_DEMUX
    linkageType: ''
    returnType: void
    signature: void trunk_connection_readable(trunk_connection_t *tconn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3024,1
    - Dst: DO_REQUEST_CANCEL_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:3027,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3029,1
    - Dst: DO_REQUEST_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:3032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3015
    functionDepth: 2
    functionLinenumber: 3015
    functionLinenumberEnd: 3033
    functionName: trunk_connection_writable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 4
    functionsReached:
    - trunk_request_count_by_connection
    - DO_REQUEST_MUX
    - DO_REQUEST_CANCEL_MUX
    linkageType: ''
    returnType: void
    signature: void trunk_connection_writable(trunk_connection_t *tconn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3062,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3071,1
    - Dst: connection_signals_pause
      Src: /src/freeradius-server/src/lib/server/trunk.c:3091,1
    - Dst: DO_CONNECTION_NOTIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:3092,1
    - Dst: connection_signals_resume
      Src: /src/freeradius-server/src/lib/server/trunk.c:3094,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3096
      start: 3038
    functionDepth: 3
    functionLinenumber: 3038
    functionLinenumberEnd: 3096
    functionName: trunk_connection_event_update
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 6
    functionsReached:
    - DO_CONNECTION_NOTIFY
    - trunk_request_count_by_connection
    - connection_signals_resume
    - connection_signals_pause
    linkageType: ''
    returnType: void
    signature: void trunk_connection_event_update(trunk_connection_t *tconn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/server/trunk.c:3111,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:3112,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/trunk.c:3112,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3117,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3121,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3125,1
    - Dst: trunk_list_full_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3129,1
    - Dst: trunk_list_inactive_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3133,1
    - Dst: trunk_list_inactive_draining_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3137,1
    - Dst: trunk_list_draining_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3141,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3151
      start: 3102
    functionDepth: 1
    functionLinenumber: 3102
    functionLinenumberEnd: 3151
    functionName: trunk_connection_remove
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_minmax_heap_extract
    - trunk_list_inactive_draining_remove
    - trunk_list_full_remove
    - fr_cond_assert_msg
    - trunk_list_inactive_remove
    - fr_dlist_remove
    - fr_strerror
    - trunk_list_draining_remove
    linkageType: ''
    returnType: void
    signature: void trunk_connection_remove(trunk_connection_t *tconn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3164,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3168,1
    - Dst: trunk_list_full_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:3171,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3173
      start: 3158
    functionDepth: 2
    functionLinenumber: 3158
    functionLinenumberEnd: 3173
    functionName: trunk_connection_enter_full
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - trunk_connection_remove
    - trunk_list_full_add
    - CONN_BAD_STATE_TRANSITION
    - CONN_STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void trunk_connection_enter_full(trunk_connection_t *tconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3187,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3191,1
    - Dst: trunk_list_inactive_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:3194,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3180
    functionDepth: 2
    functionLinenumber: 3180
    functionLinenumberEnd: 3196
    functionName: trunk_connection_enter_inactive
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_remove
    - trunk_list_inactive_add
    - CONN_BAD_STATE_TRANSITION
    - CONN_STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void trunk_connection_enter_inactive(trunk_connection_t *tconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3210,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3214,1
    - Dst: trunk_list_inactive_draining_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:3217,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3218,1
    - Dst: trunk_connection_requests_requeue_priv
      Src: /src/freeradius-server/src/lib/server/trunk.c:3225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3203
    functionDepth: 5
    functionLinenumber: 3203
    functionLinenumberEnd: 3226
    functionName: trunk_connection_enter_inactive_draining
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_remove
    - trunk_connection_requests_requeue_priv
    - CONN_BAD_STATE_TRANSITION
    - trunk_list_inactive_draining_add
    - CONN_STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void trunk_connection_enter_inactive_draining(trunk_connection_t *tconn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3242,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3246,1
    - Dst: trunk_list_draining_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:3249,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3250,1
    - Dst: trunk_connection_requests_requeue_priv
      Src: /src/freeradius-server/src/lib/server/trunk.c:3257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3233
    functionDepth: 5
    functionLinenumber: 3233
    functionLinenumberEnd: 3258
    functionName: trunk_connection_enter_draining
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_remove
    - trunk_connection_requests_requeue_priv
    - trunk_list_draining_add
    - CONN_BAD_STATE_TRANSITION
    - CONN_STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void trunk_connection_enter_draining(trunk_connection_t *tconn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/lib/server/trunk.c:3269,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3277,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3281,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:3284,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3285,1
    - Dst: trunk_connection_requests_requeue_priv
      Src: /src/freeradius-server/src/lib/server/trunk.c:3292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3265
    functionDepth: 5
    functionLinenumber: 3265
    functionLinenumberEnd: 3293
    functionName: trunk_connection_enter_draining_to_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 2
    functionsReached:
    - trunk_connection_remove
    - FR_TIMER_DISARM
    - trunk_connection_requests_requeue_priv
    - CONN_BAD_STATE_TRANSITION
    - CONN_STATE_TRANSITION
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: void trunk_connection_enter_draining_to_free(trunk_connection_t *tconn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3311,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3316,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3317,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3317,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3317,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3321,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3324,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:3325,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/trunk.c:3325,1
    - Dst: trunk_connection_enter_inactive_draining
      Src: /src/freeradius-server/src/lib/server/trunk.c:3326,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3330,1
    - Dst: CONN_REORDER
      Src: /src/freeradius-server/src/lib/server/trunk.c:3335,1
    - Dst: trunk_rebalance
      Src: /src/freeradius-server/src/lib/server/trunk.c:3340,1
    - Dst: trunk_backlog_drain
      Src: /src/freeradius-server/src/lib/server/trunk.c:3358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3301
    functionDepth: 6
    functionLinenumber: 3301
    functionLinenumberEnd: 3359
    functionName: trunk_connection_enter_active
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - trunk_connection_remove
    - fr_cond_assert_msg
    - fr_minmax_heap_insert
    - CONN_BAD_STATE_TRANSITION
    - trunk_backlog_drain
    - trunk_rebalance
    - trunk_request_count_by_connection
    - fr_assert
    - trunk_connection_enter_inactive_draining
    - fr_strerror
    - CONN_STATE_TRANSITION
    - CONN_REORDER
    linkageType: ''
    returnType: void
    signature: void trunk_connection_enter_active(trunk_connection_t *tconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3377,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3385,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3389,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:3392,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3394
      start: 3372
    functionDepth: 2
    functionLinenumber: 3372
    functionLinenumberEnd: 3394
    functionName: _trunk_connection_on_init
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_remove
    - CONN_BAD_STATE_TRANSITION
    - talloc_get_type_abort
    - CONN_STATE_TRANSITION
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_init(UNUSED connection_t *conn,\n\t\t\t\t
      \     UNUSED connection_state_t prev,\n\t\t\t\t      UNUSED connection_state_t
      state,\n\t\t\t\t      void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3412,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3418,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3430,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3430,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:3432,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3434
      start: 3407
    functionDepth: 2
    functionLinenumber: 3407
    functionLinenumberEnd: 3434
    functionName: _trunk_connection_on_connecting
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_remove
    - CONN_BAD_STATE_TRANSITION
    - talloc_get_type_abort
    - trunk_request_count_by_connection
    - fr_assert
    - CONN_STATE_TRANSITION
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_connecting(UNUSED connection_t *conn,\n\t\t\t\t\t
      \   UNUSED connection_state_t prev,\n\t\t\t\t\t    UNUSED connection_state_t
      state,\n\t\t\t\t\t    void *uctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3456,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3473,1
    - Dst: trunk_connection_enter_draining_to_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:3476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3451
    functionDepth: 6
    functionLinenumber: 3451
    functionLinenumberEnd: 3477
    functionName: _trunk_connection_on_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_enter_draining_to_free
    - CONN_BAD_STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_shutdown(UNUSED connection_t *conn,\n\t\t\t\t\t
      \ UNUSED connection_state_t prev,\n\t\t\t\t\t  UNUSED connection_state_t state,\n\t\t\t\t\t
      \ void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3487,1
    - Dst: trunk_connection_enter_draining_to_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:3489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3490
      start: 3485
    functionDepth: 6
    functionLinenumber: 3485
    functionLinenumberEnd: 3490
    functionName: _trunk_connection_lifetime_expire
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_enter_draining_to_free
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _trunk_connection_lifetime_expire(UNUSED fr_timer_list_t *tl,
      UNUSED fr_time_t now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3508,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3526,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3526,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3526,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:3533,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:3539,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/trunk.c:3540,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trunk.c:3542,1
    - Dst: connection_signal_shutdown
      Src: /src/freeradius-server/src/lib/server/trunk.c:3543,1
    - Dst: trunk_connection_enter_active
      Src: /src/freeradius-server/src/lib/server/trunk.c:3548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3549
      start: 3503
    functionDepth: 7
    functionLinenumber: 3503
    functionLinenumberEnd: 3549
    functionName: _trunk_connection_on_connected
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - connection_signal_shutdown
    - fr_time
    - talloc_get_type_abort
    - trunk_connection_enter_active
    - fr_timer_in
    - trunk_request_count_by_connection
    - fr_assert
    - fr_time_delta_ispos
    - PERROR
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_connected(UNUSED connection_t *conn,\n\t\t\t\t\t
      \  UNUSED connection_state_t prev,\n\t\t\t\t\t   UNUSED connection_state_t state,\n\t\t\t\t\t
      \  void *uctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3567,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3579,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3584,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3585,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3585,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3590,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:3593,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3594,1
    - Dst: trunk_connection_requests_requeue_priv
      Src: /src/freeradius-server/src/lib/server/trunk.c:3601,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3608,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3608,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:3618,1
    - Dst: FR_TIMER_DELETE
      Src: /src/freeradius-server/src/lib/server/trunk.c:3618,1
    - Dst: trunk_connection_event_update
      Src: /src/freeradius-server/src/lib/server/trunk.c:3623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3624
      start: 3562
    functionDepth: 5
    functionLinenumber: 3562
    functionLinenumberEnd: 3624
    functionName: _trunk_connection_on_closed
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_event_update
    - trunk_connection_remove
    - trunk_connection_requests_requeue_priv
    - CONN_BAD_STATE_TRANSITION
    - talloc_get_type_abort
    - trunk_request_count_by_connection
    - fr_assert
    - fr_time_delta_ispos
    - FR_TIMER_DELETE
    - CONN_STATE_TRANSITION
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_closed(UNUSED connection_t *conn,\n\t\t\t
      \ \t\tUNUSED connection_state_t prev,\n\t\t\t\t\tUNUSED connection_state_t state,\n\t\t\t\t\tvoid
      *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3638,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:3646,1
    - Dst: _trunk_connection_on_closed
      Src: /src/freeradius-server/src/lib/server/trunk.c:3654,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:3664,1
    - Dst: trunk_backlog_drain
      Src: /src/freeradius-server/src/lib/server/trunk.c:3667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - conn
    - prev
    - state
    - uctx
    argTypes:
    - connection_t*
    - connection_state_t
    - connection_state_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3633
    functionDepth: 6
    functionLinenumber: 3633
    functionLinenumberEnd: 3668
    functionName: _trunk_connection_on_failed
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_count_by_state
    - fr_time
    - talloc_get_type_abort
    - trunk_backlog_drain
    - _trunk_connection_on_closed
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_failed(connection_t *conn,\n\t\t\t\t\tconnection_state_t
      prev,\n\t\t\t\t\tconnection_state_t state,\n\t\t\t\t\tvoid *uctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:3690,1
    - Dst: trunk_connection_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3696,1
    - Dst: CONN_BAD_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3700,1
    - Dst: CONN_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:3707,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3714,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:3714,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:3723,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:3726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - connection_t *conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3727
      start: 3685
    functionDepth: 2
    functionLinenumber: 3685
    functionLinenumberEnd: 3727
    functionName: _trunk_connection_on_halted
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_remove
    - talloc_free
    - CONN_BAD_STATE_TRANSITION
    - talloc_get_type_abort
    - trunk_request_count_by_connection
    - fr_assert
    - fr_dlist_insert_tail
    - CONN_STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: "void _trunk_connection_on_halted(UNUSED connection_t *conn,\n\t\t\t\t\tUNUSED
      connection_state_t prev,\n\t\t\t\t\tUNUSED connection_state_t state,\n\t\t\t\t\tvoid
      *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3735,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:3736,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/server/trunk.c:3736,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:3754,1
    - Dst: trunk_connection_requests_dequeue
      Src: /src/freeradius-server/src/lib/server/trunk.c:3759,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:3760,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/server/trunk.c:3763,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:3764,1
    - Dst: connection_del_watch_pre
      Src: /src/freeradius-server/src/lib/server/trunk.c:3774,1
    - Dst: connection_del_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3775,1
    - Dst: connection_del_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3776,1
    - Dst: connection_del_watch_pre
      Src: /src/freeradius-server/src/lib/server/trunk.c:3777,1
    - Dst: connection_del_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3778,1
    - Dst: connection_del_watch_pre
      Src: /src/freeradius-server/src/lib/server/trunk.c:3779,1
    - Dst: connection_del_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3780,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:3787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3733
    functionDepth: 4
    functionLinenumber: 3733
    functionLinenumberEnd: 3791
    functionName: _trunk_connection_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - connection_del_watch_pre
    - fr_dlist_entry_in_list
    - fr_dlist_talloc_init
    - connection_del_watch_post
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    - fr_assert
    - trunk_connection_requests_dequeue
    - trunk_request_enter_failed
    linkageType: ''
    returnType: int
    signature: int _trunk_connection_free(trunk_connection_t *tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:3810,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk.c:3810,1
    - Dst: DO_CONNECTION_ALLOC
      Src: /src/freeradius-server/src/lib/server/trunk.c:3817,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:3819,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/trunk.c:3819,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:3820,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:3821,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:3822,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:3823,1
    - Dst: connection_add_watch_pre
      Src: /src/freeradius-server/src/lib/server/trunk.c:3833,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3836,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3839,1
    - Dst: connection_add_watch_pre
      Src: /src/freeradius-server/src/lib/server/trunk.c:3842,1
    - Dst: connection_add_watch_pre
      Src: /src/freeradius-server/src/lib/server/trunk.c:3845,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3848,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/lib/server/trunk.c:3851,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/trunk.c:3854,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:3856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - trunk
    - now
    argTypes:
    - trunk_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3861
      start: 3801
    functionDepth: 6
    functionLinenumber: 3801
    functionLinenumberEnd: 3861
    functionName: trunk_connection_spawn
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - connection_add_watch_pre
    - talloc_set_destructor
    - fr_heap_talloc_alloc
    - connection_add_watch_post
    - talloc_zero
    - connection_signal_init
    - DO_CONNECTION_ALLOC
    - MEM
    linkageType: ''
    returnType: int
    signature: int trunk_connection_spawn(trunk_t *trunk, fr_time_t now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trunk.c:3890,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:3892,1
    - Dst: IN_REQUEST_CANCEL_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:3892,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:3896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - treq_out
    - tconn
    argTypes:
    - trunk_request_t**
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3888
    functionDepth: 1
    functionLinenumber: 3888
    functionLinenumberEnd: 3900
    functionName: trunk_connection_pop_cancellation
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 7
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_cond_assert_msg
    - IN_REQUEST_CANCEL_MUX
    linkageType: ''
    returnType: int
    signature: int trunk_connection_pop_cancellation(trunk_request_t **treq_out, trunk_connection_t
      *tconn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trunk.c:3938,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:3940,1
    - Dst: IN_REQUEST_MUX
      Src: /src/freeradius-server/src/lib/server/trunk.c:3940,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:3944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - treq_out
    - tconn
    argTypes:
    - trunk_request_t**
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3936
    functionDepth: 1
    functionLinenumber: 3936
    functionLinenumberEnd: 3948
    functionName: trunk_connection_pop_request
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 16
    functionsReached:
    - fr_heap_peek
    - unlikely
    - fr_cond_assert_msg
    - IN_REQUEST_MUX
    linkageType: ''
    returnType: int
    signature: int trunk_connection_pop_request(trunk_request_t **treq_out, trunk_connection_t
      *tconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:3960,1
    - Dst: IN_HANDLER
      Src: /src/freeradius-server/src/lib/server/trunk.c:3960,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:3963,1
    - Dst: trunk_connection_writable
      Src: /src/freeradius-server/src/lib/server/trunk.c:3965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3956
    functionDepth: 3
    functionLinenumber: 3956
    functionLinenumberEnd: 3966
    functionName: trunk_connection_signal_writable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 4
    functionsReached:
    - fr_cond_assert_msg
    - IN_HANDLER
    - DEBUG3
    - trunk_connection_writable
    linkageType: ''
    returnType: void
    signature: void trunk_connection_signal_writable(trunk_connection_t *tconn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:3978,1
    - Dst: IN_HANDLER
      Src: /src/freeradius-server/src/lib/server/trunk.c:3978,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:3981,1
    - Dst: trunk_connection_readable
      Src: /src/freeradius-server/src/lib/server/trunk.c:3983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3974
    functionDepth: 2
    functionLinenumber: 3974
    functionLinenumberEnd: 3984
    functionName: trunk_connection_signal_readable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert_msg
    - IN_HANDLER
    - DEBUG3
    - trunk_connection_readable
    linkageType: ''
    returnType: void
    signature: void trunk_connection_signal_readable(trunk_connection_t *tconn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_enter_inactive
      Src: /src/freeradius-server/src/lib/server/trunk.c:3997,1
    - Dst: trunk_connection_enter_inactive_draining
      Src: /src/freeradius-server/src/lib/server/trunk.c:4001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 3990
    functionDepth: 6
    functionLinenumber: 3990
    functionLinenumberEnd: 4007
    functionName: trunk_connection_signal_inactive
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 5
    functionsReached:
    - trunk_connection_enter_inactive
    - trunk_connection_enter_inactive_draining
    linkageType: ''
    returnType: void
    signature: void trunk_connection_signal_inactive(trunk_connection_t *tconn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trunk_connection_auto_unfull
      Src: /src/freeradius-server/src/lib/server/trunk.c:4017,1
    - Dst: trunk_connection_is_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:4026,1
    - Dst: trunk_connection_enter_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:4027,1
    - Dst: trunk_connection_enter_active
      Src: /src/freeradius-server/src/lib/server/trunk.c:4030,1
    - Dst: trunk_connection_enter_draining
      Src: /src/freeradius-server/src/lib/server/trunk.c:4039,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - tconn
    argTypes:
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4013
    functionDepth: 7
    functionLinenumber: 4013
    functionLinenumberEnd: 4045
    functionName: trunk_connection_signal_active
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 4
    functionsReached:
    - trunk_connection_enter_active
    - trunk_connection_is_full
    - trunk_connection_enter_draining
    - trunk_connection_auto_unfull
    - trunk_connection_enter_full
    linkageType: ''
    returnType: void
    signature: void trunk_connection_signal_active(trunk_connection_t *tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk.c:4054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tconn
    - reason
    argTypes:
    - trunk_connection_t*
    - connection_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4052
    functionDepth: 7
    functionLinenumber: 4052
    functionLinenumberEnd: 4055
    functionName: trunk_connection_signal_reconnect
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 22
    functionsReached:
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void trunk_connection_signal_reconnect(trunk_connection_t *tconn, connection_reason_t
      reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:4069,1
    - Dst: trunk_connection_signal_readable
      Src: /src/freeradius-server/src/lib/server/trunk.c:4071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4067
    functionDepth: 3
    functionLinenumber: 4067
    functionLinenumberEnd: 4072
    functionName: trunk_connection_callback_readable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_connection_signal_readable
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void trunk_connection_callback_readable(UNUSED fr_event_list_t *el,
      UNUSED int fd, UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:4086,1
    - Dst: trunk_connection_signal_writable
      Src: /src/freeradius-server/src/lib/server/trunk.c:4088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4089
      start: 4084
    functionDepth: 4
    functionLinenumber: 4084
    functionLinenumberEnd: 4089
    functionName: trunk_connection_callback_writable
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - trunk_connection_signal_writable
    linkageType: ''
    returnType: void
    signature: void trunk_connection_callback_writable(UNUSED fr_event_list_t *el,
      UNUSED int fd, UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tconn
    - state
    argTypes:
    - trunk_connection_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4100
    functionDepth: 0
    functionLinenumber: 4100
    functionLinenumberEnd: 4103
    functionName: trunk_connection_in_state
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool trunk_connection_in_state(trunk_connection_t *tconn, int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:4114,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4117,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/server/trunk.c:4119,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:4121,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/trunk.c:4122,1
    - Dst: connection_signal_shutdown
      Src: /src/freeradius-server/src/lib/server/trunk.c:4135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - trunk
    - head
    argTypes:
    - trunk_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4138
      start: 4110
    functionDepth: 3
    functionLinenumber: 4110
    functionLinenumberEnd: 4138
    functionName: trunk_connection_close_if_empty
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - connection_signal_shutdown
    - fr_dlist_prev
    - fr_dlist_next
    - fr_table_str_by_value
    - trunk_request_count_by_connection
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void trunk_connection_close_if_empty(trunk_t *trunk, fr_dlist_head_t
      *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4156,1
    - Dst: trunk_t*::funcs::connection_prioritise
      Src: /src/freeradius-server/src/lib/server/trunk.c:4162,1
    - Dst: fr_minmax_heap_max_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4162,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:4164,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4172,1
    - Dst: trunk_connection_requests_requeue_priv
      Src: /src/freeradius-server/src/lib/server/trunk.c:4173,1
    - Dst: fr_minmax_heap_max_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4152
    functionDepth: 5
    functionLinenumber: 4152
    functionLinenumberEnd: 4175
    functionName: trunk_rebalance
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - fr_minmax_heap_max_peek
    - trunk_connection_requests_requeue_priv
    - DEBUG3
    - fr_minmax_heap_min_peek
    - trunk_t*::funcs::connection_prioritise
    linkageType: ''
    returnType: void
    signature: void trunk_rebalance(trunk_t *trunk)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4225,1
    - Dst: trunk_list_free_requests_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4231,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/server/trunk.c:4232,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:4232,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:4232,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:4237,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk.c:4239,1
    - Dst: fr_minmax_heap_iter_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:4241,1
    - Dst: fr_minmax_heap_iter_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:4243,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:4247,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4252,1
    - Dst: trunk_connection_enter_draining_to_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:4261,1
    - Dst: trunk_connection_close_if_empty
      Src: /src/freeradius-server/src/lib/server/trunk.c:4271,1
    - Dst: trunk_connection_close_if_empty
      Src: /src/freeradius-server/src/lib/server/trunk.c:4272,1
    - Dst: trunk_connection_close_if_empty
      Src: /src/freeradius-server/src/lib/server/trunk.c:4273,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:4278,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:4283,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:4290,1
    - Dst: TRUNK_STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/server/trunk.c:4296,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/server/trunk.c:4314,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:4325,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4327,1
    - Dst: trunk_requests_per_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4332,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4338,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:4338,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4339,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4340,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4341,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk.c:4341,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4354,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4365,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4374,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4376,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4378,1
    - Dst: trunk_connection_spawn
      Src: /src/freeradius-server/src/lib/server/trunk.c:4382,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4391,1
    - Dst: trunk_connection_is_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:4393,1
    - Dst: trunk_connection_enter_full
      Src: /src/freeradius-server/src/lib/server/trunk.c:4394,1
    - Dst: trunk_connection_enter_active
      Src: /src/freeradius-server/src/lib/server/trunk.c:4396,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4405,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:4405,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4406,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4408,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4409,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk.c:4409,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4413,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4414,1
    - Dst: trunk_connection_spawn
      Src: /src/freeradius-server/src/lib/server/trunk.c:4416,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4423,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4424,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:4424,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4425,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4426,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4427,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk.c:4427,1
    - Dst: trunk_requests_per_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4431,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4434,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4439,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4445,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4458,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4467,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4469,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4470,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4474,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4475,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4478,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/server/trunk.c:4478,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4479,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4481,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/server/trunk.c:4482,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/server/trunk.c:4482,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4493,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/trunk.c:4493,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4494,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4495,1
    - Dst: trunk_list_inactive_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4505,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4510,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4511,1
    - Dst: trunk_connection_enter_inactive_draining
      Src: /src/freeradius-server/src/lib/server/trunk.c:4513,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/trunk.c:4521,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4522,1
    - Dst: fr_minmax_heap_max_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4530,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4535,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4536,1
    - Dst: trunk_connection_enter_draining
      Src: /src/freeradius-server/src/lib/server/trunk.c:4538,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 131
    argCount: 2
    argNames:
    - trunk
    - now
    argTypes:
    - trunk_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4216
    functionDepth: 7
    functionLinenumber: 4216
    functionLinenumberEnd: 4546
    functionName: trunk_manage
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_dlist_tail
    - fr_time_add
    - trunk_requests_per_connection
    - trunk_connection_enter_active
    - fr_heap_num_elements
    - trunk_connection_is_full
    - fr_time_sub
    - trunk_connection_enter_draining_to_free
    - fr_time_lteq
    - ROUND_UP_DIV
    - connection_signal_halt
    - fr_dlist_head
    - fr_dlist_talloc_free
    - trunk_connection_spawn
    - trunk_list_free_requests_peek
    - trunk_request_count_by_connection
    - fr_time_delta_ispos
    - fr_time_lt
    - trunk_connection_enter_full
    - trunk_connection_close_if_empty
    - fr_time_gteq
    - TRUNK_STATE_TRANSITION
    - trunk_connection_enter_draining
    - fr_minmax_heap_max_peek
    - trunk_connection_count_by_state
    - talloc_free
    - fr_time_wrap
    - fr_minmax_heap_iter_next
    - fr_minmax_heap_iter_init
    - fr_time_gt
    - fr_box_time_delta
    - trunk_connection_enter_inactive_draining
    - trunk_list_inactive_peek
    linkageType: ''
    returnType: void
    signature: void trunk_manage(trunk_t *trunk, fr_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:4556,1
    - Dst: trunk_manage
      Src: /src/freeradius-server/src/lib/server/trunk.c:4558,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:4560,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/trunk.c:4561,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trunk.c:4563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4554
    functionDepth: 8
    functionLinenumber: 4554
    functionLinenumberEnd: 4567
    functionName: _trunk_timer
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_manage
    - talloc_get_type_abort
    - fr_timer_in
    - fr_time_delta_ispos
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _trunk_timer(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_iter_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:4593,1
    - Dst: fr_minmax_heap_iter_next
      Src: /src/freeradius-server/src/lib/server/trunk.c:4595,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4596,1
    - Dst: COUNT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4600,1
    - Dst: COUNT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4601,1
    - Dst: COUNT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4602,1
    - Dst: COUNT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4603,1
    - Dst: COUNT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4604,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:4606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - trunk
    - conn_state
    - req_state
    argTypes:
    - trunk_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4609
      start: 4576
    functionDepth: 2
    functionLinenumber: 4576
    functionLinenumberEnd: 4609
    functionName: trunk_request_count_by_state
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 9
    functionsReached:
    - fr_minmax_heap_iter_next
    - fr_minmax_heap_iter_init
    - fr_heap_num_elements
    - trunk_request_count_by_connection
    - COUNT_BY_STATE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t trunk_request_count_by_state(trunk_t *trunk, int conn_state,
      int req_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _state
    - ','
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4591
      start: 4582
    functionDepth: 0
    functionLinenumber: 4582
    functionLinenumberEnd: 4591
    functionName: COUNT_BY_STATE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COUNT_BY_STATE(_state, _list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:4633,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4633,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/trunk.c:4633,1
    - Dst: trunk_connection_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:4659,1
    - Dst: trunk_request_count_by_state
      Src: /src/freeradius-server/src/lib/server/trunk.c:4667,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/server/trunk.c:4687,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/server/trunk.c:4695,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/server/trunk.c:4703,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:4713,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 5
    argNames:
    - conn_count_out
    - req_count_out
    - trunk
    - now
    - verify
    argTypes:
    - uint16_t*
    - uint32_t*
    - trunk_t*
    - fr_time_t
    - NDEBUG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4625
    functionDepth: 3
    functionLinenumber: 4625
    functionLinenumberEnd: 4718
    functionName: trunk_requests_per_connection
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 5
    functionsReached:
    - fr_time_wrap
    - trunk_connection_count_by_state
    - fr_time_gt
    - trunk_request_count_by_state
    - fr_assert
    - fr_time_lteq
    - ROUND_UP_DIV
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t trunk_requests_per_connection(uint16_t *conn_count_out, uint32_t
      *req_count_out,\n\t\t\t\t\t      trunk_t *trunk, fr_time_t now,\n\t\t\t\t\t
      \     NDEBUG_UNUSED bool verify)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:4728,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:4734,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4744,1
    - Dst: trunk_request_enqueue_existing
      Src: /src/freeradius-server/src/lib/server/trunk.c:4745,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:4763,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:4767,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/server/trunk.c:4767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4771
      start: 4724
    functionDepth: 4
    functionLinenumber: 4724
    functionLinenumberEnd: 4771
    functionName: trunk_backlog_drain
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 2
    functionsReached:
    - fr_minmax_heap_num_elements
    - fr_heap_num_elements
    - fr_assert
    - trunk_request_enter_failed
    - fr_heap_peek
    - DEBUG3
    - trunk_request_enqueue_existing
    linkageType: ''
    returnType: void
    signature: void trunk_backlog_drain(trunk_t *trunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4799,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4803,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/server/trunk.c:4803,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4806,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4807,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4808,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4809,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4810,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4811,1
    - Dst: RECONNECT_BY_STATE
      Src: /src/freeradius-server/src/lib/server/trunk.c:4812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - trunk
    - states
    - reason
    argTypes:
    - trunk_t*
    - int
    - connection_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4813
      start: 4779
    functionDepth: 7
    functionLinenumber: 4779
    functionLinenumberEnd: 4813
    functionName: trunk_reconnect
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - RECONNECT_BY_STATE
    - fr_minmax_heap_min_peek
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void trunk_reconnect(trunk_t *trunk, int states, connection_reason_t
      reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _state
    - ','
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4791
      start: 4782
    functionDepth: 0
    functionLinenumber: 4782
    functionLinenumberEnd: 4791
    functionName: RECONNECT_BY_STATE
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECONNECT_BY_STATE(_state, _list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trunk.c:4822,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/trunk.c:4828,1
    - Dst: trunk_connection_spawn
      Src: /src/freeradius-server/src/lib/server/trunk.c:4829,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trunk.c:4829,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:4836,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:4837,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4838,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/server/trunk.c:4842,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/trunk.c:4847,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trunk.c:4849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4857
      start: 4818
    functionDepth: 7
    functionLinenumber: 4818
    functionLinenumberEnd: 4857
    functionName: trunk_start
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_time
    - fr_time_delta_gt
    - trunk_connection_spawn
    - fr_timer_in
    - fr_time_delta_ispos
    - DEBUG
    - PERROR
    linkageType: ''
    returnType: int
    signature: int trunk_start(trunk_t *trunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:4866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4868
      start: 4862
    functionDepth: 1
    functionLinenumber: 4862
    functionLinenumberEnd: 4868
    functionName: trunk_connection_manage_start
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void trunk_connection_manage_start(trunk_t *trunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trunk.c:4877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4879
      start: 4873
    functionDepth: 1
    functionLinenumber: 4873
    functionLinenumberEnd: 4879
    functionName: trunk_connection_manage_stop
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void trunk_connection_manage_stop(trunk_t *trunk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/server/trunk.c:4887,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/server/trunk.c:4887,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trunk.c:4889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4894
      start: 4883
    functionDepth: 1
    functionLinenumber: 4883
    functionLinenumberEnd: 4894
    functionName: trunk_connection_manage_schedule
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached:
    - fr_timer_in
    - fr_time_delta_wrap
    - PERROR
    linkageType: ''
    returnType: int
    signature: int trunk_connection_manage_schedule(trunk_t *trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/trunk.c:4901,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/trunk.c:4902,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4904,1
    - Dst: trunk_request_count_by_connection
      Src: /src/freeradius-server/src/lib/server/trunk.c:4905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4911
      start: 4899
    functionDepth: 2
    functionLinenumber: 4899
    functionLinenumberEnd: 4911
    functionName: _trunk_connection_order_by_shortest_queue
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - trunk_request_count_by_connection
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int8_t
    signature: int8_t _trunk_connection_order_by_shortest_queue(void const *one, void
      const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:4923,1
    - Dst: FR_TIMER_DELETE_RETURN
      Src: /src/freeradius-server/src/lib/server/trunk.c:4931,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4939,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4939,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4940,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4940,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4941,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4941,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4942,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4942,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4943,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4943,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4944,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4944,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4945,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4945,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4946,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4946,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4947,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/lib/server/trunk.c:4947,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:4952,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4957,1
    - Dst: trunk_request_enter_failed
      Src: /src/freeradius-server/src/lib/server/trunk.c:4957,1
    - Dst: trunk_list_free_requests_peek
      Src: /src/freeradius-server/src/lib/server/trunk.c:4962,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:4962,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/trunk.c:4967,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/server/trunk.c:4968,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:4968,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - trunk
    argTypes:
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4972
      start: 4916
    functionDepth: 3
    functionLinenumber: 4916
    functionLinenumberEnd: 4972
    functionName: _trunk_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_dlist_head
    - fr_dlist_talloc_free
    - talloc_free
    - fr_dlist_pop_head
    - FR_TIMER_DELETE_RETURN
    - trunk_list_free_requests_peek
    - trunk_request_enter_failed
    - connection_signal_halt
    - fr_heap_peek
    - NUM_ELEMENTS
    - fr_minmax_heap_min_peek
    linkageType: ''
    returnType: int
    signature: int _trunk_free(trunk_t *trunk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/trunk.c:5011,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:5013,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trunk.c:5013,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/trunk.c:5015,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/trunk.c:5018,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/trunk.c:5024,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/trunk.c:5026,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/trunk.c:5027,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5032,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:5037,1
    - Dst: fr_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/trunk.c:5037,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trunk.c:5043,1
    - Dst: fr_minmax_heap_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/trunk.c:5043,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5045,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5046,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5047,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5048,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5049,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5050,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5051,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5052,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5053,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/trunk.c:5058,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/trunk.c:5059,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/trunk.c:5062,1
    - Dst: trunk_start
      Src: /src/freeradius-server/src/lib/server/trunk.c:5065,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trunk.c:5066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 8
    argNames:
    - ctx
    - el
    - funcs
    - conf
    - log_prefix
    - uctx
    - delay_start
    - trigger_args
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - trunk_io_funcs_t*
    - trunk_conf_t*
    - char*
    - void*
    - bool
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 5001
    functionDepth: 8
    functionLinenumber: 5001
    functionLinenumberEnd: 5072
    functionName: trunk_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 11
    functionsReached:
    - DEBUG4
    - fr_dlist_talloc_init
    - memcpy
    - talloc_set_destructor
    - fr_heap_talloc_alloc
    - trunk_start
    - fr_cond_assert
    - fr_minmax_heap_talloc_alloc
    - talloc_strdup
    - talloc_free
    - talloc_zero
    - MEM
    - NUM_ELEMENTS
    linkageType: ''
    returnType: trunk_t
    signature: "trunk_t *trunk_alloc(TALLOC_CTX *ctx, fr_event_list_t *el,\n\t\t\t
      \  trunk_io_funcs_t const *funcs, trunk_conf_t const *conf,\n\t\t\t   char const
      *log_prefix, void const *uctx, bool delay_start, fr_pair_list_t *trigger_args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/trunk.c:5080,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/server/trunk.c:5080,1
    - Dst: cf_pair_parse_value
      Src: /src/freeradius-server/src/lib/server/trunk.c:5082,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/trunk.c:5089,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/trunk.c:5090,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/lib/server/trunk.c:5090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5098
      start: 5077
    functionDepth: 13
    functionLinenumber: 5077
    functionLinenumberEnd: 5098
    functionName: trunk_trigger_cf_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_section_find
    - cf_section_name
    - strcmp
    - cf_pair_parse_value
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int trunk_trigger_cf_parse(TALLOC_CTX *ctx, void *out, void *parent,
      CONF_ITEM *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:5111,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:5112,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/server/trunk.c:5114,1
    - Dst: _fr_dlist_verify
      Src: /src/freeradius-server/src/lib/server/trunk.c:5115,1
    - Dst: IO_FUNC_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5124,1
    - Dst: IO_FUNC_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5125,1
    - Dst: IO_FUNC_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5126,1
    - Dst: fr_dlist_verify
      Src: /src/freeradius-server/src/lib/server/trunk.c:5154,1
    - Dst: FR_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5155,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5157,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5158,1
    - Dst: TCONN_MINMAX_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5159,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5160,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5161,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5162,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5164,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5165,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5166,1
    - Dst: TCONN_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - file
    - line
    - trunk
    argTypes:
    - char*
    - int
    - trunk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5109
    functionDepth: 1
    functionLinenumber: 5109
    functionLinenumberEnd: 5168
    functionName: trunk_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - _fr_dlist_verify
    - FR_HEAP_VERIFY
    - TCONN_MINMAX_HEAP_VERIFY
    - TCONN_DLIST_VERIFY
    - talloc_get_type_abort
    - fr_dlist_verify
    - IO_FUNC_VERIFY
    - fr_fatal_assert_msg
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void trunk_verify(char const *file, int line, trunk_t *trunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5120
      start: 5118
    functionDepth: 0
    functionLinenumber: 5118
    functionLinenumberEnd: 5120
    functionName: IO_FUNC_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IO_FUNC_VERIFY(_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _tconn
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5135
      start: 5128
    functionDepth: 0
    functionLinenumber: 5128
    functionLinenumberEnd: 5135
    functionName: TRUNK_TCONN_CHECKS
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRUNK_TCONN_CHECKS(_tconn, _state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dlist
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5144
      start: 5136
    functionDepth: 0
    functionLinenumber: 5136
    functionLinenumberEnd: 5144
    functionName: TCONN_DLIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCONN_DLIST_VERIFY(_dlist, _state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _heap
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5153
      start: 5145
    functionDepth: 0
    functionLinenumber: 5145
    functionLinenumberEnd: 5153
    functionName: TCONN_MINMAX_HEAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCONN_MINMAX_HEAP_VERIFY(_heap, _state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:5172,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:5173,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:5175,1
    - Dst: TREQ_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5222,1
    - Dst: TREQ_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5223,1
    - Dst: TREQ_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5224,1
    - Dst: TREQ_DLIST_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5225,1
    - Dst: TREQ_OPTION_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5226,1
    - Dst: TREQ_OPTION_VERIFY
      Src: /src/freeradius-server/src/lib/server/trunk.c:5227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - file
    - line
    - tconn
    argTypes:
    - char*
    - int
    - trunk_connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5228
      start: 5170
    functionDepth: 1
    functionLinenumber: 5170
    functionLinenumberEnd: 5228
    functionName: trunk_connection_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - TREQ_HEAP_VERIFY
    - talloc_get_type_abort
    - TREQ_DLIST_VERIFY
    - TREQ_OPTION_VERIFY
    - fr_fatal_assert_msg
    linkageType: ''
    returnType: void
    signature: void trunk_connection_verify(char const *file, int line, trunk_connection_t
      *tconn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _treq
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5191
      start: 5182
    functionDepth: 0
    functionLinenumber: 5182
    functionLinenumberEnd: 5191
    functionName: TCONN_TREQ_CHECKS
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCONN_TREQ_CHECKS(_treq, _state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dlist
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5200
      start: 5192
    functionDepth: 0
    functionLinenumber: 5192
    functionLinenumberEnd: 5200
    functionName: TREQ_DLIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREQ_DLIST_VERIFY(_dlist, _state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _heap
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5212
      start: 5201
    functionDepth: 0
    functionLinenumber: 5201
    functionLinenumberEnd: 5212
    functionName: TREQ_HEAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREQ_HEAP_VERIFY(_heap, _state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _option
    - ','
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5220
      start: 5213
    functionDepth: 0
    functionLinenumber: 5213
    functionLinenumberEnd: 5220
    functionName: TREQ_OPTION_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREQ_OPTION_VERIFY(_option, _state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/trunk.c:5232,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trunk.c:5233,1
    - Dst: request_verify
      Src: /src/freeradius-server/src/lib/server/trunk.c:5236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - treq
    argTypes:
    - char*
    - int
    - trunk_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5230
    functionDepth: 1
    functionLinenumber: 5230
    functionLinenumberEnd: 5238
    functionName: trunk_request_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - fr_fatal_assert_msg
    - request_verify
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void trunk_request_verify(char const *file, int line, trunk_request_t
      *treq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5271,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5272,1
    - Dst: TCONN_MINMAX_HEAP_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5273,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5274,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5275,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5276,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5277,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5278,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5279,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5280,1
    - Dst: TCONN_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - trunk
    - ptr
    argTypes:
    - trunk_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5284
      start: 5241
    functionDepth: 1
    functionLinenumber: 5241
    functionLinenumberEnd: 5284
    functionName: trunk_search
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 8
    functionsReached:
    - TCONN_DLIST_SEARCH
    - TCONN_MINMAX_HEAP_SEARCH
    linkageType: ''
    returnType: bool
    signature: bool trunk_search(trunk_t *trunk, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dlist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5256
      start: 5243
    functionDepth: 0
    functionLinenumber: 5243
    functionLinenumberEnd: 5256
    functionName: TCONN_DLIST_SEARCH
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCONN_DLIST_SEARCH(_dlist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _heap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5270
      start: 5257
    functionDepth: 0
    functionLinenumber: 5257
    functionLinenumberEnd: 5270
    functionName: TCONN_MINMAX_HEAP_SEARCH
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCONN_MINMAX_HEAP_SEARCH(_heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TREQ_HEAP_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5334,1
    - Dst: TREQ_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5335,1
    - Dst: TREQ_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5336,1
    - Dst: TREQ_DLIST_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5337,1
    - Dst: TREQ_OPTION_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5338,1
    - Dst: TREQ_OPTION_SEARCH
      Src: /src/freeradius-server/src/lib/server/trunk.c:5339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tconn
    - ptr
    argTypes:
    - trunk_connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5286
    functionDepth: 1
    functionLinenumber: 5286
    functionLinenumberEnd: 5342
    functionName: trunk_connection_search
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached:
    - TREQ_OPTION_SEARCH
    - TREQ_HEAP_SEARCH
    - TREQ_DLIST_SEARCH
    linkageType: ''
    returnType: bool
    signature: bool trunk_connection_search(trunk_connection_t *tconn, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dlist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5301
      start: 5288
    functionDepth: 0
    functionLinenumber: 5288
    functionLinenumberEnd: 5301
    functionName: TREQ_DLIST_SEARCH
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREQ_DLIST_SEARCH(_dlist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _heap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5318
      start: 5302
    functionDepth: 0
    functionLinenumber: 5302
    functionLinenumberEnd: 5318
    functionName: TREQ_HEAP_SEARCH
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREQ_HEAP_SEARCH(_heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5332
      start: 5319
    functionDepth: 0
    functionLinenumber: 5319
    functionLinenumberEnd: 5332
    functionName: TREQ_OPTION_SEARCH
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREQ_OPTION_SEARCH(_option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - treq
    - ptr
    argTypes:
    - trunk_request_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5344
    functionDepth: 0
    functionLinenumber: 5344
    functionLinenumberEnd: 5347
    functionName: trunk_request_search
    functionSourceFile: /src/freeradius-server/src/lib/server/trunk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool trunk_request_search(trunk_request_t *treq, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:65,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: module_rlm_virtual_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t module_rlm_virtual_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_list_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: module_rlm_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - module_list_debug
    linkageType: ''
    returnType: void
    signature: void module_rlm_list_debug(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:117,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:117,1
    - Dst: exfile_init
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:121,1
    - Dst: exfile_enable_triggers
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:124,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 8
    argNames:
    - ctx
    - module
    - max_entries
    - max_idle
    - locking
    - triggers
    - trigger_prefix
    - trigger_args
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - uint32_t
    - fr_time_delta_t
    - bool
    - bool
    - char*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 128
    functionName: module_rlm_exfile_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 3
    functionsReached:
    - cf_section_find
    - snprintf
    - exfile_enable_triggers
    - exfile_init
    - cf_section_name1
    linkageType: ''
    returnType: exfile_t
    signature: "exfile_t *module_rlm_exfile_init(TALLOC_CTX *ctx,\n\t\t\t\t CONF_SECTION
      *module,\n\t\t\t\t uint32_t max_entries,\n\t\t\t\t fr_time_delta_t max_idle,\n\t\t\t\t
      bool locking,\n\t\t\t\t bool triggers,\n\t\t\t\t char const *trigger_prefix,\n\t\t\t\t
      fr_pair_list_t *trigger_args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:175,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:184,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:187,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:188,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:191,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:198,1
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:199,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:201,1
    - Dst: cf_data_remove_by_data
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:203,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:208,1
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:208,1
    - Dst: cf_data_remove_by_data
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:216,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:221,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:221,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:221,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:222,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:223,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:223,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - out
    - module
    - name
    argTypes:
    - CONF_SECTION**
    - CONF_SECTION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 230
    functionName: module_rlm_sibling_section_find
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - cf_data_remove_by_data
    - cf_pair_value
    - cf_data_find
    - module_instantiate
    - cf_data_add
    - strcmp
    - cf_section_name1
    - cf_pair_find
    - module_instance_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int module_rlm_sibling_section_find(CONF_SECTION **out, CONF_SECTION
      *module, char const *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:236,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:241,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:247,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:248,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:254,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:255,1
    - Dst: xlat_mctx_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:257,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:259,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:259,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - mctx
    - name
    - func
    - return_type
    argTypes:
    - TALLOC_CTX*
    - module_inst_ctx_t*
    - char*
    - xlat_func_t
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 266
    functionName: module_rlm_xlat_register
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 30
    functionsReached:
    - unlikely
    - ERROR
    - snprintf
    - talloc_get_type_abort
    - xlat_mctx_set
    - talloc
    - fr_assert_msg
    - fr_dlist_insert_tail
    - MEM
    - xlat_func_register
    linkageType: ''
    returnType: xlat_t
    signature: "xlat_t *module_rlm_xlat_register(TALLOC_CTX *ctx, module_inst_ctx_t
      const *mctx,\n\t\t\t\t char const *name, xlat_func_t func, fr_type_t return_type)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:302,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:303,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:307,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:312,1
    - Dst: module_rlm_sibling_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:319,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:325,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:325,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:329,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:336,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:338,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:341,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:350,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:351,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:362,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:362,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:364,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:364,1
    - Dst: fr_pool_init
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:365,1
    - Dst: fr_pool_enable_triggers
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:368,1
    - Dst: fr_pool_start
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:370,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:371,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:375,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:375,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:376,1
    - Dst: fr_pool_ref
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:379,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:381,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:381,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:389,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:390,1
    - Dst: parent_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:390,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:391,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 7
    argNames:
    - module
    - opaque
    - c
    - a
    - log_prefix
    - trigger_prefix
    - trigger_args
    argTypes:
    - CONF_SECTION*
    - void*
    - fr_pool_connection_create_t
    - fr_pool_connection_alive_t
    - char*
    - char*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 395
    functionName: module_rlm_connection_pool_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 2
    functionsReached:
    - DEBUG4
    - fr_pool_start
    - ERROR
    - parent_name
    - cf_section_find
    - cf_section_alloc
    - fr_pool_ref
    - cf_data_find
    - snprintf
    - cf_section_name2
    - cf_data_add
    - module_rlm_sibling_section_find
    - cf_data_value
    - cf_section_name1
    - fr_pool_init
    - fr_pool_enable_triggers
    linkageType: ''
    returnType: fr_pool_t
    signature: "fr_pool_t *module_rlm_connection_pool_init(CONF_SECTION *module,\n\t\t\t\t\t
      \  void *opaque,\n\t\t\t\t\t   fr_pool_connection_create_t c,\n\t\t\t\t\t   fr_pool_connection_alive_t
      a,\n\t\t\t\t\t   char const *log_prefix,\n\t\t\t\t\t   char const *trigger_prefix,\n\t\t\t\t\t
      \  fr_pair_list_t *trigger_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: parent_name
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parent_name(_x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:407,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:409,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:409,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:410,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:414,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - request
    - type_da
    - enumv
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    - fr_dict_enum_value_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 424
    functionName: module_rlm_section_type_set
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 9
    functionsReached:
    - unlikely
    - pair_update_control
    - fr_strerror_printf
    - RDEBUG2
    - fr_value_box_copy
    linkageType: ''
    returnType: bool
    signature: bool module_rlm_section_type_set(request_t *request, fr_dict_attr_t
      const *type_da, fr_dict_enum_value_t const *enumv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: section_name_match
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:456,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:461,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:468,1
    - Dst: section_name2_match
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:469,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - mmg
    - section
    argTypes:
    - module_method_group_t*
    - section_name_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 488
    functionName: module_binding_find
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - fr_dlist_tail
    - section_name2_match
    - section_name_match
    linkageType: ''
    returnType: module_method_binding_t
    signature: module_method_binding_t *module_binding_find(module_method_group_t
      const *mmg, section_name_t const *section)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:508,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:513,1
    - Dst: section_name_str
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:514,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:516,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - mmg
    argTypes:
    - module_method_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 526
    functionName: module_rlm_methods_to_strerror
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf_push
    - fr_strerror_const_push
    - section_name_str
    linkageType: ''
    returnType: void
    signature: void module_rlm_methods_to_strerror(module_method_group_t const *mmg)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:552,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:553,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:554,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:555,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:556,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:557,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:560,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:561,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:562,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:563,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:564,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:565,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:577,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:582,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:588,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:589,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:590,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:593,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:600,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:602,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:604,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:606,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:610,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:611,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:613,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:615,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:617,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:618,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:618,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:620,1
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:623,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:625,1
    - Dst: module_rlm_from_module
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:628,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:630,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:631,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:644,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:646,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:648,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:652,1
    - Dst: module_rlm_static_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:661,1
    - Dst: module_rlm_from_module
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:663,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:667,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:673,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:675,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:675,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:679,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:680,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:680,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:681,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:682,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:684,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:693,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:708,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:710,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:712,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:713,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:717,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:719,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:720,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:721,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:723,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:730,1
    - Dst: module_binding_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:733,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:735,1
    - Dst: module_rlm_methods_to_strerror
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:742,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:743,1
    - Dst: section_name_dup
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:746,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:748,1
    - Dst: module_binding_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:759,1
    - Dst: virtual_server_section_methods
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:761,1
    - Dst: module_binding_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:764,1
    - Dst: section_name_dup
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:766,1
    - Dst: section_name_dup
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:772,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:775,1
    - Dst: module_rlm_methods_to_strerror
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:783,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:785,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:789,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 136
    argCount: 6
    argNames:
    - ctx
    - mmc_out
    - vs
    - section
    - name
    - t_rules
    argTypes:
    - TALLOC_CTX*
    - module_method_call_t*
    - virtual_server_t*
    - section_name_t*
    - fr_sbuff_t*
    - tmpl_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 548
    functionDepth: 12
    functionLinenumber: 548
    functionLinenumberEnd: 790
    functionName: module_rlm_by_name_and_method
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - strrchr
    - strlen
    - fr_sbuff_out_bstrncpy
    - module_instance_by_name
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_set_to_start
    - fr_sbuff_error
    - section_name_dup
    - fr_sbuff_adv_until
    - fr_strerror_const_push
    - fr_sbuff_ahead
    - FR_SBUFF
    - fr_strerror_const
    - FR_SBUFF_TERMS
    - L
    - fr_sbuff_marker
    - fr_sbuff_out_bstrncpy_until
    - fr_box_strvalue_len
    - fr_sbuff_advance
    - fr_sbuff_next_if_char
    - module_rlm_static_by_name
    - fr_sbuff_used
    - fr_sbuff_is_char
    - module_rlm_from_module
    - module_binding_find
    - tmpl_afrom_substr
    - virtual_server_section_methods
    - module_rlm_methods_to_strerror
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t module_rlm_by_name_and_method(TALLOC_CTX *ctx, module_method_call_t
      *mmc_out,\n\t\t\t\t        virtual_server_t const *vs, section_name_t const
      *section, fr_sbuff_t *name,\n\t\t\t\t\ttmpl_rules_t const *t_rules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - asked_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 803
    functionName: module_rlm_virtual_by_name
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    linkageType: ''
    returnType: CONF_SECTION
    signature: CONF_SECTION *module_rlm_virtual_by_name(char const *asked_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parent
    - asked_name
    argTypes:
    - module_instance_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: module_rlm_dynamic_by_name
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - module_instance_by_name
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *module_rlm_dynamic_by_name(module_instance_t const
      *parent, char const *asked_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - parent
    - asked_name
    argTypes:
    - module_instance_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: module_rlm_static_by_name
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 5
    functionsReached:
    - module_instance_by_name
    linkageType: ''
    returnType: module_instance_t
    signature: module_instance_t *module_rlm_static_by_name(module_instance_t const
      *parent, char const *asked_name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:831,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:836,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:837,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:838,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:839,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:840,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:842,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:849,1
    - Dst: unlang_compile_is_keyword
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:849,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:851,1
    - Dst: module_instance_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:858,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:860,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:862,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:863,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:864,1
    - Dst: cf_lineno
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:865,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:872,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:872,1
    - Dst: cf_item_next
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:880,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:881,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:882,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:883,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:884,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:884,1
    - Dst: module_rlm_static_by_name
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:888,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:888,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:890,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:891,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:891,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:914,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:918,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:918,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:921,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:921,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:922,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 822
    functionDepth: 3
    functionLinenumber: 822
    functionLinenumberEnd: 927
    functionName: module_rlm_bootstrap_virtual
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - fr_cond_assert
    - talloc_strdup
    - MEM
    - module_instance_by_name
    - cf_log_err
    - ERROR
    - cf_lineno
    - cf_filename
    - cf_section_name2
    - cf_item_next
    - fr_rb_insert
    - cf_section_name1
    - cf_pair_attr
    - unlang_compile_is_keyword
    - fr_assert
    - strcmp
    - cf_item_is_pair
    - cf_log_perr
    - module_rlm_static_by_name
    - talloc_free
    - cf_pair_value
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int module_rlm_bootstrap_virtual(CONF_SECTION *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_submodule_parse
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 932
    functionDepth: 3
    functionLinenumber: 932
    functionLinenumberEnd: 940
    functionName: module_rlm_submodule_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 3
    functionsReached:
    - module_submodule_parse
    linkageType: ''
    returnType: int
    signature: "int module_rlm_submodule_parse(TALLOC_CTX *ctx, void *out, void *parent,\n\t\t\t
      \      CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modules_thread_detach
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 948
    functionName: modules_rlm_thread_detach
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - modules_thread_detach
    linkageType: ''
    returnType: void
    signature: void modules_rlm_thread_detach(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modules_thread_instantiate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - el
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 958
    functionDepth: 4
    functionLinenumber: 958
    functionLinenumberEnd: 961
    functionName: modules_rlm_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - modules_thread_instantiate
    linkageType: ''
    returnType: int
    signature: int modules_rlm_thread_instantiate(TALLOC_CTX *ctx, fr_event_list_t
      *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modules_coord_attach
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: modules_rlm_coord_attach
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 2
    functionsReached:
    - modules_coord_attach
    linkageType: ''
    returnType: int
    signature: int modules_rlm_coord_attach(fr_event_list_t *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modules_instantiate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 981
    functionDepth: 4
    functionLinenumber: 981
    functionLinenumberEnd: 984
    functionName: modules_rlm_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - modules_instantiate
    linkageType: ''
    returnType: int
    signature: int modules_rlm_instantiate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: section_name_cmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 994
    functionName: binding_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - section_name_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t binding_name_cmp(void const *one, void const *two)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1007,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1010,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1017,1
    - Dst: fr_dlist_sort
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1020,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1027,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1029,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1042,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1042,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1042,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1043,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1045,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1048,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1048,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1049,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1065,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1069,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1072,1
    - Dst: module_method_group_validate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1077,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - group
    argTypes:
    - module_method_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1078
    functionName: module_method_group_validate
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_dlist_sort
    - talloc_array
    - memcpy
    - talloc_free
    - fr_cond_assert_msg
    - fr_dlist_next
    - fr_dlist_init
    - fr_dlist_num_elements
    - strcmp
    - module_method_group_validate
    - fr_dlist_insert_tail
    - MEM
    linkageType: ''
    returnType: int
    signature: int module_method_group_validate(module_method_group_t *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: module_rlm_from_module
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1082,1
    - Dst: module_method_group_validate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - module_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1085
    functionName: module_method_validate
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - module_rlm_from_module
    - module_method_group_validate
    linkageType: ''
    returnType: int
    signature: int module_method_validate(module_instance_t *mi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_instance_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1110,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1111,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1113,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1113,1
    - Dst: module_instance_uctx_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1114,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ml
    - parent
    - type
    - mod_name
    - inst_name
    - init_state
    argTypes:
    - module_list_t*
    - module_instance_t*
    - dl_module_type_t
    - char*
    - char*
    - module_instance_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1119
    functionName: module_rlm_instance_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dlist_talloc_init
    - talloc
    - module_instance_uctx_set
    - MEM
    - module_instance_alloc
    linkageType: ''
    returnType: module_instance_t
    signature: "module_instance_t *module_rlm_instance_alloc(module_list_t *ml,\n\t\t\t\t\t
      \    module_instance_t const *parent,\n\t\t\t\t\t     dl_module_type_t type,
      char const *mod_name, char const *inst_name,\n\t\t\t\t\t     module_instance_state_t
      init_state)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1131,1
    - Dst: unlang_compile_is_keyword
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1132,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1134,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1138,1
    - Dst: unlang_compile_is_keyword
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1143,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1144,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1145,1
    - Dst: module_rlm_bootstrap_virtual
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1148,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1155,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1156,1
    - Dst: module_instance_name_from_conf
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1160,1
    - Dst: module_rlm_instance_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1162,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1163,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1164,1
    - Dst: module_method_validate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1174,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1175,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1179,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1180,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1181,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1188,1
    - Dst: unlang_compile_actions
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1189,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1190,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - ml
    - mod_conf
    argTypes:
    - module_list_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1121
    functionDepth: 5
    functionLinenumber: 1121
    functionLinenumberEnd: 1195
    functionName: module_conf_parse
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cf_log_perr
    - module_rlm_bootstrap_virtual
    - cf_section_find
    - talloc_free
    - cf_section_name2
    - unlang_compile_is_keyword
    - unlang_compile_actions
    - strcmp
    - cf_section_name1
    - module_rlm_instance_alloc
    - module_instance_conf_parse
    - module_method_validate
    - module_instance_name_from_conf
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int module_conf_parse(module_list_t *ml, CONF_SECTION *mod_conf)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: global_lib_instantiate
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1215,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1220,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1222,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1226,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1228,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1231,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1236,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1236,1
    - Dst: cf_item_remove
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1248,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1249,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1254,1
    - Dst: cf_item_prev
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1254,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1259,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1261,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1263,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1264,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1265,1
    - Dst: module_conf_parse
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1267,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1269,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1275,1
    - Dst: modules_bootstrap
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1275,1
    - Dst: fr_command_register_hook
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1277,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1278,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1285,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1287,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1291,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1293,1
    - Dst: module_conf_parse
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1293,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1295,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1296,1
    - Dst: modules_bootstrap
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1296,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1297,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1304,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1308,1
    - Dst: unlang_compile_is_keyword
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1310,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1311,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1315,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1316,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1320,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1323,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1324,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1334,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1336,1
    - Dst: xlat_register_redundant
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1339,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 1
    argNames:
    - root
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1206
    functionDepth: 6
    functionLinenumber: 1206
    functionLinenumberEnd: 1343
    functionName: modules_rlm_bootstrap
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 1
    functionsReached:
    - cf_section_find_next
    - cf_section_find
    - xlat_register_redundant
    - WARN
    - fr_command_register_hook
    - cf_log_err
    - cf_item_remove
    - cf_item_to_section
    - unlikely
    - fr_rb_iter_next_inorder
    - cf_section_name2
    - cf_item_add
    - modules_bootstrap
    - DEBUG2
    - cf_section_name1
    - global_lib_instantiate
    - cf_item_is_section
    - cf_section_alloc
    - unlang_compile_is_keyword
    - cf_log_debug
    - strcmp
    - fr_rb_iter_init_inorder
    - PERROR
    - cf_item_prev
    - module_conf_parse
    linkageType: ''
    returnType: int
    signature: int modules_rlm_bootstrap(CONF_SECTION *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1231,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1236,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1236,1
    - Dst: cf_item_remove
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1248,1
    - Dst: cf_item_add
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1249,1
    - Dst: cf_item_is_section
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1254,1
    - Dst: cf_item_prev
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1254,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1260
    functionName: cf_section_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - cf_item_prev
    - cf_item_is_section
    - cf_section_name2
    - strcmp
    - cf_item_add
    - cf_section_name1
    - cf_item_remove
    - cf_item_to_section
    linkageType: ''
    returnType: void
    signature: void cf_section_foreach(modules, mod_cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_conf_parse
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1268
    functionName: cf_section_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - module_conf_parse
    linkageType: ''
    returnType: void
    signature: void cf_section_foreach(static_cs, mod_conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1293,1
    - Dst: module_conf_parse
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1292
    functionDepth: 6
    functionLinenumber: 1292
    functionLinenumberEnd: 1294
    functionName: cf_section_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - module_conf_parse
    linkageType: ''
    returnType: void
    signature: void cf_section_foreach(dynamic_cs, mod_conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1308,1
    - Dst: unlang_compile_is_keyword
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1310,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1311,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1315,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1316,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1320,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1323,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1326
    functionName: cf_section_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_err
    - cf_section_name2
    - unlang_compile_is_keyword
    - cf_section_name1
    linkageType: ''
    returnType: void
    signature: void cf_section_foreach(cs, policy_cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1351,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1354,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1361
    functionName: modules_rlm_free
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 2
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int modules_rlm_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modules_rlm_free
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1366
    functionName: _modules_rlm_free_atexit
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 0
    functionsReached:
    - modules_rlm_free
    linkageType: ''
    returnType: int
    signature: int _modules_rlm_free_atexit(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1373,1
    - Dst: module_list_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1373,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1374,1
    - Dst: module_list_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1374,1
    - Dst: module_list_mask_set
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1375,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1377,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1377,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/server/module_rlm.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1371
    functionDepth: 2
    functionLinenumber: 1371
    functionLinenumberEnd: 1382
    functionName: modules_rlm_init
    functionSourceFile: /src/freeradius-server/src/lib/server/module_rlm.c
    functionUses: 3
    functionsReached:
    - fr_atexit_global
    - module_list_mask_set
    - fr_rb_inline_alloc
    - module_list_alloc
    - MEM
    linkageType: ''
    returnType: int
    signature: int modules_rlm_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCMP_FIELDS
      Src: /src/freeradius-server/src/lib/server/map_proc.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: map_proc_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 0
    functionsReached:
    - MEMCMP_FIELDS
    linkageType: ''
    returnType: int8_t
    signature: int8_t map_proc_cmp(void const *one, void const *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/map_proc.c:57,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map_proc.c:58,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/map_proc.c:60,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/server/map_proc.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - proc
    argTypes:
    - map_proc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: _map_proc_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_rb_delete
    - strlen
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int _map_proc_talloc_free(map_proc_t *proc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proc
    argTypes:
    - map_proc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: map_proc_literals_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_value_box_safe_for_t
    signature: fr_value_box_safe_for_t map_proc_literals_safe_for(map_proc_t const
      *proc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/map_proc.c:86,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map_proc.c:87,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/map_proc.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: map_proc_find
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - strlen
    - strlcpy
    linkageType: ''
    returnType: map_proc_t
    signature: map_proc_t *map_proc_find(char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/map_proc.c:94,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/map_proc.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: _map_proc_tree_init
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 0
    functionsReached:
    - fr_rb_inline_talloc_alloc
    - MEM
    linkageType: ''
    returnType: int
    signature: int _map_proc_tree_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/map_proc.c:102,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/server/map_proc.c:102,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map_proc.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: _map_proc_tree_free
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    - fr_assert_msg
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _map_proc_tree_free(UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/map_proc.c:130,1
    - Dst: fr_atexit_global_once
      Src: /src/freeradius-server/src/lib/server/map_proc.c:132,1
    - Dst: map_proc_find
      Src: /src/freeradius-server/src/lib/server/map_proc.c:137,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/map_proc.c:144,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/server/map_proc.c:145,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/server/map_proc.c:147,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/server/map_proc.c:148,1
    - Dst: fr_rb_replace
      Src: /src/freeradius-server/src/lib/server/map_proc.c:150,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map_proc.c:151,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/map_proc.c:155,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/map_proc.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 7
    argNames:
    - ctx
    - mod_inst
    - name
    - evaluate
    - instantiate
    - inst_size
    - literals_safe_for
    argTypes:
    - TALLOC_CTX*
    - void*
    - char*
    - map_proc_func_t
    - map_proc_instantiate_t
    - size_t
    - fr_value_box_safe_for_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 167
    functionName: map_proc_register
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 7
    functionsReached:
    - talloc_link_ctx
    - talloc_set_destructor
    - talloc_free
    - DEBUG3
    - fr_rb_replace
    - fr_assert
    - talloc_zero
    - strlen
    - fr_atexit_global_once
    - map_proc_find
    - strlcpy
    linkageType: ''
    returnType: int
    signature: "int map_proc_register(TALLOC_CTX *ctx, void const *mod_inst, char
      const *name,\n\t\t      map_proc_func_t evaluate,\n\t\t      map_proc_instantiate_t
      instantiate, size_t inst_size, fr_value_box_safe_for_t literals_safe_for)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_proc_find
      Src: /src/freeradius-server/src/lib/server/map_proc.c:180,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map_proc.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: map_proc_unregister
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 2
    functionsReached:
    - map_proc_find
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int map_proc_unregister(char const *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/map_proc.c:208,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/server/map_proc.c:215,1
    - Dst: map_proc_t*::instantiate
      Src: /src/freeradius-server/src/lib/server/map_proc.c:219,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/map_proc.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - proc
    - cs
    - src
    - maps
    argTypes:
    - TALLOC_CTX*
    - map_proc_t*
    - CONF_SECTION*
    - tmpl_t*
    - map_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 226
    functionName: map_proc_instantiate
    functionSourceFile: /src/freeradius-server/src/lib/server/map_proc.c
    functionUses: 1
    functionsReached:
    - talloc_zero
    - map_proc_t*::instantiate
    - talloc_zero_array
    - talloc_free
    linkageType: ''
    returnType: map_proc_inst_t
    signature: "map_proc_inst_t *map_proc_instantiate(TALLOC_CTX *ctx, map_proc_t
      const *proc,\n\t\t\t\t      CONF_SECTION *cs, tmpl_t const *src, map_list_t
      const *maps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trigger.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: _trigger_last_fired_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _trigger_last_fired_free(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/trigger.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: _trigger_last_fired_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _trigger_last_fired_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: trigger_enabled
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool trigger_enabled(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_to_item
      Src: /src/freeradius-server/src/lib/server/trigger.c:182,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/trigger.c:196,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/server/trigger.c:204,1
    - Dst: cf_reference_item
      Src: /src/freeradius-server/src/lib/server/trigger.c:221,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trigger.c:225,1
    - Dst: cf_item_is_pair
      Src: /src/freeradius-server/src/lib/server/trigger.c:229,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:230,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/server/trigger.c:234,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/server/trigger.c:240,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/server/trigger.c:242,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/trigger.c:251,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/server/trigger.c:255,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/server/trigger.c:257,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:259,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/trigger.c:259,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/server/trigger.c:265,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/server/trigger.c:267,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/server/trigger.c:275,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/server/trigger.c:275,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/trigger.c:276,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/server/trigger.c:281,1
    - Dst: request_local_alloc_internal
      Src: /src/freeradius-server/src/lib/server/trigger.c:287,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/trigger.c:288,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/server/trigger.c:293,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:294,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trigger.c:297,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:304,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/server/trigger.c:304,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/server/trigger.c:305,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/server/trigger.c:305,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:308,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/trigger.c:308,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/server/trigger.c:309,1
    - Dst: unlang_interpret_event_list
      Src: /src/freeradius-server/src/lib/server/trigger.c:311,1
    - Dst: main_loop_event_list
      Src: /src/freeradius-server/src/lib/server/trigger.c:312,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trigger.c:317,1
    - Dst: tmpl_afrom_substr
      Src: /src/freeradius-server/src/lib/server/trigger.c:331,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/server/trigger.c:331,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/server/trigger.c:331,1
    - Dst: cf_pair_value_quote
      Src: /src/freeradius-server/src/lib/server/trigger.c:332,1
    - Dst: fr_canonicalize_error
      Src: /src/freeradius-server/src/lib/server/trigger.c:336,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/trigger.c:338,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/trigger.c:339,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/server/trigger.c:340,1
    - Dst: tmpl_is_exec
      Src: /src/freeradius-server/src/lib/server/trigger.c:345,1
    - Dst: tmpl_is_xlat
      Src: /src/freeradius-server/src/lib/server/trigger.c:345,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/trigger.c:350,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/trigger.c:354,1
    - Dst: unlang_tmpl_push
      Src: /src/freeradius-server/src/lib/server/trigger.c:356,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trigger.c:361,1
    - Dst: unlang_interpret_set
      Src: /src/freeradius-server/src/lib/server/trigger.c:373,1
    - Dst: unlang_interpret_set_timeout
      Src: /src/freeradius-server/src/lib/server/trigger.c:380,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/server/trigger.c:380,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/server/trigger.c:381,1
    - Dst: unlang_subrequest_child_push_and_detach
      Src: /src/freeradius-server/src/lib/server/trigger.c:385,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:386,1
    - Dst: unlang_interpret_synchronous
      Src: /src/freeradius-server/src/lib/server/trigger.c:408,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trigger.c:409,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 125
    argCount: 6
    argNames:
    - intp
    - cs
    - trigger_cp
    - name
    - rate_limit
    - args
    argTypes:
    - unlang_interpret_t*
    - CONF_SECTION*
    - CONF_PAIR**
    - char*
    - bool
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 155
    functionDepth: 12
    functionLinenumber: 155
    functionLinenumberEnd: 413
    functionName: trigger
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 16
    functionsReached:
    - cf_item_to_pair
    - fr_time_to_sec
    - cf_section_find
    - unlang_interpret_set
    - strrchr
    - fr_pair_value_strdup
    - pthread_mutex_unlock
    - request_local_alloc_internal
    - unlang_interpret_synchronous
    - MEM
    - cf_log_err
    - pair_append_request
    - unlang_tmpl_push
    - unlikely
    - ERROR
    - unlang_interpret_set_timeout
    - cf_pair_to_item
    - fr_time
    - pthread_mutex_lock
    - fr_rb_insert
    - DEBUG
    - DEBUG3
    - fr_pair_list_copy
    - cf_pair_attr
    - tmpl_is_xlat
    - cf_pair_value_quote
    - unlang_subrequest_child_push_and_detach
    - fr_value_box_list_init
    - unlang_interpret_event_list
    - FR_SBUFF_IN
    - cf_reference_item
    - main_loop_event_list
    - fr_rb_find
    - fr_assert
    - cf_item_is_pair
    - talloc_strlen
    - PERROR
    - fr_time_delta_from_sec
    - talloc_typed_asprintf
    - cf_log_perr
    - fr_time_wrap
    - talloc_free
    - cf_pair_value
    - talloc
    - talloc_zero
    - tmpl_afrom_substr
    - tmpl_is_exec
    - fr_canonicalize_error
    linkageType: ''
    returnType: int
    signature: "int trigger(unlang_interpret_t *intp, CONF_SECTION const *cs, CONF_PAIR
      **trigger_cp,\n\t    char const *name, bool rate_limit, fr_pair_list_t *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/trigger.c:431,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/trigger.c:431,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/trigger.c:431,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:433,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/trigger.c:437,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/trigger.c:437,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/trigger.c:437,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:439,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:443,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/trigger.c:443,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/server/trigger.c:444,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/trigger.c:445,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:447,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/trigger.c:447,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/trigger.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - list
    - server
    - port
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - char*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 450
    functionName: trigger_args_afrom_server
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - ERROR
    - fr_pair_value_strdup
    - fr_pair_append
    - fr_dict_internal
    - fr_dict_attr_child_by_num
    - MEM
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void trigger_args_afrom_server(TALLOC_CTX *ctx, fr_pair_list_t *list,
      char const *server, uint16_t port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/trigger.c:457,1
    - Dst: tmpl_resolve
      Src: /src/freeradius-server/src/lib/server/trigger.c:463,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/trigger.c:464,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/server/trigger.c:472,1
    - Dst: tmpl_type_to_str
      Src: /src/freeradius-server/src/lib/server/trigger.c:472,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - map
    - uctx
    argTypes:
    - map_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 454
    functionDepth: 7
    functionLinenumber: 454
    functionLinenumberEnd: 477
    functionName: trigger_args_validate
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - tmpl_type_to_str
    - tmpl_resolve
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int trigger_args_validate(map_t *map, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: BUILD_ATTR
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_ATTR(_name, _value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/trigger.c:505,1
    - Dst: BUILD_ATTR
      Src: /src/freeradius-server/src/lib/server/trigger.c:513,1
    - Dst: BUILD_ATTR
      Src: /src/freeradius-server/src/lib/server/trigger.c:514,1
    - Dst: BUILD_ATTR
      Src: /src/freeradius-server/src/lib/server/trigger.c:515,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/server/trigger.c:516,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/server/trigger.c:516,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/trigger.c:516,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:518,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:521,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/trigger.c:521,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/trigger.c:523,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/trigger.c:530,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:533,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/trigger.c:533,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/lib/server/trigger.c:534,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/lib/server/trigger.c:535,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trigger.c:537,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/lib/server/trigger.c:541,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:542,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/lib/server/trigger.c:542,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/server/trigger.c:542,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/server/trigger.c:543,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trigger.c:545,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - list
    - cs
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - CONF_SECTION*
    - module_trigger_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 497
    functionDepth: 9
    functionLinenumber: 497
    functionLinenumberEnd: 547
    functionName: module_trigger_args_build
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 3
    functionsReached:
    - fr_pair_afrom_da
    - ERROR
    - map_list_next
    - cf_section_find
    - fr_pair_afrom_da_nested
    - talloc_free
    - tmpl_attr_tail_da
    - fr_pair_append
    - talloc
    - fr_dict_internal
    - BUILD_ATTR
    - fr_value_box_cast
    - fr_dict_attr_child_by_num
    - map_list_init
    - MEM
    - fr_dict_root
    - map_afrom_cs
    linkageType: ''
    returnType: int
    signature: int module_trigger_args_build(TALLOC_CTX *ctx, fr_pair_list_t *list,
      CONF_SECTION const *cs, module_trigger_args_t *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/server/trigger.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: _mutex_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int _mutex_free(pthread_mutex_t *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/trigger.c:560,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/trigger.c:561,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/trigger.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: _trigger_free
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _trigger_free(UNUSED void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trigger.c:585,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/trigger.c:585,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:586,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/trigger.c:589,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/trigger.c:589,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:590,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/trigger.c:594,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:596,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/server/trigger.c:600,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/server/trigger.c:602,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/trigger.c:606,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/server/trigger.c:606,1
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/server/trigger.c:606,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/server/trigger.c:610,1
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/server/trigger.c:610,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/server/trigger.c:611,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/trigger.c:612,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/trigger.c:613,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/trigger.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - cs_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 620
    functionName: _trigger_init
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - unlikely
    - ERROR
    - talloc_null_ctx
    - cf_section_find
    - fr_dict_attr_autoload
    - WARN
    - talloc_free
    - talloc_set_destructor
    - fr_rb_inline_talloc_alloc
    - talloc_get_type_abort
    - talloc
    - MEM
    - PERROR
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int _trigger_init(void *cs_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/server/trigger.c:626,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/server/trigger.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 629
    functionName: trigger_init
    functionSourceFile: /src/freeradius-server/src/lib/server/trigger.c
    functionUses: 1
    functionsReached:
    - fr_atexit_global_once_ret
    - UNCONST
    linkageType: ''
    returnType: int
    signature: int trigger_init(CONF_SECTION const *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: PROCESS_CONF_OFFSET
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROCESS_CONF_OFFSET(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: UPDATE_STATE_CS
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_STATE_CS(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: UPDATE_STATE
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_STATE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RECV(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: SEND
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEND(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: SEND_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEND_NO_RESULT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESUME(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _p_result_flag
    - ','
    - _mctx_flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: RESUME_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESUME_FLAG(_x, _p_result_flag, _mctx_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNLANG_RESULT_RCODE
      Src: /src/freeradius-server/src/lib/server/process.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p_result
    - state
    argTypes:
    - unlang_result_t*
    - fr_process_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: process_result_reset
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - UNLANG_RESULT_RCODE
    linkageType: ''
    returnType: unlang_result_t
    signature: unlang_result_t *process_result_reset(unlang_result_t *p_result, fr_process_state_t
      const *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: method
      Src: /src/freeradius-server/src/lib/server/process.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - method
    - rctx
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - module_method_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: process_with_rctx
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - method
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t process_with_rctx(unlang_result_t *p_result, module_ctx_t
      const *mctx,\n\t\t\t\t  request_t *request, module_method_t method, void *rctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: CALL_RECV
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_RECV(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _rctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: CALL_RECV_RCTX
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_RECV_RCTX(_x, _rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: CALL_SEND
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_SEND(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: CALL_RESUME
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_RESUME(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: CALL_SEND_STATE
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_SEND_STATE(_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: CALL_SEND_TYPE
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_SEND_TYPE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/server/process.h:228,1
    - Dst: send
      Src: /src/freeradius-server/src/lib/server/process.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - send
    - p_result
    - mctx
    - request
    argTypes:
    - module_method_t
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: call_send_type
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - pair_delete_reply
    - send
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t call_send_type(module_method_t send, \\\n\t\t\t\t\t
      \    unlang_result_t *p_result, module_ctx_t const *mctx,\n\t\t\t\t\t     request_t
      *request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/lib/server/process.h:240,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/server/process.h:245,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/server/process.h:245,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:247,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:249,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:255,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/process.h:255,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:255,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/process.h:255,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/server/process.h:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 259
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - RDEBUG
    - unlang_module_yield_to_section
    - REDEBUG
    - cf_filename
    - cf_section_name2
    - UPDATE_STATE_CS
    - cf_section_name1
    - fr_dict_enum_name_by_value
    - fr_box_uint32
    linkageType: ''
    returnType: void
    signature: void RECV(generic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:268,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/lib/server/process.h:270,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:278,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/lib/server/process.h:278,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/lib/server/process.h:280,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:281,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/lib/server/process.h:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - PROCESS_PACKET_CODE_VALID
    - fr_assert
    - UPDATE_STATE
    - fr_process_state_t*::send
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_generic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:292,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/lib/server/process.h:294,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 305
    functionName: RESUME_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - fr_assert
    - UPDATE_STATE
    linkageType: ''
    returnType: void
    signature: void RESUME_FLAG(recv_no_send,UNUSED,UNUSED)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PROCESS_CODE_DO_NOT_RESPOND
      Src: /src/freeradius-server/src/lib/server/process.h:318,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/lib/server/process.h:321,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:321,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/lib/server/process.h:324,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/server/process.h:337,1
    - Dst: PROCESS_CODE_MAX
      Src: /src/freeradius-server/src/lib/server/process.h:345,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/lib/server/process.h:348,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/lib/server/process.h:351,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:355,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/process.h:359,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:363,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/process.h:363,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:363,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/process.h:363,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/server/process.h:367,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/server/process.h:367,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:369,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:371,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/server/process.h:375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 378
    functionName: SEND_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - PROCESS_CODE_MAX
    - RDEBUG
    - RWDEBUG
    - unlang_module_yield_to_section
    - cf_filename
    - pair_update_reply
    - cf_section_name2
    - fr_assert
    - PROCESS_PACKET_CODE_VALID
    - cf_section_name1
    - UPDATE_STATE_CS
    - PROCESS_CODE_DO_NOT_RESPOND
    - MEM
    - fr_dict_enum_name_by_value
    - fr_box_uint32
    linkageType: ''
    returnType: void
    signature: void SEND_NO_RESULT(generic)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PROCESS_CODE_DO_NOT_RESPOND
      Src: /src/freeradius-server/src/lib/server/process.h:391,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/lib/server/process.h:394,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:394,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/lib/server/process.h:399,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:401,1
    - Dst: PROCESS_CODE_DO_NOT_RESPOND
      Src: /src/freeradius-server/src/lib/server/process.h:419,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:423,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/lib/server/process.h:426,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:428,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:428,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/server/process.h:430,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:436,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:445,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:446,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/server/process.h:447,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/process.h:456,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:463,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 470
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - RDEBUG
    - RWDEBUG
    - unlang_module_yield_to_section
    - fr_time
    - fr_table_str_by_value
    - cf_section_name2
    - fr_assert
    - PROCESS_PACKET_CODE_VALID
    - UPDATE_STATE_CS
    - PROCESS_CODE_DO_NOT_RESPOND
    linkageType: ''
    returnType: void
    signature: void RESUME(send_generic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/process.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 480
    functionName: RESUME_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - fr_time
    linkageType: ''
    returnType: void
    signature: void RESUME_FLAG(new_client_done,,UNUSED)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/lib/server/process.h:489,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:494,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:500,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/server/process.h:511,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:515,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/process.h:515,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:515,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/process.h:515,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/server/process.h:516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 519
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - RDEBUG
    - fr_time
    - unlang_module_yield_to_section
    - cf_filename
    - cf_section_name2
    - UPDATE_STATE
    - cf_section_name1
    linkageType: ''
    returnType: void
    signature: void RESUME(new_client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/lib/server/process.h:527,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/process.h:530,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/server/process.h:533,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/server/process.h:533,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/server/process.h:533,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/lib/server/process.h:533,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/server/process.h:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - unlang_result_t *p_result
    - mctx
    - request
    argTypes:
    - UNUSED
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 537
    functionName: new_client
    functionSourceFile: /src/freeradius-server/src/lib/server/process.h
    functionUses: 0
    functionsReached:
    - RDEBUG
    - unlang_module_yield_to_section
    - cf_filename
    - cf_section_name2
    - UPDATE_STATE
    - fr_assert
    - cf_section_name1
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t new_client(UNUSED unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:20,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:23,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:24,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:30,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:32,1
    - Dst: request_global_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:34,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 35
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 3
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - request_global_init
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_local_alloc_external
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:44,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:46,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:47,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:49,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: request_fake_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 21
    functionsReached:
    - TEST_CHECK
    - request_local_alloc_external
    - fr_packet_alloc
    linkageType: ''
    returnType: request_t
    signature: request_t *request_fake_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 64
    functionName: pair_defs
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_defs(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: pair_defs_thin
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_defs_thin(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: pair_populate
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_populate(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: pair_populate_thin
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pair_populate_thin(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: test_cursor
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_cursor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: test_vp
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_vp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: test_vp_p
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_vp_p()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: test_vp_set
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_vp_set(_vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:133,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:138,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:139,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:139,1
    - Dst: tmpl_dcursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - vp_out
    - vars
    - request
    - ref
    argTypes:
    - fr_pair_t**
    - tmpl_dcursor_vars_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 11
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: _tmpl_setup_and_cursor_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - FR_SBUFF_IN_STR
    - tmpl_afrom_attr_substr
    - fr_strerror
    - tmpl_dcursor_init
    - TEST_CHECK
    linkageType: ''
    returnType: int
    signature: int _tmpl_setup_and_cursor_init(fr_pair_t **vp_out, tmpl_dcursor_vars_t
      *vars, request_t *request, char const *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _vp_out
    - ','
    - _ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: tmpl_setup_and_cursor_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_setup_and_cursor_init(_vp_out, _ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_afrom_attr_substr
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:162,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:167,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:168,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:168,1
    - Dst: tmpl_dcursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - vp_out
    - vars
    - request
    - ref
    argTypes:
    - fr_pair_t**
    - tmpl_dcursor_vars_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 11
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: _tmpl_setup_and_cursor_build_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - FR_SBUFF_IN_STR
    - tmpl_afrom_attr_substr
    - fr_strerror
    - tmpl_dcursor_build_init
    - TEST_CHECK
    linkageType: ''
    returnType: int
    signature: int _tmpl_setup_and_cursor_build_init(fr_pair_t **vp_out, tmpl_dcursor_vars_t
      *vars, request_t *request, char const *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _vp_out
    - ','
    - _ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: tmpl_setup_and_cursor_build_init
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmpl_setup_and_cursor_build_init(_vp_out, _ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:206,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:209,1
    - Dst: debug_attr_list
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:210,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:211,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - list
    - indent
    argTypes:
    - fr_pair_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: debug_attr_list
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 4
    functionsReached:
    - debug_attr_list
    - fr_pair_list_next
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void debug_attr_list(fr_pair_list_t *list, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:225,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:227,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:228,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:228,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:229,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: test_level_1_one
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_one(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:240,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:242,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:243,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:243,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:244,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: test_level_1_one_second
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_one_second(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:255,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:257,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:258,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:258,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:259,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: test_level_1_one_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_one_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:270,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:272,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:273,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:273,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:274,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: test_level_1_one_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_one_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:285,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:287,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:288,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:288,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:289,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: test_level_1_one_last
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_one_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:300,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:301,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:303,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:304,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:305,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:305,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:306,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 309
    functionName: test_level_1_two
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_two(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:317,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:318,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:320,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:321,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:322,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:322,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:323,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 326
    functionName: test_level_1_two_second
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_two_second(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:334,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:335,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:337,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:338,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:339,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:339,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:340,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 343
    functionName: test_level_1_two_third
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_two_third(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:351,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:352,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:354,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:355,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:356,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:356,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:358,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:358,1
    - Dst: test_vp_set
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:360,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:360,1
    - Dst: test_cursor
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:360,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:361,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: test_level_1_two_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - fr_dcursor_next
    - test_vp_set
    - tmpl_setup_and_cursor_init
    - test_cursor
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_two_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:372,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:373,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:375,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:376,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:377,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:377,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:378,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 381
    functionName: test_level_1_two_last
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_two_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:389,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:390,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:392,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:393,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:394,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:394,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:395,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:395,1
    - Dst: test_vp_set
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:397,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:397,1
    - Dst: test_cursor
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:397,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:398,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 401
    functionName: test_level_1_two_count
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - fr_dcursor_next
    - test_vp_set
    - tmpl_setup_and_cursor_init
    - test_cursor
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_1_two_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:409,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:411,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:412,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:412,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:413,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: test_level_2_one
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_one(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:424,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:426,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:427,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:427,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:428,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: test_level_2_one_second
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_one_second(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:439,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:441,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:442,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:442,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:443,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 446
    functionName: test_level_2_one_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_one_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:454,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:456,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:457,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:457,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:458,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 461
    functionName: test_level_2_one_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_one_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:469,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:470,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:472,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:473,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:474,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:474,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:475,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 478
    functionName: test_level_2_two
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_two(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:486,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:487,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:489,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:490,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:491,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:491,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:492,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 495
    functionName: test_level_2_two_second
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_two_second(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:503,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:504,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:506,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:507,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:508,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:508,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:509,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:509,1
    - Dst: test_vp_set
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:511,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:511,1
    - Dst: test_cursor
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:511,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:512,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: test_level_2_two_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - fr_dcursor_next
    - test_vp_set
    - tmpl_setup_and_cursor_init
    - test_cursor
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_two_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:523,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:524,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:526,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:527,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:528,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:528,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:529,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: test_level_2_two_last
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_two_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:540,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:541,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:543,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:544,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:545,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:545,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:546,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 549
    functionName: test_level_2_two_missing
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_two_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:557,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:559,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:560,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:560,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:561,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: test_level_3_one
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_one(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:572,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:574,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:575,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:575,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:576,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 579
    functionName: test_level_3_one_second
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_one_second(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:587,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:589,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:590,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:590,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:591,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 594
    functionName: test_level_3_one_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_one_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:599,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:600,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:602,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:603,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:604,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:604,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:605,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 608
    functionName: test_level_3_two
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_two(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:613,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:614,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:616,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:617,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:618,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:618,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:619,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:619,1
    - Dst: test_vp_set
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:621,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:621,1
    - Dst: test_cursor
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:621,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:622,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 625
    functionName: test_level_3_two_all
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - fr_dcursor_next
    - test_vp_set
    - tmpl_setup_and_cursor_init
    - test_cursor
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_two_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:630,1
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:631,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:633,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:634,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:635,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:635,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:636,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 639
    functionName: test_level_3_two_last
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - pair_populate
    - tmpl_setup_and_cursor_init
    - test_vp
    - TEST_CHECK_PAIR
    - pair_defs
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_two_last(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:644,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:647,1
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:648,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:649,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:652,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:652,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:653,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 656
    functionName: test_level_1_build
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR_NEQ
    - test_vp_p
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - pair_defs
    - pair_populate
    linkageType: ''
    returnType: void
    signature: void test_level_1_build(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:661,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:664,1
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:665,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:666,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:669,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:669,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:670,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 673
    functionName: test_level_2_build_leaf
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR_NEQ
    - test_vp_p
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - pair_defs
    - pair_populate
    linkageType: ''
    returnType: void
    signature: void test_level_2_build_leaf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:680,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:681,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:684,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:684,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:685,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 688
    functionName: test_level_2_build_intermediate
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR_NEQ
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_build_intermediate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs_thin
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:693,1
    - Dst: pair_defs_thin
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:694,1
    - Dst: pair_populate_thin
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:697,1
    - Dst: pair_populate_thin
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:698,1
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:699,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:700,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:702,1
    - Dst: test_cursor
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:702,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:703,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:704,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:707,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:707,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:708,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:708,1
    - Dst: test_vp_set
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:709,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:709,1
    - Dst: test_cursor
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:709,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:710,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 713
    functionName: test_level_2_build_multi
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR
    - fr_dcursor_next
    - test_vp_set
    - TEST_CHECK_PAIR_NEQ
    - pair_defs_thin
    - pair_populate_thin
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - test_cursor
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_2_build_multi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:718,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:721,1
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:722,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:723,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:726,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:726,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:727,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 730
    functionName: test_level_3_build_leaf
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR_NEQ
    - test_vp_p
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - pair_defs
    - pair_populate
    linkageType: ''
    returnType: void
    signature: void test_level_3_build_leaf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:737,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:738,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:741,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:741,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:742,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 745
    functionName: test_level_3_build_entire
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR_NEQ
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_build_entire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pair_defs
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:750,1
    - Dst: pair_defs_thin
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:751,1
    - Dst: pair_populate
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:754,1
    - Dst: pair_populate_thin
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:755,1
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:756,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:757,1
    - Dst: TEST_CHECK_PAIR_NEQ
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:758,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:761,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:761,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:762,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 765
    functionName: test_level_3_build_partial
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_PAIR_NEQ
    - pair_defs_thin
    - pair_populate_thin
    - test_vp_p
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - pair_defs
    - pair_populate
    linkageType: ''
    returnType: void
    signature: void test_level_3_build_partial(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:772,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:773,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:776,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:776,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:777,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 780
    functionName: test_level_3_build_invalid1
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_build_invalid1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tmpl_setup_and_cursor_build_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:787,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:788,1
    - Dst: tmpl_setup_and_cursor_init
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:791,1
    - Dst: test_vp_p
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:791,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:792,1
    - Dst: test_vp
      Src: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 795
    functionName: test_level_3_build_invalid2
    functionSourceFile: /src/freeradius-server/src/lib/server/tmpl_dcursor_tests.c
    functionUses: 0
    functionsReached:
    - tmpl_setup_and_cursor_init
    - test_vp
    - tmpl_setup_and_cursor_build_init
    - TEST_CHECK_PAIR
    - test_vp_p
    linkageType: ''
    returnType: void
    signature: void test_level_3_build_invalid2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: IDENT_ANY_CMP
    functionSourceFile: /src/freeradius-server/src/lib/server/section.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDENT_ANY_CMP(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: NULL_CMP
    functionSourceFile: /src/freeradius-server/src/lib/server/section.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_CMP(_a, _b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/section.c:57,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/section.c:62,1
    - Dst: IDENT_ANY_CMP
      Src: /src/freeradius-server/src/lib/server/section.c:74,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/section.c:77,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/section.c:78,1
    - Dst: NULL_CMP
      Src: /src/freeradius-server/src/lib/server/section.c:87,1
    - Dst: IDENT_ANY_CMP
      Src: /src/freeradius-server/src/lib/server/section.c:93,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/server/section.c:96,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/server/section.c:96,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 97
    functionName: section_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/server/section.c
    functionUses: 4
    functionsReached:
    - CMP
    - fr_assert
    - strcmp
    - IDENT_ANY_CMP
    - NULL_CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t section_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ci
    - ','
    - _iter
    - ','
    - _prev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: cf_item_foreach_next
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_foreach_next(_ci, _iter, _prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ci
    - ','
    - _iter
    - ','
    - _prev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: cf_item_foreach_prev
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cf_item_foreach_prev(_ci, _iter, _prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/server/cf_priv.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CONF_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: cf_item_has_no_children
    functionSourceFile: /src/freeradius-server/src/lib/server/cf_priv.h
    functionUses: 3
    functionsReached:
    - fr_dlist_empty
    linkageType: ''
    returnType: bool
    signature: bool cf_item_has_no_children(CONF_ITEM const *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/server/request.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: _state_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    linkageType: ''
    returnType: int
    signature: int _state_ctx_free(fr_pair_t *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/request.c:76,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/request.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: request_log_init_orphan
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - memset
    - talloc_zero
    linkageType: ''
    returnType: void
    signature: void request_log_init_orphan(request_t *request)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request.c:99,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request.c:117,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/request.c:142,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/request.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - request
    - log_dst
    - lvl
    argTypes:
    - request_t*
    - fr_log_t*
    - fr_log_lvl_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 152
    functionName: request_log_prepend
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 4
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void request_log_prepend(request_t *request, fr_log_t *log_dst, fr_log_lvl_t
      lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/request.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - child
    - parent
    argTypes:
    - request_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: request_log_init_child
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void request_log_init_child(request_t *child, request_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_log_init_child
      Src: /src/freeradius-server/src/lib/server/request.c:167,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/server/request.c:173,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/request.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - child
    - parent
    argTypes:
    - request_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: request_log_init_detachable
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - request_log_init_child
    - talloc_zero
    - memcpy
    linkageType: ''
    returnType: void
    signature: void request_log_init_detachable(request_t *child, request_t const
      *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_data_talloc_add
      Src: /src/freeradius-server/src/lib/server/request.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - child
    - parent
    argTypes:
    - request_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: request_detachable_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - request_data_talloc_add
    linkageType: ''
    returnType: int
    signature: int request_detachable_init(request_t *child, request_t *parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/request.c:199,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/server/request.c:201,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/request.c:214,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request.c:216,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/server/request.c:220,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - child
    - parent
    argTypes:
    - request_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 227
    functionName: request_child_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_packet_alloc
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int request_child_init(request_t *child, request_t *parent)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:248,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/server/request.c:250,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:252,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/server/request.c:259,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/request.c:266,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/server/request.c:272,1
    - Dst: fr_dict_proto_dict
      Src: /src/freeradius-server/src/lib/server/request.c:282,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/request.c:296,1
    - Dst: unlang_interpret_stack_alloc
      Src: /src/freeradius-server/src/lib/server/request.c:296,1
    - Dst: request_data_list_init
      Src: /src/freeradius-server/src/lib/server/request.c:301,1
    - Dst: fr_pair_root_afrom_da
      Src: /src/freeradius-server/src/lib/server/request.c:312,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/server/request.c:313,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/server/request.c:322,1
    - Dst: list_init
      Src: /src/freeradius-server/src/lib/server/request.c:336,1
    - Dst: list_init
      Src: /src/freeradius-server/src/lib/server/request.c:337,1
    - Dst: list_init
      Src: /src/freeradius-server/src/lib/server/request.c:338,1
    - Dst: list_init
      Src: /src/freeradius-server/src/lib/server/request.c:339,1
    - Dst: list_init
      Src: /src/freeradius-server/src/lib/server/request.c:341,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/request.c:343,1
    - Dst: request_child_init
      Src: /src/freeradius-server/src/lib/server/request.c:354,1
    - Dst: request_detachable_init
      Src: /src/freeradius-server/src/lib/server/request.c:357,1
    - Dst: request_log_init_detachable
      Src: /src/freeradius-server/src/lib/server/request.c:358,1
    - Dst: request_log_init_child
      Src: /src/freeradius-server/src/lib/server/request.c:360,1
    - Dst: request_log_init_orphan
      Src: /src/freeradius-server/src/lib/server/request.c:363,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/server/request.c:369,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 5
    argNames:
    - file
    - line
    - request
    - type
    - args
    argTypes:
    - char*
    - int
    - request_t*
    - request_type_t
    - request_init_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 372
    functionName: _request_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 7
    functionsReached:
    - request_data_list_init
    - memcpy
    - fr_dlist_entry_init
    - fr_cond_assert_msg
    - request_detachable_init
    - list_init
    - request_log_init_detachable
    - MEM
    - unlikely
    - unlang_interpret_stack_alloc
    - fr_pair_root_afrom_da
    - request_child_init
    - fr_dict_proto_dict
    - talloc_set_destructor
    - request_log_init_child
    - fr_assert
    - fr_assert_fail
    - fr_dict_internal
    - request_log_init_orphan
    linkageType: ''
    returnType: int
    signature: "int _request_init(char const *file, int line,\n\t\t  request_t *request,
      request_type_t type,\n\t\t  request_init_args_t const *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ctx
    - ','
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: list_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 155
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_init(_ctx, _list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/request.c:385,1
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/server/request.c:385,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/request.c:390,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/server/request.c:390,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/server/request.c:396,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/server/request.c:401,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/server/request.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 415
    functionName: request_slab_deinit
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 2
    functionsReached:
    - TALLOC_FREE
    - RDEBUG3
    - fr_assert_msg
    - fr_heap_entry_inserted
    - memset
    - fr_timer_armed
    linkageType: ''
    returnType: int
    signature: int request_slab_deinit(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/request.c:430,1
    - Dst: talloc_pooled_object
      Src: /src/freeradius-server/src/lib/server/request.c:430,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 436
    functionName: request_alloc_pool
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - MEM
    - talloc_pooled_object
    linkageType: ''
    returnType: request_t
    signature: request_t *request_alloc_pool(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG4
      Src: /src/freeradius-server/src/lib/server/request.c:440,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/server/request.c:446,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:466,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/server/request.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 476
    functionName: _request_local_free
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - RDEBUG4
    - talloc_free_children
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _request_local_free(request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_alloc_pool
      Src: /src/freeradius-server/src/lib/server/request.c:489,1
    - Dst: _request_init
      Src: /src/freeradius-server/src/lib/server/request.c:490,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/server/request.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - ctx
    - type
    - args
    argTypes:
    - char*
    - int
    - TALLOC_CTX*
    - request_type_t
    - request_init_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: _request_local_alloc
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - request_alloc_pool
    - talloc_set_destructor
    - _request_init
    linkageType: ''
    returnType: request_t
    signature: "request_t *_request_local_alloc(char const *file, int line, TALLOC_CTX
      *ctx,\n\t\t\t\trequest_type_t type, request_init_args_t const *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:515,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:516,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/server/request.c:518,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/server/request.c:524,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/server/request.c:524,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/server/request.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - request
    - new_state
    argTypes:
    - request_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 531
    functionName: request_state_replace
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 4
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_append
    - fr_pair_remove
    - fr_assert
    - MEM
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *request_state_replace(request_t *request, fr_pair_t *new_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: request_is_detached
      Src: /src/freeradius-server/src/lib/server/request.c:549,1
    - Dst: request_is_detachable
      Src: /src/freeradius-server/src/lib/server/request.c:551,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/server/request.c:552,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/server/request.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - child
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 574
    functionName: request_detach
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 8
    functionsReached:
    - request_data_get
    - request_is_detached
    - request_is_detachable
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int request_detach(request_t *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/request.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: _request_global_free
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _request_global_free(UNUSED void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/server/request.c:584,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/request.c:585,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/server/request.c:588,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/server/request.c:589,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/server/request.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 594
    functionName: _request_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_autoload
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int _request_global_init(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/server/request.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: request_global_init
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 9
    functionsReached:
    - fr_atexit_global_once_ret
    linkageType: ''
    returnType: int
    signature: int request_global_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/request.c:612,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request.c:615,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/lib/server/request.c:617,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/lib/server/request.c:618,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/request.c:621,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/server/request.c:623,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/server/request.c:624,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/request.c:644,1
    - Dst: PACKET_VERIFY
      Src: /src/freeradius-server/src/lib/server/request.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 6
    argNames:
    - file
    - line
    - request
    - packet
    - list
    - type
    argTypes:
    - char*
    - int
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 651
    functionName: packet_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 3
    functionsReached:
    - PACKET_VERIFY
    - talloc_get_name
    - fr_fatal_assert_fail
    - fr_fatal_assert_msg
    - talloc_parent
    - fr_log_talloc_report
    linkageType: ''
    returnType: void
    signature: "void packet_verify(char const *file, int line,\n\t\t\t  request_t
      const *request, fr_packet_t const *packet, fr_pair_list_t *list, char const
      *type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/server/request.c:644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 648
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 7
    functionsReached:
    - fr_fatal_assert_fail
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/server/request.c:660,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/server/request.c:662,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:664,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request.c:666,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/server/request.c:667,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request.c:668,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/server/request.c:669,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request.c:670,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/server/request.c:671,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request.c:672,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request.c:676,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/server/request.c:678,1
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/server/request.c:678,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/server/request.c:680,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request.c:680,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/server/request.c:684,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/server/request.c:685,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:687,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:688,1
    - Dst: packet_verify
      Src: /src/freeradius-server/src/lib/server/request.c:691,1
    - Dst: packet_verify
      Src: /src/freeradius-server/src/lib/server/request.c:694,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request.c:698,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:699,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request.c:699,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/server/request.c:702,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/server/request.c:703,1
    - Dst: request_data_persistable
      Src: /src/freeradius-server/src/lib/server/request.c:705,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:706,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:707,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request.c:707,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/server/request.c:709,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/server/request.c:709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - file
    - line
    - request
    argTypes:
    - char*
    - int
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 712
    functionName: request_verify
    functionSourceFile: /src/freeradius-server/src/lib/server/request.c
    functionUses: 1
    functionsReached:
    - talloc_null_ctx
    - packet_verify
    - fr_dlist_next
    - talloc_get_type_abort
    - talloc_get_name
    - fr_assert
    - request_data_persistable
    - fr_assert_msg
    - talloc_get_type_abort_const
    - fr_pair_list_verify
    - fr_fatal_assert_msg
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void request_verify(char const *file, int line, request_t const *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: LSAN_DISABLE
    functionSourceFile: /src/freeradius-server/src/lib/util/lsan.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSAN_DISABLE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _start
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ASAN_POISON_MEMORY_REGION
    functionSourceFile: /src/freeradius-server/src/lib/util/lsan.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASAN_POISON_MEMORY_REGION(_start, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: LSAN_DISABLE
    functionSourceFile: /src/freeradius-server/src/lib/util/lsan.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSAN_DISABLE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: LSAN_DISABLE
    functionSourceFile: /src/freeradius-server/src/lib/util/lsan.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSAN_DISABLE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_talloc_init
      Src: /src/freeradius-server/src/lib/util/pair.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: fr_pair_list_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 61
    functionsReached:
    - fr_pair_order_list_talloc_init
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_init(fr_pair_list_t *list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_report_depth_cb
      Src: /src/freeradius-server/src/lib/util/pair.c:72,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:81,1
    - Dst: fr_pair_order_list_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:81,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/util/pair.c:88,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/pair.c:90,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:95,1
    - Dst: memset_explicit
      Src: /src/freeradius-server/src/lib/util/pair.c:96,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:100,1
    - Dst: memset_explicit
      Src: /src/freeradius-server/src/lib/util/pair.c:101,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/pair.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 110
    functionName: _fr_pair_free
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_parent
    - likely
    - memset
    - fr_assert
    - memset_explicit
    - fr_pair_list_free
    - talloc_report_depth_cb
    linkageType: ''
    returnType: int
    signature: int _fr_pair_free(fr_pair_t *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/pair.c:123,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:124,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: fr_pair_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - unlikely
    - fr_pair_list_init
    - talloc
    linkageType: ''
    returnType: fr_pair_list_t
    signature: fr_pair_list_t *fr_pair_list_alloc(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_entry_init
      Src: /src/freeradius-server/src/lib/util/pair.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: pair_init_null
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_entry_init
    linkageType: ''
    returnType: void
    signature: void pair_init_null(fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/pair.c:151,1
    - Dst: pair_init_null
      Src: /src/freeradius-server/src/lib/util/pair.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: fr_pair_init_null
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - memset
    - pair_init_null
    linkageType: ''
    returnType: void
    signature: void fr_pair_init_null(fr_pair_t *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/pair.c:173,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:175,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/pair.c:178,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:180,1
    - Dst: pair_init_null
      Src: /src/freeradius-server/src/lib/util/pair.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: fr_pair_alloc_null
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - fr_strerror_printf
    - talloc_zero
    - pair_init_null
    - PAIR_ALLOCED
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_alloc_null(TALLOC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/freeradius-server/src/lib/util/pair.c:197,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:197,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/pair.c:198,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/pair.c:209,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:212,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:212,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/pair.c:217,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair.c:226,1
    - Dst: fr_pair_order_list_talloc_init_children
      Src: /src/freeradius-server/src/lib/util/pair.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - vp
    - da
    argTypes:
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 230
    functionName: pair_init_from_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_type_is_leaf
    - fr_type_is_structural
    - likely
    - fr_assert
    - fr_pair_order_list_talloc_init_children
    - memset
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void pair_init_from_da(fr_pair_t *vp, fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair.c:254,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/pair.c:259,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:260,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair.c:261,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:265,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair.c:266,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:267,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:271,1
    - Dst: pair_init_from_da
      Src: /src/freeradius-server/src/lib/util/pair.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 275
    functionName: fr_pair_root_afrom_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_free
    - pair_init_from_da
    - talloc_zero
    - PAIR_ALLOCED
    - fr_strerror_const
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_root_afrom_da(TALLOC_CTX *ctx, fr_dict_attr_t const
      *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_alloc_null
      Src: /src/freeradius-server/src/lib/util/pair.c:294,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair.c:297,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:308,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:310,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:316,1
    - Dst: pair_init_from_da
      Src: /src/freeradius-server/src/lib/util/pair.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 320
    functionName: fr_pair_afrom_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 63
    functionsReached:
    - fr_dict_attr_unknown_copy
    - talloc_free
    - pair_init_from_da
    - PAIR_ALLOCED
    - fr_pair_alloc_null
    - fr_strerror_const
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_afrom_da(TALLOC_CTX *ctx, fr_dict_attr_t const *da)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:337,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/pair.c:339,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:341,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:341,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:341,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/pair.c:341,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/pair.c:343,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/lib/util/pair.c:352,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/pair.c:358,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:360,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - list
    - vp
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: fr_pair_reinit_from_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - fr_value_box_init
    - fr_pair_list_num_elements
    - fr_type_is_leaf
    - fr_value_box_cast_in_place
    - fr_dict_attr_unknown_free
    - fr_type_is_structural
    - fr_pair_append
    - fr_pair_remove
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_pair_reinit_from_da(fr_pair_list_t *list, fr_pair_t *vp, fr_dict_attr_t
      const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_alloc_null
      Src: /src/freeradius-server/src/lib/util/pair.c:389,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:390,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/pair.c:392,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/util/pair.c:396,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:398,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:404,1
    - Dst: pair_init_from_da
      Src: /src/freeradius-server/src/lib/util/pair.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - parent
    - attr
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 408
    functionName: fr_pair_afrom_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - unlikely
    - talloc_free
    - PAIR_ALLOCED
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_pair_alloc_null
    - pair_init_from_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_afrom_child_num(TALLOC_CTX *ctx, fr_dict_attr_t
      const *parent, unsigned int attr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:435,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:436,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:440,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:447,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:449,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:450,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:455,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:455,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:461,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - list
    - da
    - start
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 464
    functionName: fr_pair_afrom_da_depth_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_append_by_da
    - fr_type_is_structural
    - fr_proto_da_stack_build
    - fr_assert
    - PAIR_ALLOCED
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_afrom_da_depth_nested(TALLOC_CTX *ctx, fr_pair_list_t
      *list, fr_dict_attr_t const *da, unsigned int start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:485,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:486,1
    - Dst: fr_pair_afrom_da_depth_nested
      Src: /src/freeradius-server/src/lib/util/pair.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - list
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 491
    functionName: fr_pair_afrom_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - PAIR_ALLOCED
    - fr_pair_afrom_da_depth_nested
    - fr_pair_append_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_afrom_da_nested(TALLOC_CTX *ctx, fr_pair_list_t
      *list, fr_dict_attr_t const *da)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:507,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair.c:509,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:513,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:518,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:519,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:521,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:526,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - vp
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 530
    functionName: fr_pair_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 16
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - talloc_free
    - fr_type_is_structural
    - PAIR_VERIFY
    - fr_value_box_copy
    - PAIR_ALLOCED
    - fr_pair_list_copy
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_copy(TALLOC_CTX *ctx, fr_pair_t const *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/pair.c:541,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:542,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - vp
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 548
    functionName: fr_pair_steal
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_steal
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int fr_pair_steal(TALLOC_CTX *ctx, fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:564,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:565,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:569,1
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/lib/util/pair.c:569,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:571,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - list_ctx
    - list
    - vp
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 574
    functionName: fr_pair_steal_append
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_pair_order_list_in_a_list
    - fr_strerror_printf
    - fr_pair_append
    - fr_pair_steal
    linkageType: ''
    returnType: int
    signature: int fr_pair_steal_append(TALLOC_CTX *list_ctx, fr_pair_list_t *list,
      fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:587,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:588,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:592,1
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/lib/util/pair.c:592,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:594,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/util/pair.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - list_ctx
    - list
    - vp
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 597
    functionName: fr_pair_steal_prepend
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_order_list_in_a_list
    - fr_strerror_printf
    - fr_pair_steal
    - fr_pair_prepend
    linkageType: ''
    returnType: int
    signature: int fr_pair_steal_prepend(TALLOC_CTX *list_ctx, fr_pair_list_t *list,
      fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:613,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:615,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:617,1
    - Dst: fr_dict_attr_unknown_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair.c:619,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:622,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:625,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/pair.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - vp
    - data
    - data_len
    argTypes:
    - fr_pair_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 628
    functionName: fr_pair_raw_afrom_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_cond_assert
    - fr_value_box_clear
    - fr_dict_attr_unknown_afrom_da
    - fr_assert
    - PAIR_VERIFY
    - fr_value_box_memdup
    linkageType: ''
    returnType: int
    signature: int fr_pair_raw_afrom_pair(fr_pair_t *vp, uint8_t const *data, size_t
      data_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/pair.c:645,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 651
    functionName: fr_pair_iter_next_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void *fr_pair_iter_next_by_da(fr_dcursor_t *cursor, void *current,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/pair.c:668,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:669,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 674
    functionName: fr_pair_iter_next_by_ancestor
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_common_parent
    - fr_dlist_next
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void *fr_pair_iter_next_by_ancestor(fr_dcursor_t *cursor, void *current,
      void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:689,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - list
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 694
    functionName: fr_pair_count_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 12
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_list_next
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_pair_count_by_da(fr_pair_list_t const *list, fr_dict_attr_t
      const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/pair.c:709,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:711,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:713,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - list
    - prev
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 718
    functionName: fr_pair_find_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 117
    functionsReached:
    - fr_pair_list_empty
    - PAIR_LIST_VERIFY
    - UNCONST
    - fr_pair_list_next
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_find_by_da(fr_pair_list_t const *list, fr_pair_t
      const *prev, fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/pair.c:733,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:735,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:737,1
    - Dst: fr_pair_list_prev
      Src: /src/freeradius-server/src/lib/util/pair.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - list
    - prev
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 742
    functionName: fr_pair_find_last_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_empty
    - PAIR_LIST_VERIFY
    - UNCONST
    - fr_pair_list_prev
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_find_last_by_da(fr_pair_list_t const *list, fr_pair_t
      const *prev, fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:759,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:761,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:763,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - list
    - da
    - idx
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 771
    functionName: fr_pair_find_by_da_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 17
    functionsReached:
    - fr_pair_list_empty
    - PAIR_LIST_VERIFY
    - fr_pair_list_next
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_find_by_da_idx(fr_pair_list_t const *list, fr_dict_attr_t
      const *da, unsigned int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:791,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:798,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:800,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:806,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/pair.c:808,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:821,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:829,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:860,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:861,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:867,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:868,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - list
    - prev
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 869
    functionName: fr_pair_find_by_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 25
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_parent_list
    - UNCONST
    - fr_proto_da_stack_build
    - fr_assert
    - fr_pair_list_parent
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_find_by_da_nested(fr_pair_list_t const *list, fr_pair_t
      const *prev, fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:887,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:889,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/pair.c:891,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - list
    - prev
    - parent
    - attr
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 895
    functionName: fr_pair_find_by_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - PAIR_LIST_VERIFY
    - fr_pair_find_by_da
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *fr_pair_find_by_child_num(fr_pair_list_t const *list, fr_pair_t
      const *prev,\n\t\t\t\t     fr_dict_attr_t const *parent, unsigned int attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:913,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:915,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/pair.c:917,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/lib/util/pair.c:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - list
    - parent
    - attr
    - idx
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 921
    functionName: fr_pair_find_by_child_num_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - PAIR_LIST_VERIFY
    - fr_pair_find_by_da_idx
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *fr_pair_find_by_child_num_idx(fr_pair_list_t const *list,\n\t\t\t\t\t
      fr_dict_attr_t const *parent, unsigned int attr, unsigned int idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 936
    functionName: fr_pair_children
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_type_is_structural
    linkageType: ''
    returnType: fr_pair_list_t
    signature: fr_pair_list_t *fr_pair_children(fr_pair_t *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_TLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/pair.c:943,1
    - Dst: fr_pair_order_list_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 951
    functionName: fr_pair_parent_list
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - FR_TLIST_HEAD
    - fr_pair_order_list_parent
    linkageType: ''
    returnType: fr_pair_list_t
    signature: fr_pair_list_t *fr_pair_parent_list(fr_pair_t const *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 965
    functionName: fr_pair_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 5
    functionsReached:
    - fr_pair_parent_list
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_parent(fr_pair_t const *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: fr_pair_list_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_list_parent(fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_head_from_dlist
      Src: /src/freeradius-server/src/lib/util/pair.c:992,1
    - Dst: fr_pair_order_list_set_head
      Src: /src/freeradius-server/src/lib/util/pair.c:997,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cursor
    - to_insert
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: _pair_list_dcursor_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_tlist_head_from_dlist
    - fr_pair_order_list_set_head
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int _pair_list_dcursor_insert(fr_dcursor_t *cursor, void *to_insert,
      UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1015,1
    - Dst: fr_tlist_head_from_dlist
      Src: /src/freeradius-server/src/lib/util/pair.c:1020,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1024,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:1024,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1027,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1028,1
    - Dst: fr_pair_order_list_set_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1034,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1036,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/pair.c:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - fr_dcursor_t *cursor
    - to_remove
    - uctx
    argTypes:
    - NDEBUG_UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1042
    functionName: _pair_list_dcursor_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_parent_list
    - fr_tlist_head_from_dlist
    - fr_assert
    - fr_pair_remove
    - PAIR_VERIFY
    - fr_pair_list_parent
    - fr_pair_order_list_set_head
    linkageType: ''
    returnType: int
    signature: int _pair_list_dcursor_remove(NDEBUG_UNUSED fr_dcursor_t *cursor, void
      *to_remove, UNUSED void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1061,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:1065,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1067,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:1067,1
    - Dst: fr_pair_list_iter_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:1069,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1081,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:1084,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:1091,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1092,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - list
    - vp
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1052
    functionDepth: 3
    functionLinenumber: 1052
    functionLinenumberEnd: 1102
    functionName: fr_pair_list_iter_leaf
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_parent_list
    - fr_type_is_leaf
    - fr_pair_list_next
    - fr_type_is_structural
    - fr_assert
    - fr_pair_list_head
    - fr_pair_list_iter_leaf
    - fr_pair_parent
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_list_iter_leaf(fr_pair_list_t *list, fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1121,1
    - Dst: fr_pair_order_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cursor
    - list
    - iter
    - uctx
    - is_const
    argTypes:
    - fr_dcursor_t*
    - fr_pair_list_t*
    - fr_dcursor_iter_t
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1124
    functionName: _fr_pair_dcursor_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_dlist_head
    - _fr_dcursor_init
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *_fr_pair_dcursor_iter_init(fr_dcursor_t *cursor, fr_pair_list_t
      const *list,\n\t\t\t\t      fr_dcursor_iter_t iter, void const *uctx,\n\t\t\t\t
      \     bool is_const)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1140,1
    - Dst: fr_pair_order_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cursor
    - list
    - is_const
    argTypes:
    - fr_dcursor_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1143
    functionName: _fr_pair_dcursor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_dlist_head
    - _fr_dcursor_init
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *_fr_pair_dcursor_init(fr_dcursor_t *cursor, fr_pair_list_t
      const *list,\n\t\t\t\t bool is_const)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1159,1
    - Dst: fr_pair_order_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cursor
    - list
    - da
    - is_const
    argTypes:
    - fr_dcursor_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1162
    functionName: _fr_pair_dcursor_by_da_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_dlist_head
    - _fr_dcursor_init
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *_fr_pair_dcursor_by_da_init(fr_dcursor_t *cursor,\n\t\t\t\t
      \       fr_pair_list_t const *list, fr_dict_attr_t const *da,\n\t\t\t\t        bool
      is_const)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1180,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:1180,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1186,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1188,1
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1192,1
    - Dst: fr_pair_order_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1192,1
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1197,1
    - Dst: fr_pair_order_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - cursor
    - list
    - da
    - is_const
    argTypes:
    - fr_dcursor_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1174
    functionDepth: 2
    functionLinenumber: 1174
    functionLinenumberEnd: 1200
    functionName: _fr_pair_dcursor_by_ancestor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_type_is_structural
    - fr_pair_order_list_dlist_head
    - fr_assert
    - _fr_dcursor_init
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *_fr_pair_dcursor_by_ancestor_init(fr_dcursor_t *cursor,\n\t\t\t\t\t
      \    fr_pair_list_t const *list, fr_dict_attr_t const *da,\n\t\t\t\t\t     bool
      is_const)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1220,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/pair.c:1223,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1224,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1229
    functionName: _fr_pair_iter_next_value
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - fr_type_is_leaf
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void *_fr_pair_iter_next_value(fr_dcursor_t *cursor, void *current,
      UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1262
    functionName: fr_pair_dcursor_value_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - _fr_dcursor_init
    linkageType: ''
    returnType: fr_value_box_t
    signature: fr_value_box_t *fr_pair_dcursor_value_init(fr_dcursor_t *cursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/pair.c:1280,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/pair.c:1285,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1287,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:1289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - fr_dcursor_t *cursor
    - current
    - uctx
    argTypes:
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1293
    functionName: _fr_pair_iter_next_dcursor_value
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_type_is_leaf
    - PAIR_VERIFY
    - fr_dcursor_next
    linkageType: ''
    returnType: void
    signature: void *_fr_pair_iter_next_dcursor_value(UNUSED fr_dcursor_t *cursor,
      void *current, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cursor
    - parent
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1309
    functionName: fr_pair_dcursor_nested_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - _fr_dcursor_init
    linkageType: ''
    returnType: fr_value_box_t
    signature: fr_value_box_t *fr_pair_dcursor_nested_init(fr_dcursor_t *cursor, fr_dcursor_t
      *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1323,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1326,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1326,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1330,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1331,1
    - Dst: fr_pair_order_list_insert_head
      Src: /src/freeradius-server/src/lib/util/pair.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - list
    - to_add
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1338
    functionName: fr_pair_prepend
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - fr_pair_order_list_insert_head
    - fr_pair_order_list_in_a_list
    - fr_strerror_printf
    - fr_assert
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_prepend(fr_pair_list_t *list, fr_pair_t *to_add)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1355,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1355,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1359,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1360,1
    - Dst: fr_pair_order_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:1364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - list
    - to_add
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1367
    functionName: fr_pair_append
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 59
    functionsReached:
    - fr_pair_order_list_in_a_list
    - fr_pair_order_list_insert_tail
    - fr_assert
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int fr_pair_append(fr_pair_list_t *list, fr_pair_t *to_add)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1380,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1383,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1383,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1387,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1388,1
    - Dst: fr_pair_order_list_in_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1392,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1393,1
    - Dst: fr_pair_order_list_insert_after
      Src: /src/freeradius-server/src/lib/util/pair.c:1397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - list
    - pos
    - to_add
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1400
    functionName: fr_pair_insert_after
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_in_a_list
    - fr_strerror_printf
    - fr_pair_order_list_in_list
    - fr_assert
    - PAIR_VERIFY
    - fr_pair_order_list_insert_after
    linkageType: ''
    returnType: int
    signature: int fr_pair_insert_after(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t
      *to_add)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1413,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1416,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1416,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1417,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1417,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1421,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1422,1
    - Dst: fr_pair_order_list_in_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1426,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1427,1
    - Dst: fr_pair_order_list_insert_before
      Src: /src/freeradius-server/src/lib/util/pair.c:1431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - list
    - pos
    - to_add
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1434
    functionName: fr_pair_insert_before
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_insert_before
    - fr_pair_order_list_in_a_list
    - fr_strerror_printf
    - fr_pair_order_list_in_list
    - fr_assert
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_insert_before(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t
      *to_add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:1446,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1447,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1450,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1450,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1451,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1451,1
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/pair.c:1455,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/pair.c:1456,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - list
    - to_replace
    - vp
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1458
    functionName: fr_pair_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_insert_after
    - fr_pair_order_list_in_a_list
    - talloc_free
    - fr_pair_remove
    - fr_assert
    - PAIR_VERIFY
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_replace(fr_pair_list_t *list, fr_pair_t *to_replace, fr_pair_t
      *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1475,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:1476,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:1481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - out
    - list
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t**
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1485
    functionName: fr_pair_append_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 25
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_append
    - unlikely
    linkageType: ''
    returnType: int
    signature: int fr_pair_append_by_da(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_t
      *list, fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1502,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:1503,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/util/pair.c:1508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - out
    - list
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t**
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1498
    functionDepth: 3
    functionLinenumber: 1498
    functionLinenumberEnd: 1512
    functionName: fr_pair_prepend_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_prepend
    - unlikely
    linkageType: ''
    returnType: int
    signature: int fr_pair_prepend_by_da(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_t
      *list, fr_dict_attr_t const *da)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1538,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1540,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1548,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1553,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1559,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:1563,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - out
    - list
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t**
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1528
    functionDepth: 4
    functionLinenumber: 1528
    functionLinenumberEnd: 1582
    functionName: fr_pair_append_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_append_by_da
    - fr_proto_da_stack_build
    - fr_assert
    - PAIR_ALLOCED
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int fr_pair_append_by_da_parent(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_t
      *list, fr_dict_attr_t const *da)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1615,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1621,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1624,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/pair.c:1641,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:1642,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair.c:1644,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1656,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1658,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1663,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair.c:1667,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - parent
    - out
    - da
    argTypes:
    - fr_pair_t*
    - fr_pair_t**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1602
    functionDepth: 4
    functionLinenumber: 1602
    functionLinenumberEnd: 1686
    functionName: fr_pair_update_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_append_by_da
    - fr_type_is_group
    - fr_strerror_printf
    - fr_proto_da_stack_build
    - fr_assert
    - PAIR_ALLOCED
    - fr_type_to_str
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: "int fr_pair_update_by_da_parent(fr_pair_t *parent, fr_pair_t **out,\n\t\t\t\tfr_dict_attr_t
      const *da)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/util/pair.c:1702,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/pair.c:1705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - list
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1710
    functionName: fr_pair_delete_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 8
    functionsReached:
    - fr_pair_delete
    - fr_pair_immutable
    linkageType: ''
    returnType: int
    signature: int fr_pair_delete_by_da(fr_pair_list_t *list, fr_dict_attr_t const
      *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/util/pair.c:1702,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/pair.c:1705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1707
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 7
    functionsReached:
    - fr_pair_delete
    - fr_pair_immutable
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1731,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:1736,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1741,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:1752,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1760,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/pair.c:1768,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1770,1
    - Dst: fr_pair_list_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:1798,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair.c:1799,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1802,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - list
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1720
    functionDepth: 2
    functionLinenumber: 1720
    functionLinenumberEnd: 1803
    functionName: fr_pair_delete_by_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_parent_list
    - fr_pair_delete_by_da
    - fr_pair_delete
    - fr_proto_da_stack_build
    - fr_assert
    - fr_pair_list_parent
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int fr_pair_delete_by_da_nested(fr_pair_list_t *list, fr_dict_attr_t
      const *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/pair.c:1819,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:1822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - list
    - parent
    - attr
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1815
    functionDepth: 2
    functionLinenumber: 1815
    functionLinenumberEnd: 1823
    functionName: fr_pair_delete_by_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_delete_by_da
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: int
    signature: int fr_pair_delete_by_child_num(fr_pair_list_t *list, fr_dict_attr_t
      const *parent, unsigned int attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/pair.c:1835,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - vp
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1837
    functionName: fr_pair_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 17
    functionsReached:
    - fr_pair_remove
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_pair_delete(fr_pair_list_t *list, fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1856,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1857,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1860
    functionName: fr_pair_cmp_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - PAIR_VERIFY
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_pair_cmp_by_da(void const *a, void const *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1879,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1880,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1882,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1883,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:1892,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:1901,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:1907,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:1913,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1871
    functionDepth: 1
    functionLinenumber: 1871
    functionLinenumberEnd: 1914
    functionName: pair_cmp_by_num
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t pair_cmp_by_num(void const *a, void const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pair_cmp_by_num
      Src: /src/freeradius-server/src/lib/util/pair.c:1943,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1945,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/pair.c:1946,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:1949,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1928
    functionDepth: 2
    functionLinenumber: 1928
    functionLinenumberEnd: 1959
    functionName: fr_pair_cmp_by_parent_num
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - pair_cmp_by_num
    - fr_proto_da_stack_build
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_pair_cmp_by_parent_num(void const *a, void const *b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1980,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:1981,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2006,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/util/pair.c:2008,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/pair.c:2008,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/pair.c:2011,1
    - Dst: fr_pair_aprint
      Src: /src/freeradius-server/src/lib/util/pair.c:2015,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2017,1
    - Dst: regex_exec
      Src: /src/freeradius-server/src/lib/util/pair.c:2024,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/pair.c:2024,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2025,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2026,1
    - Dst: fr_pair_cmp_op
      Src: /src/freeradius-server/src/lib/util/pair.c:2039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 1976
    functionDepth: 1
    functionLinenumber: 1976
    functionLinenumberEnd: 2040
    functionName: fr_pair_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - talloc_free
    - fr_cond_assert
    - regex_exec
    - fr_pair_aprint
    - fr_pair_cmp_op
    - PAIR_VERIFY
    - talloc_strlen
    - regex_compile
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_pair_cmp(fr_pair_t const *a, fr_pair_t const *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2058,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2058,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2060,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2060,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:2066,1
    - Dst: fr_pair_list_cmp
      Src: /src/freeradius-server/src/lib/util/pair.c:2071,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/pair.c:2076,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/pair.c:2085,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2086
    functionName: fr_pair_list_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_pair_list_next
    - CMP
    - fr_pair_list_cmp
    - fr_pair_list_head
    - fr_value_box_cmp
    linkageType: ''
    returnType: int
    signature: int fr_pair_list_cmp(fr_pair_list_t const *a, fr_pair_list_t const
      *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2101,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2105,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:2108,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:2113,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:2117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - failed
    argTypes:
    - fr_pair_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2120
    functionName: fr_pair_validate_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - fr_cond_assert
    - fr_strerror_printf
    - fr_strerror_clear
    linkageType: ''
    returnType: void
    signature: void fr_pair_validate_debug(fr_pair_t const *failed[2])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:2135,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:2135,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/pair.c:2143,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/pair.c:2144,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2146,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2147,1
    - Dst: ATTRIBUTE_EQ
      Src: /src/freeradius-server/src/lib/util/pair.c:2159,1
    - Dst: fr_pair_validate
      Src: /src/freeradius-server/src/lib/util/pair.c:2174,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/pair.c:2181,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2185,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2186,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 3
    argNames:
    - failed
    - filter
    - list
    argTypes:
    - fr_pair_t*[]
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2131
    functionDepth: 2
    functionLinenumber: 2131
    functionLinenumberEnd: 2197
    functionName: fr_pair_validate
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 5
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_validate
    - fr_pair_list_next
    - fr_pair_list_sort
    - fr_pair_list_head
    - ATTRIBUTE_EQ
    - fr_pair_cmp
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_validate(fr_pair_t const *failed[2], fr_pair_list_t *filter,
      fr_pair_list_t *list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:2212,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:2212,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/pair.c:2220,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/pair.c:2221,1
    - Dst: ATTRIBUTE_EQ
      Src: /src/freeradius-server/src/lib/util/pair.c:2227,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2232,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2242,1
    - Dst: ATTRIBUTE_EQ
      Src: /src/freeradius-server/src/lib/util/pair.c:2249,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2250,1
    - Dst: fr_pair_validate_relaxed
      Src: /src/freeradius-server/src/lib/util/pair.c:2253,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/pair.c:2260,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - failed
    - filter
    - list
    argTypes:
    - fr_pair_t*[]
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2274
    functionName: fr_pair_validate_relaxed
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_list_next
    - fr_pair_list_sort
    - fr_pair_list_head
    - fr_pair_validate_relaxed
    - ATTRIBUTE_EQ
    - fr_pair_cmp
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_validate_relaxed(fr_pair_t const *failed[2], fr_pair_list_t
      *filter, fr_pair_list_t *list)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ATTRIBUTE_EQ
      Src: /src/freeradius-server/src/lib/util/pair.c:2227,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2232,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2242,1
    - Dst: ATTRIBUTE_EQ
      Src: /src/freeradius-server/src/lib/util/pair.c:2249,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2250,1
    - Dst: fr_pair_validate_relaxed
      Src: /src/freeradius-server/src/lib/util/pair.c:2253,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/pair.c:2260,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2223
    functionDepth: 3
    functionLinenumber: 2223
    functionLinenumberEnd: 2271
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 7
    functionsReached:
    - fr_pair_list_next
    - fr_pair_list_head
    - ATTRIBUTE_EQ
    - fr_pair_validate_relaxed
    - fr_pair_cmp
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(filter, check)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:2285,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2287,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:2287,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/util/pair.c:2289,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:2290,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2296,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:2296,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/util/pair.c:2298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2283
    functionDepth: 1
    functionLinenumber: 2283
    functionLinenumberEnd: 2302
    functionName: fr_pair_immutable
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - fr_type_is_leaf
    - fr_pair_immutable
    - fr_type_is_structural
    - fr_assert
    - fr_pair_list_foreach
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_immutable(fr_pair_t const *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/lib/util/pair.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - list
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2307
    functionDepth: 2
    functionLinenumber: 2307
    functionLinenumberEnd: 2312
    functionName: fr_pair_list_steal
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_pair_steal
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_steal(TALLOC_CTX *ctx, fr_pair_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/lib/util/pair.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2309
    functionDepth: 2
    functionLinenumber: 2309
    functionLinenumberEnd: 2311
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 8
    functionsReached:
    - fr_pair_steal
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:2333,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2335,1
    - Dst: fr_pair_order_list_talloc_free_to_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2337,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - to
    - from
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2326
    functionDepth: 4
    functionLinenumber: 2326
    functionLinenumberEnd: 2346
    functionName: fr_pair_list_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 23
    functionsReached:
    - fr_pair_append
    - fr_pair_order_list_talloc_free_to_tail
    - fr_pair_copy
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: int
    signature: int fr_pair_list_copy(TALLOC_CTX *ctx, fr_pair_list_t *to, fr_pair_list_t
      const *from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:2333,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2335,1
    - Dst: fr_pair_order_list_talloc_free_to_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2337,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2331
    functionDepth: 4
    functionLinenumber: 2331
    functionLinenumberEnd: 2343
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 8
    functionsReached:
    - fr_pair_append
    - fr_pair_order_list_talloc_free_to_tail
    - fr_pair_copy
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(from, vp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2366,1
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:2370,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:2372,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2373,1
    - Dst: fr_pair_list_copy_to_box
      Src: /src/freeradius-server/src/lib/util/pair.c:2376,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2377,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2382,1
    - Dst: fr_value_box_list_talloc_free_to_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2385,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2388,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2388,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2389,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - dst
    - from
    argTypes:
    - fr_value_box_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2399
    functionName: fr_pair_list_copy_to_box
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - unlikely
    - talloc_free
    - fr_type_is_structural
    - fr_value_box_list_talloc_free_to_tail
    - fr_value_box_list_insert_tail
    - fr_assert
    - fr_value_box_alloc
    - fr_pair_list_copy_to_box
    - PAIR_VERIFY_WITH_LIST
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int fr_pair_list_copy_to_box(fr_value_box_t *dst, fr_pair_list_t *from)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:2370,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:2372,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2373,1
    - Dst: fr_pair_list_copy_to_box
      Src: /src/freeradius-server/src/lib/util/pair.c:2376,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2377,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2382,1
    - Dst: fr_value_box_list_talloc_free_to_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2385,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2388,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2388,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2389,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2368
    functionDepth: 2
    functionLinenumber: 2368
    functionLinenumberEnd: 2396
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 8
    functionsReached:
    - unlikely
    - talloc_free
    - fr_type_is_structural
    - fr_value_box_list_talloc_free_to_tail
    - fr_value_box_list_insert_tail
    - fr_value_box_alloc
    - fr_pair_list_copy_to_box
    - PAIR_VERIFY_WITH_LIST
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(from, vp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2424,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:2425,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2429,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2431,1
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:2432,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2437,1
    - Dst: fr_pair_order_list_talloc_free_to_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2439,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - to
    - from
    - da
    - count
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2416
    functionDepth: 4
    functionLinenumber: 2416
    functionLinenumberEnd: 2448
    functionName: fr_pair_list_copy_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - unlikely
    - fr_pair_order_list_talloc_free_to_tail
    - fr_pair_list_next
    - fr_strerror_printf
    - fr_pair_append
    - fr_pair_list_head
    - fr_pair_copy
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: int
    signature: "int fr_pair_list_copy_by_da(TALLOC_CTX *ctx, fr_pair_list_t *to,\n\t\t\t
      \   fr_pair_list_t const *from, fr_dict_attr_t const *da, unsigned int count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:2472,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:2477,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2481,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2484,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair.c:2489,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:2494,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2496,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2497,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2498,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2502,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2506,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - to
    - from
    - parent_da
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2509
    functionName: fr_pair_list_copy_by_ancestor
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_type_is_structural
    - fr_pair_copy
    - fr_dict_attr_common_parent
    - fr_pair_append
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int fr_pair_list_copy_by_ancestor(TALLOC_CTX *ctx, fr_pair_list_t
      *to,\n\t\t\t\t  fr_pair_list_t const *from, fr_dict_attr_t const *parent_da)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:2494,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2496,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2497,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2498,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2491
    functionDepth: 4
    functionLinenumber: 2491
    functionLinenumberEnd: 2504
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 8
    functionsReached:
    - unlikely
    - fr_dict_attr_common_parent
    - fr_pair_append
    - fr_pair_list_free
    - fr_pair_copy
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(from, vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair.c:2534,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:2536,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:2540,1
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:2541,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2543,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2544,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2545,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2549,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/pair.c:2552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - to
    - from
    - start
    - count
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_pair_list_t*
    - fr_pair_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2526
    functionDepth: 4
    functionLinenumber: 2526
    functionLinenumberEnd: 2555
    functionName: fr_pair_sublist_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_list_next
    - fr_pair_list_init
    - fr_pair_append
    - fr_pair_list_head
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_copy
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: int
    signature: "int fr_pair_sublist_copy(TALLOC_CTX *ctx, fr_pair_list_t *to,\n\t\t\t
      fr_pair_list_t const *from, fr_pair_t const *start, unsigned int count)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/pair.c:2567,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:2571,1
    - Dst: fr_pair_order_list_pop_tail
      Src: /src/freeradius-server/src/lib/util/pair.c:2573,1
    - Dst: fr_pair_value_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2574,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair.c:2575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2579
    functionName: fr_pair_value_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - fr_pair_list_empty
    - fr_value_box_clear_value
    - talloc_free
    - fr_pair_value_clear
    - fr_pair_order_list_pop_tail
    linkageType: ''
    returnType: void
    signature: void fr_pair_value_clear(fr_pair_t *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2593,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/pair.c:2595,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2596,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/pair.c:2596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2591
    functionDepth: 1
    functionLinenumber: 2591
    functionLinenumberEnd: 2603
    functionName: fr_pair_value_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - unlikely
    - fr_cond_assert
    - fr_value_box_clear_value
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_copy(fr_pair_t *dst, fr_pair_t *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:2629,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair.c:2630,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/pair.c:2641,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2645,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - vp
    - value
    - inlen
    - uerules
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - size_t
    - fr_sbuff_unescape_rules_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2617
    functionDepth: 1
    functionLinenumber: 2617
    functionLinenumberEnd: 2650
    functionName: fr_pair_value_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 17
    functionsReached:
    - fr_strerror_printf
    - fr_assert
    - PAIR_VERIFY
    - fr_type_to_str
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_pair_value_from_str(fr_pair_t *vp, char const *value, size_t
      inlen,\n\t\t\t   fr_sbuff_unescape_rules_t const *uerules, UNUSED bool tainted)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2667,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2669,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/pair.c:2670,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - vp
    - src
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2663
    functionDepth: 1
    functionLinenumber: 2663
    functionLinenumberEnd: 2676
    functionName: fr_pair_value_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 15
    functionsReached:
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    - fr_value_box_strdup
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_strdup(fr_pair_t *vp, char const *src, bool tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2689,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2691,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/util/pair.c:2692,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - vp
    - src
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2687
    functionDepth: 1
    functionLinenumber: 2687
    functionLinenumberEnd: 2697
    functionName: fr_pair_value_strdup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    - fr_value_box_strdup_shallow
    - fr_value_box_clear
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_strdup_shallow(fr_pair_t *vp, char const *src, bool
      tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2710,1
    - Dst: fr_value_box_strtrim
      Src: /src/freeradius-server/src/lib/util/pair.c:2712,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2718
    functionName: fr_pair_value_strtrim
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    - PAIR_VERIFY
    - fr_value_box_strtrim
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_strtrim(fr_pair_t *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2732,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2734,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/pair.c:2735,1
    - Dst: fr_value_box_vasprintf
      Src: /src/freeradius-server/src/lib/util/pair.c:2736,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/pair.c:2737,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - vp
    - fmt
    argTypes:
    - fr_pair_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2727
    functionDepth: 1
    functionLinenumber: 2727
    functionLinenumberEnd: 2744
    functionName: fr_pair_value_aprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    - fr_value_box_vasprintf
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_aprintf(fr_pair_t *vp, char const *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2763,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2765,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2766,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - vp
    - out
    - size
    - tainted
    argTypes:
    - fr_pair_t*
    - char**
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2772
    functionName: fr_pair_value_bstr_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - fr_value_box_bstr_alloc
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_bstr_alloc(fr_pair_t *vp, char **out, size_t size,
      bool tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2788,1
    - Dst: fr_value_box_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2790,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vp
    - out
    - size
    argTypes:
    - fr_pair_t*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2784
    functionDepth: 1
    functionLinenumber: 2784
    functionLinenumberEnd: 2796
    functionName: fr_pair_value_bstr_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_cond_assert
    - PAIR_VERIFY
    - fr_value_box_bstr_realloc
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_bstr_realloc(fr_pair_t *vp, char **out, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2816,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2818,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/pair.c:2819,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - vp
    - src
    - len
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2825
    functionName: fr_pair_value_bstrndup
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 19
    functionsReached:
    - fr_cond_assert
    - PAIR_VERIFY
    - fr_value_box_clear
    - fr_value_box_bstrndup
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_bstrndup(fr_pair_t *vp, char const *src, size_t len,
      bool tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2842,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2844,1
    - Dst: fr_value_box_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/util/pair.c:2845,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - vp
    - src
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2851
    functionName: fr_pair_value_bstrdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 5
    functionsReached:
    - fr_cond_assert
    - fr_value_box_bstrdup_buffer
    - fr_value_box_clear
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_bstrdup_buffer(fr_pair_t *vp, char const *src, bool
      tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2865,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2867,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/pair.c:2868,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - vp
    - src
    - len
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2872
    functionName: fr_pair_value_bstrndup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    - fr_value_box_bstrndup_shallow
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_bstrndup_shallow(fr_pair_t *vp, char const *src,
      size_t len, bool tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2887,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2889,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/pair.c:2890,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - vp
    - src
    - tainted
    argTypes:
    - fr_pair_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2883
    functionDepth: 1
    functionLinenumber: 2883
    functionLinenumberEnd: 2896
    functionName: fr_pair_value_bstrdup_buffer_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    - PAIR_VERIFY
    - fr_value_box_clear
    - fr_value_box_bstrdup_buffer_shallow
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_bstrdup_buffer_shallow(fr_pair_t *vp, char const
      *src, bool tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2915,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2917,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2918,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - vp
    - out
    - size
    - tainted
    argTypes:
    - fr_pair_t*
    - uint8_t**
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2911
    functionDepth: 1
    functionLinenumber: 2911
    functionLinenumberEnd: 2924
    functionName: fr_pair_value_mem_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 12
    functionsReached:
    - fr_value_box_mem_alloc
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_mem_alloc(fr_pair_t *vp, uint8_t **out, size_t size,
      bool tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2940,1
    - Dst: fr_value_box_mem_realloc
      Src: /src/freeradius-server/src/lib/util/pair.c:2942,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vp
    - out
    - size
    argTypes:
    - fr_pair_t*
    - uint8_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2936
    functionDepth: 1
    functionLinenumber: 2936
    functionLinenumberEnd: 2948
    functionName: fr_pair_value_mem_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - PAIR_VERIFY
    - fr_value_box_mem_realloc
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_mem_realloc(fr_pair_t *vp, uint8_t **out, size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair.c:2966,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:2967,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2972,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/pair.c:2974,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/pair.c:2975,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:2976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - vp
    - src
    - len
    - tainted
    argTypes:
    - fr_pair_t*
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2979
    functionName: fr_pair_value_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 26
    functionsReached:
    - unlikely
    - fr_value_box_clear_value
    - fr_strerror_printf
    - fr_cond_assert
    - PAIR_VERIFY
    - fr_value_box_memdup
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_memdup(fr_pair_t *vp, uint8_t const *src, size_t
      len, bool tainted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:2996,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:2998,1
    - Dst: fr_value_box_memdup_buffer
      Src: /src/freeradius-server/src/lib/util/pair.c:2999,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:3001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - vp
    - src
    - tainted
    argTypes:
    - fr_pair_t*
    - uint8_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2992
    functionDepth: 1
    functionLinenumber: 2992
    functionLinenumberEnd: 3005
    functionName: fr_pair_value_memdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    - fr_value_box_memdup_buffer
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_memdup_buffer(fr_pair_t *vp, uint8_t const *src,
      bool tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:3019,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:3021,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/pair.c:3022,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:3023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - vp
    - src
    - len
    - tainted
    argTypes:
    - fr_pair_t*
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3017
    functionDepth: 1
    functionLinenumber: 3017
    functionLinenumberEnd: 3026
    functionName: fr_pair_value_memdup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    - fr_value_box_clear
    - PAIR_VERIFY
    - fr_value_box_memdup_shallow
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_memdup_shallow(fr_pair_t *vp, uint8_t const *src,
      size_t len, bool tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:3039,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/pair.c:3041,1
    - Dst: fr_value_box_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/pair.c:3042,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair.c:3043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - vp
    - src
    - tainted
    argTypes:
    - fr_pair_t*
    - uint8_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3037
    functionDepth: 1
    functionLinenumber: 3037
    functionLinenumberEnd: 3046
    functionName: fr_pair_value_memdup_buffer_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 4
    functionsReached:
    - fr_cond_assert
    - fr_value_box_memdup_buffer_shallow
    - fr_value_box_clear
    - PAIR_VERIFY
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_memdup_buffer_shallow(fr_pair_t *vp, uint8_t const
      *src, bool tainted)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_box_is_numeric
      Src: /src/freeradius-server/src/lib/util/pair.c:3063,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.c:3064,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/pair.c:3073,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/lib/util/pair.c:3078,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/pair.c:3078,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - vp
    - buff
    argTypes:
    - fr_pair_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3059
    functionDepth: 1
    functionLinenumber: 3059
    functionLinenumberEnd: 3080
    functionName: fr_pair_value_enum
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_dict_enum_by_value
    - fr_strerror_printf
    - FR_SBUFF_OUT
    - fr_pair_print_value_quoted
    - fr_box_is_numeric
    linkageType: ''
    returnType: char
    signature: char *fr_pair_value_enum(fr_pair_t const *vp, char buff[20])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/pair.c:3097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - vp
    argTypes:
    - fr_value_box_t**
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3092
    functionDepth: 1
    functionLinenumber: 3092
    functionLinenumberEnd: 3104
    functionName: fr_pair_value_enum_box
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - fr_dict_enum_by_value
    linkageType: ''
    returnType: int
    signature: int fr_pair_value_enum_box(fr_value_box_t const **out, fr_pair_t *vp)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/pair.c:3113,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3116,1
    - Dst: fr_dict_attr_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3119,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/pair.c:3134,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/pair.c:3141,1
    - Dst: fr_pair_order_list_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3141,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:3150,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3151,1
    - Dst: fr_dict_attr_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3153,1
    - Dst: fr_dict_attr_can_contain
      Src: /src/freeradius-server/src/lib/util/pair.c:3155,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3156,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3180,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair.c:3181,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair.c:3181,1
    - Dst: fr_value_box_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3189,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3192,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3195,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3199,1
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/lib/util/pair.c:3210,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3211,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3212,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/pair.c:3215,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3217,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3221,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3223,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3226,1
    - Dst: talloc_get_type
      Src: /src/freeradius-server/src/lib/util/pair.c:3238,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3239,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3240,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/pair.c:3243,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3245,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3250,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3254,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3256,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3259,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3266,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3272,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3281,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3287,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3296,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/util/pair.c:3305,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3306,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/pair.c:3308,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3313,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3314,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/pair.c:3319,1
    - Dst: fr_dict_attr_can_contain
      Src: /src/freeradius-server/src/lib/util/pair.c:3319,1
    - Dst: fr_pair_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3325,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/pair.c:3337,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair.c:3343,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/pair.c:3348,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/pair.c:3349,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3351,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/pair.c:3354,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/pair.c:3355,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 123
    argCount: 6
    argNames:
    - file
    - line
    - parent_da
    - list
    - vp
    - verify_values
    argTypes:
    - char*
    - int
    - fr_dict_attr_t*
    - fr_pair_list_t*
    - fr_pair_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3110
    functionDepth: 3
    functionLinenumber: 3110
    functionLinenumberEnd: 3357
    functionName: fr_pair_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_fatal_assert_fail
    - fr_pair_list_verify
    - fr_type_to_str
    - fr_value_box_verify
    - fr_table_str_by_value
    - fr_pair_list_foreach
    - talloc_parent
    - fr_dict_attr_verify
    - fr_dict_attr_can_contain
    - talloc_get_name
    - talloc_array_length
    - talloc_strlen
    - fr_fatal_assert_msg
    - fr_pair_order_list_parent
    - snprintf
    - fr_pair_verify
    - talloc_get_type_abort_const
    - talloc_get_type
    - fr_pair_parent
    linkageType: ''
    returnType: void
    signature: "void fr_pair_verify(char const *file, int line, fr_dict_attr_t const
      *parent_da,\n\t\t    fr_pair_list_t const *list, fr_pair_t const *vp, bool verify_values)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:3372,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:3379,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair.c:3379,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:3381,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:3381,1
    - Dst: fr_pair_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3382,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:3387,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/pair.c:3388,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3393,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/lib/util/pair.c:3396,1
    - Dst: fr_log_talloc_report
      Src: /src/freeradius-server/src/lib/util/pair.c:3397,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/pair.c:3399,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3402,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/pair.c:3403,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair.c:3410,1
    - Dst: fr_pair_verify
      Src: /src/freeradius-server/src/lib/util/pair.c:3411,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3413,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - file
    - line
    - expected
    - list
    - verify_values
    argTypes:
    - char*
    - int
    - TALLOC_CTX*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3367
    functionDepth: 4
    functionLinenumber: 3367
    functionLinenumberEnd: 3418
    functionName: fr_pair_list_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 3
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_list_next
    - talloc_get_name
    - fr_fatal_assert_fail
    - fr_pair_list_head
    - fr_pair_verify
    - fr_fatal_assert_msg
    - talloc_parent
    - fr_log_talloc_report
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_verify(char const *file, int line, TALLOC_CTX const
      *expected, fr_pair_list_t const *list, bool verify_values)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair.c:3426,1
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:3429,1
    - Dst: fr_pair_list_tainted
      Src: /src/freeradius-server/src/lib/util/pair.c:3433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3424
    functionDepth: 1
    functionLinenumber: 3424
    functionLinenumberEnd: 3442
    functionName: fr_pair_list_tainted
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 2
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_list_tainted
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_tainted(fr_pair_list_t *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair.c:3429,1
    - Dst: fr_pair_list_tainted
      Src: /src/freeradius-server/src/lib/util/pair.c:3433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3428
    functionDepth: 2
    functionLinenumber: 3428
    functionLinenumberEnd: 3441
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 9
    functionsReached:
    - fr_pair_list_tainted
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - uctx
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3456
    functionName: fr_pair_matches_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_matches_da(void const *item, void const *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:3479,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair.c:3479,1
    - Dst: pair_alloc_parent
      Src: /src/freeradius-server/src/lib/util/pair.c:3499,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.c:3506,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair.c:3514,1
    - Dst: fr_pair_insert_before
      Src: /src/freeradius-server/src/lib/util/pair.c:3522,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair.c:3524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - in
    - item
    - da
    argTypes:
    - fr_pair_t*
    - fr_pair_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3475
    functionDepth: 3
    functionLinenumber: 3475
    functionLinenumberEnd: 3527
    functionName: pair_alloc_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_insert_before
    - fr_type_is_structural
    - fr_pair_append
    - fr_assert
    - pair_alloc_parent
    - fr_pair_find_by_da
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *pair_alloc_parent(fr_pair_t *in, fr_pair_t *item, fr_dict_attr_t
      const *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair.c:3540,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair.c:3544,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/util/pair.c:3547,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/pair.c:3553,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/pair.c:3553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - dict
    - box
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3536
    functionDepth: 1
    functionLinenumber: 3536
    functionLinenumberEnd: 3556
    functionName: fr_pair_list_afrom_box
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN
    - fr_dict_internal
    - fr_pair_list_afrom_substr
    - fr_assert
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_afrom_box(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_t
      const *dict, fr_value_box_t *box)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/regex.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to_alloc
    - uctx
    argTypes:
    - PCRE2_SIZE
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: _pcre2_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - talloc_array
    linkageType: ''
    returnType: void
    signature: void *_pcre2_talloc(PCRE2_SIZE to_alloc, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to_free
    - uctx
    argTypes:
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: _pcre2_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _pcre2_talloc_free(void *to_free, UNUSED void *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_general_context_free
      Src: /src/freeradius-server/src/lib/util/regex.c:131,1
    - Dst: pcre2_compile_context_free
      Src: /src/freeradius-server/src/lib/util/regex.c:132,1
    - Dst: pcre2_match_context_free
      Src: /src/freeradius-server/src/lib/util/regex.c:133,1
    - Dst: pcre2_jit_stack_free
      Src: /src/freeradius-server/src/lib/util/regex.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - tls
    argTypes:
    - fr_pcre2_tls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: _pcre2_tls_free
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_compile_context_free
    - pcre2_match_context_free
    - pcre2_jit_stack_free
    - pcre2_general_context_free
    linkageType: ''
    returnType: int
    signature: int _pcre2_tls_free(fr_pcre2_tls_t *tls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: _pcre2_tls_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _pcre2_tls_free_on_exit(void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/regex.c:153,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/regex.c:155,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/regex.c:157,1
    - Dst: pcre2_general_context_create
      Src: /src/freeradius-server/src/lib/util/regex.c:159,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:161,1
    - Dst: pcre2_compile_context_create
      Src: /src/freeradius-server/src/lib/util/regex.c:165,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:167,1
    - Dst: _pcre2_tls_free
      Src: /src/freeradius-server/src/lib/util/regex.c:170,1
    - Dst: pcre2_match_context_create
      Src: /src/freeradius-server/src/lib/util/regex.c:174,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:176,1
    - Dst: pcre2_config
      Src: /src/freeradius-server/src/lib/util/regex.c:181,1
    - Dst: pcre2_jit_stack_create
      Src: /src/freeradius-server/src/lib/util/regex.c:183,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:185,1
    - Dst: pcre2_jit_stack_assign
      Src: /src/freeradius-server/src/lib/util/regex.c:188,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/regex.c:195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 199
    functionName: fr_pcre2_tls_init
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_config
    - unlikely
    - pcre2_general_context_create
    - pcre2_jit_stack_create
    - talloc_set_destructor
    - _pcre2_tls_free
    - fr_atexit_thread_local
    - pcre2_compile_context_create
    - pcre2_match_context_create
    - talloc_zero
    - fr_strerror_const
    - pcre2_jit_stack_assign
    linkageType: ''
    returnType: int
    signature: int fr_pcre2_tls_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/freeradius-server/src/lib/util/regex.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: _regex_free
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_code_free
    linkageType: ''
    returnType: int
    signature: int _regex_free(regex_t *preg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/regex.c:250,1
    - Dst: fr_pcre2_tls_init
      Src: /src/freeradius-server/src/lib/util/regex.c:250,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:253,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/regex.c:271,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/regex.c:272,1
    - Dst: pcre2_compile
      Src: /src/freeradius-server/src/lib/util/regex.c:274,1
    - Dst: pcre2_get_error_message
      Src: /src/freeradius-server/src/lib/util/regex.c:279,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:280,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:281,1
    - Dst: pcre2_jit_compile
      Src: /src/freeradius-server/src/lib/util/regex.c:296,1
    - Dst: pcre2_get_error_message
      Src: /src/freeradius-server/src/lib/util/regex.c:300,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:301,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:302,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 7
    argNames:
    - ctx
    - out
    - pattern
    - len
    - flags
    - subcaptures
    - runtime
    argTypes:
    - TALLOC_CTX*
    - regex_t**
    - char*
    - size_t
    - fr_regex_flags_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 314
    functionName: regex_compile
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 11
    functionsReached:
    - unlikely
    - pcre2_compile
    - talloc_set_destructor
    - talloc_free
    - pcre2_jit_compile
    - fr_strerror_printf
    - fr_pcre2_tls_init
    - pcre2_get_error_message
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t regex_compile(TALLOC_CTX *ctx, regex_t **out, char const *pattern,
      size_t len,\n\t\t      fr_regex_flags_t const *flags, bool subcaptures, bool
      runtime)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/regex.c:469,1
    - Dst: fr_pcre2_tls_init
      Src: /src/freeradius-server/src/lib/util/regex.c:469,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/regex.c:484,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:486,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/regex.c:510,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:513,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:515,1
    - Dst: pcre2_substitute
      Src: /src/freeradius-server/src/lib/util/regex.c:532,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:543,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:547,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:557,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/regex.c:561,1
    - Dst: pcre2_get_error_message
      Src: /src/freeradius-server/src/lib/util/regex.c:570,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:571,1
    - Dst: talloc_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/regex.c:582,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:584,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 10
    argNames:
    - ctx
    - out
    - max_out
    - preg
    - flags
    - subject
    - subject_len
    - replacement
    - replacement_len
    - regmatch
    argTypes:
    - TALLOC_CTX*
    - char**
    - size_t
    - regex_t*
    - fr_regex_flags_t*
    - char*
    - size_t
    - char*
    - size_t
    - fr_regmatch_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 593
    functionName: regex_substitute
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_array
    - talloc_bstrndup
    - talloc_free
    - pcre2_substitute
    - fr_strerror_printf
    - fr_pcre2_tls_init
    - pcre2_get_error_message
    - talloc_bstr_realloc
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int regex_substitute(TALLOC_CTX *ctx, char **out, size_t max_out,
      regex_t *preg, fr_regex_flags_t const *flags,\n\t\t     char const *subject,
      size_t subject_len,\n\t\t     char const *replacement, size_t replacement_len,\n\t\t
      \    fr_regmatch_t *regmatch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_pattern_info
      Src: /src/freeradius-server/src/lib/util/regex.c:606,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 612
    functionName: regex_subcapture_count
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 2
    functionsReached:
    - fr_strerror_const
    - pcre2_pattern_info
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t regex_subcapture_count(regex_t const *preg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/freeradius-server/src/lib/util/regex.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regmatch
    argTypes:
    - fr_regmatch_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: _pcre2_match_data_free
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_free
    linkageType: ''
    returnType: int
    signature: int _pcre2_match_data_free(fr_regmatch_t *regmatch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/regex.c:639,1
    - Dst: fr_pcre2_tls_init
      Src: /src/freeradius-server/src/lib/util/regex.c:639,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/regex.c:641,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:644,1
    - Dst: pcre2_match_data_create
      Src: /src/freeradius-server/src/lib/util/regex.c:648,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:650,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/regex.c:653,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/regex.c:655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - count
    argTypes:
    - TALLOC_CTX*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 658
    functionName: regex_match_data_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 2
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - talloc_free
    - pcre2_match_data_create
    - talloc_set_type
    - fr_pcre2_tls_init
    - talloc
    - fr_strerror_const
    linkageType: ''
    returnType: fr_regmatch_t
    signature: fr_regmatch_t *regex_match_data_alloc(TALLOC_CTX *ctx, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regfree
      Src: /src/freeradius-server/src/lib/util/regex.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: _regex_free
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - regfree
    linkageType: ''
    returnType: int
    signature: int _regex_free(regex_t *preg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:717,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:726,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:730,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:734,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:738,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/regex.c:754,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:757,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/regex.c:762,1
    - Dst: regcomp
      Src: /src/freeradius-server/src/lib/util/regex.c:765,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/regex.c:768,1
    - Dst: regncomp
      Src: /src/freeradius-server/src/lib/util/regex.c:770,1
    - Dst: regerror
      Src: /src/freeradius-server/src/lib/util/regex.c:775,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:776,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:778,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/regex.c:783,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 7
    argNames:
    - ctx
    - out
    - pattern
    - len
    - flags
    - subcaptures
    - runtime
    argTypes:
    - TALLOC_CTX*
    - regex_t**
    - char*
    - size_t
    - fr_regex_flags_t*
    - bool
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 787
    functionName: regex_compile
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 11
    functionsReached:
    - regncomp
    - talloc_set_destructor
    - talloc_free
    - fr_strerror_printf
    - talloc_zero
    - strlen
    - regerror
    - fr_strerror_const
    - regcomp
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t regex_compile(TALLOC_CTX *ctx, regex_t **out, char const *pattern,
      size_t len,\n\t\t      fr_regex_flags_t const *flags, bool subcaptures, UNUSED
      bool runtime)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/regex.c:821,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/regex.c:830,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:833,1
    - Dst: regexec
      Src: /src/freeradius-server/src/lib/util/regex.c:838,1
    - Dst: regnexec
      Src: /src/freeradius-server/src/lib/util/regex.c:841,1
    - Dst: regerror
      Src: /src/freeradius-server/src/lib/util/regex.c:847,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:849,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/util/regex.c:863,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/regex.c:864,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:866,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - preg
    - subject
    - len
    - regmatch
    argTypes:
    - regex_t*
    - char*
    - size_t
    - fr_regmatch_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 871
    functionName: regex_exec
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 4
    functionsReached:
    - talloc_bstrndup
    - fr_strerror_printf
    - fr_strerror_const
    - talloc_const_free
    - strlen
    - regerror
    - memset
    - regnexec
    - regexec
    linkageType: ''
    returnType: int
    signature: int regex_exec(regex_t *preg, char const *subject, size_t len, fr_regmatch_t
      *regmatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - preg
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 881
    functionName: regex_subcapture_count
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t regex_subcapture_count(UNUSED regex_t const *preg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/util/regex.c:901,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/regex.c:902,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:904,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:905,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/regex.c:908,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/regex.c:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - count
    argTypes:
    - TALLOC_CTX*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 916
    functionName: regex_match_data_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 2
    functionsReached:
    - unlikely
    - talloc_array
    - talloc_free
    - fr_strerror_const
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: fr_regmatch_t
    signature: fr_regmatch_t *regex_match_data_alloc(TALLOC_CTX *ctx, uint32_t count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/regex.c:945,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/regex.c:949,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:961,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:962,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:963,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:964,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:965,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:966,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/regex.c:970,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/regex.c:970,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/regex.c:972,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/regex.c:974,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/regex.c:976,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/regex.c:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - err
    - out
    - in
    - terminals
    - err_on_dup
    argTypes:
    - int*
    - fr_regex_flags_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 979
    functionName: regex_flags_parse
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 3
    functionsReached:
    - fr_sbuff_extend
    - fr_sbuff_is_terminal
    - fr_strerror_printf
    - DO_REGEX_FLAG
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_advance
    - FR_SBUFF
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t regex_flags_parse(int *err, fr_regex_flags_t *out, fr_sbuff_t
      *in,\n\t\t\t    fr_sbuff_term_t const *terminals, bool err_on_dup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _f
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 960
    functionName: DO_REGEX_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REGEX_FLAG(_f, _c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/regex.c:991,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:996,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:997,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:998,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:999,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:1000,1
    - Dst: DO_REGEX_FLAG
      Src: /src/freeradius-server/src/lib/util/regex.c:1001,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/regex.c:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - sbuff
    - flags
    argTypes:
    - fr_sbuff_t*
    - fr_regex_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1005
    functionName: regex_flags_print
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF
    - FR_SBUFF_SET_RETURN
    - DO_REGEX_FLAG
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t regex_flags_print(fr_sbuff_t *sbuff, fr_regex_flags_t const
      *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _f
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 995
    functionName: DO_REGEX_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_REGEX_FLAG(_f, _c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:1033,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/regex.c:1038,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/regex.c:1042,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/regex.c:1049,1
    - Dst: regex_compile
      Src: /src/freeradius-server/src/lib/util/regex.c:1060,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:1061,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:1067,1
    - Dst: regex_exec
      Src: /src/freeradius-server/src/lib/util/regex.c:1072,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/regex.c:1073,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - op
    - a
    - b
    argTypes:
    - fr_token_t
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1024
    functionDepth: 3
    functionLinenumber: 1024
    functionLinenumberEnd: 1082
    functionName: fr_regex_cmp_op
    functionSourceFile: /src/freeradius-server/src/lib/util/regex.c
    functionUses: 0
    functionsReached:
    - fr_value_box_aprint
    - talloc_free
    - regex_exec
    - talloc_init_const
    - regex_compile
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_regex_cmp_op(fr_token_t op, fr_value_box_t const *a, fr_value_box_t
      const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: HEAP_PARENT
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_PARENT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: HEAP_GRANDPARENT
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_GRANDPARENT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HEAP_LEFT
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_LEFT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: HEAP_RIGHT
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_RIGHT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: HEAP_SWAP
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_SWAP(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: depth
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 8
    functionsReached:
    - fr_high_bit_pos
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t depth(fr_minmax_heap_index_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: depth
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: is_min_level_index
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - depth
    linkageType: ''
    returnType: bool
    signature: bool is_min_level_index(fr_minmax_heap_index_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: depth
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:96,1
    - Dst: depth
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:97,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - candidate
    - ancestor
    argTypes:
    - fr_minmax_heap_index_t
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: is_descendant
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - depth
    linkageType: ''
    returnType: bool
    signature: bool is_descendant(fr_minmax_heap_index_t candidate, fr_minmax_heap_index_t
      ancestor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: is_max_level_index
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_max_level_index(_i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:118,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:119,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:127,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:128,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:129,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - cmp
    - type
    - offset
    - init
    argTypes:
    - TALLOC_CTX*
    - fr_minmax_heap_cmp_t
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 152
    functionName: _fr_minmax_heap_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - talloc_array
    - talloc_set_type
    - talloc
    linkageType: ''
    returnType: fr_minmax_heap_t
    signature: fr_minmax_heap_t *_fr_minmax_heap_alloc(TALLOC_CTX *ctx, fr_minmax_heap_cmp_t
      cmp, char const *type, size_t offset, unsigned int init)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:164,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:166,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:174,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:175,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:176,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 185
    functionName: minmax_heap_expand
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_realloc
    - fr_strerror_printf
    - talloc_set_type
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int minmax_heap_expand(fr_minmax_heap_t *hp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - data
    argTypes:
    - minmax_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: index_get
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_get(minmax_heap_t *h, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - data
    - idx
    argTypes:
    - minmax_heap_t*
    - void*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: index_set
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_set(minmax_heap_t *h, void *data, fr_minmax_heap_index_t
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: has_children
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - HEAP_LEFT
    linkageType: ''
    returnType: void
    signature: void has_children(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:205,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - i
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: has_grandchildren
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - HEAP_LEFT
    linkageType: ''
    returnType: bool
    signature: bool has_grandchildren(minmax_heap_t *h, fr_minmax_heap_index_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _heap
    - ','
    - _idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: OFFSET_SET
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_SET(_heap, _idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _heap
    - ','
    - _idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: OFFSET_RESET
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_RESET(_heap, _idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_max_level_index
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:241,1
    - Dst: has_grandchildren
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:241,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:243,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:244,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:245,1
    - Dst: has_children
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:250,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:250,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:251,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:252,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:252,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:254,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:254,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:257,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:257,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:263,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 266
    functionName: min_child_or_grandchild
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - is_max_level_index
    - minmax_heap_t*::cmp
    - HEAP_LEFT
    - HEAP_RIGHT
    - has_children
    - has_grandchildren
    linkageType: ''
    returnType: fr_minmax_heap_index_t
    signature: fr_minmax_heap_index_t min_child_or_grandchild(minmax_heap_t *h, fr_minmax_heap_index_t
      idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_min_level_index
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:272,1
    - Dst: has_grandchildren
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:272,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:274,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:275,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:276,1
    - Dst: has_children
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:281,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:281,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:282,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:283,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:283,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:285,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:285,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:288,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:288,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:294,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 297
    functionName: max_child_or_grandchild
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - is_min_level_index
    - minmax_heap_t*::cmp
    - HEAP_LEFT
    - HEAP_RIGHT
    - has_children
    - has_grandchildren
    linkageType: ''
    returnType: fr_minmax_heap_index_t
    signature: fr_minmax_heap_index_t max_child_or_grandchild(minmax_heap_t *h, fr_minmax_heap_index_t
      idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_children
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:304,1
    - Dst: min_child_or_grandchild
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:305,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:310,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:312,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:313,1
    - Dst: HEAP_GRANDPARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:318,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:318,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:318,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:319,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:319,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:320,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:320,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 325
    functionName: push_down_min
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - min_child_or_grandchild
    - minmax_heap_t*::cmp
    - HEAP_GRANDPARENT
    - HEAP_SWAP
    - HEAP_PARENT
    - has_children
    - OFFSET_SET
    linkageType: ''
    returnType: void
    signature: void push_down_min(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_children
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:334,1
    - Dst: max_child_or_grandchild
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:335,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:337,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:339,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:340,1
    - Dst: HEAP_GRANDPARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:342,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:342,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:342,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:343,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:343,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:344,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:344,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: push_down_max
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - HEAP_GRANDPARENT
    - minmax_heap_t*::cmp
    - HEAP_SWAP
    - HEAP_PARENT
    - max_child_or_grandchild
    - has_children
    - OFFSET_SET
    linkageType: ''
    returnType: void
    signature: void push_down_max(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_min_level_index
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:353,1
    - Dst: push_down_min
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:354,1
    - Dst: push_down_max
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: push_down
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - is_min_level_index
    - push_down_max
    - push_down_min
    linkageType: ''
    returnType: void
    signature: void push_down(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAP_GRANDPARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:364,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:364,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:365,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:366,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 370
    functionName: push_up_min
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - HEAP_SWAP
    - OFFSET_SET
    - HEAP_GRANDPARENT
    - minmax_heap_t*::cmp
    linkageType: ''
    returnType: void
    signature: void push_up_min(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HEAP_GRANDPARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:376,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:376,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:377,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:378,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: push_up_max
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - HEAP_SWAP
    - OFFSET_SET
    - HEAP_GRANDPARENT
    - minmax_heap_t*::cmp
    linkageType: ''
    returnType: void
    signature: void push_up_max(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:393,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:402,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:403,1
    - Dst: is_min_level_index
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:405,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:407,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:408,1
    - Dst: push_up_max
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:409,1
    - Dst: push_up_min
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:411,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:415,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:416,1
    - Dst: push_up_min
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:417,1
    - Dst: push_up_max
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - minmax_heap_t*
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 422
    functionName: push_up
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - is_min_level_index
    - minmax_heap_t*::cmp
    - push_up_min
    - HEAP_SWAP
    - HEAP_PARENT
    - push_up_max
    - OFFSET_SET
    linkageType: ''
    returnType: void
    signature: void push_up(minmax_heap_t *h, fr_minmax_heap_index_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:427,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:429,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:429,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:430,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:435,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:436,1
    - Dst: minmax_heap_expand
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:436,1
    - Dst: push_up
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - hp
    - data
    argTypes:
    - fr_minmax_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 447
    functionName: fr_minmax_heap_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_minmax_heap_entry_inserted
    - fr_strerror_const
    - push_up
    - index_get
    - minmax_heap_expand
    linkageType: ''
    returnType: int
    signature: int fr_minmax_heap_insert(fr_minmax_heap_t *hp, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: fr_minmax_heap_min_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 6
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_minmax_heap_min_peek(fr_minmax_heap_t *hp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:459,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:461,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:462,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 464
    functionName: fr_minmax_heap_min_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - fr_minmax_heap_extract
    - unlikely
    - fr_minmax_heap_min_peek
    linkageType: ''
    returnType: void
    signature: void *fr_minmax_heap_min_pop(fr_minmax_heap_t *hp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:470,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: fr_minmax_heap_max_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 2
    functionsReached:
    - unlikely
    - minmax_heap_t*::cmp
    linkageType: ''
    returnType: void
    signature: void *fr_minmax_heap_max_peek(fr_minmax_heap_t *hp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_max_peek
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:479,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:481,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:482,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 484
    functionName: fr_minmax_heap_max_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - fr_minmax_heap_extract
    - fr_minmax_heap_max_peek
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_minmax_heap_max_pop(fr_minmax_heap_t *hp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:489,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:491,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:492,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:495,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:495,1
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:495,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:496,1
    - Dst: OFFSET_RESET
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:500,1
    - Dst: is_descendant
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:524,1
    - Dst: push_up
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:524,1
    - Dst: push_down
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:525,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - hp
    - data
    argTypes:
    - fr_minmax_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 486
    functionDepth: 6
    functionLinenumber: 486
    functionLinenumberEnd: 527
    functionName: fr_minmax_heap_extract
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 4
    functionsReached:
    - unlikely
    - push_down
    - fr_minmax_heap_entry_inserted
    - fr_strerror_printf
    - is_descendant
    - push_up
    - index_get
    - OFFSET_RESET
    linkageType: ''
    returnType: int
    signature: int fr_minmax_heap_extract(fr_minmax_heap_t *hp, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: fr_minmax_heap_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_minmax_heap_num_elements(fr_minmax_heap_t *hp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hp
    - iter
    argTypes:
    - fr_minmax_heap_t*
    - fr_minmax_heap_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: fr_minmax_heap_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_minmax_heap_iter_init(fr_minmax_heap_t *hp, fr_minmax_heap_iter_t
      *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hp
    - iter
    argTypes:
    - fr_minmax_heap_t*
    - fr_minmax_heap_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 581
    functionName: fr_minmax_heap_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_minmax_heap_iter_next(fr_minmax_heap_t *hp, fr_minmax_heap_iter_t
      *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:591,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:592,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:601,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:602,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:604,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:607,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:613,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:614,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:615,1
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:615,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:640,1
    - Dst: is_min_level_index
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:641,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:643,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:644,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:645,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:645,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:646,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:646,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:647,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:647,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:648,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:648,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:651,1
    - Dst: minmax_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:652,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/minmax_heap.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - file
    - line
    - hp
    argTypes:
    - char*
    - int
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 659
    functionName: fr_minmax_heap_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.c
    functionUses: 0
    functionsReached:
    - is_min_level_index
    - index_get
    - minmax_heap_t*::cmp
    - talloc_get_type_abort
    - HEAP_LEFT
    - HEAP_RIGHT
    - fr_fatal_assert_msg
    - _talloc_get_type_abort
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void fr_minmax_heap_verify(char const *file, int line, fr_minmax_heap_t
      const *hp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fchown
      Src: /src/freeradius-server/src/lib/util/file.c:44,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:45,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - path
    - uctx
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: fr_mkdir_chown
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - fchown
    linkageType: ''
    returnType: int
    signature: int fr_mkdir_chown(int fd, char const *path, void *uctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/freeradius-server/src/lib/util/file.c:70,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/file.c:72,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:74,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:75,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/file.c:77,1
    - Dst: fchmod
      Src: /src/freeradius-server/src/lib/util/file.c:83,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:84,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:85,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:86,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:90,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/file.c:104,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:106,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:106,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:110,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:119,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:119,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/file.c:130,1
    - Dst: _fr_mkdir
      Src: /src/freeradius-server/src/lib/util/file.c:134,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/file.c:136,1
    - Dst: mkdirat
      Src: /src/freeradius-server/src/lib/util/file.c:145,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/util/file.c:152,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/file.c:154,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:155,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/file.c:162,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:162,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:165,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/util/file.c:170,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/file.c:172,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:173,1
    - Dst: fchmod
      Src: /src/freeradius-server/src/lib/util/file.c:177,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/file.c:178,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:179,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/util/file.c:188,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/file.c:189,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:198,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:201,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 6
    argNames:
    - fd_out
    - start
    - path
    - mode
    - func
    - uctx
    argTypes:
    - int*
    - char*
    - char*
    - mode_t
    - fr_mkdir_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 202
    functionName: _fr_mkdir
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 1
    functionsReached:
    - open
    - strrchr
    - fr_strerror_printf
    - fr_syserror
    - _fr_mkdir
    - openat
    - mkdirat
    - strlen
    - fr_assert_msg
    - func
    - close
    - mkdir
    - fchmod
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_mkdir(int *fd_out, char *start, char *path, mode_t mode,
      fr_mkdir_func_t func, void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:224,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/file.c:233,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/file.c:240,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/file.c:242,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/file.c:246,1
    - Dst: _fr_mkdir
      Src: /src/freeradius-server/src/lib/util/file.c:253,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/file.c:254,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 6
    argNames:
    - fd_out
    - path
    - len
    - mode
    - func
    - uctx
    argTypes:
    - int*
    - char*
    - ssize_t
    - mode_t
    - fr_mkdir_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 265
    functionName: fr_mkdir
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 11
    functionsReached:
    - talloc_bstrndup
    - open
    - talloc_free
    - _fr_mkdir
    - strlen
    - fr_strerror_clear
    - close
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_mkdir(int *fd_out, char const *path, ssize_t len, mode_t
      mode, fr_mkdir_func_t func, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/file.c:287,1
    - Dst: realpath
      Src: /src/freeradius-server/src/lib/util/file.c:289,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:291,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/util/file.c:292,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:292,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/file.c:293,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/file.c:297,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/file.c:299,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/file.c:300,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/file.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - path
    - len
    argTypes:
    - TALLOC_CTX*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 307
    functionName: fr_realpath
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 1
    functionsReached:
    - talloc_bstrndup
    - talloc_free
    - fr_syserror
    - fr_strerror_printf
    - fr_box_strvalue_buffer
    - talloc_strdup
    - free
    - fr_strerror_const
    - realpath
    linkageType: ''
    returnType: char
    signature: char *fr_realpath(TALLOC_CTX *ctx, char const *path, ssize_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/file.c:325,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/file.c:330,1
    - Dst: fr_mkdir
      Src: /src/freeradius-server/src/lib/util/file.c:333,1
    - Dst: openat
      Src: /src/freeradius-server/src/lib/util/file.c:336,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:338,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:339,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:340,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:342,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:345,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:345,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/file.c:352,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - fd_out
    - filename
    - mode
    - mkdir
    - dir_mode
    argTypes:
    - int*
    - char*
    - mode_t
    - bool
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 356
    functionName: fr_touch
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 5
    functionsReached:
    - open
    - strrchr
    - fr_strerror_printf
    - fr_syserror
    - openat
    - strlen
    - close
    - fr_mkdir
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_touch(int *fd_out, char const *filename, mode_t mode, bool
      mkdir, mode_t dir_mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/freeradius-server/src/lib/util/file.c:367,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/file.c:371,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/file.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: fr_unlink
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 5
    functionsReached:
    - unlink
    - fr_strerror_printf
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_unlink(char const *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getcwd
      Src: /src/freeradius-server/src/lib/util/file.c:388,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/file.c:390,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: fr_cwd_strip
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - getcwd
    - strlen
    - strstr
    linkageType: ''
    returnType: char
    signature: char *fr_cwd_strip(char const *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/file.c:413,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/file.c:423,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/file.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - dirfd
    - filename
    - pathname
    argTypes:
    - int*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 429
    functionName: fr_dirfd
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 3
    functionsReached:
    - open
    - strrchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_dirfd(int *dirfd, char const **filename, char const *pathname)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/file.c:451,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/util/file.c:466,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/file.c:467,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/file.c:487,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/file.c:488,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/file.c:489,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/file.c:490,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/file.c:496,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/file.c:503,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/util/file.c:508,1
    - Dst: S_ISREG
      Src: /src/freeradius-server/src/lib/util/file.c:512,1
    - Dst: S_ISLNK
      Src: /src/freeradius-server/src/lib/util/file.c:516,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 45
    argCount: 2
    argNames:
    - try
    - iter
    argTypes:
    - char*
    - fr_globdir_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 521
    functionName: fr_globdir_file_ok
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - isdigit
    - stat
    - isalpha
    - fr_utf8_char
    - strlen
    - S_ISREG
    - strncmp
    - S_ISLNK
    - strlcpy
    linkageType: ''
    returnType: bool
    signature: bool fr_globdir_file_ok(char const *try, fr_globdir_iter_t *iter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/file.c:531,1
    - Dst: readdir
      Src: /src/freeradius-server/src/lib/util/file.c:539,1
    - Dst: fr_globdir_file_ok
      Src: /src/freeradius-server/src/lib/util/file.c:547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - filename
    - iter
    argTypes:
    - char**
    - fr_globdir_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 557
    functionName: fr_globdir_dir_next
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - readdir
    - fr_assert
    - fr_globdir_file_ok
    linkageType: ''
    returnType: int
    signature: int fr_globdir_dir_next(char const **filename, fr_globdir_iter_t *iter)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/freeradius-server/src/lib/util/file.c:572,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/file.c:599,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/file.c:620,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/file.c:667,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - dir
    - pattern
    - iter
    argTypes:
    - char*
    - char*
    - fr_globdir_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 680
    functionName: fr_globdir_get_path
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: int fr_globdir_get_path(char const *dir, char const *pattern, fr_globdir_iter_t
      *iter)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_globdir_get_path
      Src: /src/freeradius-server/src/lib/util/file.c:775,1
    - Dst: fr_globdir_iter_free
      Src: /src/freeradius-server/src/lib/util/file.c:788,1
    - Dst: opendir
      Src: /src/freeradius-server/src/lib/util/file.c:801,1
    - Dst: fr_globdir_iter_free
      Src: /src/freeradius-server/src/lib/util/file.c:803,1
    - Dst: fr_globdir_dir_next
      Src: /src/freeradius-server/src/lib/util/file.c:807,1
    - Dst: fr_globdir_iter_free
      Src: /src/freeradius-server/src/lib/util/file.c:808,1
    - Dst: glob
      Src: /src/freeradius-server/src/lib/util/file.c:816,1
    - Dst: fr_globdir_iter_free
      Src: /src/freeradius-server/src/lib/util/file.c:817,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 4
    argNames:
    - filename
    - dir
    - pattern
    - iter
    argTypes:
    - char**
    - char*
    - char*
    - fr_globdir_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 836
    functionName: fr_globdir_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - fr_globdir_get_path
    - fr_globdir_iter_free
    - glob
    - opendir
    - fr_globdir_dir_next
    linkageType: ''
    returnType: int
    signature: int fr_globdir_iter_init(char const **filename, char const *dir, char
      const *pattern, fr_globdir_iter_t *iter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_globdir_dir_next
      Src: /src/freeradius-server/src/lib/util/file.c:863,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/file.c:876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - filename
    - iter
    argTypes:
    - char**
    - fr_globdir_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 883
    functionName: fr_globdir_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_globdir_dir_next
    linkageType: ''
    returnType: int
    signature: int fr_globdir_iter_next(char const **filename, fr_globdir_iter_t *iter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/file.c:888,1
    - Dst: closedir
      Src: /src/freeradius-server/src/lib/util/file.c:903,1
    - Dst: globfree
      Src: /src/freeradius-server/src/lib/util/file.c:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - iter
    argTypes:
    - fr_globdir_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 914
    functionName: fr_globdir_iter_free
    functionSourceFile: /src/freeradius-server/src/lib/util/file.c
    functionUses: 1
    functionsReached:
    - globfree
    - free
    - closedir
    linkageType: ''
    returnType: int
    signature: int fr_globdir_iter_free(fr_globdir_iter_t *iter)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/stats.c:40,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/stats.c:46,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:61,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/stats.c:63,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/stats.c:74,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/stats.c:76,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/stats.c:77,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:83,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:87,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/stats.c:91,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/stats.c:91,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/stats.c:95,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/stats.c:98,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/stats.c:100,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 3
    argNames:
    - ctx
    - out
    - inst
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_stats_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 105
    functionName: fr_stats_to_pairs
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_value_box_from_network
    - memcpy
    - talloc_free
    - fr_pair_value_strdup
    - fr_strerror_printf
    - fr_pair_append
    - fr_assert
    - FR_DBUFF_TMP
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_stats_to_pairs(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_stats_instance_t
      const *inst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/stats.c:121,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/stats.c:124,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/stats.c:129,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/stats.c:144,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:147,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:154,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:156,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:166,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:167,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:168,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:170,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:171,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:173,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/stats.c:174,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/stats.c:177,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/stats.c:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - inst
    - list
    argTypes:
    - TALLOC_CTX*
    - fr_stats_instance_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 183
    functionName: fr_stats_from_pairs
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - COPY
    - memcpy
    - talloc_bstrndup
    - fr_strerror_printf
    - memset
    - fr_pair_find_by_da
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_stats_from_pairs(TALLOC_CTX *ctx, fr_stats_instance_t *inst,
      fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: COPY
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(_type, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _type
    - ','
    - _out
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: add
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 163
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add(_type, _out, _in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/freeradius-server/src/lib/util/stats.c:214,1
    - Dst: add
      Src: /src/freeradius-server/src/lib/util/stats.c:218,1
    - Dst: add
      Src: /src/freeradius-server/src/lib/util/stats.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - def
    - out
    - in
    argTypes:
    - fr_stats_link_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 231
    functionName: stats_merge_internal
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - add
    linkageType: ''
    returnType: int
    signature: int stats_merge_internal(fr_stats_link_t const *def, void *out, void
      const *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/stats.c:244,1
    - Dst: stats_merge_internal
      Src: /src/freeradius-server/src/lib/util/stats.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_stats_instance_t*
    - fr_stats_instance_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: fr_stats_merge_instance
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - stats_merge_internal
    linkageType: ''
    returnType: int
    signature: int fr_stats_merge_instance(fr_stats_instance_t *out, fr_stats_instance_t
      const *in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/stats.c:263,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/stats.c:268,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/stats.c:273,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/stats.c:296,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 301
    functionName: fr_stats_merge_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_stats_merge_value_box(fr_value_box_t *dst, fr_value_box_t const
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inst
    - iter
    argTypes:
    - fr_stats_instance_t*
    - fr_stats_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: fr_stats_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_stats_iter_init(fr_stats_instance_t const *inst, fr_stats_iter_t
      *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - fr_stats_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: fr_stats_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_stats_iter_next(fr_stats_iter_t *iter)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/stats.c:357,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/stats.c:359,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/stats.c:369,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/stats.c:370,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/util/stats.c:377,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/stats.c:392,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/stats.c:392,1
    - Dst: fr_value_box_from_memory
      Src: /src/freeradius-server/src/lib/util/stats.c:396,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/stats.c:398,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - out
    - inst
    - index
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t**
    - fr_stats_instance_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 404
    functionName: fr_stats_index_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_memory
    - memcpy
    - talloc_free
    - memchr
    - fr_strerror_printf
    - fr_assert
    - fr_value_box_alloc
    - strlen
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_stats_index_to_value_box(TALLOC_CTX *ctx, fr_value_box_t **out,
      fr_stats_instance_t const *inst, unsigned int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/stats.c:418,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/stats.c:419,1
    - Dst: fr_stats_index_to_value_box
      Src: /src/freeradius-server/src/lib/util/stats.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - iter
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t**
    - fr_stats_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: fr_stats_iter_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_stats_index_to_value_box
    linkageType: ''
    returnType: int
    signature: int fr_stats_iter_to_value_box(TALLOC_CTX *ctx, fr_value_box_t **out,
      fr_stats_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/stats.c:439,1
    - Dst: fr_stats_index_to_value_box
      Src: /src/freeradius-server/src/lib/util/stats.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - inst
    - name
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t**
    - fr_stats_instance_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: fr_stats_name_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.c
    functionUses: 0
    functionsReached:
    - fr_stats_index_to_value_box
    - fr_dict_attr_by_name
    linkageType: ''
    returnType: int
    signature: int fr_stats_name_to_value_box(TALLOC_CTX *ctx, fr_value_box_t **out,
      fr_stats_instance_t const *inst, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: DA_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DA_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: DA_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DA_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: fr_dict_attr_is_key_field
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dict_attr_is_key_field(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: da_is_bit_field
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: da_is_bit_field(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: da_is_length_field
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: da_is_length_field(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: da_is_length_field8
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: da_is_length_field8(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: da_is_length_field16
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: da_is_length_field16(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: da_length_offset
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: da_length_offset(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _struct
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: FR_DICT_ATTR_FLAG_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DICT_ATTR_FLAG_FUNC(_struct, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _struct
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: FR_DICT_PROTOCOL_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DICT_PROTOCOL_FLAG(_struct, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict.h:586,1
    - Dst: fr_dict_attr_unknown_afrom_da
      Src: /src/freeradius-server/src/lib/util/dict.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: fr_dict_attr_unknown_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 5
    functionsReached:
    - fr_assert
    - fr_dict_attr_unknown_afrom_da
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_copy(TALLOC_CTX *ctx, fr_dict_attr_t
      const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_unknown_typed_afrom_num_raw
      Src: /src/freeradius-server/src/lib/util/dict.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - parent
    - num
    - type
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - unsigned int
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: fr_dict_attr_unknown_typed_afrom_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_unknown_typed_afrom_num_raw
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *fr_dict_attr_unknown_typed_afrom_num(TALLOC_CTX *ctx,\n\t\t\t\t\t\t\t\t\t\t
      \      fr_dict_attr_t const *parent,\n\t\t\t\t\t\t\t\t\t\t       unsigned int
      num, fr_type_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_unknown_typed_afrom_num_raw
      Src: /src/freeradius-server/src/lib/util/dict.h:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - parent
    - vendor
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 609
    functionName: fr_dict_attr_unknown_vendor_afrom_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 2
    functionsReached:
    - fr_dict_attr_unknown_typed_afrom_num_raw
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *fr_dict_attr_unknown_vendor_afrom_num(TALLOC_CTX *ctx,\n\t\t\t\t\t\t\t\t\t\t\tfr_dict_attr_t
      const *parent,\n\t\t\t\t\t\t\t\t\t\t\tunsigned int vendor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_unknown_typed_afrom_num_raw
      Src: /src/freeradius-server/src/lib/util/dict.h:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - parent
    - attr
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 616
    functionName: fr_dict_attr_unknown_raw_afrom_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 4
    functionsReached:
    - fr_dict_attr_unknown_typed_afrom_num_raw
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *fr_dict_attr_unknown_raw_afrom_num(TALLOC_CTX *ctx,\n\t\t\t\t\t\t\t\t\t\t
      \    fr_dict_attr_t const *parent,\n\t\t\t\t\t\t\t\t\t\t     unsigned int attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/dict.h:625,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num_raw
      Src: /src/freeradius-server/src/lib/util/dict.h:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - parent
    - in
    - type
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 629
    functionName: fr_dict_attr_unknown_afrom_oid
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_unknown_typed_afrom_num_raw
    - fr_sbuff_out
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *fr_dict_attr_unknown_afrom_oid(TALLOC_CTX *ctx,\n\t\t\t\t\t\t\t\t\t\t
      \    fr_dict_attr_t const *parent,\n\t\t\t\t\t\t\t\t\t\t     fr_sbuff_t *in,
      fr_type_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_unknown_alloc
      Src: /src/freeradius-server/src/lib/util/dict.h:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: fr_dict_attr_unknown_raw_afrom_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_unknown_alloc
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_raw_afrom_da(TALLOC_CTX *ctx,
      fr_dict_attr_t const *da)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:663,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:666,1
    - Dst: fr_dict_attr_cmp
      Src: /src/freeradius-server/src/lib/util/dict.h:672,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 680
    functionName: fr_dict_attr_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 2
    functionsReached:
    - fr_dict_attr_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_dict_attr_cmp(fr_dict_attr_t const *a, fr_dict_attr_t const
      *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/dict.h:694,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:701,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/dict.h:701,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:704,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:707,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:710,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict.h:710,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict.h:710,1
    - Dst: fr_dict_protocol_t*::attr::flags::cmp
      Src: /src/freeradius-server/src/lib/util/dict.h:716,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict.h:718,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/dict.h:718,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 719
    functionName: fr_dict_attr_cmp_fields
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached:
    - fr_dict_protocol_t*::attr::flags::cmp
    - CMP
    - fr_dict_protocol
    - fr_dict_vendor_num_by_da
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_dict_attr_cmp_fields(const fr_dict_attr_t *a, const fr_dict_attr_t
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 751
    functionName: FR_DICT_ATTR_OID_PRINT_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DICT_ATTR_OID_PRINT_RETURN(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict.h:811,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict.h:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: fr_dict_attr_is_top_level
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 5
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool fr_dict_attr_is_top_level(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _to_load
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 913
    functionName: fr_dict_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dict_autoload(_to_load)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _to_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 916
    functionName: fr_dict_autofree
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dict_autofree(_to_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _dict_out
    - ','
    - _proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: fr_dict_autoload_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dict_autoload_talloc(_ctx, _dict_out, _proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - int
    - chunk
    - ext_ptr
    - ext_ptr_len
    argTypes:
    - UNUSED
    - TALLOC_CTX*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: fr_dict_attr_ext_name_fixup
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: "int fr_dict_attr_ext_name_fixup(UNUSED int ext,\n\t\t\t\t       TALLOC_CTX
      *chunk,\n\t\t\t\t       void *ext_ptr, UNUSED size_t ext_ptr_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:63,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:76,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:78,1
    - Dst: fr_dict_enum_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:89,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:93,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:95,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:96,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:97,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:103,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:108,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:108,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:109,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:109,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:111,1
    - Dst: dict_attr_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:116,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - int
    - chunk_dst
    - dst_ext_ptr
    - dst_ext_len
    - chunk_src
    - src_ext_ptr
    - src_ext_len
    argTypes:
    - UNUSED
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 121
    functionName: fr_dict_attr_ext_enumv_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_iter_next
    - fr_dict_attr_by_name
    - fr_dict_enum_ext
    - talloc_get_type_abort
    - fr_hash_table_iter_init
    - dict_attr_enum_add_name
    - fr_assert
    - fr_value_box_cast
    - fr_type_is_integer
    linkageType: ''
    returnType: int
    signature: "int fr_dict_attr_ext_enumv_copy(UNUSED int ext,\n\t\t\t\t       TALLOC_CTX
      *chunk_dst,\n\t\t\t\t       UNUSED void *dst_ext_ptr, UNUSED size_t dst_ext_len,\n\t\t\t\t
      \      UNUSED TALLOC_CTX const *chunk_src,\n\t\t\t\t       UNUSED void *src_ext_ptr,
      UNUSED size_t src_ext_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - int
    - chunk_dst
    - dst_ext_ptr
    - dst_ext_len
    - chunk_src
    - src_ext_ptr
    - src_ext_len
    argTypes:
    - UNUSED
    - TALLOC_CTX*
    - void*
    - UNUSED
    - UNUSED*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 157
    functionName: fr_dict_attr_ext_vendor_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: "int fr_dict_attr_ext_vendor_copy(UNUSED int ext,\n\t\t\t\t\tTALLOC_CTX
      *chunk_dst,\n\t\t\t\t\tvoid *dst_ext_ptr, UNUSED size_t dst_ext_len,\n\t\t\t\t\tUNUSED
      TALLOC_CTX const *chunk_src,\n\t\t\t\t\tvoid *src_ext_ptr, UNUSED size_t src_ext_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:165,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:166,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:167,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:168,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:181,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:182,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:184,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:188,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:189,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:191,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:199,1
    - Dst: fr_dict_protocol_t*::attr::flags::copy
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - int
    - dst_chunk
    - dst_ext_ptr
    - dst_ext_len
    - src_chunk
    - src_ext_ptr
    - src_ext_len
    argTypes:
    - UNUSED
    - TALLOC_CTX*
    - void*
    - size_t
    - TALLOC_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 209
    functionName: dict_ext_protocol_specific_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - fr_strerror_printf
    - talloc_get_type_abort
    - fr_dict_protocol
    - talloc_get_type_abort_const
    - fr_dict_protocol_t*::attr::flags::copy
    linkageType: ''
    returnType: int
    signature: "int dict_ext_protocol_specific_copy(UNUSED int ext,\n\t\t\t      \t\t
      \  TALLOC_CTX *dst_chunk,\n\t\t\t\t\t   void *dst_ext_ptr, size_t dst_ext_len,\n\t\t\t\t\t
      \  TALLOC_CTX const *src_chunk,\n\t\t\t\t\t   void *src_ext_ptr, size_t src_ext_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:221,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:226,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:227,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:229,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:231,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - int
    - chunk_dst
    - dst_ext_ptr
    - dst_ext_len
    - chunk_src
    - src_ext_ptr
    - src_ext_len
    argTypes:
    - UNUSED
    - TALLOC_CTX*
    - void*
    - UNUSED
    - UNUSED*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 241
    functionName: fr_dict_attr_ext_key_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_strerror_printf
    - fr_dict_attr_by_name
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: "int fr_dict_attr_ext_key_copy(UNUSED int ext,\n\t\t\t\t     TALLOC_CTX
      *chunk_dst,\n\t\t\t\t     void *dst_ext_ptr, UNUSED size_t dst_ext_len,\n\t\t\t\t
      \    UNUSED TALLOC_CTX const *chunk_src,\n\t\t\t\t     void *src_ext_ptr, UNUSED
      size_t src_ext_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_debug
      Src: /src/freeradius-server/src/lib/util/dict_ext.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: fr_dict_attr_ext_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.c
    functionUses: 0
    functionsReached:
    - fr_ext_debug
    linkageType: ''
    returnType: void
    signature: void fr_dict_attr_ext_debug(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: fr_md4_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md4_ctx_reset(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: fr_md4_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md4_ctx_copy(_dst, _src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: fr_md4_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md4_ctx_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: fr_md4_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md4_ctx_free(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _in
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: fr_md4_update
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md4_update(_ctx, _in, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out
    - ','
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: fr_md4_final
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md4_final(_out, _ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_print.c:31,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:35,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:36,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:37,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:38,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:39,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:40,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:41,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:42,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:43,1
    - Dst: FLAG_SET
      Src: /src/freeradius-server/src/lib/util/dict_print.c:44,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:47,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:48,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:60,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:65,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:72,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:79,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:83,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:95,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/dict_print.c:96,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:97,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:98,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:99,1
    - Dst: fr_sbuff_trim
      Src: /src/freeradius-server/src/lib/util/dict_print.c:105,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/dict_print.c:110,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:110,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:112,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 4
    argNames:
    - out
    - dict
    - type
    - flags
    argTypes:
    - fr_sbuff_t*
    - fr_dict_t*
    - fr_type_t
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 113
    functionName: fr_dict_attr_flags_print
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 3
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_sbuff_used
    - fr_table_str_by_value
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - FR_SBUFF_IN_STRCPY_RETURN
    - FLAG_SET
    - FR_SBUFF_IN_SPRINTF_RETURN
    - fr_sbuff_trim
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dict_attr_flags_print(fr_sbuff_t *out, fr_dict_t const *dict,
      fr_type_t type, fr_dict_attr_flags_t const *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: FLAG_SET
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAG_SET(_flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_print.c:132,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/dict_print.c:142,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_print.c:149,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:156,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:167,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:169,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:170,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:173,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:175,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:176,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_print.c:179,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - out
    - ancestor
    - da
    - numeric
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 180
    functionName: fr_dict_attr_oid_print
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 7
    functionsReached:
    - fr_strerror_printf
    - fr_proto_da_stack_build
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_assert
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dict_attr_oid_print(fr_sbuff_t *out,\n\t\t\t       fr_dict_attr_t
      const *ancestor, fr_dict_attr_t const *da, bool numeric)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_flags_print
      Src: /src/freeradius-server/src/lib/util/dict_print.c:204,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_print.c:204,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:207,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:213,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_print.c:217,1
    - Dst: dict_attr_ext_debug
      Src: /src/freeradius-server/src/lib/util/dict_print.c:220,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_print.c:222,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_print.c:225,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_print.c:227,1
    - Dst: fr_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:228,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:230,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_print.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - da
    - uctx
    argTypes:
    - fr_dict_attr_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 238
    functionName: dict_attr_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_iter_next
    - talloc_free
    - fr_dict_attr_flags_print
    - FR_SBUFF_OUT
    - snprintf
    - fprintf
    - fr_dict_attr_ext
    - fr_hash_table_iter_init
    - dict_attr_ext_debug
    - fr_asprintf
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_attr_debug(fr_dict_attr_t const *da, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_print.c:244,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:253,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_print.c:257,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_print.c:259,1
    - Dst: dict_attr_debug
      Src: /src/freeradius-server/src/lib/util/dict_print.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - da
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 262
    functionName: fr_dict_namespace_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_iter_next
    - fprintf
    - fr_hash_table_iter_init
    - dict_attr_debug
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void fr_dict_namespace_debug(FILE *fp, fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_print.c:268,1
    - Dst: dict_attr_debug
      Src: /src/freeradius-server/src/lib/util/dict_print.c:272,1
    - Dst: fr_dict_walk
      Src: /src/freeradius-server/src/lib/util/dict_print.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fp
    - da
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: fr_dict_attr_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 0
    functionsReached:
    - fr_dict_walk
    - dict_attr_debug
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void fr_dict_attr_debug(FILE *fp, fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_debug
      Src: /src/freeradius-server/src/lib/util/dict_print.c:280,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_print.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dict
    argTypes:
    - FILE*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: fr_dict_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 2
    functionsReached:
    - fr_dict_attr_debug
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void fr_dict_debug(FILE *fp, fr_dict_t const *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/lib/util/dict_print.c:287,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_print.c:287,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/lib/util/dict_print.c:289,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_print.c:289,1
    - Dst: fr_dict_attr_flags_print
      Src: /src/freeradius-server/src/lib/util/dict_print.c:293,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_print.c:293,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:295,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_print.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - da
    - uctx
    argTypes:
    - fr_dict_attr_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: dict_attr_export
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_flags_print
    - fr_dict_attr_oid_print
    - FR_SBUFF_OUT
    - fprintf
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_attr_export(fr_dict_attr_t const *da, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_print.c:308,1
    - Dst: dict_attr_export
      Src: /src/freeradius-server/src/lib/util/dict_print.c:312,1
    - Dst: fr_dict_walk
      Src: /src/freeradius-server/src/lib/util/dict_print.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - da
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: fr_dict_attr_export
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 0
    functionsReached:
    - dict_attr_export
    - fr_dict_walk
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void fr_dict_attr_export(FILE *fp, fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_export
      Src: /src/freeradius-server/src/lib/util/dict_print.c:321,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_print.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dict
    argTypes:
    - FILE*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: fr_dict_export
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_export
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void fr_dict_export(FILE *fp, fr_dict_t const *dict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:333,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_print.c:337,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_print.c:339,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:344,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_print.c:346,1
    - Dst: fr_dict_attr_oid_print
      Src: /src/freeradius-server/src/lib/util/dict_print.c:355,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_print.c:355,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_print.c:358,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - fp
    - parent
    argTypes:
    - FILE*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 360
    functionName: fr_dict_alias_export
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_print.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_hash_table_iter_next
    - fr_dict_attr_oid_print
    - FR_SBUFF_OUT
    - fprintf
    - fr_hash_table_iter_init
    - fr_dict_attr_ref
    linkageType: ''
    returnType: void
    signature: void fr_dict_alias_export(FILE *fp, fr_dict_attr_t const *parent)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:42,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:64,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 3
    argNames:
    - token
    - op
    - oplen
    argTypes:
    - fr_token_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 126
    functionName: op_to_token
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t op_to_token(fr_token_t *token, char const *op, size_t oplen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:153,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:157,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:159,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - da
    - op
    - value
    - value_len
    - uerules
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - fr_token_t
    - char*
    - size_t
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: fr_pair_afrom_fields
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - PAIR_ALLOCED
    - fr_pair_value_from_str
    - talloc_free
    linkageType: ''
    returnType: fr_pair_t
    signature: "fr_pair_t *fr_pair_afrom_fields(TALLOC_CTX *ctx, fr_dict_attr_t const
      *da,\n\t\t\t\t\tfr_token_t op,\n\t\t\t\t\tchar const *value, size_t value_len,\n\t\t\t\t\tfr_sbuff_unescape_rules_t
      const *uerules)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:190,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:190,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:194,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:201,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:205,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:208,1
    - Dst: op_to_token
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:215,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:217,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:222,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:225,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:230,1
    - Dst: fr_skip_string
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:238,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:250,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:256,1
    - Dst: fr_pair_afrom_fields
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:260,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:263,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:264,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 4
    argNames:
    - pair_ctx
    - start
    - in
    - inlen
    argTypes:
    - fr_pair_ctx_t*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 267
    functionName: fr_pair_afrom_str
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_fields
    - fr_strerror_printf
    - fr_pair_append
    - FR_SBUFF_IN
    - fr_dict_attr_by_name_substr
    - isspace
    - fr_skip_string
    - PAIR_ALLOCED
    - fr_strerror_const
    - op_to_token
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_afrom_str(fr_pair_ctx_t *pair_ctx, char const *start,
      char const *in, size_t inlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:305,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:305,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:309,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:315,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:333,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - pair_ctx
    - in
    - inlen
    argTypes:
    - fr_pair_ctx_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 341
    functionName: fr_pair_ctx_set
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - FR_SBUFF_IN
    - fr_dict_attr_by_name_substr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_ctx_set(fr_pair_ctx_t *pair_ctx, char const *in, size_t
      inlen)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:384,1
    - Dst: fr_pair_afrom_str
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:397,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:435,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:440,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:440,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:458,1
    - Dst: fr_pair_afrom_str
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:472,1
    - Dst: fr_pair_ctx_set
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:479,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - pair_ctx
    - in
    - inlen
    argTypes:
    - fr_pair_ctx_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 377
    functionDepth: 5
    functionLinenumber: 377
    functionLinenumberEnd: 484
    functionName: fr_pair_ctx_afrom_str
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_str
    - fr_dict_attr_by_name_substr
    - FR_SBUFF_IN
    - fr_pair_ctx_set
    - isspace
    - fr_strerror_const
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_ctx_afrom_str(fr_pair_ctx_t *pair_ctx, char const *in,
      size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_tokenize.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pair_ctx
    - dict
    argTypes:
    - fr_pair_ctx_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: fr_pair_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void fr_pair_ctx_reset(fr_pair_ctx_t *pair_ctx, fr_dict_t const *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: VALIDATE
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALIDATE(_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cursor
    - current
    argTypes:
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: dcursor_current_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - VALIDATE
    linkageType: ''
    returnType: void
    signature: void *dcursor_current_set(fr_dcursor_t *cursor, void *current)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/freeradius-server/src/lib/util/dcursor.h:153,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:153,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dcursor.h:157,1
    - Dst: iter
      Src: /src/freeradius-server/src/lib/util/dcursor.h:167,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:168,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:171,1
    - Dst: iter
      Src: /src/freeradius-server/src/lib/util/dcursor.h:176,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - cursor
    - iter
    - current
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_iter_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 180
    functionName: dcursor_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 52
    functionsReached:
    - fr_dlist_head
    - fr_dlist_next
    - likely
    - iter
    - VALIDATE
    linkageType: ''
    returnType: void
    signature: void *dcursor_next(fr_dcursor_t *cursor, fr_dcursor_iter_t iter, void
      *current)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dcursor.h:192,1
    - Dst: fr_dcursor_t*::copy
      Src: /src/freeradius-server/src/lib/util/dcursor.h:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: fr_dcursor_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - fr_dcursor_t*::copy
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_dcursor_copy(fr_dcursor_t *out, fr_dcursor_t const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:207,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: fr_dcursor_copy_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_dcursor_copy_iter(fr_dcursor_t *out, fr_dcursor_t const *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:243,1
    - Dst: dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:246,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:247,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dcursor.h:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: fr_dcursor_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 5
    functionsReached:
    - fr_dlist_head
    - fr_assert
    - dcursor_current_set
    - dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_head(fr_dcursor_t *cursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:267,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:271,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:274,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:275,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/dcursor.h:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: fr_dcursor_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 3
    functionsReached:
    - fr_assert
    - dcursor_current_set
    - fr_dlist_tail
    - dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_tail(fr_dcursor_t *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:290,1
    - Dst: dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: fr_dcursor_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 52
    functionsReached:
    - dcursor_current_set
    - dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_next(fr_dcursor_t *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: fr_dcursor_next_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 2
    functionsReached:
    - dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_next_peek(fr_dcursor_t *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: fr_dcursor_list_next_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_list_next_peek(fr_dcursor_t *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: fr_dcursor_current
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 27
    functionsReached:
    - VALIDATE
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_current(fr_dcursor_t *cursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:355,1
    - Dst: fr_dlist_in_list
      Src: /src/freeradius-server/src/lib/util/dcursor.h:358,1
    - Dst: fr_dcursor_t*::iter
      Src: /src/freeradius-server/src/lib/util/dcursor.h:359,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - cursor
    - item
    argTypes:
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: fr_dcursor_set_current
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 3
    functionsReached:
    - fr_cond_assert_msg
    - fr_dcursor_t*::iter
    - fr_dlist_in_list
    - dcursor_current_set
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_set_current(fr_dcursor_t *cursor, void *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:380,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:382,1
    - Dst: fr_dcursor_t*::insert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:384,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/util/dcursor.h:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cursor
    - v
    argTypes:
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: fr_dcursor_prepend
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 3
    functionsReached:
    - fr_cond_assert_msg
    - fr_dcursor_t*::insert
    - VALIDATE
    - fr_dlist_insert_head
    linkageType: ''
    returnType: int
    signature: int fr_dcursor_prepend(fr_dcursor_t *cursor, void *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:410,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:412,1
    - Dst: fr_dcursor_t*::insert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:414,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/dcursor.h:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cursor
    - v
    argTypes:
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 421
    functionName: fr_dcursor_append
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 142
    functionsReached:
    - fr_dlist_insert_tail
    - fr_cond_assert_msg
    - fr_dcursor_t*::insert
    - VALIDATE
    linkageType: ''
    returnType: int
    signature: int fr_dcursor_append(fr_dcursor_t *cursor, void *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:439,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:441,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/dcursor.h:444,1
    - Dst: fr_dcursor_t*::insert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:448,1
    - Dst: fr_dlist_insert_after
      Src: /src/freeradius-server/src/lib/util/dcursor.h:450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - cursor
    - v
    argTypes:
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 453
    functionName: fr_dcursor_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 10
    functionsReached:
    - fr_dcursor_append
    - fr_dlist_insert_after
    - fr_cond_assert_msg
    - VALIDATE
    - fr_dcursor_t*::insert
    linkageType: ''
    returnType: int
    signature: int fr_dcursor_insert(fr_dcursor_t *cursor, void *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:485,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:490,1
    - Dst: fr_dcursor_t*::remove
      Src: /src/freeradius-server/src/lib/util/dcursor.h:493,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:497,1
    - Dst: dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:497,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dcursor.h:501,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 504
    functionName: fr_dcursor_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 7
    functionsReached:
    - fr_cond_assert_msg
    - fr_dlist_remove
    - dcursor_current_set
    - dcursor_next
    - fr_dcursor_t*::remove
    - VALIDATE
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_remove(fr_dcursor_t *cursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:524,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:525,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/dcursor.h:528,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:529,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:530,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cursor
    - to_append
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: fr_dcursor_merge
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 1
    functionsReached:
    - fr_dcursor_insert
    - fr_cond_assert_msg
    - dcursor_current_set
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void fr_dcursor_merge(fr_dcursor_t *cursor, fr_dcursor_t *to_append)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:550,1
    - Dst: eval
      Src: /src/freeradius-server/src/lib/util/dcursor.h:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cursor
    - eval
    - uctx
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_eval_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 554
    functionName: fr_dcursor_filter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 2
    functionsReached:
    - eval
    - fr_dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_filter_next(fr_dcursor_t *cursor, fr_dcursor_eval_t
      eval, void const *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/dcursor.h:570,1
    - Dst: eval
      Src: /src/freeradius-server/src/lib/util/dcursor.h:571,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cursor
    - eval
    - uctx
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_eval_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 574
    functionName: fr_dcursor_filter_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - eval
    - fr_dcursor_filter_next
    - fr_dcursor_head
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_filter_head(fr_dcursor_t *cursor, fr_dcursor_eval_t
      eval, void const *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/dcursor.h:590,1
    - Dst: eval
      Src: /src/freeradius-server/src/lib/util/dcursor.h:590,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cursor
    - eval
    - uctx
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_eval_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: fr_dcursor_filter_current
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - eval
    - fr_dcursor_next
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_filter_current(fr_dcursor_t *cursor, fr_dcursor_eval_t
      eval, void const *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dcursor.h:614,1
    - Dst: VALIDATE
      Src: /src/freeradius-server/src/lib/util/dcursor.h:616,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/dcursor.h:621,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/dcursor.h:622,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/dcursor.h:633,1
    - Dst: fr_dcursor_t*::remove
      Src: /src/freeradius-server/src/lib/util/dcursor.h:637,1
    - Dst: fr_dlist_replace
      Src: /src/freeradius-server/src/lib/util/dcursor.h:639,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:645,1
    - Dst: fr_dcursor_t*::iter
      Src: /src/freeradius-server/src/lib/util/dcursor.h:645,1
    - Dst: dcursor_current_set
      Src: /src/freeradius-server/src/lib/util/dcursor.h:647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - cursor
    - r
    argTypes:
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 651
    functionName: fr_dcursor_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dlist_replace
    - fr_dcursor_t*::iter
    - fr_dcursor_append
    - fr_cond_assert_msg
    - fr_dlist_empty
    - dcursor_current_set
    - fr_dcursor_t*::remove
    - VALIDATE
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_replace(fr_dcursor_t *cursor, void *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:667,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/dcursor.h:669,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/dcursor.h:672,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dcursor.h:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 675
    functionName: fr_dcursor_free_list
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_dlist_empty
    - fr_dcursor_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_dcursor_free_list(fr_dcursor_t *cursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _cursor
    - ','
    - _head
    - ','
    - _iter
    - ','
    - _peek
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 699
    functionName: fr_dcursor_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dcursor_iter_init(_cursor, _head, _iter, _peek, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _cursor
    - ','
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: fr_dcursor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dcursor_init(_cursor, _head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dcursor.h:740,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dcursor.h:743,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dcursor.h:746,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/dcursor.h:749,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:749,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.h:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 9
    argNames:
    - cursor
    - head
    - iter
    - peek
    - iter_uctx
    - insert
    - remove
    - mod_uctx
    - is_const
    argTypes:
    - fr_dcursor_t*
    - fr_dlist_head_t*
    - fr_dcursor_iter_t
    - fr_dcursor_iter_t
    - void*
    - fr_dcursor_insert_t
    - fr_dcursor_remove_t
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 754
    functionName: _fr_dcursor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 6
    functionsReached:
    - fr_dlist_empty
    - UNCONST
    - fr_dcursor_next
    linkageType: ''
    returnType: void
    signature: "void *_fr_dcursor_init(fr_dcursor_t *cursor, fr_dlist_head_t const
      *head,\n\t\t       fr_dcursor_iter_t iter, fr_dcursor_iter_t peek, void const
      *iter_uctx,\n\t\t       fr_dcursor_insert_t insert, fr_dcursor_remove_t remove,
      void const *mod_uctx, bool is_const)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _cursor
    - ','
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 768
    functionName: fr_dcursor_reinit
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dcursor_reinit(_cursor, _head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dcursor.h:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cursor
    - head
    - is_const
    argTypes:
    - fr_dcursor_t*
    - fr_dlist_head_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: _fr_dcursor_list_reinit
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: void
    signature: void _fr_dcursor_list_reinit(fr_dcursor_t *cursor, fr_dlist_head_t
      const *head, bool is_const)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dcursor.h:785,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dcursor.h:787,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/dcursor.h:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 788
    functionName: fr_dcursor_free_item
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_dcursor_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_dcursor_free_item(fr_dcursor_t *cursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_size
      Src: /src/freeradius-server/src/lib/util/dcursor.h:802,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dcursor.h:803,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/util/dcursor.h:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - TALLOC_CTX*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 808
    functionName: fr_dcursor_stack_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached:
    - talloc_set_name_const
    - unlikely
    - talloc_array_size
    linkageType: ''
    returnType: fr_dcursor_stack_t
    signature: fr_dcursor_stack_t *fr_dcursor_stack_alloc(TALLOC_CTX *ctx, uint8_t
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 822
    functionName: FR_DCURSOR
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 829
    functionName: FR_DCURSOR_ITER
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_ITER(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 836
    functionName: FR_DCURSOR_EVAL
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_EVAL(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 843
    functionName: FR_DCURSOR_INSERT
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_INSERT(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 850
    functionName: FR_DCURSOR_REMOVE
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_REMOVE(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 857
    functionName: FR_DCURSOR_COPY
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_COPY(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _list_name
    - ','
    - _element_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 879
    functionName: FR_DCURSOR_DLIST_TYPES
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_DLIST_TYPES(_name, _list_name, _element_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _list_name
    - ','
    - _element_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 986
    functionName: FR_DCURSOR_FUNCS
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DCURSOR_FUNCS(_name, _list_name, _element_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: fr_strerror_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_vprintf(_fmt, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: fr_strerror_vprintf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_vprintf_push(_fmt, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: fr_strerror_vprintf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_vprintf_push_head(_fmt, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: fr_strerror_printf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 194
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_printf(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/freeradius-server/src/lib/util/strerror.h:67,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.h:72,1
    - Dst: _fr_strerror_vprintf
      Src: /src/freeradius-server/src/lib/util/strerror.h:73,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: _fr_strerror_printf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 2
    functionsReached:
    - _fr_strerror_vprintf
    - format
    - va_end
    - va_start
    linkageType: ''
    returnType: CC_HINT
    signature: CC_HINT _fr_strerror_printf(char const *file, int line, char const
      *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: fr_strerror_printf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_printf_push(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/freeradius-server/src/lib/util/strerror.h:87,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.h:92,1
    - Dst: _fr_strerror_vprintf_push
      Src: /src/freeradius-server/src/lib/util/strerror.h:93,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: _fr_strerror_printf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 5
    functionsReached:
    - _fr_strerror_vprintf_push
    - format
    - va_end
    - va_start
    linkageType: ''
    returnType: CC_HINT
    signature: CC_HINT _fr_strerror_printf_push(char const *file, int line, char const
      *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: fr_strerror_printf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_printf_push_head(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/freeradius-server/src/lib/util/strerror.h:107,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.h:112,1
    - Dst: _fr_strerror_vprintf_push_head
      Src: /src/freeradius-server/src/lib/util/strerror.h:113,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: _fr_strerror_printf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached:
    - format
    - va_end
    - va_start
    - _fr_strerror_vprintf_push_head
    linkageType: ''
    returnType: CC_HINT
    signature: CC_HINT _fr_strerror_printf_push_head(char const *file, int line, char
      const *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _subject
    - ','
    - _offset
    - ','
    - _fmt
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: fr_strerror_marker_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_marker_vprintf(_subject, _offset, _fmt, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _subject
    - ','
    - _offset
    - ','
    - _fmt
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: fr_strerror_marker_vprintf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_marker_vprintf_push(_subject, _offset, _fmt, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _subject
    - ','
    - _offset
    - ','
    - _fmt
    - ','
    - _ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: fr_strerror_marker_vprintf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_marker_vprintf_push_head(_subject, _offset, _fmt, _ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _subject
    - ','
    - _offset
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: fr_strerror_marker_printf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_marker_printf(_subject, _offset, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/freeradius-server/src/lib/util/strerror.h:157,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.h:163,1
    - Dst: _fr_strerror_marker_vprintf
      Src: /src/freeradius-server/src/lib/util/strerror.h:164,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - subject
    - offset
    - fmt
    argTypes:
    - char*
    - int
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: _fr_strerror_marker_printf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached:
    - _fr_strerror_marker_vprintf
    - format
    - va_end
    - va_start
    linkageType: ''
    returnType: CC_HINT
    signature: "CC_HINT _fr_strerror_marker_printf(char const *file, int line,\n\t\t\t\t\t
      \  char const *subject, size_t offset, char const *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _subject
    - ','
    - _offset
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: fr_strerror_marker_printf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_marker_printf_push(_subject, _offset, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/freeradius-server/src/lib/util/strerror.h:181,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.h:187,1
    - Dst: _fr_strerror_marker_vprintf_push
      Src: /src/freeradius-server/src/lib/util/strerror.h:188,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - subject
    - offset
    - fmt
    argTypes:
    - char*
    - int
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: _fr_strerror_marker_printf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached:
    - _fr_strerror_marker_vprintf_push
    - format
    - va_end
    - va_start
    linkageType: ''
    returnType: CC_HINT
    signature: "CC_HINT _fr_strerror_marker_printf_push(char const *file, int line,\n\t\t\t\t\t
      \       char const *subject, size_t offset, char const *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _subject
    - ','
    - _offset
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: fr_strerror_marker_printf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_marker_printf_push_head(_subject, _offset, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/freeradius-server/src/lib/util/strerror.h:205,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.h:211,1
    - Dst: _fr_strerror_marker_vprintf_push_head
      Src: /src/freeradius-server/src/lib/util/strerror.h:212,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - file
    - line
    - subject
    - offset
    - fmt
    argTypes:
    - char*
    - int
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: _fr_strerror_marker_printf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached:
    - _fr_strerror_marker_vprintf_push_head
    - format
    - va_end
    - va_start
    linkageType: ''
    returnType: CC_HINT
    signature: "CC_HINT _fr_strerror_marker_printf_push_head(char const *file, int
      line,\n\t\t\t\t\t\t     char const *subject, size_t offset, char const *fmt,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: fr_strerror_const
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 195
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_const(_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: fr_strerror_const_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_const_push(_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: fr_strerror_const_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_strerror_const_push_head(_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: RADIUSD_VERSION_BUILD
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RADIUSD_VERSION_BUILD(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: MAGIC_PREFIX
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAGIC_PREFIX(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: MAGIC_VERSION
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAGIC_VERSION(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: MAGIC_PREFIX
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAGIC_PREFIX(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: MAGIC_VERSION
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAGIC_VERSION(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: MAGIC_COMMIT
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAGIC_COMMIT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: DOC_KEYWORD_URL
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOC_KEYWORD_URL(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: DOC_KEYWORD_REF
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOC_KEYWORD_REF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: DOC_ROOT_REF
    functionSourceFile: /src/freeradius-server/src/lib/util/version.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOC_ROOT_REF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/token.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: fr_token_to_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 0
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_token_to_enum_str(fr_token_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/util/token.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - dflt
    argTypes:
    - char*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: fr_token_from_quote_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 0
    functionsReached:
    - fr_table_value_by_str
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t fr_token_from_quote_enum_str(char const *s, fr_token_t dflt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: T
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 464
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: T
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 464
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: T
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 464
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bptr
    - ','
    - tptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: TOKEN_MATCH
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOKEN_MATCH(bptr, tptr)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/util/token.c:337,1
    - Dst: TOKEN_MATCH
      Src: /src/freeradius-server/src/lib/util/token.c:349,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/token.c:350,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/token.c:407,1
    - Dst: TOKEN_MATCH
      Src: /src/freeradius-server/src/lib/util/token.c:412,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/token.c:459,1
    - Dst: sscanf
      Src: /src/freeradius-server/src/lib/util/token.c:479,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/token.c:497,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/token.c:510,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/util/token.c:516,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 131
    argCount: 7
    argNames:
    - ptr
    - buf
    - buflen
    - tok
    - tokenlist
    - tokenlist_len
    - unescape
    argTypes:
    - char**
    - char*
    - int
    - bool
    - fr_table_num_ordered_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 521
    functionName: getthing
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 0
    functionsReached:
    - sscanf
    - fr_skip_whitespace
    - isspace
    - TOKEN_MATCH
    - strcpy
    - fr_strerror_const
    linkageType: ''
    returnType: fr_token_t
    signature: "fr_token_t getthing(char const **ptr, char *buf, int buflen, bool
      tok,\n\t\t\t fr_table_num_ordered_t const *tokenlist, size_t tokenlist_len,
      bool unescape)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getthing
      Src: /src/freeradius-server/src/lib/util/token.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - buf
    - buflen
    - unescape
    argTypes:
    - char**
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: getword
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 1
    functionsReached:
    - getthing
    linkageType: ''
    returnType: int
    signature: int getword(char const **ptr, char *buf, int buflen, bool unescape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getthing
      Src: /src/freeradius-server/src/lib/util/token.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - buf
    - buflen
    - unescape
    argTypes:
    - char**
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: gettoken
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 3
    functionsReached:
    - getthing
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t gettoken(char const **ptr, char *buf, int buflen, bool unescape)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getthing
      Src: /src/freeradius-server/src/lib/util/token.c:549,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/token.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: getop
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - getthing
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t getop(char const **ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/util/token.c:568,1
    - Dst: gettoken
      Src: /src/freeradius-server/src/lib/util/token.c:573,1
    - Dst: getthing
      Src: /src/freeradius-server/src/lib/util/token.c:576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - buf
    - buflen
    - unescape
    argTypes:
    - char**
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 577
    functionName: getstring
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 0
    functionsReached:
    - getthing
    - fr_skip_whitespace
    - gettoken
    linkageType: ''
    returnType: fr_token_t
    signature: fr_token_t getstring(char const **ptr, char *buf, int buflen, bool
      unescape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/token.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 582
    functionName: fr_token_name
    functionSourceFile: /src/freeradius-server/src/lib/util/token.c
    functionUses: 1
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_token_name(int token)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: strlcpy
    functionSourceFile: /src/freeradius-server/src/lib/util/strlcpy.c
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlcpy(char *dst, char const *src, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: PROTO_DECODE_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/decode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROTO_DECODE_FUNC(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _cmp
    - ','
    - _type
    - ','
    - _field
    - ','
    - _init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: fr_minmax_heap_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_minmax_heap_alloc(_ctx, _cmp, _type, _field, _init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _cmp
    - ','
    - _talloc_type
    - ','
    - _field
    - ','
    - _init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: fr_minmax_heap_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_minmax_heap_talloc_alloc(_ctx, _cmp, _talloc_type, _field, _init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap_idx
    argTypes:
    - fr_minmax_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: fr_minmax_heap_entry_inserted
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_minmax_heap_entry_inserted(fr_minmax_heap_index_t heap_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _hp
    - ','
    - _type
    - ','
    - _data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: fr_minmax_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_minmax_heap_foreach(_hp, _type, _data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _hp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: FR_MINMAX_HEAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_MINMAX_HEAP_VERIFY(_hp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _hp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: FR_MINMAX_HEAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/minmax_heap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_MINMAX_HEAP_VERIFY(_hp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:66,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: fr_ipaddr_is_inaddr_any
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 6
    functionsReached:
    - fr_strerror_const
    - htonl
    linkageType: ''
    returnType: int
    signature: int fr_ipaddr_is_inaddr_any(fr_ipaddr_t const *ipaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:100,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:101,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: fr_ipaddr_is_multicast
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - htonl
    linkageType: ''
    returnType: int
    signature: int fr_ipaddr_is_multicast(fr_ipaddr_t const *ipaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: fr_ipaddr_is_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_ipaddr_is_prefix(fr_ipaddr_t const *ipaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ipaddr
    - prefix
    argTypes:
    - struct in_addr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: fr_inaddr_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: struct in_addr
    signature: struct in_addr fr_inaddr_mask(struct in_addr const *ipaddr, uint8_t
      prefix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/inet.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ipaddr
    - prefix
    argTypes:
    - struct in6_addr*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 211
    functionName: fr_in6addr_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - htonll
    linkageType: ''
    returnType: struct in6_addr
    signature: struct in6_addr fr_in6addr_mask(struct in6_addr const *ipaddr, uint8_t
      prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_inaddr_mask
      Src: /src/freeradius-server/src/lib/util/inet.c:223,1
    - Dst: fr_in6addr_mask
      Src: /src/freeradius-server/src/lib/util/inet.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - addr
    - prefix
    argTypes:
    - fr_ipaddr_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 234
    functionName: fr_ipaddr_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 4
    functionsReached:
    - fr_in6addr_mask
    - fr_inaddr_mask
    linkageType: ''
    returnType: void
    signature: void fr_ipaddr_mask(fr_ipaddr_t *addr, uint8_t prefix)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/freeradius-server/src/lib/util/inet.c:282,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:283,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:294,1
    - Dst: getaddrinfo
      Src: /src/freeradius-server/src/lib/util/inet.c:305,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:309,1
    - Dst: gai_strerror
      Src: /src/freeradius-server/src/lib/util/inet.c:310,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:314,1
    - Dst: gai_strerror
      Src: /src/freeradius-server/src/lib/util/inet.c:315,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:319,1
    - Dst: gai_strerror
      Src: /src/freeradius-server/src/lib/util/inet.c:320,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:332,1
    - Dst: freeaddrinfo
      Src: /src/freeradius-server/src/lib/util/inet.c:334,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:338,1
    - Dst: freeaddrinfo
      Src: /src/freeradius-server/src/lib/util/inet.c:339,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:341,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 4
    argNames:
    - out
    - af
    - hostname
    - fallback
    argTypes:
    - fr_ipaddr_t*
    - int
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 346
    functionName: fr_inet_hton
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - inet_pton
    - fr_ipaddr_from_sockaddr
    - freeaddrinfo
    - fr_strerror_printf
    - fr_strerror_const
    - getaddrinfo
    - gai_strerror
    - memset
    linkageType: ''
    returnType: int
    signature: int fr_inet_hton(fr_ipaddr_t *out, int af, char const *hostname, bool
      fallback)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/lib/util/inet.c:366,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:369,1
    - Dst: getnameinfo
      Src: /src/freeradius-server/src/lib/util/inet.c:371,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:373,1
    - Dst: gai_strerror
      Src: /src/freeradius-server/src/lib/util/inet.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - src
    - out
    - outlen
    argTypes:
    - fr_ipaddr_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: fr_inet_ntoh
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 5
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - getnameinfo
    - inet_ntop
    - fr_strerror_printf
    - gai_strerror
    linkageType: ''
    returnType: char
    signature: char *fr_inet_ntoh(fr_ipaddr_t const *src, char *out, size_t outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - uint32_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 407
    functionName: ip_octet_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ip_octet_from_str(uint32_t *out, char const *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ip_octet_from_str
      Src: /src/freeradius-server/src/lib/util/inet.c:442,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - struct in_addr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 462
    functionName: ip_prefix_addr_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - htonl
    - ip_octet_from_str
    linkageType: ''
    returnType: int
    signature: int ip_prefix_addr_from_str(struct in_addr *out, char const *str)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:494,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:496,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/inet.c:499,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:501,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:511,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/inet.c:511,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:514,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/inet.c:519,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:532,1
    - Dst: is_integer
      Src: /src/freeradius-server/src/lib/util/inet.c:540,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:541,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/inet.c:541,1
    - Dst: sscanf
      Src: /src/freeradius-server/src/lib/util/inet.c:550,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:553,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/inet.c:557,1
    - Dst: fr_inet_hton
      Src: /src/freeradius-server/src/lib/util/inet.c:559,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:568,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:575,1
    - Dst: ip_prefix_addr_from_str
      Src: /src/freeradius-server/src/lib/util/inet.c:586,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:590,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/inet.c:594,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:596,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:601,1
    - Dst: fr_inaddr_mask
      Src: /src/freeradius-server/src/lib/util/inet.c:607,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 6
    argNames:
    - out
    - value
    - inlen
    - resolve
    - fallback
    - mask_bits
    argTypes:
    - fr_ipaddr_t*
    - char*
    - ssize_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 614
    functionName: fr_inet_pton4
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 1
    functionsReached:
    - sscanf
    - htonl
    - memcpy
    - ip_prefix_addr_from_str
    - fr_strerror_printf
    - strchr
    - is_integer
    - memset
    - isspace
    - strlen
    - fr_inet_hton
    - fr_box_strvalue_len
    - strtoul
    - fr_inaddr_mask
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_inet_pton4(fr_ipaddr_t *out, char const *value, ssize_t inlen,
      bool resolve, bool fallback, bool mask_bits)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:645,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:647,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/inet.c:650,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:652,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:661,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/inet.c:661,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:665,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/inet.c:669,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/inet.c:669,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/inet.c:677,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/inet.c:677,1
    - Dst: inet_pton
      Src: /src/freeradius-server/src/lib/util/inet.c:686,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:687,1
    - Dst: fr_inet_hton
      Src: /src/freeradius-server/src/lib/util/inet.c:690,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/inet.c:700,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:702,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:706,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:717,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:724,1
    - Dst: inet_pton
      Src: /src/freeradius-server/src/lib/util/inet.c:728,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:731,1
    - Dst: fr_inet_hton
      Src: /src/freeradius-server/src/lib/util/inet.c:736,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/inet.c:741,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:743,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:747,1
    - Dst: fr_in6addr_mask
      Src: /src/freeradius-server/src/lib/util/inet.c:755,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:756,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 6
    argNames:
    - out
    - value
    - inlen
    - resolve
    - fallback
    - mask
    argTypes:
    - fr_ipaddr_t*
    - char*
    - ssize_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 763
    functionName: fr_inet_pton6
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 1
    functionsReached:
    - fr_in6addr_mask
    - inet_pton
    - memcpy
    - fr_strerror_printf
    - UNCONST
    - strchr
    - memset
    - isspace
    - strlen
    - fr_inet_hton
    - fr_box_strvalue_len
    - strtoul
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_inet_pton6(fr_ipaddr_t *out, char const *value, ssize_t inlen,
      bool resolve, bool fallback, bool mask)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:791,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/inet.c:794,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:796,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:801,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:872,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:881,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:893,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/inet.c:906,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/inet.c:909,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/inet.c:912,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:921,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 68
    argCount: 6
    argNames:
    - out
    - value
    - inlen
    - af
    - resolve
    - mask
    argTypes:
    - fr_ipaddr_t*
    - char*
    - ssize_t
    - int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 923
    functionName: fr_inet_pton
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 4
    functionsReached:
    - fr_inet_pton4
    - fr_strerror_printf
    - fr_inet_pton6
    - isspace
    - strlen
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_inet_pton(fr_ipaddr_t *out, char const *value, ssize_t inlen,
      int af, bool resolve, bool mask)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:955,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/util/inet.c:958,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:959,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/inet.c:966,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/util/inet.c:979,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/inet.c:980,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/inet.c:985,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:994,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1000,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/inet.c:1001,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1005,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/util/inet.c:1005,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 7
    argNames:
    - out
    - port_out
    - value
    - inlen
    - af
    - resolve
    - mask
    argTypes:
    - fr_ipaddr_t*
    - uint16_t*
    - char*
    - ssize_t
    - int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 944
    functionDepth: 4
    functionLinenumber: 944
    functionLinenumberEnd: 1011
    functionName: fr_inet_pton_port
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 8
    functionsReached:
    - memchr
    - fr_strerror_printf
    - fr_inet_pton6
    - fr_inet_pton
    - strlen
    - strtoul
    - STRINGIFY
    - fr_strerror_const
    - strlcpy
    linkageType: ''
    returnType: int
    signature: "int fr_inet_pton_port(fr_ipaddr_t *out, uint16_t *port_out, char const
      *value,\n\t\t      ssize_t inlen, int af, bool resolve, bool mask)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/lib/util/inet.c:1032,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1033,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1033,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:1039,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/lib/util/inet.c:1046,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/inet.c:1048,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/lib/util/inet.c:1049,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1050,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/inet.c:1060,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/lib/util/inet.c:1061,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1062,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - out
    - outlen
    - addr
    argTypes:
    - char[]
    - size_t
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1068
    functionName: fr_inet_ntop
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_ifname_from_ifindex
    - inet_ntop
    - fr_strerror_printf
    - fr_syserror
    - snprintf
    - strlen
    - is_truncated
    linkageType: ''
    returnType: char
    signature: char *fr_inet_ntop(char out[static FR_IPADDR_STRLEN], size_t outlen,
      fr_ipaddr_t const *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/lib/util/inet.c:1085,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/inet.c:1087,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/inet.c:1089,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/lib/util/inet.c:1090,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - out
    - outlen
    - addr
    argTypes:
    - char[]
    - size_t
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1097
    functionName: fr_inet_ntop_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - snprintf
    - strlen
    - fr_inet_ntop
    - is_truncated
    linkageType: ''
    returnType: char
    signature: char *fr_inet_ntop_prefix(char out[static FR_IPADDR_PREFIX_STRLEN],
      size_t outlen, fr_ipaddr_t const *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/inet.c:1108,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/inet.c:1109,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/inet.c:1109,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/inet.c:1110,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/inet.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - outlen
    - ifid
    argTypes:
    - char*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1112
    functionName: fr_inet_ifid_ntop
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_nbo_to_uint16
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *fr_inet_ifid_ntop(char *out, size_t outlen, uint8_t const *ifid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/inet.c:1149,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/inet.c:1149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - out
    - ifid_str
    argTypes:
    - uint8_t[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1161
    functionName: fr_inet_ifid_pton
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - strchr
    - tolower
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_inet_ifid_pton(uint8_t out[static 8], char const *ifid_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1179,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1180,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1186,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/inet.c:1188,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1190,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1190,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/lib/util/inet.c:1193,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1194,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1194,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/inet.c:1196,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:1206,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/inet.c:1211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - out
    - af
    - name
    argTypes:
    - fr_ipaddr_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1214
    functionName: fr_ipaddr_from_ifname
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_syserror
    - fr_strerror_printf
    - socket
    - close
    - memset
    - strlcpy
    - ioctl
    linkageType: ''
    returnType: int
    signature: int fr_ipaddr_from_ifname(fr_ipaddr_t *out, int af, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_ipaddr_t *out
    - int
    - name
    argTypes:
    - UNUSED
    - UNUSED
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1220
    functionName: fr_ipaddr_from_ifname
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int fr_ipaddr_from_ifname(UNUSED fr_ipaddr_t *out, UNUSED int af, char
      const *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: if_indextoname
      Src: /src/freeradius-server/src/lib/util/inet.c:1235,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1236,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1243,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/inet.c:1246,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1248,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1248,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/inet.c:1250,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/lib/util/inet.c:1260,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1261,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1261,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1264,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/inet.c:1265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - out
    - ifindex
    argTypes:
    - char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1268
    functionName: fr_ifname_from_ifindex
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 5
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - socket
    - close
    - if_indextoname
    - memset
    - strlcpy
    - ioctl
    linkageType: ''
    returnType: char
    signature: char *fr_ifname_from_ifindex(char out[static IFNAMSIZ], int ifindex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1292,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1293,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/lib/util/inet.c:1303,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1304,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1304,1
    - Dst: if_indextoname
      Src: /src/freeradius-server/src/lib/util/inet.c:1308,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1309,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/lib/util/inet.c:1322,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1323,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/inet.c:1324,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:1334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - out
    - fd
    - af
    - ifindex
    argTypes:
    - fr_ipaddr_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1340
    functionName: fr_ipaddr_from_ifindex
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_strerror_printf
    - fr_syserror
    - if_indextoname
    - memset
    - ioctl
    linkageType: ''
    returnType: int
    signature: int fr_ipaddr_from_ifindex(fr_ipaddr_t *out, int fd, int af, int ifindex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/util/inet.c:1358,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/util/inet.c:1359,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1370,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1371,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/util/inet.c:1375,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1376,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1377,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1384
    functionName: fr_ipaddr_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 9
    functionsReached:
    - fr_strerror_printf
    - memcmp
    - CMP
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_ipaddr_cmp(fr_ipaddr_t const *a, fr_ipaddr_t const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1402,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1409,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/inet.c:1412,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1413,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1414,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1422,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/inet.c:1425,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1427,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1428,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - sa
    - salen
    - ipaddr
    - port
    argTypes:
    - struct sockaddr_storage*
    - socklen_t*
    - fr_ipaddr_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1436
    functionName: fr_ipaddr_to_sockaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 9
    functionsReached:
    - memset
    - fr_strerror_printf
    - memcpy
    - htons
    linkageType: ''
    returnType: int
    signature: "int fr_ipaddr_to_sockaddr(struct sockaddr_storage *sa, socklen_t *salen,\n\t\t\t
      \ fr_ipaddr_t const *ipaddr, uint16_t port)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/inet.c:1451,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:1457,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1461,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/inet.c:1465,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/inet.c:1473,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1477,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/inet.c:1481,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/inet.c:1486,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - ipaddr
    - port
    - sa
    - salen
    argTypes:
    - fr_ipaddr_t*
    - uint16_t*
    - struct sockaddr_storage*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1491
    functionName: fr_ipaddr_from_sockaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 10
    functionsReached:
    - memcpy
    - fr_strerror_printf
    - fr_strerror_const
    - ntohs
    - memset
    linkageType: ''
    returnType: int
    signature: "int fr_ipaddr_from_sockaddr(fr_ipaddr_t *ipaddr, uint16_t *port,\n\t\t\t
      \   struct sockaddr_storage const *sa, socklen_t salen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1506,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:1513,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1527,1
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/lib/util/inet.c:1528,1
    - Dst: freeifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1533,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1534
    functionName: fr_ipaddr_get_scope_id
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 1
    functionsReached:
    - if_nametoindex
    - fr_ipaddr_from_sockaddr
    - fr_ipaddr_cmp
    - freeifaddrs
    - getifaddrs
    linkageType: ''
    returnType: void
    signature: void fr_ipaddr_get_scope_id(fr_ipaddr_t *ipaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1546,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:1554,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1569,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/inet.c:1570,1
    - Dst: freeifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - ipaddr
    argTypes:
    - TALLOC_CTX*
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1537
    functionDepth: 2
    functionLinenumber: 1537
    functionLinenumberEnd: 1578
    functionName: fr_ipaddr_to_interface
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_ipaddr_cmp
    - talloc_strdup
    - freeifaddrs
    - getifaddrs
    linkageType: ''
    returnType: char
    signature: char *fr_ipaddr_to_interface(TALLOC_CTX *ctx, fr_ipaddr_t *ipaddr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1586,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1593,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1595,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/inet.c:1597,1
    - Dst: IN6_IS_ADDR_LINKLOCAL
      Src: /src/freeradius-server/src/lib/util/inet.c:1605,1
    - Dst: freeifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1613,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 4
    argNames:
    - interface
    - ipaddr
    - af
    - link_local
    argTypes:
    - char*
    - fr_ipaddr_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1580
    functionDepth: 2
    functionLinenumber: 1580
    functionLinenumberEnd: 1615
    functionName: fr_interface_to_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - IN6_IS_ADDR_LINKLOCAL
    - memcpy
    - freeifaddrs
    - strcmp
    - getifaddrs
    linkageType: ''
    returnType: int
    signature: int fr_interface_to_ipaddr(char const *interface, fr_ipaddr_t *ipaddr,
      int af, bool link_local)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1631,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1635,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1644,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/inet.c:1653,1
    - Dst: LLADDR
      Src: /src/freeradius-server/src/lib/util/inet.c:1653,1
    - Dst: freeifaddrs
      Src: /src/freeradius-server/src/lib/util/inet.c:1660,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - interface
    - ethernet
    argTypes:
    - char*
    - fr_ethernet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1662
    functionName: fr_interface_to_ethernet
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - memcpy
    - freeifaddrs
    - LLADDR
    - strcmp
    - getifaddrs
    linkageType: ''
    returnType: int
    signature: int fr_interface_to_ethernet(char const *interface, fr_ethernet_t *ethernet)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1669,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1674,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1677,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1680,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1683,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1690,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1693,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1696,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/inet.c:1699,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/inet.c:1701,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/inet.c:1704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1707
    functionName: fr_sockaddr_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/inet.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - strcmp
    - CMP
    - memcmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_sockaddr_cmp(struct sockaddr_storage const *a, struct sockaddr_storage
      const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: fr_rate_limit_enabled
    functionSourceFile: /src/freeradius-server/src/lib/util/log.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_rate_limit_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_head
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: fr_pair_list_head
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 39
    functionsReached:
    - fr_pair_order_list_head
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE *fr_pair_list_head(fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_tail
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: fr_pair_list_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 2
    functionsReached:
    - fr_pair_order_list_tail
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE *fr_pair_list_tail(fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_next
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: fr_pair_list_next
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 38
    functionsReached:
    - fr_pair_order_list_next
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE *fr_pair_list_next(fr_pair_list_t const *list, fr_pair_t const
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_prev
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: fr_pair_list_prev
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 4
    functionsReached:
    - fr_pair_order_list_prev
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE *fr_pair_list_prev(fr_pair_list_t const *list, fr_pair_t const
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:100,1
    - Dst: fr_pair_order_list_in_a_list
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:100,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:101,1
    - Dst: fr_pair_parent_list
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:101,1
    - Dst: fr_pair_order_list_remove
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - vp
    argTypes:
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: fr_pair_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 12
    functionsReached:
    - fr_pair_order_list_in_a_list
    - fr_pair_parent_list
    - fr_assert
    - fr_pair_order_list_remove
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE *fr_pair_remove(fr_pair_list_t *list, fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_talloc_free
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: fr_pair_list_free
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 46
    functionsReached:
    - fr_pair_order_list_talloc_free
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_free(fr_pair_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_empty
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: fr_pair_list_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 50
    functionsReached:
    - fr_pair_order_list_empty
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_empty(fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_sort
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - cmp
    argTypes:
    - fr_pair_list_t*
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: fr_pair_list_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 15
    functionsReached:
    - fr_pair_order_list_sort
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_sort(fr_pair_list_t *list, fr_cmp_t cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_num_elements
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: fr_pair_list_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 4
    functionsReached:
    - fr_pair_order_list_num_elements
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_num_elements(fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: fr_dlist_head_t *fr_pair_list_to_dlist(fr_pair_list_t const *list)
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 0
    functionsReached:
    - fr_pair_order_list_dlist_head
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_dlist_head_t *fr_pair_list_to_dlist(fr_pair_list_t const
      *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: fr_pair_list_t *fr_pair_list_from_dlist(fr_dlist_head_t const *list)
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_t *fr_pair_list_from_dlist(fr_dlist_head_t const
      *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_move
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: fr_pair_list_append
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 20
    functionsReached:
    - fr_pair_order_list_move
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_append(fr_pair_list_t *dst, fr_pair_list_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_order_list_move_head
      Src: /src/freeradius-server/src/lib/util/pair_inline.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: fr_pair_list_prepend
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_inline.c
    functionUses: 3
    functionsReached:
    - fr_pair_order_list_move_head
    linkageType: ''
    returnType: _INLINE
    signature: _INLINE fr_pair_list_prepend(fr_pair_list_t *dst, fr_pair_list_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dict
    - ','
    - _ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: INTERNAL_IF_NULL
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_IF_NULL(_dict, _ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _da_p
    - ','
    - _parent
    - ','
    - _name
    - ','
    - _attr
    - ','
    - _type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: dict_attr_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dict_attr_init(_da_p, _parent, _name, _attr, _type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _da_p
    - ','
    - _parent
    - ','
    - _name
    - ','
    - _type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: dict_attr_init_name_only
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dict_attr_init_name_only(_da_p, _parent, _name, _type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _dict
    - ','
    - _name
    - ','
    - _attr
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: dict_attr_alloc_root
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dict_attr_alloc_root(_ctx, _dict, _name, _attr, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _ctx
    - ','
    - _parent
    - ','
    - _name
    - ','
    - _attr
    - ','
    - _type
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: dict_attr_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dict_attr_alloc(_ctx, _parent, _name, _attr, _type, _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: ATTRIBUTE_EQ
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTRIBUTE_EQ(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: PAIR_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _l
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: PAIR_VERIFY_WITH_LIST
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY_WITH_LIST(_l, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: PAIR_LIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_LIST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: PAIR_LIST_VERIFY_WITH_CTX
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_LIST_VERIFY_WITH_CTX(_c, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: PAIR_VERIFY_WITH_PARENT_VP
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY_WITH_PARENT_VP(_p, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: PAIR_VERIFY_WITH_PARENT_DA
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY_WITH_PARENT_DA(_p, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: PAIR_ALLOCED
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_ALLOCED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: fr_pair_nonnull_assert
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_nonnull_assert(fr_pair_t const *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pair.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pair_list
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: fr_pair_list_nonnull_assert
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    linkageType: ''
    returnType: bool
    signature: bool fr_pair_list_nonnull_assert(fr_pair_list_t const *pair_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: PAIR_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _l
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: PAIR_VERIFY_WITH_LIST
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY_WITH_LIST(_l, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: PAIR_LIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_LIST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: PAIR_LIST_VERIFY_WITH_CTX
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_LIST_VERIFY_WITH_CTX(_c, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: PAIR_VERIFY_WITH_PARENT_VP
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY_WITH_PARENT_VP(_p, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: PAIR_VERIFY_WITH_PARENT_DA
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_VERIFY_WITH_PARENT_DA(_p, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: PAIR_ALLOCED
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIR_ALLOCED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 235
    functionName: TEST_CHECK_PAIR
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_PAIR(_got, _exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _neq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: TEST_CHECK_PAIR_NEQ
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_PAIR_NEQ(_got, _neq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair.h:264,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/pair.h:266,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/pair.h:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: vp_da_data_type_check
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_table_str_by_value
    linkageType: ''
    returnType: bool
    signature: bool vp_da_data_type_check(fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_foreach(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: fr_pair_list_foreach_leaf
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_foreach_leaf(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: fr_pair_list_append_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_append_by_da(_ctx, _vp, _list, _attr, _val, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _len
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: fr_pair_list_append_by_da_len
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_append_by_da_len(_ctx, _vp, _list, _attr, _val, _len,
      _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: fr_pair_list_append_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_append_by_da_parent(_ctx, _vp, _list, _attr, _val, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _len
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: fr_pair_list_append_by_da_parent_len
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_append_by_da_parent_len(_ctx, _vp, _list, _attr, _val,
      _len, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: fr_pair_list_prepend_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_prepend_by_da(_ctx, _vp, _list, _attr, _val, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _len
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 404
    functionName: fr_pair_list_prepend_by_da_len
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_prepend_by_da_len(_ctx, _vp, _list, _attr, _val, _len,
      _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: fr_pair_list_replace_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_replace_by_da(_vp, _list, _attr, _val, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _ctx
    - ','
    - _vp
    - ','
    - _list
    - ','
    - _attr
    - ','
    - _val
    - ','
    - _len
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 451
    functionName: fr_pair_list_replace_by_da_len
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_list_replace_by_da_len(_ctx, _vp, _list, _attr, _val, _len,
      _tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair.h:545,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair.h:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - list
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t**
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: fr_pair_find_or_append_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 3
    functionsReached:
    - fr_pair_find_by_da
    - fr_pair_append_by_da
    linkageType: ''
    returnType: int
    signature: "int fr_pair_find_or_append_by_da(TALLOC_CTX *ctx, fr_pair_t **out,
      fr_pair_list_t *list,\n\t\t\t\t\t\t\t\t     fr_dict_attr_t const *da)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _cursor
    - ','
    - _list
    - ','
    - _iter
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 590
    functionName: fr_pair_dcursor_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_dcursor_iter_init(_cursor, _list, _iter, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _cursor
    - ','
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 608
    functionName: fr_pair_dcursor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_dcursor_init(_cursor, _list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair.h:624,1
    - Dst: fr_dcursor_copy_iter
      Src: /src/freeradius-server/src/lib/util/pair.h:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cursor
    - list
    - parent
    argTypes:
    - fr_dcursor_t*
    - fr_pair_list_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: fr_pair_dcursor_child_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached:
    - fr_dcursor_copy_iter
    - fr_pair_dcursor_init
    linkageType: ''
    returnType: fr_pair_t
    signature: fr_pair_t *fr_pair_dcursor_child_iter_init(fr_dcursor_t *cursor, fr_pair_list_t
      const *list, fr_dcursor_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cursor
    - ','
    - _list
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 644
    functionName: fr_pair_dcursor_by_da_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_dcursor_by_da_init(_cursor, _list, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _cursor
    - ','
    - _list
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 662
    functionName: fr_pair_dcursor_by_ancestor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_dcursor_by_ancestor_init(_cursor, _list, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _op
    - ','
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 678
    functionName: fr_pair_cmp_op
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_cmp_op(_op, _a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: fr_pair_set_immutable
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_pair_set_immutable(fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 708
    functionName: fr_pair_clear_immutable
    functionSourceFile: /src/freeradius-server/src/lib/util/pair.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_pair_clear_immutable(fr_pair_t *vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: network_min_size
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: network_min_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: network_max_size
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: network_max_size(_x)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/util/value.c:656,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:677,1
    - Dst: fr_value_box_list_entry_init
      Src: /src/freeradius-server/src/lib/util/value.c:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 687
    functionName: fr_value_box_copy_meta
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_entry_init
    - fr_assert
    - fr_value_box_list_init
    linkageType: ''
    returnType: void
    signature: void fr_value_box_copy_meta(fr_value_box_t *dst, fr_value_box_t const
      *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/util/value.c:701,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/util/value.c:703,1
    - Dst: fabs
      Src: /src/freeradius-server/src/lib/util/value.c:705,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/value.c:713,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/value.c:713,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/value.c:717,1
    - Dst: fabs
      Src: /src/freeradius-server/src/lib/util/value.c:723,1
    - Dst: fabs
      Src: /src/freeradius-server/src/lib/util/value.c:723,1
    - Dst: fmin
      Src: /src/freeradius-server/src/lib/util/value.c:733,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/value.c:735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 736
    functionName: float_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fmin
    - DIAG_ON
    - CMP
    - fpclassify
    - DIAG_OFF
    - fabs
    linkageType: ''
    returnType: int8_t
    signature: int8_t float_cmp(double a, double b)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:751,1
    - Dst: MEMCMP_FIELDS
      Src: /src/freeradius-server/src/lib/util/value.c:766,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:775,1
    - Dst: fr_unix_time_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:778,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:781,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:784,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:787,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:790,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:793,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:796,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:799,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:802,1
    - Dst: RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:805,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:808,1
    - Dst: float_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:811,1
    - Dst: float_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:814,1
    - Dst: COMPARE
      Src: /src/freeradius-server/src/lib/util/value.c:817,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:825,1
    - Dst: COMPARE
      Src: /src/freeradius-server/src/lib/util/value.c:828,1
    - Dst: fr_dict_attr_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:842,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/value.c:845,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 62
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 862
    functionName: fr_value_box_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - fr_dict_attr_cmp
    - float_cmp
    - fr_strerror_printf
    - fr_ipaddr_cmp
    - fr_cond_assert
    - CMP
    - MEMCMP_FIELDS
    - COMPARE
    - RETURN
    - fr_unix_time_cmp
    - fr_time_delta_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_value_box_cmp(fr_value_box_t const *a, fr_value_box_t const
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 772
    functionName: RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 773
    functionName: COMPARE
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE(_type)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/value.c:883,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 6
    argNames:
    - op
    - bytes
    - a_net
    - a
    - b_net
    - b
    argTypes:
    - fr_token_t
    - int
    - uint8_t
    - uint8_t*
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 975
    functionName: fr_value_box_cidr_cmp_op
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cidr_cmp_op(fr_token_t op, int bytes,\n\t\t\t\t uint8_t
      a_net, uint8_t const *a,\n\t\t\t\t uint8_t b_net, uint8_t const *b)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:997,1
    - Dst: fr_regex_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:997,1
    - Dst: fr_value_box_cidr_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:1014,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:1019,1
    - Dst: fr_value_box_cidr_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:1031,1
    - Dst: fr_value_box_cidr_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:1040,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:1045,1
    - Dst: fr_value_box_cidr_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:1063,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:1068,1
    - Dst: fr_value_box_cidr_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:1080,1
    - Dst: fr_value_box_cidr_cmp_op
      Src: /src/freeradius-server/src/lib/util/value.c:1089,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:1094,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/value.c:1117,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1130,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 148
    argCount: 3
    argNames:
    - op
    - a
    - b
    argTypes:
    - fr_token_t
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1159
    functionName: fr_value_box_cmp_op
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 4
    functionsReached:
    - unlikely
    - fr_assert
    - fr_value_box_cmp
    - fr_value_box_cidr_cmp_op
    - fr_regex_cmp_op
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_value_box_cmp_op(fr_token_t op, fr_value_box_t const *a, fr_value_box_t
      const *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1213,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1217,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1222,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1227,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - out
    - in
    - inlen
    - quote
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1232
    functionName: fr_value_str_unescape
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_out_unescape_until
    - fr_sbuff_out_bstrncpy
    linkageType: ''
    returnType: size_t
    signature: size_t fr_value_str_unescape(fr_sbuff_t *out, fr_sbuff_t *in, size_t
      inlen, char quote)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1285,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/value.c:1285,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1288,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/value.c:1288,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1291,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/value.c:1291,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:1294,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/value.c:1294,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - out
    - in
    - inlen
    - quote
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1298
    functionName: fr_value_substr_unescape
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_unescape_until
    - fr_sbuff_out_bstrncpy
    - FR_SBUFF_TERM
    linkageType: ''
    returnType: size_t
    signature: size_t fr_value_substr_unescape(fr_sbuff_t *out, fr_sbuff_t *in, size_t
      inlen, char quote)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:1335,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.c:1335,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/value.c:1339,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:1347,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:1360,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/value.c:1364,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/value.c:1369,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/value.c:1374,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/value.c:1378,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/value.c:1382,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/value.c:1386,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/value.c:1390,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/value.c:1390,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:1390,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/value.c:1394,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/value.c:1394,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:1394,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:1398,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 73
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1403
    functionName: fr_value_box_hton
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - htons
    - unlikely
    - fr_value_box_init
    - htonl
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_unix_time_wrap
    - htonll
    - fr_unix_time_unwrap
    - fr_assert_fail
    - fr_value_box_init_null
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int fr_value_box_hton(fr_value_box_t *dst, fr_value_box_t const *src)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/lib/util/value.c:1424,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/lib/util/value.c:1427,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1442,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:1442,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:1443,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - value
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1453
    functionName: fr_value_box_network_length
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - da_is_length_field16
    - fr_assert
    - network_min_size
    - da_is_length_field8
    linkageType: ''
    returnType: size_t
    signature: size_t fr_value_box_network_length(fr_value_box_t const *value)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:1498,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/value.c:1503,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:1505,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:1507,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1529,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1530,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:1531,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/lib/util/value.c:1540,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1545,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/lib/util/value.c:1547,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1550,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1554,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:1555,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1570,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:1570,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:1571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1579,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1586,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1591,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1600,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1601,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1608,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1609,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1614,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1615,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1616,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1620,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:1635,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:1650,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1660,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:1660,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:1677,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1679,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:1679,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:1692,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:1699,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:1704,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:1709,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:1714,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:1719,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1721,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:1721,1
    - Dst: fr_unix_time_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:1741,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1749,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1755,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1759,1
    - Dst: fr_time_delta_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:1775,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1788,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1798,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1802,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1816,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1825,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1829,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:1846,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 264
    argCount: 2
    argNames:
    - dbuff
    - value
    argTypes:
    - fr_dbuff_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1495
    functionDepth: 2
    functionLinenumber: 1495
    functionLinenumberEnd: 1847
    functionName: fr_value_box_to_network
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - da_is_length_field16
    - fr_strerror_printf
    - FR_DBUFF
    - fr_type_to_str
    - da_is_length_field8
    - fr_value_box_hton
    - fr_unix_time_to_integer
    - FR_DBUFF_MEMSET_RETURN
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_strerror_const
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - fr_value_box_raw
    - fr_dbuff_set
    - fr_value_box_init
    - network_min_size
    - fr_time_delta_to_integer
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_value_box_to_network(fr_dbuff_t *dbuff, fr_value_box_t const
      *value)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:1898,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:1900,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:1901,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:1903,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:1906,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:1908,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:1918,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:1920,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/util/value.c:1931,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/lib/util/value.c:1942,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1945,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/lib/util/value.c:1949,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1952,1
    - Dst: fr_value_box_bstrndup_dbuff
      Src: /src/freeradius-server/src/lib/util/value.c:1968,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:1971,1
    - Dst: fr_value_box_memdup_dbuff
      Src: /src/freeradius-server/src/lib/util/value.c:1974,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:1977,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:1987,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:1998,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2006,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2007,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2020,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2024,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2036,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2040,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2041,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:2045,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:2046,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:2047,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:2048,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2050,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:2054,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:2055,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:2056,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:2057,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2059,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2066,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2073,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:2073,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2077,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2081,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2085,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2089,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2093,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2097,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2101,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2105,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2109,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2113,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2118,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2134,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2139,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2144,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2149,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/value.c:2153,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/util/value.c:2155,1
    - Dst: FR_DBUFF_OUT_UINT64V_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2188,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/value.c:2190,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2191,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/value.c:2195,1
    - Dst: FR_DBUFF_OUT_INT64V_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2219,1
    - Dst: FR_DBUFF_OUT_UINT64V_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:2228,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/value.c:2235,1
    - Dst: fr_time_scale
      Src: /src/freeradius-server/src/lib/util/value.c:2235,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2245,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2246,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:2250,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 218
    argCount: 7
    argNames:
    - ctx
    - dst
    - type
    - enumv
    - dbuff
    - len
    - tainted
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 2251
    functionName: fr_value_box_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 5
    functionsReached:
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - da_is_length_field16
    - fr_strerror_printf
    - fr_unix_time_wrap
    - FR_DBUFF_OUT_UINT64V_RETURN
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_type_to_str
    - da_is_length_field8
    - fr_time_scale
    - fr_multiply
    - fr_strerror_const
    - fr_assert
    - fr_value_box_raw
    - fr_type_is_variable_size
    - fr_value_box_bstrndup_dbuff
    - FR_DBUFF_OUT_INT64V_RETURN
    - fr_dbuff_set
    - fr_value_box_init
    - fr_time_delta_wrap
    - network_min_size
    - fr_value_box_memdup_dbuff
    - fr_dict_attr_child_by_num
    - network_max_size
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_from_network(TALLOC_CTX *ctx,\n\t\t\t\t  fr_value_box_t
      *dst, fr_type_t type, fr_dict_attr_t const *enumv,\n\t\t\t\t  fr_dbuff_t *dbuff,
      size_t len,\n\t\t\t\t  bool tainted)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2308,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2309,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2317,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2323,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/lib/util/value.c:2335,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2336,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/lib/util/value.c:2337,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2346,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2365,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2376,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2381,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2390,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2392,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/util/value.c:2397,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 8
    argNames:
    - dst
    - type
    - enumv
    - prefix_len
    - data
    - data_len
    - fixed
    - tainted
    argTypes:
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - int
    - uint8_t*
    - size_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2296
    functionDepth: 2
    functionLinenumber: 2296
    functionLinenumberEnd: 2400
    functionName: fr_value_box_ipaddr_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - memcpy
    - fr_strerror_printf
    - fr_bytes_from_bits
    - fr_assert
    - fr_type_to_str
    - fr_ipaddr_mask
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_ipaddr_from_network(fr_value_box_t *dst, fr_type_t
      type, fr_dict_attr_t const *enumv,\n\t\t\t\t\t int prefix_len, uint8_t const
      *data, size_t data_len,\n\t\t\t\t\t bool fixed, bool tainted)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2426,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2427,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2431,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2432,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2437,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2438,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2442,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2443,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2448,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2449,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2453,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2454,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:2458,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:2461,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2464,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 6
    argNames:
    - ctx
    - dst
    - type
    - enumv
    - src
    - len
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2470
    functionName: fr_value_box_from_memory
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - fr_value_box_init
    - memcpy
    - fr_strerror_printf
    - fr_value_box_bstrndup
    - fr_type_to_str
    - fr_value_box_memdup
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_from_memory(TALLOC_CTX *ctx,\n\t\t\t\t fr_value_box_t
      *dst, fr_type_t type, fr_dict_attr_t const *enumv,\n\t\t\t\t void const *src,
      size_t len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/value.c:2503,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/value.c:2505,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:2514,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:2525,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2530,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2531,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - out
    - outlen
    - value
    argTypes:
    - uint8_t**
    - size_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2484
    functionDepth: 3
    functionLinenumber: 2484
    functionLinenumberEnd: 2536
    functionName: fr_value_box_to_key
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 4
    functionsReached:
    - fr_dbuff_init
    - fr_strerror_printf
    - UNCONST
    - fr_value_box_to_network
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_value_box_to_key(uint8_t **out, size_t *outlen, fr_value_box_t
      const *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_fixed_size
      Src: /src/freeradius-server/src/lib/util/value.c:2553,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2553,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:2555,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2556,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2558,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2559,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:2561,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2565,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:2577,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:2578,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2585,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:2586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2547
    functionDepth: 2
    functionLinenumber: 2547
    functionLinenumberEnd: 2589
    functionName: fr_value_box_fixed_size_from_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - network_min_size
    - memcpy
    - fr_value_box_hton
    - fr_cond_assert
    - fr_strerror_printf
    - fr_type_is_fixed_size
    - fr_type_to_str
    - network_max_size
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_fixed_size_from_octets(fr_value_box_t *dst,\n\t\t\t\t\t
      \     fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t      fr_value_box_t
      const *src)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2613,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2615,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2623,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/value.c:2631,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:2632,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:2636,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:2637,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:2649,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:2650,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:2652,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:2653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2656
    functionName: fr_value_box_cast_to_strvalue
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_init
    - fr_value_box_aprint
    - fr_value_box_safety_copy_changed
    - fr_cond_assert
    - UNCONST
    - fr_value_box_bstrndup
    - fr_value_box_bstrdup_buffer_shallow
    - fr_value_box_list_concat_in_place
    - fr_strerror_const
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_strvalue(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\tfr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\tfr_value_box_t
      const *src)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2672,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2674,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:2675,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:2683,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/value.c:2690,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:2691,1
    - Dst: fr_value_box_list_concat_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:2695,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:2696,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:2704,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/util/value.c:2715,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2719,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:2727,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/util/value.c:2738,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2742,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:2753,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:2754,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:2755,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:2775,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:2776,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2668
    functionDepth: 2
    functionLinenumber: 2668
    functionLinenumberEnd: 2782
    functionName: fr_value_box_cast_to_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - fr_value_box_mem_alloc
    - memcpy
    - fr_value_box_hton
    - fr_cond_assert
    - UNCONST
    - fr_value_box_list_concat_in_place
    - fr_assert
    - fr_strerror_const
    - fr_value_box_safety_copy
    - fr_value_box_raw
    - fr_value_box_memdup
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_octets(TALLOC_CTX *ctx, fr_value_box_t *dst,\n\t\t\t\t\t
      \     fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t      fr_value_box_t
      const *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2803,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2804,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_type_t
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2807
    functionName: fr_value_box_cast_unsupported
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_value_box_cast_unsupported(fr_type_t dst, fr_type_t src)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2831,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:2832,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:2836,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2849,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/value.c:2856,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2858,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2859,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2860,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2864,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2871,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2873,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2874,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2881,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2886,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2888,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2889,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/value.c:2893,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2894,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2900,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2901,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2902,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2906,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/value.c:2913,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2914,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:2919,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2825
    functionDepth: 2
    functionLinenumber: 2825
    functionLinenumberEnd: 2923
    functionName: fr_value_box_cast_to_ipv4addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - ntohl
    - memcpy
    - fr_strerror_printf
    - fr_assert
    - memcmp
    - fr_type_to_str
    - fr_value_box_cast_unsupported
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_ipv4addr(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\tfr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\tfr_value_box_t
      const *src)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:2945,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:2946,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:2950,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:2963,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2973,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/value.c:2980,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2982,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2983,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2984,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:2987,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/value.c:2993,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:2996,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2997,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:2998,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3002,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3013,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3014,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3015,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3020,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/value.c:3027,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3028,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3034,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 2939
    functionDepth: 2
    functionLinenumber: 2939
    functionLinenumberEnd: 3038
    functionName: fr_value_box_cast_to_ipv4prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - ntohl
    - memcpy
    - fr_strerror_printf
    - fr_assert
    - memcmp
    - fr_type_to_str
    - fr_value_box_cast_unsupported
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_ipv4prefix(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\t  fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\t
      \ fr_value_box_t const *src)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:3063,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:3064,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:3068,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3081,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3091,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3093,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3103,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3105,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3106,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3112,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3114,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3121,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3123,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3124,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3131,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3138,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3139,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3140,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3144,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3054
    functionDepth: 2
    functionLinenumber: 3054
    functionLinenumberEnd: 3152
    functionName: fr_value_box_cast_to_ipv6addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - memcpy
    - fr_strerror_printf
    - fr_assert
    - fr_type_to_str
    - fr_value_box_cast_unsupported
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_ipv6addr(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\tfr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\tfr_value_box_t
      const *src)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:3174,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:3175,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:3179,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3192,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3201,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3203,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3214,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3216,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3229,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3236,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3237,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3238,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3244,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3248,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3168
    functionDepth: 2
    functionLinenumber: 3168
    functionLinenumberEnd: 3251
    functionName: fr_value_box_cast_to_ipv6prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - memcpy
    - fr_strerror_printf
    - fr_assert
    - fr_type_to_str
    - fr_value_box_cast_unsupported
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_ipv6prefix(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\t  fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\t
      \ fr_value_box_t const *src)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:3270,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:3271,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:3275,1
    - Dst: fr_value_box_fixed_size_from_octets
      Src: /src/freeradius-server/src/lib/util/value.c:3280,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3289,1
    - Dst: fr_nbo_from_uint64
      Src: /src/freeradius-server/src/lib/util/value.c:3295,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3302,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3266
    functionDepth: 3
    functionLinenumber: 3266
    functionLinenumberEnd: 3311
    functionName: fr_value_box_cast_to_ethernet
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - memcpy
    - fr_value_box_fixed_size_from_octets
    - fr_nbo_from_uint64
    - fr_assert
    - fr_value_box_cast_unsupported
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_ethernet(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\tfr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\tfr_value_box_t
      const *src)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:3328,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:3329,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:3333,1
    - Dst: fr_value_box_fixed_size_from_octets
      Src: /src/freeradius-server/src/lib/util/value.c:3341,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3350,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:3390,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/value.c:3394,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/value.c:3398,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3402,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3406
      start: 3324
    functionDepth: 3
    functionLinenumber: 3324
    functionLinenumberEnd: 3406
    functionName: fr_value_box_cast_to_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - fr_time_delta_unwrap
    - fr_value_box_fixed_size_from_octets
    - fpclassify
    - fr_assert
    - fr_value_box_cast_unsupported
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_bool(TALLOC_CTX *ctx, fr_value_box_t *dst,\n\t\t\t\t\t
      \   fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t    fr_value_box_t
      const *src)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:3419,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:3430,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3432,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3433,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:3436,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3439,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3440,1
    - Dst: fr_unix_time_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3459,1
    - Dst: fr_time_delta_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3475,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3481,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:3482,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3484,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:3484,1
    - Dst: SIGN_BIT_HIGH
      Src: /src/freeradius-server/src/lib/util/value.c:3496,1
    - Dst: SIGN_PROMOTE
      Src: /src/freeradius-server/src/lib/util/value.c:3496,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3499,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3501,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3502,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3508,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3510,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3511,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3516,1
    - Dst: fr_unix_time_from_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3524,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:3526,1
    - Dst: fr_time_delta_from_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3538,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:3540,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3548,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:3548,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3551,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:3551,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3411
    functionDepth: 1
    functionLinenumber: 3411
    functionLinenumberEnd: 3558
    functionName: fr_value_box_cast_integer_to_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - SIGN_PROMOTE
    - memcpy
    - fr_unix_time_from_integer
    - fr_cond_assert_msg
    - fr_strerror_printf
    - fr_strerror_const
    - fr_unix_time_to_integer
    - fr_time_delta_to_integer
    - fr_type_to_str
    - fr_time_delta_from_integer
    - SIGN_BIT_HIGH
    - fr_value_box_raw
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_integer_to_integer(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t\t       fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t\t
      \      fr_value_box_t const *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _int
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3421
    functionDepth: 0
    functionLinenumber: 3421
    functionLinenumberEnd: 3422
    functionName: SIGN_BIT_HIGH
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGN_BIT_HIGH(_int, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _int
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 3422
    functionDepth: 0
    functionLinenumber: 3422
    functionLinenumberEnd: 3424
    functionName: SIGN_PROMOTE
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGN_PROMOTE(_int, _len)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:3574,1
    - Dst: fr_value_box_fixed_size_from_octets
      Src: /src/freeradius-server/src/lib/util/value.c:3579,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3582,1
    - Dst: fr_value_box_cast_integer_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3583,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3602,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3603,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:3604,1
    - Dst: fr_value_box_cast_integer_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3605,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3623,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:3624,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:3631,1
    - Dst: fr_value_box_cast_integer_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3633,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3646,1
    - Dst: fr_nbo_to_uint64
      Src: /src/freeradius-server/src/lib/util/value.c:3647,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:3654,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:3660,1
    - Dst: fr_unix_time_from_nsec
      Src: /src/freeradius-server/src/lib/util/value.c:3708,1
    - Dst: fr_time_delta_from_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3723,1
    - Dst: fr_unix_time_from_nsec
      Src: /src/freeradius-server/src/lib/util/value.c:3783,1
    - Dst: fr_time_delta_from_integer
      Src: /src/freeradius-server/src/lib/util/value.c:3798,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3814,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 185
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3815
      start: 3568
    functionDepth: 3
    functionLinenumber: 3568
    functionLinenumberEnd: 3815
    functionName: fr_value_box_cast_to_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_unix_time_from_nsec
    - fr_nbo_to_uint64
    - memcpy
    - fr_value_box_hton
    - fr_value_box_fixed_size_from_octets
    - fr_value_box_cast_integer_to_integer
    - fr_value_box_cast_unsupported
    - fr_strerror_const
    - fr_time_delta_from_integer
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_integer(TALLOC_CTX *ctx, fr_value_box_t *dst,\n\t\t\t\t\t
      \      fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t       fr_value_box_t
      const *src)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:3888,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:3896,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3908,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:3909,1
    - Dst: fr_value_box_cast_unsupported
      Src: /src/freeradius-server/src/lib/util/value.c:3923,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 86
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3825
    functionDepth: 2
    functionLinenumber: 3825
    functionLinenumberEnd: 3924
    functionName: fr_value_box_cast_to_float
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_init
    - fr_time_delta_unwrap
    - fr_unix_time_unwrap
    - fr_value_box_cast_unsupported
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_to_float(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t\t     fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t
      \    fr_value_box_t const *src)"
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:3950,1
    - Dst: fr_type_is_non_leaf
      Src: /src/freeradius-server/src/lib/util/value.c:3952,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:3953,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3954,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:3955,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.c:3977,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:3988,1
    - Dst: fr_value_box_cast_to_strvalue
      Src: /src/freeradius-server/src/lib/util/value.c:3995,1
    - Dst: fr_value_box_cast_to_octets
      Src: /src/freeradius-server/src/lib/util/value.c:3998,1
    - Dst: fr_value_box_cast_to_ipv4addr
      Src: /src/freeradius-server/src/lib/util/value.c:4001,1
    - Dst: fr_value_box_cast_to_ipv4prefix
      Src: /src/freeradius-server/src/lib/util/value.c:4004,1
    - Dst: fr_value_box_cast_to_ipv6addr
      Src: /src/freeradius-server/src/lib/util/value.c:4007,1
    - Dst: fr_value_box_cast_to_ipv6prefix
      Src: /src/freeradius-server/src/lib/util/value.c:4010,1
    - Dst: fr_value_box_cast_to_ethernet
      Src: /src/freeradius-server/src/lib/util/value.c:4022,1
    - Dst: fr_value_box_cast_to_bool
      Src: /src/freeradius-server/src/lib/util/value.c:4025,1
    - Dst: fr_value_box_cast_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:4028,1
    - Dst: fr_time_delta_isneg
      Src: /src/freeradius-server/src/lib/util/value.c:4030,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4031,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:4035,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/value.c:4037,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:4037,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:4051,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4053,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:4057,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/value.c:4059,1
    - Dst: fr_value_box_cast_to_integer
      Src: /src/freeradius-server/src/lib/util/value.c:4073,1
    - Dst: fr_type_is_fixed_size
      Src: /src/freeradius-server/src/lib/util/value.c:4077,1
    - Dst: fr_value_box_cast_to_float
      Src: /src/freeradius-server/src/lib/util/value.c:4078,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4089,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4094,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4099,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4104,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:4109,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4121,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4122,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4123,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:4130,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:4137,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4138,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4140,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4141,1
    - Dst: network_min_size
      Src: /src/freeradius-server/src/lib/util/value.c:4143,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:4147,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4148,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4150,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4151,1
    - Dst: network_max_size
      Src: /src/freeradius-server/src/lib/util/value.c:4153,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4157,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:4163,1
    - Dst: fr_value_box_hton
      Src: /src/freeradius-server/src/lib/util/value.c:4167,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/value.c:4168,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:4172,1
    - Dst: fr_value_box_safety_copy_changed
      Src: /src/freeradius-server/src/lib/util/value.c:4174,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 128
    argCount: 5
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4178
      start: 3946
    functionDepth: 4
    functionLinenumber: 3946
    functionLinenumberEnd: 4178
    functionName: fr_value_box_cast
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 32
    functionsReached:
    - fr_value_box_safety_copy_changed
    - fr_value_box_cast_in_place
    - memcpy
    - fr_cond_assert
    - fr_strerror_printf
    - fr_value_box_cast_to_ipv6addr
    - fr_time_delta_isneg
    - fr_value_box_cast_to_ipv6prefix
    - fr_unix_time_wrap
    - fr_type_is_fixed_size
    - fr_type_to_str
    - fr_value_box_cast_to_integer
    - fr_value_box_cast_to_octets
    - fr_value_box_hton
    - fr_strerror_const
    - fr_time_delta_unwrap
    - fr_value_box_cast_to_float
    - fr_value_box_cast_to_ipv4addr
    - fr_value_box_safety_copy
    - fr_value_box_cast_to_ipv4prefix
    - fr_value_box_init
    - fr_time_delta_wrap
    - fr_value_box_cast_to_bool
    - network_min_size
    - fr_value_box_cast_to_strvalue
    - fr_value_box_cast_to_ethernet
    - fr_type_is_non_leaf
    - fr_unix_time_unwrap
    - network_max_size
    - fr_value_box_from_str
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast(TALLOC_CTX *ctx, fr_value_box_t *dst,\n\t\t
      \     fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t      fr_value_box_t
      const *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:4220,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/value.c:4222,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:4227,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:4231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - vb
    - dst_type
    - dst_enumv
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4239
      start: 4196
    functionDepth: 5
    functionLinenumber: 4196
    functionLinenumberEnd: 4239
    functionName: fr_value_box_cast_in_place
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 26
    functionsReached:
    - fr_value_box_clear_value
    - fr_value_box_copy_shallow
    - fr_value_box_cast
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_cast_in_place(TALLOC_CTX *ctx, fr_value_box_t *vb,\n\t\t\t
      \      fr_type_t dst_type, fr_dict_attr_t const *dst_enumv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: O
      Src: /src/freeradius-server/src/lib/util/value.c:4254,1
    - Dst: O
      Src: /src/freeradius-server/src/lib/util/value.c:4255,1
    - Dst: O
      Src: /src/freeradius-server/src/lib/util/value.c:4256,1
    - Dst: O
      Src: /src/freeradius-server/src/lib/util/value.c:4257,1
    - Dst: O
      Src: /src/freeradius-server/src/lib/util/value.c:4258,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:4261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - vb
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4246
    functionDepth: 0
    functionLinenumber: 4246
    functionLinenumberEnd: 4264
    functionName: fr_value_box_as_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - O
    - fr_assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_value_box_as_uint64(fr_value_box_t const *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4250
      start: 4249
    functionDepth: 0
    functionLinenumber: 4249
    functionLinenumberEnd: 4250
    functionName: O
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: O(_x, _y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_is_prefix
      Src: /src/freeradius-server/src/lib/util/value.c:4286,1
    - Dst: fr_ipaddr_is_prefix
      Src: /src/freeradius-server/src/lib/util/value.c:4290,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4294,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4298,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:4299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - dst
    - enumv
    - ipaddr
    - tainted
    argTypes:
    - fr_value_box_t*
    - fr_dict_attr_t*
    - fr_ipaddr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4302
      start: 4280
    functionDepth: 2
    functionLinenumber: 4280
    functionLinenumberEnd: 4302
    functionName: fr_value_box_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - fr_ipaddr_is_prefix
    - fr_strerror_printf
    - fr_value_box_init
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_value_box_ipaddr(fr_value_box_t *dst, fr_dict_attr_t const *enumv,
      fr_ipaddr_t const *ipaddr, bool tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_ip
      Src: /src/freeradius-server/src/lib/util/value.c:4314,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4315,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4316,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:4320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_ipaddr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4323
      start: 4312
    functionDepth: 1
    functionLinenumber: 4312
    functionLinenumberEnd: 4323
    functionName: fr_value_unbox_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - memcpy
    - fr_type_to_str
    - fr_type_is_ip
    linkageType: ''
    returnType: int
    signature: int fr_value_unbox_ipaddr(fr_ipaddr_t *dst, fr_value_box_t *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset_explicit
      Src: /src/freeradius-server/src/lib/util/value.c:4336,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:4337,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/util/value.c:4350,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:4351,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:4352,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:4361,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/value.c:4368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4331
    functionDepth: 1
    functionLinenumber: 4331
    functionLinenumberEnd: 4369
    functionName: fr_value_box_clear_value
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 19
    functionsReached:
    - fr_value_box_clear_value
    - talloc_free
    - fr_value_box_list_pop_head
    - memset_explicit
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_value_box_clear_value(fr_value_box_t *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:4379,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4381
      start: 4377
    functionDepth: 2
    functionLinenumber: 4377
    functionLinenumberEnd: 4381
    functionName: fr_value_box_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 30
    functionsReached:
    - fr_value_box_init
    - fr_value_box_clear_value
    linkageType: ''
    returnType: void
    signature: void fr_value_box_clear(fr_value_box_t *data)
  - BBCount: 363
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_memcpy_out
      Src: /src/freeradius-server/src/lib/util/value.c:4401,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:4401,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4402,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4406,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:4416,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4418,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4422,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:4431,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4433,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/value.c:4438,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4441,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4449,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:4451,1
    - Dst: fr_value_box_alloc_null::fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/util/value.c:4457,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:4458,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4460,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:4461,1
    - Dst: fr_value_box_copy_meta::fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4472,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/util/value.c:4482,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4500,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:4500,1
    - Dst: switch
      Src: /src/freeradius-server/src/lib/util/value.c:4520,1
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/value.c:4522,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:4522,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.c:4522,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/value.c:4527,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4528,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4533,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4538,1
    - Dst: switch
      Src: /src/freeradius-server/src/lib/util/value.c:4554,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.c:4556,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/value.c:4562,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4564,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/value.c:4567,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4569,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/value.c:4570,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/value.c:4578,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4580,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/value.c:4583,1
    - Dst: fr_value_box_copy_meta
      Src: /src/freeradius-server/src/lib/util/value.c:4586,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/value.c:4587,1
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/util/value.c:4595,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/value.c:4596,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:4597,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4598,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/value.c:4601,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:4619,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:4624,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4626,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4630,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:4632,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:4650,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/value.c:4652,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:4653,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4655,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/value.c:4683,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/value.c:4684,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4688,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:4690,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/value.c:4713,1
    - Dst: fr_value_box_vasprintf
      Src: /src/freeradius-server/src/lib/util/value.c:4714,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/value.c:4715,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4732,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/value.c:4734,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:4747,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/value.c:4749,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/value.c:4764,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/value.c:4769,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4771,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4776,1
    - Dst: len
      Src: /src/freeradius-server/src/lib/util/value.c:4778,1
    - Dst: fr_value_box_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/value.c:4797,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:4802,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:4804,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/value.c:4807,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4809,1
    - Dst: len
      Src: /src/freeradius-server/src/lib/util/value.c:4822,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:4838,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:4843,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4844,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:4849,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4851,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4855,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/value.c:4867,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:4869,1
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/value.c:4873,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:4873,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:4874,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4879,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/value.c:4906,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:4908,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4910,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:4925,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4928,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/value.c:4951,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:4953,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4955,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/value.c:4960,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/util/value.c:4985,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/value.c:4990,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:4992,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:4997,1
    - Dst: vb_octets
      Src: /src/freeradius-server/src/lib/util/value.c:4904,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/value.c:5034,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5039,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5084,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5085,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5090,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5092,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/value.c:5095,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5097,1
    - Dst: fr_value_box_memdup_dbuff
      Src: /src/freeradius-server/src/lib/util/value.c:5104,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/value.c:5109,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5111,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5115,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5116,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5121,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/value.c:5144,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5146,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:5146,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:5163,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5166,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/value.c:5184,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5186,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/value.c:5187,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:5188,1
    - Dst: fr_value_box_set_cursor_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:5194,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5196,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5198,1
    - Dst: fr_value_box_attr_enumv
      Src: /src/freeradius-server/src/lib/util/value.c:5215,1
    - Dst: FR_DICT_ATTR_EXT_REF
      Src: /src/freeradius-server/src/lib/util/value.c:5226,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5228,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5229,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5243,1
    - Dst: fr_value_box_attr_enumv
      Src: /src/freeradius-server/src/lib/util/value.c:5246,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:5291,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5316,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5320,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5324,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5328,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5332,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5336,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5340,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5344,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5348,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5352,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5356,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5360,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:5364,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:5375,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/value.c:5376,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5379,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/value.c:5380,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5380,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5380,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5386,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:5387,1
    - Dst: fr_sbuff_parse_error_to_strerror
      Src: /src/freeradius-server/src/lib/util/value.c:5389,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:5414,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/value.c:5421,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5434,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/value.c:5447,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5449,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5449,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:5451,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/value.c:5452,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/value.c:5456,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5456,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/value.c:5461,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/value.c:5473,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:5487,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/value.c:5490,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/value.c:5494,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5494,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5494,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/value.c:5496,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/value.c:5504,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5506,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5522,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:5522,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:5526,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:5531,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5532,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5532,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5534,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5548,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/value.c:5553,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:5554,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:5557,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5558,1
    - Dst: talloc_typed_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5565,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:5565,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5566,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5567,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5568,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/value.c:5582,1
    - Dst: fr_value_box_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:5585,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5590,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5591,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5592,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5594,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/value.c:5597,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5608,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5610,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5611,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5615,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5616,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/util/value.c:5622,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:5627,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5629,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5629,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/value.c:5629,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5630,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5631,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5634,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5639,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5639,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/value.c:5642,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5642,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5651,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5656,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5662,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5662,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/value.c:5665,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5665,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5672,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5672,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5678,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5679,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5679,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/value.c:5682,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5682,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5691,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5696,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5702,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5702,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/value.c:5705,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5705,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5712,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5712,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5718,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5719,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5719,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/value.c:5722,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5722,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5733,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5739,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5739,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/value.c:5742,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5742,1
    - Dst: fr_value_box_from_numeric_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5757,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:5760,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5764,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5769,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5780,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5786,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5793,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/value.c:5805,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5825,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/value.c:5825,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/value.c:5826,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5828,1
    - Dst: fr_value_box_ethernet_addr
      Src: /src/freeradius-server/src/lib/util/value.c:5829,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5831,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/value.c:5834,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5836,1
    - Dst: fr_sbuff_parse_error_to_strerror
      Src: /src/freeradius-server/src/lib/util/value.c:5839,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5840,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5843,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5845,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5846,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5849,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5852,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5854,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5857,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5859,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5862,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5864,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5867,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5869,1
    - Dst: fr_value_box_ethernet_addr
      Src: /src/freeradius-server/src/lib/util/value.c:5872,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5872,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5874,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5878,1
    - Dst: fr_time_delta_from_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5880,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5886,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5889,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5892,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5893,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5894,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5897,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5902,1
    - Dst: fr_value_box_attr_enumv
      Src: /src/freeradius-server/src/lib/util/value.c:5911,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5914,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5918,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5920,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/value.c:5925,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/value.c:5929,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/value.c:5930,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5932,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5932,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:5934,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/value.c:5935,1
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5947,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5947,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5951,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5954,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/value.c:5958,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5959,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5964,1
    - Dst: fr_dict_attr_by_oid_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5966,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5968,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5970,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5971,1
    - Dst: fr_sbuff_is_digit
      Src: /src/freeradius-server/src/lib/util/value.c:5979,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/value.c:5981,1
    - Dst: fr_dict_attr_unknown_afrom_oid_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5985,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5989,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:6005,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/value.c:6005,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:6019,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:6021,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6025,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:6025,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:6025,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:6026,1
    - Dst: fr_unix_time_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:6033,1
    - Dst: fr_unix_time_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:6035,1
    - Dst: fr_inet_ifid_pton
      Src: /src/freeradius-server/src/lib/util/value.c:6043,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6044,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6050,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6050,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/util/value.c:6057,1
    - Dst: fr_value_box_list_entry_init
      Src: /src/freeradius-server/src/lib/util/value.c:6063,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6065,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/util/value.c:6076,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/value.c:6076,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6080,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6081,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/value.c:6083,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6107,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/util/value.c:6114,1
    - Dst: FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6116,1
    - Dst: FR_SBUFF_IN_ESCAPE_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6123,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6128,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6129,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/value.c:6130,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/lib/util/value.c:6143,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6144,1
    - Dst: fr_inet_ntop_prefix
      Src: /src/freeradius-server/src/lib/util/value.c:6150,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6151,1
    - Dst: fr_inet_ifid_ntop
      Src: /src/freeradius-server/src/lib/util/value.c:6155,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6156,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6160,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6167,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6171,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6175,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6179,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6183,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6187,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6191,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6195,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6199,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6203,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6207,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6216,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6221,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6235,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6256,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6257,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:6258,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6261,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6268,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:6271,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:6284,1
    - Dst: FR_DICT_ATTR_OID_PRINT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6292,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/value.c:6300,1
    - Dst: FR_DICT_ATTR_OID_PRINT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6302,1
    - Dst: FR_SBUFF_IN_ESCAPE_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6304,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:6304,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6305,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6310,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:6324,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6329,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6334,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6347,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6349,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6353,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6354,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6355,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6359,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6362,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6392,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/value.c:6395,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6403,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6413,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/value.c:6416,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6418,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6423,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6425,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6437,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6445,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6446,1
    - Dst: vb_should_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6477,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6477,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6478,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6478,1
    - Dst: vb_should_free
      Src: /src/freeradius-server/src/lib/util/value.c:6479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6479,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6482,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6508,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/value.c:6512,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6518,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6524,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6528,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:6539,1
    - Dst: fr_value_box_cast_to_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6544,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6549,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6550,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6557,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6561,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6562,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/value.c:6566,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6569,1
    - Dst: vb_should_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6577,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6577,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6578,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6578,1
    - Dst: vb_should_free
      Src: /src/freeradius-server/src/lib/util/value.c:6579,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6579,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:6582,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/value.c:6615,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/value.c:6619,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:6620,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.c:6628,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6632,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6632,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6636,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6636,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6640,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6641,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6665,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6668,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6672,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6672,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6676,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6676,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6688,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/util/value.c:6691,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6694,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6695,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6695,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:6696,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6696,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6696,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6700,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6704,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/util/value.c:6707,1
    - Dst: fr_dbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6710,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6711,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6711,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:6712,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6712,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6712,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/util/value.c:6719,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6732,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6735,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:6738,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6738,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6738,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6743,1
    - Dst: fr_dbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6746,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:6749,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6749,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6749,1
    - Dst: fr_value_box_list_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6778,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6786,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6786,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:6790,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6791,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6791,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6801,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/util/value.c:6803,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6804,1
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6833,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6834,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/value.c:6849,1
    - Dst: fr_value_box_escape_in_place_erules
      Src: /src/freeradius-server/src/lib/util/value.c:6850,1
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6855,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/value.c:6887,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/value.c:6892,1
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6895,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6908,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:6913,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.c:6913,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6919,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6921,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/value.c:6924,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:6928,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:6928,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6928,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6930,1
    - Dst: fr_value_box_escape_in_place_erules
      Src: /src/freeradius-server/src/lib/util/value.c:6950,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/value.c:6965,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:6967,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6968,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/value.c:6969,1
    - Dst: fr_value_box_list_insert_before
      Src: /src/freeradius-server/src/lib/util/value.c:6970,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6973,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/value.c:6990,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:6996,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6998,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:7004,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7005,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7007,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7010,1
    - Dst: talloc_buffer_append_variadic_buffer
      Src: /src/freeradius-server/src/lib/util/value.c:7013,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7014,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7015,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7016,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7020,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7022,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/value.c:7040,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7046,1
    - Dst: fr_value_box_contains_secret
      Src: /src/freeradius-server/src/lib/util/value.c:7046,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7047,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7049,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7052,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:7058,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7059,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7061,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7064,1
    - Dst: fr_value_box_contains_secret
      Src: /src/freeradius-server/src/lib/util/value.c:7064,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7065,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7067,1
    - Dst: talloc_buffer_append_variadic_buffer
      Src: /src/freeradius-server/src/lib/util/value.c:7071,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7072,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7073,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7074,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7078,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7080,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7092,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:7092,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7096,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7099,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7109,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7129,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/util/value.c:7132,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7135,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.c:7139,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/value.c:7140,1
    - Dst: fr_value_box_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/value.c:7140,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7157,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/value.c:7158,1
    - Dst: fr_value_box_list_tainted
      Src: /src/freeradius-server/src/lib/util/value.c:7158,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7173,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/value.c:7174,1
    - Dst: fr_value_box_list_taint
      Src: /src/freeradius-server/src/lib/util/value.c:7174,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/util/value.c:7175,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7188,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/value.c:7189,1
    - Dst: fr_value_box_list_untaint
      Src: /src/freeradius-server/src/lib/util/value.c:7189,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/util/value.c:7199,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7205,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/util/value.c:7206,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/value.c:7208,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7211,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7218,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:7218,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7224,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7226,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:7230,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:7234,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7244,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:7244,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7250,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7255,1
    - Dst: fr_value_box_list_verify
      Src: /src/freeradius-server/src/lib/util/value.c:7260,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7264,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:7275,1
    - Dst: fr_value_box_verify
      Src: /src/freeradius-server/src/lib/util/value.c:7275,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7289,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7319,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.c:7404,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/value.c:7415,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/value.c:7419,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/value.c:7426,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/value.c:7427,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7441,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:7442,1
    - Dst: _fr_value_box_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7442,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7443,1
    - Dst: _fr_value_box_list_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7452,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/value.c:7460,1
    - Dst: _fr_value_box_list_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7461,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/value.c:7468,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:7468,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/value.c:7470,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/value.c:7471,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:7472,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7476,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7478,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:7478,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7479,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7484,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:7484,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7485,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7490,1
    - Dst: _fr_value_box_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7499,1
    CyclomaticComplexity: 392
    EdgeCount: 392
    ICount: 1330
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7500
      start: 4394
    functionDepth: 6
    functionLinenumber: 4394
    functionLinenumberEnd: 7500
    functionName: fr_value_box_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 44
    functionsReached:
    - fr_value_box_list_head
    - fr_value_box_aprint
    - fr_inet_ifid_ntop
    - memcpy
    - talloc_bstrndup
    - fr_sbuff_out
    - talloc_realloc
    - fr_strerror_printf
    - fr_dbuff_in_memcpy
    - fr_dbuff_start
    - fr_value_box_bstrndup
    - vb_should_free
    - FR_DICT_ATTR_EXT_REF
    - fr_value_box_cast
    - fr_assert_msg
    - func
    - fr_value_box_escape_in_place
    - FR_DBUFF_IN_MEMCPY_RETURN
    - fr_type_is_group
    - fr_vasprintf
    - fr_value_box_attr_enumv
    - FR_SBUFF_SET_RETURN
    - fr_value_box_alloc_null::fr_value_box_alloc_null
    - talloc_typed_memdup
    - fr_sbuff_remaining
    - fr_dbuff_used
    - fr_sbuff_is_digit
    - fr_base16_decode
    - fr_inet_pton4
    - va_end
    - talloc_steal
    - fr_value_box_list_insert_tail
    - htonll
    - FR_SBUFF_ERROR_RETURN
    - fr_box_strvalue_len
    - fr_inet_ntop
    - fr_fatal_assert_msg
    - fr_dict_attr_unknown_afrom_oid_substr
    - fr_value_box_vasprintf
    - fr_value_box_init_null
    - _fr_value_box_list_debug
    - fr_value_box_from_substr
    - fr_sbuff_adv_past_str_literal
    - fr_value_box_bstrdup_buffer_shallow
    - fr_value_box_list_taint
    - fr_sbuff_adv_past_strcase_literal
    - fr_sbuff_set
    - fr_sbuff_start
    - fr_type_is_leaf
    - va_start
    - talloc_array
    - fr_dbuff_init
    - FR_SBUFF_OUT
    - fr_value_box_list_pop_head
    - fr_fatal_assert_fail
    - fr_value_box_set_cursor_shallow
    - strlen
    - FR_DBUFF
    - fr_sbuff_out_unescape_until
    - fr_value_box_memdup_shallow
    - fr_value_box_memdup_buffer_shallow
    - FR_SBUFF_RETURN
    - fr_dbuff_out_memcpy
    - fr_value_box_list_remove
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_value_box_cast_to_octets
    - fr_inet_pton
    - fr_inet_ifid_pton
    - fr_table_str_by_value
    - INFO_INDENT
    - fr_sbuff_buff
    - fr_sbuff_in_bstrncpy
    - vb_should_free_value
    - FR_SBUFF_IN
    - fr_value_box_list_foreach
    - fr_dict_enum_by_name
    - talloc_pool
    - FR_SBUFF_IN_STRCPY_RETURN
    - fr_value_box_list_next
    - fr_assert_fail
    - fr_value_box_memdup
    - fr_sbuff_next_if_char
    - fr_dict_attr_unknown_copy
    - talloc_free
    - FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
    - fr_sbuff_used
    - snprintf
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_value_box_ethernet_addr
    - fr_sbuff_parse_error_to_strerror
    - fr_value_box_memcpy_out
    - fr_hash
    - fr_inet_ntop_prefix
    - vb_should_remove
    - fr_value_box_cast_in_place
    - fr_cond_assert
    - talloc_size
    - fr_value_box_contains_secret
    - fr_value_box_mark_safe_for
    - fr_sbuff_current
    - FR_DBUFF_TMP
    - fr_sbuff_marker_release
    - fr_value_box_list_insert_head
    - DIAG_OFF
    - fr_sbuff_in_escape
    - FR_SBUFF_IN_SPRINTF_RETURN
    - unlikely
    - talloc_reference
    - fr_value_box_mark_unsafe
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_value_box_escape_in_place_erules
    - fr_value_box_strdup
    - fr_dict_attr_by_oid_substr
    - fr_sbuff_adv_until
    - fr_dbuff_trim_talloc
    - fr_value_box_bstrndup_shallow
    - FR_SBUFF
    - fr_value_box_list_empty
    - fr_strerror_const
    - fr_value_box_list_tainted
    - vb_octets
    - talloc_memdup
    - fr_ipaddr_is_inaddr_any
    - fr_value_box_copy_meta
    - talloc_set_type
    - UNCONST
    - fr_sbuff_marker
    - fr_value_box_bstr_realloc
    - fr_value_box_list_entry_init
    - fr_assert
    - talloc_buffer_append_variadic_buffer
    - talloc_array_length
    - fr_value_box_list_verify
    - talloc_strlen
    - fr_value_box_raw
    - fr_unix_time_from_str
    - fr_sbuff_extend
    - fr_value_box_init
    - FR_SBUFF_IN_ESCAPE_RETURN
    - fr_value_box_print
    - fr_value_box_is_safe_for
    - fr_value_box_list_untaint
    - fr_value_box_list_concat_as_string
    - fr_value_box_memdup_dbuff
    - fr_sbuff_is_char
    - fr_value_box_list_talloc_free
    - fr_size_from_str
    - fr_value_box_list_num_elements
    - fr_value_box_list_concat_as_octets
    - switch
    - fr_dict_root
    - fr_value_box_copy
    - fr_time_delta_from_substr
    - fr_dict_enum_name_by_value
    - fr_dbuff_buff
    - fr_value_box_clear_value
    - fr_type_is_structural
    - DIAG_ON
    - talloc_strdup
    - fr_sbuff_out_aunescape_until
    - fr_value_box_from_numeric_substr
    - FR_DICT_ATTR_OID_PRINT_RETURN
    - fr_type_to_str
    - fr_value_box_list_insert_before
    - fr_value_box_alloc_null
    - fr_sbuff_trim_talloc
    - fr_sbuff_set_to_start
    - fr_value_box_verify
    - talloc_zero_array
    - fr_value_box_safety_merge
    - memset
    - fr_value_box_copy_meta::fr_value_box_copy_meta
    - fr_time_delta_unwrap
    - _fr_value_box_debug
    - len
    - fr_sbuff_init_talloc
    - fr_dict_protocol_reference
    - fr_value_box_list_escape_in_place
    - fr_sbuff_advance
    - fr_strerror_printf_push
    - fr_value_box_mem_alloc
    - fr_sbuff_is_terminal
    - fr_dbuff_set
    - if
    - fr_dbuff_init_talloc
    - fr_inet_pton6
    - talloc_get_type_abort_const
    - fr_strerror_clear
    - fr_value_box_bstr_alloc
    - fr_value_box_list_dlist_head
    - fr_dlist_insert_tail
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: int
    signature: int fr_value_box_copy(TALLOC_CTX *ctx, fr_value_box_t *dst, const fr_value_box_t
      *src)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:5291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - vb
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5294
      start: 5255
    functionDepth: 1
    functionLinenumber: 5255
    functionLinenumberEnd: 5294
    functionName: fr_value_box_increment
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_assert_fail
    linkageType: ''
    returnType: void
    signature: void fr_value_box_increment(fr_value_box_t *vb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5316,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5320,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5324,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5328,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5332,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5336,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5340,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5344,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5348,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5352,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5356,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5360,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:5364,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:5375,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/value.c:5376,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5379,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/value.c:5380,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5380,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5380,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5386,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:5387,1
    - Dst: fr_sbuff_parse_error_to_strerror
      Src: /src/freeradius-server/src/lib/util/value.c:5389,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 6
    argNames:
    - dst
    - dst_type
    - dst_enumv
    - in
    - rules
    - tainted
    argTypes:
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5394
      start: 5309
    functionDepth: 1
    functionLinenumber: 5309
    functionLinenumberEnd: 5394
    functionName: fr_value_box_from_numeric_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - fr_value_box_init
    - fr_sbuff_out
    - fr_sbuff_used
    - fr_strerror_printf
    - fr_sbuff_adv_until
    - fr_box_strvalue_len
    - fr_sbuff_parse_error_to_strerror
    - FR_SBUFF
    - fr_type_to_str
    - fr_assert_fail
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_value_box_from_numeric_substr(fr_value_box_t *dst, fr_type_t
      dst_type,\n\t\t\t\t\t   fr_dict_attr_t const *dst_enumv,\n\t\t\t\t\t   fr_sbuff_t
      *in, fr_sbuff_parse_rules_t const *rules, bool tainted)"
  - BBCount: 105
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:5414,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/value.c:5421,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5434,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/value.c:5447,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5449,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5449,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:5451,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/value.c:5452,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/value.c:5456,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5456,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/value.c:5461,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/value.c:5473,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:5487,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/value.c:5490,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/value.c:5494,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5494,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5494,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/value.c:5496,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/value.c:5504,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5506,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5522,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:5522,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:5526,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:5531,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5532,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5532,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5534,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5548,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/value.c:5553,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:5554,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:5557,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5558,1
    - Dst: talloc_typed_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5565,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/value.c:5565,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5566,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5567,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5568,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/value.c:5582,1
    - Dst: fr_value_box_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/value.c:5585,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5590,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5591,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:5592,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5594,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/value.c:5597,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5608,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:5610,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5611,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5615,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5616,1
    - Dst: fr_value_box_mem_alloc
      Src: /src/freeradius-server/src/lib/util/value.c:5622,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:5627,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:5629,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5629,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/value.c:5629,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:5630,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5631,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5634,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5639,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5639,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/value.c:5642,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5642,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5651,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5656,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5662,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5662,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/value.c:5665,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5665,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5672,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5672,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5678,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5679,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5679,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/value.c:5682,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5682,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5691,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5696,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5702,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5702,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/value.c:5705,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5705,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5712,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5712,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5718,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5719,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5719,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/value.c:5722,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5722,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:5733,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5739,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5739,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/value.c:5742,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5742,1
    - Dst: fr_value_box_from_numeric_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5757,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:5760,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5764,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5769,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5780,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5786,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5793,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/value.c:5805,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/value.c:5825,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/value.c:5825,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/value.c:5826,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5828,1
    - Dst: fr_value_box_ethernet_addr
      Src: /src/freeradius-server/src/lib/util/value.c:5829,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5831,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/value.c:5834,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5836,1
    - Dst: fr_sbuff_parse_error_to_strerror
      Src: /src/freeradius-server/src/lib/util/value.c:5839,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5840,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5843,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5845,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5846,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5849,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5852,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5854,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5857,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5859,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5862,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5864,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5867,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/value.c:5869,1
    - Dst: fr_value_box_ethernet_addr
      Src: /src/freeradius-server/src/lib/util/value.c:5872,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:5872,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5874,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5878,1
    - Dst: fr_time_delta_from_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5880,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5886,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5889,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5892,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5893,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5894,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5897,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5902,1
    - Dst: fr_value_box_attr_enumv
      Src: /src/freeradius-server/src/lib/util/value.c:5911,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5914,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.c:5918,1
    - Dst: fr_sbuff_adv_past_str_literal
      Src: /src/freeradius-server/src/lib/util/value.c:5920,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/value.c:5925,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/value.c:5929,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/value.c:5930,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/value.c:5932,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:5932,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:5934,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/value.c:5935,1
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5942,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:5947,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:5947,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5951,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:5954,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/value.c:5958,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5959,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5964,1
    - Dst: fr_dict_attr_by_oid_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5966,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:5968,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/value.c:5970,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5971,1
    - Dst: fr_sbuff_is_digit
      Src: /src/freeradius-server/src/lib/util/value.c:5979,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/value.c:5981,1
    - Dst: fr_dict_attr_unknown_afrom_oid_substr
      Src: /src/freeradius-server/src/lib/util/value.c:5985,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:5989,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/value.c:6005,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/value.c:6005,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:6019,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:6021,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6025,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/value.c:6025,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:6025,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/value.c:6026,1
    - Dst: fr_unix_time_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:6033,1
    - Dst: fr_unix_time_from_str
      Src: /src/freeradius-server/src/lib/util/value.c:6035,1
    - Dst: fr_inet_ifid_pton
      Src: /src/freeradius-server/src/lib/util/value.c:6043,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6044,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6050,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6050,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/util/value.c:6057,1
    - Dst: fr_value_box_list_entry_init
      Src: /src/freeradius-server/src/lib/util/value.c:6063,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6065,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 402
    argCount: 6
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - in
    - rules
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6066
      start: 5408
    functionDepth: 5
    functionLinenumber: 5408
    functionLinenumberEnd: 6066
    functionName: fr_value_box_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 5
    functionsReached:
    - fr_sbuff_start
    - memcpy
    - fr_sbuff_out
    - fr_dbuff_init
    - fr_time_delta_from_substr
    - fr_strerror_printf
    - FR_SBUFF_OUT
    - fr_dbuff_start
    - fr_value_box_bstrndup
    - fr_sbuff_current
    - FR_DBUFF_TMP
    - fr_sbuff_marker_release
    - fr_value_box_cast
    - fr_sbuff_out_aunescape_until
    - fr_value_box_from_numeric_substr
    - fr_sbuff_out_unescape_until
    - fr_type_to_str
    - fr_value_box_memdup_buffer_shallow
    - FR_DBUFF_IN_MEMCPY_RETURN
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - unlikely
    - fr_value_box_mark_unsafe
    - fr_sbuff_set_to_start
    - fr_inet_pton
    - fr_dict_attr_by_oid_substr
    - fr_inet_ifid_pton
    - talloc_typed_memdup
    - FR_SBUFF_SET_RETURN
    - fr_value_box_attr_enumv
    - fr_sbuff_remaining
    - talloc_zero_array
    - FR_SBUFF
    - fr_strerror_const
    - fr_base16_decode
    - fr_sbuff_is_digit
    - fr_inet_pton4
    - FR_SBUFF_IN
    - fr_sbuff_marker
    - fr_dict_protocol_reference
    - fr_value_box_list_entry_init
    - fr_assert
    - htonll
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_advance
    - fr_dict_enum_by_name
    - talloc_strlen
    - fr_unix_time_from_str
    - fr_dict_attr_unknown_afrom_oid_substr
    - fr_sbuff_next_if_char
    - fr_value_box_memdup
    - fr_strerror_printf_push
    - fr_sbuff_extend
    - fr_value_box_mem_alloc
    - fr_value_box_init
    - fr_sbuff_is_terminal
    - talloc_free
    - fr_sbuff_used
    - fr_sbuff_adv_past_str_literal
    - fr_sbuff_is_char
    - fr_value_box_bstrdup_buffer_shallow
    - fr_inet_pton6
    - fr_size_from_str
    - fr_sbuff_adv_past_strcase_literal
    - fr_value_box_ethernet_addr
    - fr_strerror_clear
    - fr_sbuff_parse_error_to_strerror
    - fr_sbuff_set
    - fr_dict_root
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_from_substr(TALLOC_CTX *ctx, fr_value_box_t *dst,\n\t\t\t\t
      fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\t fr_sbuff_t *in,
      fr_sbuff_parse_rules_t const *rules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/util/value.c:6076,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/value.c:6076,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6080,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6081,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/value.c:6083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - ctx
    - dst
    - dst_type
    - dst_enumv
    - in
    - inlen
    - erules
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_dict_attr_t*
    - char*
    - size_t
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6088
      start: 6068
    functionDepth: 6
    functionLinenumber: 6068
    functionLinenumberEnd: 6088
    functionName: fr_value_box_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 29
    functionsReached:
    - fr_value_box_from_substr
    - fr_strerror_printf
    - FR_SBUFF_IN
    - fr_box_strvalue_len
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_from_str(TALLOC_CTX *ctx, fr_value_box_t *dst,\n\t\t\t
      \     fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t      char
      const *in, size_t inlen,\n\t\t\t      fr_sbuff_unescape_rules_t const *erules)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6107,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/util/value.c:6114,1
    - Dst: FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6116,1
    - Dst: FR_SBUFF_IN_ESCAPE_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6123,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6128,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6129,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/value.c:6130,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/lib/util/value.c:6143,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6144,1
    - Dst: fr_inet_ntop_prefix
      Src: /src/freeradius-server/src/lib/util/value.c:6150,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6151,1
    - Dst: fr_inet_ifid_ntop
      Src: /src/freeradius-server/src/lib/util/value.c:6155,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6156,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6160,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6167,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6171,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6175,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6179,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6183,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6187,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6191,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6195,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6199,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6203,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6207,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6216,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6221,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6235,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6256,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6257,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.c:6258,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6261,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6268,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:6271,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:6284,1
    - Dst: FR_DICT_ATTR_OID_PRINT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6292,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/value.c:6300,1
    - Dst: FR_DICT_ATTR_OID_PRINT_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6302,1
    - Dst: FR_SBUFF_IN_ESCAPE_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6304,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:6304,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6305,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6310,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/value.c:6324,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6329,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6334,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 145
    argCount: 3
    argNames:
    - out
    - data
    - e_rules
    argTypes:
    - fr_sbuff_t*
    - fr_value_box_t*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6335
      start: 6105
    functionDepth: 3
    functionLinenumber: 6105
    functionLinenumberEnd: 6335
    functionName: fr_value_box_print
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 19
    functionsReached:
    - fr_inet_ntop_prefix
    - fr_sbuff_start
    - fr_inet_ifid_ntop
    - fr_cond_assert
    - FR_DBUFF_TMP
    - fr_assert_msg
    - FR_DICT_ATTR_OID_PRINT_RETURN
    - FR_SBUFF_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - fr_strerror_const
    - UNCONST
    - fr_inet_ntop
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_IN_ESCAPE_RETURN
    - FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
    - fr_sbuff_used
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_dict_enum_name_by_value
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_value_box_print(fr_sbuff_t *out, fr_value_box_t const *data,
      fr_sbuff_escape_rules_t const *e_rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6347,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6349,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6353,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6354,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6355,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6359,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - out
    - data
    - quote
    argTypes:
    - fr_sbuff_t*
    - fr_value_box_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6345
    functionDepth: 4
    functionLinenumber: 6345
    functionLinenumberEnd: 6363
    functionName: fr_value_box_print_quoted
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 3
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_value_box_print_quoted(fr_sbuff_t *out, fr_value_box_t const
      *data, fr_token_t quote)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6392,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/value.c:6395,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6403,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6413,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/value.c:6416,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6418,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6423,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6425,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6437,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6445,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6446,1
    - Dst: vb_should_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6477,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6477,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6478,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6478,1
    - Dst: vb_should_free
      Src: /src/freeradius-server/src/lib/util/value.c:6479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6479,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/value.c:6482,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 61
    argCount: 9
    argNames:
    - safety
    - sbuff
    - list
    - sep
    - sep_len
    - e_rules
    - proc_action
    - safe_for
    - flatten
    argTypes:
    - fr_value_box_t*
    - fr_sbuff_t*
    - fr_value_box_list_t*
    - char*
    - size_t
    - fr_sbuff_escape_rules_t*
    - fr_value_box_list_action_t
    - fr_value_box_safe_for_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6483
      start: 6388
    functionDepth: 4
    functionLinenumber: 6388
    functionLinenumberEnd: 6483
    functionName: fr_value_box_list_concat_as_string
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 5
    functionsReached:
    - vb_should_remove
    - fr_value_box_print
    - fr_value_box_clear_value
    - vb_should_free_value
    - fr_value_box_is_safe_for
    - talloc_free
    - fr_value_box_list_concat_as_string
    - fr_value_box_list_remove
    - FR_SBUFF_SET_RETURN
    - vb_should_free
    - fr_value_box_list_empty
    - FR_SBUFF
    - fr_sbuff_in_escape
    - fr_value_box_list_next
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_list_concat_as_string(fr_value_box_t *safety,
      fr_sbuff_t *sbuff, fr_value_box_list_t *list,\n\t\t\t\t\t   char const *sep,
      size_t sep_len, fr_sbuff_escape_rules_t const *e_rules,\n\t\t\t\t\t   fr_value_box_list_action_t
      proc_action, fr_value_box_safe_for_t safe_for, bool flatten)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6403,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6413,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/value.c:6416,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6418,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6423,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6425,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/value.c:6437,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6445,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/value.c:6446,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6469
      start: 6397
    functionDepth: 5
    functionLinenumber: 6397
    functionLinenumberEnd: 6469
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - fr_value_box_print
    - fr_value_box_is_safe_for
    - fr_value_box_list_concat_as_string
    - fr_sbuff_in_escape
    - fr_value_box_list_next
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vb_should_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6477,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6477,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6478,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6478,1
    - Dst: vb_should_free
      Src: /src/freeradius-server/src/lib/util/value.c:6479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6480
      start: 6476
    functionDepth: 2
    functionLinenumber: 6476
    functionLinenumberEnd: 6480
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - vb_should_remove
    - fr_value_box_clear_value
    - vb_should_free_value
    - talloc_free
    - vb_should_free
    - fr_value_box_list_remove
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/value.c:6508,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/value.c:6512,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6518,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6524,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6528,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:6539,1
    - Dst: fr_value_box_cast_to_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6544,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6549,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6550,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6557,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6561,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6562,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/value.c:6566,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6569,1
    - Dst: vb_should_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6577,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6577,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6578,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6578,1
    - Dst: vb_should_free
      Src: /src/freeradius-server/src/lib/util/value.c:6579,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6579,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/value.c:6582,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 7
    argNames:
    - safety
    - dbuff
    - list
    - sep
    - sep_len
    - proc_action
    - flatten
    argTypes:
    - fr_value_box_t*
    - fr_dbuff_t*
    - fr_value_box_list_t*
    - uint8_t*
    - size_t
    - fr_value_box_list_action_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6583
      start: 6504
    functionDepth: 3
    functionLinenumber: 6504
    functionLinenumberEnd: 6583
    functionName: fr_value_box_list_concat_as_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - vb_should_remove
    - fr_dbuff_set
    - talloc_pool
    - fr_value_box_clear_value
    - vb_should_free_value
    - talloc_free
    - fr_dbuff_in_memcpy
    - vb_should_free
    - FR_DBUFF
    - fr_value_box_list_empty
    - fr_value_box_safety_merge
    - fr_value_box_list_concat_as_octets
    - fr_value_box_list_next
    - fr_value_box_cast_to_octets
    - fr_value_box_list_remove
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_value_box_list_concat_as_octets(fr_value_box_t *safety,
      fr_dbuff_t *dbuff, fr_value_box_list_t *list,\n\t\t\t\t\t   uint8_t const *sep,
      size_t sep_len,\n\t\t\t\t\t   fr_value_box_list_action_t proc_action, bool flatten)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6518,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6524,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6528,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:6539,1
    - Dst: fr_value_box_cast_to_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6544,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6549,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6550,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6557,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6561,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/value.c:6562,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/value.c:6566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6567
      start: 6514
    functionDepth: 4
    functionLinenumber: 6514
    functionLinenumberEnd: 6567
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - fr_value_box_clear_value
    - talloc_pool
    - talloc_free
    - fr_dbuff_in_memcpy
    - fr_value_box_safety_merge
    - fr_value_box_list_concat_as_octets
    - fr_value_box_list_next
    - fr_value_box_cast_to_octets
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vb_should_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6577,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6577,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6578,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6578,1
    - Dst: vb_should_free
      Src: /src/freeradius-server/src/lib/util/value.c:6579,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6580
      start: 6576
    functionDepth: 2
    functionLinenumber: 6576
    functionLinenumberEnd: 6580
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - vb_should_remove
    - fr_value_box_clear_value
    - vb_should_free_value
    - talloc_free
    - vb_should_free
    - fr_value_box_list_remove
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/value.c:6615,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/value.c:6619,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/value.c:6620,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.c:6628,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6632,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6632,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6636,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6636,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6640,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6641,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6665,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6668,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6672,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6672,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6676,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6676,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6688,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/util/value.c:6691,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6694,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6695,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6695,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:6696,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6696,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6696,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6700,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6704,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/util/value.c:6707,1
    - Dst: fr_dbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6710,1
    - Dst: vb_should_free_value
      Src: /src/freeradius-server/src/lib/util/value.c:6711,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/value.c:6711,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:6712,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6712,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6712,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/util/value.c:6719,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6732,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6735,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:6738,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6738,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6738,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/value.c:6743,1
    - Dst: fr_dbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/value.c:6746,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/value.c:6749,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/util/value.c:6749,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6749,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 100
    argCount: 7
    argNames:
    - ctx
    - out
    - list
    - type
    - proc_action
    - flatten
    - max_size
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_list_t*
    - fr_type_t
    - fr_value_box_list_action_t
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6759
      start: 6604
    functionDepth: 5
    functionLinenumber: 6604
    functionLinenumberEnd: 6759
    functionName: fr_value_box_list_concat_in_place
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 24
    functionsReached:
    - fr_value_box_list_head
    - fr_dbuff_buff
    - fr_value_box_clear_value
    - fr_strerror_printf
    - fr_value_box_bstrndup
    - fr_value_box_list_insert_head
    - fr_type_to_str
    - unlikely
    - fr_sbuff_trim_talloc
    - fr_dbuff_used
    - fr_dbuff_trim_talloc
    - fr_sbuff_buff
    - fr_value_box_list_empty
    - fr_strerror_const
    - vb_should_free_value
    - fr_sbuff_init_talloc
    - fr_value_box_memdup
    - fr_dbuff_init_talloc
    - talloc_free
    - fr_value_box_list_concat_as_string
    - fr_sbuff_used
    - fr_value_box_list_num_elements
    - fr_value_box_list_concat_as_octets
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_list_concat_in_place(TALLOC_CTX *ctx,\n\t\t\t\t      fr_value_box_t
      *out, fr_value_box_list_t *list, fr_type_t type,\n\t\t\t\t      fr_value_box_list_action_t
      proc_action, bool flatten,\n\t\t\t\t      size_t max_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6778,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6786,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6786,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:6790,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.c:6791,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:6791,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6801,1
    - Dst: fr_value_box_escape_t*::func
      Src: /src/freeradius-server/src/lib/util/value.c:6803,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - vb
    - escape
    - uctx
    argTypes:
    - fr_value_box_t*
    - fr_value_box_escape_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6813
      start: 6772
    functionDepth: 1
    functionLinenumber: 6772
    functionLinenumberEnd: 6813
    functionName: fr_value_box_escape_in_place
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_value_box_is_safe_for
    - fr_strerror_printf
    - fr_value_box_escape_t*::func
    - fr_value_box_list_escape_in_place
    - fr_assert
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_value_box_escape_in_place(fr_value_box_t *vb, fr_value_box_escape_t
      const *escape, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6833,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - list
    - escape
    - uctx
    argTypes:
    - fr_value_box_list_t*
    - fr_value_box_escape_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6838
      start: 6828
    functionDepth: 2
    functionLinenumber: 6828
    functionLinenumberEnd: 6838
    functionName: fr_value_box_list_escape_in_place
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 3
    functionsReached:
    - unlikely
    - fr_value_box_escape_in_place
    linkageType: ''
    returnType: int
    signature: int fr_value_box_list_escape_in_place(fr_value_box_list_t *list, fr_value_box_escape_t
      const *escape, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6833,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:6834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6835
      start: 6832
    functionDepth: 2
    functionLinenumber: 6832
    functionLinenumberEnd: 6835
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - unlikely
    - fr_value_box_escape_in_place
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/value.c:6849,1
    - Dst: fr_value_box_escape_in_place_erules
      Src: /src/freeradius-server/src/lib/util/value.c:6850,1
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6866
      start: 6845
    functionDepth: 2
    functionLinenumber: 6845
    functionLinenumberEnd: 6866
    functionName: _value_box_escape_rules
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_value_box_escape_in_place_erules
    - fr_value_box_escape_in_place
    linkageType: ''
    returnType: int
    signature: int _value_box_escape_rules(fr_value_box_t *vb, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/value.c:6887,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/value.c:6892,1
    - Dst: fr_value_box_escape_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6895,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/value.c:6908,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:6913,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.c:6913,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/value.c:6919,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6921,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/value.c:6924,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/value.c:6928,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/value.c:6928,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/value.c:6928,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/util/value.c:6930,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - vb
    - erules
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6933
      start: 6882
    functionDepth: 6
    functionLinenumber: 6882
    functionLinenumberEnd: 6933
    functionName: fr_value_box_escape_in_place_erules
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - fr_type_is_leaf
    - fr_value_box_cast_in_place
    - fr_value_box_is_safe_for
    - fr_value_box_list_concat_as_string
    - fr_sbuff_used
    - fr_value_box_bstrndup
    - fr_value_box_mark_safe_for
    - fr_value_box_list_num_elements
    - fr_assert
    - fr_value_box_escape_in_place
    - fr_sbuff_in_escape
    linkageType: ''
    returnType: int
    signature: int fr_value_box_escape_in_place_erules(TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_sbuff_escape_rules_t const *erules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_escape_in_place_erules
      Src: /src/freeradius-server/src/lib/util/value.c:6950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6951
      start: 6948
    functionDepth: 7
    functionLinenumber: 6948
    functionLinenumberEnd: 6951
    functionName: fr_value_box_escape_erules
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_escape_in_place_erules
    linkageType: ''
    returnType: int
    signature: int fr_value_box_escape_erules(fr_value_box_t *vb, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/value.c:6965,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:6967,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6968,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/value.c:6969,1
    - Dst: fr_value_box_list_insert_before
      Src: /src/freeradius-server/src/lib/util/value.c:6970,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - list
    - steal
    - free
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6975
      start: 6962
    functionDepth: 1
    functionLinenumber: 6962
    functionLinenumberEnd: 6975
    functionName: fr_value_box_flatten
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_type_is_structural
    - talloc_steal
    - fr_value_box_list_foreach
    - fr_value_box_list_insert_before
    - fr_value_box_list_remove
    linkageType: ''
    returnType: void
    signature: void fr_value_box_flatten(TALLOC_CTX *ctx, fr_value_box_list_t *list,
      bool steal, bool free)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/value.c:6965,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:6967,1
    - Dst: fr_value_box_list_remove
      Src: /src/freeradius-server/src/lib/util/value.c:6968,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/value.c:6969,1
    - Dst: fr_value_box_list_insert_before
      Src: /src/freeradius-server/src/lib/util/value.c:6970,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:6973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6974
      start: 6964
    functionDepth: 1
    functionLinenumber: 6964
    functionLinenumberEnd: 6974
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 13
    functionsReached:
    - talloc_free
    - fr_type_is_structural
    - talloc_steal
    - fr_value_box_list_foreach
    - fr_value_box_list_insert_before
    - fr_value_box_list_remove
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, child)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/value.c:6990,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:6996,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:6998,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:7004,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7005,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7007,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7010,1
    - Dst: talloc_buffer_append_variadic_buffer
      Src: /src/freeradius-server/src/lib/util/value.c:7013,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7014,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7015,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7016,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7020,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7022,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - list
    - delim
    - e_rules
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - char*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7025
      start: 6987
    functionDepth: 1
    functionLinenumber: 6987
    functionLinenumberEnd: 7025
    functionName: fr_value_box_list_aprint
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 4
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - fr_value_box_aprint
    - talloc_free
    - talloc_strdup
    - talloc_buffer_append_variadic_buffer
    - talloc_pool
    - fr_value_box_list_next
    linkageType: ''
    returnType: char
    signature: "char *fr_value_box_list_aprint(TALLOC_CTX *ctx, fr_value_box_list_t
      const *list, char const *delim,\n\t\t\t       fr_sbuff_escape_rules_t const
      *e_rules)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/value.c:7040,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7046,1
    - Dst: fr_value_box_contains_secret
      Src: /src/freeradius-server/src/lib/util/value.c:7046,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7047,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7049,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7052,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/value.c:7058,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7059,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7061,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7064,1
    - Dst: fr_value_box_contains_secret
      Src: /src/freeradius-server/src/lib/util/value.c:7064,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/value.c:7065,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7067,1
    - Dst: talloc_buffer_append_variadic_buffer
      Src: /src/freeradius-server/src/lib/util/value.c:7071,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.c:7072,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7073,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7074,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7078,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7080,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - list
    - delim
    - e_rules
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - char*
    - fr_sbuff_escape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7083
      start: 7037
    functionDepth: 1
    functionLinenumber: 7037
    functionLinenumberEnd: 7083
    functionName: fr_value_box_list_aprint_secure
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - unlikely
    - fr_value_box_aprint
    - talloc_free
    - fr_value_box_contains_secret
    - talloc_strdup
    - talloc_buffer_append_variadic_buffer
    - talloc_pool
    - fr_value_box_list_next
    linkageType: ''
    returnType: char
    signature: "char *fr_value_box_list_aprint_secure(TALLOC_CTX *ctx, fr_value_box_list_t
      const *list, char const *delim,\n\t\t\t\t      fr_sbuff_escape_rules_t const
      *e_rules)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7092,1
    - Dst: fr_value_box_raw
      Src: /src/freeradius-server/src/lib/util/value.c:7092,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7096,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7099,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/value.c:7102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - vb
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7114
      start: 7088
    functionDepth: 1
    functionLinenumber: 7088
    functionLinenumberEnd: 7114
    functionName: fr_value_box_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 4
    functionsReached:
    - fr_assert
    - fr_value_box_raw
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_value_box_hash(fr_value_box_t const *vb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7129,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/util/value.c:7132,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7135,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.c:7139,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/value.c:7140,1
    - Dst: fr_value_box_list_dlist_head
      Src: /src/freeradius-server/src/lib/util/value.c:7140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - out
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7144
      start: 7125
    functionDepth: 7
    functionLinenumber: 7125
    functionLinenumberEnd: 7144
    functionName: fr_value_box_list_acopy
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_talloc_free
    - fr_value_box_list_dlist_head
    - fr_dlist_insert_tail
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int fr_value_box_list_acopy(TALLOC_CTX *ctx, fr_value_box_list_t *out,
      fr_value_box_list_t const *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7157,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/value.c:7158,1
    - Dst: fr_value_box_list_tainted
      Src: /src/freeradius-server/src/lib/util/value.c:7158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7163
      start: 7153
    functionDepth: 1
    functionLinenumber: 7153
    functionLinenumberEnd: 7163
    functionName: fr_value_box_list_tainted
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 3
    functionsReached:
    - fr_value_box_list_tainted
    - fr_type_is_group
    - fr_value_box_list_next
    linkageType: ''
    returnType: bool
    signature: bool fr_value_box_list_tainted(fr_value_box_list_t const *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7173,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/value.c:7174,1
    - Dst: fr_value_box_list_taint
      Src: /src/freeradius-server/src/lib/util/value.c:7174,1
    - Dst: fr_value_box_mark_unsafe
      Src: /src/freeradius-server/src/lib/util/value.c:7175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7178
      start: 7169
    functionDepth: 1
    functionLinenumber: 7169
    functionLinenumberEnd: 7178
    functionName: fr_value_box_list_taint
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - fr_value_box_mark_unsafe
    - fr_type_is_group
    - fr_value_box_list_next
    - fr_value_box_list_taint
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_taint(fr_value_box_list_t *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.c:7188,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/lib/util/value.c:7189,1
    - Dst: fr_value_box_list_untaint
      Src: /src/freeradius-server/src/lib/util/value.c:7189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7192
      start: 7184
    functionDepth: 1
    functionLinenumber: 7184
    functionLinenumberEnd: 7192
    functionName: fr_value_box_list_untaint
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 3
    functionsReached:
    - fr_type_is_group
    - fr_value_box_list_next
    - fr_value_box_list_untaint
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_untaint(fr_value_box_list_t *head)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/util/value.c:7199,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7205,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/util/value.c:7206,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/value.c:7208,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7211,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7218,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:7218,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7224,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7226,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:7230,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/value.c:7234,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7244,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/value.c:7244,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7250,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7255,1
    - Dst: fr_value_box_list_verify
      Src: /src/freeradius-server/src/lib/util/value.c:7260,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/value.c:7264,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - file
    - line
    - vb
    argTypes:
    - char*
    - int
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7271
      start: 7197
    functionDepth: 1
    functionLinenumber: 7197
    functionLinenumberEnd: 7271
    functionName: fr_value_box_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - DIAG_ON
    - fr_fatal_assert_fail
    - talloc_array_length
    - DIAG_OFF
    - talloc_get_type_abort_const
    - fr_value_box_list_verify
    - fr_fatal_assert_msg
    linkageType: ''
    returnType: void
    signature: void fr_value_box_verify(char const *file, int line, fr_value_box_t
      const *vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:7275,1
    - Dst: fr_value_box_verify
      Src: /src/freeradius-server/src/lib/util/value.c:7275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - line
    - list
    argTypes:
    - char*
    - int
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7276
      start: 7273
    functionDepth: 2
    functionLinenumber: 7273
    functionLinenumberEnd: 7276
    functionName: fr_value_box_list_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - fr_value_box_verify
    - fr_value_box_list_foreach
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_verify(char const *file, int line, fr_value_box_list_t
      const *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - vb
    - safe_for
    argTypes:
    - fr_value_box_t*
    - fr_value_box_safe_for_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7294
      start: 7281
    functionDepth: 0
    functionLinenumber: 7281
    functionLinenumberEnd: 7294
    functionName: _fr_value_box_mark_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void _fr_value_box_mark_safe_for(fr_value_box_t *vb, fr_value_box_safe_for_t
      safe_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vb
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7303
      start: 7300
    functionDepth: 0
    functionLinenumber: 7300
    functionLinenumberEnd: 7303
    functionName: fr_value_box_mark_unsafe
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_value_box_mark_unsafe(fr_value_box_t *vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - list
    - safe_for
    argTypes:
    - fr_value_box_list_t*
    - fr_value_box_safe_for_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7325
      start: 7312
    functionDepth: 0
    functionLinenumber: 7312
    functionLinenumberEnd: 7325
    functionName: fr_value_box_list_mark_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_mark_safe_for(fr_value_box_list_t *list, fr_value_box_safe_for_t
      safe_for)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/value.c:7319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7324
      start: 7314
    functionDepth: 0
    functionLinenumber: 7314
    functionLinenumberEnd: 7324
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 14
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7337
      start: 7330
    functionDepth: 0
    functionLinenumber: 7330
    functionLinenumberEnd: 7337
    functionName: fr_value_box_safety_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_value_box_safety_copy(fr_value_box_t *out, fr_value_box_t const
      *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7348
      start: 7343
    functionDepth: 0
    functionLinenumber: 7343
    functionLinenumberEnd: 7348
    functionName: fr_value_box_safety_copy_changed
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_value_box_safety_copy_changed(fr_value_box_t *out, fr_value_box_t
      const *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7379
      start: 7352
    functionDepth: 0
    functionLinenumber: 7352
    functionLinenumberEnd: 7379
    functionName: fr_value_box_safety_merge
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_value_box_safety_merge(fr_value_box_t *out, fr_value_box_t
      const *in)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.c:7404,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/value.c:7415,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/value.c:7419,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/value.c:7426,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/value.c:7427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - in
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7432
      start: 7390
    functionDepth: 5
    functionLinenumber: 7390
    functionLinenumberEnd: 7432
    functionName: fr_value_box_is_truthy
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 11
    functionsReached:
    - fr_ipaddr_is_inaddr_any
    - fr_value_box_cast
    - fr_value_box_init_null
    - fr_value_box_list_num_elements
    linkageType: ''
    returnType: bool
    signature: bool fr_value_box_is_truthy(fr_value_box_t const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7435
      start: 7434
    functionDepth: 0
    functionLinenumber: 7434
    functionLinenumberEnd: 7435
    functionName: INFO_INDENT
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO_INDENT(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7441,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/value.c:7442,1
    - Dst: _fr_value_box_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7442,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fp
    - head
    - depth
    argTypes:
    - FILE*
    - fr_value_box_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7444
      start: 7437
    functionDepth: 1
    functionLinenumber: 7437
    functionLinenumberEnd: 7444
    functionName: _fr_value_box_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 1
    functionsReached:
    - _fr_value_box_debug
    - INFO_INDENT
    - fr_value_box_list_foreach
    linkageType: ''
    returnType: void
    signature: void _fr_value_box_list_debug(FILE *fp, fr_value_box_list_t const *head,
      int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_value_box_list_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - head
    argTypes:
    - FILE*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7453
      start: 7450
    functionDepth: 2
    functionLinenumber: 7450
    functionLinenumberEnd: 7453
    functionName: fr_value_box_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - _fr_value_box_list_debug
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_debug(FILE *fp, fr_value_box_list_t const *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/value.c:7460,1
    - Dst: _fr_value_box_list_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7461,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/value.c:7468,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:7468,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/value.c:7470,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/value.c:7471,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/value.c:7472,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/value.c:7476,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7478,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:7478,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7479,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7484,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.c:7484,1
    - Dst: INFO_INDENT
      Src: /src/freeradius-server/src/lib/util/value.c:7485,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.c:7490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - fp
    - vb
    - depth
    - idx
    argTypes:
    - FILE*
    - fr_value_box_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7491
      start: 7455
    functionDepth: 2
    functionLinenumber: 7455
    functionLinenumberEnd: 7491
    functionName: _fr_value_box_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 2
    functionsReached:
    - fr_value_box_aprint
    - fr_time_delta_unwrap
    - _fr_value_box_list_debug
    - talloc_free
    - fr_type_is_structural
    - snprintf
    - fr_table_str_by_value
    - INFO_INDENT
    - fr_type_to_str
    linkageType: ''
    returnType: void
    signature: void _fr_value_box_debug(FILE *fp, fr_value_box_t const *vb, int depth,
      int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_value_box_debug
      Src: /src/freeradius-server/src/lib/util/value.c:7499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - vb
    argTypes:
    - FILE*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7500
      start: 7497
    functionDepth: 3
    functionLinenumber: 7497
    functionLinenumberEnd: 7500
    functionName: fr_value_box_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/value.c
    functionUses: 4
    functionsReached:
    - _fr_value_box_debug
    linkageType: ''
    returnType: void
    signature: void fr_value_box_debug(FILE *fp, fr_value_box_t const *vb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:104,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:105,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/atexit.c:108,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:108,1
    - Dst: fr_atexit_entry_t*::func
      Src: /src/freeradius-server/src/lib/util/atexit.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - fr_atexit_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: _atexit_entry_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - pthread_self
    - ATEXIT_DEBUG
    - fr_dlist_remove
    - fr_atexit_entry_t*::func
    linkageType: ''
    returnType: int
    signature: int _atexit_entry_free(fr_atexit_entry_t *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/atexit.c:127,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/atexit.c:128,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/atexit.c:132,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:136,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:137,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/util/atexit.c:140,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - file
    - line
    - list
    - func
    - uctx
    argTypes:
    - char*
    - int
    - fr_atexit_list_t*
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 144
    functionName: atexit_entry_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - unlikely
    - pthread_self
    - talloc_set_destructor
    - ATEXIT_DEBUG
    - UNCONST
    - talloc_zero
    - fr_dlist_insert_head
    linkageType: ''
    returnType: fr_atexit_entry_t
    signature: "fr_atexit_entry_t *atexit_entry_alloc(char const *file, int line,\n\t\t\t\t\t
      \    fr_atexit_list_t *list,\n\t\t\t\t\t     fr_atexit_t func, void const *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:151,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_atexit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: _destructor_list_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_free
    - ATEXIT_DEBUG
    linkageType: ''
    returnType: int
    signature: int _destructor_list_free(fr_atexit_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/atexit.c:163,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/atexit.c:166,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/atexit.c:170,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/atexit.c:171,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/atexit.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: _global_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 8
    functionsReached:
    - pthread_mutex_lock
    - fr_cond_assert_msg
    - TALLOC_FREE
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void _global_free(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/atexit.c:183,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/atexit.c:184,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:186,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/atexit.c:188,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:189,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/atexit.c:192,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/atexit.c:193,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:195,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/atexit.c:197,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:198,1
    - Dst: atexit
      Src: /src/freeradius-server/src/lib/util/atexit.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: fr_atexit_global_setup
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 13
    functionsReached:
    - unlikely
    - fr_dlist_talloc_init
    - talloc_set_destructor
    - ATEXIT_DEBUG
    - atexit
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int fr_atexit_global_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: CHECK_GLOBAL_SETUP
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_GLOBAL_SETUP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: CHECK_GLOBAL_SETUP
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_GLOBAL_SETUP()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GLOBAL_SETUP
      Src: /src/freeradius-server/src/lib/util/atexit.c:231,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/atexit.c:233,1
    - Dst: atexit_entry_alloc
      Src: /src/freeradius-server/src/lib/util/atexit.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - file
    - line
    - func
    - uctx
    argTypes:
    - char*
    - int
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: _atexit_global
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 4
    functionsReached:
    - unlikely
    - CHECK_GLOBAL_SETUP
    - atexit_entry_alloc
    linkageType: ''
    returnType: int
    signature: int _atexit_global(char const *file, int line, fr_atexit_t func, void
      const *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:253,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:258,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:263,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:264,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - uctx_scope
    - func
    - uctx
    argTypes:
    - bool
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 271
    functionName: fr_atexit_global_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - ATEXIT_DEBUG
    - fr_dlist_next
    - fr_dlist_remove
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_atexit_global_disarm(bool uctx_scope, fr_atexit_t func,
      void const *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/util/atexit.c:284,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:285,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:289,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 292
    functionName: fr_atexit_global_disarm_all
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 2
    functionsReached:
    - fr_dlist_pop_head
    - talloc_free
    - talloc_set_destructor
    - ATEXIT_DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_atexit_global_disarm_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:315,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:316,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:322,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:323,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/atexit.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 334
    functionName: fr_atexit_global_trigger_all
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 12
    functionsReached:
    - talloc_free
    - ATEXIT_DEBUG
    - fr_dlist_next
    - fr_dlist_remove
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_atexit_global_trigger_all(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:364,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:367,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:373,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:374,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/atexit.c:375,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:394,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/atexit.c:397,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:399,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:402,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:404,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:409,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:410,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/atexit.c:411,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 3
    argNames:
    - uctx_scope
    - func
    - uctx
    argTypes:
    - bool
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 423
    functionName: fr_atexit_trigger
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - talloc_free
    - ATEXIT_DEBUG
    - fr_dlist_next
    - talloc_get_type_abort
    - fr_dlist_remove
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_atexit_trigger(bool uctx_scope, fr_atexit_t func, void const
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/lib/util/atexit.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: fr_atexit_thread_local_disable_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - atomic_store_explicit
    linkageType: ''
    returnType: void
    signature: void fr_atexit_thread_local_disable_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/lib/util/atexit.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: fr_atexit_thread_local_alloc_disabled
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: bool
    signature: bool fr_atexit_thread_local_alloc_disabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/atexit.c:457,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/atexit.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: fr_atexit_is_exiting
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: bool
    signature: bool fr_atexit_is_exiting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:473,1
    - Dst: fr_dlist_talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:475,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/atexit.c:476,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/atexit.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_atexit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 480
    functionName: _thread_local_list_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - fr_dlist_talloc_free
    - pthread_mutex_unlock
    - ATEXIT_DEBUG
    linkageType: ''
    returnType: int
    signature: int _thread_local_list_free(fr_atexit_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: _thread_local_pthread_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _thread_local_pthread_free(void *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: _thread_local_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _thread_local_free(void *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GLOBAL_SETUP
      Src: /src/freeradius-server/src/lib/util/atexit.c:510,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/atexit.c:523,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/atexit.c:524,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:526,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:528,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/atexit.c:530,1
    - Dst: pthread_key_create
      Src: /src/freeradius-server/src/lib/util/atexit.c:531,1
    - Dst: pthread_setspecific
      Src: /src/freeradius-server/src/lib/util/atexit.c:540,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:541,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/atexit.c:550,1
    - Dst: atexit_entry_alloc
      Src: /src/freeradius-server/src/lib/util/atexit.c:551,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/atexit.c:556,1
    - Dst: atexit_entry_alloc
      Src: /src/freeradius-server/src/lib/util/atexit.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - file
    - line
    - func
    - uctx
    argTypes:
    - char*
    - int
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 567
    functionName: _fr_atexit_thread_local
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    - unlikely
    - fr_dlist_talloc_init
    - pthread_self
    - talloc_set_destructor
    - ATEXIT_DEBUG
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - talloc_zero
    - CHECK_GLOBAL_SETUP
    - atexit_entry_alloc
    - pthread_key_create
    linkageType: ''
    returnType: int
    signature: "int _fr_atexit_thread_local(char const *file, int line,\n\t\t\t    fr_atexit_t
      func, void const *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:586,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:591,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:593,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:596,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:597,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - uctx_scope
    - func
    - uctx
    argTypes:
    - bool
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 604
    functionName: fr_atexit_thread_local_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - talloc_set_destructor
    - ATEXIT_DEBUG
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_atexit_thread_local_disarm(bool uctx_scope, fr_atexit_t
      func, void const *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/util/atexit.c:617,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:618,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:620,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/atexit.c:622,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 625
    functionName: fr_atexit_thread_local_disarm_all
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 2
    functionsReached:
    - pthread_self
    - talloc_set_destructor
    - talloc_free
    - ATEXIT_DEBUG
    - fr_dlist_pop_head
    linkageType: ''
    returnType: void
    signature: void fr_atexit_thread_local_disarm_all(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_thread_local_disable_alloc
      Src: /src/freeradius-server/src/lib/util/atexit.c:654,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:661,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/atexit.c:664,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/atexit.c:666,1
    - Dst: ATEXIT_DEBUG
      Src: /src/freeradius-server/src/lib/util/atexit.c:667,1
    - Dst: pthread_self
      Src: /src/freeradius-server/src/lib/util/atexit.c:669,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/atexit.c:674,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.c:675,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/atexit.c:676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 688
    functionName: fr_atexit_thread_trigger_all
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 4
    functionsReached:
    - pthread_self
    - ATEXIT_DEBUG
    - talloc_free
    - fr_atexit_thread_local_disable_alloc
    - fr_dlist_next
    - talloc_get_type_abort
    - fr_dlist_remove
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_atexit_thread_trigger_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: fr_atexit_thread_is_exiting
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_atexit_thread_is_exiting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _hash_node
    - ','
    - _cmp_node
    - ','
    - _free_node
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: fr_hash_table_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_hash_table_alloc(_ctx, _hash_node, _cmp_node, _free_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _hash_node
    - ','
    - _cmp_node
    - ','
    - _free_node
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: fr_hash_table_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_hash_table_talloc_alloc(_ctx, _type, _hash_node, _cmp_node, _free_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: talloc_free_data
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void talloc_free_data(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/talloc.c:55,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/talloc.c:56,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: talloc_null_ctx
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 3
    functionsReached:
    - talloc_parent
    - talloc
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void *talloc_null_ctx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:68,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/talloc.c:69,1
    - Dst: fr_talloc_destructor_t*::func
      Src: /src/freeradius-server/src/lib/util/talloc.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - fr_talloc_destructor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: _talloc_destructor_fire
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - fr_talloc_destructor_t*::func
    - TALLOC_FREE
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: int _talloc_destructor_fire(fr_talloc_destructor_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:80,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ds
    argTypes:
    - fr_talloc_destructor_disarm_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: _talloc_destructor_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _talloc_destructor_disarm(fr_talloc_destructor_disarm_t *ds)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:103,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/talloc.c:107,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:110,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/talloc.c:116,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/talloc.c:121,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:123,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:128,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - fire_ctx
    - disarm_ctx
    - func
    - uctx
    argTypes:
    - TALLOC_CTX*
    - TALLOC_CTX*
    - fr_talloc_free_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 134
    functionName: talloc_destructor_add
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - talloc_set_destructor
    - talloc
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: fr_talloc_destructor_t
    signature: "fr_talloc_destructor_t *talloc_destructor_add(TALLOC_CTX *fire_ctx,
      TALLOC_CTX *disarm_ctx,\n\t\t\t\t\t      fr_talloc_free_func_t func, void const
      *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:142,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/talloc.c:143,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:146,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - fr_talloc_destructor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: talloc_destructor_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - talloc_set_destructor
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void talloc_destructor_disarm(fr_talloc_destructor_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: _talloc_link_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _talloc_link_ctx_free(UNUSED void *parent, void *child)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_destructor_add
      Src: /src/freeradius-server/src/lib/util/talloc.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - TALLOC_CTX*
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: talloc_link_ctx
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 6
    functionsReached:
    - talloc_destructor_add
    linkageType: ''
    returnType: int
    signature: int talloc_link_ctx(TALLOC_CTX *parent, TALLOC_CTX *child)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/lib/util/talloc.c:204,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/talloc.c:208,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:210,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/lib/util/talloc.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - start
    - alignment
    - size
    argTypes:
    - TALLOC_CTX*
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 218
    functionName: talloc_aligned_array
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - ROUND_UP
    - talloc_array
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *talloc_aligned_array(TALLOC_CTX *ctx, void **start, size_t
      alignment, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/talloc.c:234,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:235,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:237,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:240,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:241,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/talloc.c:247,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:248,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 264
    functionName: _talloc_hdr_size
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - fr_cond_assert
    - talloc_size
    - talloc_pool
    - fr_strerror_const
    linkageType: ''
    returnType: void
    signature: void _talloc_hdr_size(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/freeradius-server/src/lib/util/talloc.c:278,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/talloc.c:279,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/talloc.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: talloc_hdr_size
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - pthread_once
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t talloc_hdr_size(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/freeradius-server/src/lib/util/talloc.c:311,1
    - Dst: talloc_hdr_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:316,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/lib/util/talloc.c:332,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/talloc.c:342,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:344,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/lib/util/talloc.c:358,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:371,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/talloc.c:372,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:373,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/talloc.c:386,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/talloc.c:393,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/talloc.c:398,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/talloc.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - start
    - end_len
    - headers
    - size
    argTypes:
    - TALLOC_CTX*
    - void**
    - size_t*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 406
    functionName: talloc_page_aligned_pool
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 2
    functionsReached:
    - fr_cond_assert
    - talloc_size
    - ROUND_UP
    - fr_assert
    - talloc_pool
    - fr_strerror_const
    - getpagesize
    - talloc_hdr_size
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *talloc_page_aligned_pool(TALLOC_CTX *ctx, void **start,
      size_t *end_len, unsigned int headers, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:421,1
    - Dst: _talloc_realloc_array
      Src: /src/freeradius-server/src/lib/util/talloc.c:424,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:427,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/talloc.c:429,1
    - Dst: old_size::old_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - ptr
    - elem_size
    - count
    - name
    argTypes:
    - void*
    - void*
    - size_t
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: _talloc_realloc_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_get_size
    - _talloc_realloc_array
    - talloc_array_length
    - memset
    - old_size::old_size
    linkageType: ''
    returnType: void
    signature: void *_talloc_realloc_zero(const void *ctx, void *ptr, size_t elem_size,
      unsigned count, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/talloc.c:450,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - TALLOC_CTX*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 455
    functionName: talloc_typed_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 4
    functionsReached:
    - unlikely
    - talloc_memdup
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *talloc_typed_memdup(TALLOC_CTX *ctx, uint8_t const *in, size_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/talloc.c:476,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - TALLOC_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: talloc_typed_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_strdup
    linkageType: ''
    returnType: char
    signature: char *talloc_typed_strdup(TALLOC_CTX *ctx, char const *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/lib/util/talloc.c:500,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/talloc.c:500,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - TALLOC_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 505
    functionName: talloc_typed_strdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 2
    functionsReached:
    - unlikely
    - talloc_strndup
    - talloc_strlen
    linkageType: ''
    returnType: char
    signature: char *talloc_typed_strdup_buffer(TALLOC_CTX *ctx, char const *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/lib/util/talloc.c:527,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - p
    - len
    argTypes:
    - TALLOC_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: talloc_typed_strndup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_strndup
    linkageType: ''
    returnType: char
    signature: char *talloc_typed_strndup(TALLOC_CTX *ctx, char const *p, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/talloc.c:551,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/util/talloc.c:552,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/talloc.c:553,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - fmt
    argTypes:
    - TALLOC_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 558
    functionName: talloc_typed_asprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 37
    functionsReached:
    - unlikely
    - va_end
    - va_start
    - talloc_vasprintf
    linkageType: ''
    returnType: char
    signature: char *talloc_typed_asprintf(TALLOC_CTX *ctx, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/util/talloc.c:577,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - fmt
    - ap
    argTypes:
    - TALLOC_CTX*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 582
    functionName: talloc_typed_vasprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_vasprintf
    linkageType: ''
    returnType: char
    signature: char *talloc_typed_vasprintf(TALLOC_CTX *ctx, char const *fmt, va_list
      ap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:593,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/talloc.c:597,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:598,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/talloc.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - in
    argTypes:
    - TALLOC_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 609
    functionName: talloc_bstrdup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 5
    functionsReached:
    - unlikely
    - talloc_array_length
    - memcpy
    - talloc_array
    linkageType: ''
    returnType: char
    signature: char *talloc_bstrdup(TALLOC_CTX *ctx, char const *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/talloc.c:622,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:623,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/talloc.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - TALLOC_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 634
    functionName: talloc_bstrndup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 27
    functionsReached:
    - unlikely
    - memcpy
    - talloc_array
    linkageType: ''
    returnType: char
    signature: char *talloc_bstrndup(TALLOC_CTX *ctx, char const *in, size_t inlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:652,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:656,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/talloc.c:658,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/talloc.c:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - to
    - from
    - from_len
    argTypes:
    - TALLOC_CTX*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 667
    functionName: talloc_bstr_append
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_realloc_size
    - fr_strerror_printf
    - talloc_array_length
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *talloc_bstr_append(TALLOC_CTX *ctx, char *to, char const *from,
      size_t from_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/talloc.c:687,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:693,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - TALLOC_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 700
    functionName: talloc_bstr_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 4
    functionsReached:
    - unlikely
    - talloc_realloc_size
    - talloc_array
    linkageType: ''
    returnType: char
    signature: char *talloc_bstr_realloc(TALLOC_CTX *ctx, char *in, size_t inlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/talloc.c:728,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/talloc.c:729,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/talloc.c:731,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/talloc.c:739,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/talloc.c:742,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/talloc.c:749,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/talloc.c:750,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/talloc.c:754,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/talloc.c:766,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/talloc.c:769,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/talloc.c:771,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/talloc.c:777,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/talloc.c:778,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - to
    - argc
    argTypes:
    - TALLOC_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 781
    functionName: talloc_buffer_append_variadic_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 3
    functionsReached:
    - va_arg
    - va_end
    - va_start
    - memcpy
    - talloc_realloc
    - va_copy
    - talloc_strlen
    linkageType: ''
    returnType: char
    signature: char *talloc_buffer_append_variadic_buffer(TALLOC_CTX *ctx, char *to,
      int argc, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:798,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:799,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/talloc.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 805
    functionName: talloc_memcmp_bstr
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 2
    functionsReached:
    - talloc_array_length
    - memcmp
    linkageType: ''
    returnType: int
    signature: int talloc_memcmp_bstr(char const *a, char const *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/talloc.c:825,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/talloc.c:827,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:829,1
    - Dst: talloc_unlink
      Src: /src/freeradius-server/src/lib/util/talloc.c:831,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/talloc.c:831,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/talloc.c:832,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 836
    functionName: talloc_decrease_ref_count
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - talloc_unlink
    - talloc_reference_count
    - talloc_parent
    linkageType: ''
    returnType: int
    signature: int talloc_decrease_ref_count(void const *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:860,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/talloc.c:861,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/talloc.c:862,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.c:862,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/talloc.c:864,1
    - Dst: _talloc_realloc_array::_talloc_realloc_array
      Src: /src/freeradius-server/src/lib/util/talloc.c:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 870
    functionName: talloc_array_null_terminate
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_get_name
    - _talloc_realloc_array::_talloc_realloc_array
    - talloc_get_size
    - talloc_array_length
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void **talloc_array_null_terminate(void **array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:877,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - af
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: _autofree_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _autofree_on_exit(void *af)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_disarm
      Src: /src/freeradius-server/src/lib/util/talloc.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - af
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 887
    functionName: _autofree_global_destructor
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - fr_atexit_global_disarm
    linkageType: ''
    returnType: int
    signature: int _autofree_global_destructor(TALLOC_CTX *af)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:894,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:895,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:897,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/util/talloc.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 904
    functionName: talloc_autofree_context_global
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_init_const
    - fr_atexit_global
    - talloc_set_destructor
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *talloc_autofree_context_global(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_thread_local_disarm
      Src: /src/freeradius-server/src/lib/util/talloc.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - af
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 912
    functionName: _autofree_thread_local_destructor
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - fr_atexit_thread_local_disarm
    linkageType: ''
    returnType: int
    signature: int _autofree_thread_local_destructor(TALLOC_CTX *af)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/talloc.c:926,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.c:927,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/talloc.c:929,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/talloc.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 935
    functionName: talloc_autofree_context_thread_local
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_init_const
    - talloc_set_destructor
    - fr_atexit_thread_local
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *talloc_autofree_context_thread_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: FR_DLIST_ENTRY_INITIALISER
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_ENTRY_INITIALISER(_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: FR_DLIST_HEAD_INITIALISER
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_HEAD_INITIALISER(_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _list_head
    - ','
    - _type
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dlist_foreach(_list_head, _type, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - item
    argTypes:
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: fr_dlist_item_to_entry
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_dlist_t
    signature: fr_dlist_t *fr_dlist_item_to_entry(size_t offset, void const *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - offset
    - entry
    argTypes:
    - size_t
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: fr_dlist_entry_to_item
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_entry_to_item(size_t offset, fr_dlist_t const *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: fr_dlist_entry_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dlist_entry_init(fr_dlist_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: fr_dlist_entry_unlink
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dlist_entry_unlink(fr_dlist_t *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: fr_dlist_entry_in_list
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_dlist_entry_in_list(fr_dlist_t const *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - entry
    - to_link
    argTypes:
    - fr_dlist_t*
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: fr_dlist_entry_link_after
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dlist_entry_link_after(fr_dlist_t *entry, fr_dlist_t *to_link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - entry
    - to_link
    argTypes:
    - fr_dlist_t*
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: fr_dlist_entry_link_before
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dlist_entry_link_before(fr_dlist_t *entry, fr_dlist_t *to_link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_dlist_t*
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: fr_dlist_entry_move
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dlist_entry_move(fr_dlist_t *dst, fr_dlist_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/util/dlist.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - entry
    - replacement
    argTypes:
    - fr_dlist_t*
    - fr_dlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 213
    functionName: fr_dlist_entry_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    linkageType: ''
    returnType: void
    signature: void fr_dlist_entry_replace(fr_dlist_t *entry, fr_dlist_t *replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _head
    - ','
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: fr_dlist_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dlist_init(_head, _type, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _head
    - ','
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: fr_dlist_talloc_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dlist_talloc_init(_head, _type, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:265,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/util/dlist.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - list_head
    - offset
    - type
    argTypes:
    - fr_dlist_head_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: _fr_dlist_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void _fr_dlist_init(fr_dlist_head_t *list_head, size_t offset, char
      const *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/util/dlist.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: fr_dlist_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    linkageType: ''
    returnType: void
    signature: void fr_dlist_clear(fr_dlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _head
    - ','
    - _add
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: CHECK_ELEMENT_COUNT
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ELEMENT_COUNT(_head, _add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:304,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/dlist.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: fr_dlist_in_list
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_entry_in_list
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: bool
    signature: bool fr_dlist_in_list(fr_dlist_head_t *list_head, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ELEMENT_COUNT
      Src: /src/freeradius-server/src/lib/util/dlist.h:325,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:328,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:331,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:334,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 345
    functionName: fr_dlist_insert_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 11
    functionsReached:
    - CHECK_ELEMENT_COUNT
    - _talloc_get_type_abort
    - fr_cond_assert
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: int
    signature: int fr_dlist_insert_head(fr_dlist_head_t *list_head, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ELEMENT_COUNT
      Src: /src/freeradius-server/src/lib/util/dlist.h:365,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:368,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:371,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:374,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 385
    functionName: fr_dlist_insert_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 43
    functionsReached:
    - CHECK_ELEMENT_COUNT
    - _talloc_get_type_abort
    - fr_cond_assert
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: int
    signature: int fr_dlist_insert_tail(fr_dlist_head_t *list_head, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ELEMENT_COUNT
      Src: /src/freeradius-server/src/lib/util/dlist.h:400,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:403,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:406,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:410,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:413,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:414,1
    - Dst: fr_dlist_entry_link_after
      Src: /src/freeradius-server/src/lib/util/dlist.h:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - list_head
    - pos
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 421
    functionName: fr_dlist_insert_after
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 2
    functionsReached:
    - CHECK_ELEMENT_COUNT
    - fr_cond_assert
    - fr_dlist_entry_link_after
    - _talloc_get_type_abort
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: int
    signature: int fr_dlist_insert_after(fr_dlist_head_t *list_head, void *pos, void
      *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ELEMENT_COUNT
      Src: /src/freeradius-server/src/lib/util/dlist.h:436,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:439,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:442,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:446,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:449,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:450,1
    - Dst: fr_dlist_entry_link_before
      Src: /src/freeradius-server/src/lib/util/dlist.h:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - list_head
    - pos
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 457
    functionName: fr_dlist_insert_before
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_entry_link_before
    - CHECK_ELEMENT_COUNT
    - fr_cond_assert
    - _talloc_get_type_abort
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: int
    signature: int fr_dlist_insert_before(fr_dlist_head_t *list_head, void *pos, void
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/util/dlist.h:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: fr_dlist_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 34
    functionsReached:
    - fr_dlist_entry_to_item
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_head(fr_dlist_head_t const *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: fr_dlist_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_dlist_empty(fr_dlist_head_t const *list_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: fr_dlist_initialised
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_dlist_initialised(fr_dlist_head_t const *list_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/util/dlist.h:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: fr_dlist_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 8
    functionsReached:
    - fr_dlist_entry_to_item
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_tail(fr_dlist_head_t const *list_head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dlist.h:542,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:545,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:547,1
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/util/dlist.h:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 555
    functionName: fr_dlist_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 49
    functionsReached:
    - fr_dlist_head
    - fr_dlist_entry_to_item
    - _talloc_get_type_abort
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_next(fr_dlist_head_t const *list_head, void const *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/dlist.h:575,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:578,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:581,1
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/util/dlist.h:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 588
    functionName: fr_dlist_prev
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 2
    functionsReached:
    - fr_dlist_entry_to_item
    - _talloc_get_type_abort
    - fr_dlist_tail
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_prev(fr_dlist_head_t const *list_head, void const *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/dlist.h:626,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:629,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:632,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/dlist.h:633,1
    - Dst: fr_dlist_entry_to_item
      Src: /src/freeradius-server/src/lib/util/dlist.h:644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 645
    functionName: fr_dlist_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 45
    functionsReached:
    - fr_dlist_entry_in_list
    - fr_dlist_entry_to_item
    - fr_dlist_empty
    - _talloc_get_type_abort
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_remove(fr_dlist_head_t *list_head, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dlist.h:656,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dlist.h:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: fr_dlist_pop_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 10
    functionsReached:
    - fr_dlist_head
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_pop_head(fr_dlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/dlist.h:672,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dlist.h:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 677
    functionName: fr_dlist_pop_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_tail
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_pop_tail(fr_dlist_head_t *list_head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:696,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:699,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/dlist.h:700,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:702,1
    - Dst: fr_dlist_entry_replace
      Src: /src/freeradius-server/src/lib/util/dlist.h:704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - list_head
    - item
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 707
    functionName: fr_dlist_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_entry_in_list
    - _talloc_get_type_abort
    - fr_dlist_entry_replace
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_replace(fr_dlist_head_t *list_head, void *item, void
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/dlist.h:723,1
    - Dst: fr_dlist_initialised
      Src: /src/freeradius-server/src/lib/util/dlist.h:723,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dlist.h:725,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:727,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dlist.h:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - file
    - line
    - list_head
    argTypes:
    - char*
    - int
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 730
    functionName: _fr_dlist_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_dlist_next
    - fr_assert_msg
    - _talloc_get_type_abort
    - fr_dlist_initialised
    linkageType: ''
    returnType: void
    signature: void _fr_dlist_verify(char const *file, int line, fr_dlist_head_t const
      *list_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - file
    - line
    - list_head
    argTypes:
    - UNUSED*
    - UNUSED
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: _fr_dlist_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    linkageType: ''
    returnType: void
    signature: void _fr_dlist_verify(UNUSED char const *file, UNUSED int line, fr_dlist_head_t
      const *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 738
    functionName: fr_dlist_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dlist_verify(_head)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ELEMENT_COUNT
      Src: /src/freeradius-server/src/lib/util/dlist.h:750,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:756,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:761,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dlist.h:761,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:764,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:765,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/dlist.h:767,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/util/dlist.h:782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - list_dst
    - list_src
    argTypes:
    - fr_dlist_head_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 786
    functionName: fr_dlist_move
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 3
    functionsReached:
    - fr_dlist_entry_init
    - CHECK_ELEMENT_COUNT
    - fr_cond_assert
    - fr_dlist_empty
    - strcmp
    linkageType: ''
    returnType: int
    signature: int fr_dlist_move(fr_dlist_head_t *list_dst, fr_dlist_head_t *list_src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ELEMENT_COUNT
      Src: /src/freeradius-server/src/lib/util/dlist.h:799,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:805,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:810,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dlist.h:810,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:813,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dlist.h:814,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/dlist.h:816,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/util/dlist.h:826,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - list_dst
    - list_src
    argTypes:
    - fr_dlist_head_t*
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 830
    functionName: fr_dlist_move_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    - CHECK_ELEMENT_COUNT
    - fr_cond_assert
    - fr_dlist_empty
    - strcmp
    linkageType: ''
    returnType: int
    signature: int fr_dlist_move_head(fr_dlist_head_t *list_dst, fr_dlist_head_t *list_src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dlist.h:839,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/util/dlist.h:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: fr_dlist_talloc_free_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_pop_head
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_dlist_talloc_free_head(fr_dlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dlist.h:849,1
    - Dst: fr_dlist_pop_tail
      Src: /src/freeradius-server/src/lib/util/dlist.h:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: fr_dlist_talloc_free_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_pop_tail
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_dlist_talloc_free_tail(fr_dlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dlist.h:863,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dlist.h:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 866
    functionName: fr_dlist_talloc_free_item
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 3
    functionsReached:
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_talloc_free_item(fr_dlist_head_t *list_head, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:880,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dlist.h:881,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dlist.h:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - ptr
    argTypes:
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 873
    functionDepth: 3
    functionLinenumber: 873
    functionLinenumberEnd: 885
    functionName: fr_dlist_talloc_free_to_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void fr_dlist_talloc_free_to_tail(fr_dlist_head_t *head, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/lib/util/dlist.h:896,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dlist.h:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 899
    functionName: fr_dlist_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 14
    functionsReached:
    - fr_dlist_pop_head
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_dlist_talloc_free(fr_dlist_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/dlist.h:909,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dlist.h:911,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dlist.h:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 915
    functionName: fr_dlist_talloc_reverse_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_dlist_tail
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void fr_dlist_talloc_reverse_free(fr_dlist_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 924
    functionName: fr_dlist_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_dlist_num_elements(fr_dlist_head_t const *head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:943,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:957,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:959,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:961,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:962,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:966,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:969,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - head
    - source
    - front
    - back
    argTypes:
    - fr_dlist_head_t*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 935
    functionDepth: 3
    functionLinenumber: 935
    functionLinenumberEnd: 972
    functionName: fr_dlist_sort_split
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void fr_dlist_sort_split(fr_dlist_head_t *head, void **source, void
      **front, void **back)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/freeradius-server/src/lib/util/dlist.h:997,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:999,1
    - Dst: fr_dlist_sort_merge
      Src: /src/freeradius-server/src/lib/util/dlist.h:1000,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:1003,1
    - Dst: fr_dlist_sort_merge
      Src: /src/freeradius-server/src/lib/util/dlist.h:1004,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:1007,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - head
    - a
    - b
    - cmp
    argTypes:
    - fr_dlist_head_t*
    - void**
    - void**
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 1012
    functionName: fr_dlist_sort_merge
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_sort_merge
    - fr_dlist_next
    - cmp
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void *fr_dlist_sort_merge(fr_dlist_head_t *head, void **a, void **b,
      fr_cmp_t cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:1026,1
    - Dst: fr_dlist_sort_split
      Src: /src/freeradius-server/src/lib/util/dlist.h:1029,1
    - Dst: fr_dlist_recursive_sort
      Src: /src/freeradius-server/src/lib/util/dlist.h:1030,1
    - Dst: fr_dlist_recursive_sort
      Src: /src/freeradius-server/src/lib/util/dlist.h:1031,1
    - Dst: fr_dlist_sort_merge
      Src: /src/freeradius-server/src/lib/util/dlist.h:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - head
    - ptr
    - cmp
    argTypes:
    - fr_dlist_head_t*
    - void**
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1020
    functionDepth: 4
    functionLinenumber: 1020
    functionLinenumberEnd: 1037
    functionName: fr_dlist_recursive_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_sort_merge
    - fr_dlist_recursive_sort
    - fr_dlist_sort_split
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void fr_dlist_recursive_sort(fr_dlist_head_t *head, void **ptr, fr_cmp_t
      cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/dlist.h:1051,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dlist.h:1053,1
    - Dst: fr_dlist_recursive_sort
      Src: /src/freeradius-server/src/lib/util/dlist.h:1060,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:1065,1
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/dlist.h:1070,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dlist.h:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - list
    - cmp
    argTypes:
    - fr_dlist_head_t*
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1046
    functionDepth: 5
    functionLinenumber: 1046
    functionLinenumberEnd: 1085
    functionName: fr_dlist_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_dlist_num_elements
    - fr_dlist_next
    - fr_dlist_recursive_sort
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void fr_dlist_sort(fr_dlist_head_t *list, fr_cmp_t cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1090
    functionName: fr_dlist_noop
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dlist_noop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1098
    functionName: FR_DLIST_ENTRY
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_ENTRY(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1105
    functionName: FR_DLIST_HEAD
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_HEAD(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1115
    functionName: FR_DLIST_TYPES
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_TYPES(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _head
    - ','
    - _entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1124
    functionName: FR_DLIST_TYPEDEFS
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_TYPEDEFS(_name, _head, _entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _element_type
    - ','
    - _element_entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1238
    functionName: FR_DLIST_FUNCS
    functionSourceFile: /src/freeradius-server/src/lib/util/dlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DLIST_FUNCS(_name, _element_type, _element_entry)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pcap_close
      Src: /src/freeradius-server/src/lib/util/pcap.c:59,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/pcap.c:62,1
    - Dst: pcap_dump_flush
      Src: /src/freeradius-server/src/lib/util/pcap.c:70,1
    - Dst: pcap_dump_close
      Src: /src/freeradius-server/src/lib/util/pcap.c:71,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - pcap
    argTypes:
    - fr_pcap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: _free_pcap
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 0
    functionsReached:
    - pcap_dump_close
    - pcap_close
    - pcap_dump_flush
    - close
    linkageType: ''
    returnType: int
    signature: int _free_pcap(fr_pcap_t *pcap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcap_open_live
      Src: /src/freeradius-server/src/lib/util/pcap.c:99,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:101,1
    - Dst: pcap_datalink
      Src: /src/freeradius-server/src/lib/util/pcap.c:105,1
    - Dst: pcap_close
      Src: /src/freeradius-server/src/lib/util/pcap.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dev
    argTypes:
    - pcap_if_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: fr_pcap_if_link_layer
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - pcap_close
    - pcap_open_live
    - pcap_datalink
    linkageType: ''
    returnType: int
    signature: int fr_pcap_if_link_layer(pcap_if_t *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pcap.c:122,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:123,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/pcap.c:127,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/pcap.c:130,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/pcap.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - name
    - type
    argTypes:
    - TALLOC_CTX*
    - char*
    - fr_pcap_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 136
    functionName: fr_pcap_init
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 2
    functionsReached:
    - talloc_set_destructor
    - fr_cond_assert
    - fr_strerror_printf
    - talloc_strdup
    - talloc_zero
    linkageType: ''
    returnType: fr_pcap_t
    signature: fr_pcap_t *fr_pcap_init(TALLOC_CTX *ctx, char const *name, fr_pcap_type_t
      type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/freeradius-server/src/lib/util/pcap.c:152,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/pcap.c:154,1
    - Dst: LLADDR
      Src: /src/freeradius-server/src/lib/util/pcap.c:155,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/pcap.c:156,1
    - Dst: freeifaddrs
      Src: /src/freeradius-server/src/lib/util/pcap.c:160,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/pcap.c:168,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/pcap.c:175,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/lib/util/pcap.c:177,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/pcap.c:179,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/pcap.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - macaddr
    - ifname
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 187
    functionName: fr_pcap_mac_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - socket
    - freeifaddrs
    - LLADDR
    - strcmp
    - close
    - getifaddrs
    - strlcpy
    - ioctl
    linkageType: ''
    returnType: int
    signature: int fr_pcap_mac_addr(uint8_t *macaddr, char *ifname)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/lib/util/pcap.c:210,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:212,1
    - Dst: pcap_create
      Src: /src/freeradius-server/src/lib/util/pcap.c:217,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:219,1
    - Dst: pcap_set_snaplen
      Src: /src/freeradius-server/src/lib/util/pcap.c:222,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:224,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/lib/util/pcap.c:224,1
    - Dst: pcap_close
      Src: /src/freeradius-server/src/lib/util/pcap.c:225,1
    - Dst: pcap_set_timeout
      Src: /src/freeradius-server/src/lib/util/pcap.c:229,1
    - Dst: pcap_set_promisc
      Src: /src/freeradius-server/src/lib/util/pcap.c:232,1
    - Dst: pcap_set_buffer_size
      Src: /src/freeradius-server/src/lib/util/pcap.c:236,1
    - Dst: pcap_activate
      Src: /src/freeradius-server/src/lib/util/pcap.c:240,1
    - Dst: pcap_open_live
      Src: /src/freeradius-server/src/lib/util/pcap.c:247,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:250,1
    - Dst: fr_pcap_mac_addr
      Src: /src/freeradius-server/src/lib/util/pcap.c:259,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:260,1
    - Dst: pcap_close
      Src: /src/freeradius-server/src/lib/util/pcap.c:261,1
    - Dst: pcap_setnonblock
      Src: /src/freeradius-server/src/lib/util/pcap.c:269,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:270,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/lib/util/pcap.c:271,1
    - Dst: pcap_close
      Src: /src/freeradius-server/src/lib/util/pcap.c:272,1
    - Dst: pcap_get_selectable_fd
      Src: /src/freeradius-server/src/lib/util/pcap.c:277,1
    - Dst: pcap_datalink
      Src: /src/freeradius-server/src/lib/util/pcap.c:278,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/lib/util/pcap.c:282,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:283,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/pcap.c:283,1
    - Dst: pcap_open_offline
      Src: /src/freeradius-server/src/lib/util/pcap.c:291,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:293,1
    - Dst: pcap_get_selectable_fd
      Src: /src/freeradius-server/src/lib/util/pcap.c:297,1
    - Dst: pcap_datalink
      Src: /src/freeradius-server/src/lib/util/pcap.c:298,1
    - Dst: pcap_open_dead
      Src: /src/freeradius-server/src/lib/util/pcap.c:305,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pcap.c:307,1
    - Dst: pcap_dump_open
      Src: /src/freeradius-server/src/lib/util/pcap.c:311,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:313,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/lib/util/pcap.c:313,1
    - Dst: pcap_fopen_offline
      Src: /src/freeradius-server/src/lib/util/pcap.c:321,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:323,1
    - Dst: pcap_get_selectable_fd
      Src: /src/freeradius-server/src/lib/util/pcap.c:327,1
    - Dst: pcap_datalink
      Src: /src/freeradius-server/src/lib/util/pcap.c:328,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pcap.c:332,1
    - Dst: pcap_open_dead
      Src: /src/freeradius-server/src/lib/util/pcap.c:338,1
    - Dst: pcap_dump_fopen
      Src: /src/freeradius-server/src/lib/util/pcap.c:339,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:341,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/lib/util/pcap.c:341,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pcap.c:348,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pcap.c:354,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:355,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 117
    argCount: 1
    argNames:
    - pcap
    argTypes:
    - fr_pcap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 360
    functionName: fr_pcap_open
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 2
    functionsReached:
    - fr_strerror_printf
    - pcap_dump_open
    - fr_cond_assert
    - pcap_datalink
    - pcap_get_selectable_fd
    - pcap_activate
    - pcap_geterr
    - if_nametoindex
    - pcap_fopen_offline
    - pcap_setnonblock
    - ioctl
    - fr_strerror_const
    - pcap_set_snaplen
    - pcap_set_promisc
    - fr_syserror
    - pcap_close
    - pcap_dump_fopen
    - pcap_open_dead
    - pcap_set_buffer_size
    - pcap_open_offline
    - fr_pcap_mac_addr
    - pcap_open_live
    - pcap_create
    - pcap_set_timeout
    linkageType: ''
    returnType: int
    signature: int fr_pcap_open(fr_pcap_t *pcap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pcap.c:387,1
    - Dst: pcap_lookupnet
      Src: /src/freeradius-server/src/lib/util/pcap.c:394,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:395,1
    - Dst: pcap_compile
      Src: /src/freeradius-server/src/lib/util/pcap.c:400,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:401,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/lib/util/pcap.c:401,1
    - Dst: pcap_setfilter
      Src: /src/freeradius-server/src/lib/util/pcap.c:406,1
    - Dst: pcap_freecode
      Src: /src/freeradius-server/src/lib/util/pcap.c:407,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:409,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/lib/util/pcap.c:409,1
    - Dst: pcap_freecode
      Src: /src/freeradius-server/src/lib/util/pcap.c:413,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - pcap
    - expression
    argTypes:
    - fr_pcap_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 416
    functionName: fr_pcap_apply_filter
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 2
    functionsReached:
    - pcap_geterr
    - pcap_setfilter
    - pcap_freecode
    - fr_strerror_printf
    - pcap_lookupnet
    - pcap_compile
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_pcap_apply_filter(fr_pcap_t *pcap, char const *expression)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/pcap.c:435,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/pcap.c:444,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/pcap.c:449,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/pcap.c:455,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/pcap.c:457,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/pcap.c:458,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/pcap.c:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - pcap
    - c
    argTypes:
    - TALLOC_CTX*
    - fr_pcap_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 469
    functionName: fr_pcap_device_names
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 1
    functionsReached:
    - memcpy
    - talloc_free
    - fr_cond_assert
    - talloc_array_length
    - talloc_zero_array
    - talloc_strlen
    linkageType: ''
    returnType: char
    signature: char *fr_pcap_device_names(TALLOC_CTX *ctx, fr_pcap_t *pcap, char c)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - link_layer
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 498
    functionName: fr_pcap_link_layer_supported
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_pcap_link_layer_supported(int link_layer)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:531,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/pcap.c:548,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pcap.c:572,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pcap.c:602,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 3
    argNames:
    - data
    - len
    - link_layer
    argTypes:
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 608
    functionName: fr_pcap_link_layer_offset
    functionSourceFile: /src/freeradius-server/src/lib/util/pcap.c
    functionUses: 1
    functionsReached:
    - ntohs
    - fr_strerror_printf
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pcap_link_layer_offset(uint8_t const *data, size_t len,
      int link_layer)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:105,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:110,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:114,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:115,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:119,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:144,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:151,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:152,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:152,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:152,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:156,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:157,1
    - Dst: popen
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:161,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:161,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:163,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:164,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:164,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:164,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:165,1
    - Dst: getline
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:170,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:172,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:173,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:173,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:173,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:174,1
    - Dst: pclose
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:175,1
    - Dst: fread
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:189,1
    - Dst: pclose
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:193,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:195,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:196,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:196,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:196,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:197,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:199,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:202,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:203,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:204,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:204,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:204,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:205,1
    - Dst: WIFSIGNALED
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:207,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:208,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:208,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:208,1
    - Dst: WTERMSIG
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:209,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:211,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:212,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:212,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:212,1
    - Dst: fr_value_box_from_substr
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:223,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:224,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:225,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:226,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:234,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:238,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:243,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:245,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    argCount: 3
    argNames:
    - conf
    - vp
    - in
    argTypes:
    - fr_pair_parse_t*
    - fr_pair_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 246
    functionName: fr_pair_value_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_legacy.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_strerror_printf
    - fr_sbuff_out_unescape_until
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - unlikely
    - WIFEXITED
    - FR_SBUFF_SET_RETURN
    - fread
    - getline
    - FR_SBUFF
    - fr_strerror_const
    - FR_SBUFF_TERMS
    - popen
    - L
    - WEXITSTATUS
    - fr_syserror
    - FR_SBUFF_IN
    - fr_assert
    - fr_box_strvalue_len
    - fr_sbuff_next_if_char
    - WIFSIGNALED
    - WTERMSIG
    - pclose
    - fr_value_box_from_substr
    - fr_sbuff_used
    - fr_sbuff_is_char
    - free
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_value_from_substr(fr_pair_parse_t const *conf, fr_pair_t
      *vp, fr_sbuff_t *in)
  - BBCount: 100
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:338,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:341,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:342,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:346,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:347,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:351,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:352,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:356,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:358,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:368,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:369,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:385,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:386,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:387,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:396,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:409,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:418,1
    - Dst: fr_sbuff_is_str_literal
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:428,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:429,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:434,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:438,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:441,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:446,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:447,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:467,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:474,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:483,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:485,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:492,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:493,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:499,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:501,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:515,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:517,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:527,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:549,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:558,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:568,1
    - Dst: fr_sbuff_is_str_literal
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:581,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:584,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:587,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:589,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:595,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:596,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:597,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:601,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:602,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:606,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:608,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:617,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:619,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:646,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:647,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:647,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:651,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:659,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:660,1
    - Dst: fr_dict_oid_component
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:677,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:684,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:694,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:695,1
    - Dst: fr_dict_oid_component
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:699,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:699,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:701,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:723,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:726,1
    - Dst: fr_dict_oid_component
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:738,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:751,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:752,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:752,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:762,1
    - Dst: fr_sbuff_is_digit
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:770,1
    - Dst: fr_dict_attr_unknown_afrom_oid
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:800,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:828,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:828,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:831,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:836,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:837,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:837,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:851,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:868,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:868,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:878,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:878,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:887,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:888,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:889,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:889,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:896,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:897,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:898,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:901,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:922,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:923,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:923,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:924,1
    - Dst: fr_dict_attr_unknown_alloc
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:928,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:942,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:943,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:947,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:948,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:954,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:956,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:957,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:958,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:967,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1004,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1005,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1006,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1012,1
    - Dst: fr_pair_list_prev
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1014,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1022,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1026,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1032,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1043,1
    - Dst: fr_pair_find_last_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1045,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1049,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1054,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1068,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1070,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1073,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1081,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1082,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1090,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1097,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1098,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1103,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1104,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1109,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1111,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1115,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1121,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1122,1
    - Dst: fr_pair_value_from_substr
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1132,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1135,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1138,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1142,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1152,1
    - Dst: fr_sbuff_adv_past_blank
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1153,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1167,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1175,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1187,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1198,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1199,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1211,1
    - Dst: fr_pair_parent
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1214,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1242,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1246,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1247,1
    - Dst: fr_sbuff_error
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1248,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1255,1
    CyclomaticComplexity: 172
    EdgeCount: 172
    ICount: 499
    argCount: 3
    argNames:
    - root
    - relative
    - in
    argTypes:
    - fr_pair_parse_t*
    - fr_pair_parse_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 324
    functionDepth: 7
    functionLinenumber: 324
    functionLinenumberEnd: 1256
    functionName: fr_pair_list_afrom_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_legacy.c
    functionUses: 8
    functionsReached:
    - fr_pair_value_from_substr
    - fr_type_is_leaf
    - fr_pair_list_tail
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_dict_attr_unknown_afrom_oid
    - fr_sbuff_current
    - fr_pair_list_afrom_substr
    - fr_dict_attr_is_key_field
    - fr_sbuff_adv_past_blank
    - fr_type_to_str
    - fr_dict_oid_component
    - fr_pair_list_empty
    - unlikely
    - fr_pair_append_by_da
    - fr_sbuff_error
    - fr_sbuff_diff
    - fr_pair_append
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_remaining
    - FR_SBUFF
    - PAIR_ALLOCED
    - fr_strerror_const
    - fr_sbuff_is_digit
    - fr_pair_find_last_by_da
    - fr_pair_afrom_da
    - fr_sbuff_out_by_longest_prefix
    - fr_dict_attr_common_parent
    - fr_sbuff_uint8
    - fr_sbuff_marker
    - fr_pair_parent
    - fr_assert
    - fr_dict_attr_unknown_alloc
    - fr_sbuff_advance
    - fr_sbuff_next_if_char
    - fr_sbuff_extend
    - fr_sbuff_is_char
    - fr_sbuff_is_str_literal
    - PAIR_VERIFY
    - fr_pair_list_prev
    - fr_sbuff_set
    - fr_dict_attr_ref
    - fr_dict_root
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_pair_list_afrom_substr(fr_pair_parse_t const *root, fr_pair_parse_t
      *relative,\n\t\t\t\t    fr_sbuff_t *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1282,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1286,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1289,1
    - Dst: fgets
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1296,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1324,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1324,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1326,1
    - Dst: fr_pair_list_verify
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1334,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 6
    argNames:
    - ctx
    - dict
    - out
    - fp
    - pfiledone
    - allow_exec
    argTypes:
    - TALLOC_CTX*
    - fr_dict_t*
    - fr_pair_list_t*
    - FILE*
    - bool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1270
    functionDepth: 8
    functionLinenumber: 1270
    functionLinenumberEnd: 1341
    functionName: fr_pair_list_afrom_file
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_legacy.c
    functionUses: 8
    functionsReached:
    - fgets
    - fr_dict_root
    - fr_dict_internal
    - fr_pair_list_afrom_substr
    - FR_SBUFF_IN_STR
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_list_verify
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int fr_pair_list_afrom_file(TALLOC_CTX *ctx, fr_dict_t const *dict,
      fr_pair_list_t *out, FILE *fp, bool *pfiledone, bool allow_exec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1361,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1369,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1375,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1381,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1382,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1383,1
    - Dst: fr_dict_attr_is_top_level
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1388,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1389,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1389,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1413,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1422,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1428,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1437,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1438,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1442,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1443,1
    - Dst: fr_pair_list_prepend
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1453,1
    - Dst: fr_pair_list_prepend
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1459,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1465,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/pair_legacy.c:1467,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 3
    argNames:
    - to
    - from
    - op
    argTypes:
    - fr_pair_list_t*
    - fr_pair_list_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1356
    functionDepth: 3
    functionLinenumber: 1356
    functionLinenumberEnd: 1468
    functionName: fr_pair_list_move_op
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_legacy.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_empty
    - fr_dict_attr_is_top_level
    - fr_pair_delete_by_da
    - fr_pair_list_next
    - fr_pair_list_prepend
    - fr_pair_append
    - fr_dict_internal
    - fr_pair_remove
    - fr_pair_list_head
    - PAIR_VERIFY
    - fr_pair_prepend
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fr_dict_by_da
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_move_op(fr_pair_list_t *to, fr_pair_list_t *from,
      fr_token_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/types.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: fr_type_to_enum_str
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 2
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_type_to_enum_str(fr_type_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: ARRAY_BEG
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_BEG(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: ARRAY_MID
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_MID(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: ARRAY_END
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_END(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: O
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: O(_x)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_type_t
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 403
    functionName: fr_type_cast
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_type_cast(fr_type_t dst, fr_type_t src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: O
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: O(_x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/types.c:643,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/types.c:643,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/types.c:668,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/types.c:669,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/types.c:670,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/types.c:671,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/types.c:676,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/types.c:677,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/types.c:678,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/types.c:679,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_type_t
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 689
    functionName: fr_type_promote
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_type_is_leaf
    - fr_type_to_str
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t fr_type_promote(fr_type_t a, fr_type_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/types.c:706,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/types.c:706,1
    - Dst: _talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/types.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 711
    functionName: fr_type_array_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/types.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - _talloc_zero_array
    - fr_type_to_str
    linkageType: ''
    returnType: void
    signature: void **fr_type_array_alloc(TALLOC_CTX *ctx, fr_type_t type, size_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: FR_PUT_LE16
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_PUT_LE16(a, val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/misc.c:52,1
    - Dst: sigemptyset
      Src: /src/freeradius-server/src/lib/util/misc.c:54,1
    - Dst: sigaction
      Src: /src/freeradius-server/src/lib/util/misc.c:57,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:58,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:58,1
    - Dst: signal
      Src: /src/freeradius-server/src/lib/util/misc.c:62,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:63,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - func
    argTypes:
    - int
    - sig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: fr_set_signal
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 3
    functionsReached:
    - sigaction
    - fr_strerror_printf
    - fr_syserror
    - signal
    - memset
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int fr_set_signal(int sig, sig_t func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/misc.c:81,1
    - Dst: sigemptyset
      Src: /src/freeradius-server/src/lib/util/misc.c:83,1
    - Dst: sigaction
      Src: /src/freeradius-server/src/lib/util/misc.c:86,1
    - Dst: signal
      Src: /src/freeradius-server/src/lib/util/misc.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: fr_unset_signal
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - signal
    - sigaction
    - memset
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int fr_unset_signal(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/freeradius-server/src/lib/util/misc.c:109,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - fd
    - lock_len
    - cmd
    - type
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: rad_lock
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - getpid
    - fcntl
    linkageType: ''
    returnType: int
    signature: int rad_lock(int fd, int lock_len, int cmd, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rad_lock
      Src: /src/freeradius-server/src/lib/util/misc.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - lock_len
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rad_lockfd
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - rad_lock
    linkageType: ''
    returnType: int
    signature: int rad_lockfd(int fd, int lock_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rad_lock
      Src: /src/freeradius-server/src/lib/util/misc.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - lock_len
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: rad_lockfd_nonblock
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 1
    functionsReached:
    - rad_lock
    linkageType: ''
    returnType: int
    signature: int rad_lockfd_nonblock(int fd, int lock_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rad_lock
      Src: /src/freeradius-server/src/lib/util/misc.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - lock_len
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: rad_unlockfd
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 1
    functionsReached:
    - rad_lock
    linkageType: ''
    returnType: int
    signature: int rad_unlockfd(int fd, int lock_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/freeradius-server/src/lib/util/misc.c:165,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:168,1
    - Dst: strtoull
      Src: /src/freeradius-server/src/lib/util/misc.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - out
    - end
    - value
    argTypes:
    - uint64_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: fr_strtoull
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - strtoull
    linkageType: ''
    returnType: int
    signature: int fr_strtoull(uint64_t *out, char **end, char const *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/freeradius-server/src/lib/util/misc.c:196,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:199,1
    - Dst: strtoll
      Src: /src/freeradius-server/src/lib/util/misc.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - out
    - end
    - value
    argTypes:
    - int64_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: fr_strtoll
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - strtoll
    linkageType: ''
    returnType: int
    signature: int fr_strtoll(int64_t *out, char **end, char const *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/misc.c:219,1
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/misc.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - str
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: fr_trim
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - isspace
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *fr_trim(char const *str, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/misc.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: fr_tolower
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: char
    signature: char *fr_tolower(char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:248,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:250,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:250,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:255,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:256,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: fr_nonblock
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 9
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fr_nonblock(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:276,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:278,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:278,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:285,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:286,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: fr_blocking
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fr_blocking(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/misc.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: fr_nonblock
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 9
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_nonblock(UNUSED int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/misc.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: fr_blocking
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_blocking(UNUSED int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:316,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:318,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:318,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/misc.c:323,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/misc.c:324,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/misc.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 329
    functionName: fr_cloexec
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 5
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fr_cloexec(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: fr_cloexec
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_cloexec(UNUSED int fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_PUT_LE16
      Src: /src/freeradius-server/src/lib/util/misc.c:375,1
    - Dst: FR_PUT_LE16
      Src: /src/freeradius-server/src/lib/util/misc.c:386,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 391
    functionName: fr_utf8_to_ucs2
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 3
    functionsReached:
    - FR_PUT_LE16
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_utf8_to_ucs2(uint8_t *out, size_t outlen, char const *in,
      size_t inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/misc.c:415,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/misc.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - out
    - outlen
    - num
    argTypes:
    - char*
    - size_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: fr_snprint_uint128
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 1
    functionsReached:
    - strlcpy
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t fr_snprint_uint128(char *out, size_t outlen, uint128_t const
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/misc.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: fr_pointer_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_pointer_cmp(void const *a, void const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/freeradius-server/src/lib/util/misc.c:477,1
    - Dst: SWAP
      Src: /src/freeradius-server/src/lib/util/misc.c:478,1
    - Dst: SWAP
      Src: /src/freeradius-server/src/lib/util/misc.c:482,1
    - Dst: fr_quick_sort
      Src: /src/freeradius-server/src/lib/util/misc.c:484,1
    - Dst: fr_quick_sort
      Src: /src/freeradius-server/src/lib/util/misc.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - to_sort
    - start
    - end
    - cmp
    argTypes:
    - void*[]
    - int
    - int
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 486
    functionName: fr_quick_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 3
    functionsReached:
    - fr_quick_sort
    - SWAP
    - cmp
    linkageType: ''
    returnType: void
    signature: void fr_quick_sort(void const *to_sort[], int start, int end, fr_cmp_t
      cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 474
    functionName: SWAP
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ptr
    - depth
    - max_depth
    - is_ref
    - private_data
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: fr_talloc_verify_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fr_talloc_verify_cb(UNUSED const void *ptr, UNUSED int depth,\n\t\t\t
      UNUSED int max_depth, UNUSED int is_ref,\n\t\t\t UNUSED void *private_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: fr_digest_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_digest_cmp(uint8_t const *a, uint8_t const *b, size_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/misc.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 528
    functionName: fr_filename
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *fr_filename(char const *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/misc.c:547,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/misc.c:548,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/misc.c:549,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/misc.c:552,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - path
    - common
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 559
    functionName: fr_filename_common_trim
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strchr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *fr_filename_common_trim(char const *path, char const *common)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 566
    functionName: fr_suid_noop
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_suid_noop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/freeradius-server/src/lib/util/math.h:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: fr_roundup_pow2_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 2
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_roundup_pow2_uint64(uint64_t v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/freeradius-server/src/lib/util/math.h:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: fr_roundup_pow2_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 0
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_roundup_pow2_int64(int64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/freeradius-server/src/lib/util/math.h:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: fr_high_bit_pos
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 1
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fr_high_bit_pos(uint64_t num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctzll
      Src: /src/freeradius-server/src/lib/util/math.h:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: fr_low_bit_pos
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 0
    functionsReached:
    - __builtin_ctzll
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fr_low_bit_pos(uint64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/math.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 165
    functionName: fr_log10
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 0
    functionsReached:
    - fr_high_bit_pos
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fr_log10(uint64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: fr_multiply
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_multiply(_out, _a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: fr_add
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_add(_out, _a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: fr_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sub(_out, _a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _num
    - ','
    - _mul
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: ROUND_UP_POW2
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_UP_POW2(_num, _mul)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _num
    - ','
    - _mul
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: ROUND_UP
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_UP(_num, _mul)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: ROUND_UP_DIV
    functionSourceFile: /src/freeradius-server/src/lib/util/math.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_UP_DIV(_x, _y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/udp.c:46,1
    - Dst: send
      Src: /src/freeradius-server/src/lib/util/udp.c:49,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/udp.c:54,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/udp.c:56,1
    - Dst: sendfromto
      Src: /src/freeradius-server/src/lib/util/udp.c:59,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/udp.c:65,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/udp.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - sock
    - flags
    - data
    - data_len
    argTypes:
    - fr_socket_t*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: udp_send
    functionSourceFile: /src/freeradius-server/src/lib/util/udp.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - fr_strerror_printf
    - fr_syserror
    - fr_assert
    - sendfromto
    - send
    linkageType: ''
    returnType: int
    signature: int udp_send(fr_socket_t const *sock, int flags, void *data, size_t
      data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/util/udp.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: udp_recv_discard
    functionSourceFile: /src/freeradius-server/src/lib/util/udp.c
    functionUses: 0
    functionsReached:
    - recvfrom
    linkageType: ''
    returnType: int
    signature: int udp_recv_discard(int sockfd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/freeradius-server/src/lib/util/udp.c:102,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/util/udp.c:111,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/udp.c:120,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/lib/util/udp.c:121,1
    - Dst: udp_recv_discard
      Src: /src/freeradius-server/src/lib/util/udp.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 6
    argNames:
    - sockfd
    - data
    - data_len
    - flags
    - src_ipaddr
    - src_port
    argTypes:
    - int
    - void*
    - size_t
    - int
    - fr_ipaddr_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 128
    functionName: udp_recv_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/udp.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - udp_recv_discard
    - recvfrom
    - FR_DEBUG_STRERROR_PRINTF
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t udp_recv_peek(int sockfd, void *data, size_t data_len, int
      flags, fr_ipaddr_t *src_ipaddr, uint16_t *src_port)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/udp.c:156,1
    - Dst: recv
      Src: /src/freeradius-server/src/lib/util/udp.c:170,1
    - Dst: recvfromto
      Src: /src/freeradius-server/src/lib/util/udp.c:178,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/udp.c:185,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/udp.c:186,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/udp.c:189,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/udp.c:190,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/udp.c:198,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/udp.c:198,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/udp.c:206,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/udp.c:206,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/udp.c:206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 6
    argNames:
    - sockfd
    - flags
    - socket_out
    - data
    - data_len
    - when
    argTypes:
    - int
    - int
    - fr_socket_t*
    - void*
    - size_t
    - fr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 209
    functionName: udp_recv
    functionSourceFile: /src/freeradius-server/src/lib/util/udp.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_time_wrap
    - fr_time
    - fr_strerror_printf
    - fr_syserror
    - fr_time_eq
    - recvfromto
    - fr_strerror_const_push
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t udp_recv(int sockfd, int flags,\n\t\t fr_socket_t *socket_out,
      void *data, size_t data_len, fr_time_t *when)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: FR_SBUFF_TERM
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_TERM(_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: FR_SBUFF_TERMS
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_TERMS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/sbuff.h:279,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/sbuff.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - fr_sbuff_parse_error_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: fr_sbuff_parse_error_to_strerror
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached:
    - fr_strerror_const
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_parse_error_to_strerror(fr_sbuff_parse_error_t err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_t*::eof
      Src: /src/freeradius-server/src/lib/util/sbuff.h:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: fr_sbuff_is_extendable
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_t*::eof
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_is_extendable(fr_sbuff_t *sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: fr_sbuff_was_extended
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_was_extended(_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _func
    - ','
    - _sbuff
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: FR_SBUFF_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_RETURN(_func, _sbuff, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _start
    - ','
    - _current
    - ','
    - _end
    - ','
    - _extend
    - ','
    - _eof
    - ','
    - _adv_parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 442
    functionName: _FR_SBUFF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_SBUFF(_sbuff_or_marker, _start, _current, _end, _extend, _eof,
      _adv_parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: FR_SBUFF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 472
    functionName: FR_SBUFF_ABS
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_ABS(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: FR_SBUFF_REPARSE
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_REPARSE(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: FR_SBUFF_BIND_CURRENT
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_BIND_CURRENT(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: FR_SBUFF_BIND_CURRENT_ABS
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_BIND_CURRENT_ABS(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: FR_SBUFF_OUT
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_OUT(_start, _len_or_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 578
    functionName: FR_SBUFF_IN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN(_start, _len_or_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _start
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 580
    functionName: FR_SBUFF_IN_STR
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_STR(_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sbuff.h:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sbtl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 592
    functionName: _sbuff_thread_local_free
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _sbuff_thread_local_free(void *sbtl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _init
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 613
    functionName: FR_SBUFF_TALLOC_THREAD_LOCAL
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_TALLOC_THREAD_LOCAL(_out, _init, _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: fr_sbuff_terminate
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_terminate(fr_sbuff_t *sbuff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.h:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - start
    - end
    - is_const
    argTypes:
    - fr_sbuff_t*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 644
    functionName: _fr_sbuff_init
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void _fr_sbuff_init(fr_sbuff_t *out, char const *start, char const
      *end, bool is_const)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 676
    functionName: fr_sbuff_init_out
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_init_out(_out, _start, _len_or_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 698
    functionName: fr_sbuff_init_in
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_init_in(_out, _start, _len_or_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - sbuff
    - fctx
    - buff
    - len
    - file
    - max
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_uctx_file_t*
    - char*
    - size_t
    - FILE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 731
    functionName: fr_sbuff_init_file
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fr_sbuff_t
    signature: "fr_sbuff_t *fr_sbuff_init_file(fr_sbuff_t *sbuff, fr_sbuff_uctx_file_t
      *fctx,\n\t\t\t\t\t     char *buff, size_t len, FILE *file, size_t max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/sbuff.h:763,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.h:765,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sbuff.h:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - sbuff
    - tctx
    - init
    - max
    argTypes:
    - TALLOC_CTX*
    - fr_sbuff_t*
    - fr_sbuff_uctx_talloc_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 780
    functionName: fr_sbuff_init_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 18
    functionsReached:
    - memset
    - fr_strerror_printf
    - talloc_zero_array
    linkageType: ''
    returnType: fr_sbuff_t
    signature: "fr_sbuff_t *fr_sbuff_init_talloc(TALLOC_CTX *ctx,\n\t\t\t\t\t       fr_sbuff_t
      *sbuff, fr_sbuff_uctx_talloc_t *tctx,\n\t\t\t\t\t       size_t init, size_t
      max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: fr_sbuff_ptr
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_ptr(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 818
    functionName: fr_sbuff_buff
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_buff(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 834
    functionName: fr_sbuff_start
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_start(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 850
    functionName: fr_sbuff_current
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_current(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 863
    functionName: fr_sbuff_end
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_end(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 876
    functionName: fr_sbuff_shifted
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_shifted(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _eob
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 887
    functionName: fr_sbuff_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_char(_sbuff_or_marker, _eob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _eob
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 897
    functionName: fr_sbuff_uint8
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_uint8(_sbuff_or_marker, _eob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _eob
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: fr_sbuff_switch
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_switch(_sbuff_or_marker, _eob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 924
    functionName: fr_sbuff_diff
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_diff(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: fr_sbuff_remaining
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_remaining(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 952
    functionName: fr_sbuff_used
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_used(_sbuff_or_marker)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/sbuff.h:969,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sbuff
    - err
    argTypes:
    - fr_sbuff_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 981
    functionName: _fr_sbuff_error
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t _fr_sbuff_error(fr_sbuff_t *sbuff, char const *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 993
    functionName: fr_sbuff_error
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_error(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1004
    functionName: fr_sbuff_used_total
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_used_total(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1012
    functionName: fr_sbuff_len
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_len(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    functionName: fr_sbuff_behind
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_behind(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1033
    functionName: fr_sbuff_ahead
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_ahead(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1038
    functionName: FR_SBUFF_ERROR_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_ERROR_RETURN(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1044
    functionName: FR_SBUFF_CHECK_REMAINING_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_CHECK_REMAINING_RETURN(_sbuff, _len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_is_extendable
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1050,1
    - Dst: fr_sbuff_t*::extend
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1059,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - status
    - in
    - remaining
    - lowat
    argTypes:
    - fr_sbuff_extend_status_t*
    - fr_sbuff_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1067
    functionName: _fr_sbuff_extend_lowat
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_extendable
    - fr_sbuff_t*::extend
    linkageType: ''
    returnType: size_t
    signature: size_t _fr_sbuff_extend_lowat(fr_sbuff_extend_status_t *status, fr_sbuff_t
      *in, size_t remaining, size_t lowat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _status
    - ','
    - _sbuff_or_marker
    - ','
    - _lowat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1087
    functionName: fr_sbuff_extend_lowat
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_extend_lowat(_status, _sbuff_or_marker, _lowat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1101
    functionName: FR_SBUFF_EXTEND_LOWAT_OR_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_EXTEND_LOWAT_OR_RETURN(_sbuff, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1110
    functionName: fr_sbuff_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_extend(_sbuff_or_marker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _fr_sbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - sbuff
    - p
    argTypes:
    - fr_sbuff_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1129
    functionName: _fr_sbuff_set_recurse
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached:
    - _fr_sbuff_set_recurse
    linkageType: ''
    returnType: void
    signature: void _fr_sbuff_set_recurse(fr_sbuff_t *sbuff, char const *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1136,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - m
    - p
    argTypes:
    - fr_sbuff_marker_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1143
    functionName: _fr_sbuff_marker_set
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_sbuff_marker_set(fr_sbuff_marker_t *m, char const *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1149,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1150,1
    - Dst: _fr_sbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sbuff
    - p
    argTypes:
    - fr_sbuff_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1156
    functionName: _fr_sbuff_set
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    - _fr_sbuff_set_recurse
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_sbuff_set(fr_sbuff_t *sbuff, char const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1186
    functionName: fr_sbuff_set
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_set(_dst, _src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1194
    functionName: FR_SBUFF_SET_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_SET_RETURN(_dst, _src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1205
    functionName: fr_sbuff_advance
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_advance(_sbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1206
    functionName: FR_SBUFF_ADVANCE_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_ADVANCE_RETURN(_sbuff, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_sbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1213
    functionName: fr_sbuff_set_to_start
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 13
    functionsReached:
    - _fr_sbuff_set_recurse
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_set_to_start(fr_sbuff_t *sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_sbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1221
    functionName: fr_sbuff_set_to_end
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached:
    - _fr_sbuff_set_recurse
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_set_to_end(fr_sbuff_t *sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - m
    - sbuff
    argTypes:
    - fr_sbuff_marker_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1254
    functionName: fr_sbuff_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_sbuff_marker(fr_sbuff_marker_t *m, fr_sbuff_t *sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1277,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1279,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1280,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - m
    - max
    argTypes:
    - fr_sbuff_marker_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1284
    functionName: fr_sbuff_marker_update_end
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_current
    - fr_sbuff_end
    - fr_sbuff_remaining
    - fr_sbuff_used_total
    linkageType: ''
    returnType: char
    signature: char *fr_sbuff_marker_update_end(fr_sbuff_marker_t *m, size_t max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1302
    functionName: fr_sbuff_marker_release
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 12
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_marker_release(fr_sbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1318,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1321
    functionName: fr_sbuff_marker_release_behind
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_marker_release
    - fr_sbuff_behind
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_marker_release_behind(fr_sbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1337,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1335
    functionDepth: 1
    functionLinenumber: 1335
    functionLinenumberEnd: 1340
    functionName: fr_sbuff_marker_release_ahead
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_marker_release
    - fr_sbuff_ahead
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_marker_release_ahead(fr_sbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1356,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1357,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1360
    functionName: fr_sbuff_marker_release_reset_behind
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_marker_release
    - fr_sbuff_behind
    - fr_sbuff_set
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_marker_release_reset_behind(fr_sbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1376,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1377,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_sbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1380
    functionName: fr_sbuff_marker_release_reset_ahead
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_marker_release
    - fr_sbuff_set
    - fr_sbuff_ahead
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_marker_release_reset_ahead(fr_sbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1417
    functionName: fr_sbuff_move
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_move(_out, _in, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1426
    functionName: fr_sbuff_in_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_in_char(_sbuff, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1427
    functionName: FR_SBUFF_IN_CHAR_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_CHAR_RETURN(_sbuff, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1430
    functionName: FR_SBUFF_IN_STRCPY_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_STRCPY_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1433
    functionName: FR_SBUFF_IN_BSTRNCPY_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_BSTRNCPY_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1435
    functionName: fr_sbuff_in_strcpy_literal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_in_strcpy_literal(_sbuff, _str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1436
    functionName: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_STRCPY_LITERAL_RETURN(_sbuff, _str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1439
    functionName: FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_BSTRCPY_BUFFER_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1442
    functionName: FR_SBUFF_IN_VSPRINTF_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_VSPRINTF_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1445
    functionName: FR_SBUFF_IN_SPRINTF_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_SPRINTF_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1448
    functionName: FR_SBUFF_IN_ESCAPE_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_ESCAPE_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1451
    functionName: FR_SBUFF_IN_ESCAPE_BUFFER_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_ESCAPE_BUFFER_RETURN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1454
    functionName: FR_SBUFF_IN_ARRAY
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_ARRAY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _slen
    - ','
    - _sbuff
    - ','
    - _table
    - ','
    - _number
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1465
    functionName: fr_sbuff_in_table_str
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_in_table_str(_slen, _sbuff, _table, _number, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _sbuff
    - ','
    - _table
    - ','
    - _number
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1471
    functionName: FR_SBUFF_IN_TABLE_STR_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SBUFF_IN_TABLE_STR_RETURN(_sbuff, _table, _number, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - bool[]
    - bool[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1486
    functionName: fr_sbuff_allowed_merge
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_allowed_merge(bool out[static SBUFF_CHAR_CLASS], bool
      const in[static SBUFF_CHAR_CLASS])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _match_len
    - ','
    - _out
    - ','
    - _table
    - ','
    - _sbuff
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1522
    functionName: fr_sbuff_out_by_longest_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_out_by_longest_prefix(_match_len, _out, _table, _sbuff, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _func
    - ','
    - _in
    - ','
    - _len
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1556
    functionName: SBUFF_OUT_TALLOC_ERR_FUNC_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBUFF_OUT_TALLOC_ERR_FUNC_DEF(_func, _in, _len, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _func
    - ','
    - _in
    - ','
    - _len
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1586
    functionName: SBUFF_OUT_TALLOC_FUNC_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBUFF_OUT_TALLOC_FUNC_DEF(_func, _in, _len, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1592
    functionDepth: 0
    functionLinenumber: 1592
    functionLinenumberEnd: 1612
    functionName: SBUFF_OUT_TALLOC_FUNC_NO_LEN_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBUFF_OUT_TALLOC_FUNC_NO_LEN_DEF(_func, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _err
    - ','
    - _out
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1676
    functionName: _fr_sbuff_out_size
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fr_sbuff_out_size(_err, _out, _in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _err
    - ','
    - _out
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1682
    functionName: _fr_sbuff_out_ssize
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fr_sbuff_out_ssize(_err, _out, _in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _err
    - ','
    - _out
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1710
    functionName: fr_sbuff_out
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_out(_err, _out, _in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _needle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1722
    functionDepth: 0
    functionLinenumber: 1722
    functionLinenumberEnd: 1723
    functionName: fr_sbuff_adv_past_str_literal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_past_str_literal(_sbuff, _needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _needle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1727
    functionName: fr_sbuff_adv_past_strcase_literal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_past_strcase_literal(_sbuff, _needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - ','
    - _tt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1732
    functionName: fr_sbuff_adv_past_zeros
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_past_zeros(_sbuff, _len, _tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - ','
    - _tt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1734
    functionName: fr_sbuff_adv_past_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_past_whitespace(_sbuff, _len, _tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - ','
    - _tt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1736
    functionName: fr_sbuff_adv_past_blank
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_past_blank(_sbuff, _len, _tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - ','
    - _needle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1746
    functionName: fr_sbuff_adv_to_str_literal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_to_str_literal(_sbuff, _len, _needle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _len
    - ','
    - _needle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1750
    functionName: fr_sbuff_adv_to_strcase_literal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_adv_to_strcase_literal(_sbuff, _len, _needle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1760,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1762
    functionName: fr_sbuff_next
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 6
    functionsReached:
    - fr_sbuff_extend
    - fr_sbuff_advance
    linkageType: ''
    returnType: char
    signature: char fr_sbuff_next(fr_sbuff_t *sbuff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sbuff
    - chars
    argTypes:
    - fr_sbuff_t*
    - bool[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1784
    functionName: fr_sbuff_is_in_charset
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached:
    - fr_sbuff_extend
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_is_in_charset(fr_sbuff_t *sbuff, bool const chars[static
      SBUFF_CHAR_CLASS])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1788,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1789,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sbuff
    - str
    - len
    argTypes:
    - fr_sbuff_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1791
    functionName: fr_sbuff_is_str
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 4
    functionsReached:
    - fr_sbuff_extend_lowat
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_is_str(fr_sbuff_t *sbuff, char const *str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1793
    functionName: fr_sbuff_is_str_literal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_str_literal(_sbuff, _str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1795
    functionName: fr_sbuff_eof
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_eof(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - sbuff
    - p
    - c
    argTypes:
    - fr_sbuff_t*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1800
    functionName: _fr_sbuff_is_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    linkageType: ''
    returnType: bool
    signature: bool _fr_sbuff_is_char(fr_sbuff_t *sbuff, char *p, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.h:1803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - marker
    - p
    - c
    argTypes:
    - fr_sbuff_marker_t*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1805
    functionName: _fr_marker_is_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    linkageType: ''
    returnType: bool
    signature: bool _fr_marker_is_char(fr_sbuff_marker_t *marker, char *p, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1811
    functionName: fr_sbuff_is_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_char(_sbuff_or_marker, _c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _test
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1823
    functionName: SBUFF_IS_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBUFF_IS_FUNC(_name, _test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff_or_marker
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1824
    functionDepth: 0
    functionLinenumber: 1824
    functionLinenumberEnd: 1829
    functionName: SBUFF_IS_GENERIC
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBUFF_IS_GENERIC(_sbuff_or_marker, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1833
    functionName: fr_sbuff_is_digit
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_digit(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1837
    functionName: fr_sbuff_is_upper
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_upper(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1839
    functionDepth: 0
    functionLinenumber: 1839
    functionLinenumberEnd: 1841
    functionName: fr_sbuff_is_lower
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_lower(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1845
    functionName: fr_sbuff_is_alpha
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_alpha(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1849
    functionName: fr_sbuff_is_alnum
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_alnum(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1853
    functionName: fr_sbuff_is_space
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_space(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1857
    functionName: fr_sbuff_is_hex
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_is_hex(_sbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1870
    functionName: fr_sbuff_as_percent_s
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_sbuff_as_percent_s(_sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _expire
    - ','
    - _type
    - ','
    - _field
    - ','
    - _data_cmp
    - ','
    - _data_free
    - ','
    - _lifetime
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: fr_rb_expire_inline_talloc_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rb_expire.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_expire_inline_talloc_init(_expire, _type, _field, _data_cmp,
      _data_free, _lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: PROTO_ENCODE_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/encode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROTO_ENCODE_FUNC(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: _hmac_md5_ctx_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/hmac_md5.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: int _hmac_md5_ctx_free_on_exit(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:66,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:67,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:68,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:69,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:72,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:73,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:78,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:79,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:80,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:84,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:84,1
    - Dst: EVP_md5
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:84,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:85,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:87,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:90,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:90,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:91,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:97,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:97,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:98,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:102,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - digest
    - in
    - inlen
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 106
    functionName: fr_hmac_md5
    functionSourceFile: /src/freeradius-server/src/lib/util/hmac_md5.c
    functionUses: 1
    functionsReached:
    - unlikely
    - EVP_DigestSignFinal
    - EVP_PKEY_new_mac_key
    - EVP_MD_CTX_set_flags
    - fr_atexit_thread_local
    - EVP_MD_CTX_new
    - EVP_DigestSignInit
    - EVP_PKEY_free
    - EVP_MD_CTX_reset
    - EVP_md5
    - fr_strerror_const
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: "int fr_hmac_md5(uint8_t digest[MD5_DIGEST_LENGTH], uint8_t const *in,
      size_t inlen,\n\t\tuint8_t const *key, size_t key_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:128,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:132,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:133,1
    - Dst: fr_md5_ctx_reset
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:134,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:153,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:154,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:155,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:156,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:166,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:167,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:168,1
    - Dst: fr_md5_ctx_reset
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:174,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:175,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:176,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:177,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/lib/util/hmac_md5.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 5
    argNames:
    - digest
    - in
    - inlen
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 182
    functionName: fr_hmac_md5
    functionSourceFile: /src/freeradius-server/src/lib/util/hmac_md5.c
    functionUses: 1
    functionsReached:
    - fr_md5_ctx_reset
    - memcpy
    - fr_md5_update
    - fr_md5_final
    - fr_md5_ctx_alloc_from_list
    - memset
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: int
    signature: "int fr_hmac_md5(uint8_t digest[MD5_DIGEST_LENGTH], uint8_t const *in,
      size_t inlen,\n\t\tuint8_t const *key, size_t key_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: fr_dict_attr_ref_is_unresolved
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dict_attr_ref_is_unresolved(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: fr_dict_attr_ref_type
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dict_attr_ref_type(_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - da
    - ext
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: fr_dict_attr_ext
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 2
    functionsReached:
    - fr_ext_ptr
    linkageType: ''
    returnType: void
    signature: void *fr_dict_attr_ext(fr_dict_attr_t const *da, fr_dict_attr_ext_t
      ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - da
    - ext
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: fr_dict_attr_has_ext
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_dict_attr_has_ext(fr_dict_attr_t const *da, fr_dict_attr_ext_t
      ext)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:152,1
    - Dst: fr_dict_attr_ref_is_unresolved
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: fr_dict_attr_ref
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 7
    functionsReached:
    - fr_dict_attr_ext
    - fr_dict_attr_ref_is_unresolved
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_ref(fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: fr_dict_vendor_num_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 5
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_dict_vendor_num_by_da(fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: fr_dict_vendor_da_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_vendor_da_by_da(fr_dict_attr_t const *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - enumv
    - ext
    argTypes:
    - fr_dict_enum_value_t*
    - fr_dict_enum_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: fr_dict_enum_ext
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 1
    functionsReached:
    - fr_ext_ptr
    linkageType: ''
    returnType: void
    signature: void *fr_dict_enum_ext(fr_dict_enum_value_t const *enumv, fr_dict_enum_ext_t
      ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enumv
    argTypes:
    - fr_dict_enum_value_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: fr_dict_enum_attr_ref
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext.h
    functionUses: 0
    functionsReached:
    - fr_dict_enum_ext
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_enum_attr_ref(fr_dict_enum_value_t const *enumv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: us
    functionSourceFile: /src/freeradius-server/src/lib/util/base32.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: us(x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/base32.c:193,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/base32.c:194,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/base32.c:196,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/base32.c:201,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:206,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:207,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:208,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:209,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:210,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:211,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:220,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:227,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:228,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:229,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:230,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:231,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:239,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:240,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:247,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:248,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:249,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:250,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:256,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:257,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:264,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:265,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:266,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:271,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:272,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:279,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:280,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:283,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:284,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/base32.c:293,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/base32.c:295,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/base32.c:296,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:297,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 4
    argNames:
    - out
    - in
    - add_padding
    - alphabet
    argTypes:
    - fr_sbuff_t*
    - fr_dbuff_t*
    - bool
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 298
    functionName: fr_base32_encode_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base32.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_dbuff_set
    - fr_dbuff_current
    - fr_dbuff_extend_lowat
    - fr_sbuff_terminate
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_dbuff_advance
    - FR_SBUFF_SET_RETURN
    - FR_DBUFF
    - fr_strerror_clear
    - FR_SBUFF
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_base32_encode_nstd(fr_sbuff_t *out, fr_dbuff_t *in,\n\t\t\t
      \     bool add_padding, char const alphabet[static SBUFF_CHAR_CLASS])"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/base32.c:318,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/base32.c:319,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/base32.c:327,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:328,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:330,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:331,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:332,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:333,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:334,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:335,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:336,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:337,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base32.c:339,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:340,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:340,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:341,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:341,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:341,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:342,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:342,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:343,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:343,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:343,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:344,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:344,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base32.c:346,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/base32.c:347,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:351,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:354,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/base32.c:357,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/base32.c:362,1
    - Dst: fr_is_base32_nstd
      Src: /src/freeradius-server/src/lib/util/base32.c:362,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/base32.c:362,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/base32.c:363,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/base32.c:366,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:374,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base32.c:376,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:377,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:377,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:384,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base32.c:386,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:387,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:387,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:388,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:388,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:388,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:396,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base32.c:398,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:399,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:399,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:400,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:400,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:400,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:401,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:401,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base32.c:408,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base32.c:410,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:411,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:411,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:412,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:412,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:412,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:413,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:413,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:414,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:414,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base32.c:414,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base32.c:421,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:426,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/base32.c:432,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base32.c:433,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/base32.c:440,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base32.c:441,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/base32.c:442,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/base32.c:451,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base32.c:452,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/base32.c:453,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base32.c:457,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/base32.c:462,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/base32.c:463,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 87
    argCount: 6
    argNames:
    - err
    - out
    - in
    - expect_padding
    - no_trailing
    - alphabet
    argTypes:
    - fr_sbuff_parse_error_t*
    - fr_dbuff_t*
    - fr_sbuff_t*
    - bool
    - bool
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 464
    functionName: fr_base32_decode_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base32.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    - fr_dbuff_set
    - fr_sbuff_char
    - fr_dbuff_in_bytes
    - fr_is_base32_nstd
    - fr_strerror_printf
    - us
    - fr_sbuff_marker
    - fr_sbuff_current
    - fr_dbuff_used
    - fr_sbuff_behind
    - FR_SBUFF_ERROR_RETURN
    - FR_DBUFF
    - fr_sbuff_advance
    - FR_SBUFF
    - fr_sbuff_extend_lowat
    - fr_sbuff_next_if_char
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_base32_decode_nstd(fr_sbuff_parse_error_t *err, fr_dbuff_t
      *out, fr_sbuff_t *in,\n\t\t\t\tbool expect_padding, bool no_trailing, uint8_t
      const alphabet[static SBUFF_CHAR_CLASS])"
  - BBCount: 124
    BranchProfiles: []
    Callsites:
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:58,1
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:59,1
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:60,1
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:61,1
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:62,1
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:63,1
    - Dst: SET_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:64,1
    - Dst: FORBID_OTHER_FLAGS
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:87,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:91,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:96,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:101,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:109,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:109,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:120,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:121,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:142,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:161,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:162,1
    - Dst: FORBID_OTHER_FLAGS
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:164,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:173,1
    - Dst: FORBID_OTHER_FLAGS
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:178,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:187,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:189,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:194,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:199,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:203,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:205,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:206,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:207,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:208,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:209,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:210,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:211,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:212,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:213,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:221,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:221,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:221,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:222,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:233,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:238,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:242,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:243,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:249,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:261,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:263,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:267,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:272,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:276,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:277,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:281,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:282,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:286,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:287,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:288,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:292,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:294,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:298,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:299,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:303,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:305,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:306,1
    - Dst: FORBID_OTHER_FLAGS
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:310,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:335,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:336,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:377,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:378,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:380,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:389,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:391,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:398,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:407,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:422,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:423,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:424,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:427,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:432,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:440,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:441,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:449,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:450,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:457,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:458,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:482,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:482,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:489,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:501,1
    - Dst: fr_type_is_signed
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:501,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:502,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:504,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:504,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:514,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:515,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:522,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:522,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:523,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:530,1
    - Dst: ALLOW_FLAG
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:534,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:540,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:557,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:567,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:575,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:584,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:586,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:588,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:593,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:595,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:605,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:606,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:616,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:617,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:618,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:624,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:625,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 368
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 630
    functionName: dict_attr_flags_valid
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_validate.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_strerror_printf
    - fr_strerror_const
    - FORBID_OTHER_FLAGS
    - fr_dict_attr_ext
    - fr_assert
    - da_is_bit_field
    - fr_type_is_integer
    - da_is_length_field
    - fr_dict_attr_child_by_num
    - fr_dict_attr_is_key_field
    - SET_FLAG
    - ALLOW_FLAG
    - fr_type_is_signed
    - fr_type_to_str
    linkageType: ''
    returnType: bool
    signature: bool dict_attr_flags_valid(fr_dict_attr_t *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: SET_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_validate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FLAG(_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _flag
    - ','
    - _allowed
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: FORBID_OTHER_FLAGS
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_validate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORBID_OTHER_FLAGS(_flag, _allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: ALLOW_FLAG
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_validate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOW_FLAG(_flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:644,1
    - Dst: fr_dict_valid_name
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:646,1
    - Dst: fr_dict_attr_t*::dict::proto::attr::valid
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:652,1
    - Dst: dict_attr_flags_valid
      Src: /src/freeradius-server/src/lib/util/dict_validate.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 660
    functionName: dict_attr_valid
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_validate.c
    functionUses: 0
    functionsReached:
    - fr_dict_valid_name
    - fr_cond_assert
    - fr_dict_attr_t*::dict::proto::attr::valid
    - dict_attr_flags_valid
    linkageType: ''
    returnType: bool
    signature: bool dict_attr_valid(fr_dict_attr_t *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: PACKET_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/packet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKET_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PACKET_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/packet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKET_VERIFY(_x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:43,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:47,1
    - Dst: fr_dict_is_read_only
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:47,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:48,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - da_p
    argTypes:
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: dict_attr_ext_mutable
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_dict_is_read_only
    - unlikely
    - fr_strerror_printf
    - fr_dict_root
    linkageType: ''
    returnType: bool
    signature: bool dict_attr_ext_mutable(fr_dict_attr_t **da_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_mutable
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:60,1
    - Dst: fr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - da_p
    - ext
    - ext_len
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_ext_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: dict_attr_ext_alloc_size
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - dict_attr_ext_mutable
    - fr_ext_alloc_size
    linkageType: ''
    returnType: void
    signature: void *dict_attr_ext_alloc_size(fr_dict_attr_t **da_p, fr_dict_attr_ext_t
      ext, size_t ext_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_mutable
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:70,1
    - Dst: fr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - da_p
    - ext
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: dict_attr_ext_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - dict_attr_ext_mutable
    - fr_ext_alloc_size
    linkageType: ''
    returnType: void
    signature: void *dict_attr_ext_alloc(fr_dict_attr_t **da_p, fr_dict_attr_ext_t
      ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - da
    - ext
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: dict_attr_ext_len
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_ext_len
    linkageType: ''
    returnType: size_t
    signature: size_t dict_attr_ext_len(fr_dict_attr_t const *da, fr_dict_attr_ext_t
      ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_mutable
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:88,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:97,1
    - Dst: fr_ext_copy
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - da_out_p
    - da_in
    - ext
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_dict_attr_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: dict_attr_ext_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - dict_attr_ext_mutable
    - fr_assert
    - fr_ext_copy
    linkageType: ''
    returnType: void
    signature: void *dict_attr_ext_copy(fr_dict_attr_t **da_out_p, fr_dict_attr_t
      const *da_in, fr_dict_attr_ext_t ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_mutable
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:109,1
    - Dst: fr_ext_copy_all
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - da_out_p
    - da_in
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: dict_attr_ext_copy_all
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - dict_attr_ext_mutable
    - fr_ext_copy_all
    linkageType: ''
    returnType: int
    signature: int dict_attr_ext_copy_all(fr_dict_attr_t **da_out_p, fr_dict_attr_t
      const *da_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_debug
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - da
    argTypes:
    - char*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: dict_attr_ext_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 1
    functionsReached:
    - fr_ext_debug
    linkageType: ''
    returnType: void
    signature: void dict_attr_ext_debug(char const *name, fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:132,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:133,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:134,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:138,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: dict_attr_ref_null
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - unlikely
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int dict_attr_ref_null(fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:153,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:154,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:155,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:161,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - da_p
    - ref
    - type
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_dict_attr_ref_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 170
    functionName: dict_attr_ref_aset
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - unlikely
    - fr_strerror_printf
    - dict_attr_ext_alloc
    linkageType: ''
    returnType: int
    signature: int dict_attr_ref_aset(fr_dict_attr_t **da_p, fr_dict_attr_t const
      *ref, fr_dict_attr_ref_type_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:176,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:177,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:178,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:185,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - da
    - ref
    - type
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_dict_attr_ref_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 196
    functionName: dict_attr_ref_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - unlikely
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int dict_attr_ref_set(fr_dict_attr_t const *da, fr_dict_attr_t const
      *ref, fr_dict_attr_ref_type_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:202,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:203,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:204,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:211,1
    - Dst: fr_dict_attr_ref_is_unresolved
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:211,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:212,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - da
    - ref
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: dict_attr_ref_resolve
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_dict_attr_ref_is_unresolved
    linkageType: ''
    returnType: int
    signature: int dict_attr_ref_resolve(fr_dict_attr_t const *da, fr_dict_attr_t
      const *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:228,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:229,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:230,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:231,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:234,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:235,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - da_p
    - ref
    - type
    argTypes:
    - fr_dict_attr_t**
    - char*
    - fr_dict_attr_ref_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 242
    functionName: dict_attr_ref_aunresolved
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - talloc_strdup
    - fr_dict_attr_ext
    - dict_attr_ext_alloc
    linkageType: ''
    returnType: int
    signature: int dict_attr_ref_aunresolved(fr_dict_attr_t **da_p, char const *ref,
      fr_dict_attr_ref_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:248,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:249,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - da
    - children
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 256
    functionName: dict_attr_children_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - unlikely
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: "int dict_attr_children_set(fr_dict_attr_t const *da, fr_dict_attr_t
      const\t**children)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:262,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:263,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: dict_attr_children
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 1
    functionsReached:
    - fr_dict_attr_ext
    - unlikely
    - fr_strerror_printf
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t **dict_attr_children(fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:282,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:283,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: dict_attr_namespace
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - unlikely
    - fr_dict_attr_ref
    linkageType: ''
    returnType: fr_hash_table_t
    signature: fr_hash_table_t *dict_attr_namespace(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:297,1
    - Dst: fr_dict_enum_ext
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:297,1
    - Dst: fr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/dict_ext_priv.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enumv_p
    - ext
    argTypes:
    - fr_dict_enum_value_t**
    - fr_dict_enum_ext_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: dict_enum_ext_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_ext_priv.h
    functionUses: 0
    functionsReached:
    - fr_ext_alloc_size
    - fr_assert
    - fr_dict_enum_ext
    linkageType: ''
    returnType: void
    signature: void *dict_enum_ext_alloc(fr_dict_enum_value_t **enumv_p, fr_dict_enum_ext_t
      ext)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/cap.c:63,1
    - Dst: cap_get_proc
      Src: /src/freeradius-server/src/lib/util/cap.c:65,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:67,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:67,1
    - Dst: cap_get_flag
      Src: /src/freeradius-server/src/lib/util/cap.c:71,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:72,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:73,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:75,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:76,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:77,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/cap.c:82,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cap
    - set
    argTypes:
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 87
    functionName: fr_cap_is_enabled
    functionSourceFile: /src/freeradius-server/src/lib/util/cap.c
    functionUses: 0
    functionsReached:
    - cap_get_flag
    - pthread_mutex_lock
    - cap_get_proc
    - fr_strerror_printf
    - fr_syserror
    - cap_to_name
    - cap_free
    - fr_table_str_by_value
    - pthread_mutex_unlock
    linkageType: ''
    returnType: bool
    signature: bool fr_cap_is_enabled(cap_value_t cap, cap_flag_t set)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/cap.c:119,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cap.c:122,1
    - Dst: cap_get_proc
      Src: /src/freeradius-server/src/lib/util/cap.c:126,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:128,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:128,1
    - Dst: cap_get_flag
      Src: /src/freeradius-server/src/lib/util/cap.c:132,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:133,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:134,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:134,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:135,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:143,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:148,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:150,1
    - Dst: cap_get_flag
      Src: /src/freeradius-server/src/lib/util/cap.c:154,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:155,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:156,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:158,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:159,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:160,1
    - Dst: cap_set_flag
      Src: /src/freeradius-server/src/lib/util/cap.c:174,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/cap.c:174,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:175,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:176,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:178,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:179,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:180,1
    - Dst: cap_set_proc
      Src: /src/freeradius-server/src/lib/util/cap.c:184,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:185,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:186,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:188,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:189,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:190,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/cap.c:203,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:205,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - cap
    - set
    argTypes:
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 208
    functionName: fr_cap_enable
    functionSourceFile: /src/freeradius-server/src/lib/util/cap.c
    functionUses: 3
    functionsReached:
    - cap_get_flag
    - pthread_mutex_lock
    - fr_strerror_printf
    - fr_syserror
    - cap_get_proc
    - cap_to_name
    - cap_free
    - fr_table_str_by_value
    - pthread_mutex_unlock
    - cap_set_proc
    - cap_set_flag
    - fr_strerror_const
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int fr_cap_enable(cap_value_t cap, cap_flag_t set)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/cap.c:235,1
    - Dst: cap_get_proc
      Src: /src/freeradius-server/src/lib/util/cap.c:237,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:239,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:239,1
    - Dst: cap_get_flag
      Src: /src/freeradius-server/src/lib/util/cap.c:243,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:244,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:245,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:247,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:248,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:249,1
    - Dst: cap_clear_flag
      Src: /src/freeradius-server/src/lib/util/cap.c:254,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:255,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:256,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:258,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:259,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:260,1
    - Dst: cap_set_proc
      Src: /src/freeradius-server/src/lib/util/cap.c:264,1
    - Dst: cap_to_name
      Src: /src/freeradius-server/src/lib/util/cap.c:265,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:266,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/cap.c:268,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:269,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:270,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/cap.c:280,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:282,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - cap
    - set
    argTypes:
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 285
    functionName: fr_cap_disable
    functionSourceFile: /src/freeradius-server/src/lib/util/cap.c
    functionUses: 1
    functionsReached:
    - cap_get_flag
    - pthread_mutex_lock
    - cap_get_proc
    - fr_strerror_printf
    - fr_syserror
    - cap_to_name
    - cap_free
    - fr_table_str_by_value
    - pthread_mutex_unlock
    - cap_set_proc
    - cap_clear_flag
    linkageType: ''
    returnType: int
    signature: int fr_cap_disable(cap_value_t cap, cap_flag_t set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cap_get_proc
      Src: /src/freeradius-server/src/lib/util/cap.c:298,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/cap.c:299,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:300,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:300,1
    - Dst: cap_to_text
      Src: /src/freeradius-server/src/lib/util/cap.c:303,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:304,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/cap.c:305,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cap.c:306,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/cap.c:306,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/cap.c:310,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/cap.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - TALLOC_CTX*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 314
    functionName: fr_cap_set_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/cap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - cap_to_text
    - talloc_bstrndup
    - cap_get_proc
    - fr_strerror_printf
    - fr_syserror
    - cap_free
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_cap_set_to_str(TALLOC_CTX *ctx, char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _array
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: talloc_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_foreach(_array, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: talloc_get_type_abort_const
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 179
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_get_type_abort_const(ptr, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/util/talloc.h:131,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.h:132,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/util/talloc.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: talloc_init_const
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 33
    functionsReached:
    - talloc_set_name_const
    - unlikely
    - talloc_new
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *talloc_init_const(char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/talloc.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: talloc_strlen
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 101
    functionsReached:
    - talloc_array_length
    linkageType: ''
    returnType: size_t
    signature: size_t talloc_strlen(char const *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ctx
    - ','
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: talloc_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 118
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_strdup(_ctx, _str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _str
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: talloc_strndup
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_strndup(_ctx, _str, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/talloc.h:161,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/talloc.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: talloc_bstr_tolower
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 1
    functionsReached:
    - tolower
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void talloc_bstr_tolower(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _num_subobjects
    - ','
    - _total_subobjects_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: talloc_zero_pooled_object
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_zero_pooled_object(_ctx, _type, _num_subobjects, _total_subobjects_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_pooled_object::_talloc_pooled_object
      Src: /src/freeradius-server/src/lib/util/talloc.h:199,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/talloc.h:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - type_size
    - type_name
    - num_subobjects
    - total_subobjects_size
    argTypes:
    - void*
    - size_t
    - char*
    - unsigned
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: _talloc_zero_pooled_object
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 3
    functionsReached:
    - unlikely
    - _talloc_pooled_object::_talloc_pooled_object
    linkageType: ''
    returnType: TALLOC_CTX
    signature: "TALLOC_CTX *_talloc_zero_pooled_object(const void *ctx,\n\t\t\t\t\t\t
      \    size_t type_size,\n\t\t\t\t\t\t     const char *type_name,\n\t\t\t\t\t\t
      \    unsigned num_subobjects,\n\t\t\t\t\t\t     size_t total_subobjects_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _num_subobjects
    - ','
    - _total_subobjects_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: talloc_zero_pooled_object
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_zero_pooled_object(_ctx, _type, _num_subobjects, _total_subobjects_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _num_subobjects
    - ','
    - _total_subobjects_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: talloc_pooled_object
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_pooled_object(_ctx, _type, _num_subobjects, _total_subobjects_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _ptr
    - ','
    - _type
    - ','
    - _count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: talloc_realloc_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_realloc_zero(_ctx, _ptr, _type, _count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/talloc.h:258,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/talloc.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: talloc_const_free
    functionSourceFile: /src/freeradius-server/src/lib/util/talloc.h
    functionUses: 40
    functionsReached:
    - UNCONST
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int talloc_const_free(void const *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/decode.c:49,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/decode.c:51,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/decode.c:53,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/lib/util/decode.c:63,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/decode.c:65,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/decode.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    - decode_value
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    - fr_pair_decode_value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 74
    functionName: fr_pair_array_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/decode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - decode_value
    - fr_cond_assert_msg
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_list_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_array_from_network(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t   uint8_t const *data, size_t
      data_len,\n\t\t\t\t   void *decode_ctx, fr_pair_decode_value_t decode_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:98,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/decode.c:99,1
    - Dst: fr_dict_attr_unknown_raw_afrom_da
      Src: /src/freeradius-server/src/lib/util/decode.c:104,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/decode.c:107,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/lib/util/decode.c:109,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/decode.c:116,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/decode.c:117,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/decode.c:119,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/decode.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - out
    - da
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 131
    functionName: fr_pair_raw_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - fr_value_box_from_network
    - fr_dict_attr_unknown_free
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_append
    - FR_DBUFF_TMP
    - fr_dict_attr_unknown_raw_afrom_da
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_raw_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *da,\n\t\t\t\t uint8_t const *data, size_t data_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/decode.c:168,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/decode.c:177,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/decode.c:178,1
    - Dst: verify_tlvs
      Src: /src/freeradius-server/src/lib/util/decode.c:185,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/decode.c:191,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/decode.c:195,1
    - Dst: decode_tlv
      Src: /src/freeradius-server/src/lib/util/decode.c:204,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:206,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/decode.c:206,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/decode.c:207,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/decode.c:208,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/decode.c:223,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/decode.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 9
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    - decode_tlv
    - verify_tlvs
    - nested
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    - fr_pair_decode_value_t
    - fr_pair_tlvs_verify_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 229
    functionName: fr_pair_tlvs_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - talloc_free
    - verify_tlvs
    - fr_strerror_printf
    - fr_pair_append
    - fr_strerror
    - fr_pair_list_free
    - fr_pair_list_append
    - decode_tlv
    - fr_type_to_str
    - fr_pair_list_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_tlvs_from_network(TALLOC_CTX *ctx, fr_pair_list_t
      *out,\n\t\t\t\t  fr_dict_attr_t const *parent,\n\t\t\t\t  uint8_t const *data,
      size_t const data_len,\n\t\t\t\t  void *decode_ctx, fr_pair_decode_value_t decode_tlv,\n\t\t\t\t
      \ fr_pair_tlvs_verify_t verify_tlvs,\n\t\t\t\t  bool nested)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/decode.c:263,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/decode.c:265,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/decode.c:275,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:277,1
    - Dst: fr_dns_labels_network_verify
      Src: /src/freeradius-server/src/lib/util/decode.c:290,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:292,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:303,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/lib/util/decode.c:305,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/decode.c:318,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/decode.c:326,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:328,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/decode.c:329,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/decode.c:330,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/decode.c:334,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/decode.c:337,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 8
    argNames:
    - ctx
    - out
    - parent
    - start
    - data
    - data_len
    - lb
    - exact
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - uint8_t*
    - size_t
    - fr_dns_labels_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 339
    functionName: fr_pair_dns_labels_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_raw_from_network
    - fr_pair_append
    - fr_dns_label_uncompressed_length
    - fr_dns_labels_network_verify
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_dns_label_to_value_box
    - fr_pair_list_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_dns_labels_from_network(TALLOC_CTX *ctx, fr_pair_list_t
      *out,\n\t\t\t\t\tfr_dict_attr_t const *parent, uint8_t const *start,\n\t\t\t\t\tuint8_t
      const *data, size_t const data_len, fr_dns_labels_t *lb, bool exact)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/decode.c:350,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:351,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/decode.c:351,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/decode.c:352,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/decode.c:352,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/decode.c:356,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/decode.c:365,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/decode.c:366,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/decode.c:368,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/decode.c:369,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/lib/util/decode.c:370,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/decode.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 376
    functionName: fr_pair_decode_value
    functionSourceFile: /src/freeradius-server/src/lib/util/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_type_is_leaf
    - fr_value_box_from_network
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_raw_from_network
    - fr_strerror_printf
    - fr_pair_append
    - FR_DBUFF_TMP
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t     uint8_t const *data, size_t const
      data_len, UNUSED void *decode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/socket.c:52,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:72,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/lib/util/socket.c:76,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:78,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/socket.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - proto
    - port_name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 83
    functionName: socket_port_from_service
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached:
    - ntohs
    - fr_strerror_const
    - fr_strerror_printf
    - getservbyname
    linkageType: ''
    returnType: int
    signature: int socket_port_from_service(int proto, char const *port_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/socket.c:111,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:111,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:113,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sockfd
    - ipaddr
    argTypes:
    - int
    - fr_ipaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: socket_inaddr_any_v6only
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - if
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int socket_inaddr_any_v6only(int sockfd, fr_ipaddr_t const *ipaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sockfd
    - ipaddr
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: socket_inaddr_any_v6only
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int socket_inaddr_any_v6only(UNUSED int sockfd, UNUSED fr_ipaddr_t
      const *ipaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:155,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:156,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:156,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:167,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:168,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sockfd
    - af
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 175
    functionName: socket_dont_fragment
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int socket_dont_fragment(int sockfd, int af)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sockfd
    - int
    argTypes:
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: socket_dont_fragment
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int socket_dont_fragment(UNUSED int sockfd, UNUSED int af)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/socket.c:217,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/util/socket.c:234,1
    - Dst: fr_cap_enable
      Src: /src/freeradius-server/src/lib/util/socket.c:235,1
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/lib/util/socket.c:244,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:246,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:246,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:255,1
    - Dst: fr_cap_enable
      Src: /src/freeradius-server/src/lib/util/socket.c:280,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:282,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/socket.c:282,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:284,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:285,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/socket.c:305,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:305,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:307,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:308,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/socket.c:313,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:313,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:316,1
    - Dst: getifaddrs
      Src: /src/freeradius-server/src/lib/util/socket.c:331,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/socket.c:335,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/socket.c:345,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/socket.c:346,1
    - Dst: freeifaddrs
      Src: /src/freeradius-server/src/lib/util/socket.c:374,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:381,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:386,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:387,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/socket.c:402,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/util/socket.c:404,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:406,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/lib/util/socket.c:407,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/socket.c:407,1
    - Dst: fr_box_int16
      Src: /src/freeradius-server/src/lib/util/socket.c:408,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/socket.c:408,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:410,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/socket.c:422,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/lib/util/socket.c:423,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/socket.c:424,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:424,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/socket.c:428,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 104
    argCount: 4
    argNames:
    - sockfd
    - ifname
    - src_ipaddr
    - src_port
    argTypes:
    - int
    - char*
    - fr_ipaddr_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 448
    functionName: fr_socket_bind
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 6
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_strerror_printf
    - strlen
    - getifaddrs
    - fr_box_strvalue
    - unlikely
    - if_nametoindex
    - memset
    - fr_ipaddr_to_sockaddr
    - geteuid
    - fr_ipaddr_is_inaddr_any
    - fr_syserror
    - freeifaddrs
    - strcmp
    - bind
    - fr_box_ipaddr
    - fr_strerror_printf_push
    - getsockname
    - fr_box_int16
    - fr_strerror_clear
    - fr_cap_enable
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_socket_bind(int sockfd, char const *ifname, fr_ipaddr_t *src_ipaddr,
      uint16_t *src_port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/socket.c:486,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:488,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/socket.c:493,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:495,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:495,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/util/socket.c:499,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:500,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/socket.c:505,1
    - Dst: SUN_LEN
      Src: /src/freeradius-server/src/lib/util/socket.c:507,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:521,1
    - Dst: connect
      Src: /src/freeradius-server/src/lib/util/socket.c:525,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:535,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:536,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - path
    - async
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 541
    functionName: fr_socket_client_unix
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 3
    functionsReached:
    - memcpy
    - connect
    - fr_strerror_printf
    - fr_syserror
    - socket
    - strlen
    - fr_nonblock
    - close
    - SUN_LEN
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_socket_client_unix(char const *path, bool async)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/socket.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - async
    argTypes:
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: fr_socket_client_unix
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int fr_socket_client_unix(UNUSED char const *path, UNUSED bool async)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:557,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/socket.c:557,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:558,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:558,1
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/lib/util/socket.c:563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:566,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:566,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/socket.c:569,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:569,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/socket.c:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - sockfd
    - ifname
    argTypes:
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 577
    functionName: socket_bind_ifname
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached:
    - unlikely
    - if_nametoindex
    - fr_strerror_printf
    - fr_syserror
    - strlen
    - fr_strerror_const
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int socket_bind_ifname(UNUSED int sockfd, UNUSED char const *ifname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/socket.c:622,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:624,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:624,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/util/socket.c:628,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:630,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:646,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/socket.c:650,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/lib/util/socket.c:650,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/socket.c:655,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:656,1
    - Dst: connect
      Src: /src/freeradius-server/src/lib/util/socket.c:660,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:670,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:670,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:671,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - ifname
    - src_ipaddr
    - src_port
    - dst_ipaddr
    - dst_port
    - async
    argTypes:
    - char*
    - fr_ipaddr_t*
    - uint16_t*
    - fr_ipaddr_t*
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 676
    functionName: fr_socket_client_udp
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 3
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - unlikely
    - connect
    - socket
    - fr_strerror_printf
    - fr_syserror
    - fr_socket_bind
    - fr_nonblock
    - close
    - setsockopt
    linkageType: ''
    returnType: int
    signature: "int fr_socket_client_udp(char const *ifname, fr_ipaddr_t *src_ipaddr,
      uint16_t *src_port,\n\t\t\t fr_ipaddr_t const *dst_ipaddr, uint16_t dst_port,
      bool async)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/socket.c:717,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:719,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:719,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/util/socket.c:723,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:725,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/socket.c:729,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/lib/util/socket.c:729,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/socket.c:731,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:732,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:748,1
    - Dst: connect
      Src: /src/freeradius-server/src/lib/util/socket.c:752,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:762,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:762,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:763,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - ifname
    - src_ipaddr
    - dst_ipaddr
    - dst_port
    - async
    argTypes:
    - char*
    - fr_ipaddr_t*
    - fr_ipaddr_t*
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 768
    functionName: fr_socket_client_tcp
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 6
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - unlikely
    - connect
    - socket
    - fr_strerror_printf
    - fr_syserror
    - fr_socket_bind
    - fr_nonblock
    - close
    - setsockopt
    linkageType: ''
    returnType: int
    signature: "int fr_socket_client_tcp(char const *ifname, fr_ipaddr_t *src_ipaddr,\n\t\t\t
      fr_ipaddr_t const *dst_ipaddr, uint16_t dst_port, bool async)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/lib/util/socket.c:788,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/lib/util/socket.c:789,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/lib/util/socket.c:791,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/lib/util/socket.c:792,1
    - Dst: select
      Src: /src/freeradius-server/src/lib/util/socket.c:796,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/util/socket.c:796,1
    - Dst: getsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:805,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:806,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:806,1
    - Dst: FD_ISSET
      Src: /src/freeradius-server/src/lib/util/socket.c:810,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/socket.c:811,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/socket.c:818,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/util/socket.c:818,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:819,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/util/socket.c:819,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:823,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:823,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/socket.c:827,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - sockfd
    - timeout
    argTypes:
    - int
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 830
    functionName: fr_socket_wait_for_connect
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 1
    functionsReached:
    - FD_SET
    - FD_ZERO
    - getsockopt
    - fr_strerror_printf
    - fr_syserror
    - FD_ISSET
    - fr_cond_assert
    - fr_box_time_delta
    - fr_time_delta_ispos
    - select
    - fr_time_delta_to_timeval
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_socket_wait_for_connect(int sockfd, fr_time_delta_t timeout)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/socket.c:857,1
    - Dst: socket_port_from_service
      Src: /src/freeradius-server/src/lib/util/socket.c:867,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/socket.c:876,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:878,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:878,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/util/socket.c:885,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:887,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/util/socket.c:894,1
    - Dst: udpfromto_init
      Src: /src/freeradius-server/src/lib/util/socket.c:899,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:900,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:900,1
    - Dst: socket_inaddr_any_v6only
      Src: /src/freeradius-server/src/lib/util/socket.c:907,1
    - Dst: socket_dont_fragment
      Src: /src/freeradius-server/src/lib/util/socket.c:912,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:923,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:924,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:925,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:925,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - src_ipaddr
    - src_port
    - port_name
    - async
    argTypes:
    - fr_ipaddr_t*
    - uint16_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 934
    functionName: fr_socket_server_udp
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 5
    functionsReached:
    - socket_inaddr_any_v6only
    - fr_cloexec
    - fr_strerror_printf
    - fr_syserror
    - socket
    - socket_port_from_service
    - udpfromto_init
    - socket_dont_fragment
    - fr_nonblock
    - close
    - fr_strerror_const
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_socket_server_udp(fr_ipaddr_t const *src_ipaddr, uint16_t *src_port,
      char const *port_name, bool async)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/socket.c:959,1
    - Dst: socket_port_from_service
      Src: /src/freeradius-server/src/lib/util/socket.c:969,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/socket.c:978,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:980,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:980,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/lib/util/socket.c:987,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:989,1
    - Dst: fr_cloexec
      Src: /src/freeradius-server/src/lib/util/socket.c:996,1
    - Dst: socket_inaddr_any_v6only
      Src: /src/freeradius-server/src/lib/util/socket.c:1001,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/socket.c:1006,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/socket.c:1007,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.c:1008,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/socket.c:1008,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - src_ipaddr
    - src_port
    - port_name
    - async
    argTypes:
    - fr_ipaddr_t*
    - uint16_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 1016
    functionName: fr_socket_server_tcp
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.c
    functionUses: 0
    functionsReached:
    - socket_inaddr_any_v6only
    - fr_cloexec
    - fr_strerror_printf
    - fr_syserror
    - socket
    - socket_port_from_service
    - fr_nonblock
    - close
    - fr_strerror_const
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int fr_socket_server_tcp(fr_ipaddr_t const *src_ipaddr, uint16_t *src_port,
      char const *port_name, bool async)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _func
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: fr_atexit_global
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_atexit_global(_func, _uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_func
      Src: /src/freeradius-server/src/lib/util/atexit.h:91,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/util/atexit.h:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - init_func
    - free_func
    - uctx
    argTypes:
    - fr_atexit_t
    - fr_atexit_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: _fr_atexit_global_once_funcs
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 0
    functionsReached:
    - fr_atexit_global
    - init_func
    linkageType: ''
    returnType: int
    signature: int _fr_atexit_global_once_funcs(fr_atexit_t init_func, fr_atexit_t
      free_func, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/atexit.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: fr_atexit_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_atexit_talloc_free(void *to_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ret
    - ','
    - _init
    - ','
    - _free
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: fr_atexit_global_once_ret
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_atexit_global_once_ret(_ret, _init, _free, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _init
    - ','
    - _free
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: fr_atexit_global_once
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_atexit_global_once(_init, _free, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _free
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: fr_atexit_thread_local
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_atexit_thread_local(_name, _free, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: fr_atexit_thread_local_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_atexit_thread_local_disarm(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: fr_atexit_thread_local_disarm_all
    functionSourceFile: /src/freeradius-server/src/lib/util/atexit.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_atexit_thread_local_disarm_all(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: is_power_of_2
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_power_of_2(_n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_addr
      Src: /src/freeradius-server/src/lib/util/lst.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - data
    argTypes:
    - fr_lst_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: raw_item_index
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_addr
    linkageType: ''
    returnType: void
    signature: void raw_item_index(fr_lst_t const *lst, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - data
    argTypes:
    - fr_lst_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: item_index
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 1
    functionsReached:
    - raw_item_index
    linkageType: ''
    returnType: void
    signature: void item_index(fr_lst_t const *lst, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_addr
      Src: /src/freeradius-server/src/lib/util/lst.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lst
    - data
    - idx
    argTypes:
    - fr_lst_t*
    - void*
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: item_index_set
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_addr
    linkageType: ''
    returnType: void
    signature: void item_index_set(fr_lst_t *lst, void *data, fr_lst_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - idx
    argTypes:
    - fr_lst_t*
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: index_reduce
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_reduce(fr_lst_t const *lst, fr_lst_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lst
    - idx1
    - idx2
    argTypes:
    - fr_lst_t*
    - fr_lst_index_t
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: is_equivalent
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    linkageType: ''
    returnType: void
    signature: void is_equivalent(fr_lst_t const *lst, fr_lst_index_t idx1, fr_lst_index_t
      idx2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lst
    - idx
    - data
    argTypes:
    - fr_lst_t*
    - fr_lst_index_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: item_set
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    linkageType: ''
    returnType: void
    signature: void item_set(fr_lst_t *lst, fr_lst_index_t idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lst_length
      Src: /src/freeradius-server/src/lib/util/lst.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - idx
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: is_bucket
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - lst_length
    linkageType: ''
    returnType: void
    signature: void is_bucket(fr_lst_t const *lst, stack_index_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:194,1
    - Dst: stack_expand
      Src: /src/freeradius-server/src/lib/util/lst.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - lst
    - s
    - pivot
    argTypes:
    - fr_lst_t*
    - pivot_stack_t*
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: stack_push
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - unlikely
    - stack_expand
    linkageType: ''
    returnType: void
    signature: void stack_push(fr_lst_t *lst, pivot_stack_t *s, fr_lst_index_t pivot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - pivot_stack_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: stack_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_pop(pivot_stack_t *s, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - pivot_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: stack_depth
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_depth(pivot_stack_t const *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - pivot_stack_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: stack_item
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_lst_index_t
    signature: fr_lst_index_t stack_item(pivot_stack_t const *s, stack_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - idx
    - new_value
    argTypes:
    - pivot_stack_t*
    - stack_index_t
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: stack_set
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stack_set(pivot_stack_t *s, stack_index_t idx, fr_lst_index_t
      new_value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_power_of_2
      Src: /src/freeradius-server/src/lib/util/lst.c:229,1
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/lst.c:230,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/util/lst.c:247,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:248,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/lst.c:251,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:252,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/lst.c:254,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/lst.c:262,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:263,1
    - Dst: stack_push
      Src: /src/freeradius-server/src/lib/util/lst.c:268,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/lst.c:273,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/lst.c:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - cmp
    - type
    - offset
    - init
    argTypes:
    - TALLOC_CTX*
    - fr_cmp_t
    - char*
    - size_t
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 281
    functionName: _fr_lst_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_array
    - talloc_free
    - is_power_of_2
    - fr_rand
    - stack_push
    - fr_high_bit_pos
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: fr_lst_t
    signature: fr_lst_t *_fr_lst_alloc(TALLOC_CTX *ctx, fr_cmp_t cmp, char const *type,
      size_t offset, fr_lst_index_t init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_depth
      Src: /src/freeradius-server/src/lib/util/lst.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: lst_length
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 1
    functionsReached:
    - stack_depth
    linkageType: ''
    returnType: stack_index_t
    signature: stack_index_t lst_length(fr_lst_t const *lst, stack_index_t stack_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:300,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:300,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: lst_size
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    - stack_item
    linkageType: ''
    returnType: fr_lst_index_t
    signature: fr_lst_index_t lst_size(fr_lst_t *lst, stack_index_t stack_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_pop
      Src: /src/freeradius-server/src/lib/util/lst.c:315,1
    - Dst: stack_depth
      Src: /src/freeradius-server/src/lib/util/lst.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: lst_flatten
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - stack_pop
    - stack_depth
    linkageType: ''
    returnType: void
    signature: void lst_flatten(fr_lst_t *lst, stack_index_t stack_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_set
      Src: /src/freeradius-server/src/lib/util/lst.c:325,1
    - Dst: item_index_set
      Src: /src/freeradius-server/src/lib/util/lst.c:326,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lst
    - location
    - data
    argTypes:
    - fr_lst_t*
    - fr_lst_index_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: lst_move
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    - item_index_set
    - item_set
    linkageType: ''
    returnType: void
    signature: void lst_move(fr_lst_t *lst, fr_lst_index_t location, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:347,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:350,1
    - Dst: stack_set
      Src: /src/freeradius-server/src/lib/util/lst.c:352,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:354,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:354,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:357,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:357,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:366,1
    - Dst: stack_set
      Src: /src/freeradius-server/src/lib/util/lst.c:367,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - lst
    - stack_index
    - data
    argTypes:
    - fr_lst_t*
    - stack_index_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 371
    functionName: bucket_add
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - item
    - stack_set
    - stack_item
    - lst_move
    linkageType: ''
    returnType: void
    signature: void bucket_add(fr_lst_t *lst, stack_index_t stack_index, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:378,1
    - Dst: stack_depth
      Src: /src/freeradius-server/src/lib/util/lst.c:379,1
    - Dst: stack_set
      Src: /src/freeradius-server/src/lib/util/lst.c:381,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lst
    argTypes:
    - fr_lst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: lst_indices_reduce
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    - stack_set
    - stack_item
    - stack_depth
    linkageType: ''
    returnType: void
    signature: void lst_indices_reduce(fr_lst_t *lst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:407,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/lst.c:409,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/lst.c:418,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:419,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/lst.c:420,1
    - Dst: lst_indices_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:428,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:431,1
    - Dst: item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:432,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - lst
    argTypes:
    - fr_lst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: lst_expand
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - unlikely
    - lst_move
    - talloc_realloc
    - fr_strerror_printf
    - item_index
    - lst_indices_reduce
    - item
    - fr_strerror_const
    linkageType: ''
    returnType: bool
    signature: bool lst_expand(fr_lst_t *lst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_bucket
      Src: /src/freeradius-server/src/lib/util/lst.c:442,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: bucket_lwb
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - stack_item
    - is_bucket
    linkageType: ''
    returnType: void
    signature: void bucket_lwb(fr_lst_t const *lst, stack_index_t stack_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: bucket_upb
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - stack_item
    linkageType: ''
    returnType: void
    signature: void bucket_upb(fr_lst_t const *lst, stack_index_t stack_index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bucket_lwb
      Src: /src/freeradius-server/src/lib/util/lst.c:462,1
    - Dst: bucket_upb
      Src: /src/freeradius-server/src/lib/util/lst.c:463,1
    - Dst: is_equivalent
      Src: /src/freeradius-server/src/lib/util/lst.c:472,1
    - Dst: stack_push
      Src: /src/freeradius-server/src/lib/util/lst.c:473,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/lst.c:477,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:478,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:481,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:481,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:482,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:492,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:492,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:493,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:493,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:495,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:496,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:496,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:497,1
    - Dst: item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:504,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:505,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:506,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:508,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:515,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:515,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:516,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:520,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:520,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:521,1
    - Dst: stack_push
      Src: /src/freeradius-server/src/lib/util/lst.c:524,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 525
    functionName: partition
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    - fr_lst_t*::cmp
    - is_equivalent
    - lst_move
    - item_index
    - fr_fast_rand
    - bucket_lwb
    - bucket_upb
    - stack_push
    - item
    linkageType: ''
    returnType: void
    signature: void partition(fr_lst_t *lst, stack_index_t stack_index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:532,1
    - Dst: is_equivalent
      Src: /src/freeradius-server/src/lib/util/lst.c:535,1
    - Dst: is_equivalent
      Src: /src/freeradius-server/src/lib/util/lst.c:537,1
    - Dst: lst_indices_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:537,1
    - Dst: bucket_upb
      Src: /src/freeradius-server/src/lib/util/lst.c:540,1
    - Dst: is_equivalent
      Src: /src/freeradius-server/src/lib/util/lst.c:541,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:541,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:541,1
    - Dst: stack_set
      Src: /src/freeradius-server/src/lib/util/lst.c:542,1
    - Dst: lst_move
      Src: /src/freeradius-server/src/lib/util/lst.c:544,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:544,1
    - Dst: item_index_set
      Src: /src/freeradius-server/src/lib/util/lst.c:551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - lst
    - stack_index
    - data
    argTypes:
    - fr_lst_t*
    - stack_index_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 552
    functionName: bucket_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - item_index_set
    - is_equivalent
    - lst_move
    - item_index
    - bucket_upb
    - stack_set
    - lst_indices_reduce
    - item
    linkageType: ''
    returnType: void
    signature: void bucket_delete(fr_lst_t *lst, stack_index_t stack_index, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_bucket
      Src: /src/freeradius-server/src/lib/util/lst.c:583,1
    - Dst: partition
      Src: /src/freeradius-server/src/lib/util/lst.c:583,1
    - Dst: lst_size
      Src: /src/freeradius-server/src/lib/util/lst.c:585,1
    - Dst: pivot_item
      Src: /src/freeradius-server/src/lib/util/lst.c:586,1
    - Dst: lst_flatten
      Src: /src/freeradius-server/src/lib/util/lst.c:588,1
    - Dst: bucket_delete
      Src: /src/freeradius-server/src/lib/util/lst.c:589,1
    - Dst: _fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/lst.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 581
    functionDepth: 4
    functionLinenumber: 581
    functionLinenumberEnd: 593
    functionName: _fr_lst_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 1
    functionsReached:
    - lst_size
    - pivot_item
    - is_bucket
    - bucket_delete
    - _fr_lst_pop
    - partition
    - lst_flatten
    linkageType: ''
    returnType: void
    signature: void *_fr_lst_pop(fr_lst_t *lst, stack_index_t stack_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_bucket
      Src: /src/freeradius-server/src/lib/util/lst.c:607,1
    - Dst: partition
      Src: /src/freeradius-server/src/lib/util/lst.c:607,1
    - Dst: lst_size
      Src: /src/freeradius-server/src/lib/util/lst.c:609,1
    - Dst: pivot_item
      Src: /src/freeradius-server/src/lib/util/lst.c:609,1
    - Dst: _fr_lst_peek
      Src: /src/freeradius-server/src/lib/util/lst.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - lst
    - stack_index
    argTypes:
    - fr_lst_t*
    - stack_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: _fr_lst_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 1
    functionsReached:
    - lst_size
    - pivot_item
    - is_bucket
    - partition
    - _fr_lst_peek
    linkageType: ''
    returnType: void
    signature: void *_fr_lst_peek(fr_lst_t *lst, stack_index_t stack_index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_bucket
      Src: /src/freeradius-server/src/lib/util/lst.c:631,1
    - Dst: bucket_delete
      Src: /src/freeradius-server/src/lib/util/lst.c:632,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:636,1
    - Dst: pivot_item
      Src: /src/freeradius-server/src/lib/util/lst.c:636,1
    - Dst: _fr_lst_extract
      Src: /src/freeradius-server/src/lib/util/lst.c:638,1
    - Dst: bucket_delete
      Src: /src/freeradius-server/src/lib/util/lst.c:640,1
    - Dst: lst_flatten
      Src: /src/freeradius-server/src/lib/util/lst.c:642,1
    - Dst: bucket_delete
      Src: /src/freeradius-server/src/lib/util/lst.c:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - lst
    - stack_index
    - data
    argTypes:
    - fr_lst_t*
    - stack_index_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 645
    functionName: _fr_lst_extract
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 1
    functionsReached:
    - pivot_item
    - fr_lst_t*::cmp
    - _fr_lst_extract
    - is_bucket
    - bucket_delete
    - lst_flatten
    linkageType: ''
    returnType: void
    signature: void _fr_lst_extract(fr_lst_t *lst,  stack_index_t stack_index, void
      *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/lst.c:665,1
    - Dst: is_bucket
      Src: /src/freeradius-server/src/lib/util/lst.c:668,1
    - Dst: bucket_add
      Src: /src/freeradius-server/src/lib/util/lst.c:669,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/lst.c:673,1
    - Dst: lst_size
      Src: /src/freeradius-server/src/lib/util/lst.c:673,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:674,1
    - Dst: pivot_item
      Src: /src/freeradius-server/src/lib/util/lst.c:674,1
    - Dst: _fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/lst.c:675,1
    - Dst: bucket_add
      Src: /src/freeradius-server/src/lib/util/lst.c:677,1
    - Dst: lst_flatten
      Src: /src/freeradius-server/src/lib/util/lst.c:680,1
    - Dst: bucket_add
      Src: /src/freeradius-server/src/lib/util/lst.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - lst
    - stack_index
    - data
    argTypes:
    - fr_lst_t*
    - stack_index_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 683
    functionName: _fr_lst_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 1
    functionsReached:
    - lst_size
    - pivot_item
    - fr_lst_t*::cmp
    - _fr_lst_insert
    - fr_fast_rand
    - is_bucket
    - bucket_add
    - lst_flatten
    - _talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _fr_lst_insert(fr_lst_t *lst, stack_index_t stack_index, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:696,1
    - Dst: _fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/lst.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lst
    argTypes:
    - fr_lst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: fr_lst_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 2
    functionsReached:
    - unlikely
    - _fr_lst_pop
    linkageType: ''
    returnType: void
    signature: void *fr_lst_pop(fr_lst_t *lst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:702,1
    - Dst: _fr_lst_peek
      Src: /src/freeradius-server/src/lib/util/lst.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lst
    argTypes:
    - fr_lst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 700
    functionDepth: 5
    functionLinenumber: 700
    functionLinenumberEnd: 704
    functionName: fr_lst_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 2
    functionsReached:
    - unlikely
    - _fr_lst_peek
    linkageType: ''
    returnType: void
    signature: void *fr_lst_peek(fr_lst_t *lst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:716,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/lst.c:717,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:721,1
    - Dst: raw_item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:721,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/lst.c:722,1
    - Dst: _fr_lst_extract
      Src: /src/freeradius-server/src/lib/util/lst.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - lst
    - data
    argTypes:
    - fr_lst_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 714
    functionDepth: 5
    functionLinenumber: 714
    functionLinenumberEnd: 728
    functionName: fr_lst_extract
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_strerror_const
    - raw_item_index
    - _fr_lst_extract
    linkageType: ''
    returnType: int
    signature: int fr_lst_extract(fr_lst_t *lst, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:735,1
    - Dst: lst_expand
      Src: /src/freeradius-server/src/lib/util/lst.c:735,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:740,1
    - Dst: raw_item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:740,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/lst.c:741,1
    - Dst: _fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/lst.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - lst
    - data
    argTypes:
    - fr_lst_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 747
    functionName: fr_lst_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 2
    functionsReached:
    - unlikely
    - raw_item_index
    - _fr_lst_insert
    - fr_strerror_const
    - lst_expand
    linkageType: ''
    returnType: int
    signature: int fr_lst_insert(fr_lst_t *lst, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lst
    argTypes:
    - fr_lst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: fr_lst_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_lst_num_elements(fr_lst_t *lst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/lst.c:767,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lst
    - iter
    argTypes:
    - fr_lst_t*
    - fr_lst_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: fr_lst_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - item
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_lst_iter_init(fr_lst_t *lst, fr_lst_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:786,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lst
    - iter
    argTypes:
    - fr_lst_t*
    - fr_lst_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: fr_lst_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - item
    - stack_item
    linkageType: ''
    returnType: void
    signature: void *fr_lst_iter_next(fr_lst_t *lst, fr_lst_iter_t *iter)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stack_depth
      Src: /src/freeradius-server/src/lib/util/lst.c:796,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:801,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/lst.c:802,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:807,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:813,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:814,1
    - Dst: index_reduce
      Src: /src/freeradius-server/src/lib/util/lst.c:815,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:816,1
    - Dst: bucket_upb
      Src: /src/freeradius-server/src/lib/util/lst.c:827,1
    - Dst: bucket_lwb
      Src: /src/freeradius-server/src/lib/util/lst.c:827,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:828,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:834,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:845,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:847,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:849,1
    - Dst: is_equivalent
      Src: /src/freeradius-server/src/lib/util/lst.c:849,1
    - Dst: item_index
      Src: /src/freeradius-server/src/lib/util/lst.c:849,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/lst.c:851,1
    - Dst: is_bucket
      Src: /src/freeradius-server/src/lib/util/lst.c:857,1
    - Dst: pivot_item
      Src: /src/freeradius-server/src/lib/util/lst.c:864,1
    - Dst: pivot_item
      Src: /src/freeradius-server/src/lib/util/lst.c:865,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:867,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:869,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:878,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:879,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:883,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:896,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:897,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:898,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:900,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:901,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:901,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:907,1
    - Dst: stack_item
      Src: /src/freeradius-server/src/lib/util/lst.c:908,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:909,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/lst.c:911,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/lst.c:912,1
    - Dst: fr_lst_t*::cmp
      Src: /src/freeradius-server/src/lib/util/lst.c:912,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 3
    argNames:
    - file
    - line
    - lst
    argTypes:
    - char*
    - int
    - fr_lst_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 918
    functionName: fr_lst_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.c
    functionUses: 0
    functionsReached:
    - index_reduce
    - pivot_item
    - fr_lst_t*::cmp
    - stack_item
    - is_equivalent
    - item_index
    - talloc_get_type_abort
    - bucket_lwb
    - stack_depth
    - is_bucket
    - bucket_upb
    - item
    - fr_fatal_assert_msg
    - _talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_lst_verify(char const *file, int line, fr_lst_t const *lst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/packet.c:42,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/packet.c:44,1
    - Dst: fr_rand_buffer
      Src: /src/freeradius-server/src/lib/util/packet.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - new_vector
    argTypes:
    - TALLOC_CTX*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: fr_packet_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/packet.c
    functionUses: 17
    functionsReached:
    - fr_rand_buffer
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_packet_alloc(TALLOC_CTX *ctx, bool new_vector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/lib/util/packet.c:69,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/lib/util/packet.c:75,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/packet.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - packet
    argTypes:
    - TALLOC_CTX*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: fr_packet_alloc_reply
    functionSourceFile: /src/freeradius-server/src/lib/util/packet.c
    functionUses: 1
    functionsReached:
    - fr_socket_addr_swap
    - memset
    - fr_packet_alloc
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_packet_alloc_reply(TALLOC_CTX *ctx, fr_packet_t *packet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_VERIFY
      Src: /src/freeradius-server/src/lib/util/packet.c:96,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/packet.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - packet_p
    argTypes:
    - fr_packet_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: fr_packet_free
    functionSourceFile: /src/freeradius-server/src/lib/util/packet.c
    functionUses: 7
    functionsReached:
    - PACKET_VERIFY
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_packet_free(fr_packet_t **packet_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: _PTRACE
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PTRACE(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: _PTRACE_DETACH
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PTRACE_DETACH(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: _PTRACE
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PTRACE(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: _PTRACE_DETACH
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PTRACE_DETACH(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 166
    functionName: __lsan_default_suppressions
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *__lsan_default_suppressions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: __lsan_default_options
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *__lsan_default_options(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/lib/util/debug.c:192,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:193,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:193,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 197
    functionName: __lsan_is_turned_off
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - write
    - fr_syserror
    - close
    - fprintf
    linkageType: ''
    returnType: void
    signature: void __lsan_is_turned_off(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/util/debug.c:214,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:215,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:215,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/util/debug.c:219,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:221,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:221,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:227,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/util/debug.c:228,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:232,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/debug.c:234,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:236,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/debug.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 244
    functionName: fr_get_lsan_state
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 2
    functionsReached:
    - pipe
    - exit
    - fr_strerror_printf
    - fr_syserror
    - read
    - fork
    - close
    - waitpid
    linkageType: ''
    returnType: int
    signature: int fr_get_lsan_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/debug.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: fr_get_lsan_state
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 2
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_get_lsan_state(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: procctl
      Src: /src/freeradius-server/src/lib/util/debug.c:258,1
    - Dst: getpid
      Src: /src/freeradius-server/src/lib/util/debug.c:258,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:259,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 275
    functionName: fr_get_debug_state
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - getpid
    - procctl
    - fr_strerror_printf
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_get_debug_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/freeradius-server/src/lib/util/debug.c:307,1
    - Dst: sysctl
      Src: /src/freeradius-server/src/lib/util/debug.c:311,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/debug.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 316
    functionName: fr_get_debug_state
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - sysctl
    - getpid
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int fr_get_debug_state(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cap_get_proc
      Src: /src/freeradius-server/src/lib/util/debug.c:341,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:343,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:343,1
    - Dst: cap_get_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:347,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:348,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:349,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/debug.c:350,1
    - Dst: cap_get_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:354,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:355,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:356,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/debug.c:357,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:365,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/debug.c:367,1
    - Dst: cap_free
      Src: /src/freeradius-server/src/lib/util/debug.c:370,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/util/debug.c:373,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:374,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:374,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/util/debug.c:378,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:380,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:380,1
    - Dst: getppid
      Src: /src/freeradius-server/src/lib/util/debug.c:387,1
    - Dst: DIAG_OFF
      Src: /src/freeradius-server/src/lib/util/debug.c:398,1
    - Dst: DIAG_ON
      Src: /src/freeradius-server/src/lib/util/debug.c:400,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:403,1
    - Dst: _PTRACE
      Src: /src/freeradius-server/src/lib/util/debug.c:414,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/debug.c:417,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/util/debug.c:421,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:422,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:422,1
    - Dst: _PTRACE_DETACH
      Src: /src/freeradius-server/src/lib/util/debug.c:426,1
    - Dst: _exit
      Src: /src/freeradius-server/src/lib/util/debug.c:439,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:469,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:469,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/debug.c:481,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:484,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:485,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/debug.c:488,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 492
    functionName: fr_get_debug_state
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - write
    - _PTRACE
    - cap_get_flag
    - getppid
    - pipe
    - read
    - cap_get_proc
    - fr_strerror_printf
    - fr_syserror
    - cap_free
    - DIAG_ON
    - fprintf
    - _exit
    - _PTRACE_DETACH
    - fork
    - DIAG_OFF
    - close
    - waitpid
    linkageType: ''
    returnType: int
    signature: int fr_get_debug_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/debug.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: fr_get_debug_state
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_get_debug_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_get_debug_state
      Src: /src/freeradius-server/src/lib/util/debug.c:508,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:517,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/debug.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 519
    functionName: fr_debug_state_store
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - fprintf
    - fr_strerror
    - fr_get_debug_state
    linkageType: ''
    returnType: void
    signature: void fr_debug_state_store(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - fr_debug_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: fr_debug_state_to_msg
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_debug_state_to_msg(fr_debug_state_t state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/freeradius-server/src/lib/util/debug.c:557,1
    - Dst: fr_get_debug_state
      Src: /src/freeradius-server/src/lib/util/debug.c:559,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:561,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/debug.c:562,1
    - Dst: raise
      Src: /src/freeradius-server/src/lib/util/debug.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - always
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 566
    functionName: fr_debug_break
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fflush
    - raise
    - fr_get_debug_state
    linkageType: ''
    returnType: void
    signature: void fr_debug_break(bool always)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fault
      Src: /src/freeradius-server/src/lib/util/debug.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - foo
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: _panic_on_free
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_fault
    linkageType: ''
    returnType: int
    signature: int _panic_on_free(UNUSED char *foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/debug.c:583,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/debug.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 585
    functionName: fr_panic_on_free
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc
    linkageType: ''
    returnType: void
    signature: void fr_panic_on_free(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/freeradius-server/src/lib/util/debug.c:594,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:595,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dumpable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: fr_set_pr_dumpable_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - prctl
    linkageType: ''
    returnType: int
    signature: int fr_set_pr_dumpable_flag(bool dumpable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: procctl
      Src: /src/freeradius-server/src/lib/util/debug.c:607,1
    - Dst: getpid
      Src: /src/freeradius-server/src/lib/util/debug.c:607,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:608,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dumpable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 614
    functionName: fr_set_pr_dumpable_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - getpid
    - procctl
    - fr_strerror_printf
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_set_pr_dumpable_flag(bool dumpable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/debug.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dumpable
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: fr_set_pr_dumpable_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_set_pr_dumpable_flag(UNUSED bool dumpable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/freeradius-server/src/lib/util/debug.c:631,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:633,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 642
    functionName: fr_get_pr_dumpable_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - prctl
    linkageType: ''
    returnType: int
    signature: int fr_get_pr_dumpable_flag(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: procctl
      Src: /src/freeradius-server/src/lib/util/debug.c:648,1
    - Dst: getpid
      Src: /src/freeradius-server/src/lib/util/debug.c:648,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:649,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 660
    functionName: fr_get_pr_dumpable_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - getpid
    - procctl
    - fr_strerror_printf
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_get_pr_dumpable_flag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/debug.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: fr_get_pr_dumpable_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_get_pr_dumpable_flag(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/freeradius-server/src/lib/util/debug.c:677,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:678,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 683
    functionName: fr_set_dumpable_init
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - getrlimit
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_set_dumpable_init(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/freeradius-server/src/lib/util/debug.c:700,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:701,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:701,1
    - Dst: setrlimit
      Src: /src/freeradius-server/src/lib/util/debug.c:708,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:709,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:709,1
    - Dst: setrlimit
      Src: /src/freeradius-server/src/lib/util/debug.c:731,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:732,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:732,1
    - Dst: fr_set_pr_dumpable_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:743,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - allow_core_dumps
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 747
    functionName: fr_set_dumpable
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - fr_set_pr_dumpable_flag
    - setrlimit
    - fr_strerror_printf
    - fr_syserror
    - getrlimit
    linkageType: ''
    returnType: int
    signature: int fr_set_dumpable(bool allow_core_dumps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_set_dumpable
      Src: /src/freeradius-server/src/lib/util/debug.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: fr_reset_dumpable
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 7
    functionsReached:
    - fr_set_dumpable
    linkageType: ''
    returnType: int
    signature: int fr_reset_dumpable(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/debug.c:782,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:787,1
    - Dst: is_truncated
      Src: /src/freeradius-server/src/lib/util/debug.c:788,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/debug.c:789,1
    - Dst: stat
      Src: /src/freeradius-server/src/lib/util/debug.c:797,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 807
    functionName: fr_fault_check_permissions
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - strchr
    - stat
    - snprintf
    - fr_strerror_const
    - is_truncated
    linkageType: ''
    returnType: int
    signature: int fr_fault_check_permissions(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:831,1
    - Dst: strsignal
      Src: /src/freeradius-server/src/lib/util/debug.c:831,1
    - Dst: raise
      Src: /src/freeradius-server/src/lib/util/debug.c:832,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/debug.c:838,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:840,1
    - Dst: strsignal
      Src: /src/freeradius-server/src/lib/util/debug.c:840,1
    - Dst: panic_cb
      Src: /src/freeradius-server/src/lib/util/debug.c:845,1
    - Dst: fr_backtrace
      Src: /src/freeradius-server/src/lib/util/debug.c:847,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:851,1
    - Dst: fr_fault_check_permissions
      Src: /src/freeradius-server/src/lib/util/debug.c:858,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:859,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/debug.c:859,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/debug.c:864,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:865,1
    - Dst: getpid
      Src: /src/freeradius-server/src/lib/util/debug.c:865,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:868,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/debug.c:869,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/debug.c:874,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/debug.c:875,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:880,1
    - Dst: fr_get_pr_dumpable_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:887,1
    - Dst: fr_set_pr_dumpable_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:888,1
    - Dst: fr_get_pr_dumpable_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:888,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:889,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/debug.c:889,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:893,1
    - Dst: system
      Src: /src/freeradius-server/src/lib/util/debug.c:896,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:904,1
    - Dst: fr_set_pr_dumpable_flag
      Src: /src/freeradius-server/src/lib/util/debug.c:905,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:906,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/debug.c:906,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:907,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/debug.c:908,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:912,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/debug.c:914,1
    - Dst: fr_unset_signal
      Src: /src/freeradius-server/src/lib/util/debug.c:925,1
    - Dst: raise
      Src: /src/freeradius-server/src/lib/util/debug.c:926,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/debug.c:927,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 928
    functionName: fr_fault
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - panic_cb
    - fr_exit_now
    - fr_set_pr_dumpable_flag
    - FR_FAULT_LOG
    - strsignal
    - strstr
    - snprintf
    - fr_fault_check_permissions
    - fr_get_pr_dumpable_flag
    - fr_backtrace
    - system
    - strlen
    - fr_strerror
    - getpid
    - memset
    - raise
    - strlcpy
    - fr_unset_signal
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS fr_fault(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:940,1
    - Dst: fr_backtrace
      Src: /src/freeradius-server/src/lib/util/debug.c:942,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/util/debug.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - reason
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: _fr_talloc_fault_simple
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_backtrace
    - abort
    linkageType: ''
    returnType: void
    signature: void _fr_talloc_fault_simple(char const *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:957,1
    - Dst: fr_fault
      Src: /src/freeradius-server/src/lib/util/debug.c:959,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/debug.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - reason
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 955
    functionDepth: 3
    functionLinenumber: 955
    functionLinenumberEnd: 962
    functionName: _fr_talloc_fault
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_exit_now
    - fr_fault
    linkageType: ''
    returnType: void
    signature: void _fr_talloc_fault(char const *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fault_log
      Src: /src/freeradius-server/src/lib/util/debug.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 970
    functionName: _fr_talloc_log
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - fr_fault_log
    linkageType: ''
    returnType: void
    signature: void _fr_talloc_log(char const *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/freeradius-server/src/lib/util/debug.c:983,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:985,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:985,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/lib/util/debug.c:988,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/debug.c:990,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/debug.c:991,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/debug.c:991,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:996,1
    - Dst: talloc_report_full
      Src: /src/freeradius-server/src/lib/util/debug.c:997,1
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/debug.c:997,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1001,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1002,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/debug.c:1002,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/debug.c:1005,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1006,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/debug.c:1006,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1009,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1013,1
    - Dst: talloc_report_full
      Src: /src/freeradius-server/src/lib/util/debug.c:1014,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/debug.c:1015,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/debug.c:1017,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/debug.c:1018,1
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/debug.c:1018,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/debug.c:1021,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1024
    functionName: fr_log_talloc_report
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 5
    functionsReached:
    - talloc_null_ctx
    - dup
    - fr_syserror
    - fr_strerror_printf
    - talloc_get_name
    - fprintf
    - fdopen
    - talloc_report_full
    - close
    - talloc_parent
    - fclose
    linkageType: ''
    returnType: int
    signature: int fr_log_talloc_report(TALLOC_CTX const *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_disable_null_tracking
      Src: /src/freeradius-server/src/lib/util/debug.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1030
    functionName: _disable_null_tracking
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 2
    functionsReached:
    - talloc_disable_null_tracking
    linkageType: ''
    returnType: int
    signature: int _disable_null_tracking(UNUSED bool *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/debug.c:1042,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/debug.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1044
    functionName: fr_disable_null_tracking_on_free
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 3
    functionsReached:
    - talloc_set_destructor
    - talloc
    linkageType: ''
    returnType: void
    signature: void fr_disable_null_tracking_on_free(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_set_log_fn
      Src: /src/freeradius-server/src/lib/util/debug.c:1053,1
    - Dst: talloc_set_abort_fn
      Src: /src/freeradius-server/src/lib/util/debug.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1055
    functionName: fr_talloc_fault_setup
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 7
    functionsReached:
    - talloc_set_log_fn
    - talloc_set_abort_fn
    linkageType: ''
    returnType: void
    signature: void fr_talloc_fault_setup(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/debug.c:1084,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1085,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/debug.c:1088,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/debug.c:1094,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/debug.c:1095,1
    - Dst: fr_fault_check_permissions
      Src: /src/freeradius-server/src/lib/util/debug.c:1103,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/util/debug.c:1114,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/debug.c:1115,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/debug.c:1118,1
    - Dst: fr_get_debug_state
      Src: /src/freeradius-server/src/lib/util/debug.c:1125,1
    - Dst: talloc_set_log_fn
      Src: /src/freeradius-server/src/lib/util/debug.c:1128,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/lib/util/debug.c:1138,1
    - Dst: talloc_set_abort_fn
      Src: /src/freeradius-server/src/lib/util/debug.c:1144,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/lib/util/debug.c:1147,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/lib/util/debug.c:1150,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/lib/util/debug.c:1153,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/lib/util/debug.c:1161,1
    - Dst: fr_disable_null_tracking_on_free
      Src: /src/freeradius-server/src/lib/util/debug.c:1172,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/util/debug.c:1181,1
    - Dst: mallopt
      Src: /src/freeradius-server/src/lib/util/debug.c:1181,1
    - Dst: mallopt
      Src: /src/freeradius-server/src/lib/util/debug.c:1184,1
    - Dst: fr_backtrace_init
      Src: /src/freeradius-server/src/lib/util/debug.c:1187,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 3
    argNames:
    - ctx
    - cmd
    - program
    argTypes:
    - TALLOC_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1192
    functionName: fr_fault_setup
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 13
    functionsReached:
    - talloc_set_abort_fn
    - fr_disable_null_tracking_on_free
    - fr_backtrace_init
    - strstr
    - snprintf
    - fr_fault_check_permissions
    - fr_get_debug_state
    - talloc_set_log_fn
    - mallopt
    - strlen
    - strcmp
    - getenv
    - fr_strerror_const
    - fr_set_signal
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int fr_fault_setup(TALLOC_CTX *ctx, char const *cmd, char const *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - fr_fault_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1202
    functionName: fr_fault_set_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_fault_set_cb(fr_fault_cb_t func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/debug.c:1219,1
    - Dst: vdprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1220,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/debug.c:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1222
    functionName: fr_fault_log
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - vdprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void fr_fault_log(char const *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1237,1
    - Dst: dprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1241
    functionName: fr_fault_log_hex
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - dprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: void fr_fault_log_hex(uint8_t const *data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1250
    functionName: fr_fault_set_log_fd
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_fault_set_log_fd(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/debug.c:1267,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1268,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/debug.c:1269,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1272,1
    - Dst: fr_fault
      Src: /src/freeradius-server/src/lib/util/debug.c:1273,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1275,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1281,1
    - Dst: fr_fault
      Src: /src/freeradius-server/src/lib/util/debug.c:1282,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - file
    - line
    - expr
    - msg
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1261
    functionDepth: 3
    functionLinenumber: 1261
    functionLinenumberEnd: 1287
    functionName: _fr_assert_fail
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - FR_FAULT_LOG
    - fr_fault
    - vsnprintf
    linkageType: ''
    returnType: bool
    signature: bool _fr_assert_fail(char const *file, int line, char const *expr,
      char const *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/debug.c:1303,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/src/lib/util/debug.c:1304,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/debug.c:1305,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1307,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1309,1
    - Dst: _fr_exit
      Src: /src/freeradius-server/src/lib/util/debug.c:1313,1
    - Dst: fr_fault
      Src: /src/freeradius-server/src/lib/util/debug.c:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - file
    - line
    - expr
    - msg
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1297
    functionDepth: 3
    functionLinenumber: 1297
    functionLinenumberEnd: 1317
    functionName: _fr_assert_fatal
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - _fr_exit
    - va_start
    - FR_FAULT_LOG
    - fr_fault
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void _fr_assert_fatal(char const *file, int line, char const *expr,
      char const *msg, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/debug.c:1332,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1335,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/debug.c:1338,1
    - Dst: fr_debug_break
      Src: /src/freeradius-server/src/lib/util/debug.c:1341,1
    - Dst: _Exit
      Src: /src/freeradius-server/src/lib/util/debug.c:1344,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/util/debug.c:1345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - file
    - line
    - status
    - now
    argTypes:
    - char*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1346
    functionName: _fr_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - fr_debug_break
    - FR_FAULT_LOG
    - _Exit
    - fr_strerror
    - exit
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS _fr_exit(char const *file, int line, int status, bool
      now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_debug_break
      Src: /src/freeradius-server/src/lib/util/debug.c:1350,1
    - Dst: _Exit
      Src: /src/freeradius-server/src/lib/util/debug.c:1352,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/util/debug.c:1353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - file
    - line
    - status
    - now
    argTypes:
    - UNUSED*
    - UNUSED
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1348
    functionDepth: 3
    functionLinenumber: 1348
    functionLinenumberEnd: 1354
    functionName: _fr_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.c
    functionUses: 1
    functionsReached:
    - _Exit
    - fr_debug_break
    - exit
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS _fr_exit(UNUSED char const *file, UNUSED int line, int
      status, bool now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: MPRINT
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPRINT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 156
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: BITSOF
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITSOF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: BYTEOF
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEOF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: BYTES
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTES(_x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:232,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:238,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:247,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - key1
    - keylen1
    - key2
    - keylen2
    - start_bit
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 315
    functionName: fr_trie_key_lcp
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - MPRINT2
    linkageType: ''
    returnType: int
    signature: int fr_trie_key_lcp(uint8_t const *key1, int keylen1, uint8_t const
      *key2, int keylen2, int start_bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:325,1
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:327,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:328,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - fp
    - msg
    - key
    - start_bit
    - end_bit
    argTypes:
    - FILE*
    - char*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: hex_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTES
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hex_dump(FILE *fp, char const *msg, uint8_t const *key, int start_bit,
      int end_bit)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:342,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:343,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:349,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:371,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:381,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:381,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:383,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:398,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - key
    - start_bit
    - num_bits
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 401
    functionName: get_chunk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - BYTEOF
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_chunk(uint8_t const *key, uint32_t start_bit, uint32_t
      num_bits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:411,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:417,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - out
    - start_bit
    - num_bits
    - chunk
    argTypes:
    - uint8_t*
    - int
    - int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 452
    functionName: write_chunk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - BYTEOF
    linkageType: ''
    returnType: void
    signature: void write_chunk(uint8_t *out, int start_bit, int num_bits, uint16_t
      chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: TRIE_TYPE_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRIE_TYPE_CHECK(_x, _r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:534,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/trie.c:540,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:542,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/util/trie.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - bits
    argTypes:
    - TALLOC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 554
    functionName: trie_node_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - talloc_set_name_const
    - fr_strerror_printf
    - fr_strerror_const
    - talloc_zero_array
    linkageType: ''
    returnType: fr_trie_node_t
    signature: fr_trie_node_t *trie_node_alloc(TALLOC_CTX *ctx, int bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:569,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:570,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:581,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:584,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:592,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:593,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:604,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:607,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - trie
    argTypes:
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 611
    functionName: trie_free
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 1
    functionsReached:
    - trie_free
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void trie_free(fr_trie_t *trie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/trie.c:617,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:619,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/trie.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - TALLOC_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 631
    functionName: fr_trie_user_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - UNCONST
    - fr_strerror_const
    linkageType: ''
    returnType: fr_trie_user_t
    signature: fr_trie_user_t *fr_trie_user_alloc(TALLOC_CTX *ctx, void const *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:639,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:653,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:661,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:661,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:662,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/trie.c:666,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:668,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:674,1
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:679,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - key
    - start_bit
    - end_bit
    argTypes:
    - TALLOC_CTX*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 693
    functionName: fr_trie_path_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTEOF
    - fr_strerror_printf
    - write_chunk
    - fprintf
    - get_chunk
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: fr_trie_path_t
    signature: fr_trie_path_t *fr_trie_path_alloc(TALLOC_CTX *ctx, uint8_t const *key,
      int start_bit, int end_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:705,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/trie.c:709,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - bits
    argTypes:
    - TALLOC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 723
    functionName: fr_trie_comp_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_const
    - talloc_zero
    linkageType: ''
    returnType: fr_trie_comp_t
    signature: fr_trie_comp_t *fr_trie_comp_alloc(TALLOC_CTX *ctx, int bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_user_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:750,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/trie.c:756,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - get_key
    - free_data
    argTypes:
    - TALLOC_CTX*
    - fr_trie_key_t
    - fr_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 766
    functionName: fr_trie_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 6
    functionsReached:
    - talloc_zero
    - talloc_free
    - fr_trie_user_alloc
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *fr_trie_alloc(TALLOC_CTX *ctx, fr_trie_key_t get_key, fr_free_t
      free_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:783,1
    - Dst: trie_node_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:787,1
    - Dst: trie_node_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:800,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:802,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:815,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - node
    - bits
    argTypes:
    - TALLOC_CTX*
    - fr_trie_node_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 828
    functionName: trie_node_split
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_free
    - trie_node_alloc
    - fr_strerror_printf
    - talloc_free
    linkageType: ''
    returnType: fr_trie_node_t
    signature: fr_trie_node_t *trie_node_split(TALLOC_CTX *ctx, fr_trie_node_t *node,
      int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:839,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:843,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:846,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:849,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:851,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:867,1
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:873,1
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:874,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:876,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:877,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - path
    - start_bit
    - lcp
    argTypes:
    - TALLOC_CTX*
    - fr_trie_path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 888
    functionName: trie_path_split
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_path_alloc
    - MPRINT3
    - talloc_free
    - fr_strerror_printf
    - fr_cond_assert
    - write_chunk
    linkageType: ''
    returnType: fr_trie_path_t
    signature: fr_trie_path_t *trie_path_split(TALLOC_CTX *ctx, fr_trie_path_t *path,
      int start_bit, int lcp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_user_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:895,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:898,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:908,1
    - Dst: fr_trie_user_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:911,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:916,1
    - Dst: trie_key_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:919,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 926
    functionName: trie_key_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 1
    functionsReached:
    - fr_trie_path_alloc
    - talloc_free
    - fr_strerror_printf
    - trie_key_alloc
    - fr_trie_user_alloc
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *trie_key_alloc(TALLOC_CTX *ctx, uint8_t const *key, int
      start_bit, int end_bit, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_user_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:935,1
    - Dst: trie_node_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:944,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:947,1
    - Dst: trie_key_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:948,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 956
    functionName: trie_key_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 2
    functionsReached:
    - talloc_free
    - trie_node_alloc
    - get_chunk
    - trie_key_alloc
    - fr_trie_user_alloc
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *trie_key_alloc(TALLOC_CTX *ctx, uint8_t const *key, int
      start_bit, int end_bit, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:975,1
    - Dst: fr_trie_comp_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:979,1
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1002,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1021,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1033,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1035,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - comp
    - start_bit
    - bits
    argTypes:
    - TALLOC_CTX*
    - fr_trie_comp_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 1037
    functionName: trie_comp_split
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_path_alloc
    - talloc_free
    - fr_strerror_printf
    - write_chunk
    - fr_trie_comp_alloc
    linkageType: ''
    returnType: fr_trie_t
    signature: fr_trie_t *trie_comp_split(TALLOC_CTX *ctx, fr_trie_comp_t *comp, int
      start_bit, int bits)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1087,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - trie
    - chunk
    - child
    argTypes:
    - fr_trie_t*
    - uint16_t
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1104
    functionName: trie_add_edge
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - VERIFY
    linkageType: ''
    returnType: int
    signature: int trie_add_edge(fr_trie_t *trie, uint16_t chunk, fr_trie_t *child)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1129,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:1138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - trie
    - key
    - start_bit
    - end_bit
    - exact
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1146
    functionName: trie_user_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_key_match
    - MPRINT2
    linkageType: ''
    returnType: void
    signature: void *trie_user_match(fr_trie_t *trie, uint8_t const *key, int start_bit,
      int end_bit, bool exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1153,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:1155,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - trie
    - key
    - start_bit
    - end_bit
    - exact
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1160
    functionName: trie_node_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - get_chunk
    - trie_key_match
    - MPRINT2
    linkageType: ''
    returnType: void
    signature: void *trie_node_match(fr_trie_t *trie, uint8_t const *key, int start_bit,
      int end_bit, bool exact)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1168,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - trie
    - key
    - start_bit
    - end_bit
    - exact
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1172
    functionName: trie_path_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - get_chunk
    - trie_key_match
    linkageType: ''
    returnType: void
    signature: void *trie_path_match(fr_trie_t *trie, uint8_t const *key, int start_bit,
      int end_bit, bool exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1182,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - trie
    - key
    - start_bit
    - end_bit
    - exact
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1200
    functionName: trie_comp_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - get_chunk
    - trie_key_match
    linkageType: ''
    returnType: void
    signature: void *trie_comp_match(fr_trie_t *trie, uint8_t const *key, int start_bit,
      int end_bit, bool exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:1237,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:1240,1
    - Dst: TRIE_TYPE_CHECK
      Src: /src/freeradius-server/src/lib/util/trie.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - trie
    - key
    - start_bit
    - end_bit
    - exact
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1251
    functionName: trie_key_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - TRIE_TYPE_CHECK
    - MPRINT2
    linkageType: ''
    returnType: void
    signature: void *trie_key_match(fr_trie_t *trie, uint8_t const *key, int start_bit,
      int end_bit, bool exact)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/trie.c:1273,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ft
    - key
    - keylen
    argTypes:
    - fr_trie_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1276
    functionName: fr_trie_lookup_by_key
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 10
    functionsReached:
    - UNCONST
    - trie_key_match
    linkageType: ''
    returnType: void
    signature: void *fr_trie_lookup_by_key(fr_trie_t const *ft, void const *key, size_t
      keylen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/trie.c:1297,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ft
    - key
    - keylen
    argTypes:
    - fr_trie_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1300
    functionName: fr_trie_match_by_key
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - UNCONST
    - trie_key_match
    linkageType: ''
    returnType: void
    signature: void *fr_trie_match_by_key(fr_trie_t const *ft, void const *key, size_t
      keylen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:1309,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1311,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1313,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1316,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:1318,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1322,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1324,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:1326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - trie
    - key
    - start_bit
    - end_bit
    - data
    - lineno
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1305
    functionDepth: 2
    functionLinenumber: 1305
    functionLinenumberEnd: 1328
    functionName: trie_check
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_sprint
    - MPRINT3
    - fr_strerror_printf
    - fr_cond_assert
    - trie_key_match
    linkageType: ''
    returnType: void
    signature: void trie_check(fr_trie_t *trie, uint8_t const *key, int start_bit,
      int end_bit, void *data, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1342,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1347,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1349
    functionName: trie_user_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - MPRINT3
    - trie_key_insert
    linkageType: ''
    returnType: int
    signature: int trie_user_insert(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t const
      *key, int start_bit, int end_bit, void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1358,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1370,1
    - Dst: trie_node_split
      Src: /src/freeradius-server/src/lib/util/trie.c:1375,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1377,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1385,1
    - Dst: trie_key_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1392,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1394,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1395,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1405,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1406,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:1407,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1408,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1413,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1415,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1418,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 6
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1351
    functionDepth: 4
    functionLinenumber: 1351
    functionLinenumberEnd: 1422
    functionName: trie_node_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_free
    - VERIFY
    - MPRINT3
    - fr_strerror_printf
    - get_chunk
    - trie_key_alloc
    - trie_node_split
    - MPRINT
    - trie_check
    - trie_key_insert
    linkageType: ''
    returnType: int
    signature: int trie_node_insert(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t const
      *key, int start_bit, int end_bit, void *data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1436,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1439,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:1440,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1446,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1453,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1455,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1456,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1460,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1462,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1463,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1468,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1476,1
    - Dst: fr_trie_key_lcp
      Src: /src/freeradius-server/src/lib/util/trie.c:1496,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1497,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:1503,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1515,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1518,1
    - Dst: trie_path_split
      Src: /src/freeradius-server/src/lib/util/trie.c:1524,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1526,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:1530,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:1531,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:1532,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1539,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1540,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1542,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:1550,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:1551,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1553,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1555,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1556,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1558,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1574,1
    - Dst: fr_trie_comp_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1575,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1585,1
    - Dst: trie_node_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1586,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1594,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1603,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1605,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1614,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1627,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1628,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1629,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1630,1
    - Dst: trie_add_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:1637,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1638,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1639,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1640,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1647,1
    - Dst: trie_add_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:1648,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1649,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1650,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1651,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1655,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1657,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1663,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1664,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 114
    argCount: 6
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1425
    functionDepth: 4
    functionLinenumber: 1425
    functionLinenumberEnd: 1666
    functionName: trie_path_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_sprint
    - fr_trie_path_alloc
    - trie_free
    - VERIFY
    - MPRINT3
    - fr_trie_key_lcp
    - trie_path_split
    - talloc_free
    - fr_strerror_printf
    - fr_cond_assert
    - trie_node_alloc
    - get_chunk
    - trie_add_edge
    - trie_check
    - fr_strerror_const
    - fr_trie_comp_alloc
    - trie_key_insert
    linkageType: ''
    returnType: int
    signature: int trie_path_insert(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t const
      *key, int start_bit, int end_bit, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1678,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1682,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1686,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1699,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1700,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1701,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1705,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1707,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1708,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1725,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1727,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1728,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:1731,1
    - Dst: trie_add_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:1733,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1734,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1738,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1740,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1754,1
    - Dst: trie_node_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1756,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:1760,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1770,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1771,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1772,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1773,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1777,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1779,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1781,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:1783,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 6
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1785
    functionName: trie_comp_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - VERIFY
    - MPRINT3
    - talloc_free
    - trie_node_alloc
    - fr_strerror_printf
    - fr_cond_assert
    - get_chunk
    - trie_add_edge
    - trie_check
    - trie_key_insert
    linkageType: ''
    returnType: int
    signature: int trie_comp_insert(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t const
      *key, int start_bit, int end_bit, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: trie_key_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1822,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1827,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:1828,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1839,1
    - Dst: fr_trie_user_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:1843,1
    - Dst: TRIE_TYPE_CHECK
      Src: /src/freeradius-server/src/lib/util/trie.c:1851,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1856,1
    - Dst: trie_check
      Src: /src/freeradius-server/src/lib/util/trie.c:1862,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 6
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    - data
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1813
    functionDepth: 4
    functionLinenumber: 1813
    functionLinenumberEnd: 1866
    functionName: trie_key_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - trie_sprint
    - MPRINT3
    - fr_strerror_printf
    - trie_key_alloc
    - TRIE_TYPE_CHECK
    - trie_check
    - fr_trie_user_alloc
    linkageType: ''
    returnType: int
    signature: int trie_key_insert(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t const
      *key, int start_bit, int end_bit, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:1884,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:1897,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:1898,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/trie.c:1902,1
    - Dst: MPRINT2
      Src: /src/freeradius-server/src/lib/util/trie.c:1903,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:1905,1
    - Dst: trie_key_insert
      Src: /src/freeradius-server/src/lib/util/trie.c:1907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ft
    - key
    - keylen
    - data
    argTypes:
    - fr_trie_t*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1878
    functionDepth: 5
    functionLinenumber: 1878
    functionLinenumberEnd: 1908
    functionName: fr_trie_insert_by_key
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 7
    functionsReached:
    - MPRINT3
    - fr_strerror_printf
    - UNCONST
    - trie_key_match
    - fr_strerror_const
    - MPRINT2
    - trie_key_insert
    linkageType: ''
    returnType: int
    signature: int fr_trie_insert_by_key(fr_trie_t *ft, void const *key, size_t keylen,
      void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1929,1
    - Dst: trie_key_remove
      Src: /src/freeradius-server/src/lib/util/trie.c:1934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1935
    functionName: trie_user_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_key_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void *trie_user_remove(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t
      const *key, int start_bit, int end_bit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1944,1
    - Dst: trie_key_remove
      Src: /src/freeradius-server/src/lib/util/trie.c:1947,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:1972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1937
    functionDepth: 2
    functionLinenumber: 1937
    functionLinenumberEnd: 1974
    functionName: trie_node_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - get_chunk
    - talloc_free
    - trie_key_remove
    linkageType: ''
    returnType: void
    signature: void *trie_node_remove(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t
      const *key, int start_bit, int end_bit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:1984,1
    - Dst: trie_key_remove
      Src: /src/freeradius-server/src/lib/util/trie.c:1991,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:2003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1977
    functionDepth: 2
    functionLinenumber: 1977
    functionLinenumberEnd: 2005
    functionName: trie_path_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - get_chunk
    - talloc_free
    - trie_key_remove
    linkageType: ''
    returnType: void
    signature: void *trie_path_remove(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t
      const *key, int start_bit, int end_bit)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:2017,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:2019,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:2020,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:2042,1
    - Dst: trie_key_remove
      Src: /src/freeradius-server/src/lib/util/trie.c:2044,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:2051,1
    - Dst: trie_sprint
      Src: /src/freeradius-server/src/lib/util/trie.c:2052,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:2053,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:2069,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:2079,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:2080,1
    - Dst: fr_trie_path_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:2093,1
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:2106,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:2109,1
    - Dst: VERIFY
      Src: /src/freeradius-server/src/lib/util/trie.c:2110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 5
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2009
    functionDepth: 3
    functionLinenumber: 2009
    functionLinenumberEnd: 2112
    functionName: trie_comp_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_sprint
    - fr_trie_path_alloc
    - VERIFY
    - MPRINT3
    - trie_key_remove
    - talloc_free
    - fr_cond_assert
    - write_chunk
    - get_chunk
    linkageType: ''
    returnType: void
    signature: void *trie_comp_remove(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t
      const *key, int start_bit, int end_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRIE_TYPE_CHECK
      Src: /src/freeradius-server/src/lib/util/trie.c:2141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - trie_p
    - key
    - start_bit
    - end_bit
    argTypes:
    - TALLOC_CTX*
    - fr_trie_t**
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2144
    functionName: trie_key_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - TRIE_TYPE_CHECK
    linkageType: ''
    returnType: void
    signature: void *trie_key_remove(TALLOC_CTX *ctx, fr_trie_t **trie_p, uint8_t
      const *key, int start_bit, int end_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trie_key_remove
      Src: /src/freeradius-server/src/lib/util/trie.c:2170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ft
    - key
    - keylen
    argTypes:
    - fr_trie_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2157
    functionDepth: 2
    functionLinenumber: 2157
    functionLinenumberEnd: 2171
    functionName: fr_trie_remove_by_key
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 3
    functionsReached:
    - trie_key_remove
    linkageType: ''
    returnType: void
    signature: void *fr_trie_remove_by_key(fr_trie_t *ft, void const *key, size_t
      keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - trie
    - cb
    - depth
    - more
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2198
    functionName: trie_user_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int trie_user_walk(fr_trie_t *trie, fr_trie_callback_t *cb, int depth,
      bool more)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:2209,1
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:2212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - trie
    - cb
    - depth
    - more
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2219
    functionName: trie_node_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - write_chunk
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int trie_node_walk(fr_trie_t *trie, fr_trie_callback_t *cb, int depth,
      bool more)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:2226,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:2228,1
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:2229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - trie
    - cb
    - depth
    - more
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2222
    functionDepth: 2
    functionLinenumber: 2222
    functionLinenumberEnd: 2230
    functionName: trie_path_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - write_chunk
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int trie_path_walk(fr_trie_t *trie, fr_trie_callback_t *cb, int depth,
      bool more)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:2241,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:2243,1
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:2246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - trie
    - cb
    - depth
    - more
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2234
    functionDepth: 2
    functionLinenumber: 2234
    functionLinenumberEnd: 2253
    functionName: trie_comp_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - write_chunk
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int trie_comp_walk(fr_trie_t *trie, fr_trie_callback_t *cb, int depth,
      bool more)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_callback_t*::callback
      Src: /src/freeradius-server/src/lib/util/trie.c:2272,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:2275,1
    - Dst: TRIE_TYPE_CHECK
      Src: /src/freeradius-server/src/lib/util/trie.c:2279,1
    - Dst: BYTEOF
      Src: /src/freeradius-server/src/lib/util/trie.c:2284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - trie
    - cb
    - depth
    - more
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2267
    functionDepth: 1
    functionLinenumber: 2267
    functionLinenumberEnd: 2287
    functionName: trie_key_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - fr_cond_assert
    - TRIE_TYPE_CHECK
    - fr_trie_callback_t*::callback
    - BYTEOF
    linkageType: ''
    returnType: int
    signature: int trie_key_walk(fr_trie_t *trie, fr_trie_callback_t *cb, int depth,
      bool more)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:2299,1
    - Dst: trie_verify
      Src: /src/freeradius-server/src/lib/util/trie.c:2305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - trie
    argTypes:
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2306
    functionName: trie_user_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_verify
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int trie_user_verify(fr_trie_t *trie)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2314,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2320,1
    - Dst: trie_verify
      Src: /src/freeradius-server/src/lib/util/trie.c:2329,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - trie
    argTypes:
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2308
    functionDepth: 1
    functionLinenumber: 2308
    functionLinenumberEnd: 2341
    functionName: trie_node_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_verify
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int trie_node_verify(fr_trie_t *trie)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2349,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/trie.c:2355,1
    - Dst: trie_verify
      Src: /src/freeradius-server/src/lib/util/trie.c:2359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - trie
    argTypes:
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2344
    functionDepth: 1
    functionLinenumber: 2344
    functionLinenumberEnd: 2360
    functionName: trie_path_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_verify
    - fr_strerror_printf
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int trie_path_verify(fr_trie_t *trie)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2370,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2378,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2384,1
    - Dst: trie_verify
      Src: /src/freeradius-server/src/lib/util/trie.c:2390,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/trie.c:2395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - trie
    argTypes:
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2401
    functionName: trie_comp_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_verify
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int trie_comp_verify(fr_trie_t *trie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRIE_TYPE_CHECK
      Src: /src/freeradius-server/src/lib/util/trie.c:2423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - trie
    argTypes:
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2419
    functionDepth: 1
    functionLinenumber: 2419
    functionLinenumberEnd: 2426
    functionName: trie_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - TRIE_TYPE_CHECK
    linkageType: ''
    returnType: int
    signature: int trie_verify(fr_trie_t *trie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:2437,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fp
    - trie
    argTypes:
    - FILE*
    - fr_trie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2435
    functionDepth: 1
    functionLinenumber: 2435
    functionLinenumberEnd: 2441
    functionName: trie_dump_edge
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void trie_dump_edge(FILE *fp, fr_trie_t *trie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2449,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2451,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2452,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2453,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2455,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2457,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2461,1
    - Dst: trie_dump_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:2462,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - fp
    - trie
    - key
    - keylen
    argTypes:
    - FILE*
    - fr_trie_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2446
    functionDepth: 2
    functionLinenumber: 2446
    functionLinenumberEnd: 2464
    functionName: trie_user_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTES
    - trie_dump_edge
    - fprintf
    linkageType: ''
    returnType: void
    signature: void trie_user_dump(FILE *fp, fr_trie_t *trie, char const *key, int
      keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2470,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2472,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2473,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2474,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2476,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2477,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2482,1
    - Dst: trie_dump_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:2483,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - fp
    - trie
    - key
    - keylen
    argTypes:
    - FILE*
    - fr_trie_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2466
    functionDepth: 2
    functionLinenumber: 2466
    functionLinenumberEnd: 2486
    functionName: trie_node_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTES
    - trie_dump_edge
    - fprintf
    linkageType: ''
    returnType: void
    signature: void trie_node_dump(FILE *fp, fr_trie_t *trie, char const *key, int
      keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2492,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2494,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2495,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2496,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2498,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2499,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2501,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2503,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2505,1
    - Dst: trie_dump_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:2506,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - fp
    - trie
    - key
    - keylen
    argTypes:
    - FILE*
    - fr_trie_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2489
    functionDepth: 2
    functionLinenumber: 2489
    functionLinenumberEnd: 2509
    functionName: trie_path_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTES
    - trie_dump_edge
    - fprintf
    linkageType: ''
    returnType: void
    signature: void trie_path_dump(FILE *fp, fr_trie_t *trie, char const *key, int
      keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2517,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2519,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2520,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2521,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2523,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2524,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2527,1
    - Dst: trie_dump_edge
      Src: /src/freeradius-server/src/lib/util/trie.c:2528,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - fp
    - trie
    - key
    - keylen
    argTypes:
    - FILE*
    - fr_trie_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2513
    functionDepth: 2
    functionLinenumber: 2513
    functionLinenumberEnd: 2531
    functionName: trie_comp_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTES
    - trie_dump_edge
    - fprintf
    linkageType: ''
    returnType: void
    signature: void trie_comp_dump(FILE *fp, fr_trie_t *trie, char const *key, int
      keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRIE_TYPE_CHECK
      Src: /src/freeradius-server/src/lib/util/trie.c:2556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - trie
    - cb
    - keylen
    - bool
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2550
    functionDepth: 1
    functionLinenumber: 2550
    functionLinenumberEnd: 2560
    functionName: _trie_dump_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - TRIE_TYPE_CHECK
    linkageType: ''
    returnType: int
    signature: int _trie_dump_cb(fr_trie_t *trie, fr_trie_callback_t *cb, int keylen,
      UNUSED bool more)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2575,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2579,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - trie
    - cb
    - keylen
    - bool
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2585
    functionName: _trie_print_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - BYTES
    - fprintf
    linkageType: ''
    returnType: int
    signature: int _trie_print_cb(fr_trie_t *trie, fr_trie_callback_t *cb, int keylen,
      UNUSED bool more)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_callback_t*::user_callback
      Src: /src/freeradius-server/src/lib/util/trie.c:2603,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/trie.c:2603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - trie
    - cb
    - keylen
    - bool
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2608
    functionName: _trie_user_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - fr_trie_callback_t*::user_callback
    linkageType: ''
    returnType: int
    signature: int _trie_user_cb(fr_trie_t *trie, fr_trie_callback_t *cb, int keylen,
      UNUSED bool more)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/trie.c:2621,1
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:2626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ft
    - ctx
    - callback
    argTypes:
    - fr_trie_t*
    - void*
    - fr_trie_walk_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2610
    functionDepth: 2
    functionLinenumber: 2610
    functionLinenumberEnd: 2627
    functionName: fr_trie_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 1
    functionsReached:
    - memset
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int fr_trie_walk(fr_trie_t *ft, void *ctx, fr_trie_walk_t callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/trie.c:2648,1
    - Dst: fr_trie_ctx_t*::get_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2657,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ft
    - data
    argTypes:
    - fr_trie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2645
    functionDepth: 3
    functionLinenumber: 2645
    functionLinenumberEnd: 2660
    functionName: fr_trie_find
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_lookup_by_key
    - fr_trie_ctx_t*::get_key
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_trie_find(fr_trie_t *ft, void const *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/trie.c:2674,1
    - Dst: fr_trie_ctx_t*::get_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2683,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ft
    - data
    argTypes:
    - fr_trie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2671
    functionDepth: 3
    functionLinenumber: 2671
    functionLinenumberEnd: 2686
    functionName: fr_trie_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_ctx_t*::get_key
    - talloc_get_type_abort
    - fr_trie_match_by_key
    linkageType: ''
    returnType: void
    signature: void *fr_trie_match(fr_trie_t *ft, void const *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/trie.c:2700,1
    - Dst: fr_trie_ctx_t*::get_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2709,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ft
    - data
    argTypes:
    - fr_trie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2697
    functionDepth: 6
    functionLinenumber: 2697
    functionLinenumberEnd: 2714
    functionName: fr_trie_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_ctx_t*::get_key
    - fr_trie_insert_by_key
    - talloc_get_type_abort
    linkageType: ''
    returnType: bool
    signature: bool fr_trie_insert(fr_trie_t *ft, void const *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/trie.c:2733,1
    - Dst: fr_trie_ctx_t*::get_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2743,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:2745,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2748,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2756,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - old
    - ft
    - data
    argTypes:
    - void**
    - fr_trie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2730
    functionDepth: 6
    functionLinenumber: 2730
    functionLinenumberEnd: 2759
    functionName: fr_trie_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - fr_trie_ctx_t*::get_key
    - talloc_get_type_abort
    - trie_key_match
    - fr_trie_remove_by_key
    linkageType: ''
    returnType: int
    signature: int fr_trie_replace(void **old, fr_trie_t *ft, void const *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/trie.c:2773,1
    - Dst: fr_trie_ctx_t*::get_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2782,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ft
    - data
    argTypes:
    - fr_trie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2770
    functionDepth: 3
    functionLinenumber: 2770
    functionLinenumberEnd: 2785
    functionName: fr_trie_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_ctx_t*::get_key
    - fr_trie_remove_by_key
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_trie_remove(fr_trie_t *ft, void const *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/trie.c:2799,1
    - Dst: fr_trie_ctx_t*::get_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2809,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2811,1
    - Dst: fr_trie_ctx_t*::free_data
      Src: /src/freeradius-server/src/lib/util/trie.c:2816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ft
    - data
    argTypes:
    - fr_trie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2796
    functionDepth: 3
    functionLinenumber: 2796
    functionLinenumberEnd: 2818
    functionName: fr_trie_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_ctx_t*::free_data
    - fr_trie_ctx_t*::get_key
    - fr_trie_remove_by_key
    - talloc_get_type_abort
    linkageType: ''
    returnType: bool
    signature: bool fr_trie_delete(fr_trie_t *ft, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2828
    functionName: fr_trie_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_trie_num_elements(UNUSED fr_trie_t *ft)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2851,1
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2857,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2861,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:2864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - trie
    - cb
    - keylen
    - more
    argTypes:
    - fr_trie_t*
    - fr_trie_callback_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2842
    functionDepth: 1
    functionLinenumber: 2842
    functionLinenumberEnd: 2873
    functionName: _trie_sprint_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - snprintf
    - BYTES
    linkageType: ''
    returnType: int
    signature: int _trie_sprint_cb(fr_trie_t *trie, fr_trie_callback_t *cb, int keylen,
      bool more)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/trie.c:2886,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/trie.c:2887,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:2889,1
    - Dst: BYTES
      Src: /src/freeradius-server/src/lib/util/trie.c:2889,1
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:2911,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:2913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - trie
    - key
    - start_bit
    - lineno
    argTypes:
    - fr_trie_t*
    - uint8_t*
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2876
    functionDepth: 2
    functionLinenumber: 2876
    functionLinenumberEnd: 2914
    functionName: trie_sprint
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 4
    functionsReached:
    - memcpy
    - MPRINT3
    - BYTES
    - memset
    - trie_key_walk
    linkageType: ''
    returnType: void
    signature: void trie_sprint(fr_trie_t *trie, uint8_t const *key, int start_bit,
      UNUSED int lineno)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:2931,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:2931,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/trie.c:2935,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:2937,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:2941,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:2941,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:2943,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/trie.c:2947,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:2949,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - arg
    - key
    - length
    argTypes:
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2924
    functionDepth: 1
    functionLinenumber: 2924
    functionLinenumberEnd: 2957
    functionName: arg2key
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    - MPRINT
    - atoi
    - BITSOF
    linkageType: ''
    returnType: int
    signature: int arg2key(char *arg, char **key, int *length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arg2key
      Src: /src/freeradius-server/src/lib/util/trie.c:2975,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/trie.c:2983,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:2985,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:2989,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:2990,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/trie.c:2990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - size_t
    argTypes:
    - fr_trie_t*
    - UNUSED
    - char**
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2969
    functionDepth: 6
    functionLinenumber: 2969
    functionLinenumberEnd: 2995
    functionName: command_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - talloc_strdup
    - MPRINT
    - fr_strerror
    - arg2key
    linkageType: ''
    returnType: int
    signature: int command_insert(fr_trie_t *ft, UNUSED int argc, char **argv, UNUSED
      char *out, UNUSED size_t outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/trie.c:3004,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3011,1
    - Dst: trie_verify
      Src: /src/freeradius-server/src/lib/util/trie.c:3015,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3016,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/trie.c:3016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - size_t
    argTypes:
    - fr_trie_t*
    - UNUSED
    - UNUSED**
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3002
    functionDepth: 2
    functionLinenumber: 3002
    functionLinenumberEnd: 3021
    functionName: command_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_verify
    - fr_cond_assert
    - fr_strerror
    - fprintf
    linkageType: ''
    returnType: int
    signature: int command_verify(fr_trie_t *ft, UNUSED int argc, UNUSED char **argv,
      UNUSED char *out, UNUSED size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:3042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - UNUSED**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3029
    functionDepth: 2
    functionLinenumber: 3029
    functionLinenumberEnd: 3043
    functionName: command_keys
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int command_keys(fr_trie_t *ft, UNUSED int argc, UNUSED char **argv,
      char *out, size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:3068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - UNUSED**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3055
    functionDepth: 2
    functionLinenumber: 3055
    functionLinenumberEnd: 3069
    functionName: command_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int command_dump(fr_trie_t *ft, UNUSED int argc, UNUSED char **argv,
      char *out, size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3079,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3085,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/trie.c:3086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - size_t
    argTypes:
    - fr_trie_t*
    - UNUSED
    - UNUSED**
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3075
    functionDepth: 2
    functionLinenumber: 3075
    functionLinenumberEnd: 3089
    functionName: command_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 3
    functionsReached:
    - trie_free
    - talloc_init_const
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int command_clear(fr_trie_t *ft, UNUSED int argc, UNUSED char **argv,
      UNUSED char *out, UNUSED size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/trie.c:3098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - size_t
    argTypes:
    - UNUSED*
    - UNUSED
    - char**
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3105
    functionName: command_lineno
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int command_lineno(UNUSED fr_trie_t *ft, UNUSED int argc, char **argv,
      UNUSED char *out, UNUSED size_t outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arg2key
      Src: /src/freeradius-server/src/lib/util/trie.c:3122,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:3126,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3128,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3135
      start: 3116
    functionDepth: 2
    functionLinenumber: 3116
    functionLinenumberEnd: 3135
    functionName: command_match
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - arg2key
    - trie_key_match
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int command_match(fr_trie_t *ft, UNUSED int argc, char **argv, char
      *out, size_t outlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arg2key
      Src: /src/freeradius-server/src/lib/util/trie.c:3148,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:3152,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3154,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3142
    functionDepth: 3
    functionLinenumber: 3142
    functionLinenumberEnd: 3161
    functionName: command_lookup
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_lookup_by_key
    - arg2key
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int command_lookup(fr_trie_t *ft, UNUSED int argc, char **argv, char
      *out, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arg2key
      Src: /src/freeradius-server/src/lib/util/trie.c:3174,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:3178,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3180,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3184,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3186,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:3192,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3168
    functionDepth: 3
    functionLinenumber: 3168
    functionLinenumberEnd: 3199
    functionName: command_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - trie_key_match
    - MPRINT
    - fr_trie_remove_by_key
    - arg2key
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int command_remove(fr_trie_t *ft, UNUSED int argc, char **argv, char
      *out, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arg2key
      Src: /src/freeradius-server/src/lib/util/trie.c:3212,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:3216,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3218,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/trie.c:3222,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3224,1
    - Dst: trie_key_match
      Src: /src/freeradius-server/src/lib/util/trie.c:3230,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3206
    functionDepth: 3
    functionLinenumber: 3206
    functionLinenumberEnd: 3237
    functionName: command_try_to_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - trie_key_match
    - MPRINT
    - fr_trie_remove_by_key
    - arg2key
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int command_try_to_remove(fr_trie_t *ft, UNUSED int argc, char **argv,
      char *out, size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/trie.c:3268,1
    - Dst: trie_key_walk
      Src: /src/freeradius-server/src/lib/util/trie.c:3273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - UNUSED
    - UNUSED**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3246
    functionDepth: 2
    functionLinenumber: 3246
    functionLinenumberEnd: 3274
    functionName: command_print
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 1
    functionsReached:
    - memset
    - trie_key_walk
    linkageType: ''
    returnType: int
    signature: int command_print(fr_trie_t *ft, UNUSED int argc, UNUSED char **argv,
      char *out, size_t outlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/trie.c:3287,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3289,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:3293,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3293,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3293,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3294,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/trie.c:3294,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:3298,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3298,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3298,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3300,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3305,1
    - Dst: command_print
      Src: /src/freeradius-server/src/lib/util/trie.c:3312,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/trie.c:3314,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3314,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3314,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3316,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3321,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - fr_trie_t*
    - int
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3282
    functionDepth: 6
    functionLinenumber: 3282
    functionLinenumberEnd: 3328
    functionName: command_path
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - talloc_free
    - fr_trie_remove_by_key
    - talloc_strdup
    - command_print
    - strlen
    - MPRINT
    - fr_strerror
    - fr_trie_lookup_by_key
    - BITSOF
    linkageType: ''
    returnType: int
    signature: int command_path(fr_trie_t *ft, int argc, char **argv, char *out, size_t
      outlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3343,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3343,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3346,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3346,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/trie.c:3351,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3352,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3352,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3353,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3354,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3354,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/trie.c:3359,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3360,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3360,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3361,1
    - Dst: BITSOF
      Src: /src/freeradius-server/src/lib/util/trie.c:3362,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/trie.c:3362,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/trie.c:3366,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3368,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/lib/util/trie.c:3373,1
    - Dst: fr_trie_key_lcp
      Src: /src/freeradius-server/src/lib/util/trie.c:3377,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - UNUSED*
    - int
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3334
    functionDepth: 2
    functionLinenumber: 3334
    functionLinenumberEnd: 3381
    functionName: command_lcp
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - fr_trie_key_lcp
    - snprintf
    - strlen
    - MPRINT
    - atoi
    - BITSOF
    linkageType: ''
    returnType: int
    signature: int command_lcp(UNUSED fr_trie_t *ft, int argc, char **argv, char *out,
      size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/trie.c:3391,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/trie.c:3392,1
    - Dst: get_chunk
      Src: /src/freeradius-server/src/lib/util/trie.c:3394,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ft
    - argc
    - argv
    - out
    - outlen
    argTypes:
    - UNUSED*
    - UNUSED
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3386
    functionDepth: 2
    functionLinenumber: 3386
    functionLinenumberEnd: 3398
    functionName: command_chunk
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 0
    functionsReached:
    - atoi
    - get_chunk
    - snprintf
    linkageType: ''
    returnType: int
    signature: int command_chunk(UNUSED fr_trie_t *ft, UNUSED int argc, char **argv,
      char *out, size_t outlen)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3451,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/trie.c:3452,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/trie.c:3455,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3457,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/trie.c:3457,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/trie.c:3458,1
    - Dst: talloc_enable_null_tracking
      Src: /src/freeradius-server/src/lib/util/trie.c:3464,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/trie.c:3466,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/trie.c:3468,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3470,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/trie.c:3471,1
    - Dst: fgets
      Src: /src/freeradius-server/src/lib/util/trie.c:3474,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/util/trie.c:3494,1
    - Dst: fr_dict_str_to_argv
      Src: /src/freeradius-server/src/lib/util/trie.c:3501,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/trie.c:3505,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3512,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3524,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/trie.c:3526,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/trie.c:3530,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/trie.c:3531,1
    - Dst: MPRINT3
      Src: /src/freeradius-server/src/lib/util/trie.c:3534,1
    - Dst: function
      Src: /src/freeradius-server/src/lib/util/trie.c:3535,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3536,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/trie.c:3538,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/trie.c:3543,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/trie.c:3544,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/trie.c:3546,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/trie.c:3550,1
    - Dst: trie_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3552,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/trie.c:3553,1
    - Dst: talloc_report_full
      Src: /src/freeradius-server/src/lib/util/trie.c:3555,1
    - Dst: talloc_disable_null_tracking
      Src: /src/freeradius-server/src/lib/util/trie.c:3556,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3559
      start: 3439
    functionDepth: 3
    functionLinenumber: 3439
    functionLinenumberEnd: 3559
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/trie.c
    functionUses: 3
    functionsReached:
    - fgets
    - MPRINT3
    - function
    - fflush
    - fopen
    - fr_trie_alloc
    - trie_free
    - printf
    - fr_syserror
    - talloc_init_const
    - talloc_report_full
    - strcmp
    - fclose
    - fr_exit_now
    - talloc_enable_null_tracking
    - talloc_free
    - talloc_disable_null_tracking
    - fr_skip_whitespace
    - fprintf
    - fr_dict_str_to_argv
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:108,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:114,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:142,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:146,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:183,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 5
    argNames:
    - from
    - to
    - buffer
    - buflen
    - error
    argTypes:
    - struct hostent*
    - struct hostent*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 189
    functionName: copy_hostent
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int copy_hostent(struct hostent *from, struct hostent *to, char *buffer,
      size_t buflen, int *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:200,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:203,1
    - Dst: gethostbyname
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:205,1
    - Dst: copy_hostent
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:210,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - hostname
    - result
    - buffer
    - buflen
    - error
    argTypes:
    - char*
    - struct hostent*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 217
    functionName: gethostbyname_r
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - gethostbyname
    - copy_hostent
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_mutex_init
    linkageType: ''
    returnType: struct hostent
    signature: "struct hostent *\ngethostbyname_r(char const *hostname, struct hostent
      *result,\n\t   char *buffer, int buflen, int *error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:228,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:231,1
    - Dst: gethostbyaddr
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:233,1
    - Dst: copy_hostent
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:238,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - addr
    - len
    - type
    - result
    - buffer
    - buflen
    - error
    argTypes:
    - char*
    - int
    - int
    - struct hostent*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: gethostbyaddr_r
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - gethostbyaddr
    - copy_hostent
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_mutex_init
    linkageType: ''
    returnType: struct hostent
    signature: "struct hostent *gethostbyaddr_r(char const *addr, int len, int type,
      struct hostent *result,\n\t\t\t\t       char *buffer, int buflen, int *error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:260,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - port
    - addr
    - socktype
    - proto
    argTypes:
    - uint16_t
    - u_long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 274
    functionName: alloc_ai
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - MEM
    - talloc_zero_array
    linkageType: ''
    returnType: struct addrinfo
    signature: struct addrinfo *alloc_ai(uint16_t port, u_long addr, int socktype,
      int proto)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ecode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: gai_strerror
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gai_strerror(int ecode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: freeaddrinfo
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 2
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void freeaddrinfo(struct addrinfo *ai)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:337,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:338,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:338,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:356,1
    - Dst: alloc_ai
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:364,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:364,1
    - Dst: alloc_ai
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:366,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:366,1
    - Dst: inet_aton
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:374,1
    - Dst: alloc_ai
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:375,1
    - Dst: gethostbyname_r
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:386,1
    - Dst: gethostbyname_r
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:388,1
    - Dst: gethostbyname_r
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:390,1
    - Dst: gethostbyname_r
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:393,1
    - Dst: alloc_ai
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:398,1
    - Dst: freeaddrinfo
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:400,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:413,1
    - Dst: freeaddrinfo
      Src: /src/freeradius-server/src/lib/util/getaddrinfo.c:414,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 4
    argNames:
    - hostname
    - servname
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 421
    functionName: getaddrinfo
    functionSourceFile: /src/freeradius-server/src/lib/util/getaddrinfo.c
    functionUses: 2
    functionsReached:
    - gethostbyname_r
    - alloc_ai
    - isdigit
    - htonl
    - freeaddrinfo
    - talloc_strdup
    - getservbyname
    - inet_aton
    - atoi
    - htons
    linkageType: ''
    returnType: int
    signature: int getaddrinfo(char const *hostname, char const *servname, struct
      addrinfo const *hints, struct addrinfo **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: fr_path_default_log_dir
    functionSourceFile: /src/freeradius-server/src/lib/util/paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_path_default_log_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: fr_path_default_lib_dir
    functionSourceFile: /src/freeradius-server/src/lib/util/paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_path_default_lib_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: fr_path_default_confdir
    functionSourceFile: /src/freeradius-server/src/lib/util/paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_path_default_confdir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: fr_path_default_run_dir
    functionSourceFile: /src/freeradius-server/src/lib/util/paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_path_default_run_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: fr_path_default_sbin_dir
    functionSourceFile: /src/freeradius-server/src/lib/util/paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_path_default_sbin_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: fr_path_default_radacct_dir
    functionSourceFile: /src/freeradius-server/src/lib/util/paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_path_default_radacct_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mm
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: ind
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 308
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ind(mm,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - mix
    - ','
    - a
    - ','
    - b
    - ','
    - mm
    - ','
    - m
    - ','
    - m2
    - ','
    - r
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: rngstep
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rngstep(mix, a, b, mm, m, m2, r, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: rotr
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mm
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ind
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 308
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ind(mm,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - mix
    - ','
    - a
    - ','
    - b
    - ','
    - mm
    - ','
    - m
    - ','
    - m2
    - ','
    - r
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: rngstep
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rngstep(mix, a, b, mm, m, m2, r, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:56,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:57,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:58,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:59,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:62,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:63,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:64,1
    - Dst: rngstep
      Src: /src/freeradius-server/src/lib/util/isaac.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_randctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: fr_isaac
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 0
    functionsReached:
    - rngstep
    linkageType: ''
    returnType: void
    signature: void fr_isaac(fr_randctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: mix
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(a,b,c,d,e,f,g,h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/freeradius-server/src/lib/util/isaac.c:99,1
    - Dst: mix
      Src: /src/freeradius-server/src/lib/util/isaac.c:107,1
    - Dst: mix
      Src: /src/freeradius-server/src/lib/util/isaac.c:115,1
    - Dst: mix
      Src: /src/freeradius-server/src/lib/util/isaac.c:122,1
    - Dst: fr_isaac
      Src: /src/freeradius-server/src/lib/util/isaac.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 2
    argNames:
    - ctx
    - flag
    argTypes:
    - fr_randctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: fr_isaac_init
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 1
    functionsReached:
    - fr_isaac
    - mix
    linkageType: ''
    returnType: void
    signature: void fr_isaac_init(fr_randctx *ctx, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_isaac_init
      Src: /src/freeradius-server/src/lib/util/isaac.c:148,1
    - Dst: fr_isaac
      Src: /src/freeradius-server/src/lib/util/isaac.c:150,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/isaac.c:152,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/isaac.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/isaac.c
    functionUses: 3
    functionsReached:
    - printf
    - fr_isaac
    - fr_isaac_init
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:40,1
    - Dst: fr_rb_tree_t*::data_free
      Src: /src/freeradius-server/src/lib/util/rb.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: node_data_free
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_rb_tree_t*::data_free
    linkageType: ''
    returnType: void
    signature: void node_data_free(fr_rb_tree_t const *tree, fr_rb_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: _node_inline_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_rb_node_t
    signature: fr_rb_node_t *_node_inline_alloc(fr_rb_tree_t const *tree, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: node_data_free
      Src: /src/freeradius-server/src/lib/util/rb.c:58,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/rb.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tree
    - node
    - free_data
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: _node_inline_free
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - memset
    - node_data_free
    linkageType: ''
    returnType: void
    signature: void _node_inline_free(fr_rb_tree_t const *tree, fr_rb_node_t *node,
      bool free_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/rb.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: _node_heap_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: fr_rb_node_t
    signature: fr_rb_node_t *_node_heap_alloc(fr_rb_tree_t const *tree, UNUSED void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: node_data_free
      Src: /src/freeradius-server/src/lib/util/rb.c:75,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/rb.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tree
    - node
    - free_data
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: _node_heap_free
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - node_data_free
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _node_heap_free(fr_rb_tree_t const *tree, fr_rb_node_t *node,
      bool free_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_walker
      Src: /src/freeradius-server/src/lib/util/rb.c:84,1
    - Dst: free_walker
      Src: /src/freeradius-server/src/lib/util/rb.c:85,1
    - Dst: fr_rb_tree_t*::node_free
      Src: /src/freeradius-server/src/lib/util/rb.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: free_walker
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 1
    functionsReached:
    - free_walker
    - fr_rb_tree_t*::node_free
    linkageType: ''
    returnType: void
    signature: void free_walker(fr_rb_tree_t *tree, fr_rb_node_t *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:109,1
    - Dst: free_walker
      Src: /src/freeradius-server/src/lib/util/rb.c:115,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/rb.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tree
    argTypes:
    - fr_rb_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: _tree_free
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    - free_walker
    - talloc_free_children
    linkageType: ''
    returnType: int
    signature: int _tree_free(fr_rb_tree_t *tree)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:152,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/rb.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - tree
    - node_ctx
    - offset
    - type
    - data_cmp
    - data_free
    argTypes:
    - fr_rb_tree_t*
    - TALLOC_CTX*
    - ssize_t
    - char*
    - fr_cmp_t
    - fr_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 185
    functionName: _fr_rb_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: "int _fr_rb_init(fr_rb_tree_t *tree, TALLOC_CTX *node_ctx,\n\t\tssize_t
      offset, char const *type,\n\t\tfr_cmp_t data_cmp, fr_free_t data_free)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/rb.c:208,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:209,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:211,1
    - Dst: _fr_rb_init
      Src: /src/freeradius-server/src/lib/util/rb.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/rb.c:212,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/rb.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - offset
    - type
    - data_cmp
    - data_free
    argTypes:
    - TALLOC_CTX*
    - ssize_t
    - char*
    - fr_cmp_t
    - fr_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: _fr_rb_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _fr_rb_init
    - talloc_set_destructor
    - talloc_free
    - talloc
    linkageType: ''
    returnType: fr_rb_tree_t
    signature: "fr_rb_tree_t *_fr_rb_alloc(TALLOC_CTX *ctx,\n\t\t\t   ssize_t offset,
      char const *type,\n\t\t\t   fr_cmp_t data_cmp, fr_free_t data_free)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 248
    functionName: rotate_left
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rotate_left(fr_rb_tree_t *tree, fr_rb_node_t *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 276
    functionName: rotate_right
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rotate_right(fr_rb_tree_t *tree, fr_rb_node_t *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rotate_left
      Src: /src/freeradius-server/src/lib/util/rb.c:299,1
    - Dst: rotate_right
      Src: /src/freeradius-server/src/lib/util/rb.c:305,1
    - Dst: rotate_right
      Src: /src/freeradius-server/src/lib/util/rb.c:320,1
    - Dst: rotate_left
      Src: /src/freeradius-server/src/lib/util/rb.c:325,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - tree
    - x
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 331
    functionName: insert_fixup
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - rotate_right
    - rotate_left
    linkageType: ''
    returnType: void
    signature: void insert_fixup(fr_rb_tree_t *tree, fr_rb_node_t *x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:349,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/rb.c:352,1
    - Dst: fr_rb_tree_t*::data_cmp
      Src: /src/freeradius-server/src/lib/util/rb.c:364,1
    - Dst: fr_rb_tree_t*::node_alloc
      Src: /src/freeradius-server/src/lib/util/rb.c:375,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:376,1
    - Dst: fr_rb_tree_t*::data_cmp
      Src: /src/freeradius-server/src/lib/util/rb.c:388,1
    - Dst: insert_fixup
      Src: /src/freeradius-server/src/lib/util/rb.c:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - existing
    - tree
    - data
    argTypes:
    - fr_rb_node_t**
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 402
    functionName: insert_node
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_rb_tree_t*::data_cmp
    - fr_rb_tree_t*::node_alloc
    - insert_fixup
    - _talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int insert_node(fr_rb_node_t **existing, fr_rb_tree_t *tree, void *data)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: rotate_left
      Src: /src/freeradius-server/src/lib/util/rb.c:415,1
    - Dst: rotate_right
      Src: /src/freeradius-server/src/lib/util/rb.c:426,1
    - Dst: rotate_left
      Src: /src/freeradius-server/src/lib/util/rb.c:434,1
    - Dst: rotate_right
      Src: /src/freeradius-server/src/lib/util/rb.c:442,1
    - Dst: rotate_left
      Src: /src/freeradius-server/src/lib/util/rb.c:453,1
    - Dst: rotate_right
      Src: /src/freeradius-server/src/lib/util/rb.c:461,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 3
    argNames:
    - tree
    - x
    - parent
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 467
    functionName: delete_fixup
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - rotate_right
    - rotate_left
    linkageType: ''
    returnType: void
    signature: void delete_fixup(fr_rb_tree_t *tree, fr_rb_node_t *x, fr_rb_node_t
      *parent)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: delete_fixup
      Src: /src/freeradius-server/src/lib/util/rb.c:512,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/rb.c:521,1
    - Dst: fr_rb_tree_t*::node_free
      Src: /src/freeradius-server/src/lib/util/rb.c:533,1
    - Dst: delete_fixup
      Src: /src/freeradius-server/src/lib/util/rb.c:535,1
    - Dst: fr_rb_tree_t*::node_free
      Src: /src/freeradius-server/src/lib/util/rb.c:537,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - tree
    - z
    - free_data
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 541
    functionName: delete_internal
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - fr_rb_tree_t*::node_free
    - delete_fixup
    - memcpy
    linkageType: ''
    returnType: void
    signature: void delete_internal(fr_rb_tree_t *tree, fr_rb_node_t *z, bool free_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:551,1
    - Dst: fr_rb_tree_t*::data_cmp
      Src: /src/freeradius-server/src/lib/util/rb.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: find_node
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_rb_tree_t*::data_cmp
    linkageType: ''
    returnType: fr_rb_node_t
    signature: fr_rb_node_t *find_node(fr_rb_tree_t const *tree, void const *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:581,1
    - Dst: find_node
      Src: /src/freeradius-server/src/lib/util/rb.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: fr_rb_find
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 65
    functionsReached:
    - unlikely
    - find_node
    linkageType: ''
    returnType: void
    signature: void *fr_rb_find(fr_rb_tree_t const *tree, void const *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: insert_node
      Src: /src/freeradius-server/src/lib/util/rb.c:602,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/rb.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - found
    - tree
    - data
    argTypes:
    - void**
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 615
    functionName: fr_rb_find_or_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 5
    functionsReached:
    - insert_node
    - UNCONST
    linkageType: ''
    returnType: int
    signature: int fr_rb_find_or_insert(void **found, fr_rb_tree_t *tree, void const
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: insert_node
      Src: /src/freeradius-server/src/lib/util/rb.c:628,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/rb.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: fr_rb_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 47
    functionsReached:
    - insert_node
    - UNCONST
    linkageType: ''
    returnType: bool
    signature: bool fr_rb_insert(fr_rb_tree_t *tree, void const *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: insert_node
      Src: /src/freeradius-server/src/lib/util/rb.c:651,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/rb.c:651,1
    - Dst: delete_internal
      Src: /src/freeradius-server/src/lib/util/rb.c:663,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/rb.c:666,1
    - Dst: fr_rb_tree_t*::data_free
      Src: /src/freeradius-server/src/lib/util/rb.c:672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - old
    - tree
    - data
    argTypes:
    - void**
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 684
    functionName: fr_rb_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 2
    functionsReached:
    - insert_node
    - fr_rb_tree_t*::data_free
    - UNCONST
    - delete_internal
    linkageType: ''
    returnType: int
    signature: int fr_rb_replace(void **old, fr_rb_tree_t *tree, void const *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:700,1
    - Dst: find_node
      Src: /src/freeradius-server/src/lib/util/rb.c:701,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:704,1
    - Dst: delete_internal
      Src: /src/freeradius-server/src/lib/util/rb.c:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 709
    functionName: fr_rb_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 17
    functionsReached:
    - unlikely
    - delete_internal
    - find_node
    linkageType: ''
    returnType: void
    signature: void *fr_rb_remove(fr_rb_tree_t *tree, void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/util/rb.c:726,1
    - Dst: delete_internal
      Src: /src/freeradius-server/src/lib/util/rb.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 730
    functionName: fr_rb_remove_by_inline_node
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 5
    functionsReached:
    - fr_rb_node_inline_in_tree
    - delete_internal
    linkageType: ''
    returnType: void
    signature: void *fr_rb_remove_by_inline_node(fr_rb_tree_t *tree, fr_rb_node_t
      *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:745,1
    - Dst: find_node
      Src: /src/freeradius-server/src/lib/util/rb.c:746,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:749,1
    - Dst: delete_internal
      Src: /src/freeradius-server/src/lib/util/rb.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tree
    - data
    argTypes:
    - fr_rb_tree_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 754
    functionName: fr_rb_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 29
    functionsReached:
    - unlikely
    - delete_internal
    - find_node
    linkageType: ''
    returnType: bool
    signature: bool fr_rb_delete(fr_rb_tree_t *tree, void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/util/rb.c:769,1
    - Dst: delete_internal
      Src: /src/freeradius-server/src/lib/util/rb.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 774
    functionName: fr_rb_delete_by_inline_node
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 3
    functionsReached:
    - fr_rb_node_inline_in_tree
    - delete_internal
    linkageType: ''
    returnType: bool
    signature: bool fr_rb_delete_by_inline_node(fr_rb_tree_t *tree, fr_rb_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - fr_rb_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 784
    functionName: fr_rb_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_rb_num_elements(fr_rb_tree_t *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tree
    argTypes:
    - fr_rb_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 798
    functionName: fr_rb_first
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_rb_first(fr_rb_tree_t *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tree
    argTypes:
    - fr_rb_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 813
    functionName: fr_rb_last
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_rb_last(fr_rb_tree_t *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tree
    - iter
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_iter_inorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 840
    functionName: fr_rb_iter_init_inorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_rb_iter_init_inorder(fr_rb_tree_t *tree, fr_rb_iter_inorder_t
      *iter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:858,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - fr_rb_tree_t *tree
    - iter
    argTypes:
    - UNUSED
    - fr_rb_iter_inorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 890
    functionName: fr_rb_iter_next_inorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 26
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_rb_iter_next_inorder(UNUSED fr_rb_tree_t *tree, fr_rb_iter_inorder_t
      *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:903,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/rb.c:904,1
    - Dst: delete_internal
      Src: /src/freeradius-server/src/lib/util/rb.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tree
    - iter
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_iter_inorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 908
    functionName: fr_rb_iter_delete_inorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 6
    functionsReached:
    - unlikely
    - delete_internal
    - fr_rb_iter_next_inorder
    linkageType: ''
    returnType: void
    signature: void fr_rb_iter_delete_inorder(fr_rb_tree_t *tree, fr_rb_iter_inorder_t
      *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tree
    - iter
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_iter_preorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 932
    functionName: fr_rb_iter_init_preorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_rb_iter_init_preorder(fr_rb_tree_t *tree, fr_rb_iter_preorder_t
      *iter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fr_rb_tree_t *tree
    - iter
    argTypes:
    - UNUSED
    - fr_rb_iter_preorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 985
    functionName: fr_rb_iter_next_preorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_rb_iter_next_preorder(UNUSED fr_rb_tree_t *tree, fr_rb_iter_preorder_t
      *iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - tree
    - iter
    argTypes:
    - fr_rb_tree_t*
    - fr_rb_iter_postorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1016
    functionName: fr_rb_iter_init_postorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_rb_iter_init_postorder(fr_rb_tree_t *tree, fr_rb_iter_postorder_t
      *iter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/rb.c:1034,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - fr_rb_tree_t *tree
    - iter
    argTypes:
    - UNUSED
    - fr_rb_iter_postorder_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1070
    functionName: fr_rb_iter_next_postorder
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_rb_iter_next_postorder(UNUSED fr_rb_tree_t *tree, fr_rb_iter_postorder_t
      *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1085
    functionName: DEF_RB_FLATTEN_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_RB_FLATTEN_FUNC(_order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _errno
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: HAVE_DEFINITION
    functionSourceFile: /src/freeradius-server/src/lib/util/syserror.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_DEFINITION(_errno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/syserror.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: _fr_logging_free
    functionSourceFile: /src/freeradius-server/src/lib/util/syserror.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_logging_free(UNUSED void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/freeradius-server/src/lib/util/syserror.c:172,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/syserror.c:175,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/util/syserror.c:176,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/syserror.c:182,1
    - Dst: strerror_r
      Src: /src/freeradius-server/src/lib/util/syserror.c:193,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/syserror.c:196,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/util/syserror.c:197,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/syserror.c:209,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/syserror.c:211,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/syserror.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - num
    - buffer
    - buff_len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 217
    functionName: _fr_syserror
    functionSourceFile: /src/freeradius-server/src/lib/util/syserror.c
    functionUses: 0
    functionsReached:
    - strerror_r
    - strerror
    - fprintf
    - strlen
    - strlcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_syserror(int num, char *buffer, size_t buff_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/syserror.c:226,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/syserror.c:228,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/syserror.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 234
    functionName: _fr_syserror_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/syserror.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_atexit_thread_local
    - talloc_array
    linkageType: ''
    returnType: char
    signature: char *_fr_syserror_buffer(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HAVE_DEFINITION
      Src: /src/freeradius-server/src/lib/util/syserror.c:253,1
    - Dst: _fr_syserror_buffer
      Src: /src/freeradius-server/src/lib/util/syserror.c:262,1
    - Dst: HAVE_DEFINITION
      Src: /src/freeradius-server/src/lib/util/syserror.c:272,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/syserror.c:273,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/syserror.c:275,1
    - Dst: _fr_syserror
      Src: /src/freeradius-server/src/lib/util/syserror.c:279,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 282
    functionName: fr_syserror
    functionSourceFile: /src/freeradius-server/src/lib/util/syserror.c
    functionUses: 219
    functionsReached:
    - _fr_syserror_buffer
    - snprintf
    - HAVE_DEFINITION
    - _fr_syserror
    linkageType: ''
    returnType: char
    signature: char *fr_syserror(int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _fr_syserror_buffer
      Src: /src/freeradius-server/src/lib/util/syserror.c:300,1
    - Dst: _fr_syserror
      Src: /src/freeradius-server/src/lib/util/syserror.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 304
    functionName: fr_syserror_simple
    functionSourceFile: /src/freeradius-server/src/lib/util/syserror.c
    functionUses: 0
    functionsReached:
    - _fr_syserror
    - _fr_syserror_buffer
    linkageType: ''
    returnType: char
    signature: char *fr_syserror_simple(int num)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/size.c:50,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/size.c:60,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/size.c:62,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/size.c:68,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/size.c:68,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/size.c:69,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/size.c:71,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/util/size.c:71,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/util/size.c:78,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/size.c:80,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/size.c:81,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/size.c:82,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/util/size.c:91,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/util/size.c:100,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/size.c:101,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/size.c:101,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/size.c:103,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/size.c:103,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/size.c:114,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/size.c:115,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/size.c:118,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/size.c:120,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/size.c:121,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/size.c:122,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/size.c:128,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/size.c:137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - size_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 138
    functionName: fr_size_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/size.c
    functionUses: 3
    functionsReached:
    - fr_sbuff_extend
    - tolower
    - fr_sbuff_set_to_start
    - fr_sbuff_out
    - fr_sbuff_next_if_char
    - fr_multiply
    - fr_sbuff_uint8
    - fr_strerror_printf
    - fr_strerror_const
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - fr_sbuff_next
    - NUM_ELEMENTS
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_size_from_str(size_t *out, fr_sbuff_t *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/size.c:157,1
    - Dst: fr_low_bit_pos
      Src: /src/freeradius-server/src/lib/util/size.c:181,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/size.c:209,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/size.c:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 212
    functionName: fr_size_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/size.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF
    - fr_low_bit_pos
    - fr_sbuff_set
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_size_to_str(fr_sbuff_t *out, size_t in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:127,1
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:127,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: fr_edit_list_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_dlist_empty
    linkageType: ''
    returnType: bool
    signature: bool fr_edit_list_empty(fr_edit_list_t *el)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/edit.c:144,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:148,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:149,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:156,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/edit.c:156,1
    - Dst: fr_type_is_fixed_size
      Src: /src/freeradius-server/src/lib/util/edit.c:157,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/edit.c:157,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/edit.c:158,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/edit.c:158,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:162,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:162,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/edit.c:164,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/edit.c:165,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:169,1
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/edit.c:173,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:174,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:184,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - e
    argTypes:
    - fr_edit_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 132
    functionDepth: 7
    functionLinenumber: 132
    functionLinenumberEnd: 193
    functionName: edit_undo
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_delete
    - fr_type_is_leaf
    - fr_pair_insert_after
    - fr_type_is_structural
    - fr_value_box_clear
    - fr_edit_list_abort
    - fr_type_is_fixed_size
    - fr_assert
    - PAIR_VERIFY
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int edit_undo(fr_edit_t *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/edit.c:213,1
    - Dst: fr_dlist_pop_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:221,1
    - Dst: edit_undo
      Src: /src/freeradius-server/src/lib/util/edit.c:222,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:234,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:235,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 202
    functionDepth: 8
    functionLinenumber: 202
    functionLinenumberEnd: 239
    functionName: fr_edit_list_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 5
    functionsReached:
    - talloc_free
    - fr_dlist_remove
    - edit_undo
    - fr_dlist_pop_tail
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void fr_edit_list_abort(fr_edit_list_t *el)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:260,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:262,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/edit.c:272,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/util/edit.c:280,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:281,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/util/edit.c:293,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:297,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:304,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/edit.c:313,1
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/edit.c:322,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:327,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:345,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:345,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:347,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/edit.c:358,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/edit.c:360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:361,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:395,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:396,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/edit.c:396,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:407,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:424,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:425,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:425,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/edit.c:427,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:440,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:455,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:457,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/edit.c:458,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:460,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:461,1
    - Dst: edit_undo
      Src: /src/freeradius-server/src/lib/util/edit.c:474,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/edit.c:488,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:489,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:493,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/edit.c:501,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/edit.c:506,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:512,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:516,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:517,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:519,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/edit.c:519,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/edit.c:520,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/edit.c:520,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:524,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:525,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:527,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:527,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/edit.c:528,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/edit.c:529,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:533,1
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/edit.c:540,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/lib/util/edit.c:548,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:549,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:554,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:558,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:559,1
    - Dst: fr_pair_list_prev
      Src: /src/freeradius-server/src/lib/util/edit.c:562,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:564,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:568,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:573,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/edit.c:577,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:581,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 144
    argCount: 5
    argNames:
    - el
    - op
    - vp
    - list
    - ref
    argTypes:
    - fr_edit_list_t*
    - fr_edit_op_t
    - fr_pair_t*
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 255
    functionDepth: 8
    functionLinenumber: 255
    functionLinenumberEnd: 585
    functionName: edit_record
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_pair_list_free
    - fr_pair_list_empty
    - fr_dlist_head
    - unlikely
    - fr_pair_append
    - fr_value_box_clear
    - edit_undo
    - fr_pair_list_init
    - fr_dlist_insert_tail
    - fr_assert
    - fr_pair_list_append
    - fr_value_box_init_null
    - fr_dlist_foreach
    - fr_pair_immutable
    - fr_pair_insert_after
    - talloc_free
    - fr_dlist_next
    - fr_dlist_remove
    - fr_pair_remove
    - talloc_zero
    - fr_pair_list_prev
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int edit_record(fr_edit_list_t *el, fr_edit_op_t op, fr_pair_t *vp,
      fr_pair_list_t *list, fr_pair_t *ref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/edit.c:597,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - el
    - list
    - pos
    - vp
    argTypes:
    - fr_edit_list_t*
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 9
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: fr_edit_list_insert_pair_after
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - edit_record
    - fr_pair_insert_after
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_insert_pair_after(fr_edit_list_t *el, fr_pair_list_t
      *list, fr_pair_t *pos, fr_pair_t *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:611,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - el
    - list
    - vp
    argTypes:
    - fr_edit_list_t*
    - fr_pair_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 608
    functionDepth: 9
    functionLinenumber: 608
    functionLinenumberEnd: 616
    functionName: fr_edit_list_pair_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 4
    functionsReached:
    - fr_pair_delete
    - edit_record
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_pair_delete(fr_edit_list_t *el, fr_pair_list_t *list,
      fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/edit.c:625,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - el
    - list
    - da
    argTypes:
    - fr_edit_list_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 622
    functionDepth: 9
    functionLinenumber: 622
    functionLinenumberEnd: 639
    functionName: fr_edit_list_pair_delete_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete_by_da
    - edit_record
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_pair_delete_by_da(fr_edit_list_t *el, fr_pair_list_t
      *list, fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 9
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 9
    functionsReached:
    - edit_record
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/edit.c:650,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - el
    - vp
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 9
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: fr_edit_list_save_pair_value
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - edit_record
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_save_pair_value(fr_edit_list_t *el, fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/edit.c:661,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:663,1
    - Dst: fr_type_is_fixed_size
      Src: /src/freeradius-server/src/lib/util/edit.c:665,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/edit.c:665,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/util/edit.c:666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - el
    - vp
    - box
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 9
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: fr_edit_list_replace_pair_value
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_value_box_copy_shallow
    - fr_type_is_leaf
    - edit_record
    - fr_value_box_clear
    - fr_type_is_fixed_size
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_replace_pair_value(fr_edit_list_t *el, fr_pair_t *vp,
      fr_value_box_t *box)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/edit.c:682,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:683,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:693,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:703,1
    - Dst: fr_dlist_pop_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:704,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:706,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:707,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - el
    - list
    - to_replace
    - vp
    argTypes:
    - fr_edit_list_t*
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 677
    functionDepth: 9
    functionLinenumber: 677
    functionLinenumberEnd: 713
    functionName: fr_edit_list_replace_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete
    - edit_record
    - fr_pair_insert_after
    - talloc_free
    - fr_assert
    - fr_dlist_pop_tail
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_replace_pair(fr_edit_list_t *el, fr_pair_list_t *list,
      fr_pair_t *to_replace, fr_pair_t *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:725,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/edit.c:728,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:735,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - el
    - vp
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 723
    functionDepth: 9
    functionLinenumber: 723
    functionLinenumberEnd: 743
    functionName: fr_edit_list_free_pair_children
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 2
    functionsReached:
    - fr_type_is_structural
    - fr_pair_list_empty
    - edit_record
    - fr_pair_list_free
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_free_pair_children(fr_edit_list_t *el, fr_pair_t *vp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:754,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/edit.c:756,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/edit.c:758,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:761,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:768,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:769,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/edit.c:773,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:777,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/edit.c:777,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/edit.c:778,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:782,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/edit.c:787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 750
    functionDepth: 3
    functionLinenumber: 750
    functionLinenumberEnd: 790
    functionName: _edit_list_destructor
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_type_is_leaf
    - talloc_free
    - fr_dlist_next
    - fr_value_box_clear
    - fr_assert
    - fr_pair_list_free
    linkageType: ''
    returnType: int
    signature: int _edit_list_destructor(fr_edit_list_t *el)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/util/edit.c:814,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/edit.c:817,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/edit.c:818,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/edit.c:820,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/edit.c:822,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/edit.c:828,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:830,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - hint
    - parent
    argTypes:
    - TALLOC_CTX*
    - int
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 845
    functionName: fr_edit_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 3
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - fr_dlist_init
    - talloc_zero
    - fr_dlist_insert_tail
    - fr_pair_list_init
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: fr_edit_list_t
    signature: fr_edit_list_t *fr_edit_list_alloc(TALLOC_CTX *ctx, int hint, fr_edit_list_t
      *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/edit.c:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_edit_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 858
    functionName: fr_edit_list_commit
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 2
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_edit_list_commit(fr_edit_list_t *el)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:911,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:912,1
    - Dst: fr_pair_insert_after
      Src: /src/freeradius-server/src/lib/util/edit.c:913,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:925,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/edit.c:926,1
    - Dst: edit_record
      Src: /src/freeradius-server/src/lib/util/edit.c:928,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/util/edit.c:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - el
    - list
    - pos
    - to_insert
    argTypes:
    - fr_edit_list_t*
    - fr_pair_list_t*
    - fr_pair_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 900
    functionDepth: 9
    functionLinenumber: 900
    functionLinenumberEnd: 937
    functionName: fr_edit_list_insert_list_after
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - edit_record
    - fr_pair_insert_after
    - fr_pair_remove
    - fr_pair_list_head
    - fr_pair_prepend
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_insert_list_after(fr_edit_list_t *el, fr_pair_list_t
      *list, fr_pair_t *pos, fr_pair_list_t *to_insert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:955,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/edit.c:960,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/edit.c:965,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/edit.c:970,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - el
    - list
    - to_remove
    argTypes:
    - fr_edit_list_t*
    - fr_pair_list_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 943
    functionDepth: 10
    functionLinenumber: 943
    functionLinenumberEnd: 980
    functionName: fr_edit_list_delete_list
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 0
    functionsReached:
    - fr_type_is_structural
    - fr_edit_list_pair_delete
    - fr_pair_find_by_da
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_delete_list(fr_edit_list_t *el, fr_pair_list_t *list,
      fr_pair_list_t *to_remove)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:955,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/edit.c:960,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/edit.c:965,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/edit.c:970,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 949
    functionDepth: 10
    functionLinenumber: 949
    functionLinenumberEnd: 977
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 9
    functionsReached:
    - fr_type_is_structural
    - fr_edit_list_pair_delete
    - fr_pair_find_by_da
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(to_remove, vp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/edit.c:997,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/edit.c:1001,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/edit.c:1003,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/edit.c:1008,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/edit.c:1015,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/edit.c:1017,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - el
    - vp
    - op
    - in
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 988
    functionDepth: 10
    functionLinenumber: 988
    functionLinenumberEnd: 1018
    functionName: fr_edit_list_apply_pair_assignment
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - fr_value_box_clear_value
    - fr_edit_list_save_pair_value
    - fr_value_calc_binary_op
    - fr_value_calc_assignment_op
    - fr_value_box_cast
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_apply_pair_assignment(fr_edit_list_t *el, fr_pair_t
      *vp, fr_token_t op, fr_value_box_t const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1029
    functionName: COPY
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(_x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1053,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1057,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1058,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:1060,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:1061,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1063,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1064,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1065,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1066,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1080,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:1082,1
    - Dst: fr_pair_cmp_by_parent_num
      Src: /src/freeradius-server/src/lib/util/edit.c:1093,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1112,1
    - Dst: fr_edit_list_insert_pair_before
      Src: /src/freeradius-server/src/lib/util/edit.c:1114,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1127,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:1134,1
    - Dst: list_union
      Src: /src/freeradius-server/src/lib/util/edit.c:1135,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/edit.c:1155,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1157,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/edit.c:1159,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 4
    argNames:
    - el
    - dst
    - src
    - copy
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1037
    functionDepth: 10
    functionLinenumber: 1037
    functionLinenumberEnd: 1170
    functionName: list_union
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - COPY
    - fr_pair_list_next
    - fr_edit_list_insert_pair_before
    - fr_type_is_structural
    - fr_edit_list_insert_pair_after
    - fr_strerror_printf
    - fr_edit_list_insert_pair_tail
    - fr_pair_list_sort
    - fr_pair_cmp_by_parent_num
    - PAIR_LIST_VERIFY
    - fr_assert
    - fr_pair_list_head
    - PAIR_VERIFY
    - list_union
    - fr_value_box_cmp
    linkageType: ''
    returnType: int
    signature: int list_union(fr_edit_list_t *el, fr_pair_t *dst, fr_pair_list_t *src,
      bool copy)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1182,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1183,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:1185,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:1186,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1188,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1189,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1190,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1191,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1205,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:1207,1
    - Dst: fr_pair_cmp_by_parent_num
      Src: /src/freeradius-server/src/lib/util/edit.c:1218,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1237,1
    - Dst: fr_edit_list_insert_pair_before
      Src: /src/freeradius-server/src/lib/util/edit.c:1239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1252,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:1257,1
    - Dst: list_merge_lhs
      Src: /src/freeradius-server/src/lib/util/edit.c:1258,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - el
    - dst
    - src
    - copy
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1176
    functionDepth: 3
    functionLinenumber: 1176
    functionLinenumberEnd: 1274
    functionName: list_merge_lhs
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - COPY
    - fr_pair_list_next
    - fr_edit_list_insert_pair_before
    - fr_type_is_structural
    - fr_edit_list_insert_pair_tail
    - fr_pair_list_sort
    - fr_pair_cmp_by_parent_num
    - PAIR_LIST_VERIFY
    - fr_assert
    - fr_pair_list_head
    - PAIR_VERIFY
    - list_merge_lhs
    linkageType: ''
    returnType: int
    signature: int list_merge_lhs(fr_edit_list_t *el, fr_pair_t *dst, fr_pair_list_t
      *src, bool copy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1286,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1287,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:1289,1
    - Dst: PAIR_LIST_VERIFY
      Src: /src/freeradius-server/src/lib/util/edit.c:1290,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1292,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1293,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1294,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1295,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1309,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:1311,1
    - Dst: fr_pair_cmp_by_parent_num
      Src: /src/freeradius-server/src/lib/util/edit.c:1322,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1341,1
    - Dst: fr_edit_list_insert_pair_before
      Src: /src/freeradius-server/src/lib/util/edit.c:1343,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1351,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1356,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:1361,1
    - Dst: list_merge_rhs
      Src: /src/freeradius-server/src/lib/util/edit.c:1362,1
    - Dst: COPY
      Src: /src/freeradius-server/src/lib/util/edit.c:1371,1
    - Dst: fr_edit_list_replace_pair
      Src: /src/freeradius-server/src/lib/util/edit.c:1372,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - el
    - dst
    - src
    - copy
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1280
    functionDepth: 10
    functionLinenumber: 1280
    functionLinenumberEnd: 1382
    functionName: list_merge_rhs
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - COPY
    - fr_pair_list_next
    - fr_edit_list_insert_pair_before
    - fr_type_is_structural
    - fr_edit_list_insert_pair_tail
    - fr_pair_list_sort
    - fr_pair_cmp_by_parent_num
    - PAIR_LIST_VERIFY
    - fr_assert
    - fr_pair_list_head
    - PAIR_VERIFY
    - fr_edit_list_replace_pair
    - list_merge_rhs
    linkageType: ''
    returnType: int
    signature: int list_merge_rhs(fr_edit_list_t *el, fr_pair_t *dst, fr_pair_list_t
      *src, bool copy)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1396,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1400,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/edit.c:1401,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1403,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1404,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1405,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/edit.c:1406,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:1423,1
    - Dst: fr_pair_cmp_by_parent_num
      Src: /src/freeradius-server/src/lib/util/edit.c:1431,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/edit.c:1450,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:1457,1
    - Dst: list_intersection
      Src: /src/freeradius-server/src/lib/util/edit.c:1458,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:1463,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/edit.c:1479,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:1481,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 3
    argNames:
    - el
    - dst
    - src
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1387
    functionDepth: 10
    functionLinenumber: 1387
    functionLinenumberEnd: 1490
    functionName: list_intersection
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_pair_list_empty
    - fr_pair_list_next
    - fr_type_is_structural
    - list_intersection
    - fr_strerror_printf
    - fr_pair_list_sort
    - fr_pair_cmp_by_parent_num
    - fr_assert
    - fr_pair_list_head
    - fr_value_box_cmp
    linkageType: ''
    returnType: int
    signature: int list_intersection(fr_edit_list_t *el, fr_pair_t *dst, fr_pair_list_t
      *src)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/edit.c:1503,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1504,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/edit.c:1505,1
    - Dst: fr_edit_list_free_pair_children
      Src: /src/freeradius-server/src/lib/util/edit.c:1528,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1533,1
    - Dst: fr_edit_list_insert_list_tail
      Src: /src/freeradius-server/src/lib/util/edit.c:1538,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1547,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/edit.c:1548,1
    - Dst: fr_edit_list_delete_list
      Src: /src/freeradius-server/src/lib/util/edit.c:1554,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1558,1
    - Dst: fr_edit_list_insert_list_head
      Src: /src/freeradius-server/src/lib/util/edit.c:1563,1
    - Dst: fr_edit_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:1568,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1570,1
    - Dst: list_intersection
      Src: /src/freeradius-server/src/lib/util/edit.c:1574,1
    - Dst: fr_edit_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:1579,1
    - Dst: list_union
      Src: /src/freeradius-server/src/lib/util/edit.c:1581,1
    - Dst: fr_edit_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:1586,1
    - Dst: list_merge_lhs
      Src: /src/freeradius-server/src/lib/util/edit.c:1588,1
    - Dst: fr_edit_list_empty
      Src: /src/freeradius-server/src/lib/util/edit.c:1593,1
    - Dst: list_merge_rhs
      Src: /src/freeradius-server/src/lib/util/edit.c:1595,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/edit.c:1601,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/edit.c:1603,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 5
    argNames:
    - el
    - dst
    - op
    - src
    - copy
    argTypes:
    - fr_edit_list_t*
    - fr_pair_t*
    - fr_token_t
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1499
    functionDepth: 11
    functionLinenumber: 1499
    functionLinenumberEnd: 1605
    functionName: fr_edit_list_apply_list_assignment
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.c
    functionUses: 1
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_insert_list_head
    - fr_type_is_structural
    - list_intersection
    - fr_strerror_printf
    - fr_edit_list_delete_list
    - fr_edit_list_empty
    - list_merge_lhs
    - fr_edit_list_insert_list_tail
    - fr_pair_list_head
    - list_union
    - fr_type_to_str
    - fr_edit_list_free_pair_children
    - list_merge_rhs
    linkageType: ''
    returnType: int
    signature: int fr_edit_list_apply_list_assignment(fr_edit_list_t *el, fr_pair_t
      *dst, fr_token_t op, fr_pair_list_t *src, bool copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _prefix
    - ','
    - _op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC(_prefix, _op)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/htrie.c:104,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/htrie.c:105,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/htrie.c:106,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/htrie.c:114,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/htrie.c:118,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/htrie.c:119,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/htrie.c:121,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/htrie.c:129,1
    - Dst: fr_rb_alloc
      Src: /src/freeradius-server/src/lib/util/htrie.c:133,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/htrie.c:134,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/htrie.c:140,1
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/htrie.c:144,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/htrie.c:145,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/htrie.c:150,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/htrie.c:154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 6
    argNames:
    - ctx
    - type
    - hash_data
    - cmp_data
    - get_key
    - free_data
    argTypes:
    - TALLOC_CTX*
    - fr_htrie_type_t
    - fr_hash_t
    - fr_cmp_t
    - fr_trie_key_t
    - fr_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 160
    functionName: fr_htrie_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.c
    functionUses: 5
    functionsReached:
    - unlikely
    - talloc_free
    - fr_hash_table_alloc
    - fr_rb_alloc
    - talloc_zero
    - fr_assert_msg
    - fr_strerror_const
    - fr_trie_alloc
    linkageType: ''
    returnType: fr_htrie_t
    signature: "fr_htrie_t *fr_htrie_alloc(TALLOC_CTX *ctx,\n\t\t\t   fr_htrie_type_t
      type,\n\t\t\t   fr_hash_t hash_data,\n\t\t\t   fr_cmp_t cmp_data,\n\t\t\t   fr_trie_key_t
      get_key,\n\t\t\t   fr_free_t free_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/retry.c:43,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/retry.c:48,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/util/retry.c:59,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/retry.c:61,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/retry.c:61,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/retry.c:63,1
    - Dst: fr_time_delta_mul
      Src: /src/freeradius-server/src/lib/util/retry.c:63,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/retry.c:82,1
    - Dst: uint128_mul64
      Src: /src/freeradius-server/src/lib/util/retry.c:87,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/retry.c:87,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/retry.c:88,1
    - Dst: uint128_to_64
      Src: /src/freeradius-server/src/lib/util/retry.c:88,1
    - Dst: uint128_rshift
      Src: /src/freeradius-server/src/lib/util/retry.c:88,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/retry.c:91,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/util/retry.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - r
    - now
    - config
    argTypes:
    - fr_retry_t*
    - fr_time_t
    - fr_retry_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 99
    functionName: fr_retry_init
    functionSourceFile: /src/freeradius-server/src/lib/util/retry.c
    functionUses: 8
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_cmp
    - fr_time_delta_unwrap
    - uint128_rshift
    - fr_time_add
    - uint128_to_64
    - fr_rand
    - uint128_mul64
    - fr_time_delta_mul
    - memset
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void fr_retry_init(fr_retry_t *r, fr_time_t now, fr_retry_config_t
      const *config)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/util/retry.c:147,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/retry.c:163,1
    - Dst: uint128_mul64
      Src: /src/freeradius-server/src/lib/util/retry.c:168,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/retry.c:168,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/retry.c:169,1
    - Dst: uint128_to_64
      Src: /src/freeradius-server/src/lib/util/retry.c:169,1
    - Dst: uint128_rshift
      Src: /src/freeradius-server/src/lib/util/retry.c:169,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/util/retry.c:177,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/util/retry.c:177,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/retry.c:178,1
    - Dst: uint128_mul64
      Src: /src/freeradius-server/src/lib/util/retry.c:183,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/retry.c:183,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/retry.c:184,1
    - Dst: uint128_to_64
      Src: /src/freeradius-server/src/lib/util/retry.c:184,1
    - Dst: uint128_rshift
      Src: /src/freeradius-server/src/lib/util/retry.c:184,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/retry.c:197,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/util/retry.c:208,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/retry.c:208,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/retry.c:208,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/retry.c:208,1
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/util/retry.c:213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - r
    - now
    argTypes:
    - fr_retry_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 218
    functionName: fr_retry_next
    functionSourceFile: /src/freeradius-server/src/lib/util/retry.c
    functionUses: 5
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time_cmp
    - uint128_rshift
    - fr_time_delta_gt
    - fr_time_add
    - uint128_to_64
    - fr_rand
    - fr_time_delta_ispos
    - uint128_mul64
    - fr_time_lt
    linkageType: ''
    returnType: fr_retry_state_t
    signature: fr_retry_state_t fr_retry_next(fr_retry_t *r, fr_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:64,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:65,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - uq
    argTypes:
    - fr_udp_queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: _udp_queue_free
    functionSourceFile: /src/freeradius-server/src/lib/util/udp_queue.c
    functionUses: 0
    functionsReached:
    - fr_dlist_foreach
    - close
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _udp_queue_free(fr_udp_queue_t *uq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:78,1
    - Dst: fr_udp_queue_t*::resume
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_udp_queue_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: _udp_queue_entry_free
    functionSourceFile: /src/freeradius-server/src/lib/util/udp_queue.c
    functionUses: 0
    functionsReached:
    - fr_udp_queue_t*::resume
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int _udp_queue_entry_free(fr_udp_queue_entry_t *entry)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:106,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:117,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:118,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:118,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:127,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:141,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:155,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:159,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:162,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:174,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:176,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - config
    - el
    - resume
    argTypes:
    - TALLOC_CTX*
    - fr_udp_queue_config_t*
    - fr_event_list_t*
    - fr_udp_queue_resume_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 179
    functionName: fr_udp_queue_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/udp_queue.c
    functionUses: 1
    functionsReached:
    - talloc_set_destructor
    - fr_syserror
    - fr_strerror_printf
    - fr_socket_bind
    - fr_dlist_init
    - fr_socket_server_udp
    - talloc_zero
    - close
    - setsockopt
    linkageType: ''
    returnType: fr_udp_queue_t
    signature: "fr_udp_queue_t *fr_udp_queue_alloc(TALLOC_CTX *ctx, fr_udp_queue_config_t
      const *config, fr_event_list_t *el,\n\t\t\t\t   fr_udp_queue_resume_t resume)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:188,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:189,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:191,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:199,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:202,1
    - Dst: fr_udp_queue_t*::resume
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:203,1
    - Dst: sendto
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:208,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:212,1
    - Dst: fr_udp_queue_t*::resume
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:213,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:234,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:235,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 238
    functionName: udp_queue_writable
    functionSourceFile: /src/freeradius-server/src/lib/util/udp_queue.c
    functionUses: 0
    functionsReached:
    - fr_dlist_foreach
    - sendto
    - talloc_free
    - fr_time
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_time_gteq
    - fr_udp_queue_t*::resume
    - fr_event_fd_delete
    linkageType: ''
    returnType: void
    signature: "void udp_queue_writable(UNUSED fr_event_list_t *el, UNUSED int fd,\n\t\t\t
      \      UNUSED int flags, void *uctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:267,1
    - Dst: sendto
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:276,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:294,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:306,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:310,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:313,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:314,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:320,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:320,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:325,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/udp_queue.c:326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 7
    argNames:
    - ctx
    - uq
    - packet
    - packet_len
    - ipaddr
    - port
    - rctx
    argTypes:
    - TALLOC_CTX*
    - fr_udp_queue_t*
    - uint8_t*
    - size_t
    - fr_ipaddr_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 333
    functionName: fr_udp_queue_write
    functionSourceFile: /src/freeradius-server/src/lib/util/udp_queue.c
    functionUses: 1
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - sendto
    - talloc_set_destructor
    - fr_time
    - memcpy
    - fr_dlist_num_elements
    - fr_event_fd_insert
    - talloc_set_type
    - fr_time_add
    - talloc_zero_array
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: "int fr_udp_queue_write(TALLOC_CTX *ctx, fr_udp_queue_t *uq, uint8_t
      const *packet, size_t packet_len,\n\t\t       fr_ipaddr_t const *ipaddr, int
      port, void *rctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: MEM
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 695
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: MEM
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 695
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: FR_FAULT_LOG
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_FAULT_LOG(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _data
    - ','
    - _data_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FR_FAULT_LOG_HEX
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_FAULT_LOG_HEX(_data, _data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: fr_cond_assert
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 159
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_cond_assert(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: fr_cond_assert_msg
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_cond_assert_msg(_x, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: fr_fatal_assert
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_fatal_assert(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: fr_fatal_assert_msg
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_fatal_assert_msg(_x, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: fr_fatal_assert_fail
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_fatal_assert_fail(_msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: fr_assert
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 961
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: fr_assert_msg
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert_msg(_x, _msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: fr_assert_fail
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert_fail(_msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: fr_assert
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 961
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: fr_assert_msg
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert_msg(_x, _msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - _msg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: fr_assert_fail
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_assert_fail(_msg ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: fr_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_exit(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: fr_exit_now
    functionSourceFile: /src/freeradius-server/src/lib/util/debug.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_exit_now(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: itoa
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itoa(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: otoa
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: otoa(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: htoa
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htoa(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: dtoa
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dtoa(n, p, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: SWAP_INT
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_INT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: isflag
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isflag(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: ROUND
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: DEF_PREC
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_PREC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: PUT_CHAR
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_CHAR(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: PUT_PLUS
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_PLUS(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: PUT_SPACE
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_SPACE(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: PAD_RIGHT
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAD_RIGHT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: PAD_LEFT
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAD_LEFT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: STAR_ARGS
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAR_ARGS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: us
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: us(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/base16.c:117,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/base16.c:118,1
    - Dst: fr_dbuff_extend
      Src: /src/freeradius-server/src/lib/util/base16.c:120,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base16.c:121,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base16.c:123,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base16.c:123,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base16.c:123,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base16.c:124,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/base16.c:127,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/base16.c:128,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/base16.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in
    - alphabet
    argTypes:
    - fr_sbuff_t*
    - fr_dbuff_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: fr_base16_encode_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - fr_dbuff_extend
    - fr_dbuff_current
    - us
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_dbuff_advance
    - FR_SBUFF_SET_RETURN
    - FR_DBUFF
    - FR_SBUFF
    - fr_sbuff_terminate
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_base16_encode_nstd(fr_sbuff_t *out, fr_dbuff_t *in, char
      const alphabet[static SBUFF_CHAR_CLASS])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/base16.c:147,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/base16.c:148,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/base16.c:150,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base16.c:151,1
    - Dst: fr_is_base16_nstd
      Src: /src/freeradius-server/src/lib/util/base16.c:154,1
    - Dst: fr_is_base16_nstd
      Src: /src/freeradius-server/src/lib/util/base16.c:155,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base16.c:159,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/base16.c:164,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base16.c:164,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base16.c:164,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/base16.c:166,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/base16.c:171,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/base16.c:172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 5
    argNames:
    - err
    - out
    - in
    - no_trailing
    - alphabet
    argTypes:
    - fr_sbuff_parse_error_t*
    - fr_dbuff_t*
    - fr_sbuff_t*
    - bool
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 173
    functionName: fr_base16_decode_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - us
    - fr_sbuff_current
    - fr_is_base16_nstd
    - FR_SBUFF_ERROR_RETURN
    - FR_DBUFF
    - fr_sbuff_advance
    - FR_SBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_sbuff_extend_lowat
    - fr_sbuff_set
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_base16_decode_nstd(fr_sbuff_parse_error_t *err, fr_dbuff_t
      *out, fr_sbuff_t *in,\n\t\t\t\tbool no_trailing, uint8_t const alphabet[static
      SBUFF_CHAR_CLASS])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: fr_md5_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md5_ctx_reset(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: fr_md5_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md5_ctx_copy(_dst, _src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: fr_md5_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md5_ctx_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: fr_md5_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md5_ctx_free(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _in
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: fr_md5_update
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md5_update(_ctx, _in, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out
    - ','
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: fr_md5_final
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_md5_final(_out, _ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_list_foreach(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _action
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: vb_should_free
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vb_should_free(_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _action
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: vb_should_free_value
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vb_should_free_value(_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _action
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: vb_should_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vb_should_remove(_action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _type
    - ','
    - _field
    - ','
    - _val
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: _fr_box_with_len
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fr_box_with_len(_type, _field, _val, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: fr_box_strvalue
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_strvalue(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _val
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: fr_box_strvalue_len
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_strvalue_len(_val, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _val
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: fr_box_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_octets(_val, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: fr_box_strvalue_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_strvalue_buffer(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: fr_box_octets_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_octets_buffer(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _type
    - ','
    - _field
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: _fr_box
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fr_box(_type, _field, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: fr_box_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ipaddr(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: fr_box_ipv4addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ipv4addr(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: fr_box_ipv4prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ipv4prefix(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: fr_box_ipv6addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ipv6addr(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: fr_box_ipv6prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ipv6prefix(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: fr_box_ifid
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ifid(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: fr_box_ether
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_ether(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: fr_box_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_bool(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: fr_box_uint8
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_uint8(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: fr_box_uint16
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_uint16(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: fr_box_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_uint32(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: fr_box_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_uint64(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: fr_box_uint128
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_uint128(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: fr_box_int8
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_int8(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: fr_box_int16
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_int16(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: fr_box_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_int32(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: fr_box_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_int64(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: fr_box_float32
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_float32(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: fr_box_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_float64(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: fr_box_date
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_date(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: fr_box_time
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: fr_box_size
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_size(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _type
    - ','
    - _field
    - ','
    - _val
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: _fr_box_with_da
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fr_box_with_da(_type, _field, _val, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _val
    - ','
    - _res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: fr_box_time_delta_with_res
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time_delta_with_res(_val, _res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: fr_box_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time_delta(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: fr_box_time_delta_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time_delta_sec(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: fr_box_time_delta_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time_delta_msec(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: fr_box_time_delta_nsec
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time_delta_nsec(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: fr_box_time_delta_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_time_delta_usec(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 401
    functionName: fr_box
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box(_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _val
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 414
    functionName: fr_box_len
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_len( _val, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: fr_box_is_null
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_null(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: fr_box_is_string
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_string(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: fr_box_is_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_octets(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: fr_box_is_ipv4addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ipv4addr(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: fr_box_is_ipv4prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ipv4prefix(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: fr_box_is_ipv6addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ipv6addr(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: fr_box_is_ipv6prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ipv6prefix(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: fr_box_is_ifid
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ifid(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: fr_box_is_combo_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_combo_ipaddr(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: fr_box_is_combo_ipprefix
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_combo_ipprefix(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: fr_box_is_ethernet
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ethernet(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    functionName: fr_box_is_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_bool(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: fr_box_is_uint8
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_uint8(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: fr_box_is_uint16
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_uint16(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: fr_box_is_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_uint32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: fr_box_is_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_uint64(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: fr_box_is_int8
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_int8(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: fr_box_is_int16
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_int16(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: fr_box_is_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_int32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: fr_box_is_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_int64(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: fr_box_is_float32
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_float32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: fr_box_is_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_float64(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: fr_box_is_date
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_date(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: fr_box_is_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_time_delta(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: fr_box_is_size
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: fr_box_is_tlv
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_tlv(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: fr_box_is_struct
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_struct(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: fr_box_is_vsa
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_vsa(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: fr_box_is_vendor
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_vendor(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: fr_box_is_group
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_group(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: fr_box_is_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_value_box(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: fr_box_is_void
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_void(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: fr_box_is_integer_except_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_integer_except_bool(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: fr_box_is_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_integer(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: fr_box_is_numeric
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_numeric(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: fr_box_is_ip
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_ip(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: fr_box_is_fixed_size
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_fixed_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: fr_box_is_variable_size
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_variable_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: fr_box_is_value
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_value(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: fr_box_is_quoted
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_quoted(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: fr_box_is_structural_except_vsa
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_structural_except_vsa(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: fr_box_is_structural
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_structural(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: fr_box_is_non_value
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_box_is_non_value(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: FR_VALUE_BOX_INITIALISER_NULL
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_VALUE_BOX_INITIALISER_NULL(_vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _vb
    - ','
    - _type
    - ','
    - _field
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: FR_VALUE_BOX_INITIALISER
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_VALUE_BOX_INITIALISER(_vb, _type, _field, _val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.h:550,1
    - Dst: fr_value_box_list_entry_init
      Src: /src/freeradius-server/src/lib/util/value.h:557,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/lib/util/value.h:565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - fr_value_box_t *vb
    - type
    - enumv
    - tainted
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_type_t
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 597
    functionName: _fr_value_box_init
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached:
    - fr_value_box_list_entry_init
    - fr_value_box_list_init
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _fr_value_box_init(NDEBUG_LOCATION_ARGS fr_value_box_t *vb, fr_type_t
      type, fr_dict_attr_t const *enumv, bool tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _vb
    - ','
    - _type
    - ','
    - _enumv
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 611
    functionName: fr_value_box_init
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_init(_vb, _type, _enumv, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 617
    functionName: fr_value_box_init_null
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_init_null(_vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/value.h:623,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.h:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - type
    - enumv
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_type_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 630
    functionName: _fr_value_box_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc
    linkageType: ''
    returnType: fr_value_box_t
    signature: fr_value_box_t *_fr_value_box_alloc(NDEBUG_LOCATION_ARGS TALLOC_CTX
      *ctx, fr_type_t type, fr_dict_attr_t const *enumv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _enumv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 645
    functionName: fr_value_box_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 87
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_alloc(_ctx, _type, _enumv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: fr_value_box_alloc_null
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_alloc_null(_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/value.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - min
    argTypes:
    - fr_value_box_list_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: fr_value_box_list_len_min
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached:
    - fr_value_box_list_num_elements
    linkageType: ''
    returnType: bool
    signature: bool fr_value_box_list_len_min(fr_value_box_list_t const *list, unsigned
      int min)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/util/value.h:746,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.h:747,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.h:749,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/value.h:749,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/value.h:750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 744
    functionDepth: 7
    functionLinenumber: 744
    functionLinenumberEnd: 755
    functionName: fr_value_box_acopy
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 5
    functionsReached:
    - unlikely
    - talloc_free
    - fr_value_box_alloc_null
    - fr_value_box_copy
    linkageType: ''
    returnType: fr_value_box_t
    signature: fr_value_box_t *fr_value_box_acopy(TALLOC_CTX *ctx, fr_value_box_t
      const *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/value.h:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - type
    argTypes:
    - fr_value_box_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 776
    functionName: fr_value_box_raw
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 6
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_value_box_raw(fr_value_box_t const *vb, fr_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.h:803,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.h:803,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.h:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - vb
    argTypes:
    - void*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: fr_value_box_memcpy_out
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 4
    functionsReached:
    - fr_strerror_printf
    - memcpy
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_value_box_memcpy_out(void *out, fr_value_box_t const *vb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.h:837,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.h:837,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.h:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - vb
    - in
    argTypes:
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 844
    functionName: fr_value_box_memcpy_in
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - memcpy
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_value_box_memcpy_in(fr_value_box_t *vb, void const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/value.h:859,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.h:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dst
    - enumv
    - src
    - tainted
    argTypes:
    - fr_value_box_t*
    - fr_dict_attr_t*
    - fr_ethernet_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 862
    functionName: fr_value_box_ethernet_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 2
    functionsReached:
    - fr_value_box_init
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int fr_value_box_ethernet_addr(fr_value_box_t *dst, fr_dict_attr_t
      const *enumv, \\\n\t\t\t       fr_ethernet_t const *src, bool tainted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctype
    - ','
    - _field
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 872
    functionName: DEF_BOXING_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_BOXING_FUNC(_ctype, _field, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _box
    - ','
    - _var
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 922
    functionName: fr_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box(_box, _var, _tainted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _box
    - ','
    - _var
    - ','
    - _len
    - ','
    - _tainted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 938
    functionName: fr_value_box_len
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_len(_ctx, _box, _var, _len, _tainted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/value.h:950,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/value.h:951,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.h:952,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/value.h:953,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/value.h:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_ethernet_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 958
    functionName: fr_value_unbox_ethernet_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - memcpy
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_value_unbox_ethernet_addr(fr_ethernet_t *dst, fr_value_box_t
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctype
    - ','
    - _field
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 972
    functionName: DEF_UNBOXING_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_UNBOXING_FUNC(_ctype, _field, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _var
    - ','
    - _box
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1006
    functionName: fr_value_unbox_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_unbox_shallow(_var, _box)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff
    - ','
    - _value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1041
    functionName: FR_VALUE_BOX_TO_NETWORK_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_VALUE_BOX_TO_NETWORK_RETURN(_dbuff, _value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _box
    - ','
    - _safe_for
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1094
    functionName: fr_value_box_mark_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_mark_safe_for(_box, _safe_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _box
    - ','
    - _safe_for
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1101
    functionName: fr_value_box_is_safe_for
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_is_safe_for(_box, _safe_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _box
    - ','
    - _safe_for
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1102
    functionName: fr_value_box_is_safe_for_only
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_is_safe_for_only(_box, _safe_for)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - box
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1113
    functionName: fr_value_box_is_secret
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_value_box_is_secret(fr_value_box_t const *box)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/value.h:1122,1
    - Dst: fr_value_box_contains_secret
      Src: /src/freeradius-server/src/lib/util/value.h:1123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - box
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1127
    functionName: fr_value_box_contains_secret
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 3
    functionsReached:
    - fr_value_box_list_next
    - fr_value_box_contains_secret
    linkageType: ''
    returnType: bool
    signature: bool fr_value_box_contains_secret(fr_value_box_t const *box)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - box
    - secret
    argTypes:
    - fr_value_box_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1133
    functionName: fr_value_box_set_secret
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_value_box_set_secret(fr_value_box_t *box, bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/value.h:1151,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/value.h:1153,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/util/value.h:1154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - box
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1158
    functionName: fr_value_box_enum_name
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 1
    functionsReached:
    - fr_dict_enum_name_by_value
    - fr_type_is_leaf
    - da_is_bit_field
    linkageType: ''
    returnType: void
    signature: void fr_value_box_enum_name(fr_value_box_t const *box)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1262
    functionName: fr_value_box_get_cursor
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_value_box_get_cursor(_dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1363
    functionName: VALUE_BOX_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE_BOX_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1364
    functionName: VALUE_BOX_LIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE_BOX_LIST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1371
    functionName: VALUE_BOX_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE_BOX_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1372
    functionName: VALUE_BOX_LIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE_BOX_LIST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1373
    functionName: VALUE_BOX_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE_BOX_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1374
    functionName: VALUE_BOX_LIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/value.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALUE_BOX_LIST_VERIFY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: fr_skip_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_skip_whitespace(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: fr_bskip_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_bskip_whitespace(_p, _e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: fr_skip_not_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_skip_not_whitespace(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: FR_TABLE_INDEXED_ENTRY
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TABLE_INDEXED_ENTRY(_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: FR_TABLE_INDEXED_BIT_POS_ENTRY
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TABLE_INDEXED_BIT_POS_ENTRY(_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _table
    - ','
    - _idx
    - ','
    - _element_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: TABLE_IDX
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_IDX(_table, _idx, _element_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: ELEM_STR
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELEM_STR(_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: ELEM_LEN
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELEM_LEN(_offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _func
    - ','
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_def_type
    - ','
    - _our_return_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: TABLE_TYPE_NAME_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NAME_FUNC(_func, _our_table_type, _our_name, _our_def_type,
      _our_return_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _func
    - ','
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_def_type
    - ','
    - _our_out_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: TABLE_TYPE_NAME_FUNC_RPTR
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NAME_FUNC_RPTR(_func, _our_table_type, _our_name, _our_def_type,
      _our_out_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _func
    - ','
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_def_type
    - ','
    - _our_return_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: TABLE_TYPE_NAME_LEN_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NAME_LEN_FUNC(_func, _our_table_type, _our_name, _our_def_type,
      _our_return_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _func
    - ','
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_def_type
    - ','
    - _our_out_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: TABLE_TYPE_NAME_LEN_FUNC_RPTR
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NAME_LEN_FUNC_RPTR(_func, _our_table_type, _our_name, _our_def_type,
      _our_out_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _func
    - ','
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_def_type
    - ','
    - _our_return_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: TABLE_TYPE_NAME_MATCH_LEN_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NAME_MATCH_LEN_FUNC(_func, _our_table_type, _our_name, _our_def_type,
      _our_return_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _func
    - ','
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_def_type
    - ','
    - _our_out_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: TABLE_TYPE_NAME_MATCH_LEN_FUNC_RPTR
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NAME_MATCH_LEN_FUNC_RPTR(_func, _our_table_type, _our_name,
      _our_def_type, _our_out_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_value_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: TABLE_TYPE_VALUE_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_VALUE_FUNC(_our_table_type, _our_name, _our_value_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_value_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: TABLE_TYPE_VALUE_INDEX_BIT_FIELD_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_VALUE_INDEX_BIT_FIELD_FUNC(_our_table_type, _our_name, _our_value_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _our_table_type
    - ','
    - _our_name
    - ','
    - _our_value_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: TABLE_TYPE_VALUE_INDEX_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_VALUE_INDEX_FUNC(_our_table_type, _our_name, _our_value_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_IDX
      Src: /src/freeradius-server/src/lib/util/table.h:376,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/table.h:377,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - table
    - table_len
    - element_size
    - name
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 387
    functionName: table_sorted_value_by_str
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached:
    - strcasecmp
    - TABLE_IDX
    - ELEM_STR
    linkageType: ''
    returnType: void
    signature: "void *table_sorted_value_by_str(void const *table, size_t table_len,
      size_t element_size,\n\t\t\t\t\t     char const *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_IDX
      Src: /src/freeradius-server/src/lib/util/table.h:407,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/table.h:408,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - table
    - table_len
    - element_size
    - name
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 412
    functionName: table_ordered_value_by_str
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached:
    - strcasecmp
    - TABLE_IDX
    - ELEM_STR
    linkageType: ''
    returnType: void
    signature: "void *table_ordered_value_by_str(void const *table, size_t table_len,
      size_t element_size,\n\t\t\t\t\t      char const *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_IDX
      Src: /src/freeradius-server/src/lib/util/table.h:443,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/table.h:448,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:448,1
    - Dst: ELEM_LEN
      Src: /src/freeradius-server/src/lib/util/table.h:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - table
    - table_len
    - element_size
    - name
    - name_len
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 460
    functionName: table_sorted_value_by_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached:
    - ELEM_LEN
    - TABLE_IDX
    - strncasecmp
    - ELEM_STR
    linkageType: ''
    returnType: void
    signature: "void *table_sorted_value_by_substr(void const *table, size_t table_len,
      size_t element_size,\n\t\t\t\t\t\tchar const *name, ssize_t name_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_IDX
      Src: /src/freeradius-server/src/lib/util/table.h:486,1
    - Dst: ELEM_LEN
      Src: /src/freeradius-server/src/lib/util/table.h:488,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/table.h:498,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 5
    argNames:
    - table
    - table_len
    - element_size
    - name
    - name_len
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 503
    functionName: table_ordered_value_by_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached:
    - ELEM_STR
    - TABLE_IDX
    - strncasecmp
    - ELEM_LEN
    linkageType: ''
    returnType: void
    signature: "void *table_ordered_value_by_substr(void const *table, size_t table_len,
      size_t element_size,\n\t\t\t\t\t\t char const *name, ssize_t name_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/table.h:536,1
    - Dst: TABLE_IDX
      Src: /src/freeradius-server/src/lib/util/table.h:545,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:546,1
    - Dst: ELEM_LEN
      Src: /src/freeradius-server/src/lib/util/table.h:547,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/table.h:549,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - match_len
    - table
    - table_len
    - element_size
    - name
    - name_len
    argTypes:
    - size_t*
    - void*
    - size_t
    - size_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 584
    functionName: table_sorted_value_by_longest_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached:
    - TABLE_IDX
    - ELEM_STR
    - strlen
    - strncasecmp
    - ELEM_LEN
    linkageType: ''
    returnType: void
    signature: "void *table_sorted_value_by_longest_prefix(size_t *match_len,\n\t\t\t\t\t\t\tvoid
      const *table, size_t table_len, size_t element_size,\n\t\t\t\t\t\t\tchar const
      *name, ssize_t name_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/table.h:609,1
    - Dst: TABLE_IDX
      Src: /src/freeradius-server/src/lib/util/table.h:615,1
    - Dst: ELEM_LEN
      Src: /src/freeradius-server/src/lib/util/table.h:617,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/table.h:618,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/table.h:618,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:618,1
    - Dst: ELEM_STR
      Src: /src/freeradius-server/src/lib/util/table.h:624,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 6
    argNames:
    - match_len
    - table
    - table_len
    - element_size
    - name
    - name_len
    argTypes:
    - size_t*
    - void*
    - size_t
    - size_t
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 649
    functionName: table_ordered_value_by_longest_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached:
    - TABLE_IDX
    - tolower
    - ELEM_STR
    - strlen
    - ELEM_LEN
    linkageType: ''
    returnType: void
    signature: "void *table_ordered_value_by_longest_prefix(size_t *match_len,\n\t\t\t\t\t\t\t
      void const *table, size_t table_len, size_t element_size,\n\t\t\t\t\t\t\t char
      const *name, ssize_t name_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _table
    - ','
    - _str_value
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 663
    functionName: fr_table_str_by_str_value
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_table_str_by_str_value(_table, _str_value, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _table
    - ','
    - _name
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 700
    functionName: fr_table_value_by_str
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_table_value_by_str(_table, _name, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _table
    - ','
    - _name
    - ','
    - _name_len
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 740
    functionName: fr_table_value_by_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_table_value_by_substr(_table, _name, _name_len, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _match_len
    - ','
    - _table
    - ','
    - _name
    - ','
    - _name_len
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 779
    functionName: fr_table_value_by_longest_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_table_value_by_longest_prefix(_match_len, _table, _name, _name_len,
      _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _table
    - ','
    - _number
    - ','
    - _def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 819
    functionName: fr_table_str_by_value
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 130
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_table_str_by_value(_table, _number, _def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _our_table_type
    - ','
    - _our_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 827
    functionName: TABLE_TYPE_NEEDLE_LEN_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_TYPE_NEEDLE_LEN_FUNC(_our_table_type, _our_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _table
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: fr_table_max_needle_len
    functionSourceFile: /src/freeradius-server/src/lib/util/table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_table_max_needle_len(_table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CHECK_SBUFF_INIT
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SBUFF_INIT(_sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: CHECK_SBUFF_WRITEABLE
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SBUFF_WRITEABLE(_sbuff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:133,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:139,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/util/sbuff.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - o_start
    - o_end
    - i_start
    - i_end
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: safecpy
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - memmove
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t safecpy(char *o_start, char *o_end,\n\t\t\t\t\t\t     char
      const *i_start, char const *i_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: min
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t min(size_t x, size_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/sbuff.c:177,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/sbuff.c:181,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/sbuff.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sbuff
    - new_buff
    - new_len
    argTypes:
    - fr_sbuff_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: fr_sbuff_update
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_update(fr_sbuff_t *sbuff, char *new_buff, size_t new_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:208,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/sbuff.c:230,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/sbuff.c:234,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/sbuff.c:250,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/util/sbuff.c:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - sbuff
    - shift
    - move_end
    argTypes:
    - fr_sbuff_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 266
    functionName: fr_sbuff_shift
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 3
    functionsReached:
    - memmove
    - CHECK_SBUFF_INIT
    - min
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_shift(fr_sbuff_t *sbuff, size_t shift, bool move_end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:277,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/sbuff.c:286,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:304,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/sbuff.c:304,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/util/sbuff.c:312,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:318,1
    - Dst: fread
      Src: /src/freeradius-server/src/lib/util/sbuff.c:322,1
    - Dst: feof
      Src: /src/freeradius-server/src/lib/util/sbuff.c:330,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:339,1
    - Dst: ferror
      Src: /src/freeradius-server/src/lib/util/sbuff.c:339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - status
    - sbuff
    - extension
    argTypes:
    - fr_sbuff_extend_status_t*
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 348
    functionName: fr_sbuff_extend_file
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_shift
    - ferror
    - fr_strerror_printf
    - fr_sbuff_current
    - CHECK_SBUFF_INIT
    - fread
    - fr_sbuff_buff
    - feof
    - fr_strerror_const
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_extend_file(fr_sbuff_extend_status_t *status, fr_sbuff_t
      *sbuff, size_t extension)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: fr_sbuff_eof_file
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_eof_file(fr_sbuff_t *sbuff)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:375,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/sbuff.c:377,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:402,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/sbuff.c:411,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:412,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:413,1
    - Dst: fr_sbuff_update
      Src: /src/freeradius-server/src/lib/util/sbuff.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - status
    - sbuff
    - extension
    argTypes:
    - fr_sbuff_extend_status_t*
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 421
    functionName: fr_sbuff_extend_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_realloc
    - fr_strerror_printf
    - CHECK_SBUFF_INIT
    - talloc_array_length
    - fr_sbuff_update
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_extend_talloc(fr_sbuff_extend_status_t *status, fr_sbuff_t
      *sbuff, size_t extension)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:439,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/sbuff.c:441,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/sbuff.c:450,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:451,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:452,1
    - Dst: fr_sbuff_update
      Src: /src/freeradius-server/src/lib/util/sbuff.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - sbuff
    - len
    argTypes:
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 459
    functionName: fr_sbuff_trim_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 10
    functionsReached:
    - unlikely
    - talloc_realloc
    - fr_strerror_printf
    - CHECK_SBUFF_INIT
    - talloc_array_length
    - fr_sbuff_update
    linkageType: ''
    returnType: int
    signature: int fr_sbuff_trim_talloc(fr_sbuff_t *sbuff, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:472,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/sbuff.c:474,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/sbuff.c:477,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/sbuff.c:480,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:482,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/sbuff.c:483,1
    - Dst: fr_sbuff_update
      Src: /src/freeradius-server/src/lib/util/sbuff.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - sbuff
    argTypes:
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 491
    functionName: fr_sbuff_reset_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 3
    functionsReached:
    - fr_sbuff_set_to_start
    - fr_sbuff_used
    - fr_strerror_printf
    - talloc_realloc
    - CHECK_SBUFF_INIT
    - talloc_array_length
    - fr_sbuff_update
    linkageType: ''
    returnType: int
    signature: int fr_sbuff_reset_talloc(fr_sbuff_t *sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: FILL_OR_GOTO_DONE
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILL_OR_GOTO_DONE(_out, _in, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sbuff
    - ','
    - _max
    - ','
    - _used
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 510
    functionName: CONSTRAINED_END
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONSTRAINED_END(_sbuff, _max, _used)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sbuff.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - needle_len
    - idx
    - term
    argTypes:
    - size_t*
    - uint8_t[]
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 537
    functionName: fr_sbuff_terminal_idx_init
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void fr_sbuff_terminal_idx_init(size_t *needle_len,\n\t\t\t\t\t\t\t\t
      \    uint8_t idx[static SBUFF_CHAR_CLASS],\n\t\t\t\t\t\t\t\t     fr_sbuff_term_t
      const *term)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_is_extendable
      Src: /src/freeradius-server/src/lib/util/sbuff.c:586,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/sbuff.c:600,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - in
    - p
    - idx
    - term
    - needle_len
    argTypes:
    - fr_sbuff_t*
    - char*
    - uint8_t[]
    - fr_sbuff_term_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 624
    functionName: fr_sbuff_terminal_search
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_extendable
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool fr_sbuff_terminal_search(fr_sbuff_t *in, char const *p,\n\t\t\t\t\t
      \   uint8_t idx[static SBUFF_CHAR_CLASS],\n\t\t\t\t\t    fr_sbuff_term_t const
      *term, UNUSED size_t needle_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCMP_FIELDS
      Src: /src/freeradius-server/src/lib/util/sbuff.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_sbuff_term_elem_t*
    - fr_sbuff_term_elem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: terminal_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - MEMCMP_FIELDS
    linkageType: ''
    returnType: int8_t
    signature: int8_t terminal_cmp(fr_sbuff_term_elem_t const *a, fr_sbuff_term_elem_t
      const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/sbuff.c:642,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/sbuff.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - elem
    - len
    argTypes:
    - fr_sbuff_term_elem_t*[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 645
    functionName: fr_sbuff_terminal_debug_tmp
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_terminal_debug_tmp(fr_sbuff_term_elem_t const *elem[],
      size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/sbuff.c:667,1
    - Dst: terminal_cmp
      Src: /src/freeradius-server/src/lib/util/sbuff.c:667,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/sbuff.c:668,1
    - Dst: terminal_cmp
      Src: /src/freeradius-server/src/lib/util/sbuff.c:668,1
    - Dst: terminal_cmp
      Src: /src/freeradius-server/src/lib/util/sbuff.c:682,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/sbuff.c:694,1
    - Dst: talloc_pooled_object
      Src: /src/freeradius-server/src/lib/util/sbuff.c:703,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:704,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/sbuff.c:706,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:707,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sbuff.c:708,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/sbuff.c:716,1
    - Dst: terminal_cmp
      Src: /src/freeradius-server/src/lib/util/sbuff.c:716,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - a
    - b
    argTypes:
    - TALLOC_CTX*
    - fr_sbuff_term_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 720
    functionName: fr_sbuff_terminals_amerge
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 3
    functionsReached:
    - unlikely
    - terminal_cmp
    - talloc_array
    - talloc_free
    - fr_assert
    - talloc_pooled_object
    linkageType: ''
    returnType: fr_sbuff_term_t
    signature: fr_sbuff_term_t *fr_sbuff_terminals_amerge(TALLOC_CTX *ctx, fr_sbuff_term_t
      const *a, fr_sbuff_term_t const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:735,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:738,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:740,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:743,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:745,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/sbuff.c:747,1
    - Dst: FILL_OR_GOTO_DONE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:750,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 756
    functionName: fr_sbuff_out_bstrncpy
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 3
    functionsReached:
    - fr_sbuff_extend
    - FR_SBUFF_BIND_CURRENT
    - CHECK_SBUFF_INIT
    - fr_sbuff_remaining
    - FILL_OR_GOTO_DONE
    - fr_sbuff_used_total
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_out_bstrncpy(fr_sbuff_t *out, fr_sbuff_t *in, size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:773,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:777,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:779,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:785,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:786,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:787,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/sbuff.c:791,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:794,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:796,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:801,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/sbuff.c:802,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:805,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:808,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:809,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:811,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:813,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 814
    functionName: fr_sbuff_out_bstrncpy_exact
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    - fr_sbuff_marker
    - fr_sbuff_in_bstrncpy
    - CHECK_SBUFF_INIT
    - fr_sbuff_marker_release
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_remaining
    - fr_sbuff_advance
    - FR_SBUFF
    - fr_sbuff_set
    - fr_sbuff_used_total
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_sbuff_out_bstrncpy_exact(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:834,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:836,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:838,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:842,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:844,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:845,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:845,1
    - Dst: FILL_OR_GOTO_DONE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:849,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - out
    - in
    - len
    - allowed
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - bool[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 857
    functionName: fr_sbuff_out_bstrncpy_allowed
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_extend
    - FR_SBUFF_BIND_CURRENT
    - fr_sbuff_current
    - CHECK_SBUFF_INIT
    - CONSTRAINED_END
    - FILL_OR_GOTO_DONE
    - fr_sbuff_used_total
    linkageType: ''
    returnType: size_t
    signature: "size_t fr_sbuff_out_bstrncpy_allowed(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len,\n\t\t\t\t     bool const allowed[static SBUFF_CHAR_CLASS])"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:881,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:888,1
    - Dst: fr_sbuff_terminal_idx_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:894,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:896,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:900,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:902,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:903,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:903,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:908,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:915,1
    - Dst: FILL_OR_GOTO_DONE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:922,1
    - Dst: fr_sbuff_used_total
      Src: /src/freeradius-server/src/lib/util/sbuff.c:929,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - out
    - in
    - len
    - tt
    - u_rules
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - fr_sbuff_term_t*
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 930
    functionName: fr_sbuff_out_bstrncpy_until
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 3
    functionsReached:
    - FR_SBUFF_BIND_CURRENT
    - fr_sbuff_current
    - fr_sbuff_terminal_search
    - CHECK_SBUFF_INIT
    - CONSTRAINED_END
    - FILL_OR_GOTO_DONE
    - fr_sbuff_terminal_idx_init
    - fr_sbuff_extend_lowat
    - fr_sbuff_used_total
    linkageType: ''
    returnType: size_t
    signature: "size_t fr_sbuff_out_bstrncpy_until(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len,\n\t\t\t\t   fr_sbuff_term_t const *tt,\n\t\t\t\t   fr_sbuff_unescape_rules_t
      const *u_rules)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/sbuff.c:968,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:970,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:972,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:977,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:978,1
    - Dst: fr_sbuff_marker_update_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:979,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:981,1
    - Dst: fr_sbuff_terminal_idx_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:987,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:992,1
    - Dst: fr_sbuff_was_extended
      Src: /src/freeradius-server/src/lib/util/sbuff.c:993,1
    - Dst: fr_sbuff_marker_update_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:993,1
    - Dst: fr_sbuff_diff
      Src: /src/freeradius-server/src/lib/util/sbuff.c:994,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1002,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1006,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1007,1
    - Dst: fr_sbuff_out_uint8_hex
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1009,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1010,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1011,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1015,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1016,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1017,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1020,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1021,1
    - Dst: fr_sbuff_is_digit
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1028,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1032,1
    - Dst: fr_sbuff_out_uint8_oct
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1034,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1035,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1036,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1040,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1041,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1042,1
    - Dst: fr_sbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1045,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1046,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1057,1
    - Dst: fr_sbuff_in_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1070,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1076,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1077,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1083,1
    - Dst: FILL_OR_GOTO_DONE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1092,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1092,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1095,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1100,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1100,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1101,1
    - Dst: FILL_OR_GOTO_DONE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1107,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1107,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1110,1
    - Dst: fr_sbuff_marker_release_behind
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1113,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 5
    argNames:
    - out
    - in
    - len
    - tt
    - u_rules
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_t*
    - size_t
    - fr_sbuff_term_t*
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 1114
    functionName: fr_sbuff_out_unescape_until
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 5
    functionsReached:
    - fr_sbuff_marker_release_behind
    - fr_sbuff_current
    - fr_sbuff_marker_release
    - fr_sbuff_in_char
    - fr_sbuff_diff
    - CHECK_SBUFF_INIT
    - fr_sbuff_out_uint8_oct
    - fr_sbuff_behind
    - fr_sbuff_out_uint8_hex
    - FILL_OR_GOTO_DONE
    - FR_SBUFF
    - fr_sbuff_is_digit
    - fr_sbuff_marker
    - fr_sbuff_out_bstrncpy_until
    - fr_sbuff_marker_update_end
    - fr_sbuff_advance
    - fr_sbuff_terminal_search
    - fr_sbuff_extend_lowat
    - fr_sbuff_is_char
    - fr_sbuff_was_extended
    - fr_sbuff_terminal_idx_init
    - fr_sbuff_set
    linkageType: ''
    returnType: size_t
    signature: "size_t fr_sbuff_out_unescape_until(fr_sbuff_t *out, fr_sbuff_t *in,
      size_t len,\n\t\t\t\t   fr_sbuff_term_t const *tt,\n\t\t\t\t   fr_sbuff_unescape_rules_t
      const *u_rules)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1126,1
    - Dst: fr_sbuff_is_in_charset
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1135,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1136,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1136,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1141,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1143,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1148,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1150,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1155,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1157,1
    - Dst: fr_sbuff_adv_past_strcase_literal
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1162,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1164,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1172,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - bool*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1175
    functionName: fr_sbuff_out_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 4
    functionsReached:
    - tolower
    - fr_sbuff_uint8
    - fr_strerror_const
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_adv_past_strcase_literal
    - FR_SBUFF
    - fr_sbuff_is_in_charset
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_sbuff_out_bool(bool *out, fr_sbuff_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _name
    - ','
    - _type
    - ','
    - _min
    - ','
    - _max
    - ','
    - _max_char
    - ','
    - _base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1197
    functionName: SBUFF_PARSE_INT_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBUFF_PARSE_INT_DEF(_name, _type, _min, _max, _max_char, _base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1263,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1265,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1265,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1267,1
    - Dst: strtoull
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1275,1
    - Dst: overflow
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1282,1
    - Dst: overflow
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1287,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1289,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1290,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1290,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1293,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1301,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1305,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1306,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1307,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1308,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1309,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1311,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1312,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1313,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1314,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1315,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1318,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1319,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1320,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1321,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1322,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1324,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1325,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1326,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1327,1
    - Dst: SBUFF_PARSE_UINT_DEF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1351
    functionName: SBUFF_PARSE_INT_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_out_bstrncpy
    - isdigit
    - overflow
    - tolower
    - strtoull
    - FR_SBUFF_IN
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_remaining
    - fr_sbuff_advance
    - FR_SBUFF
    - SBUFF_PARSE_UINT_DEF
    linkageType: ''
    returnType: void
    signature: "void SBUFF_PARSE_INT_DEF(int8, int8_t, INT8_MIN, INT8_MAX, 4, 0)\nSBUFF_PARSE_INT_DEF(int16,
      int16_t, INT16_MIN, INT16_MAX, 6, 0)\nSBUFF_PARSE_INT_DEF(int32, int32_t, INT32_MIN,
      INT32_MAX, 11, 0)\nSBUFF_PARSE_INT_DEF(int64, int64_t, INT64_MIN, INT64_MAX,
      20, 0)\nSBUFF_PARSE_INT_DEF(ssize, ssize_t, SSIZE_MIN, SSIZE_MAX, 20, 0)\n\n/**
      Used to define a number parsing functions for signed integers\n *\n * @param[in]
      _name\tFunction suffix.\n * @param[in] _type\tOutput type.\n * @param[in] _max\tvalue.\n
      * @param[in] _max_char\tMaximum digits that can be used to represent an integer.\n
      *\t\t\tCan't use stringify because of width modifiers like 'u'\n *\t\t\tused
      in <stdint.h>.\n * @param[in] _base\tof the number being parsed, 8, 10, 16 etc...\n
      */\n#define SBUFF_PARSE_UINT_DEF(_name, _type, _max, _max_char, _base) \\\nfr_slen_t
      fr_sbuff_out_##_name(fr_sbuff_parse_error_t *err, _type *out, fr_sbuff_t *in,
      bool no_trailing) \\\n{ \\\n\tchar\t\t\tbuff[_max_char + 1]; \\\n\tchar\t\t\t*end,
      *a_end; \\\n\tsize_t\t\t\tlen; \\\n\tunsigned long long\tnum; \\\n\t_type\t\t\tcast_num;
      \\\n\tfr_sbuff_t\t\tour_in = FR_SBUFF(in); \\\n\tbuff[0] = '\\0'; /* clang scan
      */ \\\n\tlen = fr_sbuff_out_bstrncpy(&FR_SBUFF_IN(buff, sizeof(buff)), &our_in,
      _max_char); \\\n\tif (len == 0) { \\\n\t\tif (err) *err = (fr_sbuff_remaining(in)
      == 0) ? FR_SBUFF_PARSE_ERROR_INPUT_EMPTY : FR_SBUFF_PARSE_ERROR_NOT_FOUND; \\\n\t\treturn
      -1; \\\n\t} \\\n\tif (buff[0] == '-') { \\\n\t\tif (err) *err = FR_SBUFF_PARSE_ERROR_NUM_UNDERFLOW;
      \\\n\t\treturn -1; \\\n\t} \\\n\terrno = 0; /* this is needed as strtoull doesn't
      reset errno */ \\\n\tnum = strtoull(buff, &end, _base); \\\n\tcast_num = (_type)(num);
      \\\n\tif (end == buff) { \\\n\t\tif (err) *err = FR_SBUFF_PARSE_ERROR_NOT_FOUND;
      \\\n\t\treturn -1; \\\n\t} \\\n\tif (num > cast_num) { \\\n\toverflow: \\\n\t\tif
      (err) *err = FR_SBUFF_PARSE_ERROR_NUM_OVERFLOW; \\\n\t\t*out = (_type)(_max);
      \\\n\t\treturn -1; \\\n\t} \\\n\tif (((errno == EINVAL) && (num == 0)) || ((errno
      == ERANGE) && (num == ULLONG_MAX))) goto overflow; \\\n\tif (no_trailing &&
      ((a_end = in->p + (end - buff)) < in->end)) { \\\n\t\tif (isdigit((uint8_t)
      *a_end) || (((_base > 10) || ((_base == 0) && (len > 2) && (buff[0] == '0')
      && (buff[1] == 'x'))) && \\\n\t\t    ((tolower((uint8_t) *a_end) >= 'a') &&
      (tolower((uint8_t) *a_end) <= 'f')))) { \\\n\t\t\tif (err) *err = FR_SBUFF_PARSE_ERROR_TRAILING;
      \\\n\t\t\t*out = (_type)(_max); \\\n\t\t\tFR_SBUFF_ERROR_RETURN(&our_in); \\\n\t\t}
      \\\n\t\tif (err) *err = FR_SBUFF_PARSE_OK; \\\n\t\t*out = cast_num; \\\n\t}
      else { \\\n\t\tif (err) *err = FR_SBUFF_PARSE_OK; \\\n\t\t*out = cast_num; \\\n\t}
      \\\n\treturn fr_sbuff_advance(in, end - buff); /* Advance by the length strtoull
      gives us */ \\\n}\n\n/* max chars here is the octal string value with prefix
      */\nSBUFF_PARSE_UINT_DEF(uint8, uint8_t, UINT8_MAX, 4, 0)\nSBUFF_PARSE_UINT_DEF(uint16,
      uint16_t, UINT16_MAX, 7, 0)\nSBUFF_PARSE_UINT_DEF(uint32, uint32_t, UINT32_MAX,
      12, 0)\nSBUFF_PARSE_UINT_DEF(uint64, uint64_t, UINT64_MAX, 23, 0)\nSBUFF_PARSE_UINT_DEF(size,
      size_t, SIZE_MAX, 23, 0)\n\nSBUFF_PARSE_UINT_DEF(uint8_dec, uint8_t, UINT8_MAX,
      3, 0)\nSBUFF_PARSE_UINT_DEF(uint16_dec, uint16_t, UINT16_MAX, 4, 0)\nSBUFF_PARSE_UINT_DEF(uint32_dec,
      uint32_t, UINT32_MAX, 10, 0)\nSBUFF_PARSE_UINT_DEF(uint64_dec, uint64_t, UINT64_MAX,
      19, 0)\nSBUFF_PARSE_UINT_DEF(size_dec, size_t, SIZE_MAX, 19, 0)\n\n\nSBUFF_PARSE_UINT_DEF(uint8_oct,
      uint8_t, UINT8_MAX, 3, 8)\nSBUFF_PARSE_UINT_DEF(uint16_oct, uint16_t, UINT16_MAX,
      6, 8)\nSBUFF_PARSE_UINT_DEF(uint32_oct, uint32_t, UINT32_MAX, 11, 8)\nSBUFF_PARSE_UINT_DEF(uint64_oct,
      uint64_t, UINT64_MAX, 22, 8)\nSBUFF_PARSE_UINT_DEF(size_oct, size_t, SIZE_MAX,
      22, 8)\n\nSBUFF_PARSE_UINT_DEF(uint8_hex, uint8_t, UINT8_MAX, 2, 16)\nSBUFF_PARSE_UINT_DEF(uint16_hex,
      uint16_t, UINT16_MAX, 4, 16)\nSBUFF_PARSE_UINT_DEF(uint32_hex, uint32_t, UINT32_MAX,
      8, 16)\nSBUFF_PARSE_UINT_DEF(uint64_hex, uint64_t, UINT64_MAX, 16, 16)\nSBUFF_PARSE_UINT_DEF(size_hex,
      size_t, SIZE_MAX, 22, 16)\n\n/** Used to define a number parsing functions for
      floats\n *\n * @param[in] _name\tFunction suffix.\n * @param[in] _type\tOutput
      type.\n * @param[in] _func\tParsing function to use.\n * @param[in] _max_char\tMaximum
      digits that can be used to represent an integer.\n *\t\t\tCan't use stringify
      because of width modifiers like 'u'\n *\t\t\tused in <stdint.h>.\n */\n#define
      SBUFF_PARSE_FLOAT_DEF(_name, _type, _func, _max_char) \\\nfr_slen_t fr_sbuff_out_##_name(fr_sbuff_parse_error_t
      *err, _type *out, fr_sbuff_t *in, bool no_trailing) \\\n{ \\\n\tchar\t\tbuff[_max_char
      + 1] = \"\"; \\\n\tchar\t\t*end; \\\n\tfr_sbuff_t\tour_in = FR_SBUFF(in); \\\n\tsize_t\t\tlen;
      \\\n\t_type\t\tres; \\\n\tlen = fr_sbuff_out_bstrncpy_allowed(&FR_SBUFF_OUT(buff,
      sizeof(buff)), &our_in, SIZE_MAX, sbuff_char_class_float); \\\n\tif (len ==
      sizeof(buff))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1392,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1393,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1397,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1397,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1397,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1397,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1397,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1398,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1398,1
    - Dst: _fr_sbuff_move_marker_to_sbuff
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1410,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1412,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1413,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1417,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1417,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1417,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1417,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1417,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1418,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1418,1
    - Dst: _fr_sbuff_move_marker_to_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1430,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1432,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1433,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1437,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1437,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1437,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1437,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1437,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1438,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1438,1
    - Dst: _fr_sbuff_move_sbuff_to_marker
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1450,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1452,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1453,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1457,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1457,1
    - Dst: fr_sbuff_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1457,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1457,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1457,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1458,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1458,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1469,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1473,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1475,1
    - Dst: FR_SBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1476,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1478,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1481,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1493,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1495,1
    - Dst: FR_SBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1497,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1499,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1502,1
    - Dst: fr_sbuff_in_bstrcpy_buffer
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1513,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1517,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1519,1
    - Dst: FR_SBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1521,1
    - Dst: safecpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1523,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1526,1
    - Dst: _sbuff_scratch_free
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1532,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1535,1
    - Dst: CC_HINT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1538,1
    - Dst: sbuff_scratch_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1538,1
    - Dst: fr_atexit_thread_local_alloc_disabled
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1549,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1556,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1557,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1558,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1561,1
    - Dst: fr_sbuff_in_vsprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1578,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1585,1
    - Dst: sbuff_scratch_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1587,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1589,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1590,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1591,1
    - Dst: fr_sbuff_in_bstrcpy_buffer
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1594,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1595,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1609,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1614,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1616,1
    - Dst: fr_sbuff_in_vsprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1617,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1618,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1634,1
    - Dst: fr_sbuff_t
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1638,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1641,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1643,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1645,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1656,1
    - Dst: FR_SBUFF_IN_BSTRNCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1657,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1668,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1683,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1686,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1691,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1694,1
    - Dst: fr_sbuff_in_escape_buffer
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1707,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1709,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1711,1
    - Dst: fr_sbuff_in_escape
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1713,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1713,1
    - Dst: fr_sbuff_in_array
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1725,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1727,1
    - Dst: CHECK_SBUFF_WRITEABLE
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1736,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1739,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1739,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1742,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1746,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1757,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1761,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1763,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1770,1
    - Dst: memmem
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1772,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1775,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1788,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1795,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1802,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1808,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1808,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1811,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1830,1
    - Dst: fr_sbuff_terminal_idx_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1832,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1837,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1839,1
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1842,1
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1851,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1851,1
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1860,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1860,1
    - Dst: p
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1881,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1906,1
    - Dst: fr_sbuff_terminal_idx_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1912,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1917,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1919,1
    - Dst: while
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1923,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1923,1
    - Dst: while
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1925,1
    - Dst: if
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1926,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1937,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1956,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1958,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1960,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1962,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1977,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1979,1
    - Dst: fr_utf8_strchr
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1981,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1983,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:1986,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2001,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2003,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2012,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2014,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2017,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 2019
    functionName: SBUFF_PARSE_FLOAT_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - _fr_sbuff_move_sbuff_to_marker
    - va_start
    - tolower
    - fr_sbuff_adv_to_chr
    - fr_sbuff_current
    - fr_sbuff_end
    - strlen
    - CONSTRAINED_END
    - fr_sbuff_adv_to_chr_utf8
    - fr_sbuff_in_escape
    - FR_SBUFF_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    - unlikely
    - fr_sbuff_in_escape_buffer
    - _fr_sbuff_move_marker_to_marker
    - fr_sbuff_terminal_idx_init
    - fr_atexit_thread_local
    - _fr_sbuff_move_marker_to_sbuff
    - fr_vasprintf
    - va_copy
    - FR_SBUFF_SET_RETURN
    - CHECK_SBUFF_INIT
    - FR_SBUFF
    - CC_HINT
    - fr_strerror_const
    - FR_SBUFF_IN_BSTRNCPY_RETURN
    - fr_sbuff_in_bstrncpy
    - fr_sbuff_in_sprintf
    - va_end
    - memmem
    - fr_utf8_strchr
    - fr_sbuff_in_bstrcpy_buffer
    - fr_sbuff_in_array
    - safecpy
    - p
    - CHECK_SBUFF_WRITEABLE
    - fr_utf8_char
    - fr_sbuff_advance
    - talloc_strlen
    - sbuff_scratch_init
    - talloc_pool
    - fr_sbuff_extend_lowat
    - fr_sbuff_terminal_search
    - _sbuff_scratch_free
    - fr_sbuff_extend
    - if
    - talloc_free
    - fr_sbuff_adv_past_strcase
    - fr_sbuff_in_vsprintf
    - fr_sbuff_t
    - fr_sbuff_adv_past_str
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_EXTEND_LOWAT_OR_RETURN
    - while
    - fr_sbuff_in_strcpy
    - fr_sbuff_set
    - fr_atexit_thread_local_alloc_disabled
    linkageType: ''
    returnType: void
    signature: "void SBUFF_PARSE_FLOAT_DEF(float32, float, strtof, 100)\nSBUFF_PARSE_FLOAT_DEF(float64,
      double, strtod, 100)\n\n/** Move data from one sbuff to another\n *\n * @note
      Do not call this function directly use #fr_sbuff_move\n *\n * Both in and out
      will be advanced by len, with len set to the shortest\n * value between the
      user specified value, the number of bytes remaining\n * in the input buffer
      (after extension), and the number of bytes remaining\n * in the output buffer
      (after extension).\n *\n * @param[in] out\tsbuff to copy data to.\n * @param[in]
      in\tsbuff to copy data from.\n * @param[in] len\tMaximum length of string to
      copy.\n * @return The amount of data copied.\n */\nsize_t _fr_sbuff_move_sbuff_to_sbuff(fr_sbuff_t
      *out, fr_sbuff_t *in, size_t len)\n{\n\tsize_t o_remaining = fr_sbuff_extend_lowat(NULL,
      out, len);\n\tsize_t i_remaining = fr_sbuff_extend_lowat(NULL, in, len);\n\tsize_t
      to_copy = len;\n\tif (to_copy > o_remaining) to_copy = o_remaining;\n\tif (to_copy
      > i_remaining) to_copy = i_remaining;\n\tsafecpy(fr_sbuff_current(out), fr_sbuff_end(out),
      fr_sbuff_current(in), fr_sbuff_current(in) + to_copy);\n\treturn fr_sbuff_advance(out,
      fr_sbuff_advance(in, to_copy));\n}\n\n/** Move data from a marker to an sbuff\n
      *\n * @note Do not call this function directly use #fr_sbuff_move\n *\n * @param[in]
      out\tsbuff to copy data to.\n * @param[in] in\tmarker to copy data from.\n *
      @param[in] len\tMaximum length of string to copy.\n * @return The amount of
      data copied.\n */\nsize_t _fr_sbuff_move_marker_to_sbuff(fr_sbuff_t *out, fr_sbuff_marker_t
      *in, size_t len)\n{\n\tsize_t o_remaining = fr_sbuff_extend_lowat(NULL, out,
      len);\n\tsize_t i_remaining = fr_sbuff_extend_lowat(NULL, in, len);\n\tsize_t
      to_copy = len;\n\tif (to_copy > o_remaining) to_copy = o_remaining;\n\tif (to_copy
      > i_remaining) to_copy = i_remaining;\n\tsafecpy(fr_sbuff_current(out), fr_sbuff_end(out),
      fr_sbuff_current(in), fr_sbuff_current(in) + to_copy);\n\treturn fr_sbuff_advance(out,
      fr_sbuff_advance(in, to_copy));\n}\n\n/** Move data from one marker to another\n
      *\n * @note Do not call this function directly use #fr_sbuff_move\n *\n * @param[in]
      out\tmarker to copy data to.\n * @param[in] in\tmarker to copy data from.\n
      * @param[in] len\tMaximum length of string to copy.\n * @return The amount of
      data copied.\n */\nsize_t _fr_sbuff_move_marker_to_marker(fr_sbuff_marker_t
      *out, fr_sbuff_marker_t *in, size_t len)\n{\n\tsize_t o_remaining = fr_sbuff_extend_lowat(NULL,
      out, len);\n\tsize_t i_remaining = fr_sbuff_extend_lowat(NULL, in, len);\n\tsize_t
      to_copy = len;\n\tif (to_copy > o_remaining) to_copy = o_remaining;\n\tif (to_copy
      > i_remaining) to_copy = i_remaining;\n\tsafecpy(fr_sbuff_current(out), fr_sbuff_end(out),
      fr_sbuff_current(in), fr_sbuff_current(in) + to_copy);\n\treturn fr_sbuff_advance(out,
      fr_sbuff_advance(in, to_copy));\n}\n\n/** Move data from an sbuff to a marker\n
      *\n * @note Do not call this function directly use #fr_sbuff_move\n *\n * @param[in]
      out\tmarker to copy data to.\n * @param[in] in\tsbuff to copy data from.\n *
      @param[in] len\tMaximum length of string to copy.\n * @return The amount of
      data copied.\n */\nsize_t _fr_sbuff_move_sbuff_to_marker(fr_sbuff_marker_t *out,
      fr_sbuff_t *in, size_t len)\n{\n\tsize_t o_remaining = fr_sbuff_extend_lowat(NULL,
      out, len);\n\tsize_t i_remaining = fr_sbuff_extend_lowat(NULL, in, len);\n\tsize_t
      to_copy = len;\n\tif (to_copy > o_remaining) to_copy = o_remaining;\n\tif (to_copy
      > i_remaining) to_copy = i_remaining;\n\tsafecpy(fr_sbuff_current(out), fr_sbuff_end(out),
      fr_sbuff_current(in), fr_sbuff_current(in) + to_copy);\n\treturn fr_sbuff_advance(out,
      fr_sbuff_advance(in, to_copy));\n}\n\n/** Copy bytes into the sbuff up to the
      first \\0\n *\n * @param[in] sbuff\tto copy into.\n * @param[in] str\tto copy
      into buffer.\n * @return\n *\t- >= 0 the number of bytes copied into the sbuff.\n
      *\t- <0 the number of bytes required to complete the copy operation.\n */\nssize_t
      fr_sbuff_in_strcpy(fr_sbuff_t *sbuff, char const *str)\n{\n\tsize_t len;\n\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\tlen
      = strlen(str);\n\tFR_SBUFF_EXTEND_LOWAT_OR_RETURN(sbuff, len);\n\n\tsafecpy(sbuff->p,
      sbuff->end, str, str + len);\n\tsbuff->p[len] = '\\0';\n\n\treturn fr_sbuff_advance(sbuff,
      len);\n}\n\n/** Copy bytes into the sbuff up to the first \\0\n *\n * @param[in]
      sbuff\tto copy into.\n * @param[in] str\tto copy into buffer.\n * @param[in]
      len\tnumber of bytes to copy.\n * @return\n *\t- >= 0 the number of bytes copied
      into the sbuff.\n *\t- <0 the number of bytes required to complete the copy
      operation.\n */\nssize_t fr_sbuff_in_bstrncpy(fr_sbuff_t *sbuff, char const
      *str, size_t len)\n{\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\tFR_SBUFF_EXTEND_LOWAT_OR_RETURN(sbuff,
      len);\n\n\tsafecpy(sbuff->p, sbuff->end, str, str + len);\n\tsbuff->p[len] =
      '\\0';\n\n\treturn fr_sbuff_advance(sbuff, len);\n}\n\n/** Copy bytes into the
      sbuff up to the first \\0\n *\n * @param[in] sbuff\tto copy into.\n * @param[in]
      str\ttalloced buffer to copy into sbuff.\n * @return\n *\t- >= 0 the number
      of bytes copied into the sbuff.\n *\t- <0 the number of bytes required to complete
      the copy operation.\n */\nssize_t fr_sbuff_in_bstrcpy_buffer(fr_sbuff_t *sbuff,
      char const *str)\n{\n\tsize_t len;\n\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\tlen
      = talloc_strlen(str);\n\n\tFR_SBUFF_EXTEND_LOWAT_OR_RETURN(sbuff, len);\n\n\tsafecpy(sbuff->p,
      sbuff->end, str, str + len);\n\tsbuff->p[len] = '\\0';\n\n\treturn fr_sbuff_advance(sbuff,
      len);\n}\n\n/** Free the scratch buffer used for printf\n *\n */\nstatic int
      _sbuff_scratch_free(void *arg)\n{\n\tsbuff_scratch_freed = true;\n\treturn talloc_free(arg);\n}\n\nstatic
      inline CC_HINT(always_inline) int sbuff_scratch_init(TALLOC_CTX **out)\n{\n\tTALLOC_CTX\t*scratch;\n\n\t/*\n\t
      *\tOnce main has signalled shutdown the TLS slot may be a\n\t *\tdangling pointer
      on threads we don't own; skip the scratch\n\t *\tcache and let callers allocate
      at top level instead.  The\n\t *\tTLS-local `sbuff_scratch_freed` is left in
      place for the\n\t *\tper-thread teardown path on FR-managed threads.\n\t */\n\tif
      (sbuff_scratch_freed || fr_atexit_thread_local_alloc_disabled()) {\n\t\t*out
      = NULL;\n\t\treturn 0;\n\t}\n\n\tscratch = sbuff_scratch;\n\tif (!scratch) {\n\t\tscratch
      = talloc_pool(NULL, 4096);\n\t\tif (unlikely(!scratch)) {\n\t\t\tfr_strerror_const(\"Out
      of Memory\");\n\t\t\treturn -1;\n\t\t}\n\t\tfr_atexit_thread_local(sbuff_scratch,
      _sbuff_scratch_free, scratch);\n\t}\n\n\t*out = scratch;\n\n\treturn 0;\n}\n\n/**
      Print using a fmt string to an sbuff\n *\n * @param[in] sbuff\tto print into.\n
      * @param[in] fmt\tstring.\n * @param[in] ap\targuments for format string.\n<
      * @return\n *\t- >= 0 the number of bytes printed into the sbuff.\n *\t- <0
      the number of bytes required to complete the print operation.\n */\nssize_t
      fr_sbuff_in_vsprintf(fr_sbuff_t *sbuff, char const *fmt, va_list ap)\n{\n\tTALLOC_CTX\t*scratch;\n\tva_list\t\tap_p;\n\tchar\t\t*tmp;\n\tssize_t\t\tslen;\n\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\tif
      (sbuff_scratch_init(&scratch) < 0) return 0;\n\n\tva_copy(ap_p, ap);\n\ttmp
      = fr_vasprintf(scratch, fmt, ap_p);\n\tva_end(ap_p);\n\tif (!tmp) return 0;\n\n\tslen
      = fr_sbuff_in_bstrcpy_buffer(sbuff, tmp);\n\ttalloc_free(tmp);\t/* Free the
      temporary buffer */\n\n\treturn slen;\n}\n\n/** Print using a fmt string to
      an sbuff\n *\n * @param[in] sbuff\tto print into.\n * @param[in] fmt\tstring.\n
      * @param[in] ...\targuments for format string.\n * @return\n *\t- >= 0 the number
      of bytes printed into the sbuff.\n *\t- <0 the number of bytes required to complete
      the print operation.\n */\nssize_t fr_sbuff_in_sprintf(fr_sbuff_t *sbuff, char
      const *fmt, ...)\n{\n\tva_list\t\tap;\n\tssize_t\t\tslen;\n\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\tva_start(ap,
      fmt);\n\tslen = fr_sbuff_in_vsprintf(sbuff, fmt, ap);\n\tva_end(ap);\n\n\treturn
      slen;\n}\n\n/** Print an escaped string to an sbuff\n *\n * @param[in] sbuff\tto
      print into.\n * @param[in] in\tto escape.\n * @param[in] inlen\tof string to
      escape.\n * @param[in] e_rules\tEscaping rules.  Used to escape special characters\n
      *      \t\tas data is written to the sbuff.  May be NULL.\n * @return\n *\t-
      >= 0 the number of bytes printed into the sbuff.\n *\t- <0 the number of bytes
      required to complete the print operation.\n */\nssize_t fr_sbuff_in_escape(fr_sbuff_t
      *sbuff, char const *in, size_t inlen, fr_sbuff_escape_rules_t const *e_rules)\n{\n\tchar
      const\t*end = in + inlen;\n\tchar const\t*p = in;\n\tfr_sbuff_t\tour_sbuff;\n\n\t/*
      Significantly quicker if there are no rules */\n\tif (!e_rules || (e_rules->chr
      == '\\0')) return fr_sbuff_in_bstrncpy(sbuff, in, inlen);\n\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\tour_sbuff
      = FR_SBUFF(sbuff);\n\twhile (p < end) {\n\t\tsize_t\tclen;\n\t\tuint8_t\tc =
      (uint8_t)*p;\n\t\tchar\tsub;\n\n\t\t/*\n\t\t *\tWe don't support escaping UTF8
      sequences\n\t\t *\tas they're not used anywhere in our\n\t\t *\tgrammar.\n\t\t
      */\n\t\tif (e_rules->do_utf8 && ((clen = fr_utf8_char((uint8_t const *)p, end
      - p)) > 1)) {\n\t\t\tFR_SBUFF_IN_BSTRNCPY_RETURN(&our_sbuff, p, clen);\n\t\t\tp
      += clen;\n\t\t\tcontinue;\n\t\t}\n\n\t\t/*\n\t\t *\tCheck if there's a special
      substitution\n\t\t *\tlike 0x0a -> \\n.\n\t\t */\n\t\tsub = e_rules->subs[c];\n\t\tif
      (sub != '\\0') {\n\t\t\tFR_SBUFF_IN_CHAR_RETURN(&our_sbuff, e_rules->chr, sub);\n\t\t\tp++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t/*\n\t\t
      *\tCheck if the character is in the range\n\t\t *\twe escape.\n\t\t */\n\t\tif
      (e_rules->esc[c]) {\n\t\t\t/*\n\t\t\t *\tFor legacy reasons we prefer\n\t\t\t
      *\toctal escape sequences.\n\t\t\t */\n\t\t\tif (e_rules->do_oct) {\n\t\t\t\tFR_SBUFF_IN_SPRINTF_RETURN(&our_sbuff,
      \"%c%03o\", e_rules->chr, (uint8_t)*p++);\n\t\t\t\tcontinue;\n\t\t\t} else if
      (e_rules->do_hex) {\n\t\t\t\tFR_SBUFF_IN_SPRINTF_RETURN(&our_sbuff, \"%cx%02x\",
      e_rules->chr, (uint8_t)*p++);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tFR_SBUFF_IN_CHAR_RETURN(&our_sbuff,
      *p++);\n\t}\n\n\tFR_SBUFF_SET_RETURN(sbuff, &our_sbuff);\n}\n\n/** Print an
      escaped string to an sbuff taking a talloced buffer as input\n *\n * @param[in]
      sbuff\tto print into.\n * @param[in] in\tto escape.\n * @param[in] e_rules\tEscaping
      rules.  Used to escape special characters\n *      \t\tas data is written to
      the sbuff.  May be NULL.\n * @return\n *\t- >= 0 the number of bytes printed
      into the sbuff.\n *\t- <0 the number of bytes required to complete the print
      operation.\n */\nssize_t fr_sbuff_in_escape_buffer(fr_sbuff_t *sbuff, char const
      *in, fr_sbuff_escape_rules_t const *e_rules)\n{\n\tif (unlikely(!in)) return
      0;\n\n\tCHECK_SBUFF_WRITEABLE(sbuff);\n\n\treturn fr_sbuff_in_escape(sbuff,
      in, talloc_strlen(in), e_rules);\n}\n\n/** Concat an array of strings (NULL
      terminated), with a string separator\n *\n * @param[out] out\tWhere to write
      the resulting string.\n * @param[in] array\tof strings to concat.\n * @param[in]
      sep\tto insert between elements.  May be NULL.\n * @return\n *      - >= 0 on
      success - length of the string created.\n *\t- <0 on failure.  How many bytes
      we would need.\n */\nfr_slen_t fr_sbuff_in_array(fr_sbuff_t *out, char const
      * const *array, char const *sep)\n{\n\tfr_sbuff_t\t\tour_out = FR_SBUFF(out);\n\tchar
      const * const *\tp;\n\tfr_sbuff_escape_rules_t\te_rules = {\n\t\t\t\t\t.name
      = __FUNCTION__,\n\t\t\t\t\t.chr = '\\\\'\n\t\t\t\t};\n\n\tif (sep) e_rules.subs[(uint8_t)*sep]
      = *sep;\n\n\tCHECK_SBUFF_WRITEABLE(out);\n\n\tfor (p = array; *p; p++) {\n\t\tif
      (*p) FR_SBUFF_RETURN(fr_sbuff_in_escape, &our_out, *p, strlen(*p), &e_rules);\n\n\t\tif
      (sep && p[1]) {\n\t\t\tFR_SBUFF_RETURN(fr_sbuff_in_strcpy, &our_out, sep);\n\t\t}\n\t}\n\n\tFR_SBUFF_SET_RETURN(out,
      &our_out);\n}\n\n/** Return true and advance past the end of the needle if needle
      occurs next in the sbuff\n *\n * @param[in] sbuff\t\tto search in.\n * @param[in]
      needle\t\tto search for.\n * @param[in] needle_len\tof needle. If SIZE_MAX strlen
      is used\n *\t\t\t\tto determine length of the needle.\n * @return how many bytes
      we advanced\n */\nsize_t fr_sbuff_adv_past_str(fr_sbuff_t *sbuff, char const
      *needle, size_t needle_len)\n{\n\tchar const *found;\n\n\tCHECK_SBUFF_INIT(sbuff);\n\n\tif
      (needle_len == SIZE_MAX) needle_len = strlen(needle);\n\n\t/*\n\t *\tIf there's
      insufficient bytes in the\n\t *\tbuffer currently, try to extend it,\n\t *\treturning
      if we can't.\n\t */\n\tif (fr_sbuff_extend_lowat(NULL, sbuff, needle_len) <
      needle_len) return 0;\n\n\tfound = memmem(sbuff->p, needle_len, needle, needle_len);\t/*
      sbuff needle_len and needle needle_len ensures match must be next */\n\tif (!found)
      return 0;\n\n\treturn fr_sbuff_advance(sbuff, needle_len);\n}\n\n/** Return
      true and advance past the end of the needle if needle occurs next in the sbuff\n
      *\n * This function is similar to fr_sbuff_adv_past_str but is case insensitive.\n
      *\n * @param[in] sbuff\t\tto search in.\n * @param[in] needle\t\tto search for.\n
      * @param[in] needle_len\tof needle. If SIZE_MAX strlen is used\n *\t\t\t\tto
      determine length of the needle.\n * @return how many bytes we advanced\n */\nsize_t
      fr_sbuff_adv_past_strcase(fr_sbuff_t *sbuff, char const *needle, size_t needle_len)\n{\n\tchar
      const *p, *n_p;\n\tchar const *end;\n\n\tCHECK_SBUFF_INIT(sbuff);\n\n\tif (needle_len
      == SIZE_MAX) needle_len = strlen(needle);\n\n\t/*\n\t *\tIf there's insufficient
      bytes in the\n\t *\tbuffer currently, try to extend it,\n\t *\treturning if
      we can't.\n\t */\n\tif (fr_sbuff_extend_lowat(NULL, sbuff, needle_len) < needle_len)
      return 0;\n\n\tp = sbuff->p;\n\tend = p + needle_len;\n\n\tfor (p = sbuff->p,
      n_p = needle; p < end; p++, n_p++) {\n\t\tif (tolower((uint8_t) *p) != tolower((uint8_t)
      *n_p)) return 0;\n\t}\n\n\treturn fr_sbuff_advance(sbuff, needle_len);\n}\n\n/**
      Wind position past characters in the allowed set\n *\n * @param[in] sbuff\t\tsbuff
      to search in.\n * @param[in] len\t\tMaximum amount to advance by. Unconstrained
      if SIZE_MAX.\n * @param[in] allowed\t\tcharacter set.\n * @param[in] tt\t\tIf
      not NULL, stop if we find a terminal sequence.\n * @return how many bytes we
      advanced.\n */\nsize_t fr_sbuff_adv_past_allowed(fr_sbuff_t *sbuff, size_t len,
      bool\n\t\t\t\t const allowed[static SBUFF_CHAR_CLASS], fr_sbuff_term_t const
      *tt)\n{\n\tsize_t\t\ttotal = 0;\n\tchar const\t*p;\n\tuint8_t\t\tidx[SBUFF_CHAR_CLASS];\t/*
      Fast path index */\n\tsize_t\t\tneedle_len = 0;\n\n\tCHECK_SBUFF_INIT(sbuff);\n\n\tif
      (tt) fr_sbuff_terminal_idx_init(&needle_len, idx, tt);\n\n\twhile (total < len)
      {\n\t\tchar *end;\n\n\t\tif (!fr_sbuff_extend(sbuff)) break;\n\n\t\tend = CONSTRAINED_END(sbuff,
      len, total);\n\t\tp = sbuff->p;\n\t\twhile ((p < end) && allowed[(uint8_t)*p])
      {\n\t\t\tif (needle_len == 0) {\n\t\t\t\tp++;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t
      \      /*\n\t\t\t*\tIf this character is allowed, BUT is also listed as a one-character
      terminal,\n\t\t\t*\tthen we still allow it.  This decision implements \"greedy\"
      parsing.\n\t\t\t*/\n\t\t       if (fr_sbuff_terminal_search(sbuff, p, idx, tt,
      1)) {\n\t\t\t       p++;\n\t\t\t       continue;\n\t\t       }\n\n\t\t       /*\n\t\t\t*\tOtherwise
      if the next *set* of characters) is not in the terminals, then\n\t\t\t*\tallow
      the current character.\n\t\t\t*/\n\t\t       if (!fr_sbuff_terminal_search(sbuff,
      p, idx, tt, needle_len)) {\n\t\t\t       p++;\n\t\t\t       continue;\n\t\t
      \      }\n\n\t\t       /*\n\t\t\t*\tThe character is allowed, and is NOT listed
      as a terminal character by itself.\n\t\t\t*\tHowever, it is part of a multi-character
      terminal sequence.  We therefore\n\t\t\t*\tstop.\n\t\t\t*\n\t\t\t*\tThis decision
      allows us to parse things like \"Framed-User\", where we might\n\t\t\t*\tnormally
      stop at the \"-\".  However, we will still stop at \"Framed-=User\", as\n\t\t\t*\t\"-=\"
      may be a terminal sequence.\n\t\t\t*\n\t\t\t*\tThere is no perfect solution
      here, other than to fix the input grammar so that\n\t\t\t*\tit has no ambiguity.
      \ Since we can't do that, we choose to err on the side of\n\t\t\t*\tallowing
      the existing grammar, where it makes sense\n\t\t\t*/\n\t\t       break;\n\t\t}\n\n\t\ttotal
      += fr_sbuff_set(sbuff, p);\n\t\tif (p != end) break;\t\t/* stopped early, break
      */\n\t}\n\n\treturn total;\n}\n\n/** Wind position until we hit a character
      in the terminal set\n *\n * @param[in] sbuff\t\tsbuff to search in.\n * @param[in]
      len\t\tMaximum amount to advance by. Unconstrained if SIZE_MAX.\n * @param[in]
      tt\t\tToken terminals in the encompassing grammar.\n * @param[in] escape_chr\tIf
      not '\\0', ignore characters in the tt set when\n *\t\t\t\tprefixed with this
      escape character.\n * @return how many bytes we advanced.\n */\nsize_t fr_sbuff_adv_until(fr_sbuff_t
      *sbuff, size_t len, fr_sbuff_term_t const *tt, char escape_chr)\n{\n\tsize_t\t\ttotal
      = 0;\n\tchar const\t*p;\n\tbool\t\tdo_escape = false;\t\t/* Track state across
      extensions */\n\n\tuint8_t\t\tidx[SBUFF_CHAR_CLASS];\t\t/* Fast path index */\n\tsize_t\t\tneedle_len
      = 1;\n\n\tCHECK_SBUFF_INIT(sbuff);\n\n\t/*\n\t *\tInitialise the fastpath index
      and\n\t *\tfigure out the longest needle.\n\t */\n\tfr_sbuff_terminal_idx_init(&needle_len,
      idx, tt);\n\n\twhile (total < len) {\n\t\tchar *end;\n\n\t\tif (fr_sbuff_extend_lowat(NULL,
      sbuff, needle_len) == 0) break;\n\n\t\tend = CONSTRAINED_END(sbuff, len, total);\n\t\tp
      = sbuff->p;\n\n\t\tif (escape_chr == '\\0') {\n\t\t\twhile ((p < end) && !fr_sbuff_terminal_search(sbuff,
      p, idx, tt, needle_len)) p++;\n\t\t} else {\n\t\t\twhile (p < end) {\n\t\t\t\tif
      (do_escape) {\n\t\t\t\t\tdo_escape = false;\n\t\t\t\t} else if (*p == escape_chr)
      {\n\t\t\t\t\tdo_escape = true;\n\t\t\t\t} else if (fr_sbuff_terminal_search(sbuff,
      p, idx, tt, needle_len)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tp++;\n\t\t\t}\n\t\t}\n\n\t\ttotal
      += fr_sbuff_set(sbuff, p);\n\t\tif (p != end) break;\t/* stopped early, break
      */\n\t}\n\n\treturn total;\n}\n\n/** Wind position to first instance of specified
      multibyte utf8 char\n *\n * Only use this function if the search char could
      be multibyte,\n * as there's a large performance penalty.\n *\n * @param[in,out]
      sbuff\t\tto search in.\n * @param[in] len\t\tthe maximum number of characters
      to search in sbuff.\n * @param[in] chr\t\tto search for.\n * @return\n *\t-
      NULL, no instances found.\n *\t- The position of the first character.\n */\nchar
      *fr_sbuff_adv_to_chr_utf8(fr_sbuff_t *sbuff, size_t len, char const *chr)\n{\n\tfr_sbuff_t\tour_sbuff
      = FR_SBUFF(sbuff);\n\tsize_t\t\ttotal = 0;\n\tsize_t\t\tclen = strlen(chr);\n\n\tCHECK_SBUFF_INIT(sbuff);\n\n\t/*\n\t
      *\tNeedle bigger than haystack\n\t */\n\tif (len < clen) return NULL;\n\n\twhile
      (total <= (len - clen)) {\n\t\tchar const\t*found;\n\t\tchar\t\t*end;\n\n\t\t/*\n\t\t
      *\tEnsure we have enough chars to match\n\t\t *\tthe needle.\n\t\t */\n\t\tif
      (fr_sbuff_extend_lowat(NULL, &our_sbuff, clen) < clen) break;\n\n\t\tend = CONSTRAINED_END(&our_sbuff,
      len, total);\n\n\t\tfound = fr_utf8_strchr(NULL, our_sbuff.p, end - our_sbuff.p,
      chr);\n\t\tif (found) {\n\t\t\t(void)fr_sbuff_set(sbuff, found);\n\t\t\treturn
      sbuff->p;\n\t\t}\n\t\ttotal += fr_sbuff_set(&our_sbuff, (end - clen) + 1);\n\t}\n\n\treturn
      NULL;\n}\n\n/** Wind position to first instance of specified char\n *\n * @param[in,out]
      sbuff\t\tto search in.\n * @param[in] len\t\tMaximum amount to advance by. Unconstrained
      if SIZE_MAX.\n * @param[in] c\t\t\tto search for.\n * @return\n *\t- NULL, no
      instances found.\n *\t- The position of the first character.\n */\nchar *fr_sbuff_adv_to_chr(fr_sbuff_t
      *sbuff, size_t len, char c)\n{\n\tfr_sbuff_t\tour_sbuff = FR_SBUFF(sbuff);\n\tsize_t\t\ttotal
      = 0;\n\n\tCHECK_SBUFF_INIT(sbuff);\n\n\twhile (total < len) {\n\t\tchar const\t*found;\n\t\tchar\t\t*end;\n\n\t\tif
      (!fr_sbuff_extend(&our_sbuff)) break;\n\n\t\tend = CONSTRAINED_END(&our_sbuff,
      len, total);\n\t\tfound = memchr(our_sbuff.p, c, end - our_sbuff.p);\n\t\tif
      (found)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2039,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2042,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2044,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2060,1
    - Dst: CONSTRAINED_END
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2062,1
    - Dst: memmem
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2063,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2065,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2074,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - sbuff
    - len
    - needle
    - needle_len
    argTypes:
    - fr_sbuff_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2078
    functionName: fr_sbuff_adv_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 1
    functionsReached:
    - memmem
    - CHECK_SBUFF_INIT
    - strlen
    - CONSTRAINED_END
    - FR_SBUFF
    - fr_sbuff_extend_lowat
    - fr_sbuff_set
    linkageType: ''
    returnType: char
    signature: char *fr_sbuff_adv_to_str(fr_sbuff_t *sbuff, size_t len, char const
      *needle, size_t needle_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2092,1
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2095,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2097,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2109,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2112,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2112,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2115,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - sbuff
    - len
    - needle
    - needle_len
    argTypes:
    - fr_sbuff_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2123
    functionName: fr_sbuff_adv_to_strcase
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - tolower
    - CHECK_SBUFF_INIT
    - strlen
    - fr_sbuff_advance
    - FR_SBUFF
    - fr_sbuff_extend_lowat
    - fr_sbuff_set
    linkageType: ''
    returnType: char
    signature: char *fr_sbuff_adv_to_strcase(fr_sbuff_t *sbuff, size_t len, char const
      *needle, size_t needle_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2135,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2137,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sbuff
    - c
    argTypes:
    - fr_sbuff_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2144
    functionName: fr_sbuff_next_if_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 37
    functionsReached:
    - fr_sbuff_extend
    - CHECK_SBUFF_INIT
    - fr_sbuff_advance
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_next_if_char(fr_sbuff_t *sbuff, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2156,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2158,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sbuff
    - c
    argTypes:
    - fr_sbuff_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2165
    functionName: fr_sbuff_next_unless_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_extend
    - CHECK_SBUFF_INIT
    - fr_sbuff_advance
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_next_unless_char(fr_sbuff_t *sbuff, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2180,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - sbuff
    - to_trim
    argTypes:
    - fr_sbuff_t*
    - bool[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2184
    functionName: fr_sbuff_trim
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 4
    functionsReached:
    - fr_sbuff_terminate
    - fr_sbuff_set
    linkageType: ''
    returnType: size_t
    signature: size_t fr_sbuff_trim(fr_sbuff_t *sbuff, bool const to_trim[static SBUFF_CHAR_CLASS])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2208,1
    - Dst: fr_sbuff_terminal_idx_init
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2220,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2222,1
    - Dst: fr_sbuff_terminal_search
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - in
    - tt
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2197
    functionDepth: 2
    functionLinenumber: 2197
    functionLinenumberEnd: 2225
    functionName: fr_sbuff_is_terminal
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 8
    functionsReached:
    - fr_sbuff_terminal_search
    - fr_sbuff_terminal_idx_init
    - fr_sbuff_extend_lowat
    linkageType: ''
    returnType: bool
    signature: bool fr_sbuff_is_terminal(fr_sbuff_t *in, fr_sbuff_term_t const *tt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2263,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2274
    functionName: sbuff_print_char
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - snprintf
    - NUM_ELEMENTS
    linkageType: ''
    returnType: char
    signature: char *sbuff_print_char(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2280,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2281,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2282,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2283,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2285,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2287,1
    - Dst: sbuff_print_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2288,1
    - Dst: sbuff_print_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2289,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2291,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2293,1
    - Dst: sbuff_print_char
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - fp
    - escapes
    argTypes:
    - FILE*
    - fr_sbuff_unescape_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2295
    functionName: fr_sbuff_unescape_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - sbuff_print_char
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_unescape_debug(FILE *fp, fr_sbuff_unescape_rules_t const
      *escapes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2301,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fp
    - tt
    argTypes:
    - FILE*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2304
    functionName: fr_sbuff_terminal_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_terminal_debug(FILE *fp, fr_sbuff_term_t const *tt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2308,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2310,1
    - Dst: fr_sbuff_unescape_debug
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2312,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2314,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2317,1
    - Dst: fr_sbuff_terminal_debug
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2319,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - fp
    - p_rules
    argTypes:
    - FILE*
    - fr_sbuff_parse_rules_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2306
    functionDepth: 3
    functionLinenumber: 2306
    functionLinenumberEnd: 2323
    functionName: fr_sbuff_parse_rules_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_sbuff_terminal_debug
    - fr_sbuff_unescape_debug
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_sbuff_parse_rules_debug(FILE *fp, fr_sbuff_parse_rules_t const
      *p_rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2336,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2337,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2350,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2350,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2353,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/sbuff.c:2357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - out
    - array
    - sep
    argTypes:
    - fr_sbuff_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2358
    functionName: fr_sbuff_array_concat
    functionSourceFile: /src/freeradius-server/src/lib/util/sbuff.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_SET_RETURN
    - strlen
    - talloc_array_length
    - FR_SBUFF
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_sbuff_array_concat(fr_sbuff_t *out, char const * const
      *array, char const *sep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/util/dict_util.c:131,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/dict_util.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: dict_hash_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - isalpha
    - tolower
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_hash_name(char const *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_hash_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:153,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: dict_protocol_name_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strlen
    - dict_hash_name
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_protocol_name_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:165,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: dict_protocol_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_protocol_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/dict_util.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: dict_protocol_num_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_protocol_num_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: dict_protocol_num_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_protocol_num_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_hash_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:199,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: dict_attr_name_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strlen
    - dict_hash_name
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_attr_name_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:210,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: dict_attr_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_attr_name_cmp(void const *one, void const *two)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ordered_cmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:235,1
    - Dst: fr_dict_attr_ordered_cmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:242,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:259,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:262,1
    - Dst: fr_dict_attr_ordered_cmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 274
    functionName: fr_dict_attr_ordered_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_ordered_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_dict_attr_ordered_cmp(fr_dict_attr_t const *a, fr_dict_attr_t
      const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_hash_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:287,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: dict_vendor_name_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strlen
    - dict_hash_name
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_vendor_name_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:299,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 301
    functionName: dict_vendor_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_vendor_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/dict_util.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: dict_vendor_pen_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_vendor_pen_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: dict_vendor_pen_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_vendor_pen_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_hash_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: dict_enum_name_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_hash_name
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_enum_name_hash(void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:342,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:345,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: dict_enum_name_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_enum_name_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/dict_util.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: dict_enum_value_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_value_box_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_enum_value_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:368,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: dict_enum_value_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - CMP
    - fr_value_box_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t dict_enum_value_cmp(void const *one, void const *two)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:386,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:387,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - err
    - da
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 396
    functionName: dict_attr_alias
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_dict_attr_ref
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *dict_attr_alias(fr_dict_attr_err_t *err, fr_dict_attr_t
      const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_util.c:416,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:419,1
    - Dst: fr_sbuff_buff
      Src: /src/freeradius-server/src/lib/util/dict_util.c:421,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/dict_util.c:422,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:424,1
    - Dst: dict_attr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/dict_util.c:438,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - da_p
    - name
    argTypes:
    - fr_dict_attr_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 450
    functionName: dict_attr_name_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_sbuff_used
    - FR_SBUFF_OUT
    - strlen
    - dict_attr_ext_alloc_size
    - fr_sbuff_buff
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: int
    signature: int dict_attr_name_set(fr_dict_attr_t **da_p, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:462,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - da_p
    argTypes:
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 466
    functionName: dict_attr_children_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_ext_alloc
    linkageType: ''
    returnType: int
    signature: int dict_attr_children_init(fr_dict_attr_t **da_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:479,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - da_p
    - vendor
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: dict_attr_vendor_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_ext_alloc
    linkageType: ''
    returnType: int
    signature: int dict_attr_vendor_set(fr_dict_attr_t **da_p, fr_dict_attr_t const
      *vendor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:497,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - da_p
    argTypes:
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: dict_attr_enumv_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_ext_alloc
    linkageType: ''
    returnType: int
    signature: int dict_attr_enumv_init(fr_dict_attr_t **da_p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:513,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:514,1
    - Dst: fr_hash_table_talloc_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:525,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - da_p
    argTypes:
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 534
    functionName: dict_attr_namespace_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - dict_attr_ext_alloc
    - fr_hash_table_talloc_alloc
    linkageType: ''
    returnType: int
    signature: int dict_attr_namespace_init(fr_dict_attr_t **da_p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:548,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:550,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:551,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:551,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:555,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:556,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:579,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:580,1
    - Dst: dict_attr_children_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:584,1
    - Dst: dict_attr_namespace_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:585,1
    - Dst: dict_attr_enumv_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:594,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - da_p
    - type
    argTypes:
    - fr_dict_attr_t**
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 623
    functionName: dict_attr_type_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - dict_attr_namespace_init
    - fr_dict_attr_ext
    - dict_attr_enumv_init
    - dict_attr_children_init
    - dict_attr_ext_alloc
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_attr_type_init(fr_dict_attr_t **da_p, fr_type_t type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:639,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:640,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:644,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:645,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:650,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:651,1
    - Dst: fr_dict_vendor_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:672,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:685,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:686,1
    - Dst: dict_attr_ext_copy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:691,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - da_p
    - parent
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 702
    functionName: dict_attr_parent_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - dict_attr_ext_copy
    - fr_dict_vendor_by_num
    - dict_attr_ext_alloc
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_attr_parent_init(fr_dict_attr_t **da_p, fr_dict_attr_t const
      *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - da
    - num
    argTypes:
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: dict_attr_num_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_attr_num_init(fr_dict_attr_t *da, unsigned int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:730,1
    - Dst: dict_attr_num_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:733,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_util.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 734
    functionName: dict_attr_num_init_name_only
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_num_init
    - fr_strerror_const
    - fr_dict_attr_unconst
    linkageType: ''
    returnType: int
    signature: int dict_attr_num_init_name_only(fr_dict_attr_t *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - da
    - filename
    - line
    argTypes:
    - fr_dict_attr_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: dict_attr_location_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dict_attr_location_init(fr_dict_attr_t *da, char const *filename,
      int line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:766,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/lib/util/dict_util.c:766,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:769,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/util/dict_util.c:770,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:789,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:790,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:791,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:800,1
    - Dst: dict_attr_ref_set
      Src: /src/freeradius-server/src/lib/util/dict_util.c:800,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:800,1
    - Dst: dict_attr_name_set
      Src: /src/freeradius-server/src/lib/util/dict_util.c:814,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:816,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - da_p
    - name
    argTypes:
    - fr_dict_attr_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 821
    functionName: dict_attr_finalise
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_init
    - fr_type_is_leaf
    - dict_attr_name_set
    - fr_dict_root
    - DA_VERIFY
    - fr_dict_attr_ext
    - fr_value_box_network_length
    - fr_strerror_const
    - dict_attr_ref_set
    - fr_type_is_variable_size
    linkageType: ''
    returnType: int
    signature: int dict_attr_finalise(fr_dict_attr_t **da_p, char const *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_location_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:829,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:831,1
    - Dst: dict_attr_type_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:831,1
    - Dst: dict_attr_parent_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:835,1
    - Dst: dict_attr_ref_aset
      Src: /src/freeradius-server/src/lib/util/dict_util.c:837,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:845,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:850,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 6
    argNames:
    - filename
    - line
    - da_p
    - parent
    - type
    - args
    argTypes:
    - char*
    - int
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_type_t
    - dict_attr_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 824
    functionDepth: 5
    functionLinenumber: 824
    functionLinenumberEnd: 857
    functionName: dict_attr_init_common
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_parent_init
    - unlikely
    - dict_attr_location_init
    - fr_strerror_printf
    - dict_attr_type_init
    - dict_attr_ref_aset
    linkageType: ''
    returnType: int
    signature: "int dict_attr_init_common(char const *filename, int line,\n\t\t\t
      \ fr_dict_attr_t **da_p,\n\t\t\t  fr_dict_attr_t const *parent,\n\t\t\t  fr_type_t
      type, dict_attr_args_t const *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:894,1
    - Dst: dict_attr_num_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:894,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:899,1
    - Dst: dict_attr_init_common
      Src: /src/freeradius-server/src/lib/util/dict_util.c:899,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:901,1
    - Dst: dict_attr_finalise
      Src: /src/freeradius-server/src/lib/util/dict_util.c:901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 8
    argNames:
    - filename
    - line
    - da_p
    - parent
    - name
    - attr
    - type
    - args
    argTypes:
    - char*
    - int
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - char*
    - unsigned int
    - fr_type_t
    - dict_attr_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 885
    functionDepth: 6
    functionLinenumber: 885
    functionLinenumberEnd: 904
    functionName: _dict_attr_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_finalise
    - dict_attr_num_init
    - dict_attr_init_common
    linkageType: ''
    returnType: int
    signature: "int _dict_attr_init(char const *filename, int line,\n\t\t    fr_dict_attr_t
      **da_p,\n\t\t    fr_dict_attr_t const *parent,\n\t\t    char const *name, unsigned
      int attr,\n\t\t    fr_type_t type, dict_attr_args_t const *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:938,1
    - Dst: dict_attr_init_common
      Src: /src/freeradius-server/src/lib/util/dict_util.c:938,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:945,1
    - Dst: dict_attr_finalise
      Src: /src/freeradius-server/src/lib/util/dict_util.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - filename
    - line
    - da_p
    - parent
    - name
    - type
    - args
    argTypes:
    - char*
    - int
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - char*
    - fr_type_t
    - dict_attr_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 932
    functionDepth: 6
    functionLinenumber: 932
    functionLinenumberEnd: 948
    functionName: _dict_attr_init_name_only
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_finalise
    - dict_attr_init_common
    linkageType: ''
    returnType: int
    signature: "int _dict_attr_init_name_only(char const *filename, int line,\n\t\t\t
      fr_dict_attr_t **da_p,\n\t\t\t fr_dict_attr_t const *parent,\n\t\t\t char const
      *name,\n\t\t\t fr_type_t type, dict_attr_args_t const *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:960,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:962,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:966,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 970
    functionName: _dict_attr_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_dict_attr_ref
    - talloc_get_type_abort_const
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _dict_attr_free(fr_dict_attr_t *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_util.c:993,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:994,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1000,1
    - Dst: dict_attr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1000,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1002,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - proto
    argTypes:
    - TALLOC_CTX*
    - fr_dict_protocol_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 1009
    functionName: dict_attr_alloc_null
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - talloc_free
    - talloc_zero
    - dict_attr_ext_alloc_size
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *dict_attr_alloc_null(TALLOC_CTX *ctx, fr_dict_protocol_t
      const *proto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1033,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1034,1
    - Dst: _dict_attr_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1036,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - filename
    - line
    - ctx
    - dict
    - name
    - proto_number
    - args
    argTypes:
    - char*
    - int
    - TALLOC_CTX*
    - fr_dict_t*
    - char*
    - int
    - dict_attr_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1025
    functionDepth: 7
    functionLinenumber: 1025
    functionLinenumberEnd: 1042
    functionName: _dict_attr_alloc_root
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_alloc_null
    - unlikely
    - _dict_attr_init
    - talloc_free
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *_dict_attr_alloc_root(char const *filename, int line,\n\t\t\t\t
      \     TALLOC_CTX *ctx,\n\t\t\t\t      fr_dict_t const *dict,\n\t\t\t\t      char
      const *name, int proto_number,\n\t\t\t\t      dict_attr_args_t const *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1067,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1068,1
    - Dst: _dict_attr_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1070,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 8
    argNames:
    - filename
    - line
    - ctx
    - parent
    - name
    - attr
    - type
    - args
    argTypes:
    - char*
    - int
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - char*
    - int
    - fr_type_t
    - dict_attr_args_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1059
    functionDepth: 7
    functionLinenumber: 1059
    functionLinenumberEnd: 1076
    functionName: _dict_attr_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_alloc_null
    - unlikely
    - _dict_attr_init
    - talloc_free
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *_dict_attr_alloc(char const *filename, int line,\n\t\t\t\t
      TALLOC_CTX *ctx,\n\t\t\t\t fr_dict_attr_t const *parent,\n\t\t\t\t char const
      *name, int attr,\n\t\t\t\t fr_type_t type, dict_attr_args_t const *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1094,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1099,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1101,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1103,1
    - Dst: dict_attr_ext_copy_all
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1110,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1112,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1115,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1117,1
    - Dst: dict_attr_acopy_aliases
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - parent
    - in
    - name
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1122
    functionName: dict_attr_acopy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_acopy_aliases
    - dict_attr_alloc
    - talloc_free
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_assert
    - dict_attr_ext_copy_all
    - DA_VERIFY
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *dict_attr_acopy(TALLOC_CTX *ctx, fr_dict_attr_t const
      *parent, fr_dict_attr_t const *in,\n\t\t\t\tchar const *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1127,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1132,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1141,1
    - Dst: dict_attr_acopy_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1145,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1146
    functionName: fr_dict_attr_acopy_local
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - dict_attr_acopy_children
    - UNCONST
    linkageType: ''
    returnType: int
    signature: int fr_dict_attr_acopy_local(fr_dict_attr_t const *dst, fr_dict_attr_t
      const *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_acopy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1153,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1156,1
    - Dst: dict_attr_child_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1159,1
    - Dst: dict_attr_add_to_namespace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1161,1
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1163,1
    - Dst: dict_attr_acopy_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1165,1
    - Dst: dict_attr_alias_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - dict
    - dst
    - src
    - child
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1174
    functionName: dict_attr_acopy_child
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_acopy_children
    - dict_attr_alias_add
    - dict_attr_acopy
    - dict_attr_add_to_namespace
    - dict_attr_child_add
    - dict_attr_children
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int dict_attr_acopy_child(fr_dict_t *dict, fr_dict_attr_t *dst, fr_dict_attr_t
      const *src,\n\t\t\t\t fr_dict_attr_t const *child)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1192,1
    - Dst: fr_dict_attr_has_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1192,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1193,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1194,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1194,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1194,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1199,1
    - Dst: fr_dict_attr_iterate_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1200,1
    - Dst: fr_dict_attr_iterate_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1202,1
    - Dst: dict_attr_acopy_child
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1203,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1217,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1219,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1236,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1236,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1240,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1245,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1247,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1249,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1251,1
    - Dst: dict_attr_child_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1254,1
    - Dst: dict_attr_add_to_namespace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1256,1
    - Dst: dict_attr_acopy_child
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1261,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1263,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1266,1
    - Dst: dict_attr_ext_copy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1270,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - dict
    - dst
    - src
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1186
    functionDepth: 5
    functionLinenumber: 1186
    functionLinenumberEnd: 1273
    functionName: dict_attr_acopy_children
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - unlikely
    - dict_attr_acopy_child
    - dict_attr_alloc
    - dict_attr_add_to_namespace
    - fr_strerror_printf
    - likely
    - fr_dict_attr_iterate_children
    - dict_attr_ext_copy
    - dict_attr_child_add
    - fr_assert
    - dict_attr_ext_alloc
    - fr_dict_attr_child_by_num
    - fr_dict_attr_is_key_field
    - fr_dict_attr_has_ext
    - DA_VERIFY
    linkageType: ''
    returnType: int
    signature: int dict_attr_acopy_children(fr_dict_t *dict, fr_dict_attr_t *dst,
      fr_dict_attr_t const *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1287,1
    - Dst: fr_type_is_non_leaf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1287,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1288,1
    - Dst: fr_type_is_non_leaf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1288,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1290,1
    - Dst: fr_dict_attr_has_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1290,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1291,1
    - Dst: fr_dict_attr_has_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1291,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1293,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1295,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1300,1
    - Dst: dict_attr_ext_copy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1304,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1283
    functionDepth: 3
    functionLinenumber: 1283
    functionLinenumberEnd: 1307
    functionName: dict_attr_acopy_enumv
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - dict_attr_ext_copy
    - fr_dict_attr_ext
    - fr_assert
    - fr_hash_table_num_elements
    - fr_type_is_non_leaf
    - fr_dict_attr_has_ext
    linkageType: ''
    returnType: int
    signature: int dict_attr_acopy_enumv(fr_dict_attr_t *dst, fr_dict_attr_t const
      *src)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1339,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1339,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1345,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1347,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1349,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1353,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1361,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1370,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1372,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1377,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1379,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1380,1
    - Dst: dict_alias_reref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1386,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1387,1
    - Dst: dict_attr_alias_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - fr_dict_attr_t *dst
    - src
    argTypes:
    - UNUSED
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1394
    functionName: dict_attr_acopy_aliases
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - dict_attr_alias_add
    - fr_hash_table_iter_next
    - fr_dict_attr_by_name
    - fr_dict_attr_common_parent
    - fr_strerror_printf
    - fr_hash_table_iter_init
    - fr_assert
    - dict_alias_reref
    - fr_type_to_str
    - fr_dict_attr_ref
    linkageType: ''
    returnType: int
    signature: int dict_attr_acopy_aliases(UNUSED fr_dict_attr_t *dst, fr_dict_attr_t
      const *src)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1410,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1415,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1425,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1426,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1430,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1431,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1432,1
    - Dst: dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1436,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1438,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1451,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1452,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1453,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1472,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1479,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1479,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1483,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1485,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1489,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1490,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - parent
    - alias
    - ref
    - from_public
    argTypes:
    - fr_dict_attr_t*
    - char*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1399
    functionDepth: 3
    functionLinenumber: 1399
    functionLinenumberEnd: 1495
    functionName: dict_attr_alias_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - unlikely
    - dict_attr_alloc
    - talloc_free
    - fr_dict_attr_common_parent
    - fr_strerror_printf
    - fr_strerror_const
    - fr_assert
    - dict_attr_by_name
    - fr_hash_table_insert
    - fr_dict_attr_is_key_field
    - fr_type_to_str
    - fr_dict_attr_ref
    linkageType: ''
    returnType: int
    signature: int dict_attr_alias_add(fr_dict_attr_t const *parent, char const *alias,
      fr_dict_attr_t const *ref, bool from_public)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1511,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1514,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1516,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1520,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1522,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1530,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1531,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1536,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1547,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1548,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1550,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1552,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1557,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1558,1
    - Dst: dict_attr_ref_set
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1561,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1507
    functionDepth: 3
    functionLinenumber: 1507
    functionLinenumberEnd: 1565
    functionName: dict_protocol_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_by_name
    - dict_attr_ref_set
    - fr_hash_table_find
    - fr_strerror_printf
    - dict_dependent_add
    - fr_assert
    - fr_dict_attr_add
    - strcmp
    - fr_dict_attr_child_by_num
    - fr_hash_table_insert
    linkageType: ''
    returnType: int
    signature: int dict_protocol_add(fr_dict_t *dict)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_IF_NULL
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1585,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1587,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1589,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1593,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1596,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1600,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1602,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1608,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1611,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1613,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1616,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1617,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1624,1
    - Dst: fr_hash_table_replace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1638,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1639,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - dict
    - name
    - num
    argTypes:
    - fr_dict_t*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1644
    functionName: dict_vendor_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_hash_table_find
    - fr_strerror_printf
    - talloc_strdup
    - INTERNAL_IF_NULL
    - talloc_zero
    - strlen
    - strcmp
    - fr_hash_table_replace
    - fr_strerror_const
    - fr_hash_table_insert
    linkageType: ''
    returnType: int
    signature: int dict_vendor_add(fr_dict_t *dict, char const *name, unsigned int
      num)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1665
    functionName: dict_attr_can_have_children
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dict_attr_can_have_children(fr_dict_attr_t const *da)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1684,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1686,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1688,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1689,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1690,1
    - Dst: dict_attr_can_have_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1694,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1695,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1697,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1702,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1704,1
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1720,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1722,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1724,1
    - Dst: dict_attr_children_set
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1727,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1751,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1752,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1755,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1755,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1759,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1675
    functionDepth: 3
    functionLinenumber: 1675
    functionLinenumberEnd: 1764
    functionName: dict_attr_child_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - memcpy
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_strerror_const
    - dict_attr_can_have_children
    - dict_attr_children
    - fr_assert
    - talloc_zero_array
    - fr_dict_vendor_num_by_da
    - fr_type_to_str
    - dict_attr_children_set
    - fr_dict_attr_ref
    - DA_VERIFY
    linkageType: ''
    returnType: int
    signature: int dict_attr_child_add(fr_dict_attr_t *parent, fr_dict_attr_t *child)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1844,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1845,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1845,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1849,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1850,1
    - Dst: dict_attr_valid
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1857,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1869,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1871,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1884,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1898,1
    - Dst: dict_attr_num_init_name_only
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1898,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1908,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1910,1
    - Dst: dict_attr_add_to_namespace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1924,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1933,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1935,1
    - Dst: dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1939,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1940,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1840
    functionDepth: 4
    functionLinenumber: 1840
    functionLinenumberEnd: 1947
    functionName: fr_dict_attr_add_initialised
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_valid
    - fr_dict_attr_by_name
    - dict_attr_num_init_name_only
    - dict_attr_add_to_namespace
    - fr_strerror_printf
    - dict_attr_by_name
    - fr_dict_attr_child_by_num
    - dict_attr_child_by_num
    - fr_strerror_const
    - fr_dict_attr_unconst
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int fr_dict_attr_add_initialised(fr_dict_attr_t *da)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1967,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1968,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1969,1
    - Dst: dict_attr_can_have_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1973,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1974,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1976,1
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1980,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1981,1
    - Dst: dict_attr_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1983,1
    - Dst: fr_dict_attr_add_initialised
      Src: /src/freeradius-server/src/lib/util/dict_util.c:1986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - dict
    - parent
    - name
    - attr
    - type
    - flags
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    - char*
    - unsigned int
    - fr_type_t
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1962
    functionDepth: 5
    functionLinenumber: 1962
    functionLinenumberEnd: 1987
    functionName: fr_dict_attr_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 4
    functionsReached:
    - unlikely
    - dict_attr_alloc_null
    - fr_strerror_printf
    - dict_attr_can_have_children
    - fr_dict_attr_add_initialised
    - dict_attr_init
    - fr_type_to_str
    - fr_dict_attr_ref
    linkageType: ''
    returnType: int
    signature: "int fr_dict_attr_add(fr_dict_t *dict, fr_dict_attr_t const *parent,\n\t\t
      \    char const *name, unsigned int attr, fr_type_t type, fr_dict_attr_flags_t
      const *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2006,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2007,1
    - Dst: dict_attr_init_name_only
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2009,1
    - Dst: fr_dict_attr_add_initialised
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - dict
    - parent
    - name
    - type
    - flags
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    - char*
    - fr_type_t
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 2001
    functionDepth: 5
    functionLinenumber: 2001
    functionLinenumberEnd: 2012
    functionName: fr_dict_attr_add_name_only
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 4
    functionsReached:
    - dict_attr_alloc_null
    - unlikely
    - dict_attr_init_name_only
    - fr_dict_attr_add_initialised
    linkageType: ''
    returnType: int
    signature: "int fr_dict_attr_add_name_only(fr_dict_t *dict, fr_dict_attr_t const
      *parent,\n\t\t\t       char const *name, fr_type_t type, fr_dict_attr_flags_t
      const *flags)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2026,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2031,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2035,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2037,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2044,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2045,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2049,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2050,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2050,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2055,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2059,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2061,1
    - Dst: fr_hash_table_talloc_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2069,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2072,1
    - Dst: fr_hash_table_talloc_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2076,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2079,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2088,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2091,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2095,1
    - Dst: dict_enum_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2101,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2107,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2112,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2113,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2114,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2118,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2119,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2120,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2121,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2126,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2126,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2127,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2139,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2141,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2149,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2150,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2152,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2153,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2157,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2160,1
    - Dst: fr_hash_table_replace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2172,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2173,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2177,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 105
    argCount: 6
    argNames:
    - da
    - name
    - value
    - coerce
    - takes_precedence
    - key_child_ref
    argTypes:
    - fr_dict_attr_t*
    - char*
    - fr_value_box_t*
    - bool
    - bool
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2015
    functionDepth: 7
    functionLinenumber: 2015
    functionLinenumberEnd: 2186
    functionName: dict_attr_enum_add_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - memcpy
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_cond_assert
    - talloc_strdup
    - dict_enum_ext_alloc
    - fr_value_box_alloc
    - strlen
    - fr_value_box_cast
    - fr_value_box_cmp
    - fr_dict_attr_is_key_field
    - fr_type_to_str
    - fr_hash_table_talloc_alloc
    - unlikely
    - fr_dict_attr_ext
    - fr_strerror_const
    - fr_dict_enum_by_name
    - fr_strerror_printf_push
    - talloc_free
    - talloc_zero
    - fr_hash_table_replace
    - fr_hash_table_insert
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: "int dict_attr_enum_add_name(fr_dict_attr_t *da, char const *name,\n\t\t\t
      \   fr_value_box_t const *value,\n\t\t\t    bool coerce, bool takes_precedence,\n\t\t\t
      \   fr_dict_attr_t const *key_child_ref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - da
    - name
    - value
    - coerce
    - takes_precedence
    argTypes:
    - fr_dict_attr_t*
    - char*
    - fr_value_box_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2211
    functionDepth: 8
    functionLinenumber: 2211
    functionLinenumberEnd: 2216
    functionName: fr_dict_enum_add_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_enum_add_name
    linkageType: ''
    returnType: int
    signature: "int fr_dict_enum_add_name(fr_dict_attr_t *da, char const *name,\n\t\t\t
      \      fr_value_box_t const *value,\n\t\t\t       bool coerce, bool takes_precedence)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2232,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2236,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2240,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2244,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2248,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2252,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2256,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2260,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2264,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2268,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2269,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2280,1
    - Dst: fr_dict_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2282,1
    - Dst: fr_value_box_increment
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2286,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2288,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2289,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2293,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - da
    - name
    argTypes:
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2223
    functionDepth: 9
    functionLinenumber: 2223
    functionLinenumberEnd: 2296
    functionName: fr_dict_enum_add_name_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - fr_hash_string
    - fr_dict_enum_by_value
    - fr_dict_enum_add_name
    - fr_strerror_printf
    - fr_strerror_const
    - fr_value_box_increment
    - fr_dict_enum_by_name
    - fr_type_to_str
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: int
    signature: int fr_dict_enum_add_name_next(fr_dict_attr_t *da, char const *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 29
    argCount: 3
    argNames:
    - a
    - b
    - is_ancestor
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2307
    functionDepth: 0
    functionLinenumber: 2307
    functionLinenumberEnd: 2340
    functionName: fr_dict_attr_common_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_common_parent(fr_dict_attr_t const *a,
      fr_dict_attr_t const *b, bool is_ancestor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2358,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2360,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - out
    - oid
    argTypes:
    - unsigned int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2377
    functionName: fr_dict_oid_component_legacy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_const
    - strtoul
    linkageType: ''
    returnType: int
    signature: int fr_dict_oid_component_legacy(unsigned int *out, char const **oid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_oid_component_legacy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2410,1
    - Dst: dict_attr_can_have_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2422,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2423,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2438,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2440,1
    - Dst: fr_dict_attr_by_oid_legacy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2452,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - parent
    - attr
    - oid
    argTypes:
    - fr_dict_attr_t**
    - unsigned int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2393
    functionDepth: 2
    functionLinenumber: 2393
    functionLinenumberEnd: 2468
    functionName: fr_dict_attr_by_oid_legacy
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - fr_dict_oid_component_legacy
    - fr_strerror_printf
    - dict_attr_can_have_children
    - fr_dict_attr_by_oid_legacy
    - dict_attr_child_by_num
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dict_attr_by_oid_legacy(fr_dict_attr_t const **parent, unsigned
      int *attr, char const *oid)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2488,1
    - Dst: dict_attr_can_have_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2497,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2498,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2501,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2502,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2503,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2505,1
    - Dst: fr_dict_attr_by_name_substr
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2508,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2510,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2516,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2516,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2518,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2519,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2520,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2520,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2524,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2526,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2527,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2530,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2539,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2544,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2545,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2546,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2547,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2547,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2549,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2556,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2557,1
    - Dst: dict_attr_alias
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2561,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2562,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2562,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 5
    argNames:
    - err
    - out
    - parent
    - in
    - tt
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2484
    functionDepth: 4
    functionLinenumber: 2484
    functionLinenumberEnd: 2567
    functionName: fr_dict_oid_component
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_out
    - fr_strerror_printf
    - fr_dict_attr_by_name_substr
    - fr_sbuff_current
    - fr_type_to_str
    - unlikely
    - fr_sbuff_set_to_start
    - fr_table_str_by_value
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - FR_SBUFF
    - fr_sbuff_marker
    - dict_attr_can_have_children
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_is_terminal
    - dict_attr_alias
    - fr_sbuff_is_char
    - dict_attr_child_by_num
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_oid_component(fr_dict_attr_err_t *err,\n\t\t\t        fr_dict_attr_t
      const **out, fr_dict_attr_t const *parent,\n\t\t\t        fr_sbuff_t *in, fr_sbuff_term_t
      const *tt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2587,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2591,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2598,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2598,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2598,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2600,1
    - Dst: fr_dict_oid_component
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2607,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2609,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2616,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2617,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2620,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - err
    - out
    - parent
    - in
    - tt
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2583
    functionDepth: 5
    functionLinenumber: 2583
    functionLinenumberEnd: 2621
    functionName: fr_dict_attr_by_oid_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 4
    functionsReached:
    - fr_dict_oid_component
    - fr_sbuff_next_if_char
    - fr_sbuff_marker
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - fr_sbuff_set
    - fr_dict_root
    - fr_dict_by_da
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_by_oid_substr(fr_dict_attr_err_t *err,\n\t\t\t\t
      \    fr_dict_attr_t const **out, fr_dict_attr_t const *parent,\n\t\t\t\t     fr_sbuff_t
      *in, fr_sbuff_term_t const *tt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2634,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2634,1
    - Dst: fr_dict_attr_by_oid_substr
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2637,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - err
    - parent
    - oid
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2632
    functionDepth: 6
    functionLinenumber: 2632
    functionLinenumberEnd: 2650
    functionName: fr_dict_attr_by_oid
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - strlen
    - fr_sbuff_remaining
    - FR_SBUFF_IN
    - fr_dict_attr_by_oid_substr
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_by_oid(fr_dict_attr_err_t *err, fr_dict_attr_t
      const *parent, char const *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2659
    functionDepth: 0
    functionLinenumber: 2659
    functionLinenumberEnd: 2662
    functionName: fr_dict_root
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 95
    functionsReached: []
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_root(fr_dict_t const *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2664
    functionDepth: 0
    functionLinenumber: 2664
    functionLinenumberEnd: 2667
    functionName: fr_dict_is_read_only
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_dict_is_read_only(fr_dict_t const *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2669
    functionDepth: 0
    functionLinenumber: 2669
    functionLinenumberEnd: 2672
    functionName: fr_dict_dl
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: dl_t
    signature: dl_t *fr_dict_dl(fr_dict_t const *dict)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2686,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2690,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2691,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2697,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2697,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2701,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2703,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2706,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2708,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2723,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2724,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2729,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2732,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2733,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2734,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2735,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2736,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2744,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - err
    - out
    - name
    - dict_def
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_t**
    - fr_sbuff_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2674
    functionDepth: 3
    functionLinenumber: 2674
    functionLinenumberEnd: 2745
    functionName: dict_by_protocol_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_set_to_start
    - memcpy
    - fr_hash_table_find
    - FR_SBUFF_OUT
    - fr_strerror_printf
    - fr_strerror_const
    - fr_sbuff_out_bstrncpy_allowed
    - strcasecmp
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_remaining
    - FR_SBUFF
    - memset
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t dict_by_protocol_substr(fr_dict_attr_err_t *err,\n\t\t\t\t
      \ fr_dict_t **out, fr_sbuff_t *name, fr_dict_t const *dict_def)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_by_protocol_substr
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2761,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - err
    - out
    - name
    - dict_def
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_t**
    - fr_sbuff_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2759
    functionDepth: 4
    functionLinenumber: 2759
    functionLinenumberEnd: 2762
    functionName: fr_dict_by_protocol_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - UNCONST
    - dict_by_protocol_substr
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_dict_by_protocol_substr(fr_dict_attr_err_t *err, fr_dict_t
      const **out, fr_sbuff_t *name, fr_dict_t const *dict_def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2770
    functionDepth: 1
    functionLinenumber: 2770
    functionLinenumberEnd: 2776
    functionName: dict_by_protocol_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - fr_hash_table_find
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *dict_by_protocol_name(char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2784
    functionDepth: 1
    functionLinenumber: 2784
    functionLinenumberEnd: 2790
    functionName: dict_by_protocol_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_find
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *dict_by_protocol_num(unsigned int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2808,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2810,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2811,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2812,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2816,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2798
    functionDepth: 1
    functionLinenumber: 2798
    functionLinenumberEnd: 2828
    functionName: dict_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 15
    functionsReached:
    - fr_cond_assert_msg
    - fr_strerror_printf
    - talloc_get_type_abort
    - DA_VERIFY
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *dict_by_da(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2839
    functionDepth: 2
    functionLinenumber: 2839
    functionLinenumberEnd: 2842
    functionName: fr_dict_by_protocol_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - dict_by_protocol_name
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_by_protocol_name(char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_by_protocol_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2852
    functionDepth: 2
    functionLinenumber: 2852
    functionLinenumberEnd: 2855
    functionName: fr_dict_by_protocol_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_by_protocol_num
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_by_protocol_num(unsigned int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2868
    functionDepth: 2
    functionLinenumber: 2868
    functionLinenumberEnd: 2871
    functionName: fr_dict_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 15
    functionsReached:
    - dict_by_da
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_by_da(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dict1
    - dict2
    argTypes:
    - fr_dict_t*
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2888
    functionName: fr_dict_compatible
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_dict_compatible(fr_dict_t const *dict1, fr_dict_t const *dict2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2902,1
    - Dst: dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2905,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2897
    functionDepth: 3
    functionLinenumber: 2897
    functionLinenumberEnd: 2908
    functionName: fr_dict_vendor_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - dict_by_da
    - fr_dict_vendor_num_by_da
    - fr_hash_table_find
    linkageType: ''
    returnType: fr_dict_vendor_t
    signature: fr_dict_vendor_t *fr_dict_vendor_by_da(fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_IF_NULL
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2923,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dict
    - name
    argTypes:
    - fr_dict_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2931
    functionName: fr_dict_vendor_by_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - INTERNAL_IF_NULL
    - fr_hash_table_find
    linkageType: ''
    returnType: fr_dict_vendor_t
    signature: fr_dict_vendor_t *fr_dict_vendor_by_name(fr_dict_t const *dict, char
      const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_IF_NULL
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2944,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dict
    - vendor_pen
    argTypes:
    - fr_dict_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2942
    functionDepth: 1
    functionLinenumber: 2942
    functionLinenumberEnd: 2947
    functionName: fr_dict_vendor_by_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - INTERNAL_IF_NULL
    - fr_hash_table_find
    linkageType: ''
    returnType: fr_dict_vendor_t
    signature: fr_dict_vendor_t *fr_dict_vendor_by_num(fr_dict_t const *dict, uint32_t
      vendor_pen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2966,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2967,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2968,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2972,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2974,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2979,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2980,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:2981,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - vendor_root
    - vendor_pen
    argTypes:
    - fr_dict_attr_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2957
    functionDepth: 1
    functionLinenumber: 2957
    functionLinenumberEnd: 2986
    functionName: fr_dict_vendor_da_by_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - dict_attr_child_by_num
    - fr_type_to_str
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_vendor_da_by_num(fr_dict_attr_t const *vendor_root,
      uint32_t vendor_pen)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3031,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3038,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3048,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3048,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3051,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3066,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3066,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3069,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3083,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3085,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3089,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3089,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3092,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3129,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3130,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3132,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3133,1
    - Dst: DICT_NAME_APPEND
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3135,1
    - Dst: DICT_NAME_APPEND
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3136,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3139,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3141,1
    - Dst: DICT_NAME_APPEND
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3145,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3149,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3150,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3150,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3151,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3152,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3152,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3154,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3161,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 86
    argCount: 8
    argNames:
    - err
    - out
    - dict_def
    - in
    - tt
    - internal
    - foreign
    - func
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    - bool
    - dict_attr_resolve_func_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3022
    functionDepth: 1
    functionLinenumber: 3022
    functionLinenumberEnd: 3162
    functionName: dict_attr_search
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_hash_table_iter_next
    - talloc_free
    - fr_strerror_printf
    - talloc_strdup
    - fr_sbuff_marker
    - DICT_NAME_APPEND
    - fr_hash_table_iter_init
    - fr_sbuff_current
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_adv_until
    - func
    - talloc_array_length
    - fr_box_strvalue_len
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - fr_dict_root
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t dict_attr_search(fr_dict_attr_err_t *err, fr_dict_attr_t
      const **out,\n\t\t\t   fr_dict_t const *dict_def,\n\t\t\t   fr_sbuff_t *in,
      fr_sbuff_term_t const *tt,\n\t\t\t   bool internal, bool foreign,\n\t\t\t   dict_attr_resolve_func_t
      func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _in
    - ','
    - _dict
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3128
    functionName: DICT_NAME_APPEND
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DICT_NAME_APPEND(_in, _dict)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3176,1
    - Dst: dict_by_protocol_substr
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3184,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3189,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3199,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3202,1
    - Dst: dict_attr_search
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3208,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 8
    argNames:
    - err
    - out
    - dict_def
    - in
    - tt
    - internal
    - foreign
    - func
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    - bool
    - dict_attr_resolve_func_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3212
      start: 3170
    functionDepth: 4
    functionLinenumber: 3170
    functionLinenumberEnd: 3212
    functionName: dict_attr_search_qualified
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - dict_attr_search
    - fr_sbuff_next_if_char
    - dict_by_protocol_substr
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t dict_attr_search_qualified(fr_dict_attr_err_t *err, fr_dict_attr_t
      const **out,\n\t\t\t\t     fr_dict_t const *dict_def,\n\t\t\t\t     fr_sbuff_t
      *in, fr_sbuff_term_t const *tt,\n\t\t\t\t     bool internal, bool foreign,\n\t\t\t\t
      \    dict_attr_resolve_func_t func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_search_qualified
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - err
    - out
    - dict_def
    - name
    - tt
    - internal
    - foreign
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3237
    functionDepth: 5
    functionLinenumber: 3237
    functionLinenumberEnd: 3244
    functionName: fr_dict_attr_search_by_qualified_name_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - dict_attr_search_qualified
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_search_by_qualified_name_substr(fr_dict_attr_err_t
      *err, fr_dict_attr_t const **out,\n\t\t\t\t\t\t       fr_dict_t const *dict_def,\n\t\t\t\t\t\t
      \      fr_sbuff_t *name, fr_sbuff_term_t const *tt,\n\t\t\t\t\t\t       bool
      internal, bool foreign)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_search_qualified
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - err
    - out
    - dict_def
    - name
    - tt
    - internal
    - foreign
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3266
    functionDepth: 5
    functionLinenumber: 3266
    functionLinenumberEnd: 3273
    functionName: fr_dict_attr_search_by_name_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - dict_attr_search_qualified
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_search_by_name_substr(fr_dict_attr_err_t *err,
      fr_dict_attr_t const **out,\n\t\t\t\t\t     fr_dict_t const *dict_def,\n\t\t\t\t\t
      \    fr_sbuff_t *name, fr_sbuff_term_t const *tt,\n\t\t\t\t\t     bool internal,
      bool foreign)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_search_qualified
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - err
    - out
    - dict_def
    - in
    - tt
    - internal
    - foreign
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3295
    functionDepth: 5
    functionLinenumber: 3295
    functionLinenumberEnd: 3302
    functionName: fr_dict_attr_search_by_qualified_oid_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_search_qualified
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_search_by_qualified_oid_substr(fr_dict_attr_err_t
      *err, fr_dict_attr_t const **out,\n\t\t\t\t\t\t      fr_dict_t const *dict_def,\n\t\t\t\t\t\t
      \     fr_sbuff_t *in, fr_sbuff_term_t const *tt,\n\t\t\t\t\t\t      bool internal,
      bool foreign)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_search_qualified
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - err
    - out
    - dict_def
    - in
    - tt
    - internal
    - foreign
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3331
      start: 3324
    functionDepth: 5
    functionLinenumber: 3324
    functionLinenumberEnd: 3331
    functionName: fr_dict_attr_search_by_oid_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - dict_attr_search_qualified
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_search_by_oid_substr(fr_dict_attr_err_t *err,
      fr_dict_attr_t const **out,\n\t\t\t\t\t    fr_dict_t const *dict_def,\n\t\t\t\t\t
      \   fr_sbuff_t *in, fr_sbuff_term_t const *tt,\n\t\t\t\t\t    bool internal,
      bool foreign)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3352,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3352,1
    - Dst: fr_dict_attr_search_by_qualified_oid_substr
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3354,1
    - Dst: fr_sbuff_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3359,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - err
    - dict_def
    - name
    - internal
    - foreign
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_t*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3343
    functionDepth: 6
    functionLinenumber: 3343
    functionLinenumberEnd: 3366
    functionName: fr_dict_attr_search_by_qualified_oid
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - fr_strerror_printf
    - fr_sbuff_init_in
    - fr_sbuff_len
    - strlen
    - fr_dict_attr_search_by_qualified_oid_substr
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: "fr_dict_attr_t *fr_dict_attr_search_by_qualified_oid(fr_dict_attr_err_t
      *err, fr_dict_t const *dict_def,\n\t\t\t\t\t\t\t   char const *name,\n\t\t\t\t\t\t\t
      \  bool internal, bool foreign)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3402,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3408,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3411,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3411,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3415,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3417,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3420,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3422,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3433,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3435,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3438,1
    - Dst: dict_attr_namespace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3442,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3444,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3446,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3447,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3450,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3453,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3462,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3463,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3464,1
    - Dst: dict_attr_alias
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3467,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3468,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3468,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3473,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 5
    argNames:
    - err
    - out
    - parent
    - name
    - tt
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3394
    functionDepth: 4
    functionLinenumber: 3394
    functionLinenumberEnd: 3474
    functionName: fr_dict_attr_by_name_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 8
    functionsReached:
    - unlikely
    - fr_sbuff_set_to_start
    - fr_hash_table_find
    - dict_attr_alias
    - FR_SBUFF_OUT
    - fr_strerror_printf
    - memset
    - fr_sbuff_out_bstrncpy_allowed
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - dict_attr_namespace
    - FR_SBUFF
    - fr_strerror_const
    - fr_dict_attr_ref
    - fr_dict_by_da
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_by_name_substr(fr_dict_attr_err_t *err, fr_dict_attr_t
      const **out,\n\t\t\t\t      fr_dict_attr_t const *parent, fr_sbuff_t *name,
      UNUSED fr_sbuff_term_t const *tt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3484,1
    - Dst: dict_attr_namespace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3487,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3489,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3494,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3497,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - err
    - parent
    - name
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3479
    functionDepth: 4
    functionLinenumber: 3479
    functionLinenumberEnd: 3513
    functionName: dict_attr_by_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 37
    functionsReached:
    - fr_hash_table_find
    - fr_strerror_printf
    - dict_attr_namespace
    - DA_VERIFY
    - fr_dict_by_da
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *dict_attr_by_name(fr_dict_attr_err_t *err, fr_dict_attr_t
      const *parent, char const *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3529,1
    - Dst: dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3531,1
    - Dst: dict_attr_alias
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3534,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - err
    - parent
    - name
    argTypes:
    - fr_dict_attr_err_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3525
    functionDepth: 5
    functionLinenumber: 3525
    functionLinenumberEnd: 3538
    functionName: fr_dict_attr_by_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 36
    functionsReached:
    - dict_attr_alias
    - unlikely
    - dict_attr_by_name
    - DA_VERIFY
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_by_name(fr_dict_attr_err_t *err, fr_dict_attr_t
      const *parent, char const *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3549,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3554,1
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3557,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3564,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3572,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - parent
    - attr
    argTypes:
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3543
    functionDepth: 3
    functionLinenumber: 3543
    functionLinenumberEnd: 3580
    functionName: dict_attr_child_by_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 31
    functionsReached:
    - memcpy
    - dict_attr_children
    - talloc_array_length
    - fr_dict_attr_ref
    - DA_VERIFY
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *dict_attr_child_by_num(fr_dict_attr_t const *parent,
      unsigned int attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3594,1
    - Dst: dict_attr_alias
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3597,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - attr
    argTypes:
    - fr_dict_attr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3590
    functionDepth: 4
    functionLinenumber: 3590
    functionLinenumberEnd: 3601
    functionName: fr_dict_attr_child_by_num
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 28
    functionsReached:
    - dict_attr_alias
    - unlikely
    - dict_attr_child_by_num
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_child_by_num(fr_dict_attr_t const *parent,
      unsigned int attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3615,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3617,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - da
    - iter
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_enum_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3622
      start: 3611
    functionDepth: 2
    functionLinenumber: 3611
    functionLinenumberEnd: 3622
    functionName: fr_dict_enum_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_strerror_printf
    - fr_hash_table_iter_init
    linkageType: ''
    returnType: fr_dict_enum_value_t
    signature: fr_dict_enum_value_t *fr_dict_enum_iter_init(fr_dict_attr_t const *da,
      fr_dict_enum_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3635,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3637,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - da
    - iter
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_enum_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3642
      start: 3632
    functionDepth: 2
    functionLinenumber: 3632
    functionLinenumberEnd: 3642
    functionName: fr_dict_enum_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_strerror_printf
    - fr_hash_table_iter_next
    linkageType: ''
    returnType: fr_dict_enum_value_t
    signature: fr_dict_enum_value_t *fr_dict_enum_iter_next(fr_dict_attr_t const *da,
      fr_dict_enum_iter_t *iter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3656,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3658,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3659,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - da
    - value
    argTypes:
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3675
      start: 3652
    functionDepth: 2
    functionLinenumber: 3652
    functionLinenumberEnd: 3675
    functionName: fr_dict_enum_by_value
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 8
    functionsReached:
    - fr_dict_attr_ext
    - fr_hash_table_find
    - fr_strerror_printf
    - fr_type_to_str
    linkageType: ''
    returnType: fr_dict_enum_value_t
    signature: fr_dict_enum_value_t *fr_dict_enum_by_value(fr_dict_attr_t const *da,
      fr_value_box_t const *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - da
    - value
    argTypes:
    - fr_dict_attr_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3693
      start: 3685
    functionDepth: 3
    functionLinenumber: 3685
    functionLinenumberEnd: 3693
    functionName: fr_dict_enum_name_by_value
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 7
    functionsReached:
    - fr_dict_enum_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_dict_enum_name_by_value(fr_dict_attr_t const *da, fr_value_box_t
      const *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3704,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3706,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3707,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3716,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - da
    - name
    - len
    argTypes:
    - fr_dict_attr_t*
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3698
    functionDepth: 2
    functionLinenumber: 3698
    functionLinenumberEnd: 3719
    functionName: fr_dict_enum_by_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 27
    functionsReached:
    - fr_hash_table_find
    - fr_strerror_printf
    - fr_dict_attr_ext
    - strlen
    - fr_type_to_str
    linkageType: ''
    returnType: fr_dict_enum_value_t
    signature: fr_dict_enum_value_t *fr_dict_enum_by_name(fr_dict_attr_t const *da,
      char const *name, ssize_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3727,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3736,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3746,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3750,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3752,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - out
    - da
    - in
    argTypes:
    - fr_dict_enum_value_t**
    - fr_dict_attr_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3771
      start: 3724
    functionDepth: 2
    functionLinenumber: 3724
    functionLinenumberEnd: 3771
    functionName: fr_dict_enum_by_name_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_char
    - fr_hash_table_find
    - fr_dict_attr_ext
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - fr_sbuff_next
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_dict_enum_by_name_substr(fr_dict_enum_value_t **out, fr_dict_attr_t
      const *da, fr_sbuff_t *in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3821,1
    - Dst: fr_sbuff_is_in_charset
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3824,1
    - Dst: fr_sbuff_is_alpha
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3825,1
    - Dst: fr_sbuff_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3826,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3830,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3831,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3833,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3836,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3838,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3839,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3845,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3846,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3848,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3851,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3851,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3855,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - out
    - err
    - in
    - tt
    argTypes:
    - fr_sbuff_t*
    - fr_sbuff_parse_error_t*
    - fr_sbuff_t*
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3856
      start: 3818
    functionDepth: 3
    functionLinenumber: 3818
    functionLinenumberEnd: 3856
    functionName: fr_dict_enum_name_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_is_terminal
    - fr_sbuff_next
    - fr_sbuff_set_to_start
    - fr_sbuff_out_bstrncpy_exact
    - fr_sbuff_used
    - fr_strerror_const
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - fr_sbuff_is_in_charset
    - fr_sbuff_is_alpha
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_enum_name_from_substr(fr_sbuff_t *out, fr_sbuff_parse_error_t
      *err,\n\t\t\t\t\tfr_sbuff_t *in, fr_sbuff_term_t const *tt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3866,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3867,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3869,1
    - Dst: talloc_bstr_tolower
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3872,1
    - Dst: dl_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3874,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3876,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3877,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3880,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3893,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3894,1
    - Dst: talloc_bstr_tolower
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3897,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3905,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3908,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3909,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - dict
    - name
    argTypes:
    - fr_dict_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3858
    functionDepth: 2
    functionLinenumber: 3858
    functionLinenumberEnd: 3924
    functionName: dict_dlopen
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - talloc_bstr_tolower
    - dl_by_name
    - fr_strerror_printf_push
    - dlsym
    - talloc_strlen
    - fr_strerror_const
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int dict_dlopen(fr_dict_t *dict, char const *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3935,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3937
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 3937
    functionName: _dict_dependent_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _dict_dependent_cmp(void const *a, void const *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3953,1
    - Dst: talloc_zero::talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3957,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3958,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3969,1
    - Dst: dependent::dependent
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3969,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - dict
    - dependent
    argTypes:
    - fr_dict_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3980
      start: 3949
    functionDepth: 4
    functionLinenumber: 3949
    functionLinenumberEnd: 3980
    functionName: dict_dependent_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_strdup
    - talloc_zero::talloc_zero
    - fr_rb_find
    - fr_rb_insert
    - dependent::dependent
    linkageType: ''
    returnType: int
    signature: int dict_dependent_add(fr_dict_t *dict, char const *dependent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3995,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3997,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_util.c:3999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dict
    - dependent
    argTypes:
    - fr_dict_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3993
    functionDepth: 5
    functionLinenumber: 3993
    functionLinenumberEnd: 4000
    functionName: fr_dict_dependent_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_dependent_add
    - fr_dict_unconst
    linkageType: ''
    returnType: int
    signature: int fr_dict_dependent_add(fr_dict_t const *dict, char const *dependent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4012,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4014,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4019,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4025,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - dict
    - dependent
    argTypes:
    - fr_dict_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4008
    functionDepth: 4
    functionLinenumber: 4008
    functionLinenumberEnd: 4031
    functionName: dict_dependent_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_strerror_printf
    - fr_rb_delete
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int dict_dependent_remove(fr_dict_t *dict, char const *dependent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4043
      start: 4040
    functionDepth: 1
    functionLinenumber: 4040
    functionLinenumberEnd: 4043
    functionName: dict_has_dependents
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    linkageType: ''
    returnType: bool
    signature: bool dict_has_dependents(fr_dict_t *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_has_dependents
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4051,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4053,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4055,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4057,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4046
    functionDepth: 2
    functionLinenumber: 4046
    functionLinenumberEnd: 4060
    functionName: dependent_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_inorder
    - fr_rb_iter_next_inorder
    - dict_has_dependents
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dependent_debug(fr_dict_t *dict)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_flatten
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4071,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4072,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4079,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4080,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4081,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4089
      start: 4064
    functionDepth: 1
    functionLinenumber: 4064
    functionLinenumberEnd: 4089
    functionName: dict_autoref_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_hash_table_flatten
    - fr_strerror_printf
    - fr_dict_free
    - talloc_array_length
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_autoref_free(fr_dict_t *dict)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4101,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4102,1
    - Dst: dict_attr_ref_null
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4102,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4108,1
    - Dst: fr_dict_t*::proto::free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4117,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4120,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4120,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4121,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4126,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4126,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4127,1
    - Dst: dict_has_dependents
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4132,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4136,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4138,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4140,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4141,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4152,1
    - Dst: dl_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4158,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4091
    functionDepth: 5
    functionLinenumber: 4091
    functionLinenumberEnd: 4166
    functionName: _dict_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 12
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_free
    - fr_cond_assert
    - fr_strerror_printf
    - dict_attr_ref_null
    - fr_dict_t*::proto::free
    - fr_dict_attr_child_by_num
    - fr_rb_iter_init_inorder
    - fr_strerror_const
    - fr_hash_table_delete
    - fr_dict_attr_ref
    - dl_free
    - dict_has_dependents
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int _dict_free(fr_dict_t *dict)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4179,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4183,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4185,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4187,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4191,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4196,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4203,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4205,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4213,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4215,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4223,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4225,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4232,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4234,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4250
      start: 4174
    functionDepth: 1
    functionLinenumber: 4174
    functionLinenumberEnd: 4250
    functionName: dict_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    - talloc_set_destructor
    - talloc_free
    - fr_strerror_printf
    - fr_hash_table_alloc
    - fr_rb_inline_alloc
    - talloc_zero
    - talloc_pool
    - fr_strerror_const
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *dict_alloc(TALLOC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dict_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4276,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4276,1
    - Dst: dict_attr_alloc_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4283,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4285,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4286,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4290,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - parent
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4299
      start: 4263
    functionDepth: 2
    functionLinenumber: 4263
    functionLinenumberEnd: 4299
    functionName: fr_dict_protocol_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - dict_alloc
    - unlikely
    - dict_attr_alloc_root
    - talloc_free
    - UNCONST
    - DA_VERIFY
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_protocol_alloc(fr_dict_t const *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4312,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dict
    - dependent
    argTypes:
    - fr_dict_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4315
      start: 4310
    functionDepth: 1
    functionLinenumber: 4310
    functionLinenumberEnd: 4315
    functionName: fr_dict_const_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - fr_dict_free
    - UNCONST
    linkageType: ''
    returnType: int
    signature: int fr_dict_const_free(fr_dict_t const **dict, char const *dependent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dict_dependent_remove
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4330,1
    - Dst: dict_has_dependents
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4332,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dict
    - dependent
    argTypes:
    - fr_dict_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4326
    functionDepth: 5
    functionLinenumber: 4326
    functionLinenumberEnd: 4344
    functionName: fr_dict_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 12
    functionsReached:
    - dict_dependent_remove
    - dict_has_dependents
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_dict_free(fr_dict_t **dict, char const *dependent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4359,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4360,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4364,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4365,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4366,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4372,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - to_load
    argTypes:
    - fr_dict_enum_autoload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4383
      start: 4353
    functionDepth: 3
    functionLinenumber: 4353
    functionLinenumberEnd: 4383
    functionName: fr_dict_enum_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_dict_enum_by_name
    - unlikely
    - fr_strerror_printf
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_dict_enum_autoload(fr_dict_enum_autoload_t const *to_load)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4400,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4405,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4406,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4417,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4419,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4424,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4424,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4426,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4431,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4435,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4436,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4437,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4441,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - to_load
    argTypes:
    - fr_dict_attr_autoload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4447
      start: 4392
    functionDepth: 7
    functionLinenumber: 4392
    functionLinenumberEnd: 4447
    functionName: fr_dict_attr_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 18
    functionsReached:
    - fr_type_is_structural
    - fr_strerror_printf
    - DA_VERIFY
    - fr_dict_attr_by_oid
    - fr_type_to_str
    - fr_dict_root
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_dict_attr_autoload(fr_dict_attr_autoload_t const *to_load)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4464,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4465,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4472,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4473,1
    - Dst: fr_dict_protocol_afrom_file
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - to_load
    - dependent
    argTypes:
    - fr_dict_autoload_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4482
      start: 4457
    functionDepth: 1
    functionLinenumber: 4457
    functionLinenumberEnd: 4482
    functionName: _fr_dict_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_protocol_afrom_file
    - unlikely
    - fr_dict_internal_afrom_file
    - strcmp
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int _fr_dict_autoload(fr_dict_autoload_t const *to_load, char const
      *dependent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_const_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - to_free
    - dependent
    argTypes:
    - fr_dict_autoload_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4505
      start: 4490
    functionDepth: 2
    functionLinenumber: 4490
    functionLinenumberEnd: 4505
    functionName: _fr_dict_autofree
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_const_free
    linkageType: ''
    returnType: int
    signature: int _fr_dict_autofree(fr_dict_autoload_t const *to_free, char const
      *dependent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dict_autofree
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - fr_dict_autoload_talloc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4526
      start: 4523
    functionDepth: 3
    functionLinenumber: 4523
    functionLinenumberEnd: 4526
    functionName: _fr_dict_autoload_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - _fr_dict_autofree
    linkageType: ''
    returnType: int
    signature: int _fr_dict_autoload_talloc_free(fr_dict_autoload_talloc_t const *to_free)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4546,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4547,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4549,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4555,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4556,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4557,1
    - Dst: _fr_dict_autoload
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4561,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - out
    - proto
    - dependent
    argTypes:
    - TALLOC_CTX*
    - fr_dict_t**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4568
      start: 4541
    functionDepth: 2
    functionLinenumber: 4541
    functionLinenumberEnd: 4568
    functionName: _fr_dict_autoload_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _fr_dict_autoload
    - talloc_free
    - talloc_strdup
    - talloc
    - fr_strerror_const
    linkageType: ''
    returnType: fr_dict_autoload_talloc_t
    signature: fr_dict_autoload_talloc_t *_fr_dict_autoload_talloc(TALLOC_CTX *ctx,
      fr_dict_t const **out, char const *proto, char const *dependent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_autoload
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4584
      start: 4579
    functionDepth: 4
    functionLinenumber: 4579
    functionLinenumberEnd: 4584
    functionName: fr_dl_dict_enum_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_dict_enum_autoload
    linkageType: ''
    returnType: int
    signature: int fr_dl_dict_enum_autoload(UNUSED dl_t const *module, void *symbol,
      UNUSED void *user_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4595
    functionDepth: 8
    functionLinenumber: 4595
    functionLinenumberEnd: 4600
    functionName: fr_dl_dict_attr_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_autoload
    linkageType: ''
    returnType: int
    signature: int fr_dl_dict_attr_autoload(UNUSED dl_t const *module, void *symbol,
      UNUSED void *user_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4616
      start: 4611
    functionDepth: 1
    functionLinenumber: 4611
    functionLinenumberEnd: 4616
    functionName: fr_dl_dict_autoload
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_dl_dict_autoload(UNUSED dl_t const *module, void *symbol, UNUSED
      void *user_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - symbol
    - user_ctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4624
    functionDepth: 1
    functionLinenumber: 4624
    functionLinenumberEnd: 4627
    functionName: fr_dl_dict_autofree
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_dl_dict_autofree(UNUSED dl_t const *module, void *symbol, UNUSED
      void *user_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4632
      start: 4629
    functionDepth: 0
    functionLinenumber: 4629
    functionLinenumberEnd: 4632
    functionName: _dict_global_free_at_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _dict_global_free_at_exit(void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_disarm
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4644,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4649,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4651,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4652,1
    - Dst: dict_autoref_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4654,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4657,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4659,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4660,1
    - Dst: dict_dependent_remove
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4661,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4663,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4665,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4665,1
    - Dst: dict_dependent_remove
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4676,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4678,1
    - Dst: fr_dict_gctx_debug
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4683,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - gctx
    argTypes:
    - fr_dict_gctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4695
      start: 4634
    functionDepth: 5
    functionLinenumber: 4634
    functionLinenumberEnd: 4695
    functionName: _dict_global_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_iter_next
    - talloc_free
    - FR_FAULT_LOG
    - talloc_get_type_abort
    - fr_hash_table_iter_init
    - dict_autoref_free
    - fr_strerror
    - fr_atexit_global_disarm
    - dict_dependent_remove
    - fr_dict_gctx_debug
    linkageType: ''
    returnType: int
    signature: int _dict_global_free(fr_dict_gctx_t *gctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4714,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4716,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4721,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4723,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4725,1
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4729,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4731,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4735,1
    - Dst: dl_loader_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4738,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4743,1
    - Dst: fr_atexit_global
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4747,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - free_at_exit
    - dict_dir
    argTypes:
    - TALLOC_CTX*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4750
      start: 4710
    functionDepth: 1
    functionLinenumber: 4710
    functionLinenumberEnd: 4750
    functionName: fr_dict_global_ctx_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 17
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - fr_hash_table_alloc
    - talloc_strdup
    - fr_atexit_global
    - dl_loader_init
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: fr_dict_gctx_t
    signature: fr_dict_gctx_t *fr_dict_global_ctx_init(TALLOC_CTX *ctx, bool free_at_exit,
      char const *dict_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gctx
    - enable
    argTypes:
    - fr_dict_gctx_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4757
    functionDepth: 0
    functionLinenumber: 4757
    functionLinenumberEnd: 4760
    functionName: fr_dict_global_ctx_perm_check
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_dict_global_ctx_perm_check(fr_dict_gctx_t *gctx, bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gctx
    argTypes:
    - fr_dict_gctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4766
    functionDepth: 0
    functionLinenumber: 4766
    functionLinenumberEnd: 4769
    functionName: fr_dict_global_ctx_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 6
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_dict_global_ctx_set(fr_dict_gctx_t const *gctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gctx
    argTypes:
    - fr_dict_gctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4782
    functionDepth: 1
    functionLinenumber: 4782
    functionLinenumberEnd: 4787
    functionName: fr_dict_global_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - talloc_const_free
    linkageType: ''
    returnType: int
    signature: int fr_dict_global_ctx_free(fr_dict_gctx_t const *gctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4800,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dict_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4796
    functionDepth: 1
    functionLinenumber: 4796
    functionLinenumberEnd: 4805
    functionName: fr_dict_global_ctx_dir_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - talloc_strdup
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_dict_global_ctx_dir_set(char const *dict_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4807
    functionDepth: 0
    functionLinenumber: 4807
    functionLinenumberEnd: 4810
    functionName: fr_dict_global_ctx_dir
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_dict_global_ctx_dir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4826,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4828,1
    - Dst: dict_hash_tables_finalise
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4829,1
    - Dst: dict_hash_tables_finalise
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4837
      start: 4816
    functionDepth: 1
    functionLinenumber: 4816
    functionLinenumberEnd: 4837
    functionName: fr_dict_global_ctx_read_only
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_iter_init
    - dict_hash_tables_finalise
    - fr_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: void fr_dict_global_ctx_read_only(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4853,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4857,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4858,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4860,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4861,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4863,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4864,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4870,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4872,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4873,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - fp
    - gctx
    argTypes:
    - FILE*
    - fr_dict_gctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4843
    functionDepth: 2
    functionLinenumber: 4843
    functionLinenumberEnd: 4877
    functionName: fr_dict_gctx_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_iter_next
    - fr_rb_iter_next_inorder
    - fprintf
    - fr_hash_table_iter_init
    - fr_rb_iter_init_inorder
    linkageType: ''
    returnType: void
    signature: void fr_dict_gctx_debug(FILE *fp, fr_dict_gctx_t const *gctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - fr_dict_global_ctx_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4882
    functionDepth: 1
    functionLinenumber: 4882
    functionLinenumberEnd: 4887
    functionName: fr_dict_global_ctx_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_iter_init
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_global_ctx_iter_init(fr_dict_global_ctx_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iter
    argTypes:
    - fr_dict_global_ctx_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4894
      start: 4889
    functionDepth: 1
    functionLinenumber: 4889
    functionLinenumberEnd: 4894
    functionName: fr_dict_global_ctx_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_iter_next
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_global_ctx_iter_next(fr_dict_global_ctx_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4902,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4903,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4903,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4907
      start: 4900
    functionDepth: 1
    functionLinenumber: 4900
    functionLinenumberEnd: 4907
    functionName: fr_dict_unconst
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 12
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - UNCONST
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_unconst(fr_dict_t const *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4916,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4917,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4918,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4918,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4912
    functionDepth: 2
    functionLinenumber: 4912
    functionLinenumberEnd: 4923
    functionName: fr_dict_attr_unconst
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 6
    functionsReached:
    - unlikely
    - dict_by_da
    - fr_strerror_printf
    - UNCONST
    - fr_dict_root
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unconst(fr_dict_attr_t const *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4930
      start: 4925
    functionDepth: 0
    functionLinenumber: 4925
    functionLinenumberEnd: 4930
    functionName: fr_dict_internal
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_internal(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4941,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4944,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4953,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4959,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4960,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4960,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4976
      start: 4935
    functionDepth: 1
    functionLinenumber: 4935
    functionLinenumberEnd: 4976
    functionName: fr_dict_valid_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - strlen
    - fr_box_strvalue_len
    - memcmp
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dict_valid_name(char const *name, ssize_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4983,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4988,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4989,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/dict_util.c:4989,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5001
      start: 4978
    functionDepth: 1
    functionLinenumber: 4978
    functionLinenumberEnd: 5001
    functionName: fr_dict_valid_oid_str
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - strlen
    - fr_box_strvalue_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dict_valid_oid_str(char const *name, ssize_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5018,1
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5021,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5052,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - parent
    - prev
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5060
      start: 5011
    functionDepth: 3
    functionLinenumber: 5011
    functionLinenumberEnd: 5060
    functionName: fr_dict_attr_iterate_children
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - dict_attr_children
    - fr_dict_attr_ref
    - talloc_array_length
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_iterate_children(fr_dict_attr_t const
      *parent, fr_dict_attr_t const **prev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5070,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5072,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5072,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5074,1
    - Dst: dict_walk
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5082,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - da
    - callback
    - uctx
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_walk_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5088
      start: 5065
    functionDepth: 3
    functionLinenumber: 5065
    functionLinenumberEnd: 5088
    functionName: dict_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - dict_attr_children
    - talloc_array_length
    - dict_walk
    - fr_dict_attr_ref
    - callback
    linkageType: ''
    returnType: int
    signature: int dict_walk(fr_dict_attr_t const *da, fr_dict_walk_t callback, void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_walk
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - da
    - callback
    - uctx
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_walk_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5090
    functionDepth: 4
    functionLinenumber: 5090
    functionLinenumberEnd: 5093
    functionName: fr_dict_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached:
    - dict_walk
    linkageType: ''
    returnType: int
    signature: int fr_dict_walk(fr_dict_attr_t const *da, fr_dict_walk_t callback,
      void *uctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5101,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5104,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5106,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5110,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5112,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5117,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5122,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5124,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5127,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5129,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5135,1
    - Dst: fr_dict_attr_has_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5139,1
    - Dst: fr_fatal_assert_fail
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5140,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5150,1
    - Dst: fr_dict_attr_has_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5150,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5153,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5155,1
    - Dst: fr_dict_attr_has_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5155,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5158,1
    - Dst: dict_attr_namespace
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5163,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5164,1
    - Dst: fr_hash_table_verify
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5165,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - file
    - line
    - da
    argTypes:
    - char*
    - int
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5172
      start: 5096
    functionDepth: 4
    functionLinenumber: 5096
    functionLinenumberEnd: 5172
    functionName: fr_dict_attr_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_hash_table_verify
    - dict_attr_namespace
    - fr_fatal_assert_fail
    - fr_assert_msg
    - fr_dict_vendor_num_by_da
    - talloc_get_type_abort_const
    - fr_dict_attr_has_ext
    - fr_type_to_str
    linkageType: ''
    returnType: void
    signature: void fr_dict_attr_verify(char const *file, int line, fr_dict_attr_t
      const *da)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5244
      start: 5186
    functionDepth: 3
    functionLinenumber: 5186
    functionLinenumberEnd: 5244
    functionName: fr_dict_attr_can_contain
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 3
    functionsReached:
    - fr_dict_attr_ref
    linkageType: ''
    returnType: bool
    signature: bool fr_dict_attr_can_contain(fr_dict_attr_t const *parent, fr_dict_attr_t
      const *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5252
      start: 5249
    functionDepth: 0
    functionLinenumber: 5249
    functionLinenumberEnd: 5252
    functionName: fr_dict_protocol
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fr_dict_protocol_t
    signature: fr_dict_protocol_t *fr_dict_protocol(fr_dict_t const *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5268
      start: 5257
    functionDepth: 0
    functionLinenumber: 5257
    functionLinenumberEnd: 5268
    functionName: fr_dict_unlocal
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_unlocal(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5278
      start: 5273
    functionDepth: 0
    functionLinenumber: 5273
    functionLinenumberEnd: 5278
    functionName: fr_dict_proto_dict
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_proto_dict(fr_dict_t const *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5283,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5283,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5291,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5291,1
    - Dst: dict_attr_ref_aset
      Src: /src/freeradius-server/src/lib/util/dict_util.c:5293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - da_p
    - ref
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5294
      start: 5280
    functionDepth: 4
    functionLinenumber: 5280
    functionLinenumberEnd: 5294
    functionName: fr_dict_attr_set_group
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_util.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_assert
    - dict_attr_ref_aset
    linkageType: ''
    returnType: int
    signature: int fr_dict_attr_set_group(fr_dict_attr_t **da_p, fr_dict_attr_t const
      *ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/freeradius-server/src/lib/util/hw.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: fr_hw_cache_line_size
    functionSourceFile: /src/freeradius-server/src/lib/util/hw.c
    functionUses: 0
    functionsReached:
    - sysctlbyname
    linkageType: ''
    returnType: size_t
    signature: size_t fr_hw_cache_line_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/freeradius-server/src/lib/util/hw.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: fr_hw_num_cores_active
    functionSourceFile: /src/freeradius-server/src/lib/util/hw.c
    functionUses: 1
    functionsReached:
    - sysctlbyname
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hw_num_cores_active(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/hw.c:61,1
    - Dst: fscanf
      Src: /src/freeradius-server/src/lib/util/hw.c:63,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/hw.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: fr_hw_cache_line_size
    functionSourceFile: /src/freeradius-server/src/lib/util/hw.c
    functionUses: 0
    functionsReached:
    - fscanf
    - fclose
    - fopen
    linkageType: ''
    returnType: size_t
    signature: size_t fr_hw_cache_line_size(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/hw.c:82,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/hw.c:84,1
    - Dst: fscanf
      Src: /src/freeradius-server/src/lib/util/hw.c:87,1
    - Dst: fgetc
      Src: /src/freeradius-server/src/lib/util/hw.c:89,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/hw.c:92,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hw.c:101,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/hw.c:102,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/hw.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 114
    functionName: fr_hw_num_cores_active
    functionSourceFile: /src/freeradius-server/src/lib/util/hw.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fgetc
    - fr_strerror_printf
    - fr_syserror
    - snprintf
    - fopen
    - fscanf
    - fclose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hw_num_cores_active(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: fr_hw_cache_line_size
    functionSourceFile: /src/freeradius-server/src/lib/util/hw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fr_hw_cache_line_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: fr_hw_num_cores_active
    functionSourceFile: /src/freeradius-server/src/lib/util/hw.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hw_num_cores_active(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/rb_expire.c:41,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/rb_expire.c:44,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/lib/util/rb_expire.c:44,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/rb_expire.c:46,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/rb_expire.c:50,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/rb_expire.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - expire
    - data
    - now
    argTypes:
    - fr_rb_expire_t*
    - void*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: fr_rb_expire_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/rb_expire.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_rb_insert
    - fr_time_add_time_delta
    - fr_dlist_insert_tail
    - fr_rb_node_inline_in_tree
    - fr_dlist_item_to_entry
    linkageType: ''
    returnType: bool
    signature: bool fr_rb_expire_insert(fr_rb_expire_t *expire, void *data, fr_time_t
      now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: us
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: us(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/base64.c:329,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/base64.c:330,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/base64.c:332,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/base64.c:337,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:342,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:343,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:344,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:345,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base64.c:350,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:354,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:355,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:356,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base64.c:360,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:361,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:365,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:366,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/base64.c:369,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:370,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/base64.c:379,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/base64.c:381,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/base64.c:382,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - out
    - in
    - add_padding
    - alphabet
    argTypes:
    - fr_sbuff_t*
    - fr_dbuff_t*
    - bool
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 384
    functionName: fr_base64_encode_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.c
    functionUses: 1
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_dbuff_set
    - fr_dbuff_current
    - fr_dbuff_extend_lowat
    - fr_sbuff_terminate
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_dbuff_advance
    - FR_SBUFF_SET_RETURN
    - FR_DBUFF
    - fr_strerror_clear
    - FR_SBUFF
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_base64_encode_nstd(fr_sbuff_t *out, fr_dbuff_t *in,\n\t\t\t
      \     bool add_padding, char const alphabet[static SBUFF_CHAR_CLASS])"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/base64.c:404,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/base64.c:405,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/base64.c:412,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:413,1
    - Dst: fr_is_base64_nstd
      Src: /src/freeradius-server/src/lib/util/base64.c:415,1
    - Dst: fr_is_base64_nstd
      Src: /src/freeradius-server/src/lib/util/base64.c:416,1
    - Dst: fr_is_base64_nstd
      Src: /src/freeradius-server/src/lib/util/base64.c:417,1
    - Dst: fr_is_base64_nstd
      Src: /src/freeradius-server/src/lib/util/base64.c:418,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base64.c:420,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:421,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:421,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:422,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:422,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:423,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:423,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base64.c:425,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/base64.c:426,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:430,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/base64.c:433,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/base64.c:436,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/base64.c:441,1
    - Dst: fr_is_base64_nstd
      Src: /src/freeradius-server/src/lib/util/base64.c:441,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/base64.c:441,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/base64.c:442,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/base64.c:445,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:452,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base64.c:454,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:455,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:455,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/base64.c:462,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/base64.c:464,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:465,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:465,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:466,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/util/base64.c:466,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/base64.c:472,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:477,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/base64.c:483,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base64.c:484,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/base64.c:488,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base64.c:489,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/base64.c:490,1
    - Dst: fr_sbuff_extend
      Src: /src/freeradius-server/src/lib/util/base64.c:496,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/base64.c:497,1
    - Dst: fr_sbuff_char
      Src: /src/freeradius-server/src/lib/util/base64.c:498,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/base64.c:502,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/base64.c:505,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/base64.c:506,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 6
    argNames:
    - err
    - out
    - in
    - expect_padding
    - no_trailing
    - alphabet
    argTypes:
    - fr_sbuff_parse_error_t*
    - fr_dbuff_t*
    - fr_sbuff_t*
    - bool
    - bool
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 507
    functionName: fr_base64_decode_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_sbuff_current
    - FR_DBUFF
    - us
    - fr_dbuff_used
    - fr_sbuff_behind
    - FR_SBUFF
    - fr_strerror_const
    - fr_sbuff_char
    - fr_sbuff_marker
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_advance
    - fr_sbuff_extend_lowat
    - fr_sbuff_next_if_char
    - fr_sbuff_extend
    - fr_dbuff_set
    - fr_dbuff_in_bytes
    - fr_sbuff_set
    - fr_is_base64_nstd
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_base64_decode_nstd(fr_sbuff_parse_error_t *err, fr_dbuff_t
      *out, fr_sbuff_t *in,\n\t\t\t\tbool expect_padding, bool no_trailing, uint8_t
      const alphabet[static SBUFF_CHAR_CLASS])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/strlcat.c:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 60
    functionName: strlcat
    functionSourceFile: /src/freeradius-server/src/lib/util/strlcat.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcat(char *dst, char const *src, size_t siz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/strerror.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: _fr_logging_free
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_logging_free(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:91,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/strerror.c:95,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/strerror.c:98,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/strerror.c:101,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/strerror.c:104,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/strerror.c:109,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 115
    functionName: fr_strerror_init
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dlist_talloc_init
    - fr_atexit_thread_local
    - talloc
    - fr_perror
    - talloc_pool
    linkageType: ''
    returnType: fr_log_buffer_t
    signature: fr_log_buffer_t *fr_strerror_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - fr_log_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: pool_alt
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *pool_alt(fr_log_buffer_t *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:136,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - fr_log_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: pool_alt_free_children
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - talloc_free_children
    linkageType: ''
    returnType: void
    signature: void pool_alt_free_children(fr_log_buffer_t *buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:154,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:155,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/strerror.c:161,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/strerror.c:165,1
    - Dst: pool_alt
      Src: /src/freeradius-server/src/lib/util/strerror.c:165,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:166,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/strerror.c:168,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:172,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:173,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:174,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:175,1
    - Dst: pool_alt_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:181,1
    - Dst: fr_dlist_clear
      Src: /src/freeradius-server/src/lib/util/strerror.c:182,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 186
    functionName: strerror_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 5
    functionsReached:
    - unlikely
    - fr_strerror_init
    - va_end
    - pool_alt_free_children
    - fr_vasprintf
    - talloc
    - va_copy
    - fr_perror
    - fr_strerror_clear
    - fr_dlist_insert_tail
    - pool_alt
    - fr_dlist_clear
    linkageType: ''
    returnType: fr_log_entry_t
    signature: fr_log_entry_t *strerror_vprintf(char const *file, int line, char const
      *fmt, va_list ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/strerror.c:208,1
    - Dst: pool_alt
      Src: /src/freeradius-server/src/lib/util/strerror.c:208,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:209,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/strerror.c:211,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:215,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:216,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:217,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:218,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/strerror.c:229,1
    - Dst: pool_alt_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - file
    - line
    - buffer
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - fr_log_buffer_t*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 237
    functionName: strerror_vprintf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 1
    functionsReached:
    - unlikely
    - va_end
    - fr_dlist_num_elements
    - pool_alt_free_children
    - fr_vasprintf
    - talloc
    - va_copy
    - fr_perror
    - pool_alt
    linkageType: ''
    returnType: fr_log_entry_t
    signature: "fr_log_entry_t *strerror_vprintf_push(char const *file, int line,\n\t\t\t\t\t
      \    fr_log_buffer_t *buffer, char const *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:253,1
    - Dst: strerror_vprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:254,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: _fr_strerror_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 2
    functionsReached:
    - va_end
    - strerror_vprintf
    - va_copy
    linkageType: ''
    returnType: void
    signature: void _fr_strerror_vprintf(char const *file, int line, char const *fmt,
      va_list ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:273,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:274,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:276,1
    - Dst: strerror_vprintf_push
      Src: /src/freeradius-server/src/lib/util/strerror.c:277,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:278,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:280,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 283
    functionName: _fr_strerror_vprintf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 1
    functionsReached:
    - unlikely
    - va_end
    - fr_strerror_init
    - strerror_vprintf_push
    - va_copy
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void _fr_strerror_vprintf_push(char const *file, int line, char const
      *fmt, va_list ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:300,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:301,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:303,1
    - Dst: strerror_vprintf_push
      Src: /src/freeradius-server/src/lib/util/strerror.c:304,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:305,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:307,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - file
    - line
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 310
    functionName: _fr_strerror_vprintf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 1
    functionsReached:
    - unlikely
    - va_end
    - fr_strerror_init
    - strerror_vprintf_push
    - va_copy
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: void _fr_strerror_vprintf_push_head(char const *file, int line, char
      const *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:330,1
    - Dst: strerror_vprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:331,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:332,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:334,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/strerror.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - file
    - line
    - subject
    - offset
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 338
    functionName: _fr_strerror_marker_vprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 1
    functionsReached:
    - unlikely
    - va_end
    - talloc_strdup
    - va_copy
    - strerror_vprintf
    linkageType: ''
    returnType: void
    signature: "void _fr_strerror_marker_vprintf(char const *file, int line,\n\t\t\t\t
      char const *subject, size_t offset, char const *fmt, va_list ap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:359,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:360,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:362,1
    - Dst: strerror_vprintf_push
      Src: /src/freeradius-server/src/lib/util/strerror.c:363,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:364,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:366,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/strerror.c:368,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - file
    - line
    - subject
    - offset
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 372
    functionName: _fr_strerror_marker_vprintf_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 1
    functionsReached:
    - unlikely
    - va_end
    - fr_strerror_init
    - strerror_vprintf_push
    - talloc_strdup
    - va_copy
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: "void _fr_strerror_marker_vprintf_push(char const *file, int line,\n\t\t\t\t
      \     char const *subject, size_t offset, char const *fmt, va_list ap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:393,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:394,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/strerror.c:396,1
    - Dst: strerror_vprintf_push
      Src: /src/freeradius-server/src/lib/util/strerror.c:397,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:398,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:400,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/strerror.c:402,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - file
    - line
    - subject
    - offset
    - fmt
    - ap
    argTypes:
    - char*
    - int
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: _fr_strerror_marker_vprintf_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 1
    functionsReached:
    - unlikely
    - va_end
    - fr_strerror_init
    - strerror_vprintf_push
    - talloc_strdup
    - va_copy
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: "void _fr_strerror_marker_vprintf_push_head(char const *file, int line,\n\t\t\t\t\t
      \  char const *subject, size_t offset, char const *fmt, va_list ap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:417,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:418,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/strerror.c:420,1
    - Dst: pool_alt
      Src: /src/freeradius-server/src/lib/util/strerror.c:420,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:421,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/strerror.c:422,1
    - Dst: pool_alt_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:439,1
    - Dst: fr_dlist_clear
      Src: /src/freeradius-server/src/lib/util/strerror.c:440,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - file
    - line
    - msg
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 444
    functionName: strerror_const
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 288
    functionsReached:
    - unlikely
    - fr_strerror_init
    - pool_alt_free_children
    - talloc
    - fr_perror
    - fr_dlist_insert_tail
    - pool_alt
    - fr_dlist_clear
    linkageType: ''
    returnType: fr_log_entry_t
    signature: fr_log_entry_t *strerror_const(char const *file, int line, char const
      *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_const
      Src: /src/freeradius-server/src/lib/util/strerror.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - file
    - line
    - msg
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: _fr_strerror_const
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - strerror_const
    linkageType: ''
    returnType: void
    signature: void _fr_strerror_const(char const *file, int line, char const *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/strerror.c:479,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:479,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/strerror.c:481,1
    - Dst: pool_alt
      Src: /src/freeradius-server/src/lib/util/strerror.c:481,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:482,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/strerror.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - file
    - line
    - buffer
    - msg
    argTypes:
    - char*
    - int
    - fr_log_buffer_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 501
    functionName: strerror_const_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 25
    functionsReached:
    - unlikely
    - fr_dlist_num_elements
    - talloc
    - fr_perror
    - pool_alt
    - talloc_free_children
    linkageType: ''
    returnType: fr_log_entry_t
    signature: "fr_log_entry_t *strerror_const_push(char const *file, int line,\n\t\t\t\t\t\t\t\t\t
      fr_log_buffer_t *buffer, char const *msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:517,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:518,1
    - Dst: strerror_const_push
      Src: /src/freeradius-server/src/lib/util/strerror.c:520,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:521,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - file
    - line
    - msg
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 524
    functionName: _fr_strerror_const_push
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - unlikely
    - strerror_const_push
    - fr_dlist_insert_tail
    - fr_strerror_init
    linkageType: ''
    returnType: void
    signature: void _fr_strerror_const_push(char const *file, int line, char const
      *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_init
      Src: /src/freeradius-server/src/lib/util/strerror.c:540,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:541,1
    - Dst: strerror_const_push
      Src: /src/freeradius-server/src/lib/util/strerror.c:543,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:544,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - file
    - line
    - msg
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: _fr_strerror_const_push_head
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - unlikely
    - strerror_const_push
    - fr_strerror_init
    - fr_dlist_insert_head
    linkageType: ''
    returnType: void
    signature: void _fr_strerror_const_push_head(char const *file, int line, char
      const *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:564,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:566,1
    - Dst: fr_dlist_clear
      Src: /src/freeradius-server/src/lib/util/strerror.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: fr_strerror
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 75
    functionsReached:
    - unlikely
    - fr_dlist_tail
    - fr_dlist_clear
    linkageType: ''
    returnType: char
    signature: char *fr_strerror(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:585,1
    - Dst: fr_dlist_clear
      Src: /src/freeradius-server/src/lib/util/strerror.c:587,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:588,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/strerror.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 590
    functionName: fr_strerror_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 51
    functionsReached:
    - talloc_free_children
    - unlikely
    - fr_dlist_clear
    linkageType: ''
    returnType: void
    signature: void fr_strerror_clear(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:608,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:610,1
    - Dst: fr_dlist_clear
      Src: /src/freeradius-server/src/lib/util/strerror.c:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - subject
    - offset
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 623
    functionName: fr_strerror_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_dlist_clear
    linkageType: ''
    returnType: char
    signature: char *fr_strerror_marker(char const **subject, size_t *offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:637,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/strerror.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 643
    functionName: fr_strerror_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_dlist_tail
    linkageType: ''
    returnType: char
    signature: char *fr_strerror_peek(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:661,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - subject
    - offset
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 670
    functionName: fr_strerror_marker_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - unlikely
    linkageType: ''
    returnType: char
    signature: char *fr_strerror_marker_peek(char const **subject, size_t *offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:691,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:693,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/strerror.c:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 699
    functionName: fr_strerror_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 3
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_dlist_remove
    linkageType: ''
    returnType: char
    signature: char *fr_strerror_pop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:718,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/strerror.c:720,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/strerror.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - subject
    - offset
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 729
    functionName: fr_strerror_marker_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_dlist_remove
    linkageType: ''
    returnType: char
    signature: char *fr_strerror_marker_pop(char const **subject, size_t *offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_marker_pop
      Src: /src/freeradius-server/src/lib/util/strerror.c:745,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.c:747,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:748,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:749,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:752,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:754,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/strerror.c:755,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/strerror.c:758,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:761,1
    - Dst: fr_strerror_marker_pop
      Src: /src/freeradius-server/src/lib/util/strerror.c:764,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:766,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 770
    functionName: fr_perror
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 64
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_strerror_marker_pop
    - fprintf
    - talloc_vasprintf
    linkageType: ''
    returnType: void
    signature: void fr_perror(char const *fmt, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/strerror.c:792,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/strerror.c:794,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:795,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/strerror.c:796,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/strerror.c:797,1
    - Dst: fr_strerror_marker_pop
      Src: /src/freeradius-server/src/lib/util/strerror.c:799,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:801,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:803,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/strerror.c:804,1
    - Dst: fr_strerror_marker_pop
      Src: /src/freeradius-server/src/lib/util/strerror.c:808,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/strerror.c:810,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/strerror.c:813,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/strerror.c:815,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - line_sep
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 816
    functionName: fr_perror_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/strerror.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - unlikely
    - fr_sbuff_start
    - va_end
    - va_start
    - talloc_free
    - fr_strerror_marker_pop
    - talloc_vasprintf
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: char
    signature: char *fr_perror_to_str(char const *line_sep, char const *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: reverse
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t reverse(uint32_t key)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: parent_of
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t parent_of(uint32_t key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_t*::cmp
      Src: /src/freeradius-server/src/lib/util/hash.c:193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - ht
    - head
    - reversed
    - data
    argTypes:
    - fr_hash_table_t*
    - fr_hash_entry_t*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: list_find
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_t*::cmp
    linkageType: ''
    returnType: fr_hash_entry_t
    signature: "fr_hash_entry_t *list_find(fr_hash_table_t *ht,\n\t\t\t   fr_hash_entry_t
      *head, uint32_t reversed, void const *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_t*::cmp
      Src: /src/freeradius-server/src/lib/util/hash.c:222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - ht
    - head
    - node
    argTypes:
    - fr_hash_table_t*
    - fr_hash_entry_t**
    - fr_hash_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 234
    functionName: list_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_t*::cmp
    linkageType: ''
    returnType: bool
    signature: "bool list_insert(fr_hash_table_t *ht,\n\t\t        fr_hash_entry_t
      **head, fr_hash_entry_t *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/hash.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ht
    - head
    - node
    argTypes:
    - fr_hash_table_t*
    - fr_hash_entry_t**
    - fr_hash_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: list_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: "void list_delete(fr_hash_table_t *ht,\n\t\t\tfr_hash_entry_t **head,
      fr_hash_entry_t *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_t*::free
      Src: /src/freeradius-server/src/lib/util/hash.c:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: _fr_hash_table_free
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_t*::free
    linkageType: ''
    returnType: int
    signature: int _fr_hash_table_free(fr_hash_table_t *ht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/hash.c:292,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/hash.c:294,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/hash.c:310,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hash.c:312,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/hash.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - type
    - hash_func
    - cmp_func
    - free_func
    argTypes:
    - TALLOC_CTX*
    - char*
    - fr_hash_t
    - fr_cmp_t
    - fr_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 323
    functionName: _fr_hash_table_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - talloc_free
    - talloc
    - talloc_zero_array
    linkageType: ''
    returnType: fr_hash_table_t
    signature: "fr_hash_table_t *_fr_hash_table_alloc(TALLOC_CTX *ctx,\n\t\t\t\t      char
      const *type,\n\t\t\t\t      fr_hash_t hash_func,\n\t\t\t\t      fr_cmp_t cmp_func,\n\t\t\t\t
      \     fr_free_t free_func)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parent_of
      Src: /src/freeradius-server/src/lib/util/hash.c:342,1
    - Dst: fr_hash_table_fixup
      Src: /src/freeradius-server/src/lib/util/hash.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ht
    - entry
    argTypes:
    - fr_hash_table_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 375
    functionName: fr_hash_table_fixup
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_fixup
    - parent_of
    linkageType: ''
    returnType: void
    signature: void fr_hash_table_fixup(fr_hash_table_t *ht, uint32_t entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/hash.c:395,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/hash.c:407,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/hash.c:410,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/hash.c:410,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 421
    functionName: fr_hash_table_grow
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - memset
    - talloc_realloc
    - talloc_get_size
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_hash_table_grow(fr_hash_table_t *ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reverse
      Src: /src/freeradius-server/src/lib/util/hash.c:433,1
    - Dst: fr_hash_table_fixup
      Src: /src/freeradius-server/src/lib/util/hash.c:435,1
    - Dst: list_find
      Src: /src/freeradius-server/src/lib/util/hash.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ht
    - key
    - data
    argTypes:
    - fr_hash_table_t*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 438
    functionName: hash_table_find
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 21
    functionsReached:
    - reverse
    - list_find
    - fr_hash_table_fixup
    linkageType: ''
    returnType: fr_hash_entry_t
    signature: "fr_hash_entry_t *hash_table_find(fr_hash_table_t *ht,\n\t\t\t\t\t\t\t\t\t
      uint32_t key, void const *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_table_find
      Src: /src/freeradius-server/src/lib/util/hash.c:454,1
    - Dst: fr_hash_table_t*::hash
      Src: /src/freeradius-server/src/lib/util/hash.c:454,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/hash.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_hash_table_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: fr_hash_table_find
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 21
    functionsReached:
    - UNCONST
    - fr_hash_table_t*::hash
    - hash_table_find
    linkageType: ''
    returnType: void
    signature: void *fr_hash_table_find(fr_hash_table_t *ht, void const *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash_table_find
      Src: /src/freeradius-server/src/lib/util/hash.c:473,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/hash.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ht
    - key
    - data
    argTypes:
    - fr_hash_table_t*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: fr_hash_table_find_by_key
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached:
    - UNCONST
    - hash_table_find
    linkageType: ''
    returnType: void
    signature: void *fr_hash_table_find_by_key(fr_hash_table_t *ht, uint32_t key,
      void const *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/hash.c:497,1
    - Dst: fr_hash_table_t*::hash
      Src: /src/freeradius-server/src/lib/util/hash.c:502,1
    - Dst: reverse
      Src: /src/freeradius-server/src/lib/util/hash.c:504,1
    - Dst: fr_hash_table_fixup
      Src: /src/freeradius-server/src/lib/util/hash.c:506,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/hash.c:512,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hash.c:513,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/hash.c:518,1
    - Dst: list_insert
      Src: /src/freeradius-server/src/lib/util/hash.c:521,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/hash.c:522,1
    - Dst: fr_hash_table_grow
      Src: /src/freeradius-server/src/lib/util/hash.c:531,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_hash_table_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 534
    functionName: fr_hash_table_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 9
    functionsReached:
    - unlikely
    - fr_hash_table_t*::hash
    - talloc_free
    - UNCONST
    - fr_hash_table_fixup
    - reverse
    - talloc_zero
    - list_insert
    - _talloc_get_type_abort
    - fr_hash_table_grow
    linkageType: ''
    returnType: bool
    signature: bool fr_hash_table_insert(fr_hash_table_t *ht, void const *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hash_table_find
      Src: /src/freeradius-server/src/lib/util/hash.c:555,1
    - Dst: fr_hash_table_t*::hash
      Src: /src/freeradius-server/src/lib/util/hash.c:555,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/hash.c:558,1
    - Dst: fr_hash_table_t*::free
      Src: /src/freeradius-server/src/lib/util/hash.c:564,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/hash.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - old
    - ht
    - data
    argTypes:
    - void**
    - fr_hash_table_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 570
    functionName: fr_hash_table_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 2
    functionsReached:
    - fr_hash_table_t*::free
    - fr_hash_table_t*::hash
    - hash_table_find
    - UNCONST
    - fr_hash_table_insert
    linkageType: ''
    returnType: int
    signature: int fr_hash_table_replace(void **old, fr_hash_table_t *ht, void const
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_t*::hash
      Src: /src/freeradius-server/src/lib/util/hash.c:590,1
    - Dst: reverse
      Src: /src/freeradius-server/src/lib/util/hash.c:592,1
    - Dst: fr_hash_table_fixup
      Src: /src/freeradius-server/src/lib/util/hash.c:594,1
    - Dst: list_find
      Src: /src/freeradius-server/src/lib/util/hash.c:596,1
    - Dst: list_delete
      Src: /src/freeradius-server/src/lib/util/hash.c:599,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/hash.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_hash_table_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 606
    functionName: fr_hash_table_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached:
    - list_find
    - fr_hash_table_t*::hash
    - talloc_free
    - reverse
    - list_delete
    - fr_hash_table_fixup
    linkageType: ''
    returnType: void
    signature: void *fr_hash_table_remove(fr_hash_table_t *ht, void const *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_remove
      Src: /src/freeradius-server/src/lib/util/hash.c:621,1
    - Dst: fr_hash_table_t*::free
      Src: /src/freeradius-server/src/lib/util/hash.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_hash_table_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 627
    functionName: fr_hash_table_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 7
    functionsReached:
    - fr_hash_table_t*::free
    - fr_hash_table_remove
    linkageType: ''
    returnType: bool
    signature: bool fr_hash_table_delete(fr_hash_table_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: fr_hash_table_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hash_table_num_elements(fr_hash_table_t *ht)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_fixup
      Src: /src/freeradius-server/src/lib/util/hash.c:676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - ht
    - iter
    argTypes:
    - fr_hash_table_t*
    - fr_hash_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 692
    functionName: fr_hash_table_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 13
    functionsReached:
    - fr_hash_table_fixup
    linkageType: ''
    returnType: void
    signature: void *fr_hash_table_iter_next(fr_hash_table_t *ht, fr_hash_iter_t *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/hash.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ht
    - iter
    argTypes:
    - fr_hash_table_t*
    - fr_hash_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 710
    functionName: fr_hash_table_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 13
    functionsReached:
    - fr_hash_table_iter_next
    linkageType: ''
    returnType: void
    signature: void *fr_hash_table_iter_init(fr_hash_table_t *ht, fr_hash_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/hash.c:723,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hash.c:727,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/hash.c:727,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/hash.c:729,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/hash.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - out
    - ht
    argTypes:
    - TALLOC_CTX*
    - void**[]
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 4
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: fr_hash_table_flatten
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_hash_table_iter_next
    - talloc_array
    - fr_hash_table_iter_init
    - fr_hash_table_num_elements
    linkageType: ''
    returnType: int
    signature: int fr_hash_table_flatten(TALLOC_CTX *ctx, void **out[], fr_hash_table_t
      *ht)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_fixup
      Src: /src/freeradius-server/src/lib/util/hash.c:755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 759
    functionName: fr_hash_table_fill
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_fixup
    linkageType: ''
    returnType: void
    signature: void fr_hash_table_fill(fr_hash_table_t *ht)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/hash.c:773,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hash.c:805,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hash.c:807,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hash.c:813,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hash.c:827,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 832
    functionName: fr_hash_table_info
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: int
    signature: int fr_hash_table_info(fr_hash_table_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 876
    functionName: fr_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hash(void const *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hash
    argTypes:
    - void*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 895
    functionName: fr_hash_update
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hash_update(void const *data, size_t size, uint32_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 911
    functionName: fr_hash_string
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hash_string(char const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/hash.c:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 927
    functionName: fr_hash_case_string
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_hash_case_string(char const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 963
    functionName: fr_hash64
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_hash64(void const *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hash
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 982
    functionName: fr_hash64_update
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_hash64_update(void const *data, size_t size, uint64_t hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/hash.c:992,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/hash.c:993,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/hash.c:995,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/hash.c:995,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/hash.c:1001,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/hash.c:1003,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/hash.c:1004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_hash_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1007
    functionName: fr_hash_table_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_iter_next
    - talloc_get_type_abort
    - fr_hash_table_iter_init
    - fr_assert
    - talloc_array_length
    - _talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_hash_table_verify(fr_hash_table_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/hash.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: hash_int
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_int(void const *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/hash.c:1027,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:1029,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1030,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/hash.c:1033,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1034,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/hash.c:1040,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:1041,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1042,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/hash.c:1045,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:1047,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1048,1
    - Dst: fr_hash_table_info
      Src: /src/freeradius-server/src/lib/util/hash.c:1053,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/hash.c:1061,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:1063,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1064,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/util/hash.c:1068,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:1069,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1070,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/hash.c:1072,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/hash.c:1074,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/hash.c:1075,1
    - Dst: fr_hash_table_info
      Src: /src/freeradius-server/src/lib/util/hash.c:1080,1
    - Dst: fr_hash_table_free
      Src: /src/freeradius-server/src/lib/util/hash.c:1083,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/hash.c:1084,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1021
    functionDepth: 4
    functionLinenumber: 1021
    functionLinenumberEnd: 1087
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/hash.c
    functionUses: 3
    functionsReached:
    - fr_hash_table_info
    - talloc_free
    - fr_hash_table_find
    - fr_hash_table_alloc
    - fprintf
    - fr_hash_table_free
    - talloc_zero_array
    - fr_exit
    - fr_hash_table_delete
    - fr_hash_table_insert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: CHECK_PARENT
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PARENT(_ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _tl
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: TIMER_UCTX_TO_TIME
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMER_UCTX_TO_TIME(_tl, _x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: EVENT_ARMED
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_ARMED(_ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_cmp
      Src: /src/freeradius-server/src/lib/util/timer.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: timer_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_time_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t timer_cmp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:267,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:269,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/timer.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_timer_list_t *parent_tl
    - when
    - uctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: _parent_timer_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_run
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _parent_timer_cb(UNUSED fr_timer_list_t *parent_tl, fr_time_t
      when, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: timer_list_when
      Src: /src/freeradius-server/src/lib/util/timer.c:291,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/lib/util/timer.c:300,1
    - Dst: EVENT_ARMED
      Src: /src/freeradius-server/src/lib/util/timer.c:307,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:308,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/timer.c:310,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:319,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:321,1
    - Dst: EVENT_ARMED
      Src: /src/freeradius-server/src/lib/util/timer.c:321,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/util/timer.c:328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 332
    functionName: timer_list_parent_update
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - timer_list_when
    - fr_time_eq
    - EVENT_ARMED
    - fr_timer_at
    - FR_TIMER_DISARM_RETURN
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int timer_list_parent_update(fr_timer_list_t *tl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:344,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/timer.c:344,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/timer.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tl
    - ev
    argTypes:
    - fr_timer_list_t*
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: timer_lst_insert_at
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_const_push
    - fr_lst_insert
    linkageType: ''
    returnType: int
    signature: int timer_lst_insert_at(fr_timer_list_t *tl, fr_timer_t *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timer_tail
      Src: /src/freeradius-server/src/lib/util/timer.c:366,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/util/timer.c:367,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:368,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:372,1
    - Dst: timer_insert_tail
      Src: /src/freeradius-server/src/lib/util/timer.c:372,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/timer.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tl
    - ev
    argTypes:
    - fr_timer_list_t*
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: timer_ordered_insert_at
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_const
    - fr_strerror_const_push
    - timer_tail
    - timer_insert_tail
    - fr_time_lt
    linkageType: ''
    returnType: int
    signature: int timer_ordered_insert_at(fr_timer_list_t *tl, fr_timer_t *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_disarm
      Src: /src/freeradius-server/src/lib/util/timer.c:392,1
    - Dst: CHECK_PARENT
      Src: /src/freeradius-server/src/lib/util/timer.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: _timer_free
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_timer_disarm
    - CHECK_PARENT
    linkageType: ''
    returnType: int
    signature: int _timer_free(fr_timer_t *ev)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:428,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/timer.c:437,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:438,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:439,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:443,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/util/timer.c:449,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/timer.c:451,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:453,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/timer.c:453,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:455,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:465,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:466,1
    - Dst: EVENT_ARMED
      Src: /src/freeradius-server/src/lib/util/timer.c:474,1
    - Dst: fr_timer_disarm
      Src: /src/freeradius-server/src/lib/util/timer.c:483,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/timer.c:495,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/timer.c:498,1
    - Dst: timer_list_ordered_head
      Src: /src/freeradius-server/src/lib/util/timer.c:529,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/lib/util/timer.c:531,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:532,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/timer.c:535,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:536,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/timer.c:542,1
    - Dst: timer_insert_tail
      Src: /src/freeradius-server/src/lib/util/timer.c:542,1
    - Dst: insert
      Src: /src/freeradius-server/src/lib/util/timer.c:549,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:550,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:556,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:556,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 7
    argNames:
    - TALLOC_CTX *ctx
    - tl
    - ev_p
    - when
    - free_on_fire
    - callback
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_timer_list_t*
    - fr_timer_t**
    - fr_time_t
    - bool
    - fr_timer_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 562
    functionName: _fr_timer_at
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - EVENT_ARMED
    - fr_timer_disarm
    - fr_strerror
    - unlikely
    - talloc_get_type_abort
    - fr_strerror_const
    - fr_time_lt
    - timer_list_ordered_head
    - talloc_set_destructor
    - UNCONST
    - insert
    - fr_assert
    - timer_insert_tail
    - talloc_link_ctx
    - talloc_free
    - talloc_zero
    - timer_list_parent_update
    - EVENT_DEBUG
    linkageType: ''
    returnType: int
    signature: "int _fr_timer_at(NDEBUG_LOCATION_ARGS\n\t\t TALLOC_CTX *ctx, fr_timer_list_t
      *tl, fr_timer_t **ev_p,\n\t\t fr_time_t when,\n\t\t bool free_on_fire, fr_timer_cb_t
      callback, void const *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_timer_at
      Src: /src/freeradius-server/src/lib/util/timer.c:588,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/timer.c:589,1
    - Dst: fr_timer_list_t*::pub::time
      Src: /src/freeradius-server/src/lib/util/timer.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - TALLOC_CTX *ctx
    - tl
    - ev_p
    - delta
    - free_on_fire
    - callback
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_timer_list_t*
    - fr_timer_t**
    - fr_time_delta_t
    - bool
    - fr_timer_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: _fr_timer_in
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_t*::pub::time
    - fr_time_add
    - _fr_timer_at
    linkageType: ''
    returnType: int
    signature: "int _fr_timer_in(NDEBUG_LOCATION_ARGS\n\t\t TALLOC_CTX *ctx, fr_timer_list_t
      *tl, fr_timer_t **ev_p,\n\t\t fr_time_delta_t delta,\n\t\t bool free_on_fire,
      fr_timer_cb_t callback, void const *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timer_in_list
      Src: /src/freeradius-server/src/lib/util/timer.c:597,1
    - Dst: timer_remove
      Src: /src/freeradius-server/src/lib/util/timer.c:598,1
    - Dst: fr_lst_extract
      Src: /src/freeradius-server/src/lib/util/timer.c:600,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/timer.c:616,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/timer.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 593
    functionDepth: 6
    functionLinenumber: 593
    functionLinenumberEnd: 623
    functionName: timer_lst_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - timer_in_list
    - fr_strerror
    - timer_remove
    - fr_lst_extract
    linkageType: ''
    returnType: int
    signature: int timer_lst_disarm(fr_timer_t *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:634,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:644,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:644,1
    - Dst: timer_in_list
      Src: /src/freeradius-server/src/lib/util/timer.c:644,1
    - Dst: timer_remove
      Src: /src/freeradius-server/src/lib/util/timer.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 649
    functionName: timer_ordered_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_cond_assert
    - timer_in_list
    - talloc_get_type_abort
    - timer_remove
    linkageType: ''
    returnType: int
    signature: int timer_ordered_disarm(fr_timer_t *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_ARMED
      Src: /src/freeradius-server/src/lib/util/timer.c:659,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:660,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:666,1
    - Dst: CHECK_PARENT
      Src: /src/freeradius-server/src/lib/util/timer.c:668,1
    - Dst: timer_in_list
      Src: /src/freeradius-server/src/lib/util/timer.c:674,1
    - Dst: timer_remove
      Src: /src/freeradius-server/src/lib/util/timer.c:675,1
    - Dst: disarm
      Src: /src/freeradius-server/src/lib/util/timer.c:677,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 683
    functionName: fr_timer_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 2
    functionsReached:
    - disarm
    - timer_in_list
    - EVENT_ARMED
    - timer_list_parent_update
    - CHECK_PARENT
    - timer_remove
    - EVENT_DEBUG
    linkageType: ''
    returnType: int
    signature: int fr_timer_disarm(fr_timer_t *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:697,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:700,1
    - Dst: likely
      Src: /src/freeradius-server/src/lib/util/timer.c:706,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:711,1
    - Dst: fr_strerror_peek
      Src: /src/freeradius-server/src/lib/util/timer.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ev_p
    argTypes:
    - fr_timer_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 713
    functionName: fr_timer_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_free
    - likely
    - fr_strerror_peek
    - EVENT_DEBUG
    linkageType: ''
    returnType: int
    signature: int fr_timer_delete(fr_timer_t **ev_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/util/timer.c:721,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/timer.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: fr_timer_when
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 2
    functionsReached:
    - fr_time_wrap
    - fr_timer_armed
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_timer_when(fr_timer_t *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_armed
      Src: /src/freeradius-server/src/lib/util/timer.c:731,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/timer.c:731,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/timer.c:732,1
    - Dst: fr_timer_t*::tl::pub::time
      Src: /src/freeradius-server/src/lib/util/timer.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: fr_timer_remaining
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached:
    - fr_timer_t*::tl::pub::time
    - fr_time_delta_wrap
    - fr_time_sub
    - fr_timer_armed
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_timer_remaining(fr_timer_t *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_ARMED
      Src: /src/freeradius-server/src/lib/util/timer.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 745
    functionName: _fr_timer_armed
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - EVENT_ARMED
    linkageType: ''
    returnType: bool
    signature: bool _fr_timer_armed(fr_timer_t *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/timer.c:765,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:766,1
    - Dst: fr_lst_peek
      Src: /src/freeradius-server/src/lib/util/timer.c:766,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/util/timer.c:771,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/timer.c:778,1
    - Dst: CHECK_PARENT
      Src: /src/freeradius-server/src/lib/util/timer.c:780,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:791,1
    - Dst: fr_timer_disarm
      Src: /src/freeradius-server/src/lib/util/timer.c:791,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:792,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:793,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/timer.c:795,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/timer.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - tl
    - when
    argTypes:
    - fr_timer_list_t*
    - fr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 758
    functionDepth: 6
    functionLinenumber: 758
    functionLinenumberEnd: 803
    functionName: timer_list_lst_run
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_lst_num_elements
    - memcpy
    - talloc_free
    - fr_time_wrap
    - fr_time_gt
    - fr_cond_assert
    - talloc_get_type_abort
    - fr_lst_peek
    - CHECK_PARENT
    - fr_timer_disarm
    - EVENT_DEBUG
    - callback
    linkageType: ''
    returnType: int
    signature: int timer_list_lst_run(fr_timer_list_t *tl, fr_time_t *when)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: timer_head
      Src: /src/freeradius-server/src/lib/util/timer.c:824,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:825,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/util/timer.c:830,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/timer.c:837,1
    - Dst: CHECK_PARENT
      Src: /src/freeradius-server/src/lib/util/timer.c:839,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:850,1
    - Dst: fr_timer_disarm
      Src: /src/freeradius-server/src/lib/util/timer.c:850,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:851,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:852,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/timer.c:854,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/timer.c:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - tl
    - when
    argTypes:
    - fr_timer_list_t*
    - fr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 862
    functionName: timer_list_ordered_run
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_free
    - fr_time_wrap
    - fr_time_gt
    - fr_cond_assert
    - talloc_get_type_abort
    - timer_head
    - CHECK_PARENT
    - fr_timer_disarm
    - EVENT_DEBUG
    - callback
    linkageType: ''
    returnType: int
    signature: int timer_list_ordered_run(fr_timer_list_t *tl, fr_time_t *when)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/util/timer.c:881,1
    - Dst: TIMER_UCTX_TO_TIME
      Src: /src/freeradius-server/src/lib/util/timer.c:884,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/util/timer.c:889,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/lib/util/timer.c:895,1
    - Dst: fr_timer_list_t*::shared::callback
      Src: /src/freeradius-server/src/lib/util/timer.c:897,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/timer.c:902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - tl
    - when
    argTypes:
    - fr_timer_list_t*
    - fr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 876
    functionDepth: 4
    functionLinenumber: 876
    functionLinenumberEnd: 905
    functionName: timer_list_shared_run
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - TIMER_UCTX_TO_TIME
    - fr_timer_list_t*::shared::callback
    - fr_time_wrap
    - fr_time_gt
    - fr_rb_first
    - fr_rb_remove
    linkageType: ''
    returnType: int
    signature: int timer_list_shared_run(fr_timer_list_t *tl, fr_time_t *when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/timer.c:922,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/timer.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 925
    functionName: fr_timer_list_force_run
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 2
    functionsReached:
    - fr_time_max
    - fr_timer_list_run
    linkageType: ''
    returnType: int
    signature: int fr_timer_list_force_run(fr_timer_list_t *tl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: run
      Src: /src/freeradius-server/src/lib/util/timer.c:944,1
    - Dst: timer_num_elements
      Src: /src/freeradius-server/src/lib/util/timer.c:956,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:957,1
    - Dst: deferred
      Src: /src/freeradius-server/src/lib/util/timer.c:957,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:958,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:958,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:965,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - tl
    - when
    argTypes:
    - fr_timer_list_t*
    - fr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 938
    functionDepth: 2
    functionLinenumber: 938
    functionLinenumberEnd: 969
    functionName: fr_timer_list_run
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 3
    functionsReached:
    - timer_num_elements
    - unlikely
    - run
    - deferred
    - timer_list_parent_update
    linkageType: ''
    returnType: int
    signature: int fr_timer_list_run(fr_timer_list_t *tl, fr_time_t *when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_peek
      Src: /src/freeradius-server/src/lib/util/timer.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 6
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: timer_list_lst_head
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_lst_peek
    linkageType: ''
    returnType: fr_timer_t
    signature: fr_timer_t *timer_list_lst_head(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timer_head
      Src: /src/freeradius-server/src/lib/util/timer.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 993
    functionName: timer_list_ordered_head
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached:
    - timer_head
    linkageType: ''
    returnType: fr_timer_t
    signature: fr_timer_t *timer_list_ordered_head(fr_timer_list_t *tl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timer_pop_head
      Src: /src/freeradius-server/src/lib/util/timer.c:1007,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1008,1
    - Dst: timer_lst_insert_at
      Src: /src/freeradius-server/src/lib/util/timer.c:1008,1
    - Dst: timer_insert_head
      Src: /src/freeradius-server/src/lib/util/timer.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1003
    functionDepth: 7
    functionLinenumber: 1003
    functionLinenumberEnd: 1015
    functionName: timer_list_lst_deferred
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - unlikely
    - timer_insert_head
    - timer_pop_head
    - timer_lst_insert_at
    linkageType: ''
    returnType: int
    signature: int timer_list_lst_deferred(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timer_head
      Src: /src/freeradius-server/src/lib/util/timer.c:1033,1
    - Dst: timer_tail
      Src: /src/freeradius-server/src/lib/util/timer.c:1034,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/timer.c:1041,1
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/util/timer.c:1041,1
    - Dst: timer_pop_head
      Src: /src/freeradius-server/src/lib/util/timer.c:1050,1
    - Dst: timer_insert_tail
      Src: /src/freeradius-server/src/lib/util/timer.c:1051,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1055
    functionName: timer_list_ordered_deferred
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert_msg
    - timer_pop_head
    - timer_head
    - fr_time_gteq
    - timer_tail
    - timer_insert_tail
    linkageType: ''
    returnType: int
    signature: int timer_list_ordered_deferred(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/util/timer.c:1068,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/util/timer.c:1069,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/timer.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1064
    functionDepth: 4
    functionLinenumber: 1064
    functionLinenumberEnd: 1076
    functionName: timer_list_shared_deferred
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_rb_remove_by_inline_node
    - fr_rb_first
    - fr_rb_insert
    linkageType: ''
    returnType: int
    signature: int timer_list_shared_deferred(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/timer.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1081
    functionName: timer_list_lst_num_events
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_lst_num_elements
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t timer_list_lst_num_events(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timer_num_elements
      Src: /src/freeradius-server/src/lib/util/timer.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1083
    functionDepth: 0
    functionLinenumber: 1083
    functionLinenumberEnd: 1086
    functionName: timer_list_ordered_num_events
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - timer_num_elements
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t timer_list_ordered_num_events(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/util/timer.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1091
    functionName: timer_list_shared_num_events
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t timer_list_shared_num_events(fr_timer_list_t *tl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:1103,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/lib/util/timer.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1112
    functionName: fr_timer_list_disarm
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 4
    functionsReached:
    - FR_TIMER_DISARM_RETURN
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_timer_list_disarm(fr_timer_list_t *tl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:1124,1
    - Dst: _parent_timer_cb
      Src: /src/freeradius-server/src/lib/util/timer.c:1135,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/timer.c:1135,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1121
    functionDepth: 2
    functionLinenumber: 1121
    functionLinenumberEnd: 1138
    functionName: fr_timer_list_arm
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 2
    functionsReached:
    - fr_strerror_const
    - timer_list_parent_update
    - _parent_timer_cb
    - fr_time
    linkageType: ''
    returnType: int
    signature: int fr_timer_list_arm(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_events
      Src: /src/freeradius-server/src/lib/util/timer.c:1150,1
    - Dst: timer_num_elements
      Src: /src/freeradius-server/src/lib/util/timer.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1153
    functionName: fr_timer_list_num_events
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 2
    functionsReached:
    - timer_num_elements
    - num_events
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_timer_list_num_events(fr_timer_list_t *tl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: head
      Src: /src/freeradius-server/src/lib/util/timer.c:1161,1
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/util/timer.c:1168,1
    - Dst: TIMER_UCTX_TO_TIME
      Src: /src/freeradius-server/src/lib/util/timer.c:1171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1176
    functionName: timer_list_when
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached:
    - TIMER_UCTX_TO_TIME
    - fr_rb_first
    - head
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t *timer_list_when(fr_timer_list_t *tl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timer_list_when
      Src: /src/freeradius-server/src/lib/util/timer.c:1187,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/timer.c:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1192
    functionName: fr_timer_list_when
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - timer_list_when
    - fr_time_wrap
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_timer_list_when(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tl
    - func
    argTypes:
    - fr_timer_list_t*
    - fr_event_time_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1202
    functionName: fr_timer_list_set_time_func
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_timer_list_set_time_func(fr_timer_list_t *tl, fr_event_time_source_t
      func)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1215,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:1216,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1220,1
    - Dst: fr_timer_delete
      Src: /src/freeradius-server/src/lib/util/timer.c:1220,1
    - Dst: head
      Src: /src/freeradius-server/src/lib/util/timer.c:1224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:1225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1229
    functionName: _timer_list_free
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_free
    - fr_strerror_const
    - head
    - fr_timer_delete
    linkageType: ''
    returnType: int
    signature: int _timer_list_free(fr_timer_list_t *tl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:1235,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/timer.c:1237,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1238,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:1239,1
    - Dst: timer_talloc_init
      Src: /src/freeradius-server/src/lib/util/timer.c:1243,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/timer.c:1250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - parent
    argTypes:
    - TALLOC_CTX*
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1253
    functionName: timer_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - timer_talloc_init
    - unlikely
    - talloc_set_destructor
    - fr_assert
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: fr_timer_list_t
    signature: fr_timer_list_t *timer_list_alloc(TALLOC_CTX *ctx, fr_timer_list_t
      *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1266,1
    - Dst: timer_list_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1266,1
    - Dst: fr_lst_talloc_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1268,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1269,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timer.c:1270,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:1271,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/timer.c:1277,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/timer.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - parent
    argTypes:
    - TALLOC_CTX*
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1262
    functionDepth: 2
    functionLinenumber: 1262
    functionLinenumberEnd: 1281
    functionName: fr_timer_list_lst_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached:
    - timer_list_alloc
    - unlikely
    - fr_lst_talloc_alloc
    - talloc_free
    - fr_timer_in
    - fr_strerror_const
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: fr_timer_list_t
    signature: fr_timer_list_t *fr_timer_list_lst_alloc(TALLOC_CTX *ctx, fr_timer_list_t
      *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1294,1
    - Dst: timer_list_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1294,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/timer.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - parent
    argTypes:
    - TALLOC_CTX*
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1300
    functionName: fr_timer_list_ordered_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 2
    functionsReached:
    - timer_list_alloc
    - unlikely
    - fr_dlist_talloc_init
    linkageType: ''
    returnType: fr_timer_list_t
    signature: fr_timer_list_t *fr_timer_list_ordered_alloc(TALLOC_CTX *ctx, fr_timer_list_t
      *parent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/timer.c:1316,1
    - Dst: timer_list_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1316,1
    - Dst: _fr_rb_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1324,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:1326,1
    - Dst: _fr_rb_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1330,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:1332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - ctx
    - parent
    - cmp
    - callback
    - node_offset
    - time_offset
    argTypes:
    - TALLOC_CTX*
    - fr_timer_list_t*
    - fr_cmp_t
    - fr_timer_cb_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1337
    functionName: fr_timer_list_shared_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached:
    - timer_list_alloc
    - unlikely
    - _fr_rb_alloc
    - talloc_free
    linkageType: ''
    returnType: fr_timer_list_t
    signature: "fr_timer_list_t *fr_timer_list_shared_alloc(TALLOC_CTX *ctx, fr_timer_list_t
      *parent, fr_cmp_t cmp,\n\t\t\t\t\t    fr_timer_cb_t callback, size_t node_offset,
      size_t time_offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:1349,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/timer.c:1352,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/timer.c:1357,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:1359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tl
    - uctx
    argTypes:
    - fr_timer_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1347
    functionDepth: 4
    functionLinenumber: 1347
    functionLinenumberEnd: 1360
    functionName: fr_timer_uctx_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - timer_list_parent_update
    - fr_rb_insert
    linkageType: ''
    returnType: int
    signature: int fr_timer_uctx_insert(fr_timer_list_t *tl, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:1372,1
    - Dst: fr_rb_remove_by_inline_node
      Src: /src/freeradius-server/src/lib/util/timer.c:1374,1
    - Dst: timer_list_parent_update
      Src: /src/freeradius-server/src/lib/util/timer.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tl
    - uctx
    argTypes:
    - fr_timer_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1370
    functionDepth: 4
    functionLinenumber: 1370
    functionLinenumberEnd: 1378
    functionName: fr_timer_uctx_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 4
    functionsReached:
    - fr_rb_remove_by_inline_node
    - fr_assert
    - timer_list_parent_update
    linkageType: ''
    returnType: int
    signature: int fr_timer_uctx_remove(fr_timer_list_t *tl, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:1382,1
    - Dst: fr_rb_first
      Src: /src/freeradius-server/src/lib/util/timer.c:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1385
    functionName: fr_timer_uctx_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 3
    functionsReached:
    - fr_rb_first
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void *fr_timer_uctx_peek(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/util/timer.c:1419,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/timer.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1422
    functionName: timer_location_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - CMP
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t timer_location_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/timer.c:1426,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1429,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/lib/util/timer.c:1430,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1430,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/timer.c:1434,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1436,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1438,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/timer.c:1444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - locations
    - array
    - now
    - ev
    argTypes:
    - fr_rb_tree_t**
    - size_t[]
    - fr_time_t
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1424
    functionDepth: 4
    functionLinenumber: 1424
    functionLinenumberEnd: 1455
    functionName: _event_report_process
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - talloc
    - fr_rb_find
    - fr_time_sub
    - fr_rb_insert
    - EVENT_DEBUG
    - fr_time_delta_cmp
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int _event_report_process(fr_rb_tree_t **locations, size_t array[],
      fr_time_t now, fr_timer_t *ev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1466,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1467,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1472,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/timer.c:1476,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1479,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:1480,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1484,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/timer.c:1485,1
    - Dst: fr_lst_iter_init
      Src: /src/freeradius-server/src/lib/util/timer.c:1495,1
    - Dst: fr_lst_iter_next
      Src: /src/freeradius-server/src/lib/util/timer.c:1497,1
    - Dst: _event_report_process
      Src: /src/freeradius-server/src/lib/util/timer.c:1498,1
    - Dst: timer_head
      Src: /src/freeradius-server/src/lib/util/timer.c:1507,1
    - Dst: timer_next
      Src: /src/freeradius-server/src/lib/util/timer.c:1509,1
    - Dst: _event_report_process
      Src: /src/freeradius-server/src/lib/util/timer.c:1510,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/timer.c:1515,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/timer.c:1519,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1520,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/timer.c:1520,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1522,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1529,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/timer.c:1530,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1531,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1533,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/timer.c:1536,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/timer.c:1538,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:1539,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1541,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/timer.c:1545,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/timer.c:1547,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/timer.c:1547,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/timer.c:1548,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1460
    functionDepth: 5
    functionLinenumber: 1460
    functionLinenumberEnd: 1549
    functionName: fr_timer_report
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - fr_timer_in
    - fr_rb_inline_alloc
    - _event_report_process
    - fr_lst_iter_next
    - fr_timer_list_num_events
    - fr_rb_iter_next_inorder
    - pthread_mutex_lock
    - timer_head
    - talloc_get_type_abort
    - NUM_ELEMENTS
    - talloc_init_const
    - fr_assert
    - fr_rb_iter_init_inorder
    - fr_time_delta_from_sec
    - talloc_free
    - fr_lst_iter_init
    - timer_next
    - EVENT_DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_timer_report(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_t*::pub::time
      Src: /src/freeradius-server/src/lib/util/timer.c:1555,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1562,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/timer.c:1562,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1566,1
    - Dst: fr_lst_iter_init
      Src: /src/freeradius-server/src/lib/util/timer.c:1568,1
    - Dst: fr_lst_iter_next
      Src: /src/freeradius-server/src/lib/util/timer.c:1570,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:1571,1
    - Dst: TIMER_DUMP
      Src: /src/freeradius-server/src/lib/util/timer.c:1572,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1577,1
    - Dst: timer_head
      Src: /src/freeradius-server/src/lib/util/timer.c:1579,1
    - Dst: timer_next
      Src: /src/freeradius-server/src/lib/util/timer.c:1581,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/timer.c:1582,1
    - Dst: TIMER_DUMP
      Src: /src/freeradius-server/src/lib/util/timer.c:1583,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1588,1
    - Dst: fr_rb_inorder_foreach
      Src: /src/freeradius-server/src/lib/util/timer.c:1590,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/timer.c:1591,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/timer.c:1591,1
    - Dst: TIMER_UCTX_TO_TIME
      Src: /src/freeradius-server/src/lib/util/timer.c:1591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1551
    functionDepth: 2
    functionLinenumber: 1551
    functionLinenumberEnd: 1594
    functionName: fr_timer_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 0
    functionsReached:
    - TIMER_UCTX_TO_TIME
    - fr_timer_list_t*::pub::time
    - TIMER_DUMP
    - fr_rb_inorder_foreach
    - fr_lst_iter_init
    - timer_next
    - talloc_get_type_abort
    - timer_head
    - fr_time_unwrap
    - fr_lst_iter_next
    - EVENT_DEBUG
    linkageType: ''
    returnType: void
    signature: void fr_timer_dump(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1561
    functionName: TIMER_DUMP
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMER_DUMP(_ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/perm.c:40,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/perm.c:41,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/perm.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - out
    - mode
    argTypes:
    - char[]
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: fr_perm_mode_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 2
    functionsReached:
    - strcpy
    linkageType: ''
    returnType: char
    signature: char *fr_perm_mode_to_str(char out[static 10], mode_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - mode
    argTypes:
    - char[]
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: fr_perm_mode_to_oct
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fr_perm_mode_to_oct(char out[static 5], mode_t mode)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/perm.c:78,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/perm.c:80,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/perm.c:83,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:104,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/perm.c:148,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/util/perm.c:155,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:163,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:170,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/perm.c:182,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 85
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - mode_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 188
    functionName: fr_perm_mode_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - isalpha
    - strlen
    - strtoul
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_perm_mode_from_str(mode_t *out, char const *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/freeradius-server/src/lib/util/perm.c:222,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/perm.c:230,1
    - Dst: getpwuid_r
      Src: /src/freeradius-server/src/lib/util/perm.c:237,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:238,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/perm.c:239,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:239,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:243,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/perm.c:243,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - out
    - uid
    argTypes:
    - TALLOC_CTX*
    - struct passwd**
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 253
    functionName: fr_perm_getpwuid
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 6
    functionsReached:
    - getpwuid_r
    - talloc_array
    - talloc_free
    - talloc_realloc_size
    - fr_strerror_printf
    - fr_syserror
    - sysconf
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int fr_perm_getpwuid(TALLOC_CTX *ctx, struct passwd **out, uid_t uid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/freeradius-server/src/lib/util/perm.c:285,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/perm.c:293,1
    - Dst: getpwnam_r
      Src: /src/freeradius-server/src/lib/util/perm.c:300,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:301,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/perm.c:302,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:302,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:306,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/perm.c:306,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - out
    - name
    argTypes:
    - TALLOC_CTX*
    - struct passwd**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 316
    functionName: fr_perm_getpwnam
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 2
    functionsReached:
    - talloc_array
    - talloc_free
    - talloc_realloc_size
    - fr_strerror_printf
    - fr_syserror
    - getpwnam_r
    - sysconf
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int fr_perm_getpwnam(TALLOC_CTX *ctx, struct passwd **out, char const
      *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/freeradius-server/src/lib/util/perm.c:348,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/perm.c:356,1
    - Dst: getgrgid_r
      Src: /src/freeradius-server/src/lib/util/perm.c:363,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:364,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/perm.c:365,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:365,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:369,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/perm.c:369,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - out
    - gid
    argTypes:
    - TALLOC_CTX*
    - struct group**
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 379
    functionName: fr_perm_getgrgid
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 2
    functionsReached:
    - talloc_array
    - talloc_free
    - talloc_realloc_size
    - fr_strerror_printf
    - fr_syserror
    - sysconf
    - talloc_array_length
    - getgrgid_r
    linkageType: ''
    returnType: int
    signature: int fr_perm_getgrgid(TALLOC_CTX *ctx, struct group **out, gid_t gid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/freeradius-server/src/lib/util/perm.c:411,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/perm.c:419,1
    - Dst: getgrnam_r
      Src: /src/freeradius-server/src/lib/util/perm.c:426,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:427,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/perm.c:428,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/perm.c:428,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:432,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/perm.c:432,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - out
    - name
    argTypes:
    - TALLOC_CTX*
    - struct group**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 442
    functionName: fr_perm_getgrnam
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 1
    functionsReached:
    - talloc_array
    - getgrnam_r
    - talloc_free
    - talloc_realloc_size
    - fr_strerror_printf
    - fr_syserror
    - sysconf
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int fr_perm_getgrnam(TALLOC_CTX *ctx, struct group **out, char const
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_getpwnam
      Src: /src/freeradius-server/src/lib/util/perm.c:458,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - out
    - name
    argTypes:
    - TALLOC_CTX*
    - uid_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 464
    functionName: fr_perm_uid_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 2
    functionsReached:
    - fr_perm_getpwnam
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_perm_uid_from_str(TALLOC_CTX *ctx, uid_t *out, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_getgrnam
      Src: /src/freeradius-server/src/lib/util/perm.c:480,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - out
    - name
    argTypes:
    - TALLOC_CTX*
    - gid_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 486
    functionName: fr_perm_gid_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 4
    functionsReached:
    - fr_perm_getgrnam
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_perm_gid_from_str(TALLOC_CTX *ctx, gid_t *out, char const *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/util/perm.c:501,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/perm.c:502,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - uid
    argTypes:
    - TALLOC_CTX*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 506
    functionName: fr_perm_uid_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 1
    functionsReached:
    - fr_perm_getpwuid
    - talloc_strdup
    - talloc_free
    linkageType: ''
    returnType: char
    signature: char *fr_perm_uid_to_str(TALLOC_CTX *ctx, uid_t uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_getgrgid
      Src: /src/freeradius-server/src/lib/util/perm.c:520,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/perm.c:521,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - gid
    argTypes:
    - TALLOC_CTX*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 525
    functionName: fr_perm_gid_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 1
    functionsReached:
    - fr_perm_getgrgid
    - talloc_strdup
    - talloc_free
    linkageType: ''
    returnType: char
    signature: char *fr_perm_gid_to_str(TALLOC_CTX *ctx, uid_t gid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/perm.c:539,1
    - Dst: fr_perm_getpwuid
      Src: /src/freeradius-server/src/lib/util/perm.c:541,1
    - Dst: geteuid
      Src: /src/freeradius-server/src/lib/util/perm.c:541,1
    - Dst: fr_perm_getgrgid
      Src: /src/freeradius-server/src/lib/util/perm.c:542,1
    - Dst: getegid
      Src: /src/freeradius-server/src/lib/util/perm.c:542,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/perm.c:544,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:546,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/perm.c:547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 548
    functionName: fr_perm_file_error
    functionSourceFile: /src/freeradius-server/src/lib/util/perm.c
    functionUses: 4
    functionsReached:
    - fr_perm_getpwuid
    - geteuid
    - talloc_free
    - getegid
    - fr_syserror
    - fr_strerror_printf
    - fr_perm_getgrgid
    linkageType: ''
    returnType: void
    signature: void fr_perm_file_error(int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _cmp
    - ','
    - _type
    - ','
    - _field
    - ','
    - _init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: fr_heap_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_heap_alloc(_ctx, _cmp, _type, _field, _init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _cmp
    - ','
    - _talloc_type
    - ','
    - _field
    - ','
    - _init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: fr_heap_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_heap_talloc_alloc(_ctx, _cmp, _talloc_type, _field, _init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - heap_idx
    argTypes:
    - fr_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: fr_heap_entry_inserted
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_heap_entry_inserted(fr_heap_index_t heap_idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - fr_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: fr_heap_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_heap_peek(fr_heap_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - idx
    argTypes:
    - fr_heap_t*
    - fr_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: fr_heap_peek_at
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 1
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *fr_heap_peek_at(fr_heap_t *h, fr_heap_index_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - fr_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: fr_heap_peek_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_heap_peek_tail(fr_heap_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - fr_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: fr_heap_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_heap_num_elements(fr_heap_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _heap
    - ','
    - _type
    - ','
    - _data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: fr_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_heap_foreach(_heap, _type, _data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _heap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: FR_HEAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_HEAP_VERIFY(_heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _heap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: FR_HEAP_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_HEAP_VERIFY(_heap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: fr_zero_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_zero_whitespace(_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/misc.h:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: is_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.h
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: bool
    signature: bool is_whitespace(char const *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/misc.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - value
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: is_printable
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.h
    functionUses: 1
    functionsReached:
    - fr_utf8_char
    linkageType: ''
    returnType: bool
    signature: bool is_printable(void const *value, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/misc.h:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: is_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.h
    functionUses: 3
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool is_integer(char const *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: is_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/misc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_zero(char const *value)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/struct.c:49,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:53,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/struct.c:54,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:59,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/struct.c:61,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/struct.c:65,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/struct.c:67,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/struct.c:80,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/lib/util/struct.c:86,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:89,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/lib/util/struct.c:89,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:94,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/struct.c:101,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/lib/util/struct.c:103,1
    - Dst: da_length_offset
      Src: /src/freeradius-server/src/lib/util/struct.c:115,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:116,1
    - Dst: da_length_offset
      Src: /src/freeradius-server/src/lib/util/struct.c:124,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:127,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/struct.c:144,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:146,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/struct.c:147,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/struct.c:152,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/lib/util/struct.c:158,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:159,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/struct.c:163,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/struct.c:164,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/lib/util/struct.c:164,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/struct.c:168,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/struct.c:169,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/struct.c:173,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/struct.c:177,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/struct.c:180,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:204,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/struct.c:209,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:216,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:245,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:259,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/struct.c:262,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/struct.c:263,1
    - Dst: decode_tlv
      Src: /src/freeradius-server/src/lib/util/struct.c:273,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:275,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/struct.c:292,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/lib/util/struct.c:294,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/struct.c:296,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:301,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/struct.c:301,1
    - Dst: fr_pair_array_from_network
      Src: /src/freeradius-server/src/lib/util/struct.c:320,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/lib/util/struct.c:322,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:325,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/lib/util/struct.c:328,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/struct.c:330,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/struct.c:337,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:338,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/struct.c:339,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:355,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/struct.c:356,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:362,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/struct.c:366,1
    - Dst: fr_dict_enum_attr_ref
      Src: /src/freeradius-server/src/lib/util/struct.c:367,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:377,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/struct.c:386,1
    - Dst: fr_value_box_as_uint64
      Src: /src/freeradius-server/src/lib/util/struct.c:387,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/util/struct.c:390,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:392,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/struct.c:393,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/lib/util/struct.c:397,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:399,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/lib/util/struct.c:400,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:409,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/lib/util/struct.c:410,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:416,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:420,1
    - Dst: decode_tlv
      Src: /src/freeradius-server/src/lib/util/struct.c:422,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:426,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:428,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:450,1
    - Dst: fr_pair_array_from_network
      Src: /src/freeradius-server/src/lib/util/struct.c:456,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/lib/util/struct.c:458,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:463,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/struct.c:463,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:468,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/lib/util/struct.c:474,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:478,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/struct.c:479,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:481,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 282
    argCount: 8
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    - decode_value
    - decode_tlv
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    - fr_pair_decode_value_t
    - fr_pair_decode_value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 483
    functionName: fr_struct_from_network
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 1
    functionsReached:
    - decode_value
    - memcpy
    - fr_pair_list_tail
    - da_is_length_field16
    - fr_value_box_as_uint64
    - fr_pair_array_from_network
    - fr_strerror
    - da_is_length_field
    - fr_dict_attr_unknown_raw_afrom_num
    - decode_tlv
    - fr_dict_attr_is_key_field
    - fr_type_to_str
    - da_is_length_field8
    - FR_PROTO_HEX_DUMP
    - fr_dict_attr_unknown_free
    - fr_pair_append
    - fr_bytes_from_bits
    - PAIR_ALLOCED
    - memset
    - fr_strerror_const
    - fr_pair_list_init
    - fr_pair_afrom_da
    - fr_dict_enum_by_value
    - fr_struct_from_network
    - da_length_offset
    - fr_dict_enum_attr_ref
    - fr_assert
    - htonll
    - da_is_bit_field
    - TALLOC_FREE
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_raw_from_network
    - fr_dict_attr_child_by_num
    - fr_type_is_integer
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_struct_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \      fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len,\n\t\t\t
      \      void *decode_ctx,\n\t\t\t       fr_pair_decode_value_t decode_value,
      fr_pair_decode_value_t decode_tlv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/struct.c:514,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/struct.c:517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - dbuff
    - p
    - start_bit
    - num_bits
    - data
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - int
    - uint8_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 521
    functionName: put_bits_dbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 0
    functionsReached:
    - htonll
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: int
    signature: int put_bits_dbuff(fr_dbuff_t *dbuff, uint8_t *p, int start_bit, uint8_t
      num_bits, uint64_t data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/lib/util/struct.c:532,1
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/lib/util/struct.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 536
    functionName: pair_sort_increasing
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_SMALLER
    linkageType: ''
    returnType: int8_t
    signature: int8_t pair_sort_increasing(void const *a, void const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/struct.c:541,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/struct.c:543,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/struct.c:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 551
    functionName: struct_next_encodable
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - PAIR_VERIFY
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *struct_next_encodable(fr_dcursor_t *cursor, void *current, void
      *uctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/struct.c:561,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/struct.c:564,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/struct.c:569,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/struct.c:572,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:576,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/struct.c:577,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/util/struct.c:578,1
    - Dst: fr_pair_cursor_to_network
      Src: /src/freeradius-server/src/lib/util/struct.c:580,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/struct.c:584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 8
    argNames:
    - dbuff
    - tlv
    - da_stack
    - depth
    - cursor
    - encode_ctx
    - fr_encode_dbuff_t encode_value
    - encode_pair
    argTypes:
    - fr_dbuff_t*
    - fr_dict_attr_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    - UNUSED
    - fr_encode_dbuff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 585
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 3
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_pair_dcursor_init
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - fr_proto_da_stack_build
    - fr_pair_cursor_to_network
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv(fr_dbuff_t *dbuff, fr_dict_attr_t const *tlv,\n\t\t\t
      \ fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t  fr_dcursor_t *cursor,
      void *encode_ctx,\n\t\t\t  UNUSED fr_encode_dbuff_t encode_value, fr_encode_dbuff_t
      encode_pair)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/struct.c:598,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/struct.c:600,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:603,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/struct.c:605,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:610,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/util/struct.c:621,1
    - Dst: fr_dict_enum_attr_ref
      Src: /src/freeradius-server/src/lib/util/struct.c:622,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/struct.c:623,1
    - Dst: fr_dcursor_set_current
      Src: /src/freeradius-server/src/lib/util/struct.c:625,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:638,1
    - Dst: fr_dict_enum_iter_init
      Src: /src/freeradius-server/src/lib/util/struct.c:658,1
    - Dst: fr_dict_enum_iter_next
      Src: /src/freeradius-server/src/lib/util/struct.c:660,1
    - Dst: fr_dict_enum_attr_ref
      Src: /src/freeradius-server/src/lib/util/struct.c:661,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:671,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:679,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:680,1
    - Dst: FR_DBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/struct.c:682,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/struct.c:682,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:684,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/struct.c:687,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:694,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/struct.c:695,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/util/struct.c:696,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/lib/util/struct.c:700,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/lib/util/struct.c:705,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/lib/util/struct.c:709,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/struct.c:723,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 11
    argNames:
    - dbuff
    - wrapper
    - key_da
    - key_vp
    - key_m
    - da_stack
    - depth
    - cursor
    - encode_ctx
    - fr_encode_dbuff_t encode_value
    - encode_pair
    argTypes:
    - fr_dbuff_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    - fr_pair_t*
    - fr_dbuff_marker_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    - UNUSED
    - fr_encode_dbuff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 724
    functionName: encode_union
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - fr_cond_assert
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - FR_DBUFF_INIT
    - encode_tlv
    - fr_dbuff_current
    - fr_dict_enum_by_value
    - fr_value_box_to_network
    - fr_dict_enum_attr_ref
    - fr_assert
    - encode_value
    - fr_dict_enum_iter_init
    - fr_pair_find_by_da
    - fr_dbuff_set
    - fr_dcursor_set_current
    - FR_PROTO_TRACE
    - fr_proto_da_stack_build
    - fr_struct_to_network
    - fr_dict_enum_iter_next
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_union(fr_dbuff_t *dbuff, fr_dict_attr_t const *wrapper,\n\t\t\t
      \   fr_dict_attr_t const *key_da, fr_pair_t const *key_vp, fr_dbuff_marker_t
      *key_m,\n\t\t\t    fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t    fr_dcursor_t
      *cursor, void *encode_ctx,\n\t\t\t    UNUSED fr_encode_dbuff_t encode_value,
      fr_encode_dbuff_t encode_pair)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:731,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/struct.c:737,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/lib/util/struct.c:738,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:745,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:746,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/struct.c:748,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/struct.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 8
    argNames:
    - dbuff
    - vp
    - da_stack
    - depth
    - cursor
    - encode_ctx
    - encode_value
    - encode_pair
    argTypes:
    - fr_dbuff_t*
    - fr_pair_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    - fr_encode_dbuff_t
    - fr_encode_dbuff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 751
    functionName: encode_keyed_struct
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_next
    - FR_PROTO_TRACE
    - fr_value_box_to_network
    - fr_proto_da_stack_build
    - fr_assert
    - fr_struct_to_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_keyed_struct(fr_dbuff_t *dbuff, fr_pair_t const *vp,\n\t\t\t\t
      \  fr_da_stack_t *da_stack, unsigned int depth,\n\t\t\t\t   fr_dcursor_t *cursor,
      void *encode_ctx,\n\t\t\t\t   fr_encode_dbuff_t encode_value, fr_encode_dbuff_t
      encode_pair)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/struct.c:764,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/struct.c:774,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/struct.c:778,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/struct.c:782,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/struct.c:783,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/struct.c:791,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/struct.c:793,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/struct.c:794,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/struct.c:799,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/struct.c:800,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:802,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:805,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/struct.c:821,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/struct.c:829,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/struct.c:830,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/lib/util/struct.c:832,1
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/lib/util/struct.c:833,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/struct.c:834,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/lib/util/struct.c:836,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:841,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/lib/util/struct.c:841,1
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/lib/util/struct.c:843,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/struct.c:844,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/lib/util/struct.c:846,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/struct.c:857,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:865,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:871,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/struct.c:872,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:887,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:888,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:889,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/struct.c:889,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/struct.c:897,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:898,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/struct.c:902,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/struct.c:909,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/struct.c:909,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/struct.c:909,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/struct.c:914,1
    - Dst: put_bits_dbuff
      Src: /src/freeradius-server/src/lib/util/struct.c:915,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/struct.c:917,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/util/struct.c:934,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/struct.c:951,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:954,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/struct.c:978,1
    - Dst: put_bits_dbuff
      Src: /src/freeradius-server/src/lib/util/struct.c:982,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/struct.c:984,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/struct.c:992,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/struct.c:1001,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:1013,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:1015,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/lib/util/struct.c:1016,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:1023,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:1026,1
    - Dst: encode_union
      Src: /src/freeradius-server/src/lib/util/struct.c:1030,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/struct.c:1036,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/struct.c:1042,1
    - Dst: fr_pair_array_to_network
      Src: /src/freeradius-server/src/lib/util/struct.c:1045,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/lib/util/struct.c:1047,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/struct.c:1050,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/struct.c:1053,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/struct.c:1053,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/struct.c:1053,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/struct.c:1063,1
    - Dst: encode_keyed_struct
      Src: /src/freeradius-server/src/lib/util/struct.c:1065,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/struct.c:1072,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/lib/util/struct.c:1084,1
    - Dst: da_length_offset
      Src: /src/freeradius-server/src/lib/util/struct.c:1087,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/struct.c:1091,1
    - Dst: da_length_offset
      Src: /src/freeradius-server/src/lib/util/struct.c:1095,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/struct.c:1099,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/struct.c:1107,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/struct.c:1109,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/struct.c:1109,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/struct.c:1109,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/struct.c:1111,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 190
    argCount: 7
    argNames:
    - dbuff
    - da_stack
    - depth
    - parent_cursor
    - encode_ctx
    - encode_value
    - encode_pair
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    - fr_encode_dbuff_t
    - fr_encode_dbuff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 753
    functionDepth: 5
    functionLinenumber: 753
    functionLinenumberEnd: 1112
    functionName: fr_struct_to_network
    functionSourceFile: /src/freeradius-server/src/lib/util/struct.c
    functionUses: 2
    functionsReached:
    - fr_dcursor_current
    - da_is_length_field16
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_start
    - encode_keyed_struct
    - fr_pair_list_sort
    - FR_DBUFF
    - da_is_length_field
    - fr_dict_attr_is_key_field
    - fr_type_to_str
    - da_is_length_field8
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_ADVANCE_RETURN
    - fr_dcursor_next
    - encode_union
    - fr_dbuff_used
    - FR_DBUFF_MEMSET_RETURN
    - fr_strerror_const
    - fr_pair_array_to_network
    - FR_DBUFF_MAX
    - encode_tlv
    - fr_pair_dcursor_iter_init
    - da_length_offset
    - fr_assert
    - encode_value
    - da_is_bit_field
    - put_bits_dbuff
    - fr_dbuff_set
    - fr_dbuff_in
    - FR_PROTO_TRACE
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_struct_to_network(fr_dbuff_t *dbuff,\n\t\t\t     fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t     fr_dcursor_t *parent_cursor, void
      *encode_ctx,\n\t\t\t     fr_encode_dbuff_t encode_value, fr_encode_dbuff_t encode_pair)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _el
    - ','
    - _list
    - ','
    - _pos
    - ','
    - _vp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: fr_edit_list_insert_pair_before
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_edit_list_insert_pair_before(_el, _list, _pos, _vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _el
    - ','
    - _list
    - ','
    - _vp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: fr_edit_list_insert_pair_head
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_edit_list_insert_pair_head(_el, _list, _vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _el
    - ','
    - _list
    - ','
    - _vp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: fr_edit_list_insert_pair_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_edit_list_insert_pair_tail(_el, _list, _vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _el
    - ','
    - _list
    - ','
    - _to_insert
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: fr_edit_list_insert_list_head
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_edit_list_insert_list_head(_el, _list, _to_insert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _el
    - ','
    - _list
    - ','
    - _to_insert
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: fr_edit_list_insert_list_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/edit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_edit_list_insert_list_tail(_el, _list, _to_insert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/rand.c:42,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/rand.c:44,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/rand.c:49,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/rand.c:53,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/rand.c:64,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/util/rand.c:64,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/rand.c:64,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/rand.c:66,1
    - Dst: fr_isaac_init
      Src: /src/freeradius-server/src/lib/util/rand.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: fr_rand_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_time
    - open
    - read
    - fr_isaac_init
    - fr_time_to_unix_time
    - fr_unix_time_unwrap
    - close
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_rand_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand_init
      Src: /src/freeradius-server/src/lib/util/rand.c:86,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/rand.c:92,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/rand.c:93,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/lib/util/rand.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: fr_rand_mixin
    functionSourceFile: /src/freeradius-server/src/lib/util/rand.c
    functionUses: 0
    functionsReached:
    - fr_rand
    - fr_rand_init
    - fr_hash_update
    linkageType: ''
    returnType: void
    signature: void fr_rand_mixin(void const *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand_init
      Src: /src/freeradius-server/src/lib/util/rand.c:112,1
    - Dst: fr_isaac
      Src: /src/freeradius-server/src/lib/util/rand.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: fr_rand
    functionSourceFile: /src/freeradius-server/src/lib/util/rand.c
    functionUses: 33
    functionsReached:
    - fr_isaac
    - fr_rand_init
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_rand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/rand.c:134,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/rand.c:135,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/rand.c:148,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/rand.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - start
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: fr_rand_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/rand.c
    functionUses: 2
    functionsReached:
    - fr_rand
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_rand_buffer(void *start, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: fill
    functionSourceFile: /src/freeradius-server/src/lib/util/rand.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fill(_expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - TALLOC_CTX *ctx
    - dict
    - root_da
    argTypes:
    - void**
    - UNUSED
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/lib/util/fuzzer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, UNUSED TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/fuzzer.c:57,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/fuzzer.c:60,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fuzzer.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - fr_pair_list_t *out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: util_decode_proto
    functionSourceFile: /src/freeradius-server/src/lib/util/fuzzer.c
    functionUses: 0
    functionsReached:
    - fr_value_box_alloc
    - fr_value_box_from_str
    - talloc_free
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t util_decode_proto(TALLOC_CTX *ctx, UNUSED fr_pair_list_t *out,
      uint8_t const *data, size_t data_len,\n\t\t\t\t UNUSED void *proto_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_print
      Src: /src/freeradius-server/src/lib/util/fuzzer.c:67,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/fuzzer.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: util_encode_proto
    functionSourceFile: /src/freeradius-server/src/lib/util/fuzzer.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_OUT
    - fr_pair_list_print
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t util_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t *vps,
      uint8_t *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_test.c:183,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_test.c:194,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/util/dict_test.c:199,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_test.c:200,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_test.c:204,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_test.c:206,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_test.c:207,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_test.c:211,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/util/dict_test.c:213,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_test.c:215,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_test.c:217,1
    - Dst: fr_dict_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_test.c:228,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_test.c:228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - dict
    - test_defs
    - base
    - inst
    argTypes:
    - fr_dict_t*
    - fr_dict_test_attr_t*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 176
    functionDepth: 9
    functionLinenumber: 176
    functionLinenumberEnd: 235
    functionName: fr_dict_test_attrs_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_test.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_by_name
    - talloc_free
    - fr_dict_enum_add_name
    - fr_strerror_printf
    - fr_dict_attr_add
    - talloc_asprintf
    - fr_dict_attr_unconst
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int fr_dict_test_attrs_init(fr_dict_t *dict, fr_dict_test_attr_t const
      *test_defs,\n\t\t\t    unsigned int base, int inst)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/lib/util/dict_test.c:253,1
    - Dst: fr_dict_alloc
      Src: /src/freeradius-server/src/lib/util/dict_test.c:261,1
    - Dst: fr_dict_global_ctx_free
      Src: /src/freeradius-server/src/lib/util/dict_test.c:264,1
    - Dst: fr_dict_test_attrs_init
      Src: /src/freeradius-server/src/lib/util/dict_test.c:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - dict_p
    - test_defs
    argTypes:
    - TALLOC_CTX*
    - fr_dict_t**
    - fr_dict_test_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 248
    functionDepth: 10
    functionLinenumber: 248
    functionLinenumberEnd: 275
    functionName: fr_dict_test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_test.c
    functionUses: 3
    functionsReached:
    - fr_dict_test_attrs_init
    - fr_dict_global_ctx_init
    - fr_dict_global_ctx_free
    - fr_dict_alloc
    linkageType: ''
    returnType: int
    signature: int fr_dict_test_init(TALLOC_CTX *ctx, fr_dict_t **dict_p, fr_dict_test_attr_t
      const *test_defs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/encode.c:45,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/util/encode.c:49,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/encode.c:51,1
    - Dst: fr_dbuff_extend
      Src: /src/freeradius-server/src/lib/util/encode.c:55,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/encode.c:56,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/lib/util/encode.c:61,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/encode.c:64,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:66,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/encode.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    - encode_value
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - int
    - fr_dcursor_t*
    - void*
    - fr_encode_dbuff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 71
    functionName: fr_pair_array_to_network
    functionSourceFile: /src/freeradius-server/src/lib/util/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_dbuff_extend
    - fr_cond_assert_msg
    - FR_PROTO_STACK_PRINT
    - encode_value
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_array_to_network(fr_dbuff_t *dbuff, fr_da_stack_t
      *da_stack, int depth,\n\t\t\t\t fr_dcursor_t *cursor, void *encode_ctx, fr_encode_dbuff_t
      encode_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/encode.c:77,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/util/encode.c:82,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:84,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/encode.c:85,1
    - Dst: encode_pair
      Src: /src/freeradius-server/src/lib/util/encode.c:87,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:93,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:93,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:95,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/encode.c:98,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/encode.c:101,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/encode.c:101,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/encode.c:101,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/encode.c:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    - encode_pair
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    - fr_encode_dbuff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 104
    functionName: fr_pair_cursor_to_network
    functionSourceFile: /src/freeradius-server/src/lib/util/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - encode_pair
    - fr_dbuff_start
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_cursor_to_network(fr_dbuff_t *dbuff,\n\t\t\t\t  fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\t  fr_dcursor_t *cursor, void *encode_ctx,
      fr_encode_dbuff_t encode_pair)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:122,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/encode.c:123,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/util/encode.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/encode.c:131,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/encode.c:133,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/encode.c:135,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/lib/util/encode.c:139,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/encode.c:140,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/encode.c:143,1
    - Dst: fr_dict_protocol_t*::encode
      Src: /src/freeradius-server/src/lib/util/encode.c:150,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/util/encode.c:153,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/encode.c:153,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/encode.c:153,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/encode.c:155,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/encode.c:156,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/encode.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 159
    functionName: fr_pair_ref_to_network
    functionSourceFile: /src/freeradius-server/src/lib/util/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - fr_strerror_printf
    - fr_dbuff_start
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - fr_dict_protocol
    - FR_DBUFF
    - fr_dict_protocol_t*::encode
    - fr_dict_attr_ref
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_ref_to_network(fr_dbuff_t *dbuff, fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t       fr_dcursor_t *cursor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/encode.c:167,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/encode.c:168,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/encode.c:170,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/encode.c:171,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/encode.c:171,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/encode.c:172,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/encode.c:172,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/encode.c:176,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/encode.c:178,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/encode.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - dbuff
    - fr_da_stack_t *da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - UNUSED
    - UNUSED unsigned
    - fr_dcursor_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 181
    functionName: fr_pair_encode_value
    functionSourceFile: /src/freeradius-server/src/lib/util/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_type_is_leaf
    - fr_dcursor_next
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - fr_value_box_to_network
    - FR_DBUFF
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_pair_encode_value(fr_dbuff_t *dbuff, UNUSED fr_da_stack_t
      *da_stack, UNUSED unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, UNUSED
      void *encode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - chunk
    argTypes:
    - fr_ext_t*
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: fr_ext_offsets
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_ext_offsets(fr_ext_t const *def, TALLOC_CTX const *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - chunk
    - offset
    - has_hdr
    argTypes:
    - TALLOC_CTX*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: fr_ext_ptr
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_ext_ptr(TALLOC_CTX const *chunk, size_t offset, bool has_hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sbuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: CHECK_DBUFF_INIT
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DBUFF_INIT(_sbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out_type
    - ','
    - _in_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: FR_DBUFF_MOVE_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_MOVE_DEF(_out_type, _in_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: min
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t min(size_t x, size_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:96,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:98,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dbuff
    - new_buff
    - new_len
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: fr_dbuff_update
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: void fr_dbuff_update(fr_dbuff_t *dbuff, uint8_t *new_buff, size_t new_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_DBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/dbuff.c:122,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:136,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:140,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:157,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/util/dbuff.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - dbuff
    - shift
    argTypes:
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 170
    functionName: fr_dbuff_shift
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 3
    functionsReached:
    - memmove
    - CHECK_DBUFF_INIT
    - min
    linkageType: ''
    returnType: size_t
    signature: size_t fr_dbuff_shift(fr_dbuff_t *dbuff, size_t shift)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_DBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/dbuff.c:181,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:189,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/dbuff.c:193,1
    - Dst: fr_dbuff_shift
      Src: /src/freeradius-server/src/lib/util/dbuff.c:200,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/dbuff.c:200,1
    - Dst: min
      Src: /src/freeradius-server/src/lib/util/dbuff.c:203,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:205,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/dbuff.c:209,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:214,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/dbuff.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - dbuff
    - extension
    argTypes:
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 222
    functionName: _fr_dbuff_extend_fd
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 0
    functionsReached:
    - min
    - read
    - fr_strerror_printf
    - fr_syserror
    - fr_dbuff_used
    - CHECK_DBUFF_INIT
    - fr_dbuff_shift
    linkageType: ''
    returnType: size_t
    signature: size_t _fr_dbuff_extend_fd(fr_dbuff_t *dbuff, size_t extension)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_DBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/dbuff.c:241,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dbuff.c:243,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:268,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/dbuff.c:276,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.c:277,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:278,1
    - Dst: fr_dbuff_update
      Src: /src/freeradius-server/src/lib/util/dbuff.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - dbuff
    - extension
    argTypes:
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 285
    functionName: _fr_dbuff_extend_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_realloc
    - fr_strerror_printf
    - talloc_array_length
    - CHECK_DBUFF_INIT
    - fr_dbuff_update
    linkageType: ''
    returnType: size_t
    signature: size_t _fr_dbuff_extend_talloc(fr_dbuff_t *dbuff, size_t extension)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_DBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/dbuff.c:303,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dbuff.c:305,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/dbuff.c:314,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:316,1
    - Dst: fr_dbuff_update
      Src: /src/freeradius-server/src/lib/util/dbuff.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dbuff
    - len
    argTypes:
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 323
    functionName: fr_dbuff_trim_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 4
    functionsReached:
    - talloc_realloc
    - fr_strerror_printf
    - talloc_array_length
    - CHECK_DBUFF_INIT
    - fr_dbuff_update
    linkageType: ''
    returnType: int
    signature: int fr_dbuff_trim_talloc(fr_dbuff_t *dbuff, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_DBUFF_INIT
      Src: /src/freeradius-server/src/lib/util/dbuff.c:336,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/dbuff.c:338,1
    - Dst: fr_dbuff_len
      Src: /src/freeradius-server/src/lib/util/dbuff.c:343,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/dbuff.c:346,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.c:348,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/dbuff.c:349,1
    - Dst: fr_dbuff_update
      Src: /src/freeradius-server/src/lib/util/dbuff.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - dbuff
    argTypes:
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 357
    functionName: fr_dbuff_reset_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_len
    - fr_dbuff_set_to_start
    - fr_strerror_printf
    - talloc_realloc
    - CHECK_DBUFF_INIT
    - talloc_array_length
    - fr_dbuff_update
    linkageType: ''
    returnType: int
    signature: int fr_dbuff_reset_talloc(fr_dbuff_t *dbuff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/machine.c:78,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/machine.c:79,1
    - Dst: fr_machine_hook_t*::func
      Src: /src/freeradius-server/src/lib/util/machine.c:81,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/machine.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - m
    - head
    - state1
    - state2
    argTypes:
    - fr_machine_t*
    - fr_dlist_head_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: call_hook
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_dlist_next
    - fr_machine_hook_t*::func
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void call_hook(fr_machine_t *m, fr_dlist_head_t *head, int state1,
      int state2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:98,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:100,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:108,1
    - Dst: fr_machine_state_inst_t*::def::exit
      Src: /src/freeradius-server/src/lib/util/machine.c:109,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:110,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:117,1
    - Dst: fr_machine_state_inst_t*::def::enter
      Src: /src/freeradius-server/src/lib/util/machine.c:118,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - m
    - state
    - in_handler
    argTypes:
    - fr_machine_t*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: state_transition
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - call_hook
    - fr_machine_state_inst_t*::def::exit
    - fr_machine_state_inst_t*::def::enter
    linkageType: ''
    returnType: void
    signature: void state_transition(fr_machine_t *m, int state, void *in_handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:139,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:140,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:141,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:148,1
    - Dst: state_transition
      Src: /src/freeradius-server/src/lib/util/machine.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_machine_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: _machine_free
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - state_transition
    linkageType: ''
    returnType: int
    signature: int _machine_free(fr_machine_t *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/machine.c:185,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/machine.c:188,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/machine.c:205,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/machine.c:206,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/machine.c:207,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/machine.c:208,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/machine.c:212,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/machine.c:221,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:240,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:241,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:242,1
    - Dst: fr_machine_t*::current::def::process
      Src: /src/freeradius-server/src/lib/util/machine.c:244,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:245,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/machine.c:247,1
    - Dst: fr_machine_transition
      Src: /src/freeradius-server/src/lib/util/machine.c:249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - ctx
    - def
    - uctx
    argTypes:
    - TALLOC_CTX*
    - fr_machine_def_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 252
    functionName: fr_machine_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_machine_t*::current::def::process
    - talloc_set_destructor
    - talloc_free
    - fr_machine_transition
    - talloc_set_type
    - fr_dlist_init
    - fr_assert
    - talloc_zero_array
    linkageType: ''
    returnType: fr_machine_t
    signature: fr_machine_t *fr_machine_alloc(TALLOC_CTX *ctx, fr_machine_def_t const
      *def, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:278,1
    - Dst: fr_machine_transition
      Src: /src/freeradius-server/src/lib/util/machine.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - m
    - state
    argTypes:
    - fr_machine_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 286
    functionName: state_post
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_machine_transition
    linkageType: ''
    returnType: int
    signature: int state_post(fr_machine_t *m, int state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:317,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:318,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:319,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:321,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/machine.c:321,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:326,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/machine.c:333,1
    - Dst: fr_machine_resume
      Src: /src/freeradius-server/src/lib/util/machine.c:335,1
    - Dst: fr_machine_state_inst_t*::def::process
      Src: /src/freeradius-server/src/lib/util/machine.c:351,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:357,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/machine.c:357,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:359,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/machine.c:367,1
    - Dst: fr_machine_resume
      Src: /src/freeradius-server/src/lib/util/machine.c:369,1
    - Dst: state_post
      Src: /src/freeradius-server/src/lib/util/machine.c:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_machine_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 374
    functionName: fr_machine_process
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_machine_resume
    - state_post
    - fr_dlist_num_elements
    - fr_machine_state_inst_t*::def::process
    - call_hook
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_machine_process(fr_machine_t *m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/machine.c:436,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/machine.c:441,1
    - Dst: state_transition
      Src: /src/freeradius-server/src/lib/util/machine.c:449,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/machine.c:456,1
    - Dst: fr_machine_resume
      Src: /src/freeradius-server/src/lib/util/machine.c:456,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - m
    - state
    argTypes:
    - fr_machine_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 459
    functionName: fr_machine_transition
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 2
    functionsReached:
    - fr_machine_resume
    - state_transition
    - fr_dlist_num_elements
    - talloc_zero
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: int fr_machine_transition(fr_machine_t *m, int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_machine_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 474
    functionName: fr_machine_current
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_machine_current(fr_machine_t *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - m
    - state
    argTypes:
    - fr_machine_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 499
    functionName: fr_machine_state_name
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: char
    signature: char *fr_machine_state_name(fr_machine_t *m, int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/machine.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hook
    argTypes:
    - fr_machine_hook_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: _machine_hook_free
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int _machine_hook_free(fr_machine_hook_t *hook)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:522,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/machine.c:545,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/machine.c:555,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/machine.c:557,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 8
    argNames:
    - m
    - ctx
    - state_to_hook
    - type
    - sense
    - oneshot
    - func
    - uctx
    argTypes:
    - fr_machine_t*
    - TALLOC_CTX*
    - int
    - fr_machine_hook_type_t
    - fr_machine_hook_sense_t
    - bool
    - fr_machine_hook_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 560
    functionName: fr_machine_hook
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_assert
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: void
    signature: "void *fr_machine_hook(fr_machine_t *m, TALLOC_CTX *ctx, int state_to_hook,
      fr_machine_hook_type_t type, fr_machine_hook_sense_t sense,\n\t\t      bool
      oneshot, fr_machine_hook_func_t func, void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_machine_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: fr_machine_pause
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_machine_pause(fr_machine_t *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:579,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:580,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/machine.c:587,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/machine.c:596,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/machine.c:599,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/machine.c:600,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/machine.c:601,1
    - Dst: state_transition
      Src: /src/freeradius-server/src/lib/util/machine.c:603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_machine_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 575
    functionDepth: 5
    functionLinenumber: 575
    functionLinenumberEnd: 605
    functionName: fr_machine_resume
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 2
    functionsReached:
    - fr_dlist_head
    - state_transition
    - talloc_free
    - fr_dlist_num_elements
    - fr_dlist_next
    - fr_dlist_remove
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_machine_resume(fr_machine_t *m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:645,1
    - Dst: fr_machine_state_inst_t*::def::signal
      Src: /src/freeradius-server/src/lib/util/machine.c:646,1
    - Dst: call_hook
      Src: /src/freeradius-server/src/lib/util/machine.c:647,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/machine.c:657,1
    - Dst: state_post
      Src: /src/freeradius-server/src/lib/util/machine.c:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - m
    - signal
    argTypes:
    - fr_machine_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 619
    functionDepth: 4
    functionLinenumber: 619
    functionLinenumberEnd: 660
    functionName: fr_machine_signal
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.c
    functionUses: 0
    functionsReached:
    - fr_machine_state_inst_t*::def::signal
    - fr_assert
    - call_hook
    - state_post
    linkageType: ''
    returnType: int
    signature: int fr_machine_signal(fr_machine_t *m, int signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: HEAP_PARENT
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_PARENT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: HEAP_LEFT
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_LEFT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: HEAP_RIGHT
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_RIGHT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: HEAP_SWAP
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAP_SWAP(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: fr_heap_pre_alloc_size
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fr_heap_pre_alloc_size(unsigned int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/heap.c:69,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:70,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/heap.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - cmp
    - type
    - offset
    - init
    argTypes:
    - TALLOC_CTX*
    - fr_heap_cmp_t
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: _fr_heap_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_type
    - talloc_array
    linkageType: ''
    returnType: fr_heap_t
    signature: fr_heap_t *_fr_heap_alloc(TALLOC_CTX *ctx, fr_heap_cmp_t cmp, char
      const *type, size_t offset, unsigned int init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - data
    argTypes:
    - fr_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: index_get
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_get(fr_heap_t *h, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - data
    - idx
    argTypes:
    - fr_heap_t*
    - void*
    - fr_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: index_set
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void index_set(fr_heap_t *h, void *data, fr_heap_index_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _heap
    - ','
    - _idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: OFFSET_SET
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_SET(_heap, _idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _heap
    - ','
    - _idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: OFFSET_RESET
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_RESET(_heap, _idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/heap.c:110,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:111,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/heap.c:112,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/heap.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - hp
    - n_size
    argTypes:
    - fr_heap_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: realloc_heap
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 0
    functionsReached:
    - talloc_realloc
    - fr_strerror_printf
    - talloc_set_type
    - unlikely
    linkageType: ''
    returnType: int
    signature: int realloc_heap(fr_heap_t **hp, unsigned int n_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:151,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/heap.c:152,1
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/heap.c:156,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/heap.c:157,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/heap.c:158,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/heap.c:165,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:180,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/heap.c:182,1
    - Dst: realloc_heap
      Src: /src/freeradius-server/src/lib/util/heap.c:191,1
    - Dst: fr_heap_bubble
      Src: /src/freeradius-server/src/lib/util/heap.c:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - hp
    - data
    argTypes:
    - fr_heap_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 202
    functionName: fr_heap_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 28
    functionsReached:
    - unlikely
    - index_get
    - fr_heap_bubble
    - fr_strerror_const
    - fr_heap_entry_inserted
    - _talloc_get_type_abort
    - realloc_heap
    linkageType: ''
    returnType: int
    signature: int fr_heap_insert(fr_heap_t **hp, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/heap.c:206,1
    - Dst: HEAP_PARENT
      Src: /src/freeradius-server/src/lib/util/heap.c:212,1
    - Dst: fr_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/heap.c:217,1
    - Dst: HEAP_SWAP
      Src: /src/freeradius-server/src/lib/util/heap.c:222,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/heap.c:223,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/heap.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - h
    - child
    argTypes:
    - fr_heap_t*
    - fr_heap_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 227
    functionName: fr_heap_bubble
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 1
    functionsReached:
    - fr_cond_assert
    - HEAP_SWAP
    - HEAP_PARENT
    - fr_heap_t*::cmp
    - OFFSET_SET
    linkageType: ''
    returnType: void
    signature: void fr_heap_bubble(fr_heap_t *h, fr_heap_index_t child)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:244,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/heap.c:245,1
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/heap.c:252,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:257,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/heap.c:258,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:262,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/heap.c:263,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/heap.c:269,1
    - Dst: OFFSET_RESET
      Src: /src/freeradius-server/src/lib/util/heap.c:270,1
    - Dst: fr_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/heap.c:276,1
    - Dst: OFFSET_SET
      Src: /src/freeradius-server/src/lib/util/heap.c:280,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/heap.c:282,1
    - Dst: fr_heap_bubble
      Src: /src/freeradius-server/src/lib/util/heap.c:297,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/util/heap.c:308,1
    - Dst: realloc_heap
      Src: /src/freeradius-server/src/lib/util/heap.c:310,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - hp
    - data
    argTypes:
    - fr_heap_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 314
    functionName: fr_heap_extract
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 15
    functionsReached:
    - unlikely
    - index_get
    - fr_strerror_printf
    - fr_heap_bubble
    - HEAP_LEFT
    - OFFSET_SET
    - fr_heap_t*::cmp
    - fr_strerror_const
    - ROUND_UP_DIV
    - OFFSET_RESET
    - realloc_heap
    linkageType: ''
    returnType: int
    signature: int fr_heap_extract(fr_heap_t **hp, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:330,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/heap.c:331,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/heap.c:338,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/util/heap.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_heap_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: fr_heap_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 11
    functionsReached:
    - unlikely
    - fr_strerror_const
    - fr_heap_extract
    linkageType: ''
    returnType: void
    signature: void *fr_heap_pop(fr_heap_t **hp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - iter
    argTypes:
    - fr_heap_t*
    - fr_heap_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: fr_heap_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_heap_iter_init(fr_heap_t *h, fr_heap_iter_t *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - iter
    argTypes:
    - fr_heap_t*
    - fr_heap_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: fr_heap_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_heap_iter_next(fr_heap_t *h, fr_heap_iter_t *iter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:385,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/heap.c:386,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:394,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/heap.c:395,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:397,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:400,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:406,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/heap.c:407,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:408,1
    - Dst: index_get
      Src: /src/freeradius-server/src/lib/util/heap.c:408,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/heap.c:412,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:413,1
    - Dst: fr_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/heap.c:413,1
    - Dst: HEAP_LEFT
      Src: /src/freeradius-server/src/lib/util/heap.c:413,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/heap.c:415,1
    - Dst: fr_fatal_assert_msg
      Src: /src/freeradius-server/src/lib/util/heap.c:416,1
    - Dst: fr_heap_t*::cmp
      Src: /src/freeradius-server/src/lib/util/heap.c:416,1
    - Dst: HEAP_RIGHT
      Src: /src/freeradius-server/src/lib/util/heap.c:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - file
    - line
    - h
    argTypes:
    - char*
    - int
    - fr_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 419
    functionName: fr_heap_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/heap.c
    functionUses: 0
    functionsReached:
    - index_get
    - talloc_get_type_abort
    - HEAP_LEFT
    - HEAP_RIGHT
    - fr_heap_t*::cmp
    - fr_fatal_assert_msg
    - _talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_heap_verify(char const *file, int line, fr_heap_t *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: islower
      Src: /src/freeradius-server/src/lib/util/missing.c:51,1
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/util/missing.c:51,1
    - Dst: islower
      Src: /src/freeradius-server/src/lib/util/missing.c:52,1
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/util/missing.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: strncasecmp
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 14
    functionsReached:
    - islower
    - toupper
    linkageType: ''
    returnType: int
    signature: int strncasecmp(char *s1, char *s2, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/missing.c:69,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/missing.c:70,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/missing.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: strcasecmp
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 16
    functionsReached:
    - strlen
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int strcasecmp(char *s1, char *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/missing.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: memrchr
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *memrchr(void const *s, int c, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/freeradius-server/src/lib/util/missing.c:100,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/missing.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cp
    - inp
    argTypes:
    - char*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: inet_aton
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 3
    functionsReached:
    - sscanf
    - htonl
    linkageType: ''
    returnType: int
    signature: int inet_aton(char const *cp, struct in_addr *inp)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - stringp
    - delim
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: strsep
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strsep(char **stringp, char const *delim)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/missing.c:164,1
    - Dst: localtime
      Src: /src/freeradius-server/src/lib/util/missing.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - l_clock
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: localtime_r
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 7
    functionsReached:
    - localtime
    - memcpy
    linkageType: ''
    returnType: struct tm
    signature: struct tm *localtime_r(time_t const *l_clock, struct tm *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctime
      Src: /src/freeradius-server/src/lib/util/missing.c:185,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/missing.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - l_clock
    - l_buf
    argTypes:
    - time_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: ctime_r
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 0
    functionsReached:
    - strcpy
    - ctime
    linkageType: ''
    returnType: char
    signature: char *ctime_r(time_t const *l_clock, char *l_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/missing.c:207,1
    - Dst: gmtime
      Src: /src/freeradius-server/src/lib/util/missing.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - l_clock
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: gmtime_r
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 6
    functionsReached:
    - gmtime
    - memcpy
    linkageType: ''
    returnType: struct tm
    signature: struct tm *gmtime_r(time_t const *l_clock, struct tm *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/freeradius-server/src/lib/util/missing.c:220,1
    - Dst: fdopen
      Src: /src/freeradius-server/src/lib/util/missing.c:223,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/missing.c:225,1
    - Dst: vfprintf
      Src: /src/freeradius-server/src/lib/util/missing.c:229,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/missing.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - format
    - args
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: vdprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 1
    functionsReached:
    - vfprintf
    - dup
    - fdopen
    - close
    - fclose
    linkageType: ''
    returnType: int
    signature: int vdprintf(int fd, char const *format, va_list args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/missing.c:246,1
    - Dst: mach_timebase_info
      Src: /src/freeradius-server/src/lib/util/missing.c:248,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/missing.c:251,1
    - Dst: mach_absolute_time
      Src: /src/freeradius-server/src/lib/util/missing.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - clk_id
    - t
    argTypes:
    - int
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 273
    functionName: clock_gettime
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - mach_timebase_info
    - pthread_mutex_unlock
    - mach_absolute_time
    linkageType: ''
    returnType: int
    signature: int clock_gettime(int clk_id, struct timespec *t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/missing.c:292,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/missing.c:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 326
    functionName: inet_pton4
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 4
    functionsReached:
    - strchr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int inet_pton4(char const *src, struct in_addr *dst)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/missing.c:352,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/missing.c:365,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/missing.c:366,1
    - Dst: inet_pton4
      Src: /src/freeradius-server/src/lib/util/missing.c:392,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/missing.c:422,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 424
    functionName: inet_pton6
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 5
    functionsReached:
    - memset
    - strchr
    - inet_pton4
    - memcpy
    linkageType: ''
    returnType: int
    signature: int inet_pton6(char const *src, unsigned char *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton4
      Src: /src/freeradius-server/src/lib/util/missing.c:433,1
    - Dst: inet_pton6
      Src: /src/freeradius-server/src/lib/util/missing.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: inet_pton
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 9
    functionsReached:
    - inet_pton4
    - inet_pton6
    linkageType: ''
    returnType: int
    signature: int inet_pton(int af, char const *src, void *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/missing.c:454,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/missing.c:469,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:470,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:471,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:472,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:473,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:474,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:475,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:476,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/missing.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - cnt
    argTypes:
    - int
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 482
    functionName: inet_ntop
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 10
    functionsReached:
    - fr_nbo_to_uint16
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *inet_ntop(int af, void const *src, char *dst, size_t cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sendmsg
      Src: /src/freeradius-server/src/lib/util/missing.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - sockfd
    - msgvec
    - vlen
    - flags
    argTypes:
    - int
    - struct mmsghdr*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 527
    functionName: sendmmsg
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 0
    functionsReached:
    - sendmsg
    linkageType: ''
    returnType: int
    signature: int sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
      int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/missing.c:564,1
    - Dst: fcntl
      Src: /src/freeradius-server/src/lib/util/missing.c:568,1
    - Dst: sysconf
      Src: /src/freeradius-server/src/lib/util/missing.c:573,1
    - Dst: opendir
      Src: /src/freeradius-server/src/lib/util/missing.c:583,1
    - Dst: readdir
      Src: /src/freeradius-server/src/lib/util/missing.c:589,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/util/missing.c:590,1
    - Dst: dirfd
      Src: /src/freeradius-server/src/lib/util/missing.c:595,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/missing.c:598,1
    - Dst: closedir
      Src: /src/freeradius-server/src/lib/util/missing.c:601,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/missing.c:616,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 620
    functionName: closefrom
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 2
    functionsReached:
    - dirfd
    - strtol
    - opendir
    - sysconf
    - closedir
    - close
    - readdir
    - fcntl
    linkageType: ''
    returnType: void
    signature: void closefrom(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: explicit_bzero
      Src: /src/freeradius-server/src/lib/util/missing.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - ch
    - len
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 647
    functionName: memset_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/missing.c
    functionUses: 2
    functionsReached:
    - explicit_bzero
    linkageType: ''
    returnType: void
    signature: "void *memset_explicit(void *ptr,\n#ifdef HAVE_EXPLICIT_BZERO\n\t\t
      \     UNUSED\n#endif\n\t\t      int ch,\n\t\t      size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _have
    - ','
    - _need
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: CHECK_FREESPACE
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FREESPACE(_have, _need)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FR_PROTO_TRACE
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_PROTO_TRACE(_fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _data
    - ','
    - _data_len
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FR_PROTO_HEX_DUMP
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_PROTO_HEX_DUMP(_data, _data_len, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _data
    - ','
    - _data_len
    - ','
    - _slen
    - ','
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: FR_PROTO_HEX_MARKER
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_PROTO_HEX_MARKER(_data, _data_len, _slen, _fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _stack
    - ','
    - _depth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: FR_PROTO_STACK_PRINT
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_PROTO_STACK_PRINT(_stack, _depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:733,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:734,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:735,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:736,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:738,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:739,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:740,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:741,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:743,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:744,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:745,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:746,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:748,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:749,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:750,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:751,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:755,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:756,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:757,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:758,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:760,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:761,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:762,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:763,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:767,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:768,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:769,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:770,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:772,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:773,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:774,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:775,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:777,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:778,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:779,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:780,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:782,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:783,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:784,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:785,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:787,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:788,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:789,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:790,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:792,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:793,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:794,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:795,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:797,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:798,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:799,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:800,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:802,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:803,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:804,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:805,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:810,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:811,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:812,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:813,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:815,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:816,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:817,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:818,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:820,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:821,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:822,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:823,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:825,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:826,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:827,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:828,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:832,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:833,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:834,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:835,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:837,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:838,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:839,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:840,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:844,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:845,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:846,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:847,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:849,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:850,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:851,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:852,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:854,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:855,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:856,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:857,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:859,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:860,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:860,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:861,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:862,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:862,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:864,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:865,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:866,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:867,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:869,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:870,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:871,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:872,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:876,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:877,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:878,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/snprintf.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 882
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/snprintf.c
    functionUses: 3
    functionsReached:
    - printf
    - snprintf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/log.c:115,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/log.c:123,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/log.c:124,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/log.c:154,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/log.c:156,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/log.c:158,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/log.c:160,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/log.c:175,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 5
    argNames:
    - ctx
    - sp
    - text
    - slen
    - fmt
    argTypes:
    - TALLOC_CTX*
    - char**
    - char**
    - ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 181
    functionName: fr_canonicalize_error
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 9
    functionsReached:
    - memcpy
    - talloc_array
    - talloc_strdup
    - strlen
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_canonicalize_error(TALLOC_CTX *ctx, char **sp, char **text,
      ssize_t slen, char const *fmt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/log.c:201,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/log.c:201,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/log.c:201,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/log.c:204,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:209,1
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/log.c:212,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/log.c:213,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/log.c:214,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/log.c:219,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/log.c:219,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/log.c:219,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/log.c:222,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/util/log.c:224,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/log.c:225,1
    - Dst: fr_sbuff_ahead
      Src: /src/freeradius-server/src/lib/util/log.c:225,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/log.c:230,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/log.c:231,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:235,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/log.c:240,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/log.c:240,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/log.c:240,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/log.c:242,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/log.c:243,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/util/log.c:254,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/log.c:254,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 256
    functionName: fr_log_fd_event
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_terminal
    - fr_sbuff_shift
    - L
    - read
    - fr_sbuff_used
    - fr_sbuff_marker
    - fr_sbuff_current
    - fr_sbuff_adv_until
    - fr_sbuff_behind
    - fr_sbuff_remaining
    - fr_sbuff_ahead
    - fr_sbuff_advance
    - fr_log
    - fr_sbuff_init_out
    - memset
    - FR_SBUFF_TERMS
    - fr_box_strvalue_len
    - fr_sbuff_set
    linkageType: ''
    returnType: void
    signature: void fr_log_fd_event(UNUSED fr_event_list_t *el, int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/log.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: _fr_log_pool_free
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fr_log_pool_free(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/lib/util/log.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: fr_log_disable_pools
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - atomic_store_explicit
    linkageType: ''
    returnType: void
    signature: void fr_log_disable_pools(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:354,1
    - Dst: fr_atexit_thread_local_alloc_disabled
      Src: /src/freeradius-server/src/lib/util/log.c:354,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:357,1
    - Dst: fr_atexit_is_exiting
      Src: /src/freeradius-server/src/lib/util/log.c:358,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/log.c:360,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/log.c:362,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/log.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 369
    functionName: fr_log_pool_init
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_atexit_thread_local
    - fr_perror
    - talloc_pool
    - fr_atexit_is_exiting
    - fr_atexit_thread_local_alloc_disabled
    linkageType: ''
    returnType: TALLOC_CTX
    signature: TALLOC_CTX *fr_log_pool_init(void)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_pool_init
      Src: /src/freeradius-server/src/lib/util/log.c:401,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/lib/util/log.c:402,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/log.c:408,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/log.c:420,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/log.c:421,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/util/log.c:432,1
    - Dst: fr_time_to_unix_time
      Src: /src/freeradius-server/src/lib/util/log.c:452,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/log.c:452,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/log.c:453,1
    - Dst: fr_unix_time_to_str
      Src: /src/freeradius-server/src/lib/util/log.c:454,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/log.c:471,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/log.c:481,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/log.c:494,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/log.c:495,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/log.c:513,1
    - Dst: syslog
      Src: /src/freeradius-server/src/lib/util/log.c:557,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/log.c:574,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/log.c:591,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/util/log.c:592,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/log.c:602,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 111
    argCount: 6
    argNames:
    - log
    - type
    - file
    - line
    - fmt
    - ap
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 605
    functionName: fr_vlog
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 4
    functionsReached:
    - talloc_asprintf_append_buffer
    - write
    - syslog
    - fr_time
    - talloc_free
    - FR_SBUFF_OUT
    - fr_vasprintf
    - fr_time_to_unix_time
    - fr_table_str_by_value
    - fr_unix_time_to_str
    - fr_utf8_char
    - talloc_new
    - talloc_asprintf
    - talloc_strlen
    - fr_log_pool_init
    linkageType: ''
    returnType: void
    signature: void fr_vlog(fr_log_t const *log, fr_log_type_t type, char const *file,
      int line, char const *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/log.c:625,1
    - Dst: fr_vlog
      Src: /src/freeradius-server/src/lib/util/log.c:626,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/log.c:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - log
    - type
    - file
    - line
    - fmt
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 6
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: fr_log
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 18
    functionsReached:
    - fr_vlog
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void fr_log(fr_log_t const *log, fr_log_type_t type, char const *file,
      int line, char const *fmt, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_pool_init
      Src: /src/freeradius-server/src/lib/util/log.c:666,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/log.c:671,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/log.c:676,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/log.c:683,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/log.c:690,1
    - Dst: fr_sbuff_in_vsprintf
      Src: /src/freeradius-server/src/lib/util/log.c:691,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/log.c:692,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/log.c:696,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/log.c:697,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/log.c:700,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:705,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/log.c:707,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/log.c:709,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/log.c:710,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/log.c:716,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/log.c:718,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/log.c:719,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/log.c:720,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:723,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/log.c:726,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 7
    argNames:
    - log
    - type
    - file
    - line
    - f_rules
    - fmt
    - ap
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - fr_log_perror_format_t*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 647
    functionDepth: 7
    functionLinenumber: 647
    functionLinenumberEnd: 727
    functionName: fr_vlog_perror
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - va_end
    - fr_sbuff_set_to_start
    - talloc_free
    - fr_sbuff_in_vsprintf
    - fr_sbuff_init_talloc
    - fr_strerror_pop
    - fr_sbuff_marker
    - va_copy
    - fr_log
    - fr_sbuff_in_strcpy
    - fr_sbuff_set
    - fr_log_pool_init
    linkageType: ''
    returnType: void
    signature: "void fr_vlog_perror(fr_log_t const *log, fr_log_type_t type, char
      const *file, int line,\n\t\t    fr_log_perror_format_t const *f_rules, char
      const *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/log.c:747,1
    - Dst: fr_vlog_perror
      Src: /src/freeradius-server/src/lib/util/log.c:748,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/log.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - log
    - type
    - file
    - line
    - rules
    - fmt
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - fr_log_perror_format_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 742
    functionDepth: 8
    functionLinenumber: 742
    functionLinenumberEnd: 750
    functionName: fr_log_perror
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 2
    functionsReached:
    - va_end
    - fr_vlog_perror
    - va_start
    linkageType: ''
    returnType: void
    signature: "void fr_log_perror(fr_log_t const *log, fr_log_type_t type, char const
      *file, int line,\n\t\t   fr_log_perror_format_t const *rules, char const *fmt,
      ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_pool_init
      Src: /src/freeradius-server/src/lib/util/log.c:773,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/log.c:777,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/log.c:793,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/log.c:794,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/log.c:795,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:798,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:800,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/log.c:803,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 9
    argNames:
    - log
    - type
    - file
    - line
    - str
    - str_len
    - marker_idx
    - marker
    - line_prefix_fmt
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - char*
    - size_t
    - ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 767
    functionDepth: 7
    functionLinenumber: 767
    functionLinenumberEnd: 804
    functionName: fr_log_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_vasprintf
    - strlen
    - fr_log
    - fr_log_pool_init
    linkageType: ''
    returnType: void
    signature: "void fr_log_marker(fr_log_t const *log, fr_log_type_t type, char const
      *file, int line,\n\t\t   char const *str, size_t str_len,\n\t\t   ssize_t marker_idx,
      char const *marker, char const *line_prefix_fmt, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_pool_init
      Src: /src/freeradius-server/src/lib/util/log.c:823,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/log.c:829,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/log.c:830,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/log.c:831,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/log.c:838,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:841,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:844,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/log.c:848,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - log
    - type
    - file
    - line
    - data
    - data_len
    - line_prefix_fmt
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 817
    functionDepth: 7
    functionLinenumber: 817
    functionLinenumberEnd: 849
    functionName: fr_log_hex
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_vasprintf
    - snprintf
    - fr_log
    - fr_log_pool_init
    linkageType: ''
    returnType: void
    signature: "void fr_log_hex(fr_log_t const *log, fr_log_type_t type, char const
      *file, int line,\n\t\tuint8_t const *data, size_t data_len, char const *line_prefix_fmt,
      ...)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_pool_init
      Src: /src/freeradius-server/src/lib/util/log.c:871,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:876,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/log.c:882,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/log.c:883,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/log.c:884,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/log.c:891,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:894,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:897,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:905,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/log.c:908,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/log.c:914,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 9
    argNames:
    - log
    - type
    - file
    - line
    - data
    - data_len
    - marker_idx
    - marker
    - line_prefix_fmt
    argTypes:
    - fr_log_t*
    - fr_log_type_t
    - char*
    - int
    - uint8_t*
    - size_t
    - ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 864
    functionDepth: 7
    functionLinenumber: 864
    functionLinenumberEnd: 915
    functionName: fr_log_hex_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_vasprintf
    - snprintf
    - fr_log
    - memset
    - fr_log_pool_init
    linkageType: ''
    returnType: void
    signature: "void fr_log_hex_marker(fr_log_t const *log, fr_log_type_t type, char
      const *file, int line,\n\t\t       uint8_t const *data, size_t data_len,\n\t\t
      \      ssize_t marker_idx, char const *marker, char const *line_prefix_fmt,
      ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:924,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - int
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 930
    functionName: _restore_std_legacy
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - dup2
    linkageType: ''
    returnType: int
    signature: int _restore_std_legacy(UNUSED int sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_fault_set_cb
      Src: /src/freeradius-server/src/lib/util/log.c:959,1
    - Dst: dup
      Src: /src/freeradius-server/src/lib/util/log.c:961,1
    - Dst: dup
      Src: /src/freeradius-server/src/lib/util/log.c:962,1
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/log.c:965,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:967,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:967,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:979,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:991,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:993,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:997,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1009,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1011,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1020,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1021,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1029,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1030,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1040,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1041,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1044,1
    - Dst: fr_fault_set_log_fd
      Src: /src/freeradius-server/src/lib/util/log.c:1046,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - log
    - daemonize
    argTypes:
    - fr_log_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 1049
    functionName: fr_log_init_legacy
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 5
    functionsReached:
    - fr_fault_set_cb
    - dup
    - open
    - fr_strerror_printf
    - fr_syserror
    - setlinebuf
    - close
    - dup2
    - fr_fault_set_log_fd
    linkageType: ''
    returnType: int
    signature: int fr_log_init_legacy(fr_log_t *log, bool daemonize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:1063,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/log.c:1080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - log
    - dst_type
    argTypes:
    - fr_log_t*
    - fr_log_dst_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1085
    functionName: fr_log_init_std
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - memset
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_log_init_std(fr_log_t *log, fr_log_dst_t dst_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:1097,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:1102,1
    - Dst: fileno
      Src: /src/freeradius-server/src/lib/util/log.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - log
    - fp
    argTypes:
    - fr_log_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1106
    functionName: fr_log_init_fp
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - memset
    - fileno
    - setlinebuf
    linkageType: ''
    returnType: int
    signature: int fr_log_init_fp(fr_log_t *log, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1120,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/log.c:1120,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1121,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1121,1
    - Dst: fr_log_init_fp
      Src: /src/freeradius-server/src/lib/util/log.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - log
    - file
    argTypes:
    - fr_log_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1116
    functionDepth: 3
    functionLinenumber: 1116
    functionLinenumberEnd: 1132
    functionName: fr_log_init_file
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_syserror
    - fr_log_init_fp
    - fopen
    linkageType: ''
    returnType: int
    signature: int fr_log_init_file(fr_log_t *log, char const *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/freeradius-server/src/lib/util/log.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cookie
    - buf
    - size
    argTypes:
    - UNUSED*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1159
    functionName: _syslog_write
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - syslog
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _syslog_write(UNUSED void *cookie, const char *buf, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:1170,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1173,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/lib/util/log.c:1173,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1177,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1177,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - log
    argTypes:
    - fr_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1184
    functionName: fr_log_init_syslog
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_syserror
    - setlinebuf
    - fopencookie
    - memset
    linkageType: ''
    returnType: int
    signature: int fr_log_init_syslog(fr_log_t *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/log.c:1200,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1204,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/lib/util/log.c:1204,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1209,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1209,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:1213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - log
    - write
    - close
    - uctx
    argTypes:
    - fr_log_t*
    - cookie_write_function_t
    - cookie_close_function_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1217
    functionName: fr_log_init_func
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_syserror
    - setlinebuf
    - fopencookie
    - memset
    linkageType: ''
    returnType: int
    signature: int fr_log_init_func(fr_log_t *log, cookie_write_function_t write,
      cookie_close_function_t close, void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/log.c:1236,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1237,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1237,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - log
    argTypes:
    - fr_log_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1222
    functionDepth: 3
    functionLinenumber: 1222
    functionLinenumberEnd: 1248
    functionName: fr_log_close
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - fclose
    linkageType: ''
    returnType: int
    signature: int fr_log_close(fr_log_t *log)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/freeradius-server/src/lib/util/log.c:1269,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1270,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1271,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1271,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1280,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/util/log.c:1280,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1281,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1281,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1284,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1291,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1291,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1292,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1292,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1294,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1296,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1309,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/util/log.c:1309,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/log.c:1310,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1312,1
    - Dst: dup
      Src: /src/freeradius-server/src/lib/util/log.c:1316,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1317,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1318,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1318,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/util/log.c:1321,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1325,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/util/log.c:1325,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1326,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1326,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1328,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1332,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1332,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1333,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1333,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1335,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1337,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1347,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/util/log.c:1347,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/log.c:1348,1
    - Dst: dup2
      Src: /src/freeradius-server/src/lib/util/log.c:1350,1
    - Dst: fr_fault_set_log_fd
      Src: /src/freeradius-server/src/lib/util/log.c:1354,1
    - Dst: fr_fault_set_cb
      Src: /src/freeradius-server/src/lib/util/log.c:1355,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:1360,1
    - Dst: setlinebuf
      Src: /src/freeradius-server/src/lib/util/log.c:1361,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/log.c:1363,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/log.c:1364,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/log.c:1365,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/log.c:1365,1
    - Dst: fr_log_init_std
      Src: /src/freeradius-server/src/lib/util/log.c:1369,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 91
    argCount: 2
    argNames:
    - el
    - daemonize
    argTypes:
    - fr_event_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1372
    functionName: fr_log_global_init
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - fr_fault_set_cb
    - unlikely
    - fopen
    - fr_log_init_std
    - dup
    - pipe
    - fr_syserror
    - fr_strerror_printf
    - fr_event_fd_insert
    - setlinebuf
    - fr_event_fd_delete
    - fr_strerror_const_push
    - close
    - dup2
    - fr_fault_set_log_fd
    linkageType: ''
    returnType: int
    signature: int fr_log_global_init(fr_event_list_t *el, bool daemonize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/util/log.c:1381,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1382,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/util/log.c:1384,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/log.c:1385,1
    - Dst: _restore_std_legacy
      Src: /src/freeradius-server/src/lib/util/log.c:1388,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/log.c:1393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1394
    functionName: fr_log_global_free
    functionSourceFile: /src/freeradius-server/src/lib/util/log.c
    functionUses: 0
    functionsReached:
    - _restore_std_legacy
    - fr_event_fd_delete
    - fclose
    - close
    linkageType: ''
    returnType: void
    signature: void fr_log_global_free(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:53,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:54,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/uri.c:54,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/uri.c:55,1
    - Dst: fr_value_box_is_safe_for
      Src: /src/freeradius-server/src/lib/util/uri.c:63,1
    - Dst: fr_uri_escape_ctx_t*::uri_part::func
      Src: /src/freeradius-server/src/lib/util/uri.c:71,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/uri.c:72,1
    - Dst: fr_value_box_mark_safe_for
      Src: /src/freeradius-server/src/lib/util/uri.c:75,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/uri.c:78,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/uri.c:97,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/uri.c:99,1
    - Dst: fr_sbuff_uint8
      Src: /src/freeradius-server/src/lib/util/uri.c:104,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/uri.c:110,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/uri.c:117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - uri_vb
    - uctx
    argTypes:
    - fr_value_box_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 120
    functionName: fr_uri_escape
    functionSourceFile: /src/freeradius-server/src/lib/util/uri.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_is_safe_for
    - fr_value_box_cast_in_place
    - fr_sbuff_uint8
    - fr_uri_escape_ctx_t*::uri_part::func
    - fr_value_box_mark_safe_for
    - fr_sbuff_init_in
    - fr_sbuff_adv_until
    - fr_sbuff_advance
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_uri_escape(fr_value_box_t *uri_vb, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/uri.c:147,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:150,1
    - Dst: fr_uri_escape
      Src: /src/freeradius-server/src/lib/util/uri.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - uri
    - uri_parts
    - uctx
    argTypes:
    - fr_value_box_list_t*
    - fr_uri_part_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 7
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: fr_uri_escape_list
    functionSourceFile: /src/freeradius-server/src/lib/util/uri.c
    functionUses: 5
    functionsReached:
    - unlikely
    - fr_strerror_clear
    - fr_uri_escape
    linkageType: ''
    returnType: int
    signature: int fr_uri_escape_list(fr_value_box_list_t *uri, fr_uri_part_t const
      *uri_parts, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:150,1
    - Dst: fr_uri_escape
      Src: /src/freeradius-server/src/lib/util/uri.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 7
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/uri.c
    functionUses: 15
    functionsReached:
    - unlikely
    - fr_uri_escape
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(uri, uri_vb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/uri.c:170,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:179,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:180,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/uri.c:180,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/uri.c:181,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/uri.c:184,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:185,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:185,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/uri.c:186,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/uri.c:188,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:189,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:189,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:192,1
    - Dst: fr_table_value_by_longest_prefix
      Src: /src/freeradius-server/src/lib/util/uri.c:198,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/uri.c:198,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/uri.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - uri
    - schemes
    - schemes_len
    - def
    argTypes:
    - fr_value_box_list_t*
    - fr_table_num_sorted_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 167
    functionDepth: 5
    functionLinenumber: 167
    functionLinenumberEnd: 199
    functionName: fr_uri_has_scheme
    functionSourceFile: /src/freeradius-server/src/lib/util/uri.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_sbuff_start
    - fr_value_box_clear_value
    - fr_table_value_by_longest_prefix
    - fr_sbuff_used
    - FR_SBUFF_OUT
    - fr_strerror_printf_push
    - fr_value_box_cast
    - fr_sbuff_remaining
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: int
    signature: int fr_uri_has_scheme(fr_value_box_list_t *uri, fr_table_num_sorted_t
      const *schemes, size_t schemes_len, int def)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:179,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:180,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/uri.c:180,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/uri.c:181,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/uri.c:184,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:185,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:185,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/uri.c:186,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/lib/util/uri.c:188,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:189,1
    - Dst: fr_sbuff_remaining
      Src: /src/freeradius-server/src/lib/util/uri.c:189,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/uri.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 193
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/uri.c
    functionUses: 15
    functionsReached:
    - unlikely
    - fr_value_box_clear_value
    - fr_strerror_printf_push
    - fr_value_box_cast
    - fr_sbuff_remaining
    - fr_sbuff_in_bstrncpy
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(uri, vb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fixup_list
    - common
    argTypes:
    - fr_dlist_head_t*
    - dict_fixup_common_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: dict_fixup_common
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: int dict_fixup_common(fr_dlist_head_t *fixup_list, dict_fixup_common_t
      *common)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:137,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:146,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:148,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:155,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:156,1
    - Dst: dict_by_protocol_substr
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:162,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:166,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:169,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:170,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:170,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:170,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:172,1
    - Dst: fr_tolower
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:180,1
    - Dst: fr_dict_valid_oid_str
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:187,1
    - Dst: fr_dict_protocol_afrom_file
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:192,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:193,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:194,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:194,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:198,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:199,1
    - Dst: fr_sbuff_eof
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:207,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:221,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:222,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:223,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:232,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:235,1
    - Dst: fr_dict_attr_by_oid_substr
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - da_p
    - rel
    - in
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 255
    functionName: fr_dict_protocol_reference
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 2
    functionsReached:
    - fr_sbuff_start
    - FR_SBUFF_OUT
    - fr_strerror_printf
    - fr_sbuff_terminate
    - fr_sbuff_eof
    - fr_dict_attr_by_oid_substr
    - fr_tolower
    - fr_strerror_const
    - FR_SBUFF_TERMS
    - fr_dict_protocol_afrom_file
    - L
    - fr_dict_valid_oid_str
    - fr_sbuff_out_bstrncpy_until
    - fr_sbuff_next_if_char
    - fr_strerror_printf_push
    - fr_dict_unconst
    - fr_sbuff_used
    - fr_sbuff_is_char
    - fr_hash_table_insert
    - dict_by_protocol_substr
    linkageType: ''
    returnType: int
    signature: int fr_dict_protocol_reference(fr_dict_attr_t const **da_p, fr_dict_attr_t
      const *rel, fr_sbuff_t *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:283,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:286,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:290,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:291,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:292,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:297,1
    - Dst: dict_fixup_common
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 10
    argNames:
    - fctx
    - filename
    - line
    - attr
    - attr_len
    - name
    - name_len
    - value
    - value_len
    - parent
    argTypes:
    - dict_fixup_ctx_t*
    - char*
    - int
    - char*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 302
    functionName: dict_fixup_enumv_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - talloc_bstrndup
    - talloc_strdup
    - talloc
    - dict_fixup_common
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int dict_fixup_enumv_enqueue(dict_fixup_ctx_t *fctx, char const *filename,
      int line,\n\t\t\t     char const *attr, size_t attr_len,\n\t\t\t     char const
      *name, size_t name_len,\n\t\t\t     char const *value, size_t value_len,\n\t\t\t
      \    fr_dict_attr_t const *parent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:315,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:320,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:322,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:323,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:326,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:329,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:330,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:332,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:333,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:335,1
    - Dst: fr_dict_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:339,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - dict_fixup_ctx_t *fctx
    - fixup
    argTypes:
    - UNUSED
    - dict_fixup_enumv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 312
    functionDepth: 9
    functionLinenumber: 312
    functionLinenumberEnd: 344
    functionName: dict_fixup_enumv_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_cwd_strip
    - FR_VALUE_BOX_INITIALISER_NULL
    - fr_dict_enum_add_name
    - fr_box_strvalue_buffer
    - fr_value_box_clear
    - fr_dict_attr_by_oid
    - talloc_strlen
    - fr_dict_attr_unconst
    - fr_value_box_from_str
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int dict_fixup_enumv_apply(UNUSED dict_fixup_ctx_t *fctx, dict_fixup_enumv_t
      *fixup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:362,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:364,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:369,1
    - Dst: dict_fixup_common
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fctx
    - da
    - ref
    argTypes:
    - dict_fixup_ctx_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: dict_fixup_group_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - dict_fixup_common
    - talloc_strdup
    - talloc
    linkageType: ''
    returnType: int
    signature: int dict_fixup_group_enqueue(dict_fixup_ctx_t *fctx, fr_dict_attr_t
      *da, char const *ref)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:389,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:389,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:391,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:392,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:397,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:398,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:402,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:403,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:404,1
    - Dst: dict_attr_ref_resolve
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - dict_fixup_ctx_t *fctx
    - fixup
    argTypes:
    - UNUSED
    - dict_fixup_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 385
    functionDepth: 7
    functionLinenumber: 385
    functionLinenumberEnd: 411
    functionName: dict_fixup_group_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_cwd_strip
    - fr_strerror_printf
    - fr_dict_protocol_reference
    - FR_SBUFF_IN_STR
    - dict_attr_ref_resolve
    - fr_dict_attr_ref
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int dict_fixup_group_apply(UNUSED dict_fixup_ctx_t *fctx, dict_fixup_group_t
      *fixup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:429,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:429,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:437,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:439,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:444,1
    - Dst: dict_fixup_common
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fctx
    - da
    - ref
    argTypes:
    - dict_fixup_ctx_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 448
    functionName: dict_fixup_clone_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - talloc_strdup
    - talloc
    - fr_assert
    - dict_fixup_common
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_fixup_clone_enqueue(dict_fixup_ctx_t *fctx, fr_dict_attr_t
      *da, char const *ref)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:463,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:469,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:485,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:486,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:492,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:493,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:494,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:506,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:507,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:507,1
    - Dst: dict_attr_children
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:516,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:517,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:518,1
    - Dst: dict_attr_acopy_children
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:534,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:535,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:535,1
    - Dst: fr_dict_attr_add_initialised
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - dst_p
    - src
    argTypes:
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 540
    functionName: dict_fixup_clone
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_cwd_strip
    - dict_attr_acopy_children
    - fr_dict_unconst
    - fr_strerror_printf
    - fr_dict_attr_add_initialised
    - dict_attr_children
    - fr_strerror
    - fr_type_to_str
    - fr_dict_attr_ref
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int dict_fixup_clone(fr_dict_attr_t **dst_p, fr_dict_attr_t const *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:554,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:554,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:556,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:557,1
    - Dst: dict_fixup_clone
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dict_fixup_ctx_t *fctx
    - fixup
    argTypes:
    - UNUSED
    - dict_fixup_clone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 550
    functionDepth: 7
    functionLinenumber: 550
    functionLinenumberEnd: 563
    functionName: dict_fixup_clone_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_cwd_strip
    - dict_fixup_clone
    - fr_dict_protocol_reference
    - FR_SBUFF_IN_STR
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int dict_fixup_clone_apply(UNUSED dict_fixup_ctx_t *fctx, dict_fixup_clone_t
      *fixup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:581,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:581,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:589,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:591,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:596,1
    - Dst: dict_fixup_common
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fctx
    - da
    - ref
    argTypes:
    - dict_fixup_ctx_t*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 600
    functionName: dict_fixup_clone_enum_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - talloc_strdup
    - talloc
    - fr_assert
    - dict_fixup_common
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_fixup_clone_enum_enqueue(dict_fixup_ctx_t *fctx, fr_dict_attr_t
      *da, char const *ref)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:617,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:617,1
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:622,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:622,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:624,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:625,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:629,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:630,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:631,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:639,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:639,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:640,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:645,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:646,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:647,1
    - Dst: dict_attr_ext_copy
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:651,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:652,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:653,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:654,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - dict_fixup_ctx_t *fctx
    - fixup
    argTypes:
    - UNUSED
    - dict_fixup_clone_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 610
    functionDepth: 7
    functionLinenumber: 610
    functionLinenumberEnd: 660
    functionName: dict_fixup_clone_enum_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_cwd_strip
    - fr_strerror_printf
    - dict_attr_ext_copy
    - fr_dict_protocol_reference
    - FR_SBUFF_IN_STR
    - fr_dict_attr_ext
    - fr_assert
    - fr_dict_attr_is_key_field
    - fr_type_to_str
    - fr_dict_attr_ref
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int dict_fixup_clone_enum_apply(UNUSED dict_fixup_ctx_t *fctx, dict_fixup_clone_t
      *fixup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:680,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:682,1
    - Dst: dict_fixup_common
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fctx
    - da
    argTypes:
    - dict_fixup_ctx_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 690
    functionName: dict_fixup_vsa_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - dict_fixup_common
    - talloc
    linkageType: ''
    returnType: int
    signature: int dict_fixup_vsa_enqueue(dict_fixup_ctx_t *fctx, fr_dict_attr_t *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:703,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:703,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:708,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:710,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:711,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - dict_fixup_ctx_t *fctx
    - fixup
    argTypes:
    - UNUSED
    - dict_fixup_vsa_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 700
    functionDepth: 6
    functionLinenumber: 700
    functionLinenumberEnd: 718
    functionName: dict_fixup_vsa_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_dict_unconst
    - fr_hash_table_iter_next
    - fr_hash_table_iter_init
    - fr_dict_attr_add
    - dict_attr_child_by_num
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: int dict_fixup_vsa_apply(UNUSED dict_fixup_ctx_t *fctx, dict_fixup_vsa_t
      *fixup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:743,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:746,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:750,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:752,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:756,1
    - Dst: dict_fixup_common
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - fctx
    - filename
    - line
    - alias_parent
    - alias
    - ref_parent
    - ref
    argTypes:
    - dict_fixup_ctx_t*
    - char*
    - int
    - fr_dict_attr_t*
    - char*
    - fr_dict_attr_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 763
    functionName: dict_fixup_alias_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - dict_fixup_common
    - talloc_strdup
    - talloc
    linkageType: ''
    returnType: int
    signature: "int dict_fixup_alias_enqueue(dict_fixup_ctx_t *fctx, char const *filename,
      int line,\n\t\t\t     fr_dict_attr_t *alias_parent, char const *alias,\n\t\t\t
      \    fr_dict_attr_t *ref_parent, char const *ref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:772,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:774,1
    - Dst: dict_attr_alias_add
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dict_fixup_ctx_t *fctx
    - fixup
    argTypes:
    - UNUSED
    - dict_fixup_alias_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 765
    functionDepth: 7
    functionLinenumber: 765
    functionLinenumberEnd: 781
    functionName: dict_fixup_alias_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_by_oid
    - fr_strerror_printf
    - dict_attr_alias_add
    linkageType: ''
    returnType: int
    signature: int dict_fixup_alias_apply(UNUSED dict_fixup_ctx_t *fctx, dict_fixup_alias_t
      *fixup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:794,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:795,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:796,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:797,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:798,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:799,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - fctx
    argTypes:
    - dict_fixup_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 805
    functionName: dict_fixup_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - talloc_pool
    - fr_dlist_talloc_init
    linkageType: ''
    returnType: int
    signature: int dict_fixup_init(dict_fixup_ctx_t *fctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPLY_FIXUP
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:836,1
    - Dst: APPLY_FIXUP
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:837,1
    - Dst: APPLY_FIXUP
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:838,1
    - Dst: APPLY_FIXUP
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:839,1
    - Dst: APPLY_FIXUP
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:840,1
    - Dst: APPLY_FIXUP
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:841,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - fctx
    argTypes:
    - dict_fixup_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 846
    functionName: dict_fixup_apply
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - APPLY_FIXUP
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int dict_fixup_apply(dict_fixup_ctx_t *fctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _fctx
    - ','
    - _list
    - ','
    - _func
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 822
    functionName: APPLY_FIXUP
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPLY_FIXUP(_fctx, _list, _func, _type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:856,1
    - Dst: fr_hash_table_fill
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:858,1
    - Dst: fr_hash_table_fill
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:859,1
    - Dst: dict_attr_namespace
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:866,1
    - Dst: fr_hash_table_fill
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - da
    - uctx
    argTypes:
    - fr_dict_attr_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 851
    functionDepth: 4
    functionLinenumber: 851
    functionLinenumberEnd: 871
    functionName: _dict_attr_fixup_hash_tables
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - dict_attr_namespace
    - fr_hash_table_fill
    linkageType: ''
    returnType: int
    signature: int _dict_attr_fixup_hash_tables(fr_dict_attr_t const *da, UNUSED void
      *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:879,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:879,1
    - Dst: _dict_attr_fixup_hash_tables
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:881,1
    - Dst: fr_dict_walk
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:883,1
    - Dst: fr_hash_table_fill
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:891,1
    - Dst: fr_hash_table_fill
      Src: /src/freeradius-server/src/lib/util/dict_fixup.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - fr_dict_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 893
    functionName: dict_hash_tables_finalise
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_fixup.c
    functionUses: 1
    functionsReached:
    - fr_hash_table_fill
    - _dict_attr_fixup_hash_tables
    - fr_dict_walk
    - fr_dict_attr_unconst
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void dict_hash_tables_finalise(fr_dict_t *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/lib/util/md4.c:67,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/util/md4.c:68,1
    - Dst: EVP_md4
      Src: /src/freeradius-server/src/lib/util/md4.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md4_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: fr_md4_openssl_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_MD_CTX_reset
    - EVP_md4
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_ctx_reset(fr_md4_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/freeradius-server/src/lib/util/md4.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_md4_ctx_t*
    - fr_md4_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: fr_md4_openssl_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_ctx_copy(fr_md4_ctx_t *dst, fr_md4_ctx_t const
      *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/lib/util/md4.c:86,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md4.c:87,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/util/md4.c:89,1
    - Dst: EVP_md4
      Src: /src/freeradius-server/src/lib/util/md4.c:89,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/util/md4.c:92,1
    - Dst: ERR_get_error
      Src: /src/freeradius-server/src/lib/util/md4.c:92,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/md4.c:93,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/lib/util/md4.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: fr_md4_openssl_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - unlikely
    - EVP_DigestInit_ex
    - fr_strerror_printf
    - EVP_MD_CTX_new
    - ERR_get_error
    - ERR_error_string_n
    - EVP_md4
    linkageType: ''
    returnType: fr_md4_ctx_t
    signature: fr_md4_ctx_t *fr_md4_openssl_ctx_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/lib/util/md4.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md4_ctx_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: fr_md4_openssl_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_ctx_free(fr_md4_ctx_t **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/util/md4.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - fr_md4_ctx_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: fr_md4_openssl_update
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_update(fr_md4_ctx_t *ctx, uint8_t const *in, size_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal
      Src: /src/freeradius-server/src/lib/util/md4.c:126,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/md4.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - ctx
    argTypes:
    - uint8_t[]
    - fr_md4_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: fr_md4_openssl_final
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - EVP_DigestFinal
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_final(uint8_t out[static MD4_DIGEST_LENGTH], fr_md4_ctx_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: htole32
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: htole32_4
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: htole32_14
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32_14(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: htole32_16
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32_16(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: MD4_F1
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_F1(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: MD4_F2
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_F2(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: MD4_F3
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4_F3(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - f
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - data
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: MD4STEP
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD4STEP(f, w, x, y, z, data, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:246,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:247,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:248,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:249,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:250,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:251,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:252,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:253,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:254,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:255,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:256,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:257,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:258,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:259,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:260,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:261,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:263,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:264,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:265,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:266,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:267,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:268,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:269,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:270,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:271,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:272,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:273,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:274,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:275,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:276,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:277,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:278,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:280,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:281,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:282,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:283,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:284,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:285,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:286,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:287,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:288,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:289,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:290,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:291,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:292,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:293,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:294,1
    - Dst: MD4STEP
      Src: /src/freeradius-server/src/lib/util/md4.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - state
    - block
    argTypes:
    - uint32_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 301
    functionName: fr_md4_local_transform
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - MD4STEP
    linkageType: ''
    returnType: void
    signature: void fr_md4_local_transform(uint32_t state[static 4], uint8_t const
      block[static MD4_BLOCK_LENGTH])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md4.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md4_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: fr_md4_local_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_md4_local_ctx_reset(fr_md4_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/md4.c:329,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md4.c:330,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md4.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_md4_ctx_t*
    - fr_md4_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: fr_md4_local_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_md4_local_ctx_copy(fr_md4_ctx_t *dst, fr_md4_ctx_t const *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/md4.c:342,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md4.c:343,1
    - Dst: fr_md4_local_ctx_reset
      Src: /src/freeradius-server/src/lib/util/md4.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 347
    functionName: fr_md4_local_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - fr_md4_local_ctx_reset
    - unlikely
    - talloc
    linkageType: ''
    returnType: fr_md4_ctx_t
    signature: fr_md4_ctx_t *fr_md4_local_ctx_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/md4.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md4_ctx_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: fr_md4_local_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_md4_local_ctx_free(fr_md4_ctx_t **ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md4.c:367,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md4.c:397,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md4.c:400,1
    - Dst: htole32_16
      Src: /src/freeradius-server/src/lib/util/md4.c:401,1
    - Dst: fr_md4_local_transform
      Src: /src/freeradius-server/src/lib/util/md4.c:402,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md4.c:409,1
    - Dst: htole32_16
      Src: /src/freeradius-server/src/lib/util/md4.c:410,1
    - Dst: fr_md4_local_transform
      Src: /src/freeradius-server/src/lib/util/md4.c:411,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md4.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - fr_md4_ctx_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 418
    functionName: fr_md4_local_update
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - fr_md4_local_transform
    - talloc_get_type_abort
    - memcpy
    - htole32_16
    linkageType: ''
    returnType: void
    signature: void fr_md4_local_update(fr_md4_ctx_t *ctx, uint8_t const *in, size_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md4.c:427,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/md4.c:445,1
    - Dst: htole32_16
      Src: /src/freeradius-server/src/lib/util/md4.c:446,1
    - Dst: fr_md4_local_transform
      Src: /src/freeradius-server/src/lib/util/md4.c:447,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/md4.c:450,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/md4.c:453,1
    - Dst: htole32_14
      Src: /src/freeradius-server/src/lib/util/md4.c:455,1
    - Dst: fr_md4_local_transform
      Src: /src/freeradius-server/src/lib/util/md4.c:461,1
    - Dst: htole32_4
      Src: /src/freeradius-server/src/lib/util/md4.c:462,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md4.c:463,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/md4.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - out
    - ctx
    argTypes:
    - uint8_t[]
    - fr_md4_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 465
    functionName: fr_md4_local_final
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htole32_14
    - talloc_get_type_abort
    - htole32_4
    - fr_md4_local_transform
    - memset
    - htole32_16
    linkageType: ''
    returnType: void
    signature: void fr_md4_local_final(uint8_t out[static MD4_DIGEST_LENGTH], fr_md4_ctx_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_md4_ctx_alloc_from_list
      Src: /src/freeradius-server/src/lib/util/md4.c:477,1
    - Dst: fr_md4_update
      Src: /src/freeradius-server/src/lib/util/md4.c:478,1
    - Dst: fr_md4_final
      Src: /src/freeradius-server/src/lib/util/md4.c:479,1
    - Dst: fr_md4_ctx_free_from_list
      Src: /src/freeradius-server/src/lib/util/md4.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 481
    functionName: fr_md4_calc
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 6
    functionsReached:
    - fr_md4_ctx_alloc_from_list
    - fr_md4_final
    - fr_md4_update
    - fr_md4_ctx_free_from_list
    linkageType: ''
    returnType: void
    signature: void fr_md4_calc(uint8_t out[static MD4_DIGEST_LENGTH], uint8_t const
      *in, size_t inlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_md4_ctx_free
      Src: /src/freeradius-server/src/lib/util/md4.c:491,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/md4.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 498
    functionName: _md4_ctx_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - fr_md4_ctx_free
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _md4_ctx_free_on_exit(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md4.c:509,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/md4.c:510,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md4.c:511,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/md4.c:513,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/md4.c:517,1
    - Dst: fr_md4_ctx_alloc
      Src: /src/freeradius-server/src/lib/util/md4.c:523,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md4.c:524,1
    - Dst: fr_md4_ctx_alloc
      Src: /src/freeradius-server/src/lib/util/md4.c:542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 543
    functionName: fr_md4_ctx_alloc_from_list
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_atexit_thread_local
    - fr_md4_ctx_alloc
    - talloc_zero_array
    - fr_strerror_const
    linkageType: ''
    returnType: fr_md4_ctx_t
    signature: fr_md4_ctx_t *fr_md4_ctx_alloc_from_list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_md4_ctx_reset
      Src: /src/freeradius-server/src/lib/util/md4.c:557,1
    - Dst: fr_md4_ctx_free
      Src: /src/freeradius-server/src/lib/util/md4.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md4_ctx_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 566
    functionName: fr_md4_ctx_free_from_list
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 1
    functionsReached:
    - fr_md4_ctx_free
    - fr_md4_ctx_reset
    linkageType: ''
    returnType: void
    signature: void fr_md4_ctx_free_from_list(fr_md4_ctx_t **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/md4.c:581,1
    - Dst: fr_md4_ctx_free
      Src: /src/freeradius-server/src/lib/util/md4.c:583,1
    - Dst: fr_md4_ctx_alloc
      Src: /src/freeradius-server/src/lib/util/md4.c:589,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/md4.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - funcs
    argTypes:
    - fr_md4_funcs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 594
    functionName: md4_free_list_reinit
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 0
    functionsReached:
    - fr_md4_ctx_free
    - fr_md4_ctx_alloc
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void md4_free_list_reinit(fr_md4_funcs_t *funcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_default_properties_is_fips_enabled
      Src: /src/freeradius-server/src/lib/util/md4.c:602,1
    - Dst: md4_free_list_reinit
      Src: /src/freeradius-server/src/lib/util/md4.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 613
    functionName: fr_md4_openssl_init
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 4
    functionsReached:
    - md4_free_list_reinit
    - EVP_default_properties_is_fips_enabled
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md4_free_list_reinit
      Src: /src/freeradius-server/src/lib/util/md4.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 620
    functionName: fr_md4_openssl_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md4.c
    functionUses: 4
    functionsReached:
    - md4_free_list_reinit
    linkageType: ''
    returnType: void
    signature: void fr_md4_openssl_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: tlist_type
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tlist_type(_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_head
    - item
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: fr_tlist_item_to_entry
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_tlist_t
    signature: fr_tlist_t *fr_tlist_item_to_entry(fr_tlist_head_t const *list_head,
      void const *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_head
    - entry
    argTypes:
    - fr_tlist_head_t*
    - fr_tlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: fr_tlist_entry_to_item
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_entry_to_item(fr_tlist_head_t const *list_head, fr_tlist_t
      const *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dlist_head
    argTypes:
    - fr_dlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: fr_tlist_head_from_dlist
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fr_tlist_head_t
    signature: fr_tlist_head_t *fr_tlist_head_from_dlist(fr_dlist_head_t *dlist_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/util/tlist.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_tlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: fr_tlist_entry_init
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_init
    linkageType: ''
    returnType: void
    signature: void fr_tlist_entry_init(fr_tlist_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/lib/util/tlist.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_tlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: fr_tlist_entry_unlink
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_unlink
    linkageType: ''
    returnType: void
    signature: void fr_tlist_entry_unlink(fr_tlist_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_tlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: fr_tlist_entry_in_a_list
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_tlist_entry_in_a_list(fr_tlist_t const *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _head
    - ','
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: fr_tlist_init
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tlist_init(_head, _type, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _head
    - ','
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: fr_tlist_talloc_init
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tlist_talloc_init(_head, _type, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/tlist.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - list_head
    - offset
    - type
    argTypes:
    - fr_tlist_head_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: _fr_tlist_init
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_init
    linkageType: ''
    returnType: void
    signature: void _fr_tlist_init(fr_tlist_head_t *list_head, size_t offset, char
      const *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _list_head
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: fr_tlist_foreach_entry
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tlist_foreach_entry(_list_head, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:189,1
    - Dst: fr_dlist_clear
      Src: /src/freeradius-server/src/lib/util/tlist.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: fr_tlist_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    - fr_dlist_clear
    linkageType: ''
    returnType: void
    signature: void fr_tlist_clear(fr_tlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: fr_tlist_foreach_entry
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    linkageType: ''
    returnType: void
    signature: void fr_tlist_foreach_entry(list_head, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: fr_tlist_in_list
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    linkageType: ''
    returnType: bool
    signature: bool fr_tlist_in_list(fr_tlist_head_t *list_head, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:226,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: fr_tlist_insert_head
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    - fr_dlist_insert_head
    linkageType: ''
    returnType: int
    signature: int fr_tlist_insert_head(fr_tlist_head_t *list_head, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:247,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/tlist.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: fr_tlist_insert_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_tlist_item_to_entry
    linkageType: ''
    returnType: int
    signature: int fr_tlist_insert_tail(fr_tlist_head_t *list_head, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:269,1
    - Dst: fr_dlist_insert_after
      Src: /src/freeradius-server/src/lib/util/tlist.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - list_head
    - pos
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: fr_tlist_insert_after
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    - fr_dlist_insert_after
    linkageType: ''
    returnType: int
    signature: int fr_tlist_insert_after(fr_tlist_head_t *list_head, void *pos, void
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:291,1
    - Dst: fr_dlist_insert_before
      Src: /src/freeradius-server/src/lib/util/tlist.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - list_head
    - pos
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: fr_tlist_insert_before
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    - fr_dlist_insert_before
    linkageType: ''
    returnType: int
    signature: int fr_tlist_insert_before(fr_tlist_head_t *list_head, void *pos, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: fr_tlist_head
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_head(fr_tlist_head_t const *list_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_empty
      Src: /src/freeradius-server/src/lib/util/tlist.h:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: fr_tlist_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_empty
    linkageType: ''
    returnType: bool
    signature: bool fr_tlist_empty(fr_tlist_head_t const *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_initialised
      Src: /src/freeradius-server/src/lib/util/tlist.h:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: fr_tlist_initialised
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_initialised
    linkageType: ''
    returnType: bool
    signature: bool fr_tlist_initialised(fr_tlist_head_t const *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/tlist.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: fr_tlist_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_tail
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_tail(fr_tlist_head_t const *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/tlist.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: fr_tlist_next
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_next(fr_tlist_head_t const *list_head, void const *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/tlist.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: fr_tlist_prev
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_prev
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_prev(fr_tlist_head_t const *list_head, void const *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:415,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: fr_tlist_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_remove(fr_tlist_head_t *list_head, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:431,1
    - Dst: fr_tlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: fr_tlist_pop_head
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_remove
    - fr_tlist_head
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_pop_head(fr_tlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/tlist.h:447,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: fr_tlist_pop_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_tail
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_pop_tail(fr_tlist_head_t *list_head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_in_list
      Src: /src/freeradius-server/src/lib/util/tlist.h:468,1
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:470,1
    - Dst: fr_dlist_replace
      Src: /src/freeradius-server/src/lib/util/tlist.h:471,1
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - list_head
    - item
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: fr_tlist_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_replace
    - fr_tlist_item_to_entry
    - fr_tlist_in_list
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_replace(fr_tlist_head_t *list_head, void *item, void
      *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:493,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/tlist.h:495,1
    - Dst: fr_tlist_initialised
      Src: /src/freeradius-server/src/lib/util/tlist.h:495,1
    - Dst: fr_tlist_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:498,1
    - Dst: fr_tlist_next
      Src: /src/freeradius-server/src/lib/util/tlist.h:500,1
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:501,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/tlist.h:503,1
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/tlist.h:506,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:506,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/tlist.h:509,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:509,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/tlist.h:512,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/tlist.h:512,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:512,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:512,1
    - Dst: fr_tlist_verify
      Src: /src/freeradius-server/src/lib/util/tlist.h:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - file
    - line
    - list_head
    argTypes:
    - char*
    - int
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 519
    functionName: fr_tlist_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 1
    functionsReached:
    - fr_tlist_initialised
    - fr_tlist_verify
    - fr_tlist_head
    - fr_tlist_item_to_entry
    - fr_assert_msg
    - tlist_type
    - strcmp
    - fr_tlist_next
    - _talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_tlist_verify(char const *file, int line, fr_tlist_head_t const
      *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: FR_TLIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLIST_VERIFY(_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: FR_TLIST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLIST_VERIFY(_head)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/tlist.h:542,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:542,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:542,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:542,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:542,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/tlist.h:547,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:547,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/tlist.h:547,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:547,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:547,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:550,1
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/util/tlist.h:553,1
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:559,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/tlist.h:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - list_dst
    - list_src
    argTypes:
    - fr_tlist_head_t*
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 564
    functionName: fr_tlist_move
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_cond_assert
    - fr_dlist_next
    - fr_tlist_item_to_entry
    - strcmp
    - tlist_type
    - fr_dlist_move
    linkageType: ''
    returnType: int
    signature: int fr_tlist_move(fr_tlist_head_t *list_dst, fr_tlist_head_t *list_src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/tlist.h:580,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:580,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:580,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:580,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:580,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/tlist.h:585,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:585,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/tlist.h:585,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:585,1
    - Dst: tlist_type
      Src: /src/freeradius-server/src/lib/util/tlist.h:585,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:588,1
    - Dst: fr_dlist_move_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:590,1
    - Dst: fr_tlist_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:595,1
    - Dst: fr_tlist_next
      Src: /src/freeradius-server/src/lib/util/tlist.h:597,1
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:598,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - list_dst
    - list_src
    argTypes:
    - fr_tlist_head_t*
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 603
    functionName: fr_tlist_move_head
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_cond_assert
    - fr_dlist_move_head
    - fr_tlist_head
    - fr_tlist_item_to_entry
    - strcmp
    - tlist_type
    - fr_tlist_next
    linkageType: ''
    returnType: int
    signature: int fr_tlist_move_head(fr_tlist_head_t *list_dst, fr_tlist_head_t *list_src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/tlist.h:611,1
    - Dst: fr_tlist_pop_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 612
    functionName: fr_tlist_talloc_free_head
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_pop_head
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_tlist_talloc_free_head(fr_tlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/tlist.h:620,1
    - Dst: fr_tlist_pop_head
      Src: /src/freeradius-server/src/lib/util/tlist.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: fr_tlist_talloc_free_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_pop_head
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_tlist_talloc_free_tail(fr_tlist_head_t *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:635,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/tlist.h:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 638
    functionName: fr_tlist_talloc_free_item
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_talloc_free_item(fr_tlist_head_t *list_head, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_next
      Src: /src/freeradius-server/src/lib/util/tlist.h:652,1
    - Dst: fr_tlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:653,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/tlist.h:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 657
    functionName: fr_tlist_talloc_free_to_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_remove
    - talloc_free
    - fr_tlist_next
    linkageType: ''
    returnType: void
    signature: void fr_tlist_talloc_free_to_tail(fr_tlist_head_t *head, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_next
      Src: /src/freeradius-server/src/lib/util/tlist.h:667,1
    - Dst: fr_tlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:668,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/tlist.h:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 672
    functionName: fr_tlist_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_remove
    - talloc_free
    - fr_tlist_next
    linkageType: ''
    returnType: void
    signature: void fr_tlist_talloc_free(fr_tlist_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_tail
      Src: /src/freeradius-server/src/lib/util/tlist.h:682,1
    - Dst: fr_tlist_remove
      Src: /src/freeradius-server/src/lib/util/tlist.h:684,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/tlist.h:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: fr_tlist_talloc_reverse_free
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_tail
    - fr_tlist_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_tlist_talloc_reverse_free(fr_tlist_head_t *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/tlist.h:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list_head
    argTypes:
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: fr_tlist_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_num_elements
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_tlist_num_elements(fr_tlist_head_t const *list_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_sort_split
      Src: /src/freeradius-server/src/lib/util/tlist.h:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - head
    - source
    - front
    - back
    argTypes:
    - fr_tlist_head_t*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 4
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: fr_tlist_sort_split
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_sort_split
    linkageType: ''
    returnType: void
    signature: void fr_tlist_sort_split(fr_tlist_head_t *head, void **source, void
      **front, void **back)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_sort_merge
      Src: /src/freeradius-server/src/lib/util/tlist.h:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - head
    - a
    - b
    - cmp
    argTypes:
    - fr_tlist_head_t*
    - void**
    - void**
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 4
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: fr_tlist_sort_merge
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_sort_merge
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_sort_merge(fr_tlist_head_t *head, void **a, void **b,
      fr_cmp_t cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_recursive_sort
      Src: /src/freeradius-server/src/lib/util/tlist.h:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - head
    - ptr
    - cmp
    argTypes:
    - fr_tlist_head_t*
    - void**
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: fr_tlist_recursive_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_recursive_sort
    linkageType: ''
    returnType: void
    signature: void fr_tlist_recursive_sort(fr_tlist_head_t *head, void **ptr, fr_cmp_t
      cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_sort
      Src: /src/freeradius-server/src/lib/util/tlist.h:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - cmp
    argTypes:
    - fr_tlist_head_t*
    - fr_cmp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 746
    functionDepth: 6
    functionLinenumber: 746
    functionLinenumberEnd: 749
    functionName: fr_tlist_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_dlist_sort
    linkageType: ''
    returnType: void
    signature: void fr_tlist_sort(fr_tlist_head_t *list, fr_cmp_t cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: fr_tlist_noop
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_tlist_noop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: FR_TLIST_ENTRY
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLIST_ENTRY(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: FR_TLIST_HEAD
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLIST_HEAD(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: FR_TLIST_TYPES
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLIST_TYPES(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _element_type
    - ','
    - _element_entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 911
    functionName: FR_TLIST_FUNCS
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLIST_FUNCS(_name, _element_type, _element_entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_tlist_item_to_entry
      Src: /src/freeradius-server/src/lib/util/tlist.h:919,1
    - Dst: fr_tlist_entry_to_item
      Src: /src/freeradius-server/src/lib/util/tlist.h:924,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - list_head
    - ptr
    argTypes:
    - fr_tlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 925
    functionName: fr_tlist_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_tlist_item_to_entry
    - fr_tlist_entry_to_item
    linkageType: ''
    returnType: void
    signature: void *fr_tlist_parent(fr_tlist_head_t *list_head, void const *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/tlist.h:936,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/tlist.h:937,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/tlist.h:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - entry
    - children
    argTypes:
    - fr_tlist_t*
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 951
    functionName: fr_tlist_init_children
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_dlist_init
    linkageType: ''
    returnType: void
    signature: void fr_tlist_init_children(fr_tlist_t *entry, fr_tlist_head_t *children)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - entry
    - children
    argTypes:
    - fr_tlist_t*
    - fr_tlist_head_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 967
    functionName: fr_tlist_add_children
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_tlist_add_children(fr_tlist_t *entry, fr_tlist_head_t *children)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - fr_tlist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 984
    functionName: fr_tlist_remove_children
    functionSourceFile: /src/freeradius-server/src/lib/util/tlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_tlist_head_t
    signature: fr_tlist_head_t *fr_tlist_remove_children(fr_tlist_t *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: _hmac_sha1_ctx_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/hmac_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: int
    signature: int _hmac_sha1_ctx_free_on_exit(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:70,1
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:71,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:72,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:73,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:76,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:77,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:82,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:83,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:84,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:88,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:88,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:88,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:89,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:91,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:94,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:94,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:95,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:101,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:101,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:102,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:106,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - digest
    - in
    - inlen
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 110
    functionName: fr_hmac_sha1
    functionSourceFile: /src/freeradius-server/src/lib/util/hmac_sha1.c
    functionUses: 5
    functionsReached:
    - unlikely
    - EVP_DigestSignFinal
    - EVP_PKEY_new_mac_key
    - EVP_MD_CTX_set_flags
    - fr_atexit_thread_local
    - EVP_MD_CTX_new
    - EVP_DigestSignInit
    - EVP_PKEY_free
    - EVP_MD_CTX_reset
    - EVP_sha1
    - fr_strerror_const
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: "int fr_hmac_sha1(uint8_t digest[SHA1_DIGEST_LENGTH], uint8_t const
      *in, size_t inlen,\n\t\t uint8_t const *key, size_t key_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:136,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:137,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:138,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:149,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:153,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:158,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:160,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:165,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:170,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:176,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:178,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:196,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:197,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:198,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:199,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:209,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:210,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:211,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:212,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:216,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:217,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:218,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:219,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:225,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:229,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:234,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/hmac_sha1.c:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 5
    argNames:
    - digest
    - in
    - inlen
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 240
    functionName: fr_hmac_sha1
    functionSourceFile: /src/freeradius-server/src/lib/util/hmac_sha1.c
    functionUses: 5
    functionsReached:
    - memcpy
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    - printf
    - memset
    linkageType: ''
    returnType: int
    signature: "int fr_hmac_sha1(uint8_t digest[static SHA1_DIGEST_LENGTH], uint8_t
      const *in, size_t inlen,\n\t\t uint8_t const *key, size_t key_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:62,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/skip.c:74,1
    - Dst: isxdigit
      Src: /src/freeradius-server/src/lib/util/skip.c:93,1
    - Dst: isxdigit
      Src: /src/freeradius-server/src/lib/util/skip.c:93,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/skip.c:98,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/skip.c:98,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:99,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:109,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 111
    functionName: fr_skip_string
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - isdigit
    - isxdigit
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_skip_string(char const *start, char const *end)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:130,1
    - Dst: skip_brackets
      Src: /src/freeradius-server/src/lib/util/skip.c:148,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/skip.c:153,1
    - Dst: fr_skip_string
      Src: /src/freeradius-server/src/lib/util/skip.c:162,1
    - Dst: skip_xlat
      Src: /src/freeradius-server/src/lib/util/skip.c:181,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:212,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 53
    argCount: 4
    argNames:
    - start
    - end
    - end_quote
    - depth
    argTypes:
    - char*
    - char*
    - char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 214
    functionName: skip_brackets
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.c
    functionUses: 1
    functionsReached:
    - skip_xlat
    - skip_brackets
    - fr_assert
    - fr_skip_string
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t skip_brackets(char const *start, char const *end, char end_quote,
      unsigned int depth)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:222,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:230,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/skip.c:234,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/skip.c:235,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/skip.c:236,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:237,1
    - Dst: skip_brackets
      Src: /src/freeradius-server/src/lib/util/skip.c:244,1
    - Dst: skip_brackets
      Src: /src/freeradius-server/src/lib/util/skip.c:248,1
    - Dst: isalnum
      Src: /src/freeradius-server/src/lib/util/skip.c:256,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:261,1
    - Dst: skip_brackets
      Src: /src/freeradius-server/src/lib/util/skip.c:267,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - start
    - end
    - depth
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 272
    functionName: skip_xlat
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.c
    functionUses: 2
    functionsReached:
    - isalnum
    - fr_strerror_const
    - skip_brackets
    - memcmp
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t skip_xlat(char const *start, char const *end, unsigned int
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_brackets
      Src: /src/freeradius-server/src/lib/util/skip.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - start
    - end
    - end_quote
    argTypes:
    - char*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: fr_skip_brackets
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.c
    functionUses: 0
    functionsReached:
    - skip_brackets
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_skip_brackets(char const *start, char const *end, char end_quote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: skip_xlat
      Src: /src/freeradius-server/src/lib/util/skip.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: fr_skip_xlat
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.c
    functionUses: 1
    functionsReached:
    - skip_xlat
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_skip_xlat(char const *start, char const *end)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/freeradius-server/src/lib/util/skip.c:330,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:354,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:369,1
    - Dst: fr_skip_xlat
      Src: /src/freeradius-server/src/lib/util/skip.c:374,1
    - Dst: fr_skip_string
      Src: /src/freeradius-server/src/lib/util/skip.c:397,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:410,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/skip.c:462,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 84
    argCount: 4
    argNames:
    - start
    - end
    - terminal
    - eol
    argTypes:
    - char*
    - char*
    - bool[]
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 464
    functionName: fr_skip_condition
    functionSourceFile: /src/freeradius-server/src/lib/util/skip.c
    functionUses: 3
    functionsReached:
    - isspace
    - fr_strerror_const
    - fr_skip_xlat
    - fr_skip_string
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_skip_condition(char const *start, char const *end, bool
      const terminal[static SBUFF_CHAR_CLASS], bool *eol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _talloc_type
    - ','
    - _max_entries
    - ','
    - _node_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: fr_fifo_talloc_create
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_fifo_talloc_create(_ctx, _talloc_type, _max_entries, _node_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _max_entries
    - ','
    - _node_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: fr_fifo_create
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_fifo_create(_ctx, _max_entries, _node_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: fr_time
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 145
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/event.c:429,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:430,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/util/event.c:430,1
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/event.c:447,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/event.c:451,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:452,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/util/event.c:452,1
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/event.c:455,1
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/event.c:461,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - map
    argTypes:
    - fr_event_func_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 477
    functionName: event_fd_func_index_build
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - typeof_field
    - talloc_zero_array
    - abort
    - fr_high_bit_pos
    linkageType: ''
    returnType: void
    signature: void event_fd_func_index_build(fr_event_func_map_t *map)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/util/event.c:500,1
    - Dst: GET_FUNC
      Src: /src/freeradius-server/src/lib/util/event.c:512,1
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/event.c:518,1
    - Dst: GET_FUNC
      Src: /src/freeradius-server/src/lib/util/event.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ef
    - filter
    - fflags
    argTypes:
    - fr_event_fd_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 528
    functionName: event_fd_func
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_high_bit_pos
    - GET_FUNC
    - fr_assert_fail
    linkageType: ''
    returnType: fr_event_fd_cb_t
    signature: fr_event_fd_cb_t event_fd_func(fr_event_fd_t *ef, int *filter, int
      *fflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ef
    - ','
    - _offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: GET_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_FUNC(_ef, _offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/lib/util/event.c:540,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/event.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: fr_event_fd_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - CMP
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_event_fd_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:550,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/util/event.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: fr_event_list_num_fds
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 2
    functionsReached:
    - fr_rb_num_elements
    - unlikely
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_event_list_num_fds(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:562,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/event.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 565
    functionName: fr_event_list_num_timers
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_timer_list_num_events
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_event_list_num_timers(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: fr_event_list_kq
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: int
    signature: int fr_event_list_kq(fr_event_list_t *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_list_t*::pub::tl::time
      Src: /src/freeradius-server/src/lib/util/event.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: fr_event_list_time
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_event_list_t*::pub::tl::time
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_event_list_time(fr_event_list_t *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: fr_event_fd_noop
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_event_fd_noop(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED
      int flags, UNUSED void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:635,1
    - Dst: prev::prev
      Src: /src/freeradius-server/src/lib/util/event.c:635,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:657,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:661,1
    - Dst: map::map
      Src: /src/freeradius-server/src/lib/util/event.c:664,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:666,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:675,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/event.c:677,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/event.c:678,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:686,1
    - Dst: map::map
      Src: /src/freeradius-server/src/lib/util/event.c:686,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:689,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:703,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/event.c:712,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:713,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:716,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/event.c:717,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:719,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:725,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/event.c:726,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:728,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:738,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 7
    argNames:
    - el
    - out_kev
    - outlen
    - active
    - ef
    - new
    - prev
    argTypes:
    - WITH_EVENT_DEBUG*
    - struct kevent[]
    - size_t
    - fr_event_funcs_t*
    - fr_event_fd_t*
    - fr_event_funcs_t*
    - fr_event_funcs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 741
    functionName: fr_event_build_evset
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_strerror_printf
    - fr_strerror_const
    - map::map
    - fr_table_str_by_value
    - EV_SET
    - prev::prev
    - EVENT_DEBUG
    - NUM_ELEMENTS
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_event_build_evset(\n#ifndef WITH_EVENT_DEBUG\n\t\t\t\t
      \   UNUSED\n#endif\n\t\t\t\t    fr_event_list_t *el,\n\t\t\t\t    struct kevent
      out_kev[], size_t outlen, fr_event_funcs_t *active,\n\t\t\t\t    fr_event_fd_t
      *ef,\n\t\t\t\t    fr_event_funcs_t const *new, fr_event_funcs_t const *prev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/freeradius-server/src/lib/util/event.c:761,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:764,1
    - Dst: getsockopt
      Src: /src/freeradius-server/src/lib/util/event.c:764,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:765,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:765,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:783,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:783,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/util/event.c:787,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:788,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:788,1
    - Dst: S_ISDIR
      Src: /src/freeradius-server/src/lib/util/event.c:792,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - ef
    - fd
    argTypes:
    - fr_event_fd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 801
    functionName: fr_event_fd_type_set
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fstat
    - getsockopt
    - fr_strerror_printf
    - fr_syserror
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int fr_event_fd_type_set(fr_event_fd_t *ef, int fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/event.c:823,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:825,1
    - Dst: fr_event_build_evset
      Src: /src/freeradius-server/src/lib/util/event.c:830,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:838,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/event.c:839,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:841,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/util/event.c:846,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/event.c:869,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/event.c:869,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/event.c:871,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/event.c:872,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ef
    argTypes:
    - fr_event_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 811
    functionDepth: 4
    functionLinenumber: 811
    functionLinenumberEnd: 876
    functionName: _event_fd_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 33
    functionsReached:
    - fr_dlist_entry_in_list
    - fr_dlist_insert_tail
    - kevent
    - fr_cond_assert_msg
    - fr_syserror
    - fr_dlist_remove
    - fr_event_build_evset
    - fr_assert
    - memset
    - fr_rb_delete
    linkageType: ''
    returnType: int
    signature: int _event_fd_delete(fr_event_fd_t *ef)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_loop_exiting
      Src: /src/freeradius-server/src/lib/util/event.c:898,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:899,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:906,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:907,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:908,1
    - Dst: _fr_event_filter_insert
      Src: /src/freeradius-server/src/lib/util/event.c:912,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/util/event.c:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - fr_event_list_t *dst
    - src
    - fd
    - filter
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_event_list_t*
    - int
    - fr_event_filter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 892
    functionDepth: 4
    functionLinenumber: 892
    functionLinenumberEnd: 920
    functionName: _fr_event_fd_move
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _fr_event_filter_insert
    - fr_strerror_printf
    - fr_rb_find
    - fr_event_fd_delete
    - fr_event_loop_exiting
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int _fr_event_fd_move(NDEBUG_LOCATION_ARGS\n\t\t      fr_event_list_t
      *dst, fr_event_list_t *src, int fd, fr_event_filter_t filter)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:952,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:953,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:954,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:967,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:968,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:977,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:978,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/event.c:980,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:984,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/event.c:986,1
    - Dst: fr_event_build_evset
      Src: /src/freeradius-server/src/lib/util/event.c:991,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:993,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:995,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:996,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1000,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1000,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1001,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1001,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - filter
    - updates
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - int
    - fr_event_filter_t
    - fr_event_update_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 943
    functionDepth: 4
    functionLinenumber: 943
    functionLinenumberEnd: 1006
    functionName: _fr_event_filter_update
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - kevent
    - fr_strerror_printf
    - fr_syserror
    - fr_rb_find
    - fr_assert
    - fr_event_build_evset
    - memset
    linkageType: ''
    returnType: int
    signature: "int _fr_event_filter_update(NDEBUG_LOCATION_ARGS\n\t\t\t    fr_event_list_t
      *el, int fd, fr_event_filter_t filter, fr_event_update_t const updates[])"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1032,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1033,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1037,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1038,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1042,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1043,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:1048,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1051,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1060,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/event.c:1060,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/event.c:1067,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1068,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1069,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/event.c:1072,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/util/event.c:1079,1
    - Dst: fr_event_fd_type_set
      Src: /src/freeradius-server/src/lib/util/event.c:1087,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1089,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/event.c:1096,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1098,1
    - Dst: fr_event_build_evset
      Src: /src/freeradius-server/src/lib/util/event.c:1104,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1107,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1107,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1108,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1108,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/event.c:1113,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1121,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:1128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1130,1
    - Dst: fr_event_build_evset
      Src: /src/freeradius-server/src/lib/util/event.c:1132,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/event.c:1136,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1139,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1139,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1140,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1140,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/event.c:1147,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 8
    argNames:
    - TALLOC_CTX *ctx
    - ef_out
    - el
    - fd
    - filter
    - funcs
    - error
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_event_fd_t**
    - fr_event_list_t*
    - int
    - fr_event_filter_t
    - void*
    - fr_event_error_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1020
    functionDepth: 4
    functionLinenumber: 1020
    functionLinenumberEnd: 1160
    functionName: _fr_event_filter_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - talloc_link_ctx
    - unlikely
    - TALLOC_FREE
    - talloc_set_destructor
    - talloc_free
    - memcpy
    - kevent
    - fr_strerror_printf
    - fr_syserror
    - memset
    - fr_rb_find
    - fr_assert
    - talloc_zero
    - fr_event_fd_type_set
    - fr_event_build_evset
    - fr_rb_insert
    - fr_strerror_const
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: "int _fr_event_filter_insert(NDEBUG_LOCATION_ARGS\n\t\t\t    TALLOC_CTX
      *ctx, fr_event_fd_t **ef_out,\n\t\t\t    fr_event_list_t *el, int fd,\n\t\t\t
      \   fr_event_filter_t filter,\n\t\t\t    void *funcs, fr_event_error_cb_t error,\n\t\t\t
      \   void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1185,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1186,1
    - Dst: _fr_event_filter_insert
      Src: /src/freeradius-server/src/lib/util/event.c:1190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - TALLOC_CTX *ctx
    - ef_out
    - el
    - fd
    - read_fn
    - write_fn
    - error
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_event_fd_t**
    - fr_event_list_t*
    - int
    - fr_event_fd_cb_t
    - fr_event_fd_cb_t
    - fr_event_error_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1176
    functionDepth: 5
    functionLinenumber: 1176
    functionLinenumberEnd: 1192
    functionName: _fr_event_fd_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_const
    - _fr_event_filter_insert
    linkageType: ''
    returnType: int
    signature: "int _fr_event_fd_insert(NDEBUG_LOCATION_ARGS\n\t\t\tTALLOC_CTX *ctx,
      fr_event_fd_t **ef_out, fr_event_list_t *el, int fd,\n\t\t        fr_event_fd_cb_t
      read_fn,\n\t\t        fr_event_fd_cb_t write_fn,\n\t\t        fr_event_error_cb_t
      error,\n\t\t        void *uctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:1207,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1208,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1209,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - el
    - fd
    - filter
    argTypes:
    - fr_event_list_t*
    - int
    - fr_event_filter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1203
    functionDepth: 4
    functionLinenumber: 1203
    functionLinenumberEnd: 1228
    functionName: fr_event_fd_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 34
    functionsReached:
    - fr_rb_find
    - fr_strerror_printf
    - talloc_free
    - unlikely
    linkageType: ''
    returnType: int
    signature: int fr_event_fd_delete(fr_event_list_t *el, int fd, fr_event_filter_t
      filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:1243,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1244,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - el
    - fd
    - filter
    argTypes:
    - fr_event_list_t*
    - int
    - fr_event_filter_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1239
    functionDepth: 4
    functionLinenumber: 1239
    functionLinenumberEnd: 1250
    functionName: fr_event_fd_handle
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - fr_strerror_printf
    - unlikely
    linkageType: ''
    returnType: fr_event_fd_t
    signature: fr_event_fd_t *fr_event_fd_handle(fr_event_list_t *el, int fd, fr_event_filter_t
      filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_fd_func
      Src: /src/freeradius-server/src/lib/util/event.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ef
    - kq_filter
    - kq_fflags
    argTypes:
    - fr_event_fd_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1264
    functionName: fr_event_fd_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - event_fd_func
    linkageType: ''
    returnType: fr_event_fd_cb_t
    signature: fr_event_fd_cb_t fr_event_fd_cb(fr_event_fd_t *ef, int kq_filter, int
      kq_fflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ef
    argTypes:
    - fr_event_fd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1272
    functionName: fr_event_fd_uctx
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_event_fd_uctx(fr_event_fd_t *ef)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:1289,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1290,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1291,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - el
    - fd
    - filter
    - armour
    argTypes:
    - fr_event_list_t*
    - int
    - fr_event_filter_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1285
    functionDepth: 4
    functionLinenumber: 1285
    functionLinenumberEnd: 1303
    functionName: fr_event_fd_armour
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - fr_strerror_printf
    - unlikely
    linkageType: ''
    returnType: int
    signature: int fr_event_fd_armour(fr_event_list_t *el, int fd, fr_event_filter_t
      filter, uintptr_t armour)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/event.c:1319,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1320,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1321,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - el
    - fd
    - filter
    - armour
    argTypes:
    - fr_event_list_t*
    - int
    - fr_event_filter_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1315
    functionDepth: 4
    functionLinenumber: 1315
    functionLinenumberEnd: 1329
    functionName: fr_event_fd_unarmour
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - fr_strerror_printf
    - fr_assert
    - unlikely
    linkageType: ''
    returnType: int
    signature: int fr_event_fd_unarmour(fr_event_list_t *el, int fd, fr_event_filter_t
      filter, uintptr_t armour)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1344,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:1346,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_event_pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1351
    functionName: _event_pid_free
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - EV_SET
    - kevent
    - EVENT_DEBUG
    linkageType: ''
    returnType: int
    signature: int _event_pid_free(fr_event_pid_t *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1365,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/event.c:1368,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1370,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1371,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1392,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/event.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - el
    - kev
    argTypes:
    - fr_event_list_t*
    - struct kevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1395
    functionName: event_pid_eval
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - fr_assert
    - EVENT_DEBUG
    - callback
    linkageType: ''
    returnType: void
    signature: void event_pid_eval(fr_event_list_t *el, struct kevent *kev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/event.c:1407,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1409,1
    - Dst: event_pid_eval
      Src: /src/freeradius-server/src/lib/util/event.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - el
    - uctx
    argTypes:
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1416
    functionName: _fr_event_pid_early_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - EVENT_DEBUG
    - event_pid_eval
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _fr_event_pid_early_exit(fr_event_list_t *el, void *uctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/event.c:1443,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1444,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1445,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/event.c:1459,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1469,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:1471,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1483,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1483,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/event.c:1491,1
    - Dst: waitid
      Src: /src/freeradius-server/src/lib/util/event.c:1518,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/event.c:1521,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/event.c:1522,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/event.c:1523,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/event.c:1524,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/event.c:1525,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/event.c:1526,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/event.c:1528,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1534,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/event.c:1535,1
    - Dst: fr_event_user_insert
      Src: /src/freeradius-server/src/lib/util/event.c:1559,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/event.c:1560,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1569,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/event.c:1570,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1592,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1593,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1593,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 6
    argNames:
    - TALLOC_CTX *ctx
    - el
    - ev_p
    - pid
    - callback
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_event_list_t*
    - fr_event_pid_t**
    - pid_t
    - fr_event_pid_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1436
    functionDepth: 3
    functionLinenumber: 1436
    functionLinenumberEnd: 1606
    functionName: _fr_event_pid_wait
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - L
    - talloc_set_destructor
    - waitid
    - talloc_free
    - kevent
    - fr_strerror_printf
    - fr_syserror
    - EVENT_DEBUG
    - talloc
    - fr_table_str_by_value
    - fr_event_user_insert
    - fr_strerror_clear
    - EV_SET
    - fr_strerror_const
    - NUM_ELEMENTS
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: "int _fr_event_pid_wait(NDEBUG_LOCATION_ARGS\n\t\t       TALLOC_CTX
      *ctx, fr_event_list_t *el, fr_event_pid_t const **ev_p,\n\t\t       pid_t pid,
      fr_event_pid_cb_t callback, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_pid_reap_t*::callback
      Src: /src/freeradius-server/src/lib/util/event.c:1614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - reap
    - pid
    - status
    argTypes:
    - fr_event_pid_reap_t*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1615
    functionName: event_list_reap_run_callback
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_event_pid_reap_t*::callback
    linkageType: ''
    returnType: void
    signature: void event_list_reap_run_callback(fr_event_pid_reap_t *reap, pid_t
      pid, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/event.c:1622,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/event.c:1624,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1626,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1628,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - pid
    - status
    - uctx
    argTypes:
    - UNUSED
    - pid_t
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1631
    functionName: _fr_event_pid_reap_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - event_list_reap_run_callback
    - talloc_free
    - talloc_get_type_abort
    - EVENT_DEBUG
    - waitpid
    linkageType: ''
    returnType: void
    signature: void _fr_event_pid_reap_cb(UNUSED fr_event_list_t *el, pid_t pid, int
      status, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/util/event.c:1639,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1640,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/event.c:1642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reap
    argTypes:
    - fr_event_pid_reap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1646
    functionName: _fr_event_reap_free
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - EVENT_DEBUG
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int _fr_event_reap_free(fr_event_pid_reap_t *reap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/event.c:1668,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1669,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1670,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/event.c:1673,1
    - Dst: _fr_event_pid_wait
      Src: /src/freeradius-server/src/lib/util/event.c:1675,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1677,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1685,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/event.c:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - pid
    - callback
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - pid_t
    - fr_event_pid_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1663
    functionDepth: 4
    functionLinenumber: 1663
    functionLinenumberEnd: 1690
    functionName: _fr_event_pid_reap
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dlist_insert_tail
    - talloc_set_destructor
    - talloc_free
    - _fr_event_pid_wait
    - EVENT_DEBUG
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int _fr_event_pid_reap(NDEBUG_LOCATION_ARGS fr_event_list_t *el, pid_t
      pid, fr_event_pid_cb_t callback, void *uctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/event.c:1701,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/util/event.c:1709,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/event.c:1709,1
    - Dst: kqueue
      Src: /src/freeradius-server/src/lib/util/event.c:1713,1
    - Dst: fr_event_list_t*::pub::tl::time
      Src: /src/freeradius-server/src/lib/util/event.c:1714,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/event.c:1714,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1716,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/event.c:1718,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1720,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1723,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1724,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/event.c:1731,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1732,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1734,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1735,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:1742,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1743,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1744,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1746,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1747,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/util/event.c:1756,1
    - Dst: fr_event_list_t*::pub::tl::time
      Src: /src/freeradius-server/src/lib/util/event.c:1756,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1760,1
    - Dst: fr_time_delta_to_timespec
      Src: /src/freeradius-server/src/lib/util/event.c:1760,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/event.c:1760,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1763,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1764,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:1765,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1769,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:1771,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/event.c:1775,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1777,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/event.c:1779,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1781,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1782,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:1788,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/event.c:1795,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:1798,1
    - Dst: kill
      Src: /src/freeradius-server/src/lib/util/event.c:1800,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/event.c:1810,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1811,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1812,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/event.c:1819,1
    - Dst: event_list_reap_run_callback
      Src: /src/freeradius-server/src/lib/util/event.c:1820,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1821,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - el
    - timeout
    - signal
    argTypes:
    - fr_event_list_t*
    - fr_time_delta_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1699
    functionDepth: 3
    functionLinenumber: 1699
    functionLinenumberEnd: 1825
    functionName: fr_event_list_reap_signal
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - fr_event_list_t*::pub::tl::time
    - kevent
    - fr_time_delta_to_timespec
    - fr_time_add
    - fr_time_sub
    - kill
    - close
    - fr_dlist_head
    - unlikely
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_time_delta_ispos
    - kqueue
    - event_list_reap_run_callback
    - fr_syserror
    - fr_dlist_foreach
    - talloc_free
    - fr_time_gt
    - EV_SET
    - EVENT_DEBUG
    - waitpid
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_event_list_reap_signal(fr_event_list_t *el, fr_time_delta_t
      timeout, int signal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:1841,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1843,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1843,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1844,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_event_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1836
    functionDepth: 3
    functionLinenumber: 1836
    functionLinenumberEnd: 1851
    functionName: _event_user_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - kevent
    - fr_strerror_printf
    - fr_syserror
    - EV_SET
    linkageType: ''
    returnType: int
    signature: int _event_user_delete(fr_event_user_t *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/event.c:1864,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/event.c:1865,1
    - Dst: fr_event_user_t*::callback
      Src: /src/freeradius-server/src/lib/util/event.c:1867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - el
    - kev
    argTypes:
    - fr_event_list_t*
    - struct kevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1868
    functionName: event_user_eval
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_event_user_t*::callback
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void event_user_eval(fr_event_list_t *el, struct kevent *kev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/event.c:1889,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1890,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:1891,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:1904,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1907,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1907,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1908,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1908,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1909,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/event.c:1913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - TALLOC_CTX *ctx
    - el
    - ev_p
    - trigger
    - callback
    - uctx
    argTypes:
    - NDEBUG_LOCATION_ARGS
    - fr_event_list_t*
    - fr_event_user_t**
    - bool
    - fr_event_user_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1882
    functionDepth: 3
    functionLinenumber: 1882
    functionLinenumberEnd: 1918
    functionName: _fr_event_user_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - talloc_free
    - kevent
    - fr_strerror_printf
    - fr_syserror
    - talloc
    - EV_SET
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int _fr_event_user_insert(NDEBUG_LOCATION_ARGS\n\t\t\t  TALLOC_CTX
      *ctx, fr_event_list_t *el, fr_event_user_t **ev_p,\n\t\t\t  bool trigger, fr_event_user_cb_t
      callback, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:1941,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:1943,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:1943,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:1944,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:1944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_event_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1927
    functionDepth: 3
    functionLinenumber: 1927
    functionLinenumberEnd: 1949
    functionName: fr_event_user_trigger
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - unlikely
    - kevent
    - fr_strerror_printf
    - fr_syserror
    - EV_SET
    linkageType: ''
    returnType: int
    signature: int fr_event_user_trigger(fr_event_user_t *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/event.c:1967,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/event.c:1971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - el
    - callback
    - uctx
    argTypes:
    - fr_event_list_t*
    - fr_event_status_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1963
    functionDepth: 2
    functionLinenumber: 1963
    functionLinenumberEnd: 1974
    functionName: fr_event_pre_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 3
    functionsReached:
    - fr_dlist_insert_tail
    - talloc
    linkageType: ''
    returnType: int
    signature: int fr_event_pre_insert(fr_event_list_t *el, fr_event_status_cb_t callback,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/event.c:1987,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/event.c:1990,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:1991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - el
    - callback
    - uctx
    argTypes:
    - fr_event_list_t*
    - fr_event_status_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1985
    functionDepth: 2
    functionLinenumber: 1985
    functionLinenumberEnd: 1996
    functionName: fr_event_pre_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 1
    functionsReached:
    - fr_dlist_foreach
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int fr_event_pre_delete(fr_event_list_t *el, fr_event_status_cb_t callback,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/event.c:2014,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/event.c:2019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - el
    - callback
    - uctx
    argTypes:
    - fr_event_list_t*
    - fr_event_post_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2010
    functionDepth: 2
    functionLinenumber: 2010
    functionLinenumberEnd: 2022
    functionName: fr_event_post_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 3
    functionsReached:
    - fr_dlist_insert_tail
    - talloc
    linkageType: ''
    returnType: int
    signature: int fr_event_post_insert(fr_event_list_t *el, fr_event_post_cb_t callback,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/event.c:2035,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/event.c:2038,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:2039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - el
    - callback
    - uctx
    argTypes:
    - fr_event_list_t*
    - fr_event_post_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2033
    functionDepth: 2
    functionLinenumber: 2033
    functionLinenumberEnd: 2044
    functionName: fr_event_post_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 2
    functionsReached:
    - fr_dlist_foreach
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: int
    signature: int fr_event_post_delete(fr_event_list_t *el, fr_event_post_cb_t callback,
      void *uctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:2068,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2076,1
    - Dst: fr_timer_list_when
      Src: /src/freeradius-server/src/lib/util/event.c:2084,1
    - Dst: fr_time_neq
      Src: /src/freeradius-server/src/lib/util/event.c:2085,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2085,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/lib/util/event.c:2086,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/event.c:2090,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/event.c:2111,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/event.c:2112,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2112,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2114,1
    - Dst: fr_time_delta_to_timespec
      Src: /src/freeradius-server/src/lib/util/event.c:2125,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:2136,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:2141,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:2145,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:2145,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:2152,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - el
    - now
    - wait
    argTypes:
    - fr_event_list_t*
    - fr_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2055
    functionDepth: 3
    functionLinenumber: 2055
    functionLinenumberEnd: 2169
    functionName: fr_event_corral
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 18
    functionsReached:
    - fr_timer_list_when
    - fr_time_delta_wrap
    - fr_dlist_foreach
    - unlikely
    - fr_time_wrap
    - kevent
    - fr_time_delta_to_timespec
    - fr_strerror_printf
    - fr_syserror
    - EVENT_DEBUG
    - fr_time_sub
    - fr_time_lteq
    - fr_strerror_const
    - callback
    - fr_time_neq
    linkageType: ''
    returnType: int
    signature: int fr_event_corral(fr_event_list_t *el, fr_time_t now, bool wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_fd_func
      Src: /src/freeradius-server/src/lib/util/event.c:2177,1
    - Dst: fd_cb
      Src: /src/freeradius-server/src/lib/util/event.c:2178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - el
    - ef
    - filter
    - flags
    - fflags
    argTypes:
    - fr_event_list_t*
    - fr_event_fd_t*
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2173
    functionDepth: 2
    functionLinenumber: 2173
    functionLinenumberEnd: 2180
    functionName: event_callback
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - event_fd_func
    - fd_cb
    linkageType: ''
    returnType: void
    signature: void event_callback(fr_event_list_t *el, fr_event_fd_t *ef, int *filter,
      int flags, int *fflags)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:2194,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:2196,1
    - Dst: event_user_eval
      Src: /src/freeradius-server/src/lib/util/event.c:2208,1
    - Dst: event_pid_eval
      Src: /src/freeradius-server/src/lib/util/event.c:2215,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/event.c:2223,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:2232,1
    - Dst: fr_event_fd_t*::error
      Src: /src/freeradius-server/src/lib/util/event.c:2239,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/event.c:2240,1
    - Dst: event_callback
      Src: /src/freeradius-server/src/lib/util/event.c:2281,1
    - Dst: event_callback
      Src: /src/freeradius-server/src/lib/util/event.c:2297,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/event.c:2315,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:2315,1
    - Dst: fr_timer_list_t*::time
      Src: /src/freeradius-server/src/lib/util/event.c:2326,1
    - Dst: fr_time_neq
      Src: /src/freeradius-server/src/lib/util/event.c:2332,1
    - Dst: fr_timer_list_when
      Src: /src/freeradius-server/src/lib/util/event.c:2332,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2332,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/event.c:2337,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/event.c:2338,1
    - Dst: EVENT_DEBUG
      Src: /src/freeradius-server/src/lib/util/event.c:2343,1
    - Dst: fr_timer_list_t*::time
      Src: /src/freeradius-server/src/lib/util/event.c:2346,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/event.c:2351,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/event.c:2353,1
    - Dst: fr_event_post_t*::callback
      Src: /src/freeradius-server/src/lib/util/event.c:2354,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2187
    functionDepth: 3
    functionLinenumber: 2187
    functionLinenumberEnd: 2356
    functionName: fr_event_service
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 18
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_timer_list_when
    - event_pid_eval
    - TALLOC_FREE
    - fr_timer_list_run
    - fr_time_wrap
    - talloc_free
    - fr_timer_list_t*::time
    - fr_cond_assert
    - fr_dlist_next
    - fr_event_fd_t*::error
    - talloc_get_type_abort
    - fr_event_post_t*::callback
    - event_callback
    - EVENT_DEBUG
    - event_user_eval
    - fr_time_neq
    linkageType: ''
    returnType: void
    signature: void fr_event_service(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:2367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - el
    - code
    argTypes:
    - fr_event_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2365
    functionDepth: 1
    functionLinenumber: 2365
    functionLinenumberEnd: 2370
    functionName: fr_event_loop_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 8
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void fr_event_loop_exit(fr_event_list_t *el, int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2379
    functionName: fr_event_loop_exiting
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_event_loop_exiting(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:2393,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/event.c:2393,1
    - Dst: fr_event_list_t*::pub::tl::time
      Src: /src/freeradius-server/src/lib/util/event.c:2393,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/event.c:2394,1
    - Dst: fr_event_list_reap_signal
      Src: /src/freeradius-server/src/lib/util/event.c:2403,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/event.c:2403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2387
    functionDepth: 4
    functionLinenumber: 2387
    functionLinenumberEnd: 2407
    functionName: fr_event_loop
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 3
    functionsReached:
    - unlikely
    - fr_event_service
    - fr_event_list_t*::pub::tl::time
    - fr_event_list_reap_signal
    - fr_event_corral
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int fr_event_loop(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_list_reap_signal
      Src: /src/freeradius-server/src/lib/util/event.c:2417,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2417,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/event.c:2419,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:2421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2415
    functionDepth: 4
    functionLinenumber: 2415
    functionLinenumberEnd: 2424
    functionName: _event_list_free
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_event_list_reap_signal
    - talloc_free_children
    - close
    linkageType: ''
    returnType: int
    signature: int _event_list_free(fr_event_list_t *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/event.c:2433,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:2433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2429
    functionDepth: 1
    functionLinenumber: 2429
    functionLinenumberEnd: 2435
    functionName: _event_free_indexes
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _event_free_indexes(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/event.c:2441,1
    - Dst: event_fd_func_index_build
      Src: /src/freeradius-server/src/lib/util/event.c:2441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2437
    functionDepth: 2
    functionLinenumber: 2437
    functionLinenumberEnd: 2443
    functionName: _event_build_indexes
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - NUM_ELEMENTS
    - event_fd_func_index_build
    linkageType: ''
    returnType: int
    signature: int _event_build_indexes(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/event.c:2454,1
    - Dst: fr_vlog
      Src: /src/freeradius-server/src/lib/util/event.c:2455,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/event.c:2456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2450
    functionDepth: 6
    functionLinenumber: 2450
    functionLinenumberEnd: 2457
    functionName: _event_kqueue_log
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_vlog
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void _event_kqueue_log(char const *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kqueue
      Src: /src/freeradius-server/src/lib/util/event.c:2467,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/event.c:2468,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:2469,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:2473,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:2474,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:2475,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:2481,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:2482,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:2483,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:2484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2491
    functionName: _event_kqueue_logging
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - unlikely
    - kevent
    - fr_strerror_const
    - close
    - EV_SET
    - kqueue
    linkageType: ''
    returnType: int
    signature: int _event_kqueue_logging(UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:2497,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:2498,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/event.c:2500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2493
    functionDepth: 0
    functionLinenumber: 2493
    functionLinenumberEnd: 2504
    functionName: _event_kqueue_logging_stop
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - EV_SET
    - kevent
    - close
    linkageType: ''
    returnType: int
    signature: int _event_kqueue_logging_stop(UNUSED void *uctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/util/event.c:2526,1
    - Dst: fr_atexit_global_once_ret
      Src: /src/freeradius-server/src/lib/util/event.c:2528,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/event.c:2531,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/event.c:2532,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:2533,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/event.c:2537,1
    - Dst: fr_timer_list_lst_alloc
      Src: /src/freeradius-server/src/lib/util/event.c:2539,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:2541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:2543,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/util/event.c:2547,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/event.c:2549,1
    - Dst: kqueue
      Src: /src/freeradius-server/src/lib/util/event.c:2553,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:2555,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:2555,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/event.c:2559,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/event.c:2560,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/event.c:2561,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/event.c:2562,1
    - Dst: fr_event_pre_insert
      Src: /src/freeradius-server/src/lib/util/event.c:2563,1
    - Dst: EV_SET
      Src: /src/freeradius-server/src/lib/util/event.c:2568,1
    - Dst: kevent
      Src: /src/freeradius-server/src/lib/util/event.c:2569,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/event.c:2570,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/event.c:2570,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - ctx
    - status
    - status_uctx
    argTypes:
    - TALLOC_CTX*
    - fr_event_status_cb_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2516
    functionDepth: 3
    functionLinenumber: 2516
    functionLinenumberEnd: 2575
    functionName: fr_event_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 21
    functionsReached:
    - fr_atexit_global_once_ret
    - kqueue
    - fr_dlist_talloc_init
    - talloc_set_destructor
    - talloc_free
    - fr_event_pre_insert
    - fr_rb_inline_talloc_alloc
    - fr_cond_assert
    - fr_strerror_printf
    - fr_syserror
    - fr_timer_list_lst_alloc
    - kevent
    - talloc_zero
    - EV_SET
    - fr_strerror_const
    linkageType: ''
    returnType: fr_event_list_t
    signature: fr_event_list_t *fr_event_list_alloc(TALLOC_CTX *ctx, fr_event_status_cb_t
      status, void *status_uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/event.c:2582,1
    - Dst: fr_timer_list_when
      Src: /src/freeradius-server/src/lib/util/event.c:2582,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/event.c:2582,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/util/event.c:2582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - el
    argTypes:
    - fr_event_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2580
    functionDepth: 3
    functionLinenumber: 2580
    functionLinenumberEnd: 2583
    functionName: fr_event_list_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    - fr_time_eq
    - fr_time_wrap
    - fr_timer_list_when
    linkageType: ''
    returnType: bool
    signature: bool fr_event_list_empty(fr_event_list_t *el)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_usec
      Src: /src/freeradius-server/src/lib/util/event.c:2606,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/event.c:2608,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/event.c:2609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2600
    functionDepth: 1
    functionLinenumber: 2600
    functionLinenumberEnd: 2610
    functionName: print_time
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - printf
    - fr_time_to_usec
    - fflush
    linkageType: ''
    returnType: void
    signature: void print_time(void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_isaac
      Src: /src/freeradius-server/src/lib/util/event.c:2620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2625
    functionName: event_rand
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 0
    functionsReached:
    - fr_isaac
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t event_rand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/util/event.c:2636,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/event.c:2637,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/event.c:2639,1
    - Dst: time
      Src: /src/freeradius-server/src/lib/util/event.c:2640,1
    - Dst: fr_rand_init
      Src: /src/freeradius-server/src/lib/util/event.c:2642,1
    - Dst: fr_event_list_t*::time
      Src: /src/freeradius-server/src/lib/util/event.c:2645,1
    - Dst: event_rand
      Src: /src/freeradius-server/src/lib/util/event.c:2648,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/util/event.c:2650,1
    - Dst: fr_event_list_num_timers
      Src: /src/freeradius-server/src/lib/util/event.c:2653,1
    - Dst: fr_event_list_t*::time
      Src: /src/freeradius-server/src/lib/util/event.c:2654,1
    - Dst: fr_timer_run
      Src: /src/freeradius-server/src/lib/util/event.c:2656,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/event.c:2659,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/event.c:2660,1
    - Dst: usleep
      Src: /src/freeradius-server/src/lib/util/event.c:2661,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/event.c:2665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2629
    functionDepth: 4
    functionLinenumber: 2629
    functionLinenumberEnd: 2668
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/event.c
    functionUses: 3
    functionsReached:
    - fr_exit_now
    - fr_timer_run
    - talloc_free
    - time
    - event_rand
    - fr_timer_at
    - fr_event_list_num_timers
    - fr_event_list_alloc
    - fflush
    - fr_rand_init
    - fr_event_list_t*::time
    - printf
    - memset
    - usleep
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: ALLOW
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOW(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ENTER
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: EXIT
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: PROCESS
    functionSourceFile: /src/freeradius-server/src/lib/util/machine.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROCESS(_x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/table.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - table
    - table_len
    - str_val
    - def
    argTypes:
    - fr_table_ptr_sorted_t*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: _fr_table_ptr_by_str_value
    functionSourceFile: /src/freeradius-server/src/lib/util/table.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: char
    signature: char *_fr_table_ptr_by_str_value(fr_table_ptr_sorted_t const *table,
      size_t table_len, char const *str_val, char const *def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dcursor.c:51,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/dcursor.c:53,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/dcursor.c:54,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: fr_dcursor_intersect_head
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dcursor_intersect_next
    - fr_dcursor_head
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_intersect_head(fr_dcursor_t *a, fr_dcursor_t *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dcursor.c:80,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:87,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:88,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:95,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:96,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:103,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/dcursor.c:119,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:121,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/dcursor.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_dcursor_t*
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 125
    functionName: fr_dcursor_intersect_next
    functionSourceFile: /src/freeradius-server/src/lib/util/dcursor.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_dcursor_next
    - fr_dcursor_head
    linkageType: ''
    returnType: void
    signature: void *fr_dcursor_intersect_next(fr_dcursor_t *a, fr_dcursor_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/iovec.c:42,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/iovec.c:44,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/iovec.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - vector
    - iovcnt
    argTypes:
    - fr_dbuff_t*
    - struct iovec[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: fr_concatv
    functionSourceFile: /src/freeradius-server/src/lib/util/iovec.c
    functionUses: 2
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_concatv(fr_dbuff_t *out, struct iovec vector[], int iovcnt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: writev
      Src: /src/freeradius-server/src/lib/util/iovec.c:76,1
    - Dst: FD_ZERO
      Src: /src/freeradius-server/src/lib/util/iovec.c:115,1
    - Dst: FD_SET
      Src: /src/freeradius-server/src/lib/util/iovec.c:116,1
    - Dst: select
      Src: /src/freeradius-server/src/lib/util/iovec.c:120,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/util/iovec.c:120,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/iovec.c:125,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/iovec.c:131,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/iovec.c:131,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/iovec.c:136,1
    - Dst: FD_ISSET
      Src: /src/freeradius-server/src/lib/util/iovec.c:136,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 4
    argNames:
    - fd
    - vector
    - iovcnt
    - timeout
    argTypes:
    - int
    - struct iovec[]
    - int
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 147
    functionName: fr_writev
    functionSourceFile: /src/freeradius-server/src/lib/util/iovec.c
    functionUses: 2
    functionsReached:
    - FD_SET
    - FD_ZERO
    - fr_strerror_printf
    - fr_syserror
    - fr_cond_assert
    - FD_ISSET
    - writev
    - select
    - fr_time_delta_to_timeval
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_writev(int fd, struct iovec vector[], int iovcnt, fr_time_delta_t
      timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _cmp
    - ','
    - _type
    - ','
    - _field
    - ','
    - _init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: fr_lst_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_lst_alloc(_ctx, _cmp, _type, _field, _init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _cmp
    - ','
    - _talloc_type
    - ','
    - _field
    - ','
    - _init
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: fr_lst_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_lst_talloc_alloc(_ctx, _cmp, _talloc_type, _field, _init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lst_id
    argTypes:
    - fr_lst_index_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: fr_lst_entry_inserted
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_lst_entry_inserted(fr_lst_index_t lst_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _lst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: FR_LST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_LST_VERIFY(_lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _lst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: FR_LST_VERIFY
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_LST_VERIFY(_lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _lst
    - ','
    - _type
    - ','
    - _data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: fr_lst_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/lst.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_lst_foreach(_lst, _type, _data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: fr_nbo_from_uint16
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_uint16(uint8_t out[static sizeof(uint16_t)], uint16_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: fr_nbo_from_uint24
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_uint24(uint8_t out[static 3], uint32_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/lib/util/nbo.h:63,1
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/lib/util/nbo.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: fr_nbo_from_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached:
    - fr_nbo_from_uint16
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_uint32(uint8_t out[static sizeof(uint32_t)], uint32_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_from_uint32
      Src: /src/freeradius-server/src/lib/util/nbo.h:74,1
    - Dst: fr_nbo_from_uint32
      Src: /src/freeradius-server/src/lib/util/nbo.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: fr_nbo_from_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 1
    functionsReached:
    - fr_nbo_from_uint32
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_uint64(uint8_t out[static sizeof(uint64_t)], uint64_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: fr_nbo_from_int16
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_int16(uint8_t out[static sizeof(int16_t)], int16_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/lib/util/nbo.h:96,1
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/lib/util/nbo.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: fr_nbo_from_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached:
    - fr_nbo_from_uint16
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_int32(uint8_t out[static sizeof(int32_t)], int32_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_from_uint32
      Src: /src/freeradius-server/src/lib/util/nbo.h:107,1
    - Dst: fr_nbo_from_uint32
      Src: /src/freeradius-server/src/lib/util/nbo.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: fr_nbo_from_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached:
    - fr_nbo_from_uint32
    linkageType: ''
    returnType: void
    signature: void fr_nbo_from_int64(uint8_t out[static sizeof(uint64_t)], uint64_t
      num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/util/nbo.h:123,1
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/nbo.h:123,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/nbo.h:131,1
    - Dst: fr_nbo_from_uint64
      Src: /src/freeradius-server/src/lib/util/nbo.h:134,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/nbo.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - num
    argTypes:
    - uint8_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: fr_nbo_from_uint64v
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_cond_assert
    - fr_nbo_from_uint64
    - fr_high_bit_pos
    - ROUND_UP_DIV
    linkageType: ''
    returnType: size_t
    signature: size_t fr_nbo_from_uint64v(uint8_t out[static sizeof(uint64_t)], uint64_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: fr_nbo_to_uint16
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fr_nbo_to_uint16(uint8_t const data[static sizeof(uint16_t)])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: fr_nbo_to_uint24
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_nbo_to_uint24(uint8_t const data[static 3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/nbo.h:169,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/util/nbo.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: fr_nbo_to_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 4
    functionsReached:
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_nbo_to_uint32(uint8_t const data[static sizeof(uint32_t)])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/lib/util/nbo.h:179,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/lib/util/nbo.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: fr_nbo_to_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 1
    functionsReached:
    - fr_nbo_to_uint32
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_nbo_to_uint64(uint8_t const data[static sizeof(uint64_t)])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: fr_nbo_to_int16
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_nbo_to_int16(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: fr_nbo_to_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_nbo_to_int32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: fr_nbo_to_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_nbo_to_int64(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/nbo.h:201,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/nbo.h:207,1
    - Dst: fr_nbo_from_uint64
      Src: /src/freeradius-server/src/lib/util/nbo.h:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: fr_nbo_to_uint64v
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_nbo_from_uint64
    - memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_nbo_to_uint64v(uint8_t const *data, size_t data_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/nbo.h:224,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/nbo.h:230,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/nbo.h:231,1
    - Dst: fr_nbo_from_int64
      Src: /src/freeradius-server/src/lib/util/nbo.h:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 236
    functionName: fr_nbo_to_int64v
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 0
    functionsReached:
    - unlikely
    - memset
    - fr_nbo_from_int64
    - memcpy
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_nbo_to_int64v(uint8_t const *data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: fr_bytes_from_bits
    functionSourceFile: /src/freeradius-server/src/lib/util/nbo.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_bytes_from_bits(unsigned int bits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:110,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:113,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:142,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - s
    - af
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 173
    functionName: udpfromto_init
    functionSourceFile: /src/freeradius-server/src/lib/util/udpfromto.c
    functionUses: 1
    functionsReached:
    - memset
    - setsockopt
    - getsockname
    linkageType: ''
    returnType: int
    signature: int udpfromto_init(int s, int af)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:228,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:229,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:237,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:244,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:254,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:271,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 10
    argNames:
    - fd
    - buf
    - len
    - flags
    - ifindex
    - from
    - from_len
    - to
    - to_len
    - when
    argTypes:
    - int
    - void*
    - size_t
    - int
    - int*
    - struct sockaddr*
    - socklen_t*
    - struct sockaddr*
    - socklen_t*
    - fr_time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 291
    functionName: recvfromto
    functionSourceFile: /src/freeradius-server/src/lib/util/udpfromto.c
    functionUses: 1
    functionsReached:
    - recvfrom
    - memset
    - getsockname
    - fr_time
    linkageType: ''
    returnType: int
    signature: "int recvfromto(int fd, void *buf, size_t len, int flags,\n\t       int
      *ifindex,\n\t       struct sockaddr *from, socklen_t *from_len,\n\t       struct
      sockaddr *to, socklen_t *to_len,\n\t       fr_time_t *when)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:449,1
    - Dst: IN6_IS_ADDR_UNSPECIFIED
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:461,1
    - Dst: IN6_IS_ADDR_UNSPECIFIED
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:492,1
    - Dst: sendto
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:493,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:497,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:498,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:499,1
    - Dst: CMSG_SPACE
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:517,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:519,1
    - Dst: CMSG_LEN
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:522,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:524,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:525,1
    - Dst: CMSG_SPACE
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:534,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:536,1
    - Dst: CMSG_LEN
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:539,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:541,1
    - Dst: CMSG_SPACE
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:555,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:557,1
    - Dst: CMSG_LEN
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:560,1
    - Dst: CMSG_DATA
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:562,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:563,1
    - Dst: sendmsg
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:569,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 9
    argNames:
    - fd
    - buf
    - len
    - flags
    - ifindex
    - from
    - from_len
    - to
    - to_len
    argTypes:
    - int
    - void*
    - size_t
    - int
    - int
    - struct sockaddr*
    - socklen_t
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 570
    functionName: sendfromto
    functionSourceFile: /src/freeradius-server/src/lib/util/udpfromto.c
    functionUses: 1
    functionsReached:
    - sendto
    - CMSG_LEN
    - CMSG_DATA
    - getsockname
    - CMSG_SPACE
    - IN6_IS_ADDR_UNSPECIFIED
    - CMSG_FIRSTHDR
    - memset
    - sendmsg
    linkageType: ''
    returnType: int
    signature: "int sendfromto(int fd, void *buf, size_t len, int flags,\n\t       int
      ifindex,\n\t       struct sockaddr *from, socklen_t from_len,\n\t       struct
      sockaddr *to, socklen_t to_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:600,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:604,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:606,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:607,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:609,1
    - Dst: perror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:611,1
    - Dst: usleep
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:615,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:620,1
    - Dst: udpfromto_init
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:621,1
    - Dst: perror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:622,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:623,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:627,1
    - Dst: perror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:628,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:629,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:633,1
    - Dst: recvfromto
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:634,1
    - Dst: perror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:637,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:638,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:642,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:643,1
    - Dst: inet_ntoa
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:644,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:644,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:645,1
    - Dst: inet_ntoa
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:646,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:646,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:648,1
    - Dst: sendfromto
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:650,1
    - Dst: perror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:654,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:657,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:661,1
    - Dst: socket
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:662,1
    - Dst: fr_assert_fatal_msg
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:663,1
    - Dst: udpfromto_init
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:663,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:663,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:666,1
    - Dst: fr_assert_fatal_msg
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:667,1
    - Dst: bind
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:667,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:668,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:670,1
    - Dst: inet_addr
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:671,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:673,1
    - Dst: fr_assert_fatal_msg
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:674,1
    - Dst: sendto
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:674,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:677,1
    - Dst: fr_assert_fatal_msg
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:679,1
    - Dst: recvfromto
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:679,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:682,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:684,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:685,1
    - Dst: inet_ntoa
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:686,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:686,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:687,1
    - Dst: inet_ntoa
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:688,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/udpfromto.c:688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 691
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/udpfromto.c
    functionUses: 3
    functionsReached:
    - sendfromto
    - close
    - htons
    - sendto
    - printf
    - memset
    - usleep
    - inet_ntoa
    - fr_assert_fatal_msg
    - fr_syserror
    - ntohs
    - recvfromto
    - fork
    - inet_addr
    - perror
    - bind
    - socket
    - udpfromto_init
    - atoi
    - waitpid
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:45,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:46,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:62,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:69,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:70,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:72,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:79,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - lb
    - start
    - end
    argTypes:
    - fr_dns_labels_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 96
    functionName: dns_label_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - FR_PROTO_TRACE
    linkageType: ''
    returnType: int
    signature: int dns_label_add(fr_dns_labels_t *lb, uint8_t const *start, uint8_t
      const *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - lb
    - p
    argTypes:
    - fr_dns_labels_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: dns_label_mark
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void dns_label_mark(fr_dns_labels_t *lb, uint8_t const *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - lb
    - offset
    argTypes:
    - fr_dns_labels_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: dns_pointer_valid
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_TRACE
    linkageType: ''
    returnType: bool
    signature: bool dns_pointer_valid(fr_dns_labels_t *lb, uint16_t offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 170
    functionName: labelcmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool labelcmp(uint8_t const *a, uint8_t const *b, size_t len)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: labelcmp
      Src: /src/freeradius-server/src/lib/util/dns.c:407,1
    - Dst: dns_label_compress
      Src: /src/freeradius-server/src/lib/util/dns.c:437,1
    - Dst: labelcmp
      Src: /src/freeradius-server/src/lib/util/dns.c:563,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 108
    argCount: 6
    argNames:
    - packet
    - start
    - end
    - new_search
    - label
    - label_end
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t**
    - uint8_t*
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 589
    functionName: dns_label_compress
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 1
    functionsReached:
    - dns_label_compress
    - labelcmp
    linkageType: ''
    returnType: bool
    signature: "bool dns_label_compress(uint8_t const *packet, uint8_t const *start,
      uint8_t const *end, uint8_t const **new_search,\n\t\t\t       uint8_t *label,
      uint8_t **label_end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/dns.c:608,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/dns.c:608,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/dns.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dbuff
    - compression
    - value
    - lb
    argTypes:
    - fr_dbuff_t*
    - bool
    - fr_value_box_t*
    - fr_dns_labels_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 613
    functionName: fr_dns_label_from_value_box_dbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_from_value_box
    - fr_dbuff_advance
    - fr_dbuff_remaining
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_label_from_value_box_dbuff(fr_dbuff_t *dbuff, bool compression,
      fr_value_box_t const *value, fr_dns_labels_t *lb)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:646,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:656,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:664,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:693,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:722,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:735,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:743,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:773,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:774,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:796,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:834,1
    - Dst: dns_label_compress
      Src: /src/freeradius-server/src/lib/util/dns.c:838,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:842,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:844,1
    - Dst: dns_label_add
      Src: /src/freeradius-server/src/lib/util/dns.c:849,1
    - Dst: dns_label_compress
      Src: /src/freeradius-server/src/lib/util/dns.c:852,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:853,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:856,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:860,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dns.c:863,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 106
    argCount: 7
    argNames:
    - need
    - buf
    - buf_len
    - where
    - compression
    - value
    - lb
    argTypes:
    - size_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - bool
    - fr_value_box_t*
    - fr_dns_labels_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 865
    functionName: fr_dns_label_from_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 2
    functionsReached:
    - dns_label_add
    - FR_PROTO_TRACE
    - dns_label_compress
    - fr_strerror_printf
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dns_label_from_value_box(size_t *need, uint8_t *buf, size_t
      buf_len, uint8_t *where, bool compression,\n\t\t\t\t    fr_value_box_t const
      *value, fr_dns_labels_t *lb)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:891,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:901,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:951,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:963,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:992,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:1011,1
    - Dst: dns_pointer_valid
      Src: /src/freeradius-server/src/lib/util/dns.c:1020,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:1021,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:1032,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:1041,1
    - Dst: dns_label_mark
      Src: /src/freeradius-server/src/lib/util/dns.c:1069,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dns.c:1083,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dns.c:1102,1
    - Dst: dns_label_add
      Src: /src/freeradius-server/src/lib/util/dns.c:1120,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 5
    argNames:
    - packet
    - buf
    - buf_len
    - next
    - lb
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t**
    - fr_dns_labels_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 1123
    functionName: fr_dns_label_uncompressed_length
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 1
    functionsReached:
    - dns_label_add
    - dns_pointer_valid
    - fr_strerror_printf
    - fr_strerror_const
    - dns_label_mark
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_label_uncompressed_length(uint8_t const *packet, uint8_t
      const *buf, size_t buf_len, uint8_t const **next, fr_dns_labels_t *lb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/dns.c:1148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - packet
    - buf
    - buf_len
    - start
    - lb
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - fr_dns_labels_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1136
    functionDepth: 3
    functionLinenumber: 1136
    functionLinenumberEnd: 1153
    functionName: fr_dns_labels_network_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 1
    functionsReached:
    - fr_dns_label_uncompressed_length
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_labels_network_verify(uint8_t const *packet, uint8_t
      const *buf, size_t buf_len, uint8_t const *start, fr_dns_labels_t *lb)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - packet
    - end
    - start
    - next
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t**
    - uint8_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1203
    functionName: dns_label_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t dns_label_decode(uint8_t const *packet, uint8_t const *end,
      uint8_t const **start, uint8_t const **next)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/dns.c:1254,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:1256,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/dns.c:1260,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/dns.c:1267,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/dns.c:1275,1
    - Dst: dns_label_decode
      Src: /src/freeradius-server/src/lib/util/dns.c:1286,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:1294,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/dns.c:1297,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dns.c:1312,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/util/dns.c:1327,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 7
    argNames:
    - ctx
    - dst
    - src
    - len
    - label
    - tainted
    - lb
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - bool
    - fr_dns_labels_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1338
    functionName: fr_dns_label_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/dns.c
    functionUses: 3
    functionsReached:
    - memcpy
    - FR_PROTO_TRACE
    - fr_value_box_init_null
    - fr_value_box_clear
    - fr_dns_label_uncompressed_length
    - fr_value_box_bstr_alloc
    - dns_label_decode
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dns_label_to_value_box(TALLOC_CTX *ctx, fr_value_box_t
      *dst,\n\t\t\t\t  uint8_t const *src, size_t len, uint8_t const *label,\n\t\t\t\t
      \ bool tainted, fr_dns_labels_t *lb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ret
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: is_truncated
    functionSourceFile: /src/freeradius-server/src/lib/util/print.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_truncated(_ret, _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ret
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: truncate_len
    functionSourceFile: /src/freeradius-server/src/lib/util/print.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: truncate_len(_ret, _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/lib/util/chap.c:40,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/chap.c:45,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/chap.c:46,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/chap.c:48,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/lib/util/chap.c:50,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/lib/util/chap.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - out
    - id
    - challenge
    - challenge_len
    - password
    - password_len
    argTypes:
    - uint8_t[]
    - uint8_t
    - uint8_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: fr_chap_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/chap.c
    functionUses: 4
    functionsReached:
    - fr_md5_update
    - fr_md5_ctx_alloc_from_list
    - fr_md5_final
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: void
    signature: "void fr_chap_encode(uint8_t out[static 1 + FR_CHAP_CHALLENGE_LENGTH],\n\t\t
      \   uint8_t id, uint8_t const *challenge, size_t challenge_len,\n\t\t    char
      const *password, size_t password_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_t*::free_node
      Src: /src/freeradius-server/src/lib/util/fifo.c:59,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/fifo.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - fi
    argTypes:
    - fr_fifo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: _fifo_free
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 0
    functionsReached:
    - memset
    - fr_fifo_t*::free_node
    linkageType: ''
    returnType: int
    signature: int _fifo_free(fr_fifo_t *fi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_size
      Src: /src/freeradius-server/src/lib/util/fifo.c:91,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/fifo.c:93,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/fifo.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - type
    - max
    - free_node
    argTypes:
    - TALLOC_CTX*
    - char*
    - int
    - fr_fifo_free_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: _fr_fifo_create
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 0
    functionsReached:
    - talloc_zero_size
    - talloc_set_type
    - talloc_set_destructor
    linkageType: ''
    returnType: fr_fifo_t
    signature: fr_fifo_t *_fr_fifo_create(TALLOC_CTX *ctx, char const *type, int max,
      fr_fifo_free_t free_node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/fifo.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - fi
    - data
    argTypes:
    - fr_fifo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: fr_fifo_push
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 0
    functionsReached:
    - _talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_fifo_push(fr_fifo_t *fi, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fi
    argTypes:
    - fr_fifo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: fr_fifo_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_fifo_pop(fr_fifo_t *fi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - fi
    argTypes:
    - fr_fifo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: fr_fifo_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fr_fifo_peek(fr_fifo_t *fi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fi
    argTypes:
    - fr_fifo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: fr_fifo_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fr_fifo_num_elements(fr_fifo_t *fi)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/fifo.c:191,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:192,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/fifo.c:200,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:201,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:203,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:206,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:207,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:208,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:209,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:213,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:214,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:215,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:216,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/fifo.c:222,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:224,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:225,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:229,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:231,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:234,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:235,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:236,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:237,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:241,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/fifo.c:242,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/fifo.c:243,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:244,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fifo.c:248,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/lib/util/fifo.c:250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 251
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/fifo.c
    functionUses: 3
    functionsReached:
    - talloc_free
    - fr_fifo_create
    - fr_fifo_pop
    - fprintf
    - fr_fifo_push
    - fr_fifo_num_elements
    - fr_exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/backtrace.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - msg
    - errnum
    argTypes:
    - UNUSED*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: _backtrace_error
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    linkageType: ''
    returnType: void
    signature: void _backtrace_error(UNUSED void *data, const char *msg, int errnum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/freeradius-server/src/lib/util/backtrace.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - fr_bt_info_frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: backtrace_info_sanitise
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - dladdr
    linkageType: ''
    returnType: void
    signature: void backtrace_info_sanitise(fr_bt_info_frame_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:80,1
    - Dst: dprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:86,1
    - Dst: fr_filename
      Src: /src/freeradius-server/src/lib/util/backtrace.c:89,1
    - Dst: dprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:93,1
    - Dst: fr_filename
      Src: /src/freeradius-server/src/lib/util/backtrace.c:96,1
    - Dst: fr_filename_common_trim
      Src: /src/freeradius-server/src/lib/util/backtrace.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - frame
    - fd
    - trim_path
    argTypes:
    - fr_bt_info_frame_t*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: backtrace_info_print
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - fr_filename_common_trim
    - dprintf
    - fr_filename
    linkageType: ''
    returnType: void
    signature: void backtrace_info_print(fr_bt_info_frame_t *frame, int fd, bool trim_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/backtrace.c:107,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/backtrace.c:110,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/backtrace.c:112,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/backtrace.c:115,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/backtrace.c:116,1
    - Dst: backtrace_info_sanitise
      Src: /src/freeradius-server/src/lib/util/backtrace.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - data
    - pc
    - filename
    - lineno
    - function
    argTypes:
    - void*
    - uintptr_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 126
    functionName: _backtrace_info_record
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - backtrace_info_sanitise
    - talloc_strdup
    - talloc_get_type_abort
    - talloc_zero
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: "int _backtrace_info_record(void *data, uintptr_t pc,\n\t\t\t\t  const
      char *filename, int lineno,\n\t\t\t\t  const char *function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace_full
      Src: /src/freeradius-server/src/lib/util/backtrace.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - fr_bt_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: backtrace_record
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - backtrace_full
    linkageType: ''
    returnType: void
    signature: void backtrace_record(fr_bt_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace_info_sanitise
      Src: /src/freeradius-server/src/lib/util/backtrace.c:146,1
    - Dst: backtrace_info_print
      Src: /src/freeradius-server/src/lib/util/backtrace.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - data
    - pc
    - filename
    - lineno
    - function
    argTypes:
    - void*
    - uintptr_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: _backtrace_print
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - backtrace_info_sanitise
    - backtrace_info_print
    linkageType: ''
    returnType: int
    signature: "int _backtrace_print(void *data, uintptr_t pc,\n\t\t\t    const char
      *filename, int lineno,\n\t\t\t    const char *function)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/backtrace.c:158,1
    - Dst: backtrace_full
      Src: /src/freeradius-server/src/lib/util/backtrace.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: fr_backtrace
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 2
    functionsReached:
    - FR_FAULT_LOG
    - backtrace_full
    linkageType: ''
    returnType: void
    signature: void fr_backtrace(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: backtrace
      Src: /src/freeradius-server/src/lib/util/backtrace.c:178,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/backtrace.c:180,1
    - Dst: backtrace_symbols_fd
      Src: /src/freeradius-server/src/lib/util/backtrace.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 186
    functionName: fr_backtrace
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 2
    functionsReached:
    - FR_FAULT_LOG
    - backtrace
    - backtrace_symbols_fd
    linkageType: ''
    returnType: void
    signature: void fr_backtrace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: fr_backtrace
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_backtrace(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_fring_next
      Src: /src/freeradius-server/src/lib/util/backtrace.c:205,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:209,1
    - Dst: backtrace_info_print
      Src: /src/freeradius-server/src/lib/util/backtrace.c:215,1
    - Dst: backtrace_symbols_fd
      Src: /src/freeradius-server/src/lib/util/backtrace.c:219,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - fring
    - obj
    argTypes:
    - fr_fring_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 227
    functionName: fr_backtrace_print
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - backtrace_symbols_fd
    - backtrace_info_print
    - fr_fring_next
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_backtrace_print(fr_fring_t *fring, void *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/backtrace.c:237,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/backtrace.c:237,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/backtrace.c:239,1
    - Dst: backtrace
      Src: /src/freeradius-server/src/lib/util/backtrace.c:246,1
    - Dst: fr_fring_overwrite
      Src: /src/freeradius-server/src/lib/util/backtrace.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - marker
    argTypes:
    - fr_bt_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 251
    functionName: _backtrace_do
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - fr_fring_overwrite
    - fr_cond_assert
    - backtrace
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int _backtrace_do(fr_bt_marker_t *marker)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/backtrace.c:290,1
    - Dst: fr_fring_alloc
      Src: /src/freeradius-server/src/lib/util/backtrace.c:291,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/backtrace.c:292,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/backtrace.c:295,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:303,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/backtrace.c:303,1
    - Dst: _backtrace_do
      Src: /src/freeradius-server/src/lib/util/backtrace.c:307,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/backtrace.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - fring
    - obj
    argTypes:
    - fr_fring_t**
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 311
    functionName: fr_backtrace_attach
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - _backtrace_do
    - talloc_set_destructor
    - pthread_mutex_lock
    - fr_fring_alloc
    - talloc
    - pthread_mutex_unlock
    - fprintf
    - talloc_get_name
    linkageType: ''
    returnType: fr_bt_marker_t
    signature: fr_bt_marker_t *fr_backtrace_attach(fr_fring_t **fring, TALLOC_CTX
      *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/backtrace.c:315,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/util/backtrace.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fr_fring_t **fring
    - TALLOC_CTX *obj
    argTypes:
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: fr_backtrace_attach
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 0
    functionsReached:
    - abort
    - fprintf
    linkageType: ''
    returnType: fr_bt_marker_t
    signature: fr_bt_marker_t *fr_backtrace_attach(UNUSED fr_fring_t **fring, UNUSED
      TALLOC_CTX *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace_create_state
      Src: /src/freeradius-server/src/lib/util/backtrace.c:332,1
    - Dst: backtrace
      Src: /src/freeradius-server/src/lib/util/backtrace.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 349
    functionName: fr_backtrace_init
    functionSourceFile: /src/freeradius-server/src/lib/util/backtrace.c
    functionUses: 1
    functionsReached:
    - backtrace
    - backtrace_create_state
    linkageType: ''
    returnType: void
    signature: "void fr_backtrace_init(\n#ifndef HAVE_BACKTRACE\n\t\t\tUNUSED\n#endif\n\t\t\tchar
      const *program)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:67,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/cbor.c:70,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:76,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:83,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:84,1
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/lib/util/cbor.c:89,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:91,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:92,1
    - Dst: fr_nbo_from_uint32
      Src: /src/freeradius-server/src/lib/util/cbor.c:97,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:99,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:100,1
    - Dst: fr_nbo_from_uint64
      Src: /src/freeradius-server/src/lib/util/cbor.c:104,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:109,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:110,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - dbuff
    - type
    - data
    argTypes:
    - fr_dbuff_t*
    - uint8_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 114
    functionName: cbor_encode_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_nbo_from_uint32
    - fr_nbo_from_uint64
    - fr_nbo_from_uint16
    - fr_assert
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_encode_integer(fr_dbuff_t *dbuff, uint8_t type, uint64_t
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff
    - ','
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: cbor_encode_array
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cbor_encode_array(_dbuff, _size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff
    - ','
    - _tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: cbor_encode_tag
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cbor_encode_tag(_dbuff, _tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:130,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:133,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:136,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dbuff
    - data
    - data_len
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: cbor_encode_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_IN_MEMCPY_RETURN
    - FR_DBUFF
    - cbor_encode_integer
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_encode_octets(fr_dbuff_t *dbuff, uint8_t const *data,
      size_t data_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:143,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:147,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:153,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dbuff
    - neg
    argTypes:
    - fr_dbuff_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: cbor_encode_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF
    - cbor_encode_integer
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_encode_int64(fr_dbuff_t *dbuff, int64_t neg)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:168,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:180,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:231,1
    - Dst: cbor_encode_octets
      Src: /src/freeradius-server/src/lib/util/cbor.c:234,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:237,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:240,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:248,1
    - Dst: cbor_encode_octets
      Src: /src/freeradius-server/src/lib/util/cbor.c:251,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:269,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/lib/util/cbor.c:272,1
    - Dst: cbor_encode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:273,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:284,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/cbor.c:287,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:289,1
    - Dst: cbor_encode_key
      Src: /src/freeradius-server/src/lib/util/cbor.c:295,1
    - Dst: cbor_encode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:298,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/lib/util/cbor.c:298,1
    - Dst: cbor_encode_key
      Src: /src/freeradius-server/src/lib/util/cbor.c:305,1
    - Dst: cbor_encode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:308,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:320,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:324,1
    - Dst: cbor_encode_octets
      Src: /src/freeradius-server/src/lib/util/cbor.c:328,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:333,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:336,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:347,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:351,1
    - Dst: cbor_encode_octets
      Src: /src/freeradius-server/src/lib/util/cbor.c:354,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:359,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:362,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:372,1
    - Dst: cbor_encode_array
      Src: /src/freeradius-server/src/lib/util/cbor.c:375,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:378,1
    - Dst: cbor_encode_octets
      Src: /src/freeradius-server/src/lib/util/cbor.c:398,1
    - Dst: cbor_encode_tag
      Src: /src/freeradius-server/src/lib/util/cbor.c:408,1
    - Dst: cbor_encode_array
      Src: /src/freeradius-server/src/lib/util/cbor.c:411,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:414,1
    - Dst: cbor_encode_octets
      Src: /src/freeradius-server/src/lib/util/cbor.c:434,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:440,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:441,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:445,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:446,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/cbor.c:453,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:454,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:461,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/lib/util/cbor.c:462,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/lib/util/cbor.c:466,1
    - Dst: fr_cbor_encode_value_box
      Src: /src/freeradius-server/src/lib/util/cbor.c:467,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:474,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:474,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:478,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 204
    argCount: 2
    argNames:
    - dbuff
    - vb
    argTypes:
    - fr_dbuff_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 479
    functionName: fr_cbor_encode_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_set
    - fr_time_delta_unwrap
    - cbor_encode_octets
    - fr_strerror_printf
    - fr_value_box_list_foreach
    - fr_time_delta_to_sec
    - cbor_encode_array
    - cbor_encode_int64
    - cbor_encode_integer
    - FR_DBUFF
    - fr_value_box_list_num_elements
    - fr_cbor_encode_value_box
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_type_to_str
    - fr_unix_time_to_sec
    - cbor_encode_key
    - cbor_encode_tag
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_cbor_encode_value_box(fr_dbuff_t *dbuff, fr_value_box_t
      *vb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:484,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:494,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:502,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:510,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:518,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:529,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - out
    - info
    - dbuff
    argTypes:
    - uint64_t*
    - uint8_t
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 530
    functionName: cbor_decode_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_integer(uint64_t *out, uint8_t info, fr_dbuff_t
      *dbuff)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:534,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:538,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:544,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:549,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - out
    - expected
    - dbuff
    argTypes:
    - uint64_t*
    - int
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 553
    functionName: cbor_decode_count
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - fr_strerror_printf
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - cbor_decode_integer
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_count(uint64_t *out, int expected, fr_dbuff_t *dbuff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:559,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:567,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:572,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:576,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - dst
    - dst_min
    - dst_max
    - dbuff
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 579
    functionName: cbor_decode_octets_memcpy
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_strerror_printf
    - cbor_decode_count
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_octets_memcpy(uint8_t *dst, size_t dst_min, size_t
      dst_max, fr_dbuff_t *dbuff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:584,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:589,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:593,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/cbor.c:597,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:599,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:603,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - out
    - dbuff
    argTypes:
    - TALLOC_CTX*
    - uint8_t**
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 607
    functionName: cbor_decode_octets_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - talloc_array
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_strerror_printf
    - cbor_decode_count
    - FR_DBUFF
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t *cbor_decode_octets_memdup(TALLOC_CTX *ctx, uint8_t **out,
      fr_dbuff_t *dbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbor_decode_octets_memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 4
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: cbor_decode_ethernet
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_octets_memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_ethernet(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_dbuff_t *dbuff)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:617,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:623,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/cbor.c:625,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:630,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/cbor.c:635,1
    - Dst: cbor_decode_octets_memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:643,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:648,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:650,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:654,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:655,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:658,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:663,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:668,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 615
    functionDepth: 4
    functionLinenumber: 615
    functionLinenumberEnd: 669
    functionName: cbor_decode_ipv4_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_octets_memcpy
    - fr_dbuff_set
    - fr_dbuff_current
    - fr_strerror_printf
    - cbor_decode_count
    - fr_dbuff_advance
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_ipv4_addr(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_dbuff_t *dbuff)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:673,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:679,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/cbor.c:681,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:686,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/cbor.c:691,1
    - Dst: cbor_decode_octets_memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:699,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:705,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:707,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:711,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:712,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:717,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:722,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:727,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 671
    functionDepth: 4
    functionLinenumber: 671
    functionLinenumberEnd: 728
    functionName: cbor_decode_ipv6_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_octets_memcpy
    - fr_dbuff_set
    - fr_dbuff_current
    - fr_strerror_printf
    - cbor_decode_count
    - fr_dbuff_advance
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_ipv6_addr(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_dbuff_t *dbuff)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:732,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:738,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:741,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:746,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:750,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/cbor.c:760,1
    - Dst: cbor_decode_octets_memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:762,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:765,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 769
    functionName: cbor_decode_ipv4_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_octets_memcpy
    - fr_dbuff_set
    - memcpy
    - fr_strerror_printf
    - cbor_decode_count
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - memset
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_ipv4_prefix(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_dbuff_t *dbuff)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:773,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:779,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:782,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:787,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:791,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/cbor.c:801,1
    - Dst: cbor_decode_octets_memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:803,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/cbor.c:806,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 771
    functionDepth: 4
    functionLinenumber: 771
    functionLinenumberEnd: 810
    functionName: cbor_decode_ipv6_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_octets_memcpy
    - fr_dbuff_set
    - memcpy
    - fr_strerror_printf
    - cbor_decode_count
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - memset
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_ipv6_prefix(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_dbuff_t *dbuff)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:814,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:820,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:827,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:832,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:833,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:841,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:857,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:858,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:862,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - out
    - dbuff
    - type
    argTypes:
    - int64_t*
    - fr_dbuff_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 864
    functionName: cbor_decode_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - fr_strerror_printf
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_type_to_str
    - cbor_decode_integer
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_int64(int64_t *out, fr_dbuff_t *dbuff, fr_type_t
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:868,1
    - Dst: cbor_decode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:872,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/lib/util/cbor.c:875,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 878
    functionName: cbor_decode_date
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_int64
    - fr_dbuff_set
    - FR_DBUFF
    - fr_unix_time_from_sec
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_date(UNUSED TALLOC_CTX *ctx, fr_value_box_t *vb,
      fr_dbuff_t *dbuff)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:887,1
    - Dst: cbor_decode_count
      Src: /src/freeradius-server/src/lib/util/cbor.c:892,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:896,1
    - Dst: cbor_decode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:905,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:909,1
    - Dst: cbor_decode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:913,1
    - Dst: cbor_decode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:917,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:934,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:935,1
    - Dst: cbor_decode_int64
      Src: /src/freeradius-server/src/lib/util/cbor.c:939,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/cbor.c:949,1
    - Dst: fr_time_delta_min
      Src: /src/freeradius-server/src/lib/util/cbor.c:952,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/cbor.c:963,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:966,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 3
    argNames:
    - TALLOC_CTX *ctx
    - vb
    - dbuff
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 967
    functionName: cbor_decode_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_dbuff_set
    - cbor_decode_int64
    - fr_time_delta_min
    - fr_strerror_printf
    - cbor_decode_count
    - fr_dbuff_used
    - fr_time_delta_max
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cbor_decode_time_delta(UNUSED TALLOC_CTX *ctx, fr_value_box_t
      *vb, fr_dbuff_t *dbuff)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:990,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:998,1
    - Dst: cbor_guess_type
      Src: /src/freeradius-server/src/lib/util/cbor.c:1001,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1003,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/cbor.c:1008,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1018,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1026,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1027,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1033,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1041,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1048,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/cbor.c:1052,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1054,1
    - Dst: talloc_set_type
      Src: /src/freeradius-server/src/lib/util/cbor.c:1057,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1058,1
    - Dst: fr_value_box_strdup_shallow
      Src: /src/freeradius-server/src/lib/util/cbor.c:1061,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1073,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1080,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/cbor.c:1084,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1086,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/cbor.c:1090,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1092,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1096,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1108,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1109,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1151,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1152,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1158,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1221,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1222,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1240,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1241,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1252,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1265,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1266,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1280,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1301,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1329,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1336,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1337,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1338,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1345,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1346,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1347,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/cbor.c:1350,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1367,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/cbor.c:1374,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1388,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/cbor.c:1393,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1396,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1397,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/cbor.c:1403,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/util/cbor.c:1407,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1409,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1410,1
    - Dst: fr_cbor_decode_value_box
      Src: /src/freeradius-server/src/lib/util/cbor.c:1416,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1418,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/cbor.c:1422,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1431,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1431,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:1435,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 316
    argCount: 6
    argNames:
    - ctx
    - vb
    - dbuff
    - type
    - enumv
    - tainted
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_dbuff_t*
    - fr_type_t
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1436
    functionName: fr_cbor_decode_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 1
    functionsReached:
    - talloc_array
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_strerror_printf
    - fr_value_box_strdup_shallow
    - fr_value_box_alloc
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_value_box_memdup_shallow
    - fr_type_to_str
    - fr_dbuff_remaining
    - fr_dbuff_used
    - fr_dbuff_advance
    - fr_strerror_const
    - fr_dbuff_current
    - cbor_guess_type
    - talloc_set_type
    - fr_value_box_list_insert_tail
    - cbor_decode_integer
    - fr_value_box_init
    - fr_dbuff_set
    - fr_cbor_decode_value_box
    - talloc_free
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_cbor_decode_value_box(TALLOC_CTX *ctx, fr_value_box_t *vb,
      fr_dbuff_t *dbuff,\n\t\t\t\t fr_type_t type, fr_dict_attr_t const *enumv, bool
      tainted)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:1443,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1448,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1453,1
    - Dst: fr_cbor_encode_value_box
      Src: /src/freeradius-server/src/lib/util/cbor.c:1461,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/cbor.c:1469,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/cbor.c:1470,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/cbor.c:1485,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1486,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/util/cbor.c:1494,1
    - Dst: cbor_encode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1499,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/util/cbor.c:1502,1
    - Dst: fr_cbor_encode_pair
      Src: /src/freeradius-server/src/lib/util/cbor.c:1508,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1519,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1519,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:1523,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - dbuff
    - vp
    argTypes:
    - fr_dbuff_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1441
    functionDepth: 6
    functionLinenumber: 1441
    functionLinenumberEnd: 1524
    functionName: fr_cbor_encode_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 1
    functionsReached:
    - fr_cbor_encode_pair
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - fr_strerror_printf
    - fr_assert
    - fr_cbor_encode_value_box
    - FR_DBUFF
    - fr_pair_list_foreach
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_type_to_str
    - fr_dict_attr_ref
    - cbor_encode_integer
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_cbor_encode_pair(fr_dbuff_t *dbuff, fr_pair_t *vp)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:1533,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/cbor.c:1541,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1544,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1575,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/cbor.c:1590,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/cbor.c:1601,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1638,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 2
    argNames:
    - dbuff
    - pair
    argTypes:
    - fr_dbuff_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1640
    functionName: cbor_guess_type
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_dbuff_out
    - cbor_decode_integer
    - FR_DBUFF
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t cbor_guess_type(fr_dbuff_t *dbuff, bool pair)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/cbor.c:1645,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1653,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1659,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1666,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1672,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1677,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/cbor.c:1688,1
    - Dst: cbor_guess_type
      Src: /src/freeradius-server/src/lib/util/cbor.c:1692,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1693,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/lib/util/cbor.c:1706,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1707,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/cbor.c:1710,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1712,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1713,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1719,1
    - Dst: fr_cbor_decode_value_box
      Src: /src/freeradius-server/src/lib/util/cbor.c:1720,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1722,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/cbor.c:1729,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/cbor.c:1729,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/lib/util/cbor.c:1745,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/cbor.c:1746,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1750,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/cbor.c:1751,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1752,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/lib/util/cbor.c:1759,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1770,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/cbor.c:1771,1
    - Dst: cbor_decode_integer
      Src: /src/freeradius-server/src/lib/util/cbor.c:1781,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1783,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/cbor.c:1791,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/cbor.c:1802,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1803,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1804,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/cbor.c:1810,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1813,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/cbor.c:1814,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/cbor.c:1815,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/cbor.c:1821,1
    - Dst: cbor_decode_pair
      Src: /src/freeradius-server/src/lib/util/cbor.c:1825,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/cbor.c:1827,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/cbor.c:1833,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/cbor.c:1835,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/cbor.c:1836,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 114
    argCount: 6
    argNames:
    - ctx
    - out
    - dbuff
    - parent
    - tainted
    - depth
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dbuff_t*
    - fr_dict_attr_t*
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1642
    functionDepth: 5
    functionLinenumber: 1642
    functionLinenumberEnd: 1837
    functionName: cbor_decode_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 1
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_strerror_printf
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_type_to_str
    - fr_dict_attr_unknown_typed_afrom_num
    - fr_dbuff_extend_lowat
    - cbor_decode_pair
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_dbuff_used
    - fr_dbuff_advance
    - fr_strerror_const
    - fr_pair_afrom_da
    - fr_dbuff_current
    - cbor_guess_type
    - fr_assert
    - cbor_decode_integer
    - fr_dbuff_set
    - fr_cbor_decode_value_box
    - talloc_free
    - fr_dict_attr_child_by_num
    - PAIR_VERIFY
    - fr_dict_attr_ref
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t cbor_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dbuff_t
      *dbuff,\n\t\t\t\tfr_dict_attr_t const *parent, bool tainted, int depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbor_decode_pair
      Src: /src/freeradius-server/src/lib/util/cbor.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - dbuff
    - parent
    - tainted
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dbuff_t*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1839
    functionDepth: 6
    functionLinenumber: 1839
    functionLinenumberEnd: 1843
    functionName: fr_cbor_decode_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/cbor.c
    functionUses: 0
    functionsReached:
    - cbor_decode_pair
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_cbor_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dbuff_t *dbuff,\n\t\t\t    fr_dict_attr_t const *parent, bool tainted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - alphabet
    argTypes:
    - char
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: fr_is_base32_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base32.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_is_base32_nstd(char c, uint8_t const alphabet[static SBUFF_CHAR_CLASS])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _add_padding
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: fr_base32_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/base32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_base32_encode(_out, _in, _add_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _expect_padding
    - ','
    - _no_trailing
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: fr_base32_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/base32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_base32_decode(_out, _in, _expect_padding, _no_trailing)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:32,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:33,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:38,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:39,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:44,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:45,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:50,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:59,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:71,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:73,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:74,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:85,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:86,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:90,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:91,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:93,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:103,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:104,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:104,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - parent
    - da
    - type
    - flags
    argTypes:
    - fr_dict_attr_t*
    - UNUSED*
    - fr_type_t
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 110
    functionName: dict_attr_unknown_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_assert
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_attr_unknown_init(fr_dict_attr_t const *parent, UNUSED fr_dict_attr_t
      const *da, fr_type_t type, fr_dict_attr_flags_t *flags)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:129,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:130,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:130,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:138,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:142,1
    - Dst: fr_dict_attr_unknown_add
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:151,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:153,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:160,1
    - Dst: dict_vendor_add
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:172,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:174,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:176,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:191,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:195,1
    - Dst: dict_attr_add_to_namespace
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:205,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:206,1
    - Dst: fr_dict_attr_add
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:218,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:223,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - dict
    - unknown
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 123
    functionDepth: 6
    functionLinenumber: 123
    functionLinenumberEnd: 224
    functionName: fr_dict_attr_unknown_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_dict_attr_by_name
    - memcpy
    - dict_attr_alloc
    - talloc_free
    - dict_attr_add_to_namespace
    - fr_strerror_printf
    - dict_vendor_add
    - fr_dict_attr_add
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_add
    - fr_dict_root
    - fr_strerror_printf_push
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_add(fr_dict_t *dict, fr_dict_attr_t
      const *unknown)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: fr_dict_attr_unknown_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 5
    functionsReached:
    - talloc_const_free
    linkageType: ''
    returnType: void
    signature: void fr_dict_attr_unknown_free(fr_dict_attr_t const **da)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:256,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:257,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:268,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:268,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:278,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:278,1
    - Dst: dict_attr_unknown_init
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:282,1
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:292,1
    - Dst: fr_dict_attr_unknown_copy
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:302,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:305,1
    - Dst: dict_attr_init
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:316,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:323,1
    - Dst: dict_attr_ext_copy
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:324,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:336,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - ctx
    - da
    - type
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 339
    functionName: fr_dict_attr_unknown_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 2
    functionsReached:
    - fr_dict_attr_unknown_copy
    - talloc_free
    - dict_attr_alloc_null
    - fr_strerror_printf
    - dict_attr_unknown_init
    - dict_attr_ext_copy
    - fr_dict_attr_ext
    - dict_attr_init
    - fr_assert
    - fr_type_to_str
    - DA_VERIFY
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_alloc(TALLOC_CTX *ctx, fr_dict_attr_t
      const *da, fr_type_t type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:361,1
    - Dst: fr_dict_attr_unknown_alloc
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - da
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 345
    functionDepth: 5
    functionLinenumber: 345
    functionLinenumberEnd: 374
    functionName: fr_dict_attr_unknown_afrom_da
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - fr_dict_attr_unknown_alloc
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_afrom_da(TALLOC_CTX *ctx, fr_dict_attr_t
      const *da)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:395,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:396,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:402,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:410,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:411,1
    - Dst: fr_type_is_structural_except_vsa
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:423,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:425,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:426,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:427,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:440,1
    - Dst: dict_attr_unknown_init
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:444,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:446,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - parent
    - num
    - type
    - raw
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t*
    - unsigned int
    - fr_type_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 448
    functionName: fr_dict_attr_unknown_typed_afrom_num_raw
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 4
    functionsReached:
    - dict_attr_alloc
    - fr_strerror_printf
    - dict_attr_unknown_init
    - fr_type_is_structural_except_vsa
    - fr_dict_attr_child_by_num
    - fr_type_to_str
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_typed_afrom_num_raw(TALLOC_CTX
      *ctx, fr_dict_attr_t const *parent, unsigned int num, fr_type_t type, bool raw)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:476,1
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:497,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:510,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:514,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:526,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:527,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:530,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:531,1
    - Dst: dict_attr_init
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:536,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:549,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:550,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:564,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:565,1
    - Dst: dict_attr_unknown_init
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:569,1
    - Dst: dict_attr_init
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:571,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:581,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:582,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:583,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:584,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:584,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:593,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:594,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:612,1
    - Dst: fr_sbuff_behind
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:613,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:613,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:621,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:625,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - type
    argTypes:
    - TALLOC_CTX*
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - fr_sbuff_t*
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 626
    functionName: fr_dict_attr_unknown_afrom_oid_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 2
    functionsReached:
    - fr_sbuff_out
    - fr_strerror_printf
    - dict_attr_unknown_init
    - fr_sbuff_current
    - dict_attr_init
    - fr_type_to_str
    - fr_dict_attr_unknown_typed_afrom_num
    - DA_VERIFY
    - FR_SBUFF_SET_RETURN
    - fr_sbuff_behind
    - fr_dict_attr_unknown_vendor_afrom_num
    - FR_SBUFF
    - dict_attr_alloc_null
    - fr_sbuff_marker
    - FR_SBUFF_ERROR_RETURN
    - fr_sbuff_next_if_char
    - talloc_free
    - fr_sbuff_is_char
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_dict_attr_unknown_afrom_oid_substr(TALLOC_CTX *ctx,\n\t\t\t\t\t
      \  fr_dict_attr_t const **out,\n\t\t\t      \t\t   fr_dict_attr_t const *parent,\n\t\t\t\t\t
      \  fr_sbuff_t *in, fr_type_t type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:653,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:654,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:660,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:661,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:668,1
    - Dst: fr_dict_attr_unknown_resolve
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:673,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:673,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:675,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - da
    - parent
    argTypes:
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 684
    functionName: fr_dict_attr_unknown_parent_to_known
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_dict_attr_unknown_resolve
    - fr_dict_attr_unconst
    - fr_dict_by_da
    linkageType: ''
    returnType: int
    signature: int fr_dict_attr_unknown_parent_to_known(fr_dict_attr_t *da, fr_dict_attr_t
      const *parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_IF_NULL
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:696,1
    - Dst: fr_dict_attr_unknown_resolve
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:703,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_unknown.c:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - dict
    - da
    argTypes:
    - fr_dict_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 711
    functionName: fr_dict_attr_unknown_resolve
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_unknown.c
    functionUses: 3
    functionsReached:
    - INTERNAL_IF_NULL
    - fr_dict_attr_unknown_resolve
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: fr_dict_attr_t
    signature: fr_dict_attr_t *fr_dict_attr_unknown_resolve(fr_dict_t const *dict,
      fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: __has_feature
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: __has_builtin
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maj
    - ','
    - min
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: __GNUC_PREREQ__
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __GNUC_PREREQ__(maj, min)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: _Atomic
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Atomic(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: ATOMIC_VAR_INIT
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_VAR_INIT(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: atomic_init
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_init(obj, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: ATOMIC_VAR_INIT
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_VAR_INIT(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: atomic_init
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_init(obj, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: atomic_thread_fence
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_thread_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: atomic_signal_fence
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_signal_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: atomic_thread_fence
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_thread_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: atomic_signal_fence
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_signal_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: atomic_thread_fence
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_thread_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: atomic_signal_fence
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_signal_fence(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: atomic_is_lock_free
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_is_lock_free(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: atomic_is_lock_free
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_is_lock_free(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: atomic_is_lock_free
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_is_lock_free(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - ','
    - success
    - ','
    - failure
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: atomic_compare_exchange_strong_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "atomic_compare_exchange_strong_explicit(object, expected,\t\\\n    desired,
      success, failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - ','
    - success
    - ','
    - failure
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: atomic_compare_exchange_weak_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "atomic_compare_exchange_weak_explicit(object, expected,\t\t\\\n    desired,
      success, failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: atomic_exchange_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: atomic_fetch_add_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: atomic_fetch_and_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_and_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: atomic_fetch_or_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_or_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: atomic_fetch_sub_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_sub_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: atomic_fetch_xor_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_xor_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: atomic_load_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load_explicit(object, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: atomic_store_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_store_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - ','
    - success
    - ','
    - failure
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: atomic_compare_exchange_strong_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "atomic_compare_exchange_strong_explicit(object, expected,\t\\\n    desired,
      success, failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - ','
    - success
    - ','
    - failure
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: atomic_compare_exchange_weak_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "atomic_compare_exchange_weak_explicit(object, expected,\t\t\\\n    desired,
      success, failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: atomic_exchange_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: atomic_fetch_add_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: atomic_fetch_and_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_and_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: atomic_fetch_or_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_or_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: atomic_fetch_sub_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_sub_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: atomic_fetch_xor_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_xor_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: atomic_load_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load_explicit(object, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: atomic_store_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_store_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - ','
    - success
    - ','
    - failure
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: atomic_compare_exchange_strong_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "atomic_compare_exchange_strong_explicit(object, expected,\t\\\n    desired,
      success, failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - ','
    - success
    - ','
    - failure
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: atomic_compare_exchange_weak_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "atomic_compare_exchange_weak_explicit(object, expected,\t\t\\\n    desired,
      success, failure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: atomic_exchange_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: atomic_exchange_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: atomic_fetch_add_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: atomic_fetch_and_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_and_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: atomic_fetch_or_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_or_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: atomic_fetch_sub_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_sub_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - operand
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: atomic_fetch_xor_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_xor_explicit(object, operand, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: atomic_load_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load_explicit(object, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - desired
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: atomic_store_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_store_explicit(object, desired, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: atomic_compare_exchange_strong
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_compare_exchange_strong(object, expected, desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - object
    - ','
    - expected
    - ','
    - desired
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: atomic_compare_exchange_weak
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_compare_exchange_weak(object, expected, desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - desired
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: atomic_exchange
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_exchange(object, desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - operand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: atomic_fetch_add
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_add(object, operand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - operand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: atomic_fetch_and
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_and(object, operand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - operand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: atomic_fetch_or
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_or(object, operand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - operand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: atomic_fetch_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_sub(object, operand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - operand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: atomic_fetch_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_fetch_xor(object, operand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - object
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: atomic_load
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_load(object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - desired
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: atomic_store
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_store(object, desired)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: atomic_flag_clear_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_flag_clear_explicit(object, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - object
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: atomic_flag_test_and_set_explicit
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_flag_test_and_set_explicit(object, order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - object
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: atomic_flag_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_flag_clear(object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - object
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: atomic_flag_test_and_set
    functionSourceFile: /src/freeradius-server/src/lib/util/stdatomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_flag_test_and_set(object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: sem_init
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_init(s,p,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: sem_wait
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_wait(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: sem_post
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_post(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: sem_destroy
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_destroy(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: SEM_WAIT_INTR
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_WAIT_INTR(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: FR_TYPE_INTEGER_EXCEPT_BOOL_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_INTEGER_EXCEPT_BOOL_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: FR_TYPE_INTEGER_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_INTEGER_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: FR_TYPE_SIGNED_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_SIGNED_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: FR_TYPE_NUMERIC_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_NUMERIC_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: FR_TYPE_IP_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_IP_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: FR_TYPE_FIXED_SIZE_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_FIXED_SIZE_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: FR_TYPE_VARIABLE_SIZE_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_VARIABLE_SIZE_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: FR_TYPE_QUOTED_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_QUOTED_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: FR_TYPE_STRUCTURAL_EXCEPT_VSA_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_STRUCTURAL_EXCEPT_VSA_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: FR_TYPE_STRUCTURAL_EXCEPT_GROUP_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_STRUCTURAL_EXCEPT_GROUP_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: FR_TYPE_STRUCTURAL_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_STRUCTURAL_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: FR_TYPE_LEAF_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_LEAF_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: FR_TYPE_INTERNAL_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_INTERNAL_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _beg
    - ','
    - _mid
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: FR_TYPE_NON_LEAF_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TYPE_NON_LEAF_DEF(_beg, _mid, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: CASE_BEG
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_BEG(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: CASE_MID
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_MID(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: CASE_END
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_END(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: fr_type_is_null
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_null(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: fr_type_is_string
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_string(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: fr_type_is_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_octets(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: fr_type_is_ipv4addr
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ipv4addr(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: fr_type_is_ipv4prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ipv4prefix(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: fr_type_is_ipv6addr
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ipv6addr(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: fr_type_is_ipv6prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ipv6prefix(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: fr_type_is_ifid
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ifid(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: fr_type_is_combo_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_combo_ipaddr(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: fr_type_is_combo_ipprefix
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_combo_ipprefix(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: fr_type_is_ethernet
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ethernet(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: fr_type_is_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_bool(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: fr_type_is_uint8
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_uint8(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: fr_type_is_uint16
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_uint16(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: fr_type_is_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_uint32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: fr_type_is_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_uint64(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: fr_type_is_int8
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_int8(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: fr_type_is_int16
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_int16(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: fr_type_is_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_int32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: fr_type_is_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_int64(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: fr_type_is_float32
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_float32(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: fr_type_is_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_float64(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: fr_type_is_date
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_date(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: fr_type_is_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_time_delta(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: fr_type_is_size
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: fr_type_is_tlv
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_tlv(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: fr_type_is_struct
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_struct(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: fr_type_is_vsa
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_vsa(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: fr_type_is_vendor
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_vendor(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: fr_type_is_group
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_group(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: fr_type_is_value_box
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_value_box(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: fr_type_is_void
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_void(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: fr_type_is_integer_except_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_integer_except_bool(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 382
    functionName: fr_type_is_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_integer(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: fr_type_is_numeric
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_numeric(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    functionName: fr_type_is_signed
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_signed(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: fr_type_is_ip
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_ip(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    functionName: fr_type_is_fixed_size
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_fixed_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: fr_type_is_variable_size
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_variable_size(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: fr_type_is_quoted
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_quoted(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: fr_type_is_structural_except_vsa
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_structural_except_vsa(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: fr_type_is_structural
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_structural(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: fr_type_is_leaf
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_leaf(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: fr_type_is_non_leaf
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_type_is_non_leaf(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ct
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 443
    functionName: FR_CTYPE_TO_TYPE
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CTYPE_TO_TYPE(_ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/types.h:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: fr_type_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 131
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_type_to_str(fr_type_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/util/types.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: fr_type_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/types.h
    functionUses: 4
    functionsReached:
    - fr_table_value_by_str
    linkageType: ''
    returnType: fr_type_t
    signature: fr_type_t fr_type_from_str(char const *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::match
      Src: /src/freeradius-server/src/lib/util/htrie.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_htrie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: fr_htrie_match
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 1
    functionsReached:
    - fr_htrie_t*::funcs::match
    linkageType: ''
    returnType: void
    signature: void *fr_htrie_match(fr_htrie_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::find
      Src: /src/freeradius-server/src/lib/util/htrie.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_htrie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: fr_htrie_find
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 8
    functionsReached:
    - fr_htrie_t*::funcs::find
    linkageType: ''
    returnType: void
    signature: void *fr_htrie_find(fr_htrie_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::insert
      Src: /src/freeradius-server/src/lib/util/htrie.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_htrie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: fr_htrie_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 4
    functionsReached:
    - fr_htrie_t*::funcs::insert
    linkageType: ''
    returnType: bool
    signature: bool fr_htrie_insert(fr_htrie_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::replace
      Src: /src/freeradius-server/src/lib/util/htrie.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - old
    - ht
    - data
    argTypes:
    - void**
    - fr_htrie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: fr_htrie_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 1
    functionsReached:
    - fr_htrie_t*::funcs::replace
    linkageType: ''
    returnType: int
    signature: int fr_htrie_replace(void **old, fr_htrie_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::remove
      Src: /src/freeradius-server/src/lib/util/htrie.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_htrie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: fr_htrie_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 2
    functionsReached:
    - fr_htrie_t*::funcs::remove
    linkageType: ''
    returnType: void
    signature: void *fr_htrie_remove(fr_htrie_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::delete
      Src: /src/freeradius-server/src/lib/util/htrie.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ht
    - data
    argTypes:
    - fr_htrie_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: fr_htrie_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 5
    functionsReached:
    - fr_htrie_t*::funcs::delete
    linkageType: ''
    returnType: bool
    signature: bool fr_htrie_delete(fr_htrie_t *ht, void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_htrie_t*::funcs::num_elements
      Src: /src/freeradius-server/src/lib/util/htrie.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ht
    argTypes:
    - fr_htrie_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: fr_htrie_num_elements
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 1
    functionsReached:
    - fr_htrie_t*::funcs::num_elements
    linkageType: ''
    returnType: int
    signature: int fr_htrie_num_elements(fr_htrie_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/htrie.h:165,1
    - Dst: fr_htrie_t*::funcs::iter_init
      Src: /src/freeradius-server/src/lib/util/htrie.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ht
    - iter
    argTypes:
    - fr_htrie_t*
    - fr_htrie_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: fr_htrie_iter_init
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 0
    functionsReached:
    - fr_htrie_t*::funcs::iter_init
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void *fr_htrie_iter_init(fr_htrie_t *ht, fr_htrie_iter_t *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/htrie.h:175,1
    - Dst: fr_htrie_t*::funcs::iter_next
      Src: /src/freeradius-server/src/lib/util/htrie.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ht
    - iter
    argTypes:
    - fr_htrie_t*
    - fr_htrie_iter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: fr_htrie_iter_next
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 0
    functionsReached:
    - fr_htrie_t*::funcs::iter_next
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void *fr_htrie_iter_next(fr_htrie_t *ht, fr_htrie_iter_t *iter)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 204
    functionName: fr_htrie_hint
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: fr_htrie_type_t
    signature: fr_htrie_type_t fr_htrie_hint(fr_type_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/htrie.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - fr_htrie_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: fr_htrie_type_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/htrie.h
    functionUses: 1
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_htrie_type_to_str(fr_htrie_type_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - alphabet
    argTypes:
    - char
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: fr_is_base16_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_is_base16_nstd(char c, uint8_t const alphabet[static SBUFF_CHAR_CLASS])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: fr_base16_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_base16_encode(_out, _in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/base16.h:74,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/base16.h:75,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/lib/util/base16.h:78,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/base16.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - out
    - in
    argTypes:
    - TALLOC_CTX*
    - char**
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: fr_base16_aencode
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.h
    functionUses: 0
    functionsReached:
    - fr_base16_encode
    - fr_sbuff_trim_talloc
    - fr_sbuff_init_talloc
    - fr_dbuff_remaining
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_base16_aencode(TALLOC_CTX *ctx, char **out, fr_dbuff_t
      *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _err
    - ','
    - _out
    - ','
    - _in
    - ','
    - _no_trailing
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: fr_base16_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/base16.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_base16_decode(_err, _out, _in, _no_trailing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_fring_next
      Src: /src/freeradius-server/src/lib/util/fring.c:62,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fring.c:62,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/util/fring.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fring
    argTypes:
    - fr_fring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: _fring_free
    functionSourceFile: /src/freeradius-server/src/lib/util/fring.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - fr_fring_next
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _fring_free(fr_fring_t *fring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/fring.c:93,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/fring.c:95,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/fring.c:97,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fring.c:99,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/util/fring.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - size
    - lock
    argTypes:
    - TALLOC_CTX*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 110
    functionName: fr_fring_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/fring.c
    functionUses: 2
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - talloc_zero
    - talloc_zero_array
    - pthread_mutex_init
    linkageType: ''
    returnType: fr_fring_t
    signature: fr_fring_t *fr_fring_alloc(TALLOC_CTX *ctx, uint32_t size, bool lock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/fring.c:123,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fring.c:127,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/fring.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - fring
    - in
    argTypes:
    - fr_fring_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: fr_fring_overwrite
    functionSourceFile: /src/freeradius-server/src/lib/util/fring.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int fr_fring_overwrite(fr_fring_t *fring, void *in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/fring.c:151,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/fring.c:154,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/fring.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - fring
    - in
    argTypes:
    - fr_fring_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: fr_fring_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/fring.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int fr_fring_insert(fr_fring_t *fring, void *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/util/fring.c:181,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/util/fring.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fring
    argTypes:
    - fr_fring_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 194
    functionName: fr_fring_next
    functionSourceFile: /src/freeradius-server/src/lib/util/fring.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void *fr_fring_next(fr_fring_t *fring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: rol
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: blk0
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: blk
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: R0
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: R1
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: R2
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: R3
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: R4
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v,w,x,y,z,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/sha1.c:46,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:56,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:56,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:56,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:56,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:57,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:57,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:57,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:57,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:58,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:58,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:58,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:58,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:59,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:59,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:59,1
    - Dst: R0
      Src: /src/freeradius-server/src/lib/util/sha1.c:59,1
    - Dst: R1
      Src: /src/freeradius-server/src/lib/util/sha1.c:60,1
    - Dst: R1
      Src: /src/freeradius-server/src/lib/util/sha1.c:60,1
    - Dst: R1
      Src: /src/freeradius-server/src/lib/util/sha1.c:60,1
    - Dst: R1
      Src: /src/freeradius-server/src/lib/util/sha1.c:60,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:61,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:61,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:61,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:61,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:62,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:62,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:62,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:62,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:63,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:63,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:63,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:63,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:64,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:64,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:64,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:64,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:65,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:65,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:65,1
    - Dst: R2
      Src: /src/freeradius-server/src/lib/util/sha1.c:65,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:66,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:66,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:66,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:66,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:67,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:67,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:67,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:67,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:68,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:68,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:68,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:68,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:69,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:69,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:69,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:69,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:70,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:70,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:70,1
    - Dst: R3
      Src: /src/freeradius-server/src/lib/util/sha1.c:70,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:71,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:71,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:71,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:71,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:72,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:72,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:72,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:72,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:73,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:73,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:73,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:73,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:74,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:74,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:74,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:74,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:75,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:75,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:75,1
    - Dst: R4
      Src: /src/freeradius-server/src/lib/util/sha1.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 94
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - uint32_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 88
    functionName: fr_sha1_transform
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached:
    - R4
    - memcpy
    - R0
    - R2
    - R1
    - R3
    linkageType: ''
    returnType: void
    signature: void fr_sha1_transform(uint32_t state[static 5], uint8_t const buffer[static
      64])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - fr_sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: fr_sha1_init
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_sha1_init(fr_sha1_ctx* context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/sha1.c:126,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/util/sha1.c:127,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/util/sha1.c:129,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/sha1.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - context
    - in
    - len
    argTypes:
    - fr_sha1_ctx*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 136
    functionName: fr_sha1_update
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 11
    functionsReached:
    - fr_sha1_transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_sha1_update(fr_sha1_ctx *context, uint8_t const *in, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/sha1.c:150,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/sha1.c:153,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/util/sha1.c:155,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:163,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:164,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:165,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:166,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/util/sha1.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - uint8_t[]
    - fr_sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 172
    functionName: fr_sha1_final
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 11
    functionsReached:
    - memset
    - fr_sha1_update
    - fr_sha1_transform
    linkageType: ''
    returnType: void
    signature: void fr_sha1_final(uint8_t digest[static SHA1_DIGEST_LENGTH], fr_sha1_ctx
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:185,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:186,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/sha1.c:187,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/util/sha1.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - uint8_t[]
    - fr_sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: fr_sha1_final_no_len
    functionSourceFile: /src/freeradius-server/src/lib/util/sha1.c
    functionUses: 0
    functionsReached:
    - memset
    - fr_sha1_transform
    linkageType: ''
    returnType: void
    signature: void fr_sha1_final_no_len(uint8_t digest[static SHA1_DIGEST_LENGTH],
      fr_sha1_ctx *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: IP_V
    functionSourceFile: /src/freeradius-server/src/lib/util/net.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IP_V(ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: IP_HL
    functionSourceFile: /src/freeradius-server/src/lib/util/net.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IP_HL(ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - hl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: IP_VHL
    functionSourceFile: /src/freeradius-server/src/lib/util/net.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IP_VHL(v, hl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dl.c:124,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dl.c:135,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dl.c:138,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dl.c:139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: dl_symbol_init_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_cond_assert
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dl_symbol_init_cmp(void const *one, void const *two)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dl.c:147,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dl.c:158,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dl.c:161,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dl.c:162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: dl_symbol_free_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_cond_assert
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dl_symbol_free_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dl.c:172,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/dl.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: dl_handle_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dl_handle_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/util/dl.c:197,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dl.c:199,1
    - Dst: dladdr
      Src: /src/freeradius-server/src/lib/util/dl.c:206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dl.c:207,1
    - Dst: dlopen
      Src: /src/freeradius-server/src/lib/util/dl.c:211,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dl.c:213,1
    - Dst: dlerror
      Src: /src/freeradius-server/src/lib/util/dl.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sym_name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 218
    functionName: dl_open_by_sym
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 2
    functionsReached:
    - dladdr
    - dlerror
    - fr_strerror_printf
    - dlopen
    - dlsym
    linkageType: ''
    returnType: void
    signature: void *dl_open_by_sym(char const *sym_name, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dl.c:239,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:243,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/util/dl.c:254,1
    - Dst: dl_symbol_init_t*::func
      Src: /src/freeradius-server/src/lib/util/dl.c:260,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dl.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - dl_loader
    - dl
    argTypes:
    - dl_loader_t*
    - dl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 267
    functionName: dl_symbol_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - fr_dlist_next
    - fr_strerror_printf
    - snprintf
    - dl_symbol_init_t*::func
    - dlsym
    linkageType: ''
    returnType: int
    signature: int dl_symbol_init(dl_loader_t *dl_loader, dl_t const *dl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dl.c:284,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:288,1
    - Dst: dlsym
      Src: /src/freeradius-server/src/lib/util/dl.c:291,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:292,1
    - Dst: dl_symbol_free_t*::func
      Src: /src/freeradius-server/src/lib/util/dl.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dl_loader
    - dl
    argTypes:
    - dl_loader_t*
    - dl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 301
    functionName: dl_symbol_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - talloc_typed_asprintf
    - talloc_free
    - fr_dlist_next
    - dl_symbol_free_t*::func
    - dlsym
    linkageType: ''
    returnType: int
    signature: int dl_symbol_free(dl_loader_t *dl_loader, dl_t const *dl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dl_symbol_init_cb_unregister
      Src: /src/freeradius-server/src/lib/util/dl.c:326,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dl.c:328,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dl.c:329,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/dl.c:337,1
    - Dst: fr_dlist_insert_before
      Src: /src/freeradius-server/src/lib/util/dl.c:339,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/dl.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - dl_loader
    - priority
    - symbol
    - func
    - uctx
    argTypes:
    - dl_loader_t*
    - unsigned int
    - char*
    - dl_onload_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 347
    functionName: dl_symbol_init_cb_register
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - dl_symbol_init_cb_unregister
    - fr_dlist_foreach
    - unlikely
    - fr_dlist_insert_before
    - talloc
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: "int dl_symbol_init_cb_register(dl_loader_t *dl_loader, unsigned int
      priority,\n\t\t\t       char const *symbol, dl_onload_t func, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dl.c:359,1
    - Dst: dl_symbol_init_cmp
      Src: /src/freeradius-server/src/lib/util/dl.c:359,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dl.c:361,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - dl_loader
    - symbol
    - func
    argTypes:
    - dl_loader_t*
    - char*
    - dl_onload_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 364
    functionName: dl_symbol_init_cb_unregister
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - fr_dlist_next
    - dl_symbol_init_cmp
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void dl_symbol_init_cb_unregister(dl_loader_t *dl_loader, char const
      *symbol, dl_onload_t func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dl_symbol_free_cb_unregister
      Src: /src/freeradius-server/src/lib/util/dl.c:389,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dl.c:391,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/dl.c:401,1
    - Dst: fr_dlist_insert_before
      Src: /src/freeradius-server/src/lib/util/dl.c:403,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/dl.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - dl_loader
    - priority
    - symbol
    - func
    - uctx
    argTypes:
    - dl_loader_t*
    - unsigned int
    - char*
    - dl_unload_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 411
    functionName: dl_symbol_free_cb_register
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - fr_dlist_foreach
    - dl_symbol_free_cb_unregister
    - fr_dlist_insert_before
    - talloc
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: int
    signature: "int dl_symbol_free_cb_register(dl_loader_t *dl_loader, unsigned int
      priority,\n\t\t\t       char const *symbol, dl_unload_t func, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dl.c:423,1
    - Dst: dl_symbol_free_cmp
      Src: /src/freeradius-server/src/lib/util/dl.c:423,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/dl.c:425,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - dl_loader
    - symbol
    - func
    argTypes:
    - dl_loader_t*
    - char*
    - dl_unload_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: dl_symbol_free_cb_unregister
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - fr_dlist_next
    - talloc_free
    - dl_symbol_free_cmp
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void dl_symbol_free_cb_unregister(dl_loader_t *dl_loader, char const
      *symbol, dl_unload_t func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dl.c:439,1
    - Dst: dl_symbol_free
      Src: /src/freeradius-server/src/lib/util/dl.c:441,1
    - Dst: dlclose
      Src: /src/freeradius-server/src/lib/util/dl.c:447,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/lib/util/dl.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dl
    argTypes:
    - dl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 454
    functionName: _dl_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - dlclose
    - fr_rb_delete
    - talloc_get_type_abort
    - dl_symbol_free
    linkageType: ''
    returnType: int
    signature: int _dl_free(dl_t *dl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/util/dl.c:481,1
    - Dst: talloc_increase_ref_count
      Src: /src/freeradius-server/src/lib/util/dl.c:483,1
    - Dst: dlopen
      Src: /src/freeradius-server/src/lib/util/dl.c:498,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dl.c:500,1
    - Dst: dlerror
      Src: /src/freeradius-server/src/lib/util/dl.c:500,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dl.c:519,1
    - Dst: dl_search_path
      Src: /src/freeradius-server/src/lib/util/dl.c:526,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dl.c:536,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:538,1
    - Dst: strsep
      Src: /src/freeradius-server/src/lib/util/dl.c:539,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/dl.c:545,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:548,1
    - Dst: dlopen
      Src: /src/freeradius-server/src/lib/util/dl.c:549,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:550,1
    - Dst: dlerror
      Src: /src/freeradius-server/src/lib/util/dl.c:578,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dl.c:580,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/dl.c:588,1
    - Dst: fr_syserror_simple
      Src: /src/freeradius-server/src/lib/util/dl.c:588,1
    - Dst: access
      Src: /src/freeradius-server/src/lib/util/dl.c:595,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dl.c:597,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/dl.c:617,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:619,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:628,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dl.c:632,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:634,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/dl.c:638,1
    - Dst: strlcat
      Src: /src/freeradius-server/src/lib/util/dl.c:642,1
    - Dst: dlopen
      Src: /src/freeradius-server/src/lib/util/dl.c:644,1
    - Dst: dlerror
      Src: /src/freeradius-server/src/lib/util/dl.c:646,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dl.c:651,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/dl.c:657,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dl.c:658,1
    - Dst: dlclose
      Src: /src/freeradius-server/src/lib/util/dl.c:659,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:663,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/dl.c:669,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/dl.c:671,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:673,1
    - Dst: dl_symbol_init
      Src: /src/freeradius-server/src/lib/util/dl.c:677,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 4
    argNames:
    - dl_loader
    - name
    - uctx
    - uctx_free
    argTypes:
    - dl_loader_t*
    - char*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 680
    functionName: dl_by_name
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 4
    functionsReached:
    - talloc_increase_ref_count
    - dlerror
    - dlclose
    - fr_strerror_printf
    - strrchr
    - talloc_strdup
    - strsep
    - dl_symbol_init
    - strlcpy
    - unlikely
    - dlopen
    - fr_strerror_const_push
    - fr_rb_insert
    - dl_search_path
    - strlcat
    - fr_strerror_const
    - fr_syserror_simple
    - talloc_set_destructor
    - fr_rb_find
    - fr_strerror_printf_push
    - talloc_typed_asprintf
    - access
    - talloc_free
    - strstr
    - talloc
    - fr_strerror_clear
    linkageType: ''
    returnType: dl_t
    signature: dl_t *dl_by_name(dl_loader_t *dl_loader, char const *name, void *uctx,
      bool uctx_free)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_decrease_ref_count
      Src: /src/freeradius-server/src/lib/util/dl.c:697,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/dl.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dl
    argTypes:
    - dl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: dl_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 2
    functionsReached:
    - talloc_decrease_ref_count
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int dl_free(dl_t const *dl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dl.c:705,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/util/dl.c:714,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/dl.c:722,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/dl.c:724,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/dl.c:725,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dl.c:727,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/dl.c:727,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dl.c:730,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - dl_loader
    argTypes:
    - dl_loader_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 739
    functionName: _dl_loader_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_free
    - fr_rb_num_elements
    - talloc_get_type_abort
    - talloc_reference_count
    - fr_rb_iter_init_inorder
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int _dl_loader_free(dl_loader_t *dl_loader)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/dl.c:761,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/util/dl.c:766,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:767,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:769,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/dl.c:771,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/dl.c:773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - dl_loader
    argTypes:
    - dl_loader_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 774
    functionName: dl_search_path
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 2
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - getenv
    - fr_sbuff_in_strcpy
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: char
    signature: char *dl_search_path(dl_loader_t *dl_loader)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dl.c:785,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:787,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:789,1
    - Dst: fr_atexit_global_once
      Src: /src/freeradius-server/src/lib/util/dl.c:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - lib_dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 796
    functionName: dl_search_global_path_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 3
    functionsReached:
    - talloc_strdup
    - fr_strerror_const
    - fr_atexit_global_once
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int dl_search_global_path_set(char const *lib_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:809,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:811,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/util/dl.c:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dl_loader
    - lib_dir
    argTypes:
    - dl_loader_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 818
    functionName: dl_search_path_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - talloc_const_free
    - fr_strerror_const
    - talloc_strdup
    linkageType: ''
    returnType: int
    signature: int dl_search_path_set(dl_loader_t *dl_loader, char const *lib_dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:833,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:836,1
    - Dst: talloc_asprintf::talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dl_loader
    - lib_dir
    argTypes:
    - dl_loader_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 848
    functionName: dl_search_path_prepend
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 1
    functionsReached:
    - talloc_asprintf::talloc_asprintf
    - fr_strerror_const
    - talloc_strdup
    linkageType: ''
    returnType: int
    signature: int dl_search_path_prepend(dl_loader_t *dl_loader, char const *lib_dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:863,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:866,1
    - Dst: talloc_asprintf_append_buffer::talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/util/dl.c:872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dl_loader
    - lib_dir
    argTypes:
    - dl_loader_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 878
    functionName: dl_search_path_append
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - talloc_strdup
    - talloc_asprintf_append_buffer::talloc_asprintf_append_buffer
    linkageType: ''
    returnType: int
    signature: int dl_search_path_append(dl_loader_t *dl_loader, char const *lib_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dl_loader
    argTypes:
    - dl_loader_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 886
    functionName: dl_loader_uctx
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *dl_loader_uctx(dl_loader_t *dl_loader)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dl.c:904,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:906,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/util/dl.c:910,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:912,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dl.c:914,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/util/dl.c:918,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dl.c:920,1
    - Dst: fr_path_default_lib_dir
      Src: /src/freeradius-server/src/lib/util/dl.c:920,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dl.c:922,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/dl.c:926,1
    - Dst: fr_get_lsan_state
      Src: /src/freeradius-server/src/lib/util/dl.c:933,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/dl.c:949,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/dl.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - uctx
    - uctx_free
    - defer_symbol_init
    argTypes:
    - TALLOC_CTX*
    - void*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 953
    functionName: dl_loader_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 4
    functionsReached:
    - talloc_link_ctx
    - TALLOC_FREE
    - talloc_set_destructor
    - fr_rb_inline_talloc_alloc
    - fr_path_default_lib_dir
    - talloc_strdup
    - fr_dlist_init
    - talloc_zero
    - fr_get_lsan_state
    - fr_strerror_const
    linkageType: ''
    returnType: dl_loader_t
    signature: dl_loader_t *dl_loader_init(TALLOC_CTX *ctx, void *uctx, bool uctx_free,
      bool defer_symbol_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dl_loader
    - do_static
    argTypes:
    - dl_loader_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 972
    functionName: dl_loader_set_static
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dl_loader_set_static(dl_loader_t *dl_loader, bool do_static)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:979,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:980,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:981,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:982,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:983,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:984,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/dl.c:986,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:987,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:988,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:989,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:990,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/dl.c:993,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:994,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:995,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:996,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dl.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - fp
    - dl
    argTypes:
    - FILE*
    - dl_loader_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 999
    functionName: dl_loader_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dl.c
    functionUses: 0
    functionsReached:
    - fr_dlist_foreach
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dl_loader_debug(FILE *fp, dl_loader_t *dl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:56,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:58,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pid
    - sem_id
    argTypes:
    - pid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: fr_sem_pid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 2
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_pid(pid_t *pid, int sem_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:80,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:84,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - uid
    - sem_id
    argTypes:
    - uid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: fr_sem_uid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_uid(uid_t *uid, int sem_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:106,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:110,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - gid
    - sem_id
    argTypes:
    - uid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: fr_sem_gid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_gid(uid_t *gid, int sem_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:132,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:136,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - uid
    - sem_id
    argTypes:
    - uid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: fr_sem_cuid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_cuid(uid_t *uid, int sem_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:158,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:162,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - gid
    - sem_id
    argTypes:
    - uid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: fr_sem_cgid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 0
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_cgid(uid_t *gid, int sem_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:186,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:188,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:189,1
    - Dst: semop
      Src: /src/freeradius-server/src/lib/util/sem.c:201,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:202,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - sem_id
    - file
    - undo_on_exit
    argTypes:
    - int
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: fr_sem_post
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 1
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semop
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_post(int sem_id, char const *file, bool undo_on_exit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semop
      Src: /src/freeradius-server/src/lib/util/sem.c:228,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:229,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sem_id
    - file
    - undo_on_exit
    argTypes:
    - int
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: fr_sem_take
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - semop
    - fr_syserror
    linkageType: ''
    returnType: int
    signature: int fr_sem_take(int sem_id, char const *file, bool undo_on_exit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semop
      Src: /src/freeradius-server/src/lib/util/sem.c:273,1
    - Dst: fr_sem_pid
      Src: /src/freeradius-server/src/lib/util/sem.c:285,1
    - Dst: fr_sem_uid
      Src: /src/freeradius-server/src/lib/util/sem.c:286,1
    - Dst: fr_sem_gid
      Src: /src/freeradius-server/src/lib/util/sem.c:287,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:289,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:290,1
    - Dst: kill
      Src: /src/freeradius-server/src/lib/util/sem.c:294,1
    - Dst: fr_perm_uid_to_str
      Src: /src/freeradius-server/src/lib/util/sem.c:297,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sem.c:298,1
    - Dst: fr_perm_gid_to_str
      Src: /src/freeradius-server/src/lib/util/sem.c:300,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sem.c:301,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:302,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:306,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:307,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:310,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:311,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - sem_id
    - file
    - undo_on_exit
    - nonblock
    argTypes:
    - int
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 318
    functionName: fr_sem_wait
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 2
    functionsReached:
    - fr_perm_uid_to_str
    - unlikely
    - fr_sem_gid
    - semop
    - fr_perm_gid_to_str
    - fr_sem_uid
    - talloc_free
    - fr_strerror_printf
    - fr_syserror
    - fr_sem_pid
    - kill
    linkageType: ''
    returnType: int
    signature: int fr_sem_wait(int sem_id, char const *file, bool undo_on_exit, bool
      nonblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:330,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:331,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sem_id
    - file
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 337
    functionName: fr_sem_close
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 2
    functionsReached:
    - fr_syserror
    - fr_strerror_printf
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_close(int sem_id, char const *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_uid_to_str
      Src: /src/freeradius-server/src/lib/util/sem.c:346,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sem.c:347,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:349,1
    - Dst: fr_perm_uid_to_str
      Src: /src/freeradius-server/src/lib/util/sem.c:354,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sem.c:355,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:356,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:360,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:363,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - file
    - proj_id
    - thing
    - expected
    - got
    argTypes:
    - char*
    - int
    - char*
    - uid_t
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 367
    functionName: sem_check_uid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 0
    functionsReached:
    - fr_perm_uid_to_str
    - unlikely
    - fr_strerror_printf
    - talloc_free
    linkageType: ''
    returnType: bool
    signature: "bool sem_check_uid(char const *file, int proj_id,\n\t\t\t  char const
      *thing, uid_t expected, uid_t got)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_perm_gid_to_str
      Src: /src/freeradius-server/src/lib/util/sem.c:376,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sem.c:377,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:379,1
    - Dst: fr_perm_gid_to_str
      Src: /src/freeradius-server/src/lib/util/sem.c:384,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/sem.c:385,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:386,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:390,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:393,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/sem.c:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - file
    - proj_id
    - thing
    - expected
    - got
    argTypes:
    - char*
    - int
    - char*
    - gid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 369
    functionDepth: 5
    functionLinenumber: 369
    functionLinenumberEnd: 397
    functionName: sem_check_gid
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - fr_perm_gid_to_str
    - talloc_free
    linkageType: ''
    returnType: bool
    signature: "bool sem_check_gid(char const *file, int proj_id,\n\t\t\t  char const
      *thing, gid_t expected, gid_t got)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ftok
      Src: /src/freeradius-server/src/lib/util/sem.c:428,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:430,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:431,1
    - Dst: semget
      Src: /src/freeradius-server/src/lib/util/sem.c:439,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:444,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:445,1
    - Dst: semget
      Src: /src/freeradius-server/src/lib/util/sem.c:455,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:464,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:465,1
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:481,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:482,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:483,1
    - Dst: fr_sem_close
      Src: /src/freeradius-server/src/lib/util/sem.c:484,1
    - Dst: semctl
      Src: /src/freeradius-server/src/lib/util/sem.c:497,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:499,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/sem.c:500,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/sem.c:505,1
    - Dst: sem_check_uid
      Src: /src/freeradius-server/src/lib/util/sem.c:515,1
    - Dst: sem_check_uid
      Src: /src/freeradius-server/src/lib/util/sem.c:516,1
    - Dst: sem_check_gid
      Src: /src/freeradius-server/src/lib/util/sem.c:517,1
    - Dst: sem_check_gid
      Src: /src/freeradius-server/src/lib/util/sem.c:518,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 6
    argNames:
    - file
    - proj_id
    - uid
    - gid
    - check_perm
    - must_exist
    argTypes:
    - char*
    - int
    - uid_t
    - gid_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 420
    functionDepth: 6
    functionLinenumber: 420
    functionLinenumberEnd: 524
    functionName: fr_sem_get
    functionSourceFile: /src/freeradius-server/src/lib/util/sem.c
    functionUses: 2
    functionsReached:
    - semget
    - fr_strerror_printf
    - fr_syserror
    - fr_sem_close
    - sem_check_gid
    - sem_check_uid
    - ftok
    - semctl
    linkageType: ''
    returnType: int
    signature: int fr_sem_get(char const *file, int proj_id, uid_t uid, gid_t gid,
      bool check_perm, bool must_exist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _tree
    - ','
    - _node_ctx
    - ','
    - _type
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: fr_rb_talloc_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_talloc_init(_tree, _node_ctx, _type, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _tree
    - ','
    - _node_ctx
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: fr_rb_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_init(_tree, _node_ctx, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _tree
    - ','
    - _type
    - ','
    - _field
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: fr_rb_inline_talloc_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_inline_talloc_init(_tree, _type, _field, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _tree
    - ','
    - _type
    - ','
    - _field
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: fr_rb_inline_init
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_inline_init(_tree, _type, _field, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: fr_rb_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_talloc_alloc(_ctx, _type, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ctx
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: fr_rb_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_alloc(_ctx, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _field
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: fr_rb_inline_talloc_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_inline_talloc_alloc(_ctx, _type, _field, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _ctx
    - ','
    - _type
    - ','
    - _field
    - ','
    - _data_cmp
    - ','
    - _data_free
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: fr_rb_inline_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_inline_alloc(_ctx, _type, _field, _data_cmp, _data_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - fr_rb_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: fr_rb_node_inline_in_tree
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_rb_node_inline_in_tree(fr_rb_node_t const *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _tree
    - ','
    - _type
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: fr_rb_inorder_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_inorder_foreach(_tree, _type, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _tree
    - ','
    - _type
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: fr_rb_preorder_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_preorder_foreach(_tree, _type, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _tree
    - ','
    - _type
    - ','
    - _iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: fr_rb_postorder_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/rb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_rb_postorder_foreach(_tree, _type, _iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: EVENT_DEBUG
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: FR_EVENT_SUSPEND
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_EVENT_SUSPEND(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: FR_EVENT_RESUME
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_EVENT_RESUME(_s, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: fr_event_fd_mode
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_fd_mode(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: fr_event_filter_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_filter_insert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: fr_event_filter_update
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_filter_update(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: fr_event_fd_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_fd_insert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: fr_event_pid_wait
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_pid_wait(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: fr_event_pid_reap
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_pid_reap(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _ctx
    - ','
    - _el
    - ','
    - _ev_p
    - ','
    - _trigger
    - ','
    - _callback
    - ','
    - _uctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: fr_event_user_insert
    functionSourceFile: /src/freeradius-server/src/lib/util/event.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_event_user_insert(_ctx, _el, _ev_p, _trigger, _callback, _uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: FR_DBUFF_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_RETURN(_func, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _slen
    - ','
    - _offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: FR_DBUFF_ERROR_OFFSET
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_ERROR_OFFSET(_slen, _offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _start
    - ','
    - _adv_parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 221
    functionName: _FR_DBUFF
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_DBUFF(_dbuff_or_marker, _start, _adv_parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: FR_DBUFF
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: FR_DBUFF_ABS
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_ABS(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: FR_DBUFF_BIND_CURRENT
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_BIND_CURRENT(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: FR_DBUFF_BIND_CURRENT_ABS
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_BIND_CURRENT_ABS(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: FR_DBUFF_BIND_END_ABS
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_BIND_END_ABS(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _max
    - ','
    - _adv_parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: _FR_DBUFF_MAX
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_DBUFF_MAX(_dbuff_or_marker, _max, _adv_parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: FR_DBUFF_MAX
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_MAX(_dbuff_or_marker,  _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: FR_DBUFF_MAX_BIND_CURRENT
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_MAX_BIND_CURRENT(_dbuff_or_marker,  _max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - start
    - end
    - is_const
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - uint8_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 353
    functionName: _fr_dbuff_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: __COVERITY__
    signature: __COVERITY__ _fr_dbuff_init(fr_dbuff_t *out, uint8_t const *start,
      uint8_t const *end, bool is_const)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 381
    functionName: fr_dbuff_init
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_init(_out, _start, _len_or_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: FR_DBUFF_INIT
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_INIT(_out, _start, _len_or_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/dbuff.h:439,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dbuff.h:441,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dbuff.h:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - dbuff
    - tctx
    - init
    - max
    argTypes:
    - TALLOC_CTX*
    - fr_dbuff_t*
    - fr_dbuff_uctx_talloc_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 456
    functionName: fr_dbuff_init_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 9
    functionsReached:
    - memset
    - fr_strerror_printf
    - talloc_zero_array
    linkageType: ''
    returnType: fr_dbuff_t
    signature: "fr_dbuff_t *fr_dbuff_init_talloc(TALLOC_CTX *ctx,\n\t\t\t\t\t       fr_dbuff_t
      *dbuff, fr_dbuff_uctx_talloc_t *tctx,\n\t\t\t\t\t       size_t init, size_t
      max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dbuff.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbuff
    argTypes:
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: fr_dbuff_free_talloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 6
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: void
    signature: void fr_dbuff_free_talloc(fr_dbuff_t *dbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - dbuff
    - fctx
    - buff
    - len
    - fd
    - max
    argTypes:
    - fr_dbuff_t*
    - fr_dbuff_uctx_fd_t*
    - uint8_t*
    - size_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 512
    functionName: fr_dbuff_init_fd
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_dbuff_t
    signature: "fr_dbuff_t *fr_dbuff_init_fd(fr_dbuff_t *dbuff, fr_dbuff_uctx_fd_t
      *fctx,\n\t\t\t\t\t     uint8_t *buff, size_t len, int fd, size_t max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _start
    - ','
    - _len_or_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 544
    functionName: FR_DBUFF_TMP
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_TMP(_start, _len_or_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dbuff.h:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbtl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: _dbuff_thread_local_free
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _dbuff_thread_local_free(void *dbtl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _init
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 577
    functionName: FR_DBUFF_TALLOC_THREAD_LOCAL
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_TALLOC_THREAD_LOCAL(_out, _init, _max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 619
    functionName: fr_dbuff_is_extendable
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_is_extendable(_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 623
    functionName: fr_dbuff_was_extended
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_was_extended(_status)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_is_extendable
      Src: /src/freeradius-server/src/lib/util/dbuff.h:632,1
    - Dst: fr_dbuff_t*::extend
      Src: /src/freeradius-server/src/lib/util/dbuff.h:643,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - status
    - in
    - remaining
    - lowat
    argTypes:
    - fr_dbuff_extend_status_t*
    - fr_dbuff_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 648
    functionName: _fr_dbuff_extend_lowat
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - fr_dbuff_is_extendable
    - fr_dbuff_t*::extend
    linkageType: ''
    returnType: size_t
    signature: "size_t _fr_dbuff_extend_lowat(fr_dbuff_extend_status_t *status, fr_dbuff_t
      *in,\n\t\t\t\t\t    size_t remaining, size_t lowat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _status
    - ','
    - _dbuff_or_marker
    - ','
    - _lowat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: fr_dbuff_extend_lowat
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_extend_lowat(_status, _dbuff_or_marker, _lowat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _lowat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 686
    functionName: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_EXTEND_LOWAT_OR_RETURN(_dbuff_or_marker, _lowat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _pos_p
    - ','
    - _dbuff_or_marker
    - ','
    - _lowat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 704
    functionName: _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN(_pos_p, _dbuff_or_marker, _lowat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 714
    functionName: fr_dbuff_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_extend(_dbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 754
    functionName: fr_dbuff_remaining
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_remaining(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 771
    functionName: FR_DBUFF_REMAINING_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_REMAINING_RETURN(_dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: fr_dbuff_used
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_used(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 786
    functionName: fr_dbuff_len
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_len(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: fr_dbuff_behind
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_behind(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 807
    functionName: fr_dbuff_ahead
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_ahead(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 871
    functionName: fr_dbuff_ptr
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_ptr(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 884
    functionName: fr_dbuff_ptr_const
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_ptr_const(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 897
    functionName: fr_dbuff_buff
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_buff(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 913
    functionName: fr_dbuff_start
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_start(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 926
    functionName: fr_dbuff_current
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_current(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 939
    functionName: _fr_dbuff_current_ptr
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _fr_dbuff_current_ptr(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 953
    functionName: fr_dbuff_end
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_end(_dbuff_or_marker)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/dbuff.h:969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - dbuff
    - adv_parent_flags
    - p
    argTypes:
    - fr_dbuff_t*
    - uint8_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 970
    functionName: _fr_dbuff_set_recurse
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached:
    - _fr_dbuff_set_recurse
    linkageType: ''
    returnType: void
    signature: void _fr_dbuff_set_recurse(fr_dbuff_t *dbuff, uint8_t adv_parent_flags,
      uint8_t const *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.h:988,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.h:989,1
    - Dst: _fr_dbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/dbuff.h:992,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dbuff.h:993,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pos_p
    - dbuff
    - p
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 996
    functionName: _fr_dbuff_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    - UNCONST
    - _fr_dbuff_set_recurse
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_set(uint8_t **pos_p, fr_dbuff_t *dbuff, uint8_t const
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1025
    functionName: fr_dbuff_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_set(_dst, _src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: FR_DBUFF_SET_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_SET_RETURN(_dst, _src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1043,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1044,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dbuff
    - p
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1049
    functionName: _fr_dbuff_set_end
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    - UNCONST
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_set_end(fr_dbuff_t *dbuff, uint8_t const *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dst
    - ','
    - _end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1069
    functionName: fr_dbuff_set_end
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_set_end(_dst, _end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1092
    functionName: fr_dbuff_advance
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_advance(_dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1098
    functionName: FR_DBUFF_ADVANCE_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_ADVANCE_RETURN(_dbuff_or_marker, _len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_t*::extend
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1125,1
    - Dst: _fr_dbuff_set_recurse
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pos_p
    - dbuff
    - len
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1136
    functionName: _fr_dbuff_advance_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_set_recurse
    - fr_dbuff_t*::extend
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_advance_extend(uint8_t **pos_p, fr_dbuff_t *dbuff,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1158
    functionName: fr_dbuff_advance_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_advance_extend(_dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1160
    functionName: FR_DBUFF_BIND_EXTEND_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_BIND_EXTEND_RETURN(_dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1166
    functionName: fr_dbuff_set_to_start
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_set_to_start(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1172
    functionName: fr_dbuff_set_to_end
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_set_to_end(_dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - m
    - dbuff
    argTypes:
    - fr_dbuff_marker_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1211
    functionName: fr_dbuff_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_dbuff_marker(fr_dbuff_marker_t *m, fr_dbuff_t *dbuff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_dbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1226
    functionName: fr_dbuff_marker_release
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_dbuff_marker_release(fr_dbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_behind
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1242,1
    - Dst: fr_dbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_dbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: fr_dbuff_marker_release_behind
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - fr_dbuff_behind
    - fr_dbuff_marker_release
    linkageType: ''
    returnType: size_t
    signature: size_t fr_dbuff_marker_release_behind(fr_dbuff_marker_t *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_ahead
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1261,1
    - Dst: fr_dbuff_marker_release
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - fr_dbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1264
    functionName: fr_dbuff_marker_release_ahead
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - fr_dbuff_ahead
    - fr_dbuff_marker_release
    linkageType: ''
    returnType: size_t
    signature: size_t fr_dbuff_marker_release_ahead(fr_dbuff_marker_t *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1289,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1295,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - o_start
    - o_end
    - i_start
    - i_end
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1301
    functionName: _fr_dbuff_safecpy
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - memmove
    linkageType: ''
    returnType: size_t
    signature: "size_t _fr_dbuff_safecpy(uint8_t *o_start, uint8_t *o_end,\n\t\t\t\t\t\t\t
      \     uint8_t const *i_start, uint8_t const *i_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1310,1
    - Dst: _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1312,1
    - Dst: _fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1314,1
    - Dst: _fr_dbuff_safecpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pos_p
    - out
    - in
    - inlen
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1315
    functionName: _fr_dbuff_in_memcpy
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
    - _fr_dbuff_safecpy
    - fr_assert
    - _fr_dbuff_set
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t _fr_dbuff_in_memcpy(uint8_t **pos_p, fr_dbuff_t *out,\n\t\t\t\t\t
      \ uint8_t const *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1328,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1329,1
    - Dst: _fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1332,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1332,1
    - Dst: _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1335,1
    - Dst: _fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - pos_p
    - out
    - in_p
    - in
    - inlen
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1321
    functionDepth: 4
    functionLinenumber: 1321
    functionLinenumberEnd: 1338
    functionName: _fr_dbuff_in_memcpy_dbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - memcpy
    - _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
    - fr_dbuff_end
    - _fr_dbuff_in_memcpy
    - _fr_dbuff_extend_lowat
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t _fr_dbuff_in_memcpy_dbuff(uint8_t **pos_p, fr_dbuff_t *out,\n\t\t\t\t\t
      \       uint8_t * const *in_p, fr_dbuff_t const *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _in
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1387
    functionName: fr_dbuff_in_memcpy
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_in_memcpy(_dbuff_or_marker, _in, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _in
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1392
    functionName: FR_DBUFF_IN_MEMCPY_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_IN_MEMCPY_RETURN(_dbuff_or_marker, _in, _inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1402,1
    - Dst: _fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1404,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1404,1
    - Dst: _fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1407,1
    - Dst: _fr_dbuff_safecpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pos_p
    - out
    - in
    - inlen
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1397
    functionDepth: 3
    functionLinenumber: 1397
    functionLinenumberEnd: 1408
    functionName: _fr_dbuff_in_memcpy_partial
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_safecpy
    - fr_dbuff_end
    - fr_assert
    - _fr_dbuff_set
    - _fr_dbuff_extend_lowat
    linkageType: ''
    returnType: size_t
    signature: "size_t _fr_dbuff_in_memcpy_partial(uint8_t **pos_p, fr_dbuff_t *out,\n\t\t\t\t\t\t
      uint8_t const *in, size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1417,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1418,1
    - Dst: _fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1421,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1421,1
    - Dst: _fr_dbuff_in_memcpy_partial
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pos_p
    - out
    - in_p
    - in
    - inlen
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1414
    functionDepth: 4
    functionLinenumber: 1414
    functionLinenumberEnd: 1425
    functionName: _fr_dbuff_in_memcpy_partial_dbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_in_memcpy_partial
    - UNCONST
    - fr_dbuff_end
    - _fr_dbuff_extend_lowat
    linkageType: ''
    returnType: size_t
    signature: "size_t _fr_dbuff_in_memcpy_partial_dbuff(uint8_t **pos_p, fr_dbuff_t
      *out,\n\t\t\t\t\t\t       uint8_t * const *in_p, fr_dbuff_t const *in, size_t
      inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1456
    functionName: fr_dbuff_in_memcpy_partial
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_in_memcpy_partial(_out, _in, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1466
    functionName: fr_dbuff_in_bytes_partial
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_in_bytes_partial(_dbuff, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1476
    functionName: fr_dbuff_in_bytes
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_in_bytes(_dbuff_or_marker, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1483
    functionName: FR_DBUFF_IN_BYTES_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_IN_BYTES_RETURN(_dbuff_or_marker, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1490,1
    - Dst: _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1492,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1494,1
    - Dst: _fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - pos_p
    - dbuff
    - c
    - inlen
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1488
    functionDepth: 3
    functionLinenumber: 1488
    functionLinenumberEnd: 1497
    functionName: _fr_dbuff_memset
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _FR_DBUFF_EXTEND_LOWAT_POS_OR_RETURN
    - fr_assert
    - memset
    - _fr_dbuff_set
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_memset(uint8_t **pos_p, fr_dbuff_t *dbuff, uint8_t
      c, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _c
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1512
    functionName: fr_dbuff_memset
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_memset(_dbuff_or_marker, _c, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _c
    - ','
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1518
    functionName: FR_DBUFF_MEMSET_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_MEMSET_RETURN(_dbuff_or_marker, _c, _inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1531
    functionName: FR_DBUFF_PARSE_INT_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_PARSE_INT_DEF(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dbuff_in_uint32
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pos_p
    - out
    - num
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1554
    functionName: _fr_dbuff_in_float
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_in_uint32
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_in_float(uint8_t **pos_p, fr_dbuff_t *out, float
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dbuff_in_uint64
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pos_p
    - out
    - num
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1565
    functionName: _fr_dbuff_in_double
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_in_uint64
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_in_double(uint8_t **pos_p, fr_dbuff_t *out, double
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1589
    functionName: fr_dbuff_in
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_in(_dbuff_or_marker, _in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1595
    functionName: FR_DBUFF_IN_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_IN_RETURN(_dbuff_or_marker, _in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1604,1
    - Dst: fr_high_bit_pos
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1604,1
    - Dst: fr_nbo_from_uint64
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1608,1
    - Dst: _fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pos_p
    - dbuff
    - num
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1599
    functionDepth: 4
    functionLinenumber: 1599
    functionLinenumberEnd: 1611
    functionName: _fr_dbuff_in_uint64v
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - fr_high_bit_pos
    - fr_nbo_from_uint64
    - ROUND_UP_DIV
    - _fr_dbuff_in_memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_in_uint64v(uint8_t **pos_p, fr_dbuff_t *dbuff, uint64_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1623
    functionName: fr_dbuff_in_uint64v
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_in_uint64v(_dbuff_or_marker, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dbuff_or_marker
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1629
    functionName: FR_DBUFF_IN_UINT64V
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_IN_UINT64V(_dbuff_or_marker, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1686
    functionName: fr_dbuff_move
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_move(_out, _in, _len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1702,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1702,1
    - Dst: _fr_dbuff_set
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1705,1
    - Dst: _fr_dbuff_safecpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - out
    - pos_p
    - in
    - outlen
    argTypes:
    - uint8_t*
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1696
    functionDepth: 3
    functionLinenumber: 1696
    functionLinenumberEnd: 1710
    functionName: _fr_dbuff_out_memcpy
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_set
    - _fr_dbuff_safecpy
    - fr_dbuff_end
    - _fr_dbuff_extend_lowat
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_out_memcpy(uint8_t *out, uint8_t **pos_p, fr_dbuff_t
      *in, size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1717,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1717,1
    - Dst: _fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out_p
    - out
    - pos_p
    - in
    - outlen
    argTypes:
    - uint8_t**
    - fr_dbuff_t*
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1715
    functionDepth: 4
    functionLinenumber: 1715
    functionLinenumberEnd: 1720
    functionName: _fr_dbuff_out_memcpy_dbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - _fr_dbuff_out_memcpy
    - fr_dbuff_end
    - _fr_dbuff_extend_lowat
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_out_memcpy_dbuff(uint8_t **out_p, fr_dbuff_t *out,
      uint8_t **pos_p, fr_dbuff_t *in, size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _dbuff_or_marker
    - ','
    - _outlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1756
    functionName: fr_dbuff_out_memcpy
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_out_memcpy(_out, _dbuff_or_marker, _outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _dbuff_or_marker
    - ','
    - _outlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1762
    functionName: FR_DBUFF_OUT_MEMCPY_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_MEMCPY_RETURN(_out, _dbuff_or_marker, _outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1767
    functionDepth: 0
    functionLinenumber: 1767
    functionLinenumberEnd: 1775
    functionName: FR_DBUFF_OUT_DEF
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_DEF(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1791
    functionName: FR_DBUFF_OUT_DEF_NO_SWAP
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_DEF_NO_SWAP(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out
    - ','
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1821
    functionName: fr_dbuff_out
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_out(_out, _dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out
    - ','
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1827
    functionDepth: 0
    functionLinenumber: 1827
    functionLinenumberEnd: 1828
    functionName: FR_DBUFF_OUT_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_RETURN(_out, _dbuff_or_marker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _out
    - ','
    - _dbuff_or_marker
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1830
    functionName: FR_DBUFF_OUT_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_RETURN(_out, _dbuff_or_marker)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1839,1
    - Dst: _fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1842,1
    - Dst: fr_nbo_to_uint64
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - num
    - pos_p
    - dbuff
    - length
    argTypes:
    - uint64_t*
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1835
    functionDepth: 4
    functionLinenumber: 1835
    functionLinenumberEnd: 1847
    functionName: _fr_dbuff_out_uint64v
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - fr_assert
    - _fr_dbuff_out_memcpy
    - fr_nbo_to_uint64
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_out_uint64v(uint64_t *num, uint8_t **pos_p, fr_dbuff_t
      *dbuff, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _num
    - ','
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1862
    functionName: fr_dbuff_out_uint64v
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_out_uint64v(_num, _dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _num
    - ','
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1868
    functionName: FR_DBUFF_OUT_UINT64V_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_UINT64V_RETURN(_num, _dbuff_or_marker, _len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1877,1
    - Dst: _fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1880,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1883,1
    - Dst: fr_nbo_to_int64
      Src: /src/freeradius-server/src/lib/util/dbuff.h:1884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - num
    - pos_p
    - dbuff
    - length
    argTypes:
    - int64_t*
    - uint8_t**
    - fr_dbuff_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1872
    functionDepth: 4
    functionLinenumber: 1872
    functionLinenumberEnd: 1887
    functionName: _fr_dbuff_out_int64v
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached:
    - memset
    - fr_assert
    - fr_nbo_to_int64
    - _fr_dbuff_out_memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t _fr_dbuff_out_int64v(int64_t *num, uint8_t **pos_p, fr_dbuff_t
      *dbuff, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _num
    - ','
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1900
    functionDepth: 0
    functionLinenumber: 1900
    functionLinenumberEnd: 1902
    functionName: fr_dbuff_out_int64v
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dbuff_out_int64v(_num, _dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _num
    - ','
    - _dbuff_or_marker
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1907
    functionDepth: 0
    functionLinenumber: 1907
    functionLinenumberEnd: 1908
    functionName: FR_DBUFF_OUT_INT64V_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/dbuff.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DBUFF_OUT_INT64V_RETURN(_num, _dbuff_or_marker, _len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: CURRENT_FRAME
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_FRAME(_dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CURRENT_DA
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_DA(_dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: CURRENT_FILENAME
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_FILENAME(_dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: CURRENT_LINE
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_LINE(_dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _dctx
    - ','
    - _nest
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: ASSERT_CURRENT_NEST
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_CURRENT_NEST(_dctx, _nest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:123,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:125,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - dict_tokenize_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: dict_dctx_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - FR_FAULT_LOG
    - fr_type_to_str
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: void dict_dctx_debug(dict_tokenize_ctx_t *dctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dctx
    - nest
    argTypes:
    - dict_tokenize_ctx_t*
    - dict_nest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: dict_dctx_find_frame
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dict_tokenize_frame_t
    signature: dict_tokenize_frame_t *dict_dctx_find_frame(dict_tokenize_ctx_t *dctx,
      dict_nest_t nest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dctx
    - da
    - nest
    argTypes:
    - dict_tokenize_ctx_t*
    - fr_dict_attr_t*
    - dict_nest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: dict_dctx_push
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: void
    signature: void dict_dctx_push(dict_tokenize_ctx_t *dctx, fr_dict_attr_t const
      *da, dict_nest_t nest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - dict_tokenize_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: dict_dctx_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: dict_tokenize_frame_t
    signature: dict_tokenize_frame_t *dict_dctx_pop(dict_tokenize_ctx_t *dctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:197,1
    - Dst: dict_tokenize_frame_t*::finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:200,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:211,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - dctx
    - nest
    argTypes:
    - dict_tokenize_ctx_t*
    - dict_nest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 223
    functionName: dict_dctx_unwind_until
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - dict_tokenize_frame_t*::finalise
    - fr_strerror_printf
    - fr_table_str_by_value
    linkageType: ''
    returnType: dict_tokenize_frame_t
    signature: dict_tokenize_frame_t *dict_dctx_unwind_until(dict_tokenize_ctx_t *dctx,
      dict_nest_t nest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_dctx_unwind_until
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - dict_tokenize_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: dict_dctx_unwind
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_dctx_unwind_until
    linkageType: ''
    returnType: dict_tokenize_frame_t
    signature: dict_tokenize_frame_t *dict_dctx_unwind(dict_tokenize_ctx_t *dctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 3
    argNames:
    - str
    - argv
    - max_argc
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 269
    functionName: fr_dict_str_to_argv
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_dict_str_to_argv(char *str, char **argv, int max_argc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:290,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pvalue
    - str
    argTypes:
    - unsigned int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: dict_read_sscanf_i
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - memchr
    - tolower
    linkageType: ''
    returnType: bool
    signature: bool dict_read_sscanf_i(unsigned int *pvalue, char const *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:326,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:327,1
    - Dst: dict_attr_alloc_root
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:331,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:332,1
    - Dst: DA_VERIFY
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dict
    - name
    - proto_number
    argTypes:
    - fr_dict_t*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 339
    functionName: dict_root_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_attr_alloc_root
    - fr_cond_assert
    - fr_strerror_const
    - DA_VERIFY
    linkageType: ''
    returnType: int
    signature: int dict_root_set(fr_dict_t *dict, char const *name, unsigned int proto_number)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:352,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:353,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:361,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:367,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:369,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:375,1
    - Dst: dict_read_sscanf_i
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:379,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:380,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:388,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:395,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:398,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:401,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:404,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:407,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:408,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:409,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:427,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:441,1
    - Dst: dict_attr_type_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:448,1
    - Dst: fr_type_from_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:458,1
    - Dst: dict_tokenize_ctx_t*::dict::proto::attr::type_parse
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:461,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:474,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:490,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:494,1
    - Dst: dict_attr_type_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:498,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 96
    argCount: 3
    argNames:
    - dctx
    - name_in
    - da_p
    argTypes:
    - dict_tokenize_ctx_t*
    - char*
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 499
    functionName: dict_process_type_field
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_type_from_str
    - CURRENT_FRAME
    - fr_strerror_printf
    - strchr
    - dict_attr_type_init
    - dict_tokenize_ctx_t*::dict::proto::attr::type_parse
    - strcmp
    - fr_strerror_const
    - dict_read_sscanf_i
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int dict_process_type_field(dict_tokenize_ctx_t *dctx, char const *name_in,
      fr_dict_attr_t **da_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: FLAG_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAG_FUNC(_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:527,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:527,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:535,1
    - Dst: dict_attr_ref_aunresolved
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 543
    functionName: dict_flag_clone
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_attr_ref_aunresolved
    - unlikely
    - fr_strerror_printf
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_clone(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:553,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:554,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:561,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:563,1
    - Dst: dict_attr_ref_aunresolved
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 547
    functionDepth: 4
    functionLinenumber: 547
    functionLinenumberEnd: 566
    functionName: dict_flag_enum
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_type_is_leaf
    - dict_attr_ext_alloc
    - dict_attr_ref_aunresolved
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_flag_enum(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:576,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 588
    functionName: dict_flag_flat
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_flag_flat(fr_dict_attr_t **da_p, UNUSED char const *value,
      UNUSED fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:598,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:600,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:605,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:610,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:620,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:620,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:625,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:632,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:634,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:640,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:645,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:646,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:655,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:657,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:661,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:662,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 592
    functionDepth: 6
    functionLinenumber: 592
    functionLinenumberEnd: 668
    functionName: dict_flag_key
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_type_is_leaf
    - fr_dict_attr_by_name
    - fr_strerror_printf
    - fr_dict_attr_ext
    - dict_attr_ext_alloc
    - fr_dict_attr_is_key_field
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_key(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:674,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:679,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 691
    functionName: dict_flag_length
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dict_flag_length(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:699,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:703,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:704,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:708,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 716
    functionName: dict_flag_offset
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - atoi
    - fr_strerror_const
    - da_is_length_field
    linkageType: ''
    returnType: int
    signature: int dict_flag_offset(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:729,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:733,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:735,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 741
    functionName: dict_flag_precision
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - fr_table_value_by_str
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_precision(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:748,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:753,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:754,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:758,1
    - Dst: dict_attr_ref_aunresolved
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 743
    functionDepth: 4
    functionLinenumber: 743
    functionLinenumberEnd: 761
    functionName: dict_flag_ref
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - dict_attr_ref_aunresolved
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_ref(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 775
    functionName: dict_flag_secret
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int dict_flag_secret(fr_dict_attr_t **da_p, UNUSED char const *value,
      UNUSED fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:788,1
    - Dst: fr_type_from_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:792,1
    - Dst: fr_type_is_null
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:793,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:795,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:796,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - da_p
    - value
    - rule
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 837
    functionName: dict_flag_subtype
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_type_from_str
    - fr_strerror_printf
    - fr_type_is_null
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_subtype(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:850,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:851,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:852,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:853,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:854,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:855,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:856,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:857,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:858,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:859,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:860,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:861,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:862,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:863,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:865,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:870,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:895,1
    - Dst: fr_dict_attr_flag_to_parser
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:917,1
    - Dst: fr_dict_attr_flag_to_parser
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:919,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:920,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:925,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:929,1
    - Dst: fr_dict_flag_parser_rule_t*::func
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:929,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 3
    argNames:
    - dctx
    - name
    - da_p
    argTypes:
    - dict_tokenize_ctx_t*
    - char*
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 940
    functionName: dict_process_flag_field
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - L
    - fr_strerror_printf
    - fr_dict_flag_parser_rule_t*::func
    - fr_dict_attr_flag_to_parser
    - fr_strerror_const
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void dict_process_flag_field(dict_tokenize_ctx_t *dctx, char *name,
      fr_dict_attr_t **da_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_fixup_apply
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - dict_tokenize_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 950
    functionName: dict_finalise
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_fixup_apply
    linkageType: ''
    returnType: int
    signature: int dict_finalise(dict_tokenize_ctx_t *dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_FILENAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:955,1
    - Dst: CURRENT_LINE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dctx
    - da
    argTypes:
    - dict_tokenize_ctx_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 957
    functionName: dict_attr_location_set
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_LINE
    - CURRENT_FILENAME
    linkageType: ''
    returnType: void
    signature: void dict_attr_location_set(dict_tokenize_ctx_t *dctx, fr_dict_attr_t
      *da)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:981,1
    - Dst: fr_dict_attr_ref_is_unresolved
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:982,1
    - Dst: fr_dict_attr_ref_type
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:988,1
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:993,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:993,1
    - Dst: dict_attr_ref_set
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:995,1
    - Dst: fr_dict_attr_add_initialised
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:997,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:999,1
    - Dst: dict_fixup_group_enqueue
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1004,1
    - Dst: fr_dict_attr_add_initialised
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1013,1
    - Dst: dict_fixup_clone_enum_enqueue
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1015,1
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1023,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1023,1
    - Dst: dict_fixup_clone
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1025,1
    - Dst: dict_fixup_clone_enqueue
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1029,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1034,1
    - Dst: fr_dict_attr_add_initialised
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1038,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 2
    argNames:
    - fixup
    - da_p
    argTypes:
    - dict_fixup_ctx_t*
    - fr_dict_attr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 968
    functionDepth: 7
    functionLinenumber: 968
    functionLinenumberEnd: 1042
    functionName: dict_attr_add_or_fixup
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - dict_fixup_clone_enqueue
    - dict_fixup_clone
    - dict_fixup_clone_enum_enqueue
    - fr_dict_protocol_reference
    - FR_SBUFF_IN_STR
    - fr_dict_attr_ext
    - fr_dict_attr_add_initialised
    - dict_fixup_group_enqueue
    - fr_dict_attr_ref_is_unresolved
    - fr_dict_attr_ref_type
    - fr_strerror_const
    - dict_attr_ref_set
    linkageType: ''
    returnType: int
    signature: int dict_attr_add_or_fixup(dict_fixup_ctx_t *fixup, fr_dict_attr_t
      **da_p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1062,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1063,1
    - Dst: fr_dict_attr_cmp_fields
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1082,1
    - Dst: fr_dict_attr_cmp_fields
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1090,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1098,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1103,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1051
    functionDepth: 6
    functionLinenumber: 1051
    functionLinenumberEnd: 1106
    functionName: dict_attr_allow_dup
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_child_by_num
    - fr_strerror_printf
    - fr_dict_attr_by_name
    - fr_dict_attr_cmp_fields
    linkageType: ''
    returnType: int
    signature: int dict_attr_allow_dup(fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1111,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1114,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1123,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - dict_tokenize_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1141
    functionName: dict_struct_finalise
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - fr_assert
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int dict_struct_finalise(dict_tokenize_ctx_t *dctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1150,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1152,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - dctx
    - da
    argTypes:
    - dict_tokenize_ctx_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1163
    functionName: dict_set_value_attr
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - dict_dctx_push
    - fr_type_is_leaf
    linkageType: ''
    returnType: int
    signature: int dict_set_value_attr(dict_tokenize_ctx_t *dctx, fr_dict_attr_t *da)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1177,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1178,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1182,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1183,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1183,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1184,1
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1193,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1194,1
    - Dst: dict_attr_location_set
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1200,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1213,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1215,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1215,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1219,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1220,1
    - Dst: fr_dict_protocol_reference
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1229,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1229,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1231,1
    - Dst: dict_attr_type_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1239,1
    - Dst: dict_process_type_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1245,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1247,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1256,1
    - Dst: dict_attr_parent_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1256,1
    - Dst: dict_process_flag_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1265,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 7
    argNames:
    - dctx
    - da_p
    - parent
    - name
    - type_name
    - flag_name
    - base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - fr_dict_attr_t**
    - fr_dict_attr_t*
    - char*
    - char*
    - char*
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1165
    functionDepth: 7
    functionLinenumber: 1165
    functionLinenumberEnd: 1271
    functionName: dict_read_process_common
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_attr_parent_init
    - unlikely
    - dict_process_type_field
    - memcpy
    - talloc_free
    - dict_attr_alloc_null
    - dict_process_flag_field
    - fr_strerror_printf
    - dict_attr_type_init
    - FR_SBUFF_IN
    - fr_strerror_const
    - strstr
    - fr_dict_protocol_reference
    - dict_attr_location_set
    - strlen
    - strcmp
    - strncmp
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_common(dict_tokenize_ctx_t *dctx, fr_dict_attr_t
      **da_p,\n\t\t\t\t    fr_dict_attr_t const *parent, char const *name,\n\t\t\t\t
      \   char const *type_name, char *flag_name,\n\t\t\t\t    fr_dict_attr_flags_t
      const *base_flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1292,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1297,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1297,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1308,1
    - Dst: fr_dict_global_ctx_dir
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1309,1
    - Dst: fr_globdir_iter_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1316,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1319,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1320,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1320,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1333,1
    - Dst: _dict_from_file
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1341,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1343,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1343,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1348,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1349,1
    - Dst: fr_globdir_iter_next
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1354,1
    - Dst: fr_globdir_iter_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1355,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - dir
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1276
    functionDepth: 4
    functionLinenumber: 1276
    functionLinenumberEnd: 1358
    functionName: dict_read_process_include
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_cwd_strip
    - fr_globdir_iter_next
    - fr_globdir_iter_init
    - fr_strerror_printf
    - fr_syserror
    - _dict_from_file
    - fr_dict_global_ctx_dir
    - fr_strerror_clear
    - strncmp
    - fr_globdir_iter_free
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int dict_read_process_include(dict_tokenize_ctx_t *dctx, char **argv,
      int argc, char const *dir)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1366,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1367,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1373,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1374,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1376,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1378,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1387,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1392,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1398,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1405,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1412,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 4
    argNames:
    - format
    - ptype
    - plength
    - pcontinuation
    argTypes:
    - char*
    - int*
    - int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1421
    functionName: dict_read_parse_format
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - isdigit
    - fr_strerror_printf
    - strlen
    - fr_strerror_const
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int dict_read_parse_format(char const *format, int *ptype, int *plength,
      bool *pcontinuation)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1434,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1437,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1444,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1445,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1449,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1450,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1468,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1468,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1476,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1481,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1486,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1493,1
    - Dst: dict_fixup_alias_enqueue
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1501,1
    - Dst: CURRENT_FILENAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1501,1
    - Dst: CURRENT_LINE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1501,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1502,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1503,1
    - Dst: dict_attr_alias_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1506,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1506,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1431
    functionDepth: 7
    functionLinenumber: 1431
    functionLinenumberEnd: 1507
    functionName: dict_read_process_alias
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - dict_fixup_alias_enqueue
    - dict_attr_alias_add
    - fr_strerror_printf
    - strchr
    - fr_dict_attr_by_oid
    - strncmp
    - CURRENT_LINE
    - fr_strerror_const
    - fr_dict_attr_unconst
    - CURRENT_FILENAME
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_read_process_alias(dict_tokenize_ctx_t *dctx, char **argv,
      int argc, UNUSED fr_dict_attr_flags_t *base_flags)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1524,1
    - Dst: dict_dctx_unwind
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1540,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1549,1
    - Dst: dict_read_sscanf_i
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1550,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1551,1
    - Dst: fr_dict_attr_by_oid_legacy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1556,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1566,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1570,1
    - Dst: fr_dict_attr_by_oid_legacy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1576,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1582,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1588,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1602,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1603,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1609,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1610,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1610,1
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1613,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1614,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1626,1
    - Dst: dict_attr_num_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1626,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1628,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1636,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1639,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1640,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1641,1
    - Dst: dict_read_process_common
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1646,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1651,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1652,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1660,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1673,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1685,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1685,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1686,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1694,1
    - Dst: dict_attr_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1694,1
    - Dst: dict_attr_allow_dup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1702,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1707,1
    - Dst: dict_attr_add_or_fixup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1717,1
    - Dst: dict_fixup_vsa_enqueue
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1730,1
    - Dst: dict_attr_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1739,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1739,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1748,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1750,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1770,1
    - Dst: dict_attr_alias_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1772,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 143
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1512
    functionDepth: 8
    functionLinenumber: 1512
    functionLinenumberEnd: 1778
    functionName: dict_read_process_attribute
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_dctx_unwind
    - dict_attr_add_or_fixup
    - dict_attr_alias_add
    - fr_value_box_cast_in_place
    - fr_strerror_printf
    - fr_cond_assert
    - fr_dict_attr_is_key_field
    - fr_type_to_str
    - dict_read_sscanf_i
    - fr_dict_attr_unconst
    - dict_fixup_vsa_enqueue
    - unlikely
    - dict_read_process_common
    - fr_dict_attr_ext
    - dict_attr_allow_dup
    - fr_strerror_const
    - dict_attr_finalise
    - dict_attr_alloc_null
    - strcasecmp
    - dict_attr_enum_add_name
    - fr_assert
    - fr_dict_attr_by_oid_legacy
    - da_is_bit_field
    - fr_strerror_printf_push
    - CURRENT_FRAME
    - fr_value_box_init
    - dict_dctx_push
    - talloc_free
    - dict_attr_num_init
    - strchr
    - strstr
    - fprintf
    linkageType: ''
    returnType: int
    signature: int dict_read_process_attribute(dict_tokenize_ctx_t *dctx, char **argv,
      int argc, fr_dict_attr_flags_t *base_flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1790,1
    - Dst: dict_dctx_find_frame
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1794,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1795,1
    - Dst: CURRENT_FILENAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1796,1
    - Dst: CURRENT_LINE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1796,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1797,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1797,1
    - Dst: CURRENT_FILENAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1798,1
    - Dst: CURRENT_LINE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1798,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1807,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1809,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1818,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1819,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1821,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1825,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1827,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1828,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1780
    functionDepth: 7
    functionLinenumber: 1780
    functionLinenumberEnd: 1833
    functionName: dict_read_process_begin
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - dict_dctx_push
    - dict_dctx_find_frame
    - fr_type_is_structural
    - fr_cond_assert_msg
    - fr_strerror_printf
    - fr_dict_attr_common_parent
    - fr_dict_attr_by_oid
    - CURRENT_LINE
    - fr_strerror_const
    - fr_type_is_tlv
    - CURRENT_FILENAME
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_read_process_begin(dict_tokenize_ctx_t *dctx, char **argv,
      int argc, UNUSED fr_dict_attr_flags_t *base_flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1845,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1855,1
    - Dst: dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1859,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1861,1
    - Dst: dict_dctx_find_frame
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1865,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1867,1
    - Dst: dict_fixup_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1875,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1885,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1886
    functionName: dict_read_process_begin_protocol
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_dctx_push
    - dict_dctx_find_frame
    - fr_strerror_printf
    - dict_by_protocol_name
    - dict_fixup_init
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_begin_protocol(dict_tokenize_ctx_t *dctx, char
      **argv, int argc,\n\t\t\t\t    \t    UNUSED fr_dict_attr_flags_t *base_flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1903,1
    - Dst: fr_dict_vendor_by_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1907,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1909,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1921,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1922,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1927,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1927,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1929,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1934,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1936,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1946,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1946,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1948,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1957,1
    - Dst: dict_dctx_find_frame
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1962,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1964,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1975,1
    - Dst: dict_attr_alloc::dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1979,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1982,1
    - Dst: fr_assert::fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:1993,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1888
    functionDepth: 7
    functionLinenumber: 1888
    functionLinenumberEnd: 1996
    functionName: dict_read_process_begin_vendor
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - unlikely
    - dict_attr_alloc::dict_attr_alloc
    - dict_dctx_find_frame
    - fr_strerror_printf
    - fr_dict_attr_by_oid
    - strncmp
    - fr_dict_vendor_by_name
    - fr_assert::fr_assert
    - dict_attr_child_by_num
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_begin_vendor(dict_tokenize_ctx_t *dctx, char
      **argv, int argc,\n\t\t\t\t    \t  UNUSED fr_dict_attr_flags_t *base_flags)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2014,1
    - Dst: dict_dctx_unwind
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2018,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2019,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2027,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2033,1
    - Dst: dict_read_process_common
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2043,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2054,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2056,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2063,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2064,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2081,1
    - Dst: dict_attr_num_init_name_only
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2081,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2086,1
    - Dst: dict_attr_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2086,1
    - Dst: dict_attr_allow_dup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2092,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2097,1
    - Dst: dict_attr_add_or_fixup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2107,1
    - Dst: dict_set_value_attr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2113,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2006
    functionDepth: 8
    functionLinenumber: 2006
    functionLinenumberEnd: 2128
    functionName: dict_read_process_define
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - dict_set_value_attr
    - dict_dctx_unwind
    - dict_attr_finalise
    - dict_attr_add_or_fixup
    - dict_attr_num_init_name_only
    - talloc_free
    - fr_strerror_printf
    - fr_cond_assert
    - dict_read_process_common
    - da_is_bit_field
    - dict_attr_allow_dup
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_define(dict_tokenize_ctx_t *dctx, char **argv,
      int argc,\n\t\t\t\t    fr_dict_attr_flags_t *base_flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2147,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2154,1
    - Dst: dict_read_process_end_protocol
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2154,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2156,1
    - Dst: dict_read_process_end_vendor
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2156,1
    - Dst: dict_dctx_unwind_until
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2161,1
    - Dst: dict_dctx_pop
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2168,1
    - Dst: dict_dctx_find_frame
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2180,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2181,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2183,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2185,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2136
    functionDepth: 7
    functionLinenumber: 2136
    functionLinenumberEnd: 2195
    functionName: dict_read_process_end
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_dctx_pop
    - dict_dctx_find_frame
    - fr_cond_assert
    - fr_strerror_printf
    - fr_strerror_const
    - fr_dict_attr_by_oid
    - dict_read_process_end_vendor
    - dict_dctx_unwind_until
    - strcmp
    - fr_strerror_const_push
    - dict_read_process_end_protocol
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_end(dict_tokenize_ctx_t *dctx, char **argv,
      int argc,\n\t\t\t\t fr_dict_attr_flags_t *base_flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2206,1
    - Dst: dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2210,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2212,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2217,1
    - Dst: dict_dctx_unwind_until
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2225,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2229,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2230,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2231,1
    - Dst: dict_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2241,1
    - Dst: ASSERT_CURRENT_NEST
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2245,1
    - Dst: ASSERT_CURRENT_NEST
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2197
    functionDepth: 3
    functionLinenumber: 2197
    functionLinenumberEnd: 2252
    functionName: dict_read_process_end_protocol
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - dict_finalise
    - CURRENT_FRAME
    - ASSERT_CURRENT_NEST
    - fr_strerror_printf
    - dict_by_protocol_name
    - dict_dctx_unwind_until
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_end_protocol(dict_tokenize_ctx_t *dctx, char
      **argv, int argc,\n\t\t\t\t\t  UNUSED fr_dict_attr_flags_t *base_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2263,1
    - Dst: fr_dict_vendor_by_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2267,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2269,1
    - Dst: dict_dctx_unwind_until
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2276,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2280,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2281,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2282,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2254
    functionDepth: 2
    functionLinenumber: 2254
    functionLinenumberEnd: 2290
    functionName: dict_read_process_end_vendor
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - CURRENT_FRAME
    - fr_strerror_printf
    - dict_dctx_unwind_until
    - fr_dict_vendor_by_name
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_end_vendor(dict_tokenize_ctx_t *dctx, char **argv,
      int argc,\n\t\t\t\t\tUNUSED fr_dict_attr_flags_t *base_flags)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2302,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2309,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2310,1
    - Dst: dict_attr_alloc_null
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2322,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2323,1
    - Dst: dict_attr_location_set
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2324,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2330,1
    - Dst: dict_process_type_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2341,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2343,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2347,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2348,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2357,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2358,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2362,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2364,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2374,1
    - Dst: dict_attr_parent_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2374,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2375,1
    - Dst: dict_attr_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2375,1
    - Dst: dict_attr_add_or_fixup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2380,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2385,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2295
    functionDepth: 8
    functionLinenumber: 2295
    functionLinenumberEnd: 2393
    functionName: dict_read_process_enum
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_attr_parent_init
    - unlikely
    - CURRENT_FRAME
    - dict_attr_finalise
    - dict_attr_add_or_fixup
    - dict_process_type_field
    - memcpy
    - talloc_free
    - dict_attr_alloc_null
    - fr_strerror_printf
    - fr_strerror_const
    - dict_attr_location_set
    - da_is_bit_field
    - strncmp
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_enum(dict_tokenize_ctx_t *dctx, char **argv,
      int argc,\n\t\t\t\t  fr_dict_attr_flags_t *base_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2412,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - dict_tokenize_ctx_t *dctx
    - argv
    - argc
    - base_flags
    argTypes:
    - UNUSED
    - char**
    - int
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2420
    functionName: dict_read_process_flags
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_flags(UNUSED dict_tokenize_ctx_t *dctx, char
      **argv, int argc,\n\t\t\t\t   fr_dict_attr_flags_t *base_flags)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2431,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2435,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2436,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2437,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2437,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2446,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2447,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2448,1
    - Dst: dict_read_process_common
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2460,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2460,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2479,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2482,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2482,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2483,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2491,1
    - Dst: da_is_bit_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2497,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2502,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2505,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2522,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2523,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2523,1
    - Dst: fr_dict_attr_is_key_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2530,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2531,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2532,1
    - Dst: da_is_length_field
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2536,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2537,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2538,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2546,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2554,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2557,1
    - Dst: dict_attr_num_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2557,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2557,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2558,1
    - Dst: dict_attr_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2558,1
    - Dst: dict_attr_allow_dup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2564,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2569,1
    - Dst: dict_attr_add_or_fixup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2576,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2588,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2620,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2621,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2622,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2622,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2631,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2632,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2644,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2647,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2651,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2656,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2656,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2657,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2658,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2658,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2667,1
    - Dst: dict_set_value_attr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2672,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 104
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - fr_dict_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2425
    functionDepth: 8
    functionLinenumber: 2425
    functionLinenumberEnd: 2673
    functionName: dict_read_process_member
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - unlikely
    - dict_attr_finalise
    - da_is_length_field
    - dict_attr_add_or_fixup
    - dict_dctx_push
    - talloc_free
    - dict_set_value_attr
    - dict_attr_num_init
    - fr_strerror_printf
    - dict_read_process_common
    - da_is_bit_field
    - dict_attr_allow_dup
    - dict_attr_child_by_num
    - fr_dict_attr_is_key_field
    - fr_strerror_const
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_member(dict_tokenize_ctx_t *dctx, char **argv,
      int argc,\n\t\t\t\t    fr_dict_attr_flags_t *base_flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2683,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2685,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2689,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2705,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2708,1
    - Dst: fr_dict_attr_unconst
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2709,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2716,1
    - Dst: fr_dict_enum_name_from_substr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2717,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2717,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2718,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2747,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2747,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2748,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2760,1
    - Dst: dict_fixup_enumv_enqueue
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2762,1
    - Dst: CURRENT_FILENAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2763,1
    - Dst: CURRENT_LINE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2763,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2764,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2765,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2766,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2767,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2776,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2777,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2778,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2787,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2788,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2790,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2793,1
    - Dst: fr_dict_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2797,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2798,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2801,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2679
    functionDepth: 9
    functionLinenumber: 2679
    functionLinenumberEnd: 2804
    functionName: dict_read_process_value
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_strerror_printf
    - fr_cond_assert_msg
    - fr_dict_attr_by_oid
    - strlen
    - fr_dict_enum_name_from_substr
    - fr_type_to_str
    - fr_dict_attr_unconst
    - dict_fixup_enumv_enqueue
    - FR_VALUE_BOX_INITIALISER_NULL
    - fr_value_box_clear
    - CURRENT_LINE
    - fr_strerror_const
    - fr_dict_enum_add_name
    - FR_SBUFF_IN
    - strcasecmp
    - CURRENT_FILENAME
    - fr_strerror_printf_push
    - CURRENT_FRAME
    - fr_value_box_from_str
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: int
    signature: "int dict_read_process_value(dict_tokenize_ctx_t *dctx, char **argv,
      int argc,\n\t\t\t\t   UNUSED fr_dict_attr_flags_t *base_flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2822,1
    - Dst: dict_read_sscanf_i
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2829,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2830,1
    - Dst: dict_read_parse_format
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2838,1
    - Dst: dict_vendor_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2845,1
    - Dst: fr_dict_vendor_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2847,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2849,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flags
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2809
    functionDepth: 2
    functionLinenumber: 2809
    functionLinenumberEnd: 2859
    functionName: dict_read_process_vendor
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_read_parse_format
    - dict_vendor_add
    - fr_dict_vendor_by_num
    - fr_strerror_const
    - dict_read_sscanf_i
    linkageType: ''
    returnType: int
    signature: int dict_read_process_vendor(dict_tokenize_ctx_t *dctx, char **argv,
      int argc, UNUSED fr_dict_attr_flags_t *base_flags)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2901,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2902,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2910,1
    - Dst: dict_read_sscanf_i
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2917,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2918,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2926,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2934,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2936,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2943,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2944,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2945,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2963,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2968,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2974,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2975,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2980,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2981,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2982,1
    - Dst: dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2991,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:2998,1
    - Dst: dict_by_protocol_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3003,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3008,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3009,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3020,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3028,1
    - Dst: dict_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3031,1
    - Dst: dict_dlopen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3039,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3041,1
    - Dst: dict_root_set
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3048,1
    - Dst: dict_protocol_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3050,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3069,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3069,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 4
    argNames:
    - dctx
    - argv
    - argc
    - fr_dict_attr_flags_t *base_flag
    argTypes:
    - dict_tokenize_ctx_t*
    - char**
    - int
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 2888
    functionDepth: 4
    functionLinenumber: 2888
    functionLinenumberEnd: 3072
    functionName: dict_read_process_protocol
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - dict_by_protocol_num
    - fr_strerror_printf
    - strlen
    - dict_read_sscanf_i
    - strncasecmp
    - unlikely
    - dict_by_protocol_name
    - fr_table_str_by_value
    - fr_table_value_by_str
    - strtoul
    - fr_strerror_const
    - dict_alloc
    - dict_protocol_add
    - strcasecmp
    - strcmp
    - dict_dlopen
    - CURRENT_FRAME
    - dict_dctx_push
    - talloc_free
    - dict_root_set
    linkageType: ''
    returnType: int
    signature: int dict_read_process_protocol(dict_tokenize_ctx_t *dctx, char **argv,
      int argc, UNUSED fr_dict_attr_flags_t *base_flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3085,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3086,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3088,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3091,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3092,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3096,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - filename_out
    - dict
    - filename
    - src_file
    - src_line
    argTypes:
    - char**
    - fr_dict_t*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3080
    functionDepth: 2
    functionLinenumber: 3080
    functionLinenumberEnd: 3103
    functionName: dict_filename_add
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dlist_insert_tail
    - talloc_strdup
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int dict_filename_add(char **filename_out, fr_dict_t *dict, char const
      *filename,\n\t\t\t\t    char const *src_file, int src_line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3113,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3115,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3118,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - dict
    - filename
    - src_file
    - src_line
    argTypes:
    - fr_dict_t*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3108
    functionDepth: 3
    functionLinenumber: 3108
    functionLinenumberEnd: 3125
    functionName: dict_filename_loaded
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_dlist_next
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool dict_filename_loaded(fr_dict_t const *dict, char const *filename,\n\t\t\t\t\tchar
      const *src_file, int src_line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3133,1
    - Dst: dict_filename_loaded
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dict
    - dir
    - filename
    argTypes:
    - fr_dict_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3136
      start: 3127
    functionDepth: 4
    functionLinenumber: 3127
    functionLinenumberEnd: 3136
    functionName: fr_dict_filename_loaded
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - dict_filename_loaded
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool fr_dict_filename_loaded(fr_dict_t const *dict, char const *dir,
      char const *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_CURRENT_NEST
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3144,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3145,1
    - Dst: CURRENT_DA
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3145,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3150,1
    - Dst: CURRENT_DA
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dict_tokenize_ctx_t *dctx
    argTypes:
    - NDEBUG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3142
    functionDepth: 1
    functionLinenumber: 3142
    functionLinenumberEnd: 3154
    functionName: dict_begin_protocol
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - CURRENT_FRAME
    - fr_assert
    - CURRENT_DA
    - ASSERT_CURRENT_NEST
    linkageType: ''
    returnType: int
    signature: int dict_begin_protocol(NDEBUG_UNUSED dict_tokenize_ctx_t *dctx)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3218,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3219,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3220,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3221,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3222,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3223,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3224,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3225,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3226,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3227,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3228,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3229,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3230,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3231,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3253,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3253,1
    - Dst: FR_DIR_IS_RELATIVE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3261,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3266,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3270,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3270,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3271,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3296,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3309,1
    - Dst: dict_filename_loaded
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3309,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3310,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3315,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3317,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3317,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3319,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3320,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3321,1
    - Dst: fstat
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3329,1
    - Dst: fileno
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3329,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3330,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3330,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3333,1
    - Dst: S_ISREG
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3337,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3338,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3348,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3362,1
    - Dst: dict_filename_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3362,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3366,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3367,1
    - Dst: fgets
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3369,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3388,1
    - Dst: fr_dict_str_to_argv
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3391,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3398,1
    - Dst: fr_dict_keyword
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3399,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3399,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3400,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3402,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3406,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3406,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3407,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3409,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3410,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3420,1
    - Dst: fr_dict_keyword
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3426,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3426,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3438,1
    - Dst: fr_dict_keyword_parser_t*::parse
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3438,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3443,1
    - Dst: fr_dict_keyword_parser_t*::begin
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3443,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3452,1
    - Dst: dict_read_process_begin
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3452,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3459,1
    - Dst: dict_read_process_include
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3470,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3477,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3485,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3488,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3489,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3494,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3495,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3501,1
    - Dst: fr_cwd_strip
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3502,1
    - Dst: dict_tokenize_frame_t*::finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3510,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3514,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3518,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3519,1
    - Dst: CURRENT_FRAME
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3520,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3196
    functionDepth: 8
    functionLinenumber: 3196
    functionLinenumberEnd: 3523
    functionName: TABLE_TYPE_NAME_FUNC_RPTR
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 0
    functionsReached:
    - fgets
    - fr_cond_assert
    - fr_strerror_printf
    - dict_read_process_include
    - fr_dict_keyword_parser_t*::begin
    - strlen
    - fopen
    - dict_tokenize_frame_t*::finalise
    - fileno
    - strncasecmp
    - unlikely
    - S_ISREG
    - fr_dict_keyword_parser_t*::parse
    - NUM_ELEMENTS
    - fstat
    - dict_read_process_begin
    - L
    - fr_dict_keyword
    - fr_syserror
    - dict_filename_loaded
    - strcasecmp
    - fr_assert
    - strcmp
    - FR_DIR_IS_RELATIVE
    - fclose
    - fr_cwd_strip
    - CURRENT_FRAME
    - fr_strerror_printf_push
    - strchr
    - fr_dict_str_to_argv
    - dict_filename_add
    - strcpy
    linkageType: ''
    returnType: void
    signature: "void TABLE_TYPE_NAME_FUNC_RPTR(table_sorted_value_by_str, fr_dict_keyword_t
      const *,\n\t\t\t\t fr_dict_keyword, fr_dict_keyword_parser_t const *, fr_dict_keyword_parser_t
      const *)\n\n/** Parse a dictionary file\n *\n * @param[in] dctx\tContains the
      current state of the dictionary parser.\n *\t\t\tUsed to track what PROTOCOL,
      VENDOR or TLV block\n *\t\t\twe're in. Block context changes in $INCLUDEs should\n
      *\t\t\tnot affect the context of the including file.\n * @param[in] dir\tDirectory
      containing the dictionary we're loading.\n * @param[in] filename\twe're parsing.\n
      * @param[in] src_file\tThe including file.\n * @param[in] src_line\tLine on
      which the $INCLUDE or $NCLUDE- statement was found.\n * @return\n *\t- 0 on
      success.\n *\t- -1 on failure.\n */\nstatic int _dict_from_file(dict_tokenize_ctx_t
      *dctx,\n\t\t\t   char const *dir, char const *filename,\n\t\t\t   char const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3532,1
    - Dst: dict_fixup_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3534,1
    - Dst: _dict_from_file
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3538,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3540,1
    - Dst: dict_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - dict
    - dir_name
    - filename
    - src_file
    - src_line
    argTypes:
    - fr_dict_t*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3552
      start: 3525
    functionDepth: 3
    functionLinenumber: 3525
    functionLinenumberEnd: 3552
    functionName: dict_from_file
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 2
    functionsReached:
    - dict_finalise
    - talloc_free
    - _dict_from_file
    - dict_fixup_init
    - memset
    linkageType: ''
    returnType: int
    signature: "int dict_from_file(fr_dict_t *dict,\n\t\t\t  char const *dir_name,
      char const *filename,\n\t\t\t  char const *src_file, int src_line)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3577,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3579,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3580,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3588,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3594,1
    - Dst: fr_dict_global_ctx_dir
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3594,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3595,1
    - Dst: fr_dict_global_ctx_dir
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3595,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3597,1
    - Dst: dict_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3599,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3602,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3603,1
    - Dst: dict_root_set
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3610,1
    - Dst: dict_from_file
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3612,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3614,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3616,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3620,1
    - Dst: dict_dlopen
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3627,1
    - Dst: dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3629,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3631,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3635,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3636,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3656,1
    - Dst: dict_attr_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3658,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3661,1
    - Dst: dict_attr_add_to_namespace
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3665,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3666,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3667,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3671,1
    - Dst: dict_attr_child_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3676,1
    - Dst: dict_attr_enum_add_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3682,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3683,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 3
    argNames:
    - out
    - dict_subdir
    - dependent
    argTypes:
    - fr_dict_t**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3691
      start: 3569
    functionDepth: 8
    functionLinenumber: 3569
    functionLinenumberEnd: 3691
    functionName: fr_dict_internal_afrom_file
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 13
    functionsReached:
    - dict_dependent_add
    - fr_strerror_printf
    - talloc_strdup
    - talloc_asprintf
    - unlikely
    - FR_VALUE_BOX_INITIALISER_NULL
    - dict_attr_alloc
    - dict_attr_add_to_namespace
    - dict_attr_child_add
    - fr_dict_global_ctx_dir
    - fr_strerror_const
    - dict_alloc
    - dict_attr_enum_add_name
    - fr_assert
    - dict_dlopen
    - talloc_typed_asprintf
    - fr_strerror_printf_push
    - fr_value_box_init
    - TALLOC_FREE
    - talloc_free
    - dict_root_set
    - fr_strerror_clear
    - dict_attr_child_by_num
    - dict_from_file
    linkageType: ''
    returnType: int
    signature: int fr_dict_internal_afrom_file(fr_dict_t **out, char const *dict_subdir,
      char const *dependent)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3714,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3715,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3719,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3720,1
    - Dst: dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3728,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3738,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3755,1
    - Dst: fr_dict_global_ctx_dir
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3755,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3757,1
    - Dst: fr_dict_global_ctx_dir
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3757,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3760,1
    - Dst: dict_from_file
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3771,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3774,1
    - Dst: dict_by_protocol_name
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3781,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3783,1
    - Dst: fr_dict_t*::proto::init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3792,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3796,1
    - Dst: dict_dependent_add
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3798,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 4
    argNames:
    - out
    - proto_name
    - proto_dir
    - dependent
    argTypes:
    - fr_dict_t**
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3803
      start: 3706
    functionDepth: 5
    functionLinenumber: 3706
    functionLinenumberEnd: 3803
    functionName: fr_dict_protocol_afrom_file
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 4
    functionsReached:
    - unlikely
    - fr_dict_t*::proto::init
    - talloc_free
    - dict_by_protocol_name
    - dict_dependent_add
    - fr_strerror_printf
    - talloc_steal
    - fr_dict_global_ctx_dir
    - fr_strerror_clear
    - talloc_asprintf
    - fr_strerror_const
    - dict_from_file
    linkageType: ''
    returnType: int
    signature: int fr_dict_protocol_afrom_file(fr_dict_t **out, char const *proto_name,
      char const *proto_dir, char const *dependent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3819,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3820,1
    - Dst: dict_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3827,1
    - Dst: dict_root_set
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3833,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - proto_name
    - proto_number
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3815
    functionDepth: 2
    functionLinenumber: 3815
    functionLinenumberEnd: 3839
    functionName: fr_dict_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - unlikely
    - dict_alloc
    - talloc_free
    - fr_strerror_printf
    - dict_root_set
    linkageType: ''
    returnType: fr_dict_t
    signature: fr_dict_t *fr_dict_alloc(char const *proto_name, unsigned int proto_number)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_IF_NULL
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3852,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3856,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3857,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3857,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3862,1
    - Dst: dict_from_file
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - dict
    - dir
    - filename
    argTypes:
    - fr_dict_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3850
    functionDepth: 4
    functionLinenumber: 3850
    functionLinenumberEnd: 3867
    functionName: fr_dict_read
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 10
    functionsReached:
    - unlikely
    - fr_strerror_printf
    - INTERNAL_IF_NULL
    - fr_dict_root
    - dict_from_file
    linkageType: ''
    returnType: int
    signature: int fr_dict_read(fr_dict_t *dict, char const *dir, char const *filename)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_IF_NULL
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3881,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3886,1
    - Dst: fr_dict_str_to_argv
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3888,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3890,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3894,1
    - Dst: dict_fixup_init
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3900,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3902,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3903,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3907,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3909,1
    - Dst: fr_dict_attr_by_oid
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3913,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3913,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3914,1
    - Dst: dict_read_process_value
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3918,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3920,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3922,1
    - Dst: dict_read_process_attribute
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3925,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3928,1
    - Dst: dict_dctx_push
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3930,1
    - Dst: dict_read_process_define
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3933,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3936,1
    - Dst: dict_read_process_vendor
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3937,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3940,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3946,1
    - Dst: dict_finalise
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3948,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 3
    argNames:
    - dict
    - input
    - parent
    argTypes:
    - fr_dict_t*
    - char*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3872
    functionDepth: 10
    functionLinenumber: 3872
    functionLinenumberEnd: 3949
    functionName: fr_dict_parse_str
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - dict_read_process_define
    - dict_finalise
    - dict_dctx_push
    - TALLOC_FREE
    - talloc_free
    - fr_strerror_printf
    - talloc_strdup
    - INTERNAL_IF_NULL
    - strcasecmp
    - fr_dict_str_to_argv
    - fr_dict_attr_by_oid
    - dict_read_process_value
    - dict_read_process_attribute
    - dict_fixup_init
    - dict_read_process_vendor
    - memset
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int fr_dict_parse_str(fr_dict_t *dict, char const *input, fr_dict_attr_t
      const *parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3967,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3968,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3972,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3973,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3977,1
    - Dst: dict_alloc
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3979,1
    - Dst: dict_from_file
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3982,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3983,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3994,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3995,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3995,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3996,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3997,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3998,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/dict_tokenize.c:3999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - out
    - dir
    - filename
    argTypes:
    - fr_dict_t**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 3961
    functionDepth: 4
    functionLinenumber: 3961
    functionLinenumberEnd: 4007
    functionName: fr_dict_afrom_file
    functionSourceFile: /src/freeradius-server/src/lib/util/dict_tokenize.c
    functionUses: 1
    functionsReached:
    - unlikely
    - dict_alloc
    - talloc_free
    - fr_assert
    - strcmp
    - fr_strerror_clear
    - fr_strerror_const
    - dict_from_file
    linkageType: ''
    returnType: int
    signature: int fr_dict_afrom_file(fr_dict_t **out, char const *dir, char const
      *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - op
    - b
    argTypes:
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: fr_time_op_ispos
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_time_op_ispos(bool a, bool op, bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _a
    - ','
    - _op
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: fr_time_overflow_ispos
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_overflow_ispos(_a, _op, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: fr_time_max
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: fr_time_min
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_min()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _time
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: fr_time_wrap
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_wrap(_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: fr_time_unwrap
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_unwrap(fr_time_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: fr_time_overflow_add
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_overflow_add(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: fr_time_overflow_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_overflow_sub(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: fr_time_delta_max
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: fr_time_delta_min
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_min()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _time
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: fr_time_delta_wrap
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_wrap(_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: fr_time_delta_unwrap
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_delta_unwrap(fr_time_delta_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: fr_time_delta_overflow_add
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_overflow_add(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: fr_time_delta_overflow_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_overflow_sub(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: fr_unix_time_max
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_max()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: fr_unix_time_min
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_min()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _time
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: fr_unix_time_wrap
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_wrap(_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: fr_unix_time_unwrap
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fr_unix_time_unwrap(fr_unix_time_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: fr_unix_time_overflow_add
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_overflow_add(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: fr_unix_time_overflow_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_overflow_sub(_a, _b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:175,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:176,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:176,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:176,1
    - Dst: fr_time_overflow_add
      Src: /src/freeradius-server/src/lib/util/time.h:176,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: fr_time_add_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 12
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_add
    - fr_time_overflow_add
    - typeof_field
    - fr_time_unwrap
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_add_time_delta(fr_time_t a, fr_time_delta_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:182,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:183,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:183,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:183,1
    - Dst: fr_time_overflow_add
      Src: /src/freeradius-server/src/lib/util/time.h:183,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: fr_time_add_delta_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_add
    - fr_time_overflow_add
    - typeof_field
    - fr_time_unwrap
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_add_delta_time(fr_time_delta_t a, fr_time_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: fr_time_add
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_add(_a, _b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:209,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:210,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:210,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:210,1
    - Dst: fr_time_delta_overflow_sub
      Src: /src/freeradius-server/src/lib/util/time.h:210,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: fr_time_sub_time_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached:
    - fr_time_delta_wrap
    - typeof_field
    - fr_time_unwrap
    - fr_sub
    - fr_time_delta_overflow_sub
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_sub_time_time(fr_time_t a, fr_time_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:215,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:216,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:216,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:216,1
    - Dst: fr_time_overflow_sub
      Src: /src/freeradius-server/src/lib/util/time.h:216,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: fr_time_sub_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_overflow_sub
    - typeof_field
    - fr_time_unwrap
    - fr_sub
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_sub_time_delta(fr_time_t a, fr_time_delta_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: fr_time_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_sub(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: fr_time_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_gt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: fr_time_gteq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_gteq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: fr_time_lt
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_lt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: fr_time_lteq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_lteq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: fr_time_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_eq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: fr_time_neq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_neq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: fr_time_ispos
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_ispos(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: fr_time_isneg
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_isneg(_a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:257,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:258,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:258,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:258,1
    - Dst: fr_time_delta_overflow_add
      Src: /src/freeradius-server/src/lib/util/time.h:258,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: fr_time_delta_add
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 8
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time_delta_overflow_add
    - fr_add
    - typeof_field
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_add(fr_time_delta_t a, fr_time_delta_t
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:263,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:264,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:264,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:264,1
    - Dst: fr_time_delta_overflow_sub
      Src: /src/freeradius-server/src/lib/util/time.h:264,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: fr_time_delta_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 3
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - typeof_field
    - fr_sub
    - fr_time_delta_overflow_sub
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_sub(fr_time_delta_t a, fr_time_delta_t
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:269,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:269,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:271,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:271,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: fr_time_delta_div
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 4
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_div(fr_time_delta_t a, fr_time_delta_t
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:275,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:276,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:276,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: fr_time_delta_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_multiply
    - fr_time_delta_wrap
    - typeof_field
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_mul(fr_time_delta_t a, int64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _a
    - ','
    - _op
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: fr_time_delta_cond
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_cond(_a, _op, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: fr_time_delta_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_gt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: fr_time_delta_gteq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_gteq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: fr_time_delta_lt
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_lt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: fr_time_delta_lteq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_lteq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: fr_time_delta_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_eq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: fr_time_delta_neq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_neq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: fr_time_delta_ispos
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_ispos(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: fr_time_delta_isneg
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_isneg(_a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:304,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:305,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:305,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:305,1
    - Dst: fr_unix_time_overflow_add
      Src: /src/freeradius-server/src/lib/util/time.h:305,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_unix_time_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: fr_unix_time_add_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_unix_time_wrap
    - fr_add
    - typeof_field
    - fr_unix_time_unwrap
    - fr_unix_time_overflow_add
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_add_time_delta(fr_unix_time_t a, fr_time_delta_t
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:310,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:311,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:311,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:311,1
    - Dst: fr_unix_time_overflow_add
      Src: /src/freeradius-server/src/lib/util/time.h:311,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: fr_unix_time_add_delta_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_unix_time_wrap
    - fr_add
    - typeof_field
    - fr_unix_time_unwrap
    - fr_unix_time_overflow_add
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_add_delta_time(fr_time_delta_t a, fr_unix_time_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 334
    functionName: fr_unix_time_add
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_add(_a, _b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:337,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:338,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:338,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:338,1
    - Dst: fr_time_delta_overflow_sub
      Src: /src/freeradius-server/src/lib/util/time.h:338,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_unix_time_t
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: fr_unix_time_sub_time_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - typeof_field
    - fr_unix_time_unwrap
    - fr_sub
    - fr_time_delta_overflow_sub
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_unix_time_sub_time_time(fr_unix_time_t a, fr_unix_time_t
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:343,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:344,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:344,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:344,1
    - Dst: fr_unix_time_overflow_sub
      Src: /src/freeradius-server/src/lib/util/time.h:344,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_unix_time_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: fr_unix_time_sub_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_unix_time_overflow_sub
    - fr_unix_time_wrap
    - typeof_field
    - fr_unix_time_unwrap
    - fr_sub
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_sub_time_delta(fr_unix_time_t a, fr_time_delta_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: fr_unix_time_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_sub(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: fr_unix_time_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_gt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: fr_unix_time_gteq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_gteq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: fr_unix_time_lt
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_lt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: fr_unix_time_lteq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_lteq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: fr_unix_time_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_eq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: fr_unix_time_neq
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_neq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: fr_unix_time_ispos
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_unix_time_ispos(_a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:414,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:415,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:417,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - overflow
    - integer
    - res
    argTypes:
    - bool*
    - int64_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: fr_unix_time_from_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached:
    - fr_multiply
    - fr_unix_time_wrap
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_integer(bool *overflow, int64_t integer,
      fr_time_res_t res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nsec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: fr_unix_time_from_nsec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached:
    - fr_unix_time_wrap
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_nsec(int64_t nsec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:431,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:431,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:431,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - usec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: fr_unix_time_from_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_multiply
    - fr_unix_time_min
    - fr_unix_time_wrap
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_usec(int64_t usec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:438,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:438,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:438,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: fr_unix_time_from_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_multiply
    - fr_unix_time_min
    - fr_unix_time_wrap
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_msec(int64_t msec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:445,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:445,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:445,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - csec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 447
    functionName: fr_unix_time_from_csec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_multiply
    - fr_unix_time_min
    - fr_unix_time_wrap
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_csec(int64_t csec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:452,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:452,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:452,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: fr_unix_time_from_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 3
    functionsReached:
    - fr_multiply
    - fr_unix_time_min
    - fr_unix_time_wrap
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_sec(int64_t sec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:458,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:460,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:462,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:465,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:468,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: fr_unix_time_from_timeval
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_multiply
    - fr_unix_time_wrap
    - fr_add
    - typeof_field
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_timeval(struct timeval const *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:475,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:477,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:479,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:481,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 484
    functionName: fr_unix_time_from_timespec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_multiply
    - fr_unix_time_wrap
    - fr_add
    - typeof_field
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_timespec(struct timespec const *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - delta
    - res
    argTypes:
    - fr_unix_time_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: fr_unix_time_to_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_integer(fr_unix_time_t delta, fr_time_res_t
      res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: fr_unix_time_to_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_usec(fr_unix_time_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: fr_unix_time_to_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_msec(fr_unix_time_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: fr_unix_time_to_csec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_csec(fr_unix_time_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: fr_unix_time_to_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 7
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_sec(fr_unix_time_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: fr_unix_time_to_min
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_min(fr_unix_time_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: fr_unix_time_to_hour
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_hour(fr_unix_time_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: fr_unix_time_to_day
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_unix_time_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_unix_time_to_day(fr_unix_time_t delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:538,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 541
    functionName: fr_unix_time_from_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_unix_time_min
    - fr_unix_time_wrap
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_time(time_t time)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:553,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:555,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:557,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - overflow
    - integer
    - res
    argTypes:
    - bool*
    - int64_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 561
    functionName: fr_time_delta_from_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_multiply
    - fr_time_delta_wrap
    - fr_time_delta_max
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_integer(bool *overflow, int64_t
      integer, fr_time_res_t res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nsec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: fr_time_delta_from_nsec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 13
    functionsReached:
    - fr_time_delta_wrap
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_nsec(int64_t nsec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:571,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:571,1
    - Dst: fr_time_delta_min
      Src: /src/freeradius-server/src/lib/util/time.h:571,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - usec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 573
    functionName: fr_time_delta_from_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 10
    functionsReached:
    - fr_multiply
    - fr_time_delta_wrap
    - fr_time_delta_max
    - fr_time_delta_min
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_usec(int64_t usec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:578,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:578,1
    - Dst: fr_time_delta_min
      Src: /src/freeradius-server/src/lib/util/time.h:578,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: fr_time_delta_from_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 10
    functionsReached:
    - fr_multiply
    - fr_time_delta_wrap
    - fr_time_delta_max
    - fr_time_delta_min
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_msec(int64_t msec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:585,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:585,1
    - Dst: fr_time_delta_min
      Src: /src/freeradius-server/src/lib/util/time.h:585,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - csec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: fr_time_delta_from_csec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_multiply
    - fr_time_delta_wrap
    - fr_time_delta_max
    - fr_time_delta_min
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_csec(int64_t csec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:593,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:593,1
    - Dst: fr_time_delta_min
      Src: /src/freeradius-server/src/lib/util/time.h:593,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sec
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: fr_time_delta_from_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 63
    functionsReached:
    - fr_multiply
    - fr_time_delta_wrap
    - fr_time_delta_max
    - fr_time_delta_min
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_sec(int64_t sec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:599,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:601,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:603,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:606,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:609,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 612
    functionName: fr_time_delta_from_timeval
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 3
    functionsReached:
    - fr_time_delta_wrap
    - fr_multiply
    - fr_add
    - typeof_field
    - fr_time_delta_max
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_timeval(struct timeval const *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:616,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:618,1
    - Dst: fr_time_delta_max
      Src: /src/freeradius-server/src/lib/util/time.h:620,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:622,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 625
    functionName: fr_time_delta_from_timespec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 1
    functionsReached:
    - fr_time_delta_wrap
    - fr_multiply
    - fr_add
    - typeof_field
    - fr_time_delta_max
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_delta_from_timespec(struct timespec const *ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - delta
    - res
    argTypes:
    - fr_time_delta_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: fr_time_delta_to_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_delta_to_integer(fr_time_delta_t delta, fr_time_res_t
      res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: fr_time_delta_to_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 6
    functionsReached:
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_delta_to_usec(fr_time_delta_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: fr_time_delta_to_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 12
    functionsReached:
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_delta_to_msec(fr_time_delta_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: fr_time_delta_to_csec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_delta_to_csec(fr_time_delta_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delta
    argTypes:
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: fr_time_delta_to_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 9
    functionsReached:
    - fr_time_delta_unwrap
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_delta_to_sec(fr_time_delta_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _delta
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 661
    functionName: fr_time_delta_to_timeval
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_to_timeval(_delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _delta
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: fr_time_delta_to_timespec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_delta_to_timespec(_delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/freeradius-server/src/lib/util/time.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: fr_time_offset_to_realtime
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_offset_to_realtime(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.h:692,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:692,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:692,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:693,1
    - Dst: fr_unix_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:693,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:693,1
    - Dst: fr_unix_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - when
    argTypes:
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: fr_time_to_unix_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 17
    functionsReached:
    - fr_unix_time_min
    - fr_unix_time_wrap
    - fr_add
    - fr_time_unwrap
    - fr_time_offset_to_realtime
    - fr_unix_time_max
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_time_to_unix_time(fr_time_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:704,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - when
    argTypes:
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 706
    functionName: fr_time_to_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_time_unwrap
    - fr_time_offset_to_realtime
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_to_usec(fr_time_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:714,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - when
    argTypes:
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: fr_time_to_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_time_unwrap
    - fr_time_offset_to_realtime
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_to_msec(fr_time_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:724,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - when
    argTypes:
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: fr_time_to_csec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_unwrap
    - fr_time_offset_to_realtime
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_to_csec(fr_time_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:734,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - when
    argTypes:
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: fr_time_to_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 14
    functionsReached:
    - fr_time_unwrap
    - fr_time_offset_to_realtime
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_to_sec(fr_time_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _when
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 743
    functionName: fr_time_to_timeval
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_to_timeval(_when)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _when
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 749
    functionName: fr_time_to_timespec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_time_to_timespec(_when)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:762,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/time.h:764,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:766,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:766,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:769,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:769,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:771,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:771,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - overflow
    - when
    - res
    argTypes:
    - bool*
    - int64_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 776
    functionName: fr_time_from_integer
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - fr_multiply
    - fr_time_max
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_integer(bool *overflow, int64_t when, fr_time_res_t
      res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:788,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:788,1
    - Dst: fr_time_delta_from_nsec
      Src: /src/freeradius-server/src/lib/util/time.h:788,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:790,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:790,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:791,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:791,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: fr_time_from_nsec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_max
    - fr_time_delta_from_nsec
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_nsec(int64_t when)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:806,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:806,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/lib/util/time.h:806,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:808,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:808,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:809,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:809,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 812
    functionName: fr_time_from_usec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_max
    - fr_time_delta_from_usec
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_usec(int64_t when)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:824,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:824,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/util/time.h:824,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:826,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:826,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:827,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:827,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 830
    functionName: fr_time_from_msec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_max
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_delta_from_msec
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_msec(int64_t when)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:842,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:842,1
    - Dst: fr_time_delta_from_csec
      Src: /src/freeradius-server/src/lib/util/time.h:842,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:844,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:844,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:845,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:845,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 848
    functionName: fr_time_from_csec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_max
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_delta_from_csec
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_csec(int64_t when)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:860,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:860,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/time.h:860,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:862,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:862,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:863,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:863,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 866
    functionName: fr_time_from_sec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 6
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_max
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_delta_from_sec
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_sec(time_t when)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:880,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:880,1
    - Dst: fr_time_delta_from_timespec
      Src: /src/freeradius-server/src/lib/util/time.h:880,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:882,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:882,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:883,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:883,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when_ts
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: fr_time_from_timespec
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 2
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_max
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_delta_from_timespec
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_timespec(struct timespec const *when_ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof_field
      Src: /src/freeradius-server/src/lib/util/time.h:898,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:898,1
    - Dst: fr_time_delta_from_timeval
      Src: /src/freeradius-server/src/lib/util/time.h:898,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/time.h:900,1
    - Dst: fr_time_offset_to_realtime
      Src: /src/freeradius-server/src/lib/util/time.h:900,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/time.h:901,1
    - Dst: fr_time_max
      Src: /src/freeradius-server/src/lib/util/time.h:901,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - when_tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: fr_time_from_timeval
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 6
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time_wrap
    - fr_time_delta_from_timeval
    - fr_time_max
    - typeof_field
    - fr_sub
    - fr_time_offset_to_realtime
    - fr_time_min
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time_from_timeval(struct timeval const *when_tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/time.h:918,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:918,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 919
    functionName: fr_time_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 13
    functionsReached:
    - fr_time_unwrap
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_time_cmp(fr_time_t a, fr_time_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/time.h:932,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:932,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_time_delta_t
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: fr_time_delta_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 3
    functionsReached:
    - fr_time_delta_unwrap
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_time_delta_cmp(fr_time_delta_t a, fr_time_delta_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/time.h:946,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:946,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - fr_unix_time_t
    - fr_unix_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 947
    functionName: fr_unix_time_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 4
    functionsReached:
    - fr_unix_time_unwrap
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_unix_time_cmp(fr_unix_time_t a, fr_unix_time_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/freeradius-server/src/lib/util/time.h:965,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/time.h:966,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.h:966,1
    - Dst: fr_time_delta_from_timespec
      Src: /src/freeradius-server/src/lib/util/time.h:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 967
    functionName: fr_time
    functionSourceFile: /src/freeradius-server/src/lib/util/time.h
    functionUses: 146
    functionsReached:
    - clock_gettime
    - fr_time_delta_from_timespec
    - fr_time_delta_unwrap
    - fr_time_wrap
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t fr_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: swap
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _vb
    - ','
    - _box
    - ','
    - _type
    - ','
    - _enumv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: COERCE
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COERCE(_vb, _box, _type, _enumv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _enumv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: COERCE_A
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COERCE_A(_type, _enumv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _enumv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: COERCE_B
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COERCE_B(_type, _enumv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:700,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: invalid_type
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int invalid_type(fr_type_t type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:708,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:711,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:712,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:715,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:716,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:719,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type
    - op
    - rcode
    argTypes:
    - fr_type_t
    - fr_token_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 725
    functionName: handle_result
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int handle_result(fr_type_t type, fr_token_t op, int rcode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:731,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:733,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:734,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 773
    functionName: calc_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - COERCE_A
    - fr_assert
    - COERCE_B
    linkageType: ''
    returnType: int
    signature: int calc_bool(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:781,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:784,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:788,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:793,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:794,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/calc.c:798,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:798,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:798,1
    - Dst: fr_unix_time_from_integer
      Src: /src/freeradius-server/src/lib/util/calc.c:800,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/calc.c:805,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:805,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:805,1
    - Dst: fr_unix_time_from_integer
      Src: /src/freeradius-server/src/lib/util/calc.c:807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 816
    functionName: calc_date
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - COERCE_B
    - fr_unix_time_from_integer
    - fr_add
    - COERCE_A
    - fr_assert
    - fr_sub
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int calc_date(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:823,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:831,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/util/calc.c:844,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/calc.c:848,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:848,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:848,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:858,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:864,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:867,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/calc.c:872,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:872,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:872,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/calc.c:873,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/calc.c:877,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:877,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:877,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/calc.c:878,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:884,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/calc.c:885,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/calc.c:891,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/calc.c:892,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 901
    functionName: calc_time_delta
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - COERCE_B
    - fr_add
    - COERCE_A
    - fr_time_delta_ispos
    - fr_assert
    - fr_unix_time_unwrap
    - fr_sub
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int calc_time_delta(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:910,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:912,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:918,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:921,1
    - Dst: fr_type_is_integer_except_bool
      Src: /src/freeradius-server/src/lib/util/calc.c:921,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:923,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:926,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:933,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:936,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:940,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:941,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:943,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:944,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:945,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:953,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/calc.c:957,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:958,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:963,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:966,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:968,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:969,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:975,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:979,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:987,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:988,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:989,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:995,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1006,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1019,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1022,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1024,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1025,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1033,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1036,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1038,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1039,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/calc.c:1047,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1048,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1057,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1061,1
    - Dst: fr_value_box_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1064,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1065,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:1072,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:1073,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 145
    argCount: 5
    argNames:
    - ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 1076
    functionName: calc_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - memcpy
    - talloc_array
    - COERCE_B
    - COERCE_A
    - fr_assert
    - memcmp
    - fr_value_box_memdup_shallow
    - fr_value_box_safety_merge
    - fr_strerror_const
    - fr_type_is_integer_except_bool
    - fr_value_box_safety_copy
    - fr_value_box_memdup
    linkageType: ''
    returnType: int
    signature: int calc_octets(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1085,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:1087,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1093,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1096,1
    - Dst: fr_type_is_integer_except_bool
      Src: /src/freeradius-server/src/lib/util/calc.c:1096,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:1098,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:1101,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1108,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:1111,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1116,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1117,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1120,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1121,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1122,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1126,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1130,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1131,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1134,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1135,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1136,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:1144,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/calc.c:1148,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:1149,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1154,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1157,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1160,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1161,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1168,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1171,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1174,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1175,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1183,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1186,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1189,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1190,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/calc.c:1198,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1199,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/calc.c:1208,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1212,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:1216,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1217,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:1224,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:1225,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 118
    argCount: 5
    argNames:
    - ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1228
    functionName: calc_string
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - memcpy
    - talloc_array
    - COERCE_B
    - fr_value_box_strdup
    - COERCE_A
    - fr_assert
    - memcmp
    - fr_value_box_bstrndup_shallow
    - fr_value_box_safety_merge
    - fr_strerror_const
    - fr_type_is_integer_except_bool
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_string(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:1234,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:1235,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1241,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1248,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/calc.c:1254,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1254,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1259,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1264,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1288,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1230
    functionDepth: 7
    functionLinenumber: 1230
    functionLinenumberEnd: 1293
    functionName: cast_ipv4_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_init
    - fr_strerror_printf
    - fr_value_box_cast
    - fr_type_to_str
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int cast_ipv4_addr(fr_value_box_t *out, fr_value_box_t const *in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1300,1
    - Dst: cast_ipv4_addr
      Src: /src/freeradius-server/src/lib/util/calc.c:1302,1
    - Dst: cast_ipv4_addr
      Src: /src/freeradius-server/src/lib/util/calc.c:1305,1
    - Dst: swap
      Src: /src/freeradius-server/src/lib/util/calc.c:1314,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/calc.c:1333,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/calc.c:1333,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1335,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1336,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1295
    functionDepth: 8
    functionLinenumber: 1295
    functionLinenumberEnd: 1344
    functionName: calc_ipv4_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - swap
    - ntohl
    - htonl
    - fr_assert
    - cast_ipv4_addr
    - fr_value_box_safety_merge
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_ipv4_addr(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1351,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/calc.c:1355,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1356,1
    - Dst: swap
      Src: /src/freeradius-server/src/lib/util/calc.c:1359,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/calc.c:1361,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1362,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:1366,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1372,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1377,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:1381,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:1382,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:1401,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1415,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/calc.c:1417,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/calc.c:1417,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1346
    functionDepth: 5
    functionLinenumber: 1346
    functionLinenumberEnd: 1429
    functionName: calc_ipv4_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - swap
    - ntohl
    - htonl
    - fr_strerror_printf
    - fr_assert
    - fr_value_box_cast
    - fr_type_is_integer
    - fr_strerror_const
    - fr_value_box_safety_copy
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int calc_ipv4_prefix(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:1435,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:1436,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1442,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1443,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1450,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1451,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/calc.c:1458,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1458,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1463,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1468,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1492,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - fr_value_box_t*
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1431
    functionDepth: 7
    functionLinenumber: 1431
    functionLinenumberEnd: 1497
    functionName: cast_ipv6_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_init
    - fr_strerror_printf
    - fr_assert
    - fr_value_box_cast
    - fr_type_to_str
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int cast_ipv6_addr(fr_value_box_t *out, fr_value_box_t const *in)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1506,1
    - Dst: cast_ipv6_addr
      Src: /src/freeradius-server/src/lib/util/calc.c:1508,1
    - Dst: cast_ipv6_addr
      Src: /src/freeradius-server/src/lib/util/calc.c:1511,1
    - Dst: swap
      Src: /src/freeradius-server/src/lib/util/calc.c:1520,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/calc.c:1546,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1556,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1499
    functionDepth: 8
    functionLinenumber: 1499
    functionLinenumberEnd: 1564
    functionName: calc_ipv6_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - swap
    - memcpy
    - fr_assert
    - cast_ipv6_addr
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_ipv6_addr(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1587
    functionName: get_ipv6_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_ipv6_prefix(uint8_t const *in)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1595,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:1599,1
    - Dst: get_ipv6_prefix
      Src: /src/freeradius-server/src/lib/util/calc.c:1603,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:1614,1
    - Dst: get_ipv6_prefix
      Src: /src/freeradius-server/src/lib/util/calc.c:1618,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1629,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1638,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - a
    - op
    - b
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1647
    functionName: calc_ipv6_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_strerror_printf
    - get_ipv6_prefix
    - fr_assert
    - fr_value_box_safety_merge
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_ipv6_prefix(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1650
    functionName: is_ipv6
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_ipv6(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_ipv6
      Src: /src/freeradius-server/src/lib/util/calc.c:1656,1
    - Dst: is_ipv6
      Src: /src/freeradius-server/src/lib/util/calc.c:1656,1
    - Dst: calc_ipv6_addr
      Src: /src/freeradius-server/src/lib/util/calc.c:1657,1
    - Dst: calc_ipv4_addr
      Src: /src/freeradius-server/src/lib/util/calc.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1651
    functionDepth: 9
    functionLinenumber: 1651
    functionLinenumberEnd: 1661
    functionName: calc_combo_ip_addr
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - is_ipv6
    - calc_ipv4_addr
    - calc_ipv6_addr
    linkageType: ''
    returnType: int
    signature: int calc_combo_ip_addr(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_ipv6
      Src: /src/freeradius-server/src/lib/util/calc.c:1665,1
    - Dst: is_ipv6
      Src: /src/freeradius-server/src/lib/util/calc.c:1665,1
    - Dst: calc_ipv6_prefix
      Src: /src/freeradius-server/src/lib/util/calc.c:1666,1
    - Dst: calc_ipv4_prefix
      Src: /src/freeradius-server/src/lib/util/calc.c:1669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1663
    functionDepth: 6
    functionLinenumber: 1663
    functionLinenumberEnd: 1670
    functionName: calc_combo_ip_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - is_ipv6
    - calc_ipv6_prefix
    - calc_ipv4_prefix
    linkageType: ''
    returnType: int
    signature: int calc_combo_ip_prefix(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1679,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:1684,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:1685,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/calc.c:1701,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/calc.c:1707,1
    - Dst: fmod
      Src: /src/freeradius-server/src/lib/util/calc.c:1709,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1716,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1717,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1673
    functionDepth: 1
    functionLinenumber: 1673
    functionLinenumberEnd: 1721
    functionName: calc_float32
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - COERCE_B
    - fpclassify
    - COERCE_A
    - fr_assert
    - fmod
    - fr_value_box_safety_merge
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_float32(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1729,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:1731,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:1732,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/calc.c:1748,1
    - Dst: fpclassify
      Src: /src/freeradius-server/src/lib/util/calc.c:1754,1
    - Dst: fmod
      Src: /src/freeradius-server/src/lib/util/calc.c:1756,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1763,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1764,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - UNUSED
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1767
    functionName: calc_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - COERCE_B
    - fpclassify
    - COERCE_A
    - fr_assert
    - fmod
    - fr_value_box_safety_merge
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_float64(UNUSED TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1778,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:1780,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1786,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:1789,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/calc.c:1794,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/calc.c:1798,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/calc.c:1802,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1848,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1850,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1851,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 5
    argNames:
    - ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1772
    functionDepth: 5
    functionLinenumber: 1772
    functionLinenumberEnd: 1854
    functionName: calc_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - COERCE_B
    - fr_multiply
    - fr_add
    - COERCE_A
    - fr_assert
    - fr_sub
    - fr_value_box_cast
    - fr_value_box_safety_merge
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_uint64(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:1865,1
    - Dst: COERCE_A
      Src: /src/freeradius-server/src/lib/util/calc.c:1867,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:1873,1
    - Dst: COERCE_B
      Src: /src/freeradius-server/src/lib/util/calc.c:1876,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/calc.c:1881,1
    - Dst: fr_sub
      Src: /src/freeradius-server/src/lib/util/calc.c:1885,1
    - Dst: fr_multiply
      Src: /src/freeradius-server/src/lib/util/calc.c:1889,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:1935,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:1937,1
    - Dst: fr_value_box_safety_merge
      Src: /src/freeradius-server/src/lib/util/calc.c:1938,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 5
    argNames:
    - ctx
    - dst
    - in1
    - op
    - in2
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1859
    functionDepth: 5
    functionLinenumber: 1859
    functionLinenumberEnd: 1941
    functionName: calc_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - COERCE_B
    - fr_multiply
    - fr_add
    - COERCE_A
    - fr_assert
    - fr_sub
    - fr_value_box_cast
    - fr_value_box_safety_merge
    - fr_value_box_safety_copy
    linkageType: ''
    returnType: int
    signature: int calc_int64(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_t
      const *in1, fr_token_t op, fr_value_box_t const *in2)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/calc.c:1998,1
    - Dst: invalid_type
      Src: /src/freeradius-server/src/lib/util/calc.c:1998,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/calc.c:2004,1
    - Dst: invalid_type
      Src: /src/freeradius-server/src/lib/util/calc.c:2004,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/calc.c:2005,1
    - Dst: invalid_type
      Src: /src/freeradius-server/src/lib/util/calc.c:2005,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2015,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:2031,1
    - Dst: fr_regex_cmp_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2035,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2038,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/calc.c:2046,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/calc.c:2047,1
    - Dst: fr_type_is_integer_except_bool
      Src: /src/freeradius-server/src/lib/util/calc.c:2078,1
    - Dst: fr_type_is_integer_except_bool
      Src: /src/freeradius-server/src/lib/util/calc.c:2083,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2147,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2154,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2155,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2155,1
    - Dst: fr_type_is_integer
      Src: /src/freeradius-server/src/lib/util/calc.c:2168,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2169,1
    - Dst: fr_type_is_signed
      Src: /src/freeradius-server/src/lib/util/calc.c:2172,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2184,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2199,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2200,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2236,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2250,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2251,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2253,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:2263,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:2268,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2273,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2276,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:2287,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2288,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/calc.c:2289,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2304,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2308,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2309,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2319,1
    - Dst: func
      Src: /src/freeradius-server/src/lib/util/calc.c:2321,1
    - Dst: fr_value_box_copy_shallow
      Src: /src/freeradius-server/src/lib/util/calc.c:2324,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:2334,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:2335,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2337,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 227
    argCount: 6
    argNames:
    - ctx
    - dst
    - hint
    - a
    - op
    - b
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 1991
    functionDepth: 5
    functionLinenumber: 1991
    functionLinenumberEnd: 2338
    functionName: fr_value_calc_binary_op
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 5
    functionsReached:
    - fr_value_box_copy_shallow
    - fr_type_is_leaf
    - fr_value_box_clear_value
    - fr_strerror_printf
    - fr_value_box_cast
    - func
    - fr_strerror
    - fr_type_to_str
    - fr_regex_cmp_op
    - fr_strerror_const
    - fr_value_box_cmp_op
    - fr_assert
    - fr_type_is_signed
    - fr_value_box_init_null
    - fr_value_box_init
    - invalid_type
    - fr_type_is_integer
    - fr_type_is_integer_except_bool
    - handle_result
    linkageType: ''
    returnType: int
    signature: int fr_value_calc_binary_op(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_type_t
      hint, fr_value_box_t const *a, fr_token_t op, fr_value_box_t const *b)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/calc.c:2352,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/calc.c:2356,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2358,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2358,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/calc.c:2367,1
    - Dst: fr_value_box_list_concat_as_string
      Src: /src/freeradius-server/src/lib/util/calc.c:2369,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/calc.c:2369,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/calc.c:2372,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/calc.c:2372,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/calc.c:2372,1
    - Dst: FR_DBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/util/calc.c:2381,1
    - Dst: fr_value_box_list_concat_as_octets
      Src: /src/freeradius-server/src/lib/util/calc.c:2383,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/calc.c:2383,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/calc.c:2385,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/calc.c:2385,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/calc.c:2385,1
    - Dst: fr_type_is_numeric
      Src: /src/freeradius-server/src/lib/util/calc.c:2410,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2412,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/calc.c:2412,1
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/util/calc.c:2448,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2450,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:2454,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/calc.c:2456,1
    - Dst: calc
      Src: /src/freeradius-server/src/lib/util/calc.c:2461,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:2465,1
    - Dst: calc
      Src: /src/freeradius-server/src/lib/util/calc.c:2467,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:2472,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 103
    argCount: 5
    argNames:
    - ctx
    - dst
    - type
    - op
    - group
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_type_t
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2346
    functionDepth: 7
    functionLinenumber: 2346
    functionLinenumberEnd: 2473
    functionName: fr_value_calc_nary_op
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 1
    functionsReached:
    - fr_value_box_list_head
    - fr_sbuff_start
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_dbuff_start
    - fr_value_box_bstrndup
    - fr_value_box_cast
    - fr_type_to_str
    - fr_type_is_numeric
    - calc
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_dbuff_used
    - fr_strerror_const
    - UNCONST
    - FR_DBUFF_TALLOC_THREAD_LOCAL
    - fr_value_box_list_next
    - fr_value_box_memdup
    - fr_value_box_list_concat_as_string
    - fr_sbuff_used
    - fr_value_box_list_concat_as_octets
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int fr_value_calc_nary_op(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_type_t
      type, fr_token_t op, fr_value_box_t const *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2477
    functionName: T
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 565
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T(_x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/calc.c:2501,1
    - Dst: invalid_type
      Src: /src/freeradius-server/src/lib/util/calc.c:2501,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/calc.c:2502,1
    - Dst: invalid_type
      Src: /src/freeradius-server/src/lib/util/calc.c:2502,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2505,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/util/calc.c:2519,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/calc.c:2520,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2524,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2533,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/util/calc.c:2543,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2544,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2549,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - dst
    - op
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2497
    functionDepth: 6
    functionLinenumber: 2497
    functionLinenumberEnd: 2552
    functionName: fr_value_calc_assignment_op
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 2
    functionsReached:
    - fr_value_box_clear_value
    - fr_type_is_leaf
    - invalid_type
    - fr_strerror_printf
    - fr_value_calc_binary_op
    - fr_value_box_cast
    - fr_value_box_list_next
    - handle_result
    linkageType: ''
    returnType: int
    signature: int fr_value_calc_assignment_op(TALLOC_CTX *ctx, fr_value_box_t *dst,
      fr_token_t op, fr_value_box_t const *src)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_numeric
      Src: /src/freeradius-server/src/lib/util/calc.c:2563,1
    - Dst: invalid_type
      Src: /src/freeradius-server/src/lib/util/calc.c:2563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2566,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2574,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2621,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2625,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2626,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2630,1
    - Dst: fr_value_box_safety_copy
      Src: /src/freeradius-server/src/lib/util/calc.c:2631,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2637,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2638,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2639,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2640,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2641,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2643,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2644,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2645,1
    - Dst: COMP
      Src: /src/freeradius-server/src/lib/util/calc.c:2646,1
    - Dst: fr_type_is_signed
      Src: /src/freeradius-server/src/lib/util/calc.c:2657,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2665,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2666,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2668,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/calc.c:2671,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/calc.c:2673,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2674,1
    - Dst: handle_result
      Src: /src/freeradius-server/src/lib/util/calc.c:2681,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 92
    argCount: 4
    argNames:
    - ctx
    - dst
    - op
    - src
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_token_t
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2558
    functionDepth: 6
    functionLinenumber: 2558
    functionLinenumberEnd: 2684
    functionName: fr_value_calc_unary_op
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 1
    functionsReached:
    - fr_value_box_init
    - fr_strerror_printf
    - invalid_type
    - fr_value_calc_binary_op
    - COMP
    - fr_value_box_is_truthy
    - fr_value_box_clear
    - fr_assert
    - fr_type_is_numeric
    - fr_value_box_safety_copy
    - fr_type_is_signed
    - handle_result
    linkageType: ''
    returnType: int
    signature: int fr_value_calc_unary_op(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_token_t
      op, fr_value_box_t const *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2635
    functionDepth: 0
    functionLinenumber: 2635
    functionLinenumberEnd: 2636
    functionName: COMP
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP(_type, _field)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_calc_list_empty
      Src: /src/freeradius-server/src/lib/util/calc.c:2704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - list
    argTypes:
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2715
    functionName: fr_value_calc_list_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 1
    functionsReached:
    - fr_value_calc_list_empty
    linkageType: ''
    returnType: bool
    signature: bool fr_value_calc_list_empty(fr_value_box_list_t const *list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_calc_list_empty
      Src: /src/freeradius-server/src/lib/util/calc.c:2704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2698
    functionDepth: 2
    functionLinenumber: 2698
    functionLinenumberEnd: 2712
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 16
    functionsReached:
    - fr_value_calc_list_empty
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list, item)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/calc.c:2731,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/calc.c:2750,1
    - Dst: fr_value_calc_list_empty
      Src: /src/freeradius-server/src/lib/util/calc.c:2750,1
    - Dst: fr_value_box_list_empty
      Src: /src/freeradius-server/src/lib/util/calc.c:2751,1
    - Dst: fr_value_calc_list_empty
      Src: /src/freeradius-server/src/lib/util/calc.c:2751,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2776,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2782,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/calc.c:2797,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/calc.c:2798,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 5
    argNames:
    - ctx
    - dst
    - list1
    - op
    - list2
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - fr_value_box_list_t*
    - fr_token_t
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2724
    functionDepth: 6
    functionLinenumber: 2724
    functionLinenumberEnd: 2801
    functionName: fr_value_calc_list_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 1
    functionsReached:
    - fr_value_box_init
    - fr_strerror_printf
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_assert
    - fr_value_box_list_empty
    - fr_value_calc_list_empty
    linkageType: ''
    returnType: int
    signature: int fr_value_calc_list_cmp(TALLOC_CTX *ctx, fr_value_box_t *dst, fr_value_box_list_t
      const *list1, fr_token_t op, fr_value_box_list_t const *list2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2776,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2774
    functionDepth: 6
    functionLinenumber: 2774
    functionLinenumberEnd: 2791
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 16
    functionsReached:
    - fr_assert
    - fr_value_calc_binary_op
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list1, a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/calc.c:2776,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/calc.c:2782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2775
    functionDepth: 6
    functionLinenumber: 2775
    functionLinenumberEnd: 2790
    functionName: fr_value_box_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/calc.c
    functionUses: 16
    functionsReached:
    - fr_assert
    - fr_value_calc_binary_op
    linkageType: ''
    returnType: void
    signature: void fr_value_box_list_foreach(list2, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - out
    - end
    - start
    argTypes:
    - struct timeval*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: fr_timeval_subtract
    functionSourceFile: /src/freeradius-server/src/lib/util/timeval.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_timeval_subtract(struct timeval *out, struct timeval const
      *end, struct timeval const *start)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/timeval.c:68,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/timeval.c:71,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/timeval.c:83,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/timeval.c:86,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/timeval.c:96,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/timeval.c:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct timeval*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 109
    functionName: fr_timeval_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/timeval.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - strlen
    - strtoul
    linkageType: ''
    returnType: int
    signature: int fr_timeval_from_str(struct timeval *out, char const *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/freeradius-server/src/lib/util/md5.c:67,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/util/md5.c:68,1
    - Dst: EVP_md5
      Src: /src/freeradius-server/src/lib/util/md5.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: fr_md5_openssl_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_MD_CTX_reset
    - EVP_md5
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_ctx_reset(fr_md5_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/freeradius-server/src/lib/util/md5.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_md5_ctx_t*
    - fr_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: fr_md5_openssl_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_ctx_copy(fr_md5_ctx_t *dst, fr_md5_ctx_t const
      *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/freeradius-server/src/lib/util/md5.c:86,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md5.c:87,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/util/md5.c:89,1
    - Dst: EVP_md5
      Src: /src/freeradius-server/src/lib/util/md5.c:89,1
    - Dst: ERR_error_string_n
      Src: /src/freeradius-server/src/lib/util/md5.c:92,1
    - Dst: ERR_get_error
      Src: /src/freeradius-server/src/lib/util/md5.c:92,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/md5.c:93,1
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/lib/util/md5.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: fr_md5_openssl_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - unlikely
    - EVP_DigestInit_ex
    - fr_strerror_printf
    - EVP_MD_CTX_new
    - ERR_get_error
    - ERR_error_string_n
    - EVP_md5
    linkageType: ''
    returnType: fr_md5_ctx_t
    signature: fr_md5_ctx_t *fr_md5_openssl_ctx_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/freeradius-server/src/lib/util/md5.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md5_ctx_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: fr_md5_openssl_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_ctx_free(fr_md5_ctx_t **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/util/md5.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - fr_md5_ctx_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: fr_md5_openssl_update
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_update(fr_md5_ctx_t *ctx, uint8_t const *in, size_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal
      Src: /src/freeradius-server/src/lib/util/md5.c:128,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/md5.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - ctx
    argTypes:
    - uint8_t[]
    - fr_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: fr_md5_openssl_final
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - EVP_DigestFinal
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_final(uint8_t out[static MD5_DIGEST_LENGTH], fr_md5_ctx_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: PUT_64BIT_LE
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_64BIT_LE(cp, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: PUT_32BIT_LE
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_32BIT_LE(cp, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: MD5_F1
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_F1(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: MD5_F2
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_F2(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: MD5_F3
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_F3(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: MD5_F4
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5_F4(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - f
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - data
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: MD5STEP
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD5STEP(f, w, x, y, z, data, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:228,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:229,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:230,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:231,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:232,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:233,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:234,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:235,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:236,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:237,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:238,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:239,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:240,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:241,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:242,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:243,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:245,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:246,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:247,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:248,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:249,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:250,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:251,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:252,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:253,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:254,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:255,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:256,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:257,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:258,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:259,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:260,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:262,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:263,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:264,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:265,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:266,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:267,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:268,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:269,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:270,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:271,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:272,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:273,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:274,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:275,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:276,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:277,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:279,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:280,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:281,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:282,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:283,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:284,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:285,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:286,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:287,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:288,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:289,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:290,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:291,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:292,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:293,1
    - Dst: MD5STEP
      Src: /src/freeradius-server/src/lib/util/md5.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 2
    argNames:
    - state
    - block
    argTypes:
    - uint32_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 300
    functionName: fr_md5_local_transform
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - MD5STEP
    linkageType: ''
    returnType: void
    signature: void fr_md5_local_transform(uint32_t state[static 4], uint8_t const
      block[static MD5_BLOCK_LENGTH])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md5.c:307,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/md5.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: fr_md5_local_ctx_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - memset
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_md5_local_ctx_reset(fr_md5_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/util/md5.c:323,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md5.c:324,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md5.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_md5_ctx_t*
    - fr_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: fr_md5_local_ctx_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_md5_local_ctx_copy(fr_md5_ctx_t *dst, fr_md5_ctx_t const *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/md5.c:336,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md5.c:337,1
    - Dst: fr_md5_local_ctx_reset
      Src: /src/freeradius-server/src/lib/util/md5.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: fr_md5_local_ctx_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - fr_md5_local_ctx_reset
    - unlikely
    - talloc
    linkageType: ''
    returnType: fr_md5_ctx_t
    signature: fr_md5_ctx_t *fr_md5_local_ctx_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/md5.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md5_ctx_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: fr_md5_local_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_md5_local_ctx_free(fr_md5_ctx_t **ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md5.c:359,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md5.c:388,1
    - Dst: fr_md5_local_transform
      Src: /src/freeradius-server/src/lib/util/md5.c:389,1
    - Dst: fr_md5_local_transform
      Src: /src/freeradius-server/src/lib/util/md5.c:397,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/md5.c:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - fr_md5_ctx_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 405
    functionName: fr_md5_local_update
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - fr_md5_local_transform
    - talloc_get_type_abort
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_md5_local_update(fr_md5_ctx_t *ctx, uint8_t const *in, size_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/md5.c:412,1
    - Dst: PUT_64BIT_LE
      Src: /src/freeradius-server/src/lib/util/md5.c:418,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/md5.c:425,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/md5.c:426,1
    - Dst: PUT_32BIT_LE
      Src: /src/freeradius-server/src/lib/util/md5.c:429,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/md5.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - out
    - ctx
    argTypes:
    - uint8_t[]
    - fr_md5_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 432
    functionName: fr_md5_local_final
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - fr_md5_update
    - PUT_32BIT_LE
    - talloc_get_type_abort
    - PUT_64BIT_LE
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_md5_local_final(uint8_t out[static MD5_DIGEST_LENGTH], fr_md5_ctx_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/lib/util/md5.c:444,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/lib/util/md5.c:445,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/lib/util/md5.c:446,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/lib/util/md5.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: fr_md5_calc
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 6
    functionsReached:
    - fr_md5_update
    - fr_md5_ctx_alloc_from_list
    - fr_md5_final
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: void
    signature: void fr_md5_calc(uint8_t out[static MD5_DIGEST_LENGTH], uint8_t const
      *in, size_t inlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_ctx_free
      Src: /src/freeradius-server/src/lib/util/md5.c:458,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/md5.c:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 465
    functionName: _md5_ctx_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - fr_md5_ctx_free
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _md5_ctx_free_on_exit(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md5.c:476,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/md5.c:477,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md5.c:478,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/md5.c:480,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/util/md5.c:484,1
    - Dst: fr_md5_ctx_alloc
      Src: /src/freeradius-server/src/lib/util/md5.c:490,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/md5.c:491,1
    - Dst: fr_md5_ctx_alloc
      Src: /src/freeradius-server/src/lib/util/md5.c:509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 510
    functionName: fr_md5_ctx_alloc_from_list
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 6
    functionsReached:
    - unlikely
    - fr_atexit_thread_local
    - fr_md5_ctx_alloc
    - talloc_zero_array
    - fr_strerror_const
    linkageType: ''
    returnType: fr_md5_ctx_t
    signature: fr_md5_ctx_t *fr_md5_ctx_alloc_from_list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_md5_ctx_reset
      Src: /src/freeradius-server/src/lib/util/md5.c:524,1
    - Dst: fr_md5_ctx_free
      Src: /src/freeradius-server/src/lib/util/md5.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_md5_ctx_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 533
    functionName: fr_md5_ctx_free_from_list
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 6
    functionsReached:
    - fr_md5_ctx_free
    - fr_md5_ctx_reset
    linkageType: ''
    returnType: void
    signature: void fr_md5_ctx_free_from_list(fr_md5_ctx_t **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/md5.c:548,1
    - Dst: fr_md5_ctx_free
      Src: /src/freeradius-server/src/lib/util/md5.c:550,1
    - Dst: fr_md5_ctx_alloc
      Src: /src/freeradius-server/src/lib/util/md5.c:556,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/md5.c:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - funcs
    argTypes:
    - fr_md5_funcs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 561
    functionName: md5_free_list_reinit
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_md5_ctx_free
    - fr_md5_ctx_alloc
    linkageType: ''
    returnType: void
    signature: void md5_free_list_reinit(fr_md5_funcs_t *funcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/md5.c:565,1
    - Dst: EVP_default_properties_is_fips_enabled
      Src: /src/freeradius-server/src/lib/util/md5.c:571,1
    - Dst: md5_free_list_reinit
      Src: /src/freeradius-server/src/lib/util/md5.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 582
    functionName: fr_md5_openssl_init
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 4
    functionsReached:
    - fr_assert
    - EVP_default_properties_is_fips_enabled
    - md5_free_list_reinit
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: md5_free_list_reinit
      Src: /src/freeradius-server/src/lib/util/md5.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: fr_md5_openssl_free
    functionSourceFile: /src/freeradius-server/src/lib/util/md5.c
    functionUses: 4
    functionsReached:
    - md5_free_list_reinit
    linkageType: ''
    returnType: void
    signature: void fr_md5_openssl_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: fr_cap_disable
    functionSourceFile: /src/freeradius-server/src/lib/util/cap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_cap_disable(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FR_BASE64_ENC_LENGTH
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_BASE64_ENC_LENGTH(_inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _inlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FR_BASE64_DEC_LENGTH
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_BASE64_DEC_LENGTH(_inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - alphabet
    argTypes:
    - char
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: fr_is_base64_nstd
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_is_base64_nstd(char c, uint8_t const alphabet[static SBUFF_CHAR_CLASS])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: fr_is_base64
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_is_base64(_c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _add_padding
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: fr_base64_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_base64_encode(_out, _in, _add_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _out
    - ','
    - _in
    - ','
    - _expect_padding
    - ','
    - _no_trailing
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: fr_base64_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/base64.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_base64_decode(_out, _in, _expect_padding, _no_trailing)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/freeradius-server/src/lib/util/time.c:118,1
    - Dst: clock_gettime
      Src: /src/freeradius-server/src/lib/util/time.c:119,1
    - Dst: atomic_store_explicit
      Src: /src/freeradius-server/src/lib/util/time.c:121,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.c:122,1
    - Dst: fr_time_delta_from_timespec
      Src: /src/freeradius-server/src/lib/util/time.c:122,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.c:123,1
    - Dst: fr_time_delta_from_timespec
      Src: /src/freeradius-server/src/lib/util/time.c:123,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/util/time.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 139
    functionName: fr_time_sync
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 2
    functionsReached:
    - fr_time_delta_unwrap
    - clock_gettime
    - atomic_store_explicit
    - localtime_r
    - fr_time_delta_from_timespec
    linkageType: ''
    returnType: int
    signature: int fr_time_sync(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tzset
      Src: /src/freeradius-server/src/lib/util/time.c:154,1
    - Dst: clock_gettime
      Src: /src/freeradius-server/src/lib/util/time.c:156,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.c:157,1
    - Dst: fr_time_delta_from_timespec
      Src: /src/freeradius-server/src/lib/util/time.c:157,1
    - Dst: fr_time_sync
      Src: /src/freeradius-server/src/lib/util/time.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 160
    functionName: fr_time_start
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 15
    functionsReached:
    - fr_time_delta_unwrap
    - clock_gettime
    - tzset
    - fr_time_sync
    - fr_time_delta_from_timespec
    linkageType: ''
    returnType: int
    signature: int fr_time_start(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:178,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/time.c:180,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/time.c:181,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/time.c:188,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:189,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/time.c:193,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - tz
    - delta
    argTypes:
    - char*
    - fr_time_delta_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: fr_time_delta_from_time_zone
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - strcmp
    linkageType: ''
    returnType: int
    signature: int fr_time_delta_from_time_zone(char const *tz, fr_time_delta_t *delta)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/time.c:217,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/time.c:227,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/time.c:230,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/time.c:237,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/util/time.c:242,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:247,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:248,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/time.c:254,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/time.c:261,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/time.c:262,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/time.c:265,1
    - Dst: fr_sbuff_out_by_longest_prefix
      Src: /src/freeradius-server/src/lib/util/time.c:273,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/time.c:275,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:282,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:283,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:286,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:287,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/time.c:296,1
    - Dst: fr_time_delta_from_integer
      Src: /src/freeradius-server/src/lib/util/time.c:317,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:320,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/time.c:321,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:322,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:325,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/time.c:339,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/time.c:341,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/time.c:346,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:351,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/time.c:352,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:353,1
    - Dst: fr_sbuff_out
      Src: /src/freeradius-server/src/lib/util/time.c:363,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:369,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/time.c:370,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:371,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:375,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:376,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:380,1
    - Dst: FR_SBUFF_ERROR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:381,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/time.c:385,1
    - Dst: fr_add
      Src: /src/freeradius-server/src/lib/util/time.c:390,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/time.c:398,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:399,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 114
    argCount: 5
    argNames:
    - out
    - in
    - hint
    - no_trailing
    - tt
    argTypes:
    - fr_time_delta_t*
    - fr_sbuff_t*
    - fr_time_res_t
    - bool
    - fr_sbuff_term_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 400
    functionName: fr_time_delta_from_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 3
    functionsReached:
    - fr_sbuff_is_terminal
    - fr_sbuff_out_by_longest_prefix
    - fr_sbuff_set_to_start
    - fr_sbuff_out
    - fr_strerror_printf
    - fr_sbuff_is_char
    - fr_sbuff_marker
    - fr_add
    - fr_table_str_by_value
    - fr_assert
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF_ERROR_RETURN
    - FR_SBUFF
    - fr_strerror_const
    - fr_time_delta_from_integer
    - fr_sbuff_next_if_char
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: fr_slen_t
    signature: "fr_slen_t fr_time_delta_from_substr(fr_time_delta_t *out, fr_sbuff_t
      *in, fr_time_res_t hint,\n\t\t\t\t    bool no_trailing, fr_sbuff_term_t const
      *tt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:417,1
    - Dst: fr_time_delta_from_substr
      Src: /src/freeradius-server/src/lib/util/time.c:421,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/time.c:421,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - out
    - in
    - inlen
    - hint
    argTypes:
    - fr_time_delta_t*
    - char*
    - size_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 428
    functionName: fr_time_delta_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 6
    functionsReached:
    - fr_strerror_const
    - FR_SBUFF_IN
    - fr_time_delta_from_substr
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_time_delta_from_str(fr_time_delta_t *out, char const *in,
      size_t inlen, fr_time_res_t hint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/time.c:442,1
    - Dst: fr_time_delta_to_integer
      Src: /src/freeradius-server/src/lib/util/time.c:454,1
    - Dst: MOD
      Src: /src/freeradius-server/src/lib/util/time.c:455,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/time.c:455,1
    - Dst: fr_time_delta_isneg
      Src: /src/freeradius-server/src/lib/util/time.c:462,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:463,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:466,1
    - Dst: fr_time_delta_isneg
      Src: /src/freeradius-server/src/lib/util/time.c:468,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:470,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/time.c:478,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/time.c:478,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:478,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/time.c:480,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/time.c:481,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:500,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - out
    - delta
    - res
    - is_unsigned
    argTypes:
    - fr_sbuff_t*
    - fr_time_delta_t
    - fr_time_res_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 501
    functionName: fr_time_delta_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_time_delta_unwrap
    - MOD
    - fr_time_delta_isneg
    - fr_sbuff_current
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - fr_time_delta_to_integer
    - FR_SBUFF
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_time_delta_to_str(fr_sbuff_t *out, fr_time_delta_t delta,
      fr_time_res_t res, bool is_unsigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: MOD
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD(a,b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/util/time.c:522,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/util/time.c:525,1
    - Dst: strftime
      Src: /src/freeradius-server/src/lib/util/time.c:527,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/time.c:527,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/time.c:527,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/time.c:527,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/time.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - time
    - fmt
    argTypes:
    - fr_sbuff_t*
    - fr_time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 531
    functionName: fr_time_strftime_local
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 2
    functionsReached:
    - fr_time_to_sec
    - fr_sbuff_current
    - strftime
    - localtime_r
    - strlen
    - fr_sbuff_advance
    - fr_sbuff_extend_lowat
    linkageType: ''
    returnType: size_t
    signature: size_t fr_time_strftime_local(fr_sbuff_t *out, fr_time_t time, char
      const *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/util/time.c:551,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/lib/util/time.c:554,1
    - Dst: strftime
      Src: /src/freeradius-server/src/lib/util/time.c:556,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/time.c:556,1
    - Dst: fr_sbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/util/time.c:556,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/time.c:556,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/time.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - time
    - fmt
    argTypes:
    - fr_sbuff_t*
    - fr_time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: fr_time_strftime_utc
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - gmtime_r
    - fr_sbuff_current
    - strftime
    - strlen
    - fr_sbuff_advance
    - fr_sbuff_extend_lowat
    linkageType: ''
    returnType: size_t
    signature: size_t fr_time_strftime_utc(fr_sbuff_t *out, fr_time_t time, char const
      *fmt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_gteq
      Src: /src/freeradius-server/src/lib/util/time.c:567,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:568,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/time.c:570,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:573,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:573,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:576,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:576,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:579,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:579,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:582,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:582,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:585,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:585,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:588,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:588,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/time.c:591,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - elapsed
    - start
    - end
    argTypes:
    - fr_time_elapsed_t*
    - fr_time_t
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 598
    functionName: fr_time_elapsed_update
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_lt
    - fr_time_delta_wrap
    - fr_time_sub
    - fr_time_gteq
    linkageType: ''
    returnType: void
    signature: void fr_time_elapsed_update(fr_time_elapsed_t *elapsed, fr_time_t start,
      fr_time_t end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/time.c:615,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/time.c:622,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/time.c:625,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/time.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - fp
    - elapsed
    - prefix
    - tab_offset
    argTypes:
    - FILE*
    - fr_time_elapsed_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 639
    functionName: fr_time_elapsed_fprint
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 1
    functionsReached:
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_time_elapsed_fprint(FILE *fp, fr_time_elapsed_t const *elapsed,
      char const *prefix, int tab_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/time.c:655,1
    - Dst: __typeof__
      Src: /src/freeradius-server/src/lib/util/time.c:655,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/time.c:655,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.c:655,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/time.c:657,1
    - Dst: fr_unix_time_min
      Src: /src/freeradius-server/src/lib/util/time.c:657,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:667,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:668,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:669,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:670,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:671,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:672,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:673,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:674,1
    - Dst: CHECK
      Src: /src/freeradius-server/src/lib/util/time.c:675,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/lib/util/time.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 686
    functionName: fr_unix_time_from_tm
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 0
    functionsReached:
    - unlikely
    - CHECK
    - fr_unix_time_from_sec
    - fr_unix_time_min
    - __typeof__
    - NUM_ELEMENTS
    linkageType: ''
    returnType: fr_unix_time_t
    signature: fr_unix_time_t fr_unix_time_from_tm(struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: CHECK
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(_x, _max)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - t
    - hint
    argTypes:
    - int64_t
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 734
    functionName: fr_time_scale
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t fr_time_scale(int64_t t, fr_time_res_t hint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/time.c:746,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/time.c:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - sep
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 756
    functionName: mystrtok
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *mystrtok(char **ptr, char const *sep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/time.c:766,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/time.c:766,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:770,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:775,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - str
    - date
    - min
    - max
    - term
    - name
    argTypes:
    - char**
    - int*
    - int
    - int
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 794
    functionName: get_part
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - isdigit
    linkageType: ''
    returnType: int
    signature: int get_part(char **str, int *date, int min, int max, char term, char
      const *name)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:820,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:823,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/time.c:831,1
    - Dst: fr_unix_time_from_nsec
      Src: /src/freeradius-server/src/lib/util/time.c:833,1
    - Dst: fr_time_scale
      Src: /src/freeradius-server/src/lib/util/time.c:833,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/time.c:838,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:858,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:861,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:862,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:863,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:864,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/time.c:868,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:870,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:895,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:903,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:909,1
    - Dst: get_part
      Src: /src/freeradius-server/src/lib/util/time.c:910,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/time.c:913,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/lib/util/time.c:938,1
    - Dst: fr_unix_time_from_tm
      Src: /src/freeradius-server/src/lib/util/time.c:938,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:938,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/time.c:959,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/time.c:963,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/time.c:966,1
    - Dst: strptime
      Src: /src/freeradius-server/src/lib/util/time.c:968,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/time.c:970,1
    - Dst: fr_unix_time_from_tm
      Src: /src/freeradius-server/src/lib/util/time.c:971,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/time.c:974,1
    - Dst: strptime
      Src: /src/freeradius-server/src/lib/util/time.c:980,1
    - Dst: fr_unix_time_from_tm
      Src: /src/freeradius-server/src/lib/util/time.c:982,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/time.c:986,1
    - Dst: mystrtok
      Src: /src/freeradius-server/src/lib/util/time.c:989,1
    - Dst: mystrtok
      Src: /src/freeradius-server/src/lib/util/time.c:990,1
    - Dst: mystrtok
      Src: /src/freeradius-server/src/lib/util/time.c:991,1
    - Dst: mystrtok
      Src: /src/freeradius-server/src/lib/util/time.c:992,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:994,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/lib/util/time.c:1005,1
    - Dst: fr_time_delta_from_time_zone
      Src: /src/freeradius-server/src/lib/util/time.c:1006,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/time.c:1015,1
    - Dst: isalpha
      Src: /src/freeradius-server/src/lib/util/time.c:1029,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/util/time.c:1040,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1050,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/time.c:1057,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1059,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/time.c:1064,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1066,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1080,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1093,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1101,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/time.c:1110,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/time.c:1112,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/time.c:1118,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/time.c:1121,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/time.c:1124,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/time.c:1125,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/lib/util/time.c:1128,1
    - Dst: fr_unix_time_from_tm
      Src: /src/freeradius-server/src/lib/util/time.c:1128,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 186
    argCount: 3
    argNames:
    - date
    - date_str
    - hint
    argTypes:
    - fr_unix_time_t*
    - char*
    - fr_time_res_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 1131
    functionName: fr_unix_time_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 3
    functionsReached:
    - memcpy
    - fr_unix_time_add
    - strptime
    - fr_strerror_printf
    - talloc_strdup
    - strlcpy
    - strncasecmp
    - fr_time_scale
    - get_part
    - strtoul
    - memset
    - fr_time_delta_from_time_zone
    - fr_strerror_const
    - fr_time_delta_wrap
    - fr_unix_time_from_nsec
    - mystrtok
    - talloc_free
    - strchr
    - strstr
    - fr_skip_whitespace
    - isalpha
    - atoi
    - fr_unix_time_from_tm
    linkageType: ''
    returnType: int
    signature: int fr_unix_time_from_str(fr_unix_time_t *date, char const *date_str,
      fr_time_res_t hint)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/time.c:1145,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/lib/util/time.c:1152,1
    - Dst: gmtime_r
      Src: /src/freeradius-server/src/lib/util/time.c:1154,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/lib/util/time.c:1156,1
    - Dst: strftime
      Src: /src/freeradius-server/src/lib/util/time.c:1159,1
    - Dst: FR_SBUFF_IN_BSTRNCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1160,1
    - Dst: fr_unix_time_unwrap
      Src: /src/freeradius-server/src/lib/util/time.c:1161,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1182,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1187,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1192,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1196,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1209,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1211,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/time.c:1214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 4
    argNames:
    - out
    - time
    - res
    - utc
    argTypes:
    - fr_sbuff_t*
    - fr_unix_time_t
    - fr_time_res_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1215
    functionName: fr_unix_time_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 1
    functionsReached:
    - gmtime_r
    - strftime
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - localtime_r
    - fr_unix_time_unwrap
    - FR_SBUFF
    - FR_SBUFF_IN_BSTRNCPY_RETURN
    - fr_unix_time_to_sec
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_unix_time_to_str(fr_sbuff_t *out, fr_unix_time_t time,
      fr_time_res_t res, bool utc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/time.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1223
    functionName: fr_time_gmtoff
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 2
    functionsReached:
    - fr_time_delta_wrap
    linkageType: ''
    returnType: fr_time_delta_t
    signature: fr_time_delta_t fr_time_gmtoff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1231
    functionName: fr_time_is_dst
    functionSourceFile: /src/freeradius-server/src/lib/util/time.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_time_is_dst(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_UP_POW2
      Src: /src/freeradius-server/src/lib/util/ext.c:57,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/ext.c:69,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/ext.c:70,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/ext.c:70,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:72,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:73,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/ext.c:83,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/lib/util/ext.c:84,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/ext.c:85,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/ext.c:86,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/ext.c:95,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/ext.c:96,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/ext.c:98,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/ext.c:99,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/util/ext.c:102,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:104,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/ext.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - def
    - chunk_p
    - ext
    - ext_len
    argTypes:
    - fr_ext_t*
    - void**
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 120
    functionName: fr_ext_alloc_size
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.c
    functionUses: 3
    functionsReached:
    - unlikely
    - ROUND_UP_DIV
    - talloc_realloc_size
    - fr_ext_ptr
    - fr_strerror_printf
    - fr_syserror
    - talloc_get_name
    - talloc_set_name_const
    - memset
    - fr_assert
    - fr_ext_offsets
    - talloc_get_size
    - fr_strerror_const
    - ROUND_UP_POW2
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void *fr_ext_alloc_size(fr_ext_t const *def, void **chunk_p, int ext,
      size_t ext_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:138,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - def
    - chunk
    - ext
    argTypes:
    - fr_ext_t*
    - TALLOC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: fr_ext_len
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.c
    functionUses: 1
    functionsReached:
    - fr_ext_offsets
    - fr_ext_ptr
    linkageType: ''
    returnType: size_t
    signature: size_t fr_ext_len(fr_ext_t const *def, TALLOC_CTX const *chunk, int
      ext)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:166,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:167,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/ext.c:172,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:178,1
    - Dst: fr_ext_info_t*::alloc
      Src: /src/freeradius-server/src/lib/util/ext.c:186,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:188,1
    - Dst: fr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/ext.c:195,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:196,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:199,1
    - Dst: fr_ext_info_t*::copy
      Src: /src/freeradius-server/src/lib/util/ext.c:203,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:205,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:207,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/ext.c:214,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:214,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:220,1
    - Dst: fr_ext_info_t*::fixup
      Src: /src/freeradius-server/src/lib/util/ext.c:227,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:228,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:229,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - def
    - chunk_dst
    - chunk_src
    - ext
    argTypes:
    - fr_ext_t*
    - TALLOC_CTX**
    - TALLOC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 233
    functionName: fr_ext_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.c
    functionUses: 1
    functionsReached:
    - fr_ext_info_t*::alloc
    - memcpy
    - fr_ext_ptr
    - fr_ext_len
    - fr_ext_alloc_size
    - fr_ext_offsets
    - fr_ext_info_t*::fixup
    - fr_strerror_const
    - fr_ext_info_t*::copy
    linkageType: ''
    returnType: void
    signature: void *fr_ext_copy(fr_ext_t const *def, TALLOC_CTX **chunk_dst, TALLOC_CTX
      const *chunk_src, int ext)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:251,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:252,1
    - Dst: fr_ext_info_t*::alloc
      Src: /src/freeradius-server/src/lib/util/ext.c:270,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:271,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:272,1
    - Dst: fr_ext_alloc_size
      Src: /src/freeradius-server/src/lib/util/ext.c:279,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:279,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:282,1
    - Dst: fr_ext_info_t*::fixup
      Src: /src/freeradius-server/src/lib/util/ext.c:299,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:300,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:301,1
    - Dst: fr_ext_info_t*::copy
      Src: /src/freeradius-server/src/lib/util/ext.c:307,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:309,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:310,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:312,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:313,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/ext.c:320,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:320,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:321,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:322,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 3
    argNames:
    - def
    - chunk_dst
    - chunk_src
    argTypes:
    - fr_ext_t*
    - TALLOC_CTX**
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 327
    functionName: fr_ext_copy_all
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.c
    functionUses: 1
    functionsReached:
    - fr_ext_info_t*::alloc
    - memcpy
    - fr_ext_ptr
    - fr_ext_len
    - fr_ext_alloc_size
    - fr_ext_offsets
    - fr_ext_info_t*::fixup
    - fr_ext_info_t*::copy
    linkageType: ''
    returnType: int
    signature: int fr_ext_copy_all(fr_ext_t const *def, TALLOC_CTX **chunk_dst, TALLOC_CTX
      const *chunk_src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/ext.c:343,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/ext.c:343,1
    - Dst: fr_ext_offsets
      Src: /src/freeradius-server/src/lib/util/ext.c:345,1
    - Dst: fr_ext_ptr
      Src: /src/freeradius-server/src/lib/util/ext.c:348,1
    - Dst: fr_ext_len
      Src: /src/freeradius-server/src/lib/util/ext.c:349,1
    - Dst: fr_table_ordered_str_by_num
      Src: /src/freeradius-server/src/lib/util/ext.c:350,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/ext.c:355,1
    - Dst: FR_FAULT_LOG
      Src: /src/freeradius-server/src/lib/util/ext.c:360,1
    - Dst: FR_FAULT_LOG_HEX
      Src: /src/freeradius-server/src/lib/util/ext.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - def
    - name
    - chunk
    argTypes:
    - fr_ext_t*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 365
    functionName: fr_ext_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/ext.c
    functionUses: 2
    functionsReached:
    - FR_FAULT_LOG
    - fr_ext_ptr
    - fr_ext_len
    - talloc_get_size
    - fr_ext_offsets
    - fr_table_ordered_str_by_num
    - FR_FAULT_LOG_HEX
    linkageType: ''
    returnType: void
    signature: void fr_ext_debug(fr_ext_t const *def, char const *name, void const
      *chunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: fr_timer_at
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_timer_at(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: fr_timer_in
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_timer_in(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: FR_TIMER_DISARM
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIMER_DISARM(_ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: FR_TIMER_DISARM_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIMER_DISARM_RETURN(_ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: FR_TIMER_DELETE
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIMER_DELETE(_ev_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ev_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: FR_TIMER_DELETE_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TIMER_DELETE_RETURN(_ev_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_timer_armed
      Src: /src/freeradius-server/src/lib/util/timer.h:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - fr_timer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: fr_timer_armed
    functionSourceFile: /src/freeradius-server/src/lib/util/timer.h
    functionUses: 22
    functionsReached:
    - _fr_timer_armed
    linkageType: ''
    returnType: bool
    signature: bool fr_timer_armed(fr_timer_t *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 115
    functionName: FR_SLAB_TYPES
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SLAB_TYPES(_name, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: FR_SLAB_FUNCS
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SLAB_FUNCS(_name, _type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/slab.h:138,1
    - Dst: _slab_head
      Src: /src/freeradius-server/src/lib/util/slab.h:145,1
    - Dst: _slab_next
      Src: /src/freeradius-server/src/lib/util/slab.h:147,1
    - Dst: _slab_element_num_elements
      Src: /src/freeradius-server/src/lib/util/slab.h:150,1
    - Dst: _slab_element_num_elements
      Src: /src/freeradius-server/src/lib/util/slab.h:151,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/slab.h:153,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/slab.h:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: _slab_cleanup
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached:
    - talloc_free
    - _slab_head
    - talloc_get_type_abort
    - fr_timer_in
    - _slab_element_num_elements
    - _slab_next
    linkageType: ''
    returnType: void
    signature: void _slab_cleanup(fr_timer_list_t *tl, UNUSED fr_time_t now, void
      *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/slab.h:189,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/slab.h:189,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/slab.h:203,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/slab.h:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/slab.h:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 8
    argNames:
    - ctx
    - el
    - config
    - alloc
    - reserve
    - uctx
    - release_reset
    - reserve_mru
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - fr_slab_config_t*
    - _type
    - _type
    - void*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 209
    functionName: _slab_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 11
    functionsReached:
    - unlikely
    - talloc_free
    - fr_timer_in
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: _name
    signature: "_name *_name ## _slab_list_alloc(TALLOC_CTX *ctx, \\\n\t\t\t\t\t\t\t\t
      \      fr_event_list_t *el, \\\n\t\t\t\t\t\t\t\t       fr_slab_config_t const
      *config, \\\n\t\t\t\t\t\t\t\t       _type ## _slab_alloc_t alloc, \\\n\t\t\t\t\t\t\t\t
      \      _type ## _slab_reserve_t reserve, \\\n\t\t\t\t\t\t\t\t       void *uctx,
      \\\n\t\t\t\t\t\t\t\t       bool release_reset, \\\n\t\t\t\t\t\t\t\t       bool
      reserve_mru)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slab
    argTypes:
    - _name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: _slab_free
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int _slab_free(_name ## _slab_t *slab)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _name*::free
      Src: /src/freeradius-server/src/lib/util/slab.h:239,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/util/slab.h:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - element
    argTypes:
    - _name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: _element_free
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached:
    - _name*::free
    - fr_assert_msg
    linkageType: ''
    returnType: int
    signature: 'int _element_free(_name ## _slab_element_t *element)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - elem
    - func
    - uctx
    argTypes:
    - _type*
    - _type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: _slab_element_set_destructor
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void _slab_element_set_destructor(_type *elem, _type ## _slab_free_t
      func, void *uctx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _name*::free
      Src: /src/freeradius-server/src/lib/util/slab.h:360,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/slab.h:366,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/slab.h:367,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/slab.h:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - elem
    argTypes:
    - _type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 381
    functionName: _slab_release
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 37
    functionsReached:
    - memset
    - _name*::free
    - talloc_free_children
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _slab_release(_type *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slab_list
    argTypes:
    - _name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: _slab_num_elements_used
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int _slab_num_elements_used(_name ## _slab_list_t *slab_list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _slab_num_elements
      Src: /src/freeradius-server/src/lib/util/slab.h:390,1
    - Dst: _slab_num_elements
      Src: /src/freeradius-server/src/lib/util/slab.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slab_list
    argTypes:
    - _name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: _slab_num_allocated
    functionSourceFile: /src/freeradius-server/src/lib/util/slab.h
    functionUses: 0
    functionsReached:
    - _slab_num_elements
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int _slab_num_allocated(_name ## _slab_list_t *slab_list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/proto.c:32,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/proto.c:33,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/proto.c:34,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/proto.c:36,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/lib/util/proto.c:36,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/proto.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - file
    - line
    - fmt
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 7
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: fr_proto_print
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_box_strvalue_buffer
    - fr_vasprintf
    - fr_log
    linkageType: ''
    returnType: void
    signature: void fr_proto_print(char const *file, int line, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/proto.c:48,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/util/proto.c:49,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/proto.c:50,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/proto.c:51,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/proto.c:52,1
    - Dst: fr_log_hex
      Src: /src/freeradius-server/src/lib/util/proto.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - file
    - line
    - data
    - data_len
    - fmt
    argTypes:
    - char*
    - int
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 8
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: fr_proto_print_hex_data
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_log
    - fr_log_hex
    - talloc_vasprintf
    linkageType: ''
    returnType: void
    signature: void fr_proto_print_hex_data(char const *file, int line, uint8_t const
      *data, size_t data_len, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/proto.c:63,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/lib/util/proto.c:64,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/proto.c:65,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/proto.c:66,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/proto.c:67,1
    - Dst: fr_log_hex_marker
      Src: /src/freeradius-server/src/lib/util/proto.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - file
    - line
    - data
    - data_len
    - slen
    - fmt
    argTypes:
    - char*
    - int
    - uint8_t*
    - size_t
    - ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: fr_proto_print_hex_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - fr_log
    - fr_log_hex_marker
    - talloc_vasprintf
    linkageType: ''
    returnType: void
    signature: void fr_proto_print_hex_marker(char const *file, int line, uint8_t
      const *data, size_t data_len, ssize_t slen, char const *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/proto.c:77,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/proto.c:79,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/proto.c:82,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/proto.c:84,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/util/proto.c:84,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/proto.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - file
    - line
    - func
    - da_stack
    - depth
    argTypes:
    - char*
    - int
    - char*
    - fr_da_stack_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 73
    functionDepth: 7
    functionLinenumber: 73
    functionLinenumberEnd: 88
    functionName: fr_proto_da_stack_print
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 0
    functionsReached:
    - fr_type_to_str
    - fr_log
    - fr_dict_vendor_num_by_da
    linkageType: ''
    returnType: void
    signature: void fr_proto_da_stack_print(char const *file, int line, char const
      *func, fr_da_stack_t *da_stack, unsigned int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/proto.c:103,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/proto.c:105,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/proto.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: fr_proto_next_encodable
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - PAIR_VERIFY
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_proto_next_encodable(fr_dcursor_t *cursor, void *current,
      void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - stack
    - da
    argTypes:
    - fr_da_stack_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: fr_proto_da_stack_build
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_proto_da_stack_build(fr_da_stack_t *stack, fr_dict_attr_t const
      *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/util/proto.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - stack
    - parent
    - da
    argTypes:
    - fr_da_stack_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 165
    functionName: fr_proto_da_stack_build_partial
    functionSourceFile: /src/freeradius-server/src/lib/util/proto.c
    functionUses: 1
    functionsReached:
    - fr_proto_da_stack_build
    linkageType: ''
    returnType: void
    signature: void fr_proto_da_stack_build_partial(fr_da_stack_t *stack, fr_dict_attr_t
      const *parent, fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: FR_STATS_TYPEDEF
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_TYPEDEF(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: FR_STATS_LINK_NAME
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_LINK_NAME(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: FR_STATS_ENTRY_DECL
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_ENTRY_DECL(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - _mib
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: FR_STATS_ENTRY_INIT
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_ENTRY_INIT(_name, _var, _mib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _var
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: FR_STATS_INC
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_INC(_var, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _var
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: FR_STATS_FIELD
    functionSourceFile: /src/freeradius-server/src/lib/util/stats.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_STATS_FIELD(_var, _field)
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 46
    argCount: 2
    argNames:
    - str
    - inlen
    argTypes:
    - uint8_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 142
    functionName: fr_utf8_char
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fr_utf8_char(uint8_t const *str, ssize_t inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/print.c:158,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/print.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - str
    - inlen
    argTypes:
    - uint8_t*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: fr_utf8_str
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 1
    functionsReached:
    - fr_utf8_char
    - strlen
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_utf8_str(uint8_t const *str, ssize_t inlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/print.c:189,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/print.c:197,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/print.c:208,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/print.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - out_chr_len
    - str
    - inlen
    - chr
    argTypes:
    - int*
    - char*
    - ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 221
    functionName: fr_utf8_strchr
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 2
    functionsReached:
    - fr_utf8_char
    - strlen
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *fr_utf8_strchr(int *out_chr_len, char const *str, ssize_t inlen,
      char const *chr)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/print.c:251,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/print.c:261,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/print.c:264,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/util/print.c:352,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/print.c:374,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/print.c:391,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 117
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - quote
    argTypes:
    - char*
    - size_t
    - char*
    - ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 406
    functionName: fr_snprint
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 3
    functionsReached:
    - fr_utf8_char
    - strlen
    - snprintf
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t fr_snprint(char *out, size_t outlen, char const *in, ssize_t
      inlen, char quote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/lib/util/print.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - inlen
    - quote
    argTypes:
    - char*
    - ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: fr_snprint_len
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 1
    functionsReached:
    - fr_snprint
    linkageType: ''
    returnType: size_t
    signature: size_t fr_snprint_len(char const *in, ssize_t inlen, char quote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_snprint_len
      Src: /src/freeradius-server/src/lib/util/print.c:443,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/print.c:445,1
    - Dst: fr_snprint
      Src: /src/freeradius-server/src/lib/util/print.c:446,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/util/print.c:451,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/print.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - in
    - inlen
    - quote
    argTypes:
    - TALLOC_CTX*
    - char*
    - ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 457
    functionName: fr_asprint
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 7
    functionsReached:
    - talloc_free
    - talloc_array
    - fr_snprint
    - fr_cond_assert
    - fr_snprint_len
    linkageType: ''
    returnType: char
    signature: char *fr_asprint(TALLOC_CTX *ctx, char const *in, ssize_t inlen, char
      quote)
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/print.c:485,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:490,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/print.c:491,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/print.c:492,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/print.c:508,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:544,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:547,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/util/print.c:550,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/util/print.c:561,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:596,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:598,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:605,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:607,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:611,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:613,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:619,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:623,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:627,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:632,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:634,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:649,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:654,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:659,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:663,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:681,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/print.c:688,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:689,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/util/print.c:695,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:698,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/lib/util/print.c:712,1
    - Dst: talloc_vasprintf_append_buffer
      Src: /src/freeradius-server/src/lib/util/print.c:713,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/print.c:714,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/print.c:717,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/print.c:718,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/print.c:719,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:720,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:721,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/util/print.c:726,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/print.c:728,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:731,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/util/print.c:733,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/print.c:735,1
    - Dst: va_copy
      Src: /src/freeradius-server/src/lib/util/print.c:739,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:747,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:750,1
    - Dst: fr_base16_aencode
      Src: /src/freeradius-server/src/lib/util/print.c:757,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/print.c:757,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:759,1
    - Dst: fr_base16_aencode
      Src: /src/freeradius-server/src/lib/util/print.c:764,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/print.c:764,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/print.c:774,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:775,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/print.c:775,1
    - Dst: fr_base16_aencode
      Src: /src/freeradius-server/src/lib/util/print.c:779,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/print.c:779,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/print.c:780,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:789,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:792,1
    - Dst: fr_value_box_list_aprint_secure
      Src: /src/freeradius-server/src/lib/util/print.c:797,1
    - Dst: fr_value_box_list_aprint
      Src: /src/freeradius-server/src/lib/util/print.c:799,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:806,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/print.c:809,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/print.c:813,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/util/print.c:815,1
    - Dst: fr_pair_aprint_secure
      Src: /src/freeradius-server/src/lib/util/print.c:816,1
    - Dst: fr_pair_aprint
      Src: /src/freeradius-server/src/lib/util/print.c:818,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:824,1
    - Dst: va_arg
      Src: /src/freeradius-server/src/lib/util/print.c:829,1
    - Dst: talloc_vasprintf_append_buffer
      Src: /src/freeradius-server/src/lib/util/print.c:842,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:847,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:848,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 273
    argCount: 4
    argNames:
    - ctx
    - fmt
    - ap
    - suppress_secrets
    argTypes:
    - TALLOC_CTX*
    - char*
    - va_list
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 858
    functionName: fr_vasprintf_internal
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 0
    functionsReached:
    - va_arg
    - fr_value_box_aprint
    - isdigit
    - talloc_strdup_append_buffer
    - talloc_strdup
    - fr_pair_aprint
    - FR_DBUFF_TMP
    - strlen
    - fr_value_box_cast
    - fr_strerror
    - fr_value_box_list_aprint_secure
    - fr_value_box_list_aprint
    - unlikely
    - fr_value_box_clear
    - va_copy
    - fr_pair_aprint_secure
    - strtoul
    - fr_strerror_const
    - talloc_strndup
    - fr_base16_aencode
    - va_end
    - TALLOC_FREE
    - talloc_free
    - talloc_vasprintf_append_buffer
    - PAIR_VERIFY
    linkageType: ''
    returnType: char
    signature: char *fr_vasprintf_internal(TALLOC_CTX *ctx, char const *fmt, va_list
      ap, bool suppress_secrets)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_vasprintf_internal
      Src: /src/freeradius-server/src/lib/util/print.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - fmt
    - ap
    argTypes:
    - TALLOC_CTX*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 860
    functionDepth: 6
    functionLinenumber: 860
    functionLinenumberEnd: 863
    functionName: fr_vasprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 18
    functionsReached:
    - fr_vasprintf_internal
    linkageType: ''
    returnType: char
    signature: char *fr_vasprintf(TALLOC_CTX *ctx, char const *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_vasprintf_internal
      Src: /src/freeradius-server/src/lib/util/print.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - fmt
    - ap
    argTypes:
    - TALLOC_CTX*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 6
    functionLinenumber: 865
    functionLinenumberEnd: 868
    functionName: fr_vasprintf_secure
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 1
    functionsReached:
    - fr_vasprintf_internal
    linkageType: ''
    returnType: char
    signature: char *fr_vasprintf_secure(TALLOC_CTX *ctx, char const *fmt, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/print.c:888,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/print.c:889,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - fmt
    argTypes:
    - TALLOC_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 883
    functionDepth: 7
    functionLinenumber: 883
    functionLinenumberEnd: 893
    functionName: fr_asprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 8
    functionsReached:
    - fr_vasprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: char
    signature: char *fr_asprintf(TALLOC_CTX *ctx, char const *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/print.c:913,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/print.c:917,1
    - Dst: fr_vasprintf
      Src: /src/freeradius-server/src/lib/util/print.c:918,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/print.c:919,1
    - Dst: fputs
      Src: /src/freeradius-server/src/lib/util/print.c:921,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/util/print.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fp
    - fmt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 906
    functionDepth: 7
    functionLinenumber: 906
    functionLinenumberEnd: 926
    functionName: fr_fprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/print.c
    functionUses: 1
    functionsReached:
    - TALLOC_FREE
    - va_end
    - va_start
    - fr_vasprintf
    - fputs
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_fprintf(FILE *fp, char const *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - su
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: SUN_LEN
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUN_LEN(su)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/socket.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: fr_socket_proto_is_known
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    linkageType: ''
    returnType: bool
    signature: bool fr_socket_proto_is_known(int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _func
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: FR_SOCKET_ADDR_ALLOC_DEF_FUNC
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_SOCKET_ADDR_ALLOC_DEF_FUNC(_func, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - fr_socket_t*
    - fr_socket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: fr_socket_addr_swap
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_socket_addr_swap(fr_socket_t *dst, fr_socket_t const *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_proto_is_known
      Src: /src/freeradius-server/src/lib/util/socket.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - addr
    - proto
    - ifindex
    - src_ipaddr
    - src_port
    - dst_ipaddr
    - dst_port
    argTypes:
    - fr_socket_t*
    - int
    - int
    - fr_ipaddr_t*
    - int
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 168
    functionName: fr_socket_addr_init_inet
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 0
    functionsReached:
    - fr_socket_proto_is_known
    linkageType: ''
    returnType: fr_socket_t
    signature: "fr_socket_t *fr_socket_addr_init_inet(fr_socket_t *addr,\n\t\t\t\t\t\t
      \   int proto,\n\t\t\t\t\t\t    int ifindex, fr_ipaddr_t const *src_ipaddr,
      int src_port,\n\t\t\t\t\t\t    fr_ipaddr_t const *dst_ipaddr, int dst_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_proto_is_known
      Src: /src/freeradius-server/src/lib/util/socket.h:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - addr
    - proto
    - ifindex
    - ipaddr
    - port
    argTypes:
    - fr_socket_t*
    - int
    - int
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: fr_socket_addr_init_inet_src
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 0
    functionsReached:
    - fr_socket_proto_is_known
    linkageType: ''
    returnType: fr_socket_t
    signature: "fr_socket_t *fr_socket_addr_init_inet_src(fr_socket_t *addr,\n\t\t\t\t\t\t\tint
      proto, int ifindex, fr_ipaddr_t const *ipaddr, int port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_proto_is_known
      Src: /src/freeradius-server/src/lib/util/socket.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - addr
    - proto
    - ipaddr
    - port
    argTypes:
    - fr_socket_t*
    - int
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 271
    functionName: fr_socket_addr_init_inet_dst
    functionSourceFile: /src/freeradius-server/src/lib/util/socket.h
    functionUses: 0
    functionsReached:
    - fr_socket_proto_is_known
    linkageType: ''
    returnType: fr_socket_t
    signature: fr_socket_t *fr_socket_addr_init_inet_dst(fr_socket_t *addr, int proto,
      fr_ipaddr_t const *ipaddr, int port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/net.c:77,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/net.c:81,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/net.c:87,1
    - Dst: fr_udp_checksum
      Src: /src/freeradius-server/src/lib/util/net.c:93,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/net.c:96,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/net.c:97,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/lib/util/net.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - data
    - remaining
    - ip
    argTypes:
    - uint8_t*
    - uint16_t
    - ip_header_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 103
    functionName: fr_udp_header_check
    functionSourceFile: /src/freeradius-server/src/lib/util/net.c
    functionUses: 0
    functionsReached:
    - ntohs
    - fr_strerror_printf
    - fr_udp_checksum
    linkageType: ''
    returnType: int
    signature: int fr_udp_header_check(uint8_t const *data, uint16_t remaining, ip_header_t
      const * ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/net.c:134,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/net.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - data
    - len
    - checksum
    - src_addr
    - dst_addr
    argTypes:
    - uint8_t*
    - uint16_t
    - uint16_t
    - struct in_addr
    - struct in_addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 145
    functionName: fr_udp_checksum
    functionSourceFile: /src/freeradius-server/src/lib/util/net.c
    functionUses: 2
    functionsReached:
    - htons
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t fr_udp_checksum(uint8_t const *data, uint16_t len, uint16_t
      checksum,\n\t\t\t struct in_addr const src_addr, struct in_addr const dst_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ihl
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: fr_ip_header_checksum
    functionSourceFile: /src/freeradius-server/src/lib/util/net.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fr_ip_header_checksum(uint8_t const *data, uint8_t ihl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/net.c:176,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/net.c:177,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/net.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - src
    - dst
    - ip_len
    - ip_next
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 190
    functionName: fr_ip6_pseudo_header_checksum
    functionSourceFile: /src/freeradius-server/src/lib/util/net.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fr_ip6_pseudo_header_checksum(struct in6_addr const *src,
      struct in6_addr const *dst, uint16_t ip_len, uint8_t ip_next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: fr_pair_reset_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_pair_reset_parent(parent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair_print.c:64,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_print.c:66,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/pair_print.c:73,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:74,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:77,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:79,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:81,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:84,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:97,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/util/pair_print.c:97,1
    - Dst: fr_value_box_print_quoted
      Src: /src/freeradius-server/src/lib/util/pair_print.c:100,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - out
    - vp
    - quote
    argTypes:
    - fr_sbuff_t*
    - fr_pair_t*
    - fr_token_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 105
    functionName: fr_pair_print_value_quoted
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 12
    functionsReached:
    - fr_pair_list_empty
    - fr_value_box_print_quoted
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - PAIR_VERIFY
    - FR_SBUFF
    - fr_type_to_str
    - FR_SBUFF_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_print_value_quoted(fr_sbuff_t *out, fr_pair_t const
      *vp, fr_token_t quote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_print.c:112,1
    - Dst: fr_value_box_enum_name
      Src: /src/freeradius-server/src/lib/util/pair_print.c:115,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:116,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:117,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:120,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - out
    - vp
    argTypes:
    - fr_sbuff_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: fr_pair_print_value
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - fr_value_box_enum_name
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_print_value(fr_sbuff_t *out, fr_pair_t const *vp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_print.c:140,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair_print.c:147,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/pair_print.c:150,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair_print.c:152,1
    - Dst: fr_pair_reset_parent
      Src: /src/freeradius-server/src/lib/util/pair_print.c:156,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:158,1
    - Dst: FR_DICT_ATTR_OID_PRINT_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:159,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/pair_print.c:170,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_print.c:172,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/pair_print.c:173,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair_print.c:175,1
    - Dst: fr_pair_reset_parent
      Src: /src/freeradius-server/src/lib/util/pair_print.c:177,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:179,1
    - Dst: FR_DICT_ATTR_OID_PRINT_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:180,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/pair_print.c:190,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/util/pair_print.c:192,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/util/pair_print.c:193,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:194,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:195,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:208,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:209,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:210,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:213,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - out
    - parent
    - vp_p
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_pair_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 214
    functionName: fr_pair_print_name
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 3
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_pair_list_num_elements
    - FR_DICT_ATTR_OID_PRINT_RETURN
    - fr_dict_attr_by_name
    - fr_type_is_structural
    - fr_pair_reset_parent
    - fr_sbuff_marker
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - fr_pair_list_head
    - FR_SBUFF
    - fr_sbuff_set
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_print_name(fr_sbuff_t *out, fr_dict_attr_t const *parent,
      fr_pair_t const **vp_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_print.c:234,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair_print.c:236,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:238,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:240,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out
    - parent
    - vp
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: fr_pair_print
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 2
    functionsReached:
    - FR_SBUFF
    - FR_SBUFF_SET_RETURN
    - PAIR_VERIFY
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_print(fr_sbuff_t *out, fr_dict_attr_t const *parent,
      fr_pair_t const *vp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_print.c:269,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/pair_print.c:271,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:273,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:275,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:277,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:283,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_print.c:287,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:288,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_print.c:296,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_print.c:296,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:298,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/pair_print.c:299,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/pair_print.c:301,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:302,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/pair_print.c:303,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:303,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:305,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - out
    - parent
    - vp
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 309
    functionName: fr_pair_print_secure
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_type_is_leaf
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - fr_type_is_structural
    - FR_SBUFF_IN_CHAR_RETURN
    - fr_assert
    - FR_SBUFF_SET_RETURN
    - PAIR_VERIFY
    - FR_SBUFF
    - fr_dcursor_next_peek
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_print_secure(fr_sbuff_t *out, fr_dict_attr_t const
      *parent, fr_pair_t const *vp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/pair_print.c:323,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/pair_print.c:325,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:327,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:328,1
    - Dst: fr_pair_reset_parent
      Src: /src/freeradius-server/src/lib/util/pair_print.c:331,1
    - Dst: FR_SBUFF_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:334,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/pair_print.c:335,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:338,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/util/pair_print.c:341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - out
    - parent
    - list
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 342
    functionName: fr_pair_list_print
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 5
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - fr_pair_list_next
    - fr_sbuff_used
    - fr_pair_reset_parent
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - fr_pair_list_head
    - FR_SBUFF
    - FR_SBUFF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_pair_list_print(fr_sbuff_t *out, fr_dict_attr_t const *parent,
      fr_pair_list_t const *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair_print.c:349,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:351,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/util/pair_print.c:353,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:360,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:361,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:361,1
    - Dst: _fr_pair_list_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:362,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:363,1
    - Dst: fr_pair_print_value
      Src: /src/freeradius-server/src/lib/util/pair_print.c:367,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:369,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:370,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - log
    - lvl
    - parent
    - list
    - file
    - line
    - sbuff
    argTypes:
    - fr_log_t*
    - int
    - fr_pair_t*
    - fr_pair_list_t*
    - char*
    - int
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 344
    functionDepth: 7
    functionLinenumber: 344
    functionLinenumberEnd: 373
    functionName: fr_pair_list_log_sbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_set_to_start
    - _fr_pair_list_log
    - fr_sbuff_used
    - fr_pair_print_value
    - fr_log
    - fr_pair_print_name
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_log_sbuff(fr_log_t const *log, int lvl, fr_pair_t
      const *parent, fr_pair_list_t const *list, char const *file, int line, fr_sbuff_t
      *sbuff)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair_print.c:349,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:351,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/util/pair_print.c:353,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:360,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:361,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:361,1
    - Dst: _fr_pair_list_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:362,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:363,1
    - Dst: fr_pair_print_value
      Src: /src/freeradius-server/src/lib/util/pair_print.c:367,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/lib/util/pair_print.c:369,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:370,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 10
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_set_to_start
    - _fr_pair_list_log
    - fr_sbuff_used
    - fr_pair_print_value
    - fr_log
    - fr_pair_print_name
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/pair_print.c:392,1
    - Dst: fr_pair_list_log_sbuff
      Src: /src/freeradius-server/src/lib/util/pair_print.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - log
    - lvl
    - parent
    - list
    - file
    - line
    argTypes:
    - fr_log_t*
    - int
    - fr_pair_t*
    - fr_pair_list_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: _fr_pair_list_log
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 2
    functionsReached:
    - fr_sbuff_init_out
    - fr_pair_list_log_sbuff
    linkageType: ''
    returnType: void
    signature: void _fr_pair_list_log(fr_log_t const *log, int lvl, fr_pair_t const
      *parent, fr_pair_list_t const *list, char const *file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair_print.c:402,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:404,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/util/pair_print.c:406,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:413,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:413,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:413,1
    - Dst: _fr_pair_list_debug
      Src: /src/freeradius-server/src/lib/util/pair_print.c:414,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:415,1
    - Dst: fr_value_box_print_quoted
      Src: /src/freeradius-server/src/lib/util/pair_print.c:419,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:421,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:421,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - fp
    - lvl
    - parent
    - list
    - sbuff
    argTypes:
    - FILE*
    - int
    - fr_pair_t*
    - fr_pair_list_t*
    - fr_sbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 397
    functionDepth: 7
    functionLinenumber: 397
    functionLinenumberEnd: 424
    functionName: fr_pair_list_debug_sbuff
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_set_to_start
    - fr_value_box_print_quoted
    - fr_sbuff_used
    - _fr_pair_list_debug
    - fprintf
    - fr_pair_print_name
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_debug_sbuff(FILE *fp, int lvl, fr_pair_t const *parent,
      fr_pair_list_t const *list, fr_sbuff_t *sbuff)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY_WITH_LIST
      Src: /src/freeradius-server/src/lib/util/pair_print.c:402,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:404,1
    - Dst: fr_pair_print_name
      Src: /src/freeradius-server/src/lib/util/pair_print.c:406,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:413,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:413,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:413,1
    - Dst: _fr_pair_list_debug
      Src: /src/freeradius-server/src/lib/util/pair_print.c:414,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:415,1
    - Dst: fr_value_box_print_quoted
      Src: /src/freeradius-server/src/lib/util/pair_print.c:419,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:421,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:421,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 423
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 10
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_set_to_start
    - fr_value_box_print_quoted
    - fr_sbuff_used
    - _fr_pair_list_debug
    - fprintf
    - fr_pair_print_name
    - PAIR_VERIFY_WITH_LIST
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/pair_print.c:440,1
    - Dst: fr_pair_list_debug_sbuff
      Src: /src/freeradius-server/src/lib/util/pair_print.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - fp
    - lvl
    - parent
    - list
    argTypes:
    - FILE*
    - int
    - fr_pair_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 433
    functionDepth: 8
    functionLinenumber: 433
    functionLinenumberEnd: 443
    functionName: _fr_pair_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 2
    functionsReached:
    - fr_sbuff_init_out
    - fr_pair_list_debug_sbuff
    linkageType: ''
    returnType: void
    signature: void _fr_pair_list_debug(FILE *fp, int lvl, fr_pair_t const *parent,
      fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fr_pair_list_debug
      Src: /src/freeradius-server/src/lib/util/pair_print.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - list
    argTypes:
    - FILE*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 9
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: fr_pair_list_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 5
    functionsReached:
    - _fr_pair_list_debug
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_debug(FILE *fp, fr_pair_list_t const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/pair_print.c:464,1
    - Dst: fr_pair_print
      Src: /src/freeradius-server/src/lib/util/pair_print.c:466,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:468,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/util/pair_print.c:468,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/pair_print.c:468,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/util/pair_print.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fp
    - pair
    argTypes:
    - FILE*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: fr_pair_debug
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_used
    - fprintf
    - fr_pair_print
    - fr_box_strvalue_len
    - fr_sbuff_init_out
    linkageType: ''
    returnType: void
    signature: void fr_pair_debug(FILE *fp, fr_pair_t const *pair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:476,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:478,1
    - Dst: fr_fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:479,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_print.c:483,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_print.c:483,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:485,1
    - Dst: fprintf_pair_list
      Src: /src/freeradius-server/src/lib/util/pair_print.c:486,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fp
    - list
    - depth
    argTypes:
    - FILE*
    - fr_pair_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 473
    functionDepth: 8
    functionLinenumber: 473
    functionLinenumberEnd: 489
    functionName: fprintf_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 2
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_fprintf
    - fprintf
    - fprintf_pair_list
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fprintf_pair_list(FILE *fp, fr_pair_list_t const *list, int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:476,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:478,1
    - Dst: fr_fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:479,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_print.c:483,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_print.c:483,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:485,1
    - Dst: fprintf_pair_list
      Src: /src/freeradius-server/src/lib/util/pair_print.c:486,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 475
    functionDepth: 9
    functionLinenumber: 475
    functionLinenumberEnd: 488
    functionName: fr_pair_list_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 10
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_fprintf
    - fprintf
    - fprintf_pair_list
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_pair_list_foreach(list, vp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf_pair_list
      Src: /src/freeradius-server/src/lib/util/pair_print.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - list
    argTypes:
    - FILE*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 9
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: fr_fprintf_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 1
    functionsReached:
    - fprintf_pair_list
    linkageType: ''
    returnType: void
    signature: void fr_fprintf_pair_list(FILE *fp, fr_pair_list_t const *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/freeradius-server/src/lib/util/pair_print.c:501,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:503,1
    - Dst: fr_fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:504,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/pair_print.c:506,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/pair_print.c:506,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:508,1
    - Dst: fprintf_pair_list
      Src: /src/freeradius-server/src/lib/util/pair_print.c:509,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/pair_print.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fp
    - msg
    - vp
    argTypes:
    - FILE*
    - char*
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 9
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: fr_fprintf_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/pair_print.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_fprintf
    - fputs
    - fprintf
    - fr_assert
    - fprintf_pair_list
    linkageType: ''
    returnType: void
    signature: void fr_fprintf_pair(FILE *fp, char const *msg, fr_pair_t const *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/util/version.c:42,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/util/version.c:42,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/version.c:43,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/util/version.c:45,1
    - Dst: MAGIC_PREFIX
      Src: /src/freeradius-server/src/lib/util/version.c:45,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/util/version.c:49,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/util/version.c:49,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/version.c:50,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/util/version.c:52,1
    - Dst: MAGIC_VERSION
      Src: /src/freeradius-server/src/lib/util/version.c:52,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/util/version.c:56,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/util/version.c:56,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/version.c:57,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/util/version.c:59,1
    - Dst: MAGIC_COMMIT
      Src: /src/freeradius-server/src/lib/util/version.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - magic
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 64
    functionName: fr_check_lib_magic
    functionSourceFile: /src/freeradius-server/src/lib/util/version.c
    functionUses: 17
    functionsReached:
    - MAGIC_COMMIT
    - fr_strerror_printf
    - MAGIC_PREFIX
    - MAGIC_VERSION
    linkageType: ''
    returnType: int
    signature: int fr_check_lib_magic(uint64_t magic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:49,1
    - Dst: fr_funopen_cookie_t*::io_funcs::read
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - buf
    - n
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: _read
    functionSourceFile: /src/freeradius-server/src/lib/util/fopencookie.c
    functionUses: 50
    functionsReached:
    - talloc_get_type_abort
    - fr_funopen_cookie_t*::io_funcs::read
    linkageType: ''
    returnType: int
    signature: int _read(void *c, char *buf, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:59,1
    - Dst: fr_funopen_cookie_t*::io_funcs::write
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - buf
    - n
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: _write
    functionSourceFile: /src/freeradius-server/src/lib/util/fopencookie.c
    functionUses: 47
    functionsReached:
    - fr_funopen_cookie_t*::io_funcs::write
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int _write(void *c, const char *buf, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:69,1
    - Dst: fr_funopen_cookie_t*::io_funcs::seek
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - offset
    - whence
    argTypes:
    - void*
    - fpos_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: _seek
    functionSourceFile: /src/freeradius-server/src/lib/util/fopencookie.c
    functionUses: 0
    functionsReached:
    - fr_funopen_cookie_t*::io_funcs::seek
    - talloc_get_type_abort
    linkageType: ''
    returnType: fpos_t
    signature: fpos_t _seek(void *c, fpos_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:91,1
    - Dst: fr_funopen_cookie_t*::io_funcs::close
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:92,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: _close
    functionSourceFile: /src/freeradius-server/src/lib/util/fopencookie.c
    functionUses: 34
    functionsReached:
    - talloc_free
    - talloc_get_type_abort
    - fr_funopen_cookie_t*::io_funcs::close
    linkageType: ''
    returnType: int
    signature: int _close(void *c)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:164,1
    - Dst: funopen
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:173,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:179,1
    - Dst: fseek
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:184,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/fopencookie.c:185,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - cookie
    - mode
    - io_funcs
    argTypes:
    - void*
    - char*
    - cookie_io_functions_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 191
    functionName: fopencookie
    functionSourceFile: /src/freeradius-server/src/lib/util/fopencookie.c
    functionUses: 4
    functionsReached:
    - talloc_free
    - fseek
    - funopen
    - talloc_zero
    - fclose
    linkageType: ''
    returnType: FILE
    signature: FILE *fopencookie(void *cookie, const char *mode, cookie_io_functions_t
      io_funcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/freeradius-server/src/lib/util/semaphore.c:34,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/semaphore.c:37,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/util/semaphore.c:37,1
    - Dst: sem_init
      Src: /src/freeradius-server/src/lib/util/semaphore.c:41,1
    - Dst: sem_destroy
      Src: /src/freeradius-server/src/lib/util/semaphore.c:42,1
    - Dst: munmap
      Src: /src/freeradius-server/src/lib/util/semaphore.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: fr_sem_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.c
    functionUses: 2
    functionsReached:
    - fr_strerror_printf
    - fr_syserror
    - sem_init
    - munmap
    - mmap
    - sem_destroy
    linkageType: ''
    returnType: fr_sem_t
    signature: fr_sem_t *fr_sem_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sem_destroy
      Src: /src/freeradius-server/src/lib/util/semaphore.c:54,1
    - Dst: munmap
      Src: /src/freeradius-server/src/lib/util/semaphore.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sem
    argTypes:
    - fr_sem_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: fr_sem_free
    functionSourceFile: /src/freeradius-server/src/lib/util/semaphore.c
    functionUses: 3
    functionsReached:
    - munmap
    - sem_destroy
    linkageType: ''
    returnType: void
    signature: void fr_sem_free(fr_sem_t *sem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/uint128.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: uint128_gen_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_gen_mask(uint8_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: uint128_increment
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_increment(uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: uint128_decrement
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_decrement(uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: uint128_add
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_add(uint128_t a, uint128_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: uint128_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_sub(uint128_t a, uint128_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - u
    - v
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: uint128_mul64
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_mul64(uint64_t u, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint128_mul64
      Src: /src/freeradius-server/src/lib/util/uint128.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - n
    - m
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: uint128_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached:
    - uint128_mul64
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_mul(uint128_t n, uint128_t m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/uint128.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - num
    - bits
    argTypes:
    - uint128_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: uint128_lshift
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_lshift(uint128_t num, uint8_t bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/uint128.h:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - num
    - bits
    argTypes:
    - uint128_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 223
    functionName: uint128_rshift
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_rshift(uint128_t num, uint8_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: uint128_band
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_band(uint128_t a, uint128_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: uint128_bor
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_bor(uint128_t a, uint128_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: uint128_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uint128_eq(uint128_t a, uint128_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: uint128_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uint128_gt(uint128_t a, uint128_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - l
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: uint128_new
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t uint128_new(uint64_t h, uint64_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: uint128_to_64
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t uint128_to_64(uint128_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: uint128_gen_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_gen_mask(_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: uint128_increment
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_increment(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: uint128_decrement
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_decrement(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: uint128_add
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_add(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: uint128_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_sub(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: uint128_mul64
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_mul64(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: uint128_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_mul(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _num
    - ','
    - _bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: uint128_lshift
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_lshift(_num, _bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _num
    - ','
    - _bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: uint128_rshift
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_rshift(_num, _bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: uint128_band
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_band(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: uint128_bor
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_bor(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: uint128_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_eq(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: uint128_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_gt(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: uint128_new
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_new(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: uint128_to_64
    functionSourceFile: /src/freeradius-server/src/lib/util/uint128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: uint128_to_64(_a)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - h
    - data
    argTypes:
    - fr_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 20
    functionName: fr_heap_check
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_heap_check(fr_heap_t *h, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: heap_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_SMALLER
    linkageType: ''
    returnType: int8_t
    signature: int8_t heap_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:51,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:52,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:54,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:55,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:57,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:62,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:66,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:71,1
    - Dst: FR_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:73,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:74,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:74,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:75,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:75,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:77,1
    - Dst: fr_heap_check
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:77,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:78,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:81,1
    - Dst: FR_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:88,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:89,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:90,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:92,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:92,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:93,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:95,1
    - Dst: fr_heap_check
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:95,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:96,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:98,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:99,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:103,1
    - Dst: FR_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:107,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:108,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:108,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:109,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:111,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:111,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:112,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:115,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:115,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:116,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:118,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - skip
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 120
    functionName: heap_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - fr_heap_check
    - printf
    - TEST_MSG
    - FR_HEAP_VERIFY
    - TEST_CASE
    - talloc_free
    - free
    - fr_fast_rand
    - fr_heap_num_elements
    - fr_rand
    - fr_heap_extract
    - fr_strerror
    - calloc
    - TEST_CHECK
    - fr_heap_alloc
    - fr_heap_peek
    - fr_heap_insert
    linkageType: ''
    returnType: void
    signature: void heap_test(int skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heap_test
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: heap_test_skip_0
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - heap_test
    linkageType: ''
    returnType: void
    signature: void heap_test_skip_0(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heap_test
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: heap_test_skip_2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - heap_test
    linkageType: ''
    returnType: void
    signature: void heap_test_skip_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heap_test
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: heap_test_skip_10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - heap_test
    linkageType: ''
    returnType: void
    signature: void heap_test_skip_10(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:150,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:151,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:153,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:154,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:156,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:161,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:163,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:165,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:165,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:166,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:166,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:168,1
    - Dst: fr_heap_check
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:168,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:169,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:172,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:174,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:175,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:178,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:183,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:185,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 187
    functionName: heap_test_order
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - fr_heap_check
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - free
    - fr_fast_rand
    - fr_rand
    - fr_strerror
    - calloc
    - TEST_CHECK
    - fr_heap_alloc
    - fr_heap_pop
    - fr_heap_insert
    linkageType: ''
    returnType: void
    signature: void heap_test_order(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:198,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:204,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:204,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 211
    functionName: heap_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_heap_insert
    - fr_heap_alloc
    - calloc
    linkageType: ''
    returnType: void
    signature: void heap_iter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: fr_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void fr_heap_foreach(hp, heap_thing, item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:229,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:230,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:232,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:233,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:235,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:240,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:242,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:245,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:245,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:246,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:248,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:248,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:250,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:255,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:256,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:260,1
    - Dst: fr_heap_peek
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:260,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:261,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:263,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:263,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:264,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:264,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:270,1
    - Dst: fr_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:275,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:276,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:276,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:277,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:277,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:280,1
    - Dst: fr_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:280,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:281,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:281,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:286,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:287,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:288,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:290,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:291,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:292,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:294,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:296,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:297,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:297,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:297,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:298,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:298,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:298,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:299,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:299,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:299,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:301,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/heap_tests.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 303
    functionName: heap_cycle
    functionSourceFile: /src/freeradius-server/src/lib/util/test/heap_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_fast_rand
    - fr_heap_num_elements
    - fr_time_sub
    - fr_strerror
    - TEST_MSG_ALWAYS
    - fr_heap_peek
    - fr_heap_alloc
    - fr_time
    - fr_heap_extract
    - calloc
    - TEST_CHECK
    - fr_time_delta_unwrap
    - fr_rand
    - fr_heap_insert
    - talloc_free
    - free
    - fr_heap_entry_inserted
    linkageType: ''
    returnType: void
    signature: void heap_cycle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:40,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:41,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:43,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:44,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:45,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:46,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:46,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:48,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:50,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:51,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:52,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:53,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:53,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:54,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:54,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: test_talloc_basic
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_size
    - talloc
    - talloc_init_const
    - talloc_get_size
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:69,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:71,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:72,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:73,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:74,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:76,1
    - Dst: talloc_zero_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:77,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:78,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:80,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: test_talloc_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - talloc_zero
    - talloc_zero_size
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:95,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:97,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:98,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:99,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:100,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:102,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:104,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:105,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:106,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:107,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:109,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:110,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:112,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:114,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:115,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:115,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:117,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:118,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:120,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:122,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 125
    functionName: test_talloc_array
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - talloc_free
    - TEST_CASE
    - talloc_realloc
    - talloc_init_const
    - talloc_get_size
    - talloc_zero_array
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:136,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:136,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:138,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:139,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:140,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:141,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:142,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:143,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:144,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:144,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:145,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: test_talloc_free
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc
    - talloc_init_const
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:156,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:158,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:159,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:160,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:161,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:161,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:161,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:163,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:164,1
    - Dst: talloc_check_name
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:164,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:166,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:167,1
    - Dst: talloc_check_name
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:167,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:169,1
    - Dst: talloc_named_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:170,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:171,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:172,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:172,1
    - Dst: talloc_get_name
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:172,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: test_talloc_naming
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_named_const
    - talloc_size
    - talloc_get_name
    - talloc_set_name_const
    - talloc_init_const
    - strcmp
    - talloc_check_name
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_naming(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:185,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:187,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:188,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:189,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:189,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:191,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:192,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:192,1
    - Dst: talloc_parent_name
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:192,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:194,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:200,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: test_talloc_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc
    - talloc_init_const
    - strcmp
    - talloc_parent_name
    - TEST_CHECK
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:216,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:219,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:220,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:222,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:222,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:223,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:224,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:225,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:225,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:226,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:228,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:229,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:229,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:231,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:232,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:233,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:234,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:235,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:237,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 239
    functionName: test_talloc_steal
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_steal
    - talloc
    - talloc_init_const
    - TEST_CHECK
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_steal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:249,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:250,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:252,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:253,1
    - Dst: talloc_move
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:255,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:256,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:257,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:258,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:259,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:259,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:261,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 263
    functionName: test_talloc_move
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - talloc_move
    - TEST_CASE
    - talloc
    - talloc_init_const
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_move(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:274,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:275,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:277,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:278,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:279,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:281,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:281,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:284,1
    - Dst: talloc_unlink
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:284,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:285,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:285,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:287,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:288,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:289,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:290,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:290,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:292,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 294
    functionName: test_talloc_reference
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_reference
    - talloc_free
    - TEST_CASE
    - talloc_unlink
    - talloc_strdup
    - talloc_init_const
    - talloc_reference_count
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_reference(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: native_destructor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_ASSERT
    linkageType: ''
    returnType: int
    signature: int native_destructor(int *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:314,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:316,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:318,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:320,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:321,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:322,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:324,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:331,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:333,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:334,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 336
    functionName: test_talloc_set_destructor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_free
    - TEST_CASE
    - talloc
    - talloc_init_const
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_set_destructor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:347,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:349,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:350,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:351,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:352,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:352,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:353,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:353,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:355,1
    - Dst: talloc_strndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:356,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:357,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:358,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:358,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:360,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:362,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 365
    functionName: test_talloc_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_strndup
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - talloc_init_const
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_strdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:375,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:377,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:378,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:380,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:380,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:382,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:383,1
    - Dst: talloc_asprintf_append
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:384,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:385,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:386,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:386,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:388,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:389,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:390,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:391,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:392,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:392,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 395
    functionName: test_talloc_asprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf_append_buffer
    - talloc_asprintf_append
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - talloc_init_const
    - strcmp
    - talloc_asprintf
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_asprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:405,1
    - Dst: talloc_pool
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:406,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:407,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:409,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:410,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:411,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:412,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:413,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:414,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:415,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:417,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:418,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:419,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:421,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:422,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:422,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:423,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:423,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 426
    functionName: test_talloc_pool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_pool
    - talloc_free
    - TEST_CASE
    - talloc
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_pool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:436,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:438,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:440,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:441,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:442,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:443,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:444,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:445,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:447,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:447,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:449,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:450,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:450,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:452,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:453,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:454,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:456,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 459
    functionName: test_talloc_free_children
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_total_blocks
    - talloc_free
    - TEST_CASE
    - talloc
    - talloc_init_const
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_free_children
    linkageType: ''
    returnType: void
    signature: void test_talloc_free_children(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:469,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:472,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:472,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:473,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:473,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:475,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:476,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:477,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:478,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:479,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:480,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:481,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:483,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:485,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:486,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:488,1
    - Dst: talloc_total_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:488,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:489,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:489,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 492
    functionName: test_talloc_total_size
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_total_size
    - talloc_total_blocks
    - talloc_free
    - TEST_CASE
    - talloc_size
    - talloc_init_const
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_total_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:502,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:504,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:505,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:506,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:506,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:508,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:509,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:509,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:511,1
    - Dst: talloc_realloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:513,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:513,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: test_talloc_get_size
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_realloc_size
    - talloc_size
    - talloc_init_const
    - talloc_get_size
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_get_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:527,1
    - Dst: talloc_named_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:528,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:529,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:531,1
    - Dst: talloc_find_parent_byname
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:532,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:533,1
    - Dst: talloc_find_parent_byname
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:535,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:536,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:538,1
    - Dst: talloc_find_parent_byname
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:539,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:540,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 543
    functionName: test_talloc_find_parent_byname
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_find_parent_byname
    - talloc_free
    - TEST_CASE
    - talloc_named_const
    - talloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_find_parent_byname(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:553,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:554,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:555,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:557,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:558,1
    - Dst: talloc_is_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:558,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:560,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:561,1
    - Dst: talloc_is_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:561,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:563,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:565,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:566,1
    - Dst: talloc_is_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:566,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:567,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 571
    functionName: test_talloc_is_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_is_parent
    - talloc
    - talloc_init_const
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_is_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:582,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:583,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:585,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:586,1
    - Dst: talloc_reparent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:588,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:589,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:590,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:590,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:591,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:593,1
    - Dst: talloc_reparent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:594,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:595,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:597,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 599
    functionName: test_talloc_reparent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_reparent
    - talloc_free
    - TEST_CASE
    - talloc
    - talloc_init_const
    - TEST_CHECK
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_reparent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:610,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:612,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:613,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:614,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:615,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:615,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:616,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:616,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:617,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:617,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 620
    functionName: test_talloc_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - talloc_get_size
    - memcmp
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_memdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:631,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:634,1
    - Dst: talloc_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:636,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:637,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:640,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:641,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:641,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:643,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:644,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 645
    functionName: test_talloc_deep_hierarchy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_total_blocks
    - talloc_free
    - TEST_CASE
    - talloc_size
    - talloc_init_const
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_deep_hierarchy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:655,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:657,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:658,1
    - Dst: talloc_strndup_append
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:659,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:660,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:661,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:661,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:663,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:664,1
    - Dst: talloc_strndup_append_buffer
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:665,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:666,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:667,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:667,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 670
    functionName: test_talloc_strndup_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - talloc_strndup_append_buffer
    - talloc_init_const
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_strndup_append
    linkageType: ''
    returnType: void
    signature: void test_talloc_strndup_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:681,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:683,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:684,1
    - Dst: talloc_increase_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:685,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:686,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:687,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:687,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:689,1
    - Dst: talloc_increase_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:690,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:691,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:692,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:692,1
    - Dst: talloc_decrease_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:697,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:698,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:699,1
    - Dst: talloc_reference_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:699,1
    - Dst: talloc_decrease_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:701,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:702,1
    - Dst: talloc_total_blocks
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:704,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:705,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:707,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 709
    functionName: test_talloc_increase_ref_count
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_increase_ref_count
    - talloc_total_blocks
    - talloc_free
    - TEST_CASE
    - talloc_decrease_ref_count
    - talloc_strdup
    - talloc_init_const
    - talloc_reference_count
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_increase_ref_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:723,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:725,1
    - Dst: talloc_typed_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:726,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:727,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:728,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:728,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:729,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:729,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:730,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:730,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:732,1
    - Dst: talloc_typed_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:733,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:734,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:735,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:736,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:736,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:738,1
    - Dst: talloc_typed_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:739,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:740,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 743
    functionName: test_talloc_typed_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_typed_strdup
    - talloc_init_const
    - talloc_get_size
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_typed_strdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:753,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:755,1
    - Dst: talloc_typed_strndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:756,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:757,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:758,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:758,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:759,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:759,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:761,1
    - Dst: talloc_typed_strndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:762,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:763,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:764,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 767
    functionName: test_talloc_typed_strndup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - talloc_typed_strndup
    - talloc_get_size
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_typed_strndup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:777,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:779,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:780,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:781,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:782,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:782,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:784,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:785,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:786,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:787,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 790
    functionName: test_talloc_typed_asprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_typed_asprintf
    linkageType: ''
    returnType: void
    signature: void test_talloc_typed_asprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:800,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:802,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:803,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:804,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:805,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:805,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:806,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:807,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:807,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:809,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:810,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:811,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:812,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:813,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:813,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 816
    functionName: test_talloc_bstrndup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_bstrndup
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - talloc_array_length
    - memcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_bstrndup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:826,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:828,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:829,1
    - Dst: talloc_bstr_append
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:830,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:831,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:832,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:832,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:834,1
    - Dst: talloc_bstr_append
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:835,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:836,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:837,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:837,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 840
    functionName: test_talloc_bstr_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_bstrndup
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - talloc_bstr_append
    - strcmp
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_bstr_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:850,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:852,1
    - Dst: talloc_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:853,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:854,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:855,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:856,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:856,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:858,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:859,1
    - Dst: talloc_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:860,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:861,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:862,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:863,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:863,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 866
    functionName: test_talloc_bstr_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_bstrndup
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - talloc_array_length
    - talloc_bstr_realloc
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_bstr_realloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:876,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:878,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:879,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:880,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:881,1
    - Dst: talloc_memcmp_bstr
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:881,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:883,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:884,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:885,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:886,1
    - Dst: talloc_memcmp_bstr
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:886,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 889
    functionName: test_talloc_memcmp_bstr
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_bstrndup
    - talloc_free
    - TEST_CASE
    - talloc_memcmp_bstr
    - talloc_init_const
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_memcmp_bstr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:900,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:902,1
    - Dst: talloc_typed_memdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:903,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:904,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:905,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:905,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:906,1
    - Dst: talloc_get_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:906,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:907,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:907,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 910
    functionName: test_talloc_typed_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_typed_memdup
    - talloc_init_const
    - talloc_get_size
    - memcmp
    - TEST_CHECK
    - TEST_ASSERT
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_talloc_typed_memdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:920,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:922,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:923,1
    - Dst: talloc_array_null_terminate
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:927,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:928,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:929,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:929,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:930,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:931,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:933,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:934,1
    - Dst: talloc_array_null_terminate
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:934,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 937
    functionName: test_talloc_array_null_terminate
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - talloc_free
    - TEST_CASE
    - talloc_array_null_terminate
    - talloc_init_const
    - talloc_array_length
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_array_null_terminate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fire_ctx
    - uctx
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 950
    functionName: test_fr_destructor_func
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_fr_destructor_func(UNUSED void *fire_ctx, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:957,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:959,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:961,1
    - Dst: talloc_destructor_add
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:962,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:963,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:964,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:965,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:966,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:968,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:970,1
    - Dst: talloc_destructor_add
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:971,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:972,1
    - Dst: talloc_destructor_disarm
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:973,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:974,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:975,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:977,1
    - Dst: talloc_destructor_add
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:978,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:979,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 982
    functionName: test_talloc_destructor_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_destructor_disarm
    - talloc
    - talloc_init_const
    - talloc_destructor_add
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_talloc_destructor_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:992,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:993,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:994,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:995,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:996,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 987
    functionDepth: 3
    functionLinenumber: 987
    functionLinenumberEnd: 998
    functionName: test_talloc_link_ctx
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_link_ctx
    - talloc_free
    - TEST_CASE
    - talloc_init_const
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_link_ctx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1007,1
    - Dst: talloc_hdr_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1008,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1009,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1010,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1011,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1013,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1014,1
    - Dst: talloc_hdr_size
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1015
    functionName: test_talloc_hdr_size
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - talloc_hdr_size
    linkageType: ''
    returnType: void
    signature: void test_talloc_hdr_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1026,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1028,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1029,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1030,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1031,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1033,1
    - Dst: talloc_realloc_zero
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1034,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1035,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1039,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1044,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1048
    functionName: test_talloc_realloc_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - talloc_free
    - TEST_CASE
    - talloc_realloc_zero
    - talloc_init_const
    - TEST_CHECK
    - TEST_ASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: void test_talloc_realloc_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1059,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1060,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1062,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1063,1
    - Dst: talloc_decrease_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1064,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1065,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1067,1
    - Dst: talloc_decrease_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1068,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1069,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1071,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1072,1
    - Dst: talloc_reference
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1073,1
    - Dst: talloc_decrease_ref_count
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1074,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1075,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1077,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1079
    functionName: test_talloc_decrease_ref_count
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_reference
    - talloc_free
    - TEST_CASE
    - talloc_decrease_ref_count
    - talloc_strdup
    - talloc_init_const
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_talloc_decrease_ref_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1088,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1090,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1092,1
    - Dst: talloc_aligned_array
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1093,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1094,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1095,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1097,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1098,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/talloc_tests.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1101
    functionName: test_talloc_aligned_array
    functionSourceFile: /src/freeradius-server/src/lib/util/test/talloc_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_aligned_array
    - talloc_init_const
    - TEST_CHECK
    - getpagesize
    linkageType: ''
    returnType: void
    signature: void test_talloc_aligned_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:36,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:37,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: test_trie_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - TEST_ASSERT
    - fr_trie_alloc
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void test_trie_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:57,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:58,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:60,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:61,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:61,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:62,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:62,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:63,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:63,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:65,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:66,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:67,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:69,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:70,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:72,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:73,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:75,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:76,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:77,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: test_trie_insert_lookup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - talloc_free
    - TEST_CASE
    - fr_trie_lookup_by_key
    - TEST_CHECK
    - TEST_ASSERT
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_insert_lookup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:92,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:93,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:95,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:96,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:96,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:99,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:99,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:102,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:102,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: test_trie_insert_duplicate
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - talloc_free
    - TEST_CASE
    - fr_trie_lookup_by_key
    - TEST_CHECK
    - TEST_ASSERT
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_insert_duplicate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:118,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:119,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:125,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:131,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:131,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:135,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:135,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:136,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:137,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:138,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:141,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:141,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:143,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:144,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:145,1
    - Dst: fr_trie_match_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:146,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:147,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:150,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:153,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:154,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:157,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:160,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:161,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:164,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:167,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:168,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:171,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:174,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:175,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 110
    functionDepth: 6
    functionLinenumber: 110
    functionLinenumberEnd: 179
    functionName: test_trie_longest_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_match_by_key
    - fr_trie_insert_by_key
    - talloc_free
    - TEST_CASE
    - fr_trie_lookup_by_key
    - TEST_CHECK
    - TEST_ASSERT
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_longest_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:193,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:196,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:196,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:197,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:197,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:199,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:201,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:203,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:204,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:204,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:206,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:207,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:207,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:209,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:210,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 214
    functionName: test_trie_remove
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - talloc_free
    - TEST_CASE
    - fr_trie_remove_by_key
    - fr_trie_lookup_by_key
    - TEST_CHECK
    - TEST_ASSERT
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_remove(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - key
    - keylen
    - data
    - uctx
    argTypes:
    - uint8_t*
    - size_t
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: walk_callback
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int walk_callback(uint8_t const *key, size_t keylen, UNUSED void *data,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:247,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:248,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:250,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:250,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:251,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:251,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:252,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:252,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:254,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:256,1
    - Dst: fr_trie_walk
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:257,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:258,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:259,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 262
    functionName: test_trie_walk
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_trie_walk
    - TEST_CHECK
    - TEST_ASSERT
    - memset
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_walk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:273,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:274,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:276,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:281,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:281,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:282,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:285,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:288,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:290,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:291,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:294,1
    - Dst: fr_trie_remove_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:297,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:299,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:300,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:303,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:306,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:306,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 267
    functionDepth: 6
    functionLinenumber: 267
    functionLinenumberEnd: 310
    functionName: test_trie_many
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_trie_lookup_by_key
    - fr_trie_remove_by_key
    - talloc_asprintf
    - TEST_CHECK
    - TEST_ASSERT
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_many(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_trie_alloc
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:322,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:323,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:332,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:332,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:333,1
    - Dst: fr_trie_insert_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:333,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:336,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:339,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:340,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:343,1
    - Dst: fr_trie_lookup_by_key
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:346,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:347,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/trie_tests.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 315
    functionDepth: 6
    functionLinenumber: 315
    functionLinenumberEnd: 351
    functionName: test_trie_bit_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/trie_tests.c
    functionUses: 0
    functionsReached:
    - fr_trie_insert_by_key
    - talloc_free
    - TEST_CASE
    - fr_trie_lookup_by_key
    - TEST_CHECK
    - TEST_ASSERT
    - fr_trie_alloc
    linkageType: ''
    returnType: void
    signature: void test_trie_bit_prefix(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:59,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:62,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:63,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:69,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:71,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:74,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 11
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c
    functionUses: 4
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - fr_pair_test_list_alloc
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:89,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:92,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:96,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:97,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:99,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:100,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:100,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:100,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:103,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:103,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:105,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:106,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:109,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:111,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:112,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:112,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:114,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:115,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:118,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:118,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 79
    functionDepth: 8
    functionLinenumber: 79
    functionLinenumberEnd: 121
    functionName: test_fr_pair_list_afrom_substr
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - FR_SBUFF_IN
    - fr_dict_root
    - fr_dict_internal
    - fr_pair_list_afrom_substr
    - strlen
    - PAIR_VERIFY
    - strcmp
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_afrom_substr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:136,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:139,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:144,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:145,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:147,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:148,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:148,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:149,1
    - Dst: TEST_MSG_FAIL
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:150,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:150,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:152,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:153,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:153,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:155,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:156,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:158,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:159,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:161,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:162,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:162,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:164,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:165,1
    - Dst: TEST_MSG_FAIL
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:167,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:168,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:169,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:169,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:171,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:173,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:174,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:175,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:175,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:176,1
    - Dst: TEST_MSG_FAIL
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:177,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:177,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:180,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:180,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:182,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:183,1
    - Dst: TEST_MSG_FAIL
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:185,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:186,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:187,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:187,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:189,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:190,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:190,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:192,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:193,1
    - Dst: TEST_MSG_FAIL
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:195,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:196,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:197,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:197,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 124
    functionDepth: 8
    functionLinenumber: 124
    functionLinenumberEnd: 200
    functionName: test_fr_pair_list_afrom_substr_exec
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_free
    - TEST_CASE
    - FR_SBUFF_IN
    - fr_dict_root
    - TEST_CHECK_SLEN
    - fr_dict_internal
    - fr_pair_list_afrom_substr
    - strlen
    - PAIR_VERIFY
    - fr_strerror
    - TEST_MSG_FAIL
    - TEST_CHECK
    - strcmp
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_afrom_substr_exec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:205,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:207,1
    - Dst: fmemopen
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:207,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - buffer_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: open_buffer_as_file
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fflush
    - UNCONST
    - fmemopen
    linkageType: ''
    returnType: FILE
    signature: FILE *open_buffer_as_file(uint8_t const *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_buffer_as_file
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:219,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:219,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:222,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:224,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:225,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:225,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:227,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:228,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:228,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:230,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:231,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:233,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:234,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:236,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:237,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:237,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:239,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:240,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:242,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:243,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:243,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:245,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 214
    functionDepth: 9
    functionLinenumber: 214
    functionLinenumberEnd: 248
    functionName: test_fr_pair_list_afrom_file
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_free
    - open_buffer_as_file
    - TEST_CASE
    - strlen
    - fr_pair_list_afrom_file
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fclose
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_afrom_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_buffer_as_file
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:256,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:256,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:258,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:259,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:261,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:262,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:262,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:263,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:265,1
    - Dst: fr_pair_list_move_op
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:266,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:269,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:269,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:271,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:272,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:274,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:276,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:277,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:279,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:280,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:280,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:282,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:285,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:287,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:288,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:288,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:290,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 250
    functionDepth: 9
    functionLinenumber: 250
    functionLinenumberEnd: 293
    functionName: test_fr_pair_list_move_op
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_legacy_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_free
    - open_buffer_as_file
    - TEST_CASE
    - strlen
    - fr_pair_list_afrom_file
    - fr_pair_list_move_op
    - PAIR_VERIFY
    - TEST_CHECK
    - strcmp
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fclose
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_move_op(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:33,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:35,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:36,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:39,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:40,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 4
    functionsReached:
    - fr_perror
    - fr_check_lib_magic
    - fr_exit_now
    - talloc_autofree_context
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:52,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:54,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:55,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:57,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:57,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:58,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: test_uint32_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:66,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:68,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:69,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:71,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:71,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:72,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: test_uint32_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:80,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:82,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:83,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:85,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:85,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:86,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: test_uint32_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:94,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:96,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:97,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:99,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:99,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:100,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: test_uint32_div
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_div(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:108,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:110,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:111,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:113,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:114,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 116
    functionName: test_uint32_mod
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_mod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:122,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:124,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:125,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:127,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:127,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:128,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: test_uint32_and
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:136,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:138,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:141,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:141,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:142,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: test_uint32_or
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:150,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:152,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:153,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:155,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:155,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:156,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: test_uint32_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:165,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:166,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:169,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:170,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:171,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:172,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:175,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:176,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:177,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: test_uint32_shift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_shift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:188,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:190,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:191,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:193,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:193,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:195,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: test_uint32_div_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint32_div_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:205,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:207,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:208,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:210,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:210,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:211,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: test_uint8_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint8_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:219,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:221,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:222,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:225,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: test_uint8_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint8_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:235,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:237,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:238,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:240,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:240,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:241,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: test_int32_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int32_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:249,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:251,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:252,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:254,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:254,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:255,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: test_int32_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int32_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:263,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:265,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:268,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:269,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 6
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: test_int32_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int32_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:277,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:279,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:282,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:282,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:283,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: test_int32_div
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int32_div(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:291,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:293,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:294,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:296,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: test_int64_div_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_div_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:306,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:308,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:309,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:311,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:311,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:315,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:315,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: test_bool_and
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_bool_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:323,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:325,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:326,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:328,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:328,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:329,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:332,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:332,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 319
    functionDepth: 6
    functionLinenumber: 319
    functionLinenumberEnd: 334
    functionName: test_bool_or
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_bool_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:340,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:342,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:343,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:345,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:345,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:346,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:349,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:349,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 351
    functionName: test_bool_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_bool_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:357,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:360,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:362,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:362,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:363,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:368,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: test_bool_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_bool_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:375,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:378,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:380,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:380,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:381,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:386,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 6
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: test_bool_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_bool_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:396,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:398,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:399,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:401,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:401,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:402,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 6
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: test_float64_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:410,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:412,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:413,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:415,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:415,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:416,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 418
    functionName: test_float64_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:424,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:426,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:427,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:429,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:429,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:430,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 6
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: test_float64_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:438,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:440,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:441,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:443,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:443,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:444,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 434
    functionDepth: 6
    functionLinenumber: 434
    functionLinenumberEnd: 446
    functionName: test_float64_div
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_div(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:452,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:454,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:455,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:457,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 6
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: test_float64_div_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_div_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:464,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:466,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:467,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:469,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:469,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:470,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 472
    functionName: test_float64_mod
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_mod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:481,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:483,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:484,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:486,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:486,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:487,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 477
    functionDepth: 6
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: test_float32_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:495,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:497,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:498,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:500,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 491
    functionDepth: 6
    functionLinenumber: 491
    functionLinenumberEnd: 501
    functionName: test_float32_div_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_div_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:510,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:511,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:512,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:514,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:515,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:517,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:517,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:518,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:518,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:519,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:521,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:522,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 6
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: test_string_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:530,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:531,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:532,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:534,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:535,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:537,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:538,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:538,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:539,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:541,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:542,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 544
    functionName: test_string_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:550,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:551,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:552,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:554,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:555,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:558,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:558,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:560,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 546
    functionDepth: 6
    functionLinenumber: 546
    functionLinenumberEnd: 562
    functionName: test_string_sub_not_suffix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_sub_not_suffix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:568,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:569,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:570,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:572,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:576,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:576,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:577,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:577,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:578,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:580,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:581,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 564
    functionDepth: 6
    functionLinenumber: 564
    functionLinenumberEnd: 583
    functionName: test_string_xor_prepend
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_xor_prepend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:589,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:590,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:592,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:593,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:595,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:595,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:596,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:596,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:597,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:599,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 585
    functionDepth: 6
    functionLinenumber: 585
    functionLinenumberEnd: 601
    functionName: test_string_rshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_rshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:607,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:608,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:610,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:611,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:613,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:613,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:614,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:614,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:615,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:617,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 619
    functionName: test_string_lshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_lshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:628,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:629,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:630,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:632,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:633,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:635,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:635,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:636,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:637,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:637,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:639,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:640,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 624
    functionDepth: 6
    functionLinenumber: 624
    functionLinenumberEnd: 642
    functionName: test_octets_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:648,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:649,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:650,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:652,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:653,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:655,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:655,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:656,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:657,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:657,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:659,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:660,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 644
    functionDepth: 6
    functionLinenumber: 644
    functionLinenumberEnd: 662
    functionName: test_octets_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:668,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:669,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:670,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:672,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:673,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:675,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:675,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:676,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:677,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:677,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:679,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:680,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 664
    functionDepth: 6
    functionLinenumber: 664
    functionLinenumberEnd: 682
    functionName: test_octets_and
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:688,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:689,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:690,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:692,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:693,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:695,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:695,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:696,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:697,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:697,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:699,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:700,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 684
    functionDepth: 6
    functionLinenumber: 684
    functionLinenumberEnd: 702
    functionName: test_octets_or
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:708,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:709,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:710,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:712,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:713,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:715,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:715,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:716,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:717,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:717,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:719,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:720,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 704
    functionDepth: 6
    functionLinenumber: 704
    functionLinenumberEnd: 722
    functionName: test_octets_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:728,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:729,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:730,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:732,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:733,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:736,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:736,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:737,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:737,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:738,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:738,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:740,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 724
    functionDepth: 6
    functionLinenumber: 724
    functionLinenumberEnd: 742
    functionName: test_octets_length_mismatch
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_length_mismatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:748,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:749,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:751,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:752,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:754,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:755,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:756,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:756,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:758,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 744
    functionDepth: 6
    functionLinenumber: 744
    functionLinenumberEnd: 760
    functionName: test_octets_rshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_rshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:766,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:767,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:769,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:770,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:772,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:772,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:773,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:774,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:774,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:776,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 762
    functionDepth: 6
    functionLinenumber: 762
    functionLinenumberEnd: 778
    functionName: test_octets_lshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - memcmp
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_lshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:787,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:789,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:790,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:795,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:795,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:796,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:799,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:799,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 783
    functionDepth: 6
    functionLinenumber: 783
    functionLinenumberEnd: 801
    functionName: test_cmp_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_eq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:807,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:809,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:810,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:812,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:812,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:813,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:816,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:816,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 803
    functionDepth: 6
    functionLinenumber: 803
    functionLinenumberEnd: 818
    functionName: test_cmp_ne
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_ne(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:824,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:826,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:827,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:829,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:829,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:830,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:833,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:833,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 820
    functionDepth: 6
    functionLinenumber: 820
    functionLinenumberEnd: 835
    functionName: test_cmp_lt
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_lt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:841,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:843,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:844,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:846,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:846,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:847,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:850,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:850,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 837
    functionDepth: 6
    functionLinenumber: 837
    functionLinenumberEnd: 852
    functionName: test_cmp_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_gt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:858,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:860,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:861,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:863,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:863,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:864,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:867,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:867,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 854
    functionDepth: 6
    functionLinenumber: 854
    functionLinenumberEnd: 869
    functionName: test_cmp_le
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_le(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:875,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:877,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:878,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:880,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:880,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:881,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:884,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:884,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 871
    functionDepth: 6
    functionLinenumber: 871
    functionLinenumberEnd: 886
    functionName: test_cmp_ge
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_ge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:893,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:895,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:896,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:898,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:898,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:899,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:902,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:904,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:904,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 888
    functionDepth: 6
    functionLinenumber: 888
    functionLinenumberEnd: 906
    functionName: test_cmp_eq_type
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_eq_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:915,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:917,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:919,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:919,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:920,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 911
    functionDepth: 7
    functionLinenumber: 911
    functionLinenumberEnd: 922
    functionName: test_unary_increment
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_increment(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:928,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:930,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:932,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:932,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:933,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 924
    functionDepth: 7
    functionLinenumber: 924
    functionLinenumberEnd: 935
    functionName: test_unary_complement
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_complement(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:941,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:943,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:945,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:945,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:946,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 937
    functionDepth: 7
    functionLinenumber: 937
    functionLinenumberEnd: 948
    functionName: test_unary_negate
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_negate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:954,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:956,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:958,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:958,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:959,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:962,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:962,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 950
    functionDepth: 7
    functionLinenumber: 950
    functionLinenumberEnd: 964
    functionName: test_unary_not
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_unary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_not(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:974,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:975,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:977,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:977,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:978,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 969
    functionDepth: 7
    functionLinenumber: 969
    functionLinenumberEnd: 980
    functionName: test_assign_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:987,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:988,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:990,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:990,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:991,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 982
    functionDepth: 7
    functionLinenumber: 982
    functionLinenumberEnd: 993
    functionName: test_assign_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1000,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1001,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1003,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1003,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1004,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 995
    functionDepth: 7
    functionLinenumber: 995
    functionLinenumberEnd: 1006
    functionName: test_assign_set
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1012,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1015,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1015,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1008
    functionDepth: 7
    functionLinenumber: 1008
    functionLinenumberEnd: 1017
    functionName: test_assign_self
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    linkageType: ''
    returnType: void
    signature: void test_assign_self(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1026,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1028,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1029,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1031,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1031,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1032,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1022
    functionDepth: 6
    functionLinenumber: 1022
    functionLinenumberEnd: 1034
    functionName: test_mixed_uint8_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_mixed_uint8_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1040,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1042,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1043,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1046,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1046,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1047,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1048,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1036
    functionDepth: 6
    functionLinenumber: 1036
    functionLinenumberEnd: 1050
    functionName: test_auto_type_hint
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_auto_type_hint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1059,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1061,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1062,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1064,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1064,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1065,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1069,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1069,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1055
    functionDepth: 6
    functionLinenumber: 1055
    functionLinenumberEnd: 1071
    functionName: test_cmp_different_types
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_different_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1080,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1082,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1083,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1085,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1076
    functionDepth: 6
    functionLinenumber: 1076
    functionLinenumberEnd: 1086
    functionName: test_uint64_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1092,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1094,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1095,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1097,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1088
    functionDepth: 6
    functionLinenumber: 1088
    functionLinenumberEnd: 1098
    functionName: test_uint64_underflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_underflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1104,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1106,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1107,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1109,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1100
    functionDepth: 6
    functionLinenumber: 1100
    functionLinenumberEnd: 1110
    functionName: test_uint64_mul_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_mul_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1119,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1121,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1124,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1115
    functionDepth: 6
    functionLinenumber: 1115
    functionLinenumberEnd: 1125
    functionName: test_int64_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1131,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1133,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1136,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1127
    functionDepth: 6
    functionLinenumber: 1127
    functionLinenumberEnd: 1137
    functionName: test_int64_underflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_underflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1146,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1148,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1149,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1151,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1152,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1142
    functionDepth: 6
    functionLinenumber: 1142
    functionLinenumberEnd: 1154
    functionName: test_uint16_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint16_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1160,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1162,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1163,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1166,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1156
    functionDepth: 6
    functionLinenumber: 1156
    functionLinenumberEnd: 1167
    functionName: test_uint16_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint16_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1176,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1178,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1181,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1182,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1172
    functionDepth: 6
    functionLinenumber: 1172
    functionLinenumberEnd: 1184
    functionName: test_uint64_and
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1190,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1192,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1193,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1195,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1195,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1196,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1186
    functionDepth: 6
    functionLinenumber: 1186
    functionLinenumberEnd: 1198
    functionName: test_uint64_or
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1204,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1206,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1207,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1209,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1209,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1210,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1200
    functionDepth: 6
    functionLinenumber: 1200
    functionLinenumberEnd: 1212
    functionName: test_uint64_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1218,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1220,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1221,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1224,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1224,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1225,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1229,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1229,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1230,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1214
    functionDepth: 6
    functionLinenumber: 1214
    functionLinenumberEnd: 1232
    functionName: test_uint64_shift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_shift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1238,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1240,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1241,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1243,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1244,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1234
    functionDepth: 6
    functionLinenumber: 1234
    functionLinenumberEnd: 1245
    functionName: test_uint64_shift_too_large
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_shift_too_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1251,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1253,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1254,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1256,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1256,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1257,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1247
    functionDepth: 6
    functionLinenumber: 1247
    functionLinenumberEnd: 1259
    functionName: test_uint64_mod
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_mod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1265,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1267,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1270,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1270,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1271,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1261
    functionDepth: 6
    functionLinenumber: 1261
    functionLinenumberEnd: 1273
    functionName: test_uint64_div
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_div(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1279,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1281,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1282,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1284,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1284,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1285,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1275
    functionDepth: 6
    functionLinenumber: 1275
    functionLinenumberEnd: 1286
    functionName: test_uint64_div_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_uint64_div_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1295,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1297,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1300,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1300,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1301,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1291
    functionDepth: 6
    functionLinenumber: 1291
    functionLinenumberEnd: 1303
    functionName: test_int8_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int8_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1309,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1311,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1314,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1314,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1315,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1305
    functionDepth: 6
    functionLinenumber: 1305
    functionLinenumberEnd: 1317
    functionName: test_int8_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int8_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1326,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1328,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1329,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1331,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1332,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1322
    functionDepth: 6
    functionLinenumber: 1322
    functionLinenumberEnd: 1334
    functionName: test_int16_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int16_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1343,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1345,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1346,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1348,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1348,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1349,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1339
    functionDepth: 6
    functionLinenumber: 1339
    functionLinenumberEnd: 1351
    functionName: test_int32_mod
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int32_mod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1360,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1362,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1363,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1365,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1365,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1366,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1356
    functionDepth: 6
    functionLinenumber: 1356
    functionLinenumberEnd: 1368
    functionName: test_int64_and
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1374,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1376,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1377,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1379,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1380,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1370
    functionDepth: 6
    functionLinenumber: 1370
    functionLinenumberEnd: 1382
    functionName: test_int64_or
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1388,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1390,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1391,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1393,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1393,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1394,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1384
    functionDepth: 6
    functionLinenumber: 1384
    functionLinenumberEnd: 1396
    functionName: test_int64_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1402,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1404,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1405,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1408,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1408,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1409,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1413,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1413,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1414,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1398
    functionDepth: 6
    functionLinenumber: 1398
    functionLinenumberEnd: 1416
    functionName: test_int64_shift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_shift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1422,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1424,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1425,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1427,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1427,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1428,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1418
    functionDepth: 6
    functionLinenumber: 1418
    functionLinenumberEnd: 1429
    functionName: test_int64_shift_too_large
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_shift_too_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1435,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1437,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1438,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1440,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1440,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1441,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1431
    functionDepth: 6
    functionLinenumber: 1431
    functionLinenumberEnd: 1443
    functionName: test_int64_mod
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_int64_mod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1452,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1454,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1455,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1457,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1457,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1458,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1448
    functionDepth: 6
    functionLinenumber: 1448
    functionLinenumberEnd: 1460
    functionName: test_float32_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1466,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1468,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1469,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1471,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1472,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1462
    functionDepth: 6
    functionLinenumber: 1462
    functionLinenumberEnd: 1474
    functionName: test_float32_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1480,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1482,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1483,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1485,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1485,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1486,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1476
    functionDepth: 6
    functionLinenumber: 1476
    functionLinenumberEnd: 1488
    functionName: test_float32_div
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_div(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1494,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1496,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1497,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1499,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1499,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1500,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1490
    functionDepth: 6
    functionLinenumber: 1490
    functionLinenumberEnd: 1502
    functionName: test_float32_mod
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_mod(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1508,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1510,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1511,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1513,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1504
    functionDepth: 6
    functionLinenumber: 1504
    functionLinenumberEnd: 1514
    functionName: test_float32_mod_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float32_mod_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1520,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1522,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1523,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1525,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1516
    functionDepth: 6
    functionLinenumber: 1516
    functionLinenumberEnd: 1526
    functionName: test_float64_mod_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_float64_mod_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1535,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1537,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1538,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1540,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1540,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1541,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1544,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1544,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1531
    functionDepth: 6
    functionLinenumber: 1531
    functionLinenumberEnd: 1546
    functionName: test_bool_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_binary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_bool_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1555,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1556,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1557,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1559,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1560,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1563,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1563,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1565,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1551
    functionDepth: 6
    functionLinenumber: 1551
    functionLinenumberEnd: 1567
    functionName: test_string_sub_too_long
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_sub_too_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1573,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1574,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1576,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1577,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1579,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1579,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1569
    functionDepth: 6
    functionLinenumber: 1569
    functionLinenumberEnd: 1582
    functionName: test_string_rshift_too_large
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_rshift_too_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1588,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1589,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1591,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1592,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1594,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1594,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1584
    functionDepth: 6
    functionLinenumber: 1584
    functionLinenumberEnd: 1597
    functionName: test_string_lshift_too_large
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_lshift_too_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1603,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1604,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1605,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1607,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1608,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1610,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1610,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1611,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1611,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1612,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1614,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1615,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1599
    functionDepth: 6
    functionLinenumber: 1599
    functionLinenumberEnd: 1617
    functionName: test_string_add_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_string_add_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1626,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1627,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1628,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1630,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1631,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1634,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1634,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1636,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1622
    functionDepth: 6
    functionLinenumber: 1622
    functionLinenumberEnd: 1638
    functionName: test_octets_sub_not_suffix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_sub_not_suffix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1644,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1645,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1646,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1648,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1651,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1651,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1653,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1640
    functionDepth: 6
    functionLinenumber: 1640
    functionLinenumberEnd: 1655
    functionName: test_octets_sub_too_long
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_sub_too_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1661,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1662,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1664,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1665,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1667,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1667,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1657
    functionDepth: 6
    functionLinenumber: 1657
    functionLinenumberEnd: 1670
    functionName: test_octets_rshift_too_large
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_rshift_too_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1676,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1677,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1679,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1680,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1682,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1682,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1672
    functionDepth: 6
    functionLinenumber: 1672
    functionLinenumberEnd: 1685
    functionName: test_octets_lshift_too_large
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_octets_lshift_too_large(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1695,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1696,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1698,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1698,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1699,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1690
    functionDepth: 7
    functionLinenumber: 1690
    functionLinenumberEnd: 1701
    functionName: test_assign_mul
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_mul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1708,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1709,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1711,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1711,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1712,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1703
    functionDepth: 7
    functionLinenumber: 1703
    functionLinenumberEnd: 1714
    functionName: test_assign_div
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_div(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1721,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1722,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1724,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1724,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1725,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1716
    functionDepth: 7
    functionLinenumber: 1716
    functionLinenumberEnd: 1727
    functionName: test_assign_and
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1734,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1735,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1737,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1737,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1738,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1729
    functionDepth: 7
    functionLinenumber: 1729
    functionLinenumberEnd: 1740
    functionName: test_assign_or
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1747,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1748,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1750,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1750,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1751,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1742
    functionDepth: 7
    functionLinenumber: 1742
    functionLinenumberEnd: 1753
    functionName: test_assign_xor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1760,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1761,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1763,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1763,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1764,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1755
    functionDepth: 7
    functionLinenumber: 1755
    functionLinenumberEnd: 1766
    functionName: test_assign_rshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_rshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1773,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1774,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1776,1
    - Dst: fr_value_calc_assignment_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1776,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1777,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1768
    functionDepth: 7
    functionLinenumber: 1768
    functionLinenumberEnd: 1779
    functionName: test_assign_lshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_calc_assignment_op
    - fr_value_box
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_assign_lshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1788,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1790,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1792,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1792,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1793,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1784
    functionDepth: 7
    functionLinenumber: 1784
    functionLinenumberEnd: 1795
    functionName: test_unary_complement_uint16
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_complement_uint16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1801,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1803,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1805,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1805,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1806,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1797
    functionDepth: 7
    functionLinenumber: 1797
    functionLinenumberEnd: 1808
    functionName: test_unary_complement_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_complement_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1814,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1816,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1818,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1818,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1819,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1810
    functionDepth: 7
    functionLinenumber: 1810
    functionLinenumberEnd: 1821
    functionName: test_unary_complement_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_complement_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1827,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1829,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1831,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1831,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1832,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1823
    functionDepth: 7
    functionLinenumber: 1823
    functionLinenumberEnd: 1834
    functionName: test_unary_complement_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_complement_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1840,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1842,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1844,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1844,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1845,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1836
    functionDepth: 7
    functionLinenumber: 1836
    functionLinenumberEnd: 1847
    functionName: test_unary_negate_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_negate_float64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1853,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1855,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1857,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1857,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1858,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1849
    functionDepth: 7
    functionLinenumber: 1849
    functionLinenumberEnd: 1860
    functionName: test_unary_increment_uint8
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_increment_uint8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1866,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1868,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1871,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1862
    functionDepth: 7
    functionLinenumber: 1862
    functionLinenumberEnd: 1872
    functionName: test_unary_increment_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_unary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_increment_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1878,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1880,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1882,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1882,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1883,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1886,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1886,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1874
    functionDepth: 7
    functionLinenumber: 1874
    functionLinenumberEnd: 1888
    functionName: test_unary_not_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_value_box_init
    - fr_value_calc_unary_op
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_not_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1894,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1896,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1898,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1898,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1899,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1890
    functionDepth: 7
    functionLinenumber: 1890
    functionLinenumberEnd: 1901
    functionName: test_unary_increment_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_increment_int64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1907,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1909,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1911,1
    - Dst: fr_value_calc_unary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1911,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1912,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1903
    functionDepth: 7
    functionLinenumber: 1903
    functionLinenumberEnd: 1914
    functionName: test_unary_increment_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_unary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_unary_increment_float64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1923,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1925,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1926,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1928,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1928,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1929,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1930,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1919
    functionDepth: 6
    functionLinenumber: 1919
    functionLinenumberEnd: 1932
    functionName: test_auto_type_hint_sub
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_auto_type_hint_sub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1941,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1943,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1944,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1947,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1947,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1948,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1949,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1937
    functionDepth: 6
    functionLinenumber: 1937
    functionLinenumberEnd: 1951
    functionName: test_auto_type_hint_lshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_auto_type_hint_lshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1960,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1962,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1963,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1966,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1966,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1967,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1968,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1956
    functionDepth: 6
    functionLinenumber: 1956
    functionLinenumberEnd: 1970
    functionName: test_mixed_uint32_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_mixed_uint32_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1979,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1981,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1982,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1984,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1984,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1985,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1986,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1975
    functionDepth: 6
    functionLinenumber: 1975
    functionLinenumberEnd: 1988
    functionName: test_tainted_from_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_tainted_from_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1994,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1996,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1997,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1999,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:1999,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2000,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1990
    functionDepth: 6
    functionLinenumber: 1990
    functionLinenumberEnd: 2002
    functionName: test_tainted_neither
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_tainted_neither(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2011,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2012,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2016,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2018,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2020,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2007
    functionDepth: 6
    functionLinenumber: 2007
    functionLinenumberEnd: 2021
    functionName: test_ipv4_prefix_add_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - htonl
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipv4_prefix_add_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2030,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2031,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2034,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2036,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2038,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2038,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2039,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2039,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2026
    functionDepth: 6
    functionLinenumber: 2026
    functionLinenumberEnd: 2041
    functionName: test_ipv4_addr_and_all_ones
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - htonl
    - ntohl
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipv4_addr_and_all_ones(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2047,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2048,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2051,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2053,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2055,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2055,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2056,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2056,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2043
    functionDepth: 6
    functionLinenumber: 2043
    functionLinenumberEnd: 2058
    functionName: test_ipv4_addr_and_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - htonl
    - ntohl
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipv4_addr_and_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2067,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2069,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2070,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2073,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2073,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2074,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2075,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2063
    functionDepth: 6
    functionLinenumber: 2063
    functionLinenumberEnd: 2077
    functionName: test_auto_type_hint_rshift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_auto_type_hint_rshift(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2086,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2087,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2088,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2090,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2091,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2093,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2093,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2094,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2096,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2097,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2099,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2099,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2100,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2102,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2082
    functionDepth: 6
    functionLinenumber: 2082
    functionLinenumberEnd: 2104
    functionName: test_cmp_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_value_box_strdup
    - fr_value_calc_binary_op
    - fr_value_box_clear
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_cmp_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2113,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2114,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2118,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2120,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2122,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2123,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2123,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2124,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2109
    functionDepth: 6
    functionLinenumber: 2109
    functionLinenumberEnd: 2125
    functionName: test_ipv4_prefix_add
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - htonl
    - ntohl
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipv4_prefix_add(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2134,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2135,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2139,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2141,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2143,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2143,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2144,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2144,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2145,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2130
    functionDepth: 6
    functionLinenumber: 2130
    functionLinenumberEnd: 2147
    functionName: test_ipv4_addr_and_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - htonl
    - ntohl
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipv4_addr_and_mask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2156,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2158,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2161,1
    - Dst: fr_value_calc_binary_op
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2161,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2163,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/calc_tests.c:2164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2152
    functionDepth: 6
    functionLinenumber: 2152
    functionLinenumberEnd: 2165
    functionName: test_tainted_propagation
    functionSourceFile: /src/freeradius-server/src/lib/util/test/calc_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_MSG
    - fr_value_calc_binary_op
    - fr_value_box
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_tainted_propagation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:34,1
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:35,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:36,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:37,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:37,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: test_fifo_create
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_num_elements
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:46,1
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:47,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:48,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:50,1
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:51,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:52,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:54,1
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:55,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: test_fifo_create_invalid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_fifo_create
    linkageType: ''
    returnType: void
    signature: void test_fifo_create_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:66,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:67,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:69,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:72,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:73,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:74,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:77,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:77,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:79,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:81,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:82,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:84,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:85,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:88,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:88,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:90,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:91,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:92,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 95
    functionName: test_fifo_push_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_push
    - fr_fifo_num_elements
    - fr_fifo_pop
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_push_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:103,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:104,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:106,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:107,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:108,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:110,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:111,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:112,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:114,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:117,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:117,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:119,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:120,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:122,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 125
    functionName: test_fifo_peek
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_push
    - fr_fifo_peek
    - fr_fifo_num_elements
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_peek(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:133,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:134,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:136,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:140,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:143,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:145,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:146,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:148,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:148,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 151
    functionName: test_fifo_full
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_push
    - fr_fifo_num_elements
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_full(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:160,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:161,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:163,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:169,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:170,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:171,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:174,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:174,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:177,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:178,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:180,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:184,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:184,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 188
    functionName: test_fifo_wraparound
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_push
    - fr_fifo_num_elements
    - fr_fifo_pop
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_wraparound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:197,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:198,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:200,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:203,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:205,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:205,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:208,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:209,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:211,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:213,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:213,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:217,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:220,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:222,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:223,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:225,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:228,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:228,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 231
    functionName: test_fifo_partial_drain
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_push
    - fr_fifo_num_elements
    - fr_fifo_pop
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_partial_drain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: test_free_callback
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_free_callback(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:249,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:250,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:252,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:255,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:258,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:260,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: test_fifo_free_callback
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_MSG
    - TEST_CASE
    - fr_fifo_create
    - fr_fifo_push
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_fifo_free_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:267,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:267,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:268,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:269,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/util/test/fifo_tests.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: test_fifo_null_args
    functionSourceFile: /src/freeradius-server/src/lib/util/test/fifo_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_fifo_peek
    - fr_fifo_num_elements
    - fr_fifo_pop
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fifo_null_args(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:33,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:35,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:36,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:39,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:40,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 4
    functionsReached:
    - fr_perror
    - fr_check_lib_magic
    - fr_exit_now
    - talloc_autofree_context
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:52,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:53,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:55,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: test_cmp_uint32_equal
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_uint32_equal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:62,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:63,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:65,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:65,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:66,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: test_cmp_uint32_less
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_uint32_less(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:73,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:74,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:76,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:76,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:77,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:77,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:79,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:80,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: test_cmp_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:87,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:88,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:90,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:90,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:91,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:91,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:94,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: test_cmp_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_float64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:101,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:104,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:104,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:105,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:105,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:107,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:109,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:109,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:111,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: test_cmp_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_strdup
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:119,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:120,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:122,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:123,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:123,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:125,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: test_cmp_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_memdup
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_octets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:134,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:137,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:137,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:138,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:138,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:140,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: test_cmp_octets_length
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_memdup
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_octets_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:148,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:149,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:151,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:152,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:152,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:154,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:155,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: test_cmp_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:162,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:163,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:166,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: test_cmp_different_types
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp
    linkageType: ''
    returnType: void
    signature: void test_cmp_different_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:176,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:179,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:179,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:182,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: test_cmp_op_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void test_cmp_op_eq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:189,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:190,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:192,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:192,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:195,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 5
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: test_cmp_op_ne
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void test_cmp_op_ne(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:202,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:203,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:205,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:205,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:206,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:206,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:207,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: test_cmp_op_lt
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void test_cmp_op_lt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:214,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:215,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:217,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:217,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:218,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: test_cmp_op_gt
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void test_cmp_op_gt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:225,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:228,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:228,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:229,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:229,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:231,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:232,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: test_cmp_op_le
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void test_cmp_op_le(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:239,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:240,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:242,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:242,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:243,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:243,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:245,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:246,1
    - Dst: fr_value_box_cmp_op
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 5
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: test_cmp_op_ge
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cmp_op
    linkageType: ''
    returnType: void
    signature: void test_cmp_op_ge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:256,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:257,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:259,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:259,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:260,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: test_cast_uint32_to_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_uint32_to_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:268,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:269,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:271,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:271,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:272,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:273,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: test_cast_uint32_to_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear
    - fr_value_box
    - fr_value_box_cast
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_uint32_to_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:282,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:285,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:285,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:287,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:288,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 291
    functionName: test_cast_string_to_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup
    - TEST_MSG
    - fr_value_box_clear
    - fr_value_box_cast
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_string_to_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:297,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:300,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:300,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:301,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: test_cast_int32_to_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_int32_to_int64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:309,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:310,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:312,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:313,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: test_cast_uint8_to_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_uint8_to_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:321,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:322,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:324,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:324,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:325,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 327
    functionName: test_cast_same_type
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_same_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:333,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:334,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:336,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:336,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:337,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:339,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:340,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 329
    functionDepth: 5
    functionLinenumber: 329
    functionLinenumberEnd: 342
    functionName: test_cast_bool_to_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_bool_to_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:348,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:349,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:351,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:351,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:352,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:354,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:355,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:355,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: test_cast_uint32_to_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_cast_uint32_to_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:366,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:368,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:368,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:369,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 371
    functionName: test_cast_in_place_uint32_to_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_cast_in_place
    linkageType: ''
    returnType: void
    signature: void test_cast_in_place_uint32_to_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:377,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:379,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:380,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:381,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: test_cast_in_place_uint32_to_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_cast_in_place
    - fr_value_box_clear
    - fr_value_box
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_cast_in_place_uint32_to_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:393,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:394,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:396,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:396,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:397,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 7
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: test_copy_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_init_null
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void test_copy_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:405,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:406,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:408,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:408,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:409,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:413,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:415,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 401
    functionDepth: 7
    functionLinenumber: 401
    functionLinenumberEnd: 417
    functionName: test_copy_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_strdup
    - fr_value_box_clear
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_value_box_init_null
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void test_copy_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:423,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:424,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:426,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:426,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:427,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:428,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:429,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:429,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:432,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:434,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 419
    functionDepth: 7
    functionLinenumber: 419
    functionLinenumberEnd: 436
    functionName: test_copy_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear
    - fr_value_box_memdup
    - memcmp
    - TEST_CHECK
    - fr_value_box_init_null
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void test_copy_octets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:442,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:443,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:445,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:445,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 7
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: test_copy_preserves_tainted
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_init_null
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void test_copy_preserves_tainted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:456,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:456,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:457,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:458,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:459,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 462
    functionName: test_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - TEST_CHECK_STRCMP
    - fr_value_box_strdup
    linkageType: ''
    returnType: void
    signature: void test_strdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:468,1
    - Dst: fr_value_box_asprintf
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:468,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:469,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:470,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: test_asprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_asprintf
    - fr_value_box_clear
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_asprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:480,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:480,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:481,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:482,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:483,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:483,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 486
    functionName: test_bstrndup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_bstrndup
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_bstrndup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:496,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:496,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:497,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:498,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:499,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:499,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: test_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_memdup
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_memdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:511,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:514,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:514,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: test_hash_same_values
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_hash
    linkageType: ''
    returnType: void
    signature: void test_hash_same_values(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:521,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:522,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:524,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:524,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: test_hash_different_values
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_hash
    linkageType: ''
    returnType: void
    signature: void test_hash_different_values(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:531,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:532,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:534,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:534,1
    - Dst: fr_value_box_hash
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:534,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:536,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 538
    functionName: test_hash_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_hash
    - fr_value_box_strdup
    linkageType: ''
    returnType: void
    signature: void test_hash_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:547,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:548,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:548,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:550,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:551,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: test_truthy_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_is_truthy
    linkageType: ''
    returnType: void
    signature: void test_truthy_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:558,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:559,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:559,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:561,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:562,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 6
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: test_truthy_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_is_truthy
    linkageType: ''
    returnType: void
    signature: void test_truthy_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:569,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:570,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:570,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:571,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:574,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:574,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 565
    functionDepth: 6
    functionLinenumber: 565
    functionLinenumberEnd: 576
    functionName: test_truthy_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_is_truthy
    - fr_value_box_clear
    - fr_value_box_strdup
    linkageType: ''
    returnType: void
    signature: void test_truthy_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:582,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:583,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:583,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:584,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:586,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:587,1
    - Dst: fr_value_box_is_truthy
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:587,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 578
    functionDepth: 6
    functionLinenumber: 578
    functionLinenumberEnd: 589
    functionName: test_truthy_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_is_truthy
    - fr_value_box_clear
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_truthy_octets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:598,1
    - Dst: fr_value_box_increment
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:599,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:600,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: test_increment_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_increment
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_increment_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:608,1
    - Dst: fr_value_box_increment
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:609,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:610,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: test_increment_uint8_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_increment
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_increment_uint8_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:618,1
    - Dst: fr_value_box_increment
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:620,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: test_increment_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_increment
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_increment_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:631,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:632,1
    - Dst: fr_value_box_as_uint64
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:632,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:634,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:635,1
    - Dst: fr_value_box_as_uint64
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:635,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:637,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:638,1
    - Dst: fr_value_box_as_uint64
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:638,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:640,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:641,1
    - Dst: fr_value_box_as_uint64
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:641,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:643,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:644,1
    - Dst: fr_value_box_as_uint64
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 645
    functionName: test_as_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_as_uint64
    - fr_value_box
    linkageType: ''
    returnType: void
    signature: void test_as_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:654,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:655,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:657,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: test_clear
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_clear
    linkageType: ''
    returnType: void
    signature: void test_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:665,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:666,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:668,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 670
    functionName: test_clear_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box_clear
    - fr_value_box_strdup
    linkageType: ''
    returnType: void
    signature: void test_clear_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:679,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:680,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:682,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 684
    functionName: test_tainted_flag
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    linkageType: ''
    returnType: void
    signature: void test_tainted_flag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:696,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:699,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:700,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:701,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:704,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:705,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:706,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:707,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:710,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:711,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:712,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:713,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:714,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 716
    functionName: test_network_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_network
    - TEST_MSG
    - fr_value_box_to_network
    - fr_value_box
    - FR_DBUFF_TMP
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_network_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:725,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:727,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:728,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:729,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:732,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:733,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:736,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:737,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:738,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:739,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 741
    functionName: test_network_uint64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_network
    - fr_value_box_to_network
    - fr_value_box
    - FR_DBUFF_TMP
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_network_uint64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:750,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:752,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:753,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:757,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:758,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:759,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:760,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:763,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:764,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:765,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:766,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 768
    functionName: test_network_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_network
    - fr_value_box_to_network
    - fr_value_box
    - FR_DBUFF_TMP
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_network_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:777,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:779,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:780,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:781,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:782,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:784,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:785,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:786,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:787,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 789
    functionName: test_network_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_network
    - fr_value_box_to_network
    - fr_value_box
    - FR_DBUFF_TMP
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_network_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:795,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:796,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:796,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:798,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:799,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:799,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:801,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:802,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:802,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:804,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:805,1
    - Dst: fr_value_box_network_length
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 806
    functionName: test_network_length
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_value_box
    - fr_value_box_network_length
    linkageType: ''
    returnType: void
    signature: void test_network_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:815,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:817,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:819,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:819,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:820,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 811
    functionDepth: 4
    functionLinenumber: 811
    functionLinenumberEnd: 822
    functionName: test_print_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box
    - TEST_CHECK
    - fr_sbuff_terminate
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_print_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:828,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:830,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:832,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:832,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:833,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 835
    functionName: test_print_int32_negative
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box
    - TEST_CHECK
    - fr_sbuff_terminate
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_print_int32_negative(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:841,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:843,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:845,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:845,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:846,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:847,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 837
    functionDepth: 4
    functionLinenumber: 837
    functionLinenumberEnd: 850
    functionName: test_print_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - fr_value_box_strdup
    - FR_SBUFF_OUT
    - fr_value_box_clear
    - TEST_CHECK
    - fr_sbuff_terminate
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_print_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:858,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:859,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:860,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:860,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:861,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:862,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:864,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:865,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:866,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:866,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:867,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 852
    functionDepth: 4
    functionLinenumber: 852
    functionLinenumberEnd: 869
    functionName: test_print_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box
    - TEST_CHECK
    - fr_sbuff_terminate
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_print_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:875,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:877,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:879,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:879,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:880,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:881,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 871
    functionDepth: 4
    functionLinenumber: 871
    functionLinenumberEnd: 884
    functionName: test_print_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box_clear
    - TEST_CHECK
    - fr_sbuff_terminate
    - TEST_CHECK_STRCMP
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void test_print_octets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:893,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:893,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:894,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:895,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:896,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 889
    functionDepth: 7
    functionLinenumber: 889
    functionLinenumberEnd: 898
    functionName: test_from_str_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - strlen
    - fr_value_box_from_str
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_from_str_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:904,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:904,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:905,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:906,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:907,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 7
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: test_from_str_int32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - strlen
    - fr_value_box_from_str
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_from_str_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:915,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:915,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:916,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:917,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 911
    functionDepth: 7
    functionLinenumber: 911
    functionLinenumberEnd: 919
    functionName: test_from_str_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - strlen
    - fr_value_box_from_str
    linkageType: ''
    returnType: void
    signature: void test_from_str_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:925,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:925,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:926,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:927,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:928,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 921
    functionDepth: 7
    functionLinenumber: 921
    functionLinenumberEnd: 930
    functionName: test_from_str_float64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - strlen
    - fr_value_box_from_str
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_from_str_float64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:936,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:936,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:937,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:938,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:939,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:940,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:940,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 932
    functionDepth: 7
    functionLinenumber: 932
    functionLinenumberEnd: 943
    functionName: test_from_str_octets
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear
    - strlen
    - memcmp
    - TEST_CHECK
    - fr_value_box_from_str
    linkageType: ''
    returnType: void
    signature: void test_from_str_octets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:949,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:949,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:950,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:951,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:952,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 7
    functionLinenumber: 945
    functionLinenumberEnd: 955
    functionName: test_from_str_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear
    - strlen
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_value_box_from_str
    linkageType: ''
    returnType: void
    signature: void test_from_str_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:964,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:966,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:968,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:968,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:969,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:971,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:971,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:972,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 960
    functionDepth: 7
    functionLinenumber: 960
    functionLinenumberEnd: 974
    functionName: test_round_trip_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box
    - strlen
    - TEST_CHECK
    - fr_sbuff_terminate
    - fr_value_box_from_str
    linkageType: ''
    returnType: void
    signature: void test_round_trip_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:980,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:982,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:984,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:984,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:985,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:987,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:987,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:988,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 976
    functionDepth: 7
    functionLinenumber: 976
    functionLinenumberEnd: 990
    functionName: test_round_trip_int64
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box
    - strlen
    - TEST_CHECK
    - fr_sbuff_terminate
    - fr_value_box_from_str
    linkageType: ''
    returnType: void
    signature: void test_round_trip_int64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:998,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:999,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1000,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1000,1
    - Dst: fr_sbuff_terminate
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1001,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1003,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1003,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1004,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 992
    functionDepth: 7
    functionLinenumber: 992
    functionLinenumberEnd: 1006
    functionName: test_round_trip_bool
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - FR_SBUFF_OUT
    - fr_value_box
    - strlen
    - TEST_CHECK
    - fr_sbuff_terminate
    - fr_value_box_from_str
    linkageType: ''
    returnType: void
    signature: void test_round_trip_bool(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1015,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1018,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1019,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1020,1
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1023,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1024,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1025,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1025,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/value_tests.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1008
    functionDepth: 3
    functionLinenumber: 1008
    functionLinenumberEnd: 1027
    functionName: test_round_trip_network_uint32
    functionSourceFile: /src/freeradius-server/src/lib/util/test/value_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_from_network
    - fr_value_box_to_network
    - fr_value_box
    - FR_DBUFF_TMP
    - TEST_CHECK
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_round_trip_network_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:17,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:18,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:20,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:21,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:22,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:24,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:25,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:27,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:28,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:29,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:31,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:32,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:34,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:35,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: test_dbuff_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_dbuff_init
    linkageType: ''
    returnType: void
    signature: void test_dbuff_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:43,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:44,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: test_dbuff_init_no_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_dbuff_init
    linkageType: ''
    returnType: void
    signature: void test_dbuff_init_no_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:55,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:56,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:58,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:59,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:59,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:61,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:62,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: test_dbuff_max
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init
    - TEST_CASE
    - FR_DBUFF_MAX_BIND_CURRENT
    - fr_dbuff_remaining
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dbuff_max(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:96,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:97,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:98,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:99,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:101,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:102,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:102,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:104,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:105,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:106,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:106,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:107,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:107,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:108,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:109,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:109,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:111,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:112,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:115,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:116,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:118,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:119,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:120,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:122,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:123,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:123,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:125,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:126,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:127,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:129,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:129,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:130,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:130,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:132,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:133,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:136,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:136,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:137,1
    - Dst: htonl
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:137,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:139,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:140,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:141,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:143,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:143,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:144,1
    - Dst: htonll
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:144,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:146,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:153,1
    - Dst: fr_dbuff_in_uint64v
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:153,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:155,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:159,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:160,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:164,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:165,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:166,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:167,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:167,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:168,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:169,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:169,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:170,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:170,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:172,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:173,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:174,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:175,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:175,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:177,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:178,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:178,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:180,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:183,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:183,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:185,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:186,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:187,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:188,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:189,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:189,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:190,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:191,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:192,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:193,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:193,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:195,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:195,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:196,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:198,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 199
    functionName: test_dbuff_net_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_dbuff_out
    - fr_dbuff_in_bytes
    - fr_dbuff_in
    - fr_dbuff_init
    - TEST_CASE
    - fr_dbuff_set_to_start
    - fr_dbuff_marker
    - fr_dbuff_in_uint64v
    - fr_dbuff_used
    - htonll
    - memcmp
    - TEST_CHECK
    - memset
    - htons
    linkageType: ''
    returnType: void
    signature: void test_dbuff_net_encode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:208,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:209,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:211,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:212,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:213,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:213,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:214,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:214,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:215,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:216,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:216,1
    - Dst: fr_dbuff_set_to_end
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:217,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:218,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 219
    functionName: test_dbuff_no_advance
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_in_bytes
    - fr_dbuff_init
    - TEST_CASE
    - fr_dbuff_remaining
    - fr_dbuff_advance
    - fr_dbuff_set_to_end
    - FR_DBUFF
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dbuff_no_advance(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:227,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:228,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:229,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:230,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:231,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:232,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:233,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:234,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:236,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:237,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:237,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:238,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:238,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:239,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:239,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:240,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:240,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:242,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:243,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:243,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:244,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:244,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:245,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:245,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:246,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:246,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:248,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:249,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:249,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:250,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:250,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:251,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:251,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:252,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:252,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:253,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:253,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:255,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:256,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:256,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:257,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:257,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:258,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:258,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:259,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 260
    functionName: test_dbuff_move
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_dbuff_init
    - TEST_CASE
    - fr_dbuff_marker
    - TEST_CHECK_SLEN
    - fr_dbuff_used
    - fr_dbuff_advance
    - TEST_CHECK_LEN
    - memcmp
    - TEST_CHECK
    - fr_dbuff_move
    linkageType: ''
    returnType: void
    signature: void test_dbuff_move(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:273,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:274,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:274,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:275,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:275,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:276,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:276,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:277,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:279,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:280,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:280,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:281,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:282,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:284,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:284,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:284,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:285,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:286,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:286,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:287,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:288,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:288,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:289,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:290,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:290,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:291,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:291,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:296,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 298
    functionName: test_dbuff_talloc_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_current
    - fr_dbuff_init_talloc
    - fr_dbuff_in
    - talloc_free
    - TEST_CASE
    - fr_dbuff_set_to_start
    - fr_dbuff_marker
    - fr_dbuff_remaining
    - fr_dbuff_used
    - memcmp
    - TEST_CHECK
    - fr_dbuff_move
    linkageType: ''
    returnType: void
    signature: void test_dbuff_talloc_extend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:305,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:306,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:306,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:307,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:307,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:308,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:308,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:310,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:311,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:313,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:314,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:314,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:315,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:315,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:317,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:318,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:319,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:320,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:321,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:321,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:322,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:322,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:323,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:323,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 326
    functionName: test_dbuff_talloc_extend_multi_level
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init_talloc
    - fr_dbuff_in
    - talloc_free
    - TEST_CASE
    - FR_DBUFF_MAX_BIND_CURRENT
    - fr_dbuff_remaining
    - fr_dbuff_used
    - FR_DBUFF
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dbuff_talloc_extend_multi_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:339,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:340,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:341,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:341,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:342,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:343,1
    - Dst: fr_dbuff_init_fd
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:343,1
    - Dst: body
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:345,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - body
    - data
    - datasize
    - buff
    - buffsize
    - max
    argTypes:
    - fr_dbuff_fd_test_body
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: test_dbuff_fd_shell
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - write
    - fr_dbuff_init_fd
    - pipe
    - TEST_CASE
    - body
    - close
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: "void test_dbuff_fd_shell(fr_dbuff_fd_test_body body, uint8_t const
      data[], size_t datasize,\n\t\t\t\tuint8_t buff[], size_t buffsize, size_t max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:354,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:355,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:355,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:356,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:356,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:357,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:357,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:358,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:358,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:359,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:360,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:360,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:361,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:361,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:362,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:363,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:363,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:364,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:364,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:365,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:366,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - dbuff
    - data
    argTypes:
    - fr_dbuff_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 367
    functionName: fd_body
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_dbuff_out_memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void fd_body(fr_dbuff_t *dbuff, uint8_t const data[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_dbuff_fd_shell
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: test_dbuff_fd
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - test_dbuff_fd_shell
    linkageType: ''
    returnType: void
    signature: void test_dbuff_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:383,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:384,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:384,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:385,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:385,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:386,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:386,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:387,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:387,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:388,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:388,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:389,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:389,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:390,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:391,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - dbuff
    - data
    argTypes:
    - fr_dbuff_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 392
    functionName: max_body
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_dbuff_out_memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void max_body(fr_dbuff_t *dbuff, uint8_t const data[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_dbuff_fd_shell
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: test_dbuff_fd_max
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - test_dbuff_fd_shell
    linkageType: ''
    returnType: void
    signature: void test_dbuff_fd_max(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:427,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:428,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:430,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:431,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:431,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:432,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:433,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:433,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:434,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:435,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:435,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:436,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:437,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:438,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:438,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:439,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:441,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:442,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:442,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:444,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:445,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:447,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:447,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:448,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:448,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:449,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:450,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:450,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:450,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:452,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:453,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:454,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:454,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:455,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:456,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:456,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:457,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:458,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:458,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:459,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:460,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:461,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:461,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:462,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:464,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:465,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:465,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:466,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:467,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:467,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:468,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:468,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:469,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:470,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:470,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:472,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:472,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:473,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:473,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:475,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:476,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:477,1
    - Dst: fr_dbuff_out_uint64v
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:477,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:478,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:479,1
    - Dst: fr_dbuff_out_uint64v
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:479,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:480,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:481,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:482,1
    - Dst: fr_dbuff_out_uint64v
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:482,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:483,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:485,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:486,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:487,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:488,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:489,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:490,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:490,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:491,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:491,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:491,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:492,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:492,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:492,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:493,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:494,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:494,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:495,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:496,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:497,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:498,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:498,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:499,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:499,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:499,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:499,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:500,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:500,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:500,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:501,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:502,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:503,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:503,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:504,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:504,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:505,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:505,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/util/test/dbuff_tests.c:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 506
    functionName: test_dbuff_out
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_out
    - fr_dbuff_current
    - fr_dbuff_in
    - fr_dbuff_init
    - TEST_CASE
    - fr_dbuff_set_to_start
    - fr_dbuff_marker
    - fr_dbuff_start
    - fr_dbuff_out_uint64v
    - fr_dbuff_advance
    - memcmp
    - TEST_CHECK
    - memset
    - fr_dbuff_out_memcpy
    linkageType: ''
    returnType: void
    signature: void test_dbuff_out(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:31,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:33,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: strerror_uninit
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_strerror
    linkageType: ''
    returnType: void
    signature: void strerror_uninit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:41,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: strerror_pop_uninit
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_strerror_pop
    linkageType: ''
    returnType: void
    signature: void strerror_pop_uninit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:51,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:52,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:54,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: strerror_perror_null
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_perror
    - fr_strerror_const
    linkageType: ''
    returnType: void
    signature: void strerror_perror_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:62,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:64,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:66,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:67,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:69,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:70,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: strerror_printf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 510
    functionsReached:
    - TEST_CHECK
    - fr_strerror_printf
    - TEST_CHECK_STRCMP
    - fr_strerror
    linkageType: ''
    returnType: void
    signature: void strerror_printf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:78,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:80,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:81,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:82,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:84,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:85,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:87,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:88,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: strerror_printf_push_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_strerror_pop
    - fr_strerror
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void strerror_printf_push_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:96,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:99,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:100,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: strerror_printf_push_strerror
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_strerror_pop
    - fr_strerror
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void strerror_printf_push_strerror(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:110,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:111,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:114,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:115,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:118,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:119,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:122,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:124,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:125,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 127
    functionName: strerror_printf_push_pop_multi
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_strerror_pop
    - fr_strerror
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void strerror_printf_push_pop_multi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:133,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:134,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:136,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:137,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:138,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: strerror_printf_push_strerror_multi
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_strerror_pop
    - fr_strerror
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void strerror_printf_push_strerror_multi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:148,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:149,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:149,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:152,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:153,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:155,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:156,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: strerror_printf_strerror_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_strerror_printf
    - TEST_CHECK_STRCMP
    - fr_strerror
    linkageType: ''
    returnType: void
    signature: void strerror_printf_strerror_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:164,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:165,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:165,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:167,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:168,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:169,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:171,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:172,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: strerror_printf_push_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_strerror
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void strerror_printf_push_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:180,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:181,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:181,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:183,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:184,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:185,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:187,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:188,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: strerror_printf_push_append2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_pop
    - fr_strerror
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_strerror_printf_push
    linkageType: ''
    returnType: void
    signature: void strerror_printf_push_append2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:198,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:199,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:201,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:203,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:204,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:206,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:208,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:208,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:209,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:212,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 213
    functionName: strerror_printf_benchmark
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time
    - fr_strerror_printf
    - TEST_CHECK
    - fr_time_sub
    - fr_strerror_clear
    - getenv
    - printf
    - fr_strerror_const
    linkageType: ''
    returnType: void
    signature: void strerror_printf_benchmark(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:222,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:223,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:225,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:227,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:228,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:230,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:232,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:232,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:233,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:236,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/strerror_tests.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 237
    functionName: strerror_const_benchmark
    functionSourceFile: /src/freeradius-server/src/lib/util/test/strerror_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time
    - TEST_CHECK
    - fr_time_sub
    - fr_strerror_clear
    - getenv
    - printf
    - fr_strerror_const
    linkageType: ''
    returnType: void
    signature: void strerror_const_benchmark(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:58,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:64,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:66,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:72,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:74,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:77,1
    - Dst: fr_pair_test_list_alloc_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:80,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 11
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 5
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - fr_pair_test_list_alloc
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    - fr_pair_test_list_alloc_nested
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:94,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:94,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:96,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:99,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:99,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:99,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:101,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:104,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:104,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:105,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: test_fr_pair_afrom_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - strlen
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_value_from_str
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_afrom_da(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:116,1
    - Dst: fr_pair_afrom_child_num
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:116,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:118,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:121,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: test_fr_pair_afrom_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_pair_afrom_child_num
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_afrom_child_num(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:132,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:135,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:137,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:138,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:140,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:141,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:143,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:144,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:144,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:146,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:147,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:148,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:151,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:151,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: test_fr_pair_afrom_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - TEST_ASSERT
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_afrom_da_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:162,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:164,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:165,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:165,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:167,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:168,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:171,1
    - Dst: fr_pair_delete_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:171,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:173,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:174,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:175,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:178,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:178,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: test_fr_pair_delete_by_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_ASSERT
    - TEST_CASE
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_delete_by_da_nested
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete_by_da_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:185,1
    - Dst: fr_dict_attr_can_contain
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:185,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: test_fr_pair_nested_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_MSG
    - fr_dict_attr_can_contain
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_nested_verify(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:195,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:195,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:197,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:198,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:200,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:202,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:203,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:207,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:208,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:208,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:210,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: test_fr_pair_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_copy
    - fr_pair_cmp
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:219,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:220,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:220,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:222,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:223,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:225,1
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:226,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:228,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:229,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: test_fr_pair_steal
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - talloc_null_ctx
    - TEST_CASE
    - fr_pair_steal
    - PAIR_VERIFY
    - TEST_CHECK
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_steal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:237,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:238,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:238,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:240,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:241,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:244,1
    - Dst: fr_pair_raw_afrom_pair
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:244,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: test_fr_pair_raw_afrom_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_raw_afrom_pair
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_raw_afrom_pair(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:255,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:257,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:259,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:264,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:267,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:269,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:270,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:272,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 274
    functionName: test_fr_pair_dcursor_by_da_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_dcursor_by_da_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:281,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:283,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:285,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:293,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:295,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:296,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 300
    functionName: test_fr_pair_dcursor_by_ancestor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_next
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_dcursor_by_ancestor_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_dcursor_by_ancestor_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:310,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:312,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:312,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:313,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:314,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:316,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:316,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:318,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:320,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:320,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:322,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:324,1
    - Dst: fr_pair_dcursor_value_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:325,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:327,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:330,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:332,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:332,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:336,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:338,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:342,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:343,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:344,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:348,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:349,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: test_fr_pair_dcursor_value_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_dcursor_value_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_value_strdup
    - fr_pair_append
    - strcmp
    - fr_pair_list_free
    - TEST_CHECK
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_dcursor_value_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:362,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:362,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:364,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:365,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:367,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: test_fr_pair_find_by_da_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_pair_find_by_da_idx
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_find_by_da_idx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:375,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:376,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:376,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:376,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:378,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:379,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:381,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: test_fr_pair_find_by_child_num_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_child_num_idx
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_find_by_child_num_idx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:390,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:395,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:395,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:396,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:397,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:397,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:398,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:399,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:399,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:400,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:401,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:401,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:402,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:403,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:403,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:404,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:405,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:405,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:406,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:408,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:409,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:410,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:412,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:413,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:414,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:416,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:417,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:418,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:423,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:423,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:424,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:425,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:425,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:426,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:427,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:427,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:428,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:433,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:434,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:435,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:437,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:438,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:439,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:441,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:442,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:443,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:448,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:448,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:449,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:450,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:450,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:451,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:457,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:458,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:459,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:461,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:462,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:463,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:465,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:466,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:467,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:469,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:470,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:471,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:473,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:474,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:475,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 478
    functionName: test_fr_pair_find_by_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_find_by_da_nested
    - fr_pair_list_free
    - TEST_CASE
    - fr_pair_append
    - fr_pair_prepend
    - TEST_CHECK_PAIR
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_find_by_da_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:487,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:489,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:491,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:491,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:492,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:493,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:493,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:494,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:495,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:495,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:496,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:499,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:501,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:503,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:504,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 507
    functionName: test_fr_pair_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_append
    - fr_pair_list_free
    - TEST_CHECK
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:515,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:517,1
    - Dst: fr_pair_append_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:518,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:519,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:520,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:522,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:523,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:524,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:526,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:527,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:529,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:530,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:532,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:533,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:534,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:536,1
    - Dst: fr_pair_append_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:538,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:539,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:540,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:542,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:543,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:544,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:546,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:547,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:548,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:549,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:550,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:552,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:553,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:554,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:555,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 509
    functionDepth: 5
    functionLinenumber: 509
    functionLinenumberEnd: 558
    functionName: test_fr_pair_append_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_free
    - fr_pair_append_by_da_parent
    - TEST_CASE
    - TEST_CHECK_PAIR
    - TEST_CHECK
    - TEST_ASSERT
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_append_by_da_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:562,1
    - Dst: fr_pair_delete_by_child_num
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:563,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:563,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:565,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:566,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:566,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:566,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:568,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:569,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 570
    functionName: test_fr_pair_delete_by_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_child_num_idx
    - TEST_CASE
    - fr_pair_prepend_by_da
    - fr_pair_delete_by_child_num
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete_by_child_num(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:577,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:579,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:581,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:582,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:582,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:585,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:587,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:588,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:589,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 593
    functionName: test_fr_pair_prepend_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - talloc_null_ctx
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_prepend_by_da
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_prepend_by_da(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:599,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:599,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:602,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:603,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:603,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:606,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:607,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:607,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:609,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:610,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:612,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:613,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 616
    functionName: test_fr_pair_update_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_update_by_da_parent
    - fr_pair_afrom_da
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_update_by_da_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:620,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:621,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:621,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:623,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:624,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:624,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:626,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:627,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 628
    functionName: test_fr_pair_delete_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete_by_da
    - TEST_CASE
    - fr_pair_prepend_by_da
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete_by_da(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:634,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:635,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:635,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:635,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:636,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:638,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:639,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:639,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:639,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:641,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:642,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: test_fr_pair_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_child_num_idx
    - fr_pair_delete
    - TEST_CASE
    - fr_pair_prepend_by_da
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:650,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:650,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:652,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:653,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:658,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:659,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:659,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:661,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:662,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:667,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:668,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: test_fr_pair_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_cmp
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:675,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:676,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:678,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:679,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:679,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:681,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:682,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:682,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:684,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:685,1
    - Dst: fr_pair_list_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:685,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:687,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 689
    functionName: test_fr_pair_list_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_test_list_alloc
    - TEST_CASE
    - fr_pair_list_cmp
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:695,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:697,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:698,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:698,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:700,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:701,1
    - Dst: fr_pair_list_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:701,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 704
    functionName: test_fr_pair_list_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_list_cmp
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:712,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:714,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:715,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:715,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:717,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:718,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:720,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:721,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:722,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:724,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:725,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 729
    functionName: test_fr_pair_list_copy_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_init
    - fr_pair_list_copy_by_da
    - fr_dcursor_next
    - TEST_CASE
    - PAIR_VERIFY
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_copy_by_da(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:736,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:738,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:739,1
    - Dst: fr_pair_list_copy_by_ancestor
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:739,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:741,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:742,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:742,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:744,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:745,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:747,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:748,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:752,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:753,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:755,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:756,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:759,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:760,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:762,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:763,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:763,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 5
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: test_fr_pair_list_copy_by_ancestor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - TEST_CASE
    - fr_pair_list_head
    - PAIR_VERIFY
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_copy_by_ancestor
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_copy_by_ancestor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:773,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:775,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:776,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:778,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:779,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:779,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:780,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:780,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:781,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:781,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:782,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:782,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:783,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:783,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:784,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:784,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:789,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:790,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:792,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:793,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:793,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:794,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:796,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:797,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:797,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:798,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:800,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:801,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:801,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:802,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:804,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:805,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:805,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:806,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:808,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:809,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:809,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:810,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:812,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:813,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:813,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:814,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 817
    functionName: test_fr_pair_list_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - talloc_null_ctx
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_prepend_by_da
    - fr_pair_list_sort
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_sort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:823,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:824,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:824,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:827,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:828,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:830,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:831,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:831,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:833,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:834,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:836,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:837,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:837,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:839,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:840,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:842,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 844
    functionName: test_fr_pair_value_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_value_copy
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:850,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:851,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:851,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:853,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:854,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:856,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:857,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:857,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:857,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:859,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:860,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:862,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:863,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 864
    functionName: test_fr_pair_value_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - strlen
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_value_from_str
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_from_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:870,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:871,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:871,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:873,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:874,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:876,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:877,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:877,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:879,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:880,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:882,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:883,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 884
    functionName: test_fr_pair_value_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_value_strdup
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_strdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:891,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:892,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:892,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:894,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:895,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:897,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:897,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:899,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:902,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:903,1
    - Dst: fr_pair_value_strdup_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:903,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:905,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:906,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:908,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:909,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:909,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:909,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 912
    functionName: test_fr_pair_value_strdup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_pair_value_strdup_shallow
    - talloc_strdup
    - strlen
    - PAIR_VERIFY
    - TEST_CHECK
    - strncmp
    - MEM
    - fr_pair_find_by_da
    - fr_pair_copy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_strdup_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:918,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:919,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:919,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:921,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:922,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:924,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:925,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:925,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:927,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:928,1
    - Dst: fr_pair_value_strtrim
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:928,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:930,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:931,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:933,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:934,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 935
    functionName: test_fr_pair_value_strtrim
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_value_strdup
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_value_strtrim
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_strtrim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:941,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:943,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:943,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:945,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:946,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:946,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:948,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:949,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:951,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:952,1
    - Dst: fr_pair_value_aprintf
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:952,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:952,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:954,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:955,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:957,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:958,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 959
    functionName: test_fr_pair_value_aprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_time
    - TEST_CASE
    - snprintf
    - fr_pair_value_aprintf
    - fr_time_unwrap
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_aprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:966,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:967,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:967,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:969,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:970,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:972,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:973,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:973,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:975,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:976,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:978,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:979,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:979,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:981,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:982,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:982,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:984,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:985,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 986
    functionName: test_fr_pair_value_bstr_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstr_alloc
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstr_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:993,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:994,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:994,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:996,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:997,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:999,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1000,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1000,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1002,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1003,1
    - Dst: fr_pair_value_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1003,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1005,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1006,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1008,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1009,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1009,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1011,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1012,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1012,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1014,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1015,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1016
    functionName: test_fr_pair_value_bstr_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstr_alloc
    - TEST_CASE
    - fr_pair_value_bstr_realloc
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstr_realloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1022,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1023,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1023,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1025,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1026,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1028,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1029,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1029,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1031,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1032,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1033
    functionName: test_fr_pair_value_bstrndup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrndup
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrndup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1040,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1041,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1041,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1043,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1044,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1046,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1049,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1050,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1050,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1052,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1053,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1053,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1056
    functionName: test_fr_pair_value_bstrdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - PAIR_VERIFY
    - fr_pair_value_bstrdup_buffer
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrdup_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1063,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1064,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1064,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1066,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1067,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1069,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1072,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1073,1
    - Dst: fr_pair_value_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1073,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1073,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1075,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1076,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1076,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1079
    functionName: test_fr_pair_value_bstrndup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrndup_shallow
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - strlen
    - PAIR_VERIFY
    - TEST_CHECK
    - strncmp
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrndup_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1086,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1087,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1087,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1089,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1090,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1092,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1095,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1096,1
    - Dst: fr_pair_value_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1096,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1098,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1099,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1099,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1102
    functionName: test_fr_pair_value_bstrdup_buffer_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrdup_buffer_shallow
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - PAIR_VERIFY
    - TEST_CHECK
    - strncmp
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrdup_buffer_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1109,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1110,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1110,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1112,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1113,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1116,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1116,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1119,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1119,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1119,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1122,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1122,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1122,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1124,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1125,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1125,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1126
    functionName: test_fr_pair_value_mem_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_mem_alloc
    - memcpy
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_mem_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1134,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1134,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1136,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1137,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1140,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1140,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1140,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1143,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1143,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1143,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1145,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1146,1
    - Dst: fr_pair_value_mem_realloc
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1146,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1146,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1148,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1149,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1149,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1149,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1149,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1152,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1152,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1152,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1154,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1156,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1157,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1157,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1157,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1160,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1160,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1160,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1160,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1163,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1163,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1163,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1164
    functionName: test_fr_pair_value_mem_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_mem_alloc
    - memcpy
    - TEST_CASE
    - fr_pair_value_mem_realloc
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_mem_realloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1171,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1171,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1173,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1174,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1177,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1177,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1177,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1180,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1180,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1166
    functionDepth: 2
    functionLinenumber: 1166
    functionLinenumberEnd: 1181
    functionName: test_fr_pair_value_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_value_memdup
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1188,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1189,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1189,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1191,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1192,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1194,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1194,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1198,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1198,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1201,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1201,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1201,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1204
    functionName: test_fr_pair_value_memdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_value_memdup_buffer
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1211,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1212,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1212,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1214,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1215,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1217,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1220,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1221,1
    - Dst: fr_pair_value_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1221,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1221,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1223,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1224,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1224,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1227
    functionName: test_fr_pair_value_memdup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_memdup_shallow
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1234,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1235,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1235,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1237,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1238,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1240,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1240,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1244,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1244,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1247,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1247,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1247,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1250
    functionName: test_fr_pair_value_memdup_buffer_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_memdup_buffer_shallow
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup_buffer_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1258,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1259,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1259,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1261,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1262,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1268,1
    - Dst: fr_pair_value_enum
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1268,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1269,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1271,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1271,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1273
    functionName: test_fr_pair_value_enum
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_pair_value_enum
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_enum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1281,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1281,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1283,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1284,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1288,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1290,1
    - Dst: fr_pair_value_enum_box
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1290,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1291,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1293,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1295
    functionName: test_fr_pair_value_enum_box
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_pair_value_enum_box
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_enum_box(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_protocol_add
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1329,1
    - Dst: TEST_CHECK_
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1330,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1330,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1334,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1335,1
    - Dst: fr_dict_by_protocol_substr
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1339,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1342,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_tests.c:1343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1322
    functionDepth: 5
    functionLinenumber: 1322
    functionLinenumberEnd: 1344
    functionName: test_fr_dict_by_protocol_substr_no_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_tests.c
    functionUses: 0
    functionsReached:
    - dict_protocol_add
    - memcpy
    - TEST_MSG
    - TEST_CHECK_
    - fr_dict_by_protocol_substr
    - fr_sbuff_init_in
    - fr_strerror
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_dict_by_protocol_substr_no_overflow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - hp
    - data
    argTypes:
    - fr_minmax_heap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: minmax_heap_contains
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool minmax_heap_contains(fr_minmax_heap_t *hp, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: minmax_heap_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - CMP_PREFER_SMALLER
    linkageType: ''
    returnType: int8_t
    signature: int8_t minmax_heap_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: is_power_of_2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_power_of_2(_n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:43,1
    - Dst: is_power_of_2
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:46,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:46,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:47,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hp
    argTypes:
    - fr_minmax_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: minmax_heap_dump
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - fprintf
    linkageType: ''
    returnType: void
    signature: void minmax_heap_dump(fr_minmax_heap_t *hp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:65,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:66,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - values
    - len
    argTypes:
    - minmax_heap_thing[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: populate_values
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - fr_rand
    - fr_fast_rand
    linkageType: ''
    returnType: void
    signature: void populate_values(minmax_heap_thing values[], unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:84,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:85,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:87,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:93,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:94,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:94,1
    - Dst: fr_minmax_heap_min_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:101,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:102,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:103,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:110,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:110,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:111,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:111,1
    - Dst: fr_minmax_heap_max_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:118,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:119,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:120,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 124
    functionName: minmax_heap_test_basic
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - populate_values
    - fr_minmax_heap_entry_inserted
    - talloc_free
    - fr_minmax_heap_insert
    - fr_minmax_heap_alloc
    - TEST_CHECK
    - fr_minmax_heap_max_pop
    - fr_minmax_heap_min_pop
    linkageType: ''
    returnType: void
    signature: void minmax_heap_test_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:137,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:138,1
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:141,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:143,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:148,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:150,1
    - Dst: FR_MINMAX_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:152,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:153,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:153,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:154,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:154,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:156,1
    - Dst: minmax_heap_contains
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:156,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:157,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:160,1
    - Dst: FR_MINMAX_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:167,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:168,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:169,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:171,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:171,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:172,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:172,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:174,1
    - Dst: minmax_heap_contains
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:174,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:175,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:177,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:178,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:182,1
    - Dst: FR_MINMAX_HEAP_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:186,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:187,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:187,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:188,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:190,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:190,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:191,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:194,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:194,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:195,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - skip
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 198
    functionName: minmax_heap_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - fr_minmax_heap_extract
    - TEST_MSG
    - fr_minmax_heap_num_elements
    - TEST_CASE
    - talloc_free
    - fr_fast_rand
    - FR_MINMAX_HEAP_VERIFY
    - fr_minmax_heap_alloc
    - fr_minmax_heap_insert
    - fr_rand
    - talloc_zero_array
    - fr_strerror
    - TEST_CHECK
    - minmax_heap_contains
    - fr_minmax_heap_min_peek
    linkageType: ''
    returnType: void
    signature: void minmax_heap_test(int skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minmax_heap_test
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 8
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: minmax_heap_test_skip_0
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - minmax_heap_test
    linkageType: ''
    returnType: void
    signature: void minmax_heap_test_skip_0(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minmax_heap_test
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 8
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: minmax_heap_test_skip_2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - minmax_heap_test
    linkageType: ''
    returnType: void
    signature: void minmax_heap_test_skip_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minmax_heap_test
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 8
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: minmax_heap_test_skip_10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - minmax_heap_test
    linkageType: ''
    returnType: void
    signature: void minmax_heap_test_skip_10(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:229,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:230,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:232,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:233,1
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:235,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:236,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:242,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:244,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:244,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:247,1
    - Dst: fr_minmax_heap_min_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:252,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:253,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:256,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:257,1
    - Dst: fr_minmax_heap_max_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:260,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:261,1
    - Dst: fr_minmax_heap_max_peek
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:264,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:265,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:271,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:272,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 273
    functionName: minmax_heap_burn_in
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - fr_minmax_heap_max_peek
    - fr_minmax_heap_num_elements
    - talloc_free
    - free
    - fr_fast_rand
    - fr_minmax_heap_insert
    - fr_minmax_heap_alloc
    - fr_rand
    - calloc
    - TEST_CHECK
    - fr_minmax_heap_max_pop
    - fr_minmax_heap_min_pop
    - fr_minmax_heap_min_peek
    linkageType: ''
    returnType: void
    signature: void minmax_heap_burn_in(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:288,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:289,1
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:291,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:292,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:294,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:299,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:301,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:303,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:303,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:304,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:304,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:306,1
    - Dst: minmax_heap_contains
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:306,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:307,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:310,1
    - Dst: fr_minmax_heap_min_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:315,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:316,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:317,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:319,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:324,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:326,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:328,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:328,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:329,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:329,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:331,1
    - Dst: minmax_heap_contains
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:331,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:332,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:335,1
    - Dst: fr_minmax_heap_max_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:341,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:342,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:344,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:349,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 352
    functionName: minmax_heap_test_order
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - fr_minmax_heap_min_pop
    - TEST_CASE
    - talloc_free
    - fr_fast_rand
    - fr_minmax_heap_insert
    - fr_minmax_heap_alloc
    - fr_rand
    - talloc_zero_array
    - fr_strerror
    - TEST_CHECK
    - fr_minmax_heap_max_pop
    - minmax_heap_contains
    linkageType: ''
    returnType: void
    signature: void minmax_heap_test_order(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: minmax_heap_cmp
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - array
    - count
    argTypes:
    - minmax_heap_thing**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 370
    functionName: array_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - minmax_heap_cmp
    linkageType: ''
    returnType: minmax_heap_thing
    signature: minmax_heap_thing *array_pop(minmax_heap_thing **array, unsigned int
      count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:384,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:390,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:392,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:394,1
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:395,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:396,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:397,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:399,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:400,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:401,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:403,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:405,1
    - Dst: fr_minmax_heap_min_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:405,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:406,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:408,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:409,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:411,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:413,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:414,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:414,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:414,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:415,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:415,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:415,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:416,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:416,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:416,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:417,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:417,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:417,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:418,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:425,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:427,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:429,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:430,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:431,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:432,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:434,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:435,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:436,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:438,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:440,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:440,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:441,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:443,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:444,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:446,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:448,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:449,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:449,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:449,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:450,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:450,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:450,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:451,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:451,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:451,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:452,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:452,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:452,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:454,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:464,1
    - Dst: fr_time_min
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:465,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:467,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:468,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:469,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:471,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:473,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:475,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:477,1
    - Dst: array_pop
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:477,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:478,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:480,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:482,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:483,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:483,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:483,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:484,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:484,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:484,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:485,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:485,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:485,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:486,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:486,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:486,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:488,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 375
    functionDepth: 5
    functionLinenumber: 375
    functionLinenumberEnd: 492
    functionName: queue_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - array_pop
    - fr_time_wrap
    - fr_time
    - populate_values
    - talloc_array
    - TEST_MSG
    - talloc_free
    - fr_minmax_heap_insert
    - fr_minmax_heap_alloc
    - fr_time_sub
    - fr_heap_insert
    - fr_time_delta_to_usec
    - TEST_CHECK
    - TEST_MSG_ALWAYS
    - fr_heap_alloc
    - fr_minmax_heap_min_pop
    - fr_heap_pop
    - fr_time_min
    linkageType: ''
    returnType: void
    signature: void queue_cmp(unsigned int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: queue_cmp_10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_10(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: queue_cmp_50
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_50(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: queue_cmp_100
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_100(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: queue_cmp_1000
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_1000(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:525,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:526,1
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:528,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:529,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:531,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:536,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:538,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:539,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:541,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:541,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:542,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:542,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:544,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:544,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:546,1
    - Dst: fr_minmax_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:551,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:552,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:556,1
    - Dst: fr_minmax_heap_min_peek
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:556,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:557,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:559,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:559,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:560,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:560,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:566,1
    - Dst: fr_minmax_heap_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:571,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:572,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:572,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:573,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:576,1
    - Dst: fr_minmax_heap_extract
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:576,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:577,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:577,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:582,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:583,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:584,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:586,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:587,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:588,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:590,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:592,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:593,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:593,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:593,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:594,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:594,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:594,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:595,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:595,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:595,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:597,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 514
    functionDepth: 7
    functionLinenumber: 514
    functionLinenumberEnd: 599
    functionName: minmax_heap_cycle
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_fast_rand
    - fr_minmax_heap_insert
    - fr_minmax_heap_alloc
    - fr_time_sub
    - fr_strerror
    - TEST_MSG_ALWAYS
    - fr_time
    - calloc
    - TEST_CHECK
    - fr_minmax_heap_extract
    - fr_minmax_heap_entry_inserted
    - fr_rand
    - fr_minmax_heap_num_elements
    - talloc_free
    - free
    - fr_time_delta_to_usec
    - fr_minmax_heap_min_peek
    linkageType: ''
    returnType: void
    signature: void minmax_heap_cycle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_minmax_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:608,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:609,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:611,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:611,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:613,1
    - Dst: fr_minmax_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:613,1
    - Dst: fr_minmax_heap_iter_init
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:615,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:617,1
    - Dst: fr_minmax_heap_iter_next
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:617,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:618,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:620,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 601
    functionDepth: 5
    functionLinenumber: 601
    functionLinenumberEnd: 629
    functionName: minmax_heap_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached:
    - populate_values
    - fr_minmax_heap_iter_next
    - fr_minmax_heap_iter_init
    - fr_minmax_heap_insert
    - fr_minmax_heap_alloc
    - TEST_CHECK
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void minmax_heap_iter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 629
    functionName: fr_minmax_heap_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/test/minmax_heap_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_minmax_heap_foreach(hp, minmax_heap_thing, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:35,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:36,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:36,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:37,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:38,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:39,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:39,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:41,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:42,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:42,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:43,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:44,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:44,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:46,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:47,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:47,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:48,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:50,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:51,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:51,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:52,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: test_inet_pton4_basic
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - ntohl
    - fr_inet_pton4
    linkageType: ''
    returnType: void
    signature: void test_inet_pton4_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:62,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:63,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:63,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:64,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:65,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:67,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:68,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:68,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:69,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:71,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:72,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:72,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: test_inet_pton4_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_inet_pton4
    linkageType: ''
    returnType: void
    signature: void test_inet_pton4_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:83,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:84,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:84,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:86,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:87,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:87,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:89,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:90,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: test_inet_pton4_invalid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_inet_pton4
    linkageType: ''
    returnType: void
    signature: void test_inet_pton4_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:101,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:103,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:104,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:106,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:107,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:107,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:111,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:111,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:114,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:115,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 120
    functionName: test_inet_pton6_basic
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_inet_pton6
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_inet_pton6_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:129,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:130,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:130,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:132,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:135,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:136,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:138,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:139,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: test_inet_pton6_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_inet_pton6
    linkageType: ''
    returnType: void
    signature: void test_inet_pton6_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:151,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:152,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:154,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:155,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:155,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:156,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:158,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:159,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:160,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:163,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:163,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: test_inet_pton_auto
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_inet_pton
    linkageType: ''
    returnType: void
    signature: void test_inet_pton_auto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:175,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:177,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:178,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:178,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:179,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:181,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:182,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:183,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:183,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:184,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:184,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: test_inet_ntop
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_inet_pton4
    - TEST_MSG
    - TEST_CASE
    - fr_inet_pton6
    - strcmp
    - fr_inet_ntop
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_inet_ntop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:196,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:198,1
    - Dst: fr_inet_ntop_prefix
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:198,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:199,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:199,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: test_inet_ntop_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_inet_pton4
    - fr_inet_ntop_prefix
    - TEST_MSG
    - TEST_CASE
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_inet_ntop_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:210,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:211,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:212,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:213,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:213,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:215,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:216,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:217,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:219,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:220,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:220,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:222,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:223,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:223,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:225,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:226,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:227,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:228,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 229
    functionName: test_ipaddr_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_inet_pton4
    - TEST_CASE
    - fr_ipaddr_cmp
    - fr_inet_pton6
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipaddr_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:238,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:239,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:240,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:241,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:241,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:243,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:244,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:245,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:246,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:246,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:248,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:249,1
    - Dst: fr_ipaddr_mask
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:250,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: test_ipaddr_mask
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_inet_pton4
    - ntohl
    - TEST_CASE
    - TEST_CHECK
    - fr_ipaddr_mask
    linkageType: ''
    returnType: void
    signature: void test_ipaddr_mask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:261,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:262,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:263,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:263,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:265,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:267,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:267,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:269,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:270,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:271,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:271,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:273,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:274,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:275,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: test_ipaddr_is_inaddr_any
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_inet_pton4
    - fr_ipaddr_is_inaddr_any
    - TEST_CASE
    - fr_inet_pton6
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipaddr_is_inaddr_any(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:285,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:287,1
    - Dst: fr_ipaddr_is_prefix
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:287,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:289,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:290,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:291,1
    - Dst: fr_ipaddr_is_prefix
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:291,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:293,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:294,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:295,1
    - Dst: fr_ipaddr_is_prefix
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:295,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:297,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:299,1
    - Dst: fr_ipaddr_is_prefix
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 300
    functionName: test_ipaddr_is_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_inet_pton4
    - TEST_CASE
    - fr_ipaddr_is_prefix
    - fr_inet_pton6
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipaddr_is_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:310,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:311,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:311,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:313,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:313,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:314,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:316,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:318,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:318,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:319,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:320,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:322,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:323,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:323,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: test_inet_pton_port
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - ntohl
    - fr_inet_pton_port
    linkageType: ''
    returnType: void
    signature: void test_inet_pton_port(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:337,1
    - Dst: fr_inet_pton4
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:338,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:340,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:341,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:341,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:342,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:342,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:343,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:345,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:346,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:348,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:348,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:349,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:349,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:350,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:350,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/inet_tests.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 352
    functionName: test_ipaddr_sockaddr
    functionSourceFile: /src/freeradius-server/src/lib/util/test/inet_tests.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - fr_inet_pton4
    - fr_ipaddr_from_sockaddr
    - TEST_CASE
    - fr_ipaddr_cmp
    - fr_inet_pton6
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_ipaddr_sockaddr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: TIME_SOURCE
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_SOURCE(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:52,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:53,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:53,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: timer_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 1
    functionsReached:
    - TEST_CHECK
    - TEST_ASSERT
    - fr_time_gt
    - fr_time_wrap
    linkageType: ''
    returnType: void
    signature: void timer_cb(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:68,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:68,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:69,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:71,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:71,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:72,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:74,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:74,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:75,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:77,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:77,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:78,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:83,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:83,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:84,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:89,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:89,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:90,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:92,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:92,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:98,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:98,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:98,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:105,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:105,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:106,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:107,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:109,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:110,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:115,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:124,1
    - Dst: fr_timer_disarm
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:124,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:126,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:127,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:127,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:129,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:130,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:137,1
    - Dst: fr_timer_delete
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:137,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:140,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:141,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:143,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:144,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:149,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:150,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:152,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:152,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:153,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:154,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 157
    functionName: basic_timer_list_tests
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_run
    - fr_time_wrap
    - talloc_free
    - fr_timer_at
    - fr_timer_delete
    - fr_timer_in
    - fr_timer_disarm
    - TEST_CHECK
    - fr_time_from_sec
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void basic_timer_list_tests(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:163,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:164,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:166,1
    - Dst: basic_timer_list_tests
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:168,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: lst_basic_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - basic_timer_list_tests
    - talloc_free
    - fr_timer_list_lst_alloc
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    linkageType: ''
    returnType: void
    signature: void lst_basic_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:182,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:182,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:183,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:183,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:185,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: timer_cb_deferred
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_timer_list_run
    - fr_timer_at
    - fr_timer_list_num_events
    linkageType: ''
    returnType: void
    signature: void timer_cb_deferred(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:196,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:198,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:199,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:199,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:199,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:206,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:206,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:207,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tl
    argTypes:
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 210
    functionName: deferred_timer_list_tests
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_run
    - fr_timer_at
    - TEST_CHECK
    - fr_timer_list_set_time_func
    - fr_time_from_sec
    linkageType: ''
    returnType: void
    signature: void deferred_timer_list_tests(fr_timer_list_t *tl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:216,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:217,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:219,1
    - Dst: basic_timer_list_tests
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:221,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: ordered_basic_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - basic_timer_list_tests
    - talloc_free
    - fr_timer_list_ordered_alloc
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    linkageType: ''
    returnType: void
    signature: void ordered_basic_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:230,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:231,1
    - Dst: deferred_timer_list_tests
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:233,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: lst_deferred_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - TEST_ASSERT
    - talloc_free
    - fr_timer_list_lst_alloc
    - deferred_timer_list_tests
    linkageType: ''
    returnType: void
    signature: void lst_deferred_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:242,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:243,1
    - Dst: deferred_timer_list_tests
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:245,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: ordered_deferred_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - TEST_ASSERT
    - talloc_free
    - deferred_timer_list_tests
    - fr_timer_list_ordered_alloc
    linkageType: ''
    returnType: void
    signature: void ordered_deferred_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:257,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:258,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:260,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:262,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:262,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:263,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:268,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:269,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: ordered_bad_inserts_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_timer_in
    - fr_timer_list_ordered_alloc
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void ordered_bad_inserts_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:282,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:282,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:287,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:287,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:288,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:290,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:290,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:291,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:291,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:296,1
    - Dst: fr_timer_disarm
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:296,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:297,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:297,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:298,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:298,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:303,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:303,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:304,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:306,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:306,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:307,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:307,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:309,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:309,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:310,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:312,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:313,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:313,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:315,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:320,1
    - Dst: fr_timer_list_run
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:320,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:321,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:322,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:324,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:324,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:325,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - tl_outer
    - tl_inner
    argTypes:
    - fr_timer_list_t*
    - fr_timer_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 326
    functionName: nested_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_run
    - fr_timer_list_num_events
    - fr_timer_in
    - fr_timer_disarm
    - TEST_CHECK
    - fr_time_from_sec
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void nested_test(fr_timer_list_t *tl_outer, fr_timer_list_t *tl_inner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:334,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:335,1
    - Dst: fr_timer_list_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:337,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:338,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:340,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:341,1
    - Dst: nested_test
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:343,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:345,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:345,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:346,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:348,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:348,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:349,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:349,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:351,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:353,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:353,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:354,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 357
    functionName: lst_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_num_events
    - talloc_free
    - fr_timer_list_lst_alloc
    - fr_timer_in
    - nested_test
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void lst_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:365,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:366,1
    - Dst: fr_timer_list_ordered_alloc
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:368,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:369,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:371,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:372,1
    - Dst: nested_test
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:374,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:376,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:376,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:377,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:379,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:380,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:380,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:382,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:384,1
    - Dst: fr_timer_list_num_events
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:384,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:385,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/timer_tests.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 388
    functionName: ordered_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/timer_tests.c
    functionUses: 0
    functionsReached:
    - fr_timer_list_num_events
    - talloc_free
    - fr_timer_in
    - nested_test
    - fr_timer_list_ordered_alloc
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void ordered_nested(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:58,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:64,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:66,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:72,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:74,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:77,1
    - Dst: fr_pair_test_list_alloc_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:80,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 56
    functionDepth: 11
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 6
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - fr_pair_test_list_alloc
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    - fr_pair_test_list_alloc_nested
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:94,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:94,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:96,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:99,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:99,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:99,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:101,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:104,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:104,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:105,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: test_fr_pair_afrom_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - strlen
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_value_from_str
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_afrom_da(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:116,1
    - Dst: fr_pair_afrom_child_num
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:116,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:118,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:121,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: test_fr_pair_afrom_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_pair_afrom_child_num
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_afrom_child_num(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:132,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:135,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:137,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:138,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:140,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:141,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:143,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:144,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:144,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:146,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:147,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:148,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:151,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:151,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: test_fr_pair_afrom_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - TEST_ASSERT
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_afrom_da_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:162,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:164,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:165,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:165,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:167,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:168,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:171,1
    - Dst: fr_pair_delete_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:171,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:173,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:174,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:175,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:178,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:178,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: test_fr_pair_delete_by_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_ASSERT
    - TEST_CASE
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_delete_by_da_nested
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete_by_da_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:185,1
    - Dst: fr_dict_attr_can_contain
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:185,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: test_fr_pair_nested_verify
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_MSG
    - fr_dict_attr_can_contain
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_nested_verify(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:195,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:195,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:197,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:198,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:200,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:202,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:203,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:207,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:208,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:208,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:210,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: test_fr_pair_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_copy
    - fr_pair_cmp
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:219,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:220,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:220,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:222,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:223,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:225,1
    - Dst: fr_pair_steal
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:226,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:228,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:229,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: test_fr_pair_steal
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - talloc_null_ctx
    - TEST_CASE
    - fr_pair_steal
    - PAIR_VERIFY
    - TEST_CHECK
    - talloc_parent
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_steal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:237,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:238,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:238,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:240,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:241,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:244,1
    - Dst: fr_pair_raw_afrom_pair
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:244,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: test_fr_pair_raw_afrom_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_raw_afrom_pair
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_raw_afrom_pair(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:255,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:257,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:259,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:264,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:267,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:269,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:270,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:272,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 274
    functionName: test_fr_pair_dcursor_by_da_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_dcursor_by_da_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:281,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:283,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:285,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:293,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:295,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:296,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 300
    functionName: test_fr_pair_dcursor_by_ancestor_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_next
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_dcursor_by_ancestor_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_dcursor_by_ancestor_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:310,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:312,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:312,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:313,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:314,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:316,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:316,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:318,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:320,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:320,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:322,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:324,1
    - Dst: fr_pair_dcursor_value_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:325,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:327,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:330,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:332,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:332,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:336,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:338,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:342,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:343,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:344,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:348,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:349,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: test_fr_pair_dcursor_value_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_dcursor_value_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_value_strdup
    - fr_pair_append
    - strcmp
    - fr_pair_list_free
    - TEST_CHECK
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_dcursor_value_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:362,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:362,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:364,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:365,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:367,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: test_fr_pair_find_by_da_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_pair_find_by_da_idx
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_find_by_da_idx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:375,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:376,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:376,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:376,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:378,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:379,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:381,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: test_fr_pair_find_by_child_num_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_child_num_idx
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_find_by_child_num_idx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:390,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:395,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:395,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:396,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:397,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:397,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:398,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:399,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:399,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:400,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:401,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:401,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:402,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:403,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:403,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:404,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:405,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:405,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:406,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:408,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:409,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:410,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:412,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:413,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:414,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:416,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:417,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:418,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:423,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:423,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:424,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:425,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:425,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:426,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:427,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:427,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:428,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:433,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:434,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:435,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:437,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:438,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:439,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:441,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:442,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:443,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:448,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:448,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:449,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:450,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:450,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:451,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:457,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:458,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:459,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:461,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:462,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:463,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:465,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:466,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:467,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:469,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:470,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:471,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:473,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:474,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:475,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 478
    functionName: test_fr_pair_find_by_da_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_find_by_da_nested
    - fr_pair_list_free
    - TEST_CASE
    - fr_pair_append
    - fr_pair_prepend
    - TEST_CHECK_PAIR
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_find_by_da_nested(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:487,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:489,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:491,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:491,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:492,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:493,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:493,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:494,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:495,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:495,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:496,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:499,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:501,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:503,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:504,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 507
    functionName: test_fr_pair_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_append
    - fr_pair_list_free
    - TEST_CHECK
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_append(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:515,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:517,1
    - Dst: fr_pair_append_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:518,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:519,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:520,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:522,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:523,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:524,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:526,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:527,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:529,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:530,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:532,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:533,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:534,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:536,1
    - Dst: fr_pair_append_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:538,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:539,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:540,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:542,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:543,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:544,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:546,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:547,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:548,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:549,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:550,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:552,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:553,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:554,1
    - Dst: TEST_CHECK_PAIR
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:555,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 509
    functionDepth: 5
    functionLinenumber: 509
    functionLinenumberEnd: 558
    functionName: test_fr_pair_append_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_free
    - fr_pair_append_by_da_parent
    - TEST_CASE
    - TEST_CHECK_PAIR
    - TEST_CHECK
    - TEST_ASSERT
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_append_by_da_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:562,1
    - Dst: fr_pair_delete_by_child_num
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:563,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:563,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:565,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:566,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:566,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:566,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:568,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:569,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 570
    functionName: test_fr_pair_delete_by_child_num
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_child_num_idx
    - TEST_CASE
    - fr_pair_prepend_by_da
    - fr_pair_delete_by_child_num
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete_by_child_num(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:577,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:579,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:581,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:582,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:582,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:585,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:587,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:588,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:589,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 593
    functionName: test_fr_pair_prepend_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - talloc_null_ctx
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_prepend_by_da
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_prepend_by_da(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:599,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:599,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:602,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:603,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:603,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:606,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:607,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:607,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:609,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:610,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:612,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:613,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 616
    functionName: test_fr_pair_update_by_da_parent
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_update_by_da_parent
    - fr_pair_afrom_da
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_update_by_da_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:620,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:621,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:621,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:623,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:624,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:624,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:626,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:627,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 628
    functionName: test_fr_pair_delete_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete_by_da
    - TEST_CASE
    - fr_pair_prepend_by_da
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete_by_da(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:634,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:635,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:635,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:635,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:636,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:638,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:639,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:639,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:639,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:641,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:642,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: test_fr_pair_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_child_num_idx
    - fr_pair_delete
    - TEST_CASE
    - fr_pair_prepend_by_da
    - TEST_CHECK
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:650,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:650,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:652,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:653,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:658,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:659,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:659,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:661,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:662,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:667,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:668,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: test_fr_pair_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_cmp
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:675,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:676,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:678,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:679,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:679,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:681,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:682,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:682,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:684,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:685,1
    - Dst: fr_pair_list_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:685,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:687,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 689
    functionName: test_fr_pair_list_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_test_list_alloc
    - TEST_CASE
    - fr_pair_list_cmp
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:695,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:697,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:698,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:698,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:700,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:701,1
    - Dst: fr_pair_list_cmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:701,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 704
    functionName: test_fr_pair_list_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_list_cmp
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:712,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:714,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:715,1
    - Dst: fr_pair_list_copy_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:715,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:717,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:718,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:720,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:721,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:722,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:724,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:725,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 729
    functionName: test_fr_pair_list_copy_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_init
    - fr_pair_list_copy_by_da
    - fr_dcursor_next
    - TEST_CASE
    - PAIR_VERIFY
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_copy_by_da(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:736,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:738,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:739,1
    - Dst: fr_pair_list_copy_by_ancestor
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:739,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:741,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:742,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:742,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:744,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:745,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:747,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:748,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:752,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:753,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:755,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:756,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:759,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:760,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:762,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:763,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:763,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 5
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: test_fr_pair_list_copy_by_ancestor
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - TEST_CASE
    - fr_pair_list_head
    - PAIR_VERIFY
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_copy_by_ancestor
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_copy_by_ancestor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_null_ctx
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:773,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:775,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:776,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:778,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:779,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:779,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:780,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:780,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:781,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:781,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:782,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:782,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:783,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:783,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:784,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:784,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:789,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:790,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:792,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:793,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:793,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:794,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:796,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:797,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:797,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:798,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:800,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:801,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:801,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:802,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:804,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:805,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:805,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:806,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:808,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:809,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:809,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:810,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:812,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:813,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:813,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:814,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 817
    functionName: test_fr_pair_list_sort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - talloc_null_ctx
    - fr_pair_dcursor_init
    - fr_dcursor_next
    - TEST_CASE
    - fr_pair_prepend_by_da
    - fr_pair_list_sort
    - fr_pair_list_free
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_list_sort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:823,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:824,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:824,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:827,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:828,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:830,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:831,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:831,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:833,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:834,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:836,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:837,1
    - Dst: fr_pair_value_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:837,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:839,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:840,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:842,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 844
    functionName: test_fr_pair_value_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_value_copy
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:850,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:851,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:851,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:853,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:854,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:856,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:857,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:857,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:857,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:859,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:860,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:862,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:863,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 864
    functionName: test_fr_pair_value_from_str
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - strlen
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_value_from_str
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_from_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:870,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:871,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:871,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:873,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:874,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:876,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:877,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:877,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:879,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:880,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:882,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:883,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 884
    functionName: test_fr_pair_value_strdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_value_strdup
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_strdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:891,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:892,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:892,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:894,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:895,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:897,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:897,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:899,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:902,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:903,1
    - Dst: fr_pair_value_strdup_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:903,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:905,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:906,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:908,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:909,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:909,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:909,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 912
    functionName: test_fr_pair_value_strdup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_pair_value_strdup_shallow
    - talloc_strdup
    - strlen
    - PAIR_VERIFY
    - TEST_CHECK
    - strncmp
    - MEM
    - fr_pair_find_by_da
    - fr_pair_copy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_strdup_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:918,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:919,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:919,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:921,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:922,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:924,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:925,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:925,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:927,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:928,1
    - Dst: fr_pair_value_strtrim
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:928,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:930,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:931,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:933,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:934,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 935
    functionName: test_fr_pair_value_strtrim
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_value_strdup
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - fr_pair_value_strtrim
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_strtrim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:941,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:943,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:943,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:945,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:946,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:946,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:948,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:949,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:951,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:952,1
    - Dst: fr_pair_value_aprintf
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:952,1
    - Dst: fr_time_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:952,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:954,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:955,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:957,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:958,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 959
    functionName: test_fr_pair_value_aprintf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_time
    - TEST_CASE
    - snprintf
    - fr_pair_value_aprintf
    - fr_time_unwrap
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_aprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:966,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:967,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:967,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:969,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:970,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:972,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:973,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:973,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:975,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:976,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:978,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:979,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:979,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:981,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:982,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:982,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:984,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:985,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 986
    functionName: test_fr_pair_value_bstr_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstr_alloc
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstr_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:993,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:994,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:994,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:996,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:997,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:999,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1000,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1000,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1002,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1003,1
    - Dst: fr_pair_value_bstr_realloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1003,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1005,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1006,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1008,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1009,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1009,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1011,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1012,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1012,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1014,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1015,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1016
    functionName: test_fr_pair_value_bstr_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstr_alloc
    - TEST_CASE
    - fr_pair_value_bstr_realloc
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstr_realloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1022,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1023,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1023,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1025,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1026,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1028,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1029,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1029,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1031,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1032,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1033
    functionName: test_fr_pair_value_bstrndup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrndup
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrndup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1040,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1041,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1041,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1043,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1044,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1046,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1049,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1050,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1050,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1052,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1053,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1053,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1056
    functionName: test_fr_pair_value_bstrdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - PAIR_VERIFY
    - fr_pair_value_bstrdup_buffer
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrdup_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1063,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1064,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1064,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1066,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1067,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1069,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1072,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1073,1
    - Dst: fr_pair_value_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1073,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1073,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1075,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1076,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1076,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1079
    functionName: test_fr_pair_value_bstrndup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrndup_shallow
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - strlen
    - PAIR_VERIFY
    - TEST_CHECK
    - strncmp
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrndup_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1086,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1087,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1087,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1089,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1090,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1092,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1095,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1096,1
    - Dst: fr_pair_value_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1096,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1098,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1099,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1099,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1081
    functionDepth: 2
    functionLinenumber: 1081
    functionLinenumberEnd: 1102
    functionName: test_fr_pair_value_bstrdup_buffer_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrdup_buffer_shallow
    - talloc_free
    - TEST_CASE
    - talloc_strdup
    - PAIR_VERIFY
    - TEST_CHECK
    - strncmp
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_bstrdup_buffer_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1109,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1110,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1110,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1112,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1113,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1116,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1116,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1119,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1119,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1119,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1122,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1122,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1122,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1124,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1125,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1125,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1126
    functionName: test_fr_pair_value_mem_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_mem_alloc
    - memcpy
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_mem_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1134,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1134,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1136,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1137,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1140,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1140,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1140,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1143,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1143,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1143,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1145,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1146,1
    - Dst: fr_pair_value_mem_realloc
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1146,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1146,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1148,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1149,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1149,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1149,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1149,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1152,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1152,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1152,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1154,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1156,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1157,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1157,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1157,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1160,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1160,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1160,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1160,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1163,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1163,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1163,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1164
    functionName: test_fr_pair_value_mem_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_mem_alloc
    - memcpy
    - TEST_CASE
    - fr_pair_value_mem_realloc
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_mem_realloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1171,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1171,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1173,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1174,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1177,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1177,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1177,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1180,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1180,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1166
    functionDepth: 2
    functionLinenumber: 1166
    functionLinenumberEnd: 1181
    functionName: test_fr_pair_value_memdup
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_pair_value_memdup
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1188,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1189,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1189,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1191,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1192,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1194,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1194,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1198,1
    - Dst: fr_pair_value_memdup_buffer
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1198,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1201,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1201,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1201,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1204
    functionName: test_fr_pair_value_memdup_buffer
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_value_memdup_buffer
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup_buffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1211,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1212,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1212,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1214,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1215,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1217,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1217,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1220,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1221,1
    - Dst: fr_pair_value_memdup_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1221,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1221,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1223,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1224,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1224,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1227
    functionName: test_fr_pair_value_memdup_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_memdup_shallow
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1234,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1235,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1235,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1237,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1238,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1240,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1240,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1244,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1244,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1247,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1247,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1247,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1250
    functionName: test_fr_pair_value_memdup_buffer_shallow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_memdup_buffer_shallow
    - talloc_memdup
    - talloc_free
    - TEST_CASE
    - PAIR_VERIFY
    - memcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_memdup_buffer_shallow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1258,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1259,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1259,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1261,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1262,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1268,1
    - Dst: fr_pair_value_enum
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1268,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1269,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1271,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1271,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1273
    functionName: test_fr_pair_value_enum
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_pair_value_enum
    - PAIR_VERIFY
    - strcmp
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_enum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1281,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1281,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1283,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1284,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1288,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1290,1
    - Dst: fr_pair_value_enum_box
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1290,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1291,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1293,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1295
    functionName: test_fr_pair_value_enum_box
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_pair_value_enum_box
    - PAIR_VERIFY
    - TEST_CHECK
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void test_fr_pair_value_enum_box(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_protocol_add
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1329,1
    - Dst: TEST_CHECK_
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1330,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1330,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1334,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1335,1
    - Dst: fr_dict_by_protocol_substr
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1339,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1342,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c:1343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1322
    functionDepth: 5
    functionLinenumber: 1322
    functionLinenumberEnd: 1344
    functionName: test_fr_dict_by_protocol_substr_no_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_nested_tests.c
    functionUses: 0
    functionsReached:
    - dict_protocol_add
    - memcpy
    - TEST_MSG
    - TEST_CHECK_
    - fr_dict_by_protocol_substr
    - fr_sbuff_init_in
    - fr_strerror
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_dict_by_protocol_substr_no_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: test_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    linkageType: ''
    returnType: void
    signature: void *test_iter(fr_dcursor_t *cursor, void *current, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - test_item_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: test_list_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_talloc_init
    linkageType: ''
    returnType: void
    signature: void test_list_init(test_item_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:34,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:36,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:37,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:38,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:39,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:39,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:40,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:40,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: test_init_null_item
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_iter_init
    - TEST_CHECK
    - fr_dcursor_list_next_peek
    linkageType: ''
    returnType: void
    signature: void test_init_null_item(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:51,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:52,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:54,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:55,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:56,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:57,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: test_init_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_init_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:68,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:69,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:70,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:72,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:73,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:74,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: test_init_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_init_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:85,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:86,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:87,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:89,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:90,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:90,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:92,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:94,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:94,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:95,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: test_next
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:106,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:107,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:108,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:110,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:111,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:112,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:114,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:114,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:115,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:115,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:119,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:120,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: test_next_wrap
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_next_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:128,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:130,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:131,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:132,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:133,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: test_dcursor_head_tail_null
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_tail_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:145,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:146,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:147,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:148,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:150,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: test_dcursor_head
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:163,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:164,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:165,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:167,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:169,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:170,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:172,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:173,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:175,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:176,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:178,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 180
    functionName: test_dcursor_head_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:190,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:191,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:192,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:195,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:198,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:201,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:203,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 205
    functionName: test_dcursor_iter_head_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_iter_init
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void test_dcursor_iter_head_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:216,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:217,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:218,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:219,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:221,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:222,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:223,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: test_dcursor_head_after_next
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_after_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:236,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:237,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:238,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:239,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:241,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:242,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 245
    functionName: test_dcursor_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_tail
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:256,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:257,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:258,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:259,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:261,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:262,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:263,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 265
    functionName: test_dcursor_head_after_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_after_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:276,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:277,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:278,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:279,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:281,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:282,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:284,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 288
    functionName: test_dcursor_wrap_after_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_tail
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_wrap_after_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:299,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:300,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:301,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:302,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:304,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:305,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:306,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:306,1
    - Dst: fr_dcursor_set_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:308,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:309,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:310,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:310,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:311,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 312
    functionName: test_dcursor_current_set_valid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_set_current
    - fr_dcursor_next_peek
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_current_set_valid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:323,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:324,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:325,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:327,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:328,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:329,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:329,1
    - Dst: fr_dcursor_set_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:332,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:333,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:333,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:334,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 335
    functionName: test_dcursor_current_set_invalid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_set_current
    - fr_dcursor_next_peek
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_current_set_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:344,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:346,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:347,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:349,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:350,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:351,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: test_dcursor_append_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_next_peek
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:363,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:365,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:366,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:367,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:368,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:370,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:371,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:372,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:372,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:373,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:373,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:374,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 375
    functionName: test_dcursor_append_empty_3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_next
    - fr_dcursor_tail
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_empty_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:384,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:386,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:387,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:389,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:390,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:391,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: test_dcursor_prepend_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next_peek
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:401,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:403,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:404,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:406,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:407,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:408,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: test_dcursor_insert_into_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next_peek
    - TEST_CHECK
    - fr_dcursor_insert
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_into_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:420,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:422,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:423,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:424,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:425,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:427,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:428,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:429,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:429,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:430,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:430,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:431,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 432
    functionName: test_dcursor_insert_into_empty_3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_tail
    - TEST_CHECK
    - fr_dcursor_insert
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_into_empty_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:441,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:443,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:444,1
    - Dst: fr_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:444,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:447,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:448,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 449
    functionName: test_dcursor_replace_in_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_replace
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_in_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:459,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:460,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:462,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:463,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:465,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:465,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:466,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:466,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:468,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:469,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:472,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:474,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 476
    functionName: test_dcursor_prepend_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:486,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:487,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:489,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:490,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:492,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:492,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:493,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:493,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:495,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:496,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:498,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:499,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:501,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 503
    functionName: test_dcursor_append_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:513,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:514,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:516,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:517,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:519,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:519,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:520,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:520,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:522,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:523,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:525,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:526,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:528,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 530
    functionName: test_dcursor_insert_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_insert
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:540,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:541,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:543,1
    - Dst: fr_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:544,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:545,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:547,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:548,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:550,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:551,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:553,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 555
    functionName: test_dcursor_replace_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_replace
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:566,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:567,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:568,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:570,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:571,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:573,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:574,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:574,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:576,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:577,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:579,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:580,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:582,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:583,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:585,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 587
    functionName: test_dcursor_prepend_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:598,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:599,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:600,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:602,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:603,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:605,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:605,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:606,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:606,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:608,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:609,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:611,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:612,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:614,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 616
    functionName: test_dcursor_append_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:627,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:628,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:629,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:631,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:632,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:641,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:641,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:642,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:642,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:644,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:645,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:647,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:648,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:650,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:651,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:653,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 655
    functionName: test_dcursor_insert_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_insert
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:666,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:667,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:668,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:676,1
    - Dst: fr_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:677,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:678,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:680,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:681,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:683,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:684,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:686,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 657
    functionDepth: 3
    functionLinenumber: 657
    functionLinenumberEnd: 688
    functionName: test_dcursor_replace_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_replace
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:700,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:701,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:702,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:703,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:705,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:706,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:707,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:709,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:709,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:710,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:710,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:712,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:713,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:715,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:716,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:718,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:719,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:721,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 723
    functionName: test_dcursor_prepend_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:735,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:736,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:737,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:738,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:740,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:741,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:742,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:744,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:744,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:745,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:745,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:747,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:748,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:750,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:751,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:753,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 755
    functionName: test_dcursor_append_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:767,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:768,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:769,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:770,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:772,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:773,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:774,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:776,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:776,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:777,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:777,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:779,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:780,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:782,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:783,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:785,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:786,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:788,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 790
    functionName: test_dcursor_insert_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_insert
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:802,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:803,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:804,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:805,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:807,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:808,1
    - Dst: fr_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:809,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:810,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:812,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:813,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:815,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:815,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:817,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:818,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:820,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 822
    functionName: test_dcursor_replace_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_replace
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:834,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:835,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:836,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:837,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:839,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:840,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:841,1
    - Dst: fr_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:842,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:844,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:844,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:845,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:845,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:847,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:848,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:850,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:851,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:853,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 855
    functionName: test_dcursor_prepend_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_prepend
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:867,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:868,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:869,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:870,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:872,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:873,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:874,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:875,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:877,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:877,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:878,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:878,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:880,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:881,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:883,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:884,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:886,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 888
    functionName: test_dcursor_append_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:900,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:901,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:902,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:903,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:905,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:906,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:907,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:908,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:910,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:910,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:911,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:911,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:913,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:914,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:916,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:917,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:919,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:920,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:922,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 924
    functionName: test_dcursor_insert_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_insert
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:936,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:937,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:938,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:939,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:941,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:942,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:943,1
    - Dst: fr_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:944,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:945,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:947,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:948,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:950,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:950,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:952,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:953,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:955,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 957
    functionName: test_dcursor_replace_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_replace
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:964,1
    - Dst: _fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:966,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:967,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 959
    functionDepth: 4
    functionLinenumber: 959
    functionLinenumberEnd: 968
    functionName: test_dcursor_remove_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - _fr_dcursor_init
    - test_list_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:977,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:978,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:980,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:982,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:983,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:985,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:985,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:986,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:986,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:987,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:987,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:988,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 989
    functionName: test_dcursor_remove_1i
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_1i(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:999,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1000,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1001,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1003,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1004,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1006,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1007,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1007,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1008,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1008,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1009,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1009,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1010,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1010,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1012,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1013,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1015,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1015,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1016,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1016,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1017,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1017,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1018,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 991
    functionDepth: 3
    functionLinenumber: 991
    functionLinenumberEnd: 1019
    functionName: test_dcursor_remove_2i
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_2i(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1030,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1031,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1032,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1033,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1035,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1036,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1037,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1038,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1038,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1039,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1039,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1041,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1042,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1043,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1043,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1044,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1044,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1046,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1047,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1049,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1049,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1050,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1021
    functionDepth: 3
    functionLinenumber: 1021
    functionLinenumberEnd: 1051
    functionName: test_dcursor_remove_3i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_3i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1062,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1063,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1064,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1065,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1067,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1068,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1070,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1071,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1072,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1072,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1073,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1073,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1075,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1076,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1084,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1084,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1085,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1085,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1087,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1088,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1090,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1090,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1091,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1092
    functionName: test_dcursor_remove_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1103,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1104,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1105,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1106,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1108,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1109,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1111,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1112,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1113,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1114,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1114,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1119,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1120,1
    - Dst: fr_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1121
    functionName: test_dcursor_remove_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next_peek
    - fr_dcursor_tail
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1138,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1139,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1140,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1141,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1143,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1144,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1145,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1146,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1148,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1149,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1158,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1158,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1159,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1160,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1160,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1165,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1165,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1166,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1167,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1167,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1168,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1168,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1169,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1170,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1171,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1171,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1172,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1173,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1173,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1178,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1178,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1179,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1180,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1180,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1181,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1181,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1182,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1183,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1183,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1184,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1184,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1186,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1186,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1187,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1123
    functionDepth: 4
    functionLinenumber: 1123
    functionLinenumberEnd: 1188
    functionName: test_dcursor_merge_start_a_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - TEST_MSG
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_list_next_peek
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_start_a_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1205,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1206,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1207,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1208,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1210,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1211,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1212,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1213,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1215,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1216,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1217,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1218,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1223,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1223,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1224,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1225,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1225,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1230,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1230,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1231,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1232,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1232,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1233,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1233,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1234,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1235,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1235,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1236,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1236,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1237,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1238,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1238,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1243,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1243,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1244,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1245,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1245,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1246,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1248,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1248,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1249,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1190
    functionDepth: 4
    functionLinenumber: 1190
    functionLinenumberEnd: 1250
    functionName: test_dcursor_merge_mid_a
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - TEST_MSG
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_list_next_peek
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_mid_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1267,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1268,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1269,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1270,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1272,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1273,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1274,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1275,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1277,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1278,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1279,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1285,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1285,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1286,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1287,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1287,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1292,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1292,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1293,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1294,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1294,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1295,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1295,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1296,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1297,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1297,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1298,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1298,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1299,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1300,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1300,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1305,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1305,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1306,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1306,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1307,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1252
    functionDepth: 4
    functionLinenumber: 1252
    functionLinenumberEnd: 1308
    functionName: test_dcursor_merge_end_a
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - TEST_MSG
    - fr_dcursor_tail
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_list_next_peek
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_end_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1325,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1326,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1327,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1328,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1330,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1331,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1332,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1333,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1335,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1336,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1337,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1338,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1346,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1346,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1347,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1348,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1348,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1353,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1353,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1354,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1355,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1355,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1356,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1356,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1357,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1358,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1358,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1363,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1363,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1364,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1365,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1365,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1366,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1366,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1367,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1368,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1368,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1369,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1369,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1371,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1371,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1372,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1310
    functionDepth: 4
    functionLinenumber: 1310
    functionLinenumberEnd: 1373
    functionName: test_dcursor_merge_mid_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - TEST_MSG
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_list_next_peek
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_mid_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1390,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1391,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1392,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1393,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1395,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1396,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1397,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1398,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1400,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1401,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1402,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1403,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1404,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1412,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1412,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1413,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1414,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1414,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1419,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1419,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1420,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1425,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1425,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1426,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1426,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1427,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1428,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1428,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1429,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1429,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1430,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1431,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1431,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1432,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1432,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1434,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1434,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1435,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1375
    functionDepth: 4
    functionLinenumber: 1375
    functionLinenumberEnd: 1436
    functionName: test_dcursor_merge_end_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - TEST_MSG
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_end_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1449,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1450,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1451,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1452,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1453,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1455,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1456,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1457,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1459,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1459,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1460,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1460,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1461,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1461,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1463,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1463,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1464,1
    - Dst: fr_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1465
    functionName: test_dcursor_merge_with_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_list_next_peek
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_with_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1478,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1479,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1480,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1481,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1482,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1484,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1485,1
    - Dst: fr_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1486,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1488,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1488,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1489,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1489,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1490,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1467
    functionDepth: 4
    functionLinenumber: 1467
    functionLinenumberEnd: 1491
    functionName: test_dcursor_merge_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_merge
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1503,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1504,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1505,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1506,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1508,1
    - Dst: fr_dcursor_copy
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1509,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1511,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1511,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1512,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1513,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1493
    functionDepth: 3
    functionLinenumber: 1493
    functionLinenumberEnd: 1514
    functionName: test_dcursor_copy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_copy
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1523,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1525,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1526,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1527,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1529,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1530,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1531,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1532,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1534,1
    - Dst: fr_dcursor_free_list
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1535,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1537,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1538,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1538,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1539,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1539,1
    - Dst: fr_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1516
    functionDepth: 4
    functionLinenumber: 1516
    functionLinenumberEnd: 1543
    functionName: test_dcursor_free
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_next
    - fr_dcursor_append
    - talloc_free
    - fr_dcursor_tail
    - talloc_zero
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_free_list
    - fr_dcursor_init
    - fr_dcursor_remove
    linkageType: ''
    returnType: void
    signature: void test_dcursor_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1551,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1553,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1554,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1555,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1557,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1558,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1559,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1560,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1562,1
    - Dst: fr_dcursor_free_item
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1563,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1565,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1565,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1566,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1566,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1567,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1567,1
    - Dst: fr_dcursor_free_item
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1569,1
    - Dst: fr_dcursor_free_item
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1570,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1572,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1572,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1573,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1574,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1545
    functionDepth: 4
    functionLinenumber: 1545
    functionLinenumberEnd: 1575
    functionName: test_dcursor_free_item
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - test_list_init
    - fr_dcursor_append
    - fr_dcursor_free_item
    - fr_dcursor_tail
    - talloc_zero
    - fr_dcursor_head
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_dcursor_free_item(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1583
    functionDepth: 3
    functionLinenumber: 1583
    functionLinenumberEnd: 1593
    functionName: iter_name_check
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    linkageType: ''
    returnType: void
    signature: void *iter_name_check(fr_dcursor_t *cursor, void *current, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1604,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1605,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1606,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1607,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1609,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1610,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1612,1
    - Dst: fr_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1595
    functionDepth: 4
    functionLinenumber: 1595
    functionLinenumberEnd: 1613
    functionName: test_intersect_differing_lists
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_dcursor_intersect_head
    - test_list_init
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_intersect_differing_lists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1625,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1626,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1627,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1628,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1630,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1631,1
    - Dst: fr_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1633,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1634,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1636,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1636,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1637,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1637,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1638,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1615
    functionDepth: 4
    functionLinenumber: 1615
    functionLinenumberEnd: 1639
    functionName: test_intersect_no_iterators
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_dcursor_intersect_head
    - test_list_init
    - fr_dcursor_intersect_next
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_intersect_no_iterators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1652,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1653,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1654,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1655,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1656,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1658,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1659,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1661,1
    - Dst: fr_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1661,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1662,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1662,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1663,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1663,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1664,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1641
    functionDepth: 4
    functionLinenumber: 1641
    functionLinenumberEnd: 1665
    functionName: test_intersect_iterator_a
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_dcursor_intersect_head
    - test_list_init
    - fr_dcursor_iter_init
    - fr_dcursor_intersect_next
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1678,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1679,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1680,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1681,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1682,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1684,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1685,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1687,1
    - Dst: fr_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1687,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1688,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1688,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1689,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1690
    functionName: test_intersect_iterator_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_dcursor_intersect_head
    - test_list_init
    - fr_dcursor_iter_init
    - fr_dcursor_intersect_next
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1705,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1706,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1707,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1708,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1709,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1710,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1712,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1713,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1715,1
    - Dst: fr_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1715,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1716,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1716,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1717,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1718,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1718,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1719,1
    - Dst: fr_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1692
    functionDepth: 4
    functionLinenumber: 1692
    functionLinenumberEnd: 1720
    functionName: test_intersect_iterator_ab
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dcursor_intersect_head
    - test_list_init
    - TEST_MSG
    - fr_dcursor_iter_init
    - fr_dcursor_intersect_next
    - TEST_CHECK
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_ab(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1735,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1736,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1737,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1738,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1739,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1740,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1742,1
    - Dst: fr_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1743,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1745,1
    - Dst: fr_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1722
    functionDepth: 4
    functionLinenumber: 1722
    functionLinenumberEnd: 1746
    functionName: test_intersect_iterator_disjoint
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_intersect_head
    - test_list_init
    - fr_dcursor_iter_init
    - TEST_CHECK
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_disjoint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - uctx
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1754
    functionName: eval_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool eval_eq(void const *item, void const *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1768,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1769,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1770,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1771,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1772,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1773,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1774,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1776,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1778,1
    - Dst: fr_dcursor_filter_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1778,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1779,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1779,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1780,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1780,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1781,1
    - Dst: fr_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1756
    functionDepth: 5
    functionLinenumber: 1756
    functionLinenumberEnd: 1782
    functionName: test_filter_head_next
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - test_list_init
    - TEST_CHECK
    - fr_dcursor_init
    - fr_dcursor_filter_head
    - fr_dcursor_filter_next
    linkageType: ''
    returnType: void
    signature: void test_filter_head_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1796,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1797,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1798,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1799,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1800,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1801,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1802,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1804,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1806,1
    - Dst: fr_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1806,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1807,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1808,1
    - Dst: fr_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1808,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1809,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1810,1
    - Dst: fr_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1810,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1811,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1812,1
    - Dst: fr_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1784
    functionDepth: 4
    functionLinenumber: 1784
    functionLinenumberEnd: 1813
    functionName: test_filter_current
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_filter_current
    - fr_dlist_insert_tail
    - test_list_init
    - fr_dcursor_next
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_filter_current(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1827,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1828,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1829,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1830,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1831,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1832,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1833,1
    - Dst: fr_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1835,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1837,1
    - Dst: fr_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_tests.c:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1815
    functionDepth: 4
    functionLinenumber: 1815
    functionLinenumberEnd: 1838
    functionName: test_filter_no_match
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_tests.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_filter_current
    - fr_dlist_insert_tail
    - test_list_init
    - TEST_CHECK
    - fr_dcursor_init
    linkageType: ''
    returnType: void
    signature: void test_filter_no_match(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:50,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:54,1
    - Dst: fr_pair_prepend_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:54,1
    - Dst: PAIR_LIST_VERIFY_WITH_CTX
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - out
    - test_defs
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_test_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: fr_pair_test_list_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h
    functionUses: 6
    functionsReached:
    - fr_type_is_structural
    - PAIR_LIST_VERIFY_WITH_CTX
    - fr_pair_prepend_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int fr_pair_test_list_alloc(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t\t
      \ fr_dict_test_attr_t const *test_defs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:68,1
    - Dst: fr_pair_append_by_da_parent
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:72,1
    - Dst: PAIR_LIST_VERIFY_WITH_CTX
      Src: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - out
    - test_defs
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_test_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: fr_pair_test_list_alloc_nested
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_test_helpers.h
    functionUses: 2
    functionsReached:
    - fr_pair_append_by_da_parent
    - PAIR_LIST_VERIFY_WITH_CTX
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: "int fr_pair_test_list_alloc_nested(TALLOC_CTX *ctx, fr_pair_list_t
      *out,\n\t\t\t\t\t  \tfr_dict_test_attr_t const *test_defs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:70,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:73,1
    - Dst: fr_hmac_md5
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:75,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:77,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:77,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:88,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:91,1
    - Dst: fr_hmac_md5
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:93,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:95,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:95,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:110,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:120,1
    - Dst: fr_hmac_md5
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:122,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:124,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 130
    functionName: test_hmac_md5
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hmac_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - fr_hmac_md5
    - strlen
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_hmac_md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:164,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:167,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:169,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:171,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:171,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:186,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:196,1
    - Dst: fr_hmac_sha1
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:198,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:200,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/hmac_tests.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 206
    functionName: test_hmac_sha1
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hmac_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - strlen
    - fr_hmac_sha1
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: hash_test_hash
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - fr_hash
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_test_hash(void const *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: hash_test_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t hash_test_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:55,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:56,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:57,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:58,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:60,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:61,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:62,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:64,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:65,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:66,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:67,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:69,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:70,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:72,1
    - Dst: fr_hash_case_string
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:73,1
    - Dst: fr_hash_case_string
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:74,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:75,1
    - Dst: fr_hash_case_string
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:77,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:78,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:80,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:81,1
    - Dst: fr_hash
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:82,1
    - Dst: fr_hash_update
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:83,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 85
    functionName: test_hash_functions
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - fr_hash_string
    - TEST_CASE
    - fr_hash_case_string
    - TEST_CHECK
    - fr_hash
    - fr_hash_update
    linkageType: ''
    returnType: void
    signature: void test_hash_functions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:94,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:95,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:96,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:97,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:99,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:101,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:103,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:104,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:105,1
    - Dst: fr_hash64_update
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:106,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: test_hash64_functions
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_hash64
    - fr_hash64_update
    linkageType: ''
    returnType: void
    signature: void test_hash64_functions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:118,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:119,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:122,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:122,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:124,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:126,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:127,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:127,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:129,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:129,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:131,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:135,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:138,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:140,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 4
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: test_hash_table_basic
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_hash_table_find
    - TEST_CASE
    - fr_hash_table_alloc
    - snprintf
    - fr_hash_table_num_elements
    - TEST_CHECK
    - TEST_ASSERT
    - fr_hash_table_insert
    linkageType: ''
    returnType: void
    signature: void test_hash_table_basic(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:156,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:157,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:159,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:161,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:164,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:165,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:165,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:166,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:168,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:168,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:170,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:174,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:175,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:176,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:179,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:183,1
    - Dst: fr_hash_table_remove
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:187,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:188,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:189,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:191,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:191,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:193,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:199,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:202,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:207,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 209
    functionName: test_hash_table_many
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_remove
    - TEST_MSG
    - fr_hash_table_find
    - TEST_CASE
    - talloc_free
    - fr_hash_table_alloc
    - free
    - snprintf
    - fr_hash_table_num_elements
    - calloc
    - TEST_CHECK
    - TEST_ASSERT
    - fr_hash_table_insert
    linkageType: ''
    returnType: void
    signature: void test_hash_table_many(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:219,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:220,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:223,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:224,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:224,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:227,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:227,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:229,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:229,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 232
    functionName: test_hash_table_duplicate
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_hash_table_alloc
    - fr_hash_table_num_elements
    - TEST_CHECK
    - TEST_ASSERT
    - fr_hash_table_insert
    linkageType: ''
    returnType: void
    signature: void test_hash_table_duplicate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:245,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:246,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:249,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:251,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:253,1
    - Dst: fr_hash_table_replace
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:254,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:255,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:256,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:257,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:257,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:259,1
    - Dst: fr_hash_table_replace
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:260,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:261,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:262,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:263,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:263,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:265,1
    - Dst: fr_hash_table_find
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:266,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:267,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 270
    functionName: test_hash_table_replace
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_hash_table_find
    - TEST_CASE
    - fr_hash_table_alloc
    - snprintf
    - fr_hash_table_num_elements
    - fr_hash_table_replace
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_hash_table_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:280,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:281,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:283,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:286,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:287,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:287,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:289,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:290,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:290,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:291,1
    - Dst: fr_hash_table_num_elements
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:291,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:293,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:296,1
    - Dst: fr_hash_table_delete
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:296,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 300
    functionName: test_hash_table_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - fr_hash_table_alloc
    - talloc
    - fr_hash_table_num_elements
    - TEST_CHECK
    - TEST_ASSERT
    - fr_hash_table_delete
    - fr_hash_table_insert
    linkageType: ''
    returnType: void
    signature: void test_hash_table_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:315,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:316,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:320,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:323,1
    - Dst: fr_hash_table_iter_init
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:324,1
    - Dst: fr_hash_table_iter_next
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:326,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:327,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:328,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:329,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:334,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:335,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 338
    functionName: test_hash_table_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - fr_hash_table_iter_next
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_hash_table_alloc
    - fr_hash_table_iter_init
    - TEST_CHECK
    - TEST_ASSERT
    - fr_hash_table_insert
    linkageType: ''
    returnType: void
    signature: void test_hash_table_iter(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_hash_table_alloc
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:350,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:351,1
    - Dst: fr_hash_table_insert
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:355,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:358,1
    - Dst: fr_hash_table_flatten
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:359,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:360,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:361,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:367,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:369,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:373,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:375,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/hash_tests.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 343
    functionDepth: 5
    functionLinenumber: 343
    functionLinenumberEnd: 379
    functionName: test_hash_table_flatten
    functionSourceFile: /src/freeradius-server/src/lib/util/test/hash_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_hash_table_flatten
    - TEST_CASE
    - fr_hash_table_alloc
    - TEST_CHECK
    - TEST_ASSERT
    - fr_hash_table_insert
    linkageType: ''
    returnType: void
    signature: void test_hash_table_flatten(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_list_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:25,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - test_item_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: test_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_next
    - FR_DLIST_HEAD
    linkageType: ''
    returnType: test_item_t
    signature: test_item_t *test_iter(fr_dcursor_t *cursor, test_item_t *current,
      UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:30,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:32,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:34,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:36,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:37,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:38,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:39,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:39,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:40,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:40,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: test_init_null_item
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_list_init
    - FR_DLIST_HEAD
    - test_dcursor_list_next_peek
    - test_dcursor_iter_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_init_null_item(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:46,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:49,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:51,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:52,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:54,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:55,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:56,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:57,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: test_init_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_init_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:62,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:66,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:68,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:69,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:70,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:72,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:73,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:74,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: test_init_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_init_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:79,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:83,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:85,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:86,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:87,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:89,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:90,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:90,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:92,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:93,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:94,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:94,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:95,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: test_next
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:100,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:104,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:106,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:107,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:108,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:110,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:111,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:112,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:114,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:114,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:115,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:115,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:119,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:120,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: test_next_wrap
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_next_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:125,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:126,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:128,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:130,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:131,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:132,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:133,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: test_dcursor_head_tail_null
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_head
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_tail_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:138,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:143,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:145,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:146,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:147,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:148,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:150,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: test_dcursor_test_head
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_head
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_test_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:157,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:161,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:163,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:164,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:165,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:167,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:169,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:170,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:172,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:173,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:175,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:176,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:178,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:179,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 183
    functionName: test_dcursor_head_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_head
    - test_dcursor_current
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:187,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:191,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:193,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:194,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:195,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:198,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:201,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:203,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:204,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:206,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:207,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:209,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 211
    functionName: test_dcursor_iter_head_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_current
    - test_dcursor_next
    - test_list_init
    - test_dcursor_head
    - FR_DLIST_HEAD
    - test_dcursor_iter_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_iter_head_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:215,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:220,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:222,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:223,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:224,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:225,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:227,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:228,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:229,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 4
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: test_dcursor_head_after_next
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_head
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_after_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:235,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:240,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:242,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:243,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:244,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:245,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:247,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:248,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:249,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:250,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:251,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 253
    functionName: test_dcursor_test_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_tail
    - test_dcursor_current
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_test_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:257,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:262,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:264,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:265,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:266,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:267,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:269,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:270,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:271,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 273
    functionName: test_dcursor_head_after_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_head
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_head_after_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:277,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:282,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:284,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:285,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:286,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:287,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:289,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:290,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:291,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:292,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:294,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 296
    functionName: test_dcursor_wrap_after_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_next
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_wrap_after_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:300,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:303,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:305,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:306,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:307,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:309,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:310,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:311,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 312
    functionName: test_dcursor_append_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:316,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:321,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:323,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:325,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:326,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:327,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:328,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:330,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:332,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:332,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:333,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:333,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:334,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 335
    functionName: test_dcursor_append_empty_3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_empty_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:339,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:342,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:344,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:346,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:347,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:349,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:350,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:351,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: test_dcursor_prepend_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - TEST_CHECK
    - test_dcursor_prepend
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:356,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:361,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:363,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:365,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:366,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:367,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:368,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:370,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:371,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:372,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:372,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:373,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:373,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:374,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 375
    functionName: test_dcursor_prepend_empty_3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - FR_DLIST_HEAD
    - TEST_CHECK
    - test_dcursor_prepend
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_empty_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:379,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:382,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:384,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:386,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:387,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:389,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:390,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:391,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: test_dcursor_insert_into_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_insert
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_into_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:396,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:401,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:403,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:405,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:406,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:407,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:408,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:411,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:412,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:412,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:413,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:413,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:414,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 415
    functionName: test_dcursor_insert_into_empty_3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_insert
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_into_empty_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:419,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:422,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:424,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:426,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:427,1
    - Dst: test_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:427,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:429,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:430,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:431,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: test_dcursor_replace_in_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_next_peek
    - test_dcursor_replace
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_in_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:436,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:440,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:442,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:443,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:445,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:448,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:448,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:449,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:449,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:451,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:452,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:454,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:455,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:456,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:456,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:458,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 460
    functionName: test_dcursor_prepend_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    - test_dcursor_prepend
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:464,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:468,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:470,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:471,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:473,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:474,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:476,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:476,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:477,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:477,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:479,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:480,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:482,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:483,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:485,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 487
    functionName: test_dcursor_append_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:491,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:495,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:497,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:498,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:500,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:501,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:503,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:503,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:504,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:504,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:506,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:507,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:509,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:510,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 514
    functionName: test_dcursor_insert_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:518,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:522,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:524,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:525,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:527,1
    - Dst: test_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:528,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:529,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:531,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:532,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:534,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:535,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 539
    functionName: test_dcursor_replace_1i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_head
    - test_dcursor_tail
    - test_dcursor_replace
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_1i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:543,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:548,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:550,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:551,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:552,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:554,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:555,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:557,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:557,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:558,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:558,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:560,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:561,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:563,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:564,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:566,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:567,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:569,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 571
    functionName: test_dcursor_prepend_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    - test_dcursor_prepend
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:575,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:580,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:582,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:583,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:584,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:586,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:587,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:589,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:589,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:591,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:592,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:593,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:594,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:596,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:597,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:599,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 601
    functionName: test_dcursor_append_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_head
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:605,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:610,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:612,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:613,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:614,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:616,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:617,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:619,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:620,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:620,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:622,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:623,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:625,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:626,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:628,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:629,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:631,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 633
    functionName: test_dcursor_insert_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_insert
    - test_dcursor_next_peek
    - test_dcursor_head
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:637,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:642,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:644,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:645,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:646,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:648,1
    - Dst: test_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:650,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:652,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:653,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:655,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:656,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:658,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 660
    functionName: test_dcursor_replace_2i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_head
    - test_dcursor_tail
    - test_dcursor_replace
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_2i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:664,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:670,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:672,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:673,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:674,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:675,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:677,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:678,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:679,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:681,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:681,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:682,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:682,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:684,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:685,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:687,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:688,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:690,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:691,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:693,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 695
    functionName: test_dcursor_prepend_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    - test_dcursor_prepend
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:699,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:705,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:707,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:708,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:709,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:710,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:712,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:713,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:714,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:716,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:716,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:717,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:717,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:719,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:720,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:722,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:723,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:725,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 697
    functionDepth: 4
    functionLinenumber: 697
    functionLinenumberEnd: 727
    functionName: test_dcursor_append_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:731,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:737,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:739,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:740,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:741,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:742,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:744,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:745,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:746,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:748,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:748,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:749,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:749,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:751,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:752,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:755,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:757,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:758,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:760,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 762
    functionName: test_dcursor_insert_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_insert
    - test_dcursor_next_peek
    - test_dcursor_head
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:766,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:772,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:774,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:775,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:776,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:777,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:779,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:780,1
    - Dst: test_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:781,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:782,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:784,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:785,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:787,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:787,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:789,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:790,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:792,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 794
    functionName: test_dcursor_replace_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - test_dcursor_replace
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:798,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:804,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:806,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:807,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:808,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:809,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:811,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:812,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:813,1
    - Dst: test_dcursor_prepend
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:814,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:816,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:816,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:817,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:817,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:819,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:820,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:822,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:823,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:825,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 827
    functionName: test_dcursor_prepend_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    - test_dcursor_prepend
    linkageType: ''
    returnType: void
    signature: void test_dcursor_prepend_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:831,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:837,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:839,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:840,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:841,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:842,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:844,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:845,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:846,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:847,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:849,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:849,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:850,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:850,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:852,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:853,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:855,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:856,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:858,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 860
    functionName: test_dcursor_append_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - test_dcursor_append
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_append_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:864,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:870,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:872,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:873,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:874,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:875,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:877,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:878,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:879,1
    - Dst: test_dcursor_insert
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:880,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:882,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:882,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:883,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:883,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:885,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:886,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:888,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:889,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:891,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 862
    functionDepth: 4
    functionLinenumber: 862
    functionLinenumberEnd: 893
    functionName: test_dcursor_insert_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_insert
    - test_dcursor_next_peek
    - test_dcursor_head
    - test_dcursor_tail
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_insert_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:897,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:903,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:905,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:906,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:907,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:908,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:910,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:911,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:912,1
    - Dst: test_dcursor_replace
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:913,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:914,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:916,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:917,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:919,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:919,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:921,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:922,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:924,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 895
    functionDepth: 4
    functionLinenumber: 895
    functionLinenumberEnd: 926
    functionName: test_dcursor_replace_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - test_dcursor_tail
    - test_dcursor_replace
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_replace_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:930,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:931,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:933,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:935,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:937,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 938
    functionName: test_dcursor_remove_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - FR_DLIST_HEAD
    - test_dcursor_remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:942,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:945,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:947,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:948,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:950,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:952,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:953,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:955,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:955,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:956,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:956,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:957,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:957,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:958,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 940
    functionDepth: 4
    functionLinenumber: 940
    functionLinenumberEnd: 959
    functionName: test_dcursor_remove_1i
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_tail
    - test_dcursor_head
    - FR_DLIST_HEAD
    - test_dcursor_remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_1i(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:963,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:967,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:969,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:970,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:971,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:973,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:975,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:976,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:978,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:978,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:979,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:979,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:980,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:980,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:981,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:981,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:983,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:984,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:986,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:986,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:987,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:987,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:988,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:988,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:989,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 961
    functionDepth: 4
    functionLinenumber: 961
    functionLinenumberEnd: 990
    functionName: test_dcursor_remove_2i
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - test_dcursor_tail
    - test_dcursor_head
    - FR_DLIST_HEAD
    - test_dcursor_remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_2i(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:994,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:999,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1001,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1002,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1003,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1004,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1006,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1007,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1008,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1009,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1009,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1010,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1010,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1012,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1013,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1014,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1014,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1015,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1015,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1017,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1018,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1020,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1020,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1021,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1021,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1022,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 992
    functionDepth: 4
    functionLinenumber: 992
    functionLinenumberEnd: 1023
    functionName: test_dcursor_remove_3i_start
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_tail
    - test_dcursor_head
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - test_dcursor_remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_3i_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1027,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1032,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1034,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1035,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1036,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1037,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1039,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1040,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1042,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1043,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1044,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1044,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1045,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1045,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1047,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1048,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1050,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1050,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1051,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1051,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1053,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1054,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1056,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1056,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1057,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1025
    functionDepth: 4
    functionLinenumber: 1025
    functionLinenumberEnd: 1058
    functionName: test_dcursor_remove_3i_mid
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - test_dcursor_tail
    - test_dcursor_next_peek
    - test_dcursor_head
    - FR_DLIST_HEAD
    - test_dcursor_remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_3i_mid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1062,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1067,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1069,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1070,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1071,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1072,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1074,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1075,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1077,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1078,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1079,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1079,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1080,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1080,1
    - Dst: test_dcursor_remove
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1082,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1083,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1085,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1085,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1086,1
    - Dst: test_dcursor_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1086,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1088,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1088,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1089,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1090
    functionName: test_dcursor_remove_3i_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_current
    - test_dcursor_head
    - test_dcursor_next_peek
    - FR_DLIST_HEAD
    - test_dcursor_remove
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_remove_3i_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1094,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1104,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1106,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1107,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1108,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1109,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1111,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1112,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1113,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1114,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1116,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1117,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1120,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1120,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1121,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1122,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1124,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1124,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1125,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1126,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1126,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1127,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1127,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1128,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1129,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1129,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1130,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1130,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1131,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1132,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1134,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1134,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1135,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1136,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1136,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1137,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1137,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1138,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1139,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1140,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1142,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1143,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1144
    functionName: test_dcursor_merge_start_a_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_current
    - test_list_init
    - test_dcursor_next
    - TEST_MSG
    - test_dcursor_merge
    - FR_DLIST_HEAD
    - test_dcursor_list_next_peek
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_start_a_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1148,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1158,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1160,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1161,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1162,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1163,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1165,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1166,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1167,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1168,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1170,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1171,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1172,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1173,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1175,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1175,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1176,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1177,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1179,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1179,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1180,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1181,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1182,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1182,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1183,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1184,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1184,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1185,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1185,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1186,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1187,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1187,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1192,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1192,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1193,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1194,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1195,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1195,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1197,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1197,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1198,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1146
    functionDepth: 2
    functionLinenumber: 1146
    functionLinenumberEnd: 1199
    functionName: test_dcursor_merge_mid_a
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - TEST_MSG
    - test_dcursor_merge
    - FR_DLIST_HEAD
    - test_dcursor_list_next_peek
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_mid_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1203,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1213,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1215,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1216,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1217,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1218,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1220,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1221,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1222,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1223,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1225,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1226,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1227,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1228,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1230,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1230,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1231,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1232,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1232,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1234,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1234,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1235,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1236,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1236,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1237,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1237,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1238,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1239,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1239,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1240,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1240,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1241,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1242,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1242,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1244,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1244,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1245,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1245,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1246,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1247
    functionName: test_dcursor_merge_end_a
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_current
    - TEST_MSG
    - test_dcursor_merge
    - test_dcursor_next
    - FR_DLIST_HEAD
    - test_dcursor_list_next_peek
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_end_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1251,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1261,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1263,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1264,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1265,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1266,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1268,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1269,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1270,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1271,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1273,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1274,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1275,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1276,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1278,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1278,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1279,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1280,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1280,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1282,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1282,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1283,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1284,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1284,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1285,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1285,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1286,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1287,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1287,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1289,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1289,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1290,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1291,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1291,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1292,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1292,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1293,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1294,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1294,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1295,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1295,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1297,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1297,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1298,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1299
    functionName: test_dcursor_merge_mid_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - TEST_MSG
    - test_dcursor_merge
    - FR_DLIST_HEAD
    - test_dcursor_list_next_peek
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_mid_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1303,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1313,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1315,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1316,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1317,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1318,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1320,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1321,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1322,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1323,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1325,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1326,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1327,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1328,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1329,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1331,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1331,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1332,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1333,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1333,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1335,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1335,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1336,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1337,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1338,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1338,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1339,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1340,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1340,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1341,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1341,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1342,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1343,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1343,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1344,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1344,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1346,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1346,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1347,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1301
    functionDepth: 4
    functionLinenumber: 1301
    functionLinenumberEnd: 1348
    functionName: test_dcursor_merge_end_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_current
    - TEST_MSG
    - test_dcursor_merge
    - test_dcursor_head
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_end_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1352,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1358,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1360,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1361,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1362,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1363,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1364,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1366,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1367,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1368,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1370,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1370,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1371,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1371,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1372,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1372,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1374,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1374,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1375,1
    - Dst: test_dcursor_list_next_peek
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1350
    functionDepth: 4
    functionLinenumber: 1350
    functionLinenumberEnd: 1376
    functionName: test_dcursor_merge_with_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_head
    - test_dcursor_current
    - test_dcursor_merge
    - FR_DLIST_HEAD
    - test_dcursor_list_next_peek
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_with_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1380,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1386,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1388,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1389,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1390,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1391,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1392,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1394,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1395,1
    - Dst: test_dcursor_merge
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1396,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1398,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1398,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1399,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1399,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1400,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1378
    functionDepth: 4
    functionLinenumber: 1378
    functionLinenumberEnd: 1401
    functionName: test_dcursor_merge_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_head
    - test_dcursor_merge
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_merge_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1405,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1411,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1413,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1414,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1415,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1416,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1418,1
    - Dst: test_dcursor_copy
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1419,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1421,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1421,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1422,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1422,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1423,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1403
    functionDepth: 4
    functionLinenumber: 1403
    functionLinenumberEnd: 1424
    functionName: test_dcursor_copy_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_head
    - test_dcursor_copy
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_copy_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1429,1
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1430,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1432,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1434,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1435,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1436,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1438,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1439,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1440,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1441,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1443,1
    - Dst: test_dcursor_free_list
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1444,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1446,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1447,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1447,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1448,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1426
    functionDepth: 4
    functionLinenumber: 1426
    functionLinenumberEnd: 1449
    functionName: test_dcursor_free_by_list
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_head
    - test_dcursor_free_list
    - FR_DLIST_HEAD
    - test_dcursor_append
    - talloc_zero
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_free_by_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1454,1
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1455,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1457,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1459,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1460,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1461,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1463,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1464,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1465,1
    - Dst: test_dcursor_append
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1466,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1468,1
    - Dst: test_dcursor_free_item
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1469,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1471,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1471,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1472,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1472,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1473,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1473,1
    - Dst: test_dcursor_free_item
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1475,1
    - Dst: test_dcursor_free_item
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1476,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1478,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1478,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1479,1
    - Dst: test_dcursor_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1479,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1480,1
    - Dst: test_dcursor_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1451
    functionDepth: 5
    functionLinenumber: 1451
    functionLinenumberEnd: 1481
    functionName: test_dcursor_free_by_item
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_current
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_tail
    - test_list_init
    - test_dcursor_head
    - FR_DLIST_HEAD
    - test_dcursor_append
    - test_dcursor_free_item
    - talloc_zero
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_dcursor_free_by_item(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_list_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1492,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - test_item_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1497
    functionName: iter_name_check
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_next
    - FR_DLIST_HEAD
    linkageType: ''
    returnType: test_item_t
    signature: test_item_t *iter_name_check(fr_dcursor_t *cursor, test_item_t *current,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1501,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1505,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1507,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1508,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1509,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1510,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1512,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1513,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1515,1
    - Dst: test_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1499
    functionDepth: 2
    functionLinenumber: 1499
    functionLinenumberEnd: 1516
    functionName: test_intersect_differing_lists
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_intersect_head
    - test_list_init
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_intersect_differing_lists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1520,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1526,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1528,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1529,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1530,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1531,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1533,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1534,1
    - Dst: test_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1536,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1538,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1538,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1539,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1539,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1540,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1541
    functionName: test_intersect_no_iterators
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_intersect_next
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_intersect_head
    - test_list_init
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_intersect_no_iterators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1545,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1551,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1554,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1555,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1556,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1557,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1558,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1560,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1561,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1563,1
    - Dst: test_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1563,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1564,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1564,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1565,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1565,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1566,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1543
    functionDepth: 2
    functionLinenumber: 1543
    functionLinenumberEnd: 1567
    functionName: test_intersect_iterator_a
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_intersect_next
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_intersect_head
    - test_list_init
    - FR_DLIST_HEAD
    - test_dcursor_iter_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1571,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1577,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1580,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1581,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1582,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1583,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1584,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1586,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1587,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1589,1
    - Dst: test_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1589,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1590,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1590,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1591,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1592
    functionName: test_intersect_iterator_b
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_intersect_next
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_intersect_head
    - test_list_init
    - FR_DLIST_HEAD
    - test_dcursor_iter_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_b(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1596,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1603,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1607,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1608,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1609,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1610,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1611,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1612,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1614,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1615,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1617,1
    - Dst: test_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1617,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1618,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1618,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1619,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1620,1
    - Dst: test_dcursor_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1620,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1621,1
    - Dst: test_dcursor_intersect_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1594
    functionDepth: 2
    functionLinenumber: 1594
    functionLinenumberEnd: 1622
    functionName: test_intersect_iterator_ab
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_dcursor_intersect_next
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_intersect_head
    - test_dcursor_current
    - test_list_init
    - TEST_MSG
    - FR_DLIST_HEAD
    - test_dcursor_iter_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_ab(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1626,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1633,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1637,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1638,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1639,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1640,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1641,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1642,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1644,1
    - Dst: test_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1645,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1647,1
    - Dst: test_dcursor_intersect_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1648
    functionName: test_intersect_iterator_disjoint
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_intersect_head
    - test_list_init
    - FR_DLIST_HEAD
    - test_dcursor_iter_init
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_intersect_iterator_disjoint(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - uctx
    argTypes:
    - test_item_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1654
    functionName: eval_eq
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool eval_eq(test_item_t const *item, void const *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1658,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1666,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1668,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1669,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1670,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1671,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1672,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1673,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1674,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1676,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1678,1
    - Dst: test_dcursor_filter_head
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1678,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1679,1
    - Dst: test_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1679,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1680,1
    - Dst: test_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1680,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1681,1
    - Dst: test_dcursor_filter_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1682
    functionName: test_filter_head_next
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_filter_head
    - FR_DLIST_HEAD
    - test_dcursor_filter_next
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_filter_head_next(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1686,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1694,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1696,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1697,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1698,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1699,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1700,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1701,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1702,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1704,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1706,1
    - Dst: test_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1706,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1707,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1708,1
    - Dst: test_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1708,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1709,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1710,1
    - Dst: test_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1710,1
    - Dst: test_dcursor_next
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1711,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1712,1
    - Dst: test_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1684
    functionDepth: 2
    functionLinenumber: 1684
    functionLinenumberEnd: 1713
    functionName: test_filter_current
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_dcursor_next
    - test_list_init
    - test_dcursor_filter_current
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_filter_current(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DCURSOR
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1717,1
    - Dst: FR_DLIST_HEAD
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1725,1
    - Dst: test_list_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1727,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1728,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1729,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1730,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1731,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1732,1
    - Dst: test_list_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1733,1
    - Dst: test_dcursor_init
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1735,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1737,1
    - Dst: test_dcursor_filter_current
      Src: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1715
    functionDepth: 2
    functionLinenumber: 1715
    functionLinenumberEnd: 1738
    functionName: test_filter_no_match
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dcursor_typed_tests.c
    functionUses: 0
    functionsReached:
    - test_list_insert_tail
    - FR_DCURSOR
    - test_dcursor_init
    - test_list_init
    - test_dcursor_filter_current
    - FR_DLIST_HEAD
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_filter_no_match(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: TEST_SBUFF_LEN
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SBUFF_LEN(_sbuff, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _sbuff
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: TEST_SBUFF_USED
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_SBUFF_USED(_sbuff, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:51,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:52,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:54,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:55,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:56,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:58,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:59,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:59,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:61,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:62,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:63,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:63,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:65,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:66,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:66,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:68,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:69,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:70,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 71
    functionName: test_parse_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_init_in
    - TEST_CASE
    - TEST_CHECK
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_parse_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:79,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:80,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:80,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:81,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:81,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:83,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:84,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:84,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:85,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:85,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:87,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:88,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:88,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:89,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:90,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:90,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:97,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:98,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:99,1
    - Dst: fr_sbuff_is_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: test_is_char
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_char
    - fr_sbuff_marker
    - fr_sbuff_init_in
    - fr_sbuff_advance
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_is_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:110,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:112,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:113,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:113,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:114,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:115,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:116,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:118,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:119,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:119,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:120,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:121,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:122,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:123,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:125,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:126,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:126,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:127,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:128,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:130,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:131,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:133,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:133,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:135,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:137,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:138,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:140,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:140,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:141,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:143,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:145,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:146,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:148,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:148,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:149,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 152
    functionName: test_bstrncpy_exact
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - fr_sbuff_set_to_start
    - fr_sbuff_out_bstrncpy_exact
    - TEST_CASE
    - FR_SBUFF_OUT
    - TEST_CHECK_SLEN
    - fr_sbuff_init_in
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_bstrncpy_exact(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:162,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:164,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:165,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:165,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:166,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:167,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:168,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:170,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:171,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:171,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:172,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:173,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:174,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:175,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:177,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:178,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:178,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:180,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:182,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:183,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:185,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:185,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:186,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:187,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:189,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:190,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:192,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:192,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:193,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:195,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:197,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:198,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:200,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:200,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:201,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:202,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 204
    functionName: test_bstrncpy
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - fr_sbuff_set_to_start
    - TEST_CASE
    - FR_SBUFF_OUT
    - TEST_CHECK_SLEN
    - fr_sbuff_init_in
    - fr_sbuff_out_bstrncpy
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_bstrncpy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:232,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:239,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:240,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:240,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:241,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:242,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:243,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:245,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:246,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:246,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:247,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:248,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:249,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:250,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:252,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:253,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:253,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:254,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:255,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:257,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:258,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:260,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:260,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:261,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:262,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:264,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:265,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:267,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:267,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:268,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:269,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:270,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:272,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:273,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:275,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:275,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:276,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:277,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:278,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:283,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:284,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:285,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:285,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:287,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:288,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:290,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:291,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:292,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:292,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:294,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:295,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:297,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:298,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:299,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:299,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:301,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:302,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:304,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:305,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:306,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:306,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:308,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 310
    functionName: test_bstrncpy_allowed
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - fr_sbuff_set_to_start
    - TEST_CASE
    - FR_SBUFF_OUT
    - TEST_CHECK_SLEN
    - fr_sbuff_init_in
    - fr_sbuff_out_bstrncpy_allowed
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_bstrncpy_allowed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:320,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:327,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:328,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:328,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:329,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:330,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:331,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:333,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:334,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:334,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:335,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:336,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:338,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:340,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:341,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:341,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:342,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:343,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:345,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:346,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:347,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:347,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:348,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:349,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:350,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:351,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:353,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:354,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:356,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:356,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:357,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:358,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:360,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:361,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:363,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:363,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:364,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:365,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:366,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:368,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:369,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:371,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:371,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:372,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:373,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:374,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:379,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:380,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:381,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:381,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:381,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:382,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:383,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:385,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:386,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:387,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:387,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:387,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:388,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:389,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:391,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:392,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:393,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:393,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:393,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:394,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:395,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:397,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:398,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:399,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:399,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:399,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:400,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 402
    functionName: test_bstrncpy_until
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - fr_sbuff_set_to_start
    - TEST_CASE
    - FR_SBUFF_OUT
    - FR_SBUFF_TERM
    - TEST_CHECK_SLEN
    - fr_sbuff_init_in
    - fr_sbuff_out_bstrncpy_until
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_bstrncpy_until(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:448,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:454,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:455,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:455,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:456,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:457,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:458,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:460,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:461,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:461,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:462,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:463,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:464,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:465,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:467,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:468,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:468,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:469,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:470,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:472,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:473,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:475,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:475,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:476,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:477,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:479,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:480,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:482,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:482,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:483,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:484,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:485,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:487,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:488,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:490,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:490,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:491,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:492,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:493,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:498,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:499,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:500,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:500,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:501,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:502,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:503,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:505,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:506,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:507,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:507,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:508,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:509,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:510,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:512,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:513,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:514,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:514,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:515,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:516,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:517,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:519,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:520,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:521,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:521,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:522,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:523,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:524,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:529,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:530,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:531,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:531,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:532,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:533,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:534,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:535,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:537,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:538,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:539,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:539,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:540,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:541,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:542,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:543,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:548,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:549,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:550,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:550,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:551,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:552,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:553,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:554,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:560,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:561,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:562,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:562,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:563,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:564,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:565,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:566,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:572,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:573,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:574,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:574,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:575,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:576,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:577,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:578,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:584,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:585,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:586,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:586,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:587,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:588,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:589,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:590,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:596,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:597,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:598,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:598,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:599,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:600,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:601,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:602,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:609,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:610,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:611,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:611,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:613,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:614,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:615,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:621,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:622,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:623,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:623,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:625,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:626,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:627,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:669,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:670,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:671,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:671,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:673,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:674,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:675,1
    - Dst: fr_sbuff_out_aunescape_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:686,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:686,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:688,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:690,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:690,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 693
    functionName: test_unescape_until
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - fr_sbuff_set_to_start
    - talloc_free
    - TEST_CASE
    - FR_SBUFF_OUT
    - FR_SBUFF_TERM
    - FR_SBUFF_IN
    - TEST_CHECK_SLEN
    - fr_sbuff_init_in
    - fr_sbuff_out_aunescape_until
    - talloc_array_length
    - fr_sbuff_out_unescape_until
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_unescape_until(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:700,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:701,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:702,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:703,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:704,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:705,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:706,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:707,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:711,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:713,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:713,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:714,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:715,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:717,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:719,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:719,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:720,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:721,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:723,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:725,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:725,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:726,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 728
    functionName: test_unescape_multi_char_terminals
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - L
    - FR_SBUFF_OUT
    - fr_sbuff_init_in
    - fr_sbuff_out_bstrncpy_until
    - fr_sbuff_advance
    - TEST_CHECK
    - FR_SBUFF_TERMS
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_unescape_multi_char_terminals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:735,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:736,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:737,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:739,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:740,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:744,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:746,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:746,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:747,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:748,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:750,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:752,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:752,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:753,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:756,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:756,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:757,1
    - Dst: fr_sbuff_is_terminal
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 758
    functionName: test_eof_terminal
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_is_terminal
    - TEST_CHECK_SLEN_RETURN
    - L
    - FR_SBUFF_OUT
    - fr_sbuff_init_in
    - fr_sbuff_out_bstrncpy_until
    - fr_sbuff_advance
    - TEST_CHECK
    - FR_SBUFF_TERMS
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_eof_terminal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:778,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:779,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:784,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:786,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:786,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:788,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 790
    functionName: test_terminal_search_past_visible_end
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - L
    - FR_SBUFF_OUT
    - TEST_CHECK_SLEN
    - fr_sbuff_init_in
    - fr_sbuff_out_bstrncpy_until
    - FR_SBUFF_TERMS
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_terminal_search_past_visible_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:795,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:796,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:797,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:798,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:799,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:800,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:801,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:802,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:803,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:804,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:805,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:806,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:807,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:808,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:809,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:810,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:811,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:812,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:813,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:814,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:816,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:817,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:818,1
    - Dst: FR_SBUFF_TERMS
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:822,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:823,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:824,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:825,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:826,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:827,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:828,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:829,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:830,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:831,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:832,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:833,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:834,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:835,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:836,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:837,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:838,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:839,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:840,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:841,1
    - Dst: L
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:842,1
    - Dst: fr_sbuff_terminals_amerge
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:846,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:847,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:850,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 854
    functionName: test_terminal_merge
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - L
    - talloc_free
    - TEST_CHECK_LEN
    - FR_SBUFF_TERMS
    - TEST_CHECK_STRCMP
    - fr_sbuff_terminals_amerge
    linkageType: ''
    returnType: void
    signature: void test_terminal_merge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:863,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:863,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:865,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:866,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:867,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:867,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:867,1
    - Dst: TEST_CHECK_SLEN_RETURN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:868,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:869,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:869,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 871
    functionName: test_no_advance
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_SLEN_RETURN
    - fr_sbuff_out_bstrncpy_exact
    - TEST_CASE
    - FR_SBUFF_OUT
    - fr_sbuff_init_in
    - FR_SBUFF
    - strlen
    - strcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_no_advance(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:878,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:879,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:879,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:880,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:881,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:883,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:884,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:884,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:885,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:886,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:888,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:889,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:889,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:890,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:890,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:890,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:891,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:892,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:894,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:895,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:895,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:896,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:898,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:899,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:899,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:900,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:900,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:900,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:901,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:902,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:904,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:905,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:905,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:906,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:908,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:909,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:909,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:910,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:910,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:910,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:911,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:912,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:914,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:915,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:915,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:916,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:916,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:916,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:917,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:918,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:920,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:921,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:921,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:922,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:922,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:922,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:923,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:924,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:926,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:927,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:927,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:928,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:928,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:928,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:929,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:930,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:932,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:933,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:933,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:934,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:934,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:934,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:935,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:936,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:938,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:939,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:939,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:940,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:940,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:940,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:941,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:942,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:944,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:945,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:945,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:946,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:946,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:946,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:947,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:948,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 951
    functionName: test_talloc_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - fr_sbuff_trim_talloc
    - talloc_free
    - TEST_CASE
    - fr_sbuff_init_talloc
    - TEST_SBUFF_USED
    - strcmp
    - TEST_CHECK
    - fr_sbuff_in_strcpy
    - TEST_SBUFF_LEN
    linkageType: ''
    returnType: void
    signature: void test_talloc_extend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:958,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:959,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:959,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:960,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:961,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:963,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:964,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:964,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:965,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:965,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:965,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:966,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:967,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:969,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:970,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:970,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:971,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:971,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:971,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:972,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:973,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:975,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:976,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:976,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:977,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:977,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:977,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:978,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:979,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 982
    functionName: test_talloc_extend_init_zero
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - talloc_free
    - TEST_CASE
    - fr_sbuff_init_talloc
    - TEST_SBUFF_USED
    - strcmp
    - TEST_CHECK
    - fr_sbuff_in_strcpy
    - TEST_SBUFF_LEN
    linkageType: ''
    returnType: void
    signature: void test_talloc_extend_init_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:989,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:990,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:990,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:991,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:992,1
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:994,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:995,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:996,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:997,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:998,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:999,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1000,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1002,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1003,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1003,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1004,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1004,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1004,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1005,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1006,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1007,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1008,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1010,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1011,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1012,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1015
    functionName: test_talloc_extend_multi_level
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - talloc_free
    - FR_SBUFF_BIND_CURRENT
    - TEST_CASE
    - fr_sbuff_init_talloc
    - TEST_SBUFF_USED
    - strcmp
    - TEST_CHECK
    - fr_sbuff_in_strcpy
    - TEST_SBUFF_LEN
    linkageType: ''
    returnType: void
    signature: void test_talloc_extend_multi_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1023,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1024,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1024,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1025,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1026,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1028,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1029,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1029,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1030,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1030,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1031,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1032,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1034,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1035,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1037,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1038,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1038,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1039,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1039,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1040,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1041,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1042,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1044,1
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1045,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1046,1
    - Dst: fr_sbuff_marker
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1047,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1049,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1050,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1051,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1053,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1054,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1054,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1055,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1055,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1056,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1057,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1058,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1059,1
    - Dst: TEST_SBUFF_USED
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1060,1
    - Dst: TEST_SBUFF_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1061,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1017
    functionDepth: 2
    functionLinenumber: 1017
    functionLinenumberEnd: 1064
    functionName: test_talloc_extend_with_marker
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - talloc_free
    - FR_SBUFF_BIND_CURRENT
    - TEST_CASE
    - fr_sbuff_init_talloc
    - fr_sbuff_marker
    - TEST_SBUFF_USED
    - TEST_CHECK
    - fr_sbuff_in_strcpy
    - TEST_SBUFF_LEN
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_talloc_extend_with_marker(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1071,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1072,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1072,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1073,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1073,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1074,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1074,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1075,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1075,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1076,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1076,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1077,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1077,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1078,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1078,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1081
    functionName: test_talloc_extend_with_shift
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_shift
    - talloc_free
    - TEST_CASE
    - fr_sbuff_init_talloc
    - TEST_CHECK
    - fr_sbuff_in_strcpy
    linkageType: ''
    returnType: void
    signature: void test_talloc_extend_with_shift(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1101,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1102,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1103,1
    - Dst: fmemopen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1105,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1110,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1111,1
    - Dst: fr_sbuff_init_file
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1111,1
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1112,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1114,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1115,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1115,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1116,1
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1117,1
    - Dst: fr_sbuff_extend_file
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1118,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1119,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1120,1
    - Dst: fr_sbuff_out_abstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1121,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1123,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1124,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1125,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1127,1
    - Dst: fr_sbuff_out_bstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1128,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1128,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1129,1
    - Dst: fr_sbuff_out_bstrncpy_exact
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1130,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1130,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1131,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1132,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1132,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1133,1
    - Dst: fr_sbuff_out_bstrncpy_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1134,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1134,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1135,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1137,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1139,1
    - Dst: fmemopen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1145,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1146,1
    - Dst: fr_sbuff_init_file
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1146,1
    - Dst: FR_SBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1147,1
    - Dst: fr_sbuff_out_bstrncpy_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1148,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1148,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1148,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1149,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1152
    functionName: test_file_extend
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FR_SBUFF_BIND_CURRENT
    - TEST_CASE
    - FR_SBUFF_OUT
    - fr_sbuff_out_bstrncpy
    - TEST_CHECK
    - FR_SBUFF
    - memset
    - TEST_CHECK_STRCMP
    - fr_sbuff_out_bstrncpy_exact
    - FR_SBUFF_TERM
    - fr_sbuff_out_bstrncpy_until
    - fr_sbuff_init_file
    - fr_sbuff_adv_past_whitespace
    - fmemopen
    - fr_sbuff_out_abstrncpy
    - fclose
    - fr_sbuff_extend_file
    - talloc_free
    - TEST_CHECK_SLEN
    - fr_sbuff_out_bstrncpy_allowed
    - TEST_CHECK_LEN
    linkageType: ''
    returnType: void
    signature: void test_file_extend(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1163,1
    - Dst: fmemopen
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1164,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1168,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1169,1
    - Dst: fr_sbuff_init_file
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1169,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1171,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1172,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1172,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1173,1
    - Dst: fr_sbuff_out_abstrncpy
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1173,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1174,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1175,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1177
    functionName: test_file_extend_max
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - TEST_CASE
    - TEST_CHECK_SLEN
    - fr_sbuff_init_file
    - fr_sbuff_adv_past_whitespace
    - fmemopen
    - fr_sbuff_out_abstrncpy
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fclose
    linkageType: ''
    returnType: void
    signature: void test_file_extend_max(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1184,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1185,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1186,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1186,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1187,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1189,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1190,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1191,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1191,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1192,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1194,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1195,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1196,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1196,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1197,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1199,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1200,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1201,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1201,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1203,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1204,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1205,1
    - Dst: fr_sbuff_adv_past_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1205,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1206,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1208
    functionName: test_adv_past_str
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_adv_past_str
    - fr_sbuff_init_in
    - TEST_CHECK_LEN
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_past_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1215,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1216,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1217,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1217,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1218,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1220,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1221,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1222,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1222,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1223,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1225,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1226,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1227,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1227,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1228,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1230,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1231,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1232,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1232,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1234,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1235,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1236,1
    - Dst: fr_sbuff_adv_past_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1236,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1237,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1239
    functionName: test_adv_past_strcase
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_adv_past_strcase
    - TEST_CASE
    - fr_sbuff_init_in
    - TEST_CHECK_LEN
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_past_strcase(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1248,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1249,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1250,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1250,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1251,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1253,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1254,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1255,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1255,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1256,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1258,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1259,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1260,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1260,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1262,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1263,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1264,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1264,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1266,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1267,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1268,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1268,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1269,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1271,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1272,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1273,1
    - Dst: fr_sbuff_adv_past_whitespace
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1273,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1275
    functionName: test_adv_past_whitespace
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_init_in
    - TEST_CHECK_LEN
    - fr_sbuff_adv_past_whitespace
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_past_whitespace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1284,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1285,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1286,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1286,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1287,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1289,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1290,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1291,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1291,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1292,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1294,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1295,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1296,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1296,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1297,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1299,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1300,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1301,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1301,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1302,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1304,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1305,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1306,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1306,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1307,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1309,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1310,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1311,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1311,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1313
    functionName: test_adv_past_allowed
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_init_in
    - TEST_CHECK_LEN
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: void
    signature: void test_adv_past_allowed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1320,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1321,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1322,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1322,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1322,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1323,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1325,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1326,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1327,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1327,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1327,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1328,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1330,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1331,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1332,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1332,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1332,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1333,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1335,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1336,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1337,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1337,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1338,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1340,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1341,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1342,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1342,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1342,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1343,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1345,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1346,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1347,1
    - Dst: fr_sbuff_adv_until
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1347,1
    - Dst: FR_SBUFF_TERM
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1347,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1349
    functionName: test_adv_until
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - FR_SBUFF_TERM
    - fr_sbuff_init_in
    - fr_sbuff_adv_until
    - TEST_CHECK_LEN
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_until(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1357,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1358,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1359,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1360,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1361,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1363,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1364,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1365,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1366,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1367,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1369,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1370,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1371,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1372,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1373,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1375,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1376,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1377,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1378,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1380,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1381,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1382,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1383,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1385,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1386,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1387,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1388,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1390,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1391,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1392,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1392,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1393,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1395,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1396,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1397,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1397,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1398,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1400,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1401,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1402,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1402,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1403,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1405,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1406,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1407,1
    - Dst: fr_sbuff_adv_to_chr_utf8
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1407,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1409
    functionName: test_adv_to_utf8
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_init_in
    - fr_sbuff_adv_to_chr_utf8
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_to_utf8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1417,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1418,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1419,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1420,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1421,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1423,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1424,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1425,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1426,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1427,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1429,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1430,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1431,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1431,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1432,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1434,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1435,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1436,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1437,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1439,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1440,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1441,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1442,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1444,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1445,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1447,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1448,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1450,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1451,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1452,1
    - Dst: fr_sbuff_adv_to_chr
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1452,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1454
    functionName: test_adv_to_chr
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_adv_to_chr
    - fr_sbuff_init_in
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_to_chr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1462,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1463,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1464,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1465,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1466,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1468,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1469,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1470,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1471,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1472,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1474,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1475,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1476,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1477,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1478,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1480,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1481,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1482,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1483,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1484,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1486,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1487,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1488,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1489,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1490,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1492,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1493,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1494,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1495,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1496,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1498,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1499,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1500,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1501,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1502,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1503,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1505,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1506,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1507,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1508,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1509,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1511,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1513,1
    - Dst: fr_sbuff_adv_to_str
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1513,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1515
    functionName: test_adv_to_str
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_adv_to_str
    - TEST_CASE
    - fr_sbuff_init_in
    - fr_sbuff_adv_to_strcase
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_to_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1523,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1524,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1525,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1526,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1527,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1529,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1530,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1531,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1532,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1533,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1535,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1536,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1537,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1538,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1539,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1541,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1542,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1543,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1544,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1545,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1547,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1548,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1549,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1550,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1551,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1553,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1554,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1555,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1556,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1557,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1559,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1560,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1561,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1562,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1563,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1564,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1566,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1567,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1568,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1569,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1570,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1572,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1573,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1574,1
    - Dst: fr_sbuff_adv_to_strcase
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1574,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1517
    functionDepth: 2
    functionLinenumber: 1517
    functionLinenumberEnd: 1576
    functionName: test_adv_to_strcase
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_init_in
    - fr_sbuff_adv_to_strcase
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_adv_to_strcase(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1583,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1584,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1585,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1585,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1586,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1588,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1589,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1589,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1590,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1592,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1593,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1593,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1594,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1596,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1597,1
    - Dst: fr_sbuff_next_if_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1597,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1578
    functionDepth: 2
    functionLinenumber: 1578
    functionLinenumberEnd: 1599
    functionName: test_next_if_char
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - TEST_CHECK_STRCMP
    - fr_sbuff_init_in
    - TEST_CHECK
    - fr_sbuff_next_if_char
    linkageType: ''
    returnType: void
    signature: void test_next_if_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1606,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1607,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1608,1
    - Dst: fr_sbuff_next_unless_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1608,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1609,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1611,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1612,1
    - Dst: fr_sbuff_next_unless_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1612,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1613,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1615,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1616,1
    - Dst: fr_sbuff_next_unless_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1616,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1617,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1620,1
    - Dst: fr_sbuff_next_unless_char
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1620,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/sbuff_tests.c:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1622
    functionName: test_next_unless_char
    functionSourceFile: /src/freeradius-server/src/lib/util/test/sbuff_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CASE
    - fr_sbuff_next_unless_char
    - fr_sbuff_init_in
    - TEST_CHECK
    - TEST_CHECK_STRCMP
    linkageType: ''
    returnType: void
    signature: void test_next_unless_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - elem
    - uctx
    argTypes:
    - test_element_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: test_element_free
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int test_element_free(test_element_t *elem, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: test_time
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_time_t
    signature: fr_time_t test_time(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:63,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:64,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:66,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:67,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:68,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:68,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:69,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:69,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:75,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:76,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:78,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:79,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:80,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:81,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:81,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:82,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:82,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:85,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:86,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:87,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:88,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:89,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:89,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:90,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:90,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:92,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:93,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:94,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:94,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:95,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:95,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:99,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:101,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:101,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:102,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:102,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:104,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:105,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:106,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:106,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:107,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:107,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:109,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:110,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:110,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:111,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:111,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:114,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:115,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:115,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:116,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:116,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 119
    functionName: test_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - test_slab_num_allocated
    linkageType: ''
    returnType: void
    signature: void test_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:134,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:135,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:137,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:138,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:139,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:139,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:140,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:140,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:142,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:143,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:144,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:145,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:146,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:146,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:147,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:147,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:151,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:152,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:152,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:153,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:153,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: test_alloc_fail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_list_alloc
    - talloc_free
    - test_slab_num_elements_used
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - test_slab_num_allocated
    linkageType: ''
    returnType: void
    signature: void test_alloc_fail(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:167,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:168,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:171,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:172,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:172,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:173,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:173,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:177,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:178,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:180,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:182,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:184,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:185,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:187,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:188,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:190,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:191,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:198,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:199,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:200,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:201,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:202,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:202,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:203,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:203,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:210,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:211,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:212,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 215
    functionName: test_reuse_reset
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - test_slab_num_allocated
    linkageType: ''
    returnType: void
    signature: void test_reuse_reset(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:226,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:227,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:229,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:230,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:231,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:231,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:232,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:232,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:236,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:237,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:239,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:240,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:241,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:244,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:251,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:252,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:253,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:254,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:260,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:261,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:262,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:263,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 266
    functionName: test_reuse_noreset
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - test_slab_num_allocated
    linkageType: ''
    returnType: void
    signature: void test_reuse_noreset(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:281,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:282,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:284,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:285,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:287,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:289,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:290,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:291,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:293,1
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:298,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:299,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:301,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:302,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:304,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:306,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:307,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:308,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 311
    functionName: test_reserve_mru
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - test_slab_release
    - test_slab_list_alloc
    - talloc_free
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_reserve_mru(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:324,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:325,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:327,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:328,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:332,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:333,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:335,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:335,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:338,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:339,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:339,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 342
    functionName: test_free
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - elem
    - uctx
    argTypes:
    - test_element_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: test_element_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_element_alloc(test_element_t *elem, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:362,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:363,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:365,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:366,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:367,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:374,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:380,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:381,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:382,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:383,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 386
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 6
    functionsReached:
    - test_slab_release
    - test_slab_list_alloc
    - talloc_free
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:399,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:400,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:402,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:403,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:404,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:411,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:417,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:418,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:419,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:420,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 423
    functionName: test_reserve
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - test_slab_release
    - test_slab_list_alloc
    - talloc_free
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_reserve(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - elem
    - uctx
    argTypes:
    - test_element_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: test_element_reserve
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_element_reserve(test_element_t *elem, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:443,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:444,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:446,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:447,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:448,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:455,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:461,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:462,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:463,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:464,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 467
    functionName: test_init_reserve
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - test_slab_release
    - test_slab_list_alloc
    - talloc_free
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_init_reserve(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:474,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:481,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:482,1
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:485,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:486,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:492,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:493,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:495,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:495,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:496,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:496,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:502,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:504,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:504,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:505,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:505,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:511,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:511,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:512,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:513,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:514,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:515,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:515,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:516,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:516,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:518,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 520
    functionName: test_clearup_1
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - fr_event_service
    - talloc_free
    - fr_event_corral
    - test_slab_num_elements_used
    - fr_event_list_alloc
    - talloc_init_const
    - fr_time_add_time_delta
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - test_slab_num_allocated
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_clearup_1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:527,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:534,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:535,1
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:539,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:540,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:546,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:547,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:549,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:549,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:550,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:550,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:556,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:558,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:558,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:559,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:559,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:565,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:565,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:566,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:567,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:568,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:569,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:569,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:570,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:570,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:575,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:575,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:576,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:577,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:578,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:579,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:579,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:580,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:580,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:582,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 584
    functionName: test_clearup_2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - fr_event_service
    - talloc_free
    - fr_event_corral
    - test_slab_num_elements_used
    - fr_event_list_alloc
    - talloc_init_const
    - fr_time_add_time_delta
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - test_slab_num_allocated
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_clearup_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:591,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:598,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:599,1
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:603,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:604,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:610,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:611,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:613,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:613,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:614,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:614,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:620,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:622,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:622,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:623,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:623,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:628,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:628,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:629,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:630,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:631,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:632,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:632,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:633,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:633,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:638,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:638,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:639,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:640,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:641,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:642,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:642,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:643,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:643,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:648,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:648,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:650,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:651,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:652,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:652,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:653,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:653,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:658,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:658,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:659,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:660,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:661,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:662,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:662,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:663,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:663,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:668,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:668,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:669,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:670,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:671,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:672,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:672,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:673,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:673,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:675,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 677
    functionName: test_clearup_3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - fr_event_service
    - talloc_free
    - fr_event_corral
    - test_slab_num_elements_used
    - fr_event_list_alloc
    - talloc_init_const
    - fr_time_add_time_delta
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - test_slab_num_allocated
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_clearup_3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:684,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:691,1
    - Dst: fr_timer_list_set_time_func
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:692,1
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:696,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:697,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:703,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:704,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:706,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:706,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:707,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:707,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:713,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:715,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:715,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:716,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:716,1
    - Dst: fr_time_add_time_delta
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:721,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:721,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:722,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:723,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:724,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:725,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:725,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:726,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:726,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:733,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:734,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:736,1
    - Dst: test_slab_num_allocated
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:736,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:737,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:737,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:739,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 741
    functionName: test_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - fr_event_service
    - talloc_free
    - fr_event_corral
    - test_slab_num_elements_used
    - fr_event_list_alloc
    - talloc_init_const
    - fr_time_add_time_delta
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    - fr_timer_list_set_time_func
    - test_slab_num_allocated
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_realloc(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:754,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:755,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:758,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:759,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:761,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:761,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:764,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:765,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:770,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:771,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:772,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:772,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:774,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:775,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:775,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:777,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:778,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:778,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:780,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:781,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:781,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:783,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 784
    functionName: test_free_multiple
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_free_multiple(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:803,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:804,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:807,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:808,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:810,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:810,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:813,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:814,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:821,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 827
    functionName: test_bulk_teardown
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_bulk_teardown(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:839,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:840,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:842,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:843,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:844,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:845,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:846,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:846,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:850,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:851,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:852,1
    - Dst: test_slab_element_set_destructor
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:853,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:858,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:859,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:860,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:860,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:862,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:863,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:864,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:864,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:869,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:870,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:870,1
    - Dst: test_slab_release
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:872,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:873,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:873,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 876
    functionName: test_free_mixed
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_release
    - test_slab_list_alloc
    - test_slab_element_set_destructor
    - talloc_free
    - test_slab_num_elements_used
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_free_mixed(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:888,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:889,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:894,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:895,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:896,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:897,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:898,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:898,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:905,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:906,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:906,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:912,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:913,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:914,1
    - Dst: test_slab_num_elements_used
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:914,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 917
    functionName: test_free_and_reserve
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - test_slab_list_alloc
    - talloc_free
    - test_slab_num_elements_used
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_free_and_reserve(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_slab_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:928,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:929,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:931,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:932,1
    - Dst: test_slab_reserve
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:933,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:934,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:944,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:945,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:947,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:948,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/slab_tests.c:953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 954
    functionName: test_child_alloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/slab_tests.c
    functionUses: 0
    functionsReached:
    - test_slab_list_alloc
    - TEST_MSG
    - talloc_free
    - talloc_strdup
    - test_slab_reserve
    - TEST_CHECK
    - TEST_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_child_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:67,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:69,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:70,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:71,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:71,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:72,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:75,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:75,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:77,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:78,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: test_base16_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_set_to_start
    - TEST_MSG
    - fr_base16_encode
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_sbuff_current
    - FR_DBUFF_TMP
    - fr_strerror
    - fr_sbuff_init_out
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base16_encode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:88,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:90,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:91,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:92,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:92,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:93,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:96,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:96,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:98,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:100,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:101,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: test_base16_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_current
    - fr_dbuff_in_bytes
    - fr_dbuff_init
    - TEST_MSG
    - fr_dbuff_set_to_start
    - FR_SBUFF_IN
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_strerror
    - fr_base16_decode
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base16_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:111,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:113,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:114,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:115,1
    - Dst: fr_base32_encode
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:115,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:116,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:120,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:120,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:122,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:123,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 125
    functionName: test_base32_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_set_to_start
    - TEST_MSG
    - fr_base32_encode
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_sbuff_current
    - FR_DBUFF_TMP
    - fr_strerror
    - fr_sbuff_init_out
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base32_encode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:133,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:135,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:136,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:137,1
    - Dst: fr_base32_decode
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:137,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:138,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:142,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:142,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:144,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:146,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:147,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 150
    functionName: test_base32_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_current
    - fr_dbuff_in_bytes
    - fr_base32_decode
    - fr_dbuff_init
    - TEST_MSG
    - fr_dbuff_set_to_start
    - FR_SBUFF_IN
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_strerror
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base32_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:158,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:160,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:161,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:162,1
    - Dst: fr_base32_encode_nstd
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:162,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:163,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:167,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:167,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:169,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:170,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: test_base32_hex_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_set_to_start
    - TEST_MSG
    - fr_base32_encode_nstd
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_sbuff_current
    - FR_DBUFF_TMP
    - fr_strerror
    - fr_sbuff_init_out
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base32_hex_encode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:180,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:182,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:183,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:184,1
    - Dst: fr_base32_decode_nstd
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:184,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:185,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:189,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:189,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:191,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:193,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:194,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 197
    functionName: test_base32_hex_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_base32_decode_nstd
    - fr_dbuff_in_bytes
    - fr_dbuff_current
    - fr_dbuff_init
    - TEST_MSG
    - fr_dbuff_set_to_start
    - FR_SBUFF_IN
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_strerror
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base32_hex_decode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sbuff_init_out
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:205,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:207,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:208,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:209,1
    - Dst: fr_base64_encode
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:209,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:210,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:214,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:214,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:216,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:217,1
    - Dst: fr_sbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 219
    functionName: test_base64_encode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_set_to_start
    - TEST_MSG
    - fr_base64_encode
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_sbuff_current
    - FR_DBUFF_TMP
    - fr_strerror
    - fr_sbuff_init_out
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base64_encode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:227,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:229,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:230,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:231,1
    - Dst: fr_base64_decode
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:231,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:232,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:236,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:236,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:238,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:240,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:241,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: test_base64_decode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/base_16_32_64_tests.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_current
    - fr_dbuff_in_bytes
    - fr_dbuff_init
    - TEST_MSG
    - fr_dbuff_set_to_start
    - fr_base64_decode
    - FR_SBUFF_IN
    - TEST_CHECK_SLEN
    - TEST_CHECK_STRCMP
    - fr_strerror
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void test_base64_decode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:26,1
    - Dst: item
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - lst
    - data
    argTypes:
    - fr_lst_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fr_lst_contains
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - item
    - fr_lst_num_elements
    linkageType: ''
    returnType: bool
    signature: bool fr_lst_contains(fr_lst_t *lst, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: lst_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t lst_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:52,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:53,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - values
    - len
    argTypes:
    - lst_thing[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 62
    functionName: populate_values
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 3
    functionsReached:
    - fr_rand
    - fr_fast_rand
    linkageType: ''
    returnType: void
    signature: void populate_values(lst_thing values[], unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:70,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:71,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:73,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:73,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:75,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:76,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:76,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:77,1
    - Dst: fr_lst_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:77,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:80,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:81,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:83,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:84,1
    - Dst: fr_lst_entry_inserted
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:84,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:85,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:86,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: lst_test_basic
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - fr_lst_alloc
    - TEST_MSG
    - populate_values
    - talloc_free
    - fr_lst_insert
    - fr_lst_pop
    - TEST_CHECK
    - TEST_ASSERT
    - NUM_ELEMENTS
    - fr_lst_entry_inserted
    linkageType: ''
    returnType: void
    signature: void lst_test_basic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:101,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:102,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:104,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:109,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:111,1
    - Dst: FR_LST_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:114,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:114,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:115,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:117,1
    - Dst: fr_lst_contains
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:117,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:118,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:121,1
    - Dst: FR_LST_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:123,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:124,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:125,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:127,1
    - Dst: fr_lst_extract
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:127,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:128,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:130,1
    - Dst: fr_lst_contains
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:130,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:133,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:134,1
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:137,1
    - Dst: FR_LST_VERIFY
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:139,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:140,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:140,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:141,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:142,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:145,1
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:145,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:146,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:148,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - skip
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 150
    functionName: lst_test
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - fr_lst_num_elements
    - fr_lst_alloc
    - TEST_MSG
    - populate_values
    - TEST_CASE
    - talloc_free
    - free
    - fr_lst_insert
    - fr_lst_contains
    - FR_LST_VERIFY
    - fr_lst_pop
    - fr_strerror
    - calloc
    - TEST_CHECK
    - TEST_ASSERT
    - fr_lst_extract
    linkageType: ''
    returnType: void
    signature: void lst_test(int skip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lst_test
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: lst_test_skip_1
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - lst_test
    linkageType: ''
    returnType: void
    signature: void lst_test_skip_1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lst_test
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: lst_test_skip_2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - lst_test
    linkageType: ''
    returnType: void
    signature: void lst_test_skip_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lst_test
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: lst_test_skip_10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - lst_test
    linkageType: ''
    returnType: void
    signature: void lst_test_skip_10(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:177,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:178,1
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:180,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:181,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:182,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:183,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:185,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:186,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:192,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:196,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:198,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:198,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:199,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:199,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:200,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:200,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:201,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:201,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:205,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:207,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:207,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:208,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:208,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:209,1
    - Dst: lst_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:209,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:217,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:219,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:219,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:220,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:220,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:221,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:221,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:222,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:222,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:228,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:228,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:229,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:229,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:230,1
    - Dst: lst_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:230,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:233,1
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:233,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:234,1
    - Dst: fr_heap_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:234,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:236,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:237,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:238,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 240
    functionName: lst_stress_realloc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CASE
    - fr_fast_rand
    - fr_heap_num_elements
    - fr_strerror
    - lst_cmp
    - fr_heap_alloc
    - fr_lst_pop
    - calloc
    - TEST_CHECK
    - fr_heap_pop
    - fr_lst_alloc
    - fr_rand
    - fr_heap_insert
    - TEST_ASSERT
    - fr_lst_num_elements
    - talloc_free
    - free
    - fr_lst_insert
    linkageType: ''
    returnType: void
    signature: void lst_stress_realloc(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:251,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:252,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:254,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:255,1
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:258,1
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:264,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:266,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:266,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:269,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:274,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:275,1
    - Dst: fr_lst_peek
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:278,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:279,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:285,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 287
    functionName: lst_burn_in
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - fr_lst_num_elements
    - fr_lst_alloc
    - talloc_free
    - free
    - fr_fast_rand
    - fr_lst_insert
    - fr_rand
    - fr_lst_peek
    - fr_lst_pop
    - calloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void lst_burn_in(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:301,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:302,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:304,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:309,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:311,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:312,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:314,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:314,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:315,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:315,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:317,1
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:317,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:319,1
    - Dst: fr_lst_num_elements
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:324,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:325,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:327,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:327,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:328,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:329,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:335,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:342,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:342,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:343,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:343,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:346,1
    - Dst: fr_lst_extract
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:346,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:347,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:352,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:353,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:354,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:356,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:357,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:358,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:360,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:362,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:363,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:363,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:363,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:364,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:364,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:364,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:365,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:365,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:365,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:367,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 291
    functionDepth: 6
    functionLinenumber: 291
    functionLinenumberEnd: 369
    functionName: lst_cycle
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - fr_lst_num_elements
    - TEST_MSG_ALWAYS
    - fr_time_delta_unwrap
    - fr_lst_alloc
    - fr_time
    - populate_values
    - TEST_CASE
    - TEST_MSG
    - talloc_free
    - free
    - fr_lst_insert
    - fr_time_sub
    - fr_lst_pop
    - fr_strerror
    - calloc
    - TEST_CHECK
    - TEST_ASSERT
    - fr_lst_extract
    linkageType: ''
    returnType: void
    signature: void lst_cycle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:378,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:379,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:381,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:381,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:383,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:383,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:383,1
    - Dst: fr_lst_iter_init
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:385,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:387,1
    - Dst: fr_lst_iter_next
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:387,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:388,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:389,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:390,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 371
    functionDepth: 6
    functionLinenumber: 371
    functionLinenumberEnd: 399
    functionName: lst_iter
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - fr_lst_alloc
    - populate_values
    - fr_lst_iter_init
    - fr_lst_insert
    - fr_lst_iter_next
    - TEST_CHECK
    - TEST_ASSERT
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void lst_iter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: fr_lst_foreach
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_lst_foreach(lst, lst_thing, item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lst_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:413,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - array
    - count
    argTypes:
    - lst_thing**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: array_pop
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 1
    functionsReached:
    - lst_cmp
    linkageType: ''
    returnType: lst_thing
    signature: lst_thing *array_pop(lst_thing **array, unsigned int count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:435,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:441,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:443,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:445,1
    - Dst: fr_lst_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:446,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:447,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:448,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:450,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:451,1
    - Dst: fr_lst_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:451,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:452,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:454,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:456,1
    - Dst: fr_lst_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:456,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:457,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:459,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:460,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:462,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:464,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:465,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:465,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:465,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:466,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:466,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:466,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:467,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:467,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:467,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:468,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:468,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:468,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:470,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:477,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:479,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:481,1
    - Dst: fr_heap_alloc
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:482,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:483,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:484,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:486,1
    - Dst: fr_heap_insert
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:487,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:488,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:490,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:492,1
    - Dst: fr_heap_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:492,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:493,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:495,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:496,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:498,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:500,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:501,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:501,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:501,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:502,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:502,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:502,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:503,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:503,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:503,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:504,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:504,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:504,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:506,1
    - Dst: populate_values
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:516,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:517,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:519,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:520,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:521,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:523,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:525,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:527,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:529,1
    - Dst: array_pop
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:529,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:530,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:532,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:534,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:535,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:535,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:535,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:536,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:536,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:536,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:537,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:537,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:537,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:538,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:538,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:538,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:540,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:543,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 426
    functionDepth: 6
    functionLinenumber: 426
    functionLinenumberEnd: 544
    functionName: queue_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 4
    functionsReached:
    - TEST_MSG_ALWAYS
    - fr_time_delta_unwrap
    - array_pop
    - fr_lst_alloc
    - fr_time
    - populate_values
    - fr_time_wrap
    - talloc_array
    - TEST_MSG
    - talloc_free
    - fr_lst_insert
    - fr_time_sub
    - fr_lst_pop
    - TEST_CHECK
    - TEST_ASSERT
    - fr_heap_alloc
    - fr_heap_pop
    - fr_heap_insert
    linkageType: ''
    returnType: void
    signature: void queue_cmp(unsigned int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: queue_cmp_10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_10(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: queue_cmp_50
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_50(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: queue_cmp_100
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_100(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_cmp
      Src: /src/freeradius-server/src/lib/util/test/lst_tests.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: queue_cmp_1000
    functionSourceFile: /src/freeradius-server/src/lib/util/test/lst_tests.c
    functionUses: 0
    functionsReached:
    - queue_cmp
    linkageType: ''
    returnType: void
    signature: void queue_cmp_1000(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:44,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:45,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:46,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:48,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:49,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:51,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:52,1
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:54,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:56,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:56,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:57,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:57,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:59,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:60,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:61,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:62,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:63,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:64,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:65,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:66,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:67,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:69,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:70,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:72,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:73,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:74,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:75,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:76,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:77,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:78,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:79,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:80,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:82,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:83,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:85,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:86,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:86,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:87,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:87,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:89,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:90,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:91,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:93,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:94,1
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:96,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:97,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:97,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:98,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:98,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:100,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:101,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:102,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:103,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:104,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:105,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:106,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:108,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:109,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:110,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:111,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:112,1
    - Dst: fr_dlist_prev
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:114,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:117,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:118,1
    - Dst: fr_dlist_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 120
    functionName: test_dlist_move
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dlist_tests.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_dlist_tail
    - TEST_CASE
    - fr_dlist_num_elements
    - fr_dlist_next
    - fr_dlist_init
    - fr_dlist_prev
    - TEST_CHECK_STRCMP
    - TEST_CHECK_LEN
    - TEST_CHECK
    - fr_dlist_insert_tail
    - fr_dlist_move
    linkageType: ''
    returnType: void
    signature: void test_dlist_move(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:145,1
    - Dst: fr_dlist_entry_move
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:146,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:148,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:149,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:151,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:152,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:153,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:154,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:156,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:157,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:158,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:160,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:161,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 163
    functionName: test_dlist_entry_move
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dlist_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - TEST_CASE
    - fr_dlist_entry_move
    linkageType: ''
    returnType: void
    signature: void test_dlist_entry_move(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:174,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:176,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:177,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:178,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:180,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:181,1
    - Dst: TEST_CHECK_RET
      Src: /src/freeradius-server/src/lib/util/test/dlist_tests.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: test_dlist_foreach_safe
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dlist_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK_RET
    - fr_dlist_foreach
    - fr_dlist_init
    - fr_dlist_remove
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void test_dlist_foreach_safe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: comp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 1
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t comp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: comp
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: qsort_comp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 0
    functionsReached:
    - comp
    linkageType: ''
    returnType: int
    signature: int qsort_comp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - uctx
    argTypes:
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: print_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int print_cb(void *i, UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - i
    - uctx
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: filter_cb
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filter_cb(void *i, void *uctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:98,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 1
    argNames:
    - t
    argTypes:
    - fr_rb_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 123
    functionName: rbcount
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int rbcount(fr_rb_tree_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: freenode
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void freenode(void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:142,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:150,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:151,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:153,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:155,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:157,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:157,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:161,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:164,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:166,1
    - Dst: rbcount
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:169,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:170,1
    - Dst: qsort
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:173,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:184,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:186,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:187,1
    - Dst: rbcount
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:189,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:190,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:194,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:196,1
    - Dst: filter_cb
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:202,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:207,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:208,1
    - Dst: filter_cb
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:214,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:215,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/rbmonkey.c:218,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - UNUSED
    - UNUSED*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 222
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rbmonkey.c
    functionUses: 3
    functionsReached:
    - fr_rb_iter_next_inorder
    - fr_rb_iter_delete_inorder
    - talloc_free
    - talloc
    - fprintf
    - fr_rand
    - fr_rb_inline_alloc
    - filter_cb
    - fr_rb_insert
    - fr_rb_iter_init_inorder
    - rbcount
    - memset
    - MEM
    - qsort
    linkageType: ''
    returnType: int
    signature: int main(UNUSED int argc, UNUSED char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: test_str
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_str(_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _buff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: test_out
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_out(_buff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:43,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:44,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:44,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:44,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:45,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:47,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:48,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:48,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:48,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:49,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:51,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:52,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:52,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:52,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:53,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:55,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:56,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:57,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:57,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:57,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:57,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:58,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:60,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:61,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:62,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:62,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:62,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:62,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:63,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:65,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:66,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:66,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:66,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:67,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:69,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:70,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:70,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 76
    functionName: test_size_parse_bytes
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached:
    - test_str
    - TEST_MSG
    - snprintf
    - fr_size_from_str
    - TEST_CHECK_SLEN
    - strlen
    - TEST_CHECK_LEN
    linkageType: ''
    returnType: void
    signature: void test_size_parse_bytes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:82,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:83,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:83,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:83,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:84,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:86,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:87,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:87,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:87,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:88,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:90,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:91,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:91,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:91,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:92,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:94,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:95,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:95,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:95,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:96,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:98,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:99,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:99,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:99,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:100,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:102,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:103,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:103,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:103,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:104,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:106,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:107,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:107,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:107,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:108,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:110,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:111,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:111,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:111,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:112,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:115,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:116,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:116,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:116,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:117,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:119,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:120,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:120,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:120,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:121,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:124,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:125,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:125,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 126
    functionName: test_size_parse_suffix_base2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached:
    - test_str
    - TEST_MSG
    - fr_size_from_str
    - TEST_CHECK_SLEN
    - TEST_CHECK_LEN
    linkageType: ''
    returnType: void
    signature: void test_size_parse_suffix_base2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:132,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:133,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:133,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:133,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:134,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:136,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:137,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:137,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:137,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:138,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:140,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:141,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:141,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:141,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:142,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:144,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:145,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:145,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:145,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:146,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:148,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:149,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:149,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:149,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:150,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:152,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:153,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:153,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:153,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:154,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:156,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:157,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:157,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:157,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:158,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:160,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:161,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:161,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:161,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:162,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:164,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:165,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:165,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:165,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:166,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:169,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:170,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:170,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:170,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:171,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:173,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:174,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:174,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:174,1
    - Dst: TEST_CHECK_LEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:175,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:178,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:179,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:179,1
    - Dst: test_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 180
    functionName: test_size_parse_suffix_base10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached:
    - test_str
    - TEST_MSG
    - fr_size_from_str
    - TEST_CHECK_SLEN
    - TEST_CHECK_LEN
    linkageType: ''
    returnType: void
    signature: void test_size_parse_suffix_base10(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:184,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:184,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:184,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:185,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:187,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:187,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:187,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:188,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:190,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:190,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:190,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:191,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:193,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:193,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:193,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:194,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:196,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:196,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:196,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:197,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:199,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:199,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:199,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:200,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:202,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:202,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:202,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:203,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:205,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:205,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:205,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:206,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:208,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:208,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:208,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:209,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:211,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:211,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:211,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:212,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:214,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:214,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:214,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:215,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:217,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:217,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:217,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:218,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:220,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:220,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:220,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:221,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:223,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:223,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:223,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:224,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:226,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:226,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:226,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:227,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:229,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:229,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:229,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:230,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:232,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:232,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:232,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:233,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:235,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:235,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:235,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:236,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:238,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:238,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:238,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:239,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:241,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:241,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:241,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:242,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:244,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:244,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:244,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:245,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:247,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:247,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:247,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:248,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:250,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:250,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:250,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 252
    functionName: test_size_print_bytes
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached:
    - test_out
    - TEST_CHECK_STRCMP
    - TEST_CHECK_SLEN
    - fr_size_to_str
    linkageType: ''
    returnType: void
    signature: void test_size_print_bytes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:256,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:256,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:256,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:257,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:259,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:259,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:259,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:260,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:262,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:262,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:262,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:263,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:265,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:265,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:265,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:266,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:269,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:269,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:269,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:270,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:272,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:272,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:272,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:273,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:276,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:277,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:277,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:277,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:278,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:280,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:281,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:281,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:281,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:282,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:285,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:285,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:285,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: test_size_print_base2
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CHECK_SLEN
    - fr_size_to_str
    - TEST_CHECK_STRCMP
    - test_out
    linkageType: ''
    returnType: void
    signature: void test_size_print_base2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:291,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:291,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:291,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:292,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:294,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:294,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:294,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:295,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:297,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:297,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:297,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:298,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:300,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:300,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:300,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:301,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:303,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:303,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:303,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:304,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:307,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:307,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:307,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:308,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:310,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:310,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:310,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:311,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:314,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:315,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:315,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:315,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:316,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:318,1
    - Dst: TEST_CHECK_SLEN
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:319,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:319,1
    - Dst: test_out
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:319,1
    - Dst: TEST_CHECK_STRCMP
      Src: /src/freeradius-server/src/lib/util/test/size_tests.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 321
    functionName: test_size_print_base10
    functionSourceFile: /src/freeradius-server/src/lib/util/test/size_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - TEST_CHECK_SLEN
    - fr_size_to_str
    - TEST_CHECK_STRCMP
    - test_out
    linkageType: ''
    returnType: void
    signature: void test_size_print_base10(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:35,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:36,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:37,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:40,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:42,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:44,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:45,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:47,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:48,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:50,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:51,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:51,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:53,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:54,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:54,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:56,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:57,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:57,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: test_retry_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - TEST_CASE
    - fr_time_gt
    - fr_time_eq
    - fr_retry_init
    - fr_time_add
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:67,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:68,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:69,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:72,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:76,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:78,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:78,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:79,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:79,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:81,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:82,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:82,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:83,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:84,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:84,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:84,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:86,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:86,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:87,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:88,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:88,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: test_retry_irt
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time_wrap
    - TEST_MSG
    - TEST_CASE
    - fr_time_delta_gt
    - fr_retry_init
    - fr_time_delta_lt
    - fr_time_delta_from_msec
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_irt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:100,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:101,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:102,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:105,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:106,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:110,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:118,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:119,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:125,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:126,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:128,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:129,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:132,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:133,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:133,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:134,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:135,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:135,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:137,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:137,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:138,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:139,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:139,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 144
    functionName: test_retry_rt
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time_wrap
    - TEST_MSG
    - TEST_CASE
    - fr_time_delta_gt
    - fr_retry_init
    - fr_retry_next
    - fr_time_delta_lt
    - fr_time_delta_from_msec
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_rt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:153,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:154,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:155,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:158,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:162,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:171,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:172,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:178,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 182
    functionName: test_retry_mrc
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - TEST_MSG
    - fr_retry_init
    - fr_retry_next
    - fr_time_delta_from_msec
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_mrc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:191,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:192,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:193,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:196,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:200,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:208,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:217,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:221,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:222,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 224
    functionName: test_retry_mrd
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - TEST_MSG
    - fr_retry_init
    - fr_retry_next
    - fr_time_delta_from_msec
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_mrd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:233,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:234,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:235,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:238,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:241,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:243,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:244,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:244,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:246,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:248,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: test_retry_single
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - TEST_CASE
    - fr_time_eq
    - fr_retry_init
    - fr_retry_next
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_single(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:259,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:260,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:261,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:264,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:269,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:278,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:280,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:284,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:285,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 287
    functionName: test_retry_backoff
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - TEST_MSG
    - TEST_CASE
    - fr_time_delta_gt
    - fr_retry_init
    - fr_retry_next
    - fr_time_delta_from_msec
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_backoff(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:296,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:297,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:298,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:301,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:304,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:313,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:316,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:318,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:319,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:321,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:322,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:324,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:324,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:325,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:326,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:326,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:326,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:328,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:328,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:329,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:330,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:330,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 332
    functionName: test_retry_mrt_cap
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time_wrap
    - TEST_MSG
    - TEST_CASE
    - fr_time_delta_gt
    - fr_retry_next
    - fr_retry_init
    - fr_time_delta_lt
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_mrt_cap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:341,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:342,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:343,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:346,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:347,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:347,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:349,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:351,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:352,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:352,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:354,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:356,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/lib/util/test/retry_tests.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 357
    functionName: test_retry_no_limits
    functionSourceFile: /src/freeradius-server/src/lib/util/test/retry_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_wrap
    - TEST_CASE
    - fr_time_add
    - fr_retry_init
    - fr_time_eq
    - fr_retry_next
    - TEST_CHECK
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void test_retry_no_limits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: TEST_CHECK_LEN
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest_helpers.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_LEN(_got, _exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: TEST_CHECK_SLEN
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest_helpers.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_SLEN(_got, _exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: TEST_CHECK_SLEN_RETURN
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest_helpers.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_SLEN_RETURN(_got, _exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: TEST_CHECK_RET
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest_helpers.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_RET(_got, _exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _got
    - ','
    - _exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: TEST_CHECK_STRCMP
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest_helpers.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_STRCMP(_got, _exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: fr_rb_tree_test_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_rb_tree_test_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: fr_rb_qsort_cmp
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int
    signature: int fr_rb_qsort_cmp(void const *one, void const *two)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:55,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:56,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:57,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:59,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:66,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:67,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:69,1
    - Dst: qsort
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:72,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:74,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:76,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:77,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:78,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 82
    functionName: test_fr_rb_iter_inorder
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_next_inorder
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - fr_rb_iter_init_inorder
    - talloc
    - fr_rand
    - fr_rb_inline_alloc
    - fr_rb_insert
    - TEST_CHECK
    - qsort
    linkageType: ''
    returnType: void
    signature: void test_fr_rb_iter_inorder(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:100,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:104,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:105,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:108,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:110,1
    - Dst: fr_rb_iter_init_preorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:113,1
    - Dst: fr_rb_iter_next_preorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:115,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:117,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 121
    functionName: test_fr_rb_iter_preorder
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_preorder
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - talloc
    - fr_rb_inline_alloc
    - fr_rb_iter_next_preorder
    - fr_rb_insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_rb_iter_preorder(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:130,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:134,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:135,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:138,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:140,1
    - Dst: fr_rb_iter_init_postorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:143,1
    - Dst: fr_rb_iter_next_postorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:145,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:146,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:147,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 151
    functionName: test_fr_rb_iter_postorder
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_init_postorder
    - TEST_MSG
    - talloc_free
    - TEST_CASE
    - talloc
    - fr_rb_inline_alloc
    - fr_rb_iter_next_postorder
    - fr_rb_insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_rb_iter_postorder(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: is_prime
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_prime(uint32_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:178,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:179,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:186,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:188,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:194,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:196,1
    - Dst: is_prime
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:197,1
    - Dst: fr_rb_iter_delete_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:197,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:203,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:205,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:206,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:207,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/rb_tests.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: test_fr_rb_iter_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/test/rb_tests.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_next_inorder
    - fr_rb_iter_delete_inorder
    - TEST_MSG
    - talloc_free
    - fr_rb_iter_init_inorder
    - is_prime
    - talloc
    - fr_rb_inline_alloc
    - fr_rb_insert
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_fr_rb_iter_delete(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:48,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - lb
    - packet
    - packet_len
    - use_mark
    argTypes:
    - fr_dns_labels_t*
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: labels_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - memset
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void labels_init(fr_dns_labels_t *lb, uint8_t const *packet, size_t
      packet_len, bool use_mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:63,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - buf
    - buf_len
    - where
    - str
    - compression
    - lb
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - char*
    - bool
    - fr_dns_labels_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: encode_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_from_value_box
    - fr_box_strvalue
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_label(uint8_t *buf, size_t buf_len, uint8_t *where,\n\t\t\t
      \   char const *str, bool compression, fr_dns_labels_t *lb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:77,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:78,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: test_encode_empty_string
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    linkageType: ''
    returnType: void
    signature: void test_encode_empty_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:88,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:89,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: test_encode_root_dot
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    linkageType: ''
    returnType: void
    signature: void test_encode_root_dot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:99,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:100,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:102,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:103,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:103,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: test_encode_simple_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    - memcmp
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_simple_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:113,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:114,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:115,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:116,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:117,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:117,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:118,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:119,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:119,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:120,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:121,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:121,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: test_encode_multi_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    - memcmp
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_multi_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:131,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:132,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:135,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:136,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: test_encode_trailing_dot
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_trailing_dot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:146,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:147,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:148,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:149,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: test_encode_underscore_prefix
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_underscore_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:162,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:162,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:163,1
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:166,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:166,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:167,1
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:170,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: test_encode_null_inputs
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_dns_label_from_value_box
    - fr_box_strvalue
    linkageType: ''
    returnType: void
    signature: void test_encode_null_inputs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:180,1
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:181,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: test_encode_non_string_type
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_dns_label_from_value_box
    - fr_value_box_init_null
    linkageType: ''
    returnType: void
    signature: void test_encode_non_string_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:191,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:192,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:195,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:196,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:199,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: test_encode_invalid_chars
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    linkageType: ''
    returnType: void
    signature: void test_encode_invalid_chars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:208,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: test_encode_double_dot
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    linkageType: ''
    returnType: void
    signature: void test_encode_double_dot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:217,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: test_encode_leading_dot
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    linkageType: ''
    returnType: void
    signature: void test_encode_leading_dot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:228,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:230,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 232
    functionName: test_encode_label_too_long
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - memset
    - encode_label
    linkageType: ''
    returnType: void
    signature: void test_encode_label_too_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:240,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:241,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:242,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:243,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: test_encode_buffer_too_small
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_dns_label_from_value_box
    - fr_box_strvalue
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_buffer_too_small(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_from_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:254,1
    - Dst: fr_box_strvalue
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:254,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: test_encode_where_outside_buf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_dns_label_from_value_box
    - fr_box_strvalue
    linkageType: ''
    returnType: void
    signature: void test_encode_where_outside_buf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:268,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:274,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:275,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:276,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 278
    functionName: test_decode_simple_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_simple_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:286,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:287,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:288,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:289,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:293,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:294,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:295,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 297
    functionName: test_decode_multi_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TEST_MSG
    - fr_dns_label_uncompressed_length
    - TEST_CHECK
    - memset
    linkageType: ''
    returnType: void
    signature: void test_decode_multi_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:305,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:309,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:310,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 312
    functionName: test_decode_root_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_root_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:321,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:326,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:330,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:331,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:332,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: test_decode_compressed_pointer
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - labels_init
    - fr_dns_label_uncompressed_length
    - TEST_CHECK
    - memset
    linkageType: ''
    returnType: void
    signature: void test_decode_compressed_pointer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:342,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:347,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:348,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 350
    functionName: test_decode_forward_pointer_rejected
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_forward_pointer_rejected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:358,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:362,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:363,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 365
    functionName: test_decode_self_pointer_rejected
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_self_pointer_rejected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:373,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:380,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: test_decode_pointer_to_pointer_rejected
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_pointer_to_pointer_rejected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:390,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:394,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:395,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: test_decode_invalid_high_bits
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_invalid_high_bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:405,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:411,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: test_decode_label_overflow
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_label_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:420,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:421,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:423,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:424,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:428,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:429,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:434,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:435,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 438
    functionName: test_decode_null_inputs
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - TEST_CHECK
    - memset
    linkageType: ''
    returnType: void
    signature: void test_decode_null_inputs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:446,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:450,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:451,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 453
    functionName: test_decode_label_invalid_chars
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_label_invalid_chars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:463,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:467,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:473,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:474,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: test_decode_total_length_exceeds_255
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_decode_total_length_exceeds_255(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:487,1
    - Dst: fr_dns_labels_network_verify
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:490,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:491,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 493
    functionName: test_verify_simple
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - memset
    - fr_dns_labels_network_verify
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_verify_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:500,1
    - Dst: fr_dns_labels_network_verify
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:503,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 4
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: test_verify_empty
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - memset
    - fr_dns_labels_network_verify
    linkageType: ''
    returnType: void
    signature: void test_verify_empty(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:514,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:518,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:519,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:520,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:523,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:524,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:525,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:527,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:528,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:528,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:529,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:531,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 533
    functionName: test_roundtrip_simple
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_roundtrip_simple(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:538,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:542,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:543,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:546,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:547,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:548,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:549,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:549,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:550,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:552,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 554
    functionName: test_roundtrip_trailing_dot
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_roundtrip_trailing_dot(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:559,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:563,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:564,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:567,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:568,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:569,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:570,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:570,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:571,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:573,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 556
    functionDepth: 4
    functionLinenumber: 556
    functionLinenumberEnd: 575
    functionName: test_roundtrip_root
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_roundtrip_root(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:580,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:584,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:585,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:588,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:589,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:590,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:590,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:591,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:593,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 595
    functionName: test_roundtrip_underscore
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_roundtrip_underscore(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:600,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:604,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:605,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:608,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:609,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:610,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:610,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:611,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:613,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 615
    functionName: test_roundtrip_case_preservation
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_roundtrip_case_preservation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:627,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:629,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:630,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:631,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:633,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:634,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:635,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:641,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 643
    functionName: test_compress_two_names
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - labels_init
    - encode_label
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_compress_two_names(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:655,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 657
    functionName: test_decode_to_value_box_zero_len
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_dns_label_to_value_box
    linkageType: ''
    returnType: void
    signature: void test_decode_to_value_box_zero_len(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:666,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: test_decode_to_value_box_label_outside_buf
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_dns_label_to_value_box
    linkageType: ''
    returnType: void
    signature: void test_decode_to_value_box_label_outside_buf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:680,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:682,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:683,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:684,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:686,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 674
    functionDepth: 4
    functionLinenumber: 674
    functionLinenumberEnd: 688
    functionName: test_labels_block_tracking
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - labels_init
    - encode_label
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_labels_block_tracking(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:696,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:702,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:703,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 705
    functionName: test_pointer_valid_no_tracking
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_pointer_valid_no_tracking(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:714,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:719,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:723,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:724,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 726
    functionName: test_pointer_invalid_with_mark_tracking
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_MSG
    - labels_init
    - fr_dns_label_uncompressed_length
    - TEST_CHECK
    - memset
    linkageType: ''
    returnType: void
    signature: void test_pointer_invalid_with_mark_tracking(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:734,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:739,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:740,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 742
    functionName: test_pointer_to_zero_label_rejected
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - fr_dns_label_uncompressed_length
    - memset
    - TEST_CHECK
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_pointer_to_zero_label_rejected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:754,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:756,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:757,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 748
    functionDepth: 4
    functionLinenumber: 748
    functionLinenumberEnd: 759
    functionName: test_encode_max_label_length
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - memset
    - encode_label
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_max_label_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:766,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:767,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 769
    functionName: test_encode_hyphen_and_digits
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - encode_label
    - TEST_MSG
    linkageType: ''
    returnType: void
    signature: void test_encode_hyphen_and_digits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:782,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:785,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:787,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:788,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:790,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:791,1
    - Dst: fr_dns_label_uncompressed_length
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:794,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:796,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:797,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:799,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:801,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:802,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:803,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:803,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:804,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:806,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 775
    functionDepth: 4
    functionLinenumber: 775
    functionLinenumberEnd: 808
    functionName: test_roundtrip_compressed
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - labels_init
    - fr_value_box_clear
    - fr_dns_label_uncompressed_length
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_roundtrip_compressed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:830,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:835,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:835,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:836,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:836,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:838,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:841,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:842,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:843,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:850,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:851,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:852,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:853,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:856,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:860,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:861,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:862,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:862,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:863,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:865,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 825
    functionDepth: 4
    functionLinenumber: 825
    functionLinenumberEnd: 867
    functionName: test_compress_62_byte_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - labels_init
    - fr_value_box_clear
    - strlen
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_compress_62_byte_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:874,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:883,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:886,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:888,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:889,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:890,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:893,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:894,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:895,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:896,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:899,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:903,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:904,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:905,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:905,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:906,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:908,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 869
    functionDepth: 4
    functionLinenumber: 869
    functionLinenumberEnd: 910
    functionName: test_compress_63_byte_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - labels_init
    - fr_value_box_clear
    - strcmp
    - TEST_CHECK
    - memset
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_compress_63_byte_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:927,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:927,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:928,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:928,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:930,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:932,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:933,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:934,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:941,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:942,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:943,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 945
    functionName: test_compress_middle_62_byte_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - labels_init
    - strlen
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_compress_middle_62_byte_label(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:952,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:965,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:965,1
    - Dst: labels_init
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:967,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:969,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:970,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:971,1
    - Dst: encode_label
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:974,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:975,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:976,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:977,1
    - Dst: fr_dns_label_to_value_box
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:980,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:984,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:985,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:986,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:986,1
    - Dst: TEST_MSG
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:987,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:989,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/dns_tests.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 947
    functionDepth: 4
    functionLinenumber: 947
    functionLinenumberEnd: 991
    functionName: test_compress_middle_63_byte_label
    functionSourceFile: /src/freeradius-server/src/lib/util/test/dns_tests.c
    functionUses: 0
    functionsReached:
    - encode_label
    - TEST_MSG
    - talloc_free
    - labels_init
    - fr_value_box_clear
    - strlen
    - strcmp
    - TEST_CHECK
    - fr_dns_label_to_value_box
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_compress_middle_63_byte_label(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:186,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:187,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:188,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:190,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:190,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:202,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:205,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:209,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:211,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:214,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:214,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:215,1
    - Dst: TEST_ASSERT
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:216,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:218,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:228,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:231,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:232,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:234,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:242,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:248,1
    - Dst: fr_pair_sublist_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:249,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:254,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:255,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:255,1
    - Dst: fr_pair_sublist_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:260,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:265,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:269,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:274,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:274,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:275,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:276,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:277,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 6
    argNames:
    - ctx
    - out
    - dict
    - pairs
    - perc
    - reps
    argTypes:
    - TALLOC_CTX*
    - fr_pair_t***
    - fr_dict_t*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 174
    functionDepth: 8
    functionLinenumber: 174
    functionLinenumberEnd: 282
    functionName: pair_list_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 108
    functionsReached:
    - talloc_array
    - fr_pair_list_afrom_substr
    - strlen
    - fr_pair_list_free
    - fr_pair_append
    - fr_pair_sublist_copy
    - fr_pair_list_init
    - fr_perror
    - fr_pair_list_append
    - TEST_ASSERT
    - fr_pair_copy
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - talloc_free
    - strchr
    - fr_dict_internal
    - FR_SBUFF_IN_STR
    - fr_pair_remove
    - fr_pair_list_head
    - strcpy
    - fr_dict_root
    linkageType: ''
    returnType: void
    signature: "void pair_list_init(TALLOC_CTX *ctx, fr_pair_t ***out, fr_dict_t const
      *dict, char const *pairs,\n\t\t\t   int const perc, int const reps)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:286,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:289,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:290,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:296,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:298,1
    - Dst: fr_dict_test_attrs_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:300,1
    - Dst: fr_dict_test_attrs_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:301,1
    - Dst: fr_dict_test_attrs_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:302,1
    - Dst: fr_dict_test_attrs_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:303,1
    - Dst: pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:305,1
    - Dst: pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:306,1
    - Dst: pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:307,1
    - Dst: pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:308,1
    - Dst: pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:309,1
    - Dst: fr_time_start
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:311,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 284
    functionDepth: 11
    functionLinenumber: 284
    functionLinenumberEnd: 312
    functionName: pair_list_perf_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    - fr_dict_test_attrs_init
    - fr_time_start
    - pair_list_init
    linkageType: ''
    returnType: void
    signature: void pair_list_perf_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:320,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:321,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:324,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:325,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:326,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:339,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:340,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:341,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:342,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:343,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:344,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:344,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:346,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:346,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:347,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:349,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:350,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:351,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:352,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:352,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:353,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - len
    - perc
    - reps
    - source_vps
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - fr_pair_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 354
    functionName: do_test_fr_pair_append
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_pair_list_num_elements
    - fr_time_delta_unwrap
    - fr_time
    - fr_pair_copy
    - fr_time_delta_add
    - fr_pair_append
    - fr_fast_rand
    - fr_rand
    - fr_time_sub
    - talloc_array_length
    - fr_pair_list_free
    - TEST_CHECK
    - TEST_MSG_ALWAYS
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void do_test_fr_pair_append(unsigned int len, unsigned int perc, unsigned
      int reps, fr_pair_t *source_vps[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:362,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:364,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:367,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:369,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:370,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:376,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:377,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:378,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:386,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:388,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:389,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:390,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:391,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:391,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:394,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:395,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:396,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:397,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:398,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:398,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:399,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - len
    - perc
    - reps
    - source_vps
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - fr_pair_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 400
    functionName: do_test_fr_pair_find_by_da_idx
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time
    - fr_pair_copy
    - fr_time_delta_add
    - fr_pair_append
    - fr_fast_rand
    - fr_rand
    - fr_time_sub
    - talloc_array_length
    - fr_pair_list_free
    - TEST_MSG_ALWAYS
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void do_test_fr_pair_find_by_da_idx(unsigned int len, unsigned int
      perc, unsigned int reps, fr_pair_t *source_vps[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:408,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:410,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:413,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:415,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:416,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:422,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:423,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:424,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:434,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:437,1
    - Dst: fr_pair_find_by_da_idx
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:438,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:439,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:440,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:440,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:443,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:444,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:445,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:446,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:447,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:447,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:448,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - len
    - perc
    - reps
    - source_vps
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - fr_pair_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 402
    functionDepth: 5
    functionLinenumber: 402
    functionLinenumberEnd: 449
    functionName: do_test_find_nth
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time
    - fr_pair_copy
    - fr_time_delta_add
    - fr_pair_append
    - fr_fast_rand
    - fr_pair_find_by_da_idx
    - fr_rand
    - fr_time_sub
    - talloc_array_length
    - fr_pair_list_free
    - TEST_MSG_ALWAYS
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void do_test_find_nth(unsigned int len, unsigned int perc, unsigned
      int reps, fr_pair_t *source_vps[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:457,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:458,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:461,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:463,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:464,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:468,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:469,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:470,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:472,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:473,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:474,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:475,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:475,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:477,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:478,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:479,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:480,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:481,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:481,1
    - Dst: TEST_MSG_ALWAYS
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:482,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - len
    - perc
    - reps
    - source_vps
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - fr_pair_t*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 451
    functionDepth: 5
    functionLinenumber: 451
    functionLinenumberEnd: 483
    functionName: do_test_fr_pair_list_free
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_time
    - fr_pair_copy
    - fr_time_delta_add
    - fr_pair_append
    - fr_fast_rand
    - fr_rand
    - fr_time_sub
    - talloc_array_length
    - fr_pair_list_free
    - TEST_MSG_ALWAYS
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void do_test_fr_pair_list_free(unsigned int len, unsigned int perc,
      unsigned int reps, fr_pair_t *source_vps[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _func
    - ','
    - _count
    - ','
    - _perc
    - ','
    - _source_vps
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: test_func
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_func(_func, _count, _perc, _source_vps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _func
    - ','
    - _perc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: test_funcs
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_funcs(_func, _perc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 504
    functionName: all_test_funcs
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: all_test_funcs(_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _func
    - ','
    - _perc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 517
    functionName: repetition_tests
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repetition_tests(_func, _perc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 523
    functionName: all_repetition_tests
    functionSourceFile: /src/freeradius-server/src/lib/util/test/pair_list_perf_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: all_repetition_tests(_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: TEST_CHECK_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK_(cond,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: TEST_CHECK
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 780
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CHECK(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: TEST_ASSERT_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ASSERT_(cond,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: TEST_ASSERT
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 172
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - exctype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: TEST_EXCEPTION
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_EXCEPTION(code, exctype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - code
    - ','
    - exctype
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: TEST_EXCEPTION_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_EXCEPTION_(code, exctype, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: TEST_CASE_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE_(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: TEST_CASE
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 251
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_CASE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: TEST_MSG
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 232
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MSG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: TEST_MSG_FAIL
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MSG_FAIL(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: TEST_MSG_ALWAYS
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MSG_ALWAYS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - title
    - ','
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: TEST_DUMP
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_DUMP(title, addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - title
    - ','
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: TEST_DUMP_FAIL
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_DUMP_FAIL(title, addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - title
    - ','
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: TEST_DUMP_ALWAYS
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_DUMP_ALWAYS(title, addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: ACUTEST_ATTRIBUTE_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACUTEST_ATTRIBUTE_(attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:443,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:443,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:444,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:447,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:448,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 453
    functionName: acutest_cleanup_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - WriteFile
    - free
    - strlen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void acutest_cleanup_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acutest_cleanup_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:458,1
    - Dst: exit
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: ACUTEST_ATTRIBUTE_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - acutest_cleanup_
    - exit
    linkageType: ''
    returnType: void
    signature: 'void ACUTEST_ATTRIBUTE_(noreturn)

      acutest_exit_(int exit_code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: acutest_timer_init_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - QueryPerformanceFrequency
    linkageType: ''
    returnType: void
    signature: void acutest_timer_init_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - LARGE_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 478
    functionName: acutest_timer_get_time_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    linkageType: ''
    returnType: void
    signature: void acutest_timer_get_time_(LARGE_INTEGER* ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - LARGE_INTEGER
    - LARGE_INTEGER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: acutest_timer_diff_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double acutest_timer_diff_(LARGE_INTEGER start, LARGE_INTEGER end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:491,1
    - Dst: acutest_timer_diff_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: acutest_timer_print_diff_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    - acutest_timer_diff_
    linkageType: ''
    returnType: void
    signature: void acutest_timer_print_diff_(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: acutest_timer_init_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_timer_init_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: acutest_timer_get_time_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void acutest_timer_get_time_(struct timespec* ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct timespec
    - struct timespec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: acutest_timer_diff_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double acutest_timer_diff_(struct timespec start, struct timespec end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:534,1
    - Dst: acutest_timer_diff_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: acutest_timer_print_diff_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    - acutest_timer_diff_
    linkageType: ''
    returnType: void
    signature: void acutest_timer_print_diff_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 544
    functionName: acutest_timer_init_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_timer_init_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: acutest_timer_get_time_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_timer_get_time_(int* ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 558
    functionName: acutest_timer_diff_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double acutest_timer_diff_(int start, int end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 562
    functionName: acutest_timer_print_diff_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_timer_print_diff_(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:579,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:580,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:581,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:585,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:599,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:600,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:601,1
    - Dst: GetStdHandle
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:610,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:611,1
    - Dst: SetConsoleTextAttribute
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:622,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:623,1
    - Dst: SetConsoleTextAttribute
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:624,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:628,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 2
    argNames:
    - color
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 631
    functionName: acutest_colored_printf_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - GetStdHandle
    - SetConsoleTextAttribute
    - printf
    - GetConsoleScreenBufferInfo
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void acutest_colored_printf_(int color, const char* fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:638,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:644,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:645,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - test
    argTypes:
    - struct acutest_test_*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 652
    functionName: acutest_begin_test_line_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    - memset
    - acutest_colored_printf_
    linkageType: ''
    returnType: void
    signature: void acutest_begin_test_line_(const struct acutest_test_* test)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:660,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:663,1
    - Dst: acutest_timer_print_diff_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:664,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:665,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:670,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:671,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:672,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:675,1
    - Dst: acutest_timer_print_diff_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:676,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - result
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 681
    functionName: acutest_finish_test_line_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    - acutest_colored_printf_
    - acutest_timer_print_diff_
    linkageType: ''
    returnType: void
    signature: void acutest_finish_test_line_(int result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:691,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:695,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 699
    functionName: acutest_line_indent_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void acutest_line_indent_(int level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: acutest_finish_test_line_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:714,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:727,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:728,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:733,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:736,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:737,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:744,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:748,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:751,1
    - Dst: vprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:752,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:753,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:755,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:756,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:757,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - cond
    - file
    - line
    - fmt
    argTypes:
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 763
    functionName: acutest_check_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - strrchr
    - vprintf
    - acutest_finish_test_line_
    - acutest_colored_printf_
    - acutest_line_indent_
    - printf
    linkageType: ''
    returnType: void
    signature: void acutest_check_(int cond, const char* file, int line, const char*
      fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:772,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:774,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:775,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:789,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:790,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:791,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:794,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:794,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:796,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:797,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 801
    functionName: acutest_log_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - fprintf
    - acutest_exit_
    - strlen
    - calloc
    - strcpy
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void acutest_log_(const char* fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:819,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:820,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:821,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:825,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 830
    functionName: acutest_case_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - acutest_colored_printf_
    - acutest_line_indent_
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void acutest_case_(const char* fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:848,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:849,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:850,1
    - Dst: acutest_log_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:853,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:857,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:860,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:861,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:865,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:866,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - always
    - fmt
    argTypes:
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 868
    functionName: acutest_message_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - acutest_log_
    - va_end
    - va_start
    - strchr
    - acutest_line_indent_
    - printf
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void acutest_message_(bool always, const char* fmt, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:876,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:895,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:898,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:899,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:899,1
    - Dst: strcpy
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:901,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:902,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:903,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:912,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:913,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:916,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:917,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:920,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:923,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:927,1
    - Dst: iscntrl
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:927,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:932,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:936,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:937,1
    - Dst: acutest_log_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:940,1
    - Dst: free
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:941,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - always
    - title
    - addr
    - size
    argTypes:
    - bool
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 942
    functionName: acutest_dump_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - acutest_log_
    - free
    - snprintf
    - strlen
    - calloc
    - acutest_line_indent_
    - strcpy
    - printf
    - iscntrl
    linkageType: ''
    returnType: void
    signature: void acutest_dump_(bool always, const char* title, const void* addr,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 955
    functionName: acutest_init_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_init_(const char *test_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 968
    functionName: acutest_fini_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_fini_(const char *test_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:974,1
    - Dst: acutest_fini_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:977,1
    - Dst: abort
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 980
    functionName: acutest_abort_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - longjmp
    - acutest_fini_
    - abort
    linkageType: ''
    returnType: void
    signature: void acutest_abort_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:987,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 990
    functionName: acutest_list_names_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void acutest_list_names_(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 1000
    functionName: acutest_remember_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_remember_(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - success
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1006
    functionName: acutest_set_success_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_set_success_(int i, int success)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - duration
    argTypes:
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1012
    functionName: acutest_set_duration_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acutest_set_duration_(int i, double duration)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1021,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1023,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1025,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1026,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - name
    - pattern
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1035
    functionName: acutest_name_contains_word_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    - strstr
    linkageType: ''
    returnType: int
    signature: int acutest_name_contains_word_(const char* name, const char* pattern)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1045,1
    - Dst: acutest_remember_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1046,1
    - Dst: acutest_name_contains_word_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1056,1
    - Dst: acutest_remember_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1057,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1066,1
    - Dst: acutest_remember_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1067,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1073
    functionName: acutest_lookup_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - acutest_remember_
    - acutest_name_contains_word_
    - strstr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int acutest_lookup_(const char* pattern)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1088,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1090,1
    - Dst: va_start
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1091,1
    - Dst: vprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1092,1
    - Dst: va_end
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1093,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1094,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1098,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1100
    functionName: acutest_error_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - vprintf
    - acutest_colored_printf_
    - acutest_line_indent_
    - printf
    linkageType: ''
    returnType: void
    signature: void acutest_error_(const char* fmt, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: acutest_init_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1118,1
    - Dst: acutest_begin_test_line_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1119,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1122,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1123,1
    - Dst: setjmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1127,1
    - Dst: acutest_timer_get_time_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1133,1
    - Dst: struct acutest_test_*::func
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1134,1
    - Dst: acutest_timer_get_time_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1137,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1140,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1142,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1143,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1146,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1147,1
    - Dst: acutest_timer_print_diff_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1148,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1149,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1152,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1154,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1159,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1162,1
    - Dst: acutest_finish_test_line_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1164,1
    - Dst: what
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1171,1
    - Dst: acutest_check_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1172,1
    - Dst: acutest_message_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1174,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1177,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1178,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1179,1
    - Dst: acutest_check_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1182,1
    - Dst: acutest_line_indent_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1185,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1186,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1187,1
    - Dst: acutest_fini_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1192,1
    - Dst: acutest_case_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1193,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 72
    argCount: 2
    argNames:
    - test
    - index
    argTypes:
    - struct acutest_test_*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1103
    functionDepth: 4
    functionLinenumber: 1103
    functionLinenumberEnd: 1197
    functionName: acutest_do_run_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - what
    - acutest_case_
    - acutest_begin_test_line_
    - acutest_init_
    - acutest_line_indent_
    - acutest_check_
    - acutest_fini_
    - acutest_finish_test_line_
    - setjmp
    - acutest_message_
    - fflush
    - acutest_colored_printf_
    - struct acutest_test_*::func
    - acutest_timer_get_time_
    - printf
    - acutest_timer_print_diff_
    linkageType: ''
    returnType: int
    signature: int acutest_do_run_(const struct acutest_test_* test, int index)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: acutest_timer_get_time_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1210,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1224,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1225,1
    - Dst: pipe
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1227,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1228,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1229,1
    - Dst: fork
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1232,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1234,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1234,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1239,1
    - Dst: acutest_do_run_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1241,1
    - Dst: write
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1247,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1247,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1248,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1249,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1253,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1254,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1256,1
    - Dst: waitpid
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1258,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1259,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1260,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1263,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1263,1
    - Dst: WIFSIGNALED
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1265,1
    - Dst: WTERMSIG
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1268,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1277,1
    - Dst: WTERMSIG
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1277,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1279,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1281,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1289,1
    - Dst: acutest_log_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1291,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1299,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1300,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1303,1
    - Dst: CreatePipe
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1323,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1324,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1325,1
    - Dst: _snprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1330,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1336,1
    - Dst: CreateProcessA
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1338,1
    - Dst: WaitForSingleObject
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1339,1
    - Dst: GetExitCodeProcess
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1340,1
    - Dst: CloseHandle
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1341,1
    - Dst: CloseHandle
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1342,1
    - Dst: ReadFile
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1349,1
    - Dst: acutest_log_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1351,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1360,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1361,1
    - Dst: CloseHandle
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1365,1
    - Dst: CloseHandle
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1366,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1370,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1371,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1372,1
    - Dst: acutest_error_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1376,1
    - Dst: GetLastError
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1376,1
    - Dst: acutest_do_run_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1383,1
    - Dst: acutest_do_run_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1389,1
    - Dst: acutest_timer_get_time_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1391,1
    - Dst: acutest_set_success_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1399,1
    - Dst: acutest_set_duration_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1400,1
    - Dst: acutest_timer_diff_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1400,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 161
    argCount: 3
    argNames:
    - test
    - index
    - master_index
    argTypes:
    - struct acutest_test_*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1202
    functionDepth: 5
    functionLinenumber: 1202
    functionLinenumberEnd: 1401
    functionName: acutest_run_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - fflush
    - strlen
    - CreateProcessA
    - ReadFile
    - close
    - _snprintf
    - write
    - acutest_log_
    - read
    - WIFEXITED
    - acutest_exit_
    - GetExitCodeProcess
    - acutest_timer_get_time_
    - memset
    - acutest_error_
    - WEXITSTATUS
    - WaitForSingleObject
    - acutest_set_success_
    - acutest_set_duration_
    - fork
    - CreatePipe
    - WIFSIGNALED
    - WTERMSIG
    - acutest_timer_diff_
    - pipe
    - CloseHandle
    - snprintf
    - fprintf
    - strerror
    - GetLastError
    - acutest_do_run_
    - waitpid
    linkageType: ''
    returnType: void
    signature: void acutest_run_(const struct acutest_test_* test, int index, int
      master_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acutest_check_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1408,1
    - Dst: acutest_message_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1409,1
    - Dst: acutest_message_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1410,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1412,1
    - Dst: fflush
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ptrs
    argTypes:
    - EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1405
    functionDepth: 4
    functionLinenumber: 1405
    functionLinenumberEnd: 1416
    functionName: acutest_seh_exception_filter_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - fflush
    - acutest_check_
    - acutest_message_
    linkageType: ''
    returnType: LONG
    signature: LONG acutest_seh_exception_filter_(EXCEPTION_POINTERS *ptrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1451,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - options
    - arggroup
    argTypes:
    - ACUTEST_CMDLINE_OPTION_*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1467
    functionName: acutest_cmdline_handle_short_opt_group_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - callback
    linkageType: ''
    returnType: int
    signature: "int acutest_cmdline_handle_short_opt_group_(const ACUTEST_CMDLINE_OPTION_*
      options,\n                    const char* arggroup,\n                    int
      (*callback)(int /*optval*/, const char* /*arg*/))"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1485,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1487,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1488,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1493,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1496,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1497,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1498,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1503,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1505,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1510,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1512,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1513,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1525,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1527,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1529,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1532,1
    - Dst: acutest_cmdline_handle_short_opt_group_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1537,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1547,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1552,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1554,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1559,1
    - Dst: callback
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1565,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 3
    argNames:
    - options
    - argc
    - argv
    argTypes:
    - ACUTEST_CMDLINE_OPTION_*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1576
    functionName: acutest_cmdline_read_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - memcpy
    - strchr
    - snprintf
    - strlen
    - strcmp
    - strncmp
    - acutest_cmdline_handle_short_opt_group_
    - callback
    linkageType: ''
    returnType: int
    signature: "int acutest_cmdline_read_(const ACUTEST_CMDLINE_OPTION_* options,
      int argc, char** argv,\n                      int (*callback)(int /*optval*/,
      const char* /*arg*/))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1581,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1582,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1583,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1584,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1585,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1586,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1587,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1588,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1589,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1590,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1591,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1593,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1595,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1596,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1597,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1599,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1600,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1601,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1602,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1603,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1604,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1605,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1606,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1607,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1608,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1609,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1610,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1611,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1612,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1613,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1614,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1617,1
    - Dst: acutest_list_names_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1578
    functionDepth: 1
    functionLinenumber: 1578
    functionLinenumberEnd: 1620
    functionName: acutest_help_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - printf
    - acutest_list_names_
    linkageType: ''
    returnType: void
    signature: void acutest_help_(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1656,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1658,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1660,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1663,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1664,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1665,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1675,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1678,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1682,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1683,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1684,1
    - Dst: acutest_list_names_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1698,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1699,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1703,1
    - Dst: _atoi64
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1708,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1716,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1718,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1720,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1723,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1724,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1725,1
    - Dst: acutest_help_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1734,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1735,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1740,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1743,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1745,1
    - Dst: strerror
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1745,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1746,1
    - Dst: acutest_lookup_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1751,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1752,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1753,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1754,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1759,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1760,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1761,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1765,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1766,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1767,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1771,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1772,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1773,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 2
    argNames:
    - id
    - arg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1647
    functionDepth: 3
    functionLinenumber: 1647
    functionLinenumberEnd: 1778
    functionName: acutest_cmdline_callback_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - acutest_help_
    - fprintf
    - acutest_exit_
    - _atoi64
    - strerror
    - acutest_lookup_
    - strcmp
    - fopen
    - atoi
    - acutest_list_names_
    linkageType: ''
    returnType: int
    signature: int acutest_cmdline_callback_(int id, const char* arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1793,1
    - Dst: read
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1804,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1811,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1813,1
    - Dst: memmove
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1819,1
    - Dst: close
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1826,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1782
    functionDepth: 0
    functionLinenumber: 1782
    functionLinenumberEnd: 1828
    functionName: acutest_is_tracer_present_
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 0
    functionsReached:
    - open
    - memmove
    - read
    - strstr
    - close
    - atoi
    linkageType: ''
    returnType: int
    signature: int acutest_is_tracer_present_(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1840,1
    - Dst: isatty
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1843,1
    - Dst: _fileno
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1843,1
    - Dst: _isatty
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1845,1
    - Dst: _fileno
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1845,1
    - Dst: calloc
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1856,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1858,1
    - Dst: acutest_exit_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1859,1
    - Dst: acutest_cmdline_read_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1863,1
    - Dst: acutest_timer_init_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1866,1
    - Dst: SetUnhandledExceptionFilter
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1869,1
    - Dst: _set_abort_behavior
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1871,1
    - Dst: acutest_remember_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1878,1
    - Dst: IsDebuggerPresent
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1889,1
    - Dst: acutest_is_tracer_present_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1893,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1915,1
    - Dst: acutest_run_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1924,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1930,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1932,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1933,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1934,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1935,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1939,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1940,1
    - Dst: acutest_colored_printf_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1942,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1943,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1949,1
    - Dst: basename
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1954,1
    - Dst: _splitpath
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1957,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1962,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1963,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1968,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1970,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1972,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1975,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1978,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1980,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1981,1
    - Dst: acutest_cleanup_
      Src: /src/freeradius-server/src/lib/util/test/acutest.h:1984,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1831
    functionDepth: 6
    functionLinenumber: 1831
    functionLinenumberEnd: 1987
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/util/test/acutest.h
    functionUses: 3
    functionsReached:
    - _set_abort_behavior
    - SetUnhandledExceptionFilter
    - _splitpath
    - acutest_cmdline_read_
    - isatty
    - _fileno
    - acutest_exit_
    - calloc
    - printf
    - acutest_cleanup_
    - basename
    - _isatty
    - acutest_colored_printf_
    - acutest_timer_init_
    - fclose
    - acutest_remember_
    - acutest_is_tracer_present_
    - IsDebuggerPresent
    - fprintf
    - acutest_run_
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:58,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:61,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:62,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:68,1
    - Dst: fr_dict_test_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:70,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:73,1
    - Dst: fr_pair_test_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 11
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: test_init
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 8
    functionsReached:
    - fr_exit_now
    - fr_check_lib_magic
    - fr_pair_test_list_alloc
    - fr_dict_test_init
    - talloc_autofree_context
    - fr_perror
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:83,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:85,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:86,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:87,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:89,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:90,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:91,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:93,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:94,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:95,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:97,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:98,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - local_pairs
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 100
    functionName: add_pairs
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - TEST_CASE
    - fr_pair_append
    - fr_assert
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void add_pairs(fr_pair_list_t *local_pairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:107,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:108,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:109,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:111,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:112,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:114,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:115,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - local_pairs
    argTypes:
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 118
    functionName: expect3
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_num_elements
    - fr_pair_list_tail
    - TEST_CASE
    - fr_pair_list_head
    - fr_pair_list_free
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void expect3(fr_pair_list_t *local_pairs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:131,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:133,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:135,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:137,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:138,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:140,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:141,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:143,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:145,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:146,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:147,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:149,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:150,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:151,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 123
    functionDepth: 10
    functionLinenumber: 123
    functionLinenumberEnd: 154
    functionName: test_pair_delete_head
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:164,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:166,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:168,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:170,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:171,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:173,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:174,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:176,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:177,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:178,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:183,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 156
    functionDepth: 10
    functionLinenumber: 156
    functionLinenumberEnd: 186
    functionName: test_pair_delete_head_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_pair_list_num_elements
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_head_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:196,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:198,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:200,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:201,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:202,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:204,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:205,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:207,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:208,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:210,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:213,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:214,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:215,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:217,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:218,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:220,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:221,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 10
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: test_pair_delete_middle
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_middle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:234,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:236,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:238,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:239,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:240,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:241,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:244,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:246,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:247,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:249,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:250,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:251,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:253,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:254,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:256,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:257,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:262,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 226
    functionDepth: 10
    functionLinenumber: 226
    functionLinenumberEnd: 265
    functionName: test_pair_delete_middle_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_pair_list_tail
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_middle_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:275,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:277,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:279,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:280,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:281,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:283,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:284,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:286,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:287,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:289,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:290,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:292,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:293,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:295,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:297,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:298,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:299,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:301,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:302,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:304,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:305,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 267
    functionDepth: 10
    functionLinenumber: 267
    functionLinenumberEnd: 308
    functionName: test_pair_delete_multiple
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_multiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:318,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:320,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:322,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:323,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:324,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:325,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:326,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:328,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:329,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:331,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:332,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:334,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:335,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:337,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:338,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:340,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:341,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:342,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:344,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:345,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:347,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:348,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:353,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 310
    functionDepth: 10
    functionLinenumber: 310
    functionLinenumberEnd: 356
    functionName: test_pair_delete_multiple_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_pair_list_tail
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_multiple_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:366,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:368,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:370,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:371,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:373,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:374,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:376,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:377,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:379,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:382,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:384,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:386,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:387,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:388,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 359
    functionDepth: 10
    functionLinenumber: 359
    functionLinenumberEnd: 391
    functionName: test_pair_edit_value
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_commit
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:400,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:402,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:404,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:405,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:407,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:408,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:410,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:411,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:413,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:416,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:421,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:423,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:424,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:425,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 393
    functionDepth: 10
    functionLinenumber: 393
    functionLinenumberEnd: 428
    functionName: test_pair_edit_value_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_value_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:438,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:440,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:442,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:443,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:445,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:446,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:447,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:448,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:450,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:452,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:453,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:454,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:456,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:457,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:458,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 430
    functionDepth: 10
    functionLinenumber: 430
    functionLinenumberEnd: 461
    functionName: test_pair_insert_after_head
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_edit_list_insert_pair_after
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_head(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:471,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:473,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:475,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:476,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:478,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:479,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:480,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:481,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:483,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:484,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:485,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:490,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 463
    functionDepth: 10
    functionLinenumber: 463
    functionLinenumberEnd: 493
    functionName: test_pair_insert_after_head_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - fr_edit_list_insert_pair_after
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_head_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:503,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:505,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:507,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:508,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:509,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:511,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:512,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:514,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:515,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:516,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:517,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:519,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:521,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:522,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:523,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 495
    functionDepth: 10
    functionLinenumber: 495
    functionLinenumberEnd: 526
    functionName: test_pair_insert_after_middle
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_pair_list_free
    - fr_edit_list_insert_pair_after
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_middle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:536,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:538,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:540,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:541,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:542,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:544,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:545,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:547,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:548,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:549,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:550,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:552,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:553,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:554,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:559,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 528
    functionDepth: 10
    functionLinenumber: 528
    functionLinenumberEnd: 562
    functionName: test_pair_insert_after_middle_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - fr_edit_list_insert_pair_after
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_middle_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:571,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:573,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:575,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:576,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:578,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:579,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:581,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:582,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:584,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:587,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:589,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:590,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:592,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:594,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:595,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:597,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:598,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 564
    functionDepth: 10
    functionLinenumber: 564
    functionLinenumberEnd: 600
    functionName: test_pair_edit_value_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_value_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:609,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:611,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:613,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:614,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:616,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:617,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:619,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:620,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:622,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:625,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:627,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:628,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:633,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:635,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:636,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:637,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 602
    functionDepth: 10
    functionLinenumber: 602
    functionLinenumberEnd: 640
    functionName: test_pair_edit_value_delete_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_value_delete_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:650,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:652,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:654,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:655,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:657,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:658,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:659,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:660,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:662,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:663,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:664,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:666,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:667,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:669,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:670,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:671,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:673,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 642
    functionDepth: 10
    functionLinenumber: 642
    functionLinenumberEnd: 676
    functionName: test_pair_insert_after_head_delete
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_edit_list_insert_pair_after
    - TEST_CASE
    - fr_assert
    - expect3
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_head_delete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:686,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:688,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:690,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:691,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:693,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:694,1
    - Dst: fr_edit_list_insert_pair_after
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:695,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:696,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:698,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:699,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:700,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:705,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 678
    functionDepth: 10
    functionLinenumber: 678
    functionLinenumberEnd: 708
    functionName: test_pair_insert_after_head_delete_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - fr_edit_list_insert_pair_after
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_head_delete_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:718,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:720,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:722,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:723,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:725,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:726,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:728,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:729,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:731,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:734,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:736,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:737,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:739,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:740,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:742,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:745,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:747,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:749,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:751,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:753,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:754,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:755,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 711
    functionDepth: 10
    functionLinenumber: 711
    functionLinenumberEnd: 758
    functionName: test_pair_edit_child_value
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_commit
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_child_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:767,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:769,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:771,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:772,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:774,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:775,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:777,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:778,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:780,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:783,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:785,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:786,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:788,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:789,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:791,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:794,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:796,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:798,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:800,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:802,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:803,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:804,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 760
    functionDepth: 10
    functionLinenumber: 760
    functionLinenumberEnd: 807
    functionName: test_pair_edit_child_value_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_commit
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_child_value_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:817,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:819,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:821,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:822,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:823,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:825,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:826,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:828,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:829,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:831,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:833,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:834,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:835,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:837,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:838,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 809
    functionDepth: 10
    functionLinenumber: 809
    functionLinenumberEnd: 841
    functionName: test_pair_delete_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_assert
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:851,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:853,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:855,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:856,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:857,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:859,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:860,1
    - Dst: fr_edit_list_pair_delete
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:862,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:863,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:865,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:866,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:868,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 843
    functionDepth: 10
    functionLinenumber: 843
    functionLinenumberEnd: 871
    functionName: test_pair_delete_tail_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_pair_delete
    - fr_pair_list_num_elements
    - fr_pair_list_tail
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_tail_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:881,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:883,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:886,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:887,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:889,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:891,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:892,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:894,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:895,1
    - Dst: fr_edit_list_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:897,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:898,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:900,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:902,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:903,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:904,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:906,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:907,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:909,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:910,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 873
    functionDepth: 10
    functionLinenumber: 873
    functionLinenumberEnd: 913
    functionName: test_pair_delete_by_da
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_pair_append
    - fr_assert
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    - fr_edit_list_pair_delete_by_da
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_by_da(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:923,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:925,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:927,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:928,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:930,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:932,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:933,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:935,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:936,1
    - Dst: fr_edit_list_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:938,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:939,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:941,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:942,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:944,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:946,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:947,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:948,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:950,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:951,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:952,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:954,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:955,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:956,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 915
    functionDepth: 10
    functionLinenumber: 915
    functionLinenumberEnd: 959
    functionName: test_pair_delete_by_da_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_pair_append
    - fr_edit_list_abort
    - fr_assert
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    - fr_edit_list_pair_delete_by_da
    linkageType: ''
    returnType: void
    signature: void test_pair_delete_by_da_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:969,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:971,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:973,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:974,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:976,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:977,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:979,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:981,1
    - Dst: fr_edit_list_replace_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:984,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:985,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:986,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:988,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:990,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:991,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:992,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 961
    functionDepth: 10
    functionLinenumber: 961
    functionLinenumberEnd: 995
    functionName: test_pair_replace_value
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - fr_edit_list_commit
    - TEST_CASE
    - fr_edit_list_replace_pair_value
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_replace_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1005,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1007,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1009,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1010,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1012,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1013,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1015,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1017,1
    - Dst: fr_edit_list_replace_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1020,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1021,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1022,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1024,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1026,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1027,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1028,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 997
    functionDepth: 10
    functionLinenumber: 997
    functionLinenumberEnd: 1031
    functionName: test_pair_replace_value_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_value_box_init
    - TEST_CASE
    - fr_edit_list_replace_pair_value
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_replace_value_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1041,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1043,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1045,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1046,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1048,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1049,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1051,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1052,1
    - Dst: fr_edit_list_replace_pair
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1055,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1056,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1058,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1060,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1061,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1062,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1064,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1065,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1066,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1033
    functionDepth: 10
    functionLinenumber: 1033
    functionLinenumberEnd: 1069
    functionName: test_pair_replace_pair
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - TEST_CASE
    - fr_assert
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    - fr_edit_list_replace_pair
    linkageType: ''
    returnType: void
    signature: void test_pair_replace_pair(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1078,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1080,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1082,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1083,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1085,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1086,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1088,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1089,1
    - Dst: fr_edit_list_replace_pair
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1092,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1093,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1095,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1096,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1098,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1100,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1101,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1102,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1071
    functionDepth: 10
    functionLinenumber: 1071
    functionLinenumberEnd: 1105
    functionName: test_pair_replace_pair_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    - fr_edit_list_replace_pair
    linkageType: ''
    returnType: void
    signature: void test_pair_replace_pair_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1115,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1117,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1119,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1120,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1123,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1124,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1125,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1127,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1129,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1130,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1131,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1133,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1134,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1107
    functionDepth: 4
    functionLinenumber: 1107
    functionLinenumberEnd: 1137
    functionName: test_pair_insert_after_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_edit_list_insert_pair_tail
    - fr_assert
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1147,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1149,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1151,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1152,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1154,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1155,1
    - Dst: fr_edit_list_insert_pair_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1156,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1157,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1159,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1160,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1162,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1139
    functionDepth: 9
    functionLinenumber: 1139
    functionLinenumberEnd: 1165
    functionName: test_pair_insert_after_tail_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - TEST_CASE
    - fr_edit_list_abort
    - fr_edit_list_insert_pair_tail
    - fr_assert
    - expect3
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_after_tail_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1175,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1177,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1179,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1180,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1182,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1183,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1184,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1185,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1185,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1187,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1188,1
    - Dst: fr_edit_list_free_pair_children
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1190,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1191,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1192,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1192,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1194,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1196,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1196,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1198,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1199,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1167
    functionDepth: 10
    functionLinenumber: 1167
    functionLinenumberEnd: 1202
    functionName: test_pair_free_children
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_pair_append
    - fr_assert
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    - fr_edit_list_free_pair_children
    linkageType: ''
    returnType: void
    signature: void test_pair_free_children(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1211,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1213,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1215,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1216,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1219,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1220,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1221,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1221,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1223,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1224,1
    - Dst: fr_edit_list_free_pair_children
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1226,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1227,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1228,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1228,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1230,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1232,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1232,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1234,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1235,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1204
    functionDepth: 10
    functionLinenumber: 1204
    functionLinenumberEnd: 1238
    functionName: test_pair_free_children_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - fr_pair_list_tail
    - TEST_CASE
    - fr_pair_append
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    - fr_edit_list_free_pair_children
    linkageType: ''
    returnType: void
    signature: void test_pair_free_children_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1248,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1250,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1252,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1254,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1255,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1256,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1258,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1259,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1260,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1262,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1263,1
    - Dst: fr_edit_list_insert_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1265,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1266,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1268,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1270,1
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1271,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1272,1
    - Dst: fr_pair_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1274,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1275,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1240
    functionDepth: 4
    functionLinenumber: 1240
    functionLinenumberEnd: 1278
    functionName: test_pair_insert_list_tail
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_edit_list_commit
    - fr_pair_list_num_elements
    - fr_pair_list_free
    - fr_pair_list_tail
    - TEST_CASE
    - fr_pair_append
    - fr_assert
    - fr_edit_list_insert_list_tail
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_list_tail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1288,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1290,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1292,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1294,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1295,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1296,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1298,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1299,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1300,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1302,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1303,1
    - Dst: fr_edit_list_insert_list_tail
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1305,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1306,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1308,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1309,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1311,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1280
    functionDepth: 9
    functionLinenumber: 1280
    functionLinenumberEnd: 1314
    functionName: test_pair_insert_list_tail_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - TEST_CASE
    - fr_pair_append
    - fr_edit_list_abort
    - fr_assert
    - fr_edit_list_insert_list_tail
    - expect3
    - add_pairs
    - fr_edit_list_alloc
    - TEST_CHECK
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void test_pair_insert_list_tail_abort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CASE
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1323,1
    - Dst: add_pairs
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1325,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1327,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1328,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1330,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1331,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1333,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1334,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1336,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1339,1
    - Dst: fr_edit_list_alloc
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1341,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1342,1
    - Dst: fr_edit_list_save_pair_value
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1344,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1345,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1348,1
    - Dst: fr_edit_list_commit
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1350,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1351,1
    - Dst: fr_edit_list_abort
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1354,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1356,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1357,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1358,1
    - Dst: expect3
      Src: /src/freeradius-server/src/lib/util/test/edit_tests.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1316
    functionDepth: 10
    functionLinenumber: 1316
    functionLinenumberEnd: 1361
    functionName: test_pair_edit_child_commit_parent_abort
    functionSourceFile: /src/freeradius-server/src/lib/util/test/edit_tests.c
    functionUses: 0
    functionsReached:
    - fr_edit_list_commit
    - fr_edit_list_save_pair_value
    - TEST_CASE
    - fr_edit_list_abort
    - fr_assert
    - expect3
    - fr_pair_list_head
    - fr_edit_list_alloc
    - add_pairs
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_pair_edit_child_commit_parent_abort(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:36,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:40,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:42,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:44,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:44,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:45,1
    - Dst: getenv
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:48,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/util/test/time_tests.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: time_benchmark
    functionSourceFile: /src/freeradius-server/src/lib/util/test/time_tests.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_unwrap
    - fr_time
    - fr_time_sub
    - getenv
    - printf
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void time_benchmark(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sum
    - a
    - b
    argTypes:
    - onesixty*
    - onesixty*
    - onesixty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: onesixty_add_mod
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void onesixty_add_mod(onesixty *sum, onesixty *a, onesixty *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:112,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:115,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:125,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:127,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:128,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:130,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:132,1
    - Dst: fr_sha1_final_no_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:134,1
    - Dst: onesixty_add_mod
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:137,1
    - Dst: onesixty_add_mod
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:138,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:144,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:146,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:147,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:149,1
    - Dst: fr_sha1_transform
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:151,1
    - Dst: fr_sha1_final_no_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:153,1
    - Dst: onesixty_add_mod
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:156,1
    - Dst: onesixty_add_mod
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:157,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:160,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 2
    argNames:
    - out
    - mk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 166
    functionName: fr_aka_sim_fips186_2prf
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_sha1_init
    - fr_sha1_final_no_len
    - onesixty_add_mod
    - fr_sha1_transform
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_aka_sim_fips186_2prf(uint8_t out[static 160], uint8_t mk[static
      20])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_sim_fips186_2prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:235,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:237,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: test_fips186prf
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/fips186prf.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - memcmp
    - fr_sim_fips186_2prf
    linkageType: ''
    returnType: void
    signature: void test_fips186prf(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:57,1
    - Dst: fr_aka_sim_id_type
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:60,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:61,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:71,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:72,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:76,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:77,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:81,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:82,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:86,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:86,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:87,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:87,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 91
    functionName: aka_sim_xlat_id_method_xlat
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_aka_sim_id_type
    - fr_dcursor_append
    - fr_value_box_bstrndup
    - RPEDEBUG2
    - fr_value_box_alloc
    - strlen
    - MEM
    - fr_dict_enum_name_by_value
    - fr_box_uint32
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t aka_sim_xlat_id_method_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t\t UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t\t request_t *request,\n\t\t\t\t\t\t
      fr_value_box_list_t *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:113,1
    - Dst: fr_aka_sim_id_type
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:116,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:117,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:127,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:128,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:132,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:133,1
    - Dst: fr_dict_enum_name_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:137,1
    - Dst: fr_box_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:138,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:142,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:142,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:143,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:143,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 147
    functionName: aka_sim_xlat_id_type_xlat
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_aka_sim_id_type
    - fr_dcursor_append
    - fr_value_box_bstrndup
    - RPEDEBUG2
    - fr_value_box_alloc
    - strlen
    - MEM
    - fr_dict_enum_name_by_value
    - fr_box_uint32
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t aka_sim_xlat_id_type_xlat(TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\t       UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t       request_t
      *request, fr_value_box_list_t *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:166,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:170,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:175,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:175,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_tag
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:176,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: aka_sim_id_3gpp_temporary_id_key_index_xlat
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - REDEBUG2
    - fr_aka_sim_id_3gpp_pseudonym_tag
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t aka_sim_id_3gpp_temporary_id_key_index_xlat(TALLOC_CTX
      *ctx, fr_dcursor_t *out,\n\t\t\t\t\t\t \t\t UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t\t\t\t
      request_t *request, fr_value_box_list_t *in)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:235,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:239,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:244,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:253,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:260,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:268,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_tag
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:281,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:299,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:299,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:305,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:305,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_decrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:306,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:307,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:314,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:314,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:316,1
    - Dst: fr_value_box_bstr_alloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:316,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:318,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:320,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:320,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:322,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 325
    functionName: aka_sim_3gpp_temporary_id_decrypt_xlat
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - memcpy
    - fr_pair_find_by_da
    - REDEBUG2
    - fr_dcursor_append
    - fr_aka_sim_id_3gpp_pseudonym_tag
    - MEM
    - RPEDEBUG2
    - fr_value_box_bstrndup
    - RDEBUG2
    - fr_box_strvalue_len
    - fr_value_box_bstr_alloc
    - fr_aka_sim_id_3gpp_pseudonym_decrypt
    - fr_value_box_list_next
    - fr_value_box_alloc_null
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t aka_sim_3gpp_temporary_id_decrypt_xlat(TALLOC_CTX *ctx,
      fr_dcursor_t *out,\n\t\t\t\t\t\t \t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t\t\t
      \   request_t *request, fr_value_box_list_t *in)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:354,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:358,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:363,1
    - Dst: fr_value_box_list_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:366,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:376,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:382,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:392,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:396,1
    - Dst: fr_aka_sim_id_type
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:417,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:418,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:418,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:423,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:423,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:442,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:442,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:454,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:456,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:468,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:475,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_encrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:486,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:487,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:487,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:491,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:491,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:492,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:492,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:493,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 97
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 496
    functionName: aka_sim_3gpp_temporary_id_encrypt_xlat
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_head
    - fr_dcursor_append
    - REDEBUG2
    - fr_pair_find_by_da
    - REDEBUG
    - fr_value_box_bstrndup
    - RPEDEBUG2
    - fr_value_box_alloc
    - strlen
    - fr_box_strvalue_len
    - fr_dict_enum_by_name
    - fr_aka_sim_id_3gpp_pseudonym_encrypt
    - MEM
    - fr_value_box_list_next
    - fr_aka_sim_id_type
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t aka_sim_3gpp_temporary_id_encrypt_xlat(TALLOC_CTX *ctx,
      fr_dcursor_t *out,\n\t\t\t\t\t\t\t    UNUSED xlat_ctx_t const *xctx,\n\t\t\t\t\t\t\t
      \   request_t *request, fr_value_box_list_t *in)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:507,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:507,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:508,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:509,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:509,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:510,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:511,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:511,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:512,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:513,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:513,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:514,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:516,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:516,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:517,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:519,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:519,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:520,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:522,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:522,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:523,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:524,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:524,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:525,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 530
    functionName: fr_aka_sim_xlat_func_register
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 3
    functionsReached:
    - unlikely
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_xlat_func_register(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:539,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:540,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:541,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:542,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 545
    functionName: fr_aka_sim_xlat_func_unregister
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/xlat.c
    functionUses: 3
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void fr_aka_sim_xlat_func_unregister(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: fr_aka_sim_attr_flags
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_aka_sim_attr_flags_t
    signature: fr_aka_sim_attr_flags_t * fr_aka_sim_attr_flags(fr_dict_attr_t const
      *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: fr_aka_sim_flag_encrypted
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_aka_sim_flag_encrypted(_da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:87,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:93,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - out
    - in
    - in_len
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 101
    functionName: sim_iv_extract
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sim_iv_extract(uint8_t out[AKA_SIM_IV_SIZE], uint8_t const *in,
      size_t in_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_cbc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:121,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:122,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:126,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:128,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:137,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:154,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:159,1
    - Dst: sim_iv_extract
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:164,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:172,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:177,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:178,1
    - Dst: aka_sim_crypto_cipher_ctx
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:182,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:183,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:184,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:186,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:190,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:190,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:201,1
    - Dst: EVP_DecryptUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:202,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:203,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:208,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:209,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:219,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:227,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:228,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:233,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:234,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 6
    argNames:
    - ctx
    - out
    - data
    - attr_len
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - uint8_t**
    - uint8_t*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 239
    functionName: sim_value_decrypt
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - aka_sim_crypto_cipher_ctx
    - FR_PROTO_HEX_DUMP
    - talloc_free
    - sim_iv_extract
    - FR_PROTO_TRACE
    - fr_cond_assert
    - fr_strerror_printf
    - EVP_CIPHER_block_size
    - fr_tls_strerror_printf
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_set_padding
    - talloc_zero_array
    - EVP_DecryptFinal_ex
    - EVP_aes_128_cbc
    - MEM
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sim_value_decrypt(TALLOC_CTX *ctx, uint8_t **out,\n\t\t\t\t
      uint8_t const *data, size_t const attr_len, size_t const data_len,\n\t\t\t\t
      void *decode_ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:260,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:276,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:279,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:288,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - out
    - len
    - da
    argTypes:
    - size_t*
    - size_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 295
    functionName: sim_array_members
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_cond_assert
    linkageType: ''
    returnType: int
    signature: int sim_array_members(size_t *out, size_t len, fr_dict_attr_t const
      *da)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:308,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:310,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:311,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:321,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:323,1
    - Dst: sim_array_members
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:340,1
    - Dst: sim_decode_pair_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:344,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:349,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 353
    functionName: sim_decode_array
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - sim_array_members
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - fr_cond_assert
    - fr_assert
    - sim_decode_pair_value
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sim_decode_array(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\tfr_dict_attr_t
      const *parent,\n\t\t\t\tuint8_t const *data, size_t const attr_len, UNUSED size_t
      data_len,\n\t\t\t\tvoid *decode_ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:381,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:385,1
    - Dst: fr_aka_sim_flag_encrypted
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:396,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:397,1
    - Dst: sim_value_decrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:399,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:409,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:420,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:425,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:426,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:431,1
    - Dst: fr_aka_sim_flag_encrypted
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:446,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:451,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:454,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:465,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:466,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:474,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:476,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:485,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:493,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:497,1
    - Dst: sim_decode_pair_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:499,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:501,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:505,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:507,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 510
    functionName: sim_decode_tlv
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - talloc_free
    - fr_dict_attr_unknown_free
    - fr_strerror_printf
    - fr_cond_assert
    - fr_pair_append
    - fr_aka_sim_flag_encrypted
    - fr_box_octets
    - sim_decode_pair_value
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    - sim_value_decrypt
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sim_decode_tlv(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \     fr_dict_attr_t const *parent,\n\t\t\t      uint8_t const *data, size_t
      const attr_len, size_t data_len,\n\t\t\t      void *decode_ctx)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:535,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:536,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:538,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:539,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:541,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:541,1
    - Dst: sim_iv_extract
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:567,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:591,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:593,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:600,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:606,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:611,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:614,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:636,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:639,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:651,1
    - Dst: fr_aka_sim_octets_prefix_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:664,1
    - Dst: sim_decode_tlv
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:685,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:694,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:702,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:704,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:709,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:711,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:729,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:732,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:737,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:746,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:749,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:754,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:759,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:794,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:798,1
    - Dst: fr_nbo_to_uint64
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:802,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:806,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:807,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:812,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 153
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 525
    functionDepth: 6
    functionLinenumber: 525
    functionLinenumberEnd: 815
    functionName: sim_decode_pair_value
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 2
    functionsReached:
    - fr_nbo_to_uint64
    - fr_cond_assert
    - fr_strerror_printf
    - fr_pair_value_memdup
    - fr_aka_sim_octets_prefix_len
    - fr_type_to_str
    - FR_PROTO_HEX_DUMP
    - fr_pair_append
    - fr_nbo_to_uint32
    - sim_decode_tlv
    - fr_pair_afrom_da
    - fr_pair_value_bstrndup
    - sim_iv_extract
    - fr_assert
    - fr_nbo_to_uint16
    - fr_strerror_printf_push
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_raw_from_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sim_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t     uint8_t const *data, size_t const
      attr_len, size_t const data_len,\n\t\t\t\t     void *decode_ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:846,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:855,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:861,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:865,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:867,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:876,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:879,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:883,1
    - Dst: sim_decode_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:886,1
    - Dst: sim_decode_pair_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:888,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 831
    functionDepth: 7
    functionLinenumber: 831
    functionLinenumberEnd: 893
    functionName: sim_decode_pair_internal
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - sim_decode_array
    - sim_decode_pair_value
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t sim_decode_pair_internal(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t\tuint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sim_decode_pair_internal
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 8
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: fr_aka_sim_decode_pair
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - sim_decode_pair_internal
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_aka_sim_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t       uint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:961,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:965,1
    - Dst: fr_aka_sim_decode_pair
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:973,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:975,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:977,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:982,1
    - Dst: fr_pair_afrom_child_num
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:992,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:994,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:998,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 6
    argNames:
    - ctx
    - out
    - dict
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_t*
    - uint8_t*
    - size_t
    - fr_aka_sim_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 942
    functionDepth: 9
    functionLinenumber: 942
    functionLinenumberEnd: 1002
    functionName: fr_aka_sim_decode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_pair_append
    - fr_assert
    - fr_pair_afrom_child_num
    - fr_strerror_const_push
    - fr_pair_list_free
    - fr_aka_sim_decode_pair
    - fr_strerror_const
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int fr_aka_sim_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_t
      const *dict,\n\t\t      uint8_t const *data, size_t data_len, fr_aka_sim_ctx_t
      *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fr_aka_sim_ctx_t *ctx
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1009
    functionName: _test_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_free
    linkageType: ''
    returnType: int
    signature: int _test_ctx_free(UNUSED fr_aka_sim_ctx_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1015,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1017,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1018,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - k_encr
    - k_encr_len
    argTypes:
    - TALLOC_CTX*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1022
    functionName: test_ctx_init
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - fr_aka_sim_init
    - talloc_memdup
    - talloc_zero
    linkageType: ''
    returnType: fr_aka_sim_ctx_t
    signature: fr_aka_sim_ctx_t *test_ctx_init(TALLOC_CTX *ctx, uint8_t const *k_encr,
      size_t k_encr_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ctx_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1041
    functionName: decode_test_ctx_sim
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - test_ctx_init
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t       UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ctx_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1059
    functionName: decode_test_ctx_aka
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - test_ctx_init
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t       UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ctx_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/decode.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1074
    functionName: decode_test_ctx_sim_rfc4186
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/decode.c
    functionUses: 0
    functionsReached:
    - test_ctx_init
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx_sim_rfc4186(void **out, TALLOC_CTX *ctx, UNUSED
      fr_dict_t const *dict,\n\t\t\t\t       UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:42,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:43,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:44,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:70,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:85,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:90,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:101,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:138,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:139,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:140,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:141,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:143,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:158,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:165,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:170,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:170,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:184,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:184,1
    - Dst: fr_aka_sim_crypto_finalise_checkcode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:185,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:186,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:187,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:189,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:195,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:205,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:220,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:221,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:221,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:228,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:230,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:231,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:231,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:237,1
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:239,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:240,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:240,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:244,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:248,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:257,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:258,1
    - Dst: fr_aka_sim_encode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:259,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:267,1
    - Dst: fr_aka_sim_crypto_init_checkcode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:269,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:271,1
    - Dst: fr_aka_sim_crypto_update_checkcode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:275,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:277,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 107
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 287
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/module.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_crypto_finalise_checkcode
    - pair_update_reply
    - talloc_const_free
    - MEM
    - pair_append_reply
    - fr_aka_sim_crypto_update_checkcode
    - talloc_get_type_abort
    - log_request_pair_list
    - fr_pair_value_memdup_buffer_shallow
    - talloc_memdup
    - fr_assert
    - RDEBUG2
    - fr_aka_sim_crypto_init_checkcode
    - fr_pair_find_by_da
    - TALLOC_FREE
    - RPWDEBUG
    - talloc_free
    - pair_delete_reply
    - fr_aka_sim_encode
    - eap_session_get
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_encode(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:294,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:295,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:296,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:305,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:318,1
    - Dst: fr_aka_sim_decode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:325,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:335,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:348,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:352,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:353,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:354,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:357,1
    - Dst: REDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:359,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:363,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:371,1
    - Dst: fr_aka_sim_crypto_update_checkcode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:372,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:374,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:393,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:393,1
    - Dst: fr_aka_sim_crypto_finalise_checkcode
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:394,1
    - Dst: RPWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:395,1
    - Dst: pair_delete_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:396,1
    - Dst: fr_pair_value_memdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:398,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:409,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:409,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:410,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:410,1
    - Dst: fr_aka_sim_crypto_sign_packet
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:412,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:419,1
    - Dst: pair_delete_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:420,1
    - Dst: unlang_module_yield
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:438,1
    - Dst: virtual_server_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:440,1
    - Dst: unlang_interpet_frame_discard
      Src: /src/freeradius-server/src/lib/eap_aka_sim/module.c:441,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 292
    functionDepth: 10
    functionLinenumber: 292
    functionLinenumberEnd: 446
    functionName: eap_aka_sim_process
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/module.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_crypto_finalise_checkcode
    - fr_pair_dcursor_init
    - fr_pair_value_mem_alloc
    - REDEBUG2
    - unlang_module_yield
    - fr_aka_sim_decode
    - unlang_interpet_frame_discard
    - MEM
    - fr_pair_list_empty
    - pair_delete_control
    - RPEDEBUG
    - fr_aka_sim_crypto_update_checkcode
    - talloc_get_type_abort
    - RPEDEBUG2
    - log_request_pair_list
    - pair_append_control
    - fr_pair_value_memdup_buffer_shallow
    - RDEBUG2
    - fr_pair_find_by_da
    - TALLOC_FREE
    - RPWDEBUG
    - virtual_server_push
    - eap_session_get
    - fr_aka_sim_crypto_sign_packet
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_aka_sim_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:47,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:50,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:58,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:61,1
    - Dst: milenage_opc_generate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:65,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - request
    - out
    - opc_buff
    - list
    - ki
    argTypes:
    - request_t*
    - uint8_t**
    - uint8_t[]
    - fr_pair_list_t*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 75
    functionName: vector_opc_from_op
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - milenage_opc_generate
    - REDEBUG
    - fr_pair_find_by_da
    - RPEDEBUG
    linkageType: ''
    returnType: int
    signature: "int vector_opc_from_op(request_t *request, uint8_t const **out, uint8_t
      opc_buff[MILENAGE_OPC_SIZE],\n\t\t\t      fr_pair_list_t *list, uint8_t const
      ki[MILENAGE_KI_SIZE])"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:88,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:90,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:93,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:102,1
    - Dst: vector_opc_from_op
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:104,1
    - Dst: vector_opc_from_op
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:113,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:115,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:123,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:124,1
    - Dst: comp128v1
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:129,1
    - Dst: comp128v23
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:136,1
    - Dst: comp128v23
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:143,1
    - Dst: milenage_gsm_generate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:150,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:155,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:161,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:168,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:169,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 4
    argNames:
    - request
    - vps
    - idx
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - int
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 173
    functionName: vector_gsm_from_ki
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - memcpy
    - REDEBUG
    - milenage_gsm_generate
    - RPEDEBUG2
    - vector_opc_from_op
    - fr_rand
    - RDEBUG3
    - comp128v1
    - comp128v23
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int vector_gsm_from_ki(request_t *request, fr_pair_list_t *vps, int
      idx, fr_aka_sim_keys_t *keys)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:182,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:183,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:186,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:191,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:191,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:196,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:197,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:200,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:205,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:205,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:210,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:211,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:214,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:219,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:219,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:224,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:225,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - request
    - vps
    - idx
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - int
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 230
    functionName: vector_gsm_from_triplets
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - memcpy
    - REDEBUG
    - RDEBUG3
    - STRINGIFY
    linkageType: ''
    returnType: int
    signature: "int vector_gsm_from_triplets(request_t *request, fr_pair_list_t *vps,\n\t\t\t\t
      \   int idx, fr_aka_sim_keys_t *keys)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:247,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:248,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:251,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:259,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:260,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:263,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:271,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:272,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:275,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:281,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:282,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:290,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:291,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:294,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:299,1
    - Dst: milenage_gsm_from_umts
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:301,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - request
    - vps
    - idx
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - int
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 310
    functionName: vector_gsm_from_quintuplets
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - milenage_gsm_from_umts
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - memcpy
    - REDEBUG
    - RDEBUG3
    - STRINGIFY
    linkageType: ''
    returnType: int
    signature: "int vector_gsm_from_quintuplets(request_t *request, fr_pair_list_t
      *vps,\n\t\t\t\t       int idx, fr_aka_sim_keys_t *keys)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:333,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:334,1
    - Dst: vector_gsm_from_ki
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:339,1
    - Dst: vector_gsm_from_triplets
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:349,1
    - Dst: vector_gsm_from_quintuplets
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:359,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:369,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:374,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:376,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:380,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:382,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:384,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:386,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 5
    argNames:
    - request
    - vps
    - idx
    - keys
    - src
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - int
    - fr_aka_sim_keys_t*
    - fr_aka_sim_vector_src_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 392
    functionName: fr_aka_sim_vector_gsm_from_attrs
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - RHEXDUMP_INLINE2
    - REXDENT
    - RINDENT
    - vector_gsm_from_ki
    - fr_assert
    - RDEBUG2
    - RWDEBUG
    - vector_gsm_from_quintuplets
    - vector_gsm_from_triplets
    linkageType: ''
    returnType: int
    signature: "int fr_aka_sim_vector_gsm_from_attrs(request_t *request, fr_pair_list_t
      *vps,\n\t\t\t\t     int idx, fr_aka_sim_keys_t *keys, fr_aka_sim_vector_src_t
      *src)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:405,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:429,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:433,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:440,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:442,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:445,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:453,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:459,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:462,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:472,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:473,1
    - Dst: vector_opc_from_op
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:484,1
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:486,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:487,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:489,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:490,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:494,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:496,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:498,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:500,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:502,1
    - Dst: milenage_umts_generate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:504,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:514,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:523,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:524,1
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:539,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:541,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:543,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:544,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:548,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:551,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:554,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:557,1
    - Dst: ts_34_108_umts_generate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:559,1
    - Dst: RPEDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:568,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:577,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:583,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 91
    argCount: 3
    argNames:
    - request
    - vps
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 586
    functionName: vector_umts_from_ki
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - milenage_umts_generate
    - memcpy
    - uint48_to_buff
    - REDEBUG
    - RHEXDUMP_INLINE3
    - RINDENT
    - vector_opc_from_op
    - fr_rand
    - RPEDEBUG2
    - RDEBUG3
    - ts_34_108_umts_generate
    - fr_assert
    - REXDENT
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int vector_umts_from_ki(request_t *request, fr_pair_list_t *vps, fr_aka_sim_keys_t
      *keys)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:599,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:601,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:606,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:607,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:615,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:617,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:622,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:623,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:631,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:633,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:638,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:639,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:647,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:649,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:654,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:654,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:662,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:664,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:669,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:670,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:678,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:680,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:681,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:689,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:691,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:692,1
    - Dst: uint48_from_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:702,1
    - Dst: uint48_from_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:702,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:703,1
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:710,1
    - Dst: uint48_from_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:710,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:717,1
    - Dst: uint48_from_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:723,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:724,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:727,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:728,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:729,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:730,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:731,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 3
    argNames:
    - request
    - vps
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 737
    functionName: vector_umts_from_quintuplets
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - memcpy
    - uint48_to_buff
    - REDEBUG
    - uint48_from_buff
    - RDEBUG3
    - STRINGIFY
    - memset
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int vector_umts_from_quintuplets(request_t *request, fr_pair_list_t
      *vps, fr_aka_sim_keys_t *keys)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:758,1
    - Dst: vector_umts_from_ki
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:763,1
    - Dst: vector_umts_from_quintuplets
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:773,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:783,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:788,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:790,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:794,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:796,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:798,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:800,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:802,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:804,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - request
    - vps
    - keys
    - src
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_aka_sim_keys_t*
    - fr_aka_sim_vector_src_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 810
    functionName: fr_aka_sim_vector_umts_from_attrs
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - RHEXDUMP_INLINE2
    - REXDENT
    - RINDENT
    - fr_assert
    - RDEBUG2
    - RWDEBUG
    - vector_umts_from_quintuplets
    - vector_umts_from_ki
    linkageType: ''
    returnType: int
    signature: "int fr_aka_sim_vector_umts_from_attrs(request_t *request, fr_pair_list_t
      *vps,\n\t\t\t\t      fr_aka_sim_keys_t *keys, fr_aka_sim_vector_src_t *src)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:831,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:833,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:839,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:840,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:842,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:848,1
    - Dst: fr_aka_sim_crypto_keys_init_kdf_0_reauth
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - request
    - vps
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 822
    functionDepth: 3
    functionLinenumber: 822
    functionLinenumberEnd: 859
    functionName: fr_aka_sim_vector_gsm_umts_kdf_0_reauth_from_attrs
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da_nested
    - REDEBUG
    - RDEBUG2
    - fr_pair_find_by_da
    - fr_aka_sim_crypto_keys_init_kdf_0_reauth
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_vector_gsm_umts_kdf_0_reauth_from_attrs(request_t *request,
      fr_pair_list_t *vps, fr_aka_sim_keys_t *keys)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:880,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:882,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:888,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:889,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:891,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:897,1
    - Dst: fr_aka_sim_crypto_keys_init_umts_kdf_1_reauth
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - request
    - vps
    - keys
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 909
    functionName: fr_aka_sim_vector_umts_kdf_1_reauth_from_attrs
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da_nested
    - REDEBUG
    - RDEBUG2
    - fr_aka_sim_crypto_keys_init_umts_kdf_1_reauth
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_vector_umts_kdf_1_reauth_from_attrs(request_t *request,
      fr_pair_list_t *vps, fr_aka_sim_keys_t *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 920
    functionName: fr_aka_sim_vector_umts_reauth_clear
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fr_aka_sim_vector_umts_reauth_clear(fr_aka_sim_keys_t *keys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:937,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:942,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:943,1
    - Dst: milenage_auts
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:948,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:949,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/vector.c:953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - new_sqn
    - request
    - auts_vp
    - keys
    argTypes:
    - uint64_t*
    - request_t*
    - fr_pair_t*
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 956
    functionName: fr_aka_sim_umts_resync_from_attrs
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/vector.c
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - RDEBUG2
    - milenage_auts
    - REDEBUG
    linkageType: ''
    returnType: int
    signature: "int fr_aka_sim_umts_resync_from_attrs(uint64_t *new_sqn,\n\t\t\t\t
      \     request_t *request, fr_pair_t *auts_vp, fr_aka_sim_keys_t *keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_GUARD(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESUME(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: STATE_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_NO_RESULT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: STATE_GUARD_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_GUARD_NO_RESULT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: STATE_TRANSITION
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_TRANSITION(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: CALL_SECTION
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_SECTION(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:129,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:135,1
    - Dst: request_data_get
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mctx
    - request
    - fr_signal_t
    argTypes:
    - module_ctx_t*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: mod_signal
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - request_data_get
    - RDEBUG2
    - fr_cond_assert
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void mod_signal(module_ctx_t const *mctx, request_t *request, UNUSED
      fr_signal_t action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:198,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:199,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:200,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:202,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - request
    - eap_aka_sim_session
    - new_state
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    - module_method_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: state_set
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_table_str_by_value
    linkageType: ''
    returnType: void
    signature: "void state_set(request_t *request,\n\t\t\t\t\t\t    eap_aka_sim_session_t
      *eap_aka_sim_session,\n\t\t\t\t\t\t    module_method_t new_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _new_state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: STATE_SET
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SET(_new_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - eap_aka_sim_session
    argTypes:
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: after_authentication
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool after_authentication(eap_aka_sim_session_t *eap_aka_sim_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:225,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:227,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 231
    functionName: client_error_debug
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void client_error_debug(request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:247,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:252,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - request
    - eap_aka_sim_session
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 266
    functionName: identity_req_set_by_user
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_pair_delete
    - fr_pair_list_foreach
    linkageType: ''
    returnType: bool
    signature: bool identity_req_set_by_user(request_t *request, eap_aka_sim_session_t
      *eap_aka_sim_session)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_id_type
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:280,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:281,1
    - Dst: RPWDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:282,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:293,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:293,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:308,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:320,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:320,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:335,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - type_p
    - method_p
    - request
    - identity
    argTypes:
    - fr_aka_sim_id_type_t*
    - fr_aka_sim_method_hint_t*
    - request_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 341
    functionName: identity_hint_pairs_add
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RPWDEBUG2
    - fr_assert
    - talloc_strlen
    - pair_update_request
    - MEM
    - fr_aka_sim_id_type
    linkageType: ''
    returnType: void
    signature: "void identity_hint_pairs_add(fr_aka_sim_id_type_t *type_p, fr_aka_sim_method_hint_t
      *method_p,\n\t\t\t\t    request_t *request, char const *identity)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:376,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:377,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:379,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:394,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:394,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:408,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:408,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:423,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:423,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:428,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - request
    - eap_aka_sim_session
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 432
    functionName: identity_req_pairs_add
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_table_str_by_value
    - fr_assert
    - MEM
    - pair_append_reply
    linkageType: ''
    returnType: int
    signature: int identity_req_pairs_add(request_t *request, eap_aka_sim_session_t
      *eap_aka_sim_session)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:455,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:464,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:464,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:465,1
    - Dst: fr_aka_sim_id_type
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:497,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:499,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:499,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:500,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:502,1
    - Dst: fr_aka_sim_hint_byte
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:505,1
    - Dst: fr_aka_sim_hint_byte
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:506,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:507,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:508,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:509,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:518,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:518,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:519,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:521,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:522,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:523,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:524,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - request
    - in
    - eap_type
    - strip_hint
    argTypes:
    - request_t*
    - fr_pair_t*
    - eap_type_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 528
    functionName: identity_to_permanent_identity
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_pair_value_bstrndup
    - fr_aka_sim_hint_byte
    - RINDENT
    - pair_update_session_state
    - RDEBUG2
    - REXDENT
    - MEM
    - fr_aka_sim_id_type
    linkageType: ''
    returnType: int
    signature: int identity_to_permanent_identity(request_t *request, fr_pair_t *in,
      eap_type_t eap_type, bool strip_hint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:548,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:555,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:557,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:558,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:561,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:562,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:563,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 574
    functionName: checkcode_validate
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RHEXDUMP_INLINE2
    - REDEBUG
    - RDEBUG2
    - fr_pair_find_by_da
    - fr_pair_cmp
    linkageType: ''
    returnType: int
    signature: int checkcode_validate(request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:593,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:595,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:605,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:607,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:611,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:612,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:613,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:614,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 620
    functionName: mac_validate
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RHEXDUMP_INLINE2
    - REDEBUG
    - RDEBUG2
    - fr_pair_find_by_da
    - fr_pair_cmp
    linkageType: ''
    returnType: int
    signature: int mac_validate(request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:628,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:628,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:630,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:632,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - request
    - eap_aka_sim_session
    - identity
    - len
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: crypto_identity_set
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - talloc_free
    - RDEBUG3
    - fr_box_strvalue_len
    - MEM
    linkageType: ''
    returnType: void
    signature: "void crypto_identity_set(request_t *request, eap_aka_sim_session_t
      *eap_aka_sim_session,\n\t\t\t\tuint8_t const *identity, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:641,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:648,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:655,1
    - Dst: eap_aka_sim_session_t*::next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 658
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - eap_aka_sim_session_t*::next
    - pair_delete_reply
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(store_session)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:666,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:667,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:676,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:685,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:692,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:701,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:707,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:707,1
    - Dst: fr_rand_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:724,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:725,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:727,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:729,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:729,1
    - Dst: attr_session_id::attr_session_id
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:729,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:732,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:732,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:741,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:743,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:743,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:744,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:754,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:756,1
    - Dst: pair_update_session_state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:756,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:757,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:763,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:772,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:781,1
    - Dst: pair_append_session_state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:781,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:785,1
    - Dst: eap_aka_sim_session_t*::next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:792,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 793
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - talloc_bstrndup
    - attr_session_id::attr_session_id
    - fr_pair_value_memdup
    - RWDEBUG
    - MEM
    - talloc_get_type_abort
    - eap_aka_sim_session_t*::next
    - pair_update_session_state
    - fr_rand_str
    - CALL_SECTION
    - pair_delete_request
    - fr_pair_find_by_da_nested
    - fr_assert
    - talloc_strlen
    - pair_update_request
    - pair_append_session_state
    - pair_delete_reply
    - fr_value_box_bstrdup_buffer_shallow
    linkageType: ''
    returnType: void
    signature: void RESUME(store_pseudonym)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:813,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:817,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:817,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:823,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:832,1
    - Dst: resume_store_pseudonym
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:835,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:838,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:838,1
    - Dst: fr_rand_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:839,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:856,1
    - Dst: fr_value_box_bstrdup_buffer_shallow
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:857,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:859,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:859,1
    - Dst: attr_eap_aka_sim_next_pseudonym::attr_eap_aka_sim_next_pseudonym
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:859,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:862,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:862,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:864,1
    - Dst: resume_store_pseudonym
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:867,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - eap_aka_sim_session
    - next
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - eap_aka_sim_session_t*
    - module_method_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 868
    functionName: session_and_pseudonym_store
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_pair_find_by_da_nested
    - talloc_array
    - talloc_bstrndup
    - fr_cond_assert
    - talloc_get_type_abort
    - fr_value_box_bstrdup_buffer_shallow
    - resume_store_pseudonym
    - attr_eap_aka_sim_next_pseudonym::attr_eap_aka_sim_next_pseudonym
    - fr_rand_str
    - talloc_strlen
    - pair_update_request
    - RWDEBUG
    - CALL_SECTION
    - STATE_TRANSITION
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t session_and_pseudonym_store(unlang_result_t *p_result,
      module_ctx_t const *mctx,\n\t\t\t\t\t\t   request_t *request,\n\t\t\t\t\t\t
      \  eap_aka_sim_session_t *eap_aka_sim_session,\n\t\t\t\t\t\t   module_method_t
      next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:875,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:877,1
    - Dst: eap_aka_sim_session_t*::next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 880
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - eap_aka_sim_session_t*::next
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(clear_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:887,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:888,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:890,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:898,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:900,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:900,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:901,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:903,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:904,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:906,1
    - Dst: eap_aka_sim_session_t*::next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 910
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - TALLOC_FREE
    - talloc_get_type_abort
    - eap_aka_sim_session_t*::next
    - talloc_strlen
    - pair_update_request
    - CALL_SECTION
    - MEM
    - fr_value_box_memdup
    linkageType: ''
    returnType: void
    signature: void RESUME(clear_pseudonym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:929,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:931,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:931,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:943,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:943,1
    - Dst: fr_value_box_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:944,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:945,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:947,1
    - Dst: resume_clear_pseudonym
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - eap_aka_sim_session
    - next
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - eap_aka_sim_session_t*
    - module_method_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 951
    functionName: session_and_pseudonym_clear
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_cond_assert
    - talloc_get_type_abort
    - resume_clear_pseudonym
    - pair_update_request
    - CALL_SECTION
    - STATE_TRANSITION
    - MEM
    - fr_value_box_bstrdup_buffer
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t session_and_pseudonym_clear(unlang_result_t *p_result,
      module_ctx_t const *mctx,\n\t\t\t\t\t\t   request_t *request,\n\t\t\t\t\t\t
      \  eap_aka_sim_session_t *eap_aka_sim_session,\n\t\t\t\t\t\t   module_method_t
      next)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:966,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:966,1
    - Dst: fr_pair_list_foreach
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:970,1
    - Dst: fr_dict_attr_common_parent
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:971,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:972,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - request
    - eap_aka_sim_session
    - subtype
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 978
    functionName: common_reply
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_pair_delete
    - fr_dict_attr_common_parent
    - pair_update_reply
    - fr_pair_list_foreach
    - RWDEBUG
    - MEM
    linkageType: ''
    returnType: void
    signature: void common_reply(request_t *request, eap_aka_sim_session_t *eap_aka_sim_session,
      uint16_t subtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:993,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:993,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:994,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:994,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:998,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:998,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:999,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:999,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1002,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1002,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1003,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1003,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1008,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1008,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1009,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1009,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - request
    - eap_aka_sim_session
    - hmac_extra_request
    - hmac_extra_request_len
    - hmac_extra_response
    - hmac_extra_response_len
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 1013
    functionName: common_crypto_export
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - MEM
    - pair_update_control
    - fr_pair_value_memdup
    linkageType: ''
    returnType: void
    signature: "void common_crypto_export(request_t *request, eap_aka_sim_session_t
      *eap_aka_sim_session,\n\t\t     uint8_t const *hmac_extra_request, size_t hmac_extra_request_len,\n\t\t
      \    uint8_t const *hmac_extra_response, size_t hmac_extra_response_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1021,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1026,1
    - Dst: common_crypto_export
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1018
    functionDepth: 3
    functionLinenumber: 1018
    functionLinenumberEnd: 1057
    functionName: common_reauthentication_request_send
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - common_reply
    - talloc_get_type_abort
    - common_crypto_export
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t common_reauthentication_request_send(unlang_result_t
      *p_result,\n\t\t\t\t\t\t\t    module_ctx_t const *mctx, request_t *request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1064,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1070,1
    - Dst: common_crypto_export
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1062
    functionDepth: 3
    functionLinenumber: 1062
    functionLinenumberEnd: 1087
    functionName: aka_challenge_request_send
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - common_reply
    - talloc_get_type_abort
    - common_crypto_export
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t aka_challenge_request_send(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1094,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1102,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1104,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1106,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1108,1
    - Dst: common_crypto_export
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1092
    functionDepth: 3
    functionLinenumber: 1092
    functionLinenumberEnd: 1128
    functionName: sim_challenge_request_send
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - common_reply
    - common_crypto_export
    - talloc_get_type_abort
    - memcpy
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t sim_challenge_request_send(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1142,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1144,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - request
    - eap_aka_sim_session
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1184
    functionName: sim_start_selected_version_check
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_find_by_da
    linkageType: ''
    returnType: int
    signature: int sim_start_selected_version_check(request_t *request, eap_aka_sim_session_t
      *eap_aka_sim_session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1197,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1199,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1204,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - request
    - eap_aka_sim_session
    argTypes:
    - request_t*
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1212
    functionName: sim_start_nonce_mt_check
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - fr_pair_find_by_da
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sim_start_nonce_mt_check(request_t *request, eap_aka_sim_session_t
      *eap_aka_sim_session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1222,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1227
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - fr_cond_assert
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void STATE(eap_failure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1234,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1236,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1243
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RDEBUG2
    - fr_cond_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(send_eap_failure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1250,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1251,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1256,1
    - Dst: session_and_pseudonym_clear
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1263,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1268,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1271
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - session_and_pseudonym_clear
    - STATE_SET
    - talloc_get_type_abort
    - fr_pair_list_free
    - CALL_SECTION
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD(eap_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1279,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1287
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_common_failure_notification_ack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1297,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1298,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1301,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1306,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1307,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1311,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1295
    functionDepth: 2
    functionLinenumber: 1295
    functionLinenumberEnd: 1314
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - talloc_get_type_abort
    - RDEBUG2
    - RWDEBUG
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE(common_failure_notification)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1323,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1326,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1347,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1352,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1353,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1354,1
    - Dst: after_authentication
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1360,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1362,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1362,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1392,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1392,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1401,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1401,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1402,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1408,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1408,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1422,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1320
    functionDepth: 3
    functionLinenumber: 1320
    functionLinenumberEnd: 1425
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_append_reply
    - fr_cond_assert
    - fr_pair_append
    - talloc_get_type_abort
    - after_authentication
    - fr_pair_value_memdup
    - pair_update_reply
    - fr_pair_remove
    - fr_pair_list_free
    - common_reply
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(send_common_failure_notification)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1432,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1433,1
    - Dst: session_and_pseudonym_clear
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1440,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1451,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1457,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1460
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - session_and_pseudonym_clear
    - STATE_SET
    - talloc_get_type_abort
    - CALL_SECTION
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD(common_failure_notification)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1470,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1472,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1477
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - fr_assert
    - fr_cond_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void STATE(eap_success)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1488,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1491,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1505,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1507,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1508,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1526,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1528,1
    - Dst: eap_add_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1533
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - eap_add_reply
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - RWDEBUG
    linkageType: ''
    returnType: void
    signature: void RESUME(send_eap_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1540,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1541,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1543,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1546
    functionName: STATE_GUARD_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - CALL_SECTION
    - STATE_SET
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD_NO_RESULT(eap_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1554,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1564
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_common_success_notification_ack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1572,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1573,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1585
    functionName: STATE_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - CALL_SECTION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void STATE_NO_RESULT(common_success_notification)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1592,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1597,1
    - Dst: after_authentication
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1597,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1603,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1603,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1627,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1627,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1635,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1635,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1636,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1590
    functionDepth: 3
    functionLinenumber: 1590
    functionLinenumberEnd: 1644
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - talloc_get_type_abort
    - after_authentication
    - fr_pair_value_memdup
    - pair_update_reply
    - common_reply
    - MEM
    linkageType: ''
    returnType: void
    signature: void RESUME(send_common_success_notification)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1651,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1652,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1654,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1657
    functionName: STATE_GUARD_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - CALL_SECTION
    - STATE_SET
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD_NO_RESULT(common_success_notification)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1665,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1670
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_common_client_error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1681,1
    - Dst: mac_validate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1688,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1690,1
    - Dst: checkcode_validate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1696,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1704,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1705,1
    - Dst: fr_aka_sim_vector_umts_reauth_clear
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1708,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1711,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1722,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1723,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1726,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1728,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1729,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1679
    functionDepth: 3
    functionLinenumber: 1679
    functionLinenumberEnd: 1735
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - checkcode_validate
    - fr_pair_find_by_da_nested
    - RDEBUG
    - talloc_get_type_abort
    - mac_validate
    - fr_aka_sim_vector_umts_reauth_clear
    - RWDEBUG
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_common_reauthentication_response)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1747,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1748,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1751,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1753,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1769,1
    - Dst: client_error_debug
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1775,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1779,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1785,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1745
    functionDepth: 3
    functionLinenumber: 1745
    functionLinenumberEnd: 1791
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - client_error_debug
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE(common_reauthentication)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1815,1
    - Dst: crypto_identity_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1817,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1819,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1822,1
    - Dst: fr_aka_sim_vector_gsm_umts_kdf_0_reauth_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1831,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1843,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1845,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1847,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1851,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1854,1
    - Dst: fr_aka_sim_crypto_kdf_0_reauth
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1857,1
    - Dst: fr_aka_sim_vector_umts_kdf_1_reauth_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1862,1
    - Dst: fr_aka_sim_crypto_umts_kdf_1_reauth
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1866,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1868,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1873,1
    - Dst: fr_aka_sim_crypto_keys_log
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1877,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1885,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1896,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1896,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1897,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1903,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1903,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1910,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1910,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1911,1
    - Dst: session_and_pseudonym_store
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1919,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 4
    argNames:
    - p_result
    - mctx
    - request
    - eap_aka_sim_session
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1797
    functionDepth: 4
    functionLinenumber: 1797
    functionLinenumberEnd: 1921
    functionName: common_reauthentication_request_compose
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - crypto_identity_set
    - fr_aka_sim_vector_umts_kdf_1_reauth_from_attrs
    - fr_pair_delete_by_da
    - fr_aka_sim_crypto_keys_log
    - session_and_pseudonym_store
    - REDEBUG
    - MEM
    - fr_pair_value_memdup
    - pair_update_reply
    - RDEBUG2
    - fr_assert
    - fr_pair_list_free
    - fr_aka_sim_vector_gsm_umts_kdf_0_reauth_from_attrs
    - fr_aka_sim_crypto_umts_kdf_1_reauth
    - STATE_TRANSITION
    - fr_pair_find_by_da
    - fr_aka_sim_crypto_kdf_0_reauth
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t common_reauthentication_request_compose(unlang_result_t
      *p_result,\n\t\t\t\t\t\t\t       module_ctx_t const *mctx,\n\t\t\t\t\t\t\t       request_t
      *request,\n\t\t\t\t\t\t\t       eap_aka_sim_session_t *eap_aka_sim_session)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1928,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1945,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1947,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1948,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1951,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1958,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1961,1
    - Dst: common_reauthentication_request_compose
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1926
    functionDepth: 5
    functionLinenumber: 1926
    functionLinenumberEnd: 1979
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - fr_pair_list_free
    - common_reauthentication_request_compose
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void RESUME(send_common_reauthentication_request)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1986,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1987,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1989,1
    - Dst: eap_aka_sim_session_t*::next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:1997,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2011,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2013,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2014,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2016,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2019,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2021,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 1984
    functionDepth: 1
    functionLinenumber: 1984
    functionLinenumberEnd: 2041
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - eap_aka_sim_session_t*::next
    - RDEBUG2
    - fr_pair_list_free
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void RESUME(load_pseudonym)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2048,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2049,1
    - Dst: pair_delete_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2051,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2074,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2076,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2077,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2079,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2083,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2085,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2095,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2107
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_delete_request
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - RDEBUG2
    - fr_pair_list_free
    - CALL_SECTION
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void RESUME(load_session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2114,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2115,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2118,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2125,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2125,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2126,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2112
    functionDepth: 2
    functionLinenumber: 2112
    functionLinenumberEnd: 2129
    functionName: STATE_GUARD_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_SET
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - pair_update_request
    - CALL_SECTION
    - MEM
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD_NO_RESULT(common_reauthentication)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2143,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2144,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2159,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2166,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2168,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2141
    functionDepth: 2
    functionLinenumber: 2141
    functionLinenumberEnd: 2181
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - STATE_TRANSITION
    - fr_pair_find_by_da
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_aka_synchronization_failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2189,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2197
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_aka_authentication_reject)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2208,1
    - Dst: mac_validate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2216,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2218,1
    - Dst: checkcode_validate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2224,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2226,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2228,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2233,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2238,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2239,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2240,1
    - Dst: RHEXDUMP_INLINE2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2241,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2246,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2258,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2259,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2262,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2264,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2265,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2206
    functionDepth: 3
    functionLinenumber: 2206
    functionLinenumberEnd: 2269
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - checkcode_validate
    - RHEXDUMP_INLINE2
    - RDEBUG
    - REDEBUG
    - talloc_get_type_abort
    - RDEBUG2
    - mac_validate
    - fr_digest_cmp
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_aka_challenge_response)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2284,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2285,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2289,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2291,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2297,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2304,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2312,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2314,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2316,1
    - Dst: fr_aka_sim_umts_resync_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2319,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2326,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2326,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2329,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2329,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2330,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2333,1
    - Dst: pair_append_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2333,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2334,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2346,1
    - Dst: client_error_debug
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2353,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2357,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2282
    functionDepth: 3
    functionLinenumber: 2282
    functionLinenumberEnd: 2369
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - MEM
    - fr_pair_value_memdup
    - fr_aka_sim_umts_resync_from_attrs
    - pair_append_control
    - client_error_debug
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE(aka_challenge)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2376,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2391,1
    - Dst: crypto_identity_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2393,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2395,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2398,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2405,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2407,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2408,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2413,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2415,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2422,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2422,1
    - Dst: fr_aka_sim_vector_umts_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2430,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2432,1
    - Dst: pair_delete_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2439,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2447,1
    - Dst: fr_aka_sim_crypto_umts_kdf_0
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2451,1
    - Dst: fr_aka_sim_crypto_umts_kdf_1
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2456,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2458,1
    - Dst: fr_aka_sim_crypto_keys_log
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2461,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2469,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2477,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2478,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2484,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2484,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2485,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2491,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2491,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2492,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2498,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2498,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2499,1
    - Dst: session_and_pseudonym_store
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2507,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2374
    functionDepth: 7
    functionLinenumber: 2374
    functionLinenumberEnd: 2508
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - crypto_identity_set
    - session_and_pseudonym_store
    - fr_aka_sim_vector_umts_from_attrs
    - REDEBUG
    - fr_pair_value_memdup
    - pair_update_reply
    - fr_aka_sim_crypto_umts_kdf_1
    - MEM
    - pair_delete_control
    - talloc_get_type_abort
    - fr_pair_delete_by_da
    - talloc_memdup
    - RDEBUG2
    - fr_assert
    - fr_pair_find_by_da
    - fr_aka_sim_crypto_keys_log
    - talloc_free
    - pair_delete_reply
    - STATE_TRANSITION
    - fr_aka_sim_crypto_umts_kdf_0
    linkageType: ''
    returnType: void
    signature: void RESUME(send_aka_challenge_request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2515,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2516,1
    - Dst: session_and_pseudonym_clear
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2525,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2530,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2544,1
    - Dst: pair_update_control
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2544,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2545,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2552,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2553,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2553,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2554,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2568,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2569,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2569,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2573,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2513
    functionDepth: 2
    functionLinenumber: 2513
    functionLinenumberEnd: 2574
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - pair_update_control
    - session_and_pseudonym_clear
    - pair_append_reply
    - STATE_SET
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - fr_pair_value_bstrdup_buffer
    - CALL_SECTION
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD(aka_challenge)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2585,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2591,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2593,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2595,1
    - Dst: mac_validate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2600,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2600,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2610,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2611,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2614,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2616,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2617,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2583
    functionDepth: 3
    functionLinenumber: 2583
    functionLinenumberEnd: 2621
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - memcpy
    - talloc_get_type_abort
    - mac_validate
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_sim_challenge_response)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2633,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2634,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2637,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2639,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2645,1
    - Dst: client_error_debug
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2651,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2655,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2662,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2631
    functionDepth: 3
    functionLinenumber: 2631
    functionLinenumberEnd: 2668
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - REDEBUG
    - talloc_get_type_abort
    - client_error_debug
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE(sim_challenge)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2675,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2691,1
    - Dst: crypto_identity_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2693,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2695,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2698,1
    - Dst: fr_aka_sim_vector_gsm_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2699,1
    - Dst: fr_aka_sim_vector_gsm_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2701,1
    - Dst: fr_aka_sim_vector_gsm_from_attrs
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2703,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2705,1
    - Dst: fr_aka_sim_crypto_gsm_kdf_0
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2709,1
    - Dst: fr_aka_sim_crypto_keys_log
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2711,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2719,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2725,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2725,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2726,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2728,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2728,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2729,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2731,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2731,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2732,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2738,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2738,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2739,1
    - Dst: session_and_pseudonym_store
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2673
    functionDepth: 7
    functionLinenumber: 2673
    functionLinenumberEnd: 2748
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - crypto_identity_set
    - fr_aka_sim_crypto_keys_log
    - fr_pair_delete_by_da
    - session_and_pseudonym_store
    - fr_aka_sim_crypto_gsm_kdf_0
    - REDEBUG
    - pair_append_reply
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - fr_aka_sim_vector_gsm_from_attrs
    - pair_update_reply
    - RDEBUG2
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(send_sim_challenge_request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2755,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2756,1
    - Dst: session_and_pseudonym_clear
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2765,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2770,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2776,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2777,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2777,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2781,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2753
    functionDepth: 2
    functionLinenumber: 2753
    functionLinenumberEnd: 2782
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - session_and_pseudonym_clear
    - pair_append_reply
    - STATE_SET
    - talloc_get_type_abort
    - CALL_SECTION
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD(sim_challenge)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2791,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2795,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2799,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2789
    functionDepth: 0
    functionLinenumber: 2789
    functionLinenumberEnd: 2807
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD(common_challenge)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2823,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2824,1
    - Dst: identity_req_set_by_user
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2838,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2852,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2856,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2857,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2860,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2861,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2862,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2865,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2872,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2875,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2884,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2890,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2821
    functionDepth: 3
    functionLinenumber: 2821
    functionLinenumberEnd: 2891
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - identity_req_set_by_user
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG2
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_aka_identity_response)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2908,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2909,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2912,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2914,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2927,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2937,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2938,1
    - Dst: identity_hint_pairs_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2945,1
    - Dst: identity_to_permanent_identity
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2947,1
    - Dst: crypto_identity_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2955,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2958,1
    - Dst: client_error_debug
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2978,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2980,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2987,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:2989,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2991
      start: 2906
    functionDepth: 3
    functionLinenumber: 2906
    functionLinenumberEnd: 2991
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - crypto_identity_set
    - unlang_module_yield_to_section
    - REDEBUG
    - identity_hint_pairs_add
    - talloc_get_type_abort
    - identity_to_permanent_identity
    - client_error_debug
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void STATE(aka_identity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3015,1
    - Dst: identity_req_set_by_user
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3025,1
    - Dst: identity_req_pairs_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3036,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3037,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3013
    functionDepth: 3
    functionLinenumber: 3013
    functionLinenumberEnd: 3047
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - identity_req_set_by_user
    - talloc_get_type_abort
    - identity_req_pairs_add
    - common_reply
    - STATE_TRANSITION
    linkageType: ''
    returnType: void
    signature: void RESUME(send_aka_identity_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3054,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3055,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3057,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3052
    functionDepth: 3
    functionLinenumber: 3052
    functionLinenumberEnd: 3074
    functionName: STATE_GUARD_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_SET
    - talloc_get_type_abort
    - unlang_module_yield_to_section
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD_NO_RESULT(aka_identity)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3092,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3093,1
    - Dst: identity_req_set_by_user
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3106,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3123,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3127,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3129,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3131,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3132,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3133,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3136,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3143,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3153,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3154,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3155,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3165,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3166,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3167,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3170,1
    - Dst: sim_start_selected_version_check
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3178,1
    - Dst: sim_start_nonce_mt_check
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3179,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3182,1
    - Dst: sim_start_selected_version_check
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3191,1
    - Dst: sim_start_nonce_mt_check
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3192,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3199,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3090
    functionDepth: 3
    functionLinenumber: 3090
    functionLinenumberEnd: 3200
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - sim_start_nonce_mt_check
    - identity_req_set_by_user
    - REDEBUG
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_assert
    - RDEBUG2
    - sim_start_selected_version_check
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_sim_start_response)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3217,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3218,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3221,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3223,1
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3229,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3233,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3248,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3249,1
    - Dst: identity_hint_pairs_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3257,1
    - Dst: identity_to_permanent_identity
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3259,1
    - Dst: crypto_identity_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3269,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3280,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3280,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3281,1
    - Dst: identity_hint_pairs_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3287,1
    - Dst: identity_to_permanent_identity
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3290,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3296,1
    - Dst: client_error_debug
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3316,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3318,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3325,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3215
    functionDepth: 3
    functionLinenumber: 3215
    functionLinenumberEnd: 3329
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - crypto_identity_set
    - unlang_module_yield_to_section
    - REDEBUG
    - identity_hint_pairs_add
    - talloc_get_type_abort
    - MEM
    - identity_to_permanent_identity
    - eap_session_get
    - fr_pair_value_bstrdup_buffer
    - client_error_debug
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    - pair_append_request
    linkageType: ''
    returnType: void
    signature: void STATE(sim_start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3354,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3368,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3369,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3369,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3377,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3379,1
    - Dst: identity_req_set_by_user
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3398,1
    - Dst: identity_req_pairs_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3409,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3410,1
    - Dst: common_reply
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3352
    functionDepth: 3
    functionLinenumber: 3352
    functionLinenumberEnd: 3417
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_next
    - fr_pair_find_by_da
    - STATE_TRANSITION
    - identity_req_set_by_user
    - talloc_get_type_abort
    - identity_req_pairs_add
    - fr_pair_list_head
    - common_reply
    - MEM
    - pair_append_reply
    linkageType: ''
    returnType: void
    signature: void RESUME(send_sim_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3424,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3425,1
    - Dst: STATE_SET
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3427,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3439
      start: 3422
    functionDepth: 3
    functionLinenumber: 3422
    functionLinenumberEnd: 3439
    functionName: STATE_GUARD_NO_RESULT
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - STATE_SET
    - talloc_get_type_abort
    - unlang_module_yield_to_section
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD_NO_RESULT(sim_start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3448,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3452,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3456,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3464
      start: 3446
    functionDepth: 0
    functionLinenumber: 3446
    functionLinenumberEnd: 3464
    functionName: STATE_GUARD
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - STATE_TRANSITION
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void STATE_GUARD(common_identity)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3477,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3478,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3489,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3490,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3492,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3508,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3513,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3517,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3522,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3526,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3532,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3536,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3564,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3565,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3566,1
    - Dst: identity_req_set_by_user
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3575,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3578,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3579,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3580,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3584,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3585,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3595,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3609,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3615,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3618,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3627,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3634,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3635
      start: 3475
    functionDepth: 3
    functionLinenumber: 3475
    functionLinenumberEnd: 3635
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - identity_req_set_by_user
    - talloc_get_type_abort
    - fr_table_str_by_value
    - EVP_sha256
    - RDEBUG2
    - fr_assert
    - EVP_sha1
    - RWDEBUG
    - CALL_SECTION
    - STATE_TRANSITION
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_common_identity_response)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eap_session_get
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3644,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3645,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3646,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3656,1
    - Dst: STATE_TRANSITION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3657,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3664,1
    - Dst: pair_append_request
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3664,1
    - Dst: fr_pair_value_bstrdup_buffer
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3665,1
    - Dst: identity_hint_pairs_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3671,1
    - Dst: identity_to_permanent_identity
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3673,1
    - Dst: crypto_identity_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3681,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3683,1
    - Dst: CALL_SECTION
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3642
    functionDepth: 3
    functionLinenumber: 3642
    functionLinenumberEnd: 3686
    functionName: STATE
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 6
    functionsReached:
    - crypto_identity_set
    - REDEBUG
    - identity_hint_pairs_add
    - talloc_get_type_abort
    - fr_pair_value_bstrdup_buffer
    - eap_session_get
    - identity_to_permanent_identity
    - CALL_SECTION
    - STATE_TRANSITION
    - MEM
    - pair_append_request
    - talloc_strlen
    linkageType: ''
    returnType: void
    signature: void STATE(init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eap_aka_sim_session
    argTypes:
    - eap_aka_sim_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3697
      start: 3693
    functionDepth: 0
    functionLinenumber: 3693
    functionLinenumberEnd: 3697
    functionName: _eap_aka_sim_session_free
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int _eap_aka_sim_session_free(eap_aka_sim_session_t *eap_aka_sim_session)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3704,1
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3705,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3719,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3719,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3720,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3731,1
    - Dst: request_data_add
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3731,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3733,1
    - Dst: state_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3740,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3749,1
    - Dst: eap_aka_sim_session_t*::state
      Src: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c:3751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3702
    functionDepth: 2
    functionLinenumber: 3702
    functionLinenumberEnd: 3752
    functionName: eap_aka_sim_state_machine_process
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/state_machine.c
    functionUses: 0
    functionsReached:
    - request_data_reference
    - unlikely
    - RPEDEBUG
    - talloc_set_destructor
    - fr_cond_assert
    - eap_aka_sim_session_t*::state
    - talloc_get_type_abort
    - request_data_add
    - state_init
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t eap_aka_sim_state_machine_process(unlang_result_t *p_result,
      module_ctx_t const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:76,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:78,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: fr_eap_aka_sim_next_encodable
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - PAIR_VERIFY
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_eap_aka_sim_next_encodable(fr_dcursor_t *cursor, void *current,
      UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:112,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:122,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:123,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:124,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:125,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:127,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:129,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:130,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:132,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:132,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:132,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - dbuff
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 137
    functionName: encode_iv
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - memcpy
    - fr_dbuff_start
    - fr_rand
    - fr_dbuff_used
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_iv(fr_dbuff_t *dbuff, void *encode_ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:164,1
    - Dst: EVP_aes_128_cbc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:168,1
    - Dst: EVP_CIPHER_block_size
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:169,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:176,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:177,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:187,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:187,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:188,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:190,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:191,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:198,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:199,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:200,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:200,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:203,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:204,1
    - Dst: aka_sim_crypto_cipher_ctx
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:208,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:209,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:209,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:211,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:213,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:217,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:219,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:223,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:223,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:234,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:235,1
    - Dst: EVP_EncryptUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:235,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:235,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:236,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:241,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:241,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:242,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:250,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:251,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:256,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:261,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:263,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:264,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:267,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 4
    argNames:
    - dbuff
    - in
    - inlen
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 268
    functionName: encode_encrypted_value
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - talloc_array
    - fr_strerror_printf
    - fr_dbuff_in_memcpy
    - fr_dbuff_start
    - FR_DBUFF
    - unlikely
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_advance
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_set_padding
    - EVP_EncryptInit_ex
    - FR_DBUFF_MEMSET_RETURN
    - FR_DBUFF_IN_BYTES_RETURN
    - aka_sim_crypto_cipher_ctx
    - fr_dbuff_set_to_start
    - EVP_aes_128_cbc
    - EVP_EncryptUpdate
    - fr_dbuff_set
    - talloc_free
    - EVP_CIPHER_block_size
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - EVP_EncryptFinal_ex
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_encrypted_value(fr_dbuff_t *dbuff,\n\t\t\t     \t      uint8_t
      const *in, size_t inlen, void *encode_ctx)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:281,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:282,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:286,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:287,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:289,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:290,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:294,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:295,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:301,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:302,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:327,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:332,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:352,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:357,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:358,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:377,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:378,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:405,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:411,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:412,1
    - Dst: fr_aka_sim_octets_prefix_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:420,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:425,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:434,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:438,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:443,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:449,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:454,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:455,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:471,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:488,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:497,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:498,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:500,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 501
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 3
    functionsReached:
    - fr_dcursor_current
    - unlikely
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - memcpy
    - fr_dcursor_next
    - fr_strerror_printf
    - ROUND_UP
    - fr_value_box_to_network
    - fr_proto_da_stack_build
    - fr_aka_sim_octets_prefix_len
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_MEMSET_RETURN
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_type_to_str
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_value(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:528,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:529,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:531,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:533,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:534,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:536,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:538,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:551,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:555,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:559,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:563,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:572,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:574,1
    - Dst: ROUND_UP_POW2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:580,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:581,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:583,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 584
    functionName: encode_array
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_extend_lowat
    - fr_strerror_printf
    - fr_dbuff_advance
    - fr_assert
    - encode_value
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - FR_DBUFF_MEMSET_RETURN
    - ROUND_UP_POW2
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_array(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:598,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:599,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:601,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:605,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:606,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:610,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:612,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:629,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:630,1
    - Dst: encode_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:633,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:633,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:636,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:636,1
    - Dst: ROUND_UP_POW2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:644,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:644,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:644,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:646,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:649,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:650,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:652,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:652,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:652,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:654,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 655
    functionName: encode_rfc
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - encode_array
    - fr_strerror_printf
    - fr_dbuff_start
    - FR_DBUFF_MAX_BIND_CURRENT
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - encode_value
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - fr_dict_vendor_num_by_da
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_type_to_str
    - ROUND_UP_POW2
    - FR_DBUFF_MEMSET_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_rfc(fr_dbuff_t *dbuff, fr_da_stack_t *da_stack, unsigned
      int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:662,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:665,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:668,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:670,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:671,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:674,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:685,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:687,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:697,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:697,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:709,1
    - Dst: fr_aka_sim_flag_encrypted
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:716,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:717,1
    - Dst: encode_encrypted_value
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:719,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:719,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:732,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:733,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:736,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:736,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:736,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:738,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 739
    functionName: encode_tlv_internal
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - encode_tlv
    - fr_dbuff_current
    - encode_encrypted_value
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_marker
    - encode_rfc
    - fr_dbuff_start
    - fr_aka_sim_flag_encrypted
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - fr_dbuff_advance
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv_internal(fr_dbuff_t *dbuff,\n\t\t\t\t\t  fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\t\t  fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:749,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:753,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:753,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:754,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:757,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:758,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:765,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:766,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:767,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:771,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:773,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:776,1
    - Dst: fr_aka_sim_flag_encrypted
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:784,1
    - Dst: encode_iv
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:785,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:788,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:790,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:791,1
    - Dst: encode_tlv_internal
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:794,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:794,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:798,1
    - Dst: ROUND_UP_POW2
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:805,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:806,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:808,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:808,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:808,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:810,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 741
    functionDepth: 6
    functionLinenumber: 741
    functionLinenumberEnd: 811
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 6
    functionsReached:
    - encode_iv
    - fr_dcursor_current
    - fr_strerror_printf
    - fr_dbuff_start
    - FR_DBUFF_MAX_BIND_CURRENT
    - fr_aka_sim_flag_encrypted
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - fr_type_to_str
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - fr_pair_dcursor_child_iter_init
    - fr_dbuff_advance
    - fr_dbuff_used
    - FR_DBUFF_IN_BYTES_RETURN
    - encode_tlv_internal
    - fr_assert
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - ROUND_UP_POW2
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:816,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:822,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:825,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:828,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:831,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:837,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:849,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:850,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:853,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:853,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:856,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:856,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:864,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:865,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 870
    functionName: fr_aka_sim_encode_pair
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - encode_tlv
    - fr_dcursor_next
    - fr_strerror_printf
    - fr_dbuff_marker
    - encode_rfc
    - FR_DBUFF_MAX_BIND_CURRENT
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_aka_sim_encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      void *encode_ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:894,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:894,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:896,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:904,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:905,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:906,1
    - Dst: fr_pair_find_by_child_num_idx
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:912,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:912,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:917,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:918,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:918,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:927,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:931,1
    - Dst: fr_dbuff_init_talloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:933,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:935,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:941,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:942,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:943,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:949,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:950,1
    - Dst: fr_aka_sim_encode_pair
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:951,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:954,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:954,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:957,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:957,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:960,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:961,1
    - Dst: fr_aka_sim_crypto_sign_packet
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:967,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:967,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:972,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:972,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:974,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:979,1
    - Dst: talloc_realloc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:982,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:988,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 3
    argNames:
    - request
    - to_encode
    - encode_ctx
    argTypes:
    - request_t*
    - fr_pair_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 872
    functionDepth: 4
    functionLinenumber: 872
    functionLinenumberEnd: 989
    functionName: fr_aka_sim_encode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_buff
    - talloc_array
    - talloc_realloc
    - REDEBUG
    - fr_dbuff_marker
    - fr_pair_list_sort
    - MEM
    - fr_aka_sim_encode_pair
    - fr_pair_find_by_child_num_idx
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - fr_dbuff_used
    - FR_DBUFF_MEMSET_RETURN
    - fr_dcursor_head
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_dbuff_current
    - fr_pair_dcursor_iter_init
    - fr_assert
    - talloc_array_length
    - fr_dbuff_init_talloc
    - talloc_free
    - fr_aka_sim_crypto_sign_packet
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_aka_sim_encode(request_t *request, fr_pair_list_t *to_encode,
      void *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fr_aka_sim_ctx_t *ctx
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 999
    functionName: _test_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_free
    linkageType: ''
    returnType: int
    signature: int _test_ctx_free(UNUSED fr_aka_sim_ctx_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1005,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1006,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1007,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1010,1
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1012,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - k_encr
    - k_encr_len
    argTypes:
    - TALLOC_CTX*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1018
    functionName: test_ctx_init
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 3
    functionsReached:
    - talloc_memdup
    - talloc_set_destructor
    - talloc_free
    - talloc_zero
    - talloc_zero_array
    - fr_aka_sim_init
    linkageType: ''
    returnType: fr_aka_sim_ctx_t
    signature: fr_aka_sim_ctx_t *test_ctx_init(TALLOC_CTX *ctx, uint8_t const *k_encr,
      size_t k_encr_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ctx_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1038
    functionName: encode_test_ctx_sim
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - test_ctx_init
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t       UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ctx_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1055
    functionName: encode_test_ctx_aka
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - test_ctx_init
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t       UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ctx_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/encode.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1070
    functionName: encode_test_ctx_sim_rfc4186
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/encode.c
    functionUses: 0
    functionsReached:
    - test_ctx_init
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx_sim_rfc4186(void **out, TALLOC_CTX *ctx, UNUSED
      fr_dict_t const *dict,\n\t\t\t\t       UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:230,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:232,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:235,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:237,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: dict_flag_encrypt
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.c
    functionUses: 0
    functionsReached:
    - L
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_table_value_by_str
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int dict_flag_encrypt(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - vp
    argTypes:
    - fr_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 271
    functionName: fr_aka_sim_attr_len
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    linkageType: ''
    returnType: size_t
    signature: size_t fr_aka_sim_attr_len(fr_pair_t const *vp)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: fr_aka_sim_octets_prefix_len
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fr_aka_sim_octets_prefix_len(fr_dict_attr_t const *da)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:291,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:292,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:295,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:296,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:297,1
    - Dst: fr_dict_enum_autoload
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:300,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:301,1
    - Dst: fr_openssl_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:305,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 284
    functionDepth: 8
    functionLinenumber: 284
    functionLinenumberEnd: 313
    functionName: fr_aka_sim_init
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.c
    functionUses: 5
    functionsReached:
    - fr_dict_attr_autoload
    - fr_openssl_init
    - fr_dict_enum_autoload
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:319,1
    - Dst: aka_sim_crypto_cipher_ctx_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:321,1
    - Dst: fr_openssl_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/base.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: fr_aka_sim_free
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/base.c
    functionUses: 5
    functionsReached:
    - fr_openssl_free
    - aka_sim_crypto_cipher_ctx_free
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_aka_sim_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: _evp_cipher_ctx_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: int _evp_cipher_ctx_free_on_exit(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:71,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:74,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:74,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:75,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: aka_sim_crypto_cipher_ctx
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_atexit_thread_local
    - EVP_CIPHER_CTX_reset
    - EVP_CIPHER_CTX_new
    - MEM
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *aka_sim_crypto_cipher_ctx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_trigger
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: aka_sim_crypto_cipher_ctx_free
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - fr_atexit_trigger
    linkageType: ''
    returnType: void
    signature: void aka_sim_crypto_cipher_ctx_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - checkcode
    argTypes:
    - fr_aka_sim_checkcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: _fr_aka_sim_crypto_free_checkcode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: int
    signature: int _fr_aka_sim_crypto_free_checkcode(fr_aka_sim_checkcode_t *checkcode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:115,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:117,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:121,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:123,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:125,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:128,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:129,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - checkcode
    - md
    argTypes:
    - TALLOC_CTX*
    - fr_aka_sim_checkcode_t**
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 136
    functionName: fr_aka_sim_crypto_init_checkcode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - TALLOC_FREE
    - talloc_set_destructor
    - EVP_DigestInit_ex
    - EVP_MD_CTX_create
    - fr_tls_strerror_printf
    - talloc_zero
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_init_checkcode(TALLOC_CTX *ctx, fr_aka_sim_checkcode_t
      **checkcode, EVP_MD const *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:158,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:159,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:162,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:167,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:168,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:172,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:177,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - checkcode
    - eap_packet
    argTypes:
    - fr_aka_sim_checkcode_t*
    - eap_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 183
    functionName: fr_aka_sim_crypto_update_checkcode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    - FR_PROTO_HEX_DUMP
    - memcpy
    - fr_tls_strerror_printf
    - htons
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_update_checkcode(fr_aka_sim_checkcode_t *checkcode,
      eap_packet_t *eap_packet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_size
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:200,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:201,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:201,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:202,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - out
    - checkcode
    argTypes:
    - TALLOC_CTX*
    - uint8_t**
    - fr_aka_sim_checkcode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: fr_aka_sim_crypto_finalise_checkcode
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 2
    functionsReached:
    - talloc_array
    - fr_tls_strerror_printf
    - EVP_DigestFinal_ex
    - MEM
    - EVP_MD_CTX_size
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_aka_sim_crypto_finalise_checkcode(TALLOC_CTX *ctx, uint8_t
      **out, fr_aka_sim_checkcode_t *checkcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:231,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:238,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:243,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - out
    - data
    - data_len
    argTypes:
    - uint8_t**
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 258
    functionName: fr_aka_sim_find_mac
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_find_mac(uint8_t const **out, uint8_t *data, size_t
      data_len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:305,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:306,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:310,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:311,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:315,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:316,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:320,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:321,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:323,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:325,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:326,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:330,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:332,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:336,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:337,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:348,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:349,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:352,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:353,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:354,1
    - Dst: fr_aka_sim_find_mac
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:363,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:369,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:376,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:377,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:383,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:388,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:400,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:406,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:411,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:412,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:424,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:425,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:426,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:431,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:432,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:436,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:441,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:443,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:444,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 100
    argCount: 8
    argNames:
    - out
    - eap_packet
    - zero_mac
    - md
    - key
    - key_len
    - hmac_extra
    - hmac_extra_len
    argTypes:
    - uint8_t[]
    - eap_packet_t*
    - bool
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 447
    functionName: fr_aka_sim_crypto_sign_packet
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 2
    functionsReached:
    - unlikely
    - EVP_MD_CTX_destroy
    - FR_PROTO_HEX_DUMP
    - EVP_DigestSignFinal
    - memcpy
    - EVP_PKEY_new_mac_key
    - EVP_DigestSignInit
    - EVP_MD_CTX_create
    - EVP_PKEY_free
    - fr_tls_strerror_printf
    - fr_assert
    - fr_aka_sim_find_mac
    - fr_strerror_const
    - EVP_DigestSignUpdate
    - htons
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_aka_sim_crypto_sign_packet(uint8_t out[static AKA_SIM_MAC_DIGEST_SIZE],\n\t\t\t\t
      \     eap_packet_t *eap_packet, bool zero_mac,\n\t\t\t\t      EVP_MD const *md,
      uint8_t const *key, size_t const key_len,\n\t\t\t\t      uint8_t const *hmac_extra,
      size_t const hmac_extra_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:475,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:481,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:488,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:491,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:494,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:497,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:500,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:503,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:506,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:509,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:514,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:515,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:516,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:519,1
    - Dst: fr_aka_sim_fips186_2prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:525,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:531,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:533,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:535,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:538,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:540,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:542,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:544,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 548
    functionName: fr_aka_sim_crypto_gsm_kdf_0
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - memcpy
    - fr_sha1_init
    - fr_cond_assert
    - fr_sha1_final
    - fr_sha1_update
    - fr_aka_sim_fips186_2prf
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_gsm_kdf_0(fr_aka_sim_keys_t *keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:577,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:583,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:588,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:591,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:594,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:600,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:601,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:602,1
    - Dst: fr_aka_sim_fips186_2prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:609,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:614,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:617,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:621,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 627
    functionName: fr_aka_sim_crypto_umts_kdf_0
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - memcpy
    - fr_sha1_init
    - fr_cond_assert
    - fr_sha1_final
    - fr_sha1_update
    - fr_aka_sim_fips186_2prf
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_umts_kdf_0(fr_aka_sim_keys_t *keys)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:667,1
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:669,1
    - Dst: uint48_from_buff
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:669,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:675,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:681,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:682,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:683,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:684,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:690,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:693,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:694,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:697,1
    - Dst: htons
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:700,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:701,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:706,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:712,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:714,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:716,1
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:718,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:720,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:722,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:723,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:727,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:729,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:733,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:733,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:734,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:738,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:739,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:741,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:742,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:744,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:745,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:747,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:748,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 751
    functionName: ck_ik_prime_derive
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignFinal
    - EVP_MD_CTX_destroy
    - FR_PROTO_HEX_DUMP
    - memcpy
    - uint48_to_buff
    - EVP_PKEY_new_mac_key
    - fr_cond_assert
    - uint48_from_buff
    - EVP_DigestSignInit
    - EVP_MD_CTX_create
    - EVP_PKEY_free
    - fr_tls_strerror_printf
    - EVP_sha256
    - EVP_DigestSignUpdate
    - htons
    linkageType: ''
    returnType: int
    signature: int ck_ik_prime_derive(fr_aka_sim_keys_t *keys)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_mac_key
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:787,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:789,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:791,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:792,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:796,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:798,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:802,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:802,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:803,1
    - Dst: EVP_DigestSignInit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:813,1
    - Dst: EVP_sha256
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:813,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:814,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:815,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:816,1
    - Dst: EVP_DigestSignFinal
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:817,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:822,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:826,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:827,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 6
    argNames:
    - out
    - outlen
    - key
    - key_len
    - in
    - in_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 830
    functionName: aka_prime_prf
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignFinal
    - EVP_MD_CTX_destroy
    - memcpy
    - EVP_PKEY_new_mac_key
    - EVP_DigestSignInit
    - EVP_MD_CTX_create
    - EVP_PKEY_free
    - fr_tls_strerror_printf
    - EVP_sha256
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: "int aka_prime_prf(uint8_t *out, size_t outlen,\n\t\t\t uint8_t const
      *key, size_t key_len, uint8_t const *in, size_t in_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ck_ik_prime_derive
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:859,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:861,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:866,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:868,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:871,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:880,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:883,1
    - Dst: aka_prime_prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:889,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:895,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:898,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:902,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:905,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 911
    functionName: fr_aka_sim_crypto_umts_kdf_1
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - aka_prime_prf
    - ck_ik_prime_derive
    - fr_cond_assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_umts_kdf_1(fr_aka_sim_keys_t *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:933,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:937,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:938,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:939,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:940,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - keys
    - mk
    - counter
    argTypes:
    - fr_aka_sim_keys_t*
    - uint8_t[]
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 922
    functionDepth: 5
    functionLinenumber: 922
    functionLinenumberEnd: 942
    functionName: fr_aka_sim_crypto_keys_init_kdf_0_reauth
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - fr_rand
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void fr_aka_sim_crypto_keys_init_kdf_0_reauth(fr_aka_sim_keys_t *keys,\n\t\t\t\t\t
      \     uint8_t const mk[static AKA_SIM_MK_SIZE], uint16_t counter)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:963,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:967,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:968,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:969,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:970,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - keys
    - mk
    - counter
    argTypes:
    - fr_aka_sim_keys_t*
    - uint8_t[]
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 952
    functionDepth: 5
    functionLinenumber: 952
    functionLinenumberEnd: 972
    functionName: fr_aka_sim_crypto_keys_init_umts_kdf_1_reauth
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - fr_rand
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void fr_aka_sim_crypto_keys_init_umts_kdf_1_reauth(fr_aka_sim_keys_t
      *keys,\n\t\t\t\t\t\t   uint8_t const mk[static AKA_PRIME_MK_REAUTH_SIZE], uint16_t
      counter)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1013,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1018,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1025,1
    - Dst: fr_aka_sim_fips186_2prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1034,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1037,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1039,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1041,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1044,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1057,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1059,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1070,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1076,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1079,1
    - Dst: EVP_MD_CTX_create
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1084,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1086,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1088,1
    - Dst: EVP_DigestInit_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1092,1
    - Dst: EVP_sha1
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1092,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1093,1
    - Dst: EVP_DigestUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1097,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1098,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1102,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1103,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1107,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1109,1
    - Dst: fr_aka_sim_fips186_2prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1114,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1120,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1122,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1124,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1125,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 66
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 995
    functionDepth: 4
    functionLinenumber: 995
    functionLinenumberEnd: 1128
    functionName: fr_aka_sim_crypto_kdf_0_reauth
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_destroy
    - FR_PROTO_HEX_DUMP
    - memcpy
    - EVP_DigestInit_ex
    - fr_strerror_printf
    - EVP_MD_CTX_create
    - fr_tls_strerror_printf
    - EVP_sha1
    - EVP_DigestFinal_ex
    - fr_strerror_const
    - fr_aka_sim_fips186_2prf
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_kdf_0_reauth(fr_aka_sim_keys_t *keys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1151,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1156,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1161,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1162,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1167,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1169,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1174,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1175,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1177,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1182,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1187,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1188,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1193,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1198,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1200,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1200,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1200,1
    - Dst: aka_prime_prf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1211,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1212,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1212,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1213,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1215,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1217,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1218,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1220,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - keys
    argTypes:
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1144
    functionDepth: 2
    functionLinenumber: 1144
    functionLinenumberEnd: 1224
    functionName: fr_aka_sim_crypto_umts_kdf_1_reauth
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 1
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_in_bytes
    - fr_dbuff_init
    - fr_cond_assert
    - fr_dbuff_in_memcpy
    - fr_dbuff_start
    - fr_dbuff_used
    - aka_prime_prf
    - fr_dbuff_out_memcpy
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_crypto_umts_kdf_1_reauth(fr_aka_sim_keys_t *keys)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1233,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1235,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1236,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1243,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1246,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1250,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1252,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1254,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1261,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1264,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1267,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1270,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1273,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1276,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1279,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1284,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1286,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1288,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1293,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1295,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1297,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1304,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1306,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1307,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1310,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1317,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1319,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1320,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1321,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1323,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1325,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1327,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1329,1
    - Dst: RHEXDUMP_INLINE3
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1331,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 2
    argNames:
    - request
    - keys
    argTypes:
    - request_t*
    - fr_aka_sim_keys_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1334
    functionName: fr_aka_sim_crypto_keys_log
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 3
    functionsReached:
    - REXDENT
    - RDEBUG3
    - RHEXDUMP_INLINE3
    - RINDENT
    linkageType: ''
    returnType: void
    signature: void fr_aka_sim_crypto_keys_log(request_t *request, fr_aka_sim_keys_t
      *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1415,1
    - Dst: fr_aka_sim_crypto_gsm_kdf_0
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1417,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1418,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1420,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1420,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1421,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1422,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1422,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1423,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1423,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1424,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1405
    functionDepth: 5
    functionLinenumber: 1405
    functionLinenumberEnd: 1425
    functionName: test_eap_sim_kdf_0_gsm
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_aka_sim_crypto_gsm_kdf_0
    - memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_eap_sim_kdf_0_gsm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1489,1
    - Dst: fr_aka_sim_crypto_umts_kdf_0
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1491,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1492,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1494,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1494,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1495,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1497,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1497,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1498,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1498,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1499,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1479
    functionDepth: 5
    functionLinenumber: 1479
    functionLinenumberEnd: 1500
    functionName: test_eap_aka_kdf_0_umts
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_aka_sim_crypto_umts_kdf_0
    - memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_eap_aka_kdf_0_umts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1553,1
    - Dst: fr_aka_sim_crypto_kdf_0_reauth
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1555,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1556,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1558,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1558,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1559,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1560,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1560,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1561,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1561,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1562,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1543
    functionDepth: 5
    functionLinenumber: 1543
    functionLinenumberEnd: 1563
    functionName: test_eap_sim_kdf_0_reauth
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_aka_sim_crypto_kdf_0_reauth
    - memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_eap_sim_kdf_0_reauth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1640,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1642,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1643,1
    - Dst: fr_aka_sim_crypto_umts_kdf_1
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1645,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1646,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1648,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1648,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1649,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1650,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1650,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1651,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1651,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1652,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1652,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1653,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1630
    functionDepth: 3
    functionLinenumber: 1630
    functionLinenumberEnd: 1654
    functionName: test_eap_aka_kdf_1_umts
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_aka_sim_crypto_umts_kdf_1
    - memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_eap_aka_kdf_1_umts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1667,1
    - Dst: ck_ik_prime_derive
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1668,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1669,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1670,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1670,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1671,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1672
    functionName: test_eap_aka_derive_ck_ik
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - ck_ik_prime_derive
    - memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_eap_aka_derive_ck_ik(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1741,1
    - Dst: fr_aka_sim_crypto_umts_kdf_1_reauth
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1743,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1744,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1746,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1746,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1747,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1748,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1748,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1749,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1749,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1750,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 1751
    functionName: test_eap_aka_kdf_1_reauth
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/crypto.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    - fr_aka_sim_crypto_umts_kdf_1_reauth
    - memcpy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_eap_aka_kdf_1_reauth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: us
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: us(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nai
    - nai_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: fr_aka_sim_id_user_len
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t fr_aka_sim_id_user_len(char const *nai, size_t nai_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nai
    - nai_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: fr_aka_sim_domain
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: char *fr_aka_sim_domain(char const *nai, size_t nai_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:104,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:108,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:111,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:113,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:119,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:120,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:123,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:125,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:131,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:132,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - mnc
    - mcc
    - domain
    - domain_len
    argTypes:
    - uint16_t*
    - uint16_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 143
    functionName: fr_aka_sim_3gpp_root_nai_domain_mcc_mnc
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - CRYPTO_memcmp
    - strtoul
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_aka_sim_3gpp_root_nai_domain_mcc_mnc(uint16_t *mnc, uint16_t
      *mcc,\n\t\t\t\t\t\tchar const *domain, size_t domain_len)"
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:175,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:180,1
    - Dst: fr_aka_sim_id_user_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:190,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:200,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:205,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:206,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:207,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:208,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:279,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:285,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:291,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:291,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 114
    argCount: 4
    argNames:
    - type
    - hint
    - id
    - id_len
    argTypes:
    - fr_aka_sim_id_type_t*
    - fr_aka_sim_method_hint_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 294
    functionName: fr_aka_sim_id_type
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 5
    functionsReached:
    - isdigit
    - fr_strerror_printf
    - fr_strerror_const_push
    - fr_strerror_clear
    - fr_box_strvalue_len
    - fr_aka_sim_id_user_len
    - fr_strerror_const
    - fr_strerror_printf_push
    linkageType: ''
    returnType: int
    signature: int fr_aka_sim_id_type(fr_aka_sim_id_type_t *type, fr_aka_sim_method_hint_t
      *hint, char const *id, size_t id_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_domain
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:312,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:315,1
    - Dst: fr_aka_sim_3gpp_root_nai_domain_mcc_mnc
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:322,1
    - Dst: fr_aka_sim_id_type
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - id
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 341
    functionName: fr_aka_sim_id_to_eap_type
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 3
    functionsReached:
    - fr_aka_sim_domain
    - fr_strerror_const
    - fr_aka_sim_3gpp_root_nai_domain_mcc_mnc
    - fr_aka_sim_id_type
    linkageType: ''
    returnType: eap_type_t
    signature: eap_type_t fr_aka_sim_id_to_eap_type(char const *id, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - method
    argTypes:
    - fr_aka_sim_id_type_t
    - fr_aka_sim_method_hint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: fr_aka_sim_hint_byte
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char fr_aka_sim_hint_byte(fr_aka_sim_id_type_t type, fr_aka_sim_method_hint_t
      method)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:414,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:415,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:418,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:419,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:427,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:428,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:431,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:432,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:436,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:449,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:449,1
    - Dst: isdigit
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:449,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:450,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:463,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:464,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:466,1
    - Dst: aka_sim_crypto_cipher_ctx
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:471,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:472,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:472,1
    - Dst: EVP_aes_128_ecb
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:472,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:473,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:488,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:489,1
    - Dst: EVP_EncryptUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:489,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:490,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:495,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:495,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:496,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:504,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:505,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:534,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 6
    argNames:
    - out
    - imsi
    - imsi_len
    - tag
    - key_ind
    - key
    argTypes:
    - char[]
    - char*
    - size_t
    - uint8_t
    - uint8_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 397
    functionDepth: 5
    functionLinenumber: 397
    functionLinenumberEnd: 542
    functionName: fr_aka_sim_id_3gpp_pseudonym_encrypt
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 1
    functionsReached:
    - unlikely
    - aka_sim_crypto_cipher_ctx
    - isdigit
    - EVP_EncryptUpdate
    - memcpy
    - fr_strerror_printf
    - fr_strerror_const
    - fr_rand
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_set_padding
    - EVP_EncryptInit_ex
    - EVP_aes_128_ecb
    - memset
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int fr_aka_sim_id_3gpp_pseudonym_encrypt(char out[AKA_SIM_3GPP_PSEUDONYM_LEN
      + 1],\n\t\t\t\t\t char const *imsi, size_t imsi_len,\n\t\t\t\t\t uint8_t tag,
      uint8_t key_ind, uint8_t const key[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encr_id
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: fr_aka_sim_id_3gpp_pseudonym_tag
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 2
    functionsReached:
    - us
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fr_aka_sim_id_3gpp_pseudonym_tag(char const encr_id[AKA_SIM_3GPP_PSEUDONYM_LEN])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encr_id
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: fr_aka_sim_id_3gpp_pseudonym_key_index
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - us
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t fr_aka_sim_id_3gpp_pseudonym_key_index(char const encr_id[AKA_SIM_3GPP_PSEUDONYM_LEN])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_is_base64
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:596,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:597,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:598,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:603,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:603,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:607,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:607,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:608,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:608,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:609,1
    - Dst: us
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:609,1
    - Dst: aka_sim_crypto_cipher_ctx
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:614,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:615,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:615,1
    - Dst: EVP_aes_128_ecb
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:615,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:616,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:630,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:631,1
    - Dst: EVP_DecryptUpdate
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:631,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:632,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:637,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:637,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:638,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:647,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:648,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 3
    argNames:
    - out
    - encr_id
    - key
    argTypes:
    - char[]
    - char[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 667
    functionName: fr_aka_sim_id_3gpp_pseudonym_decrypt
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 1
    functionsReached:
    - aka_sim_crypto_cipher_ctx
    - unlikely
    - fr_strerror_printf
    - fr_is_base64
    - us
    - fr_tls_strerror_printf
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_set_padding
    - fr_box_strvalue_len
    - EVP_DecryptFinal_ex
    - EVP_aes_128_ecb
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int fr_aka_sim_id_3gpp_pseudonym_decrypt(char out[AKA_SIM_IMSI_MAX_LEN
      + 1],\n\t\t\t\t     char const encr_id[AKA_SIM_3GPP_PSEUDONYM_LEN], uint8_t
      const key[16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:686,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_encrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:686,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:687,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:687,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_tag
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:689,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:690,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_key_index
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:691,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:692,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:694,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_decrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:694,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:695,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:695,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:697,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 675
    functionDepth: 6
    functionLinenumber: 675
    functionLinenumberEnd: 698
    functionName: test_encrypt_decypt_key0
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_id_3gpp_pseudonym_tag
    - fr_strerror_pop
    - fr_aka_sim_id_3gpp_pseudonym_key_index
    - memcmp
    - TEST_CHECK
    - fr_aka_sim_id_3gpp_pseudonym_encrypt
    - printf
    - fr_aka_sim_id_3gpp_pseudonym_decrypt
    linkageType: ''
    returnType: void
    signature: void test_encrypt_decypt_key0(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:711,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_encrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:711,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:712,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:712,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_tag
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:714,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:715,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_key_index
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:716,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:717,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:719,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_decrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:719,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:720,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:720,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:722,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 700
    functionDepth: 6
    functionLinenumber: 700
    functionLinenumberEnd: 723
    functionName: test_encrypt_decypt_key1
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_id_3gpp_pseudonym_tag
    - fr_strerror_pop
    - fr_aka_sim_id_3gpp_pseudonym_key_index
    - memcmp
    - TEST_CHECK
    - fr_aka_sim_id_3gpp_pseudonym_encrypt
    - printf
    - fr_aka_sim_id_3gpp_pseudonym_decrypt
    linkageType: ''
    returnType: void
    signature: void test_encrypt_decypt_key1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:754,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_encrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:754,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:756,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:756,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_tag
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:758,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:759,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_key_index
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:760,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:761,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:763,1
    - Dst: fr_aka_sim_id_3gpp_pseudonym_decrypt
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:763,1
    - Dst: fr_strerror_pop
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:764,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:764,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:766,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/eap_aka_sim/id.c:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 725
    functionDepth: 6
    functionLinenumber: 725
    functionLinenumberEnd: 767
    functionName: test_encrypt_decypt_key16
    functionSourceFile: /src/freeradius-server/src/lib/eap_aka_sim/id.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_id_3gpp_pseudonym_tag
    - fr_strerror_pop
    - fr_aka_sim_id_3gpp_pseudonym_key_index
    - memcmp
    - TEST_CHECK
    - fr_aka_sim_id_3gpp_pseudonym_encrypt
    - printf
    - fr_aka_sim_id_3gpp_pseudonym_decrypt
    linkageType: ''
    returnType: void
    signature: void test_encrypt_decypt_key16(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:157,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:163,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:163,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: _command_set_free_list_free_on_exit
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int _command_set_free_list_free_on_exit(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:172,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:177,1
    - Dst: fr_dlist_entry_in_list
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:177,1
    - Dst: fr_dlist_entry_unlink
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:178,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:182,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:183,1
    - Dst: fr_dlist_insert_head
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - fr_redis_command_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 188
    functionName: _redis_command_set_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_dlist_entry_in_list
    - unlikely
    - fr_dlist_num_elements
    - fr_dlist_entry_unlink
    - memset
    - talloc_free_children
    - fr_dlist_insert_head
    linkageType: ''
    returnType: int
    signature: int _redis_command_set_free(fr_redis_command_set_t *cmds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:222,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:223,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:223,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:224,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:225,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:234,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:236,1
    - Dst: talloc_zero_pooled_object
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:236,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:240,1
    - Dst: fr_dlist_entry_init
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:241,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:243,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:246,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:247,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:248,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - request
    - complete
    - fail
    - rctx
    argTypes:
    - TALLOC_CTX*
    - request_t*
    - fr_redis_command_set_complete_t
    - fr_redis_command_set_fail_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 257
    functionName: fr_redis_command_set_alloc
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_dlist_talloc_init
    - talloc_link_ctx
    - talloc_set_destructor
    - fr_dlist_entry_init
    - fr_atexit_thread_local
    - fr_dlist_init
    - talloc
    - fr_dlist_remove
    - MEM
    - talloc_zero_pooled_object
    linkageType: ''
    returnType: fr_redis_command_set_t
    signature: "fr_redis_command_set_t *fr_redis_command_set_alloc(TALLOC_CTX *ctx,\n\t\t\t\t\t\t
      \  request_t *request,\n\t\t\t\t\t\t   fr_redis_command_set_complete_t complete,\n\t\t\t\t\t\t
      \  fr_redis_command_set_fail_t fail,\n\t\t\t\t\t\t   void *rctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - fr_redis_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: _redis_command_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _redis_command_free(fr_redis_command_t *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - fr_redis_command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: fr_redis_command_get_result
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: redisReply
    signature: redisReply *fr_redis_command_get_result(fr_redis_command_t *cmd)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:309,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:311,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:312,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:318,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:331,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:332,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:341,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:342,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:345,1
    - Dst: tolower
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:353,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:354,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:356,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:360,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:369,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:369,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:370,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:375,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 3
    argNames:
    - cmds
    - cmd_str
    - cmd_len
    argTypes:
    - fr_redis_command_set_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 378
    functionName: fr_redis_command_preformatted_add
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - tolower
    - talloc_set_destructor
    - ROPTIONAL
    - talloc_zero
    - fr_dlist_insert_tail
    - MEM
    - strncasecmp
    linkageType: ''
    returnType: fr_redis_pipeline_status_t
    signature: "fr_redis_pipeline_status_t fr_redis_command_preformatted_add(fr_redis_command_set_t
      *cmds,\n\t\t\t\t\t\t\t     char const *cmd_str, size_t cmd_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:395,1
    - Dst: trunk_request_enqueue
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - rtrunk
    - cmds
    argTypes:
    - fr_redis_trunk_t*
    - fr_redis_command_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: redis_command_set_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - ERROR
    - trunk_request_enqueue
    linkageType: ''
    returnType: fr_redis_pipeline_status_t
    signature: fr_redis_pipeline_status_t redis_command_set_enqueue(fr_redis_trunk_t
      *rtrunk, fr_redis_command_set_t *cmds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:431,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:432,1
    - Dst: fr_redis_connection_process_response
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:437,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:438,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:439,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:448,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:452,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:453,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:460,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:461,1
    - Dst: trunk_request_signal_complete
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ac
    - vreply
    - privdata
    argTypes:
    - struct redisAsyncContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 462
    functionName: _redis_pipeline_demux
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - trunk_request_signal_complete
    - fr_redis_connection_process_response
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_redis_reply_free
    - fr_dlist_remove
    - fr_dlist_insert_tail
    linkageType: ''
    returnType: void
    signature: void _redis_pipeline_demux(struct redisAsyncContext *ac, void *vreply,
      void *privdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:468,1
    - Dst: fr_redis_connection_alloc
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - tconn
    - el
    - conf
    - log_prefix
    - uctx
    argTypes:
    - trunk_connection_t*
    - fr_event_list_t*
    - connection_conf_t*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: _redis_pipeline_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_redis_connection_alloc
    - talloc_get_type_abort
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *_redis_pipeline_connection_alloc(trunk_connection_t
      *tconn, fr_event_list_t *el,\n\t\t\t\t\t\t\t connection_conf_t const *conf,\n\t\t\t\t\t\t\t
      char const *log_prefix, void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:488,1
    - Dst: trunk_connection_pop_request
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:491,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:492,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:498,1
    - Dst: redisAsyncCommand
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:498,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:499,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:501,1
    - Dst: fr_redis_connection_ignore_response
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:502,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:503,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:504,1
    - Dst: trunk_request_signal_fail
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:506,1
    - Dst: fr_redis_connection_sent_request
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:509,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:510,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:511,1
    - Dst: trunk_request_signal_sent
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tconn
    - conn
    - uctx
    argTypes:
    - trunk_connection_t*
    - connection_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 514
    functionName: _redis_pipeline_mux
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - unlikely
    - fr_redis_connection_ignore_response
    - trunk_request_signal_sent
    - talloc_get_type_abort
    - fr_dlist_remove
    - fr_redis_connection_sent_request
    - ROPTIONAL
    - trunk_request_signal_fail
    - trunk_connection_pop_request
    - fr_dlist_insert_tail
    - redisAsyncCommand
    linkageType: ''
    returnType: void
    signature: void _redis_pipeline_mux(trunk_connection_t *tconn, connection_t *conn,
      UNUSED void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:525,1
    - Dst: fr_dlist_move
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:544,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:561,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:563,1
    - Dst: fr_redis_connection_ignore_response
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:564,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - conn
    - trunk_request_t *treq
    - preq
    - reason
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - void*
    - trunk_cancel_reason_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 572
    functionName: _redis_pipeline_command_set_cancel
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_redis_connection_ignore_response
    - fr_dlist_next
    - talloc_get_type_abort
    - fr_assert
    - fr_dlist_move
    linkageType: ''
    returnType: void
    signature: "void _redis_pipeline_command_set_cancel(connection_t *conn, UNUSED
      trunk_request_t *treq, void *preq,\n\t\t\t\t\t       trunk_cancel_reason_t reason,
      UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:580,1
    - Dst: fr_redis_command_set_t*::complete
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: _redis_pipeline_command_set_complete
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_redis_command_set_t*::complete
    linkageType: ''
    returnType: void
    signature: "void _redis_pipeline_command_set_complete(UNUSED request_t *request,
      void *preq,\n\t\t\t\t\t\t UNUSED void *rctx, UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:591,1
    - Dst: fr_redis_command_set_t*::fail
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - request
    - preq
    - rctx
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 594
    functionName: _redis_pipeline_command_set_fail
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - fr_redis_command_set_t*::fail
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void _redis_pipeline_command_set_fail(UNUSED request_t *request, void
      *preq,\n\t\t\t\t\t     UNUSED void *rctx, UNUSED void *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:602,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - preq
    - uctx
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: _redis_pipeline_command_set_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void _redis_pipeline_command_set_free(UNUSED request_t *request, void
      *preq,\n\t\t\t\t\t     UNUSED void *uctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:628,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:628,1
    - Dst: trunk_alloc
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:630,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cluster_thread
    - io_conf
    argTypes:
    - fr_redis_cluster_thread_t*
    - fr_redis_io_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 615
    functionDepth: 9
    functionLinenumber: 615
    functionLinenumberEnd: 639
    functionName: fr_redis_trunk_alloc
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_free
    - trunk_alloc
    linkageType: ''
    returnType: fr_redis_trunk_t
    signature: fr_redis_trunk_t *fr_redis_trunk_alloc(fr_redis_cluster_thread_t *cluster_thread,
      fr_redis_io_conf_t const *io_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:652,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:652,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:653,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/lib/redis/pipeline.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - el
    - tconf
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - trunk_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: fr_redis_cluster_thread_alloc
    functionSourceFile: /src/freeradius-server/src/lib/redis/pipeline.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_memdup
    linkageType: ''
    returnType: fr_redis_cluster_thread_t
    signature: fr_redis_cluster_thread_t *fr_redis_cluster_thread_alloc(TALLOC_CTX
      *ctx, fr_event_list_t *el, trunk_conf_t const *tconf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/test.c:22,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/test.c:22,1
    - Dst: fr_redis_command_get_result
      Src: /src/freeradius-server/src/lib/redis/test.c:23,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/test.c:24,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/redis/test.c:27,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/redis/test.c:28,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/test.c:31,1
    - Dst: fr_dlist_num_elements
      Src: /src/freeradius-server/src/lib/redis/test.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - completed
    - rctx
    argTypes:
    - request_t*
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: _command_complete
    functionSourceFile: /src/freeradius-server/src/lib/redis/test.c
    functionUses: 2
    functionsReached:
    - fr_dlist_head
    - INFO
    - fr_time
    - fr_dlist_num_elements
    - talloc_get_type_abort
    - fr_redis_command_get_result
    - fr_box_time_delta
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void _command_complete(request_t *request, fr_dlist_head_t *completed,
      void *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/redis/test.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - completed
    - rctx
    argTypes:
    - request_t*
    - fr_dlist_head_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: _command_failed
    functionSourceFile: /src/freeradius-server/src/lib/redis/test.c
    functionUses: 0
    functionsReached:
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void _command_failed(request_t *request, fr_dlist_head_t *completed,
      void *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/test.c:54,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/test.c:55,1
    - Dst: talloc_init
      Src: /src/freeradius-server/src/lib/redis/test.c:59,1
    - Dst: fr_event_list_alloc
      Src: /src/freeradius-server/src/lib/redis/test.c:60,1
    - Dst: fr_redis_command_set_alloc
      Src: /src/freeradius-server/src/lib/redis/test.c:62,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/redis/test.c:67,1
    - Dst: fr_redis_command_preformatted_add
      Src: /src/freeradius-server/src/lib/redis/test.c:67,1
    - Dst: fr_redis_cluster_thread_alloc
      Src: /src/freeradius-server/src/lib/redis/test.c:70,1
    - Dst: fr_redis_trunk_alloc
      Src: /src/freeradius-server/src/lib/redis/test.c:71,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/test.c:74,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/redis/test.c:76,1
    - Dst: redis_command_set_enqueue
      Src: /src/freeradius-server/src/lib/redis/test.c:76,1
    - Dst: fr_event_corral
      Src: /src/freeradius-server/src/lib/redis/test.c:79,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/test.c:79,1
    - Dst: fr_event_service
      Src: /src/freeradius-server/src/lib/redis/test.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 39
    functionDepth: 10
    functionLinenumber: 39
    functionLinenumberEnd: 82
    functionName: test_basic_connection
    functionSourceFile: /src/freeradius-server/src/lib/redis/test.c
    functionUses: 0
    functionsReached:
    - fr_redis_command_preformatted_add
    - fr_event_service
    - fr_time
    - redis_command_set_enqueue
    - fr_redis_trunk_alloc
    - fr_event_list_alloc
    - fr_redis_command_set_alloc
    - fr_redis_cluster_thread_alloc
    - TEST_CHECK
    - memset
    - fr_event_corral
    - talloc_init
    linkageType: ''
    returnType: void
    signature: void test_basic_connection(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freeReplyObject
      Src: /src/freeradius-server/src/lib/redis/base.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reply
    argTypes:
    - redisReply**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: fr_redis_reply_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/base.h
    functionUses: 13
    functionsReached:
    - freeReplyObject
    linkageType: ''
    returnType: void
    signature: void fr_redis_reply_free(redisReply **reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/base.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - reply
    - num
    argTypes:
    - redisReply*[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: fr_redis_pipeline_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/base.h
    functionUses: 4
    functionsReached:
    - fr_redis_reply_free
    linkageType: ''
    returnType: void
    signature: void fr_redis_pipeline_free(redisReply *reply[], size_t num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/redis/cluster.c:302,1
    - Dst: fr_crc16_xmodem
      Src: /src/freeradius-server/src/lib/redis/cluster.c:305,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/redis/cluster.c:308,1
    - Dst: fr_crc16_xmodem
      Src: /src/freeradius-server/src/lib/redis/cluster.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - key
    - key_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: cluster_key_hash
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - memchr
    - fr_crc16_xmodem
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t cluster_key_hash(uint8_t const *key, size_t key_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/lib/redis/cluster.c:328,1
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/redis/cluster.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: _cluster_node_cmp
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _cluster_node_cmp(void const *one, void const *two)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/redis/cluster.c:344,1
    - Dst: trigger_args_afrom_server
      Src: /src/freeradius-server/src/lib/redis/cluster.c:348,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/redis/cluster.c:349,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/redis/cluster.c:351,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:351,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:351,1
    - Dst: fr_pool_enable_triggers
      Src: /src/freeradius-server/src/lib/redis/cluster.c:354,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pool
    - opaque
    argTypes:
    - fr_pool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 339
    functionDepth: 5
    functionLinenumber: 339
    functionLinenumberEnd: 358
    functionName: _cluster_node_conf_apply
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - trigger_args_afrom_server
    - fr_pair_list_empty
    - fr_pool_enable_triggers
    - fr_pair_list_free
    - MEM
    - fr_pair_list_init
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void _cluster_node_conf_apply(fr_pool_t *pool, void *opaque)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:375,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/lib/redis/cluster.c:380,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:382,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/redis/cluster.c:392,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:393,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:395,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/lib/redis/cluster.c:399,1
    - Dst: fr_pool_init
      Src: /src/freeradius-server/src/lib/redis/cluster.c:401,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/redis/cluster.c:405,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/redis/cluster.c:406,1
    - Dst: fr_pool_reconnect_func
      Src: /src/freeradius-server/src/lib/redis/cluster.c:409,1
    - Dst: trigger_enabled
      Src: /src/freeradius-server/src/lib/redis/cluster.c:411,1
    - Dst: trigger_args_afrom_server
      Src: /src/freeradius-server/src/lib/redis/cluster.c:412,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/redis/cluster.c:413,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/redis/cluster.c:415,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:415,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:415,1
    - Dst: fr_pool_enable_triggers
      Src: /src/freeradius-server/src/lib/redis/cluster.c:417,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:419,1
    - Dst: fr_pool_start
      Src: /src/freeradius-server/src/lib/redis/cluster.c:422,1
    - Dst: fr_pool_reconnect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:430,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - cluster
    - node
    argTypes:
    - fr_redis_cluster_t*
    - fr_redis_cluster_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 433
    functionName: cluster_node_connect
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - cf_section_find
    - fr_cond_assert
    - fr_pair_list_free
    - MEM
    - fr_pool_enable_triggers
    - fr_pair_list_empty
    - cf_section_dup
    - fr_pair_list_init
    - fr_pair_list_copy
    - fr_pool_reconnect
    - inet_ntop
    - fr_assert
    - fr_pool_init
    - trigger_args_afrom_server
    - fr_pool_start
    - TALLOC_FREE
    - snprintf
    - trigger_enabled
    - fr_pool_reconnect_func
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: fr_redis_cluster_rcode_t cluster_node_connect(fr_redis_cluster_t *cluster,
      fr_redis_cluster_node_t *node)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/redis/cluster.c:459,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/redis/cluster.c:461,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:464,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:468,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/redis/cluster.c:472,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:474,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:480,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/lib/redis/cluster.c:485,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:488,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - key_slot
    - node_addr
    - redirect
    argTypes:
    - uint16_t*
    - fr_socket_t*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 446
    functionDepth: 5
    functionLinenumber: 446
    functionLinenumberEnd: 497
    functionName: cluster_node_conf_from_redirect
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_const
    - fr_assert
    - fr_inet_pton_port
    - strtoul
    - strncmp
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: "fr_redis_cluster_rcode_t cluster_node_conf_from_redirect(uint16_t
      *key_slot, fr_socket_t *node_addr,\n\t\t\t\t\t\t       redisReply *redirect)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:580,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:582,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:583,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:584,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:591,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:612,1
    - Dst: SET_ADDR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:614,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:615,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/redis/cluster.c:628,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:631,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/cluster.c:635,1
    - Dst: SET_INACTIVE
      Src: /src/freeradius-server/src/lib/redis/cluster.c:637,1
    - Dst: cluster_node_connect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:642,1
    - Dst: SET_ACTIVE
      Src: /src/freeradius-server/src/lib/redis/cluster.c:651,1
    - Dst: SET_ADDR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:666,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:667,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/redis/cluster.c:673,1
    - Dst: cluster_node_connect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:677,1
    - Dst: SET_ACTIVE
      Src: /src/freeradius-server/src/lib/redis/cluster.c:679,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:695,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:713,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:728,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:742,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:743,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:744,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:745,1
    - Dst: SET_INACTIVE
      Src: /src/freeradius-server/src/lib/redis/cluster.c:750,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/cluster.c:762,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:767,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/redis/cluster.c:767,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:767,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:768,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 96
    argCount: 2
    argNames:
    - cluster
    - reply
    argTypes:
    - fr_redis_cluster_t*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 771
    functionName: cluster_map_apply
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - SET_ACTIVE
    - fr_time
    - memcpy
    - fr_rb_num_elements
    - fr_strerror_printf
    - fr_strerror_const
    - cluster_node_connect
    - fr_rb_find
    - fr_assert
    - fr_fifo_peek
    - SET_ADDR
    - talloc_array_length
    - fr_fifo_num_elements
    - memset
    - SET_INACTIVE
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: fr_redis_cluster_rcode_t cluster_map_apply(fr_redis_cluster_t *cluster,
      redisReply *reply)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _addr
    - ','
    - _map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: SET_ADDR
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ADDR(_addr, _map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _addr
    - ','
    - _map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 561
    functionName: SET_ADDR
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ADDR(_addr, _map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: SET_INACTIVE
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INACTIVE(_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 579
    functionName: SET_ACTIVE
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ACTIVE(_node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:790,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:792,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:809,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:815,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:817,1
    - Dst: fr_inet_pton
      Src: /src/freeradius-server/src/lib/redis/cluster.c:821,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:826,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:828,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:833,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:839,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/cluster.c:839,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - node
    - map_idx
    - node_idx
    argTypes:
    - redisReply*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 845
    functionName: cluster_map_node_validate
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - fr_strerror_printf
    - fr_inet_pton
    - fr_table_str_by_value
    linkageType: ''
    returnType: int
    signature: int cluster_map_node_validate(redisReply *node, int map_idx, int node_idx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: redisCommand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:870,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/lib/redis/cluster.c:871,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:873,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:874,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:880,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:881,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:884,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:892,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:893,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:901,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:914,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:915,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:917,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:922,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:931,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:932,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:937,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:943,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/cluster.c:944,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:952,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:953,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:958,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:964,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/cluster.c:965,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:970,1
    - Dst: cluster_map_node_validate
      Src: /src/freeradius-server/src/lib/redis/cluster.c:979,1
    - Dst: cluster_map_node_validate
      Src: /src/freeradius-server/src/lib/redis/cluster.c:985,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 2
    argNames:
    - out
    - conn
    argTypes:
    - redisReply**
    - fr_redis_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 863
    functionDepth: 5
    functionLinenumber: 863
    functionLinenumberEnd: 991
    functionName: cluster_map_get
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_redis_reply_free
    - fr_table_str_by_value
    - cluster_map_node_validate
    - fr_redis_command_status
    - STRINGIFY
    - fr_strerror_const
    - redisCommand
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: fr_redis_cluster_rcode_t cluster_map_get(redisReply **out, fr_redis_conn_t
      *conn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1021,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1028,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1029,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1029,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1031,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1035,1
    - Dst: cluster_map_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1040,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1058,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1062,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1066,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1067,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1071,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1075,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1084,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1086,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1087,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1090,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1090,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1091,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1092,1
    - Dst: cluster_map_apply
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1095,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1097,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1099,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 3
    argNames:
    - request
    - cluster
    - conn
    argTypes:
    - request_t*
    - fr_redis_cluster_t*
    - fr_redis_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1008
    functionDepth: 7
    functionLinenumber: 1008
    functionLinenumberEnd: 1103
    functionName: fr_redis_cluster_remap
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached:
    - fr_time_to_sec
    - cluster_map_apply
    - fr_time
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - RINDENT
    - fr_redis_reply_free
    - ROPTIONAL
    - cluster_map_get
    - REXDENT
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: fr_redis_cluster_rcode_t fr_redis_cluster_remap(request_t *request,
      fr_redis_cluster_t *cluster, fr_redis_conn_t *conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1125,1
    - Dst: cluster_node_conf_from_redirect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1129,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1131,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1136,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1139,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1148,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1150,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1151,1
    - Dst: cluster_node_connect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1155,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1156,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1159,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1160,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1164,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1170,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1179,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1180,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1181,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1183,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 3
    argNames:
    - out
    - cluster
    - reply
    argTypes:
    - fr_redis_cluster_node_t**
    - fr_redis_cluster_t*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1118
    functionDepth: 6
    functionLinenumber: 1118
    functionLinenumberEnd: 1190
    functionName: cluster_redirect
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - fr_pool_connection_release
    - pthread_mutex_lock
    - fr_strerror_const
    - pthread_mutex_unlock
    - cluster_node_connect
    - fr_fifo_pop
    - fr_fifo_push
    - fr_rb_find
    - fr_fifo_peek
    - fr_rb_insert
    - cluster_node_conf_from_redirect
    - memset
    - fr_pool_connection_get
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: fr_redis_cluster_rcode_t cluster_redirect(fr_redis_cluster_node_t **out,
      fr_redis_cluster_t *cluster, redisReply *reply)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1213,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1213,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1218,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1218,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1223,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1223,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1228,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - now
    - state
    argTypes:
    - fr_time_t
    - fr_pool_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1208
    functionDepth: 2
    functionLinenumber: 1208
    functionLinenumberEnd: 1229
    functionName: cluster_node_pool_health
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - fr_time_sub
    - fr_time_delta_to_msec
    linkageType: ''
    returnType: int
    signature: int cluster_node_pool_health(fr_time_t now, fr_pool_state_t const *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1248,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1249,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1250,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1252,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1253,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1258,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1260,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1261,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1265,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - request
    - node
    - conn
    argTypes:
    - request_t*
    - fr_redis_cluster_node_t*
    - fr_redis_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1268
    functionName: cluster_node_ping
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - fr_redis_reply_free
    - fr_table_str_by_value
    - ROPTIONAL
    - fr_redis_command_status
    - redisCommand
    linkageType: ''
    returnType: fr_redis_cluster_rcode_t
    signature: fr_redis_cluster_rcode_t cluster_node_ping(request_t *request, fr_redis_cluster_node_t
      *node, fr_redis_conn_t *conn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1320,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1322,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1324,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1328,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1331,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1332,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1334,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1335,1
    - Dst: fr_pool_state
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1338,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1341,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1343,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1346,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1357,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1358,1
    - Dst: cluster_node_pool_health
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1362,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1363,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1366,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1371,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1396,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1398,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1399,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1401,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1412,1
    - Dst: cluster_node_ping
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1420,1
    - Dst: fr_pool_connection_close
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1425,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1429,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1435,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1440,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1441,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 5
    argNames:
    - live_node
    - live_conn
    - request
    - cluster
    - skip
    argTypes:
    - fr_redis_cluster_node_t**
    - fr_redis_conn_t**
    - request_t*
    - fr_redis_cluster_t*
    - fr_redis_cluster_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1310
    functionDepth: 6
    functionLinenumber: 1310
    functionLinenumberEnd: 1444
    functionName: cluster_node_find_live
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_pool_connection_release
    - fr_rb_num_elements
    - pthread_mutex_unlock
    - fr_pool_state
    - cluster_node_ping
    - cluster_node_pool_health
    - fr_rb_iter_next_inorder
    - fr_time
    - pthread_mutex_lock
    - ROPTIONAL
    - fr_pool_connection_get
    - fr_pool_connection_close
    - fr_rand
    - fr_assert
    - fr_rb_iter_init_inorder
    - talloc_free
    - RINDENT
    - talloc_zero
    - REXDENT
    linkageType: ''
    returnType: int
    signature: "int cluster_node_find_live(fr_redis_cluster_node_t **live_node, fr_redis_conn_t
      **live_conn,\n\t\t\t\t  request_t *request, fr_redis_cluster_t *cluster, fr_redis_cluster_node_t
      *skip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: redisFree
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - fr_redis_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1456
    functionName: _cluster_conn_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - redisFree
    linkageType: ''
    returnType: int
    signature: int _cluster_conn_free(fr_redis_conn_t *conn)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1475,1
    - Dst: redisConnectWithTimeout
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1477,1
    - Dst: fr_time_delta_to_timeval
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1477,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1479,1
    - Dst: redisFree
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1480,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1483,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1487,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1490,1
    - Dst: fr_tls_session_alloc_client
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1494,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1496,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1497,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1498,1
    - Dst: SSL_up_ref
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1503,1
    - Dst: redisInitiateSSL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1504,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1505,1
    - Dst: SSL_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1506,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1507,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1515,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1518,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1522,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1523,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1526,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1528,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1529,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1535,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1536,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1540,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1544,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1548,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1549,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1555,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1556,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1558,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1565,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1566,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1570,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1574,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1579,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1580,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 3
    argNames:
    - ctx
    - instance
    - timeout
    argTypes:
    - TALLOC_CTX*
    - void*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1467
    functionDepth: 2
    functionLinenumber: 1467
    functionLinenumberEnd: 1586
    functionName: fr_redis_cluster_conn_create
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_tls_session_alloc_client
    - talloc_set_destructor
    - talloc_free
    - redisFree
    - SSL_up_ref
    - fr_redis_reply_free
    - fr_table_str_by_value
    - fr_tls_strerror_printf
    - talloc_zero
    - redisInitiateSSL
    - strcmp
    - SSL_free
    - fr_time_delta_to_timeval
    - DEBUG2
    - DEBUG3
    - redisConnectWithTimeout
    - redisCommand
    linkageType: ''
    returnType: void
    signature: void *fr_redis_cluster_conn_create(TALLOC_CTX *ctx, void *instance,
      fr_time_delta_t timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1608,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1609,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1618,1
    - Dst: cluster_key_hash
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1619,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1620,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1621,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - cluster
    - request
    - key
    - key_len
    argTypes:
    - fr_redis_cluster_t*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1602
    functionDepth: 5
    functionLinenumber: 1602
    functionLinenumberEnd: 1628
    functionName: fr_redis_cluster_slot_by_key
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached:
    - fr_rb_num_elements
    - fr_rand
    - ROPTIONAL
    - cluster_key_hash
    - fr_box_strvalue_len
    linkageType: ''
    returnType: fr_redis_cluster_key_slot_t
    signature: "fr_redis_cluster_key_slot_t *fr_redis_cluster_slot_by_key(fr_redis_cluster_t
      *cluster, request_t *request,\n\t\t\t\t\t\t\t\tuint8_t const *key, size_t key_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cluster
    - key_slot
    argTypes:
    - fr_redis_cluster_t*
    - fr_redis_cluster_key_slot_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1642
    functionName: fr_redis_cluster_master
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_redis_cluster_node_t
    signature: "fr_redis_cluster_node_t *fr_redis_cluster_master(fr_redis_cluster_t
      *cluster,\n\t\t\t\t\t\t       fr_redis_cluster_key_slot_t const *key_slot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cluster
    - key_slot
    - slave_num
    argTypes:
    - fr_redis_cluster_t*
    - fr_redis_cluster_key_slot_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1661
    functionName: fr_redis_cluster_slave
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_redis_cluster_node_t
    signature: "fr_redis_cluster_node_t *fr_redis_cluster_slave(fr_redis_cluster_t
      *cluster,\n\t\t\t\t\t\t      fr_redis_cluster_key_slot_t const *key_slot,\n\t\t\t\t\t\t
      \     uint8_t slave_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - node
    argTypes:
    - fr_ipaddr_t*
    - fr_redis_cluster_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1678
    functionName: fr_redis_cluster_ipaddr
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_redis_cluster_ipaddr(fr_ipaddr_t *out, fr_redis_cluster_node_t
      const *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - out
    - node
    argTypes:
    - uint16_t*
    - fr_redis_cluster_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1695
    functionName: fr_redis_cluster_port
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_redis_cluster_port(uint16_t *out, fr_redis_cluster_node_t const
      *node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1749,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1750,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1751,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1753,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1756,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1758,1
    - Dst: fr_redis_cluster_slot_by_key
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1763,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1770,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1776,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1778,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1796,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1798,1
    - Dst: cluster_node_find_live
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1802,1
    - Dst: fr_redis_cluster_remap
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1810,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1811,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1814,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1821,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 7
    argNames:
    - state
    - conn
    - cluster
    - request
    - key
    - key_len
    - read_only
    argTypes:
    - fr_redis_cluster_state_t*
    - fr_redis_conn_t**
    - fr_redis_cluster_t*
    - request_t*
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1740
    functionDepth: 8
    functionLinenumber: 1740
    functionLinenumberEnd: 1825
    functionName: fr_redis_cluster_state_init
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 9
    functionsReached:
    - fr_pool_connection_release
    - fr_rb_num_elements
    - cluster_node_find_live
    - fr_rand
    - ROPTIONAL
    - fr_assert
    - fr_redis_cluster_slot_by_key
    - fr_redis_cluster_remap
    - memset
    - fr_pool_connection_get
    linkageType: ''
    returnType: fr_redis_rcode_t
    signature: "fr_redis_rcode_t fr_redis_cluster_state_init(fr_redis_cluster_state_t
      *state, fr_redis_conn_t **conn,\n\t\t\t\t\t     fr_redis_cluster_t *cluster,
      request_t *request,\n\t\t\t\t\t     uint8_t const *key, size_t key_len, bool
      read_only)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1866,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1867,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1869,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1871,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1872,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1878,1
    - Dst: fr_pool_connection_close
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1879,1
    - Dst: fr_redis_cluster_remap
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1899,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1900,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1909,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1918,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1919,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1928,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1929,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1934,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1936,1
    - Dst: nanosleep
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1936,1
    - Dst: fr_time_delta_to_timespec
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1936,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1947,1
    - Dst: fr_pool_connection_close
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1951,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1954,1
    - Dst: fr_redis_cluster_slot_by_key
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1962,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1965,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1967,1
    - Dst: cluster_node_find_live
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1971,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1986,1
    - Dst: fr_redis_cluster_remap
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1988,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:1989,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2000,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2002,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2004,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2006,1
    - Dst: cluster_redirect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2010,1
    - Dst: cluster::cluster
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2010,1
    - Dst: state::state
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2012,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2013,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2018,1
    - Dst: id::id
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2020,1
    - Dst: name::name
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2020,1
    - Dst: addr::addr
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2020,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2023,1
    - Dst: fr_pool_state
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2032,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2046,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2049,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 113
    argCount: 6
    argNames:
    - state
    - conn
    - cluster
    - request
    - status
    - reply
    argTypes:
    - fr_redis_cluster_state_t*
    - fr_redis_conn_t**
    - fr_redis_cluster_t*
    - request_t*
    - fr_redis_rcode_t
    - redisReply**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 1862
    functionDepth: 8
    functionLinenumber: 1862
    functionLinenumberEnd: 2053
    functionName: fr_redis_cluster_state_next
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 9
    functionsReached:
    - fr_redis_reply_print
    - nanosleep
    - cluster::cluster
    - fr_pool_connection_release
    - fr_time_delta_to_timespec
    - fr_cond_assert
    - cluster_redirect
    - fr_pool_state
    - fr_table_str_by_value
    - ROPTIONAL
    - fr_time_delta_ispos
    - fr_redis_cluster_slot_by_key
    - fr_redis_cluster_remap
    - id::id
    - fr_pool_connection_get
    - fr_pool_connection_close
    - fr_assert
    - addr::addr
    - state::state
    - name::name
    - cluster_node_find_live
    - fr_redis_reply_free
    linkageType: ''
    returnType: fr_redis_rcode_t
    signature: "fr_redis_rcode_t fr_redis_cluster_state_next(fr_redis_cluster_state_t
      *state, fr_redis_conn_t **conn,\n\t\t\t\t\t     fr_redis_cluster_t *cluster,
      request_t *request,\n\t\t\t\t\t     fr_redis_rcode_t status, redisReply **reply)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2081,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2082,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2089,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2091,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2092,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2093,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2098,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2100,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2101,1
    - Dst: cluster_node_connect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2105,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2106,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2109,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2110,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2116,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2116,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2116,1
    - Dst: fr_fifo_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2117,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 4
    argNames:
    - pool
    - cluster
    - node_addr
    - create
    argTypes:
    - fr_pool_t**
    - fr_redis_cluster_t*
    - fr_socket_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2069
    functionDepth: 6
    functionLinenumber: 2069
    functionLinenumberEnd: 2123
    functionName: fr_redis_cluster_pool_by_node_addr
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 4
    functionsReached:
    - inet_ntop
    - pthread_mutex_lock
    - fr_rb_num_elements
    - fr_strerror_printf
    - pthread_mutex_unlock
    - cluster_node_connect
    - fr_rb_find
    - fr_assert
    - fr_fifo_peek
    - fr_fifo_num_elements
    - fr_rb_insert
    - talloc_array_length
    - fr_fifo_pop
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int fr_redis_cluster_pool_by_node_addr(fr_pool_t **pool, fr_redis_cluster_t
      *cluster,\n\t\t\t\t       fr_socket_t *node_addr, bool create)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2140,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2152,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2154,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2158,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2160,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2162,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2166,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2170,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - out
    - cluster
    - is_master
    - is_slave
    argTypes:
    - TALLOC_CTX*
    - fr_socket_t*[]
    - fr_redis_cluster_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2137
    functionDepth: 2
    functionLinenumber: 2137
    functionLinenumberEnd: 2177
    functionName: fr_redis_cluster_node_addr_by_role
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 2
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_free
    - fr_rb_num_elements
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - talloc_zero_array
    - fr_rb_iter_init_inorder
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_redis_cluster_node_addr_by_role(TALLOC_CTX *ctx, fr_socket_t
      *out[],\n\t\t\t\t\t   fr_redis_cluster_t *cluster, bool is_master, bool is_slave)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - fr_redis_cluster_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2189
    functionName: _fr_redis_cluster_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int _fr_redis_cluster_free(fr_redis_cluster_t *cluster)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2210,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2212,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2214,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2215,1
    - Dst: fr_redis_get_version
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2223,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2224,1
    - Dst: fr_redis_version_num
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2227,1
    - Dst: fr_redis_version_num
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2227,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2228,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - cluster
    - min_version
    argTypes:
    - fr_redis_cluster_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2201
    functionDepth: 6
    functionLinenumber: 2201
    functionLinenumberEnd: 2238
    functionName: fr_redis_cluster_min_version
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 1
    functionsReached:
    - fr_rb_iter_next_inorder
    - fr_pool_connection_release
    - pthread_mutex_lock
    - fr_redis_version_num
    - fr_strerror_printf
    - pthread_mutex_unlock
    - fr_redis_get_version
    - fr_rb_iter_init_inorder
    - fr_pool_connection_get
    linkageType: ''
    returnType: bool
    signature: bool fr_redis_cluster_min_version(fr_redis_cluster_t *cluster, char
      const *min_version)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2277,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2277,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2278,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2280,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2281,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2289,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2291,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2297,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2297,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2305,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2307,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2313,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2314,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2325,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2327,1
    - Dst: fr_tls_conf_parse_client
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2330,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2332,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2333,1
    - Dst: fr_tls_ctx_alloc
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2337,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2339,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2340,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2344,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2349,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2350,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2355,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2356,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2360,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2362,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2363,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2377,1
    - Dst: talloc_link_ctx
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2377,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2378,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2378,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2379,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2379,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2380,1
    - Dst: fr_fifo_create
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2380,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2384,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2385,1
    - Dst: fr_fifo_push
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2396,1
    - Dst: fr_fifo_peek
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2423,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2425,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2428,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2432,1
    - Dst: fr_inet_pton_port
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2433,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2434,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2435,1
    - Dst: cluster_node_connect
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2440,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2441,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2445,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2446,1
    - Dst: fr_fifo_pop
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2450,1
    - Dst: fr_pool_start_num
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2460,1
    - Dst: fr_pool_connection_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2465,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2467,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2475,1
    - Dst: cluster_map_get
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2479,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2484,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2486,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2490,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2493,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2497,1
    - Dst: cluster_map_apply
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2503,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2504,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2505,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2508,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2516,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2517,1
    - Dst: PWARN
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2521,1
    - Dst: fr_pool_connection_close
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2522,1
    - Dst: PDEBUG2
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2531,1
    - Dst: fr_pool_connection_release
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2532,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2535,1
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2540,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/cluster.c:2542,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 159
    argCount: 6
    argNames:
    - ctx
    - module
    - conf
    - log_prefix
    - trigger_prefix
    - trigger_args
    argTypes:
    - TALLOC_CTX*
    - CONF_SECTION*
    - fr_redis_conf_t*
    - char*
    - char*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2259
    functionDepth: 7
    functionLinenumber: 2259
    functionLinenumberEnd: 2555
    functionName: fr_redis_cluster_alloc
    functionSourceFile: /src/freeradius-server/src/lib/redis/cluster.c
    functionUses: 5
    functionsReached:
    - cf_section_find
    - WARN
    - fr_pool_connection_release
    - fr_rb_num_elements
    - fr_fifo_create
    - talloc_strdup
    - fr_rb_inline_alloc
    - PDEBUG2
    - MEM
    - pthread_mutex_init
    - fr_tls_conf_parse_client
    - ERROR
    - cluster_node_connect
    - fr_fifo_push
    - cf_section_name2
    - fr_fifo_peek
    - fr_inet_pton_port
    - talloc_zero_array
    - fr_rb_insert
    - fr_tls_ctx_alloc
    - cf_section_name1
    - fr_pair_list_init
    - DEBUG
    - fr_pair_list_copy
    - fr_pool_connection_get
    - cf_section_alloc
    - talloc_set_destructor
    - fr_pool_connection_close
    - cf_pair_find
    - talloc_strlen
    - fr_fifo_pop
    - PERROR
    - talloc_typed_asprintf
    - talloc_link_ctx
    - cluster_map_apply
    - talloc_free
    - fr_pool_start_num
    - cf_pair_value
    - fr_redis_reply_free
    - talloc_zero
    - cluster_map_get
    - cf_pair_find_next
    - PWARN
    linkageType: ''
    returnType: fr_redis_cluster_t
    signature: "fr_redis_cluster_t *fr_redis_cluster_alloc(TALLOC_CTX *ctx,\n\t\t\t\t\t
      \  CONF_SECTION *module,\n\t\t\t\t\t   fr_redis_conf_t *conf,\n\t\t\t\t\t   char
      const *log_prefix,\n\t\t\t\t\t   char const *trigger_prefix,\n\t\t\t\t\t   fr_pair_list_t
      *trigger_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:37,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:51,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/redis/io.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ac
    - status
    argTypes:
    - redisAsyncContext*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: _redis_disconnected
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: void _redis_disconnected(redisAsyncContext const *ac, UNUSED int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:61,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:63,1
    - Dst: connection_signal_connected
      Src: /src/freeradius-server/src/lib/redis/io.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ac
    - status
    argTypes:
    - redisAsyncContext*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: _redis_connected
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort
    - connection_signal_connected
    linkageType: ''
    returnType: void
    signature: void _redis_connected(redisAsyncContext const *ac, UNUSED int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/redis/io.c:73,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:76,1
    - Dst: redisAsyncHandleRead
      Src: /src/freeradius-server/src/lib/redis/io.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: _redis_io_service_readable
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - redisAsyncHandleRead
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void _redis_io_service_readable(UNUSED fr_event_list_t *el, int fd,
      UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/redis/io.c:86,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:89,1
    - Dst: redisAsyncHandleWrite
      Src: /src/freeradius-server/src/lib/redis/io.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: _redis_io_service_writable
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - talloc_get_type_abort_const
    - redisAsyncHandleWrite
    linkageType: ''
    returnType: void
    signature: void _redis_io_service_writable(UNUSED fr_event_list_t *el, int fd,
      UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:100,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:103,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/redis/io.c:103,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/lib/redis/io.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 7
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: _redis_io_service_errored
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_syserror
    - talloc_get_type_abort
    - connection_signal_reconnect
    linkageType: ''
    returnType: void
    signature: "void _redis_io_service_errored(UNUSED fr_event_list_t *el, int fd,
      UNUSED int flags,\n\t\t\t\t      int fd_errno, void *uctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:126,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/redis/io.c:128,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:129,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:134,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/redis/io.c:137,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - conn
    - h
    - read
    - write
    argTypes:
    - connection_t*
    - fr_redis_handle_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 149
    functionName: _redis_io_common
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_event_fd_insert
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _redis_io_common(connection_t *conn, fr_redis_handle_t *h, bool
      read, bool write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:156,1
    - Dst: _redis_io_common
      Src: /src/freeradius-server/src/lib/redis/io.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: _redis_io_add_read
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - _redis_io_common
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _redis_io_add_read(void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:167,1
    - Dst: _redis_io_common
      Src: /src/freeradius-server/src/lib/redis/io.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: _redis_io_del_read
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - _redis_io_common
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _redis_io_del_read(void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:178,1
    - Dst: _redis_io_common
      Src: /src/freeradius-server/src/lib/redis/io.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 6
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: _redis_io_add_write
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - _redis_io_common
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _redis_io_add_write(void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:189,1
    - Dst: _redis_io_common
      Src: /src/freeradius-server/src/lib/redis/io.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: _redis_io_del_write
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - _redis_io_common
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _redis_io_del_write(void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/lib/redis/io.c:201,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:204,1
    - Dst: redisAsyncHandleTimeout
      Src: /src/freeradius-server/src/lib/redis/io.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: _redis_io_service_timer_expired
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - redisAsyncHandleTimeout
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void _redis_io_service_timer_expired(UNUSED fr_event_list_t *el, UNUSED
      fr_time_t now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:214,1
    - Dst: fr_time_delta_from_timeval
      Src: /src/freeradius-server/src/lib/redis/io.c:218,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:220,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/lib/redis/io.c:220,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/redis/io.c:222,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - uctx
    - tv
    argTypes:
    - void*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: _redis_io_timer_modify
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_time_delta_from_timeval
    - fr_box_time_delta
    - talloc_get_type_abort
    - fr_timer_in
    - PERROR
    linkageType: ''
    returnType: void
    signature: void _redis_io_timer_modify(void *uctx, struct timeval tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:249,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/redis/io.c:252,1
    - Dst: _redis_io_common
      Src: /src/freeradius-server/src/lib/redis/io.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 6
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: _redis_io_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - _redis_io_common
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _redis_io_free(void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/redis/io.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ac
    - conn
    argTypes:
    - redisAsyncContext*
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: fr_redis_io_setup
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fr_redis_io_setup(redisAsyncContext *ac, connection_t const *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: redisAsyncFree
      Src: /src/freeradius-server/src/lib/redis/io.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - fr_redis_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: _redis_handle_free
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - redisAsyncFree
    linkageType: ''
    returnType: int
    signature: int _redis_handle_free(fr_redis_handle_t *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/io.c:317,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/io.c:317,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/redis/io.c:318,1
    - Dst: redisAsyncConnect
      Src: /src/freeradius-server/src/lib/redis/io.c:320,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:322,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:327,1
    - Dst: redisAsyncFree
      Src: /src/freeradius-server/src/lib/redis/io.c:329,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/redis/io.c:340,1
    - Dst: fr_redis_io_setup
      Src: /src/freeradius-server/src/lib/redis/io.c:357,1
    - Dst: redisAsyncSetConnectCallback
      Src: /src/freeradius-server/src/lib/redis/io.c:367,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:369,1
    - Dst: redisAsyncSetDisconnectCallback
      Src: /src/freeradius-server/src/lib/redis/io.c:373,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/redis/io.c:375,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/lib/redis/io.c:379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - h_out
    - conn
    - uctx
    argTypes:
    - void**
    - connection_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 382
    functionName: _redis_io_connection_init
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_dlist_talloc_init
    - redisAsyncFree
    - talloc_set_destructor
    - memcpy
    - redisAsyncSetConnectCallback
    - redisAsyncConnect
    - fr_redis_io_setup
    - redisAsyncSetDisconnectCallback
    - talloc_zero
    - MEM
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _redis_io_connection_init(void **h_out, connection_t
      *conn, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:389,1
    - Dst: redisAsyncDisconnect
      Src: /src/freeradius-server/src/lib/redis/io.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: _redis_io_connection_shutdown
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - redisAsyncDisconnect
    linkageType: ''
    returnType: connection_state_t
    signature: connection_state_t _redis_io_connection_shutdown(UNUSED fr_event_list_t
      *el, void *h, UNUSED void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/redis/io.c:410,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/io.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_event_list_t *el
    - h
    - uctx
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: _redis_io_connection_close
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void _redis_io_connection_close(UNUSED fr_event_list_t *el, void *h,
      UNUSED void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: connection_alloc
      Src: /src/freeradius-server/src/lib/redis/io.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - el
    - conn_conf
    - io_conf
    - log_prefix
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - connection_conf_t*
    - fr_redis_io_conf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 447
    functionName: fr_redis_connection_alloc
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 1
    functionsReached:
    - connection_alloc
    linkageType: ''
    returnType: connection_t
    signature: "connection_t *fr_redis_connection_alloc(TALLOC_CTX *ctx, fr_event_list_t
      *el,\n\t\t\t\t\t   connection_conf_t const *conn_conf, fr_redis_io_conf_t const
      *io_conf,\n\t\t\t\t\t   char const *log_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - connection_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: fr_redis_connection_get_async_ctx
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: redisAsyncContext
    signature: redisAsyncContext *fr_redis_connection_get_async_ctx(connection_t *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/redis/redis.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: fr_redis_version_print
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 4
    functionsReached:
    - INFO
    linkageType: ''
    returnType: void
    signature: void fr_redis_version_print(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:82,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:87,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/redis/redis.c:99,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:101,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/redis/redis.c:102,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/redis/redis.c:105,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/redis/redis.c:108,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/redis/redis.c:111,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/lib/redis/redis.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - conn
    - reply
    argTypes:
    - fr_redis_conn_t*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 132
    functionName: fr_redis_command_status
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 8
    functionsReached:
    - fr_redis_command_status
    - strncmp
    - fr_strerror_printf
    - fr_assert_msg
    linkageType: ''
    returnType: fr_redis_rcode_t
    signature: fr_redis_rcode_t fr_redis_command_status(fr_redis_conn_t *conn, redisReply
      *reply)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:151,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:153,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:158,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:162,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:166,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:170,1
    - Dst: ROPTIONAL
      Src: /src/freeradius-server/src/lib/redis/redis.c:174,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/lib/redis/redis.c:176,1
    - Dst: fr_redis_reply_print
      Src: /src/freeradius-server/src/lib/redis/redis.c:177,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/lib/redis/redis.c:178,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 5
    argNames:
    - lvl
    - reply
    - request
    - idx
    - status
    argTypes:
    - fr_log_lvl_t
    - redisReply*
    - request_t*
    - int
    - fr_redis_rcode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 182
    functionName: fr_redis_reply_print
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 9
    functionsReached:
    - ROPTIONAL
    - REXDENT
    - fr_redis_reply_print
    - RINDENT
    linkageType: ''
    returnType: void
    signature: void fr_redis_reply_print(fr_log_lvl_t lvl, redisReply *reply, request_t
      *request, int idx, fr_redis_rcode_t status)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_init_null
      Src: /src/freeradius-server/src/lib/redis/redis.c:219,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/redis/redis.c:227,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:237,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:240,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:243,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:246,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:249,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:252,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:255,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:258,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:265,1
    - Dst: strtod
      Src: /src/freeradius-server/src/lib/redis/redis.c:265,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:269,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:275,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/redis/redis.c:276,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/redis/redis.c:286,1
    - Dst: fr_value_box_bstrndup_shallow
      Src: /src/freeradius-server/src/lib/redis/redis.c:289,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/redis/redis.c:291,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/redis/redis.c:301,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/redis/redis.c:303,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/redis/redis.c:304,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/redis.c:305,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/redis/redis.c:308,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/redis/redis.c:309,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/lib/redis/redis.c:311,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/redis/redis.c:312,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/redis.c:313,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:314,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/redis/redis.c:317,1
    - Dst: fr_value_box_list_insert_head
      Src: /src/freeradius-server/src/lib/redis/redis.c:318,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/lib/redis/redis.c:334,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/redis/redis.c:337,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/redis/redis.c:338,1
    - Dst: fr_value_box_list_talloc_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:340,1
    - Dst: fr_redis_reply_to_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:344,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/redis/redis.c:346,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/redis/redis.c:351,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 103
    argCount: 7
    argNames:
    - ctx
    - out
    - reply
    - dst_type
    - dst_enumv
    - box_error
    - shallow
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - redisReply*
    - fr_type_t
    - fr_dict_attr_t*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 354
    functionName: fr_redis_reply_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 3
    functionsReached:
    - fr_strerror_printf
    - fr_value_box_bstrndup
    - fr_value_box_alloc
    - fr_value_box_list_insert_head
    - fr_value_box_cast
    - fr_value_box_alloc_null
    - fr_redis_reply_to_value_box
    - unlikely
    - strtod
    - fr_value_box_strdup
    - fr_value_box_bstrndup_shallow
    - fr_strerror_const
    - fr_value_box_list_insert_tail
    - fr_box_strvalue_len
    - fr_value_box_init_null
    - fr_value_box_init
    - talloc_free
    - fr_value_box_list_talloc_free
    - fr_value_box
    linkageType: ''
    returnType: int
    signature: "int fr_redis_reply_to_value_box(TALLOC_CTX *ctx, fr_value_box_t *out,
      redisReply *reply,\n\t\t\t\tfr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t\tbool
      box_error, bool shallow)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/redis/redis.c:377,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:378,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/redis/redis.c:380,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/redis/redis.c:385,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:386,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/redis/redis.c:390,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/redis/redis.c:391,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/redis/redis.c:392,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/redis/redis.c:392,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/redis.c:394,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/redis.c:394,1
    - Dst: tmpl_afrom_attr_str
      Src: /src/freeradius-server/src/lib/redis/redis.c:395,1
    - Dst: REMARKER
      Src: /src/freeradius-server/src/lib/redis/redis.c:403,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/lib/redis/redis.c:403,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/redis/redis.c:407,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/redis/redis.c:409,1
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/redis/redis.c:417,1
    - Dst: fr_redis_reply_to_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:420,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/redis/redis.c:421,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/lib/redis/redis.c:421,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/lib/redis/redis.c:422,1
    - Dst: tmpl_afrom_value_box
      Src: /src/freeradius-server/src/lib/redis/redis.c:427,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/redis/redis.c:432,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:433,1
    - Dst: MAP_VERIFY
      Src: /src/freeradius-server/src/lib/redis/redis.c:437,1
    - Dst: map_list_insert_tail
      Src: /src/freeradius-server/src/lib/redis/redis.c:439,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 6
    argNames:
    - ctx
    - out
    - request
    - key
    - op
    - value
    argTypes:
    - TALLOC_CTX*
    - map_list_t*
    - request_t*
    - redisReply*
    - redisReply*
    - redisReply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 370
    functionDepth: 12
    functionLinenumber: 370
    functionLinenumberEnd: 442
    functionName: fr_redis_reply_to_map
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 1
    functionsReached:
    - fr_redis_reply_to_value_box
    - MAP_VERIFY
    - map_list_insert_tail
    - TALLOC_FREE
    - FR_VALUE_BOX_INITIALISER_NULL
    - RPEDEBUG
    - REDEBUG
    - REMARKER
    - tmpl_attr_tail_da
    - tmpl_afrom_value_box
    - fr_table_str_by_value
    - RDEBUG3
    - talloc_zero
    - tmpl_afrom_attr_str
    - fr_table_value_by_str
    - fr_box_strvalue_len
    - fr_strerror
    - MEM
    linkageType: ''
    returnType: int
    signature: "int fr_redis_reply_to_map(TALLOC_CTX *ctx, map_list_t *out, request_t
      *request,\n\t\t\t  redisReply *key, redisReply *op, redisReply *value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/redis/redis.c:468,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/redis.c:473,1
    - Dst: tmpl_is_attr
      Src: /src/freeradius-server/src/lib/redis/redis.c:473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/redis.c:474,1
    - Dst: tmpl_is_data
      Src: /src/freeradius-server/src/lib/redis/redis.c:474,1
    - Dst: tmpl_print
      Src: /src/freeradius-server/src/lib/redis/redis.c:476,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:478,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/redis.c:478,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/redis/redis.c:483,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/redis/redis.c:483,1
    - Dst: tmpl_value_type
      Src: /src/freeradius-server/src/lib/redis/redis.c:486,1
    - Dst: tmpl_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:489,1
    - Dst: tmpl_value_length
      Src: /src/freeradius-server/src/lib/redis/redis.c:490,1
    - Dst: fr_value_box_aprint
      Src: /src/freeradius-server/src/lib/redis/redis.c:497,1
    - Dst: tmpl_value::tmpl_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:497,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:499,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/lib/redis/redis.c:503,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:509,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/redis/redis.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - pool
    - out
    - out_len
    - map
    argTypes:
    - TALLOC_CTX*
    - char*[]
    - size_t[]
    - map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 513
    functionName: fr_redis_tuple_from_map
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - fr_value_box_aprint
    - talloc_bstrndup
    - talloc_free
    - FR_SBUFF_OUT
    - fr_strerror_printf
    - tmpl_value::tmpl_value
    - fr_table_str_by_value
    - tmpl_is_data
    - tmpl_value_type
    - fr_assert
    - tmpl_value
    - tmpl_value_length
    - strlen
    - talloc_strlen
    - tmpl_is_attr
    - STRINGIFY
    - tmpl_print
    linkageType: ''
    returnType: int
    signature: int fr_redis_tuple_from_map(TALLOC_CTX *pool, char const *out[], size_t
      out_len[], map_t *map)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/redis.c:548,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/lib/redis/redis.c:550,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/lib/redis/redis.c:554,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:555,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/redis.c:560,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/lib/redis/redis.c:573,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/lib/redis/redis.c:574,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/lib/redis/redis.c:588,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:594,1
    - Dst: redisGetReply
      Src: /src/freeradius-server/src/lib/redis/redis.c:604,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:605,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:618,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - pipelined
    - rcode
    - out
    - out_len
    - conn
    argTypes:
    - unsigned int*
    - fr_redis_rcode_t*
    - redisReply*[]
    - size_t
    - fr_redis_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 628
    functionName: fr_redis_pipeline_result
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 4
    functionsReached:
    - fr_strerror_printf
    - fr_redis_reply_free
    - fr_assert
    - fr_strerror_clear
    - fr_redis_command_status
    - redisGetReply
    - fr_strerror_const
    - fr_strerror_printf_push
    linkageType: ''
    returnType: fr_redis_rcode_t
    signature: "fr_redis_rcode_t fr_redis_pipeline_result(unsigned int *pipelined,
      fr_redis_rcode_t *rcode,\n\t\t\t\t\t  redisReply *out[], size_t out_len,\n\t\t\t\t\t
      \ fr_redis_conn_t *conn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/redis.c:648,1
    - Dst: redisCommand
      Src: /src/freeradius-server/src/lib/redis/redis.c:651,1
    - Dst: fr_redis_command_status
      Src: /src/freeradius-server/src/lib/redis/redis.c:652,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:656,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/lib/redis/redis.c:657,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:659,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/redis/redis.c:663,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/redis/redis.c:665,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/redis/redis.c:669,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/redis.c:670,1
    - Dst: strstr
      Src: /src/freeradius-server/src/lib/redis/redis.c:673,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/redis/redis.c:674,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:677,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/lib/redis/redis.c:680,1
    - Dst: fr_redis_reply_free
      Src: /src/freeradius-server/src/lib/redis/redis.c:682,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - out
    - out_len
    - conn
    argTypes:
    - char*
    - size_t
    - fr_redis_conn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 685
    functionName: fr_redis_get_version
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - strchr
    - strstr
    - fr_redis_reply_free
    - fr_table_str_by_value
    - fr_assert
    - strlen
    - fr_redis_command_status
    - fr_strerror_const
    - strlcpy
    - redisCommand
    linkageType: ''
    returnType: fr_redis_rcode_t
    signature: fr_redis_rcode_t fr_redis_get_version(char *out, size_t out_len, fr_redis_conn_t
      *conn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/redis/redis.c:699,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:701,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/redis.c:701,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:706,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/redis/redis.c:712,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:714,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/redis.c:714,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:719,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/lib/redis/redis.c:725,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:727,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/lib/redis/redis.c:727,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/redis/redis.c:732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 737
    functionName: fr_redis_version_num
    functionSourceFile: /src/freeradius-server/src/lib/redis/redis.c
    functionUses: 1
    functionsReached:
    - STRINGIFY
    - fr_strerror_printf
    - strtoul
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_redis_version_num(char const *version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - fr_redis_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: fr_redis_connection_sent_request
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fr_redis_sqn_t
    signature: fr_redis_sqn_t fr_redis_connection_sent_request(fr_redis_handle_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/io.h:110,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/redis/io.h:112,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/redis/io.h:112,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/lib/redis/io.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - h
    - sqn
    argTypes:
    - fr_redis_handle_t*
    - fr_redis_sqn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: fr_redis_connection_ignore_response
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.h
    functionUses: 2
    functionsReached:
    - fr_dlist_insert_tail
    - fr_assert
    - MEM
    - talloc_zero
    linkageType: ''
    returnType: void
    signature: void fr_redis_connection_ignore_response(fr_redis_handle_t *h, fr_redis_sqn_t
      sqn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/io.h:129,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/lib/redis/io.h:131,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/redis/io.h:133,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/lib/redis/io.h:135,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/redis/io.h:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - fr_redis_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: fr_redis_connection_process_response
    functionSourceFile: /src/freeradius-server/src/lib/redis/io.h
    functionUses: 1
    functionsReached:
    - fr_dlist_head
    - fr_assert
    - talloc_free
    - fr_dlist_remove
    linkageType: ''
    returnType: bool
    signature: bool fr_redis_connection_process_response(fr_redis_handle_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - in_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: fr_crc16_xmodem
    functionSourceFile: /src/freeradius-server/src/lib/redis/crc16.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fr_crc16_xmodem(uint8_t const *in, size_t in_len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/kafka/base.c:48,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/lib/kafka/base.c:64,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:64,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:64,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/lib/kafka/base.c:66,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:67,1
    - Dst: cf_pair_to_value_box
      Src: /src/freeradius-server/src/lib/kafka/base.c:74,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/kafka/base.c:86,1
    - Dst: fr_time_delta_to_msec
      Src: /src/freeradius-server/src/lib/kafka/base.c:87,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/kafka/base.c:88,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/kafka/base.c:90,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:93,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/kafka/base.c:101,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/lib/kafka/base.c:111,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:112,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:125,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/kafka/base.c:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - out
    - cp
    - rule
    argTypes:
    - char**
    - CONF_PAIR*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 132
    functionName: kafka_config_parse_single
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - cf_pair_to_value_box
    - FR_VALUE_BOX_INITIALISER_NULL
    - fr_time_delta_to_msec
    - cf_pair_value
    - fr_type_is_string
    - FR_SBUFF_OUT
    - fr_value_box_clear
    - fr_table_value_by_str
    - fr_sbuff_in_sprintf
    linkageType: ''
    returnType: int
    signature: int kafka_config_parse_single(char const **out, CONF_PAIR *cp, conf_parser_t
      const *rule)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_str_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:163,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/kafka/base.c:171,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/lib/kafka/base.c:174,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/kafka/base.c:174,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:175,1
    - Dst: fr_time_delta_to_str
      Src: /src/freeradius-server/src/lib/kafka/base.c:179,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:180,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/kafka/base.c:186,1
    - Dst: fr_size_from_str
      Src: /src/freeradius-server/src/lib/kafka/base.c:189,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/lib/kafka/base.c:189,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:190,1
    - Dst: fr_size_to_str
      Src: /src/freeradius-server/src/lib/kafka/base.c:202,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:203,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:206,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:214,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/kafka/base.c:214,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/kafka/base.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - out
    - parent
    - cs
    - value
    - quote
    - rule
    argTypes:
    - CONF_PAIR**
    - UNUSED*
    - CONF_SECTION*
    - char*
    - fr_token_t
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 218
    functionName: kafka_config_dflt_single
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - fr_sbuff_start
    - cf_log_perr
    - fr_time_delta_from_str
    - FR_SBUFF_IN
    - cf_pair_alloc
    - fr_size_from_str
    - FR_SBUFF_IN_STR
    - fr_size_to_str
    - strlen
    - fr_table_str_by_str_value
    - fr_time_delta_to_str
    - MEM
    - cf_item_mark_parsed
    linkageType: ''
    returnType: int
    signature: "int kafka_config_dflt_single(CONF_PAIR **out, UNUSED void *parent,
      CONF_SECTION *cs, char const *value,\n\t\t\t\t    fr_token_t quote, conf_parser_t
      const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: kafka_noop_parse
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int kafka_noop_parse(UNUSED TALLOC_CTX *ctx, UNUSED void *out, UNUSED
      void *base,\n\t\t\t    UNUSED CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rd_kafka_conf_destroy
      Src: /src/freeradius-server/src/lib/kafka/base.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pconf
    argTypes:
    - rd_kafka_conf_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: _kafka_conf_free
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - rd_kafka_conf_destroy
    linkageType: ''
    returnType: int
    signature: int _kafka_conf_free(rd_kafka_conf_t **pconf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:270,1
    - Dst: rd_kafka_conf_new
      Src: /src/freeradius-server/src/lib/kafka/base.c:270,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:277,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/kafka/base.c:277,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/kafka/base.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - base
    argTypes:
    - TALLOC_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: kafka_conf_get
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - rd_kafka_conf_new
    - MEM
    - talloc
    linkageType: ''
    returnType: fr_kafka_conf_t
    signature: fr_kafka_conf_t *kafka_conf_get(TALLOC_CTX *ctx, void *base)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cf_parent
      Src: /src/freeradius-server/src/lib/kafka/base.c:299,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/kafka/base.c:300,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/kafka/base.c:301,1
    - Dst: kafka_conf_get
      Src: /src/freeradius-server/src/lib/kafka/base.c:306,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:307,1
    - Dst: fr_rule_multi
      Src: /src/freeradius-server/src/lib/kafka/base.c:312,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/kafka/base.c:320,1
    - Dst: cf_pair_count
      Src: /src/freeradius-server/src/lib/kafka/base.c:322,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:325,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/lib/kafka/base.c:325,1
    - Dst: cf_pair_find_next
      Src: /src/freeradius-server/src/lib/kafka/base.c:328,1
    - Dst: kafka_config_parse_single
      Src: /src/freeradius-server/src/lib/kafka/base.c:329,1
    - Dst: cf_item_mark_parsed
      Src: /src/freeradius-server/src/lib/kafka/base.c:330,1
    - Dst: fr_sbuff_array_concat
      Src: /src/freeradius-server/src/lib/kafka/base.c:333,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/kafka/base.c:334,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:337,1
    - Dst: kafka_config_parse_single
      Src: /src/freeradius-server/src/lib/kafka/base.c:340,1
    - Dst: rd_kafka_conf_set
      Src: /src/freeradius-server/src/lib/kafka/base.c:346,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - UNUSED*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 354
    functionName: kafka_config_parse
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - cf_parent
    - kafka_config_parse_single
    - rd_kafka_conf_set
    - cf_log_perr
    - talloc_array
    - talloc_free
    - fr_rule_multi
    - cf_item_mark_parsed
    - fr_sbuff_array_concat
    - cf_pair_find_next
    - fr_assert_msg
    - kafka_conf_get
    - MEM
    - cf_pair_count
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int kafka_config_parse(TALLOC_CTX *ctx, UNUSED void *out, void *base,\n\t\t
      \      CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kafka_conf_get
      Src: /src/freeradius-server/src/lib/kafka/base.c:377,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:378,1
    - Dst: rd_kafka_conf_get
      Src: /src/freeradius-server/src/lib/kafka/base.c:380,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/kafka/base.c:384,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/kafka/base.c:388,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/kafka/base.c:392,1
    - Dst: fr_rule_multi
      Src: /src/freeradius-server/src/lib/kafka/base.c:400,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/lib/kafka/base.c:401,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/kafka/base.c:403,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/kafka/base.c:409,1
    - Dst: fr_sbuff_out_unescape_until
      Src: /src/freeradius-server/src/lib/kafka/base.c:420,1
    - Dst: kafka_config_dflt_single
      Src: /src/freeradius-server/src/lib/kafka/base.c:421,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:421,1
    - Dst: fr_sbuff_advance
      Src: /src/freeradius-server/src/lib/kafka/base.c:426,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/kafka/base.c:426,1
    - Dst: fr_sbuff_set_to_start
      Src: /src/freeradius-server/src/lib/kafka/base.c:431,1
    - Dst: kafka_config_dflt_single
      Src: /src/freeradius-server/src/lib/kafka/base.c:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - out
    - parent
    - cs
    - quote
    - rule
    argTypes:
    - CONF_PAIR**
    - void*
    - CONF_SECTION*
    - fr_token_t
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 367
    functionDepth: 6
    functionLinenumber: 367
    functionLinenumberEnd: 442
    functionName: kafka_config_dflt
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - kafka_config_dflt_single
    - fr_sbuff_start
    - fr_sbuff_advance
    - fr_sbuff_set_to_start
    - FR_SBUFF_OUT
    - fr_rule_multi
    - FR_SBUFF_IN
    - rd_kafka_conf_get
    - cf_log_debug
    - fr_assert_msg
    - strlen
    - kafka_conf_get
    - fr_sbuff_out_unescape_until
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int kafka_config_dflt(CONF_PAIR **out, void *parent, CONF_SECTION *cs,
      fr_token_t quote, conf_parser_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/kafka/base.c:455,1
    - Dst: kafka_conf_get
      Src: /src/freeradius-server/src/lib/kafka/base.c:459,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:460,1
    - Dst: rd_kafka_conf_set
      Src: /src/freeradius-server/src/lib/kafka/base.c:462,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/kafka/base.c:462,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:462,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - UNUSED*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 468
    functionName: kafka_config_raw_parse
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - cf_log_perr
    - cf_pair_value
    - fr_assert_msg
    - kafka_conf_get
    - rd_kafka_conf_set
    linkageType: ''
    returnType: int
    signature: "int kafka_config_raw_parse(TALLOC_CTX *ctx, UNUSED void *out, void
      *base,\n\t\t\t   CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rd_kafka_topic_conf_destroy
      Src: /src/freeradius-server/src/lib/kafka/base.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ktc
    argTypes:
    - fr_kafka_topic_conf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: _kafka_topic_conf_free
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - rd_kafka_topic_conf_destroy
    linkageType: ''
    returnType: int
    signature: int _kafka_topic_conf_free(fr_kafka_topic_conf_t *ktc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:498,1
    - Dst: talloc
      Src: /src/freeradius-server/src/lib/kafka/base.c:498,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:499,1
    - Dst: rd_kafka_topic_conf_new
      Src: /src/freeradius-server/src/lib/kafka/base.c:499,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/kafka/base.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: kafka_topic_conf_alloc
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - rd_kafka_topic_conf_new
    - MEM
    - talloc
    linkageType: ''
    returnType: fr_kafka_topic_conf_t
    signature: fr_kafka_topic_conf_t *kafka_topic_conf_alloc(TALLOC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/kafka/base.c:524,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:529,1
    - Dst: kafka_config_parse_single
      Src: /src/freeradius-server/src/lib/kafka/base.c:530,1
    - Dst: rd_kafka_topic_conf_set
      Src: /src/freeradius-server/src/lib/kafka/base.c:535,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - UNUSED
    - UNUSED*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 520
    functionDepth: 5
    functionLinenumber: 520
    functionLinenumberEnd: 543
    functionName: kafka_topic_config_parse
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_log_perr
    - kafka_config_parse_single
    - fr_assert_msg
    - rd_kafka_topic_conf_set
    linkageType: ''
    returnType: int
    signature: "int kafka_topic_config_parse(UNUSED TALLOC_CTX *ctx, UNUSED void *out,
      void *base,\n\t\t\t\t    CONF_ITEM *ci, conf_parser_t const *rule)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:566,1
    - Dst: rd_kafka_topic_conf_get
      Src: /src/freeradius-server/src/lib/kafka/base.c:568,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/kafka/base.c:572,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/kafka/base.c:576,1
    - Dst: cf_log_debug
      Src: /src/freeradius-server/src/lib/kafka/base.c:580,1
    - Dst: kafka_config_dflt_single
      Src: /src/freeradius-server/src/lib/kafka/base.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - out
    - parent
    - cs
    - quote
    - rule
    argTypes:
    - CONF_PAIR**
    - void*
    - CONF_SECTION*
    - fr_token_t
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 556
    functionDepth: 6
    functionLinenumber: 556
    functionLinenumberEnd: 590
    functionName: kafka_topic_config_dflt
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - kafka_config_dflt_single
    - cf_log_debug
    - fr_assert_msg
    - cf_log_err
    - rd_kafka_topic_conf_get
    linkageType: ''
    returnType: int
    signature: int kafka_topic_config_dflt(CONF_PAIR **out, void *parent, CONF_SECTION
      *cs, fr_token_t quote, conf_parser_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/lib/kafka/base.c:601,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:605,1
    - Dst: rd_kafka_topic_conf_set
      Src: /src/freeradius-server/src/lib/kafka/base.c:607,1
    - Dst: cf_pair_attr
      Src: /src/freeradius-server/src/lib/kafka/base.c:607,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/lib/kafka/base.c:607,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/lib/kafka/base.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - UNUSED
    - UNUSED*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 613
    functionName: kafka_topic_config_raw_parse
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_attr
    - cf_log_perr
    - cf_pair_value
    - fr_assert_msg
    - rd_kafka_topic_conf_set
    linkageType: ''
    returnType: int
    signature: "int kafka_topic_config_raw_parse(UNUSED TALLOC_CTX *ctx, UNUSED void
      *out, void *base,\n\t\t\t\t CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/lib/kafka/base.c:620,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/kafka/base.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 621
    functionName: _kafka_topic_cmp
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _kafka_topic_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/lib/kafka/base.c:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - kc
    - name
    argTypes:
    - fr_kafka_conf_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: kafka_topic_conf_find
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    linkageType: ''
    returnType: fr_kafka_topic_t
    signature: fr_kafka_topic_t *kafka_topic_conf_find(fr_kafka_conf_t const *kc,
      char const *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/lib/kafka/base.c:642,1
    - Dst: cf_section_name1
      Src: /src/freeradius-server/src/lib/kafka/base.c:645,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/lib/kafka/base.c:647,1
    - Dst: kafka_conf_get
      Src: /src/freeradius-server/src/lib/kafka/base.c:649,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:651,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/lib/kafka/base.c:651,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/kafka/base.c:659,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/kafka/base.c:659,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/kafka/base.c:660,1
    - Dst: kafka_topic_conf_alloc
      Src: /src/freeradius-server/src/lib/kafka/base.c:661,1
    - Dst: cf_section_parse
      Src: /src/freeradius-server/src/lib/kafka/base.c:669,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/kafka/base.c:670,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/lib/kafka/base.c:674,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/lib/kafka/base.c:675,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/kafka/base.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - base
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 639
    functionDepth: 9
    functionLinenumber: 639
    functionLinenumberEnd: 689
    functionName: kafka_topic_subsection_parse
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - cf_section_parse
    - fr_rb_inline_talloc_alloc
    - talloc_strdup
    - cf_log_err
    - talloc_zero
    - fr_assert_msg
    - fr_rb_insert
    - kafka_topic_conf_alloc
    - kafka_conf_get
    - MEM
    - cf_section_name1
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: "int kafka_topic_subsection_parse(TALLOC_CTX *ctx, void *out, void
      *base,\n\t\t\t\t CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - rk
    - level
    - fac
    - buf
    argTypes:
    - UNUSED*
    - UNUSED
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1197
    functionName: _kafka_null_log_cb
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _kafka_null_log_cb(UNUSED rd_kafka_t const *rk, UNUSED int level,\n\t\t\t
      \      UNUSED char const *fac, UNUSED char const *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rd_kafka_conf_new
      Src: /src/freeradius-server/src/lib/kafka/base.c:1218,1
    - Dst: rd_kafka_conf_set_log_cb
      Src: /src/freeradius-server/src/lib/kafka/base.c:1219,1
    - Dst: rd_kafka_new
      Src: /src/freeradius-server/src/lib/kafka/base.c:1221,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/kafka/base.c:1223,1
    - Dst: rd_kafka_destroy
      Src: /src/freeradius-server/src/lib/kafka/base.c:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1230
    functionName: fr_kafka_init
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 1
    functionsReached:
    - rd_kafka_destroy
    - rd_kafka_conf_new
    - rd_kafka_new
    - fr_strerror_printf
    - rd_kafka_conf_set_log_cb
    linkageType: ''
    returnType: int
    signature: int fr_kafka_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1242
    functionName: fr_kafka_free
    functionSourceFile: /src/freeradius-server/src/lib/kafka/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fr_kafka_free(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/json/jpath.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - request
    - out
    - outlen
    - in
    - arg
    argTypes:
    - UNUSED*
    - char*
    - size_t
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: fr_jpath_escape_func
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_jpath_escape_func(UNUSED request_t *request, char *out,
      size_t outlen, char const *in, UNUSED void *arg)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:157,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/lib/json/jpath.c:158,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:171,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:173,1
    - Dst: json_object_get_array
      Src: /src/freeradius-server/src/lib/json/jpath.c:174,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:178,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:190,1
    - Dst: json_object_get_array
      Src: /src/freeradius-server/src/lib/json/jpath.c:191,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:214,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:215,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:223,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:224,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:233,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:245,1
    - Dst: json_object_get_array
      Src: /src/freeradius-server/src/lib/json/jpath.c:248,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:250,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:256,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:259,1
    - Dst: UNUSED_VAR
      Src: /src/freeradius-server/src/lib/json/jpath.c:261,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:263,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:279,1
    - Dst: json_object_get_array
      Src: /src/freeradius-server/src/lib/json/jpath.c:285,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:287,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:296,1
    - Dst: json_object_is_type
      Src: /src/freeradius-server/src/lib/json/jpath.c:302,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:308,1
    - Dst: UNUSED_VAR
      Src: /src/freeradius-server/src/lib/json/jpath.c:310,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:312,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:321,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:335,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:343,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/jpath.c:352,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/lib/json/jpath.c:352,1
    - Dst: fr_json_object_to_value_box
      Src: /src/freeradius-server/src/lib/json/jpath.c:353,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/json/jpath.c:354,1
    - Dst: fr_value_box_cast_in_place
      Src: /src/freeradius-server/src/lib/json/jpath.c:358,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/json/jpath.c:359,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/lib/json/jpath.c:363,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 147
    argCount: 6
    argNames:
    - ctx
    - tail
    - dst_type
    - dst_enumv
    - object
    - jpath
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - fr_type_t
    - fr_dict_attr_t*
    - json_object*
    - fr_jpath_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 365
    functionName: jpath_evaluate
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 1
    functionsReached:
    - json_object_get_array
    - json_object_is_type
    - UNUSED_VAR
    - json_object_object_get_ex
    - fr_value_box_cast_in_place
    - talloc_free
    - jpath_evaluate
    - fr_value_box_list_insert_tail
    - fr_assert
    - MEM
    - fr_value_box_alloc_null
    - fr_json_object_to_value_box
    linkageType: ''
    returnType: int
    signature: "int jpath_evaluate(TALLOC_CTX *ctx, fr_value_box_list_t *tail,\n\t\t\t
      \ fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t  json_object
      *object, fr_jpath_node_t const *jpath)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:259,1
    - Dst: UNUSED_VAR
      Src: /src/freeradius-server/src/lib/json/jpath.c:261,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 7
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: json_object_object_foreach
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - jpath_evaluate
    - fr_assert
    - UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: void json_object_object_foreach(object, field_name, field_value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:308,1
    - Dst: UNUSED_VAR
      Src: /src/freeradius-server/src/lib/json/jpath.c:310,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 7
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: json_object_object_foreach
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - jpath_evaluate
    - fr_assert
    - UNUSED_VAR
    linkageType: ''
    returnType: void
    signature: void json_object_object_foreach(object, field_name, field_value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:395,1
    - Dst: jpath_evaluate
      Src: /src/freeradius-server/src/lib/json/jpath.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - ctx
    - out
    - dst_type
    - dst_enumv
    - root
    - jpath
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_list_t*
    - fr_type_t
    - fr_dict_attr_t*
    - json_object*
    - fr_jpath_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 7
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: fr_jpath_evaluate_leaf
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 1
    functionsReached:
    - jpath_evaluate
    - fr_assert
    linkageType: ''
    returnType: int
    signature: "int fr_jpath_evaluate_leaf(TALLOC_CTX *ctx, fr_value_box_list_t *out,\n\t\t\t
      \  fr_type_t dst_type, fr_dict_attr_t const *dst_enumv,\n\t\t\t   json_object
      *root, fr_jpath_node_t const *jpath)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/lib/json/jpath.c:417,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:421,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:425,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:429,1
    - Dst: fr_jpath_escape_func
      Src: /src/freeradius-server/src/lib/json/jpath.c:436,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:437,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:448,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:451,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:456,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:458,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:461,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:463,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:465,1
    - Dst: talloc_asprintf_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:468,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:470,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:474,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:477,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:484,1
    - Dst: talloc_strdup_append_buffer
      Src: /src/freeradius-server/src/lib/json/jpath.c:488,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:494,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - ctx
    - head
    argTypes:
    - TALLOC_CTX*
    - fr_jpath_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 499
    functionName: fr_jpath_asprint
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 1
    functionsReached:
    - talloc_asprintf_append_buffer
    - fr_jpath_escape_func
    - talloc_strdup_append_buffer
    - fr_assert
    - talloc_zero_array
    linkageType: ''
    returnType: char
    signature: char *fr_jpath_asprint(TALLOC_CTX *ctx, fr_jpath_node_t const *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jpath_selector_t *selector
    - in
    - size_t
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: jpath_filter_expr_parse
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t jpath_filter_expr_parse(UNUSED jpath_selector_t *selector,
      UNUSED char const *in, UNUSED size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - jpath_selector_t *selector
    - in
    - size_t
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: jpath_expr_parse
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t jpath_expr_parse(UNUSED jpath_selector_t *selector, UNUSED
      char const *in, UNUSED size_t inlen)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:564,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:570,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:575,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/json/jpath.c:583,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/json/jpath.c:590,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:594,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/json/jpath.c:614,1
    - Dst: strtol
      Src: /src/freeradius-server/src/lib/json/jpath.c:634,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:636,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:641,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 3
    argNames:
    - selector
    - in
    - inlen
    argTypes:
    - jpath_selector_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 647
    functionName: jpath_array_parse
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - strtol
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t jpath_array_parse(jpath_selector_t *selector, char const *in,
      size_t inlen)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:667,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/lib/json/jpath.c:671,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:673,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/json/jpath.c:682,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/json/jpath.c:699,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:718,1
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/lib/json/jpath.c:721,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - node
    - in
    - inlen
    argTypes:
    - fr_jpath_node_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 725
    functionName: jpath_field_parse
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_bstrndup
    - memchr
    - fr_utf8_char
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t jpath_field_parse(fr_jpath_node_t *node, char const *in, size_t
      inlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:743,1
    - Dst: jpath_filter_expr_parse
      Src: /src/freeradius-server/src/lib/json/jpath.c:753,1
    - Dst: jpath_expr_parse
      Src: /src/freeradius-server/src/lib/json/jpath.c:757,1
    - Dst: jpath_array_parse
      Src: /src/freeradius-server/src/lib/json/jpath.c:761,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:770,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/json/jpath.c:780,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/json/jpath.c:789,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:791,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - node
    - in
    - inlen
    argTypes:
    - fr_jpath_node_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 801
    functionName: jpath_selector_parse
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 0
    functionsReached:
    - jpath_array_parse
    - fr_strerror_printf
    - jpath_filter_expr_parse
    - fr_assert
    - talloc_zero
    - fr_strerror_const
    - jpath_expr_parse
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t jpath_selector_parse(fr_jpath_node_t *node, char const *in,
      size_t inlen)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:833,1
    - Dst: NODE_NEW
      Src: /src/freeradius-server/src/lib/json/jpath.c:845,1
    - Dst: NODE_NEW
      Src: /src/freeradius-server/src/lib/json/jpath.c:851,1
    - Dst: NODE_NEW
      Src: /src/freeradius-server/src/lib/json/jpath.c:867,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/json/jpath.c:872,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/lib/json/jpath.c:875,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/json/jpath.c:891,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:899,1
    - Dst: jpath_field_parse
      Src: /src/freeradius-server/src/lib/json/jpath.c:922,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:929,1
    - Dst: jpath_selector_parse
      Src: /src/freeradius-server/src/lib/json/jpath.c:934,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/jpath.c:941,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/jpath.c:945,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 4
    argNames:
    - ctx
    - head
    - in
    - inlen
    argTypes:
    - TALLOC_CTX*
    - fr_jpath_node_t**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 951
    functionName: fr_jpath_parse
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 4
    functionsReached:
    - NODE_NEW
    - TALLOC_FREE
    - jpath_field_parse
    - fr_strerror_printf
    - jpath_selector_parse
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_jpath_parse(TALLOC_CTX *ctx, fr_jpath_node_t **head, char
      const *in, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: NODE_NEW
    functionSourceFile: /src/freeradius-server/src/lib/json/jpath.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODE_NEW(_node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_put
      Src: /src/freeradius-server/src/lib/json/json.c:87,1
    - Dst: fr_assert_fail
      Src: /src/freeradius-server/src/lib/json/json.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: json_object_put_assert
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 0
    functionsReached:
    - json_object_put
    - fr_assert_fail
    linkageType: ''
    returnType: void
    signature: void json_object_put_assert(json_object *obj)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: json_object_get_type
      Src: /src/freeradius-server/src/lib/json/json.c:110,1
    - Dst: json_object_get_string
      Src: /src/freeradius-server/src/lib/json/json.c:117,1
    - Dst: json_object_get_string_len
      Src: /src/freeradius-server/src/lib/json/json.c:118,1
    - Dst: fr_dict_valid_name
      Src: /src/freeradius-server/src/lib/json/json.c:122,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/lib/json/json.c:127,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:129,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/lib/json/json.c:129,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/json/json.c:137,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:142,1
    - Dst: json_object_get_double
      Src: /src/freeradius-server/src/lib/json/json.c:142,1
    - Dst: json_object_get_int
      Src: /src/freeradius-server/src/lib/json/json.c:154,1
    - Dst: json_object_get_int64
      Src: /src/freeradius-server/src/lib/json/json.c:156,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:158,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:160,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:164,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:166,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:168,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:170,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:172,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:174,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:181,1
    - Dst: json_object_get_boolean
      Src: /src/freeradius-server/src/lib/json/json.c:181,1
    - Dst: json_object_to_json_string
      Src: /src/freeradius-server/src/lib/json/json.c:188,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/json/json.c:190,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/json/json.c:190,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 5
    argNames:
    - ctx
    - out
    - object
    - enumv
    - tainted
    argTypes:
    - TALLOC_CTX*
    - fr_value_box_t*
    - json_object*
    - fr_dict_attr_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 198
    functionName: fr_json_object_to_value_box
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - fr_dict_valid_name
    - unlikely
    - json_object_to_json_string
    - json_object_get_int64
    - json_object_get_boolean
    - json_object_get_string
    - json_object_get_string_len
    - fr_value_box_bstrndup
    - json_object_get_int
    - fr_value_box
    - json_object_get_double
    - strlen
    - fr_dict_enum_by_name
    - json_object_get_type
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: "int fr_json_object_to_value_box(TALLOC_CTX *ctx, fr_value_box_t *out,
      json_object *object,\n\t\t\t\tfr_dict_attr_t const *enumv, bool tainted)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/lib/json/json.c:214,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/lib/json/json.c:215,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/lib/json/json.c:223,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/json/json.c:225,1
    - Dst: json_object_new_string_len
      Src: /src/freeradius-server/src/lib/json/json.c:227,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/json/json.c:227,1
    - Dst: json_object_new_string_len
      Src: /src/freeradius-server/src/lib/json/json.c:231,1
    - Dst: json_object_new_string_len
      Src: /src/freeradius-server/src/lib/json/json.c:234,1
    - Dst: json_object_new_boolean
      Src: /src/freeradius-server/src/lib/json/json.c:237,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/lib/json/json.c:240,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/lib/json/json.c:243,1
    - Dst: json_object_new_int64
      Src: /src/freeradius-server/src/lib/json/json.c:247,1
    - Dst: json_object_new_int64
      Src: /src/freeradius-server/src/lib/json/json.c:251,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/lib/json/json.c:255,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/lib/json/json.c:259,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/lib/json/json.c:262,1
    - Dst: json_object_new_int
      Src: /src/freeradius-server/src/lib/json/json.c:265,1
    - Dst: json_object_new_int64
      Src: /src/freeradius-server/src/lib/json/json.c:269,1
    - Dst: json_object_new_int64
      Src: /src/freeradius-server/src/lib/json/json.c:272,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - data
    argTypes:
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 279
    functionName: json_object_from_value_box
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 0
    functionsReached:
    - fr_value_box_print
    - json_object_new_string
    - json_object_new_int
    - fr_dict_enum_by_value
    - json_object_new_string_len
    - FR_SBUFF_OUT
    - fr_sbuff_used
    - json_object_new_int64
    - json_object_new_boolean
    - fr_strerror_const
    linkageType: ''
    returnType: json_object
    signature: json_object *json_object_from_value_box(fr_value_box_t const *data)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/json/json.c:293,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:297,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:301,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:314,1
    - Dst: FR_SBUFF_IN_BSTRNCPY_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:321,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:325,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:329,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:333,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:337,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:341,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:345,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:349,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:353,1
    - Dst: FR_SBUFF_IN_STRCPY_LITERAL_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:357,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/lib/json/json.c:358,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/json/json.c:358,1
    - Dst: FR_SBUFF_IN_BSTRNCPY_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:365,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:366,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:371,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:375,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:379,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:383,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:387,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:391,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:395,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:399,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:403,1
    - Dst: json_object_new_double
      Src: /src/freeradius-server/src/lib/json/json.c:415,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:416,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/json/json.c:417,1
    - Dst: json_object_to_json_string
      Src: /src/freeradius-server/src/lib/json/json.c:417,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:418,1
    - Dst: json_object_new_double
      Src: /src/freeradius-server/src/lib/json/json.c:429,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:430,1
    - Dst: fr_sbuff_in_strcpy
      Src: /src/freeradius-server/src/lib/json/json.c:431,1
    - Dst: json_object_to_json_string
      Src: /src/freeradius-server/src/lib/json/json.c:431,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:432,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:452,1
    - Dst: fr_value_box_print
      Src: /src/freeradius-server/src/lib/json/json.c:453,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:454,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:461,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/lib/json/json.c:465,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/json/json.c:465,1
    - Dst: fr_sbuff_set
      Src: /src/freeradius-server/src/lib/json/json.c:469,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 132
    argCount: 3
    argNames:
    - out
    - vb
    - include_quotes
    argTypes:
    - fr_sbuff_t*
    - fr_value_box_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 470
    functionName: fr_json_str_from_value
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - FR_SBUFF_IN_STRCPY_LITERAL_RETURN
    - unlikely
    - json_object_to_json_string
    - fr_value_box_print
    - fr_sbuff_in_strcpy
    - fr_base16_encode
    - fr_strerror_printf
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_DBUFF_TMP
    - json_object_new_double
    - json_object_put_assert
    - FR_SBUFF
    - FR_SBUFF_IN_BSTRNCPY_RETURN
    - fr_strerror_const
    - fr_sbuff_set
    - FR_SBUFF_IN_SPRINTF_RETURN
    - fr_type_to_str
    linkageType: ''
    returnType: fr_slen_t
    signature: fr_slen_t fr_json_str_from_value(fr_sbuff_t *out, fr_value_box_t const
      *vb, bool include_quotes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/json/json.c:478,1
    - Dst: json_c_version
      Src: /src/freeradius-server/src/lib/json/json.c:478,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/json/json.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 482
    functionName: fr_json_version_print
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 2
    functionsReached:
    - json_c_version
    - INFO
    linkageType: ''
    returnType: void
    signature: void fr_json_version_print(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:503,1
    - Dst: json_object_from_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:503,1
    - Dst: FR_SBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/lib/json/json.c:516,1
    - Dst: fr_base16_encode
      Src: /src/freeradius-server/src/lib/json/json.c:523,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/json/json.c:523,1
    - Dst: fr_base64_encode
      Src: /src/freeradius-server/src/lib/json/json.c:530,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/lib/json/json.c:530,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:537,1
    - Dst: json_object_new_string_len
      Src: /src/freeradius-server/src/lib/json/json.c:537,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:537,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/lib/json/json.c:537,1
    - Dst: FR_VALUE_BOX_INITIALISER_NULL
      Src: /src/freeradius-server/src/lib/json/json.c:547,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:549,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/lib/json/json.c:549,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:551,1
    - Dst: json_object_from_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:551,1
    - Dst: fr_value_box_clear
      Src: /src/freeradius-server/src/lib/json/json.c:552,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:557,1
    - Dst: json_object_from_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - out
    - vb
    - format
    argTypes:
    - TALLOC_CTX*
    - json_object**
    - fr_value_box_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 559
    functionName: json_afrom_value_box
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_TALLOC_THREAD_LOCAL
    - fr_sbuff_start
    - unlikely
    - FR_VALUE_BOX_INITIALISER_NULL
    - fr_base64_encode
    - json_object_new_string_len
    - fr_base16_encode
    - fr_sbuff_used
    - fr_value_box_clear
    - json_object_from_value_box
    - FR_DBUFF_TMP
    - fr_value_box_cast
    - MEM
    linkageType: ''
    returnType: int
    signature: "int json_afrom_value_box(TALLOC_CTX *ctx, json_object **out,\n\t\t\t
      fr_value_box_t const *vb, fr_json_format_t const *format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:583,1
    - Dst: fr_pair_value_enum_box
      Src: /src/freeradius-server/src/lib/json/json.c:588,1
    - Dst: json_afrom_value_box
      Src: /src/freeradius-server/src/lib/json/json.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - vp
    - format
    argTypes:
    - TALLOC_CTX*
    - json_object**
    - fr_pair_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 578
    functionDepth: 6
    functionLinenumber: 578
    functionLinenumberEnd: 592
    functionName: json_afrom_pair
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_pair_value_enum_box
    - json_afrom_value_box
    linkageType: ''
    returnType: int
    signature: "int json_afrom_pair(TALLOC_CTX *ctx, json_object **out,\n\t\t\t   fr_pair_t
      *vp, fr_json_format_t const *format)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF
      Src: /src/freeradius-server/src/lib/json/json.c:611,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:614,1
    - Dst: FR_SBUFF_IN_CHAR_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:615,1
    - Dst: FR_SBUFF_IN_BSTRNCPY_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:618,1
    - Dst: FR_SBUFF_SET_RETURN
      Src: /src/freeradius-server/src/lib/json/json.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - out
    - da
    - format
    argTypes:
    - fr_sbuff_t*
    - fr_dict_attr_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 621
    functionName: attr_name_with_prefix
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 0
    functionsReached:
    - FR_SBUFF_IN_CHAR_RETURN
    - FR_SBUFF_SET_RETURN
    - FR_SBUFF
    - FR_SBUFF_IN_BSTRNCPY_RETURN
    - FR_SBUFF_IN_STRCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t attr_name_with_prefix(fr_sbuff_t *out, fr_dict_attr_t const
      *da, fr_json_format_t const *format)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:636,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/json/json.c:646,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/json/json.c:650,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/json/json.c:656,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/json/json.c:660,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/json/json.c:664,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/json/json.c:669,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:673,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - format
    - verbose
    argTypes:
    - fr_json_format_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 676
    functionName: fr_json_format_verify
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - ERROR
    - fr_assert
    - WARN
    linkageType: ''
    returnType: bool
    signature: bool fr_json_format_verify(fr_json_format_t const *format, bool verbose)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:725,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:726,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:728,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/lib/json/json.c:728,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/json/json.c:730,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/json/json.c:732,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/json/json.c:741,1
    - Dst: attr_name_with_prefix
      Src: /src/freeradius-server/src/lib/json/json.c:742,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:744,1
    - Dst: json_afrom_pair
      Src: /src/freeradius-server/src/lib/json/json.c:750,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:751,1
    - Dst: json_object_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:772,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:773,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/lib/json/json.c:794,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:794,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:798,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/lib/json/json.c:798,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/lib/json/json.c:799,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:799,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:804,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/lib/json/json.c:804,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/json/json.c:804,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:805,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:811,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:811,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:812,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:813,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:820,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/lib/json/json.c:828,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/lib/json/json.c:828,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:829,1
    - Dst: json_object_get_type
      Src: /src/freeradius-server/src/lib/json/json.c:842,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:846,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:846,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:847,1
    - Dst: json_object_get
      Src: /src/freeradius-server/src/lib/json/json.c:847,1
    - Dst: json_object_object_del
      Src: /src/freeradius-server/src/lib/json/json.c:848,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:849,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:853,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - ctx
    - vps
    - format
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 718
    functionDepth: 7
    functionLinenumber: 718
    functionLinenumberEnd: 857
    functionName: json_object_afrom_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - attr_name_with_prefix
    - fr_cond_assert
    - json_object_new_array
    - json_object_object_add_ex
    - json_object_get_type
    - fr_type_to_str
    - MEM
    - unlikely
    - fr_sbuff_init_in
    - json_object_put_assert
    - fr_strerror_const
    - json_object_new_object
    - json_object_get
    - json_object_object_get_ex
    - fr_assert
    - json_object_array_add
    - json_object_object_add
    - json_afrom_pair
    - json_object_object_del
    - json_object_new_string
    - fr_pair_list_next
    - fr_pair_list_head
    - json_object_afrom_pair_list
    linkageType: ''
    returnType: json_object
    signature: json_object *json_object_afrom_pair_list(TALLOC_CTX *ctx, fr_pair_list_t
      *vps, fr_json_format_t const *format)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:893,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:894,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:896,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/lib/json/json.c:896,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/json/json.c:898,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/json/json.c:900,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/json/json.c:911,1
    - Dst: attr_name_with_prefix
      Src: /src/freeradius-server/src/lib/json/json.c:912,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:914,1
    - Dst: json_afrom_pair
      Src: /src/freeradius-server/src/lib/json/json.c:920,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:921,1
    - Dst: json_simple_obj_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:942,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:943,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/lib/json/json.c:954,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:954,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:960,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:960,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/lib/json/json.c:961,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:961,1
    - Dst: json_object_get_type
      Src: /src/freeradius-server/src/lib/json/json.c:972,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:981,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:981,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:982,1
    - Dst: json_object_get
      Src: /src/freeradius-server/src/lib/json/json.c:982,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/lib/json/json.c:988,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:988,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/lib/json/json.c:997,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:997,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:1002,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 3
    argNames:
    - ctx
    - vps
    - format
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 884
    functionDepth: 7
    functionLinenumber: 884
    functionLinenumberEnd: 1007
    functionName: json_simple_obj_afrom_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - attr_name_with_prefix
    - json_object_new_array
    - json_object_get_type
    - MEM
    - unlikely
    - fr_sbuff_init_in
    - json_object_put_assert
    - fr_strerror_const
    - json_object_new_object
    - json_object_get
    - json_object_object_get_ex
    - fr_assert
    - json_object_array_add
    - json_object_object_add
    - json_afrom_pair
    - fr_pair_list_next
    - json_simple_obj_afrom_pair_list
    - fr_pair_list_head
    linkageType: ''
    returnType: json_object
    signature: "json_object *json_simple_obj_afrom_pair_list(TALLOC_CTX *ctx, fr_pair_list_t
      *vps,\n\t\t\t\t\t\t fr_json_format_t const *format)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1033,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1034,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1036,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:1036,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/lib/json/json.c:1043,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/json/json.c:1046,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/json/json.c:1048,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/json/json.c:1060,1
    - Dst: attr_name_with_prefix
      Src: /src/freeradius-server/src/lib/json/json.c:1061,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1063,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1064,1
    - Dst: json_afrom_pair
      Src: /src/freeradius-server/src/lib/json/json.c:1070,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:1071,1
    - Dst: json_array_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1077,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/json/json.c:1078,1
    - Dst: json_object_object_get_ex
      Src: /src/freeradius-server/src/lib/json/json.c:1090,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:1090,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1102,1
    - Dst: json_object_new_object
      Src: /src/freeradius-server/src/lib/json/json.c:1102,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:1103,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1108,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/lib/json/json.c:1108,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:1108,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:1109,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1111,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/lib/json/json.c:1111,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/lib/json/json.c:1111,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:1112,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1121,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:1121,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:1125,1
    - Dst: json_object_object_add
      Src: /src/freeradius-server/src/lib/json/json.c:1130,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:1130,1
    - Dst: json_object_get
      Src: /src/freeradius-server/src/lib/json/json.c:1130,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:1136,1
    - Dst: json_object_object_add_ex
      Src: /src/freeradius-server/src/lib/json/json.c:1141,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1150,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - vps
    - format
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1024
    functionDepth: 7
    functionLinenumber: 1024
    functionLinenumberEnd: 1154
    functionName: json_array_afrom_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - attr_name_with_prefix
    - json_object_new_array
    - json_array_afrom_pair_list
    - json_object_object_add_ex
    - fr_type_to_str
    - MEM
    - unlikely
    - fr_sbuff_init_in
    - json_object_put_assert
    - fr_strerror_const
    - json_object_new_object
    - json_object_get
    - json_object_object_get_ex
    - fr_assert
    - json_object_array_add
    - json_object_object_add
    - json_afrom_pair
    - json_object_new_string
    - fr_pair_list_next
    - fr_pair_list_head
    linkageType: ''
    returnType: struct json_object
    signature: "struct json_object *json_array_afrom_pair_list(TALLOC_CTX *ctx, fr_pair_list_t
      *vps,\n\t\t\t\t\t\t      fr_json_format_t const *format)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1179,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1180,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1182,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:1182,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/json/json.c:1188,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/json/json.c:1190,1
    - Dst: json_afrom_pair
      Src: /src/freeradius-server/src/lib/json/json.c:1197,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/json/json.c:1198,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1200,1
    - Dst: json_value_array_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1206,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:1214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - vps
    - format
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1172
    functionDepth: 7
    functionLinenumber: 1172
    functionLinenumberEnd: 1218
    functionName: json_value_array_afrom_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - json_value_array_afrom_pair_list
    - fr_pair_list_next
    - json_object_new_array
    - fr_assert
    - fr_pair_list_head
    - json_object_put_assert
    - json_object_array_add
    - json_afrom_pair
    - fr_strerror_const
    - MEM
    linkageType: ''
    returnType: struct json_object
    signature: "struct json_object *json_value_array_afrom_pair_list(TALLOC_CTX *ctx,
      fr_pair_list_t *vps,\n\t\t\t\t\t\t\t    fr_json_format_t const *format)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1244,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1245,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1247,1
    - Dst: json_object_new_array
      Src: /src/freeradius-server/src/lib/json/json.c:1247,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/lib/json/json.c:1252,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/lib/json/json.c:1254,1
    - Dst: fr_sbuff_init_in
      Src: /src/freeradius-server/src/lib/json/json.c:1260,1
    - Dst: attr_name_with_prefix
      Src: /src/freeradius-server/src/lib/json/json.c:1261,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1263,1
    - Dst: json_object_new_string
      Src: /src/freeradius-server/src/lib/json/json.c:1266,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/lib/json/json.c:1266,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:1273,1
    - Dst: json_attr_array_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1274,1
    - Dst: json_object_array_add
      Src: /src/freeradius-server/src/lib/json/json.c:1282,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - vps
    - format
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1286
    functionName: json_attr_array_afrom_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 1
    functionsReached:
    - fr_sbuff_start
    - attr_name_with_prefix
    - json_object_new_string
    - fr_pair_list_next
    - json_attr_array_afrom_pair_list
    - json_object_new_array
    - fr_sbuff_init_in
    - fr_assert
    - fr_pair_list_head
    - json_object_put_assert
    - json_object_array_add
    - MEM
    linkageType: ''
    returnType: struct json_object
    signature: "struct json_object *json_attr_array_afrom_pair_list(TALLOC_CTX *ctx,
      fr_pair_list_t *vps,\n\t\t\t\t\t\t\t   fr_json_format_t const *format)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1332,1
    - Dst: json_object_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1332,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1335,1
    - Dst: json_simple_obj_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1335,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1338,1
    - Dst: json_array_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1338,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1341,1
    - Dst: json_value_array_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1341,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1344,1
    - Dst: json_attr_array_afrom_pair_list
      Src: /src/freeradius-server/src/lib/json/json.c:1344,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1348,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1355,1
    - Dst: json_object_to_json_string_ext
      Src: /src/freeradius-server/src/lib/json/json.c:1355,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/json/json.c:1356,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/lib/json/json.c:1356,1
    - Dst: json_object_put_assert
      Src: /src/freeradius-server/src/lib/json/json.c:1361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - vps
    - format
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_json_format_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1321
    functionDepth: 8
    functionLinenumber: 1321
    functionLinenumberEnd: 1364
    functionName: fr_json_afrom_pair_list
    functionSourceFile: /src/freeradius-server/src/lib/json/json.c
    functionUses: 2
    functionsReached:
    - json_value_array_afrom_pair_list
    - json_object_to_json_string_ext
    - json_simple_obj_afrom_pair_list
    - json_attr_array_afrom_pair_list
    - talloc_strdup
    - json_array_afrom_pair_list
    - fr_assert
    - json_object_put_assert
    - MEM
    - json_object_afrom_pair_list
    linkageType: ''
    returnType: char
    signature: "char *fr_json_afrom_pair_list(TALLOC_CTX *ctx, fr_pair_list_t *vps,\n\t\t\t
      \     fr_json_format_t const *format)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/curl/xlat.c:49,1
    - Dst: curl_easy_escape
      Src: /src/freeradius-server/src/lib/curl/xlat.c:52,1
    - Dst: fr_curl_tmp_handle
      Src: /src/freeradius-server/src/lib/curl/xlat.c:52,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/curl/xlat.c:58,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/curl/xlat.c:60,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/lib/curl/xlat.c:61,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/lib/curl/xlat.c:64,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/curl/xlat.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: fr_curl_xlat_uri_escape
    functionSourceFile: /src/freeradius-server/src/lib/curl/xlat.c
    functionUses: 0
    functionsReached:
    - curl_easy_escape
    - fr_value_box_clear_value
    - fr_value_box_strdup
    - curl_free
    - fr_value_box_list_pop_head
    - strlen
    - fr_curl_tmp_handle
    - fr_dcursor_insert
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t fr_curl_xlat_uri_escape(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t       \t      UNUSED xlat_ctx_t const *xctx, UNUSED request_t
      *request,\n\t\t\t\t      fr_value_box_list_t *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box_list_pop_head
      Src: /src/freeradius-server/src/lib/curl/xlat.c:77,1
    - Dst: curl_easy_unescape
      Src: /src/freeradius-server/src/lib/curl/xlat.c:81,1
    - Dst: fr_curl_tmp_handle
      Src: /src/freeradius-server/src/lib/curl/xlat.c:81,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/curl/xlat.c:83,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/lib/curl/xlat.c:91,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/curl/xlat.c:92,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/lib/curl/xlat.c:96,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/lib/curl/xlat.c:97,1
    - Dst: curl_free
      Src: /src/freeradius-server/src/lib/curl/xlat.c:98,1
    - Dst: fr_dcursor_insert
      Src: /src/freeradius-server/src/lib/curl/xlat.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - xctx
    - request
    - in
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED*
    - UNUSED*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: fr_curl_xlat_uri_unescape
    functionSourceFile: /src/freeradius-server/src/lib/curl/xlat.c
    functionUses: 0
    functionsReached:
    - fr_value_box_clear_value
    - talloc_free
    - curl_free
    - fr_value_box_list_pop_head
    - fr_value_box_bstrndup
    - fr_curl_tmp_handle
    - curl_easy_unescape
    - fr_dcursor_insert
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t fr_curl_xlat_uri_unescape(UNUSED TALLOC_CTX *ctx, fr_dcursor_t
      *out,\n\t\t\t\t\tUNUSED xlat_ctx_t const *xctx, UNUSED request_t *request,\n\t\t\t\t\tfr_value_box_list_t
      *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: FR_CURL_SET_OPTION
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CURL_SET_OPTION(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: FR_CURL_ROPTIONAL_SET_OPTION
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CURL_ROPTIONAL_SET_OPTION(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: FR_CURL_REQUEST_SET_OPTION
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CURL_REQUEST_SET_OPTION(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: CURL_VERSION_BITS
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_VERSION_BITS(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: CURL_AT_LEAST_VERSION
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURL_AT_LEAST_VERSION(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _mandle
    - ','
    - _opt
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: SET_MOPTION
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_MOPTION(_mandle, _opt, _val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_info_read
      Src: /src/freeradius-server/src/lib/curl/io.c:54,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/curl/io.c:63,1
    - Dst: curl_easy_getinfo
      Src: /src/freeradius-server/src/lib/curl/io.c:67,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:78,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/lib/curl/io.c:79,1
    - Dst: curl_multi_remove_handle
      Src: /src/freeradius-server/src/lib/curl/io.c:81,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/curl/io.c:86,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/curl/io.c:92,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/lib/curl/io.c:93,1
    - Dst: curl_multi_remove_handle
      Src: /src/freeradius-server/src/lib/curl/io.c:101,1
    - Dst: unlang_interpret_mark_runnable
      Src: /src/freeradius-server/src/lib/curl/io.c:103,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - mhandle
    - mandle
    argTypes:
    - fr_curl_handle_t*
    - CURLM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 114
    functionName: _fr_curl_io_demux
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_cond_assert_msg
    - REDEBUG
    - talloc_get_type_abort
    - curl_multi_info_read
    - curl_easy_getinfo
    - REQUEST_VERIFY
    - fr_assert
    - curl_multi_remove_handle
    - curl_easy_strerror
    - unlang_interpret_mark_runnable
    linkageType: ''
    returnType: void
    signature: void _fr_curl_io_demux(fr_curl_handle_t *mhandle, CURLM *mandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:124,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:129,1
    - Dst: curl_multi_socket_action
      Src: /src/freeradius-server/src/lib/curl/io.c:131,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:133,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/lib/curl/io.c:133,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/curl/io.c:137,1
    - Dst: _fr_curl_io_demux
      Src: /src/freeradius-server/src/lib/curl/io.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: _fr_curl_io_timer_expired
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - ERROR
    - curl_multi_socket_action
    - talloc_get_type_abort
    - _fr_curl_io_demux
    - curl_multi_strerror
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void _fr_curl_io_timer_expired(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_socket_action
      Src: /src/freeradius-server/src/lib/curl/io.c:155,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:157,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/lib/curl/io.c:157,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/curl/io.c:186,1
    - Dst: _fr_curl_io_demux
      Src: /src/freeradius-server/src/lib/curl/io.c:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - mhandle
    - fd
    - event
    argTypes:
    - fr_curl_handle_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 193
    functionName: _fr_curl_io_service
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - ERROR
    - curl_multi_socket_action
    - _fr_curl_io_demux
    - curl_multi_strerror
    - DEBUG3
    linkageType: ''
    returnType: void
    signature: void _fr_curl_io_service(fr_curl_handle_t *mhandle, int fd, int event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:205,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:207,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/curl/io.c:207,1
    - Dst: _fr_curl_io_service
      Src: /src/freeradius-server/src/lib/curl/io.c:219,1
    - Dst: _fr_curl_io_service
      Src: /src/freeradius-server/src/lib/curl/io.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: _fr_curl_io_service_errored
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_syserror
    - _fr_curl_io_service
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _fr_curl_io_service_errored(UNUSED fr_event_list_t *el, int fd,
      int flags, int fd_errno, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:235,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:237,1
    - Dst: _fr_curl_io_service
      Src: /src/freeradius-server/src/lib/curl/io.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: _fr_curl_io_service_writable
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - _fr_curl_io_service
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _fr_curl_io_service_writable(UNUSED fr_event_list_t *el, int fd,
      UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:251,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:253,1
    - Dst: _fr_curl_io_service
      Src: /src/freeradius-server/src/lib/curl/io.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - fd
    - flags
    - uctx
    argTypes:
    - UNUSED
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: _fr_curl_io_service_readable
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - _fr_curl_io_service
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void _fr_curl_io_service_readable(UNUSED fr_event_list_t *el, int fd,
      UNUSED int flags, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:275,1
    - Dst: FR_TIMER_DISARM_RETURN
      Src: /src/freeradius-server/src/lib/curl/io.c:278,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/curl/io.c:279,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/lib/curl/io.c:283,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/lib/curl/io.c:300,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/lib/curl/io.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - mandle
    - timeout_ms
    - ctx
    argTypes:
    - CURLM*
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 304
    functionName: _fr_curl_io_timer_modify
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - FR_TIMER_DISARM_RETURN
    - fr_timer_in
    - fr_time_delta_from_msec
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int _fr_curl_io_timer_modify(CURLM *mandle, long timeout_ms, void *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:325,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/curl/io.c:329,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:334,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:338,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/curl/io.c:342,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:347,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:351,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/lib/curl/io.c:355,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:360,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:364,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/lib/curl/io.c:368,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:369,1
    - Dst: DEBUG4
      Src: /src/freeradius-server/src/lib/curl/io.c:372,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/lib/curl/io.c:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - easy
    - fd
    - what
    - ctx
    - fd_ctx
    argTypes:
    - UNUSED*
    - curl_socket_t
    - int
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 381
    functionName: _fr_curl_io_event_modify
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - DEBUG4
    - fr_event_fd_insert
    - talloc_get_type_abort
    - fr_assert
    - fr_event_fd_delete
    - PERROR
    linkageType: ''
    returnType: int
    signature: int _fr_curl_io_event_modify(UNUSED CURL *easy, curl_socket_t fd, int
      what, void *ctx, UNUSED void *fd_ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/lib/curl/io.c:399,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/curl/io.c:410,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/curl/io.c:413,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/curl/io.c:413,1
    - Dst: memchr
      Src: /src/freeradius-server/src/lib/curl/io.c:423,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/curl/io.c:427,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/curl/io.c:429,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/curl/io.c:431,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/lib/curl/io.c:432,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/curl/io.c:443,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/curl/io.c:447,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/curl/io.c:451,1
    - Dst: RHEXDUMP4
      Src: /src/freeradius-server/src/lib/curl/io.c:455,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/lib/curl/io.c:459,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 5
    argNames:
    - candle
    - type
    - data
    - len
    - uctx
    argTypes:
    - UNUSED*
    - curl_infotype
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 464
    functionName: curl_debug_log
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - memchr
    - talloc_get_type_abort
    - RDEBUG3
    - RHEXDUMP3
    - fr_box_strvalue_len
    - RHEXDUMP4
    linkageType: ''
    returnType: int
    signature: int curl_debug_log(UNUSED CURL *candle, curl_infotype type, char *data,
      size_t len, void *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/lib/curl/io.c:483,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:492,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:493,1
    - Dst: FR_CURL_REQUEST_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:494,1
    - Dst: curl_easy_setopt
      Src: /src/freeradius-server/src/lib/curl/io.c:507,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/curl/io.c:509,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/lib/curl/io.c:509,1
    - Dst: curl_multi_add_handle
      Src: /src/freeradius-server/src/lib/curl/io.c:519,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/curl/io.c:522,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/lib/curl/io.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - mhandle
    - request
    - randle
    argTypes:
    - fr_curl_handle_t*
    - request_t*
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 530
    functionName: fr_curl_io_request_enqueue
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 7
    functionsReached:
    - curl_multi_add_handle
    - REDEBUG
    - curl_multi_strerror
    - REQUEST_VERIFY
    - FR_CURL_REQUEST_SET_OPTION
    - curl_easy_strerror
    - curl_easy_setopt
    linkageType: ''
    returnType: int
    signature: int fr_curl_io_request_enqueue(fr_curl_handle_t *mhandle, request_t
      *request, fr_curl_io_request_t *randle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/lib/curl/io.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randle
    argTypes:
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: _fr_curl_io_request_free
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int _fr_curl_io_request_free(fr_curl_io_request_t *randle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/curl/io.c:546,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/curl/io.c:547,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/lib/curl/io.c:549,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/lib/curl/io.c:551,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/curl/io.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 558
    functionName: fr_curl_io_request_alloc
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 1
    functionsReached:
    - unlikely
    - talloc_set_destructor
    - talloc_free
    - curl_easy_init
    - talloc_zero
    linkageType: ''
    returnType: fr_curl_io_request_t
    signature: fr_curl_io_request_t *fr_curl_io_request_alloc(TALLOC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_cleanup
      Src: /src/freeradius-server/src/lib/curl/io.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mhandle
    argTypes:
    - fr_curl_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: _mhandle_free
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 0
    functionsReached:
    - curl_multi_cleanup
    linkageType: ''
    returnType: int
    signature: int _mhandle_free(fr_curl_handle_t *mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curl_multi_init
      Src: /src/freeradius-server/src/lib/curl/io.c:592,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:594,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/curl/io.c:605,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/lib/curl/io.c:605,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/lib/curl/io.c:608,1
    - Dst: SET_MOPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:610,1
    - Dst: SET_MOPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:611,1
    - Dst: SET_MOPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:613,1
    - Dst: SET_MOPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:614,1
    - Dst: SET_MOPTION
      Src: /src/freeradius-server/src/lib/curl/io.c:617,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/io.c:623,1
    - Dst: curl_multi_strerror
      Src: /src/freeradius-server/src/lib/curl/io.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - el
    - multiplex
    argTypes:
    - TALLOC_CTX*
    - fr_event_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 626
    functionName: fr_curl_io_init
    functionSourceFile: /src/freeradius-server/src/lib/curl/io.c
    functionUses: 4
    functionsReached:
    - ERROR
    - SET_MOPTION
    - talloc_set_destructor
    - talloc_zero
    - curl_multi_strerror
    - MEM
    - curl_multi_init
    linkageType: ''
    returnType: fr_curl_handle_t
    signature: "fr_curl_handle_t *fr_curl_io_init(TALLOC_CTX *ctx,\n\t\t\t\t   fr_event_list_t
      *el,\n#ifndef CURLPIPE_MULTIPLEX\n\t\t\t\t   UNUSED\n#endif\n\t\t\t\t   bool
      multiplex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/lib/curl/base.c:60,1
    - Dst: curl_version_info
      Src: /src/freeradius-server/src/lib/curl/base.c:61,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/curl/base.c:64,1
    - Dst: cf_pair_alloc
      Src: /src/freeradius-server/src/lib/curl/base.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - out
    - parent
    - cs
    - quote
    - rule
    argTypes:
    - CONF_PAIR**
    - UNUSED*
    - CONF_SECTION*
    - fr_token_t
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: tls_config_dflt_capath
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 0
    functionsReached:
    - CURL_AT_LEAST_VERSION
    - MEM
    - cf_pair_alloc
    - curl_version_info
    linkageType: ''
    returnType: int
    signature: int tls_config_dflt_capath(CONF_PAIR **out, UNUSED void *parent, CONF_SECTION
      *cs, fr_token_t quote, conf_parser_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_ex_data
      Src: /src/freeradius-server/src/lib/curl/base.c:106,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/freeradius-server/src/lib/curl/base.c:106,1
    - Dst: fopen
      Src: /src/freeradius-server/src/lib/curl/base.c:108,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/lib/curl/base.c:110,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/lib/curl/base.c:110,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/curl/base.c:120,1
    - Dst: fclose
      Src: /src/freeradius-server/src/lib/curl/base.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: _curl_easy_tls_keylog
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_GLOBAL
    - fr_syserror
    - fprintf
    - SSL_CTX_get_ex_data
    - SSL_get_SSL_CTX
    - fopen
    - fclose
    linkageType: ''
    returnType: void
    signature: void _curl_easy_tls_keylog(const SSL *ssl, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/freeradius-server/src/lib/curl/base.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - curl
    - ssl_ctx
    - clientp
    argTypes:
    - UNUSED*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 136
    functionName: _curl_easy_ssl_ctx_conf
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_keylog_callback
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode _curl_easy_ssl_ctx_conf(UNUSED CURL *curl, void *ssl_ctx,
      void *clientp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:143,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:144,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:145,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:146,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:147,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:148,1
    - Dst: CURL_AT_LEAST_VERSION
      Src: /src/freeradius-server/src/lib/curl/base.c:149,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:150,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:152,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:154,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:155,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:156,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:160,1
    - Dst: FR_CURL_ROPTIONAL_SET_OPTION
      Src: /src/freeradius-server/src/lib/curl/base.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - randle
    - conf
    argTypes:
    - fr_curl_io_request_t*
    - fr_curl_tls_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: fr_curl_easy_tls_init
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 3
    functionsReached:
    - CURL_AT_LEAST_VERSION
    - FR_CURL_ROPTIONAL_SET_OPTION
    linkageType: ''
    returnType: int
    signature: int fr_curl_easy_tls_init(fr_curl_io_request_t *randle, fr_curl_tls_t
      const *conf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/lib/curl/base.c:181,1
    - Dst: curl_easy_getinfo
      Src: /src/freeradius-server/src/lib/curl/base.c:183,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/lib/curl/base.c:185,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/lib/curl/base.c:185,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/curl/base.c:197,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/curl/base.c:202,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/curl/base.c:202,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/curl/base.c:203,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/lib/curl/base.c:205,1
    - Dst: strchr
      Src: /src/freeradius-server/src/lib/curl/base.c:214,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/curl/base.c:216,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/lib/curl/base.c:222,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/curl/base.c:226,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/lib/curl/base.c:231,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/curl/base.c:233,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/lib/curl/base.c:234,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/curl/base.c:237,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/lib/curl/base.c:237,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/lib/curl/base.c:238,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/curl/base.c:238,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/lib/curl/base.c:240,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/lib/curl/base.c:245,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/lib/curl/base.c:249,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/lib/curl/base.c:250,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - request
    - randle
    argTypes:
    - request_t*
    - fr_curl_io_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 254
    functionName: fr_curl_response_certinfo
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 6
    functionsReached:
    - fr_pair_list_empty
    - fr_pair_afrom_da
    - fr_dict_attr_by_name
    - memcpy
    - REDEBUG
    - fr_pair_append
    - strchr
    - curl_easy_getinfo
    - RDEBUG2
    - RDEBUG3
    - fr_pair_value_from_str
    - strlen
    - log_request_pair_list
    - fr_pair_list_append
    - curl_easy_strerror
    - RWDEBUG
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int fr_curl_response_certinfo(request_t *request, fr_curl_io_request_t
      *randle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_cleanup
      Src: /src/freeradius-server/src/lib/curl/base.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: _curl_tmpl_handle
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 0
    functionsReached:
    - curl_easy_cleanup
    linkageType: ''
    returnType: int
    signature: int _curl_tmpl_handle(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/curl/base.c:280,1
    - Dst: MEM
      Src: /src/freeradius-server/src/lib/curl/base.c:283,1
    - Dst: curl_easy_init
      Src: /src/freeradius-server/src/lib/curl/base.c:283,1
    - Dst: fr_atexit_thread_local
      Src: /src/freeradius-server/src/lib/curl/base.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: fr_curl_tmp_handle
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 4
    functionsReached:
    - unlikely
    - MEM
    - curl_easy_init
    - fr_atexit_thread_local
    linkageType: ''
    returnType: CURL
    signature: CURL *fr_curl_tmp_handle(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_openssl_init
      Src: /src/freeradius-server/src/lib/curl/base.c:306,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/lib/curl/base.c:309,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/curl/base.c:310,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/lib/curl/base.c:314,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/lib/curl/base.c:315,1
    - Dst: curl_global_init
      Src: /src/freeradius-server/src/lib/curl/base.c:319,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/base.c:321,1
    - Dst: curl_easy_strerror
      Src: /src/freeradius-server/src/lib/curl/base.c:321,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/curl/base.c:323,1
    - Dst: curl_version_info
      Src: /src/freeradius-server/src/lib/curl/base.c:327,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/lib/curl/base.c:328,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/curl/base.c:329,1
    - Dst: WARN
      Src: /src/freeradius-server/src/lib/curl/base.c:330,1
    - Dst: INFO
      Src: /src/freeradius-server/src/lib/curl/base.c:333,1
    - Dst: curl_version
      Src: /src/freeradius-server/src/lib/curl/base.c:333,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/curl/base.c:342,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/curl/base.c:343,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/base.c:344,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/curl/base.c:347,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/curl/base.c:348,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/lib/curl/base.c:349,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/curl/base.c:355,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/curl/base.c:356,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/base.c:357,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/curl/base.c:360,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/curl/base.c:361,1
    - Dst: xlat_func_safe_for_set
      Src: /src/freeradius-server/src/lib/curl/base.c:362,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/lib/curl/base.c:367,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/curl/base.c:368,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/lib/curl/base.c:369,1
    - Dst: xlat_func_flags_set
      Src: /src/freeradius-server/src/lib/curl/base.c:372,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/lib/curl/base.c:373,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 377
    functionName: fr_curl_init
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 0
    functionsReached:
    - INFO
    - ERROR
    - unlikely
    - fr_dict_attr_autoload
    - WARN
    - xlat_func_safe_for_set
    - fr_openssl_init
    - curl_version
    - curl_version_info
    - curl_global_init
    - xlat_func_register
    - strcmp
    - xlat_func_args_set
    - xlat_func_flags_set
    - curl_easy_strerror
    - PERROR
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_curl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/lib/curl/base.c:381,1
    - Dst: fr_openssl_free
      Src: /src/freeradius-server/src/lib/curl/base.c:384,1
    - Dst: curl_global_cleanup
      Src: /src/freeradius-server/src/lib/curl/base.c:386,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/curl/base.c:388,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/curl/base.c:389,1
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/lib/curl/base.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 391
    functionName: fr_curl_free
    functionSourceFile: /src/freeradius-server/src/lib/curl/base.c
    functionUses: 0
    functionsReached:
    - curl_global_cleanup
    - xlat_func_unregister
    - fr_openssl_free
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_curl_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - x
    - n
    - tbl
    argTypes:
    - uint8_t*
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: _comp128_compression_round
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _comp128_compression_round(uint8_t *x, int n, const uint8_t *tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _comp128_compression_round
      Src: /src/freeradius-server/src/lib/sim/comp128.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: _comp128_compression
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 0
    functionsReached:
    - _comp128_compression_round
    linkageType: ''
    returnType: void
    signature: void _comp128_compression(uint8_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/sim/comp128.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - bits
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: _comp128_bitsfrombytes
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _comp128_bitsfrombytes(uint8_t *x, uint8_t *bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/sim/comp128.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - bits
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: _comp128_permutation
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _comp128_permutation(uint8_t *x, uint8_t *bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:248,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:255,1
    - Dst: _comp128_compression
      Src: /src/freeradius-server/src/lib/sim/comp128.c:258,1
    - Dst: _comp128_bitsfrombytes
      Src: /src/freeradius-server/src/lib/sim/comp128.c:261,1
    - Dst: _comp128_permutation
      Src: /src/freeradius-server/src/lib/sim/comp128.c:264,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:271,1
    - Dst: _comp128_compression
      Src: /src/freeradius-server/src/lib/sim/comp128.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - sres
    - kc
    - ki
    - rand
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 287
    functionName: comp128v1
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 1
    functionsReached:
    - _comp128_bitsfrombytes
    - _comp128_permutation
    - memcpy
    - _comp128_compression
    linkageType: ''
    returnType: void
    signature: "void comp128v1(uint8_t sres[static 4], uint8_t kc[static 8],\n\t       uint8_t
      const ki[static 16], uint8_t const rand[static 16])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/lib/sim/comp128.c:296,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:297,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:298,1
    - Dst: memset
      Src: /src/freeradius-server/src/lib/sim/comp128.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - rand
    - kxor
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 326
    functionName: _comp128v23
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _comp128v23(uint8_t *rand, uint8_t const *kxor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _comp128v23
      Src: /src/freeradius-server/src/lib/sim/comp128.c:362,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:383,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/comp128.c:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - sres
    - kc
    - ki
    - rand
    - v2
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 385
    functionName: comp128v23
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 2
    functionsReached:
    - _comp128v23
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void comp128v23(uint8_t sres[static 4], uint8_t kc[static 8],\n\t\tuint8_t
      const ki[static 16], uint8_t const rand[static 16], bool v2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/freeradius-server/src/lib/sim/comp128.c:392,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:399,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/sim/comp128.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 402
    functionName: hextoint
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fr_exit_now
    - toupper
    linkageType: ''
    returnType: int
    signature: int hextoint(char x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/sim/comp128.c:411,1
    - Dst: strlen
      Src: /src/freeradius-server/src/lib/sim/comp128.c:411,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/sim/comp128.c:412,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/lib/sim/comp128.c:412,1
    - Dst: atoi
      Src: /src/freeradius-server/src/lib/sim/comp128.c:413,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:415,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/lib/sim/comp128.c:416,1
    - Dst: hextoint
      Src: /src/freeradius-server/src/lib/sim/comp128.c:420,1
    - Dst: hextoint
      Src: /src/freeradius-server/src/lib/sim/comp128.c:420,1
    - Dst: hextoint
      Src: /src/freeradius-server/src/lib/sim/comp128.c:424,1
    - Dst: hextoint
      Src: /src/freeradius-server/src/lib/sim/comp128.c:424,1
    - Dst: comp128v23
      Src: /src/freeradius-server/src/lib/sim/comp128.c:429,1
    - Dst: comp128v23
      Src: /src/freeradius-server/src/lib/sim/comp128.c:433,1
    - Dst: comp128v1
      Src: /src/freeradius-server/src/lib/sim/comp128.c:437,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:441,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:447,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:449,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:451,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:453,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:455,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:458,1
    - Dst: printf
      Src: /src/freeradius-server/src/lib/sim/comp128.c:460,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 463
    functionName: main
    functionSourceFile: /src/freeradius-server/src/lib/sim/comp128.c
    functionUses: 4
    functionsReached:
    - fr_exit_now
    - printf
    - fprintf
    - hextoint
    - strlen
    - atoi
    - comp128v1
    - strncmp
    - comp128v23
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:74,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:79,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:86,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:93,1
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:99,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:101,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:103,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:118,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/ts_34_108.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 9
    argNames:
    - autn
    - ik
    - ck
    - ak
    - res
    - amf
    - ki
    - sqn
    - rand
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 123
    functionName: ts_34_108_umts_generate
    functionSourceFile: /src/freeradius-server/src/lib/sim/ts_34_108.c
    functionUses: 1
    functionsReached:
    - uint48_to_buff
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ts_34_108_umts_generate(uint8_t autn[TS_34_108_AUTN_SIZE],\n\t\t\t
      \   uint8_t ik[TS_34_108_IK_SIZE],\n\t\t\t    uint8_t ck[TS_34_108_CK_SIZE],\n\t\t\t
      \   uint8_t ak[TS_34_108_AK_SIZE],\n\t\t\t    uint8_t res[TS_34_108_RES_SIZE],\n\t\t\t
      \   uint8_t const amf[TS_34_108_AMF_SIZE],\n\t\t\t    uint8_t const ki[TS_34_108_KI_SIZE],\n\t\t\t
      \   uint64_t sqn,\n\t\t\t    uint8_t const rand[TS_34_108_RAND_SIZE])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - i
    argTypes:
    - uint8_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: uint48_to_buff
    functionSourceFile: /src/freeradius-server/src/lib/sim/common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *uint48_to_buff(uint8_t out[static 6], uint64_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: uint48_from_buff
    functionSourceFile: /src/freeradius-server/src/lib/sim/common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t uint48_from_buff(uint8_t const in[6])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/sim/milenage.c:37,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/freeradius-server/src/lib/sim/milenage.c:37,1
    - Dst: EVP_aes_128_ecb
      Src: /src/freeradius-server/src/lib/sim/milenage.c:37,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/sim/milenage.c:38,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/freeradius-server/src/lib/sim/milenage.c:52,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/sim/milenage.c:53,1
    - Dst: EVP_EncryptUpdate
      Src: /src/freeradius-server/src/lib/sim/milenage.c:53,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/lib/sim/milenage.c:54,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/freeradius-server/src/lib/sim/milenage.c:54,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/sim/milenage.c:55,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/freeradius-server/src/lib/sim/milenage.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - evp_ctx
    - key
    - in
    - out
    argTypes:
    - EVP_CIPHER_CTX*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 62
    functionName: aes_128_encrypt_block
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 0
    functionsReached:
    - unlikely
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_reset
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_set_padding
    - EVP_EncryptInit_ex
    - EVP_aes_128_ecb
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int aes_128_encrypt_block(EVP_CIPHER_CTX *evp_ctx,\n\t\t\t\t\tuint8_t
      const key[16], uint8_t const in[16], uint8_t out[16])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/lib/sim/milenage.c:92,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/sim/milenage.c:94,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:98,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/lib/sim/milenage.c:100,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:105,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:106,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:107,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:125,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:129,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:130,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/lib/sim/milenage.c:132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 7
    argNames:
    - mac_a
    - mac_s
    - opc
    - k
    - rand
    - sqn
    - amf
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 135
    functionName: milenage_f1
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - memcpy
    - aes_128_encrypt_block
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_new
    linkageType: ''
    returnType: int
    signature: "int milenage_f1(uint8_t mac_a[MILENAGE_MAC_A_SIZE],\n\t\t       uint8_t
      mac_s[MILENAGE_MAC_S_SIZE],\n\t\t       uint8_t const opc[MILENAGE_OPC_SIZE],\n\t\t
      \      uint8_t const k[MILENAGE_KI_SIZE],\n\t\t       uint8_t const rand[MILENAGE_RAND_SIZE],\n\t\t
      \      uint8_t const sqn[MILENAGE_SQN_SIZE],\n\t\t       uint8_t const amf[MILENAGE_AMF_SIZE])"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/lib/sim/milenage.c:167,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/sim/milenage.c:169,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:173,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/lib/sim/milenage.c:175,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:190,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:193,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:194,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:202,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:213,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:224,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/lib/sim/milenage.c:228,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 8
    argNames:
    - res
    - ik
    - ck
    - ak
    - ak_resync
    - opc
    - k
    - rand
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 231
    functionName: milenage_f2345
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - memcpy
    - aes_128_encrypt_block
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_new
    linkageType: ''
    returnType: int
    signature: "int milenage_f2345(uint8_t res[MILENAGE_RES_SIZE],\n\t\t\t  uint8_t
      ik[MILENAGE_IK_SIZE],\n\t\t\t  uint8_t ck[MILENAGE_CK_SIZE],\n\t\t\t  uint8_t
      ak[MILENAGE_AK_SIZE],\n\t\t\t  uint8_t ak_resync[MILENAGE_AK_SIZE],\n\t\t\t
      \ uint8_t const opc[MILENAGE_OPC_SIZE],\n\t\t\t  uint8_t const k[MILENAGE_KI_SIZE],\n\t\t\t
      \ uint8_t const rand[MILENAGE_RAND_SIZE])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/freeradius-server/src/lib/sim/milenage.c:252,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/lib/sim/milenage.c:254,1
    - Dst: aes_128_encrypt_block
      Src: /src/freeradius-server/src/lib/sim/milenage.c:257,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/freeradius-server/src/lib/sim/milenage.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - opc
    - op
    - ki
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: milenage_opc_generate
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 1
    functionsReached:
    - fr_tls_strerror_printf
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - aes_128_encrypt_block
    linkageType: ''
    returnType: int
    signature: "int milenage_opc_generate(uint8_t opc[MILENAGE_OPC_SIZE],\n\t\t\t
      \ uint8_t const op[MILENAGE_OP_SIZE],\n\t\t\t  uint8_t const ki[MILENAGE_KI_SIZE])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: milenage_f1
      Src: /src/freeradius-server/src/lib/sim/milenage.c:298,1
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/sim/milenage.c:299,1
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:300,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:306,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:308,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 10
    argNames:
    - autn
    - ik
    - ck
    - ak
    - res
    - opc
    - amf
    - ki
    - sqn
    - rand
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: milenage_umts_generate
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 1
    functionsReached:
    - uint48_to_buff
    - milenage_f2345
    - memcpy
    - milenage_f1
    linkageType: ''
    returnType: int
    signature: "int milenage_umts_generate(uint8_t autn[MILENAGE_AUTN_SIZE],\n\t\t\t
      \  uint8_t ik[MILENAGE_IK_SIZE],\n\t\t\t   uint8_t ck[MILENAGE_CK_SIZE],\n\t\t\t
      \  uint8_t ak[MILENAGE_AK_SIZE],\n\t\t\t   uint8_t res[MILENAGE_RES_SIZE],\n\t\t\t
      \  uint8_t const opc[MILENAGE_OPC_SIZE],\n\t\t\t   uint8_t const amf[MILENAGE_AMF_SIZE],\n\t\t\t
      \  uint8_t const ki[MILENAGE_KI_SIZE],\n\t\t\t   uint64_t sqn,\n\t\t\t   uint8_t
      const rand[MILENAGE_RAND_SIZE])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:340,1
    - Dst: milenage_f1
      Src: /src/freeradius-server/src/lib/sim/milenage.c:343,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:343,1
    - Dst: uint48_from_buff
      Src: /src/freeradius-server/src/lib/sim/milenage.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - sqn
    - opc
    - ki
    - rand
    - auts
    argTypes:
    - uint64_t*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 348
    functionName: milenage_auts
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 1
    functionsReached:
    - CRYPTO_memcmp
    - milenage_f2345
    - uint48_from_buff
    - milenage_f1
    linkageType: ''
    returnType: int
    signature: "int milenage_auts(uint64_t *sqn,\n\t\t  uint8_t const opc[MILENAGE_OPC_SIZE],\n\t\t
      \ uint8_t const ki[MILENAGE_KI_SIZE],\n\t\t  uint8_t const rand[MILENAGE_RAND_SIZE],\n\t\t
      \ uint8_t const auts[MILENAGE_AUTS_SIZE])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/lib/sim/milenage.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - sres
    - kc
    - ik
    - ck
    - res
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 373
    functionName: milenage_gsm_from_umts
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void milenage_gsm_from_umts(uint8_t sres[MILENAGE_SRES_SIZE],\n\t\t\t
      \   uint8_t kc[MILENAGE_KC_SIZE],\n\t\t\t    uint8_t const ik[MILENAGE_IK_SIZE],\n\t\t\t
      \   uint8_t const ck[MILENAGE_CK_SIZE],\n\t\t\t    uint8_t const res[MILENAGE_RES_SIZE])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:394,1
    - Dst: milenage_gsm_from_umts
      Src: /src/freeradius-server/src/lib/sim/milenage.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - sres
    - kc
    - opc
    - ki
    - rand
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 399
    functionName: milenage_gsm_generate
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 1
    functionsReached:
    - milenage_gsm_from_umts
    - milenage_f2345
    linkageType: ''
    returnType: int
    signature: "int milenage_gsm_generate(uint8_t sres[MILENAGE_SRES_SIZE],\n\t\t\t
      \ uint8_t kc[MILENAGE_KC_SIZE],\n\t\t\t  uint8_t const opc[MILENAGE_OPC_SIZE],\n\t\t\t
      \ uint8_t const ki[MILENAGE_KI_SIZE],\n\t\t\t  uint8_t const rand[MILENAGE_RAND_SIZE])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uint48_to_buff
      Src: /src/freeradius-server/src/lib/sim/milenage.c:433,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:435,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:436,1
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:438,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:440,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:441,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:442,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:443,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:447,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:449,1
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:452,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:454,1
    - Dst: milenage_f1
      Src: /src/freeradius-server/src/lib/sim/milenage.c:457,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:458,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:463,1
    - Dst: milenage_f1
      Src: /src/freeradius-server/src/lib/sim/milenage.c:464,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:466,1
    - Dst: CRYPTO_memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:468,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:469,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/lib/sim/milenage.c:470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 9
    argNames:
    - ik
    - ck
    - res
    - auts
    - opc
    - ki
    - sqn
    - rand
    - autn
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint64_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 475
    functionName: milenage_check
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - milenage_f2345
    - uint48_to_buff
    - milenage_f1
    - CRYPTO_memcmp
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int milenage_check(uint8_t ik[MILENAGE_IK_SIZE],\n\t\t   uint8_t ck[MILENAGE_CK_SIZE],\n\t\t
      \  uint8_t res[MILENAGE_RES_SIZE],\n\t\t   uint8_t auts[MILENAGE_AUTS_SIZE],\n\t\t
      \  uint8_t const opc[MILENAGE_OPC_SIZE],\n\t\t   uint8_t const ki[MILENAGE_KI_SIZE],\n\t\t
      \  uint64_t sqn,\n\t\t   uint8_t const rand[MILENAGE_RAND_SIZE],\n\t\t   uint8_t
      const autn[MILENAGE_AUTN_SIZE])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: milenage_opc_generate
      Src: /src/freeradius-server/src/lib/sim/milenage.c:533,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:534,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:536,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:538,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:538,1
    - Dst: milenage_f1
      Src: /src/freeradius-server/src/lib/sim/milenage.c:540,1
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:541,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:543,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:544,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:545,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:546,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:547,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:548,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:549,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:551,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:552,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:552,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:553,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:553,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:554,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:554,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:555,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:555,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:556,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:556,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:557,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:557,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:558,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 559
    functionName: test_set_1
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - milenage_f2345
    - milenage_opc_generate
    - milenage_f1
    - memcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_set_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: milenage_opc_generate
      Src: /src/freeradius-server/src/lib/sim/milenage.c:612,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:613,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:615,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:617,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:617,1
    - Dst: milenage_f1
      Src: /src/freeradius-server/src/lib/sim/milenage.c:619,1
    - Dst: milenage_f2345
      Src: /src/freeradius-server/src/lib/sim/milenage.c:620,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:622,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:623,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:624,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:625,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:626,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:627,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/lib/sim/milenage.c:628,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:630,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:631,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:631,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:632,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:632,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:633,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:633,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:634,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:634,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:635,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:635,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:636,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:636,1
    - Dst: TEST_CHECK
      Src: /src/freeradius-server/src/lib/sim/milenage.c:637,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/lib/sim/milenage.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 638
    functionName: test_set_19
    functionSourceFile: /src/freeradius-server/src/lib/sim/milenage.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - milenage_f2345
    - milenage_opc_generate
    - milenage_f1
    - memcmp
    - TEST_CHECK
    linkageType: ''
    returnType: void
    signature: void test_set_19(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: FR_TLS_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/tls/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TLS_PACKET_CODE_VALID(_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/tls/base.c:184,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tls/base.c:188,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/tls/base.c:194,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tls/base.c:198,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/tls/base.c:200,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/tls/base.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 203
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/tls/base.c
    functionUses: 0
    functionsReached:
    - fr_process_state_t*::recv
    - REDEBUG
    - log_request_pair_list
    - fr_assert
    - UPDATE_STATE
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: FR_TEST_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/test/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TEST_PACKET_CODE_VALID(_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/test/base.c:96,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/test/base.c:97,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/test/base.c:97,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/test/base.c:101,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/test/base.c:103,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/test/base.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/test/base.c
    functionUses: 0
    functionsReached:
    - fr_process_state_t*::recv
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/eap_aka/base.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/eap_aka/base.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/eap_aka/base.c:230,1
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/process/eap_aka/base.c:230,1
    - Dst: fr_aka_sim_xlat_func_register
      Src: /src/freeradius-server/src/process/eap_aka/base.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 9
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/process/eap_aka/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_aka_sim_init
    - fr_aka_sim_xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_xlat_func_unregister
      Src: /src/freeradius-server/src/process/eap_aka/base.c:239,1
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/process/eap_aka/base.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/process/eap_aka/base.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_xlat_func_unregister
    - fr_aka_sim_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/dns/base.c:234,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/dns/base.c:239,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/dns/base.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: dns_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 0
    functionsReached:
    - log_request_pair_list
    - log_request
    - log_request_proto_pair_list
    linkageType: ''
    returnType: void
    signature: void dns_packet_debug(request_t *request, fr_packet_t const *packet,
      fr_pair_list_t const *list, bool received)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dns/base.c:260,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dns/base.c:262,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dns/base.c:266,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dns/base.c:268,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dns/base.c:272,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dns/base.c:274,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:278,1
    - Dst: talloc
      Src: /src/freeradius-server/src/process/dns/base.c:278,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/process/dns/base.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 283
    functionName: dns_fields_store
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc
    - unlang_interpret_frame_talloc_ctx
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: process_rctx_t
    signature: process_rctx_t *dns_fields_store(request_t *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:299,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/dns/base.c:299,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:305,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/process/dns/base.c:305,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/process/dns/base.c:306,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/process/dns/base.c:306,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:313,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/process/dns/base.c:313,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/process/dns/base.c:314,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/process/dns/base.c:314,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:321,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/process/dns/base.c:321,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/process/dns/base.c:322,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/process/dns/base.c:322,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:329,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/process/dns/base.c:329,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/process/dns/base.c:330,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/process/dns/base.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - request
    - rctx
    argTypes:
    - request_t*
    - process_rctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 334
    functionName: dns_fields_restore
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_update_by_da_parent
    - pair_update_reply
    - fr_assert_msg
    - fr_strerror
    - MEM
    linkageType: ''
    returnType: int
    signature: int dns_fields_restore(request_t *request, process_rctx_t *rctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:353,1
    - Dst: fr_pair_update_by_da_parent
      Src: /src/freeradius-server/src/process/dns/base.c:353,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dns/base.c:355,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/process/dns/base.c:355,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/process/dns/base.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - rcode
    - request
    - code
    argTypes:
    - fr_pair_t**
    - request_t*
    - fr_value_box_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 340
    functionDepth: 7
    functionLinenumber: 340
    functionLinenumberEnd: 361
    functionName: dns_rcode_add
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_update_by_da_parent
    - unlikely
    - RPEDEBUG
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void dns_rcode_add(fr_pair_t **rcode, request_t *request, fr_value_box_t
      const **code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dns_fields_store
      Src: /src/freeradius-server/src/process/dns/base.c:372,1
    - Dst: CALL_RECV_RCTX
      Src: /src/freeradius-server/src/process/dns/base.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 0
    functionsReached:
    - CALL_RECV_RCTX
    - dns_fields_store
    linkageType: ''
    returnType: void
    signature: void RECV(request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/dns/base.c:384,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dns/base.c:393,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dns/base.c:399,1
    - Dst: dns_rcode_add
      Src: /src/freeradius-server/src/process/dns/base.c:404,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/process/dns/base.c:411,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/dns/base.c:413,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dns/base.c:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 382
    functionDepth: 8
    functionLinenumber: 382
    functionLinenumberEnd: 430
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 1
    functionsReached:
    - dns_rcode_add
    - unlang_module_yield_to_section
    - UPDATE_STATE
    - CALL_RESUME
    - talloc_get_type_abort_const
    - NUM_ELEMENTS
    linkageType: ''
    returnType: void
    signature: void RESUME(recv_request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dns/base.c:440,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dns/base.c:446,1
    - Dst: dns_fields_restore
      Src: /src/freeradius-server/src/process/dns/base.c:452,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dns/base.c:452,1
    - Dst: dns_packet_debug
      Src: /src/freeradius-server/src/process/dns/base.c:458,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/dns/base.c:466,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dns/base.c:467,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dns/base.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 471
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    - pair_update_reply
    - UPDATE_STATE
    - CALL_RESUME
    - dns_fields_restore
    - dns_packet_debug
    - MEM
    linkageType: ''
    returnType: void
    signature: void RESUME(send_response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/dns/base.c:481,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/dns/base.c:482,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/dns/base.c:482,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/dns/base.c:486,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dns/base.c:488,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dns/base.c:491,1
    - Dst: dns_packet_debug
      Src: /src/freeradius-server/src/process/dns/base.c:495,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/dns/base.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/dns/base.c
    functionUses: 0
    functionsReached:
    - fr_process_state_t*::recv
    - REDEBUG
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    - dns_packet_debug
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/control/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, UNUSED module_ctx_t
      const *mctx, UNUSED request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/process/crl/base.c:172,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/process/crl/base.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: crl_cmp
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t crl_cmp(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: FR_CRL_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CRL_PACKET_CODE_VALID(_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: FR_CRL_PROCESS_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_CRL_PROCESS_CODE_VALID(_code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:206,1
    - Dst: fr_dlist_foreach
      Src: /src/freeradius-server/src/process/crl/base.c:213,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/process/crl/base.c:214,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/crl/base.c:216,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:217,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/process/crl/base.c:224,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:226,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/process/crl/base.c:230,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/crl/base.c:236,1
    - Dst: talloc
      Src: /src/freeradius-server/src/process/crl/base.c:236,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/process/crl/base.c:238,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/process/crl/base.c:239,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/crl/base.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - p_result
    - mctx
    - request
    - vp
    - rctx
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    - fr_pair_t*
    - process_crl_rctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 242
    functionName: fetch_setup_common
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - fr_dlist_foreach
    - CALL_SEND_TYPE
    - fr_pair_find_by_da
    - CALL_RECV
    - talloc_get_type_abort
    - talloc
    - fr_rb_find
    - RDEBUG2
    - strcmp
    - talloc_zero_array
    - fr_dlist_insert_tail
    - MEM
    - talloc_bstrdup
    linkageType: ''
    returnType: unlang_action_t
    signature: "unlang_action_t fetch_setup_common(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request,\n\t\t\t\t\t  fr_pair_t *vp, process_crl_rctx_t
      *rctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/crl/base.c:252,1
    - Dst: fr_value_box_clear_value
      Src: /src/freeradius-server/src/process/crl/base.c:253,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/process/crl/base.c:254,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:255,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:257,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:258,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:259,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/process/crl/base.c:262,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:263,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/crl/base.c:265,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/process/crl/base.c:265,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/process/crl/base.c:266,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:267,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:269,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:273,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:274,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:275,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:277,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:278,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - request
    - crl_entry
    argTypes:
    - request_t*
    - crl_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 248
    functionDepth: 7
    functionLinenumber: 248
    functionLinenumberEnd: 282
    functionName: crl_build_reply
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_value_box_clear_value
    - fr_pair_immutable
    - fr_value_box_strdup
    - fr_pair_append_by_da
    - talloc_free
    - fr_unix_time_from_sec
    - fr_value_box_list_foreach
    - pair_update_reply
    - fr_pair_remove
    - ASN1_INTEGER_get_uint64
    - fr_value_box_copy
    linkageType: ''
    returnType: int
    signature: int crl_build_reply(request_t *request, crl_entry_t *crl_entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:293,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:294,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:295,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:301,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/process/crl/base.c:305,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/process/crl/base.c:310,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:310,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:311,1
    - Dst: time
      Src: /src/freeradius-server/src/process/crl/base.c:311,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:312,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:313,1
    - Dst: fr_value_box_memdup_buffer
      Src: /src/freeradius-server/src/process/crl/base.c:314,1
    - Dst: fr_pair_set_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:315,1
    - Dst: crl_build_reply
      Src: /src/freeradius-server/src/process/crl/base.c:317,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:317,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:320,1
    - Dst: fetch_setup_common
      Src: /src/freeradius-server/src/process/crl/base.c:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 291
    functionDepth: 8
    functionLinenumber: 291
    functionLinenumberEnd: 324
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 1
    functionsReached:
    - CALL_SEND_TYPE
    - fr_pair_set_immutable
    - fetch_setup_common
    - fr_pair_append_by_da
    - crl_build_reply
    - fr_time_gt
    - time
    - talloc_get_type_abort
    - fr_rb_find
    - fr_pair_find_by_da
    - fr_time_from_sec
    - fr_value_box_memdup_buffer
    linkageType: ''
    returnType: void
    signature: void RECV(crl_fetch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:332,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:333,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:334,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/process/crl/base.c:340,1
    - Dst: fetch_setup_common
      Src: /src/freeradius-server/src/process/crl/base.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 344
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - fetch_setup_common
    - fr_pair_find_by_da
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void RECV(crl_refresh)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_free
      Src: /src/freeradius-server/src/process/crl/base.c:350,1
    - Dst: fr_rb_node_inline_in_tree
      Src: /src/freeradius-server/src/process/crl/base.c:355,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/process/crl/base.c:355,1
    - Dst: fr_value_box_list_initialised
      Src: /src/freeradius-server/src/process/crl/base.c:360,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/process/crl/base.c:361,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/process/crl/base.c:365,1
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/process/crl/base.c:368,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - to_free
    argTypes:
    - crl_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 374
    functionName: _crl_entry_free
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_rb_remove
    - fr_value_box_list_foreach
    - fr_rb_find
    - ASN1_INTEGER_free
    - fr_rb_node_inline_in_tree
    - fr_value_box_list_initialised
    linkageType: ''
    returnType: int
    signature: int _crl_entry_free(crl_entry_t *to_free)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:380,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/process/crl/base.c:383,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/process/crl/base.c:385,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/process/crl/base.c:387,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:388,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:391,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:395,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/process/crl/base.c:396,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:399,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/process/crl/base.c:400,1
    - Dst: fr_coord_pair_coord_request_start
      Src: /src/freeradius-server/src/process/crl/base.c:403,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/process/crl/base.c:404,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/process/crl/base.c:405,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/process/crl/base.c:407,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 378
    functionDepth: 5
    functionLinenumber: 378
    functionLinenumberEnd: 412
    functionName: crl_refresh_event
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_value_box_strdup
    - talloc_free
    - fr_pair_append_by_da
    - fr_coord_pair_coord_request_start
    - talloc_get_type_abort
    - fr_pair_list_append_by_da
    - fr_timer_in
    - talloc_new
    - DEBUG2
    - fr_pair_list_init
    linkageType: ''
    returnType: void
    signature: void crl_refresh_event(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/process/crl/base.c:416,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/process/crl/base.c:417,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fetching
    - cdp_url
    argTypes:
    - fr_dlist_head_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: crl_fetching_entry_remove
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - strcmp
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void crl_fetching_entry_remove(fr_dlist_head_t *fetching, char const
      *cdp_url)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/src/process/crl/base.c:416,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/process/crl/base.c:417,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: fr_dlist_foreach
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 19
    functionsReached:
    - talloc_free
    - strcmp
    - fr_dlist_remove
    linkageType: ''
    returnType: void
    signature: void fr_dlist_foreach(fetching, crl_fetch_t, fetch)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:426,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:427,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:428,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/process/crl/base.c:436,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/process/crl/base.c:438,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/crl/base.c:443,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:451,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:453,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:454,1
    - Dst: fr_pair_immutable
      Src: /src/freeradius-server/src/process/crl/base.c:456,1
    - Dst: d2i_X509_CRL
      Src: /src/freeradius-server/src/process/crl/base.c:462,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:464,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:465,1
    - Dst: X509_STORE_CTX_new
      Src: /src/freeradius-server/src/process/crl/base.c:468,1
    - Dst: X509_STORE_CTX_init
      Src: /src/freeradius-server/src/process/crl/base.c:469,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:470,1
    - Dst: X509_STORE_CTX_free
      Src: /src/freeradius-server/src/process/crl/base.c:472,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/crl/base.c:473,1
    - Dst: X509_CRL_free
      Src: /src/freeradius-server/src/process/crl/base.c:474,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:475,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/crl/base.c:476,1
    - Dst: X509_STORE_CTX_get_obj_by_subject
      Src: /src/freeradius-server/src/process/crl/base.c:479,1
    - Dst: X509_CRL_get_issuer
      Src: /src/freeradius-server/src/process/crl/base.c:479,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:481,1
    - Dst: X509_get_pubkey
      Src: /src/freeradius-server/src/process/crl/base.c:484,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/freeradius-server/src/process/crl/base.c:484,1
    - Dst: X509_OBJECT_free
      Src: /src/freeradius-server/src/process/crl/base.c:485,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:487,1
    - Dst: X509_CRL_verify
      Src: /src/freeradius-server/src/process/crl/base.c:490,1
    - Dst: EVP_PKEY_free
      Src: /src/freeradius-server/src/process/crl/base.c:491,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:494,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:498,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/crl/base.c:505,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/process/crl/base.c:505,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/process/crl/base.c:512,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/process/crl/base.c:514,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/freeradius-server/src/process/crl/base.c:514,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/crl/base.c:515,1
    - Dst: fr_time_lt
      Src: /src/freeradius-server/src/process/crl/base.c:519,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:519,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:520,1
    - Dst: time
      Src: /src/freeradius-server/src/process/crl/base.c:520,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/crl/base.c:521,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/process/crl/base.c:521,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:521,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/freeradius-server/src/process/crl/base.c:525,1
    - Dst: fr_tls_strerror_printf
      Src: /src/freeradius-server/src/process/crl/base.c:527,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/freeradius-server/src/process/crl/base.c:535,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:537,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/process/crl/base.c:538,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/freeradius-server/src/process/crl/base.c:541,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:543,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:544,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:545,1
    - Dst: crl_fetching_entry_remove
      Src: /src/freeradius-server/src/process/crl/base.c:548,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:549,1
    - Dst: crl_build_reply
      Src: /src/freeradius-server/src/process/crl/base.c:561,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/process/crl/base.c:571,1
    - Dst: talloc_bstrdup
      Src: /src/freeradius-server/src/process/crl/base.c:578,1
    - Dst: talloc_typed_memdup
      Src: /src/freeradius-server/src/process/crl/base.c:579,1
    - Dst: fr_coord_pair_request_coord_pair
      Src: /src/freeradius-server/src/process/crl/base.c:580,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/freeradius-server/src/process/crl/base.c:586,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/crl/base.c:593,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/crl/base.c:595,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:597,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/freeradius-server/src/process/crl/base.c:600,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:602,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:603,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:604,1
    - Dst: ASN1_INTEGER_free
      Src: /src/freeradius-server/src/process/crl/base.c:606,1
    - Dst: ASN1_INTEGER_free
      Src: /src/freeradius-server/src/process/crl/base.c:609,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/freeradius-server/src/process/crl/base.c:610,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:612,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/freeradius-server/src/process/crl/base.c:613,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:614,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/process/crl/base.c:617,1
    - Dst: fr_tls_utils_asn1time_to_epoch
      Src: /src/freeradius-server/src/process/crl/base.c:620,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/freeradius-server/src/process/crl/base.c:620,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/crl/base.c:621,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/process/crl/base.c:625,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:625,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:626,1
    - Dst: time
      Src: /src/freeradius-server/src/process/crl/base.c:626,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/crl/base.c:627,1
    - Dst: fr_box_time
      Src: /src/freeradius-server/src/process/crl/base.c:627,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:627,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/freeradius-server/src/process/crl/base.c:634,1
    - Dst: STACK_OF
      Src: /src/freeradius-server/src/process/crl/base.c:636,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/process/crl/base.c:641,1
    - Dst: sk_DIST_POINT_num
      Src: /src/freeradius-server/src/process/crl/base.c:642,1
    - Dst: sk_DIST_POINT_value
      Src: /src/freeradius-server/src/process/crl/base.c:643,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/freeradius-server/src/process/crl/base.c:645,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/freeradius-server/src/process/crl/base.c:646,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/crl/base.c:648,1
    - Dst: fr_value_box_alloc_null
      Src: /src/freeradius-server/src/process/crl/base.c:648,1
    - Dst: fr_value_box_bstrndup
      Src: /src/freeradius-server/src/process/crl/base.c:649,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/freeradius-server/src/process/crl/base.c:650,1
    - Dst: ASN1_STRING_length
      Src: /src/freeradius-server/src/process/crl/base.c:651,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/process/crl/base.c:652,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/process/crl/base.c:653,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/freeradius-server/src/process/crl/base.c:656,1
    - Dst: fr_value_box_list_num_elements
      Src: /src/freeradius-server/src/process/crl/base.c:663,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/process/crl/base.c:666,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/process/crl/base.c:668,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:669,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/process/crl/base.c:672,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:673,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/crl/base.c:674,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/process/crl/base.c:674,1
    - Dst: fr_pair_append_by_da
      Src: /src/freeradius-server/src/process/crl/base.c:677,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/crl/base.c:678,1
    - Dst: fr_value_box_strdup
      Src: /src/freeradius-server/src/process/crl/base.c:678,1
    - Dst: fr_coord_pair_coord_request_start
      Src: /src/freeradius-server/src/process/crl/base.c:681,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:682,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:686,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/process/crl/base.c:690,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:691,1
    - Dst: crl_build_reply
      Src: /src/freeradius-server/src/process/crl/base.c:695,1
    - Dst: fr_time_from_sec
      Src: /src/freeradius-server/src/process/crl/base.c:701,1
    - Dst: fr_time_delta_sub
      Src: /src/freeradius-server/src/process/crl/base.c:702,1
    - Dst: fr_time_sub
      Src: /src/freeradius-server/src/process/crl/base.c:702,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/process/crl/base.c:704,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/process/crl/base.c:707,1
    - Dst: fr_time_delta_isneg
      Src: /src/freeradius-server/src/process/crl/base.c:714,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/crl/base.c:716,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/process/crl/base.c:716,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/process/crl/base.c:718,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/process/crl/base.c:719,1
    - Dst: X509_STORE_CTX_free
      Src: /src/freeradius-server/src/process/crl/base.c:722,1
    - Dst: X509_CRL_free
      Src: /src/freeradius-server/src/process/crl/base.c:723,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/crl/base.c:725,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 219
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 424
    functionDepth: 8
    functionLinenumber: 424
    functionLinenumberEnd: 726
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 3
    functionsReached:
    - ASN1_STRING_length
    - X509_STORE_CTX_init
    - crl_build_reply
    - X509_STORE_CTX_free
    - time
    - fr_time_delta_isneg
    - talloc_strdup
    - fr_value_box_bstrndup
    - X509_STORE_CTX_new
    - X509_CRL_get0_nextUpdate
    - fr_time_sub
    - ASN1_INTEGER_get_uint64
    - X509_OBJECT_free
    - CALL_RESUME
    - fr_timer_in
    - talloc_new
    - CRL_DIST_POINTS_free
    - fr_coord_pair_request_coord_pair
    - MEM
    - ASN1_INTEGER_free
    - fr_value_box_alloc_null
    - X509_get_pubkey
    - unlikely
    - ASN1_STRING_get0_data
    - X509_CRL_verify
    - crl_fetching_entry_remove
    - fr_time
    - fr_pair_append_by_da
    - fr_value_box_strdup
    - fr_time_delta_sub
    - talloc_get_type_abort
    - fr_tls_strerror_printf
    - talloc_typed_memdup
    - fr_rb_insert
    - X509_CRL_free
    - fr_tls_utils_asn1time_to_epoch
    - fr_value_box_copy
    - fr_time_lt
    - fr_time_from_sec
    - talloc_bstrdup
    - X509_STORE_CTX_get_obj_by_subject
    - fr_pair_list_init
    - fr_box_time
    - fr_value_box_list_init
    - talloc_set_destructor
    - sk_DIST_POINT_value
    - sk_GENERAL_NAME_value
    - sk_DIST_POINT_num
    - fr_value_box_list_foreach
    - fr_pair_list_append_by_da
    - RPERROR
    - fr_value_box_list_insert_tail
    - RDEBUG3
    - STACK_OF
    - fr_assert
    - RDEBUG2
    - X509_CRL_get_ext_d2i
    - fr_pair_find_by_da
    - CALL_SEND_TYPE
    - RERROR
    - fr_pair_immutable
    - TALLOC_FREE
    - talloc_free
    - X509_OBJECT_get0_X509
    - fr_coord_pair_coord_request_start
    - fr_time_gt
    - fr_box_time_delta
    - fr_value_box_list_num_elements
    - EVP_PKEY_free
    - talloc_zero
    - d2i_X509_CRL
    - sk_GENERAL_NAME_num
    - fr_time_delta_cmp
    - ASN1_INTEGER_cmp
    - X509_CRL_get_issuer
    - X509_CRL_get0_lastUpdate
    linkageType: ''
    returnType: void
    signature: void RESUME(crl_fetch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:863,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/crl/base.c:865,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/process/crl/base.c:865,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/process/crl/base.c:867,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/process/crl/base.c:868,1
    - Dst: X509_STORE_new
      Src: /src/freeradius-server/src/process/crl/base.c:870,1
    - Dst: X509_STORE_load_locations
      Src: /src/freeradius-server/src/process/crl/base.c:871,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/process/crl/base.c:872,1
    - Dst: X509_STORE_set_purpose
      Src: /src/freeradius-server/src/process/crl/base.c:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 880
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - X509_STORE_new
    - X509_STORE_set_purpose
    - fr_rb_inline_init
    - fr_dlist_init
    - talloc_get_type_abort
    - talloc_zero
    - X509_STORE_load_locations
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:884,1
    - Dst: X509_STORE_free
      Src: /src/freeradius-server/src/process/crl/base.c:886,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/crl/base.c:887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_detach_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 890
    functionName: mod_detach
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_detach(module_detach_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/crl/base.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_thread_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 898
    functionName: mod_thread_instantiate
    functionSourceFile: /src/freeradius-server/src/process/crl/base.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_thread_instantiate(module_thread_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: FR_DHCPV6_PROCESS_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DHCPV6_PROCESS_CODE_VALID(_x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:295,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:304,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:308,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:313,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:319,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 325
    functionName: dhcpv6_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void dhcpv6_packet_debug(request_t *request, fr_packet_t const *packet,
      fr_pair_list_t const *list, bool received)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:335,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:337,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:342,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:347,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:347,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:349,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:350,1
    - Dst: fr_pair_list_copy_by_ancestor
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:356,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:359,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:363,1
    - Dst: fr_pair_list_copy_by_ancestor
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:370,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:373,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:378,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - request
    - rctx
    - expect_server_id
    argTypes:
    - request_t*
    - process_dhcpv6_rctx_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 392
    functionName: dhcpv6_client_fields_store
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_copy
    - REDEBUG
    - fr_pair_list_copy_by_ancestor
    - MEM
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: int
    signature: int dhcpv6_client_fields_store(request_t *request, process_dhcpv6_rctx_t
      *rctx, bool expect_server_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:405,1
    - Dst: dhcpv6_client_fields_store
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:409,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:411,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 400
    functionDepth: 6
    functionLinenumber: 400
    functionLinenumberEnd: 416
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - UPDATE_STATE_CS
    - dhcpv6_client_fields_store
    - talloc_get_type_abort
    - unlang_module_yield_to_section
    linkageType: ''
    returnType: void
    signature: void RECV(for_any_server)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:439,1
    - Dst: dhcpv6_client_fields_store
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:443,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:445,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 434
    functionDepth: 6
    functionLinenumber: 434
    functionLinenumberEnd: 450
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - UPDATE_STATE_CS
    - dhcpv6_client_fields_store
    - talloc_get_type_abort
    - unlang_module_yield_to_section
    linkageType: ''
    returnType: void
    signature: void RECV(for_this_server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:461,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:463,1
    - Dst: fr_pair_cmp
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:465,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:466,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:468,1
    - Dst: fr_pair_steal_append
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:472,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - request
    - to_restore
    argTypes:
    - request_t*
    - fr_pair_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 480
    functionName: restore_field
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - RPERROR
    - PAIR_VERIFY
    - RWDEBUG
    - fr_pair_find_by_da
    - fr_pair_steal_append
    - fr_pair_cmp
    linkageType: ''
    returnType: int
    signature: int restore_field(request_t *request, fr_pair_t **to_restore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:487,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:488,1
    - Dst: restore_field
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - request
    - to_restore
    argTypes:
    - request_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 493
    functionName: restore_field_list
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_remove
    - fr_pair_list_head
    - restore_field
    linkageType: ''
    returnType: int
    signature: int restore_field_list(request_t *request, fr_pair_list_t *to_restore)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:521,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:522,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:522,1
    - Dst: RPERROR
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:523,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:524,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:536,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:538,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:538,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:539,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:541,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:542,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:554,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:555,1
    - Dst: fr_sbuff_init_talloc
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:564,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:571,1
    - Dst: fr_sbuff_in_bstrncpy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:571,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:573,1
    - Dst: fr_sbuff_in_strcpy_literal
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:575,1
    - Dst: fr_sbuff_trim_talloc
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:577,1
    - Dst: fr_pair_value_bstrndup_shallow
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:578,1
    - Dst: fr_sbuff_start
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:578,1
    - Dst: fr_sbuff_used
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:578,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 3
    argNames:
    - inst
    - request
    - code
    argTypes:
    - process_dhcpv6_t*
    - request_t*
    - fr_value_box_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 499
    functionDepth: 7
    functionLinenumber: 499
    functionLinenumberEnd: 580
    functionName: status_code_add
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_sbuff_start
    - fr_sbuff_trim_talloc
    - fr_pair_value_bstrndup_shallow
    - talloc_free
    - fr_sbuff_used
    - fr_pair_append
    - pair_delete_reply
    - fr_sbuff_init_talloc
    - fr_sbuff_in_strcpy_literal
    - pair_update_reply
    - RPERROR
    - fr_pair_remove
    - fr_sbuff_in_bstrncpy
    - MEM
    - fr_pair_find_by_da
    - fr_pair_copy
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void status_code_add(process_dhcpv6_t const *inst, request_t *request,
      fr_value_box_t const **code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:587,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:588,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:592,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:598,1
    - Dst: status_code_add
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:603,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:610,1
    - Dst: restore_field
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:610,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:613,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:615,1
    - Dst: restore_field_list
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:615,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:616,1
    - Dst: restore_field_list
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:616,1
    - Dst: dhcpv6_packet_debug
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:618,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 585
    functionDepth: 8
    functionLinenumber: 585
    functionLinenumberEnd: 621
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 4
    functionsReached:
    - unlikely
    - restore_field
    - restore_field_list
    - talloc_get_type_abort
    - status_code_add
    - UPDATE_STATE
    - CALL_RESUME
    - dhcpv6_packet_debug
    linkageType: ''
    returnType: void
    signature: void RESUME(send_to_client)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:632,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:634,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:638,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:640,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:644,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:646,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:650,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:655,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:655,1
    - Dst: unlang_interpret_frame_talloc_ctx
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:655,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:656,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:656,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:657,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:657,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:658,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:658,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:659,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - request
    argTypes:
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 662
    functionName: dhcpv6_relay_fields_store
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - REDEBUG
    - talloc_zero
    - unlang_interpret_frame_talloc_ctx
    - MEM
    - fr_pair_find_by_da
    - fr_pair_copy
    linkageType: ''
    returnType: process_dhcpv6_relay_fields_t
    signature: process_dhcpv6_relay_fields_t *dhcpv6_relay_fields_store(request_t
      *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:673,1
    - Dst: dhcpv6_relay_fields_store
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:675,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:679,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 667
    functionDepth: 5
    functionLinenumber: 667
    functionLinenumberEnd: 684
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - UPDATE_STATE_CS
    - dhcpv6_relay_fields_store
    - talloc_get_type_abort
    - unlang_module_yield_to_section
    linkageType: ''
    returnType: void
    signature: void RECV(from_relay)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:691,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:692,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:693,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:696,1
    - Dst: status_code_add
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:701,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:706,1
    - Dst: restore_field
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:706,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:709,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:711,1
    - Dst: restore_field
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:711,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:712,1
    - Dst: restore_field
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:712,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:713,1
    - Dst: restore_field
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:713,1
    - Dst: dhcpv6_packet_debug
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:715,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:717,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 689
    functionDepth: 8
    functionLinenumber: 689
    functionLinenumberEnd: 718
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 5
    functionsReached:
    - unlikely
    - restore_field
    - talloc_get_type_abort
    - status_code_add
    - UPDATE_STATE
    - CALL_RESUME
    - dhcpv6_packet_debug
    linkageType: ''
    returnType: void
    signature: void RESUME(send_to_relay)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:729,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:730,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:730,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:734,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:736,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:739,1
    - Dst: dhcpv6_packet_debug
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:743,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:745,1
    - Dst: request_is_dynamic_client
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:745,1
    - Dst: new_client
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:746,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 723
    functionDepth: 5
    functionLinenumber: 723
    functionLinenumberEnd: 750
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_process_state_t*::recv
    - REDEBUG
    - request_is_dynamic_client
    - new_client
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    - dhcpv6_packet_debug
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:754,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:756,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/process/dhcpv6/base.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 759
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - talloc_get_type_abort
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/eap_aka_prime/base.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/eap_aka_prime/base.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/eap_aka_prime/base.c:231,1
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/process/eap_aka_prime/base.c:231,1
    - Dst: fr_aka_sim_xlat_func_register
      Src: /src/freeradius-server/src/process/eap_aka_prime/base.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 9
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/process/eap_aka_prime/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_aka_sim_init
    - fr_aka_sim_xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_xlat_func_unregister
      Src: /src/freeradius-server/src/process/eap_aka_prime/base.c:240,1
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/process/eap_aka_prime/base.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/process/eap_aka_prime/base.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_xlat_func_unregister
    - fr_aka_sim_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/eap_sim/base.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/eap_sim/base.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/eap_sim/base.c:220,1
    - Dst: fr_aka_sim_init
      Src: /src/freeradius-server/src/process/eap_sim/base.c:220,1
    - Dst: fr_aka_sim_xlat_func_register
      Src: /src/freeradius-server/src/process/eap_sim/base.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/process/eap_sim/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_aka_sim_init
    - fr_aka_sim_xlat_func_register
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_aka_sim_xlat_func_unregister
      Src: /src/freeradius-server/src/process/eap_sim/base.c:229,1
    - Dst: fr_aka_sim_free
      Src: /src/freeradius-server/src/process/eap_sim/base.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/process/eap_sim/base.c
    functionUses: 0
    functionsReached:
    - fr_aka_sim_xlat_func_unregister
    - fr_aka_sim_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/process/tacacs/base.c:219,1
    - Dst: fr_hash64
      Src: /src/freeradius-server/src/process/tacacs/base.c:222,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/process/tacacs/base.c:224,1
    - Dst: fr_hash64_update
      Src: /src/freeradius-server/src/process/tacacs/base.c:233,1
    - Dst: fr_hash64_update
      Src: /src/freeradius-server/src/process/tacacs/base.c:235,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:237,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/process/tacacs/base.c:240,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/process/tacacs/base.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - out
    - request
    - reply
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - request_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 245
    functionName: state_create
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_find_by_da_nested
    - fr_pair_append
    - fr_hash64
    - fr_pair_value_memdup
    - fr_hash64_update
    linkageType: ''
    returnType: int
    signature: int state_create(TALLOC_CTX *ctx, fr_pair_list_t *out, request_t *request,
      bool reply)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:279,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:281,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:284,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:285,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:289,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:294,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:299,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:305,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:306,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - request
    - status_da
    - status2code
    - state
    - process_rcode
    - rcode
    argTypes:
    - request_t*
    - fr_dict_attr_t*
    - uint32_t[]
    - fr_process_state_t*
    - fr_process_rcode_t
    - rlm_rcode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 312
    functionName: reply_code
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - REDEBUG
    - fr_assert
    - FR_TACACS_PACKET_CODE_VALID
    - fr_pair_find_by_da
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t reply_code(request_t *request, fr_dict_attr_t const *status_da,\n\t\t\t
      \  uint32_t const status2code[static UINT8_MAX + 1],\n\t\t\t   fr_process_state_t
      const *state, fr_process_rcode_t const process_rcode, rlm_rcode_t rcode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:323,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:327,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:329,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:330,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:334,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/tacacs/base.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 343
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 2
    functionsReached:
    - CALL_SEND_STATE
    - RDEBUG
    - CALL_RECV
    - UPDATE_STATE
    - fr_assert
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RECV(auth_start)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/tacacs/base.c:364,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:368,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:373,1
    - Dst: reply_code
      Src: /src/freeradius-server/src/process/tacacs/base.c:382,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:386,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:386,1
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/process/tacacs/base.c:402,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:411,1
    - Dst: packet_is_authen_start_request
      Src: /src/freeradius-server/src/process/tacacs/base.c:412,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/process/tacacs/base.c:413,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:417,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:419,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:422,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:434,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/tacacs/base.c:444,1
    - Dst: pair_append_reply
      Src: /src/freeradius-server/src/process/tacacs/base.c:444,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/tacacs/base.c:445,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/process/tacacs/base.c:445,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:446,1
    - Dst: pair_delete_reply
      Src: /src/freeradius-server/src/process/tacacs/base.c:447,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:468,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/process/tacacs/base.c:469,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:473,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:477,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:477,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:478,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:483,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:485,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:486,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:498,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:499,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:501,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/process/tacacs/base.c:509,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:511,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/process/tacacs/base.c:523,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/process/tacacs/base.c:527,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/process/tacacs/base.c:533,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/tacacs/base.c:535,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:544,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/process/tacacs/base.c:544,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/process/tacacs/base.c:544,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/tacacs/base.c:545,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 357
    functionDepth: 7
    functionLinenumber: 357
    functionLinenumberEnd: 548
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - cf_section_find
    - fr_value_box_cmp
    - MEM
    - pair_append_reply
    - reply_code
    - unlikely
    - RPEDEBUG
    - cf_filename
    - fr_table_str_by_value
    - cf_section_name2
    - request_data_reference
    - fr_dict_enum_by_value
    - fr_assert
    - UPDATE_STATE
    - RDEBUG2
    - fr_pair_find_by_da
    - CALL_SEND_STATE
    - RDEBUG
    - unlang_module_yield_to_section
    - pair_delete_reply
    - talloc_get_type_abort_const
    - FR_TACACS_PACKET_CODE_VALID
    - packet_is_authen_start_request
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void RESUME(auth_start)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:569,1
    - Dst: reply_code
      Src: /src/freeradius-server/src/process/tacacs/base.c:579,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:583,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:583,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:588,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/tacacs/base.c:597,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:603,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/tacacs/base.c:605,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:614,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:616,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/process/tacacs/base.c:617,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 618
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - reply_code
    - RDEBUG
    - fr_assert
    - RDEBUG2
    - UPDATE_STATE
    - FR_TACACS_PACKET_CODE_VALID
    - fr_process_state_t*::send
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(auth_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 694
    functionName: COPY
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: COPY_MISSING
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_MISSING(_attr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/tacacs/base.c:739,1
    - Dst: state_create
      Src: /src/freeradius-server/src/process/tacacs/base.c:742,1
    - Dst: fr_state_restore
      Src: /src/freeradius-server/src/process/tacacs/base.c:743,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/tacacs/base.c:744,1
    - Dst: request_data_reference
      Src: /src/freeradius-server/src/process/tacacs/base.c:750,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:755,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/tacacs/base.c:757,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/tacacs/base.c:761,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/process/tacacs/base.c:762,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/process/tacacs/base.c:763,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/tacacs/base.c:764,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/process/tacacs/base.c:766,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/process/tacacs/base.c:768,1
    - Dst: EXTRACT
      Src: /src/freeradius-server/src/process/tacacs/base.c:787,1
    - Dst: EXTRACT
      Src: /src/freeradius-server/src/process/tacacs/base.c:791,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/tacacs/base.c:799,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 737
    functionDepth: 5
    functionLinenumber: 737
    functionLinenumberEnd: 800
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 3
    functionsReached:
    - state_create
    - CALL_SEND_TYPE
    - request_data_reference
    - fr_state_restore
    - fr_pair_list_next
    - REDEBUG
    - CALL_RECV
    - RINDENT
    - RDEBUG2
    - talloc_get_type_abort_const
    - REXDENT
    - EXTRACT
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void RECV(auth_cont)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 784
    functionName: EXTRACT
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRACT(_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/tacacs/base.c:807,1
    - Dst: state_create
      Src: /src/freeradius-server/src/process/tacacs/base.c:809,1
    - Dst: fr_state_restore
      Src: /src/freeradius-server/src/process/tacacs/base.c:810,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/tacacs/base.c:811,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/tacacs/base.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 805
    functionDepth: 4
    functionLinenumber: 805
    functionLinenumberEnd: 815
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 4
    functionsReached:
    - state_create
    - CALL_SEND_TYPE
    - fr_state_restore
    - CALL_RECV
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void RECV(auth_cont_abort)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:822,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:837,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:837,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:841,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:843,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:845,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:846,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 847
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - CALL_SEND_STATE
    - RDEBUG
    - UPDATE_STATE
    - fr_assert
    - FR_TACACS_PACKET_CODE_VALID
    linkageType: ''
    returnType: void
    signature: void RESUME(auth_cont_abort)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:865,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:870,1
    - Dst: reply_code
      Src: /src/freeradius-server/src/process/tacacs/base.c:879,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:884,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:884,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:887,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:889,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:891,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 893
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - CALL_SEND_STATE
    - reply_code
    - RDEBUG
    - fr_assert
    - UPDATE_STATE
    - FR_TACACS_PACKET_CODE_VALID
    linkageType: ''
    returnType: void
    signature: void RESUME(autz_request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reply_code
      Src: /src/freeradius-server/src/process/tacacs/base.c:922,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:926,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:926,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:929,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:931,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/process/tacacs/base.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 933
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - reply_code
    - fr_assert
    - UPDATE_STATE
    - FR_TACACS_PACKET_CODE_VALID
    - fr_process_state_t*::send
    linkageType: ''
    returnType: void
    signature: void RESUME(acct_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:944,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:950,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/tacacs/base.c:951,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/tacacs/base.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 955
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - RWDEBUG
    - CALL_RECV
    - fr_pair_find_by_da
    - CALL_SEND_TYPE
    linkageType: ''
    returnType: void
    signature: void RECV(accounting_request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/tacacs/base.c:964,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:968,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:970,1
    - Dst: reply_code
      Src: /src/freeradius-server/src/process/tacacs/base.c:979,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:982,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:982,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:989,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:989,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:992,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:994,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:996,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:997,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/tacacs/base.c:1003,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:1007,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:1008,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:1009,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/process/tacacs/base.c:1012,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/process/tacacs/base.c:1015,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/tacacs/base.c:1017,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/tacacs/base.c:1026,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 1029
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 5
    functionsReached:
    - CALL_SEND_STATE
    - reply_code
    - RDEBUG
    - cf_section_find
    - fr_dict_enum_by_value
    - unlang_module_yield_to_section
    - fr_assert
    - UPDATE_STATE
    - RDEBUG2
    - talloc_get_type_abort_const
    - FR_TACACS_PACKET_CODE_VALID
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(accounting_request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/tacacs/base.c:1037,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:1038,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/tacacs/base.c:1038,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/tacacs/base.c:1042,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/tacacs/base.c:1044,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:1047,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/tacacs/base.c:1054,1
    - Dst: request_is_dynamic_client
      Src: /src/freeradius-server/src/process/tacacs/base.c:1054,1
    - Dst: new_client
      Src: /src/freeradius-server/src/process/tacacs/base.c:1055,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/tacacs/base.c:1058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1059
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_process_state_t*::recv
    - REDEBUG
    - request_is_dynamic_client
    - new_client
    - fr_assert
    - UPDATE_STATE
    - talloc_get_type_abort_const
    - FR_TACACS_PACKET_CODE_VALID
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/freeradius-server/src/process/tacacs/base.c:1083,1
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/process/tacacs/base.c:1086,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/tacacs/base.c:1090,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/process/tacacs/base.c:1090,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/process/tacacs/base.c:1096,1
    - Dst: fr_tacacs_decode
      Src: /src/freeradius-server/src/process/tacacs/base.c:1097,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/tacacs/base.c:1099,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/process/tacacs/base.c:1102,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/process/tacacs/base.c:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1110
    functionName: xlat_func_tacacs_secret_verify
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - fr_dcursor_append
    - talloc_free
    - XLAT_ARGS
    - fr_tacacs_decode
    - fr_value_box_alloc
    - talloc_new
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_tacacs_secret_verify(TALLOC_CTX *ctx, fr_dcursor_t
      *out, UNUSED xlat_ctx_t const *xctx,\n                                                    request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/tacacs/base.c:1114,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/process/tacacs/base.c:1116,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/process/tacacs/base.c:1116,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/process/tacacs/base.c:1118,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/process/tacacs/base.c:1119,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/process/tacacs/base.c:1121,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/process/tacacs/base.c:1122,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/process/tacacs/base.c:1125,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/process/tacacs/base.c:1125,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/tacacs/base.c:1127,1
    - Dst: fr_state_tree_init
      Src: /src/freeradius-server/src/process/tacacs/base.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1130
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - fr_hash_string
    - cf_parent
    - talloc_get_type_abort
    - cf_section_name2
    - FR_INTEGER_BOUND_CHECK
    - MEM
    - fr_state_tree_init
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/process/tacacs/base.c:1134,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/process/tacacs/base.c:1134,1
    - Dst: virtual_server_section_attribute_define
      Src: /src/freeradius-server/src/process/tacacs/base.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1139
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - virtual_server_section_attribute_define
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/tacacs/base.c:1145,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/process/tacacs/base.c:1145,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/process/tacacs/base.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1151
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/process/tacacs/base.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1156
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/process/tacacs/base.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/arp/base.c:177,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/arp/base.c:182,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/arp/base.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: arp_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/arp/base.c
    functionUses: 0
    functionsReached:
    - log_request_pair_list
    - log_request
    - log_request_proto_pair_list
    linkageType: ''
    returnType: void
    signature: void arp_packet_debug(request_t *request, fr_packet_t const *packet,
      fr_pair_list_t const *list, bool received)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/arp/base.c:194,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/arp/base.c:195,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/arp/base.c:195,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/arp/base.c:199,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/arp/base.c:201,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/arp/base.c:204,1
    - Dst: arp_packet_debug
      Src: /src/freeradius-server/src/process/arp/base.c:208,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/arp/base.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 211
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/arp/base.c
    functionUses: 0
    functionsReached:
    - fr_process_state_t*::recv
    - REDEBUG
    - arp_packet_debug
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/vmps/base.c:181,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/vmps/base.c:190,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/vmps/base.c:194,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/process/vmps/base.c:199,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/vmps/base.c:205,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/vmps/base.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 209
    functionName: vmps_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/vmps/base.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void vmps_packet_debug(request_t *request, fr_packet_t const *packet,
      fr_pair_list_t const *list, bool received)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/vmps/base.c:217,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/vmps/base.c:218,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/vmps/base.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/vmps/base.c:222,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/vmps/base.c:224,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/vmps/base.c:227,1
    - Dst: vmps_packet_debug
      Src: /src/freeradius-server/src/process/vmps/base.c:231,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/vmps/base.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 234
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/vmps/base.c
    functionUses: 0
    functionsReached:
    - fr_process_state_t*::recv
    - REDEBUG
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    - vmps_packet_debug
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: SECTION
    functionSourceFile: /src/freeradius-server/src/process/bfd/base.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECTION(_x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/bfd/base.c:89,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/bfd/base.c:98,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/bfd/base.c:102,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/process/bfd/base.c:107,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/bfd/base.c:113,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/bfd/base.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 117
    functionName: bfd_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/bfd/base.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void bfd_packet_debug(request_t *request, fr_packet_t *packet, fr_pair_list_t
      *list, bool received)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/bfd/base.c:232,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/bfd/base.c:233,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/bfd/base.c:233,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/bfd/base.c:238,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/bfd/base.c:246,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/bfd/base.c:248,1
    - Dst: bfd_packet_debug
      Src: /src/freeradius-server/src/process/bfd/base.c:250,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/process/bfd/base.c:251,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/bfd/base.c:254,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/bfd/base.c:256,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/bfd/base.c:259,1
    - Dst: bfd_packet_debug
      Src: /src/freeradius-server/src/process/bfd/base.c:263,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/bfd/base.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 266
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/bfd/base.c
    functionUses: 0
    functionsReached:
    - bfd_packet_debug
    - fr_process_state_t*::recv
    - REDEBUG
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    - fr_process_state_t*::send
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: SEND_RECV
    functionSourceFile: /src/freeradius-server/src/process/bfd/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEND_RECV(_x, _y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: FR_RADIUS_PROCESS_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_RADIUS_PROCESS_CODE_VALID(_x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/radius/base.c:182,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/radius/base.c:191,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/radius/base.c:195,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/process/radius/base.c:200,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/radius/base.c:206,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/radius/base.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 210
    functionName: radius_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void radius_packet_debug(request_t *request, fr_packet_t *packet, fr_pair_list_t
      *list, bool received)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:223,1
    - Dst: fr_value_box_list_init
      Src: /src/freeradius-server/src/process/radius/base.c:226,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/radius/base.c:235,1
    - Dst: fr_value_box_acopy
      Src: /src/freeradius-server/src/process/radius/base.c:235,1
    - Dst: fr_value_box_list_insert_tail
      Src: /src/freeradius-server/src/process/radius/base.c:236,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - request
    - rctx
    argTypes:
    - request_t*
    - process_radius_rctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 8
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: radius_request_pairs_store
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - fr_value_box_list_init
    - fr_value_box_acopy
    - fr_value_box_list_insert_tail
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void radius_request_pairs_store(request_t *request, process_radius_rctx_t
      *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:261,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/process/radius/base.c:263,1
    - Dst: RINDENT
      Src: /src/freeradius-server/src/process/radius/base.c:264,1
    - Dst: fr_value_box_list_foreach
      Src: /src/freeradius-server/src/process/radius/base.c:265,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/radius/base.c:268,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/process/radius/base.c:268,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/radius/base.c:269,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/process/radius/base.c:269,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/radius/base.c:270,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/process/radius/base.c:271,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/process/radius/base.c:274,1
    - Dst: RDEBUG3
      Src: /src/freeradius-server/src/process/radius/base.c:275,1
    - Dst: REXDENT
      Src: /src/freeradius-server/src/process/radius/base.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - request
    - rctx
    argTypes:
    - request_t*
    - process_radius_rctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 241
    functionDepth: 7
    functionLinenumber: 241
    functionLinenumberEnd: 278
    functionName: radius_request_pairs_to_reply
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_delete_by_da
    - unlikely
    - talloc_free
    - fr_pair_append
    - fr_value_box_list_foreach
    - RINDENT
    - RDEBUG3
    - RDEBUG2
    - REXDENT
    - MEM
    - fr_value_box_copy
    linkageType: ''
    returnType: void
    signature: void radius_request_pairs_to_reply(request_t *request, process_radius_rctx_t
      *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radius_request_pairs_store
      Src: /src/freeradius-server/src/process/radius/base.c:284,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/radius/base.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 9
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached:
    - radius_request_pairs_store
    - CALL_RECV
    linkageType: ''
    returnType: void
    signature: void RECV(generic_radius_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radius_request_pairs_to_reply
      Src: /src/freeradius-server/src/process/radius/base.c:294,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/radius/base.c:294,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/radius/base.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 8
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached:
    - CALL_RESUME
    - talloc_get_type_abort
    - radius_request_pairs_to_reply
    linkageType: ''
    returnType: void
    signature: void RESUME(generic_radius_response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/radius/base.c:301,1
    - Dst: fr_state_restore
      Src: /src/freeradius-server/src/process/radius/base.c:303,1
    - Dst: CALL_SEND_TYPE
      Src: /src/freeradius-server/src/process/radius/base.c:304,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/radius/base.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 308
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 7
    functionsReached:
    - CALL_SEND_TYPE
    - CALL_RECV
    - fr_state_restore
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: void
    signature: void RECV(access_request)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/radius/base.c:319,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:323,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:328,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:334,1
    - Dst: FR_RADIUS_PROCESS_CODE_VALID
      Src: /src/freeradius-server/src/process/radius/base.c:335,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/process/radius/base.c:337,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:350,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/process/radius/base.c:351,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:354,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:356,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:357,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:373,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:375,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/process/radius/base.c:382,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:384,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/process/radius/base.c:394,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/process/radius/base.c:398,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/process/radius/base.c:402,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/radius/base.c:404,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:413,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/process/radius/base.c:413,1
    - Dst: cf_filename
      Src: /src/freeradius-server/src/process/radius/base.c:413,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/radius/base.c:414,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 417
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached:
    - CALL_SEND_STATE
    - fr_pair_delete
    - RDEBUG
    - cf_section_find
    - fr_dict_enum_by_value
    - FR_RADIUS_PROCESS_CODE_VALID
    - unlang_module_yield_to_section
    - cf_filename
    - fr_table_str_by_value
    - cf_section_name2
    - fr_assert
    - UPDATE_STATE
    - RDEBUG2
    - talloc_get_type_abort_const
    - fr_value_box_cmp
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(access_request)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:440,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:446,1
    - Dst: FR_RADIUS_PROCESS_CODE_VALID
      Src: /src/freeradius-server/src/process/radius/base.c:447,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/process/radius/base.c:449,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:457,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/radius/base.c:465,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:470,1
    - Dst: fr_utf8_char
      Src: /src/freeradius-server/src/process/radius/base.c:479,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:481,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:484,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:500,1
    - Dst: fr_rand_buffer
      Src: /src/freeradius-server/src/process/radius/base.c:503,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/radius/base.c:505,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/radius/base.c:505,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/process/radius/base.c:506,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:513,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:515,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/process/radius/base.c:516,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 517
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached:
    - fr_pair_delete
    - RDEBUG
    - FR_RADIUS_PROCESS_CODE_VALID
    - fr_pair_value_memdup
    - pair_update_reply
    - fr_assert
    - RDEBUG2
    - fr_utf8_char
    - fr_rand_buffer
    - UPDATE_STATE
    - fr_process_state_t*::send
    - RWDEBUG
    - MEM
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(auth_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radius_request_pairs_store
      Src: /src/freeradius-server/src/process/radius/base.c:582,1
    - Dst: CALL_RECV
      Src: /src/freeradius-server/src/process/radius/base.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 9
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 8
    functionsReached:
    - radius_request_pairs_store
    - CALL_RECV
    linkageType: ''
    returnType: void
    signature: void RECV(accounting_request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:603,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:604,1
    - Dst: FR_RADIUS_PROCESS_CODE_VALID
      Src: /src/freeradius-server/src/process/radius/base.c:604,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:607,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:610,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:612,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/process/radius/base.c:613,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:615,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/process/radius/base.c:616,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:620,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:622,1
    - Dst: fr_process_state_t*::send
      Src: /src/freeradius-server/src/process/radius/base.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 624
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached:
    - RDEBUG
    - FR_RADIUS_PROCESS_CODE_VALID
    - fr_table_str_by_value
    - fr_assert
    - UPDATE_STATE
    - fr_process_state_t*::send
    linkageType: ''
    returnType: void
    signature: void RESUME(acct_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/radius/base.c:633,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:637,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:639,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:640,1
    - Dst: UPDATE_STATE_CS
      Src: /src/freeradius-server/src/process/radius/base.c:643,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:646,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/process/radius/base.c:647,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/radius/base.c:650,1
    - Dst: CALL_SEND_STATE
      Src: /src/freeradius-server/src/process/radius/base.c:651,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/radius/base.c:657,1
    - Dst: fr_dict_enum_by_value
      Src: /src/freeradius-server/src/process/radius/base.c:660,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/process/radius/base.c:663,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/process/radius/base.c:665,1
    - Dst: unlang_module_yield_to_section
      Src: /src/freeradius-server/src/process/radius/base.c:674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 677
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached:
    - CALL_SEND_STATE
    - RDEBUG
    - cf_section_find
    - fr_dict_enum_by_value
    - unlang_module_yield_to_section
    - fr_table_str_by_value
    - fr_assert
    - UPDATE_STATE
    - RDEBUG2
    - talloc_get_type_abort_const
    - UPDATE_STATE_CS
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void RESUME(accounting_request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 684
    functionName: RECV
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RECV(status_server)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 689
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RESUME(status_server)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_ARGS
      Src: /src/freeradius-server/src/process/radius/base.c:797,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/radius/base.c:801,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/process/radius/base.c:801,1
    - Dst: fr_radius_verify
      Src: /src/freeradius-server/src/process/radius/base.c:810,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:817,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/process/radius/base.c:822,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/process/radius/base.c:826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - args
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - fr_value_box_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 829
    functionName: xlat_func_radius_secret_verify
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - fr_dcursor_append
    - XLAT_ARGS
    - fr_radius_verify
    - fr_value_box_alloc
    - MEM
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t xlat_func_radius_secret_verify(TALLOC_CTX *ctx, fr_dcursor_t
      *out, UNUSED xlat_ctx_t const *xctx,\n                                                    request_t
      *request, fr_value_box_list_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/process/radius/base.c:833,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/process/radius/base.c:835,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/process/radius/base.c:835,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/process/radius/base.c:837,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/process/radius/base.c:838,1
    - Dst: fr_hash_string
      Src: /src/freeradius-server/src/process/radius/base.c:841,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/process/radius/base.c:841,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/radius/base.c:843,1
    - Dst: fr_state_tree_init
      Src: /src/freeradius-server/src/process/radius/base.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 846
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - fr_hash_string
    - cf_parent
    - talloc_get_type_abort
    - cf_section_name2
    - FR_INTEGER_BOUND_CHECK
    - MEM
    - fr_state_tree_init
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/process/radius/base.c:850,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/process/radius/base.c:850,1
    - Dst: virtual_server_section_attribute_define
      Src: /src/freeradius-server/src/process/radius/base.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 855
    functionName: mod_bootstrap
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - virtual_server_section_attribute_define
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_bootstrap(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/radius/base.c:861,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/process/radius/base.c:861,1
    - Dst: xlat_func_args_set
      Src: /src/freeradius-server/src/process/radius/base.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - xlat_func_register
    - xlat_func_args_set
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/process/radius/base.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 872
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/process/radius/base.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:68,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:77,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:81,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:86,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:92,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 96
    functionName: dhcpv4_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/dhcpv4/base.c
    functionUses: 0
    functionsReached:
    - log_request
    - fr_ifname_from_ifindex
    - log_request_proto_pair_list
    - log_request_pair_list
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void dhcpv4_packet_debug(request_t *request, fr_packet_t *packet, fr_pair_list_t
      *list, bool received)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: FR_DHCP_PROCESS_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/process/dhcpv4/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DHCP_PROCESS_CODE_VALID(_x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:139,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:141,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:151,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:155,1
    - Dst: pair_update_reply
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:155,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:156,1
    - Dst: MEM
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:157,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:157,1
    - Dst: CALL_RESUME
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 162
    functionName: RESUME
    functionSourceFile: /src/freeradius-server/src/process/dhcpv4/base.c
    functionUses: 7
    functionsReached:
    - fr_pair_list_num_elements
    - REDEBUG
    - pair_update_reply
    - CALL_RESUME
    - MEM
    - fr_pair_find_by_da
    - fr_pair_list_copy
    linkageType: ''
    returnType: void
    signature: void RESUME(check_offer_ack_options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:438,1
    - Dst: PROCESS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:438,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:442,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:444,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:447,1
    - Dst: dhcpv4_packet_debug
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:451,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:453,1
    - Dst: request_is_dynamic_client
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:453,1
    - Dst: new_client
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:454,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/dhcpv4/base.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 458
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/dhcpv4/base.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_process_state_t*::recv
    - dhcpv4_packet_debug
    - REDEBUG
    - request_is_dynamic_client
    - new_client
    - fr_assert
    - UPDATE_STATE
    - PROCESS_PACKET_CODE_VALID
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_request
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:68,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:74,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - request
    - packet
    - list
    - received
    argTypes:
    - request_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: ldap_sync_packet_debug
    functionSourceFile: /src/freeradius-server/src/process/ldap_sync/base.c
    functionUses: 0
    functionsReached:
    - log_request_pair_list
    - log_request
    linkageType: ''
    returnType: void
    signature: void ldap_sync_packet_debug(request_t *request, fr_packet_t *packet,
      fr_pair_list_t *list, bool received)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:110,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:114,1
    - Dst: FR_LDAP_SYNC_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:114,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:118,1
    - Dst: UPDATE_STATE
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:120,1
    - Dst: ldap_sync_packet_debug
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:122,1
    - Dst: fr_process_state_t*::recv
      Src: /src/freeradius-server/src/process/ldap_sync/base.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - p_result
    - mctx
    - request
    argTypes:
    - unlang_result_t*
    - module_ctx_t*
    - request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: mod_process
    functionSourceFile: /src/freeradius-server/src/process/ldap_sync/base.c
    functionUses: 0
    functionsReached:
    - fr_process_state_t*::recv
    - FR_LDAP_SYNC_PACKET_CODE_VALID
    - fr_assert
    - ldap_sync_packet_debug
    - UPDATE_STATE
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: unlang_action_t
    signature: unlang_action_t mod_process(unlang_result_t *p_result, module_ctx_t
      const *mctx, request_t *request)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:120,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:144,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:146,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:151,1
    - Dst: fr_dns_packet_ok
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:163,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:164,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:165,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:177,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 186
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_GLOBAL
    - udp_recv
    - talloc_get_type_abort
    - fr_dns_packet_ok
    - fr_table_str_by_value
    - DEBUG2
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len,\n\t\t\tsize_t *leftover)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:192,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:194,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:212,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 232
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 3
    functionsReached:
    - fr_socket_addr_swap
    - talloc_get_type_abort
    - udp_send
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:259,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:260,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:266,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:268,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:268,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:273,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:282,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:283,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:283,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:284,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:292,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:293,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:294,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:296,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:297,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:297,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:298,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:298,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:304,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:304,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:304,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:304,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 311
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - setsockopt
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - rad_suid_down
    - fr_socket_addr_alloc_inet_src
    - DOC_ROOT_REF
    - fr_assert
    - fr_strerror
    - talloc_get_type_abort_const
    - rad_suid_up
    - cf_log_err
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:319,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:320,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 330
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:343,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:356,1
    - Dst: fr_interface_to_ipaddr
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:366,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:367,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:374,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:375,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:378,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:379,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:385,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:387,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:389,1
    - Dst: cf_section_find_parent
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:394,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:395,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:403,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:404,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:406,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:414,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:423,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:424,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 427
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_perr
    - fr_interface_to_ipaddr
    - talloc_strdup
    - talloc_get_type_abort
    - cf_section_find_parent
    - client_list_parse_section
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_zero
    - talloc_array_length
    - fr_master_io_network
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:431,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/dns/proto_dns_udp.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns_udp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:100,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:105,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:106,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:108,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 118
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - talloc_get_type_abort
    - fr_dict_enum_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:122,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:125,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:125,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 3
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:142,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:148,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:156,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:159,1
    - Dst: talloc
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:162,1
    - Dst: fr_dns_labels_get
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:165,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:166,1
    - Dst: fr_dns_decode
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:173,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:175,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:176,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:179,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:184,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:187,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:189,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:190,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 197
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - RPEDEBUG
    - talloc_free
    - UNCONST
    - fr_dns_decode
    - talloc
    - fr_socket_addr_swap
    - fr_assert
    - RHEXDUMP3
    - REQUEST_VERIFY
    - talloc_get_type_abort_const
    - fr_dns_labels_get
    - fr_packet_pairs_from_packet
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:217,1
    - Dst: talloc
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:221,1
    - Dst: fr_dns_labels_get
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:226,1
    - Dst: fr_dns_encode
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:228,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:228,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:229,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:231,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:238,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 243
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - fr_dns_encode
    - RPEDEBUG
    - talloc_free
    - fr_packet_net_from_pairs
    - REDEBUG
    - talloc
    - fr_assert
    - FR_DBUFF_TMP
    - RHEXDUMP3
    - fr_dns_labels_get
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - instance
    - buffer
    - buflen
    argTypes:
    - void*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 274
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, uint8_t const *buffer, size_t
      buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:287,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:306,1
    - Dst: cf_section_find_parent
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:311,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:313,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:314,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:324,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:324,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:325,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:325,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:346,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:347,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:349,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:350,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:356,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:361,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 362
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - common::instantiate
    - talloc_get_type_abort
    - cf_section_find_parent
    - module_instantiate
    - fr_assert
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_global_init
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:366,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - fr_dns_global_init
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_global_free
      Src: /src/freeradius-server/src/listen/dns/proto_dns.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/dns/proto_dns.c
    functionUses: 0
    functionsReached:
    - fr_dns_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control.c:71,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/control/proto_control.c:74,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/control/proto_control.c:74,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control.c
    functionUses: 4
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control.c:97,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/control/proto_control.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control.c:116,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/control/proto_control.c:122,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/control/proto_control.c:122,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/control/proto_control.c:128,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:135,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/control/proto_control.c:135,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:136,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/control/proto_control.c:136,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:138,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/control/proto_control.c:138,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:139,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/control/proto_control.c:139,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:160,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:161,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:163,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control.c:164,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/control/proto_control.c:170,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/control/proto_control.c:175,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/control/proto_control.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 176
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - cf_log_err
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:134,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - buffer
    - buffer_size
    argTypes:
    - void*
    - char*
    - INT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: write_stdout
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - fr_conduit_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: SINT
    signature: SINT write_stdout(void *instance, char const *buffer, INT buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:141,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - buffer
    - buffer_size
    argTypes:
    - void*
    - char*
    - INT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: write_stderr
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - fr_conduit_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: SINT
    signature: SINT write_stderr(void *instance, char const *buffer, INT buffer_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:148,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - buffer
    - buffer_size
    argTypes:
    - void*
    - char*
    - INT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: write_misc
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - fr_conduit_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: SINT
    signature: SINT write_misc(void *instance, char const *buffer, INT buffer_size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:159,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:160,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:167,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:181,1
    - Dst: htons
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:187,1
    - Dst: fr_radmin_help
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:188,1
    - Dst: htons
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:200,1
    - Dst: fr_radmin_complete
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:209,1
    - Dst: htons
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:215,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:216,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:220,1
    - Dst: fr_radmin_run
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:222,1
    - Dst: fr_command_clear
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:232,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:239,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:240,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - UNUSED**
    - UNUSED*
    - uint8_t*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 243
    functionName: mod_read_command
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - fr_command_clear
    - ntohl
    - htonl
    - memcpy
    - talloc_get_type_abort
    - fr_radmin_help
    - fr_radmin_complete
    - fr_conduit_write
    - talloc_get_type_abort_const
    - fr_radmin_run
    - DEBUG
    - htons
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read_command(fr_listen_t *li, UNUSED void **packet_ctx,
      UNUSED fr_time_t *recv_time_p, uint8_t *buffer, UNUSED size_t buffer_len, UNUSED
      size_t *leftover)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:250,1
    - Dst: htons
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:254,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:255,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:260,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:264,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:265,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:265,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:269,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:270,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:272,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:279,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - UNUSED**
    - UNUSED*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 287
    functionName: mod_read_init
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - write
    - htonl
    - memcpy
    - talloc_get_type_abort
    - DEBUG
    - htons
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read_init(fr_listen_t *li, UNUSED void **packet_ctx, UNUSED
      fr_time_t *recv_time_p, uint8_t *buffer, size_t buffer_len, UNUSED size_t *leftover)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:291,1
    - Dst: fr_conduit_read_async
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:300,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:302,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:302,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:321,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:327,1
    - Dst: proto_control_unix_thread_t*::read
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 334
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - proto_control_unix_thread_t*::read
    - fr_time
    - fr_conduit_read_async
    - fr_syserror
    - talloc_get_type_abort
    - DEBUG2
    - DEBUG3
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:340,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - UNUSED
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 376
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 3
    functionsReached:
    - write
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, UNUSED void *packet_ctx, UNUSED
      fr_time_t request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, UNUSED void *instance)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:402,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:403,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:411,1
    - Dst: fr_bio_fd_alloc
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:423,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:425,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:425,1
    - Dst: fr_bio_fd_info
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:429,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:430,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:434,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:435,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:436,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:437,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:439,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:441,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:451,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 455
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - talloc_typed_asprintf
    - fr_bio_fd_alloc
    - cf_parent
    - fr_bio_fd_info
    - talloc_get_type_abort
    - cf_section_name2
    - fr_assert
    - talloc_get_type_abort_const
    - fr_strerror
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - euid
    - egid
    argTypes:
    - int
    - uid_t*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: getpeereid
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int getpeereid(int s, uid_t *euid, gid_t *egid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:479,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:480,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - thread
    argTypes:
    - proto_control_unix_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 484
    functionName: _close_cookies
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: int
    signature: int _close_cookies(proto_control_unix_thread_t *thread)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:491,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:492,1
    - Dst: getpeereid
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:508,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:509,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:510,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:527,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:533,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:540,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:547,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:560,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:563,1
    - Dst: fopencookie
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:566,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:568,1
    - Dst: setvbuf
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:576,1
    - Dst: setvbuf
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:577,1
    - Dst: setvbuf
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:578,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:580,1
    - Dst: fr_command_info_init
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:581,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 584
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_set_destructor
    - fr_syserror
    - talloc_get_type_abort
    - setvbuf
    - talloc_zero
    - getpeereid
    - talloc_get_type_abort_const
    - fopencookie
    - fr_command_info_init
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:596,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:602,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:603,1
    - Dst: fr_perm_getpwnam
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:609,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:610,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:614,1
    - Dst: getuid
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:620,1
    - Dst: fr_perm_gid_from_str
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:624,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:625,1
    - Dst: getgid
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:633,1
    - Dst: fr_perm_getpwnam
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:642,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:643,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:647,1
    - Dst: fr_perm_gid_from_str
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:651,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:652,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:662,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:664,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:676,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:677,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 680
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - getuid
    - talloc_get_type_abort
    - fr_perm_gid_from_str
    - FR_INTEGER_BOUND_CHECK
    - fr_table_value_by_str
    - getgid
    - fr_perm_getpwnam
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/control/proto_control_unix.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/control/proto_control_unix.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, UNUSED fr_ipaddr_t const
      *ipaddr, UNUSED int ipproto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:185,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:186,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:187,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:188,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:189,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:190,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:191,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:192,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:193,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:194,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:195,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:196,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:197,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:198,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:199,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:200,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:201,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: usage
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 26
    functionsReached:
    - fr_exit_now
    - fprintf
    linkageType: ''
    returnType: NEVER_RETURNS
    signature: NEVER_RETURNS usage(int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:219,1
    - Dst: strchr
      Src: /src/freeradius-server/src/listen/control/radmin.c:221,1
    - Dst: atoi
      Src: /src/freeradius-server/src/listen/control/radmin.c:225,1
    - Dst: fr_inet_hton
      Src: /src/freeradius-server/src/listen/control/radmin.c:229,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:230,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:231,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:232,1
    - Dst: fr_socket_client_tcp
      Src: /src/freeradius-server/src/listen/control/radmin.c:235,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:237,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:238,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - server
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 243
    functionName: client_socket
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_syserror
    - strchr
    - fprintf
    - fr_socket_client_tcp
    - fr_inet_hton
    - atoi
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int client_socket(char const *server)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_conduit_read
      Src: /src/freeradius-server/src/listen/control/radmin.c:257,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:261,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:263,1
    - Dst: fr_hmac_md5
      Src: /src/freeradius-server/src/listen/control/radmin.c:268,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/control/radmin.c:268,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/radmin.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 280
    functionName: do_challenge
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - fr_exit_now
    - fr_conduit_read
    - fprintf
    - fr_hmac_md5
    - strlen
    - fr_conduit_write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t do_challenge(int fd)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_conduit_read
      Src: /src/freeradius-server/src/listen/control/radmin.c:298,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:305,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:309,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:315,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/control/radmin.c:316,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:322,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/control/radmin.c:323,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/control/radmin.c:340,1
    - Dst: malloc
      Src: /src/freeradius-server/src/listen/control/radmin.c:340,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:341,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:354,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - fd
    - buffer
    - bufsize
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 360
    functionName: flush_conduits
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - ntohl
    - memcpy
    - fr_conduit_read
    - fprintf
    - MEM
    - malloc
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t flush_conduits(int fd, char *buffer, size_t bufsize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/listen/control/radmin.c:372,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:376,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/radmin.c:382,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/control/radmin.c:382,1
    - Dst: flush_conduits
      Src: /src/freeradius-server/src/listen/control/radmin.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - fd
    - command
    - buffer
    - bufsize
    argTypes:
    - int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: run_command
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - flush_conduits
    - fr_skip_whitespace
    - fprintf
    - strlen
    - fr_conduit_write
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t run_command(int fd, char const *command,\n\t\t\t   char *buffer,
      size_t bufsize)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/freeradius-server/src/listen/control/radmin.c:401,1
    - Dst: fr_socket_client_unix
      Src: /src/freeradius-server/src/listen/control/radmin.c:409,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:411,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:413,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:414,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:415,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:417,1
    - Dst: client_socket
      Src: /src/freeradius-server/src/listen/control/radmin.c:422,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/control/radmin.c:433,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/control/radmin.c:441,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:442,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/control/radmin.c:443,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/radmin.c:445,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:448,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:449,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/control/radmin.c:450,1
    - Dst: fr_conduit_read
      Src: /src/freeradius-server/src/listen/control/radmin.c:454,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:458,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:459,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/control/radmin.c:460,1
    - Dst: do_challenge
      Src: /src/freeradius-server/src/listen/control/radmin.c:465,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - out
    - file
    - server
    argTypes:
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 472
    functionName: do_connect
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 1
    functionsReached:
    - fr_socket_client_unix
    - htonl
    - memcpy
    - fr_conduit_read
    - fr_syserror
    - fprintf
    - fr_perror
    - fr_conduit_write
    - memcmp
    - close
    - client_socket
    - do_challenge
    - memset
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int do_connect(int *out, char const *file, char const *server)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: readline
      Src: /src/freeradius-server/src/listen/control/radmin.c:488,1
    - Dst: puts
      Src: /src/freeradius-server/src/listen/control/radmin.c:491,1
    - Dst: fflush
      Src: /src/freeradius-server/src/listen/control/radmin.c:492,1
    - Dst: fgets
      Src: /src/freeradius-server/src/listen/control/radmin.c:494,1
    - Dst: strchr
      Src: /src/freeradius-server/src/listen/control/radmin.c:497,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:499,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/listen/control/radmin.c:504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - prompt
    - fp_in
    - fp_out
    argTypes:
    - char*
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 526
    functionName: my_readline
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - puts
    - fgets
    - strchr
    - fr_skip_whitespace
    - fprintf
    - fflush
    - readline
    linkageType: ''
    returnType: char
    signature: char *my_readline(char const *prompt, FILE *fp_in, FILE *fp_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/freeradius-server/src/listen/control/radmin.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 537
    functionName: radmin_free
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void radmin_free(char *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:561,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:563,1
    - Dst: isspace
      Src: /src/freeradius-server/src/listen/control/radmin.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 578
    functionName: cmd_copy
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlcpy
    - fprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cmd_copy(char const *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:585,1
    - Dst: cmd_copy
      Src: /src/freeradius-server/src/listen/control/radmin.c:587,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:593,1
    - Dst: fr_command_print_help
      Src: /src/freeradius-server/src/listen/control/radmin.c:594,1
    - Dst: rl_on_new_line
      Src: /src/freeradius-server/src/listen/control/radmin.c:595,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/radmin.c:600,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/radmin.c:605,1
    - Dst: flush_conduits
      Src: /src/freeradius-server/src/listen/control/radmin.c:608,1
    - Dst: rl_on_new_line
      Src: /src/freeradius-server/src/listen/control/radmin.c:610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - count
    - int
    argTypes:
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 612
    functionName: radmin_help
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 1
    functionsReached:
    - flush_conduits
    - fr_command_print_help
    - fr_conduit_write
    - cmd_copy
    - printf
    - strncmp
    - rl_on_new_line
    linkageType: ''
    returnType: int
    signature: int radmin_help(UNUSED int count, UNUSED int key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - text
    - state
    argTypes:
    - UNUSED*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 635
    functionName: radmin_expansion_walk
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      radmin_expansion_walk(UNUSED const char *text, int state)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_copy
      Src: /src/freeradius-server/src/listen/control/radmin.c:646,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:652,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:657,1
    - Dst: fr_command_complete
      Src: /src/freeradius-server/src/listen/control/radmin.c:658,1
    - Dst: rl_completion_matches
      Src: /src/freeradius-server/src/listen/control/radmin.c:663,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/radmin.c:678,1
    - Dst: fr_conduit_write
      Src: /src/freeradius-server/src/listen/control/radmin.c:680,1
    - Dst: flush_conduits
      Src: /src/freeradius-server/src/listen/control/radmin.c:682,1
    - Dst: rl_completion_matches
      Src: /src/freeradius-server/src/listen/control/radmin.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 685
    functionName: radmin_completion
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - flush_conduits
    - rl_completion_matches
    - memcpy
    - fr_command_complete
    - fr_conduit_write
    - cmd_copy
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char **

      radmin_completion(const char *text, int start, UNUSED int end)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:709,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/control/radmin.c:712,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:715,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/control/radmin.c:717,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:721,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:723,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:728,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/control/radmin.c:731,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:735,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:737,1
    - Dst: cf_pair_parse
      Src: /src/freeradius-server/src/listen/control/radmin.c:745,1
    - Dst: FR_ITEM_POINTER
      Src: /src/freeradius-server/src/listen/control/radmin.c:746,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:748,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:753,1
    - Dst: cf_pair_parse
      Src: /src/freeradius-server/src/listen/control/radmin.c:767,1
    - Dst: FR_ITEM_POINTER
      Src: /src/freeradius-server/src/listen/control/radmin.c:768,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:770,1
    - Dst: getpwnam
      Src: /src/freeradius-server/src/listen/control/radmin.c:776,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:778,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:779,1
    - Dst: cf_pair_parse
      Src: /src/freeradius-server/src/listen/control/radmin.c:785,1
    - Dst: FR_ITEM_POINTER
      Src: /src/freeradius-server/src/listen/control/radmin.c:786,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:788,1
    - Dst: getgrnam
      Src: /src/freeradius-server/src/listen/control/radmin.c:794,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:796,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:797,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 5
    argNames:
    - subcs
    - uid
    - gid
    - file_p
    - server_p
    argTypes:
    - CONF_SECTION*
    - uid_t
    - gid_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 697
    functionDepth: 8
    functionLinenumber: 697
    functionLinenumberEnd: 804
    functionName: check_server
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - cf_section_find
    - cf_pair_value
    - fr_syserror
    - getgrnam
    - fprintf
    - cf_section_name2
    - cf_pair_parse
    - strcmp
    - cf_pair_find
    - FR_ITEM_POINTER
    linkageType: ''
    returnType: int
    signature: int check_server(CONF_SECTION *subcs, uid_t uid, gid_t gid, char const
      **file_p, char const **server_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - fp_err
    - ctx
    - info
    argTypes:
    - FILE*
    - UNUSED*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: cmd_test
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cmd_test(FILE *fp, UNUSED FILE *fp_err, UNUSED void *ctx, UNUSED
      fr_cmd_info_t const *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_command_str_to_argv
      Src: /src/freeradius-server/src/listen/control/radmin.c:834,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:836,1
    - Dst: fr_command_run
      Src: /src/freeradius-server/src/listen/control/radmin.c:844,1
    - Dst: fflush
      Src: /src/freeradius-server/src/listen/control/radmin.c:845,1
    - Dst: fflush
      Src: /src/freeradius-server/src/listen/control/radmin.c:846,1
    - Dst: fr_command_clear
      Src: /src/freeradius-server/src/listen/control/radmin.c:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 830
    functionDepth: 4
    functionLinenumber: 830
    functionLinenumberEnd: 857
    functionName: local_command
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 0
    functionsReached:
    - fr_command_clear
    - fr_command_run
    - fr_perror
    - fr_command_str_to_argv
    - fflush
    linkageType: ''
    returnType: int
    signature: int local_command(char *line)
  - BBCount: 84
    BranchProfiles: []
    Callsites:
    - Dst: fr_atexit_global_setup
      Src: /src/freeradius-server/src/listen/control/radmin.c:894,1
    - Dst: talloc_autofree_context
      Src: /src/freeradius-server/src/listen/control/radmin.c:896,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/listen/control/radmin.c:899,1
    - Dst: getenv
      Src: /src/freeradius-server/src/listen/control/radmin.c:899,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:900,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:901,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/listen/control/radmin.c:905,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/listen/control/radmin.c:907,1
    - Dst: getopt
      Src: /src/freeradius-server/src/listen/control/radmin.c:916,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:927,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:928,1
    - Dst: usage
      Src: /src/freeradius-server/src/listen/control/radmin.c:945,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:951,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/control/radmin.c:973,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/listen/control/radmin.c:984,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:985,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/control/radmin.c:986,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:998,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/listen/control/radmin.c:1004,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:1006,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/listen/control/radmin.c:1010,1
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/listen/control/radmin.c:1012,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/listen/control/radmin.c:1014,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/listen/control/radmin.c:1016,1
    - Dst: cf_section_alloc
      Src: /src/freeradius-server/src/listen/control/radmin.c:1018,1
    - Dst: cf_file_read
      Src: /src/freeradius-server/src/listen/control/radmin.c:1021,1
    - Dst: cf_section_pass2
      Src: /src/freeradius-server/src/listen/control/radmin.c:1021,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:1022,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1023,1
    - Dst: getuid
      Src: /src/freeradius-server/src/listen/control/radmin.c:1027,1
    - Dst: getgid
      Src: /src/freeradius-server/src/listen/control/radmin.c:1028,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/listen/control/radmin.c:1029,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:1035,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1037,1
    - Dst: check_server
      Src: /src/freeradius-server/src/listen/control/radmin.c:1041,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1044,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/control/radmin.c:1049,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/control/radmin.c:1051,1
    - Dst: check_server
      Src: /src/freeradius-server/src/listen/control/radmin.c:1052,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1058,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/control/radmin.c:1063,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:1069,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/listen/control/radmin.c:1071,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/control/radmin.c:1073,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1076,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/control/radmin.c:1084,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1086,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:1086,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1094,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1098,1
    - Dst: usage
      Src: /src/freeradius-server/src/listen/control/radmin.c:1099,1
    - Dst: fopen
      Src: /src/freeradius-server/src/listen/control/radmin.c:1103,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1105,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/control/radmin.c:1105,1
    - Dst: isatty
      Src: /src/freeradius-server/src/listen/control/radmin.c:1113,1
    - Dst: getenv
      Src: /src/freeradius-server/src/listen/control/radmin.c:1120,1
    - Dst: using_history
      Src: /src/freeradius-server/src/listen/control/radmin.c:1123,1
    - Dst: stifle_history
      Src: /src/freeradius-server/src/listen/control/radmin.c:1124,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1125,1
    - Dst: read_history
      Src: /src/freeradius-server/src/listen/control/radmin.c:1126,1
    - Dst: signal
      Src: /src/freeradius-server/src/listen/control/radmin.c:1139,1
    - Dst: do_connect
      Src: /src/freeradius-server/src/listen/control/radmin.c:1141,1
    - Dst: fr_command_add_multi
      Src: /src/freeradius-server/src/listen/control/radmin.c:1146,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1147,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/control/radmin.c:1148,1
    - Dst: fr_command_info_init
      Src: /src/freeradius-server/src/listen/control/radmin.c:1152,1
    - Dst: run_command
      Src: /src/freeradius-server/src/listen/control/radmin.c:1161,1
    - Dst: flush_conduits
      Src: /src/freeradius-server/src/listen/control/radmin.c:1168,1
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1179,1
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1180,1
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1181,1
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1182,1
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1183,1
    - Dst: printf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1184,1
    - Dst: rl_bind_key
      Src: /src/freeradius-server/src/listen/control/radmin.c:1192,1
    - Dst: my_readline
      Src: /src/freeradius-server/src/listen/control/radmin.c:1202,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:1212,1
    - Dst: do_connect
      Src: /src/freeradius-server/src/listen/control/radmin.c:1213,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1214,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:1220,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/control/radmin.c:1221,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1223,1
    - Dst: do_challenge
      Src: /src/freeradius-server/src/listen/control/radmin.c:1227,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1228,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:1241,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1242,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:1249,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1251,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1261,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/listen/control/radmin.c:1273,1
    - Dst: isspace
      Src: /src/freeradius-server/src/listen/control/radmin.c:1274,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1275,1
    - Dst: local_command
      Src: /src/freeradius-server/src/listen/control/radmin.c:1282,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/listen/control/radmin.c:1295,1
    - Dst: cmd_copy
      Src: /src/freeradius-server/src/listen/control/radmin.c:1298,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1300,1
    - Dst: run_command
      Src: /src/freeradius-server/src/listen/control/radmin.c:1306,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1308,1
    - Dst: do_connect
      Src: /src/freeradius-server/src/listen/control/radmin.c:1310,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1311,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1318,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1319,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1323,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1330,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1331,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/control/radmin.c:1339,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1343,1
    - Dst: add_history
      Src: /src/freeradius-server/src/listen/control/radmin.c:1354,1
    - Dst: write_history
      Src: /src/freeradius-server/src/listen/control/radmin.c:1355,1
    - Dst: radmin_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1363,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/listen/control/radmin.c:1368,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/control/radmin.c:1369,1
    - Dst: fr_dict_free
      Src: /src/freeradius-server/src/listen/control/radmin.c:1373,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/control/radmin.c:1375,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/control/radmin.c:1377,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/control/radmin.c:1379,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/radmin.c:1381,1
    - Dst: fr_atexit_global_trigger_all
      Src: /src/freeradius-server/src/listen/control/radmin.c:1387,1
    CyclomaticComplexity: 135
    EdgeCount: 135
    ICount: 369
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 862
    functionDepth: 9
    functionLinenumber: 862
    functionLinenumberEnd: 1390
    functionName: main
    functionSourceFile: /src/freeradius-server/src/listen/control/radmin.c
    functionUses: 4
    functionsReached:
    - cf_section_find_next
    - fr_check_lib_magic
    - cf_section_find
    - cf_section_pass2
    - fr_dict_internal_afrom_file
    - strrchr
    - talloc_strdup
    - fr_dict_read
    - radmin_free
    - my_readline
    - fr_dict_free
    - strlen
    - fr_strerror
    - fopen
    - close
    - getuid
    - fr_dict_autofree
    - fr_dict_autoload
    - open
    - check_server
    - write_history
    - isatty
    - talloc_autofree_context
    - run_command
    - fr_command_add_multi
    - printf
    - getgid
    - rl_bind_key
    - do_challenge
    - fr_command_info_init
    - fr_dict_global_ctx_init
    - fr_atexit_global_trigger_all
    - flush_conduits
    - fr_dict_attr_autoload
    - cf_section_alloc
    - cf_file_read
    - fr_syserror
    - fr_fault_setup
    - usage
    - getopt
    - local_command
    - fr_perror
    - fr_assert
    - strcmp
    - getenv
    - cf_pair_find
    - cmd_copy
    - strncmp
    - fclose
    - fr_exit_now
    - do_connect
    - read_history
    - talloc_set_log_stderr
    - cf_pair_value
    - using_history
    - signal
    - snprintf
    - add_history
    - fprintf
    - isspace
    - fr_log
    - fr_strerror_clear
    - stifle_history
    - fr_atexit_global_setup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/freeradius-server/src/listen/control/conduit.c:42,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - fd
    - out
    - outlen
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 68
    functionName: lo_read
    functionSourceFile: /src/freeradius-server/src/listen/control/conduit.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lo_read(int fd, void *out, size_t outlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lo_read
      Src: /src/freeradius-server/src/listen/control/conduit.c:97,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/control/conduit.c:114,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/control/conduit.c:115,1
    - Dst: lo_read
      Src: /src/freeradius-server/src/listen/control/conduit.c:130,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/control/conduit.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 6
    argNames:
    - fd
    - pconduit
    - out
    - outlen
    - leftover
    - want_more
    argTypes:
    - int
    - fr_conduit_type_t*
    - void*
    - size_t
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 143
    functionName: fr_conduit_read_async
    functionSourceFile: /src/freeradius-server/src/listen/control/conduit.c
    functionUses: 1
    functionsReached:
    - ntohs
    - ntohl
    - lo_read
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_conduit_read_async(int fd, fr_conduit_type_t *pconduit,\n\t\t\t
      \     void *out, size_t outlen, size_t *leftover, bool *want_more)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lo_read
      Src: /src/freeradius-server/src/listen/control/conduit.c:155,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/control/conduit.c:161,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/control/conduit.c:162,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/conduit.c:167,1
    - Dst: lo_read
      Src: /src/freeradius-server/src/listen/control/conduit.c:176,1
    - Dst: lo_read
      Src: /src/freeradius-server/src/listen/control/conduit.c:190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - fd
    - pconduit
    - out
    - outlen
    argTypes:
    - int
    - fr_conduit_type_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 197
    functionName: fr_conduit_read
    functionSourceFile: /src/freeradius-server/src/listen/control/conduit.c
    functionUses: 3
    functionsReached:
    - ntohs
    - ntohl
    - lo_read
    - fprintf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_conduit_read(int fd, fr_conduit_type_t *pconduit, void *out,
      size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/freeradius-server/src/listen/control/conduit.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - out
    - outlen
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 225
    functionName: lo_write
    functionSourceFile: /src/freeradius-server/src/listen/control/conduit.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lo_write(int fd, void const *out, size_t outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/listen/control/conduit.c:234,1
    - Dst: htons
      Src: /src/freeradius-server/src/listen/control/conduit.c:244,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/control/conduit.c:245,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/listen/control/conduit.c:249,1
    - Dst: lo_write
      Src: /src/freeradius-server/src/listen/control/conduit.c:255,1
    - Dst: lo_write
      Src: /src/freeradius-server/src/listen/control/conduit.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - fd
    - conduit
    - out
    - outlen
    argTypes:
    - int
    - fr_conduit_type_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 265
    functionName: fr_conduit_write
    functionSourceFile: /src/freeradius-server/src/listen/control/conduit.c
    functionUses: 9
    functionsReached:
    - htonl
    - fr_strerror_printf
    - fprintf
    - lo_write
    - htons
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_conduit_write(int fd, fr_conduit_type_t conduit, void const
      *out, size_t outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:101,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:102,1
    - Dst: FR_EVENT_SUSPEND
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:113,1
    - Dst: FR_EVENT_SUSPEND
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:114,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:118,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:119,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:134,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:142,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 155
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - memset
    - fr_assert
    - FR_EVENT_SUSPEND
    - talloc_get_type_abort_const
    - DEBUG2
    - fr_event_filter_update
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:161,1
    - Dst: fr_load_generator_have_reply
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:176,1
    - Dst: fr_load_generator_stop
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:181,1
    - Dst: fr_load_generator_start
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - fr_time_t
    - UNUSED*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 187
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 3
    functionsReached:
    - fr_load_generator_have_reply
    - talloc_get_type_abort
    - fr_load_generator_stop
    - fr_load_generator_start
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, UNUSED void *packet_ctx, fr_time_t
      request_time,\n\t\t\t UNUSED uint8_t *buffer, size_t buffer_len, UNUSED size_t
      written)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:195,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:196,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:204,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:206,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:206,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:210,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:212,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:214,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:214,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:214,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:214,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:216,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - open
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - fr_socket_addr_alloc_inet_src
    - talloc_get_type_abort_const
    - memset
    - talloc_parent
    - cf_log_err
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:229,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - now
    - uctx
    argTypes:
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: mod_generate
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - fr_network_listen_read
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_generate(fr_time_t now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:248,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:248,1
    - Dst: fr_load_generator_stats_sprint
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:250,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:251,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:252,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 254
    functionName: write_stats
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - write
    - fr_syserror
    - fr_timer_in
    - fr_load_generator_stats_sprint
    - DEBUG
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void write_stats(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:262,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:263,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:270,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:273,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:276,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:281,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:284,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 289
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - fr_rand
    - fr_socket_addr_swap
    - REQUEST_VERIFY
    - talloc_zero_array
    - talloc_get_type_abort_const
    - fr_pair_list_copy
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, UNUSED uint8_t
      *const data, UNUSED size_t data_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:299,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:300,1
    - Dst: fr_load_generator_create
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:309,1
    - Dst: fr_load_generator_start
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:312,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:316,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:318,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:318,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:322,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:322,1
    - Dst: fr_load_generator_stats_sprint
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:324,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:324,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:325,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:326,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 328
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - write
    - ERROR
    - fr_time
    - fr_load_generator_start
    - open
    - fr_load_generator_create
    - fr_syserror
    - talloc_get_type_abort
    - fr_timer_in
    - talloc_get_type_abort_const
    - fr_load_generator_stats_sprint
    - DEBUG
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, void
      *nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:339,1
    - Dst: virtual_server_dict_by_child_ci
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:345,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:345,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:347,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:351,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:352,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:352,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:358,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:359,1
    - Dst: fopen
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:366,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:368,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:369,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:373,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:374,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:375,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:379,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:382,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:385,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:388,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:389,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:391,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:392,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:394,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:395,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:397,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:397,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:398,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:398,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:401,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:402,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:404,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 337
    functionDepth: 9
    functionLinenumber: 337
    functionLinenumberEnd: 408
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - fopen
    - cf_log_perr
    - fr_pair_find_by_da
    - fr_syserror
    - talloc_strdup
    - talloc_get_type_abort
    - talloc_zero
    - FR_INTEGER_BOUND_CHECK
    - cf_section_to_item
    - fr_pair_list_afrom_file
    - virtual_server_dict_by_child_ci
    - FR_TIME_DELTA_BOUND_CHECK
    - MEM
    - cf_log_err
    - fr_pair_list_init
    - fr_time_delta_from_sec
    - fclose
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load_step.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load_step.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, UNUSED fr_ipaddr_t const
      *ipaddr, UNUSED int ipproto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load.c:74,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/load/proto_load.c:76,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/load/proto_load.c:77,1
    - Dst: virtual_server_dict_by_child_ci
      Src: /src/freeradius-server/src/listen/load/proto_load.c:81,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load.c:83,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/listen/load/proto_load.c:87,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/load/proto_load.c:87,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load.c:89,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load.c:94,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/load/proto_load.c:98,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 106
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - fr_dict_attr_by_name
    - cf_pair_value
    - fr_dict_enum_by_name
    - talloc_get_type_abort
    - virtual_server_dict_by_child_ci
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load.c:110,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/load/proto_load.c:113,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/load/proto_load.c:113,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load.c
    functionUses: 5
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/load/proto_load.c:130,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/load/proto_load.c:139,1
    - Dst: proto_load_t*::io::app_io::decode
      Src: /src/freeradius-server/src/listen/load/proto_load.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load.c
    functionUses: 0
    functionsReached:
    - proto_load_t*::io::app_io::decode
    - htonl
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, uint8_t *const
      data, size_t data_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load.c:183,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/load/proto_load.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/load/proto_load.c:206,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/load/proto_load.c:212,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/load/proto_load.c:212,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/load/proto_load.c:218,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/load/proto_load.c:231,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/load/proto_load.c:231,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load.c:249,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load.c:250,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load.c:252,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/load/proto_load.c:253,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/load/proto_load.c:259,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/load/proto_load.c:264,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/load/proto_load.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 265
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/load/proto_load.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - FR_INTEGER_BOUND_CHECK
    - MODULE_INST_CTX
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:127,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:132,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:133,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:135,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - talloc_get_type_abort
    - fr_dict_enum_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:149,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:152,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:152,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 6
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:169,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:174,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:185,1
    - Dst: fr_dhcpv6_decode
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:193,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:194,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:201,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:204,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:206,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:207,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 214
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - RPEDEBUG
    - UNCONST
    - fr_socket_addr_swap
    - REQUEST_VERIFY
    - RHEXDUMP3
    - fr_dhcpv6_decode
    - talloc_get_type_abort_const
    - fr_packet_pairs_from_packet
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:236,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:244,1
    - Dst: client_afrom_request
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:265,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:267,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:272,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:277,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:281,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:282,1
    - Dst: fr_dhcpv6_encode
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:284,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:284,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:288,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:295,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:298,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:300,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:302,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:308,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 312
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - memcpy
    - fr_dhcpv6_encode
    - fr_dhcpv6_option_find
    - REDEBUG
    - talloc_get_type_abort
    - fr_nbo_to_uint16
    - client_afrom_request
    - fr_assert
    - FR_DBUFF_TMP
    - RHEXDUMP3
    - memset
    - PERROR
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:316,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:318,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - instance
    - buffer
    - size_t
    argTypes:
    - void*
    - uint8_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 339
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, uint8_t const *buffer, UNUSED
      size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:352,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:371,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:376,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:376,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:378,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:379,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:389,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:389,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:390,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:390,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:392,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:392,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:393,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:393,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:395,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:395,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:396,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:396,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:417,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:418,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:420,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:421,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:427,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:432,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 433
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - fr_assert
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_global_init
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:437,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv6_global_init
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_global_free
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 448
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv6_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:134,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:135,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:158,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:160,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:165,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:177,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:189,1
    - Dst: fr_dhcpv6_ok
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:198,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:199,1
    - Dst: fr_nbo_to_uint24
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:207,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 216
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_GLOBAL
    - fr_nbo_to_uint24
    - udp_recv
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - DEBUG2
    - fr_dhcpv6_ok
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len,\n\t\t\tsize_t *leftover)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:221,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:222,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:224,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:243,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:244,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 264
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 3
    functionsReached:
    - fr_ipaddr_is_inaddr_any
    - udp_send
    - talloc_get_type_abort
    - fr_socket_addr_swap
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 283
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:291,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:292,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:298,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:300,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:300,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:305,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:314,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:315,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:315,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:316,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:326,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:327,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:327,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:335,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:336,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:337,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:339,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:339,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:340,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:340,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:342,1
    - Dst: if_nametoindex
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:354,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:355,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:356,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:356,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:363,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:365,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:365,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:373,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:373,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:373,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:373,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:375,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 380
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - rad_suid_down
    - fr_strerror
    - close
    - cf_log_err
    - ERROR
    - if_nametoindex
    - fr_app_io_socket_name
    - fr_socket_bind
    - talloc_get_type_abort
    - fr_socket_server_udp
    - cf_parent
    - fr_syserror
    - fr_assert
    - PERROR
    - fr_box_ipaddr
    - fr_socket_addr_alloc_inet_src
    - cf_log_warn
    - DOC_ROOT_REF
    - talloc_get_type_abort_const
    - rad_suid_up
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:388,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:389,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 399
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:420,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:423,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:434,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:437,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:441,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:444,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:446,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 6
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - track
    - packet
    - packet_len
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - fr_io_track_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 452
    functionName: mod_track_create
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_dhcpv6_option_find
    - talloc_set_name_const
    - talloc_zero_array
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: void
    signature: "void *mod_track_create(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t      fr_io_track_t *track, uint8_t const
      *packet, size_t packet_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:462,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - one
    - two
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 469
    functionName: mod_track_compare
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int mod_track_compare(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t     void const *one, void const *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:482,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:496,1
    - Dst: fr_interface_to_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:506,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:507,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:514,1
    - Dst: fr_ipaddr_is_multicast
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:521,1
    - Dst: fr_ipaddr_to_interface
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:537,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:540,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:542,1
    - Dst: fr_interface_to_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:553,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:554,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:556,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:566,1
    - Dst: fr_interface_to_ethernet
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:574,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:577,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:578,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:581,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:582,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:588,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:592,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:594,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:598,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:605,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:608,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:613,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:615,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:620,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:621,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:622,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:623,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:625,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:633,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:634,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:636,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:644,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:653,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:654,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 96
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 657
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - talloc_strdup
    - cf_log_err
    - cf_item_to_section
    - talloc_get_type_abort
    - FR_INTEGER_BOUND_CHECK
    - cf_section_to_item
    - cf_parent
    - ntohs
    - fr_assert
    - fr_interface_to_ethernet
    - talloc_array_length
    - fr_box_ipaddr
    - cf_log_perr
    - fr_interface_to_ipaddr
    - getservbyname
    - client_list_parse_section
    - talloc_zero
    - fr_ipaddr_is_multicast
    - fr_master_io_network
    - fr_ipaddr_to_interface
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:661,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 674
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv6/proto_dhcpv6_udp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:135,1
    - Dst: fr_tacacs_length
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:145,1
    - Dst: read
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:161,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:180,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:180,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:194,1
    - Dst: fr_tacacs_length
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:210,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:213,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:224,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:235,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:245,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:253,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:256,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - UNUSED**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 262
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_tacacs_length
    - ERROR
    - FR_PROTO_HEX_DUMP
    - DEBUG3
    - read
    - fr_time
    - fr_syserror
    - talloc_get_type_abort
    - snprintf
    - DEBUG2
    - PERROR
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, UNUSED void **packet_ctx, fr_time_t
      *recv_time_p,\n\t\t\tuint8_t *buffer, size_t buffer_len, size_t *leftover)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:267,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:276,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:277,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:278,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:293,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:296,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:312,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - UNUSED
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 334
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 3
    functionsReached:
    - ERROR
    - write
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, UNUSED void *packet_ctx, UNUSED
      fr_time_t request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:359,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:366,1
    - Dst: fr_socket_server_tcp
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:368,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:370,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:370,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:375,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:377,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:378,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:379,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:379,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:380,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:380,1
    - Dst: listen
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:384,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:385,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:386,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:386,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:392,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:392,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:392,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:392,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 400
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - listen
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - fr_assert
    - DOC_ROOT_REF
    - fr_nonblock
    - talloc_get_type_abort_const
    - fr_strerror
    - fr_socket_server_tcp
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:407,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:408,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 418
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - data
    argTypes:
    - fr_listen_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: mod_hexdump_set
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_hexdump_set(fr_listen_t *li, void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:436,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:448,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:453,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:454,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:457,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:458,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:464,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:468,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:470,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:474,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:481,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:484,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:488,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:490,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:495,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:496,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:497,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:498,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:500,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:508,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:509,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 517
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_perr
    - cf_parent
    - talloc_get_type_abort
    - getservbyname
    - ntohs
    - client_list_parse_section
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_array_length
    - cf_section_to_item
    - fr_master_io_network
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:521,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:529,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 534
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs_tcp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:96,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:99,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:99,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 7
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:127,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:132,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:133,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:135,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:136,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - fr_dict_enum_by_name
    - talloc_get_type_abort
    - FR_TACACS_PACKET_CODE_VALID
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:152,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:161,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:169,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:176,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:180,1
    - Dst: request_set_dynamic_client
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:181,1
    - Dst: packet_is_encrypted
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:207,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:208,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:211,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:220,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:220,1
    - Dst: fr_tacacs_decode
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:228,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:231,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:252,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:255,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:257,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:262,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:265,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:267,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:272,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:280,1
    - Dst: fr_utf8_str
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:281,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:282,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:288,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:289,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 294
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - packet_is_encrypted
    - REDEBUG
    - REQUEST_VERIFY
    - RHEXDUMP3
    - RWDEBUG
    - RPEDEBUG
    - fr_socket_addr_swap
    - log_request_pair_list
    - fr_utf8_str
    - fr_packet_pairs_from_packet
    - talloc_memdup
    - fr_dict_attr_by_name
    - UNCONST
    - fr_assert
    - talloc_strlen
    - fr_pair_find_by_da
    - request_set_dynamic_client
    - fr_box_ipaddr
    - RDEBUG
    - fr_tacacs_decode
    - talloc_get_type_abort_const
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:298,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:328,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:334,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:342,1
    - Dst: client_afrom_request
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:354,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:356,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:361,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:366,1
    - Dst: fr_tacacs_encode
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:368,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:368,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:372,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:377,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:380,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:382,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:387,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:390,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 393
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - fr_tacacs_encode
    - RDEBUG
    - RPEDEBUG
    - memcpy
    - talloc_get_type_abort
    - log_request_proto_pair_list
    - client_afrom_request
    - fr_assert
    - FR_DBUFF_TMP
    - RHEXDUMP3
    - FR_TACACS_PACKET_CODE_VALID
    - PERROR
    - talloc_strlen
    - fr_box_ipaddr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:397,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:399,1
    - Dst: FR_TACACS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - instance
    - buffer
    - buflen
    argTypes:
    - void*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 419
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort_const
    - FR_TACACS_PACKET_CODE_VALID
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, uint8_t const *buffer, size_t
      buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:432,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 441
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:453,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:458,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:458,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:460,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:470,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:470,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:471,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:471,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:473,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:473,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:474,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:474,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:495,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:496,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:498,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:499,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:505,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:510,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 511
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - fr_assert
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_tacacs_global_init
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:515,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_tacacs_global_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tacacs_global_free
      Src: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/tacacs/proto_tacacs.c
    functionUses: 0
    functionsReached:
    - fr_tacacs_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_arp_decode
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:69,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:70,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:75,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:76,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:78,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:81,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:82,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:86,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:89,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 97
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - RDEBUG
    - RPEDEBUG
    - fr_arp_decode
    - REQUEST_VERIFY
    - fr_assert
    - log_request_pair_list
    - fr_packet_pairs_from_packet
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:104,1
    - Dst: fr_arp_encode
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:117,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:117,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:119,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:125,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:127,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:128,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:131,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:134,1
    - Dst: log_request_pair_list
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 142
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp.c
    functionUses: 0
    functionsReached:
    - RDEBUG
    - RPEDEBUG
    - fr_packet_net_from_pairs
    - fr_arp_encode
    - fr_assert
    - FR_DBUFF_TMP
    - log_request_pair_list
    - talloc_get_type_abort_const
    - memcmp
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(void const *instance, request_t *request, uint8_t
      *buffer, size_t buffer_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:156,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:163,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:164,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:180,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:181,1
    - Dst: fr_listen_t*::app_io::open
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:187,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:188,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:191,1
    - Dst: fr_listen_t*::app_io::get_name
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:193,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:198,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - instance
    - sc
    - conf
    argTypes:
    - void*
    - fr_schedule_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 207
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp.c
    functionUses: 0
    functionsReached:
    - talloc_set_name
    - talloc_set_destructor
    - talloc_free
    - fr_listen_t*::app_io::get_name
    - talloc_get_type_abort
    - talloc_zero
    - fr_listen_t*::app_io::open
    - fr_assert
    - talloc_zero_array
    - fr_schedule_listen_add
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, CONF_SECTION *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:219,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:225,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:225,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:230,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp.c
    functionUses: 0
    functionsReached:
    - FR_INTEGER_BOUND_CHECK
    - cf_parent
    - talloc_get_type_abort
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_arp_global_init
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:238,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp.c
    functionUses: 0
    functionsReached:
    - fr_arp_global_init
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_arp_global_free
      Src: /src/freeradius-server/src/listen/arp/proto_arp.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp.c
    functionUses: 0
    functionsReached:
    - fr_arp_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:63,1
    - Dst: pcap_next_ex
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:72,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:75,1
    - Dst: fr_pcap_link_layer_offset
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:82,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:84,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:90,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:101,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - UNUSED**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 107
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c
    functionUses: 0
    functionsReached:
    - pcap_next_ex
    - memcpy
    - fr_pcap_link_layer_offset
    - fr_time
    - talloc_get_type_abort
    - DEBUG
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, UNUSED void **packet_ctx, fr_time_t
      *recv_time_p, uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:113,1
    - Dst: htons
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:129,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:136,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:144,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:145,1
    - Dst: pcap_inject
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:152,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:154,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 164
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c
    functionUses: 3
    functionsReached:
    - pcap_geterr
    - memcpy
    - pcap_inject
    - fr_strerror_printf
    - talloc_get_type_abort
    - htons
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, UNUSED void *packet_ctx, UNUSED
      fr_time_t request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t
      written)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:171,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:172,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:178,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:180,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:180,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:184,1
    - Dst: fr_pcap_open
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:185,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:186,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:188,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:188,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:198,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:198,1
    - Dst: fr_pcap_apply_filter
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:201,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:202,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:202,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:203,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:206,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:210,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:210,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 214
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - talloc_free
    - talloc_get_type_abort
    - fr_pcap_open
    - fr_pcap_init
    - rad_suid_down
    - fr_assert
    - talloc_get_type_abort_const
    - fr_strerror
    - rad_suid_up
    - fr_pcap_apply_filter
    - MEM
    - cf_log_err
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/arp/proto_arp_ethernet.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:105,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:110,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:111,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:113,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - talloc_get_type_abort
    - fr_dict_enum_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:127,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:130,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:130,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 8
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:147,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:152,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:154,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:165,1
    - Dst: fr_vmps_decode
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:173,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:175,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:182,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:185,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:187,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:188,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 195
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - RPEDEBUG
    - UNCONST
    - fr_vmps_decode
    - fr_socket_addr_swap
    - fr_assert
    - RHEXDUMP3
    - REQUEST_VERIFY
    - talloc_get_type_abort_const
    - fr_packet_pairs_from_packet
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:199,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:216,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:224,1
    - Dst: client_afrom_request
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:236,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:238,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:243,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:257,1
    - Dst: fr_vmps_encode
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:259,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:259,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:262,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:266,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 271
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - RPEDEBUG
    - memcpy
    - fr_packet_net_from_pairs
    - talloc_get_type_abort
    - fr_pair_dcursor_iter_init
    - client_afrom_request
    - fr_assert
    - FR_DBUFF_TMP
    - RHEXDUMP3
    - PERROR
    - fr_vmps_encode
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - buffer
    - size_t
    argTypes:
    - void*
    - uint8_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, uint8_t const *buffer, UNUSED
      size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:306,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:325,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:331,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:331,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:333,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:334,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:344,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:344,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:345,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:345,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:347,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:347,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:348,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:348,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:369,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:370,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:372,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:373,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:379,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:384,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 385
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - fr_assert
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_global_init
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:389,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_global_init
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_global_free
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:105,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:106,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:129,1
    - Dst: PDEBUG2
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:131,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:136,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:143,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:149,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:155,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:162,1
    - Dst: fr_vmps_ok
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:170,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:174,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:183,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:184,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 194
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - fr_vmps_ok
    - ntohl
    - memcpy
    - udp_recv
    - talloc_get_type_abort
    - PDEBUG2
    - talloc_get_type_abort_const
    - DEBUG2
    - DEBUG
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:200,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:201,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:216,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:232,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:234,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:243,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 257
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 3
    functionsReached:
    - memcpy
    - udp_send
    - talloc_get_type_abort
    - fr_socket_addr_swap
    - fr_assert
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:284,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:285,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:291,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:293,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:293,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:298,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:307,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:308,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:308,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:313,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:314,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:315,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:315,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:316,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:316,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:322,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:322,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:322,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:322,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 329
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - setsockopt
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - fr_assert
    - fr_socket_addr_alloc_inet_src
    - DOC_ROOT_REF
    - fr_strerror
    - talloc_get_type_abort_const
    - cf_log_err
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:337,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:338,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 348
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:356,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:360,1
    - Dst: talloc_set_name_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:364,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - track
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - fr_io_track_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 371
    functionName: mod_track_create
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - talloc_set_name_const
    - ERROR
    - talloc_zero
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void *mod_track_create(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t      fr_io_track_t *track, uint8_t const
      *buffer, size_t buffer_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:376,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - one
    - two
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 390
    functionName: mod_track_compare
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: "int mod_track_compare(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t     void const *one, void const *two)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:394,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:406,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:411,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:412,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:415,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:416,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:422,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:426,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:428,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:432,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:443,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:446,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:450,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:452,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:457,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:458,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:459,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:460,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:462,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:470,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:471,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:473,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 479
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_perr
    - cf_parent
    - talloc_get_type_abort
    - getservbyname
    - ntohs
    - client_list_parse_section
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_array_length
    - cf_section_to_item
    - fr_master_io_network
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:486,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:493,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/vmps/proto_vmps_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:63,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:66,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:66,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron.c
    functionUses: 9
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:91,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:93,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:94,1
    - Dst: virtual_server_dict_by_child_ci
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:98,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:100,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:104,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:104,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:106,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:111,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:115,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 123
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - fr_dict_attr_by_name
    - cf_pair_value
    - fr_dict_enum_by_name
    - talloc_get_type_abort
    - virtual_server_dict_by_child_ci
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:130,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:139,1
    - Dst: proto_cron_t*::io::app_io::decode
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron.c
    functionUses: 0
    functionsReached:
    - proto_cron_t*::io::app_io::decode
    - htonl
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, uint8_t *const
      data, size_t data_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:173,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:196,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:202,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:202,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:208,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:221,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:221,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:238,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:239,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:241,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:242,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:248,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:253,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/cron/proto_cron.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 254
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - FR_INTEGER_BOUND_CHECK
    - MODULE_INST_CTX
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:111,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:114,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:132,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:136,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:147,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:155,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:157,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:170,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:181,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:183,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:189,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:203,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:205,1
    - Dst: isspace
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:232,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:233,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 91
    argCount: 7
    argNames:
    - ci
    - start
    - name
    - tab
    - min
    - max
    - offset
    argTypes:
    - CONF_ITEM*
    - char**
    - char*
    - cron_tab_t*
    - unsigned int
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 259
    functionName: parse_field
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - fr_skip_whitespace
    - isspace
    - strtoul
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int parse_field(CONF_ITEM *ci, char const **start, char const *name,\n\t\t
      \      cron_tab_t *tab, unsigned int min, unsigned int max, size_t offset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:289,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:290,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:291,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:300,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:302,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:316,1
    - Dst: parse_field
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:318,1
    - Dst: parse_field
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:319,1
    - Dst: parse_field
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:320,1
    - Dst: parse_field
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:321,1
    - Dst: parse_field
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:322,1
    - Dst: fr_skip_whitespace
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:324,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 332
    functionName: time_parse
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - talloc_get_type_abort
    - parse_field
    - fr_skip_whitespace
    - fr_table_value_by_str
    - memset
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int time_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:336,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:337,1
    - Dst: FR_EVENT_SUSPEND
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:348,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:352,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:353,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:370,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:378,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 391
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - memset
    - fr_assert
    - FR_EVENT_SUSPEND
    - talloc_get_type_abort_const
    - DEBUG2
    - fr_event_filter_update
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - fr_listen_t *li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED
    - UNUSED*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(UNUSED fr_listen_t *li, UNUSED void *packet_ctx,
      UNUSED fr_time_t request_time,\n\t\t\t UNUSED uint8_t *buffer, size_t buffer_len,
      UNUSED size_t written)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:406,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:407,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:416,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:418,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:418,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:422,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:424,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:426,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:426,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:426,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:426,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:428,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 432
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - open
    - fr_syserror
    - talloc_get_type_abort
    - fr_assert
    - fr_socket_addr_alloc_inet_src
    - talloc_get_type_abort_const
    - memset
    - talloc_parent
    - cf_log_err
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:440,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:441,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:448,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:451,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:454,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:459,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:462,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 438
    functionDepth: 5
    functionLinenumber: 438
    functionLinenumberEnd: 467
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - fr_rand
    - fr_socket_addr_swap
    - REQUEST_VERIFY
    - talloc_zero_array
    - talloc_get_type_abort_const
    - fr_pair_list_copy
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, UNUSED uint8_t
      *const data, UNUSED size_t data_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - tm
    - tab
    argTypes:
    - struct tm*
    - cron_tab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 516
    functionName: get_next
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool get_next(struct tm *tm, cron_tab_t const *tab)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:526,1
    - Dst: localtime_r
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:530,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:539,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:540,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:547,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:549,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:563,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:564,1
    - Dst: mktime
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:576,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:580,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:581,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:583,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:597,1
    - Dst: get_next
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:604,1
    - Dst: mktime
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:611,1
    - Dst: mktime
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:612,1
    - Dst: mktime
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:624,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:625,1
    - Dst: ctime_r
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:631,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:632,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:633,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:636,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:636,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:636,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:638,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:653,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - tl
    - now
    - uctx
    argTypes:
    - fr_timer_list_t*
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 654
    functionName: do_cron
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - fr_network_listen_read
    - time
    - get_next
    - fr_timer_at
    - fr_time_add
    - cf_section_name2
    - fr_assert
    - DEBUG
    - localtime_r
    - mktime
    - ctime_r
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void do_cron(fr_timer_list_t *tl, fr_time_t now, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:664,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:665,1
    - Dst: do_cron
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:672,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 673
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - fr_time
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - do_cron
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, void
      *nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, UNUSED fr_ipaddr_t const
      *ipaddr, UNUSED int ipproto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:691,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:698,1
    - Dst: virtual_server_dict_by_child_ci
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:700,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:700,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:702,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:706,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:707,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:707,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:713,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:714,1
    - Dst: fopen
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:717,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:719,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:720,1
    - Dst: fr_pair_list_afrom_file
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:724,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:725,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:726,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:730,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 689
    functionDepth: 9
    functionLinenumber: 689
    functionLinenumberEnd: 736
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/cron/proto_cron_crontab.c
    functionUses: 0
    functionsReached:
    - fopen
    - cf_log_perr
    - fr_pair_find_by_da
    - fr_syserror
    - talloc_strdup
    - talloc_get_type_abort
    - talloc_zero
    - cf_section_to_item
    - fr_pair_list_afrom_file
    - virtual_server_dict_by_child_ci
    - MEM
    - cf_log_err
    - fr_pair_list_init
    - fclose
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_master_io_track_alloc
      Src: /src/freeradius-server/src/listen/bfd/session.c:67,1
    - Dst: fr_network_sendto_worker
      Src: /src/freeradius-server/src/listen/bfd/session.c:71,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/bfd/session.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bfd_session_t *session
    - bfd_state_change_t
    argTypes:
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 10
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: bfd_trigger
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - fr_network_sendto_worker
    - fr_master_io_track_alloc
    - fr_time
    linkageType: ''
    returnType: void
    signature: void bfd_trigger(UNUSED bfd_session_t *session, UNUSED bfd_state_change_t
      change)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:77,1
    - Dst: bfd_trigger
      Src: /src/freeradius-server/src/listen/bfd/session.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 11
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: bfd_session_admin_down
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_trigger
    - bfd_stop_control
    linkageType: ''
    returnType: void
    signature: void bfd_session_admin_down(bfd_session_t *session)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:98,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:100,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:108,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:109,1
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:111,1
    - Dst: bfd_start_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:112,1
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 117
    functionName: bfd_stop_poll
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - bfd_start_control
    - fr_assert
    - bfd_stop_control
    linkageType: ''
    returnType: int
    signature: int bfd_stop_poll(bfd_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bfd_control_packet_init
      Src: /src/freeradius-server/src/listen/bfd/session.c:129,1
    - Dst: bfd_sign
      Src: /src/freeradius-server/src/listen/bfd/session.c:137,1
    - Dst: sendfromto
      Src: /src/freeradius-server/src/listen/bfd/session.c:139,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/bfd/session.c:142,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/session.c:142,1
    - Dst: bfd_session_admin_down
      Src: /src/freeradius-server/src/listen/bfd/session.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 12
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: bfd_poll_response
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_syserror
    - bfd_sign
    - sendfromto
    - bfd_control_packet_init
    - bfd_session_admin_down
    linkageType: ''
    returnType: void
    signature: void bfd_poll_response(bfd_session_t *session)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:161,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:172,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:183,1
    - Dst: bfd_authenticate
      Src: /src/freeradius-server/src/listen/bfd/session.c:193,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:194,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:217,1
    - Dst: bfd_stop_echo
      Src: /src/freeradius-server/src/listen/bfd/session.c:231,1
    - Dst: bfd_stop_poll
      Src: /src/freeradius-server/src/listen/bfd/session.c:241,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/listen/bfd/session.c:252,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:252,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:255,1
    - Dst: fr_time_delta_gteq
      Src: /src/freeradius-server/src/listen/bfd/session.c:258,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:271,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:286,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:299,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:306,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:321,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:343,1
    - Dst: bfd_set_desired_min_tx_interval
      Src: /src/freeradius-server/src/listen/bfd/session.c:358,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/bfd/session.c:358,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:372,1
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:374,1
    - Dst: bfd_start_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:386,1
    - Dst: bfd_poll_response
      Src: /src/freeradius-server/src/listen/bfd/session.c:395,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/bfd/session.c:402,1
    - Dst: fr_time_delta_lt
      Src: /src/freeradius-server/src/listen/bfd/session.c:408,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:408,1
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:410,1
    - Dst: bfd_start_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:411,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/listen/bfd/session.c:418,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 120
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 150
    functionDepth: 13
    functionLinenumber: 150
    functionLinenumberEnd: 424
    functionName: bfd_session_process
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_stop_echo
    - bfd_authenticate
    - bfd_stop_poll
    - fr_time
    - bfd_set_desired_min_tx_interval
    - fr_time_gt
    - fr_time_delta_gteq
    - fr_time_delta_lt
    - fr_time_delta_from_usec
    - bfd_start_control
    - bfd_poll_response
    - DEBUG
    - bfd_stop_control
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: bfd_state_change_t
    signature: bfd_state_change_t bfd_session_process(bfd_session_t *session, bfd_packet_t
      *bfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:445,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: bfd_calc_simple
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void bfd_calc_simple(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bfd_calc_simple
      Src: /src/freeradius-server/src/listen/bfd/session.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: bfd_auth_simple
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_calc_simple
    linkageType: ''
    returnType: void
    signature: void bfd_auth_simple(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:471,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:472,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/bfd/session.c:474,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:475,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/listen/bfd/session.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 478
    functionName: bfd_calc_md5
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - memset
    - fr_assert
    - memcpy
    - fr_md5_calc
    linkageType: ''
    returnType: void
    signature: void bfd_calc_md5(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bfd_calc_md5
      Src: /src/freeradius-server/src/listen/bfd/session.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 492
    functionName: bfd_auth_md5
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_calc_md5
    linkageType: ''
    returnType: void
    signature: void bfd_auth_md5(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:499,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:500,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/bfd/session.c:502,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:503,1
    - Dst: fr_sha1_init
      Src: /src/freeradius-server/src/listen/bfd/session.c:505,1
    - Dst: fr_sha1_update
      Src: /src/freeradius-server/src/listen/bfd/session.c:506,1
    - Dst: fr_sha1_final
      Src: /src/freeradius-server/src/listen/bfd/session.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 508
    functionName: bfd_calc_sha1
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_sha1_init
    - fr_sha1_final
    - fr_sha1_update
    - fr_assert
    - memset
    linkageType: ''
    returnType: void
    signature: void bfd_calc_sha1(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bfd_calc_sha1
      Src: /src/freeradius-server/src/listen/bfd/session.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 5
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: bfd_auth_sha1
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_calc_sha1
    linkageType: ''
    returnType: void
    signature: void bfd_auth_sha1(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - session
    - sequence_no
    - keyed
    argTypes:
    - bfd_session_t*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 549
    functionName: bfd_verify_sequence
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bfd_verify_sequence(bfd_session_t *session, uint32_t sequence_no,\n\t\t\t
      \      int keyed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/listen/bfd/session.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: bfd_verify_simple
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - fr_digest_cmp
    linkageType: ''
    returnType: int
    signature: int bfd_verify_simple(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:572,1
    - Dst: bfd_calc_md5
      Src: /src/freeradius-server/src/listen/bfd/session.c:574,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/listen/bfd/session.c:575,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:577,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:580,1
    - Dst: bfd_verify_sequence
      Src: /src/freeradius-server/src/listen/bfd/session.c:591,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 600
    functionName: bfd_verify_md5
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - memcpy
    - bfd_verify_sequence
    - fr_digest_cmp
    - bfd_calc_md5
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int bfd_verify_md5(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:612,1
    - Dst: bfd_calc_sha1
      Src: /src/freeradius-server/src/listen/bfd/session.c:614,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/listen/bfd/session.c:615,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/session.c:617,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:620,1
    - Dst: bfd_verify_sequence
      Src: /src/freeradius-server/src/listen/bfd/session.c:631,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 602
    functionDepth: 5
    functionLinenumber: 602
    functionLinenumberEnd: 640
    functionName: bfd_verify_sha1
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_calc_sha1
    - memcpy
    - bfd_verify_sequence
    - fr_digest_cmp
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int bfd_verify_sha1(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bfd_verify_simple
      Src: /src/freeradius-server/src/listen/bfd/session.c:649,1
    - Dst: bfd_verify_md5
      Src: /src/freeradius-server/src/listen/bfd/session.c:653,1
    - Dst: bfd_verify_sha1
      Src: /src/freeradius-server/src/listen/bfd/session.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 661
    functionName: bfd_authenticate
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 1
    functionsReached:
    - bfd_verify_simple
    - bfd_verify_sha1
    - bfd_verify_md5
    linkageType: ''
    returnType: int
    signature: int bfd_authenticate(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bfd_auth_simple
      Src: /src/freeradius-server/src/listen/bfd/session.c:672,1
    - Dst: bfd_auth_md5
      Src: /src/freeradius-server/src/listen/bfd/session.c:677,1
    - Dst: bfd_auth_sha1
      Src: /src/freeradius-server/src/listen/bfd/session.c:682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 664
    functionDepth: 6
    functionLinenumber: 664
    functionLinenumberEnd: 686
    functionName: bfd_sign
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 1
    functionsReached:
    - bfd_auth_sha1
    - bfd_auth_simple
    - bfd_auth_md5
    linkageType: ''
    returnType: void
    signature: void bfd_sign(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/src/listen/bfd/session.c:694,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:714,1
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:716,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:728,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:729,1
    - Dst: fr_time_delta_to_usec
      Src: /src/freeradius-server/src/listen/bfd/session.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 732
    functionName: bfd_control_packet_init
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 1
    functionsReached:
    - memset
    - DEBUG
    - bfd_stop_control
    - fr_time_delta_to_usec
    linkageType: ''
    returnType: void
    signature: void bfd_control_packet_init(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bfd_control_packet_init
      Src: /src/freeradius-server/src/listen/bfd/session.c:736,1
    - Dst: bfd_start_packets
      Src: /src/freeradius-server/src/listen/bfd/session.c:741,1
    - Dst: bfd_sign
      Src: /src/freeradius-server/src/listen/bfd/session.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - session
    - bfd
    argTypes:
    - bfd_session_t*
    - bfd_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 734
    functionDepth: 7
    functionLinenumber: 734
    functionLinenumberEnd: 745
    functionName: bfd_send_init
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_sign
    - bfd_control_packet_init
    - bfd_start_packets
    linkageType: ''
    returnType: void
    signature: void bfd_send_init(bfd_session_t *session, bfd_packet_t *bfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bfd_send_init
      Src: /src/freeradius-server/src/listen/bfd/session.c:755,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:757,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/bfd/session.c:760,1
    - Dst: sendfromto
      Src: /src/freeradius-server/src/listen/bfd/session.c:762,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/bfd/session.c:765,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/session.c:765,1
    - Dst: bfd_session_admin_down
      Src: /src/freeradius-server/src/listen/bfd/session.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fr_timer_list_t *el
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 750
    functionDepth: 12
    functionLinenumber: 750
    functionLinenumberEnd: 768
    functionName: bfd_send_packet
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_time
    - fr_syserror
    - sendfromto
    - bfd_send_init
    - bfd_session_admin_down
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void bfd_send_packet(UNUSED fr_timer_list_t *el, UNUSED fr_time_t now,
      void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bfd_send_init
      Src: /src/freeradius-server/src/listen/bfd/session.c:785,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/bfd/session.c:787,1
    - Dst: talloc_parent
      Src: /src/freeradius-server/src/listen/bfd/session.c:793,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/session.c:794,1
    - Dst: fr_master_io_track_alloc
      Src: /src/freeradius-server/src/listen/bfd/session.c:796,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/bfd/session.c:800,1
    - Dst: fr_network_sendto_worker
      Src: /src/freeradius-server/src/listen/bfd/session.c:800,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/bfd/session.c:801,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/bfd/session.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - ctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 773
    functionDepth: 10
    functionLinenumber: 773
    functionLinenumberEnd: 804
    functionName: bfd_unlang_send_packet
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_time
    - talloc_get_type_abort
    - fr_master_io_track_alloc
    - bfd_send_init
    - talloc_parent
    - fr_network_sendto_worker
    - PERROR
    linkageType: ''
    returnType: void
    signature: void bfd_unlang_send_packet(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/listen/bfd/session.c:818,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/listen/bfd/session.c:820,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:821,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:823,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/bfd/session.c:840,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/bfd/session.c:861,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:862,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 809
    functionDepth: 5
    functionLinenumber: 809
    functionLinenumberEnd: 866
    functionName: bfd_start_packets
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - FR_TIMER_DISARM
    - fr_rand
    - fr_timer_in
    - fr_assert
    - fr_time_delta_cmp
    linkageType: ''
    returnType: void
    signature: void bfd_start_packets(bfd_session_t *session)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:881,1
    - Dst: bfd_start_packets
      Src: /src/freeradius-server/src/listen/bfd/session.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 891
    functionName: bfd_start_poll
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_start_packets
    - bfd_stop_control
    linkageType: ''
    returnType: void
    signature: void bfd_start_poll(bfd_session_t *session)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/listen/bfd/session.c:904,1
    - Dst: fr_time_delta_cmp
      Src: /src/freeradius-server/src/listen/bfd/session.c:913,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/bfd/session.c:913,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/bfd/session.c:913,1
    - Dst: bfd_stop_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:933,1
    - Dst: bfd_start_poll
      Src: /src/freeradius-server/src/listen/bfd/session.c:934,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - session
    - value
    argTypes:
    - bfd_session_t*
    - fr_time_delta_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 896
    functionDepth: 7
    functionLinenumber: 896
    functionLinenumberEnd: 935
    functionName: bfd_set_desired_min_tx_interval
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_cmp
    - bfd_stop_control
    - fr_time_delta_from_sec
    - bfd_start_poll
    linkageType: ''
    returnType: void
    signature: void bfd_set_desired_min_tx_interval(bfd_session_t *session, fr_time_delta_t
      value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:945,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:961,1
    - Dst: bfd_trigger
      Src: /src/freeradius-server/src/listen/bfd/session.c:965,1
    - Dst: bfd_set_desired_min_tx_interval
      Src: /src/freeradius-server/src/listen/bfd/session.c:967,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/bfd/session.c:967,1
    - Dst: bfd_set_timeout
      Src: /src/freeradius-server/src/listen/bfd/session.c:978,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - now
    - ctx
    argTypes:
    - UNUSED
    - fr_time_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 941
    functionDepth: 11
    functionLinenumber: 941
    functionLinenumberEnd: 979
    functionName: bfd_detection_timeout
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - bfd_set_desired_min_tx_interval
    - bfd_trigger
    - bfd_set_timeout
    - DEBUG
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void bfd_detection_timeout(UNUSED fr_timer_list_t *tl, fr_time_t now,
      void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:990,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:993,1
    - Dst: fr_time_add
      Src: /src/freeradius-server/src/listen/bfd/session.c:995,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:995,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/listen/bfd/session.c:997,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - session
    - when
    argTypes:
    - bfd_session_t*
    - fr_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1001
    functionName: bfd_set_timeout
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 1
    functionsReached:
    - fr_time_delta_wrap
    - fr_time_delta_unwrap
    - fr_timer_at
    - fr_time_add
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void bfd_set_timeout(bfd_session_t *session, fr_time_t when)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/listen/bfd/session.c:1009,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/listen/bfd/session.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1012
    functionName: bfd_stop_control
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 6
    functionsReached:
    - FR_TIMER_DISARM
    linkageType: ''
    returnType: int
    signature: int bfd_stop_control(bfd_session_t *session)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:1023,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:1045,1
    - Dst: bfd_session_admin_down
      Src: /src/freeradius-server/src/listen/bfd/session.c:1047,1
    - Dst: bfd_set_timeout
      Src: /src/freeradius-server/src/listen/bfd/session.c:1051,1
    - Dst: bfd_start_packets
      Src: /src/freeradius-server/src/listen/bfd/session.c:1056,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1014
    functionDepth: 12
    functionLinenumber: 1014
    functionLinenumberEnd: 1057
    functionName: bfd_start_control
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 2
    functionsReached:
    - fr_time_delta_unwrap
    - bfd_start_packets
    - bfd_set_timeout
    - bfd_session_admin_down
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void bfd_start_control(bfd_session_t *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/bfd/session.c:1063,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/listen/bfd/session.c:1066,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/bfd/session.c:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1060
    functionDepth: 5
    functionLinenumber: 1060
    functionLinenumberEnd: 1082
    functionName: bfd_session_init
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - fr_rand
    - fr_time_delta_wrap
    linkageType: ''
    returnType: int
    signature: int bfd_session_init(bfd_session_t *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/session.c:1086,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/session.c:1088,1
    - Dst: bfd_start_control
      Src: /src/freeradius-server/src/listen/bfd/session.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session
    argTypes:
    - bfd_session_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1084
    functionDepth: 13
    functionLinenumber: 1084
    functionLinenumberEnd: 1091
    functionName: bfd_session_start
    functionSourceFile: /src/freeradius-server/src/listen/bfd/session.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - DEBUG
    - bfd_start_control
    linkageType: ''
    returnType: void
    signature: void bfd_session_start(bfd_session_t *session)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:112,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:113,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:140,1
    - Dst: PDEBUG2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:142,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:147,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:154,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:156,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:157,1
    - Dst: fr_bfd_packet_ok
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:164,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:165,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:176,1
    - Dst: bfd_session_process
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 109
    functionDepth: 14
    functionLinenumber: 109
    functionLinenumberEnd: 192
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - bfd_session_process
    - fr_bfd_packet_ok
    - udp_recv
    - talloc_get_type_abort
    - fr_rb_find
    - PDEBUG2
    - talloc_get_type_abort_const
    - DEBUG2
    - fr_box_ipaddr
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len,\n\t\t\tsize_t *leftover)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:197,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:198,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:212,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:214,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:216,1
    - Dst: fr_bfd_packet_ok
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:216,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:218,1
    - Dst: sendfromto
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:221,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:225,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:225,1
    - Dst: bfd_session_admin_down
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 194
    functionDepth: 12
    functionLinenumber: 194
    functionLinenumberEnd: 231
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 3
    functionsReached:
    - ERROR
    - fr_bfd_packet_ok
    - fr_syserror
    - UNCONST
    - talloc_get_type_abort
    - fr_assert
    - sendfromto
    - bfd_session_admin_down
    - DEBUG
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:247,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:248,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:254,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:256,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:256,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:261,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:270,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:271,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:271,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:281,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:282,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:282,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:292,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:293,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:293,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:303,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:304,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:304,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:312,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:313,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:314,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:314,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:315,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:315,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:321,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:321,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:321,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:321,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:323,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 329
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - setsockopt
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - fr_assert
    - fr_socket_addr_alloc_inet_src
    - cf_log_warn
    - DOC_ROOT_REF
    - fr_strerror
    - talloc_get_type_abort_const
    - cf_log_err
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:336,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:337,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 347
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:359,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:373,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:378,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:379,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:383,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:384,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:387,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:393,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:397,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:399,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:403,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:410,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:413,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:417,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:419,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:424,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:425,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:426,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:427,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:429,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:430,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:435,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:435,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:437,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:444,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:446,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:455,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:456,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:464,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:465,1
    - Dst: bfd_session_init
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:467,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 357
    functionDepth: 6
    functionLinenumber: 357
    functionLinenumberEnd: 473
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    - cf_data_find
    - cf_log_err
    - cf_item_to_section
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - cf_section_name2
    - FR_INTEGER_BOUND_CHECK
    - cf_section_to_item
    - fr_ipaddr_to_sockaddr
    - cf_parent
    - fr_ipaddr_is_inaddr_any
    - bfd_session_init
    - ntohs
    - fr_assert
    - talloc_array_length
    - fr_rb_iter_init_inorder
    - cf_data_value
    - cf_log_perr
    - getservbyname
    - fr_master_io_network
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:477,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 482
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:492,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:493,1
    - Dst: fr_rb_iter_init_inorder
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:500,1
    - Dst: fr_rb_iter_next_inorder
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:502,1
    - Dst: bfd_session_start
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 490
    functionDepth: 14
    functionLinenumber: 490
    functionLinenumberEnd: 514
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd_udp.c
    functionUses: 0
    functionsReached:
    - fr_rb_iter_next_inorder
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - fr_rb_iter_init_inorder
    - bfd_session_start
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, void
      *nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:88,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:91,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:91,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 10
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: client_cmp
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - fr_ipaddr_cmp
    linkageType: ''
    returnType: int8_t
    signature: int8_t client_cmp(void const *one, void const *two)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:126,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:126,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:129,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - UNUSED*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: auth_type_parse
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - cf_log_err
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int auth_type_parse(UNUSED TALLOC_CTX *ctx, void *out, UNUSED void
      *parent, CONF_ITEM *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:146,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:159,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:162,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:168,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:171,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:173,1
    - Dst: fr_bfd_decode
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:179,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:181,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:182,1
    - Dst: fr_bfd_decode
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:191,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:193,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:194,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:201,1
    - Dst: fr_pair_copy
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:204,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:205,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:207,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:208,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:217,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 223
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - fr_pair_find_by_da_nested
    - RPEDEBUG
    - UNCONST
    - fr_pair_append
    - fr_nbo_to_uint32
    - fr_socket_addr_swap
    - REQUEST_VERIFY
    - fr_bfd_decode
    - talloc_get_type_abort_const
    - talloc_strlen
    - fr_packet_pairs_from_packet
    - fr_pair_find_by_da
    - fr_pair_copy
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:228,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:245,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:255,1
    - Dst: client_afrom_request
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:267,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:269,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:274,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:278,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:283,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:285,1
    - Dst: fr_bfd_packet_ok
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:285,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:287,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:290,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:291,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 295
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_bfd_packet_ok
    - fr_packet_net_from_pairs
    - fr_dbuff_init
    - fr_internal_encode_list
    - talloc_get_type_abort
    - client_afrom_request
    - fr_assert
    - fr_pair_find_by_da
    - PERROR
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:308,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:330,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:336,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:336,1
    - Dst: cf_data_value
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:355,1
    - Dst: cf_data_find
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:355,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:359,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:362,1
    - Dst: cf_section_rules_push
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:366,1
    - Dst: client_afrom_cs
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:368,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:371,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:371,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:372,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:377,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:377,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:383,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:383,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:384,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:384,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:386,1
    - Dst: fr_time_delta_from_usec
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:386,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:387,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:387,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:389,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:390,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:394,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:403,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:407,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:412,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:419,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:423,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:424,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:432,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:436,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:437,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:446,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:447,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:447,1
    - Dst: cf_data_add
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:452,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:463,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:464,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:466,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:467,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:473,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:478,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:478,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 479
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - fr_rb_inline_talloc_alloc
    - cf_data_find
    - cf_section_rules_push
    - cf_data_add
    - strlen
    - MODULE_INST_CTX
    - cf_log_err
    - cf_item_to_section
    - talloc_get_type_abort
    - cf_section_name2
    - module_instantiate
    - FR_INTEGER_BOUND_CHECK
    - fr_rb_insert
    - FR_TIME_DELTA_BOUND_CHECK
    - client_afrom_cs
    - cf_parent
    - fr_time_delta_from_usec
    - talloc_strlen
    - cf_data_value
    - fr_time_delta_from_sec
    - talloc_free
    - common::instantiate
    - cf_log_warn
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_bfd_global_init
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:483,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - fr_bfd_global_init
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_bfd_global_free
      Src: /src/freeradius-server/src/listen/bfd/proto_bfd.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/bfd/proto_bfd.c
    functionUses: 0
    functionsReached:
    - fr_bfd_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:156,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:161,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:162,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:164,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 174
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - talloc_get_type_abort
    - fr_dict_enum_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:178,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:181,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:181,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 191
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 11
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:237,1
    - Dst: talloc_vasprintf
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:239,1
    - Dst: va_end
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:243,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:245,1
    - Dst: EDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:248,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:250,1
    - Dst: EDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:254,1
    - Dst: EDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:258,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - li
    - reason
    - sock
    - fmt
    argTypes:
    - fr_listen_t*
    - fr_radius_decode_fail_t
    - fr_socket_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 261
    functionName: proto_radius_log
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - talloc_free
    - EDEBUG2
    - fr_assert
    - talloc_vasprintf
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: "void proto_radius_log(fr_listen_t const *li, fr_radius_decode_fail_t
      reason,\n\t\t      fr_socket_t const *sock, char const *fmt, ...)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:269,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:270,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:272,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:284,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:288,1
    - Dst: talloc
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:295,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:324,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:326,1
    - Dst: fr_radius_decode
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:333,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:335,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:337,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:339,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:342,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:350,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:366,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:374,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:377,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:378,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:379,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:381,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:382,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:383,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:384,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:405,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:408,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:409,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:410,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:411,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:412,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:413,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:415,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:416,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:417,1
    - Dst: RWARN
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:418,1
    - Dst: RINFO
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:421,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:422,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:423,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:428,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:429,1
    - Dst: fr_box_strvalue_buffer
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:430,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:431,1
    - Dst: RERROR
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:432,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:437,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:448,1
    - Dst: request_set_dynamic_client
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:450,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:452,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:454,1
    - Dst: fr_radius_flag_encrypted
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:455,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:469,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:473,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:489,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:493,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:494,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:501,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:501,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:503,1
    - Dst: fr_pair_afrom_da_nested
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:503,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:504,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:506,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 97
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 511
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_pair_value_strdup
    - fr_pair_value_memdup
    - REQUEST_VERIFY
    - fr_strerror
    - MEM
    - fr_radius_decode
    - RPEDEBUG
    - RWARN
    - fr_socket_addr_swap
    - fr_packet_pairs_from_packet
    - proto_radius_log
    - talloc_memdup
    - RINFO
    - fr_box_strvalue_buffer
    - UNCONST
    - fr_assert
    - talloc_strlen
    - fr_pair_find_by_da
    - request_set_dynamic_client
    - fr_value_box_memdup
    - fr_box_ipaddr
    - RERROR
    - fr_pair_list_next
    - talloc_free
    - fr_radius_flag_encrypted
    - talloc
    - fr_pair_list_head
    - talloc_get_type_abort_const
    - fr_pair_afrom_da_nested
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, uint8_t *const
      data, size_t data_len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:515,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:524,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:529,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:532,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:537,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:542,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:552,1
    - Dst: RDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:559,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:583,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:589,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:595,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:603,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:605,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:605,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:606,1
    - Dst: RWDEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:612,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:625,1
    - Dst: client_afrom_request
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:646,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:648,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:653,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:669,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:675,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:676,1
    - Dst: fr_radius_encode
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:686,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:686,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:688,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:692,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:693,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:694,1
    - Dst: fr_packet_net_from_pairs
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:698,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:701,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:704,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:706,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:711,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 100
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 715
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FR_DBUFF_TMP
    - fr_pair_list_free
    - RWDEBUG
    - MEM
    - unlikely
    - RPEDEBUG
    - fr_pair_append
    - talloc_get_type_abort
    - fr_radius_encode
    - RWDEBUG2
    - fr_pair_afrom_da
    - fr_packet_net_from_pairs
    - fr_rand
    - fr_assert
    - RDEBUG2
    - fr_radius_sign
    - talloc_strlen
    - PERROR
    - fr_box_ipaddr
    - RDEBUG
    - log_request_proto_pair_list
    - client_afrom_request
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:719,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:721,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - instance
    - buffer
    - size_t
    argTypes:
    - void*
    - uint8_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 742
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, uint8_t const *buffer, UNUSED
      size_t buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:755,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:774,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:784,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:784,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:785,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:785,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:787,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:787,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:788,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:788,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:790,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:790,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:791,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:791,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:805,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:805,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:815,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:816,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:818,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:819,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:836,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:841,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:841,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 842
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:858,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:858,1
    - Dst: fr_value_box_memdup
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:859,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:860,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - xctx
    - request
    - fr_value_box_list_t *in
    argTypes:
    - TALLOC_CTX*
    - fr_dcursor_t*
    - UNUSED*
    - request_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 867
    functionName: packet_vector_xlat
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_append
    - talloc_free
    - fr_value_box_alloc
    - MEM
    - fr_value_box_memdup
    linkageType: ''
    returnType: xlat_action_t
    signature: "xlat_action_t packet_vector_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out,\n\t\t\t\t\tUNUSED
      xlat_ctx_t const *xctx, request_t *request,\n\t\t\t\t\tUNUSED fr_value_box_list_t
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_global_init
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:872,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:873,1
    - Dst: xlat_func_register
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:878,1
    - Dst: fr_radius_global_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - fr_radius_global_free
    - PERROR
    - xlat_func_register
    - fr_radius_global_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlat_func_unregister
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:888,1
    - Dst: fr_radius_global_free
      Src: /src/freeradius-server/src/listen/radius/proto_radius.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 891
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius.c
    functionUses: 0
    functionsReached:
    - xlat_func_unregister
    - fr_radius_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:114,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:115,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:137,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:139,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:140,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:145,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:153,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:160,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:167,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:176,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:177,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 196
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - udp_recv
    - talloc_get_type_abort
    - fr_radius_ok
    - fr_strerror
    - talloc_get_type_abort_const
    - DEBUG2
    - proto_radius_log
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len,\n\t\t\tsize_t *leftover)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:201,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:202,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:204,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:223,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:245,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:247,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:256,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 278
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 3
    functionsReached:
    - memcpy
    - udp_send
    - talloc_get_type_abort
    - fr_socket_addr_swap
    - fr_assert
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 297
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:304,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:305,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:311,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:313,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:313,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:318,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:327,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:328,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:329,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:329,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:339,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:340,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:340,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:350,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:351,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:351,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:356,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:357,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:358,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:358,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:359,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:359,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:365,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:365,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:365,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:365,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:367,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 373
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - setsockopt
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - fr_assert
    - fr_socket_addr_alloc_inet_src
    - cf_log_warn
    - DOC_ROOT_REF
    - fr_strerror
    - talloc_get_type_abort_const
    - cf_log_err
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:380,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:381,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - track
    - packet
    - packet_len
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - fr_io_track_t*
    - uint8_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: mod_track_create
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    linkageType: ''
    returnType: void
    signature: "void *mod_track_create(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t      fr_io_track_t *track, uint8_t const
      *packet, UNUSED size_t packet_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - one
    - two
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 417
    functionName: mod_track_compare
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mod_track_compare(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t     void const *one, void const *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - data
    argTypes:
    - fr_listen_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: mod_hexdump_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_hexdump_set(fr_listen_t *li, void *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:436,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:448,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:453,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:454,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:458,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:459,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:462,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:463,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:469,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:473,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:475,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:479,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:486,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:489,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:493,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:495,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:500,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:501,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:502,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:503,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:505,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:513,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:514,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:516,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 522
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_perr
    - cf_parent
    - talloc_get_type_abort
    - getservbyname
    - ntohs
    - client_list_parse_section
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_array_length
    - cf_section_to_item
    - fr_master_io_network
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:526,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:533,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/radius/proto_radius_udp.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 538
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_udp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:102,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:103,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:114,1
    - Dst: read
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:129,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:148,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:149,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:163,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:173,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:192,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:198,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:205,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:230,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:239,1
    - Dst: proto_radius_log
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:240,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:245,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:255,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - UNUSED**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 260
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - fr_time
    - read
    - talloc_get_type_abort
    - fr_radius_ok
    - talloc_get_type_abort_const
    - fr_strerror
    - DEBUG2
    - fr_nbo_to_uint16
    - proto_radius_log
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, UNUSED void **packet_ctx, fr_time_t
      *recv_time_p, uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:266,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:267,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:294,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:295,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 332
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 3
    functionsReached:
    - write
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:359,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:360,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:366,1
    - Dst: fr_socket_server_tcp
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:368,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:370,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:370,1
    - Dst: fr_nonblock
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:375,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:377,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:378,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:379,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:379,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:380,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:380,1
    - Dst: listen
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:384,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:385,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:386,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:386,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:392,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:392,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:392,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:392,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:393,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 401
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - listen
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - fr_assert
    - DOC_ROOT_REF
    - fr_socket_addr_alloc_inet_src
    - fr_nonblock
    - talloc_get_type_abort_const
    - fr_strerror
    - fr_socket_server_tcp
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:408,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:409,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - one
    - two
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 439
    functionName: mod_track_compare
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mod_track_compare(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t     void const *one, void const *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - data
    argTypes:
    - fr_listen_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: mod_hexdump_set
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_hexdump_set(fr_listen_t *li, void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:458,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:470,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:475,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:476,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:479,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:480,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:486,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:490,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:492,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:496,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:507,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:510,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:514,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:516,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:521,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:522,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:523,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:524,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:526,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:531,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:532,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:534,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 540
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_log_perr
    - cf_parent
    - talloc_get_type_abort
    - getservbyname
    - ntohs
    - client_list_parse_section
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_array_length
    - cf_section_to_item
    - fr_master_io_network
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:544,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:552,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/radius/proto_radius_tcp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:127,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:132,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:133,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:135,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - cf_pair_value
    - talloc_get_type_abort
    - fr_dict_enum_by_name
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: "int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent,\n\t\t
      \     CONF_ITEM *ci, UNUSED conf_parser_t const *rule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:149,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:152,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:152,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 12
    functionsReached:
    - unlikely
    - virtual_server_listen_transport_parse
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:169,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:174,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:181,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:184,1
    - Dst: fr_dhcpv4_decode
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:192,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:194,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:201,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:204,1
    - Dst: fr_packet_pairs_from_packet
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:206,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:207,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 214
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - RPEDEBUG
    - UNCONST
    - fr_dhcpv4_decode
    - fr_nbo_to_uint32
    - fr_socket_addr_swap
    - REQUEST_VERIFY
    - RHEXDUMP3
    - talloc_get_type_abort_const
    - fr_packet_pairs_from_packet
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:238,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:246,1
    - Dst: client_afrom_request
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:267,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:269,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:274,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:279,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:283,1
    - Dst: COPY
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:291,1
    - Dst: COPY
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:292,1
    - Dst: COPY
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:293,1
    - Dst: MEMCPY
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:294,1
    - Dst: fr_dhcpv4_encode
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:296,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:297,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:299,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:303,1
    - Dst: RDEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:309,1
    - Dst: log_request_proto_pair_list
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 319
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - ntohl
    - COPY
    - RPEDEBUG
    - memcpy
    - RDEBUG
    - REDEBUG
    - talloc_get_type_abort
    - log_request_proto_pair_list
    - client_afrom_request
    - fr_assert
    - RHEXDUMP3
    - MEMCPY
    - memset
    - PERROR
    - fr_dhcpv4_encode
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: COPY
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: MEMCPY
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCPY(_x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:323,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - instance
    - buffer
    - buflen
    argTypes:
    - void*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 356
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    - fr_dhcpv4_packet_get_option
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, uint8_t const *buffer, size_t
      buflen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:369,1
    - Dst: fr_master_io_listen
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - sc
    - CONF_SECTION *conf
    argTypes:
    - void*
    - fr_schedule_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    - fr_master_io_listen
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, UNUSED CONF_SECTION
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:388,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:393,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:393,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:395,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:396,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:425,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:425,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:426,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:426,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:428,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:428,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:429,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:429,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:431,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:431,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:432,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:432,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:434,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:435,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:437,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:438,1
    - Dst: module_instantiate
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:444,1
    - Dst: common::instantiate
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:449,1
    - Dst: MODULE_INST_CTX
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 450
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - common::instantiate
    - talloc_get_type_abort
    - module_instantiate
    - fr_assert
    - FR_INTEGER_BOUND_CHECK
    - FR_TIME_DELTA_BOUND_CHECK
    - MODULE_INST_CTX
    - fr_time_delta_from_sec
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_global_init
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:454,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: mod_load
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_dhcpv4_global_init
    linkageType: ''
    returnType: int
    signature: int mod_load(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_global_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: mod_unload
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv4_global_free
    linkageType: ''
    returnType: void
    signature: void mod_unload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:156,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: dhcpv4_pcap_cmp
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t dhcpv4_pcap_cmp(void const *a, void const *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:167,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:170,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:170,1
    - Dst: fr_pcap_init
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:172,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:175,1
    - Dst: fr_pcap_open
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:179,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:180,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:182,1
    - Dst: fr_pcap_apply_filter
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:189,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:190,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - thread
    - interface
    argTypes:
    - proto_dhcpv4_udp_thread_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 198
    functionName: dhcpv4_pcap_find
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - fr_pcap_open
    - fr_rb_find
    - talloc_zero
    - fr_pcap_init
    - fr_rb_insert
    - fr_pcap_apply_filter
    - MEM
    linkageType: ''
    returnType: proto_dhcpv4_pcap_t
    signature: proto_dhcpv4_pcap_t *dhcpv4_pcap_find(proto_dhcpv4_udp_thread_t *thread,
      char const *interface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_remove
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:202,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - thread
    - pcap
    argTypes:
    - proto_dhcpv4_udp_thread_t*
    - proto_dhcpv4_pcap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: dhcpv4_pcap_free
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - fr_rb_remove
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void dhcpv4_pcap_free(proto_dhcpv4_udp_thread_t *thread, proto_dhcpv4_pcap_t
      *pcap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:210,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:234,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:236,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:241,1
    - Dst: fr_dhcpv4_ok
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:249,1
    - Dst: RATE_LIMIT_GLOBAL
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:250,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:261,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:263,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:264,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 279
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - RATE_LIMIT_GLOBAL
    - memcpy
    - udp_recv
    - talloc_get_type_abort
    - fr_dhcpv4_ok
    - DEBUG2
    - fr_box_ipaddr
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len,\n\t\t\t size_t *leftover)"
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:285,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:286,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:288,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:289,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:307,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:322,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:324,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:337,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:339,1
    - Dst: fr_ipaddr_from_ifindex
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:343,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:348,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:350,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:359,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:378,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:419,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:436,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:437,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:453,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:465,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:466,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:467,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:496,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:509,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:510,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:521,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:522,1
    - Dst: fr_arp_entry_add
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:534,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:535,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:536,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:538,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:551,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:552,1
    - Dst: fr_bsd_arp_entry_add
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:557,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:558,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:559,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:561,1
    - Dst: dhcpv4_pcap_find
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:571,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:574,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:575,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:576,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:583,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:584,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:585,1
    - Dst: fr_dhcpv4_pcap_send
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:586,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:587,1
    - Dst: dhcpv4_pcap_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:588,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:595,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:611,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:612,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:616,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:621,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:622,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:623,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:629,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:642,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:651,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:664,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:665,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:671,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:673,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:673,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:678,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:687,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:688,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:688,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:689,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:699,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:700,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:700,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:708,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:709,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:709,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:710,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:715,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:716,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:717,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:719,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:720,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:720,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:721,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:721,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:730,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:736,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:744,1
    - Dst: fr_rb_flatten_inorder
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:748,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:750,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:750,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:751,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:762,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:763,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:767,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:784,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:786,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:790,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:793,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:805,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:810,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:811,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:827,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:833,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:839,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:847,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:855,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:868,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:873,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:882,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:890,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:895,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:896,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:899,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:900,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:906,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:910,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:912,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:916,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:924,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:925,1
    - Dst: INFO
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:928,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:936,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:939,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:943,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:945,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:950,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:951,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:952,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:953,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:955,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:963,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:964,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:966,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:974,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:978,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:981,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:982,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:989,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:997,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 317
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 1029
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 3
    functionsReached:
    - cf_section_find_next
    - htonl
    - WARN
    - memcpy
    - client_find
    - talloc_strdup
    - rad_suid_down
    - fr_ipaddr_from_ifindex
    - fr_strerror
    - close
    - cf_log_err
    - cf_item_to_section
    - ERROR
    - fr_app_io_socket_name
    - fr_ifname_from_ifindex
    - udp_send
    - fr_bsd_arp_entry_add
    - fr_socket_bind
    - talloc_get_type_abort
    - fr_socket_addr_swap
    - FR_INTEGER_BOUND_CHECK
    - cf_section_to_item
    - memcmp
    - memset
    - dhcpv4_pcap_find
    - DEBUG
    - fr_socket_server_udp
    - INFO
    - cf_parent
    - fr_ipaddr_is_inaddr_any
    - fr_dhcpv4_pcap_send
    - fr_syserror
    - fr_arp_entry_add
    - ntohs
    - fr_assert
    - talloc_array_length
    - dhcpv4_pcap_free
    - fr_rb_inline_init
    - fr_box_ipaddr
    - fr_dhcpv4_packet_get_option
    - cf_log_perr
    - talloc_free
    - fr_master_io_network
    - fr_rb_flatten_inorder
    - getservbyname
    - client_list_parse_section
    - talloc_zero
    - fr_socket_addr_alloc_inet_src
    - cf_log_warn
    - DOC_ROOT_REF
    - talloc_get_type_abort_const
    - rad_suid_up
    - setsockopt
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - li
    - connection
    argTypes:
    - fr_listen_t*
    - fr_io_address_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: mod_connection_set
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_connection_set(fr_listen_t *li, fr_io_address_t *connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ipproto
    - dynamic_clients
    - trie
    - instance
    argTypes:
    - int*
    - bool*
    - fr_trie_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: mod_network_get
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void mod_network_get(int *ipproto, bool *dynamic_clients, fr_trie_t
      const **trie, void *instance)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:664,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:665,1
    - Dst: fr_socket_server_udp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:671,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:673,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:673,1
    - Dst: fr_socket_addr_alloc_inet_src
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:678,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:687,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:688,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:688,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:689,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:699,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:700,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:700,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:708,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:709,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:709,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:710,1
    - Dst: rad_suid_up
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:715,1
    - Dst: fr_socket_bind
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:716,1
    - Dst: rad_suid_down
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:717,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:719,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:720,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:720,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:721,1
    - Dst: DOC_ROOT_REF
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:721,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:728,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:730,1
    - Dst: fr_rb_inline_init
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:736,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 739
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - fr_app_io_socket_name
    - setsockopt
    - fr_syserror
    - fr_socket_bind
    - close
    - talloc_get_type_abort
    - rad_suid_down
    - fr_socket_addr_alloc_inet_src
    - cf_log_warn
    - DOC_ROOT_REF
    - fr_strerror
    - talloc_get_type_abort_const
    - rad_suid_up
    - fr_assert
    - fr_rb_inline_init
    - cf_log_err
    - fr_socket_server_udp
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:744,1
    - Dst: fr_rb_flatten_inorder
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:748,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:750,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:750,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 754
    functionName: mod_close
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - talloc_array_length
    - fr_rb_flatten_inorder
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int mod_close(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:762,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:763,1
    - Dst: fr_app_io_socket_name
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - li
    - fd
    argTypes:
    - fr_listen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 774
    functionName: mod_fd_set
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - fr_app_io_socket_name
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_fd_set(fr_listen_t *li, int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:784,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:786,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:790,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:793,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:805,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:810,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - track
    - packet
    - packet_len
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - fr_io_track_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 814
    functionName: mod_track_create
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - DEBUG
    - memcpy
    - fr_dhcpv4_packet_get_option
    linkageType: ''
    returnType: void
    signature: "void *mod_track_create(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t      fr_io_track_t *track, uint8_t const
      *packet, size_t packet_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:827,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:833,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - instance
    - thread_instance
    - fr_client_t *client
    - one
    - two
    argTypes:
    - UNUSED*
    - UNUSED*
    - UNUSED
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 843
    functionName: mod_track_compare
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int mod_track_compare(UNUSED void const *instance, UNUSED void *thread_instance,
      UNUSED fr_client_t *client,\n\t\t\t     void const *one, void const *two)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:855,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:868,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:873,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:882,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:890,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:895,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:896,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:899,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:900,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:906,1
    - Dst: getservbyname
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:910,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:912,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:916,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:924,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:925,1
    - Dst: INFO
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:928,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:936,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:939,1
    - Dst: fr_master_io_network
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:943,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:945,1
    - Dst: cf_section_to_item
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:950,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:951,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:952,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:953,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:955,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:963,1
    - Dst: client_list_parse_section
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:964,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:966,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:974,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:978,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:981,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:982,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 853
    functionDepth: 4
    functionLinenumber: 853
    functionLinenumberEnd: 985
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - htonl
    - talloc_strdup
    - cf_log_err
    - cf_item_to_section
    - talloc_get_type_abort
    - FR_INTEGER_BOUND_CHECK
    - cf_section_to_item
    - memset
    - INFO
    - cf_parent
    - ntohs
    - fr_assert
    - talloc_array_length
    - cf_log_perr
    - getservbyname
    - client_list_parse_section
    - talloc_zero
    - cf_log_warn
    - fr_master_io_network
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:989,1
    - Dst: client_find
      Src: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c:997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - li
    - ipaddr
    - ipproto
    argTypes:
    - fr_listen_t*
    - fr_ipaddr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: mod_client_find
    functionSourceFile: /src/freeradius-server/src/listen/dhcpv4/proto_dhcpv4_udp.c
    functionUses: 0
    functionsReached:
    - client_find
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: fr_client_t
    signature: fr_client_t *mod_client_find(fr_listen_t *li, fr_ipaddr_t const *ipaddr,
      int ipproto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_ldap_attrs_check
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:109,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:111,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:113,1
    - Dst: talloc_array_null_terminate
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:114,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:114,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - config
    - attr
    argTypes:
    - sync_config_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: ldap_sync_conf_attr_add
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c
    functionUses: 0
    functionsReached:
    - fr_ldap_attrs_check
    - memcpy
    - talloc_array_null_terminate
    - UNCONST
    - talloc_strdup
    - talloc_array_length
    linkageType: ''
    returnType: int
    signature: int ldap_sync_conf_attr_add(sync_config_t *config, char const * attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:129,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:131,1
    - Dst: fr_internal_decode_list_dbuff
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:136,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:137,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:140,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:141,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:144,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init
    - fr_internal_decode_list_dbuff
    - fr_assert
    - fr_pair_find_by_da
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int mod_decode(UNUSED void const *instance, request_t *request, uint8_t
      *const data, size_t data_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:162,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:163,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:164,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:166,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:169,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:172,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:180,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:182,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:184,1
    - Dst: fr_pair_steal_append
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:185,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:189,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:190,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 193
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_dbuff_init
    - fr_internal_encode_list
    - fr_pair_list_append_by_da
    - fr_pair_remove
    - fr_dbuff_used
    - talloc_new
    - fr_pair_find_by_da
    - fr_pair_list_init
    - fr_pair_steal_append
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:197,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:203,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:203,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:204,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:208,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:209,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:224,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - instance
    - sc
    - conf
    argTypes:
    - void*
    - fr_schedule_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 233
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c
    functionUses: 0
    functionsReached:
    - talloc_set_name
    - talloc_set_destructor
    - talloc_free
    - talloc_get_type_abort
    - talloc_zero
    - fr_schedule_listen_add
    - talloc_zero_array
    - MEM
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, CONF_SECTION *conf)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:237,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:257,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:257,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:262,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:280,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:281,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:283,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:284,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:291,1
    - Dst: cf_section_find_next
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:293,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:300,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:302,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:307,1
    - Dst: map_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:308,1
    - Dst: map_afrom_cs
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:309,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:318,1
    - Dst: map_list_empty
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:321,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:322,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:331,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:332,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:332,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:333,1
    - Dst: tmpl_attr_tail_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:334,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:344,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:345,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:349,1
    - Dst: ldap_sync_conf_attr_add
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:350,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:356,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:358,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:359,1
    - Dst: fr_pair_list_append_by_da_parent
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:362,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:367,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c:368,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 235
    functionDepth: 9
    functionLinenumber: 235
    functionLinenumberEnd: 374
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync.c
    functionUses: 0
    functionsReached:
    - cf_section_find_next
    - cf_section_find
    - talloc_array
    - fr_type_is_structural
    - tmpl_attr_tail_da
    - map_list_empty
    - strlen
    - ldap_sync_conf_attr_add
    - cf_log_err
    - cf_item_to_section
    - talloc_get_type_abort
    - fr_table_str_by_value
    - FR_INTEGER_BOUND_CHECK
    - fr_table_value_by_str
    - DEBUG3
    - fr_pair_list_init
    - map_list_next
    - cf_parent
    - fr_pair_list_append_by_da_parent
    - map_list_init
    - fr_pair_list_append_by_da_parent_len
    - cf_log_warn
    - map_afrom_cs
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ldap_sync_conf_attr_add
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - attr
    - uctx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: active_directory_sync_attr_add
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/active_directory.c
    functionUses: 0
    functionsReached:
    - ldap_sync_conf_attr_add
    linkageType: ''
    returnType: int
    signature: int active_directory_sync_attr_add(char const *attr, void *uctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:67,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:68,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:75,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:75,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:78,1
    - Dst: sync_state_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:81,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:86,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:95,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:107,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:108,1
    - Dst: fr_ldap_filter_parse
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:111,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:111,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:112,1
    - Dst: cf_pair_find
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:116,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:117,1
    - Dst: EMARKER
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:118,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:118,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:121,1
    - Dst: fr_ldap_search_async
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:132,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:137,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:138,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:142,1
    - Dst: trigger
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:145,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 4
    argNames:
    - conn
    - sync_no
    - inst
    - cookie
    argTypes:
    - fr_ldap_connection_t*
    - size_t
    - proto_ldap_sync_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 54
    functionDepth: 13
    functionLinenumber: 54
    functionLinenumberEnd: 148
    functionName: active_directory_sync_state_init
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/active_directory.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_rb_inline_talloc_alloc
    - EMARKER
    - fr_strerror
    - MEM
    - cf_log_err
    - fr_ldap_search_async
    - ERROR
    - talloc_get_type_abort
    - fr_ldap_filter_parse
    - fr_rb_insert
    - DEBUG2
    - DEBUG3
    - sync_state_alloc
    - UNCONST
    - strcasecmp
    - fr_assert
    - unlang_interpret_get_thread_default
    - cf_pair_find
    - talloc_free
    - FR_SBUFF_IN_STR
    - trigger
    linkageType: ''
    returnType: int
    signature: "int active_directory_sync_state_init(fr_ldap_connection_t *conn, size_t
      sync_no, proto_ldap_sync_t const *inst,\n\t\t\t\t     UNUSED uint8_t const *cookie)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:177,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:178,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:179,1
    - Dst: fr_ldap_filter_eval
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:185,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:186,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:187,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:195,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:196,1
    - Dst: strncmp
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:198,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:203,1
    - Dst: ldap_sync_entry_send
      Src: /src/freeradius-server/src/listen/ldap_sync/active_directory.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - sync
    - msg
    - LDAPControl **ctrls
    argTypes:
    - sync_state_t*
    - LDAPMessage*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: active_directory_sync_search_entry
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/active_directory.c
    functionUses: 0
    functionsReached:
    - ldap_get_values_len
    - fr_ldap_filter_eval
    - ldap_count_values_len
    - ldap_sync_entry_send
    - fr_assert
    - ldap_value_free_len
    - DEBUG2
    - strncmp
    - ldap_msgfree
    linkageType: ''
    returnType: int
    signature: int active_directory_sync_search_entry(sync_state_t *sync, LDAPMessage
      *msg, UNUSED LDAPControl **ctrls)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:63,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:64,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:71,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:71,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:74,1
    - Dst: ber_alloc_t
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:80,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:82,1
    - Dst: sync_state_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:86,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:88,1
    - Dst: ber_printf
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:96,1
    - Dst: ber_flatten2
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:101,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:103,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:104,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:106,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:109,1
    - Dst: fr_ldap_search_async
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:116,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:118,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:121,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:125,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:126,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:130,1
    - Dst: trigger
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:133,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:133,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 4
    argNames:
    - conn
    - sync_no
    - inst
    - cookie
    argTypes:
    - fr_ldap_connection_t*
    - size_t
    - proto_ldap_sync_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 53
    functionDepth: 13
    functionLinenumber: 53
    functionLinenumberEnd: 144
    functionName: persistent_sync_state_init
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_ldap_search_async
    - ber_free
    - memcpy
    - ber_printf
    - sync_state_alloc
    - fr_rb_inline_talloc_alloc
    - ber_alloc_t
    - talloc_free
    - DEBUG3
    - talloc_get_type_abort
    - fr_timer_in
    - fr_assert
    - unlang_interpret_get_thread_default
    - fr_rb_insert
    - trigger
    - MEM
    - ber_flatten2
    linkageType: ''
    returnType: int
    signature: int persistent_sync_state_init(fr_ldap_connection_t *conn, size_t sync_no,
      proto_ldap_sync_t const *inst, UNUSED uint8_t const *cookie)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:188,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:189,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:190,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:202,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:204,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:226,1
    - Dst: ber_init
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:235,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:237,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:240,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:247,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:248,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:256,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:257,1
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:261,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:262,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:263,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:269,1
    - Dst: talloc_asprintf
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:270,1
    - Dst: ldap_sync_cookie_store
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:271,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:274,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:275,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:296,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:302,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:304,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:305,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:308,1
    - Dst: ldap_sync_entry_send
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:314,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c:316,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 3
    argNames:
    - sync
    - msg
    - ctrls
    argTypes:
    - sync_state_t*
    - LDAPMessage*
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 319
    functionName: persistent_sync_search_entry
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/persistent_search.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ber_free
    - talloc_free
    - DEBUG3
    - ber_scanf
    - ber_peek_tag
    - ldap_get_dn
    - fr_table_str_by_value
    - fr_assert
    - ldap_memfree
    - ldap_sync_entry_send
    - strcmp
    - ber_init
    - talloc_asprintf
    - ldap_sync_cookie_store
    - ldap_msgfree
    linkageType: ''
    returnType: int
    signature: int persistent_sync_search_entry(sync_state_t *sync, LDAPMessage *msg,
      LDAPControl **ctrls)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:84,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:85,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:88,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:88,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:91,1
    - Dst: ber_alloc_t
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:94,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:96,1
    - Dst: sync_state_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:100,1
    - Dst: HEXDUMP2
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:109,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:109,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:110,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:113,1
    - Dst: ber_printf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:115,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:117,1
    - Dst: ber_printf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:118,1
    - Dst: ber_flatten2
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:121,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:123,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:124,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:126,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:130,1
    - Dst: fr_ldap_search_async
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:133,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:135,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:138,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:142,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:143,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:147,1
    - Dst: trigger
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:150,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:150,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:155,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:157,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 4
    argNames:
    - conn
    - sync_no
    - inst
    - cookie
    argTypes:
    - fr_ldap_connection_t*
    - size_t
    - proto_ldap_sync_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 74
    functionDepth: 13
    functionLinenumber: 74
    functionLinenumberEnd: 162
    functionName: rfc4533_sync_init
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fr_rb_inline_talloc_alloc
    - fr_timer_in
    - MEM
    - ERROR
    - fr_ldap_search_async
    - talloc_get_type_abort
    - fr_rb_insert
    - DEBUG2
    - DEBUG3
    - ber_flatten2
    - HEXDUMP2
    - sync_state_alloc
    - fr_assert
    - unlang_interpret_get_thread_default
    - talloc_array_length
    - PERROR
    - ber_free
    - ber_printf
    - talloc_free
    - ber_alloc_t
    - trigger
    linkageType: ''
    returnType: int
    signature: int rfc4533_sync_init(fr_ldap_connection_t *conn, size_t sync_no, proto_ldap_sync_t
      const *inst, uint8_t const *cookie)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:188,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:191,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:193,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:204,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:205,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:206,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:207,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:208,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:214,1
    - Dst: fr_ldap_berval_to_bin
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:215,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:216,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:217,1
    - Dst: fr_box_strvalue_len
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - new_cookie
    - sync
    - ber
    argTypes:
    - bool*
    - sync_state_t*
    - BerElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 223
    functionName: sync_new_cookie
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_ldap_berval_to_bin
    - WARN
    - talloc_free
    - ber_scanf
    - ber_peek_tag
    - talloc_array_length
    - fr_box_strvalue_len
    - memcmp
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sync_new_cookie(bool *new_cookie, sync_state_t *sync, BerElement
      *ber)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:270,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:271,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:275,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:276,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:289,1
    - Dst: ber_init
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:296,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:298,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:301,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:302,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:306,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:308,1
    - Dst: sync_new_cookie
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:312,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:314,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:315,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:332,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:333,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:334,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:372,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:380,1
    - Dst: fr_ldap_berval_to_value_shallow
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:381,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:383,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:384,1
    - Dst: ldap_msgtype
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:384,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:385,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:389,1
    - Dst: ldap_msgtype
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:395,1
    - Dst: ldap_sync_entry_send
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:397,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:402,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:406,1
    - Dst: ldap_sync_cookie_store
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:413,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:415,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 3
    argNames:
    - sync
    - msg
    - ctrls
    argTypes:
    - sync_state_t*
    - LDAPMessage*
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 418
    functionName: rfc4533_sync_search_entry
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ber_free
    - sync_new_cookie
    - DEBUG3
    - ldap_msgtype
    - ber_scanf
    - fr_table_str_by_value
    - ldap_get_dn
    - ldap_memfree
    - fr_assert
    - ldap_sync_entry_send
    - strcmp
    - ber_init
    - ldap_sync_cookie_store
    - ldap_msgfree
    - fr_ldap_berval_to_value_shallow
    linkageType: ''
    returnType: int
    signature: int rfc4533_sync_search_entry(sync_state_t *sync, LDAPMessage *msg,
      LDAPControl **ctrls)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: ldap_parse_intermediate
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:470,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:471,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:473,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:474,1
    - Dst: ber_init
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:478,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:480,1
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:485,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:486,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:486,1
    - Dst: sync_new_cookie
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:495,1
    - Dst: ber_bvarray_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:497,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:498,1
    - Dst: ber_bvfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:499,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:500,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:506,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:525,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:526,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:527,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:531,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:532,1
    - Dst: sync_new_cookie
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:536,1
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:538,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:539,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:540,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:547,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:548,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:570,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:571,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:572,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:577,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:578,1
    - Dst: sync_new_cookie
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:582,1
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:584,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:585,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:586,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:593,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:594,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:607,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:608,1
    - Dst: sync_new_cookie
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:612,1
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:614,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:615,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:616,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:621,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:622,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:641,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:642,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:643,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:660,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:661,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:662,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:673,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:673,1
    - Dst: ldap_sync_entry_send
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:677,1
    - Dst: ber_bvarray_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:682,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:687,1
    - Dst: ldap_sync_cookie_store
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:693,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:696,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:697,1
    - Dst: ber_bvfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:698,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 187
    argCount: 3
    argNames:
    - sync
    - msg
    - LDAPControl **ctrls
    argTypes:
    - sync_state_t*
    - LDAPMessage*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 701
    functionName: rfc4533_sync_intermediate
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ber_bvarray_free
    - ber_free
    - WARN
    - sync_new_cookie
    - ber_bvfree
    - fr_cond_assert
    - ldap_memfree
    - ber_peek_tag
    - fr_table_str_by_value
    - ber_scanf
    - ldap_sync_entry_send
    - ber_init
    - strcmp
    - ldap_sync_cookie_store
    - STRINGIFY
    - ldap_parse_intermediate
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int rfc4533_sync_intermediate(sync_state_t *sync, LDAPMessage *msg,
      UNUSED LDAPControl **ctrls)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:726,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:727,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:729,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:738,1
    - Dst: ber_init
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:742,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:744,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:747,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:751,1
    - Dst: sync_new_cookie
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:753,1
    - Dst: ber_peek_tag
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:755,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:756,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:757,1
    - Dst: ber_scanf
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:762,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:763,1
    - Dst: ber_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:767,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:776,1
    - Dst: ldap_sync_cookie_store
      Src: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c:781,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - sync
    - msg
    - ctrls
    argTypes:
    - sync_state_t*
    - LDAPMessage*
    - LDAPControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 782
    functionName: rfc4533_sync_refresh_required
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/rfc4533.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ber_free
    - sync_new_cookie
    - talloc_free
    - ber_scanf
    - ber_peek_tag
    - fr_assert
    - strcmp
    - ber_init
    - ldap_sync_cookie_store
    - ldap_msgfree
    linkageType: ''
    returnType: int
    signature: int rfc4533_sync_refresh_required(sync_state_t *sync, LDAPMessage *msg,
      LDAPControl **ctrls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: sync_state_cmp
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t sync_state_cmp(void const *one, void const *two)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:160,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:161,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:163,1
    - Dst: trigger
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:165,1
    - Dst: unlang_interpret_get_thread_default
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:165,1
    - Dst: ldap_abandon_ext
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:172,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sync
    argTypes:
    - sync_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 158
    functionDepth: 13
    functionLinenumber: 158
    functionLinenumberEnd: 176
    functionName: sync_state_free
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - ldap_abandon_ext
    - talloc_get_type_abort
    - unlang_interpret_get_thread_default
    - trigger
    - fr_rb_delete
    - DEBUG3
    linkageType: ''
    returnType: int
    signature: int sync_state_free(sync_state_t *sync)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:193,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:193,1
    - Dst: fr_dlist_talloc_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:200,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:205,1
    - Dst: fr_pair_list_append_by_da_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:206,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:207,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - conn
    - inst
    - sync_no
    - config
    argTypes:
    - TALLOC_CTX*
    - fr_ldap_connection_t*
    - proto_ldap_sync_t*
    - size_t
    - sync_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 215
    functionName: sync_state_alloc
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 3
    functionsReached:
    - fr_dlist_talloc_init
    - fr_pair_list_append_by_da_len
    - talloc_set_destructor
    - talloc_zero
    - talloc_strlen
    - MEM
    - fr_pair_list_init
    linkageType: ''
    returnType: sync_state_t
    signature: "sync_state_t *sync_state_alloc(TALLOC_CTX *ctx, fr_ldap_connection_t
      *conn, proto_ldap_sync_t const *inst,\n\t\t\t       size_t sync_no, sync_config_t
      const *config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:232,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:232,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:236,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:236,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:239,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sync
    - refresh
    argTypes:
    - sync_state_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: ldap_sync_cookie_store
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 4
    functionsReached:
    - talloc_memdup
    - talloc_free
    - talloc_zero
    - talloc_array_length
    - fr_dlist_insert_tail
    - MEM
    linkageType: ''
    returnType: int
    signature: int ldap_sync_cookie_store(sync_state_t *sync, bool refresh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:256,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:264,1
    - Dst: ldap_sync_cookie_send
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:268,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 273
    functionName: ldap_sync_cookie_event
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_dlist_head
    - fr_timer_in
    - talloc_get_type_abort
    - ldap_sync_cookie_send
    linkageType: ''
    returnType: void
    signature: void ldap_sync_cookie_event(fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:289,1
    - Dst: FR_DBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:299,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:301,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:302,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:303,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:305,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:309,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:312,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:322,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:323,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:327,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:328,1
    - Dst: fr_network_listen_send_packet
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:330,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:330,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:331,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:331,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - sync_packet_ctx
    argTypes:
    - sync_packet_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 286
    functionDepth: 10
    functionLinenumber: 286
    functionLinenumberEnd: 339
    functionName: ldap_sync_cookie_send
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_buff
    - talloc_free
    - fr_time
    - fr_internal_encode_list
    - talloc_get_type_abort
    - fr_pair_list_append_by_da
    - fr_pair_list_append_by_da_parent_len
    - fr_dbuff_used
    - talloc_array_length
    - talloc_new
    - FR_DBUFF_TALLOC_THREAD_LOCAL
    - fr_network_listen_send_packet
    - fr_pair_list_init
    - fr_pair_list_copy
    linkageType: ''
    returnType: int
    signature: int ldap_sync_cookie_send(sync_packet_ctx_t *sync_packet_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:353,1
    - Dst: FR_DBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:357,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:359,1
    - Dst: fr_network_listen_send_packet
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:360,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:360,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:361,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:361,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sync_packet_ctx
    argTypes:
    - sync_packet_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 10
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: ldap_sync_entry_send_network
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_buff
    - fr_pair_list_free
    - fr_time
    - fr_internal_encode_list
    - talloc_get_type_abort
    - fr_dbuff_used
    - FR_DBUFF_TALLOC_THREAD_LOCAL
    - fr_network_listen_send_packet
    linkageType: ''
    returnType: int
    signature: int ldap_sync_entry_send_network(sync_packet_ctx_t *sync_packet_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:376,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:379,1
    - Dst: ldap_sync_entry_send_network
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:386,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 11
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: ldap_sync_retry_event
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_timer_in
    - fr_dlist_next
    - ldap_sync_entry_send_network
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void ldap_sync_retry_event(fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:427,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:427,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:430,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:433,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:435,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:436,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:442,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:445,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:452,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:461,1
    - Dst: ldap_get_dn
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:470,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:475,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:476,1
    - Dst: ldap_memfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:479,1
    - Dst: map_list_next
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:484,1
    - Dst: ldap_get_values_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:485,1
    - Dst: fr_ldap_handle_thread_local
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:485,1
    - Dst: ldap_count_values_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:488,1
    - Dst: pair_append_by_tmpl_parent
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:493,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:494,1
    - Dst: fr_pair_remove
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:496,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:497,1
    - Dst: ldap_value_free_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:504,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:508,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:510,1
    - Dst: ldap_sync_entry_send_network
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:515,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:516,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:518,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 5
    argNames:
    - sync
    - uuid
    - orig_dn
    - msg
    - op
    argTypes:
    - sync_state_t*
    - uint8_t[]
    - struct berval*
    - LDAPMessage*
    - sync_op_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 419
    functionDepth: 11
    functionLinenumber: 419
    functionLinenumberEnd: 522
    functionName: ldap_sync_entry_send
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 4
    functionsReached:
    - ldap_count_values_len
    - fr_timer_in
    - strlen
    - MEM
    - ldap_msgfree
    - ldap_get_values_len
    - fr_ldap_handle_thread_local
    - pair_append_by_tmpl_parent
    - fr_pair_list_init
    - fr_pair_list_copy
    - map_list_next
    - ldap_sync_entry_send_network
    - ldap_memfree
    - fr_pair_list_append_by_da
    - ldap_value_free_len
    - PERROR
    - talloc_free
    - ldap_get_dn
    - fr_pair_list_append_by_da_parent_len
    - fr_pair_remove
    - talloc_zero
    - fr_dlist_insert_tail
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: "int ldap_sync_entry_send(sync_state_t *sync, uint8_t const uuid[SYNC_UUID_LENGTH],
      struct berval *orig_dn,\n\t\t\tLDAPMessage *msg, sync_op_t op)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:541,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:542,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:543,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:545,1
    - Dst: fr_ldap_connection_state_alloc
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:550,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:553,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:554,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:556,1
    - Dst: FATAL
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:559,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:559,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:566,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:569,1
    - Dst: connection_signal_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - user_ctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 539
    functionDepth: 6
    functionLinenumber: 539
    functionLinenumberEnd: 578
    functionName: proto_ldap_connection_init
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_ldap_connection_state_alloc
    - talloc_free
    - connection_add_watch_post
    - FATAL
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_timer_in
    - connection_signal_init
    - talloc_get_type_abort_const
    - fr_strerror
    - PERROR
    linkageType: ''
    returnType: void
    signature: void proto_ldap_connection_init(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *user_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:587,1
    - Dst: connection_signal_shutdown
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 591
    functionName: proto_ldap_child_mod_close
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - connection_signal_shutdown
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int proto_ldap_child_mod_close(fr_listen_t *li)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:608,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:609,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:620,1
    - Dst: fr_network_listen_outstanding
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:627,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:629,1
    - Dst: ldap_result
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:637,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:652,1
    - Dst: ldap_msgid
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:665,1
    - Dst: ldap_msgtype
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:666,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:670,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:671,1
    - Dst: ldap_controls_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:673,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:674,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:678,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:680,1
    - Dst: fr_ldap_error_check
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:689,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:700,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:705,1
    - Dst: sync_state_t*::config::refresh
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:707,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:716,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:721,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:726,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:727,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:740,1
    - Dst: callback
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:746,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:747,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:753,1
    - Dst: ldap_controls_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:756,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 88
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - UNUSED**
    - UNUSED*
    - UNUSED*
    - UNUSED
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 759
    functionName: proto_ldap_child_mod_read
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fr_ldap_error_check
    - ldap_result
    - WARN
    - DEBUG3
    - ldap_msgtype
    - ldap_controls_free
    - sync_state_t*::config::refresh
    - talloc_get_type_abort
    - fr_table_str_by_value
    - fr_rb_find
    - fr_assert
    - ldap_msgid
    - fr_network_listen_outstanding
    - DEBUG2
    - ldap_msgfree
    - callback
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t proto_ldap_child_mod_read(fr_listen_t *li, UNUSED void **packet_ctx,
      UNUSED fr_time_t *recv_time_p, UNUSED uint8_t *buffer,\n\t\t\t\t\t UNUSED size_t
      buffer_len, UNUSED size_t *leftover)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:780,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:781,1
    - Dst: fr_pair_list_copy
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:781,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:792,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:793,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:794,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:796,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:796,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:798,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:826,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:829,1
    - Dst: fr_pair_list_append_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:832,1
    - Dst: fr_pair_list_append_by_da_parent_len
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:836,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:837,1
    - Dst: FR_DBUFF_TALLOC_THREAD_LOCAL
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:841,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:843,1
    - Dst: fr_network_listen_send_packet
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:845,1
    - Dst: fr_dbuff_buff
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:846,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:846,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:847,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:848,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 4
    argNames:
    - ctx
    - inst
    - sync_no
    - thread
    argTypes:
    - TALLOC_CTX*
    - proto_ldap_sync_ldap_t*
    - size_t
    - proto_ldap_sync_ldap_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 771
    functionDepth: 10
    functionLinenumber: 771
    functionLinenumberEnd: 850
    functionName: proto_ldap_cookie_load_send
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_buff
    - fr_pair_list_free
    - fr_time
    - fr_internal_encode_list
    - fr_pair_list_append_by_da
    - fr_pair_list_append_by_da_parent_len
    - fr_dbuff_used
    - fr_assert
    - strlen
    - talloc_array_length
    - FR_DBUFF_TALLOC_THREAD_LOCAL
    - fr_network_listen_send_packet
    - fr_pair_list_init
    - strncasecmp
    - fr_pair_list_copy
    linkageType: ''
    returnType: int
    signature: "int proto_ldap_cookie_load_send(TALLOC_CTX *ctx, proto_ldap_sync_ldap_t
      const *inst, size_t sync_no,\n\t\t\t\t       proto_ldap_sync_ldap_thread_t *thread)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:857,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:859,1
    - Dst: proto_ldap_cookie_load_send
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:860,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:862,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:863,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:864,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tl
    - fr_time_t
    - uctx
    argTypes:
    - fr_timer_list_t*
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 855
    functionDepth: 11
    functionLinenumber: 855
    functionLinenumberEnd: 871
    functionName: proto_ldap_cookie_load_retry
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_free
    - proto_ldap_cookie_load_send
    - talloc_get_type_abort
    - fr_box_time_delta
    - fr_timer_in
    - DEBUG2
    linkageType: ''
    returnType: void
    signature: void proto_ldap_cookie_load_retry(fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:881,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:882,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:892,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:893,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:895,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:900,1
    - Dst: fr_internal_decode_list_dbuff
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:902,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:902,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:908,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:909,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:912,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:913,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:925,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:925,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:930,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:931,1
    - Dst: init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:933,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:953,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:954,1
    - Dst: init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:955,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:967,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:968,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:970,1
    - Dst: talloc
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:970,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:977,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:984,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1003,1
    - Dst: fr_dlist_pop_head
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1023,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1024,1
    - Dst: ldap_sync_cookie_send
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1033,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1037,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1038,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 80
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 878
    functionDepth: 11
    functionLinenumber: 878
    functionLinenumberEnd: 1041
    functionName: proto_ldap_child_mod_write
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init
    - fr_dlist_pop_head
    - fr_timer_in
    - talloc_new
    - ldap_sync_cookie_send
    - fr_pair_list_free
    - MEM
    - fr_dlist_head
    - ERROR
    - talloc_get_type_abort
    - DEBUG3
    - fr_pair_list_init
    - init
    - talloc_memdup
    - fr_pair_find_by_da_nested
    - fr_internal_decode_list_dbuff
    - fr_assert
    - talloc_array_length
    - fr_pair_find_by_da
    - talloc_free
    - fr_box_time_delta
    - talloc
    - talloc_get_type_abort_const
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t proto_ldap_child_mod_write(fr_listen_t *li, void *packet_ctx,
      UNUSED fr_time_t request_time,\n\t\t\t\t\t  uint8_t *buffer, size_t buffer_len,
      UNUSED size_t written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1048,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1049,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1051,1
    - Dst: fr_ldap_state_error
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - fd_errno
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1045
    functionDepth: 6
    functionLinenumber: 1045
    functionLinenumberEnd: 1053
    functionName: _proto_ldap_socket_open_error
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_ldap_state_error
    - talloc_get_type_abort
    - talloc_free
    linkageType: ''
    returnType: void
    signature: "void _proto_ldap_socket_open_error(UNUSED fr_event_list_t *el, UNUSED
      int fd, UNUSED int flags,\n\t\t\t\t\t  UNUSED int fd_errno, void *uctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1059,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1060,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1061,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1063,1
    - Dst: fr_ldap_result
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1075,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1075,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1077,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1078,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1080,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1081,1
    - Dst: connection_signal_reconnect
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1082,1
    - Dst: fr_ldap_directory_result_parse
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1086,1
    - Dst: ldap_msgfree
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1087,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1094,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1095,1
    - Dst: connection_signal_halt
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1096,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1104,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1105,1
    - Dst: fr_network_listen_add
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1105,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1106,1
    - Dst: DEBUG2
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1110,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1112,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1118,1
    - Dst: proto_ldap_cookie_load_send
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1119,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1122,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - el
    - fd
    - flags
    - uctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1057
    functionDepth: 11
    functionLinenumber: 1057
    functionLinenumberEnd: 1124
    functionName: _proto_ldap_socket_open_read
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERROR
    - talloc_free
    - connection_signal_reconnect
    - fr_network_listen_add
    - proto_ldap_cookie_load_send
    - fr_ldap_result
    - talloc_get_type_abort
    - ldap_msgfree
    - fr_ldap_directory_result_parse
    - fr_event_fd_delete
    - talloc_array_length
    - fr_time_delta_from_msec
    - talloc_get_type_abort_const
    - talloc_new
    - DEBUG2
    - PERROR
    - connection_signal_halt
    linkageType: ''
    returnType: void
    signature: void _proto_ldap_socket_open_read(fr_event_list_t *el, int fd, UNUSED
      int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1133,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1136,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1153
    functionName: _proto_ldap_socket_init
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - MEM
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: "void _proto_ldap_socket_init(connection_t *conn, UNUSED connection_state_t
      prev,\n\t\t\t\t    UNUSED connection_state_t state, void *uctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1162,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1163,1
    - Dst: fr_event_loop_exiting
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1166,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1169,1
    - Dst: fr_box_time_delta
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1170,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1171,1
    - Dst: FATAL
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1174,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - connection_t *conn
    - prev
    - connection_state_t
    - uctx
    argTypes:
    - UNUSED
    - connection_state_t
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1159
    functionDepth: 3
    functionLinenumber: 1159
    functionLinenumberEnd: 1177
    functionName: _proto_ldap_socket_closed
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - ERROR
    - fr_box_time_delta
    - talloc_get_type_abort
    - fr_timer_in
    - fr_event_loop_exiting
    - fr_strerror
    - FATAL
    linkageType: ''
    returnType: void
    signature: "void _proto_ldap_socket_closed(UNUSED connection_t *conn, connection_state_t
      prev,\n\t\t\t\t      UNUSED connection_state_t state, void *uctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1189,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1190,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1191,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1193,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1199,1
    - Dst: FATAL
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1202,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1202,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1209,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1209,1
    - Dst: setsockopt
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1221,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1222,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1222,1
    - Dst: fr_event_fd_insert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1230,1
    - Dst: fr_ldap_conn_directory_alloc_async
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1241,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1244,1
    - Dst: connection_add_watch_post
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1251,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - conn
    - connection_state_t
    - connection_state_t
    - uctx
    argTypes:
    - connection_t*
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1186
    functionDepth: 5
    functionLinenumber: 1186
    functionLinenumberEnd: 1253
    functionName: _proto_ldap_socket_open_connected
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - WARN
    - talloc_free
    - connection_add_watch_post
    - fr_syserror
    - fr_event_fd_insert
    - fr_ldap_conn_directory_alloc_async
    - talloc_get_type_abort
    - fr_timer_in
    - talloc_zero
    - talloc_get_type_abort_const
    - fr_strerror
    - MEM
    - FATAL
    - setsockopt
    linkageType: ''
    returnType: void
    signature: "void _proto_ldap_socket_open_connected(connection_t *conn, UNUSED
      connection_state_t prev,\n\t\t\t\t\t      UNUSED connection_state_t state, void
      *uctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1265,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1266,1
    - Dst: proto_ldap_connection_init
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1280,1
    - Dst: fr_event_list_time
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1263
    functionDepth: 7
    functionLinenumber: 1263
    functionLinenumberEnd: 1281
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - fr_event_list_time
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - proto_ldap_connection_init
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, void
      *nr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1285,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1293,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1295,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1299,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1300,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1304,1
    - Dst: ldap_is_ldap_url
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1306,1
    - Dst: fr_ldap_server_url_check
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1307,1
    - Dst: fr_ldap_server_config_check
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1309,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1312,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1314,1
    - Dst: cf_section_name
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1315,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1315,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1315,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c:1315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1318
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/proto_ldap_sync_ldap.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - cf_item_to_section
    - ldap_is_ldap_url
    - talloc_strdup
    - talloc_get_type_abort
    - fr_ldap_server_config_check
    - cf_section_name
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - talloc_strlen
    - fr_ldap_server_url_check
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:53,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:57,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:58,1
    - Dst: fr_fault_setup
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:62,1
    - Dst: getenv
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:62,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:63,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:64,1
    - Dst: talloc_set_log_stderr
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:68,1
    - Dst: getopt
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:70,1
    - Dst: fopen
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:74,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:76,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:76,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:77,1
    - Dst: fgets
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:79,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:80,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:80,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:81,1
    - Dst: fclose
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:83,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:86,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:93,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:94,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:95,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:97,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:98,1
    - Dst: fr_time_delta_from_str
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:103,1
    - Dst: strlen
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:103,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:104,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:105,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:110,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:111,1
    - Dst: usage
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:119,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:125,1
    - Dst: usage
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:126,1
    - Dst: fr_check_lib_magic
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:131,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:132,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:133,1
    - Dst: fr_dict_global_ctx_init
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:136,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:137,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:138,1
    - Dst: fr_dict_internal_afrom_file
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:141,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:142,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:143,1
    - Dst: fr_dict_read
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:146,1
    - Dst: fr_perror
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:147,1
    - Dst: fr_exit_now
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:148,1
    - Dst: fr_strerror_clear
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:150,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:152,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:153,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:154,1
    - Dst: fr_set_signal
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:156,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:159,1
    - Dst: sync_touch_send_recv
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:160,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:161,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c:167,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 46
    functionDepth: 9
    functionLinenumber: 46
    functionLinenumberEnd: 170
    functionName: main
    functionSourceFile: /src/freeradius-server/src/listen/ldap_sync/sync_touch.c
    functionUses: 4
    functionsReached:
    - fr_check_lib_magic
    - fgets
    - fr_dict_internal_afrom_file
    - talloc_strdup
    - fr_dict_read
    - strlen
    - fopen
    - ERROR
    - DEBUG
    - fr_set_signal
    - fr_dict_global_ctx_init
    - sync_touch_send_recv
    - fr_syserror
    - fr_fault_setup
    - usage
    - getopt
    - fr_perror
    - getenv
    - PERROR
    - fr_time_delta_from_sec
    - fclose
    - fr_exit_now
    - talloc_free
    - talloc_set_log_stderr
    - fr_time_delta_from_str
    - talloc_zero
    - fr_strerror_clear
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:117,1
    - Dst: cf_item_to_pair
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:119,1
    - Dst: cf_pair_value
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:120,1
    - Dst: virtual_server_dict_by_child_ci
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:122,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:124,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:128,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:128,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:130,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:135,1
    - Dst: fr_dict_enum_by_name
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:139,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - UNUSED
    - void*
    - void*
    - CONF_ITEM*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 149
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 1
    functionsReached:
    - cf_item_to_pair
    - fr_dict_attr_by_name
    - cf_pair_value
    - fr_dict_enum_by_name
    - talloc_get_type_abort
    - virtual_server_dict_by_child_ci
    - cf_log_err
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int type_parse(UNUSED TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, UNUSED conf_parser_t const *rule)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:153,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:155,1
    - Dst: virtual_server_listen_transport_parse
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:155,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:162,1
    - Dst: virtual_server_listener_by_data
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:169,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:170,1
    - Dst: cf_section_find
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:172,1
    - Dst: cf_section_dup
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:174,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:177,1
    - Dst: module_instance_name_from_conf
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:182,1
    - Dst: module_instance_alloc
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:192,1
    - Dst: cf_log_perr
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:196,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:197,1
    - Dst: module_instance_conf_parse
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - ci
    - rule
    argTypes:
    - TALLOC_CTX*
    - void*
    - void*
    - CONF_ITEM*
    - conf_parser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 209
    functionName: transport_parse
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 13
    functionsReached:
    - unlikely
    - cf_log_perr
    - virtual_server_listen_transport_parse
    - cf_section_find
    - TALLOC_FREE
    - talloc_get_type_abort
    - virtual_server_listener_by_data
    - fr_assert
    - strcmp
    - module_instance_conf_parse
    - cf_section_dup
    - module_instance_name_from_conf
    - cf_log_err
    - module_instance_alloc
    linkageType: ''
    returnType: int
    signature: int transport_parse(TALLOC_CTX *ctx, void *out, void *parent, CONF_ITEM
      *ci, conf_parser_t const *rule)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:216,1
    - Dst: RHEXDUMP3
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:225,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:234,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:242,1
    - Dst: sscanf
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:244,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:245,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:257,1
    - Dst: fr_dcursor_tail
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:258,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:259,1
    - Dst: REDEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:280,1
    - Dst: fr_dcursor_free_list
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:281,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:287,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:292,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:299,1
    - Dst: atoi
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:302,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:304,1
    - Dst: fr_unix_time_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:306,1
    - Dst: fr_dcursor_append
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:307,1
    - Dst: strncasecmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:315,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:350,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:353,1
    - Dst: fr_pair_list_afrom_substr
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:358,1
    - Dst: FR_SBUFF_IN
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:359,1
    - Dst: RPEDEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:361,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:364,1
    - Dst: RWDEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:366,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:369,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:392,1
    - Dst: proto_detail_t*::app_io::decode
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:397,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 214
    functionDepth: 8
    functionLinenumber: 214
    functionLinenumberEnd: 398
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_pair_dcursor_init
    - REDEBUG
    - fr_pair_list_afrom_substr
    - RHEXDUMP3
    - fr_dcursor_free_list
    - RWDEBUG
    - strncasecmp
    - fr_pair_list_empty
    - RPEDEBUG
    - fr_pair_list_init
    - fr_pair_afrom_da
    - sscanf
    - proto_detail_t*::app_io::decode
    - FR_SBUFF_IN
    - MPRINT
    - fr_pair_list_append
    - fr_dcursor_append
    - fr_unix_time_from_sec
    - fr_dcursor_tail
    - fr_dict_internal
    - fr_pair_list_head
    - talloc_get_type_abort_const
    - atoi
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, uint8_t *const
      data, size_t data_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - instance
    - request
    - buffer
    - buffer_len
    argTypes:
    - UNUSED*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: mod_encode
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_encode(UNUSED void const *instance, request_t *request,
      uint8_t *buffer, size_t buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - buffer
    - size_t
    argTypes:
    - void*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 416
    functionName: mod_priority_set
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_priority_set(void const *instance, UNUSED uint8_t const *buffer,
      UNUSED size_t buflen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:431,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:438,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:438,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:439,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:443,1
    - Dst: talloc_set_name
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:444,1
    - Dst: proto_detail_t*::app_io::open
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:460,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:461,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:462,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:466,1
    - Dst: fr_listen_t*::app_io::get_name
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:467,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:473,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:474,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:475,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:487,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:488,1
    - Dst: fr_schedule_directory_add
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:495,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:496,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:501,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 3
    argNames:
    - instance
    - sc
    - conf
    argTypes:
    - void*
    - fr_schedule_t*
    - CONF_SECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 508
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 0
    functionsReached:
    - talloc_set_name
    - talloc_set_destructor
    - proto_detail_t*::app_io::open
    - talloc_free
    - fr_listen_t*::app_io::get_name
    - talloc_get_type_abort
    - cf_section_name2
    - talloc_zero
    - fr_assert
    - fr_schedule_listen_add
    - talloc_zero_array
    - strcmp
    - fr_schedule_directory_add
    - DEBUG
    - MEM
    - cf_log_err
    linkageType: ''
    returnType: int
    signature: int mod_open(void *instance, fr_schedule_t *sc, CONF_SECTION *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:521,1
    - Dst: cf_item_to_section
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:527,1
    - Dst: cf_parent
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:527,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:535,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:554,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:555,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:557,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail.c:558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 563
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail.c
    functionUses: 0
    functionsReached:
    - cf_parent
    - talloc_get_type_abort
    - FR_INTEGER_BOUND_CHECK
    - cf_log_err
    - cf_item_to_section
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:92,1
    - Dst: proto_detail_file_t*::parent::work_io::decode
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - proto_detail_file_t*::parent::work_io::decode
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, uint8_t *const
      data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:102,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:106,1
    - Dst: proto_detail_file_thread_t*::listen::app_io::write
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - fr_listen_t *li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED
    - UNUSED*
    - UNUSED
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 3
    functionsReached:
    - proto_detail_file_thread_t*::listen::app_io::write
    - fr_assert
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(UNUSED fr_listen_t *li, UNUSED void *packet_ctx,
      UNUSED fr_time_t request_time,\n\t\t\t UNUSED uint8_t *buffer, UNUSED size_t
      buffer_len, UNUSED size_t written)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:115,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:119,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:121,1
    - Dst: FR_TIMER_DISARM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:125,1
    - Dst: work_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - li
    - uint32_t
    argTypes:
    - fr_listen_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: mod_vnode_extend
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - FR_TIMER_DISARM
    - pthread_mutex_lock
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - work_init
    linkageType: ''
    returnType: void
    signature: void mod_vnode_extend(fr_listen_t *li, UNUSED uint32_t fflags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:135,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:136,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:146,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:148,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:148,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:157,1
    - Dst: pthread_mutex_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 164
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - open
    - fr_syserror
    - talloc_get_type_abort
    - talloc_get_type_abort_const
    - cf_log_err
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:179,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:182,1
    - Dst: glob
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:183,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:185,1
    - Dst: globfree
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:187,1
    - Dst: stat
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:198,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:216,1
    - Dst: rename
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:217,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:218,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:219,1
    - Dst: globfree
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:223,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - thread
    argTypes:
    - proto_detail_file_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 229
    functionName: work_rename
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - ERROR
    - open
    - rename
    - stat
    - fr_syserror
    - glob
    - memset
    - DEBUG
    - DEBUG3
    - globfree
    linkageType: ''
    returnType: int
    signature: int work_rename(proto_detail_file_thread_t *thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:236,1
    - Dst: work_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: work_retry_timer
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - work_init
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void work_retry_timer(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t
      now, void *uctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:254,1
    - Dst: rad_lockfd_nonblock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:259,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:262,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:263,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:265,1
    - Dst: fr_time_delta_add
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:273,1
    - Dst: fr_time_delta_div
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:274,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:275,1
    - Dst: fr_time_delta_gt
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:276,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:276,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:277,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:280,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:281,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:283,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:285,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:290,1
    - Dst: fstat
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:296,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:297,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:298,1
    - Dst: unlink
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:299,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:300,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:305,1
    - Dst: unlink
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:307,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:308,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:316,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:316,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:337,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:337,1
    - Dst: dup
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:344,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:346,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:347,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:349,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:350,1
    - Dst: fr_event_filter_insert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:360,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:362,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:363,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:364,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:365,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:380,1
    - Dst: fr_listen_t*::app_io::open
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:391,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:392,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:397,1
    - Dst: fr_listen_t*::app_io::get_name
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:398,1
    - Dst: fr_schedule_listen_add
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:400,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:402,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:403,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:405,1
    - Dst: fr_listen_t*::app_io::close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:409,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:414,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:423,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:425,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 88
    argCount: 2
    argNames:
    - thread
    - fd
    argTypes:
    - proto_detail_file_thread_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 428
    functionName: work_exists
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - fr_listen_t*::app_io::close
    - talloc_strdup
    - pthread_mutex_unlock
    - fr_timer_in
    - close
    - MEM
    - rad_lockfd_nonblock
    - ERROR
    - dup
    - pthread_mutex_lock
    - fr_schedule_listen_add
    - fr_event_fd_delete
    - unlink
    - DEBUG
    - DEBUG3
    - fstat
    - fr_time_delta_unwrap
    - fr_time_delta_div
    - fr_syserror
    - fr_listen_t*::app_io::get_name
    - fr_time_delta_gt
    - fr_assert
    - fr_listen_t*::app_io::open
    - fr_event_filter_insert
    - PERROR
    - fr_time_delta_from_sec
    - fr_time_delta_wrap
    - fr_time_delta_add
    - talloc_free
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int work_exists(proto_detail_file_thread_t *thread, int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:433,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:436,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:446,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:451,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:452,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:454,1
    - Dst: work_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - el
    - fd
    - fflags
    - ctx
    argTypes:
    - fr_event_list_t*
    - int
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 465
    functionName: mod_vnode_delete
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_get_type_abort
    - fr_event_fd_delete
    - close
    - work_init
    - DEBUG
    - PERROR
    linkageType: ''
    returnType: void
    signature: void mod_vnode_delete(fr_event_list_t *el, int fd, UNUSED int fflags,
      void *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:486,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:488,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:495,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:500,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:506,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:507,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:515,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:517,1
    - Dst: work_rename
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:522,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:548,1
    - Dst: fr_exit
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:549,1
    - Dst: DEBUG3
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:555,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:557,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:558,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:560,1
    - Dst: fr_time_delta_from_msec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:565,1
    - Dst: work_exists
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:573,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - thread
    - triggered_by_delete
    argTypes:
    - proto_detail_file_thread_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 585
    functionName: work_init
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 3
    functionsReached:
    - ERROR
    - pthread_mutex_lock
    - open
    - fr_syserror
    - pthread_mutex_unlock
    - work_exists
    - work_rename
    - fr_timer_in
    - fr_assert
    - fr_time_delta_from_msec
    - fr_exit
    - DEBUG
    - DEBUG3
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void work_init(proto_detail_file_thread_t *thread, bool triggered_by_delete)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:596,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:597,1
    - Dst: work_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:602,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:613,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:614,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 594
    functionDepth: 7
    functionLinenumber: 594
    functionLinenumberEnd: 617
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - ERROR
    - talloc_get_type_abort
    - fr_timer_in
    - talloc_get_type_abort_const
    - work_init
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, UNUSED
      void *nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 625
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:641,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: _detail_file_cmp
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CMP
    linkageType: ''
    returnType: int8_t
    signature: int8_t _detail_file_cmp(void const *one, void const *two)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:649,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:671,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:672,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:688,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:690,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:692,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:695,1
    - Dst: strrchr
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:697,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:699,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:706,1
    - Dst: cf_log_warn
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:715,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:719,1
    - Dst: fr_rb_inline_talloc_alloc
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:721,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:723,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:724,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:729,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:732,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:733,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:735,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:736,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:737,1
    - Dst: cf_section_name2
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:737,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:740,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 743
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - fr_rb_inline_talloc_alloc
    - strrchr
    - talloc_strdup
    - talloc_get_type_abort
    - pthread_mutex_unlock
    - cf_section_name2
    - fr_rb_find
    - FR_INTEGER_BOUND_CHECK
    - fr_assert
    - cf_log_warn
    - fr_rb_insert
    - cf_log_err
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:748,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:749,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:752,1
    - Dst: fr_network_listen_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:752,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:753,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:762,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:766,1
    - Dst: fr_network_listen_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:766,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:767,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:770,1
    - Dst: PERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:771,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:774,1
    - Dst: pthread_mutex_destroy
      Src: /src/freeradius-server/src/listen/detail/proto_detail_file.c:778,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 746
    functionDepth: 5
    functionLinenumber: 746
    functionLinenumberEnd: 781
    functionName: mod_close
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_file.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_network_listen_delete
    - talloc_get_type_abort
    - fr_event_fd_delete
    - talloc_get_type_abort_const
    - close
    - pthread_mutex_destroy
    - PERROR
    linkageType: ''
    returnType: int
    signature: int mod_close(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:118,1
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:119,1
    - Dst: REQUEST_VERIFY
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:126,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:128,1
    - Dst: pair_update_request
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - instance
    - request
    - data
    - data_len
    argTypes:
    - void*
    - request_t*
    - UNUSED*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: mod_decode
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - pair_update_request
    - REQUEST_VERIFY
    - MEM
    - talloc_get_type_abort_const
    linkageType: ''
    returnType: int
    signature: int mod_decode(void const *instance, request_t *request, UNUSED uint8_t
      *const data, UNUSED size_t data_len)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:146,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:147,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:156,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:157,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:158,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:160,1
    - Dst: fr_dlist_head
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:166,1
    - Dst: fr_dlist_remove
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:168,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:174,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:175,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:175,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:177,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:182,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:183,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:185,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:197,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:207,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:216,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:217,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:219,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:227,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:236,1
    - Dst: read
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:246,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:248,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:249,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:253,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:258,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:265,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:266,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:271,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:276,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:291,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:293,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:325,1
    - Dst: isspace
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:351,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:367,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:368,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:392,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:396,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:410,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:422,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:431,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:433,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:436,1
    - Dst: memmove
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:438,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:451,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:474,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:479,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:488,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:488,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:490,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:495,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:495,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:514,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:516,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:523,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:529,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:538,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 198
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - recv_time_p
    - buffer
    - buffer_len
    - leftover
    argTypes:
    - fr_listen_t*
    - void**
    - fr_time_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 540
    functionName: mod_read
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_array
    - MEM
    - fr_dlist_head
    - ERROR
    - fr_time
    - read
    - memmove
    - talloc_get_type_abort
    - memcmp
    - fr_event_filter_update
    - DEBUG
    - talloc_memdup
    - fr_syserror
    - fr_assert
    - MPRINT
    - fr_dlist_remove
    - isspace
    - talloc_zero
    - talloc_get_type_abort_const
    - lseek
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mod_read(fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p,
      uint8_t *buffer, size_t buffer_len, size_t *leftover)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:545,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:548,1
    - Dst: fr_dlist_insert_tail
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:550,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:553,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:557,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:566,1
    - Dst: fr_network_listen_read
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 571
    functionName: work_retransmit
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - fr_dlist_insert_tail
    - fr_network_listen_read
    - talloc_get_type_abort
    - fr_assert
    - fr_event_filter_update
    - DEBUG
    - lseek
    linkageType: ''
    returnType: void
    signature: void work_retransmit(UNUSED fr_timer_list_t *tl, UNUSED fr_time_t now,
      void *uctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:576,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:577,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:582,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:583,1
    - Dst: fr_time_eq
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:588,1
    - Dst: fr_time_wrap
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:588,1
    - Dst: fr_retry_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:589,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:589,1
    - Dst: fr_retry_next
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:593,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:593,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:595,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:602,1
    - Dst: fr_time_delta_to_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:604,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:609,1
    - Dst: fr_time_delta_unwrap
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:610,1
    - Dst: fr_timer_at
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:612,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:614,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:621,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:633,1
    - Dst: write
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:634,1
    - Dst: ERROR
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:635,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:635,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:637,1
    - Dst: fr_event_filter_update
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:647,1
    - Dst: lseek
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:655,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:661,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:668,1
    - Dst: MPRINT
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:673,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 6
    argNames:
    - li
    - packet_ctx
    - request_time
    - buffer
    - buffer_len
    - written
    argTypes:
    - fr_listen_t*
    - void*
    - UNUSED
    - uint8_t*
    - size_t
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 675
    functionName: mod_write
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 3
    functionsReached:
    - fr_time_delta_to_sec
    - write
    - ERROR
    - fr_time
    - talloc_get_type_abort
    - fr_event_filter_update
    - DEBUG
    - fr_time_delta_unwrap
    - fr_syserror
    - fr_retry_init
    - fr_assert
    - MPRINT
    - fr_time_wrap
    - talloc_free
    - fr_time_eq
    - fr_retry_next
    - fr_timer_at
    - talloc_get_type_abort_const
    - lseek
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t mod_write(fr_listen_t *li, void *packet_ctx, UNUSED fr_time_t
      request_time,\n\t\t\t uint8_t *buffer, size_t buffer_len, UNUSED size_t written)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:682,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:683,1
    - Dst: fr_dlist_init
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:685,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:691,1
    - Dst: open
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:693,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:695,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:695,1
    - Dst: fstat
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:706,1
    - Dst: cf_log_err
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:707,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:707,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:719,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:720,1
    - Dst: talloc_typed_asprintf
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 736
    functionName: mod_open
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - fstat
    - open
    - fr_syserror
    - talloc_strdup
    - fr_dlist_init
    - talloc_get_type_abort
    - fr_assert
    - talloc_get_type_abort_const
    - cf_log_err
    - talloc_typed_asprintf
    linkageType: ''
    returnType: int
    signature: int mod_open(fr_listen_t *li)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort_const
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:741,1
    - Dst: pthread_mutex_lock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:749,1
    - Dst: pthread_mutex_unlock
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:751,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:754,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:757,1
    - Dst: fr_event_fd_delete
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:759,1
    - Dst: unlink
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:761,1
    - Dst: close
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:763,1
    - Dst: INFO
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:767,1
    - Dst: main_loop_signal_raise
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - thread
    argTypes:
    - proto_detail_work_thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 739
    functionDepth: 5
    functionLinenumber: 739
    functionLinenumberEnd: 778
    functionName: mod_close_internal
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - INFO
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - fr_event_fd_delete
    - talloc_get_type_abort_const
    - close
    - unlink
    - main_loop_signal_raise
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int mod_close_internal(proto_detail_work_thread_t *thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:786,1
    - Dst: mod_close_internal
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 6
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: mod_close
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - mod_close_internal
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int mod_close(fr_listen_t *li)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:794,1
    - Dst: DEBUG
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:800,1
    - Dst: mod_close_internal
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - UNUSED
    - UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 792
    functionDepth: 6
    functionLinenumber: 792
    functionLinenumberEnd: 802
    functionName: mod_revoke
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - DEBUG
    - talloc_get_type_abort
    - mod_close_internal
    linkageType: ''
    returnType: void
    signature: void mod_revoke(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int
      flags, void *uctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:814,1
    - Dst: memset
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:819,1
    - Dst: fr_event_filter_insert
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:822,1
    - Dst: WARN
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - li
    - el
    - nr
    argTypes:
    - fr_listen_t*
    - fr_event_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 829
    functionName: mod_event_list_set
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - memset
    - talloc_get_type_abort
    - WARN
    - fr_event_filter_insert
    linkageType: ''
    returnType: void
    signature: void mod_event_list_set(fr_listen_t *li, fr_event_list_t *el, void
      *nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - li
    argTypes:
    - fr_listen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: mod_name
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: char
    signature: char *mod_name(fr_listen_t *li)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:841,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:846,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:856,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:856,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:857,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:857,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:863,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:864,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:864,1
    - Dst: FR_TIME_DELTA_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:869,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:869,1
    - Dst: FR_INTEGER_BOUND_CHECK
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:872,1
    - Dst: MEM
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:874,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:874,1
    - Dst: htonl
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:877,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/listen/detail/proto_detail_work.c:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - module_inst_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 884
    functionName: mod_instantiate
    functionSourceFile: /src/freeradius-server/src/listen/detail/proto_detail_work.c
    functionUses: 0
    functionsReached:
    - htonl
    - talloc_strdup
    - talloc_get_type_abort
    - FR_INTEGER_BOUND_CHECK
    - talloc_zero
    - FR_TIME_DELTA_BOUND_CHECK
    - MEM
    - fr_time_delta_from_sec
    linkageType: ''
    returnType: int
    signature: int mod_instantiate(module_inst_ctx_t const *mctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: decode_tlv_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_tlvs_from_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_tlv_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \    fr_dict_attr_t const *parent,\n\t\t\t\t     uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dns/decode.c:56,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:59,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dns/decode.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: decode_value_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dns_labels_from_network
    - fr_dns_flag_dns_label
    - decode_value
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \      fr_dict_attr_t const *parent,\n\t\t\t\t       uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:73,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:82,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dns/decode.c:85,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dns/decode.c:87,1
    - Dst: fr_value_box_ipaddr_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:92,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dns/decode.c:95,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dns/decode.c:107,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dns/decode.c:109,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:115,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dns/decode.c:124,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dns/decode.c:126,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:128,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:129,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/decode.c:130,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dns/decode.c:131,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dns/decode.c:138,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 140
    functionName: decode_value
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 3
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - fr_value_box_from_network
    - talloc_free
    - FR_PROTO_TRACE
    - fr_pair_raw_from_network
    - fr_pair_append
    - fr_struct_from_network
    - fr_value_box_ipaddr_from_network
    - FR_DBUFF_TMP
    - PAIR_ALLOCED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t    uint8_t const *data, size_t const
      data_len, void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: DNS_GET_OPTION_NUM
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DNS_GET_OPTION_NUM(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: DNS_GET_OPTION_LEN
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DNS_GET_OPTION_LEN(_x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:164,1
    - Dst: DNS_GET_OPTION_NUM
      Src: /src/freeradius-server/src/protocols/dns/decode.c:168,1
    - Dst: DNS_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dns/decode.c:169,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:171,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:177,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/dns/decode.c:179,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/dns/decode.c:181,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/decode.c:184,1
    - Dst: fr_dns_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dns/decode.c:186,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:187,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dns/decode.c:190,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/protocols/dns/decode.c:192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 197
    functionName: decode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dns_labels_from_network
    - DNS_GET_OPTION_NUM
    - FR_PROTO_HEX_DUMP
    - decode_value
    - FR_PROTO_TRACE
    - fr_dict_attr_unknown_free
    - fr_strerror_printf
    - fr_dns_flag_dns_label
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    - DNS_GET_OPTION_LEN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \     fr_dict_attr_t const *parent,\n\t\t\t      uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/decode.c:209,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/decode.c:210,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:216,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:218,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/decode.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - ctx
    - out
    - attr
    - rr
    - end
    - packet_ctx
    - counter
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - uint8_t*
    - fr_dns_ctx_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 229
    functionName: decode_record
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - fr_struct_from_network
    - fr_assert
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_record(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *attr,\n\t\t\t     uint8_t const *rr, uint8_t const *end,\n\t\t\t     fr_dns_ctx_t
      *packet_ctx, uint8_t const *counter)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:245,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:250,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:253,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/dns/decode.c:253,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/decode.c:256,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:260,1
    - Dst: decode_record
      Src: /src/freeradius-server/src/protocols/dns/decode.c:262,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:264,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/dns/decode.c:264,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:269,1
    - Dst: decode_record
      Src: /src/freeradius-server/src/protocols/dns/decode.c:271,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:273,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/dns/decode.c:273,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:278,1
    - Dst: decode_record
      Src: /src/freeradius-server/src/protocols/dns/decode.c:280,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:282,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/dns/decode.c:282,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:287,1
    - Dst: decode_record
      Src: /src/freeradius-server/src/protocols/dns/decode.c:289,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:291,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/dns/decode.c:291,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 5
    argNames:
    - ctx
    - out
    - packet
    - packet_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - fr_dns_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 234
    functionDepth: 7
    functionLinenumber: 234
    functionLinenumberEnd: 300
    functionName: fr_dns_decode
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 1
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - fr_strerror_printf
    - decode_record
    - fr_struct_from_network
    - fr_assert
    - fr_strerror
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t
      const *packet, size_t packet_len, fr_dns_ctx_t *packet_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/decode.c:317,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/decode.c:327,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:333,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/dns/decode.c:337,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/decode.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - UNUSED*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 311
    functionDepth: 6
    functionLinenumber: 311
    functionLinenumberEnd: 343
    functionName: decode_rr
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - FR_PROTO_HEX_DUMP
    - fr_struct_from_network
    - FR_PROTO_TRACE
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_rr(TALLOC_CTX *ctx, fr_pair_list_t *out, UNUSED fr_dict_attr_t
      const *parent,\n\t\t\t uint8_t const *data, size_t data_len, void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dns/decode.c:353,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dns/decode.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 359
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_packet_ok
      Src: /src/freeradius-server/src/protocols/dns/decode.c:401,1
    - Dst: fr_dns_packet_ok
      Src: /src/freeradius-server/src/protocols/dns/decode.c:404,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/decode.c:406,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/dns/decode.c:407,1
    - Dst: fr_dns_labels_get
      Src: /src/freeradius-server/src/protocols/dns/decode.c:414,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/decode.c:415,1
    - Dst: fr_dns_decode
      Src: /src/freeradius-server/src/protocols/dns/decode.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 391
    functionDepth: 8
    functionLinenumber: 391
    functionLinenumberEnd: 418
    functionName: decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/dns/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_dns_decode
    - fr_dns_packet_ok
    - fr_table_str_by_value
    - fr_assert
    - fr_dns_labels_get
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t
      const *data, size_t data_len, void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: FR_DNS_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/dns/dns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DNS_PACKET_CODE_VALID(_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/dns/dns.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: fr_dns_attr_flags
    functionSourceFile: /src/freeradius-server/src/protocols/dns/dns.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_dns_attr_flags_t
    signature: fr_dns_attr_flags_t *fr_dns_attr_flags(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_attr_flags
      Src: /src/freeradius-server/src/protocols/dns/dns.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: fr_dns_flag_dns_label_any
    functionSourceFile: /src/freeradius-server/src/protocols/dns/dns.h
    functionUses: 0
    functionsReached:
    - fr_dns_attr_flags
    linkageType: ''
    returnType: bool
    signature: bool fr_dns_flag_dns_label_any(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: fr_dns_flag_dns_label
    functionSourceFile: /src/freeradius-server/src/protocols/dns/dns.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dns_flag_dns_label(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: fr_dns_flag_dns_label_uncompressed
    functionSourceFile: /src/freeradius-server/src/protocols/dns/dns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dns_flag_dns_label_uncompressed(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dns/encode.c:71,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dns/encode.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - option
    - data_len
    argTypes:
    - fr_dbuff_marker_t*
    - uint16_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: encode_option_hdr
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 0
    functionsReached:
    - FR_DBUFF_IN_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_option_hdr(fr_dbuff_marker_t *m, uint16_t option, size_t
      data_len)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dns/encode.c:83,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:84,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dns/encode.c:88,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dns/encode.c:89,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/dns/encode.c:97,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:99,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dns/encode.c:105,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:106,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:107,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:114,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:120,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:121,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:122,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/encode.c:129,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/encode.c:134,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/encode.c:143,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dns/encode.c:144,1
    - Dst: fr_dns_flag_dns_label_any
      Src: /src/freeradius-server/src/protocols/dns/encode.c:151,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/encode.c:152,1
    - Dst: fr_dns_label_from_value_box_dbuff
      Src: /src/freeradius-server/src/protocols/dns/encode.c:153,1
    - Dst: fr_dns_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dns/encode.c:153,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dns/encode.c:164,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dns/encode.c:168,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dns/encode.c:172,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dns/encode.c:195,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dns/encode.c:196,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:201,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dns/encode.c:209,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:210,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/encode.c:212,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dns/encode.c:212,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:212,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:214,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 215
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 5
    functionsReached:
    - fr_dcursor_current
    - memcpy
    - fr_strerror_printf
    - fr_dbuff_start
    - FR_PROTO_STACK_PRINT
    - fr_dns_flag_dns_label_any
    - FR_DBUFF
    - fr_type_to_str
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - fr_pair_dcursor_child_iter_init
    - fr_dbuff_used
    - fr_strerror_const
    - fr_dns_flag_dns_label
    - fr_dns_label_from_value_box_dbuff
    - fr_value_box_to_network
    - fr_dbuff_set
    - FR_PROTO_TRACE
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - fr_struct_to_network
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_value(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:222,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dns/encode.c:234,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dns/encode.c:241,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/encode.c:245,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/dns/encode.c:245,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/dns/encode.c:247,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dns/encode.c:248,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:250,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:251,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dns/encode.c:255,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dns/encode.c:259,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dns/encode.c:269,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:270,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:272,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 273
    functionName: encode_child
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - encode_tlv
    - fr_dcursor_next
    - fr_type_is_structural
    - encode_rfc
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - fr_assert
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_child(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dns/encode.c:285,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dns/encode.c:290,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dns/encode.c:291,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/protocols/dns/encode.c:296,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dns/encode.c:297,1
    - Dst: fr_pair_array_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:303,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/dns/encode.c:305,1
    - Dst: encode_option_hdr
      Src: /src/freeradius-server/src/protocols/dns/encode.c:312,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:312,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/encode.c:314,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dns/encode.c:314,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:314,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 317
    functionName: encode_rfc
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 4
    functionsReached:
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_marker
    - encode_option_hdr
    - fr_dbuff_start
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - encode_value
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - fr_pair_array_to_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_rfc(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dns/encode.c:323,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dns/encode.c:328,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dns/encode.c:329,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:329,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dns/encode.c:330,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/encode.c:333,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dns/encode.c:334,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/encode.c:339,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dns/encode.c:340,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/dns/encode.c:344,1
    - Dst: fr_pair_cursor_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:346,1
    - Dst: encode_option_hdr
      Src: /src/freeradius-server/src/protocols/dns/encode.c:356,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:356,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/encode.c:358,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dns/encode.c:358,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:358,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 361
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 8
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_ADVANCE_RETURN
    - fr_strerror_printf
    - fr_dbuff_marker
    - encode_option_hdr
    - fr_dbuff_start
    - fr_pair_cursor_to_network
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/dns/encode.c:382,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:384,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dns/encode.c:385,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/encode.c:387,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/dns/encode.c:387,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:389,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/encode.c:392,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/dns/encode.c:394,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:396,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dns/encode.c:398,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/encode.c:400,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:400,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dns/encode.c:401,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dns/encode.c:401,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:401,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 404
    functionName: fr_dns_encode_rr
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - FR_PROTO_TRACE
    - fr_dbuff_start
    - fr_dbuff_remaining
    - fr_proto_da_stack_build
    - fr_pair_dcursor_child_iter_init
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - fr_dbuff_used
    - fr_struct_to_network
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_encode_rr(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, void
      *encode_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dns/encode.c:411,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/protocols/dns/encode.c:414,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/encode.c:416,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:421,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/dns/encode.c:428,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:429,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dns/encode.c:433,1
    - Dst: fr_nbo_from_uint16
      Src: /src/freeradius-server/src/protocols/dns/encode.c:437,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dns/encode.c:438,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - dbuff
    - da_stack
    - vps
    - attr
    - packet_ctx
    - counter
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dns_ctx_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 441
    functionName: encode_record
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - fr_pair_dcursor_init
    - fr_pair_dcursor_by_da_init
    - fr_dcursor_next
    - FR_PROTO_TRACE
    - fr_nbo_from_uint16
    - fr_proto_da_stack_build
    - FR_DBUFF
    - fr_struct_to_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_record(fr_dbuff_t *dbuff, fr_da_stack_t *da_stack,
      fr_pair_list_t *vps,\n\t\t\t     fr_dict_attr_t const *attr, fr_dns_ctx_t *packet_ctx,
      uint8_t *counter)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dns/encode.c:448,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/dns/encode.c:455,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/encode.c:456,1
    - Dst: fr_pair_dcursor_by_da_init
      Src: /src/freeradius-server/src/protocols/dns/encode.c:461,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/protocols/dns/encode.c:463,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dns/encode.c:465,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dns/encode.c:472,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dns/encode.c:474,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/encode.c:477,1
    - Dst: encode_record
      Src: /src/freeradius-server/src/protocols/dns/encode.c:482,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/dns/encode.c:483,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:483,1
    - Dst: encode_record
      Src: /src/freeradius-server/src/protocols/dns/encode.c:488,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/dns/encode.c:489,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:489,1
    - Dst: encode_record
      Src: /src/freeradius-server/src/protocols/dns/encode.c:494,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/dns/encode.c:495,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:495,1
    - Dst: encode_record
      Src: /src/freeradius-server/src/protocols/dns/encode.c:500,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/dns/encode.c:501,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dns/encode.c:501,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dns/encode.c:503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - dbuff
    - vps
    - packet_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    - fr_dns_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 446
    functionDepth: 7
    functionLinenumber: 446
    functionLinenumberEnd: 504
    functionName: fr_dns_encode
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 1
    functionsReached:
    - encode_record
    - FR_DBUFF_ERROR_OFFSET
    - fr_dbuff_current
    - fr_pair_dcursor_by_da_init
    - fr_pair_list_log
    - fr_dbuff_set
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - fr_assert
    - FR_DBUFF
    - fr_struct_to_network
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_encode(fr_dbuff_t *dbuff, fr_pair_list_t *vps, fr_dns_ctx_t
      *packet_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dns/encode.c:511,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dns/encode.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 519
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dns_labels_get
      Src: /src/freeradius-server/src/protocols/dns/encode.c:528,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/encode.c:529,1
    - Dst: fr_dns_encode
      Src: /src/freeradius-server/src/protocols/dns/encode.c:531,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dns/encode.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 521
    functionDepth: 8
    functionLinenumber: 521
    functionLinenumberEnd: 542
    functionName: fr_dns_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/dns/encode.c
    functionUses: 0
    functionsReached:
    - fr_dns_labels_get
    - fr_assert
    - FR_DBUFF_TMP
    - fr_dns_encode
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dns_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _reason
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: DECODE_FAIL
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_FAIL(_reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:93,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:97,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p
    - end
    - reason
    argTypes:
    - uint8_t*
    - uint8_t*
    - fr_dns_decode_fail_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 107
    functionName: fr_dns_tlv_ok
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 0
    functionsReached:
    - DECODE_FAIL
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: bool
    signature: bool fr_dns_tlv_ok(uint8_t const *p, uint8_t const *end, fr_dns_decode_fail_t
      *reason)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:116,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:121,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:129,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:139,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:142,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:146,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:170,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:174,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:175,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:179,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:180,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:192,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:192,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:192,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:192,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/dns/base.c:208,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:216,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:222,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:265,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:276,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:284,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:289,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:304,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:312,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:321,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:342,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:359,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:369,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dns/base.c:376,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:378,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:384,1
    - Dst: fr_dns_tlv_ok
      Src: /src/freeradius-server/src/protocols/dns/base.c:391,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:401,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:407,1
    - Dst: DECODE_FAIL
      Src: /src/freeradius-server/src/protocols/dns/base.c:416,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 145
    argCount: 4
    argNames:
    - packet
    - packet_len
    - query
    - reason
    argTypes:
    - uint8_t*
    - size_t
    - bool
    - fr_dns_decode_fail_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 418
    functionName: fr_dns_packet_ok
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 2
    functionsReached:
    - DECODE_FAIL
    - memset
    - fr_dns_tlv_ok
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: bool
    signature: bool fr_dns_packet_ok(uint8_t const *packet, size_t packet_len, bool
      query, fr_dns_decode_fail_t *reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/base.c:436,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/dns/base.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - packet
    - packet_len
    - init_mark
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 441
    functionName: fr_dns_labels_get
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 4
    functionsReached:
    - memset
    - fr_assert
    linkageType: ''
    returnType: fr_dns_labels_t
    signature: fr_dns_labels_t *fr_dns_labels_get(uint8_t const *packet, size_t packet_len,
      bool init_mark)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/dns/base.c:458,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/dns/base.c:463,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/dns/base.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 449
    functionDepth: 8
    functionLinenumber: 449
    functionLinenumberEnd: 470
    functionName: fr_dns_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_dns_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dns/base.c:476,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/dns/base.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: fr_dns_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_dns_global_free(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dns/base.c:487,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dns/base.c:492,1
    - Dst: fr_dns_flag_dns_label_any
      Src: /src/freeradius-server/src/protocols/dns/base.c:496,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dns/base.c:498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 484
    functionDepth: 4
    functionLinenumber: 484
    functionLinenumberEnd: 514
    functionName: attr_valid
    functionSourceFile: /src/freeradius-server/src/protocols/dns/base.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_dns_flag_dns_label_any
    linkageType: ''
    returnType: bool
    signature: bool attr_valid(fr_dict_attr_t *da)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:83,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:92,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:93,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:97,1
    - Dst: isalnum
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:115,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:116,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:121,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:124,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:128,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:131,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:132,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:136,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:139,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:143,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:146,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:149,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:153,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:157,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:168,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:176,1
    - Dst: strtol
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:179,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:184,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:189,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:204,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:207,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:209,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:226,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:229,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:230,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:246,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:249,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:251,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:254,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:257,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:260,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:261,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:266,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 147
    argCount: 4
    argNames:
    - ctx
    - out
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 272
    functionName: fr_tftp_decode
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_value_bstrndup
    - fr_strerror_printf
    - fr_pair_append
    - memchr
    - strtol
    - fr_pair_value_memdup
    - memcmp
    - fr_nbo_to_uint16
    - isalnum
    linkageType: ''
    returnType: int
    signature: int fr_tftp_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const
      *data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tftp_decode
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: fr_tftp_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/decode.c
    functionUses: 0
    functionsReached:
    - fr_tftp_decode
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_tftp_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \   uint8_t const *data, size_t data_len, UNUSED void *proto_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tftp_global_free
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fr_tftp_ctx_t *proto_ctx
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: _decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/decode.c
    functionUses: 0
    functionsReached:
    - fr_tftp_global_free
    linkageType: ''
    returnType: int
    signature: int _decode_test_ctx(UNUSED fr_tftp_ctx_t *proto_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tftp_global_init
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:302,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:304,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/tftp/decode.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/decode.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_zero
    - fr_tftp_global_init
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:77,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:82,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:84,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:89,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:103,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:105,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:109,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:110,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:113,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:115,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:123,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:127,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:128,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:131,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:135,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:136,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:138,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:139,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:139,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:140,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:156,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:158,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:162,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:176,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:178,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:182,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:201,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:203,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:208,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:211,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:217,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:220,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:221,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:226,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:231,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:233,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 91
    argCount: 2
    argNames:
    - dbuff
    - vps
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 234
    functionName: fr_tftp_encode
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_in
    - fr_strerror_printf
    - snprintf
    - fr_dbuff_used
    - strlen
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_pair_find_by_da
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_tftp_encode(fr_dbuff_t *dbuff, fr_pair_list_t *vps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tftp_encode
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:247,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: fr_tftp_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/encode.c
    functionUses: 0
    functionsReached:
    - fr_tftp_encode
    - FR_DBUFF_TMP
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_tftp_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_tftp_global_free
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fr_tftp_ctx_t *proto_ctx
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: _encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/encode.c
    functionUses: 0
    functionsReached:
    - fr_tftp_global_free
    linkageType: ''
    returnType: int
    signature: int _encode_test_ctx(UNUSED fr_tftp_ctx_t *proto_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tftp_global_init
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:262,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:264,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/tftp/encode.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/encode.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_zero
    - fr_tftp_global_init
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/tftp/base.c:99,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/tftp/base.c:105,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/tftp/base.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 90
    functionDepth: 8
    functionLinenumber: 90
    functionLinenumberEnd: 112
    functionName: fr_tftp_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/base.c
    functionUses: 2
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_tftp_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tftp/base.c:116,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/tftp/base.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: fr_tftp_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/tftp/base.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_tftp_global_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/internal/decode.c:46,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/internal/decode.c:48,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/internal/decode.c:50,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/internal/decode.c:55,1
    - Dst: fr_dbuff_len
      Src: /src/freeradius-server/src/protocols/internal/decode.c:56,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/internal/decode.c:58,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/internal/decode.c:61,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/decode.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - ctx
    - head
    - parent_da
    - dbuff
    - tainted
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - bool
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 64
    functionName: internal_decode_pair_value
    functionSourceFile: /src/freeradius-server/src/protocols/internal/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_dbuff_set
    - fr_value_box_from_network
    - talloc_free
    - fr_dbuff_len
    - fr_pair_append
    - FR_DBUFF
    - PAIR_ALLOCED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t internal_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t
      *head, fr_dict_attr_t const *parent_da,\n\t\t\t\t\t  fr_dbuff_t *dbuff,\n\t\t\t\t\t
      \ bool tainted, UNUSED void *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/internal/decode.c:74,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/internal/decode.c:76,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/internal/decode.c:78,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/internal/decode.c:80,1
    - Dst: fr_dbuff_extend
      Src: /src/freeradius-server/src/protocols/internal/decode.c:85,1
    - Dst: FR_PROTO_HEX_MARKER
      Src: /src/freeradius-server/src/protocols/internal/decode.c:86,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/internal/decode.c:86,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/internal/decode.c:86,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/internal/decode.c:86,1
    - Dst: internal_decode_pair
      Src: /src/freeradius-server/src/protocols/internal/decode.c:89,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/internal/decode.c:91,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/internal/decode.c:95,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/decode.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - head
    - parent_da
    - dbuff
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: internal_decode_structural
    functionSourceFile: /src/freeradius-server/src/protocols/internal/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_dbuff_set
    - fr_dbuff_extend
    - fr_dbuff_current
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_dbuff_used
    - FR_PROTO_HEX_MARKER
    - FR_DBUFF
    - PAIR_ALLOCED
    - internal_decode_pair
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t internal_decode_structural(TALLOC_CTX *ctx, fr_pair_list_t
      *head, fr_dict_attr_t const *parent_da,\n\t\t\t\t\t  fr_dbuff_t *dbuff, void
      *decode_ctx)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/internal/decode.c:110,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/internal/decode.c:129,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/decode.c:131,1
    - Dst: fr_dbuff_len
      Src: /src/freeradius-server/src/protocols/internal/decode.c:133,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/internal/decode.c:136,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/internal/decode.c:137,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/internal/decode.c:138,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/internal/decode.c:148,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/decode.c:150,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/decode.c:176,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/internal/decode.c:177,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/decode.c:181,1
    - Dst: FR_DBUFF_OUT_UINT64V_RETURN
      Src: /src/freeradius-server/src/protocols/internal/decode.c:186,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/internal/decode.c:192,1
    - Dst: FR_DBUFF_OUT_UINT64V_RETURN
      Src: /src/freeradius-server/src/protocols/internal/decode.c:193,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/internal/decode.c:195,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/decode.c:197,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/internal/decode.c:200,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/internal/decode.c:200,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/decode.c:209,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/internal/decode.c:212,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/protocols/internal/decode.c:212,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/internal/decode.c:217,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/internal/decode.c:218,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/internal/decode.c:222,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/internal/decode.c:226,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/internal/decode.c:232,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/internal/decode.c:232,1
    - Dst: fr_type_is_vsa
      Src: /src/freeradius-server/src/protocols/internal/decode.c:243,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/internal/decode.c:244,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/decode.c:245,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/internal/decode.c:246,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/decode.c:247,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/protocols/internal/decode.c:249,1
    - Dst: fr_pair_decode_slen
      Src: /src/freeradius-server/src/protocols/internal/decode.c:250,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/internal/decode.c:250,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/internal/decode.c:250,1
    - Dst: internal_decode_structural
      Src: /src/freeradius-server/src/protocols/internal/decode.c:258,1
    - Dst: internal_decode_pair_value
      Src: /src/freeradius-server/src/protocols/internal/decode.c:267,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/decode.c:271,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 5
    argNames:
    - ctx
    - out
    - parent_da
    - dbuff
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 272
    functionName: internal_decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/internal/decode.c
    functionUses: 1
    functionsReached:
    - fr_type_is_vsa
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_start
    - internal_decode_structural
    - FR_DBUFF_OUT_UINT64V_RETURN
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_type_to_str
    - unlikely
    - fr_dbuff_extend_lowat
    - fr_dict_attr_unknown_free
    - fr_dbuff_len
    - internal_decode_pair_value
    - fr_dbuff_current
    - fr_dbuff_set
    - FR_PROTO_TRACE
    - fr_dict_internal
    - fr_dict_attr_child_by_num
    - fr_pair_decode_slen
    - fr_dict_root
    - fr_dbuff_set_end
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t internal_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent_da,\n\t\t\t\t    fr_dbuff_t *dbuff, void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_internal_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/internal/decode.c:280,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/internal/decode.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - list
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: fr_internal_decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/internal/decode.c
    functionUses: 0
    functionsReached:
    - fr_internal_decode_pair_dbuff
    - FR_DBUFF_TMP
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_internal_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *list,
      fr_dict_attr_t const *parent,\n\t\t\t\tuint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/internal/decode.c:288,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/internal/decode.c:290,1
    - Dst: internal_decode_pair
      Src: /src/freeradius-server/src/protocols/internal/decode.c:292,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/internal/decode.c:294,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/internal/decode.c:298,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/decode.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - dbuff
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 6
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: fr_internal_decode_pair_dbuff
    functionSourceFile: /src/freeradius-server/src/protocols/internal/decode.c
    functionUses: 2
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_list_init
    - internal_decode_pair
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_internal_decode_pair_dbuff(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\tfr_dbuff_t *dbuff, void *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/internal/decode.c:319,1
    - Dst: fr_internal_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/internal/decode.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - dbuff
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 7
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: fr_internal_decode_list_dbuff
    functionSourceFile: /src/freeradius-server/src/protocols/internal/decode.c
    functionUses: 4
    functionsReached:
    - fr_internal_decode_pair_dbuff
    - fr_dbuff_remaining
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_internal_decode_list_dbuff(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t  fr_dbuff_t *dbuff, void *decode_ctx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/internal/encode.c:56,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/internal/encode.c:60,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/internal/encode.c:77,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/internal/encode.c:81,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/internal/encode.c:83,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/internal/encode.c:88,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/internal/encode.c:112,1
    - Dst: fr_dict_internal
      Src: /src/freeradius-server/src/protocols/internal/encode.c:112,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/internal/encode.c:114,1
    - Dst: fr_dbuff_in_uint64v
      Src: /src/freeradius-server/src/protocols/internal/encode.c:123,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/internal/encode.c:131,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/internal/encode.c:132,1
    - Dst: FR_DBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/protocols/internal/encode.c:139,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/internal/encode.c:140,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/internal/encode.c:144,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/internal/encode.c:146,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/internal/encode.c:185,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/internal/encode.c:187,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/internal/encode.c:189,1
    - Dst: fr_proto_da_stack_build_partial
      Src: /src/freeradius-server/src/protocols/internal/encode.c:191,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/internal/encode.c:192,1
    - Dst: internal_encode
      Src: /src/freeradius-server/src/protocols/internal/encode.c:194,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/internal/encode.c:197,1
    - Dst: internal_encode
      Src: /src/freeradius-server/src/protocols/internal/encode.c:204,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/internal/encode.c:221,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/internal/encode.c:223,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/internal/encode.c:224,1
    - Dst: fr_internal_encode_pair
      Src: /src/freeradius-server/src/protocols/internal/encode.c:226,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/internal/encode.c:229,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/internal/encode.c:234,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/internal/encode.c:235,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/internal/encode.c:246,1
    - Dst: fr_nbo_from_uint64v
      Src: /src/freeradius-server/src/protocols/internal/encode.c:247,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/internal/encode.c:253,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/protocols/internal/encode.c:254,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/protocols/internal/encode.c:255,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/internal/encode.c:259,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/internal/encode.c:261,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/internal/encode.c:263,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/internal/encode.c:263,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/internal/encode.c:263,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/internal/encode.c:265,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/internal/encode.c:265,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/internal/encode.c:266,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/internal/encode.c:268,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 269
    functionName: internal_encode
    functionSourceFile: /src/freeradius-server/src/protocols/internal/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_init
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_start
    - FR_PROTO_STACK_PRINT
    - internal_encode
    - FR_DBUFF
    - fr_type_to_str
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_ADVANCE_RETURN
    - fr_dcursor_next
    - fr_nbo_from_uint64v
    - fr_dbuff_in_uint64v
    - fr_dbuff_used
    - fr_dbuff_advance
    - fr_proto_da_stack_build_partial
    - FR_DBUFF_IN_BYTES_RETURN
    - FR_DBUFF_IN_RETURN
    - FR_DBUFF_BIND_CURRENT
    - fr_dbuff_set_to_start
    - fr_value_box_to_network
    - fr_dbuff_set
    - fr_internal_encode_pair
    - FR_PROTO_TRACE
    - fr_dict_internal
    - fr_dbuff_move
    - fr_dict_root
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t internal_encode(fr_dbuff_t *dbuff,\n\t\t\t       fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t       fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/internal/encode.c:286,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/internal/encode.c:289,1
    - Dst: internal_encode
      Src: /src/freeradius-server/src/protocols/internal/encode.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: fr_internal_encode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/internal/encode.c
    functionUses: 2
    functionsReached:
    - fr_proto_da_stack_build
    - fr_dcursor_current
    - internal_encode
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_internal_encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      void *encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/internal/encode.c:310,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/internal/encode.c:312,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/internal/encode.c:313,1
    - Dst: internal_encode
      Src: /src/freeradius-server/src/protocols/internal/encode.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dbuff
    - list
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 320
    functionName: fr_internal_encode_list
    functionSourceFile: /src/freeradius-server/src/protocols/internal/encode.c
    functionUses: 8
    functionsReached:
    - fr_proto_da_stack_build
    - fr_dcursor_current
    - internal_encode
    - fr_pair_dcursor_init
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_internal_encode_list(fr_dbuff_t *dbuff, fr_pair_list_t const
      *list, void *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: decode_tlv_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_tlvs_from_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_tlv_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \    fr_dict_attr_t const *parent,\n\t\t\t\t     uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_flag_any_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:61,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:62,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: decode_value_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dns_labels_from_network
    - fr_dhcpv6_flag_any_dns_label
    - decode_value
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \      fr_dict_attr_t const *parent,\n\t\t\t\t       uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:77,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:90,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:92,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:94,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:96,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:97,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:99,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:104,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:113,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:117,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:119,1
    - Dst: fr_value_box_ipaddr_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:121,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:136,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:138,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:152,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:154,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:156,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:157,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:159,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:162,1
    - Dst: fr_time_delta_from_sec
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:162,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:166,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:174,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:176,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:178,1
    - Dst: fr_dict_protocol
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:182,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:183,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:187,1
    - Dst: fr_dict_protocol_t*::decode
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:191,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:197,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:203,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:207,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:211,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:213,1
    - Dst: fr_value_box_ipaddr_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:215,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:222,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:224,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:226,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:227,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:236,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:240,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:243,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 132
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 248
    functionName: decode_value
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 5
    functionsReached:
    - fr_unix_time_add
    - FR_DBUFF_TMP
    - FR_PROTO_HEX_DUMP
    - fr_pair_append
    - fr_dict_protocol_t*::decode
    - PAIR_ALLOCED
    - fr_pair_afrom_da
    - fr_struct_from_network
    - fr_value_box_ipaddr_from_network
    - fr_assert
    - fr_dict_protocol
    - fr_time_delta_from_sec
    - TALLOC_FREE
    - fr_value_box_from_network
    - talloc_free
    - fr_pair_raw_from_network
    - fr_pair_tlvs_from_network
    - fr_dict_attr_ref
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t    uint8_t const *data, size_t const
      data_len, void *decode_ctx)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:269,1
    - Dst: DHCPV6_GET_OPTION_NUM
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:273,1
    - Dst: DHCPV6_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:274,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:276,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:282,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:284,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:287,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:296,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:298,1
    - Dst: fr_dhcpv6_decode
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:300,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:302,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:304,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:309,1
    - Dst: fr_dhcpv6_flag_any_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:311,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:312,1
    - Dst: fr_pair_array_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:316,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:332,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:341,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:345,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:350,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:352,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:354,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:360,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:363,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:365,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:370,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:371,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:375,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:376,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:377,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:384,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:385,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:386,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:389,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:392,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 398
    functionName: decode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dns_labels_from_network
    - decode_value
    - fr_strerror_printf
    - fr_pair_array_from_network
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_pair_list_free
    - fr_pair_append
    - fr_dhcpv6_flag_any_dns_label
    - fr_nbo_to_uint32
    - fr_dhcpv6_decode
    - fr_dict_attr_unknown_vendor_afrom_num
    - PAIR_ALLOCED
    - fr_pair_list_init
    - fr_pair_afrom_da
    - DHCPV6_GET_OPTION_LEN
    - DHCPV6_GET_OPTION_NUM
    - fr_pair_list_append
    - fr_pair_find_by_da
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_raw_from_network
    - fr_pair_tlvs_from_network
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \     fr_dict_attr_t const *parent,\n\t\t\t      uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:412,1
    - Dst: decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:421,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 422
    functionName: fr_dhcpv6_decode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - fr_dict_root
    - decode_option
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dhcpv6_decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\tuint8_t
      const *data, size_t data_len, void *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:432,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:434,1
    - Dst: fr_dhcpv6_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:440,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:442,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:450,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:451,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:456,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - out
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 461
    functionName: fr_dhcpv6_decode_foreign
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_cond_assert
    - fr_dhcpv6_decode_option
    - talloc
    - fr_assert
    - talloc_free_children
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dhcpv6_decode_foreign(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      uint8_t const *data, size_t data_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:468,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 476
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_ok
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:483,1
    - Dst: fr_dhcpv6_decode
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 486
    functionName: fr_dhcpv6_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv6_ok
    - fr_dhcpv6_decode
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,
      uint8_t const *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:492,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:492,1
    - Dst: decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:494,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/decode.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - NDEBUG_UNUSED*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/decode.c
    functionUses: 10
    functionsReached:
    - fr_assert
    - fr_dict_root
    - decode_option
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, NDEBUG_UNUSED
      fr_dict_attr_t const *parent,\n\t\t\t   uint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:72,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - option
    - data_len
    argTypes:
    - fr_dbuff_marker_t*
    - uint16_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: encode_option_hdr
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 2
    functionsReached:
    - FR_DBUFF_IN_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_option_hdr(fr_dbuff_marker_t *m, uint16_t option, size_t
      data_len)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:84,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:85,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:88,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:89,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:95,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:98,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:99,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:100,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:108,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:113,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:120,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:126,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:127,1
    - Dst: fr_dhcpv6_flag_any_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:147,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:150,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:151,1
    - Dst: fr_dns_label_from_value_box_dbuff
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:152,1
    - Dst: fr_dhcpv6_flag_partial_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:161,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:164,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:165,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:166,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:167,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:188,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:215,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:218,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:219,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:238,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:241,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:242,1
    - Dst: fr_unix_time_to_sec
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:271,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:274,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:278,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:285,1
    - Dst: fr_pair_ref_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:288,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:296,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:297,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:304,1
    - Dst: fr_dhcpv6_encode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:305,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:326,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:327,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:363,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:371,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:372,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:374,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 116
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 375
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 6
    functionsReached:
    - fr_dcursor_current
    - memcpy
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dhcpv6_encode_option
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - fr_type_to_str
    - fr_unix_time_to_sec
    - fr_pair_list_empty
    - fr_pair_ref_to_network
    - fr_dcursor_next
    - fr_dhcpv6_flag_any_dns_label
    - fr_bytes_from_bits
    - fr_pair_dcursor_child_iter_init
    - fr_dbuff_advance
    - fr_dhcpv6_flag_partial_dns_label
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_dbuff_out
    - FR_DBUFF_IN_RETURN
    - fr_dns_label_from_value_box_dbuff
    - fr_value_box_to_network
    - fr_dbuff_set
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - fr_struct_to_network
    - fr_dict_attr_ref
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_value(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:387,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:399,1
    - Dst: encode_vsio
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:404,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:411,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:415,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:415,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:417,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:418,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:420,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:421,1
    - Dst: encode_vsio
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:425,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:429,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:433,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:443,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:444,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:446,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 447
    functionName: encode_child
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - encode_tlv
    - fr_dcursor_next
    - fr_type_is_structural
    - encode_rfc
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - fr_assert
    - encode_vsio
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_child(fr_dbuff_t *dbuff,\n\t\t\t\t  fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t\t  fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:459,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:464,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:465,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:470,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:471,1
    - Dst: fr_pair_array_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:477,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:479,1
    - Dst: encode_option_hdr
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:486,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:486,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:488,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:488,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:488,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 491
    functionName: encode_rfc
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 5
    functionsReached:
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_marker
    - encode_option_hdr
    - fr_dbuff_start
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - encode_value
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - fr_pair_array_to_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_rfc(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:497,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:502,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:503,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:503,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:504,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:507,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:508,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:513,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:517,1
    - Dst: fr_pair_cursor_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:519,1
    - Dst: encode_option_hdr
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:529,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:529,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:531,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:531,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:531,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 534
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 9
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_ADVANCE_RETURN
    - fr_strerror_printf
    - fr_dbuff_marker
    - encode_option_hdr
    - fr_dbuff_start
    - fr_pair_cursor_to_network
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:553,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:559,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:560,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:566,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:567,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:575,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:578,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:579,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:583,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:584,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:585,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:610,1
    - Dst: encode_option_hdr
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:613,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:613,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:615,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:615,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:615,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 618
    functionName: encode_vsio
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_IN_RETURN
    - fr_strerror_printf
    - fr_dbuff_marker
    - encode_option_hdr
    - fr_dbuff_start
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - fr_dbuff_used
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - encode_child
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_vsio(fr_dbuff_t *dbuff,\n\t\t\t       fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t       fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:628,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:635,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:641,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:642,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:643,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:644,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:651,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:652,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:653,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:655,1
    - Dst: fr_dhcpv6_encode
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:656,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:659,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:661,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:661,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:661,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:663,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:664,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 667
    functionName: encode_relay_message
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 0
    functionsReached:
    - fr_pair_list_empty
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_IN_RETURN
    - FR_DBUFF_ADVANCE_RETURN
    - fr_dcursor_next
    - fr_dbuff_in
    - fr_dhcpv6_encode
    - fr_dbuff_marker
    - fr_dbuff_start
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_relay_message(fr_dbuff_t *dbuff,\n\t\t\t\t    fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\t    fr_dcursor_t *cursor, UNUSED void
      *encode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:684,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:687,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:690,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:693,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:694,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:698,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:700,1
    - Dst: encode_relay_message
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:711,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:715,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:719,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:724,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:724,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:725,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:725,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:725,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 728
    functionName: fr_dhcpv6_encode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - encode_rfc
    - fr_dbuff_start
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - encode_relay_message
    - encode_child
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_encode_option(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      void * encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:734,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:736,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:738,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:740,1
    - Dst: fr_dhcpv6_encode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:741,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:741,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:745,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:745,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:746,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:746,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dbuff
    - list
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 749
    functionName: fr_dhcpv6_encode_foreign
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - fr_dhcpv6_encode_option
    - fr_pair_dcursor_iter_init
    - fr_dbuff_used
    - fr_assert
    - FR_DBUFF
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_encode_foreign(fr_dbuff_t *dbuff, fr_pair_list_t
      const *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:757,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 765
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_encode
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:771,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:771,1
    - Dst: fr_dhcpv6_print_hex
      Src: /src/freeradius-server/src/protocols/dhcpv6/encode.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 782
    functionName: fr_dhcpv6_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/encode.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv6_encode
    - fr_dhcpv6_print_hex
    - FR_DBUFF_TMP
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: DHCPV6_GET_OPTION_NUM
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DHCPV6_GET_OPTION_NUM(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: DHCPV6_GET_OPTION_LEN
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DHCPV6_GET_OPTION_LEN(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: FR_DHCPV6_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DHCPV6_PACKET_CODE_VALID(_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: fr_dhcpv6_attr_flags
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_dhcpv6_attr_flags_t
    signature: fr_dhcpv6_attr_flags_t *fr_dhcpv6_attr_flags(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: fr_dhcpv6_flag_dns_label
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv6_flag_dns_label(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: fr_dhcpv6_flag_partial_dns_label
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv6_flag_partial_dns_label(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_attr_flags
      Src: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: fr_dhcpv6_flag_any_dns_label
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/dhcpv6.h
    functionUses: 3
    functionsReached:
    - fr_dhcpv6_attr_flags
    linkageType: ''
    returnType: bool
    signature: bool fr_dhcpv6_flag_any_dns_label(fr_dict_attr_t const *da)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:134,1
    - Dst: DHCPV6_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:138,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:140,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:146,1
    - Dst: fr_dhcpv6_ok_internal
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:160,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - packet
    - end
    - max_attributes
    - allow_relay
    - depth
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 170
    functionName: fr_dhcpv6_options_ok
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_dhcpv6_ok_internal
    - DHCPV6_GET_OPTION_LEN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dhcpv6_options_ok(uint8_t const *packet, uint8_t const
      *end, size_t max_attributes,\n\t\t\t\t    bool allow_relay, int depth)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:180,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:185,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:193,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:206,1
    - Dst: fr_dhcpv6_options_ok
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - packet
    - end
    - max_attributes
    - depth
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 219
    functionName: fr_dhcpv6_ok_internal
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_dhcpv6_options_ok
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_ok_internal(uint8_t const *packet, uint8_t const
      *end, size_t max_attributes, int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_ok_internal
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:235,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - packet
    - packet_len
    - max_attributes
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: fr_dhcpv6_ok
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 2
    functionsReached:
    - fr_dhcpv6_ok_internal
    - fr_strerror_printf_push
    linkageType: ''
    returnType: bool
    signature: bool fr_dhcpv6_ok(uint8_t const *packet, size_t packet_len, uint32_t
      max_attributes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DHCPV6_GET_OPTION_NUM
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:257,1
    - Dst: DHCPV6_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - start
    - end
    - option
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 268
    functionName: fr_dhcpv6_option_find
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 2
    functionsReached:
    - DHCPV6_GET_OPTION_NUM
    - DHCPV6_GET_OPTION_LEN
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_dhcpv6_option_find(uint8_t const *start, uint8_t const
      *end, unsigned int option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DHCPV6_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:274,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - option
    - packet_ctx
    argTypes:
    - uint8_t*
    - fr_dhcpv6_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: duid_match
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - DHCPV6_GET_OPTION_LEN
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool duid_match(uint8_t const *option, fr_dhcpv6_decode_ctx_t const
      *packet_ctx)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint24
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:293,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:296,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:300,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:302,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:306,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:309,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:318,1
    - Dst: duid_match
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:323,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:325,1
    - Dst: fr_nbo_to_uint24
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:331,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:334,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:339,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:347,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:349,1
    - Dst: duid_match
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:356,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:358,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:360,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:374,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:385,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:390,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:392,1
    - Dst: verify_to_client
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:395,1
    - Dst: DHCPV6_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:395,1
    - Dst: fr_nbo_to_uint24
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:398,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:401,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:403,1
    - Dst: duid_match
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:410,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:421,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 127
    argCount: 3
    argNames:
    - packet
    - packet_len
    - packet_ctx
    argTypes:
    - uint8_t*
    - size_t
    - fr_dhcpv6_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 426
    functionName: verify_to_client
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - duid_match
    - fr_nbo_to_uint24
    - fr_dhcpv6_option_find
    - DHCPV6_GET_OPTION_LEN
    - fr_strerror_const
    - verify_to_client
    linkageType: ''
    returnType: bool
    signature: bool verify_to_client(uint8_t const *packet, size_t packet_len, fr_dhcpv6_decode_ctx_t
      const *packet_ctx)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:442,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:450,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:452,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:456,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:457,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:466,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:468,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:470,1
    - Dst: duid_match
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:474,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:476,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:482,1
    - Dst: duid_match
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:483,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:488,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:489,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:492,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:493,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:496,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:497,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:504,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:509,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:511,1
    - Dst: verify_from_client
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:515,1
    - Dst: DHCPV6_GET_OPTION_LEN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:515,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:518,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:524,1
    - Dst: duid_match
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:525,1
    - Dst: fr_dhcpv6_option_find
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:527,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:529,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:538,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    argCount: 3
    argNames:
    - packet
    - packet_len
    - packet_ctx
    argTypes:
    - uint8_t*
    - size_t
    - fr_dhcpv6_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 542
    functionName: verify_from_client
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - duid_match
    - fr_dhcpv6_option_find
    - DHCPV6_GET_OPTION_LEN
    - verify_from_client
    - fr_strerror_const
    linkageType: ''
    returnType: bool
    signature: bool verify_from_client(uint8_t const *packet, size_t packet_len, fr_dhcpv6_decode_ctx_t
      const *packet_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: verify_to_client
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:568,1
    - Dst: verify_from_client
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - packet
    - packet_len
    - packet_ctx
    - from_server
    argTypes:
    - uint8_t*
    - size_t
    - fr_dhcpv6_decode_ctx_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 571
    functionName: fr_dhcpv6_verify
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - verify_from_client
    - verify_to_client
    linkageType: ''
    returnType: bool
    signature: "bool fr_dhcpv6_verify(uint8_t const *packet, size_t packet_len, fr_dhcpv6_decode_ctx_t
      const *packet_ctx,\n\t\t      bool from_server)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:603,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:606,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:608,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:621,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:623,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:624,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:625,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:628,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:630,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:632,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:633,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:634,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:637,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:639,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:641,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:642,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:643,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:647,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:659,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:662,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:669,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:671,1
    - Dst: talloc_init_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:677,1
    - Dst: fr_dhcpv6_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:684,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:686,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:693,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:694,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:699,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:701,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:706,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 82
    argCount: 4
    argNames:
    - ctx
    - out
    - packet
    - packet_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 708
    functionName: fr_dhcpv6_decode
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 3
    functionsReached:
    - fr_pair_afrom_da
    - fr_value_box_from_network
    - talloc_free
    - fr_cond_assert
    - fr_pair_append
    - fr_pair_value_memdup
    - fr_dhcpv6_decode_option
    - FR_DBUFF_TMP
    - talloc_init_const
    - fr_pair_list_free
    - fr_pair_list_append
    - fr_pair_list_init
    - talloc_free_children
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t
      const *packet, size_t packet_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:716,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:718,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 727
    functionName: fr_dhcpv6_next_encodable
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - PAIR_VERIFY
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_dhcpv6_next_encodable(fr_dcursor_t *cursor, void *current,
      void *uctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:734,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:741,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:744,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:749,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:753,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:758,1
    - Dst: likely
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:759,1
    - Dst: FR_VALUE_BOX_TO_NETWORK_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:760,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:762,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:765,1
    - Dst: likely
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:766,1
    - Dst: FR_VALUE_BOX_TO_NETWORK_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:767,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:769,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:772,1
    - Dst: likely
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:773,1
    - Dst: FR_VALUE_BOX_TO_NETWORK_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:774,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:776,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:784,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:786,1
    - Dst: fr_nbo_from_uint24
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:789,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:789,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:790,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:802,1
    - Dst: fr_dbuff_extend
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:803,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:803,1
    - Dst: fr_dhcpv6_encode_option
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:804,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:805,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:805,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:808,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 5
    argNames:
    - dbuff
    - original
    - length
    - msg_type
    - vps
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    - int
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 732
    functionDepth: 5
    functionLinenumber: 732
    functionLinenumberEnd: 809
    functionName: fr_dhcpv6_encode
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 3
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_dbuff_extend
    - FR_DBUFF_IN_RETURN
    - FR_DBUFF_ERROR_OFFSET
    - fr_strerror_printf
    - likely
    - fr_dhcpv6_encode_option
    - fr_pair_dcursor_iter_init
    - fr_rand
    - fr_dbuff_used
    - FR_DBUFF
    - FR_DBUFF_MEMSET_RETURN
    - fr_nbo_from_uint24
    - FR_VALUE_BOX_TO_NETWORK_RETURN
    - fr_pair_find_by_da
    - fr_dict_root
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv6_encode(fr_dbuff_t *dbuff, uint8_t const *original,
      size_t length, int msg_type, fr_pair_list_t *vps)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:820,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:821,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:822,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - fp
    - ptr
    - attrlen
    - depth
    argTypes:
    - FILE*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 825
    functionName: print_hex_data
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_hex_data(FILE *fp, uint8_t const *ptr, int attrlen, int
      depth)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:832,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:833,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:834,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:838,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:840,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:842,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:848,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:849,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:850,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:854,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:855,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:856,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:857,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:858,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:860,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:861,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:862,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:865,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:866,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:867,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:871,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:872,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:877,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:878,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:879,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:883,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:884,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:885,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:885,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:888,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:892,1
    - Dst: dhcpv6_print_hex
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:894,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:900,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 4
    argNames:
    - fp
    - packet
    - packet_len
    - depth
    argTypes:
    - FILE*
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 901
    functionName: dhcpv6_print_hex
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 2
    functionsReached:
    - dhcpv6_print_hex
    - print_hex_data
    - fr_nbo_to_uint16
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dhcpv6_print_hex(FILE *fp, uint8_t const *packet, size_t packet_len,
      int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dhcpv6_print_hex
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - packet
    - packet_len
    argTypes:
    - FILE*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 909
    functionName: fr_dhcpv6_print_hex
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - dhcpv6_print_hex
    linkageType: ''
    returnType: void
    signature: void fr_dhcpv6_print_hex(FILE *fp, uint8_t const *packet, size_t packet_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:920,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:926,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 911
    functionDepth: 8
    functionLinenumber: 911
    functionLinenumberEnd: 933
    functionName: fr_dhcpv6_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv6_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:939,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 945
    functionName: fr_dhcpv6_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_dhcpv6_global_free(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv6_flag_any_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:952,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:954,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:967,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:968,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:978,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:979,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:989,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv6/base.c:1001,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 947
    functionDepth: 4
    functionLinenumber: 947
    functionLinenumberEnd: 1008
    functionName: attr_valid
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv6/base.c
    functionUses: 1
    functionsReached:
    - da_is_length_field16
    - fr_strerror_const
    - fr_dhcpv6_flag_any_dns_label
    - da_is_length_field8
    linkageType: ''
    returnType: bool
    signature: bool attr_valid(fr_dict_attr_t *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vlan
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: VLAN_PCP_UNPACK
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLAN_PCP_UNPACK(_vlan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vlan
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: VLAN_DEI_UNPACK
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLAN_DEI_UNPACK(_vlan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _vlan
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: VLAN_VID_UNPACK
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLAN_VID_UNPACK(_vlan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _pcp
    - ','
    - _dei
    - ','
    - _vid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: VLAN_TCI_PACK
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLAN_TCI_PACK(_pcp, _dei, _vid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:54,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:56,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:61,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:62,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:63,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:78,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:101,1
    - Dst: VLAN_PCP_UNPACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:102,1
    - Dst: VLAN_DEI_UNPACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:103,1
    - Dst: VLAN_VID_UNPACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:104,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:112,1
    - Dst: VLAN_PCP_UNPACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:113,1
    - Dst: VLAN_DEI_UNPACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:114,1
    - Dst: VLAN_VID_UNPACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:115,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:127,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 3
    argNames:
    - proto_ctx
    - data
    - data_len
    argTypes:
    - void*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 135
    functionName: fr_ethernet_decode
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - fr_strerror_printf
    - fr_strerror_const
    - ntohs
    - VLAN_DEI_UNPACK
    - VLAN_PCP_UNPACK
    - VLAN_VID_UNPACK
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_ethernet_decode(void *proto_ctx, uint8_t const *data, size_t
      data_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:157,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:159,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:164,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:165,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:183,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:185,1
    - Dst: VLAN_TCI_PACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:186,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:189,1
    - Dst: VLAN_TCI_PACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:190,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:193,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:211,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:213,1
    - Dst: VLAN_TCI_PACK
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:214,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:217,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:226,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 3
    argNames:
    - proto_ctx
    - data
    - data_len
    argTypes:
    - void*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 231
    functionName: fr_ethernet_encode
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - VLAN_TCI_PACK
    - fr_strerror_printf
    - htons
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_ethernet_encode(void *proto_ctx, uint8_t *data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:245,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:246,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - proto_ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: fr_ethernet_invert
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fr_ethernet_invert(void *proto_ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:268,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:271,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:274,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:277,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:280,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:283,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:286,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:289,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:292,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:299,1
    - Dst: fr_value_box_ethernet_addr
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:304,1
    - Dst: fr_value_box_ethernet_addr
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:307,1
    - Dst: fr_value_box
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:310,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:313,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 4
    argNames:
    - out
    - proto_ctx
    - group
    - opt
    argTypes:
    - fr_value_box_t*
    - void*
    - fr_proto_opt_group_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 321
    functionName: fr_ethernet_get_option
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.c
    functionUses: 0
    functionsReached:
    - fr_value_box
    - fr_strerror_printf
    - fr_value_box_ethernet_addr
    - fr_value_box_init
    linkageType: ''
    returnType: int
    signature: int fr_ethernet_get_option(fr_value_box_t *out, void const *proto_ctx,
      fr_proto_opt_group_t group, int opt)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:341,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:344,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:347,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:350,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:353,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:356,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:359,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:362,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:365,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:373,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:374,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:375,1
    - Dst: fr_value_unbox_ethernet_addr
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:382,1
    - Dst: fr_value_unbox_ethernet_addr
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:385,1
    - Dst: fr_value_unbox_shallow
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:388,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:391,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/ethernet/ethernet.c:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 4
    argNames:
    - proto_ctx
    - group
    - opt
    - in
    argTypes:
    - void*
    - fr_proto_opt_group_t
    - int
    - fr_value_box_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 400
    functionName: fr_ethernet_set_option
    functionSourceFile: /src/freeradius-server/src/protocols/ethernet/ethernet.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_value_unbox_ethernet_addr
    - fr_value_unbox_shallow
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int fr_ethernet_set_option(void *proto_ctx, fr_proto_opt_group_t group,
      int opt, fr_value_box_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: packet_is_authen_start_request
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_authen_start_request(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: packet_is_authen_continue
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_authen_continue(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: packet_is_authen_reply
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_authen_reply(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: packet_is_author_request
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_author_request(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: packet_is_author_reply
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_author_reply(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: packet_is_acct_request
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_acct_request(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: packet_is_acct_reply
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_acct_reply(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: packet_has_valid_seq_no
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_has_valid_seq_no(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: packet_is_encrypted
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: packet_is_encrypted(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: (__packed__)
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct CC_HINT
    signature: struct CC_HINT (__packed__)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: FR_TACACS_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TACACS_PACKET_CODE_VALID(_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _log
    - ','
    - _packet
    - ','
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: fr_tacacs_packet_log_hex
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/tacacs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_tacacs_packet_log_hex(_log, _packet, _size)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:47,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:77,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:99,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:118,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:122,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - fr_tacacs_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 125
    functionName: fr_tacacs_packet_to_code
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_tacacs_packet_to_code(fr_tacacs_packet_t const *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _msg
    - ','
    - _hdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: PACKET_HEADER_CHECK
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKET_HEADER_CHECK(_msg, _hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _msg
    - ','
    - _hdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: ARG_COUNT_CHECK
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_COUNT_CHECK(_msg, _hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _da
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: DECODE_FIELD_UINT8
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_FIELD_UINT8(_da, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _da
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: DECODE_FIELD_STRING8
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_FIELD_STRING8(_da, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _da
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: DECODE_FIELD_STRING16
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_FIELD_STRING16(_da, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: BODY
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY(_x)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:203,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:205,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:207,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:213,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:228,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:256,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:258,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:260,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:271,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:274,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:276,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:293,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:299,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:307,1
    - Dst: fr_pair_value_from_str
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:319,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:320,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:329,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:333,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:336,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:339,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:341,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:345,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:351,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:355,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:363,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:364,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:366,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 123
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - arg_cnt
    - argv
    - attrs
    - end
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t
    - uint8_t*
    - uint8_t*
    - NDEBUG_UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 371
    functionName: tacacs_decode_args
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - fr_dict_attr_by_name
    - memcpy
    - fr_pair_value_bstrndup
    - talloc_free
    - fr_pair_append
    - fr_pair_value_memdup
    - PAIR_ALLOCED
    - fr_strerror_const
    - fr_pair_value_from_str
    - fr_pair_find_by_da
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int tacacs_decode_args(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *parent,\n\t\t\t      uint8_t arg_cnt, uint8_t const *argv, uint8_t const
      *attrs, NDEBUG_UNUSED uint8_t const *end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:383,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:388,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:390,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:393,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:397,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:399,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:401,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - ctx
    - out
    - da
    - field_data
    - field_len
    - end
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t**
    - uint16_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 410
    functionName: tacacs_decode_field
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_value_bstrndup
    - fr_strerror_printf
    - fr_pair_append
    - fr_pair_value_memdup
    - fr_assert
    - PAIR_ALLOCED
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int tacacs_decode_field(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *da,\n\t\t\t\tuint8_t const **field_data, uint16_t field_len, uint8_t
      const *end)"
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:458,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:466,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:478,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:486,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:487,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:497,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:504,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:505,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:506,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:506,1
    - Dst: packet_is_encrypted
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:510,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:511,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:518,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:519,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:519,1
    - Dst: packet_is_encrypted
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:528,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:532,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:536,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:543,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:545,1
    - Dst: fr_tacacs_body_xor
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:552,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:554,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:560,1
    - Dst: fr_tacacs_packet_log_hex
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:566,1
    - Dst: fr_tacacs_packet_to_code
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:570,1
    - Dst: packet_is_authen_start_request
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:576,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:599,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:606,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:610,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:617,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:621,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:626,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:627,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:628,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:629,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:636,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:638,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:639,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:690,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:690,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:696,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:697,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:700,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:703,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:722,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:726,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:730,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:732,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:734,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:739,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:744,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:746,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:748,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:750,1
    - Dst: packet_is_authen_continue
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:755,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:778,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:782,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:783,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:783,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:787,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:793,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:794,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:799,1
    - Dst: packet_is_authen_reply
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:801,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:819,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:820,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:820,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:824,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:826,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:827,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:833,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:834,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:837,1
    - Dst: packet_is_author_request
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:843,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:873,1
    - Dst: ARG_COUNT_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:876,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:878,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:883,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:884,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:885,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:886,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:893,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:894,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:895,1
    - Dst: tacacs_decode_args
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:901,1
    - Dst: packet_is_author_reply
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:904,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:933,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:934,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:934,1
    - Dst: ARG_COUNT_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:936,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:937,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:942,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:948,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:949,1
    - Dst: tacacs_decode_args
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:954,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:958,1
    - Dst: packet_is_acct_request
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:964,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:994,1
    - Dst: ARG_COUNT_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:999,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1001,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1006,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1007,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1008,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1009,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1010,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1016,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1017,1
    - Dst: DECODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1018,1
    - Dst: tacacs_decode_args
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1023,1
    - Dst: packet_is_acct_reply
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1026,1
    - Dst: PACKET_HEADER_CHECK
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1045,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1046,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1046,1
    - Dst: BODY
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1050,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1051,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1056,1
    - Dst: DECODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1057,1
    - Dst: DECODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1060,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1062,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1067,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1071,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 319
    argCount: 9
    argNames:
    - ctx
    - out
    - vendor
    - buffer
    - buffer_len
    - original
    - secret
    - secret_len
    - code
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 415
    functionDepth: 7
    functionLinenumber: 415
    functionLinenumberEnd: 1073
    functionName: fr_tacacs_decode
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 3
    functionsReached:
    - ntohl
    - fr_tacacs_packet_log_hex
    - packet_is_encrypted
    - memcpy
    - ARG_COUNT_CHECK
    - fr_strerror_printf
    - fr_pair_value_memdup
    - BODY
    - fr_strerror
    - fr_dict_attr_unknown_raw_afrom_num
    - packet_is_acct_reply
    - FR_PROTO_HEX_DUMP
    - PACKET_HEADER_CHECK
    - fr_pair_append
    - fr_nbo_to_uint32
    - fr_tacacs_body_xor
    - DECODE_FIELD_UINT8
    - DECODE_FIELD_STRING16
    - memcmp
    - PAIR_ALLOCED
    - fr_strerror_const
    - packet_is_authen_continue
    - fr_pair_afrom_da
    - talloc_memdup
    - packet_is_author_reply
    - packet_is_author_request
    - fr_struct_from_network
    - packet_is_authen_reply
    - tacacs_decode_args
    - fr_nbo_to_uint16
    - fr_tacacs_packet_to_code
    - talloc_free
    - DECODE_FIELD_STRING8
    - packet_is_acct_request
    - packet_is_authen_start_request
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_tacacs_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *vendor,\n\t\t\t uint8_t const *buffer, size_t buffer_len,\n\t\t\t const
      uint8_t *original, char const * const secret, size_t secret_len, int *code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1080,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1083,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1083,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1084,1
    - Dst: fr_tacacs_decode
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1086,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1078
    functionDepth: 8
    functionLinenumber: 1078
    functionLinenumberEnd: 1088
    functionName: fr_tacacs_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_by_name
    - fr_tacacs_decode
    - talloc_get_type_abort
    - fr_assert
    - talloc_strlen
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_tacacs_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,
      uint8_t const *data, size_t data_len, void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1092,1
    - Dst: fr_tacacs_global_free
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - test_ctx
    argTypes:
    - fr_tacacs_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1097
    functionName: _encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - fr_tacacs_global_free
    linkageType: ''
    returnType: int
    signature: int _encode_test_ctx(fr_tacacs_ctx_t *test_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tacacs_global_init
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1104,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1106,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1109,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1110,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/tacacs/decode.c:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1116
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/decode.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - talloc_strdup
    - fr_tacacs_global_init
    - talloc_zero
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:123,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 2
    argNames:
    - pkt
    - code
    argTypes:
    - fr_tacacs_packet_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 128
    functionName: fr_tacacs_code_to_packet
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_tacacs_code_to_packet(fr_tacacs_packet_t *pkt, uint32_t code)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:138,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:140,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:156,1
    - Dst: fr_dict_by_da
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:156,1
    - Dst: tacacs_encode_body_arg_cnt
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:162,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 2
    argNames:
    - vps
    - da
    argTypes:
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 180
    functionName: tacacs_encode_body_arg_cnt
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_next
    - tacacs_encode_body_arg_cnt
    - fr_assert
    - fr_pair_list_head
    - fr_dict_by_da
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t tacacs_encode_body_arg_cnt(fr_pair_list_t *vps, fr_dict_attr_t
      const *da)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:186,1
    - Dst: fr_pair_list_head
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:188,1
    - Dst: fr_pair_list_next
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:190,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:207,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:209,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:219,1
    - Dst: tacacs_encode_body_arg_n
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:222,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:223,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:223,1
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:234,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:241,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:241,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:242,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:244,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:254,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:255,1
    - Dst: fr_sbuff_in_sprintf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:261,1
    - Dst: fr_pair_print_value_quoted
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:266,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:270,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:272,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:274,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:274,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:276,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:279,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:281,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:285,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 5
    argNames:
    - dbuff
    - arg_cnt
    - arg_len
    - vps
    - da
    argTypes:
    - fr_dbuff_t*
    - uint8_t
    - uint8_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 286
    functionName: tacacs_encode_body_arg_n
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 1
    functionsReached:
    - FR_SBUFF_OUT
    - fr_dbuff_start
    - strlen
    - fr_value_box_cast
    - FR_DBUFF
    - tacacs_encode_body_arg_n
    - fr_dbuff_used
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_sbuff_in_sprintf
    - FR_DBUFF_ERROR_OFFSET
    - FR_DBUFF_MAX
    - fr_assert
    - fr_pair_print_value_quoted
    - fr_value_box_init
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - fr_pair_list_next
    - FR_PROTO_TRACE
    - fr_pair_list_head
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tacacs_encode_body_arg_n(fr_dbuff_t *dbuff, uint8_t arg_cnt,
      uint8_t *arg_len, fr_pair_list_t *vps, fr_dict_attr_t const *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:294,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:296,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:300,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:302,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:305,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:305,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:305,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - dbuff
    - vps
    - da
    - max_len
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: tacacs_encode_field
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_start
    - fr_dbuff_used
    - FR_DBUFF
    - fr_pair_find_by_da
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tacacs_encode_field(fr_dbuff_t *dbuff, fr_pair_list_t *vps,
      fr_dict_attr_t const *da, size_t max_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:313,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:315,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:321,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:323,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:328,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:333,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:338,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:342,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:343,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:344,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - dbuff
    - packet
    - vps
    - da_chap
    - da_challenge
    argTypes:
    - fr_dbuff_t*
    - fr_tacacs_packet_t*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 349
    functionName: tacacs_encode_chap
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - fr_strerror_printf
    - FR_DBUFF
    - fr_pair_find_by_da
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t tacacs_encode_chap(fr_dbuff_t *dbuff, fr_tacacs_packet_t *packet,
      fr_pair_list_t *vps, fr_dict_attr_t const *da_chap, fr_dict_attr_t const *da_challenge)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _field
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: ENCODE_FIELD_UINT8
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_FIELD_UINT8(_field, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _field
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: ENCODE_FIELD_STRING8
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_FIELD_STRING8(_field, _da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _field
    - ','
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: ENCODE_FIELD_STRING16
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_FIELD_STRING16(_field, _da)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:377,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:385,1
    - Dst: FR_DBUFF_REMAINING_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:392,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:413,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:417,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:422,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:427,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:429,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:440,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:448,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:456,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:461,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:462,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:464,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:470,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:472,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:476,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:479,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:480,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:486,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:488,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:508,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:515,1
    - Dst: packet_is_authen_start_request
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:531,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:554,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:559,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:560,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:561,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:562,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:567,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:568,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:569,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:574,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:575,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:582,1
    - Dst: tacacs_encode_chap
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:586,1
    - Dst: tacacs_encode_chap
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:592,1
    - Dst: tacacs_encode_chap
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:597,1
    - Dst: packet_is_authen_continue
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:604,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:624,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:629,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:630,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:635,1
    - Dst: packet_is_authen_reply
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:639,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:656,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:658,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:659,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:664,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:665,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:670,1
    - Dst: packet_is_author_request
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:674,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:705,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:710,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:711,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:712,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:713,1
    - Dst: tacacs_encode_body_arg_cnt
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:718,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:719,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:724,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:725,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:726,1
    - Dst: tacacs_encode_body_arg_n
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:732,1
    - Dst: packet_is_author_reply
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:736,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:763,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:768,1
    - Dst: tacacs_encode_body_arg_cnt
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:787,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:788,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:796,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:797,1
    - Dst: tacacs_encode_body_arg_n
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:803,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:810,1
    - Dst: packet_is_acct_request
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:814,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:845,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:850,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:851,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:852,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:853,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:854,1
    - Dst: tacacs_encode_body_arg_cnt
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:859,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:860,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:865,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:866,1
    - Dst: ENCODE_FIELD_STRING8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:867,1
    - Dst: tacacs_encode_body_arg_n
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:873,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:880,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:881,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:884,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:885,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:890,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:891,1
    - Dst: packet_is_acct_reply
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:900,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:917,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:922,1
    - Dst: ENCODE_FIELD_STRING16
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:923,1
    - Dst: ENCODE_FIELD_UINT8
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:928,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:941,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:942,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:963,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:967,1
    - Dst: fr_tacacs_code_to_packet
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:979,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:986,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:987,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:990,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:991,1
    - Dst: fr_tacacs_packet_log_hex
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1011,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1023,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1027,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1027,1
    - Dst: fr_tacacs_body_xor
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1029,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1029,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1040,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1040,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1042,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 246
    argCount: 6
    argNames:
    - dbuff
    - original_packet
    - secret
    - secret_len
    - code
    - vps
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - char*
    - size_t
    - unsigned int
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 368
    functionDepth: 7
    functionLinenumber: 368
    functionLinenumberEnd: 1043
    functionName: fr_tacacs_encode
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 2
    functionsReached:
    - htonl
    - fr_pair_dcursor_init
    - fr_tacacs_packet_log_hex
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_start
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - tacacs_encode_body_arg_n
    - ENCODE_FIELD_UINT8
    - packet_is_acct_reply
    - FR_PROTO_HEX_DUMP
    - ENCODE_FIELD_STRING16
    - FR_DBUFF_ADVANCE_RETURN
    - fr_dcursor_next
    - fr_tacacs_body_xor
    - tacacs_encode_chap
    - fr_dbuff_used
    - FR_DBUFF_MEMSET_RETURN
    - memset
    - fr_strerror_const
    - packet_is_authen_continue
    - packet_is_author_reply
    - fr_dbuff_out
    - fr_pair_find_by_da_nested
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_current
    - packet_is_author_request
    - fr_rand
    - fr_assert
    - packet_is_authen_reply
    - fr_dbuff_set
    - packet_is_acct_request
    - ENCODE_FIELD_STRING8
    - fr_proto_da_stack_build
    - fr_tacacs_code_to_packet
    - tacacs_encode_body_arg_cnt
    - fr_struct_to_network
    - FR_DBUFF_REMAINING_RETURN
    - packet_is_authen_start_request
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_tacacs_encode(fr_dbuff_t *dbuff, uint8_t const *original_packet,
      char const *secret, size_t secret_len,\n\t\t\t unsigned int code, fr_pair_list_t
      *vps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1051,1
    - Dst: fr_tacacs_encode
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1053,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1053,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1048
    functionDepth: 8
    functionLinenumber: 1048
    functionLinenumberEnd: 1055
    functionName: fr_tacacs_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached:
    - fr_tacacs_encode
    - FR_DBUFF_TMP
    - talloc_get_type_abort
    - talloc_strlen
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_tacacs_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps,\n\t\t\t\t      uint8_t *data, size_t data_len, void *proto_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_const_free
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1059,1
    - Dst: fr_tacacs_global_free
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - test_ctx
    argTypes:
    - fr_tacacs_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1064
    functionName: _encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached:
    - talloc_const_free
    - fr_tacacs_global_free
    linkageType: ''
    returnType: int
    signature: int _encode_test_ctx(fr_tacacs_ctx_t *test_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_tacacs_global_init
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1071,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1073,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1076,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/tacacs/encode.c:1077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1082
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - fr_dict_root
    - talloc_set_destructor
    - fr_tacacs_global_init
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:158,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:166,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:169,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:170,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:171,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:172,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:174,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:186,1
    - Dst: fr_md5_calc
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:187,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - pkt
    - body
    - body_len
    - secret
    - secret_len
    argTypes:
    - fr_tacacs_packet_t*
    - uint8_t*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 194
    functionName: fr_tacacs_body_xor
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 2
    functionsReached:
    - fr_md5_calc
    - memcpy
    - talloc_free
    - talloc_array
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_tacacs_body_xor(fr_tacacs_packet_t const *pkt, uint8_t *body,
      size_t body_len, char const *secret, size_t secret_len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:227,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:235,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:245,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:249,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:262,1
    - Dst: packet_is_authen_start_request
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:266,1
    - Dst: packet_is_authen_continue
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:269,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:273,1
    - Dst: packet_is_authen_reply
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:273,1
    - Dst: packet_is_author_request
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:279,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:282,1
    - Dst: packet_is_author_reply
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:282,1
    - Dst: packet_is_acct_request
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:288,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:291,1
    - Dst: packet_is_acct_reply
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:291,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:298,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - buffer
    - buffer_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 303
    functionName: fr_tacacs_length
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 1
    functionsReached:
    - packet_is_author_reply
    - ntohl
    - fr_strerror_printf
    - packet_is_acct_request
    - packet_is_author_request
    - fr_assert
    - packet_is_authen_reply
    - fr_strerror_const
    - packet_is_authen_start_request
    - packet_is_authen_continue
    - packet_is_acct_reply
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_tacacs_length(uint8_t const *buffer, size_t buffer_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_log_hex
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - log
    - file
    - line
    - prefix
    - data
    - datalen
    argTypes:
    - fr_log_t*
    - char*
    - int
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 8
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: print_hex
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 5
    functionsReached:
    - fr_log_hex
    linkageType: ''
    returnType: void
    signature: void print_hex(fr_log_t const *log, char const *file, int line, char
      const *prefix, uint8_t const *data, size_t datalen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: print_hex
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:320,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - log
    - file
    - line
    - prefix
    - data
    - datalen
    argTypes:
    - fr_log_t*
    - char*
    - int
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 312
    functionDepth: 7
    functionLinenumber: 312
    functionLinenumberEnd: 329
    functionName: print_ascii
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 0
    functionsReached:
    - print_hex
    - fr_log
    linkageType: ''
    returnType: void
    signature: void print_ascii(fr_log_t const *log, char const *file, int line, char
      const *prefix, uint8_t const *data, size_t datalen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _length
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 341
    functionName: CHECK
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 894
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _prefix
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: ASCII
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCII(_prefix, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _prefix
    - ','
    - _field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: HEXIT
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXIT(_prefix, _field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: PRINT
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT(_fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:364,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:371,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:376,1
    - Dst: print_hex
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:377,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:381,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - log
    - file
    - line
    - arg_cnt
    - argv
    - start
    - end
    argTypes:
    - fr_log_t*
    - char*
    - int
    - size_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 386
    functionName: print_args
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 0
    functionsReached:
    - snprintf
    - print_hex
    - PRINT
    - ASCII
    linkageType: ''
    returnType: void
    signature: void print_args(fr_log_t const *log, char const *file, int line, size_t
      arg_cnt, uint8_t const *argv, uint8_t const *start, uint8_t const *end)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: print_hex
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:398,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:405,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:406,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:408,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:409,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:410,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:412,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:412,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:413,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:413,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:415,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:416,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:419,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:424,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:432,1
    - Dst: print_hex
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:447,1
    - Dst: packet_is_authen_start_request
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:451,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:452,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:454,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:456,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:457,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:458,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:459,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:460,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:461,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:462,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:463,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:465,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:466,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:467,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:468,1
    - Dst: packet_is_authen_continue
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:470,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:471,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:473,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:475,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:475,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:476,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:476,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:477,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:479,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:479,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:480,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:480,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:483,1
    - Dst: packet_is_authen_reply
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:483,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:485,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:487,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:489,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:490,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:491,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:491,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:492,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:492,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:494,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:494,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:495,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:495,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:498,1
    - Dst: packet_is_author_request
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:502,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:503,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:504,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:506,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:507,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:508,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:509,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:510,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:511,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:512,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:513,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:516,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:517,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:518,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:519,1
    - Dst: print_args
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:521,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:524,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:526,1
    - Dst: packet_is_author_reply
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:526,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:528,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:530,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:531,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:532,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:532,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:533,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:533,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:536,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:537,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:537,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:538,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:538,1
    - Dst: print_args
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:540,1
    - Dst: packet_is_acct_request
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:545,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:546,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:548,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:550,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:551,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:552,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:553,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:554,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:555,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:556,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:557,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:558,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:561,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:562,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:563,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:564,1
    - Dst: print_args
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:566,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:568,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:569,1
    - Dst: packet_is_acct_reply
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:569,1
    - Dst: REQUIRE
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:571,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:573,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:573,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:574,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:574,1
    - Dst: PRINT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:575,1
    - Dst: ASCII
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:577,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:577,1
    - Dst: HEXIT
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:578,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:578,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:580,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 136
    argCount: 5
    argNames:
    - log
    - packet
    - packet_len
    - file
    - line
    argTypes:
    - fr_log_t*
    - fr_tacacs_packet_t*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 584
    functionName: _fr_tacacs_packet_log_hex
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 0
    functionsReached:
    - packet_is_author_reply
    - HEXIT
    - packet_is_acct_reply
    - print_args
    - packet_is_acct_request
    - packet_is_author_request
    - PRINT
    - fr_nbo_to_uint32
    - fr_assert
    - REQUIRE
    - packet_is_authen_reply
    - print_hex
    - packet_is_authen_start_request
    - fr_nbo_to_uint16
    - packet_is_authen_continue
    - ASCII
    linkageType: ''
    returnType: void
    signature: void _fr_tacacs_packet_log_hex(fr_log_t const *log, fr_tacacs_packet_t
      const *packet, size_t packet_len, char const *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _length
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: REQUIRE
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE(_length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:595,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:601,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 586
    functionDepth: 8
    functionLinenumber: 586
    functionLinenumberEnd: 608
    functionName: fr_tacacs_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 4
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_tacacs_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:614,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 620
    functionName: fr_tacacs_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 4
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_tacacs_global_free(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:630,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:634,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:637,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:649,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:656,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/tacacs/base.c:656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 664
    functionName: attr_valid
    functionSourceFile: /src/freeradius-server/src/protocols/tacacs/base.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - strcmp
    - fr_type_to_str
    linkageType: ''
    returnType: bool
    signature: bool attr_valid(fr_dict_attr_t *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: FR_ARP_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/arp/arp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_ARP_PACKET_CODE_VALID(_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:124,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/arp/base.c:128,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/arp/base.c:131,1
    - Dst: strlcpy
      Src: /src/freeradius-server/src/protocols/arp/base.c:133,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/arp/base.c:135,1
    - Dst: ioctl
      Src: /src/freeradius-server/src/protocols/arp/base.c:138,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/arp/base.c:139,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/arp/base.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - fd
    - interface
    - ipaddr
    - macaddr
    argTypes:
    - int
    - char*
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: fr_arp_entry_add
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - memcpy
    - fr_strerror_printf
    - fr_syserror
    - fr_strerror_const
    - memset
    - strlcpy
    - ioctl
    linkageType: ''
    returnType: int
    signature: int fr_arp_entry_add(int fd, char const *interface, uint8_t ipaddr[static
      4], uint8_t macaddr[static 6])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - int
    - interface
    - uint8_t
    - macaddr
    argTypes:
    - UNUSED
    - UNUSED*
    - UNUSED[]
    - UNUSED[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: fr_arp_entry_add
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: "int fr_arp_entry_add(UNUSED int fd, UNUSED char const *interface,\n\t\t
      \    UNUSED uint8_t ipaddr[static 4], UNUSED uint8_t macaddr[static 6])"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:168,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/arp/base.c:173,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/arp/base.c:180,1
    - Dst: LLADDR
      Src: /src/freeradius-server/src/protocols/arp/base.c:180,1
    - Dst: snl_init
      Src: /src/freeradius-server/src/protocols/arp/base.c:182,1
    - Dst: modfind
      Src: /src/freeradius-server/src/protocols/arp/base.c:183,1
    - Dst: kldload
      Src: /src/freeradius-server/src/protocols/arp/base.c:184,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:185,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:190,1
    - Dst: snl_init
      Src: /src/freeradius-server/src/protocols/arp/base.c:193,1
    - Dst: snl_init_writer
      Src: /src/freeradius-server/src/protocols/arp/base.c:196,1
    - Dst: snl_create_msg_request
      Src: /src/freeradius-server/src/protocols/arp/base.c:197,1
    - Dst: snl_reserve_msg_object
      Src: /src/freeradius-server/src/protocols/arp/base.c:200,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:202,1
    - Dst: snl_free
      Src: /src/freeradius-server/src/protocols/arp/base.c:204,1
    - Dst: snl_add_msg_attr_ip
      Src: /src/freeradius-server/src/protocols/arp/base.c:212,1
    - Dst: snl_add_msg_attr
      Src: /src/freeradius-server/src/protocols/arp/base.c:213,1
    - Dst: LLADDR
      Src: /src/freeradius-server/src/protocols/arp/base.c:213,1
    - Dst: snl_finalize_msg
      Src: /src/freeradius-server/src/protocols/arp/base.c:215,1
    - Dst: snl_send_message
      Src: /src/freeradius-server/src/protocols/arp/base.c:215,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:216,1
    - Dst: snl_read_reply_code
      Src: /src/freeradius-server/src/protocols/arp/base.c:220,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/arp/base.c:222,1
    - Dst: strerror
      Src: /src/freeradius-server/src/protocols/arp/base.c:222,1
    - Dst: snl_free
      Src: /src/freeradius-server/src/protocols/arp/base.c:226,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 3
    argNames:
    - ifindex
    - ipaddr
    - macaddr
    argTypes:
    - uint32_t
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 229
    functionName: fr_bsd_arp_entry_add
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - kldload
    - snl_add_msg_attr_ip
    - snl_send_message
    - memcpy
    - snl_init
    - fr_strerror_printf
    - snl_init_writer
    - snl_read_reply_code
    - snl_reserve_msg_object
    - snl_add_msg_attr
    - LLADDR
    - strerror
    - snl_finalize_msg
    - snl_free
    - fr_strerror_const
    - snl_create_msg_request
    - modfind
    linkageType: ''
    returnType: int
    signature: int fr_bsd_arp_entry_add(uint32_t ifindex, uint8_t ipaddr[static 4],
      uint8_t macaddr[static 6])
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/arp/base.c:242,1
    - Dst: fr_pair_list_empty
      Src: /src/freeradius-server/src/protocols/arp/base.c:244,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:245,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/protocols/arp/base.c:252,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:259,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/arp/base.c:263,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/arp/base.c:264,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/arp/base.c:269,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/arp/base.c:277,1
    - Dst: COPY
      Src: /src/freeradius-server/src/protocols/arp/base.c:299,1
    - Dst: COPY
      Src: /src/freeradius-server/src/protocols/arp/base.c:300,1
    - Dst: COPY
      Src: /src/freeradius-server/src/protocols/arp/base.c:301,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/arp/base.c:304,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - dbuff
    - original
    - vps
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 305
    functionName: fr_arp_encode
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - fr_pair_list_empty
    - fr_dbuff_set
    - COPY
    - fr_dbuff_start
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - fr_struct_to_network
    - fr_strerror_const
    - fr_pair_dcursor_by_ancestor_init
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_arp_encode(fr_dbuff_t *dbuff, uint8_t const *original, fr_pair_list_t
      *vps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: COPY
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY(_a, _b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/arp/base.c:315,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:324,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:329,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:334,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/arp/base.c:339,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/arp/base.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - out
    - packet
    - packet_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 310
    functionDepth: 6
    functionLinenumber: 310
    functionLinenumberEnd: 348
    functionName: fr_arp_decode
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_const
    - fr_struct_from_network
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_arp_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t
      const *packet, size_t packet_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/arp/base.c:359,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/arp/base.c:365,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/arp/base.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 350
    functionDepth: 8
    functionLinenumber: 350
    functionLinenumberEnd: 371
    functionName: fr_arp_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_arp_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/arp/base.c:375,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/arp/base.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: fr_arp_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_arp_global_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/arp/base.c:402,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/arp/base.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 410
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_arp_encode
      Src: /src/freeradius-server/src/protocols/arp/base.c:421,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/arp/base.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 7
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: fr_arp_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 0
    functionsReached:
    - FR_DBUFF_TMP
    - fr_arp_encode
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_arp_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_arp_decode
      Src: /src/freeradius-server/src/protocols/arp/base.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 7
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: fr_arp_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/arp/base.c
    functionUses: 0
    functionsReached:
    - fr_arp_decode
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_arp_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \  uint8_t const *data, size_t data_len, UNUSED void *proto_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/protocols/cbor/base.c:11,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/cbor/base.c:13,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/cbor/base.c:15,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/cbor/base.c:21,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/cbor/base.c:22,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/cbor/base.c:23,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/cbor/base.c:26,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/cbor/base.c:28,1
    - Dst: fr_cbor_decode_pair
      Src: /src/freeradius-server/src/protocols/cbor/base.c:32,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/cbor/base.c:33,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/cbor/base.c:33,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/cbor/base.c:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 4
    functionDepth: 7
    functionLinenumber: 4
    functionLinenumberEnd: 37
    functionName: decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/cbor/base.c
    functionUses: 11
    functionsReached:
    - FR_DBUFF_ERROR_OFFSET
    - fr_dbuff_current
    - fr_dbuff_extend_lowat
    - fr_dbuff_init
    - fr_strerror_printf
    - fr_dbuff_used
    - fr_dbuff_advance
    - FR_DBUFF_OUT_RETURN
    - fr_cbor_decode_pair
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *parent,\n\t\t\t   uint8_t const *data, size_t data_len, UNUSED void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/cbor/base.c:41,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/cbor/base.c:44,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/cbor/base.c:46,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/cbor/base.c:48,1
    - Dst: fr_cbor_encode_pair
      Src: /src/freeradius-server/src/protocols/cbor/base.c:51,1
    - Dst: FR_DBUFF_ERROR_OFFSET
      Src: /src/freeradius-server/src/protocols/cbor/base.c:52,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/cbor/base.c:52,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/cbor/base.c:55,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/cbor/base.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: encode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/cbor/base.c
    functionUses: 7
    functionsReached:
    - fr_cbor_encode_pair
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_ERROR_OFFSET
    - fr_dcursor_next
    - fr_dbuff_used
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, UNUSED
      void *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/src/protocols/cbor/base.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - TALLOC_CTX *ctx
    - dict
    - root_da
    argTypes:
    - void**
    - UNUSED
    - fr_dict_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/cbor/base.c
    functionUses: 0
    functionsReached:
    - UNCONST
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, UNUSED TALLOC_CTX *ctx, fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_INIT
      Src: /src/freeradius-server/src/protocols/cbor/base.c:86,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/cbor/base.c:88,1
    - Dst: encode_pair
      Src: /src/freeradius-server/src/protocols/cbor/base.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/cbor/base.c
    functionUses: 0
    functionsReached:
    - encode_pair
    - fr_pair_dcursor_init
    - FR_DBUFF_INIT
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t *vps, uint8_t
      *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_pair
      Src: /src/freeradius-server/src/protocols/cbor/base.c:96,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/cbor/base.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/cbor/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_root
    - decode_pair
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t
      const *data, size_t data_len, void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: FR_VMPS_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_VMPS_PACKET_CODE_VALID(_code)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:99,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:109,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:116,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:123,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - packet
    - packet_len
    argTypes:
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 151
    functionName: fr_vmps_ok
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: bool
    signature: bool fr_vmps_ok(uint8_t const *packet, size_t *packet_len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:163,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:166,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:172,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:174,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:178,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:180,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:183,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:185,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:197,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:201,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:202,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:212,1
    - Dst: fr_pair_afrom_child_num
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:219,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:219,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:221,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:230,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:231,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:232,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:238,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - code
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 246
    functionName: fr_vmps_decode
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - fr_value_box_from_network
    - talloc_free
    - fr_strerror_printf
    - fr_pair_append
    - fr_dict_root
    - fr_nbo_to_uint32
    - FR_DBUFF_TMP
    - fr_pair_afrom_child_num
    - fr_strerror_const
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: int
    signature: int fr_vmps_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t const
      *data, size_t data_len, unsigned int *code)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:272,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:281,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:282,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:287,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:293,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:295,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:301,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:305,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:305,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:306,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:307,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:312,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:312,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:313,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:314,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:319,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:319,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:320,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:321,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:325,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:334,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:337,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:337,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:338,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:341,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:344,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:348,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:354,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:354,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:355,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:357,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 5
    argNames:
    - dbuff
    - original
    - code
    - seq_no
    - cursor
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - int
    - uint32_t
    - fr_dcursor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 358
    functionName: fr_vmps_encode
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_current
    - fr_dcursor_next
    - fr_type_is_leaf
    - fr_dbuff_marker
    - fr_value_box_to_network
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_vmps_encode(fr_dbuff_t *dbuff, uint8_t const *original,\n\t\t
      \      int code, uint32_t seq_no, fr_dcursor_t *cursor)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 444
    functionName: fr_vmps_packet_size
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_vmps_packet_size(uint8_t const *data, size_t data_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:453,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:454,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:455,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - ptr
    - attrlen
    - depth
    argTypes:
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: print_hex_data
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_hex_data(uint8_t const *ptr, int attrlen, int depth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:472,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:475,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:477,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:481,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:483,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:486,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:488,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:489,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:491,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:498,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:499,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:501,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:504,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:506,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - fp
    - packet
    - packet_len
    argTypes:
    - FILE*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 508
    functionName: fr_vmps_print_hex
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - ntohl
    - memcpy
    - fprintf
    - print_hex_data
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: void
    signature: void fr_vmps_print_hex(FILE *fp, uint8_t const *packet, size_t packet_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_decode
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: fr_vmps_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_decode
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_vmps_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \   uint8_t const *data, size_t data_len, void *proto_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_global_free
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fr_vmps_ctx_t *proto_ctx
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: _decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_global_free
    linkageType: ''
    returnType: int
    signature: int _decode_test_ctx(UNUSED fr_vmps_ctx_t *proto_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_global_init
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:531,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:533,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 541
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_global_init
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:556,1
    - Dst: fr_vmps_encode
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:558,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: fr_vmps_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - FR_DBUFF_TMP
    - fr_vmps_encode
    - fr_pair_dcursor_iter_init
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_vmps_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_global_free
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fr_vmps_ctx_t *proto_ctx
    argTypes:
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: _encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_global_free
    linkageType: ''
    returnType: int
    signature: int _encode_test_ctx(UNUSED fr_vmps_ctx_t *proto_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_vmps_global_init
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:573,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:575,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/vmps/vmps.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 583
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/vmps.c
    functionUses: 0
    functionsReached:
    - fr_vmps_global_init
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/vmps/base.c:64,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/vmps/base.c:70,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/vmps/base.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: fr_vmps_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/base.c
    functionUses: 3
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_vmps_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/vmps/base.c:81,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/vmps/base.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: fr_vmps_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/vmps/base.c
    functionUses: 3
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_vmps_global_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: FR_BFD_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/bfd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_BFD_PACKET_CODE_VALID(_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:40,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:42,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:45,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:46,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:48,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:52,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: decode_value
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/decode.c
    functionUses: 6
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - fr_value_box_from_network
    - talloc_free
    - fr_pair_append
    - FR_DBUFF_TMP
    - fr_assert
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t    uint8_t const *data, size_t const
      data_len, UNUSED void *decode_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:78,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:87,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:90,1
    - Dst: fr_internal_decode_list_dbuff
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:92,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:92,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:93,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:94,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - ctx
    - out
    - packet
    - packet_len
    - secret
    - secret_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - char*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 100
    functionName: fr_bfd_decode
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/decode.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_list_num_elements
    - TALLOC_FREE
    - fr_dbuff_init
    - fr_pair_append
    - fr_struct_from_network
    - fr_internal_decode_list_dbuff
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_bfd_decode(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t
      \     uint8_t const *packet, size_t packet_len,\n\t\t      char const *secret,
      UNUSED size_t secret_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:107,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:108,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/decode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_strdup
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:121,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:124,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:131,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:136,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:141,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:146,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:151,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:156,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:163,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:170,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:172,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:177,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:183,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:185,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:188,1
    - Dst: fr_bfd_decode
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:192,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/bfd/decode.c:193,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 116
    functionDepth: 9
    functionLinenumber: 116
    functionLinenumberEnd: 194
    functionName: fr_bfd_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_pair_append
    - talloc_get_type_abort
    - fr_bfd_decode
    - talloc_strlen
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_bfd_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \  uint8_t const *data, size_t data_len, void *proto_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:48,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:51,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:53,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:54,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:60,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:69,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:74,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:78,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:79,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:80,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:84,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:89,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:89,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:89,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:91,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:92,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 95
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/encode.c
    functionUses: 7
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_dbuff_start
    - fr_value_box_to_network
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    - fr_struct_to_network
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_value(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:107,1
    - Dst: fr_pair_dcursor_by_ancestor_init
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:110,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:111,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:117,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:118,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:120,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:127,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:142,1
    - Dst: fr_bfd_sign
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:151,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:159,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - out
    - outlen
    - original
    - secret
    - secret_len
    - vps
    argTypes:
    - uint8_t*
    - size_t
    - UNUSED*
    - char*
    - size_t
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 162
    functionName: fr_bfd_encode
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/encode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_start
    - fr_bfd_sign
    - fr_proto_da_stack_build
    - FR_DBUFF_TMP
    - FR_PROTO_STACK_PRINT
    - fr_struct_to_network
    - fr_strerror_const
    - fr_pair_dcursor_by_ancestor_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_bfd_encode(uint8_t *out, size_t outlen, UNUSED uint8_t
      const *original,\n\t\t      char const *secret, size_t secret_len, fr_pair_list_t
      *vps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:170,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_strdup
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:182,1
    - Dst: fr_bfd_encode
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:191,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:191,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:194,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:197,1
    - Dst: fr_internal_encode_list
      Src: /src/freeradius-server/src/protocols/bfd/encode.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 180
    functionDepth: 7
    functionLinenumber: 180
    functionLinenumberEnd: 202
    functionName: fr_bfd_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_init
    - fr_internal_encode_list
    - talloc_get_type_abort
    - fr_bfd_encode
    - talloc_strlen
    - fr_pair_find_by_da
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_bfd_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, void *proto_ctx)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 3
    argNames:
    - err
    - packet
    - packet_len
    argTypes:
    - char**
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 218
    functionName: fr_bfd_packet_ok
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/base.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_bfd_packet_ok(char const **err, uint8_t const *packet, size_t
      packet_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/bfd/base.c:231,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/bfd/base.c:237,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/bfd/base.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 8
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: fr_bfd_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_bfd_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/bfd/base.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: fr_bfd_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/bfd/base.c
    functionUses: 1
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_bfd_global_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: IS_DER_TAG_CONTINUATION
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DER_TAG_CONTINUATION(_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: IS_DER_TAG_CONSTRUCTED
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DER_TAG_CONSTRUCTED(_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: IS_DER_LEN_MULTI_BYTE
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DER_LEN_MULTI_BYTE(_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:80,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:83,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:85,1
    - Dst: fr_type_is_bool
      Src: /src/freeradius-server/src/protocols/der/decode.c:85,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:101,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:105,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:107,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:108,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:113,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:114,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:115,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:121,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 124
    functionName: fr_der_decode_boolean
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - fr_dbuff_set
    - fr_type_is_bool
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_assert
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_boolean(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent, fr_dbuff_t *in,\n\t\t\t\t     UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:130,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:135,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:138,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:139,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:144,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:163,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:186,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:189,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:199,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:203,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:204,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:205,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:211,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 214
    functionName: fr_der_decode_integer
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - fr_pair_append
    - fr_dbuff_remaining
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_type_to_str
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_integer(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent, fr_dbuff_t *in,\n\t\t\t\t     UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:220,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:225,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:227,1
    - Dst: fr_type_is_octets
      Src: /src/freeradius-server/src/protocols/der/decode.c:227,1
    - Dst: fr_type_is_struct
      Src: /src/freeradius-server/src/protocols/der/decode.c:227,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:263,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:265,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:269,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:274,1
    - Dst: fr_type_is_struct
      Src: /src/freeradius-server/src/protocols/der/decode.c:278,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:280,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/der/decode.c:293,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:294,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:295,1
    - Dst: fr_type_is_octets
      Src: /src/freeradius-server/src/protocols/der/decode.c:299,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:310,1
    - Dst: fr_type_is_struct
      Src: /src/freeradius-server/src/protocols/der/decode.c:324,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/der/decode.c:327,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:332,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:333,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:336,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:340,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:341,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:344,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:345,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:346,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/der/decode.c:353,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:355,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:357,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 358
    functionName: fr_der_decode_bitstring
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_set
    - fr_pair_afrom_da
    - talloc_array
    - talloc_free
    - fr_type_is_octets
    - fr_pair_append
    - fr_struct_from_network
    - fr_type_is_struct
    - fr_dbuff_remaining
    - fr_pair_value_memdup
    - fr_assert
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_bitstring(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t       fr_dbuff_t *in, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:364,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:367,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:369,1
    - Dst: fr_type_is_octets
      Src: /src/freeradius-server/src/protocols/der/decode.c:369,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:396,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:397,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:399,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:403,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/protocols/der/decode.c:403,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:404,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/protocols/der/decode.c:408,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:410,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 413
    functionName: fr_der_decode_octetstring
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - fr_pair_value_mem_alloc
    - talloc_free
    - fr_type_is_octets
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_assert
    - fr_strerror_const_push
    - FR_DBUFF
    - fr_dbuff_out_memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_octetstring(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:419,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:421,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:422,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:432,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:433,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:434,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:438,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 441
    functionName: fr_der_decode_null
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_strerror_const_push
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_null(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *parent, fr_dbuff_t *in,\n\t\t\t\t  UNUSED fr_der_decode_ctx_t *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/decode.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - subidentifier
    - uctx
    - is_last
    argTypes:
    - uint64_t
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 470
    functionName: fr_der_decode_oid_to_stack
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_decode_oid_to_stack(uint64_t subidentifier, void *uctx,
      UNUSED bool is_last)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/decode.c:493,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/der/decode.c:494,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:497,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:498,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:499,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:501,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:504,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:505,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:508,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:512,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:518,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:522,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:527,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:529,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:531,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:535,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:537,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:539,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:542,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:544,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - subidentifier
    - uctx
    - is_last
    argTypes:
    - uint64_t
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 487
    functionDepth: 5
    functionLinenumber: 487
    functionLinenumberEnd: 552
    functionName: fr_der_decode_oid_to_da
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - FR_PROTO_TRACE
    - talloc_free
    - fr_type_is_group
    - fr_pair_append
    - fr_dict_attr_child_by_num
    - fr_strerror_const_push
    - fr_dict_attr_ref
    - fr_dict_attr_unknown_typed_afrom_num
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_decode_oid_to_da(uint64_t subidentifier, void *uctx,
      bool is_last)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:565,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:569,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:613,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:614,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:614,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:627,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:631,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:647,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:655,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:683,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:684,1
    - Dst: func
      Src: /src/freeradius-server/src/protocols/der/decode.c:684,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/decode.c:691,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:696,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:697,1
    - Dst: func
      Src: /src/freeradius-server/src/protocols/der/decode.c:697,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:706,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 3
    argNames:
    - in
    - func
    - uctx
    argTypes:
    - fr_dbuff_t*
    - fr_der_decode_oid_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 707
    functionName: fr_der_decode_oid
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_current
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - fr_dbuff_remaining
    - func
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_decode_oid(fr_dbuff_t *in, fr_der_decode_oid_t func,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 718
    functionName: fr_der_decode_utf8_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_utf8_string(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t fr_dbuff_t *in, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:725,1
    - Dst: fr_der_attr_flags
      Src: /src/freeradius-server/src/protocols/der/decode.c:726,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:728,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/protocols/der/decode.c:728,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/decode.c:728,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:747,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:748,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:752,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:753,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:754,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:762,1
    - Dst: fr_dict_attr_iterate_children
      Src: /src/freeradius-server/src/protocols/der/decode.c:764,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:766,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:768,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:776,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:780,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:782,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:792,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:795,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:799,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:803,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/decode.c:809,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:815,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:820,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:822,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:823,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:827,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:829,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:834,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:835,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:836,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:841,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:843,1
    - Dst: fr_dict_attr_iterate_children
      Src: /src/freeradius-server/src/protocols/der/decode.c:852,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:855,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:857,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:858,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:859,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:860,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:871,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:872,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:873,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:873,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:873,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/der/decode.c:875,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:875,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:878,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:880,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 881
    functionName: fr_der_decode_sequence
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_pair_dbuff
    - fr_der_attr_flags
    - fr_dict_attr_iterate_children
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_dict_attr_unknown_raw_afrom_num
    - unlikely
    - FR_PROTO_HEX_DUMP
    - fr_type_is_group
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_dict_attr_ext
    - fr_dbuff_advance
    - fr_strerror_const_push
    - fr_pair_afrom_da
    - fr_dbuff_current
    - fr_assert
    - fr_der_tag_to_str
    - fr_strerror_printf_push
    - fr_dbuff_set
    - talloc_free
    - FR_PROTO_TRACE
    - fr_dict_attr_child_by_num
    - fr_type_is_tlv
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_sequence(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t      fr_dbuff_t *in, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:888,1
    - Dst: fr_der_attr_flags
      Src: /src/freeradius-server/src/protocols/der/decode.c:892,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:894,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/protocols/der/decode.c:894,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/decode.c:894,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:911,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:912,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:916,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:917,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:918,1
    - Dst: fr_dict_attr_iterate_children
      Src: /src/freeradius-server/src/protocols/der/decode.c:934,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:936,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/decode.c:940,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:942,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:945,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:948,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:950,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:950,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:953,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:954,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:958,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:965,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/der/decode.c:967,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:967,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:970,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:971,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:974,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:983,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:983,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:985,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:986,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:998,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:1000,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1001,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1002,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1007,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1009,1
    - Dst: fr_dict_attr_iterate_children
      Src: /src/freeradius-server/src/protocols/der/decode.c:1016,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:1020,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1022,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:1023,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1028,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1030,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1031,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:1032,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1041,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:1047,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1048,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1049,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:1050,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1061,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:1062,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:1063,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:1063,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1063,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/der/decode.c:1065,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1065,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1068,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1070,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 92
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 883
    functionDepth: 4
    functionLinenumber: 883
    functionLinenumberEnd: 1071
    functionName: fr_der_decode_set
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_pair_dbuff
    - fr_der_attr_flags
    - fr_dict_attr_iterate_children
    - fr_dbuff_marker
    - fr_der_decode_hdr
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - unlikely
    - FR_PROTO_HEX_DUMP
    - fr_type_is_group
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_dbuff_advance
    - fr_strerror_const_push
    - fr_pair_afrom_da
    - fr_dbuff_current
    - fr_assert
    - fr_strerror_printf_push
    - fr_dbuff_set
    - FR_PROTO_TRACE
    - talloc_free
    - fr_type_is_tlv
    - fr_dbuff_set_end
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_set(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *parent, fr_dbuff_t *in,\n\t\t\t\t fr_der_decode_ctx_t *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1089
    functionName: fr_der_decode_printable_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_printable_string(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t      fr_dbuff_t *in, UNUSED
      fr_der_decode_ctx_t *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1127
    functionName: fr_der_decode_t61_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_t61_string(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t\tfr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1142
    functionName: fr_der_decode_ia5_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_ia5_string(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t\tfr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1148,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1153,1
    - Dst: fr_type_is_date
      Src: /src/freeradius-server/src/protocols/der/decode.c:1153,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1191,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/der/decode.c:1193,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1194,1
    - Dst: strptime
      Src: /src/freeradius-server/src/protocols/der/decode.c:1200,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1202,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1203,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1207,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1208,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1209,1
    - Dst: fr_unix_time_from_tm
      Src: /src/freeradius-server/src/protocols/der/decode.c:1213,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1215,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1144
    functionDepth: 3
    functionLinenumber: 1144
    functionLinenumberEnd: 1218
    functionName: fr_der_decode_utc_time
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - strptime
    - memchr
    - fr_pair_append
    - fr_assert
    - fr_strerror_const_push
    - FR_DBUFF
    - fr_unix_time_from_tm
    - fr_type_is_date
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_utc_time(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t      fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1224,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1230,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1232,1
    - Dst: fr_type_is_date
      Src: /src/freeradius-server/src/protocols/der/decode.c:1232,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1235,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1277,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/der/decode.c:1279,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1280,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1285,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1300,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1300,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1301,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1304,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1305,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1309,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/der/decode.c:1311,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1312,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/protocols/der/decode.c:1321,1
    - Dst: strptime
      Src: /src/freeradius-server/src/protocols/der/decode.c:1349,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1351,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1352,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1356,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1357,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1358,1
    - Dst: fr_unix_time_add
      Src: /src/freeradius-server/src/protocols/der/decode.c:1362,1
    - Dst: fr_unix_time_from_tm
      Src: /src/freeradius-server/src/protocols/der/decode.c:1362,1
    - Dst: fr_time_delta_wrap
      Src: /src/freeradius-server/src/protocols/der/decode.c:1362,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1364,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/der/decode.c:1370,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1370,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1220
    functionDepth: 3
    functionLinenumber: 1220
    functionLinenumberEnd: 1373
    functionName: fr_der_decode_generalized_time
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - fr_time_delta_wrap
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_unix_time_add
    - strptime
    - memchr
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_dbuff_advance
    - fr_assert
    - fr_strerror_const_push
    - FR_DBUFF
    - strtoul
    - fr_unix_time_from_tm
    - fr_type_is_date
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_generalized_time(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t      fr_dbuff_t *in, UNUSED
      fr_der_decode_ctx_t *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1392
    functionName: fr_der_decode_visible_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_visible_string(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t    fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1405
    functionName: fr_der_decode_general_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_general_string(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t    fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_decode_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1411
    functionName: fr_der_decode_universal_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_string
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_universal_string(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t      fr_dbuff_t *in, UNUSED
      fr_der_decode_ctx_t *decode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1418,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1434,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1435,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1436,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1440,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1442,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1446,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1447,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1448,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1454,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1456,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1413
    functionDepth: 3
    functionLinenumber: 1413
    functionLinenumberEnd: 1459
    functionName: fr_der_decode_ipv4_addr
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_pair_append
    - fr_dbuff_remaining
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_ipv4_addr(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t       fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1466,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1467,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1484,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1490,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1492,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1496,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1497,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1498,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1505,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1507,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1461
    functionDepth: 3
    functionLinenumber: 1461
    functionLinenumberEnd: 1510
    functionName: fr_der_decode_ipv4_prefix
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_pair_append
    - fr_dbuff_remaining
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_ipv4_prefix(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t       fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1517,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1533,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1534,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1535,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1539,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1541,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1545,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1546,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1547,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1553,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1555,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1512
    functionDepth: 3
    functionLinenumber: 1512
    functionLinenumberEnd: 1558
    functionName: fr_der_decode_ipv6_addr
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_pair_append
    - fr_dbuff_remaining
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_ipv6_addr(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t       fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1565,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1566,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1583,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1589,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1591,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1595,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1596,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1597,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1604,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1606,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1609
    functionName: fr_der_decode_ipv6_prefix
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_pair_append
    - fr_dbuff_remaining
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_strerror_const_push
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_ipv6_prefix(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t       fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1615,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:1616,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1630,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1635,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1636,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1637,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1644,1
    - Dst: FR_DBUFF_OUT_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1649,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1652,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1611
    functionDepth: 3
    functionLinenumber: 1611
    functionLinenumberEnd: 1655
    functionName: fr_der_decode_combo_ip_addr
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - FR_DBUFF_OUT_MEMCPY_RETURN
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_strerror_const_push
    - FR_DBUFF
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_combo_ip_addr(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t   fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1669,1
    - Dst: fr_der_decode_oid
      Src: /src/freeradius-server/src/protocols/der/decode.c:1676,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1677,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1679,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1680,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1682,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:1690,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:1700,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:1702,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1709,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1657
    functionDepth: 5
    functionLinenumber: 1657
    functionLinenumberEnd: 1711
    functionName: fr_der_decode_oid_wrapper
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - talloc_free
    - fr_pair_append
    - fr_der_decode_oid
    - fr_assert
    - fr_strerror_const_push
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_typed_afrom_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_oid_wrapper(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t fr_dbuff_t *in, UNUSED fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1726,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:1735,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1737,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/decode.c:1737,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1747,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:1747,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1749,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:1753,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:1755,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1756,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1757,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/der/decode.c:1762,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1765,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1770,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/der/decode.c:1771,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:1771,1
    - Dst: fr_der_decode_oid
      Src: /src/freeradius-server/src/protocols/der/decode.c:1773,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1774,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:1779,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1781,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1786,1
    - Dst: fr_der_decode_octetstring
      Src: /src/freeradius-server/src/protocols/der/decode.c:1786,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1788,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1791,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:1791,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1793,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:1797,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:1799,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1723
    functionDepth: 4
    functionLinenumber: 1723
    functionLinenumberEnd: 1800
    functionName: fr_der_decode_oid_and_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - fr_der_decode_octetstring
    - fr_dbuff_current
    - FR_DBUFF_ADVANCE_RETURN
    - fr_der_decode_pair_dbuff
    - FR_PROTO_TRACE
    - fr_dbuff_set
    - fr_type_is_group
    - fr_pair_append
    - fr_der_decode_oid
    - fr_assert
    - fr_der_decode_hdr
    - fr_strerror_const_push
    - FR_DBUFF
    - fr_dict_attr_ref
    - fr_dbuff_set_end
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_oid_and_value(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dict_attr_t const *parent,\n\t\t\t\t\t   fr_dbuff_t *in, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:1852,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/der/decode.c:1860,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1862,1
    - Dst: IS_DER_TAG_CONSTRUCTED
      Src: /src/freeradius-server/src/protocols/der/decode.c:1870,1
    - Dst: IS_DER_TAG_CONTINUATION
      Src: /src/freeradius-server/src/protocols/der/decode.c:1875,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1885,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1897,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1902,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:1903,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:1903,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1913,1
    - Dst: fr_der_attr_flags
      Src: /src/freeradius-server/src/protocols/der/decode.c:1916,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1919,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1931,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1942,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:1943,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:1943,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1947,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1948,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/protocols/der/decode.c:1948,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:1953,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1955,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1956,1
    - Dst: IS_DER_TAG_CONSTRUCTED
      Src: /src/freeradius-server/src/protocols/der/decode.c:1960,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1961,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/der/decode.c:1965,1
    - Dst: IS_DER_LEN_MULTI_BYTE
      Src: /src/freeradius-server/src/protocols/der/decode.c:1970,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:1979,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1980,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/der/decode.c:1985,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:1989,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2000,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/der/decode.c:2000,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2001,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2005,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 5
    argNames:
    - parent
    - in
    - tag
    - len
    - expected
    argTypes:
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - uint8_t*
    - size_t*
    - fr_der_tag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 2006
    functionName: fr_der_decode_hdr
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 2
    functionsReached:
    - unlikely
    - fr_dbuff_set
    - fr_dbuff_out
    - IS_DER_TAG_CONTINUATION
    - IS_DER_LEN_MULTI_BYTE
    - fr_dbuff_extend_lowat
    - fr_der_attr_flags
    - fr_assert
    - IS_DER_TAG_CONSTRUCTED
    - fr_strerror_const_push
    - FR_DBUFF
    - fr_der_tag_to_str
    - NUM_ELEMENTS
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_hdr(fr_dict_attr_t const *parent, fr_dbuff_t
      *in, uint8_t *tag, size_t *len,\n\t\t\t\t fr_der_tag_t expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:2024,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2027,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2029,1
    - Dst: fr_type_is_struct
      Src: /src/freeradius-server/src/protocols/der/decode.c:2029,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/protocols/der/decode.c:2029,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/decode.c:2029,1
    - Dst: FR_DBUFF_OUT_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:2031,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2033,1
    - Dst: IS_DER_TAG_CONTINUATION
      Src: /src/freeradius-server/src/protocols/der/decode.c:2033,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2034,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/der/decode.c:2041,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2042,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2043,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2048,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:2050,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2051,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2052,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/der/decode.c:2055,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2057,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:2057,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2058,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:2059,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:2063,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2065,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2019
    functionDepth: 5
    functionLinenumber: 2019
    functionLinenumberEnd: 2066
    functionName: fr_der_decode_choice
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - fr_dbuff_set
    - fr_pair_afrom_da
    - fr_dbuff_current
    - IS_DER_TAG_CONTINUATION
    - fr_der_decode_pair_dbuff
    - talloc_free
    - fr_type_is_group
    - fr_pair_append
    - fr_type_is_struct
    - fr_assert
    - FR_DBUFF_OUT_RETURN
    - FR_DBUFF
    - fr_dict_attr_child_by_num
    - fr_strerror_const_push
    - PAIR_ALLOCED
    - fr_type_is_tlv
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_choice(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t    fr_dbuff_t *in, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:2081,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:2090,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:2091,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2092,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2092,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2092,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2094,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/decode.c:2094,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2130,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:2130,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2131,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2135,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2136,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:2144,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2145,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2147,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/der/decode.c:2150,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/der/decode.c:2155,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2156,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/protocols/der/decode.c:2157,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2158,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:2160,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2161,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:2162,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/der/decode.c:2165,1
    - Dst: fr_der_flag_max
      Src: /src/freeradius-server/src/protocols/der/decode.c:2167,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2176,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:2177,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2182,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2182,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2182,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2185,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2189,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:2189,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2190,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:2193,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/der/decode.c:2200,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2200,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2205,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:2205,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2206,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:2219,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/der/decode.c:2220,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2220,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:2222,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2223,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2223,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2223,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/decode.c:2228,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2233,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:2233,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2234,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2254,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/der/decode.c:2254,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2255,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2272,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:2272,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2273,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2281,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2282,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:2283,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2292,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2292,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2292,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2298,1
    - Dst: fr_der_decode_oid
      Src: /src/freeradius-server/src/protocols/der/decode.c:2298,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2299,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2306,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2308,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2308,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2308,1
    - Dst: fr_der_decode_octetstring
      Src: /src/freeradius-server/src/protocols/der/decode.c:2314,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:2317,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2320,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2321,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2325,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2326,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2331,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2331,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2331,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2335,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/der/decode.c:2338,1
    - Dst: fr_pair_prepend
      Src: /src/freeradius-server/src/protocols/der/decode.c:2339,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:2341,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:2344,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2346,1
    - Dst: fr_dbuff_end
      Src: /src/freeradius-server/src/protocols/der/decode.c:2346,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 125
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - parent
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dbuff_t*
    - fr_dict_attr_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2078
    functionDepth: 6
    functionLinenumber: 2078
    functionLinenumberEnd: 2347
    functionName: fr_der_decode_x509_extensions
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - fr_der_decode_pair_dbuff
    - fr_der_flag_max
    - fr_der_decode_hdr
    - FR_DBUFF
    - unlikely
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_ADVANCE_RETURN
    - fr_type_is_group
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_strerror_const_push
    - PAIR_ALLOCED
    - fr_pair_afrom_da
    - fr_dbuff_out
    - fr_dbuff_current
    - fr_dict_attr_by_name
    - fr_der_decode_octetstring
    - fr_der_decode_oid
    - fr_assert
    - fr_pair_prepend
    - fr_der_tag_to_str
    - fr_strerror_printf_push
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - FR_PROTO_TRACE
    - talloc_free
    - fr_dbuff_end
    - fr_dict_attr_ref
    - fr_dbuff_set_end
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_x509_extensions(TALLOC_CTX *ctx, fr_pair_list_t
      *out, fr_dbuff_t *in,\n\t\t\t\t\t     fr_dict_attr_t const *parent, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:2353,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2356,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2358,1
    - Dst: fr_type_is_string
      Src: /src/freeradius-server/src/protocols/der/decode.c:2358,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:2373,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2374,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2376,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/der/decode.c:2379,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2381,1
    - Dst: fr_pair_value_bstr_alloc
      Src: /src/freeradius-server/src/protocols/der/decode.c:2381,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:2382,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/protocols/der/decode.c:2386,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/protocols/der/decode.c:2390,1
    - Dst: fr_sbuff_adv_past_allowed
      Src: /src/freeradius-server/src/protocols/der/decode.c:2392,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2394,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:2404,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2406,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - in
    - allowed_chars
    - fr_der_decode_ctx_t *decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - bool[]
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2349
    functionDepth: 3
    functionLinenumber: 2349
    functionLinenumberEnd: 2407
    functionName: fr_der_decode_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 7
    functionsReached:
    - fr_pair_afrom_da
    - unlikely
    - fr_dbuff_set
    - fr_pair_value_bstr_alloc
    - talloc_free
    - FR_SBUFF_OUT
    - fr_type_is_string
    - fr_strerror_printf_push
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_assert
    - fr_strerror_const_push
    - FR_DBUFF
    - PAIR_ALLOCED
    - fr_dbuff_out_memcpy
    - fr_sbuff_adv_past_allowed
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_string(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent, fr_dbuff_t *in,\n\t\t\t\t    bool const allowed_chars[],
      UNUSED fr_der_decode_ctx_t *decode_ctx)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/decode.c:2412,1
    - Dst: fr_der_attr_flags
      Src: /src/freeradius-server/src/protocols/der/decode.c:2417,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/der/decode.c:2462,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2463,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/decode.c:2464,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2471,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2472,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2479,1
    - Dst: likely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2482,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/der/decode.c:2485,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2486,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2487,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/der/decode.c:2490,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2492,1
    - Dst: fr_value_box_copy
      Src: /src/freeradius-server/src/protocols/der/decode.c:2492,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/decode.c:2493,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/der/decode.c:2499,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2504,1
    - Dst: fr_der_decode_choice
      Src: /src/freeradius-server/src/protocols/der/decode.c:2505,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2507,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2509,1
    - Dst: fr_der_decode_hdr
      Src: /src/freeradius-server/src/protocols/der/decode.c:2512,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2515,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:2519,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/der/decode.c:2524,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2524,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2535,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2544,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2544,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2557,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2574,1
    - Dst: fr_type_to_der_tag_valid
      Src: /src/freeradius-server/src/protocols/der/decode.c:2575,1
    - Dst: fr_der_tags_compatible
      Src: /src/freeradius-server/src/protocols/der/decode.c:2575,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2585,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:2586,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/decode.c:2586,1
    - Dst: fr_der_decode_x509_extensions
      Src: /src/freeradius-server/src/protocols/der/decode.c:2594,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2597,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2602,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2603,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/protocols/der/decode.c:2640,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2643,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2651,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/decode.c:2655,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2657,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2658,1
    - Dst: fr_der_tag_decode_t*::decode
      Src: /src/freeradius-server/src/protocols/der/decode.c:2669,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2670,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/decode.c:2678,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2679,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/decode.c:2679,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/decode.c:2679,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/der/decode.c:2681,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/decode.c:2684,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 128
    argCount: 5
    argNames:
    - ctx
    - out
    - parent
    - in
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - fr_dbuff_t*
    - fr_der_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2409
    functionDepth: 7
    functionLinenumber: 2409
    functionLinenumberEnd: 2685
    functionName: fr_der_decode_pair_dbuff
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 6
    functionsReached:
    - fr_der_attr_flags
    - likely
    - fr_der_tag_decode_t*::decode
    - fr_der_decode_hdr
    - FR_DBUFF
    - fr_der_tags_compatible
    - unlikely
    - fr_der_decode_x509_extensions
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_extend_lowat
    - fr_pair_append
    - fr_dbuff_remaining
    - fr_dbuff_advance
    - fr_strerror_const_push
    - PAIR_ALLOCED
    - fr_strerror_const
    - fr_pair_afrom_da
    - fr_dbuff_current
    - fr_der_decode_choice
    - fr_assert
    - fr_type_to_der_tag_valid
    - fr_der_tag_to_str
    - fr_type_is_variable_size
    - fr_strerror_printf_push
    - fr_dbuff_set
    - talloc_free
    - FR_PROTO_TRACE
    - fr_dbuff_set_end
    - fr_value_box_copy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_pair_dbuff(TALLOC_CTX *ctx, fr_pair_list_t *out,
      fr_dict_attr_t const *parent,\n\t\t\t\t fr_dbuff_t *in, fr_der_decode_ctx_t
      *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2690,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/der/decode.c:2694,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2695,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:2699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2687
    functionDepth: 8
    functionLinenumber: 2687
    functionLinenumberEnd: 2700
    functionName: fr_der_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - FR_DBUFF_TMP
    - fr_dict_root
    - fr_der_decode_pair_dbuff
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,
      uint8_t const *data, size_t data_len,\n\t\t\t\t   void *proto_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/decode.c:2718,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/der/decode.c:2718,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/der/decode.c:2719,1
    - Dst: fr_der_decode_pair_dbuff
      Src: /src/freeradius-server/src/protocols/der/decode.c:2723,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/der/decode.c:2723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2715
    functionDepth: 8
    functionLinenumber: 2715
    functionLinenumberEnd: 2724
    functionName: decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 12
    functionsReached:
    - unlikely
    - fr_der_decode_pair_dbuff
    - FR_DBUFF_TMP
    - fr_dict_root
    - fr_strerror_printf_push
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *parent, uint8_t const *data,\n\t\t\t   size_t data_len, void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/der/decode.c:2734,1
    - Dst: talloc_new
      Src: /src/freeradius-server/src/protocols/der/decode.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2743
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/der/decode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_new
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   fr_dict_attr_t const *root_da)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMP_PREFER_SMALLER
      Src: /src/freeradius-server/src/protocols/der/encode.c:87,1
    - Dst: fr_der_flag_der_type
      Src: /src/freeradius-server/src/protocols/der/encode.c:87,1
    - Dst: fr_der_flag_der_type
      Src: /src/freeradius-server/src/protocols/der/encode.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: fr_der_pair_cmp_by_da_tag
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_der_flag_der_type
    - CMP_PREFER_SMALLER
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_der_pair_cmp_by_da_tag(void const *a, void const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dbuff
    - fr_da_stack_t *da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - UNUSED
    - UNUSED unsigned
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: encode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 8
    functionsReached:
    - encode_value
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_pair(fr_dbuff_t *dbuff, UNUSED fr_da_stack_t *da_stack,
      UNUSED unsigned int depth, fr_dcursor_t *cursor,\n\t\t\t   void *encode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:98,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:102,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:103,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:104,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:121,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 124
    functionName: fr_der_encode_boolean
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_boolean(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:128,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:134,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:135,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:136,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:160,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:161,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:162,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:193,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:201,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:202,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:208,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:212,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 213
    functionName: fr_der_encode_integer
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_integer(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:217,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:222,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:223,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:224,1
    - Dst: fr_type_is_struct
      Src: /src/freeradius-server/src/protocols/der/encode.c:256,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:263,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/encode.c:267,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:268,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/der/encode.c:270,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/der/encode.c:272,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/der/encode.c:274,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:276,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/der/encode.c:276,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:283,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/der/encode.c:283,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:289,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:289,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/der/encode.c:291,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/encode.c:292,1
    - Dst: fr_dbuff_set_end
      Src: /src/freeradius-server/src/protocols/der/encode.c:301,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:301,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:302,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:302,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/der/encode.c:309,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/encode.c:310,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:322,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:322,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:323,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:328,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:329,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:331,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:339,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:342,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:345,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - fr_der_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 346
    functionName: fr_der_encode_bitstring
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_start
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - fr_strerror
    - FR_DBUFF_ADVANCE_RETURN
    - fr_strerror_const
    - fr_dbuff_out
    - fr_dbuff_current
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - fr_dbuff_set
    - fr_type_is_struct
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - fr_struct_to_network
    - fr_dbuff_set_end
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_bitstring(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:350,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:353,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:354,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:355,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:374,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:375,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 378
    functionName: fr_der_encode_ipv4_addr
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_ipv4_addr(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:382,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:386,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:387,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:388,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:391,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:392,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:409,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:410,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:411,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:414,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:418,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 421
    functionName: fr_der_encode_ipv4_prefix
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_ipv4_prefix(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:425,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:428,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:429,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:430,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:449,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:450,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 453
    functionName: fr_der_encode_ipv6_addr
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_ipv6_addr(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:457,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:461,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:462,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:463,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:480,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:481,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:482,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:485,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:489,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 492
    functionName: fr_der_encode_ipv6_prefix
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_ipv6_prefix(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:497,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:500,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:501,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:502,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:516,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:518,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 522
    functionName: fr_der_encode_combo_ip
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_combo_ip(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:528,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:531,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:532,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:559,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 562
    functionName: fr_der_encode_octetstring
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_encode_octetstring(fr_dbuff_t *dbuff, fr_dcursor_t
      *cursor,\n\t\t\t\t\t UNUSED fr_der_encode_ctx_t *encode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:570,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:571,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:572,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fr_dbuff_t *dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - UNUSED
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 587
    functionName: fr_der_encode_null
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_assert
    - fr_strerror_printf
    - PAIR_VERIFY
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_encode_null(UNUSED fr_dbuff_t *dbuff, fr_dcursor_t
      *cursor,\n\t\t\t\t  UNUSED fr_der_encode_ctx_t *encode_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:604,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:615,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:624,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:644,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:650,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - dbuff
    - value
    - component
    - count
    argTypes:
    - fr_dbuff_t*
    - uint64_t
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 651
    functionName: fr_der_encode_oid_from_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_set
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_oid_from_value(fr_dbuff_t *dbuff, uint64_t value,
      uint64_t *component, int *count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:655,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:661,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:662,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:663,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:664,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/der/encode.c:666,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/der/encode.c:667,1
    - Dst: fr_der_encode_oid_from_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:701,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:706,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:710,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 711
    functionName: fr_der_encode_oid
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_der_encode_oid_from_value
    - fr_strerror_printf
    - fr_proto_da_stack_build
    - fr_assert
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_oid(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:717,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:718,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:719,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:721,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/encode.c:721,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/protocols/der/encode.c:721,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/encode.c:739,1
    - Dst: fr_der_flag_is_oid_and_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:739,1
    - Dst: fr_der_encode_oid_and_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:740,1
    - Dst: fr_der_encode_choice
      Src: /src/freeradius-server/src/protocols/der/encode.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - fr_der_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 744
    functionName: fr_der_encode_sequence
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_der_encode_oid_and_value
    - fr_der_encode_choice
    - fr_type_is_group
    - fr_der_flag_is_oid_and_value
    - fr_assert
    - PAIR_VERIFY
    - fr_type_is_tlv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_sequence(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEMCMP_FIELDS
      Src: /src/freeradius-server/src/protocols/der/encode.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - one
    - two
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 760
    functionName: fr_der_encode_set_of_cmp
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - MEMCMP_FIELDS
    linkageType: ''
    returnType: void
    signature: void fr_der_encode_set_of_cmp(void const *one, void const *two)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:764,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:768,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:769,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:770,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:772,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/protocols/der/encode.c:772,1
    - Dst: fr_der_flag_is_set_of
      Src: /src/freeradius-server/src/protocols/der/encode.c:802,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/der/encode.c:816,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:817,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/der/encode.c:822,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/encode.c:822,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:823,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/der/encode.c:825,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:826,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/encode.c:827,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/encode.c:828,1
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:835,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/der/encode.c:835,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/der/encode.c:837,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/der/encode.c:839,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:841,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:843,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:844,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:846,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:847,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:848,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/der/encode.c:848,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/encode.c:849,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:856,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:862,1
    - Dst: qsort
      Src: /src/freeradius-server/src/protocols/der/encode.c:867,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/protocols/der/encode.c:874,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/der/encode.c:878,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:880,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/protocols/der/encode.c:887,1
    - Dst: fr_der_encode_choice
      Src: /src/freeradius-server/src/protocols/der/encode.c:889,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - fr_der_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 890
    functionName: fr_der_encode_set
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - talloc_array
    - fr_dbuff_init
    - fr_der_encode_choice
    - fr_strerror_printf
    - fr_dbuff_in_memcpy
    - fr_pair_list_sort
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - fr_strerror
    - unlikely
    - fr_dbuff_remaining
    - fr_pair_dcursor_child_iter_init
    - fr_strerror_const
    - qsort
    - fr_dbuff_current
    - fr_assert
    - encode_value
    - fr_der_flag_is_set_of
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - talloc_free
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - fr_type_is_tlv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_set(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:894,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/protocols/der/encode.c:901,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:903,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:904,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:905,1
    - Dst: fr_unix_time_to_str
      Src: /src/freeradius-server/src/protocols/der/encode.c:942,1
    - Dst: fr_sbuff_shift
      Src: /src/freeradius-server/src/protocols/der/encode.c:947,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:971,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:973,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 974
    functionName: fr_der_encode_utc_time
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_sbuff_shift
    - fr_dbuff_set
    - FR_SBUFF_OUT
    - fr_unix_time_to_str
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_utc_time(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:979,1
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/protocols/der/encode.c:986,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:988,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:989,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:990,1
    - Dst: fr_unix_time_to_str
      Src: /src/freeradius-server/src/protocols/der/encode.c:1030,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/der/encode.c:1057,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1075,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1077,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 976
    functionDepth: 3
    functionLinenumber: 976
    functionLinenumberEnd: 1078
    functionName: fr_der_encode_generalized_time
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_SBUFF_OUT
    - fr_unix_time_to_str
    - fr_assert
    - strlen
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_encode_generalized_time(fr_dbuff_t *dbuff, fr_dcursor_t
      *cursor,\n\t\t\t\t\t      UNUSED fr_der_encode_ctx_t *encode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1090,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1096,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1097,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1098,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/der/encode.c:1100,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/der/encode.c:1102,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1104,1
    - Dst: fr_pair_cursor_to_network
      Src: /src/freeradius-server/src/protocols/der/encode.c:1106,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - fr_der_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1110
    functionName: fr_der_encode_choice
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 2
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - fr_pair_cursor_to_network
    - fr_assert
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_choice(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1114,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1123,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1124,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1125,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1127,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/encode.c:1127,1
    - Dst: fr_der_flag_max
      Src: /src/freeradius-server/src/protocols/der/encode.c:1159,1
    - Dst: fr_der_encode_tag
      Src: /src/freeradius-server/src/protocols/der/encode.c:1162,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/encode.c:1165,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1166,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/encode.c:1168,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/der/encode.c:1168,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/der/encode.c:1168,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1170,1
    - Dst: fr_dcursor_copy
      Src: /src/freeradius-server/src/protocols/der/encode.c:1171,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/encode.c:1173,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/encode.c:1174,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1176,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1190,1
    - Dst: fr_der_encode_tag
      Src: /src/freeradius-server/src/protocols/der/encode.c:1194,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1197,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1198,1
    - Dst: fr_der_encode_tag
      Src: /src/freeradius-server/src/protocols/der/encode.c:1203,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1206,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1207,1
    - Dst: fr_dcursor_copy
      Src: /src/freeradius-server/src/protocols/der/encode.c:1216,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1219,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1220,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/encode.c:1222,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/protocols/der/encode.c:1224,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/der/encode.c:1228,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/encode.c:1229,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1231,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/der/encode.c:1239,1
    - Dst: fr_der_flag_leaf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1239,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/encode.c:1240,1
    - Dst: fr_dcursor_copy
      Src: /src/freeradius-server/src/protocols/der/encode.c:1242,1
    - Dst: fr_der_encode_oid_from_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:1246,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1247,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/der/encode.c:1252,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/der/encode.c:1258,1
    - Dst: fr_der_flag_leaf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1261,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1263,1
    - Dst: fr_der_encode_len
      Src: /src/freeradius-server/src/protocols/der/encode.c:1269,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1280,1
    - Dst: fr_der_encode_tag
      Src: /src/freeradius-server/src/protocols/der/encode.c:1287,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1290,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1291,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:1296,1
    - Dst: fr_der_encode_len
      Src: /src/freeradius-server/src/protocols/der/encode.c:1302,1
    - Dst: fr_der_encode_len
      Src: /src/freeradius-server/src/protocols/der/encode.c:1308,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/der/encode.c:1312,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/encode.c:1317,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/der/encode.c:1317,1
    - Dst: fr_dbuff_behind
      Src: /src/freeradius-server/src/protocols/der/encode.c:1317,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/der/encode.c:1320,1
    - Dst: fr_dcursor_copy
      Src: /src/freeradius-server/src/protocols/der/encode.c:1321,1
    - Dst: fr_der_encode_len
      Src: /src/freeradius-server/src/protocols/der/encode.c:1328,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/der/encode.c:1331,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/der/encode.c:1331,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1333,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 98
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - fr_der_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1334
    functionName: fr_der_encode_X509_extensions
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_type_is_structural
    - fr_der_flag_max
    - fr_dbuff_marker
    - fr_dbuff_start
    - fr_strerror_printf
    - fr_der_encode_oid_from_value
    - FR_DBUFF
    - fr_der_flag_leaf
    - unlikely
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_ADVANCE_RETURN
    - fr_dcursor_next
    - fr_type_is_group
    - fr_pair_dcursor_child_iter_init
    - fr_dbuff_behind
    - fr_dbuff_used
    - fr_der_encode_len
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_dcursor_copy
    - fr_assert
    - encode_value
    - strcmp
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - FR_PROTO_TRACE
    - PAIR_VERIFY
    - fr_der_encode_tag
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_X509_extensions(fr_dbuff_t *dbuff, fr_dcursor_t
      *cursor, fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1338,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1346,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1347,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1348,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1350,1
    - Dst: fr_type_is_group
      Src: /src/freeradius-server/src/protocols/der/encode.c:1350,1
    - Dst: fr_der_encode_tag
      Src: /src/freeradius-server/src/protocols/der/encode.c:1362,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/encode.c:1365,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1366,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1375,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1378,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1379,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/der/encode.c:1385,1
    - Dst: fr_der_flag_leaf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1385,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/encode.c:1386,1
    - Dst: fr_dcursor_copy
      Src: /src/freeradius-server/src/protocols/der/encode.c:1388,1
    - Dst: fr_der_encode_oid_from_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:1392,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1393,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/der/encode.c:1398,1
    - Dst: fr_der_flag_leaf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1403,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/der/encode.c:1409,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1411,1
    - Dst: fr_der_encode_len
      Src: /src/freeradius-server/src/protocols/der/encode.c:1417,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:1423,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1426,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - fr_der_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1336
    functionDepth: 2
    functionLinenumber: 1336
    functionLinenumberEnd: 1427
    functionName: fr_der_encode_oid_and_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_type_is_structural
    - fr_der_encode_oid_from_value
    - fr_dbuff_marker
    - FR_DBUFF
    - fr_der_flag_leaf
    - unlikely
    - FR_DBUFF_ADVANCE_RETURN
    - fr_type_is_group
    - fr_pair_dcursor_child_iter_init
    - fr_der_encode_len
    - fr_dcursor_copy
    - fr_assert
    - encode_value
    - fr_dbuff_set
    - fr_pair_list_num_elements
    - FR_PROTO_TRACE
    - PAIR_VERIFY
    - fr_der_encode_tag
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_oid_and_value(fr_dbuff_t *dbuff, fr_dcursor_t
      *cursor, fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1431,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1434,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1435,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1436,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1455,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - fr_der_encode_ctx_t *encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1458
    functionName: fr_der_encode_string
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_assert
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_string(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      UNUSED fr_der_encode_ctx_t *encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1519,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1519,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/der/encode.c:1525,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1541,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1542,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/der/encode.c:1544,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1557,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1563,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1563,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/protocols/der/encode.c:1571,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1571,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/der/encode.c:1577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - dbuff
    - length_start
    argTypes:
    - fr_dbuff_t*
    - fr_dbuff_marker_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1581
    functionName: fr_der_encode_len
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 2
    functionsReached:
    - fr_dbuff_set
    - fr_dbuff_current
    - fr_dbuff_in
    - fr_assert
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - fr_dbuff_move
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_der_encode_len(fr_dbuff_t *dbuff, fr_dbuff_marker_t *length_start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1596,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1602,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dbuff
    - tag_num
    - tag_class
    - constructed
    argTypes:
    - fr_dbuff_t*
    - fr_der_tag_t
    - fr_der_tag_class_t
    - fr_der_tag_constructed_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1605
    functionName: fr_der_encode_tag
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 2
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_encode_tag(fr_dbuff_t *dbuff, fr_der_tag_t tag_num,
      fr_der_tag_class_t tag_class,\n\t\t\t  fr_der_tag_constructed_t constructed)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1627,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/encode.c:1628,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/der/encode.c:1632,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1633,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/encode.c:1634,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/der/encode.c:1638,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/encode.c:1640,1
    - Dst: fr_der_attr_flags
      Src: /src/freeradius-server/src/protocols/der/encode.c:1642,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1643,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1648,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1649,1
    - Dst: fr_der_encode_octetstring
      Src: /src/freeradius-server/src/protocols/der/encode.c:1651,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/der/encode.c:1654,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/der/encode.c:1658,1
    - Dst: fr_value_box_cmp
      Src: /src/freeradius-server/src/protocols/der/encode.c:1704,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/der/encode.c:1705,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/der/encode.c:1706,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1711,1
    - Dst: fr_der_encode_choice
      Src: /src/freeradius-server/src/protocols/der/encode.c:1712,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/der/encode.c:1715,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1716,1
    - Dst: fr_type_to_der_tag_default
      Src: /src/freeradius-server/src/protocols/der/encode.c:1720,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/encode.c:1722,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1723,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/encode.c:1723,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1727,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1732,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/encode.c:1733,1
    - Dst: fr_der_encode_tag
      Src: /src/freeradius-server/src/protocols/der/encode.c:1747,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/der/encode.c:1753,1
    - Dst: FR_DBUFF_ADVANCE_RETURN
      Src: /src/freeradius-server/src/protocols/der/encode.c:1754,1
    - Dst: fr_der_encode_X509_extensions
      Src: /src/freeradius-server/src/protocols/der/encode.c:1757,1
    - Dst: fr_der_tag_encode_t*::encode
      Src: /src/freeradius-server/src/protocols/der/encode.c:1760,1
    - Dst: fr_der_encode_len
      Src: /src/freeradius-server/src/protocols/der/encode.c:1767,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/der/encode.c:1770,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/der/encode.c:1771,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1615
    functionDepth: 4
    functionLinenumber: 1615
    functionLinenumberEnd: 1772
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 11
    functionsReached:
    - fr_dcursor_current
    - fr_der_encode_choice
    - fr_der_attr_flags
    - fr_strerror_printf
    - fr_dbuff_marker
    - FR_DBUFF
    - fr_value_box_cmp
    - fr_type_to_str
    - unlikely
    - FR_DBUFF_ADVANCE_RETURN
    - fr_dcursor_next
    - fr_type_to_der_tag_default
    - fr_der_encode_len
    - fr_strerror_const
    - fr_der_encode_X509_extensions
    - fr_assert
    - fr_der_tag_encode_t*::encode
    - fr_dbuff_set
    - FR_PROTO_TRACE
    - PAIR_VERIFY
    - fr_der_encode_octetstring
    - fr_der_encode_tag
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_value(fr_dbuff_t *dbuff, fr_dcursor_t *cursor, void
      *encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1781,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/der/encode.c:1783,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/der/encode.c:1785,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/encode.c:1788,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/der/encode.c:1788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - encode_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1774
    functionDepth: 3
    functionLinenumber: 1774
    functionLinenumberEnd: 1793
    functionName: fr_der_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dcursor_init
    - fr_dbuff_init
    - fr_strerror_printf
    - encode_value
    - fr_strerror
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_der_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len,\n\t\t\t\t   void *encode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/der/encode.c:1803,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/der/encode.c:1806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1811
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/der/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/der.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: fr_der_attr_flags
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 5
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_der_attr_flags_t
    signature: fr_der_attr_flags_t *fr_der_attr_flags(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: fr_der_flag_option
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_option(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: fr_der_flag_optional
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_optional(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: fr_der_flag_class
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_class(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: fr_der_flag_der_type
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_der_type(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: fr_der_flag_sequence_of
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_sequence_of(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: fr_der_flag_is_sequence_of
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_is_sequence_of(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: fr_der_flag_set_of
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_set_of(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: fr_der_flag_is_set_of
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_is_set_of(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: fr_der_flag_max
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_max(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: fr_der_flag_is_oid_and_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_is_oid_and_value(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: fr_der_flag_is_extensions
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_is_extensions(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: fr_der_flag_has_default_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_has_default_value(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: fr_der_flag_leaf
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_leaf(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: fr_der_flag_is_choice
    functionSourceFile: /src/freeradius-server/src/protocols/der/der.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_der_flag_is_choice(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/der/base.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - fr_der_tag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: fr_der_tag_to_str
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 4
    functionsReached:
    - fr_table_str_by_value
    linkageType: ''
    returnType: char
    signature: char *fr_der_tag_to_str(fr_der_tag_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag1
    - tag2
    argTypes:
    - fr_der_tag_t
    - fr_der_tag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: fr_der_tags_compatible
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_der_tags_compatible(fr_der_tag_t tag1, fr_der_tag_t tag2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - tag
    argTypes:
    - fr_type_t
    - fr_der_tag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: fr_type_to_der_tag_valid
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fr_type_to_der_tag_valid(fr_type_t type, fr_der_tag_t tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_der_attr_flags
      Src: /src/freeradius-server/src/protocols/der/base.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: fr_der_dict_attr_to_shortname
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_der_attr_flags
    linkageType: ''
    returnType: char
    signature: char *fr_der_dict_attr_to_shortname(fr_dict_attr_t const *da)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/der/base.c:207,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/der/base.c:213,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/der/base.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 8
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: fr_der_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_der_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/der/base.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: fr_der_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_der_global_free(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:234,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:235,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/protocols/der/base.c:237,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:242,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:244,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:245,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:250,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:255,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:257,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/der/base.c:261,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 270
    functionName: dict_flag_class
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - L
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_table_value_by_str
    - fr_der_tag_to_str
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int dict_flag_class(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:274,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/protocols/der/base.c:276,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:277,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:278,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/base.c:283,1
    - Dst: fr_value_box_alloc
      Src: /src/freeradius-server/src/protocols/der/base.c:291,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/protocols/der/base.c:291,1
    - Dst: fr_value_box_from_str
      Src: /src/freeradius-server/src/protocols/der/base.c:294,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/der/base.c:295,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:296,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/der/base.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 7
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: dict_flag_default_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_unconst
    - fr_type_is_leaf
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_value_box_alloc
    - strlen
    - fr_strerror
    - fr_strerror_const
    - fr_der_tag_to_str
    - fr_value_box_from_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_default_value(fr_dict_attr_t **da_p, char const *value,
      UNUSED fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:307,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/der/base.c:310,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:312,1
    - Dst: fr_type_to_der_tag_valid
      Src: /src/freeradius-server/src/protocols/der/base.c:324,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:326,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 334
    functionName: dict_flag_der_type
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_table_value_by_str
    - fr_type_to_der_tag_valid
    - fr_type_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_der_type(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/protocols/der/base.c:347,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/der/base.c:347,1
    - Dst: fr_dict_attr_set_group
      Src: /src/freeradius-server/src/protocols/der/base.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - da_p
    - flags
    argTypes:
    - fr_dict_attr_t**
    - fr_der_attr_flags_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 355
    functionName: dict_flag_set_oid_and_value
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_set_group
    - fr_dict_attr_by_name
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int dict_flag_set_oid_and_value(fr_dict_attr_t **da_p, fr_der_attr_flags_t
      *flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:359,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/base.c:363,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:368,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:368,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/protocols/der/base.c:372,1
    - Dst: dict_flag_set_oid_and_value
      Src: /src/freeradius-server/src/protocols/der/base.c:373,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/der/base.c:376,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 357
    functionDepth: 7
    functionLinenumber: 357
    functionLinenumberEnd: 386
    functionName: dict_flag_sequence_of
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - dict_flag_set_oid_and_value
    - fr_strerror_printf
    - fr_dict_attr_ext
    - strcmp
    - fr_table_value_by_str
    - fr_strerror_const
    - fr_der_tag_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_sequence_of(fr_dict_attr_t **da_p, char const *value,
      UNUSED fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:390,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/base.c:394,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:399,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:399,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/protocols/der/base.c:403,1
    - Dst: dict_flag_set_oid_and_value
      Src: /src/freeradius-server/src/protocols/der/base.c:404,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/der/base.c:407,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:409,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 388
    functionDepth: 7
    functionLinenumber: 388
    functionLinenumberEnd: 425
    functionName: dict_flag_set_of
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - dict_flag_set_oid_and_value
    - fr_strerror_printf
    - fr_dict_attr_ext
    - strcmp
    - fr_table_value_by_str
    - fr_strerror_const
    - fr_der_tag_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_set_of(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: dict_flag_is_extensions
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: int
    signature: int dict_flag_is_extensions(fr_dict_attr_t **da_p, UNUSED char const
      *value, UNUSED fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:438,1
    - Dst: fr_der_flag_der_type
      Src: /src/freeradius-server/src/protocols/der/base.c:445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:446,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:447,1
    - Dst: fr_der_flag_der_type
      Src: /src/freeradius-server/src/protocols/der/base.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 454
    functionName: dict_flag_leaf
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_strerror_printf
    - fr_der_tag_to_str
    - fr_der_flag_der_type
    linkageType: ''
    returnType: int
    signature: int dict_flag_leaf(fr_dict_attr_t **da_p, UNUSED char const *value,
      UNUSED fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:458,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/protocols/der/base.c:460,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:461,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:462,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/base.c:467,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/protocols/der/base.c:475,1
    - Dst: fr_dict_unconst
      Src: /src/freeradius-server/src/protocols/der/base.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 481
    functionName: dict_flag_shortname
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_unconst
    - fr_type_is_leaf
    - fr_strerror_printf
    - talloc_strdup
    - fr_dict_attr_ext
    - fr_strerror_const
    - fr_der_tag_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_shortname(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:488,1
    - Dst: fr_type_is_leaf
      Src: /src/freeradius-server/src/protocols/der/base.c:493,1
    - Dst: fr_type_is_variable_size
      Src: /src/freeradius-server/src/protocols/der/base.c:493,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:494,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:494,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/protocols/der/base.c:503,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:506,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:511,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/der/base.c:529,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:542,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/protocols/der/base.c:557,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:561,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 568
    functionName: dict_flag_size
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_type_is_leaf
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_dict_attr_ext
    - strtoul
    - fr_type_to_str
    - fr_type_is_variable_size
    linkageType: ''
    returnType: int
    signature: int dict_flag_size(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:572,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/protocols/der/base.c:576,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 585
    functionName: dict_flag_max
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_strerror_printf
    - strtoul
    linkageType: ''
    returnType: int
    signature: int dict_flag_max(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:596,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:599,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:600,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:611,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:623,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/protocols/der/base.c:632,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:634,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:640,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:644,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 650
    functionName: dict_flag_option
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_strerror_printf
    - fr_der_tag_to_str
    - strtoul
    linkageType: ''
    returnType: int
    signature: int dict_flag_option(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:659,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:662,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:663,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 671
    functionName: dict_flag_optional
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    - fr_strerror_printf
    - fr_der_tag_to_str
    linkageType: ''
    returnType: int
    signature: int dict_flag_optional(fr_dict_attr_t **da_p, UNUSED char const *value,
      UNUSED fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:691,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:693,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:694,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:695,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:696,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:697,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:698,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:699,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:700,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:701,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:702,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:703,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:704,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:705,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:706,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:707,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:708,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:709,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:710,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:711,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/protocols/der/base.c:713,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:716,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:718,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:719,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:720,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:721,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:722,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:723,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:724,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:725,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:726,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:727,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:728,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:729,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:730,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:731,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:732,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:733,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:734,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:735,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/der/base.c:736,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/protocols/der/base.c:738,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:740,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/base.c:753,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:758,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:759,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/der/base.c:792,1
    - Dst: fr_type_to_der_tag_default
      Src: /src/freeradius-server/src/protocols/der/base.c:794,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/der/base.c:807,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:808,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:814,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:827,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:829,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:829,1
    - Dst: dict_attr_ext_alloc
      Src: /src/freeradius-server/src/protocols/der/base.c:831,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/base.c:832,1
    - Dst: fr_dict_attr_by_name
      Src: /src/freeradius-server/src/protocols/der/base.c:835,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/der/base.c:835,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:836,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/protocols/der/base.c:847,1
    - Dst: dict_flag_set_oid_and_value
      Src: /src/freeradius-server/src/protocols/der/base.c:854,1
    - Dst: strcmp
      Src: /src/freeradius-server/src/protocols/der/base.c:860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 3
    argNames:
    - type_p
    - da_p
    - name
    argTypes:
    - fr_type_t*
    - fr_dict_attr_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 688
    functionDepth: 7
    functionLinenumber: 688
    functionLinenumberEnd: 863
    functionName: type_parse
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 1
    functionsReached:
    - unlikely
    - L
    - fr_dict_attr_by_name
    - dict_flag_set_oid_and_value
    - fr_strerror_printf
    - fr_dict_root
    - fr_dict_attr_ext
    - fr_assert
    - fr_type_to_der_tag_default
    - fr_table_value_by_str
    - dict_attr_ext_alloc
    - strcmp
    - fr_strerror_const
    - NUM_ELEMENTS
    - fr_type_to_str
    linkageType: ''
    returnType: bool
    signature: bool type_parse(fr_type_t *type_p,fr_dict_attr_t **da_p, char const
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - fr_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: fr_type_to_der_tag_default
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fr_der_tag_t
    signature: fr_der_tag_t fr_type_to_der_tag_default(fr_type_t type)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:899,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/der/base.c:902,1
    - Dst: fr_type_is_tlv
      Src: /src/freeradius-server/src/protocols/der/base.c:902,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:903,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:904,1
    - Dst: fr_type_is_integer_except_bool
      Src: /src/freeradius-server/src/protocols/der/base.c:919,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:924,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:925,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:931,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:932,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/der/base.c:943,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/der/base.c:944,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:963,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:964,1
    - Dst: fr_dict_attr_ref
      Src: /src/freeradius-server/src/protocols/der/base.c:991,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:993,1
    - Dst: fr_der_flag_der_type
      Src: /src/freeradius-server/src/protocols/der/base.c:993,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:1007,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/der/base.c:1014,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:1021,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:1033,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:1041,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:1047,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:1048,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:1056,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:1057,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:1058,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/der/base.c:1065,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/der/base.c:1069,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:1070,1
    - Dst: fr_der_tag_to_str
      Src: /src/freeradius-server/src/protocols/der/base.c:1071,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 97
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 1092
    functionName: attr_valid
    functionSourceFile: /src/freeradius-server/src/protocols/der/base.c
    functionUses: 1
    functionsReached:
    - unlikely
    - fr_der_flag_der_type
    - fr_strerror_printf
    - fr_strerror_const
    - fr_type_is_integer_except_bool
    - fr_dict_attr_ext
    - fr_assert
    - fr_der_tag_to_str
    - fr_type_to_str
    - fr_type_is_tlv
    - fr_dict_attr_ref
    linkageType: ''
    returnType: bool
    signature: bool attr_valid(fr_dict_attr_t *da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client_udp.c:36,1
    - Dst: fr_radius_client_fd_bio_write
      Src: /src/freeradius-server/src/protocols/radius/client_udp.c:38,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/protocols/radius/client_udp.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - pctx
    - packet
    - list
    argTypes:
    - fr_bio_packet_t*
    - void*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: fr_radius_client_udp_bio_write
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client_udp.c
    functionUses: 0
    functionsReached:
    - fr_radius_client_fd_bio_write
    - fr_bio_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_radius_client_udp_bio_write(fr_bio_packet_t *bio, void *pctx,
      fr_packet_t *packet, fr_pair_list_t *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_client_fd_bio_alloc
      Src: /src/freeradius-server/src/protocols/radius/client_udp.c:51,1
    - Dst: fr_bio_mem_set_verify
      Src: /src/freeradius-server/src/protocols/radius/client_udp.c:54,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/client_udp.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - fr_radius_client_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: fr_radius_client_udp_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client_udp.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_bio_mem_set_verify
    - fr_radius_client_fd_bio_alloc
    linkageType: ''
    returnType: fr_bio_packet_t
    signature: fr_bio_packet_t *fr_radius_client_udp_bio_alloc(TALLOC_CTX *ctx, fr_radius_client_config_t
      *cfg, fr_bio_fd_config_t const *fd_cfg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:46,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:50,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - dst
    - src
    - n
    - end
    argTypes:
    - void*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 61
    functionName: memcpy_bounded
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_cond_assert
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool memcpy_bounded(void * restrict dst, const void * restrict src,
      size_t n, const void * restrict end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:82,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:104,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:105,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:107,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:108,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:115,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:116,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/decode.c:133,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:134,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:143,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:145,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:146,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:150,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/decode.c:155,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:157,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:158,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:166,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:167,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - passwd
    - pwlen
    - packet_ctx
    argTypes:
    - uint8_t[]
    - size_t*
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 186
    functionName: fr_radius_decode_tunnel_password
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_md5_ctx_copy
    - fr_md5_update
    - fr_strerror_printf
    - fr_md5_final
    - fr_md5_ctx_alloc_from_list
    - fr_strerror_const
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_decode_tunnel_password(uint8_t passwd[static 256],
      size_t *pwlen, fr_radius_decode_ctx_t *packet_ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:197,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:204,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:205,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:207,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:208,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:219,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/decode.c:220,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:222,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:224,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/decode.c:227,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:229,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/decode.c:231,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:238,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/decode.c:239,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/decode.c:243,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - passwd
    - pwlen
    - packet_ctx
    argTypes:
    - uint8_t[]
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 244
    functionName: fr_radius_decode_password
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_md5_ctx_copy
    - fr_md5_update
    - fr_md5_final
    - fr_assert
    - strlen
    - fr_md5_ctx_alloc_from_list
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_decode_password(uint8_t passwd[static 256], size_t
      pwlen, fr_radius_decode_ctx_t *packet_ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:253,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:255,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:258,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:266,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:275,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:280,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:297,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:307,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:317,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:322,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:327,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 4
    argNames:
    - data
    - length
    - dv_type
    - dv_length
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 336
    functionName: fr_radius_decode_tlv_ok
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - FR_PROTO_HEX_DUMP
    - fr_strerror_const
    - FR_PROTO_TRACE
    linkageType: ''
    returnType: int
    signature: int fr_radius_decode_tlv_ok(uint8_t const *data, size_t length, size_t
      dv_type, size_t dv_length)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:351,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:388,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:390,1
    - Dst: fr_pair_value_mem_alloc
      Src: /src/freeradius-server/src/protocols/radius/decode.c:392,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:394,1
    - Dst: memcpy_bounded
      Src: /src/freeradius-server/src/protocols/radius/decode.c:400,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:404,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - ctx
    - list
    - parent
    - data
    - end
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 406
    functionName: decode_concat
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - memcpy_bounded
    - fr_pair_value_mem_alloc
    - talloc_free
    - fr_pair_append
    - fr_assert
    - PAIR_ALLOCED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_concat(TALLOC_CTX *ctx, fr_pair_list_t *list,\n\t\t\t
      \    fr_dict_attr_t const *parent, uint8_t const *data,\n\t\t\t     uint8_t
      const *end)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:430,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:436,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:448,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:454,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:456,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:458,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:462,1
    - Dst: fr_pair_array_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:465,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:468,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:471,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 477
    functionName: decode_rfc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - decode_value
    - FR_PROTO_TRACE
    - fr_pair_raw_from_network
    - fr_strerror_printf
    - fr_pair_array_from_network
    - fr_pair_tlvs_from_network
    - fr_assert
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_rfc(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t      fr_dict_attr_t
      const *parent,\n\t\t\t      uint8_t const *data, size_t const data_len, void
      *decode_ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:516,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/decode.c:525,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:536,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:537,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:549,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:569,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:570,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:571,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:573,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:576,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/radius/decode.c:578,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:579,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:580,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:583,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:592,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 594
    functionName: decode_nas_filter_rule
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - fr_pair_value_bstrndup
    - memcpy
    - talloc_array
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_append
    - fr_assert
    - PAIR_ALLOCED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_nas_filter_rule(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \     fr_dict_attr_t const *parent, uint8_t const *data,\n\t\t\t\t      size_t
      const data_len, fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:610,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:612,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:614,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:617,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:620,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:626,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:629,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:642,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 644
    functionName: decode_digest_attributes
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - talloc_free
    - fr_pair_raw_from_network
    - fr_pair_append
    - fr_pair_tlvs_from_network
    - fr_assert
    - PAIR_ALLOCED
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_digest_attributes(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t\tfr_dict_attr_t
      const *parent, uint8_t const *data,\n\t\t\t\t\tsize_t const data_len, fr_radius_decode_ctx_t
      *packet_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/radius/decode.c:660,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:667,1
    - Dst: fr_radius_decode_tlv_ok
      Src: /src/freeradius-server/src/protocols/radius/decode.c:669,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:671,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:673,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/radius/decode.c:680,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:684,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:686,1
    - Dst: fr_radius_decode_tlv_ok
      Src: /src/freeradius-server/src/protocols/radius/decode.c:691,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:692,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:695,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:702,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:705,1
    - Dst: fr_radius_decode_tlv
      Src: /src/freeradius-server/src/protocols/radius/decode.c:706,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:710,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:712,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:720,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:721,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 650
    functionDepth: 5
    functionLinenumber: 650
    functionLinenumberEnd: 724
    functionName: fr_radius_decode_tlv
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 1
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_append
    - fr_radius_decode_tlv
    - fr_radius_decode_pair_value
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_pair_list_append
    - PAIR_ALLOCED
    - fr_radius_decode_tlv_ok
    - fr_dict_attr_unknown_typed_afrom_num
    - fr_pair_list_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode_tlv(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \    fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len,\n\t\t\t
      \    fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:746,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:747,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:751,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:754,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:776,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:795,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:802,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:805,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:807,1
    - Dst: fr_radius_decode_tlv_ok
      Src: /src/freeradius-server/src/protocols/radius/decode.c:821,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:822,1
    - Dst: fr_dict_attr_unknown_typed_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:828,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 7
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - packet_ctx
    - dv
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    - fr_dict_vendor_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 835
    functionName: decode_vsa_internal
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_TRACE
    - fr_cond_assert
    - fr_strerror_printf
    - fr_radius_decode_pair_value
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_radius_decode_tlv_ok
    - fr_dict_attr_unknown_typed_afrom_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_vsa_internal(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \  fr_dict_attr_t const *parent,\n\t\t\t\t   uint8_t const *data, size_t data_len,\n\t\t\t\t
      \  fr_radius_decode_ctx_t *packet_ctx, fr_dict_vendor_t const *dv)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:873,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/decode.c:908,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:911,1
    - Dst: memcpy_bounded
      Src: /src/freeradius-server/src/protocols/radius/decode.c:922,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:923,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:931,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:941,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:947,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 951
    functionName: decode_extended_fragments
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - memcpy_bounded
    - FR_PROTO_HEX_DUMP
    - talloc_array
    - FR_PROTO_TRACE
    - talloc_free
    - fr_radius_decode_pair_value
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_extended_fragments(TALLOC_CTX *ctx, fr_pair_list_t
      *out,\n\t\t\t\t\t fr_dict_attr_t const *parent,\n\t\t\t\t\t uint8_t const *data,
      size_t attr_len,\n\t\t\t\t\t fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:972,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:980,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:983,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:984,1
    - Dst: fr_radius_flag_long_extended
      Src: /src/freeradius-server/src/protocols/radius/decode.c:993,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:994,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:996,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:997,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1000,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1011,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1012,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1017,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1023,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1024,1
    - Dst: decode_extended_fragments
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1032,1
    - Dst: fr_dict_attr_unknown_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1033,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 6
    argNames:
    - ctx
    - out
    - da
    - data
    - data_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - UNUSED
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 958
    functionDepth: 5
    functionLinenumber: 958
    functionLinenumberEnd: 1036
    functionName: decode_extended
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - decode_extended_fragments
    - FR_PROTO_TRACE
    - fr_dict_attr_unknown_free
    - fr_pair_raw_from_network
    - fr_pair_find_or_append_by_da
    - fr_radius_decode_pair_value
    - fr_assert
    - fr_dict_attr_child_by_num
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_radius_flag_long_extended
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_extended(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \      fr_dict_attr_t const *da,\n\t\t\t       uint8_t const *data, UNUSED size_t
      data_len,\n\t\t\t       fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1059,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1060,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1066,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1074,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1082,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1086,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1088,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1090,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1091,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1093,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1099,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1100,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1125,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1133,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1142,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1162,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1191,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1196,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1201,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1206,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1210,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1211,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1216,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1221,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1236,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1240,1
    - Dst: memcpy_bounded
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1249,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1250,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1258,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1268,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1269,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1270,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1276,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 119
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1042
    functionDepth: 5
    functionLinenumber: 1042
    functionLinenumberEnd: 1280
    functionName: decode_wimax
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - memcpy_bounded
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - talloc_array
    - talloc_free
    - fr_pair_find_or_append_by_da
    - fr_radius_decode_pair_value
    - fr_assert
    - fr_dict_attr_child_by_num
    - memcmp
    - fr_dict_attr_unknown_raw_afrom_num
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_wimax(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t    uint8_t const *data, size_t attr_len,\n\t\t\t
      \   fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1301,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1310,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1316,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1318,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1319,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1329,1
    - Dst: fr_radius_decode_tlv_ok
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1335,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1336,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1336,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1340,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1344,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1349,1
    - Dst: fr_dict_vendor_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1364,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1365,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1366,1
    - Dst: decode_wimax
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1372,1
    - Dst: fr_radius_decode_tlv_ok
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1379,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1380,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1380,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1389,1
    - Dst: fr_pair_find_or_append_by_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1391,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1397,1
    - Dst: decode_vsa_internal
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1404,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1407,1
    - Dst: fr_strerror
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1407,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1408,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1409,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1417,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1426,1
    - Dst: fr_pair_list_num_elements
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1427,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1428,1
    - Dst: fr_pair_delete
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1430,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1286
    functionDepth: 6
    functionLinenumber: 1286
    functionLinenumberEnd: 1442
    functionName: decode_vsa
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - ntohl
    - memcpy
    - fr_cond_assert
    - fr_strerror_printf
    - fr_strerror
    - fr_pair_list_free
    - decode_vsa_internal
    - fr_pair_delete
    - decode_wimax
    - fr_dict_attr_unknown_vendor_afrom_num
    - memset
    - fr_pair_list_init
    - fr_pair_find_or_append_by_da
    - fr_assert
    - fr_pair_list_append
    - fr_radius_decode_tlv_ok
    - fr_pair_list_num_elements
    - FR_PROTO_TRACE
    - fr_dict_vendor_by_num
    - fr_dict_attr_child_by_num
    linkageType: ''
    returnType: void
    signature: "void decode_vsa(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t\t\t    uint8_t const *data, size_t
      attr_len,\n\t\t\t\t\t    fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1456
    functionName: decode_value_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_radius_decode_pair_value
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t    uint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1464,1
    - Dst: fr_radius_decode_tlv
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1460
    functionDepth: 6
    functionLinenumber: 1460
    functionLinenumberEnd: 1467
    functionName: decode_tlv_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - FR_PROTO_HEX_DUMP
    - fr_radius_decode_tlv
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_tlv_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \   fr_dict_attr_t const *parent,\n\t\t\t    uint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1501,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1506,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1510,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1512,1
    - Dst: fr_radius_flag_has_tag
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1524,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1547,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1552,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1572,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1573,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1575,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1580,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1586,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1587,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1588,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1592,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1592,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1593,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1595,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1599,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1600,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1601,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1605,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1607,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1612,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1613,1
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1614,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - attr_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1617
    functionName: fr_radius_decode_pair_value
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 6
    functionsReached:
    - unlikely
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - TALLOC_FREE
    - memcpy
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - fr_pair_append
    - talloc_get_type_abort
    - fr_assert
    - talloc_zero
    - talloc_zero_array
    - fr_dict_attr_child_by_num
    - PAIR_ALLOCED
    - fr_radius_flag_has_tag
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t
      *out,\n\t\t\t\t    fr_dict_attr_t const *parent,\n\t\t\t\t    uint8_t const
      *data, size_t const attr_len,\n\t\t\t\t    void *decode_ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1985,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1999,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/radius/decode.c:1999,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2001,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2002,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2002,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2005,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2026,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2028,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2033,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2034,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2038,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2046,1
    - Dst: decode_nas_filter_rule
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2048,1
    - Dst: decode_digest_attributes
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2052,1
    - Dst: fr_radius_flag_concat
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2058,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2059,1
    - Dst: decode_concat
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2060,1
    - Dst: fr_radius_flag_extended
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2068,1
    - Dst: decode_extended
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2069,1
    - Dst: fr_radius_decode_pair_value
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2083,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2088,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - packet_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 1978
    functionDepth: 6
    functionLinenumber: 1978
    functionLinenumberEnd: 2091
    functionName: fr_radius_decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - fr_radius_flag_concat
    - fr_pair_value_memdup
    - decode_concat
    - fr_dict_attr_unknown_raw_afrom_num
    - unlikely
    - fr_pair_append
    - fr_radius_flag_extended
    - fr_radius_decode_pair_value
    - PAIR_ALLOCED
    - fr_pair_afrom_da
    - decode_digest_attributes
    - fr_assert
    - decode_nas_filter_rule
    - decode_extended
    - FR_PROTO_TRACE
    - talloc_free
    - fr_dict_attr_child_by_num
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \     uint8_t const *data, size_t data_len, fr_radius_decode_ctx_t *packet_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2102,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2106,1
    - Dst: fr_radius_decode_pair
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2112,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2114,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2115,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2120,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2123,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - out
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2093
    functionDepth: 7
    functionLinenumber: 2093
    functionLinenumberEnd: 2126
    functionName: fr_radius_decode_foreign
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_radius_decode_pair
    - talloc
    - fr_assert
    - talloc_free_children
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode_foreign(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      uint8_t const *data, size_t data_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2128
    functionDepth: 0
    functionLinenumber: 2128
    functionLinenumberEnd: 2133
    functionName: _test_ctx_free
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    linkageType: ''
    returnType: int
    signature: int _test_ctx_free(fr_radius_decode_ctx_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2145,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2146,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2148,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2149,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2152,1
    - Dst: talloc_set_destructor
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2158
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_strdup
    - talloc_set_destructor
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2163,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2168,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2169,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2176,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2178,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2181,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2184,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2186,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2188,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2191,1
    - Dst: fr_pair_value_memdup
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2193,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2194,1
    - Dst: fr_radius_decode
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2198,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2160
    functionDepth: 3
    functionLinenumber: 2160
    functionLinenumberEnd: 2199
    functionName: fr_radius_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - fr_radius_decode
    - fr_strerror_printf
    - fr_pair_append
    - UNCONST
    - talloc_get_type_abort
    - fr_pair_value_memdup
    - fr_radius_ok
    - PAIR_ALLOCED
    - fr_strerror_const
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \     uint8_t const *data, size_t data_len, void *proto_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2206,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2206,1
    - Dst: fr_radius_decode_pair
      Src: /src/freeradius-server/src/protocols/radius/decode.c:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - NDEBUG_UNUSED*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2201
    functionDepth: 7
    functionLinenumber: 2201
    functionLinenumberEnd: 2210
    functionName: decode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/radius/decode.c
    functionUses: 14
    functionsReached:
    - fr_assert
    - fr_radius_decode_pair
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, NDEBUG_UNUSED
      fr_dict_attr_t const *parent,\n\t\t\t   uint8_t const *data, size_t data_len,
      void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/protocols/radius/list.c:55,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/protocols/radius/list.c:56,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/protocols/radius/list.c:57,1
    - Dst: CMP_RETURN
      Src: /src/freeradius-server/src/protocols/radius/list.c:58,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/protocols/radius/list.c:63,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/protocols/radius/list.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a_v
    - b_v
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: fr_packet_cmp
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_ipaddr_cmp
    - CMP_RETURN
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_packet_cmp(void const *a_v, void const *b_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/protocols/radius/list.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - request
    - reply
    argTypes:
    - fr_packet_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: fr_request_from_reply
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - fr_socket_addr_swap
    linkageType: ''
    returnType: void
    signature: "void fr_request_from_reply(fr_packet_t *request,\n\t\t\t   fr_packet_t
      const *reply)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sockfd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: SOCK2OFFSET
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCK2OFFSET(_sockfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SOCK2OFFSET
      Src: /src/freeradius-server/src/protocols/radius/list.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pl
    - sockfd
    argTypes:
    - fr_packet_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: fr_socket_find
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - SOCK2OFFSET
    linkageType: ''
    returnType: fr_packet_socket_t
    signature: fr_packet_socket_t *fr_socket_find(fr_packet_list_t *pl, int sockfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:145,1
    - Dst: fr_socket_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:149,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pl
    - sockfd
    argTypes:
    - fr_packet_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: fr_packet_list_socket_freeze
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_socket_find
    linkageType: ''
    returnType: bool
    signature: bool fr_packet_list_socket_freeze(fr_packet_list_t *pl, int sockfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pl
    - sockfd
    argTypes:
    - fr_packet_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: fr_packet_list_socket_thaw
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - fr_socket_find
    linkageType: ''
    returnType: bool
    signature: bool fr_packet_list_socket_thaw(fr_packet_list_t *pl, int sockfd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:179,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/radius/list.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pl
    - sockfd
    argTypes:
    - fr_packet_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 190
    functionName: fr_packet_list_socket_del
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_socket_find
    linkageType: ''
    returnType: bool
    signature: bool fr_packet_list_socket_del(fr_packet_list_t *pl, int sockfd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:203,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:208,1
    - Dst: SOCK2OFFSET
      Src: /src/freeradius-server/src/protocols/radius/list.c:213,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:225,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/list.c:229,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/list.c:242,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/protocols/radius/list.c:243,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/list.c:244,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/radius/list.c:244,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/protocols/radius/list.c:248,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:249,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/protocols/radius/list.c:256,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/protocols/radius/list.c:259,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/list.c:263,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 6
    argNames:
    - pl
    - sockfd
    - proto
    - dst_ipaddr
    - dst_port
    - ctx
    argTypes:
    - fr_packet_list_t*
    - int
    - int
    - fr_ipaddr_t*
    - uint16_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 277
    functionName: fr_packet_list_socket_add
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 2
    functionsReached:
    - fr_ipaddr_from_sockaddr
    - fr_ipaddr_is_inaddr_any
    - talloc_array
    - fr_strerror_printf
    - fr_syserror
    - fr_strerror_const
    - getsockname
    - SOCK2OFFSET
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool fr_packet_list_socket_add(fr_packet_list_t *pl, int sockfd, int
      proto,\n\t\t\t      fr_ipaddr_t *dst_ipaddr, uint16_t dst_port,\n\t\t\t      void
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/list.c:283,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/list.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pl
    argTypes:
    - fr_packet_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: fr_packet_list_free
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void fr_packet_list_free(fr_packet_list_t *pl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/list.c:296,1
    - Dst: fr_rb_inline_alloc
      Src: /src/freeradius-server/src/protocols/radius/list.c:298,1
    - Dst: fr_packet_list_free
      Src: /src/freeradius-server/src/protocols/radius/list.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - alloc_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 311
    functionName: fr_packet_list_create
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_rb_inline_alloc
    - talloc_zero
    - fr_packet_list_free
    linkageType: ''
    returnType: fr_packet_list_t
    signature: fr_packet_list_t *fr_packet_list_create(int alloc_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/protocols/radius/list.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pl
    - request
    argTypes:
    - fr_packet_list_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: fr_packet_list_insert
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - fr_rb_insert
    linkageType: ''
    returnType: bool
    signature: "bool fr_packet_list_insert(fr_packet_list_t *pl,\n\t\t\t    fr_packet_t
      *request)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pl
    - request
    argTypes:
    - fr_packet_list_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: fr_packet_list_find
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_packet_list_find(fr_packet_list_t *pl, fr_packet_t
      *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_socket_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:345,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/protocols/radius/list.c:352,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pl
    - reply
    argTypes:
    - fr_packet_list_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 373
    functionName: fr_packet_list_find_byreply
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_rb_find
    - fr_socket_addr_swap
    - fr_socket_find
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_packet_list_find_byreply(fr_packet_list_t *pl, fr_packet_t
      *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/protocols/radius/list.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pl
    - request
    argTypes:
    - fr_packet_list_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: fr_packet_list_yank
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_rb_delete
    linkageType: ''
    returnType: bool
    signature: bool fr_packet_list_yank(fr_packet_list_t *pl, fr_packet_t *request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/protocols/radius/list.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pl
    argTypes:
    - fr_packet_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: fr_packet_list_num_elements
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_rb_num_elements
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_packet_list_num_elements(fr_packet_list_t *pl)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:420,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/list.c:428,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/protocols/radius/list.c:432,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:434,1
    - Dst: fr_ipaddr_is_inaddr_any
      Src: /src/freeradius-server/src/protocols/radius/list.c:441,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:442,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/list.c:469,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/protocols/radius/list.c:531,1
    - Dst: fr_ipaddr_cmp
      Src: /src/freeradius-server/src/protocols/radius/list.c:545,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/list.c:567,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/list.c:573,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/list.c:595,1
    - Dst: fr_packet_list_insert
      Src: /src/freeradius-server/src/protocols/radius/list.c:611,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 93
    argCount: 4
    argNames:
    - pl
    - proto
    - request
    - pctx
    argTypes:
    - fr_packet_list_t*
    - int
    - fr_packet_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 630
    functionName: fr_packet_list_id_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_ipaddr_is_inaddr_any
    - fr_ipaddr_cmp
    - fr_strerror_const
    - fr_rand
    - fr_packet_list_insert
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool fr_packet_list_id_alloc(fr_packet_list_t *pl, int proto,\n\t\t\t
      \   fr_packet_t *request, void **pctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_list_yank
      Src: /src/freeradius-server/src/protocols/radius/list.c:643,1
    - Dst: fr_socket_find
      Src: /src/freeradius-server/src/protocols/radius/list.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - pl
    - request
    - yank
    argTypes:
    - fr_packet_list_t*
    - fr_packet_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 636
    functionDepth: 5
    functionLinenumber: 636
    functionLinenumberEnd: 658
    functionName: fr_packet_list_id_free
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - fr_packet_list_yank
    - fr_socket_find
    linkageType: ''
    returnType: bool
    signature: "bool fr_packet_list_id_free(fr_packet_list_t *pl,\n\t\t\t    fr_packet_t
      *request, bool yank)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FD_SET
      Src: /src/freeradius-server/src/protocols/radius/list.c:670,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - pl
    - set
    argTypes:
    - fr_packet_list_t*
    - fd_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 679
    functionName: fr_packet_list_fd_set
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - FD_SET
    linkageType: ''
    returnType: int
    signature: int fr_packet_list_fd_set(fr_packet_list_t *pl, fd_set *set)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/freeradius-server/src/protocols/radius/list.c:703,1
    - Dst: fr_tcp_read_packet
      Src: /src/freeradius-server/src/protocols/radius/list.c:709,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/list.c:713,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/protocols/radius/list.c:715,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/protocols/radius/list.c:718,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/list.c:720,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/list.c:730,1
    - Dst: memmove
      Src: /src/freeradius-server/src/protocols/radius/list.c:732,1
    - Dst: fr_packet_recv
      Src: /src/freeradius-server/src/protocols/radius/list.c:737,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 6
    argNames:
    - pl
    - set
    - ctx
    - packet_p
    - max_attributes
    - require_message_authenticator
    argTypes:
    - fr_packet_list_t*
    - fd_set*
    - TALLOC_CTX*
    - fr_packet_t**
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 754
    functionName: fr_packet_list_recv
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 1
    functionsReached:
    - talloc_memdup
    - fr_packet_alloc
    - talloc_free
    - fr_tcp_read_packet
    - memmove
    - FD_ISSET
    - fr_packet_recv
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_packet_list_recv(fr_packet_list_t *pl, fd_set *set, TALLOC_CTX
      *ctx, fr_packet_t **packet_p, uint32_t max_attributes, bool require_message_authenticator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_rb_num_elements
      Src: /src/freeradius-server/src/protocols/radius/list.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pl
    argTypes:
    - fr_packet_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 766
    functionName: fr_packet_list_num_incoming
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached:
    - fr_rb_num_elements
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_packet_list_num_incoming(fr_packet_list_t *pl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pl
    argTypes:
    - fr_packet_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 773
    functionName: fr_packet_list_num_outgoing
    functionSourceFile: /src/freeradius-server/src/protocols/radius/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fr_packet_list_num_outgoing(fr_packet_list_t *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_log_hex
      Src: /src/freeradius-server/src/protocols/radius/packet.c:56,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/radius/packet.c:60,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/packet.c:66,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/packet.c:67,1
    - Dst: fr_radius_encode
      Src: /src/freeradius-server/src/protocols/radius/packet.c:74,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/radius/packet.c:74,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/packet.c:86,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/packet.c:88,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/packet.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - packet
    - list
    - original
    - secret
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    - fr_packet_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 95
    functionName: fr_radius_packet_encode
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 1
    functionsReached:
    - memcpy
    - talloc_array
    - fr_rand
    - FR_DBUFF_TMP
    - fr_packet_log_hex
    - talloc_strlen
    - fr_strerror_const
    - fr_radius_encode
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_packet_encode(fr_packet_t *packet, fr_pair_list_t
      *list,\n\t\t\t\tfr_packet_t const *original, char const *secret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/protocols/radius/packet.c:112,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/packet.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - packet
    - max_attributes
    - require_message_authenticator
    - reason
    argTypes:
    - fr_packet_t*
    - uint32_t
    - bool
    - fr_radius_decode_fail_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: fr_packet_ok
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 1
    functionsReached:
    - fr_radius_ok
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool fr_packet_ok(fr_packet_t *packet, uint32_t max_attributes, bool
      require_message_authenticator, fr_radius_decode_fail_t *reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_verify
      Src: /src/freeradius-server/src/protocols/radius/packet.c:135,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/radius/packet.c:136,1
    - Dst: fr_strerror_printf_push
      Src: /src/freeradius-server/src/protocols/radius/packet.c:137,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/protocols/radius/packet.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - packet
    - original
    - secret
    argTypes:
    - fr_packet_t*
    - fr_packet_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: fr_radius_packet_verify
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 3
    functionsReached:
    - fr_radius_verify
    - fr_strerror_printf_push
    - inet_ntop
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: int fr_radius_packet_verify(fr_packet_t *packet, fr_packet_t *original,
      char const *secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/protocols/radius/packet.c:155,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/radius/packet.c:156,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/packet.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - packet
    - original
    - secret
    argTypes:
    - fr_packet_t*
    - fr_packet_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: fr_radius_packet_sign
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 1
    functionsReached:
    - fr_radius_sign
    - memcpy
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int fr_radius_packet_sign(fr_packet_t *packet, fr_packet_t const *original,\n\t\t\t
      \ char const *secret)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_recv_header
      Src: /src/freeradius-server/src/protocols/radius/packet.c:171,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/packet.c:179,1
    - Dst: udp_recv
      Src: /src/freeradius-server/src/protocols/radius/packet.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - sockfd
    - packet
    - flags
    argTypes:
    - int
    - fr_packet_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: rad_recvfrom
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 0
    functionsReached:
    - fr_radius_recv_header
    - udp_recv
    - talloc_array
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rad_recvfrom(int sockfd, fr_packet_t *packet, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/protocols/radius/packet.c:199,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/packet.c:201,1
    - Dst: rad_recvfrom
      Src: /src/freeradius-server/src/protocols/radius/packet.c:205,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/packet.c:207,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/radius/packet.c:207,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/radius/packet.c:208,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/packet.c:220,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/radius/packet.c:220,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/radius/packet.c:221,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/packet.c:234,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/radius/packet.c:235,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/packet.c:246,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/radius/packet.c:247,1
    - Dst: fr_packet_ok
      Src: /src/freeradius-server/src/protocols/radius/packet.c:254,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/radius/packet.c:255,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - fd
    - flags
    - max_attributes
    - require_message_authenticator
    argTypes:
    - TALLOC_CTX*
    - int
    - int
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 271
    functionName: fr_packet_recv
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 3
    functionsReached:
    - fr_packet_free
    - fr_packet_alloc
    - rad_recvfrom
    - fr_syserror
    - fr_packet_ok
    - fr_strerror_const
    - FR_DEBUG_STRERROR_PRINTF
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_packet_recv(TALLOC_CTX *ctx, int fd, int flags, uint32_t
      max_attributes, bool require_message_authenticator)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_packet_encode
      Src: /src/freeradius-server/src/protocols/radius/packet.c:294,1
    - Dst: fr_radius_packet_sign
      Src: /src/freeradius-server/src/protocols/radius/packet.c:302,1
    - Dst: write
      Src: /src/freeradius-server/src/protocols/radius/packet.c:319,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/packet.c:322,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/radius/packet.c:322,1
    - Dst: udp_send
      Src: /src/freeradius-server/src/protocols/radius/packet.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - packet
    - list
    - original
    - secret
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    - fr_packet_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 333
    functionName: fr_radius_packet_send
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 3
    functionsReached:
    - write
    - udp_send
    - fr_radius_packet_sign
    - fr_strerror_printf
    - fr_syserror
    - fr_radius_packet_encode
    linkageType: ''
    returnType: int
    signature: "int fr_radius_packet_send(fr_packet_t *packet, fr_pair_list_t *list,\n\t\t\t
      \ fr_packet_t const *original, char const *secret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:342,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:343,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:346,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/protocols/radius/packet.c:346,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:347,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:348,1
    - Dst: fr_box_ipaddr
      Src: /src/freeradius-server/src/protocols/radius/packet.c:348,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:349,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:353,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:355,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:358,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:359,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/packet.c:359,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:360,1
    - Dst: fr_box_octets
      Src: /src/freeradius-server/src/protocols/radius/packet.c:360,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/protocols/radius/packet.c:377,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/packet.c:378,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/radius/packet.c:381,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/protocols/radius/packet.c:383,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/packet.c:386,1
    - Dst: snprintf
      Src: /src/freeradius-server/src/protocols/radius/packet.c:396,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:400,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - log
    - packet
    - file
    - line
    argTypes:
    - fr_log_t*
    - fr_packet_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 402
    functionName: _fr_packet_log_hex
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 0
    functionsReached:
    - snprintf
    - fr_box_octets
    - fr_nbo_to_uint32
    - strlen
    - fr_log
    - fr_nbo_to_uint16
    - fr_box_ipaddr
    linkageType: ''
    returnType: void
    signature: void _fr_packet_log_hex(fr_log_t const *log, fr_packet_t const *packet,
      char const *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/protocols/radius/packet.c:424,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:425,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/protocols/radius/packet.c:435,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/protocols/radius/packet.c:439,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/protocols/radius/packet.c:444,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:449,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/protocols/radius/packet.c:459,1
    - Dst: fr_inet_ntop
      Src: /src/freeradius-server/src/protocols/radius/packet.c:463,1
    - Dst: fr_ifname_from_ifindex
      Src: /src/freeradius-server/src/protocols/radius/packet.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - log
    - packet
    - received
    argTypes:
    - fr_log_t*
    - fr_packet_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 407
    functionDepth: 7
    functionLinenumber: 407
    functionLinenumberEnd: 473
    functionName: fr_radius_packet_header_log
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 0
    functionsReached:
    - fr_ifname_from_ifindex
    - fr_log
    - FR_RADIUS_PACKET_CODE_VALID
    - fr_inet_ntop
    linkageType: ''
    returnType: void
    signature: void fr_radius_packet_header_log(fr_log_t const *log, fr_packet_t *packet,
      bool received)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_packet_header_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:480,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/radius/packet.c:491,1
    - Dst: fr_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:492,1
    - Dst: fr_pair_list_log
      Src: /src/freeradius-server/src/protocols/radius/packet.c:500,1
    - Dst: fr_packet_log_hex
      Src: /src/freeradius-server/src/protocols/radius/packet.c:502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - log
    - packet
    - list
    - received
    argTypes:
    - fr_log_t*
    - fr_packet_t*
    - fr_pair_list_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 478
    functionDepth: 8
    functionLinenumber: 478
    functionLinenumberEnd: 504
    functionName: fr_radius_packet_log
    functionSourceFile: /src/freeradius-server/src/protocols/radius/packet.c
    functionUses: 7
    functionsReached:
    - fr_radius_packet_header_log
    - fr_pair_list_log
    - fr_log
    - fr_packet_log_hex
    - fr_pair_find_by_da
    linkageType: ''
    returnType: void
    signature: void fr_radius_packet_log(fr_log_t const *log, fr_packet_t *packet,
      fr_pair_list_t *list, bool received)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/tcp.c:41,1
    - Dst: recv
      Src: /src/freeradius-server/src/protocols/radius/tcp.c:45,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/tcp.c:55,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/protocols/radius/tcp.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - sockfd
    - buffer
    - size
    - total
    - max_attributes
    - require_message_authenticator
    argTypes:
    - int
    - uint8_t*
    - size_t
    - size_t*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 71
    functionName: fr_tcp_read_packet
    functionSourceFile: /src/freeradius-server/src/protocols/radius/tcp.c
    functionUses: 1
    functionsReached:
    - fr_radius_ok
    - fr_assert
    - fr_nbo_to_uint16
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_tcp_read_packet(int sockfd, uint8_t *buffer, size_t size,
      size_t *total, uint32_t max_attributes, bool require_message_authenticator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client_tcp.c:36,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client_tcp.c:41,1
    - Dst: fr_radius_client_fd_bio_write
      Src: /src/freeradius-server/src/protocols/radius/client_tcp.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bio
    - pctx
    - packet
    - list
    argTypes:
    - fr_bio_packet_t*
    - void*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fr_radius_client_tcp_bio_write
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client_tcp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_radius_client_fd_bio_write
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_radius_client_tcp_bio_write(fr_bio_packet_t *bio, void *pctx,
      fr_packet_t *packet, fr_pair_list_t *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_client_fd_bio_alloc
      Src: /src/freeradius-server/src/protocols/radius/client_tcp.c:54,1
    - Dst: fr_bio_mem_set_verify
      Src: /src/freeradius-server/src/protocols/radius/client_tcp.c:57,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/client_tcp.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - fr_radius_client_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: fr_radius_client_tcp_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client_tcp.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - fr_bio_mem_set_verify
    - fr_radius_client_fd_bio_alloc
    linkageType: ''
    returnType: fr_bio_packet_t
    signature: fr_bio_packet_t *fr_radius_client_tcp_bio_alloc(TALLOC_CTX *ctx, fr_radius_client_config_t
      *cfg, fr_bio_fd_config_t const *fd_cfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:33,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/server.c:36,1
    - Dst: fr_radius_server_udp_bio_alloc
      Src: /src/freeradius-server/src/protocols/radius/server.c:40,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/server.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - fr_radius_server_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: fr_radius_server_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_strerror_const
    - fr_radius_server_udp_bio_alloc
    linkageType: ''
    returnType: fr_bio_packet_t
    signature: fr_bio_packet_t *fr_radius_server_bio_alloc(TALLOC_CTX *ctx, fr_radius_server_config_t
      *cfg, fr_bio_fd_config_t const *fd_cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:57,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/server.c:59,1
    - Dst: fr_bio_fd_alloc
      Src: /src/freeradius-server/src/protocols/radius/server.c:62,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/server.c:65,1
    - Dst: fr_bio_fd_info
      Src: /src/freeradius-server/src/protocols/radius/server.c:74,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:75,1
    - Dst: fr_bio_mem_alloc
      Src: /src/freeradius-server/src/protocols/radius/server.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - read_size
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - size_t
    - fr_radius_server_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 86
    functionName: fr_radius_server_fd_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server.c
    functionUses: 0
    functionsReached:
    - fr_bio_mem_alloc
    - fr_bio_fd_alloc
    - fr_bio_fd_info
    - talloc_free
    - fr_assert
    - talloc_zero
    linkageType: ''
    returnType: fr_radius_server_fd_bio_t
    signature: fr_radius_server_fd_bio_t *fr_radius_server_fd_bio_alloc(TALLOC_CTX
      *ctx, size_t read_size, fr_radius_server_config_t *cfg, fr_bio_fd_config_t const
      *fd_cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/server.c:90,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:94,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:96,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:97,1
    - Dst: fr_radius_packet_encode
      Src: /src/freeradius-server/src/protocols/radius/server.c:102,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/server.c:104,1
    - Dst: fr_radius_packet_sign
      Src: /src/freeradius-server/src/protocols/radius/server.c:107,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/protocols/radius/server.c:109,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:111,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/server.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - bio
    - pctx
    - reply
    - list
    argTypes:
    - fr_bio_packet_t*
    - UNUSED*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 119
    functionName: fr_radius_server_fd_bio_write
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server.c
    functionUses: 0
    functionsReached:
    - fr_bio_write
    - fr_radius_packet_sign
    - talloc_get_type_abort
    - fr_assert
    - fr_radius_packet_encode
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_radius_server_fd_bio_write(fr_bio_packet_t *bio, UNUSED void
      *pctx, fr_packet_t *reply, fr_pair_list_t *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/server.c:126,1
    - Dst: fr_bio_read
      Src: /src/freeradius-server/src/protocols/radius/server.c:138,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server.c:142,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/server.c:142,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/protocols/radius/server.c:150,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/protocols/radius/server.c:153,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/server.c:155,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/server.c:162,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/protocols/radius/server.c:167,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/server.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - bio
    - packet_ctx_p
    - packet_p
    - out_ctx
    - out
    argTypes:
    - fr_bio_packet_t*
    - UNUSED**
    - fr_packet_t**
    - TALLOC_CTX*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 176
    functionName: fr_radius_server_fd_bio_read
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - fr_packet_alloc
    - talloc_free
    - memcpy
    - talloc_get_type_abort
    - fr_radius_decode_simple
    - fr_assert
    - fr_bio_read
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: "int fr_radius_server_fd_bio_read(fr_bio_packet_t *bio, UNUSED void
      **packet_ctx_p, fr_packet_t **packet_p,\n\t\t\t\t TALLOC_CTX *out_ctx, fr_pair_list_t
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/server.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: fr_radius_server_bio_get_fd
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_bio_t
    signature: fr_bio_t *fr_radius_server_bio_get_fd(fr_bio_packet_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/server.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: fr_radius_server_bio_info
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server.c
    functionUses: 0
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_radius_server_bio_info_t
    signature: fr_radius_server_bio_info_t *fr_radius_server_bio_info(fr_bio_packet_t
      *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:52,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/client.c:55,1
    - Dst: fr_radius_client_udp_bio_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:59,1
    - Dst: fr_radius_client_tcp_bio_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - fr_radius_client_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: fr_radius_client_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_strerror_const
    - fr_radius_client_tcp_bio_alloc
    - fr_radius_client_udp_bio_alloc
    linkageType: ''
    returnType: fr_bio_packet_t
    signature: fr_bio_packet_t *fr_radius_client_bio_alloc(TALLOC_CTX *ctx, fr_radius_client_config_t
      *cfg, fr_bio_fd_config_t const *fd_cfg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:70,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/client.c:72,1
    - Dst: fr_radius_id_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:81,1
    - Dst: fr_bio_fd_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:85,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/client.c:88,1
    - Dst: fr_bio_fd_info
      Src: /src/freeradius-server/src/protocols/radius/client.c:97,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:98,1
    - Dst: fr_socket_addr_swap
      Src: /src/freeradius-server/src/protocols/radius/client.c:102,1
    - Dst: fr_bio_mem_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:105,1
    - Dst: fr_bio_retry_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:116,1
    - Dst: fr_bio_retry_info
      Src: /src/freeradius-server/src/protocols/radius/client.c:122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:123,1
    - Dst: fr_bio_packet_init
      Src: /src/freeradius-server/src/protocols/radius/client.c:144,1
    - Dst: fr_time_delta_ispos
      Src: /src/freeradius-server/src/protocols/radius/client.c:156,1
    - Dst: fr_timer_in
      Src: /src/freeradius-server/src/protocols/radius/client.c:157,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/client.c:159,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/protocols/radius/client.c:171,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - ctx
    - read_size
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - size_t
    - fr_radius_client_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 174
    functionName: fr_radius_client_fd_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 2
    functionsReached:
    - fr_bio_mem_alloc
    - fr_bio_fd_alloc
    - talloc_free
    - fr_bio_fd_info
    - fr_time
    - fr_bio_retry_info
    - fr_timer_in
    - fr_radius_id_alloc
    - fr_assert
    - talloc_zero
    - fr_socket_addr_swap
    - fr_bio_retry_alloc
    - fr_time_delta_ispos
    - fr_bio_packet_init
    linkageType: ''
    returnType: fr_radius_client_fd_bio_t
    signature: fr_radius_client_fd_bio_t *fr_radius_client_fd_bio_alloc(TALLOC_CTX
      *ctx, size_t read_size, fr_radius_client_config_t *cfg, fr_bio_fd_config_t const
      *fd_cfg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:181,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:183,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:184,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:185,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/client.c:188,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/client.c:190,1
    - Dst: fr_radius_code_id_pop
      Src: /src/freeradius-server/src/protocols/radius/client.c:193,1
    - Dst: fr_bio_retry_entry_cancel
      Src: /src/freeradius-server/src/protocols/radius/client.c:198,1
    - Dst: fr_radius_client_fd_bio_t*::common::cb::write_blocked
      Src: /src/freeradius-server/src/protocols/radius/client.c:205,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/client.c:207,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/client.c:208,1
    - Dst: fr_radius_code_id_pop
      Src: /src/freeradius-server/src/protocols/radius/client.c:211,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:215,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/client.c:222,1
    - Dst: fr_radius_encode
      Src: /src/freeradius-server/src/protocols/radius/client.c:228,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/radius/client.c:228,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/client.c:232,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/client.c:233,1
    - Dst: fr_radius_code_id_push
      Src: /src/freeradius-server/src/protocols/radius/client.c:241,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/client.c:242,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:245,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/protocols/radius/client.c:248,1
    - Dst: fr_bio_write
      Src: /src/freeradius-server/src/protocols/radius/client.c:259,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:261,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/client.c:261,1
    - Dst: fr_radius_code_id_push
      Src: /src/freeradius-server/src/protocols/radius/client.c:263,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:267,1
    - Dst: talloc_array
      Src: /src/freeradius-server/src/protocols/radius/client.c:273,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/client.c:279,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/client.c:280,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - my
    - pctx
    - packet
    - list
    argTypes:
    - fr_radius_client_fd_bio_t*
    - void*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 283
    functionName: fr_radius_client_fd_bio_write
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 2
    functionsReached:
    - fr_bio_write
    - fr_bio_retry_entry_cancel
    - memcpy
    - talloc_array
    - fr_strerror_printf
    - fr_radius_code_id_pop
    - fr_radius_client_fd_bio_t*::common::cb::write_blocked
    - fr_rand
    - fr_assert
    - FR_DBUFF_TMP
    - fr_radius_sign
    - fr_strerror_const
    - fr_radius_code_id_push
    - fr_radius_encode
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: int fr_radius_client_fd_bio_write(fr_radius_client_fd_bio_t *my, void
      *pctx, fr_packet_t *packet, fr_pair_list_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:303,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:307,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:309,1
    - Dst: fr_radius_client_fd_bio_t*::cfg::packet_cb_cfg::retry
      Src: /src/freeradius-server/src/protocols/radius/client.c:311,1
    - Dst: fr_bio_retry_rewrite
      Src: /src/freeradius-server/src/protocols/radius/client.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - bio
    - retry_ctx
    - buffer
    - size_t
    argTypes:
    - fr_bio_t*
    - fr_bio_retry_entry_t*
    - UNUSED*
    - NDEBUG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: radius_client_retry
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - fr_radius_client_fd_bio_t*::cfg::packet_cb_cfg::retry
    - fr_assert
    - fr_bio_retry_rewrite
    - talloc_get_type_abort
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t radius_client_retry(fr_bio_t *bio, fr_bio_retry_entry_t *retry_ctx,
      UNUSED const void *buffer, NDEBUG_UNUSED size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:322,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:330,1
    - Dst: fr_radius_code_id_push
      Src: /src/freeradius-server/src/protocols/radius/client.c:335,1
    - Dst: fr_radius_code_id_pop
      Src: /src/freeradius-server/src/protocols/radius/client.c:337,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/client.c:338,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/protocols/radius/client.c:346,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:347,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:348,1
    - Dst: fr_nbo_from_uint32
      Src: /src/freeradius-server/src/protocols/radius/client.c:352,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/protocols/radius/client.c:357,1
    - Dst: fr_radius_client_fd_bio_t*::cfg::packet_cb_cfg::retry
      Src: /src/freeradius-server/src/protocols/radius/client.c:363,1
    - Dst: fr_bio_retry_rewrite
      Src: /src/freeradius-server/src/protocols/radius/client.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - bio
    - retry_ctx
    - buffer
    - size_t
    argTypes:
    - fr_bio_t*
    - fr_bio_retry_entry_t*
    - UNUSED*
    - NDEBUG_UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 369
    functionName: radius_client_rewrite_acct
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - fr_nbo_from_uint32
    - fr_radius_code_id_pop
    - talloc_get_type_abort
    - fr_assert
    - fr_radius_sign
    - fr_radius_client_fd_bio_t*::cfg::packet_cb_cfg::retry
    - fr_bio_retry_rewrite
    - fr_radius_code_id_push
    - fr_bio_error
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t radius_client_rewrite_acct(fr_bio_t *bio, fr_bio_retry_entry_t
      *retry_ctx, UNUSED const void *buffer, NDEBUG_UNUSED size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:375,1
    - Dst: fr_radius_code_id_find
      Src: /src/freeradius-server/src/protocols/radius/client.c:381,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:382,1
    - Dst: fr_bio_retry_entry_init
      Src: /src/freeradius-server/src/protocols/radius/client.c:389,1
    - Dst: fr_time_lteq
      Src: /src/freeradius-server/src/protocols/radius/client.c:393,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/client.c:420,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/radius/client.c:430,1
    - Dst: fr_time_to_sec
      Src: /src/freeradius-server/src/protocols/radius/client.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - bio
    - packet_ctx
    - buffer
    - size
    - retry_ctx
    argTypes:
    - fr_bio_t*
    - void*
    - void*
    - size_t
    - fr_bio_retry_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 433
    functionName: radius_client_retry_sent
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - fr_time_to_sec
    - fr_bio_retry_entry_init
    - talloc_get_type_abort
    - fr_radius_code_id_find
    - fr_nbo_to_uint32
    - fr_assert
    - fr_time_lteq
    - talloc_zero
    linkageType: ''
    returnType: void
    signature: "void radius_client_retry_sent(fr_bio_t *bio, void *packet_ctx, const
      void *buffer, size_t size,\n\t\t\t\t     fr_bio_retry_entry_t *retry_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:438,1
    - Dst: UNCONST
      Src: /src/freeradius-server/src/protocols/radius/client.c:440,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:447,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:448,1
    - Dst: fr_radius_code_id_find
      Src: /src/freeradius-server/src/protocols/radius/client.c:461,1
    - Dst: fr_radius_verify
      Src: /src/freeradius-server/src/protocols/radius/client.c:470,1
    - Dst: fr_time_gt
      Src: /src/freeradius-server/src/protocols/radius/client.c:479,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/protocols/radius/client.c:480,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/radius/client.c:491,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/protocols/radius/client.c:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - bio
    - retry_ctx_p
    - packet_ctx
    - buffer
    - size_t
    argTypes:
    - fr_bio_t*
    - fr_bio_retry_entry_t**
    - void*
    - void*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 499
    functionName: radius_client_retry_response
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - fr_time
    - fr_radius_verify
    - fr_time_gt
    - UNCONST
    - talloc_get_type_abort
    - fr_radius_code_id_find
    - fr_assert
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool radius_client_retry_response(fr_bio_t *bio, fr_bio_retry_entry_t
      **retry_ctx_p, void *packet_ctx, const void *buffer, UNUSED size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:503,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:507,1
    - Dst: fr_radius_code_id_push
      Src: /src/freeradius-server/src/protocols/radius/client.c:509,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/radius/client.c:514,1
    - Dst: fr_radius_client_fd_bio_t*::cfg::packet_cb_cfg::release
      Src: /src/freeradius-server/src/protocols/radius/client.c:528,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:530,1
    - Dst: fr_radius_client_fd_bio_t*::common::cb::write_resume
      Src: /src/freeradius-server/src/protocols/radius/client.c:542,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/protocols/radius/client.c:545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - bio
    - retry_ctx
    - reason
    argTypes:
    - fr_bio_t*
    - fr_bio_retry_entry_t*
    - fr_bio_retry_release_reason_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 547
    functionName: radius_client_retry_release
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - TALLOC_FREE
    - fr_time
    - fr_radius_client_fd_bio_t*::cfg::packet_cb_cfg::release
    - fr_radius_client_fd_bio_t*::common::cb::write_resume
    - talloc_get_type_abort
    - fr_assert
    - fr_radius_code_id_push
    linkageType: ''
    returnType: void
    signature: void radius_client_retry_release(fr_bio_t *bio, fr_bio_retry_entry_t
      *retry_ctx, fr_bio_retry_release_reason_t reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:558,1
    - Dst: fr_radius_code_id_find
      Src: /src/freeradius-server/src/protocols/radius/client.c:560,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:563,1
    - Dst: fr_bio_retry_entry_cancel
      Src: /src/freeradius-server/src/protocols/radius/client.c:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - bio
    - packet
    argTypes:
    - fr_bio_packet_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 574
    functionName: fr_radius_client_fd_bio_cancel
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - fr_bio_retry_entry_cancel
    - talloc_get_type_abort
    - fr_radius_code_id_find
    linkageType: ''
    returnType: int
    signature: int fr_radius_client_fd_bio_cancel(fr_bio_packet_t *bio, fr_packet_t
      *packet)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:580,1
    - Dst: fr_bio_read
      Src: /src/freeradius-server/src/protocols/radius/client.c:592,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:596,1
    - Dst: fr_bio_error
      Src: /src/freeradius-server/src/protocols/radius/client.c:596,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/protocols/radius/client.c:605,1
    - Dst: fr_time
      Src: /src/freeradius-server/src/protocols/radius/client.c:612,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/protocols/radius/client.c:614,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/client.c:616,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/client.c:623,1
    - Dst: fr_radius_decode_simple
      Src: /src/freeradius-server/src/protocols/radius/client.c:628,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/client.c:630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - bio
    - pctx_p
    - packet_p
    - TALLOC_CTX *out_ctx
    - out
    argTypes:
    - fr_bio_packet_t*
    - void**
    - fr_packet_t**
    - UNUSED
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 638
    functionName: fr_radius_client_fd_bio_read
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - talloc_memdup
    - fr_packet_alloc
    - fr_time
    - talloc_free
    - memcpy
    - talloc_get_type_abort
    - fr_radius_decode_simple
    - fr_assert
    - fr_bio_read
    - fr_bio_error
    linkageType: ''
    returnType: int
    signature: "int fr_radius_client_fd_bio_read(fr_bio_packet_t *bio, void **pctx_p,
      fr_packet_t **packet_p,\n\t\t\t\t UNUSED TALLOC_CTX *out_ctx, fr_pair_list_t
      *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:642,1
    - Dst: fr_bio_retry_outstanding
      Src: /src/freeradius-server/src/protocols/radius/client.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 650
    functionName: fr_radius_client_bio_outstanding
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 2
    functionsReached:
    - talloc_get_type_abort
    - fr_bio_retry_outstanding
    linkageType: ''
    returnType: size_t
    signature: size_t fr_radius_client_bio_outstanding(fr_bio_packet_t *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - fr_bio_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 657
    functionName: fr_radius_client_bio_info
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 4
    functionsReached:
    - talloc_get_type_abort
    linkageType: ''
    returnType: fr_radius_client_bio_info_t
    signature: fr_radius_client_bio_info_t *fr_radius_client_bio_info(fr_bio_packet_t
      *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:662,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/client.c:665,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/client.c:670,1
    - Dst: fr_radius_code_id_force
      Src: /src/freeradius-server/src/protocols/radius/client.c:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - bio
    - code
    - id
    argTypes:
    - fr_bio_packet_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: fr_radius_client_bio_force_id
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 1
    functionsReached:
    - fr_strerror_const
    - fr_radius_code_id_force
    - talloc_get_type_abort
    linkageType: ''
    returnType: int
    signature: int fr_radius_client_bio_force_id(fr_bio_packet_t *bio, int code, int
      id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:682,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:684,1
    - Dst: fr_radius_client_fd_bio_t*::common::cb::failed
      Src: /src/freeradius-server/src/protocols/radius/client.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - fr_timer_list_t *tl
    - fr_time_t
    - uctx
    argTypes:
    - NDEBUG_UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: fr_radius_client_bio_connect_timer
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - talloc_get_type_abort
    - fr_radius_client_fd_bio_t*::common::cb::failed
    linkageType: ''
    returnType: void
    signature: void fr_radius_client_bio_connect_timer(NDEBUG_UNUSED fr_timer_list_t
      *tl, UNUSED fr_time_t now, void *uctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/client.c:692,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:694,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:695,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:696,1
    - Dst: fr_bio_packet_connected
      Src: /src/freeradius-server/src/protocols/radius/client.c:710,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:714,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/client.c:715,1
    - Dst: fr_bio_fd_connect
      Src: /src/freeradius-server/src/protocols/radius/client.c:720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - fr_event_list_t *el
    - int
    - flags
    - uctx
    argTypes:
    - NDEBUG_UNUSED
    - NDEBUG_UNUSED
    - UNUSED
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 721
    functionName: fr_radius_client_bio_connect
    functionSourceFile: /src/freeradius-server/src/protocols/radius/client.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_bio_fd_connect
    - fr_bio_packet_connected
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void fr_radius_client_bio_connect(NDEBUG_UNUSED fr_event_list_t *el,
      NDEBUG_UNUSED int fd, UNUSED int flags, void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: TAG_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAG_VALID(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:65,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:75,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:79,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/encode.c:80,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:88,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:89,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:91,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:92,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:97,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:101,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:102,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/encode.c:105,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:109,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:110,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - dbuff
    - input
    - inlen
    - packet_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dbuff_marker_t*
    - size_t
    - fr_radius_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 113
    functionName: encode_password
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_md5_ctx_copy
    - fr_md5_update
    - fr_dbuff_in_memcpy
    - fr_strerror_const
    - fr_md5_final
    - fr_md5_ctx_alloc_from_list
    - memset
    - fr_md5_ctx_free_from_list
    - fr_dbuff_out_memcpy
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_password(fr_dbuff_t *dbuff, fr_dbuff_marker_t *input,
      size_t inlen, fr_radius_encode_ctx_t *packet_ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/radius/encode.c:125,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:128,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:139,1
    - Dst: ROUND_UP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:153,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:175,1
    - Dst: fr_dbuff_set_to_start
      Src: /src/freeradius-server/src/protocols/radius/encode.c:181,1
    - Dst: fr_dbuff_out_memcpy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:186,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/protocols/radius/encode.c:189,1
    - Dst: fr_fast_rand
      Src: /src/freeradius-server/src/protocols/radius/encode.c:200,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:205,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:206,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:208,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:209,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:211,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:212,1
    - Dst: fr_md5_ctx_copy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:222,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/encode.c:223,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/encode.c:225,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:243,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/encode.c:244,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:246,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:248,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 4
    argNames:
    - dbuff
    - in
    - inlen
    - packet_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dbuff_marker_t*
    - size_t
    - fr_radius_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 249
    functionName: encode_tunnel_password
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - fr_md5_ctx_copy
    - fr_md5_update
    - fr_dbuff_set_to_start
    - ROUND_UP
    - fr_fast_rand
    - fr_md5_final
    - fr_md5_ctx_alloc_from_list
    - fr_strerror_const
    - fr_md5_ctx_free_from_list
    - fr_dbuff_out_memcpy
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_tunnel_password(fr_dbuff_t *dbuff, fr_dbuff_marker_t
      *in, size_t inlen, fr_radius_encode_ctx_t *packet_ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:259,1
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/radius/encode.c:261,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:264,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:278,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/radius/encode.c:282,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:283,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:286,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/radius/encode.c:291,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:295,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:296,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/radius/encode.c:299,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:306,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:306,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:314,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 318
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 10
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - encode_tlv
    - fr_dcursor_next
    - fr_strerror_printf
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - encode_child
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv(fr_dbuff_t *dbuff,\n\t\t\t  fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t  fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/radius/encode.c:329,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:330,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/encode.c:331,1
    - Dst: fr_radius_encode_pair
      Src: /src/freeradius-server/src/protocols/radius/encode.c:336,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - dbuff
    - vps
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: encode_pairs
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_pair_dcursor_iter_init
    - fr_dbuff_used
    - fr_radius_encode_pair
    - PAIR_VERIFY
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t encode_pairs(fr_dbuff_t *dbuff, fr_pair_list_t const *vps,
      void *encode_ctx)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:359,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:362,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/encode.c:367,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:368,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/radius/encode.c:373,1
    - Dst: fr_pair_ref_to_network
      Src: /src/freeradius-server/src/protocols/radius/encode.c:375,1
    - Dst: fr_radius_flag_encrypted
      Src: /src/freeradius-server/src/protocols/radius/encode.c:380,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:381,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/radius/encode.c:389,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:392,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:393,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:394,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:402,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:407,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/radius/encode.c:411,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:412,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/radius/encode.c:413,1
    - Dst: fr_radius_flag_has_tag
      Src: /src/freeradius-server/src/protocols/radius/encode.c:434,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:436,1
    - Dst: TAG_VALID
      Src: /src/freeradius-server/src/protocols/radius/encode.c:437,1
    - Dst: fr_radius_flag_encrypted
      Src: /src/freeradius-server/src/protocols/radius/encode.c:438,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:439,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:446,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:447,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:448,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:449,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:463,1
    - Dst: fr_bytes_from_bits
      Src: /src/freeradius-server/src/protocols/radius/encode.c:474,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:475,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:477,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:490,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:494,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/radius/encode.c:500,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:504,1
    - Dst: fr_radius_flag_abinary
      Src: /src/freeradius-server/src/protocols/radius/encode.c:513,1
    - Dst: fr_radius_encode_abinary
      Src: /src/freeradius-server/src/protocols/radius/encode.c:514,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/radius/encode.c:527,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:536,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:538,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:539,1
    - Dst: fr_radius_flag_encrypted
      Src: /src/freeradius-server/src/protocols/radius/encode.c:549,1
    - Dst: encode_password
      Src: /src/freeradius-server/src/protocols/radius/encode.c:554,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:554,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:560,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:562,1
    - Dst: encode_tunnel_password
      Src: /src/freeradius-server/src/protocols/radius/encode.c:567,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:567,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:569,1
    - Dst: fr_radius_ascend_secret
      Src: /src/freeradius-server/src/protocols/radius/encode.c:586,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:586,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:586,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:597,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:602,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:603,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/radius/encode.c:603,1
    - Dst: fr_radius_flag_has_tag
      Src: /src/freeradius-server/src/protocols/radius/encode.c:615,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:620,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/radius/encode.c:621,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:623,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:626,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:627,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:630,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/radius/encode.c:630,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:630,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/radius/encode.c:631,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:636,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:637,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:639,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 154
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 640
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 12
    functionsReached:
    - fr_dcursor_current
    - htonl
    - fr_type_is_structural
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_start
    - FR_PROTO_STACK_PRINT
    - TAG_VALID
    - FR_DBUFF
    - fr_type_to_str
    - fr_radius_flag_has_tag
    - FR_PROTO_HEX_DUMP
    - fr_pair_ref_to_network
    - fr_dcursor_next
    - fr_bytes_from_bits
    - encode_tunnel_password
    - fr_dbuff_used
    - encode_password
    - fr_radius_flag_abinary
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_strerror_const
    - encode_tlv
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_current
    - fr_dbuff_out
    - fr_value_box_to_network
    - fr_assert
    - fr_radius_encode_abinary
    - fr_dbuff_set
    - fr_dbuff_in
    - fr_radius_flag_encrypted
    - fr_radius_ascend_secret
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - fr_struct_to_network
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_value(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_ABS
      Src: /src/freeradius-server/src/protocols/radius/encode.c:666,1
    - Dst: unlikely
      Src: /src/freeradius-server/src/protocols/radius/encode.c:669,1
    - Dst: ROUND_UP_DIV
      Src: /src/freeradius-server/src/protocols/radius/encode.c:671,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:674,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:675,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:677,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:679,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:679,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:697,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:698,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:699,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:707,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:707,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:708,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:716,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:716,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:717,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:720,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:720,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:723,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:742,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:743,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:748,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:748,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/protocols/radius/encode.c:749,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:749,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:752,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 6
    argNames:
    - data
    - data_len
    - hdr
    - hdr_len
    - flag_offset
    - vsa_offset
    argTypes:
    - fr_dbuff_t*
    - size_t
    - fr_dbuff_marker_t*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 753
    functionName: attr_fragment
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - unlikely
    - FR_DBUFF_ABS
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_current
    - fr_dbuff_set
    - fr_dbuff_in
    - fr_dbuff_marker
    - fr_dbuff_in_memcpy
    - fr_dbuff_advance
    - FR_DBUFF
    - ROUND_UP_DIV
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t attr_fragment(fr_dbuff_t *data, size_t data_len, fr_dbuff_marker_t
      *hdr, size_t hdr_len,\n\t\t\t     int flag_offset, int vsa_offset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:769,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/encode.c:772,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:773,1
    - Dst: fr_radius_flag_long_extended
      Src: /src/freeradius-server/src/protocols/radius/encode.c:775,1
    - Dst: FR_DBUFF_BIND_CURRENT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:782,1
    - Dst: FR_DBUFF_MAX_BIND_CURRENT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:784,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:786,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:792,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:793,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:794,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:799,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:801,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:803,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:809,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:810,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:812,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:814,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:816,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:821,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:822,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:822,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:827,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:827,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:836,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/radius/encode.c:839,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/radius/encode.c:842,1
    - Dst: attr_fragment
      Src: /src/freeradius-server/src/protocols/radius/encode.c:857,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:860,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:863,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:863,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:864,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:864,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - NDEBUG_UNUSED unsigned
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 758
    functionDepth: 6
    functionLinenumber: 758
    functionLinenumberEnd: 867
    functionName: encode_extended
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_current
    - FR_DBUFF_BIND_CURRENT
    - fr_dbuff_in_bytes
    - fr_dbuff_marker
    - FR_DBUFF_MAX_BIND_CURRENT
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - encode_value
    - PAIR_VERIFY
    - fr_struct_to_network
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_radius_flag_long_extended
    - attr_fragment
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_extended(fr_dbuff_t *dbuff,\n\t\t\t\t   fr_da_stack_t
      *da_stack, NDEBUG_UNUSED unsigned int depth,\n\t\t\t\t   fr_dcursor_t *cursor,
      void *encode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:885,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:887,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:888,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/radius/encode.c:888,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/radius/encode.c:890,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:892,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:894,1
    - Dst: encode_extended_nested
      Src: /src/freeradius-server/src/protocols/radius/encode.c:896,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:899,1
    - Dst: encode_extended
      Src: /src/freeradius-server/src/protocols/radius/encode.c:900,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:907,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:909,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:911,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 912
    functionName: encode_extended_nested
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_dcursor_next
    - fr_type_is_structural
    - encode_extended_nested
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - fr_assert
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - encode_extended
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_extended_nested(fr_dbuff_t *dbuff,\n\t\t\t\t      fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:929,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:930,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:933,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:937,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:942,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:943,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:945,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:947,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:948,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:950,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:950,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:956,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:962,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 965
    functionName: encode_concat
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_current
    - fr_dbuff_in
    - fr_dcursor_next
    - fr_dbuff_marker
    - fr_proto_da_stack_build
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_concat(fr_dbuff_t *dbuff,\n\t\t\t     fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t     fr_dcursor_t *cursor, UNUSED void
      *encode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/radius/encode.c:980,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:982,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:984,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:986,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:989,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/radius/encode.c:991,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:994,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:995,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:997,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/radius/encode.c:997,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1000
    functionName: encode_child
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 3
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_in_bytes
    - fr_dbuff_marker
    - fr_dbuff_start
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - encode_value
    - FR_DBUFF_IN_BYTES_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_child(fr_dbuff_t *dbuff,\n\t\t\t\t fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t\t fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1015,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1020,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1028,1
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1035,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1037,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1040,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1045,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1047,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1048,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1050,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1061,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1065,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1069,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1073,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1082,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1089,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1097,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1098,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1102,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1115,1
    - Dst: attr_fragment
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1120,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1124,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1127,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1127,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1130,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1130,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1132,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1133
    functionName: encode_vendor_attr
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_in_bytes
    - fr_dbuff_in
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_current
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - encode_value
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_strerror_const
    - attr_fragment
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_vendor_attr(fr_dbuff_t *dbuff,\n\t\t\t\t  fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\t  fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1143,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1146,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1148,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1150,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1151,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1156,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1160,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1165,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1166,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1167,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1169,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1174,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1176,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1177,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1183,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1196,1
    - Dst: attr_fragment
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1197,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1200,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1203,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1203,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1204,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1204,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1206,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1206,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1209
    functionName: encode_wimax
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_in_bytes
    - fr_dbuff_current
    - fr_dbuff_marker
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - encode_value
    - PAIR_VERIFY
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_strerror_const
    - attr_fragment
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_wimax(fr_dbuff_t *dbuff,\n\t\t\t\tfr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t\tfr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1222,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1225,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1226,1
    - Dst: fr_dict_vendor_by_da
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1230,1
    - Dst: encode_wimax
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1242,1
    - Dst: encode_vendor_attr
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1245,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1251,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1252,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1253,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1255,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1256,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1257,1
    - Dst: encode_wimax
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1260,1
    - Dst: encode_vendor_attr
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1262,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1267,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1268,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1271
    functionName: encode_vendor
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - encode_wimax
    - encode_vendor_attr
    - fr_dbuff_set
    - fr_dcursor_next
    - fr_strerror_printf
    - fr_dict_vendor_by_da
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - FR_DBUFF
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_vendor(fr_dbuff_t *dbuff,\n\t\t\t\t fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t\t fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1286,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1289,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1290,1
    - Dst: encode_vendor
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1299,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1302,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1304,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1306,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1314,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1315,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1316,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1318,1
    - Dst: encode_vendor
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1320,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1327,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1328,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1330,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1330,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1276
    functionDepth: 5
    functionLinenumber: 1276
    functionLinenumberEnd: 1333
    functionName: encode_vsa
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 1
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - encode_vendor
    - fr_strerror_printf
    - fr_dbuff_start
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - FR_DBUFF
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_vsa(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1343,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1345,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1348,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1350,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1351,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1353,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1354,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1355,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1356,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1358,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1378,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1381,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1382,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1392,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1393,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1395,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1396,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1397,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1407,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1419,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1421,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1422,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1431,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1432,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1433,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1437,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1438,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1440,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - NDEBUG_UNUSED unsigned
    - fr_dcursor_t*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1441
    functionName: encode_nas_filter_rule
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_dbuff_in
    - fr_dcursor_next
    - fr_dbuff_marker
    - fr_proto_da_stack_build
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_nas_filter_rule(fr_dbuff_t *dbuff,\n\t\t\t\t      fr_da_stack_t
      *da_stack, NDEBUG_UNUSED unsigned int depth,\n\t\t\t\t      fr_dcursor_t *cursor,
      UNUSED void *encode_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1452,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1453,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1457,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1462,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1463,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1470,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1471,1
    - Dst: fr_dict_vendor_num_by_da
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1479,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1481,1
    - Dst: fr_dbuff_in_bytes
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1492,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1494,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1494,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1496,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1497,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1498,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1506,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1507,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1509,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1509,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1511,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1511,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1516,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1517,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1518,1
    - Dst: encode_nas_filter_rule
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1526,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1532,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1449
    functionDepth: 4
    functionLinenumber: 1449
    functionLinenumberEnd: 1533
    functionName: encode_rfc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 6
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_current
    - fr_dbuff_in_bytes
    - fr_dcursor_next
    - fr_strerror_printf
    - fr_dbuff_marker
    - encode_nas_filter_rule
    - fr_proto_da_stack_build
    - FR_PROTO_STACK_PRINT
    - PAIR_VERIFY
    - FR_DBUFF
    - fr_dict_vendor_num_by_da
    - encode_child
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_type_to_str
    - FR_DBUFF_MEMSET_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_rfc(fr_dbuff_t *dbuff, fr_da_stack_t *da_stack, unsigned
      int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1553,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1560,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1563,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1566,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1579,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1580,1
    - Dst: encode_pairs
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1583,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1587,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1588,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1613,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1614,1
    - Dst: fr_radius_flag_encrypted
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1629,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1635,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1636,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1638,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1648,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1649,1
    - Dst: fr_radius_flag_concat
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1659,1
    - Dst: encode_concat
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1666,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1673,1
    - Dst: encode_vsa
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1678,1
    - Dst: fr_radius_flag_extended
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1683,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1684,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1687,1
    - Dst: encode_extended_nested
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1691,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1699,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1706,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1707,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1711,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1549
    functionDepth: 4
    functionLinenumber: 1549
    functionLinenumberEnd: 1712
    functionName: fr_radius_encode_pair
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 2
    functionsReached:
    - fr_dcursor_current
    - fr_strerror_printf
    - fr_radius_flag_concat
    - encode_extended_nested
    - FR_PROTO_STACK_PRINT
    - encode_concat
    - FR_DBUFF
    - encode_vsa
    - fr_dcursor_next
    - fr_radius_flag_extended
    - encode_pairs
    - fr_strerror_const
    - encode_rfc
    - fr_assert
    - fr_dbuff_set
    - fr_radius_flag_encrypted
    - fr_proto_da_stack_build
    - PAIR_VERIFY
    - encode_child
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_encode_pair(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      void *encode_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1724,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1725,1
    - Dst: encode_pairs
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dbuff
    - list
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1714
    functionDepth: 5
    functionLinenumber: 1714
    functionLinenumberEnd: 1731
    functionName: fr_radius_encode_foreign
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_rand
    - encode_pairs
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_encode_foreign(fr_dbuff_t *dbuff, fr_pair_list_t
      const *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1744,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1747,1
    - Dst: talloc_strdup
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1749,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1734
    functionDepth: 1
    functionLinenumber: 1734
    functionLinenumberEnd: 1764
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_strdup
    - talloc_strlen
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   UNUSED fr_dict_attr_t const *root_da)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1768,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1774,1
    - Dst: FR_RADIUS_PACKET_CODE_VALID
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1778,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1779,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1788,1
    - Dst: fr_pair_list_append_by_da_len
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1790,1
    - Dst: fr_radius_encode
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1803,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1803,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1806,1
    - Dst: talloc_strlen
      Src: /src/freeradius-server/src/protocols/radius/encode.c:1807,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1766
    functionDepth: 2
    functionLinenumber: 1766
    functionLinenumberEnd: 1812
    functionName: fr_radius_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/radius/encode.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - talloc_get_type_abort
    - FR_RADIUS_PACKET_CODE_VALID
    - FR_DBUFF_TMP
    - fr_radius_sign
    - talloc_strlen
    - fr_radius_encode
    - fr_pair_find_by_da
    - fr_pair_list_append_by_da_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_encode_proto(TALLOC_CTX *ctx, fr_pair_list_t *vps,
      uint8_t *data, size_t data_len, void *proto_ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:398,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:405,1
    - Dst: strtol
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:405,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:410,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:417,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:425,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:426,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:431,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:432,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:433,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:435,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:448,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:455,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:462,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:469,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:479,1
    - Dst: strtoul
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:486,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:488,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:493,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 4
    argNames:
    - argc
    - argv
    - net
    - comp
    argTypes:
    - int
    - char**
    - ascend_ipx_net_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 500
    functionName: ascend_parse_ipx_net
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_strerror_printf
    - strtol
    - FR_SBUFF_IN_STR
    - FR_DBUFF_TMP
    - fr_table_value_by_str
    - strtoul
    - memcmp
    - fr_strerror_const
    - fr_base16_decode
    - htons
    linkageType: ''
    returnType: int
    signature: "int ascend_parse_ipx_net(int argc, char **argv,\n\t\t\t\tascend_ipx_net_t
      *net, uint8_t *comp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:555,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:560,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:565,1
    - Dst: ascend_parse_ipx_net
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:568,1
    - Dst: ascend_parse_ipx_net
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:579,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:589,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:599,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - argc
    - argv
    - filter
    argTypes:
    - int
    - char**
    - ascend_ipx_filter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 607
    functionName: ascend_parse_ipx
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - fr_strerror_const
    - fr_strerror_printf
    - ascend_parse_ipx_net
    - fr_table_value_by_str
    linkageType: ''
    returnType: int
    signature: int ascend_parse_ipx(int argc, char **argv, ascend_ipx_filter_t *filter)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:648,1
    - Dst: atoi
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:662,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:664,1
    - Dst: strspn
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:667,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:672,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:684,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:717,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 2
    argNames:
    - ipaddr
    - str
    argTypes:
    - uint32_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 719
    functionName: ascend_parse_ipaddr
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - htonl
    - fr_strerror_printf
    - strspn
    - atoi
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int ascend_parse_ipaddr(uint32_t *ipaddr, char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:733,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:735,1
    - Dst: strspn
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:739,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:739,1
    - Dst: atoi
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:740,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:742,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:746,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - port
    - compare
    - str
    argTypes:
    - uint16_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 754
    functionName: ascend_parse_port
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - strlen
    - fr_table_value_by_str
    - strspn
    - atoi
    - htons
    linkageType: ''
    returnType: int
    signature: int ascend_parse_port(uint16_t *port, char *compare, char *str)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:815,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:820,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:825,1
    - Dst: ascend_parse_ipaddr
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:829,1
    - Dst: ascend_parse_ipaddr
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:842,1
    - Dst: ascend_parse_port
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:855,1
    - Dst: ascend_parse_port
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:869,1
    - Dst: strspn
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:889,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:889,1
    - Dst: atoi
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:890,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:892,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:894,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:912,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 107
    argCount: 3
    argNames:
    - argc
    - argv
    - filter
    argTypes:
    - int
    - char**
    - ascend_ip_filter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 918
    functionName: ascend_parse_ip
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - ascend_parse_port
    - fr_strerror_printf
    - atoi
    - strlen
    - fr_table_value_by_str
    - strspn
    - ascend_parse_ipaddr
    linkageType: ''
    returnType: int
    signature: int ascend_parse_ip(int argc, char **argv, ascend_ip_filter_t *filter)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:945,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:950,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:955,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:959,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:959,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:960,1
    - Dst: fr_inet_pton6
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:972,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:972,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:973,1
    - Dst: ascend_parse_port
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:985,1
    - Dst: ascend_parse_port
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:999,1
    - Dst: strspn
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1019,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1019,1
    - Dst: atoi
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1020,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1022,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1024,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1042,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 107
    argCount: 3
    argNames:
    - argc
    - argv
    - filter
    argTypes:
    - int
    - char**
    - ascend_ipv6_filter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 1048
    functionName: ascend_parse_ipv6
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - ascend_parse_port
    - memcpy
    - fr_strerror_printf
    - fr_inet_pton6
    - strlen
    - fr_table_value_by_str
    - strspn
    - atoi
    linkageType: ''
    returnType: int
    signature: int ascend_parse_ipv6(int argc, char **argv, ascend_ipv6_filter_t *filter)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1090,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1098,1
    - Dst: strspn
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1105,1
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1105,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1107,1
    - Dst: atoi
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1111,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1115,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1117,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1118,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1119,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1121,1
    - Dst: fr_base16_decode
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1125,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1126,1
    - Dst: FR_SBUFF_IN_STR
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1127,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1129,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1134,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1146,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1151,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1165,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1170,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 3
    argNames:
    - argc
    - argv
    - filter
    argTypes:
    - int
    - char**
    - ascend_generic_filter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1180
    functionName: ascend_parse_generic
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - fr_strerror_printf
    - FR_SBUFF_IN_STR
    - FR_DBUFF_TMP
    - strlen
    - strspn
    - fr_table_value_by_str
    - atoi
    - fr_strerror_const
    - fr_base16_decode
    - htons
    linkageType: ''
    returnType: int
    signature: "int ascend_parse_generic(int argc, char **argv,\n\t\t\t\tascend_generic_filter_t
      *filter)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: talloc_bstrndup
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1210,1
    - Dst: fr_dict_str_to_argv
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1212,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1214,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1216,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1223,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1224,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1238,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1245,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1256,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1263,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1274,1
    - Dst: ascend_parse_generic
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1280,1
    - Dst: ascend_parse_ip
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1285,1
    - Dst: ascend_parse_ipx
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1290,1
    - Dst: ascend_parse_ipv6
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1295,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1302,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1304,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 2
    argNames:
    - vp
    - dbuff
    argTypes:
    - fr_pair_t*
    - fr_dbuff_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1305
    functionName: fr_radius_encode_abinary
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 1
    functionsReached:
    - ascend_parse_generic
    - talloc_free
    - talloc_bstrndup
    - fr_strerror_printf
    - fr_dbuff_in_memcpy
    - memset
    - ascend_parse_ip
    - fr_dict_str_to_argv
    - fr_table_value_by_str
    - fr_strerror_const
    - ascend_parse_ipx
    - ascend_parse_ipv6
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_encode_abinary(fr_pair_t const *vp, fr_dbuff_t *dbuff)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: FR_SBUFF_OUT
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1325,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1342,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1372,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1372,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1382,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1391,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1399,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1399,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1402,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1403,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1404,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1408,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1409,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1410,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1414,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1424,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1425,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1431,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1432,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1433,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1439,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1440,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1446,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1447,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1448,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1460,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1465,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1465,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1469,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1472,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1476,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1479,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1482,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1494,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1496,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1499,1
    - Dst: fr_inet_ntop_prefix
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1501,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1502,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1507,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1509,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1512,1
    - Dst: fr_inet_ntop_prefix
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1514,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1515,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1517,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1517,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1520,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1521,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1522,1
    - Dst: FR_SBUFF_IN_SPRINTF_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1526,1
    - Dst: fr_table_str_by_value
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1527,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1528,1
    - Dst: FR_SBUFF_IN_STRCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1532,1
    - Dst: fr_pair_value_strdup
      Src: /src/freeradius-server/src/protocols/radius/abinary.c:1543,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 110
    argCount: 3
    argNames:
    - vp
    - data
    - data_len
    argTypes:
    - fr_pair_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1546
    functionName: fr_radius_decode_abinary
    functionSourceFile: /src/freeradius-server/src/protocols/radius/abinary.c
    functionUses: 0
    functionsReached:
    - fr_inet_ntop_prefix
    - ntohl
    - memcpy
    - FR_SBUFF_OUT
    - fr_pair_value_strdup
    - fr_table_str_by_value
    - ntohs
    - memset
    - FR_SBUFF_IN_STRCPY_RETURN
    - FR_SBUFF_IN_SPRINTF_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_decode_abinary(fr_pair_t *vp, uint8_t const *data,
      size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FR_RADIUS_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_RADIUS_PACKET_CODE_VALID(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: FR_TUNNEL_FR_ENC_LENGTH
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_TUNNEL_FR_ENC_LENGTH(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/radius/radius.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: fr_radius_attr_flags
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_radius_attr_flags_t
    signature: fr_radius_attr_flags_t * fr_radius_attr_flags(fr_dict_attr_t const
      *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: fr_radius_flag_has_tag
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_radius_flag_has_tag(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: fr_radius_flag_concat
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_radius_flag_concat(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: fr_radius_flag_abinary
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_radius_flag_abinary(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: fr_radius_flag_encrypted
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_radius_flag_encrypted(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_attr_flags
      Src: /src/freeradius-server/src/protocols/radius/radius.h:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: fr_radius_flag_extended
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 2
    functionsReached:
    - fr_radius_attr_flags
    linkageType: ''
    returnType: bool
    signature: bool fr_radius_flag_extended(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: fr_radius_flag_long_extended
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_radius_flag_long_extended(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _log
    - ','
    - _packet
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: fr_packet_log_hex
    functionSourceFile: /src/freeradius-server/src/protocols/radius/radius.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_packet_log_hex(_log, _packet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:53,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:54,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:56,1
    - Dst: fr_radius_id_alloc
      Src: /src/freeradius-server/src/protocols/radius/id.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - codes
    - code
    argTypes:
    - TALLOC_CTX*
    - fr_radius_code_id_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: fr_radius_code_id_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.h
    functionUses: 0
    functionsReached:
    - fr_radius_id_alloc
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_radius_code_id_alloc(TALLOC_CTX *ctx, fr_radius_code_id_t codes,
      int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:66,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:67,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:69,1
    - Dst: fr_radius_id_pop
      Src: /src/freeradius-server/src/protocols/radius/id.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - codes
    - packet
    argTypes:
    - fr_radius_code_id_t
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: fr_radius_code_id_pop
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.h
    functionUses: 2
    functionsReached:
    - fr_assert
    - fr_radius_id_pop
    linkageType: ''
    returnType: fr_radius_id_ctx_t
    signature: fr_radius_id_ctx_t *fr_radius_code_id_pop(fr_radius_code_id_t codes,
      fr_packet_t *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:76,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:77,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:79,1
    - Dst: fr_radius_id_push
      Src: /src/freeradius-server/src/protocols/radius/id.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - codes
    - packet
    argTypes:
    - fr_radius_code_id_t
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: fr_radius_code_id_push
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.h
    functionUses: 3
    functionsReached:
    - fr_assert
    - fr_radius_id_push
    linkageType: ''
    returnType: void
    signature: void fr_radius_code_id_push(fr_radius_code_id_t codes, fr_packet_t
      const *packet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:86,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:87,1
    - Dst: fr_radius_id_find
      Src: /src/freeradius-server/src/protocols/radius/id.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - codes
    - code
    - id
    argTypes:
    - fr_radius_code_id_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: fr_radius_code_id_find
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.h
    functionUses: 3
    functionsReached:
    - fr_radius_id_find
    - fr_assert
    linkageType: ''
    returnType: fr_radius_id_ctx_t
    signature: fr_radius_id_ctx_t *fr_radius_code_id_find(fr_radius_code_id_t codes,
      int code, int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:96,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.h:97,1
    - Dst: fr_radius_id_force
      Src: /src/freeradius-server/src/protocols/radius/id.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - codes
    - code
    - id
    argTypes:
    - fr_radius_code_id_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: fr_radius_code_id_force
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.h
    functionUses: 1
    functionsReached:
    - fr_radius_id_force
    - fr_assert
    linkageType: ''
    returnType: int
    signature: int fr_radius_code_id_force(fr_radius_code_id_t codes, int code, int
      id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/protocols/radius/base.c:197,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/radius/base.c:198,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/radius/base.c:199,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/protocols/radius/base.c:201,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/radius/base.c:204,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/radius/base.c:206,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 215
    functionName: dict_flag_encrypt
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 0
    functionsReached:
    - L
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_table_value_by_str
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int dict_flag_encrypt(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - code
    - allowed
    argTypes:
    - int
    - bool[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: fr_radius_allow_reply
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fr_radius_allow_reply(int code, bool allowed[static FR_RADIUS_CODE_MAX])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/base.c:256,1
    - Dst: FR_DBUFF_EXTEND_LOWAT_OR_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:258,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/base.c:260,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/base.c:261,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/base.c:262,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/base.c:263,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/base.c:264,1
    - Dst: fr_dbuff_in_memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:269,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/base.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - dbuff
    - in
    - inlen
    - secret
    - secret_len
    - vector
    argTypes:
    - fr_dbuff_t*
    - uint8_t*
    - size_t
    - char*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: fr_radius_ascend_secret
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 1
    functionsReached:
    - fr_dbuff_set
    - fr_md5_update
    - fr_dbuff_in_memcpy
    - fr_md5_final
    - fr_md5_ctx_alloc_from_list
    - FR_DBUFF_EXTEND_LOWAT_OR_RETURN
    - FR_DBUFF
    - fr_md5_ctx_free_from_list
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_ascend_secret(fr_dbuff_t *dbuff, uint8_t const *in,
      size_t inlen,\n\t\t\t\tchar const *secret, size_t secret_len, uint8_t const
      *vector)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: udp_recv_peek
      Src: /src/freeradius-server/src/protocols/radius/base.c:293,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/base.c:305,1
    - Dst: FR_DEBUG_STRERROR_PRINTF_PUSH
      Src: /src/freeradius-server/src/protocols/radius/base.c:307,1
    - Dst: inet_ntop
      Src: /src/freeradius-server/src/protocols/radius/base.c:308,1
    - Dst: udp_recv_discard
      Src: /src/freeradius-server/src/protocols/radius/base.c:309,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/base.c:324,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/protocols/radius/base.c:324,1
    - Dst: FR_DEBUG_STRERROR_PRINTF
      Src: /src/freeradius-server/src/protocols/radius/base.c:334,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/src/protocols/radius/base.c:335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - sockfd
    - src_ipaddr
    - src_port
    - code
    argTypes:
    - int
    - fr_ipaddr_t*
    - uint16_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 346
    functionName: fr_radius_recv_header
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 1
    functionsReached:
    - inet_ntop
    - udp_recv_discard
    - FR_DEBUG_STRERROR_PRINTF_PUSH
    - STRINGIFY
    - udp_recv_peek
    - FR_DEBUG_STRERROR_PRINTF
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_recv_header(int sockfd, fr_ipaddr_t *src_ipaddr,
      uint16_t *src_port, unsigned int *code)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/base.c:365,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/base.c:371,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:372,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:378,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:398,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:406,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/base.c:414,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:427,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/base.c:444,1
    - Dst: fr_hmac_md5
      Src: /src/freeradius-server/src/protocols/radius/base.c:445,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/radius/base.c:456,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:470,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:473,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:487,1
    - Dst: fr_md5_ctx_alloc_from_list
      Src: /src/freeradius-server/src/protocols/radius/base.c:497,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/base.c:498,1
    - Dst: fr_md5_update
      Src: /src/freeradius-server/src/protocols/radius/base.c:499,1
    - Dst: fr_md5_final
      Src: /src/freeradius-server/src/protocols/radius/base.c:500,1
    - Dst: fr_md5_ctx_free_from_list
      Src: /src/freeradius-server/src/protocols/radius/base.c:501,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 102
    argCount: 4
    argNames:
    - packet
    - vector
    - secret
    - secret_len
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 505
    functionName: fr_radius_sign
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 7
    functionsReached:
    - fr_md5_ctx_free_from_list
    - memcpy
    - fr_md5_update
    - fr_cond_assert
    - fr_strerror_printf
    - fr_strerror_const
    - fr_md5_final
    - fr_hmac_md5
    - fr_md5_ctx_alloc_from_list
    - memset
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: int
    signature: "int fr_radius_sign(uint8_t *packet, uint8_t const *vector,\n\t\t   uint8_t
      const *secret, size_t secret_len)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/base.c:576,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 100
    argCount: 5
    argNames:
    - packet
    - packet_len_p
    - max_attributes
    - require_message_authenticator
    - reason
    argTypes:
    - uint8_t*
    - size_t*
    - uint32_t
    - bool
    - fr_radius_decode_fail_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 790
    functionName: fr_radius_ok
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 6
    functionsReached:
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: bool
    signature: "bool fr_radius_ok(uint8_t const *packet, size_t *packet_len_p,\n\t\t
      \ uint32_t max_attributes, bool require_message_authenticator, fr_radius_decode_fail_t
      *reason)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/base.c:827,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:832,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:838,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:847,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:871,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:889,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:895,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:903,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:924,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:934,1
    - Dst: fr_radius_sign
      Src: /src/freeradius-server/src/protocols/radius/base.c:943,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/radius/base.c:945,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/protocols/radius/base.c:961,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:962,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:963,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:965,1
    - Dst: fr_digest_cmp
      Src: /src/freeradius-server/src/protocols/radius/base.c:980,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/radius/base.c:981,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:983,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:985,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 6
    argNames:
    - packet
    - vector
    - secret
    - secret_len
    - require_message_authenticator
    - limit_proxy_state
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - size_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 991
    functionName: fr_radius_verify
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 3
    functionsReached:
    - memcpy
    - fr_strerror_printf
    - fr_radius_sign
    - fr_strerror_const_push
    - fr_digest_cmp
    - fr_strerror_const
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: int
    signature: "int fr_radius_verify(uint8_t *packet, uint8_t const *vector,\n\t\t
      \    uint8_t const *secret, size_t secret_len,\n\t\t     bool require_message_authenticator,
      bool limit_proxy_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/base.c:998,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/protocols/radius/base.c:1000,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/base.c:1001,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 995
    functionDepth: 3
    functionLinenumber: 995
    functionLinenumberEnd: 1009
    functionName: fr_radius_next_encodable
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - PAIR_VERIFY
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void *fr_radius_next_encodable(fr_dcursor_t *cursor, void *current,
      void *uctx)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/radius/base.c:1022,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1024,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/radius/base.c:1025,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1026,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/base.c:1031,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/radius/base.c:1036,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1038,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1043,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/base.c:1043,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1058,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1061,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/radius/base.c:1076,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1078,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:1082,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/radius/base.c:1100,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1109,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1125,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/radius/base.c:1132,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/radius/base.c:1133,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/radius/base.c:1134,1
    - Dst: fr_radius_encode_pair
      Src: /src/freeradius-server/src/protocols/radius/base.c:1139,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1147,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/radius/base.c:1148,1
    - Dst: fr_dbuff_in
      Src: /src/freeradius-server/src/protocols/radius/base.c:1155,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/base.c:1155,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/radius/base.c:1157,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/radius/base.c:1157,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/radius/base.c:1157,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/radius/base.c:1159,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 3
    argNames:
    - dbuff
    - vps
    - packet_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    - fr_radius_encode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1012
    functionDepth: 5
    functionLinenumber: 1012
    functionLinenumberEnd: 1160
    functionName: fr_radius_encode
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 6
    functionsReached:
    - fr_dcursor_current
    - fr_strerror_printf
    - fr_dbuff_start
    - FR_DBUFF
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_used
    - FR_DBUFF_MEMSET_RETURN
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_strerror_const
    - FR_DBUFF_MAX
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_current
    - fr_pair_dcursor_iter_init
    - fr_rand
    - fr_radius_encode_pair
    - fr_pair_find_by_da
    - fr_dbuff_set
    - fr_dbuff_in
    - PAIR_VERIFY
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_radius_encode(fr_dbuff_t *dbuff, fr_pair_list_t *vps, fr_radius_encode_ctx_t
      *packet_ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1186,1
    - Dst: fr_radius_verify
      Src: /src/freeradius-server/src/protocols/radius/base.c:1231,1
    - Dst: fr_radius_decode_pair
      Src: /src/freeradius-server/src/protocols/radius/base.c:1247,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/radius/base.c:1257,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/protocols/radius/base.c:1262,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 5
    argNames:
    - ctx
    - out
    - packet
    - packet_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - fr_radius_decode_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1162
    functionDepth: 7
    functionLinenumber: 1162
    functionLinenumberEnd: 1269
    functionName: fr_radius_decode
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 3
    functionsReached:
    - fr_radius_verify
    - fr_radius_decode_pair
    - fr_cond_assert
    - fr_strerror_const
    - talloc_free_children
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      uint8_t *packet, size_t packet_len,\n\t\t\t fr_radius_decode_ctx_t *decode_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/src/protocols/radius/base.c:1284,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/radius/base.c:1287,1
    - Dst: fr_radius_decode
      Src: /src/freeradius-server/src/protocols/radius/base.c:1291,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/base.c:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - out
    - packet
    - packet_len
    - vector
    - secret
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1275
    functionDepth: 8
    functionLinenumber: 1275
    functionLinenumberEnd: 1295
    functionName: fr_radius_decode_simple
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 6
    functionsReached:
    - fr_radius_decode
    - strlen
    - talloc
    - talloc_free
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_radius_decode_simple(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\tuint8_t
      *packet, size_t packet_len,\n\t\t\t\tuint8_t const *vector, char const *secret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/radius/base.c:1306,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/radius/base.c:1312,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/radius/base.c:1313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1297
    functionDepth: 8
    functionLinenumber: 1297
    functionLinenumberEnd: 1319
    functionName: fr_radius_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 6
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_radius_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/radius/base.c:1327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1330
    functionName: fr_radius_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 6
    functionsReached:
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_radius_global_free(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_attr_flags
      Src: /src/freeradius-server/src/protocols/radius/base.c:1334,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1338,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1343,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1349,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1354,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1359,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1364,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:1372,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1382,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1387,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:1400,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1408,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1417,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/base.c:1422,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:1439,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:1445,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/radius/base.c:1464,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/radius/base.c:1465,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 94
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1471
    functionName: attr_valid
    functionSourceFile: /src/freeradius-server/src/protocols/radius/base.c
    functionUses: 1
    functionsReached:
    - fr_strerror_printf
    - fr_strerror_const
    - fr_radius_attr_flags
    - fr_type_to_str
    linkageType: ''
    returnType: bool
    signature: bool attr_valid(fr_dict_attr_t *da)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:33,1
    - Dst: fr_rb_find
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:40,1
    - Dst: fr_rb_insert
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - bio
    - dedup_ctx
    - packet_ctx
    argTypes:
    - fr_bio_t*
    - fr_bio_dedup_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: radius_server_dedup_receive
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server_udp.c
    functionUses: 0
    functionsReached:
    - fr_rb_find
    - fr_rb_insert
    - talloc_get_type_abort
    linkageType: ''
    returnType: bool
    signature: bool radius_server_dedup_receive(fr_bio_t *bio, fr_bio_dedup_entry_t
      *dedup_ctx, void *packet_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - packet_ctx
    argTypes:
    - UNUSED*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: radius_server_dedup_get_item
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server_udp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fr_bio_dedup_entry_t
    signature: fr_bio_dedup_entry_t *radius_server_dedup_get_item(UNUSED fr_bio_t
      *bio, void *packet_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:69,1
    - Dst: fr_rb_delete
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bio
    - dedup_ctx
    - fr_bio_dedup_release_reason_t
    argTypes:
    - fr_bio_t*
    - fr_bio_dedup_entry_t*
    - UNUSED
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: radius_server_dedup_release
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server_udp.c
    functionUses: 0
    functionsReached:
    - fr_rb_delete
    - talloc_get_type_abort
    linkageType: ''
    returnType: void
    signature: void radius_server_dedup_release(fr_bio_t *bio, fr_bio_dedup_entry_t
      *dedup_ctx, UNUSED fr_bio_dedup_release_reason_t reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_server_fd_bio_read
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:85,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - bio
    - packet_ctx_p
    - packet_p
    - out_ctx
    - out
    argTypes:
    - fr_bio_packet_t*
    - void**
    - fr_packet_t**
    - TALLOC_CTX*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: fr_radius_server_udp_bio_read
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server_udp.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_radius_server_fd_bio_read
    linkageType: ''
    returnType: int
    signature: "int fr_radius_server_udp_bio_read(fr_bio_packet_t *bio, void **packet_ctx_p,
      fr_packet_t **packet_p,\n\t\t\t\t\t TALLOC_CTX *out_ctx, fr_pair_list_t *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_radius_server_fd_bio_alloc
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:111,1
    - Dst: fr_bio_mem_set_verify
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:114,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:116,1
    - Dst: fr_bio_dedup_alloc
      Src: /src/freeradius-server/src/protocols/radius/server_udp.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - cfg
    - fd_cfg
    argTypes:
    - TALLOC_CTX*
    - fr_radius_server_config_t*
    - fr_bio_fd_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 137
    functionName: fr_radius_server_udp_bio_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/server_udp.c
    functionUses: 1
    functionsReached:
    - fr_bio_dedup_alloc
    - fr_bio_mem_set_verify
    - fr_radius_server_fd_bio_alloc
    - talloc_free
    linkageType: ''
    returnType: fr_bio_packet_t
    signature: fr_bio_packet_t *fr_radius_server_udp_bio_alloc(TALLOC_CTX *ctx, fr_radius_server_config_t
      *cfg, fr_bio_fd_config_t const *fd_cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/bio.c:45,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/protocols/radius/bio.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - bio
    - verify_ctx
    - packet_ctx
    - data
    - size
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 65
    functionName: fr_radius_bio_verify
    functionSourceFile: /src/freeradius-server/src/protocols/radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_radius_ok
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: fr_bio_verify_action_t
    signature: fr_bio_verify_action_t fr_radius_bio_verify(UNUSED fr_bio_t *bio, void
      *verify_ctx, UNUSED void *packet_ctx, const void *data, size_t *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/radius/bio.c:80,1
    - Dst: fr_radius_ok
      Src: /src/freeradius-server/src/protocols/radius/bio.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - bio
    - verify_ctx
    - packet_ctx
    - data
    - size
    argTypes:
    - UNUSED*
    - void*
    - UNUSED*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: fr_radius_bio_verify_datagram
    functionSourceFile: /src/freeradius-server/src/protocols/radius/bio.c
    functionUses: 0
    functionsReached:
    - fr_radius_ok
    - fr_nbo_to_uint16
    linkageType: ''
    returnType: fr_bio_verify_action_t
    signature: fr_bio_verify_action_t fr_radius_bio_verify_datagram(UNUSED fr_bio_t
      *bio, void *verify_ctx, UNUSED void *packet_ctx, const void *data, size_t *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/radius/id.c:50,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/radius/id.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TALLOC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 84
    functionName: fr_radius_id_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.c
    functionUses: 2
    functionsReached:
    - fr_rand
    - talloc_zero
    linkageType: ''
    returnType: fr_radius_id_t
    signature: fr_radius_id_t *fr_radius_id_alloc(TALLOC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:96,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:97,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:99,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - track
    - packet
    argTypes:
    - fr_radius_id_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: fr_radius_id_pop
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: fr_radius_id_ctx_t
    signature: fr_radius_id_ctx_t *fr_radius_id_pop(fr_radius_id_t *track, fr_packet_t
      *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:122,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:123,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:125,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:126,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:127,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:128,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - track
    - packet
    argTypes:
    - fr_radius_id_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 138
    functionName: fr_radius_id_push
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: void
    signature: void fr_radius_id_push(fr_radius_id_t *track, fr_packet_t const *packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:142,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - track
    - id
    argTypes:
    - fr_radius_id_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: fr_radius_id_find
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.c
    functionUses: 1
    functionsReached:
    - fr_assert
    linkageType: ''
    returnType: fr_radius_id_ctx_t
    signature: fr_radius_id_ctx_t *fr_radius_id_find(fr_radius_id_t *track, int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:155,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/radius/id.c:156,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/radius/id.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - track
    - id
    argTypes:
    - fr_radius_id_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: fr_radius_id_force
    functionSourceFile: /src/freeradius-server/src/protocols/radius/id.c
    functionUses: 1
    functionsReached:
    - fr_assert
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_radius_id_force(fr_radius_id_t *track, int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:53,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:54,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:55,1
    - Dst: IP_VHL
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:60,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:62,1
    - Dst: fr_ip_header_checksum
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:73,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:79,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:80,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:82,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:88,1
    - Dst: fr_udp_checksum
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:91,1
    - Dst: pcap_inject
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:95,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:97,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 3
    argNames:
    - pcap
    - dst_ether_addr
    - packet
    argTypes:
    - fr_pcap_t*
    - uint8_t*
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 102
    functionName: fr_dhcpv4_pcap_send
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/pcap.c
    functionUses: 2
    functionsReached:
    - pcap_geterr
    - memcpy
    - pcap_inject
    - fr_strerror_printf
    - IP_VHL
    - fr_udp_checksum
    - fr_ip_header_checksum
    - htons
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv4_pcap_send(fr_pcap_t *pcap, uint8_t *dst_ether_addr, fr_packet_t
      *packet)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pcap_next_ex
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:132,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:134,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:138,1
    - Dst: pcap_geterr
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:138,1
    - Dst: fr_pcap_link_layer_offset
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:142,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:144,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:154,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:167,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:171,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:177,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:187,1
    - Dst: fr_udp_header_check
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:195,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:201,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:203,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:208,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:209,1
    - Dst: fr_dhcpv4_ok
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:220,1
    - Dst: fr_dhcpv4_packet_alloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:222,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:232,1
    - Dst: fr_time_from_timeval
      Src: /src/freeradius-server/src/protocols/dhcpv4/pcap.c:233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 78
    argCount: 1
    argNames:
    - pcap
    argTypes:
    - fr_pcap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 236
    functionName: fr_dhcpv4_pcap_recv
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/pcap.c
    functionUses: 1
    functionsReached:
    - pcap_next_ex
    - pcap_geterr
    - fr_dhcpv4_packet_alloc
    - talloc_memdup
    - fr_time_from_timeval
    - fr_pcap_link_layer_offset
    - fr_strerror_printf
    - ntohs
    - fr_strerror_const_push
    - fr_dhcpv4_ok
    - fr_udp_header_check
    - fr_strerror_const
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_dhcpv4_pcap_recv(fr_pcap_t *pcap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:49,1
    - Dst: fr_ipaddr_to_sockaddr
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:50,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:52,1
    - Dst: sendfromto
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:58,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:62,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - packet
    argTypes:
    - fr_packet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 65
    functionName: fr_dhcpv4_udp_packet_send
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/udp.c
    functionUses: 1
    functionsReached:
    - fr_ipaddr_to_sockaddr
    - fr_strerror_printf
    - fr_syserror
    - sendfromto
    - fr_strerror_const
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv4_udp_packet_send(fr_packet_t *packet)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:88,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:90,1
    - Dst: recvfromto
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:96,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:102,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:102,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:104,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:109,1
    - Dst: talloc_array_length
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:109,1
    - Dst: getsockname
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:117,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:118,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:118,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:122,1
    - Dst: fr_ipaddr_from_sockaddr
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:123,1
    - Dst: fr_dhcpv4_ok
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:125,1
    - Dst: fr_dhcpv4_packet_alloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:127,1
    - Dst: fr_socket_addr_init_inet
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:130,1
    - Dst: talloc_steal
      Src: /src/freeradius-server/src/protocols/dhcpv4/udp.c:132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 138
    functionName: fr_dhcpv4_udp_packet_recv
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/udp.c
    functionUses: 1
    functionsReached:
    - fr_dhcpv4_packet_alloc
    - fr_ipaddr_from_sockaddr
    - talloc_free
    - fr_syserror
    - fr_strerror_printf
    - fr_cond_assert
    - talloc_steal
    - getsockname
    - recvfromto
    - talloc_zero_array
    - talloc_array_length
    - fr_dhcpv4_ok
    - fr_strerror_const
    - fr_socket_addr_init_inet
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_dhcpv4_udp_packet_recv(int sockfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: verify_tlvs
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_tlvs(uint8_t const *data, size_t data_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: decode_tlv_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_tlvs_from_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_tlv_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \    fr_dict_attr_t const *parent,\n\t\t\t\t     uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:74,1
    - Dst: fr_dhcpv4_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:79,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:80,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: decode_value_trampoline
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dns_labels_from_network
    - decode_value
    - fr_dhcpv4_flag_dns_label
    - FR_PROTO_TRACE
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value_trampoline(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \      fr_dict_attr_t const *parent,\n\t\t\t\t       uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:98,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:99,1
    - Dst: fr_struct_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:105,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:118,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:121,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:123,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:139,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:140,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:154,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:156,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:157,1
    - Dst: fr_value_box_ipaddr_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:167,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:171,1
    - Dst: fr_value_box_ipaddr_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:184,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:193,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:193,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:194,1
    - Dst: fr_value_box_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:198,1
    - Dst: fr_dhcpv4_flag_prefix_split
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:205,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:210,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:211,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:237,1
    - Dst: fr_dhcpv4_flag_prefix_bits
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:241,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:265,1
    - Dst: fr_nbo_to_uint24
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:268,1
    - Dst: fr_nbo_to_uint16
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:272,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:280,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:290,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:291,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:294,1
    - Dst: fr_pair_raw_afrom_pair
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:295,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:311,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:312,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 141
    argCount: 6
    argNames:
    - ctx
    - out
    - da
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 315
    functionName: decode_value
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 8
    functionsReached:
    - htonl
    - fr_strerror_printf
    - FR_DBUFF_TMP
    - fr_type_to_str
    - FR_PROTO_HEX_DUMP
    - fr_pair_append
    - fr_nbo_to_uint32
    - PAIR_ALLOCED
    - fr_dhcpv4_flag_prefix_bits
    - fr_pair_afrom_da
    - fr_nbo_to_uint24
    - fr_struct_from_network
    - fr_value_box_ipaddr_from_network
    - fr_assert
    - fr_nbo_to_uint16
    - fr_dhcpv4_flag_prefix_split
    - fr_value_box_init
    - fr_value_box_from_network
    - FR_PROTO_TRACE
    - talloc_free
    - fr_pair_raw_from_network
    - fr_pair_raw_afrom_pair
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_value(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *da,\n\t\t\t    uint8_t const *data, size_t data_len, void *decode_ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:382,1
    - Dst: fr_cond_assert_msg
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:384,1
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:388,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:397,1
    - Dst: fr_nbo_to_uint32
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:413,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:423,1
    - Dst: fr_dict_attr_unknown_vendor_afrom_num
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:427,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:430,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:442,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:446,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:458,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:460,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:462,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:464,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:467,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:477,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 369
    functionDepth: 5
    functionLinenumber: 369
    functionLinenumberEnd: 479
    functionName: decode_vsa
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_afrom_da
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - fr_pair_raw_from_network
    - fr_cond_assert_msg
    - fr_pair_append
    - fr_nbo_to_uint32
    - fr_pair_tlvs_from_network
    - fr_dict_attr_unknown_vendor_afrom_num
    - fr_dict_attr_child_by_num
    - fr_pair_list_free
    - fr_pair_list_append
    - PAIR_ALLOCED
    - fr_pair_find_by_da
    - fr_pair_list_init
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_vsa(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t
      const *parent,\n\t\t\t  uint8_t const *data, size_t const data_len, void *decode_ctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:496,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:517,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:524,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:530,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:532,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:535,1
    - Dst: fr_dhcpv4_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:537,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:538,1
    - Dst: fr_pair_array_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:541,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:547,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:549,1
    - Dst: PAIR_ALLOCED
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:551,1
    - Dst: decode_vsa
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:556,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:559,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:561,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:566,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:569,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:573,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - fr_dict_attr_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 482
    functionDepth: 5
    functionLinenumber: 482
    functionLinenumberEnd: 578
    functionName: decode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 4
    functionsReached:
    - fr_pair_dns_labels_from_network
    - fr_pair_afrom_da
    - TALLOC_FREE
    - decode_value
    - fr_pair_raw_from_network
    - fr_strerror_printf
    - fr_pair_append
    - fr_pair_array_from_network
    - fr_pair_tlvs_from_network
    - fr_assert
    - fr_dict_attr_child_by_num
    - decode_vsa
    - fr_dict_attr_unknown_raw_afrom_num
    - PAIR_ALLOCED
    - fr_pair_find_by_da
    - fr_dhcpv4_flag_dns_label
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \     fr_dict_attr_t const *parent,\n\t\t\t      uint8_t const *data, size_t
      const data_len, void *decode_ctx)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:596,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:600,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:620,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:656,1
    - Dst: fr_dict_attr_child_by_num
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:660,1
    - Dst: fr_dict_attr_unknown_raw_afrom_num
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:662,1
    - Dst: fr_pair_raw_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:665,1
    - Dst: decode_vsa
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:668,1
    - Dst: fr_pair_tlvs_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:671,1
    - Dst: fr_pair_array_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:675,1
    - Dst: fr_dhcpv4_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:676,1
    - Dst: fr_pair_dns_labels_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:677,1
    - Dst: decode_value
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:681,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:688,1
    - Dst: decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:692,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:695,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 588
    functionDepth: 5
    functionLinenumber: 588
    functionLinenumberEnd: 697
    functionName: fr_dhcpv4_decode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_pair_dns_labels_from_network
    - FR_PROTO_HEX_DUMP
    - decode_value
    - decode_option
    - memcpy
    - FR_PROTO_TRACE
    - fr_pair_raw_from_network
    - fr_strerror_printf
    - fr_pair_array_from_network
    - fr_pair_tlvs_from_network
    - fr_dict_attr_child_by_num
    - decode_vsa
    - fr_dict_attr_unknown_raw_afrom_num
    - fr_dhcpv4_flag_dns_label
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dhcpv4_decode_option(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t
      \       uint8_t const *data, size_t data_len, void *decode_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:706,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:709,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:711,1
    - Dst: fr_dhcpv4_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:717,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:719,1
    - Dst: fr_cond_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:727,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:728,1
    - Dst: talloc_free_children
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:733,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - out
    - data
    - data_len
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 699
    functionDepth: 6
    functionLinenumber: 699
    functionLinenumberEnd: 738
    functionName: fr_dhcpv4_decode_foreign
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv4_decode_option
    - talloc_free
    - fr_cond_assert
    - talloc
    - fr_assert
    - fr_dict_root
    - talloc_free_children
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dhcpv4_decode_foreign(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      uint8_t const *data, size_t data_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:746,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:747,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 753
    functionName: decode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - fr_dict_root
    - talloc
    linkageType: ''
    returnType: int
    signature: "int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   fr_dict_attr_t const *root_da)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_ok
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:761,1
    - Dst: fr_dhcpv4_decode
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - proto_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 766
    functionName: fr_dhcpv4_decode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv4_ok
    - fr_dhcpv4_decode
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fr_dhcpv4_decode_proto(TALLOC_CTX *ctx, fr_pair_list_t *out,\n\t\t\t\t
      \     uint8_t const *data, size_t data_len, UNUSED void *proto_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:771,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:771,1
    - Dst: fr_dhcpv4_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/decode.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ctx
    - out
    - parent
    - data
    - data_len
    - decode_ctx
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - NDEBUG_UNUSED*
    - uint8_t*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 6
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: decode_option_wrapper
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/decode.c
    functionUses: 0
    functionsReached:
    - fr_assert
    - fr_dhcpv4_decode_option
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t decode_option_wrapper(TALLOC_CTX *ctx, fr_pair_list_t *out,
      NDEBUG_UNUSED fr_dict_attr_t const *parent,\n\t\t\t        uint8_t const *data,
      size_t data_len, void *decode_ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_ACCESS
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:64,1
    - Dst: ALIGNED_ACCESS
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:74,1
    - Dst: ALIGNED_ACCESS
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:81,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:95,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:101,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - packet
    - packet_size
    - da
    argTypes:
    - dhcp_packet_t*
    - size_t
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 117
    functionName: fr_dhcpv4_packet_get_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/packet.c
    functionUses: 3
    functionsReached:
    - fr_strerror_printf
    - ALIGNED_ACCESS
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *fr_dhcpv4_packet_get_option(dhcp_packet_t const *packet, size_t
      packet_size, fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - packet
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: ALIGNED_ACCESS
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/packet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED_ACCESS(packet, field)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_list_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:130,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:132,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:135,1
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:140,1
    - Dst: talloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:142,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:143,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:151,1
    - Dst: fr_strerror_const_push
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:153,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:155,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:157,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:158,1
    - Dst: memchr
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:171,1
    - Dst: fr_pair_value_bstrndup
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:172,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:174,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:185,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:189,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:193,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:194,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:202,1
    - Dst: fr_dhcpv4_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:220,1
    - Dst: fr_pair_list_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:223,1
    - Dst: talloc_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:224,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:231,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:241,1
    - Dst: fr_dhcpv4_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:251,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:256,1
    - Dst: fr_dhcpv4_decode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:265,1
    - Dst: fr_pair_delete_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:270,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:283,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:284,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:288,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:293,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:294,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:295,1
    - Dst: fr_pair_afrom_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:317,1
    - Dst: fr_pair_find_by_da_nested
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:323,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:328,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:337,1
    - Dst: htonl
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:339,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:343,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:344,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:345,1
    - Dst: fr_value_box_from_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:351,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:352,1
    - Dst: fr_value_box_cast
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:353,1
    - Dst: fr_pair_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:356,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:362,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:363,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:366,1
    - Dst: fr_pair_list_append
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:385,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 153
    argCount: 5
    argNames:
    - ctx
    - out
    - data
    - data_len
    - code
    argTypes:
    - TALLOC_CTX*
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 388
    functionName: fr_dhcpv4_decode
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/packet.c
    functionUses: 4
    functionsReached:
    - htonl
    - memcpy
    - fr_strerror_printf
    - memchr
    - FR_DBUFF_TMP
    - fr_value_box_cast
    - fr_pair_list_free
    - fr_dhcpv4_decode_option
    - fr_pair_append
    - fr_strerror_const_push
    - memcmp
    - fr_strerror_const
    - fr_pair_list_init
    - fr_pair_afrom_da
    - fr_pair_delete_by_da
    - fr_pair_find_by_da_nested
    - fr_pair_value_bstrndup
    - fr_assert
    - fr_pair_list_append
    - fr_pair_find_by_da
    - TALLOC_FREE
    - fr_value_box_from_network
    - talloc_free
    - talloc
    - talloc_zero
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv4_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, uint8_t
      const *data, size_t data_len, unsigned int *code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:398,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:404,1
    - Dst: fr_rand
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:407,1
    - Dst: fr_dhcpv4_encode
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - packet
    - list
    argTypes:
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 416
    functionName: fr_dhcpv4_packet_encode
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/packet.c
    functionUses: 1
    functionsReached:
    - fr_rand
    - fr_pair_find_by_da
    - talloc_zero_array
    - fr_dhcpv4_encode
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv4_packet_encode(fr_packet_t *packet, fr_pair_list_t *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:424,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:426,1
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:430,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:432,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:439,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/dhcpv4/packet.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 454
    functionName: fr_dhcpv4_packet_alloc
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/packet.c
    functionUses: 2
    functionsReached:
    - ntohl
    - memcpy
    - fr_packet_alloc
    - fr_assert
    - fr_strerror_const
    - fr_dhcpv4_packet_get_option
    linkageType: ''
    returnType: fr_packet_t
    signature: fr_packet_t *fr_dhcpv4_packet_alloc(uint8_t const *data, size_t data_len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:61,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:62,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:67,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:68,1
    - Dst: fr_dbuff_remaining
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:68,1
    - Dst: fr_struct_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:74,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:80,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:81,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:82,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:87,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:91,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:92,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:96,1
    - Dst: fr_dhcpv4_flag_exists
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:108,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:111,1
    - Dst: fr_dhcpv4_flag_prefix_split
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:115,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:120,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:123,1
    - Dst: fr_dhcpv4_flag_prefix_bits
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:127,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:130,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:133,1
    - Dst: fr_dhcpv4_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:150,1
    - Dst: fr_dns_label_from_value_box_dbuff
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:151,1
    - Dst: fr_value_box_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:159,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:164,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:165,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:167,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:168,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:168,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:170,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 171
    functionName: encode_value
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 16
    functionsReached:
    - fr_dcursor_current
    - FR_PROTO_STACK_PRINT
    - FR_DBUFF
    - fr_dhcpv4_flag_dns_label
    - FR_PROTO_HEX_DUMP
    - fr_dcursor_next
    - fr_dbuff_remaining
    - fr_dbuff_used
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_dhcpv4_flag_prefix_bits
    - FR_DBUFF_IN_RETURN
    - fr_dns_label_from_value_box_dbuff
    - fr_dhcpv4_flag_exists
    - fr_value_box_to_network
    - fr_dhcpv4_flag_prefix_split
    - fr_dbuff_set
    - FR_PROTO_TRACE
    - fr_proto_da_stack_build
    - fr_struct_to_network
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_value(fr_dbuff_t *dbuff,\n\t\t\t    fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t    fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:201,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:202,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:204,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:209,1
    - Dst: fr_dbuff_out
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:209,1
    - Dst: fr_dbuff_marker_release
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:211,1
    - Dst: fr_dbuff_marker_release
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:212,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:226,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:240,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:240,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:241,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:249,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:249,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:258,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:258,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:259,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:265,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:265,1
    - Dst: fr_dbuff_move
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:266,1
    - Dst: fr_dbuff_marker_release
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:269,1
    - Dst: fr_dbuff_marker_release
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - dbuff
    - hdr
    - len
    argTypes:
    - fr_dbuff_t*
    - fr_dbuff_marker_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 272
    functionName: extend_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 0
    functionsReached:
    - fr_dbuff_set
    - fr_dbuff_out
    - fr_dbuff_current
    - fr_dbuff_extend_lowat
    - fr_dbuff_marker
    - fr_dbuff_marker_release
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_dbuff_move
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t extend_option(fr_dbuff_t *dbuff, fr_dbuff_marker_t *hdr, size_t
      len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:297,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:299,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:305,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:306,1
    - Dst: fr_pair_array_to_network
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:312,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:319,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:322,1
    - Dst: encode_value
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:330,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:334,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:337,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:338,1
    - Dst: extend_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:340,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:344,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:344,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:344,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:346,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 347
    functionName: encode_rfc
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 7
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_DBUFF_IN_RETURN
    - fr_dbuff_marker
    - fr_dbuff_start
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - encode_value
    - fr_dbuff_advance
    - FR_DBUFF
    - extend_option
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_pair_array_to_network
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_rfc(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:362,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:374,1
    - Dst: encode_vsio
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:379,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:382,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:386,1
    - Dst: fr_type_is_structural
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:386,1
    - Dst: fr_pair_dcursor_child_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:388,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:389,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:391,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:392,1
    - Dst: encode_vsio
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:396,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:400,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:404,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:414,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:415,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 418
    functionName: encode_child
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 5
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - encode_tlv
    - fr_dcursor_next
    - fr_type_is_structural
    - encode_rfc
    - fr_pair_dcursor_child_iter_init
    - fr_proto_da_stack_build
    - fr_assert
    - encode_vsio
    - FR_DBUFF
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_child(fr_dbuff_t *dbuff,\n\t\t\t\t  fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t\t  fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:439,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:441,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:445,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:450,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:455,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:456,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:464,1
    - Dst: fr_dbuff_extend_lowat
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:469,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:470,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:481,1
    - Dst: fr_dbuff_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:481,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:482,1
    - Dst: extend_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:484,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:491,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:492,1
    - Dst: fr_dbuff_start
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:492,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:492,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:497,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:497,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:505,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:508,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 509
    functionName: encode_tlv
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 12
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - fr_dbuff_current
    - fr_dbuff_extend_lowat
    - fr_dbuff_marker
    - fr_dbuff_start
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - encode_child
    - FR_DBUFF
    - extend_option
    - FR_DBUFF_IN_BYTES_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_tlv(fr_dbuff_t *dbuff,\n\t\t\t      fr_da_stack_t *da_stack,
      unsigned int depth,\n\t\t\t      fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF_MAX
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:515,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:522,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:525,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:526,1
    - Dst: FR_DBUFF_REMAINING_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:534,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:536,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:543,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:544,1
    - Dst: encode_child
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:575,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:579,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:591,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:592,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:592,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:595,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:595,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:598,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 599
    functionName: encode_vsio_data
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_MAX
    - FR_DBUFF_IN_RETURN
    - FR_PROTO_HEX_DUMP
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - fr_dbuff_used
    - encode_child
    - FR_DBUFF_REMAINING_RETURN
    - fr_type_to_str
    - FR_DBUFF_IN_BYTES_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_vsio_data(fr_dbuff_t *dbuff,\n\t\t\t\tfr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t\tfr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:611,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:617,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:618,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:622,1
    - Dst: fr_dbuff_marker
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:623,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:629,1
    - Dst: encode_vsio_data
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:639,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:644,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:645,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:650,1
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:651,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:653,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:654,1
    - Dst: encode_vsio_data
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:655,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:661,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:662,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:664,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:669,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:674,1
    - Dst: fr_pair_dcursor_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:678,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:680,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:693,1
    - Dst: encode_vsio_data
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:694,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:697,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:700,1
    - Dst: fr_dbuff_advance
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:707,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:708,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:708,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:713,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:714,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:716,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 5
    argNames:
    - dbuff
    - da_stack
    - depth
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_da_stack_t*
    - unsigned int
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 717
    functionName: encode_vsio
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 2
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - fr_pair_dcursor_init
    - FR_DBUFF_IN_RETURN
    - fr_dcursor_next
    - fr_strerror_printf
    - fr_dbuff_marker
    - fr_proto_da_stack_build
    - fr_dbuff_advance
    - FR_PROTO_STACK_PRINT
    - fr_assert
    - fr_dbuff_used
    - FR_DBUFF
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_type_to_str
    - encode_vsio_data
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t encode_vsio(fr_dbuff_t *dbuff,\n\t\t\t       fr_da_stack_t
      *da_stack, unsigned int depth,\n\t\t\t       fr_dcursor_t *cursor, void *encode_ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:737,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:739,1
    - Dst: fr_proto_da_stack_build
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:742,1
    - Dst: FR_PROTO_STACK_PRINT
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:744,1
    - Dst: encode_vsio
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:751,1
    - Dst: encode_tlv
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:755,1
    - Dst: encode_rfc
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:761,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:765,1
    - Dst: fr_type_to_str
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:766,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:773,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:773,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:774,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:774,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - dbuff
    - cursor
    - encode_ctx
    argTypes:
    - fr_dbuff_t*
    - fr_dcursor_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 777
    functionName: fr_dhcpv4_encode_option
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - encode_tlv
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - fr_strerror_printf
    - encode_rfc
    - fr_proto_da_stack_build
    - fr_dbuff_used
    - FR_PROTO_STACK_PRINT
    - encode_vsio
    - FR_DBUFF
    - fr_type_to_str
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv4_encode_option(fr_dbuff_t *dbuff, fr_dcursor_t *cursor,
      void *encode_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:783,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:785,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:787,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:795,1
    - Dst: fr_dhcpv4_encode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:796,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:796,1
    - Dst: FR_PROTO_TRACE
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:800,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:800,1
    - Dst: FR_PROTO_HEX_DUMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:801,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:801,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dbuff
    - list
    argTypes:
    - fr_dbuff_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 804
    functionName: fr_dhcpv4_encode_foreign
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 0
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_PROTO_HEX_DUMP
    - FR_PROTO_TRACE
    - fr_pair_dcursor_iter_init
    - fr_dbuff_used
    - fr_assert
    - FR_DBUFF
    - fr_dhcpv4_encode_option
    - fr_dict_root
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv4_encode_foreign(fr_dbuff_t *dbuff, fr_pair_list_t
      const *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_encode_dbuff
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:808,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - TALLOC_CTX *ctx
    - vps
    - data
    - data_len
    - proto_ctx
    argTypes:
    - UNUSED
    - fr_pair_list_t*
    - uint8_t*
    - size_t
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: fr_dhcpv4_encode_proto
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 0
    functionsReached:
    - fr_dhcpv4_encode_dbuff
    - FR_DBUFF_TMP
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv4_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t
      *vps, uint8_t *data, size_t data_len, UNUSED void *proto_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:816,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/encode.c:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out
    - ctx
    - dict
    - root_da
    argTypes:
    - void**
    - TALLOC_CTX*
    - UNUSED*
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 823
    functionName: encode_test_ctx
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/encode.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - fr_dict_root
    linkageType: ''
    returnType: int
    signature: "int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t
      const *dict,\n\t\t\t   fr_dict_attr_t const *root_da)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:66,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:66,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:68,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:68,1
    - Dst: memset
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:73,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:76,1
    - Dst: bind
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:82,1
    - Dst: close
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:83,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:84,1
    - Dst: fr_syserror
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - link_layer
    - ifindex
    argTypes:
    - struct sockaddr_ll*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: fr_dhcpv4_raw_socket_open
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/raw.c
    functionUses: 1
    functionsReached:
    - bind
    - socket
    - fr_strerror_printf
    - fr_syserror
    - close
    - memset
    - htons
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv4_raw_socket_open(struct sockaddr_ll *link_layer, int ifindex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:115,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:116,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:120,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:121,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:122,1
    - Dst: IP_VHL
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:125,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:127,1
    - Dst: fr_ip_header_checksum
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:141,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:143,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:144,1
    - Dst: htons
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:146,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:152,1
    - Dst: fr_udp_checksum
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:155,1
    - Dst: sendto
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - sockfd
    - link_layer
    - packet
    - list
    argTypes:
    - int
    - struct sockaddr_ll*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 161
    functionName: fr_dhcpv4_raw_packet_send
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/raw.c
    functionUses: 1
    functionsReached:
    - sendto
    - memcpy
    - IP_VHL
    - fr_udp_checksum
    - fr_ip_header_checksum
    - fr_pair_find_by_da
    - htons
    linkageType: ''
    returnType: int
    signature: "int fr_dhcpv4_raw_packet_send(int sockfd, struct sockaddr_ll *link_layer,\n\t\t\t
      \     fr_packet_t *packet, fr_pair_list_t *list)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fr_packet_alloc
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:190,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:192,1
    - Dst: talloc_zero_array
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:196,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:198,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:199,1
    - Dst: recvfrom
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:207,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:211,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:219,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:219,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:220,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:226,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:227,1
    - Dst: memcmp
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:228,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:231,1
    - Dst: fr_box_ether
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:232,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:243,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:259,1
    - Dst: ntohs
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:260,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:267,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:269,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:274,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:275,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:277,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:279,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:285,1
    - Dst: DISCARD_RP
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:286,1
    - Dst: talloc_memdup
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:299,1
    - Dst: TALLOC_FREE
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:301,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:304,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:307,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:308,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:313,1
    - Dst: fr_packet_free
      Src: /src/freeradius-server/src/protocols/dhcpv4/raw.c:314,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 4
    argNames:
    - sockfd
    - link_layer
    - request
    - list
    argTypes:
    - int
    - struct sockaddr_ll*
    - fr_packet_t*
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 329
    functionName: fr_dhcpv4_raw_packet_recv
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/raw.c
    functionUses: 1
    functionsReached:
    - ntohl
    - talloc_memdup
    - TALLOC_FREE
    - fr_packet_alloc
    - fr_strerror_const
    - recvfrom
    - ntohs
    - DISCARD_RP
    - talloc_zero_array
    - memcmp
    - fr_packet_free
    - fr_pair_find_by_da
    - fr_box_ether
    - fr_dhcpv4_packet_get_option
    linkageType: ''
    returnType: fr_packet_t
    signature: "fr_packet_t *fr_dhcpv4_raw_packet_recv(int sockfd, struct sockaddr_ll
      *link_layer,\n\t\t\t\t\t     fr_packet_t *request, fr_pair_list_t *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: FR_DHCP_PACKET_CODE_VALID
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FR_DHCP_PACKET_CODE_VALID(_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: DHCP_PACK_OPTION1
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DHCP_PACK_OPTION1(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: DHCP_UNPACK_OPTION1
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DHCP_UNPACK_OPTION1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: DISCARD_RP
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISCARD_RP(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: fr_dhcpv4_attr_flags
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 0
    functionsReached:
    - fr_dict_attr_ext
    linkageType: ''
    returnType: fr_dhcpv4_attr_flags_t
    signature: fr_dhcpv4_attr_flags_t *fr_dhcpv4_attr_flags(fr_dict_attr_t const *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: fr_dhcpv4_flag_dns_label
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv4_flag_dns_label(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: fr_dhcpv4_flag_exists
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv4_flag_exists(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: fr_dhcpv4_flag_prefix
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv4_flag_prefix(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: fr_dhcpv4_flag_prefix_bits
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv4_flag_prefix_bits(_da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _da
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: fr_dhcpv4_flag_prefix_split
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/dhcpv4.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fr_dhcpv4_flag_prefix_split(_da)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:175,1
    - Dst: L
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:176,1
    - Dst: NUM_ELEMENTS
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:178,1
    - Dst: fr_dict_attr_ext
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:180,1
    - Dst: fr_table_value_by_str
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:183,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - da_p
    - value
    - rules
    argTypes:
    - fr_dict_attr_t**
    - char*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 191
    functionName: dict_flag_prefix
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 0
    functionsReached:
    - L
    - fr_strerror_printf
    - fr_dict_attr_ext
    - fr_table_value_by_str
    - NUM_ELEMENTS
    linkageType: ''
    returnType: int
    signature: int dict_flag_prefix(fr_dict_attr_t **da_p, char const *value, UNUSED
      fr_dict_flag_parser_rule_t const *rules)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:208,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:209,1
    - Dst: fr_dict_attr_cmp
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 235
    functionName: fr_dhcpv4_attr_cmp
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 0
    functionsReached:
    - fr_dict_attr_cmp
    - PAIR_VERIFY
    linkageType: ''
    returnType: int8_t
    signature: int8_t fr_dhcpv4_attr_cmp(void const *a, void const *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:255,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:260,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:265,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:271,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:275,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:276,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:278,1
    - Dst: fr_dhcpv4_packet_get_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:282,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:284,1
    - Dst: fr_strerror_printf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:289,1
    - Dst: memcpy
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:302,1
    - Dst: ntohl
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:303,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - data
    - data_len
    - message_type
    - xid
    argTypes:
    - uint8_t*
    - ssize_t
    - uint8_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 307
    functionName: fr_dhcpv4_ok
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 4
    functionsReached:
    - ntohl
    - memcpy
    - fr_strerror_printf
    - fr_strerror_const
    - fr_dhcpv4_packet_get_option
    linkageType: ''
    returnType: bool
    signature: bool fr_dhcpv4_ok(uint8_t const *data, ssize_t data_len, uint8_t *message_type,
      uint32_t *xid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - item
    - uctx
    argTypes:
    - void*
    - UNUSED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: fr_dhcpv4_is_encodable
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 0
    functionsReached:
    - PAIR_VERIFY
    linkageType: ''
    returnType: bool
    signature: bool fr_dhcpv4_is_encodable(void const *item, UNUSED void const *uctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_type_abort
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:330,1
    - Dst: fr_dlist_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:332,1
    - Dst: PAIR_VERIFY
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:333,1
    - Dst: fr_dhcpv4_flag_exists
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:336,1
    - Dst: fr_assert_msg
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:345,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 13
    argCount: 3
    argNames:
    - cursor
    - current
    - uctx
    argTypes:
    - fr_dcursor_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 351
    functionName: fr_dhcpv4_next_encodable
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 0
    functionsReached:
    - fr_dlist_next
    - talloc_get_type_abort
    - fr_dhcpv4_flag_exists
    - fr_assert_msg
    - PAIR_VERIFY
    linkageType: ''
    returnType: void
    signature: void *fr_dhcpv4_next_encodable(fr_dcursor_t *cursor, void *current,
      void *uctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_encode_dbuff
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:355,1
    - Dst: FR_DBUFF_TMP
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - buffer
    - buflen
    - original
    - code
    - xid
    - vps
    argTypes:
    - uint8_t*
    - size_t
    - dhcp_packet_t*
    - int
    - uint32_t
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: fr_dhcpv4_encode
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 3
    functionsReached:
    - fr_dhcpv4_encode_dbuff
    - FR_DBUFF_TMP
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv4_encode(uint8_t *buffer, size_t buflen, dhcp_packet_t
      *original, int code, uint32_t xid, fr_pair_list_t *vps)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: FR_DBUFF
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:363,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:378,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:386,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:388,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:390,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:394,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:396,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:399,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:402,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:406,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:408,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:411,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:414,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:418,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:420,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:423,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:426,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:430,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:433,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:435,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:437,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:441,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:443,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:445,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:447,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:451,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:453,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:455,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:459,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:461,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:463,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:467,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:469,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:471,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:477,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:479,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:482,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:485,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:489,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:490,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:491,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:494,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:497,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:501,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:503,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:505,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:506,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:509,1
    - Dst: fr_pair_find_by_da
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:523,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:525,1
    - Dst: FR_DBUFF_IN_MEMCPY_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:527,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:528,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:531,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:535,1
    - Dst: fr_pair_list_sort
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:544,1
    - Dst: fr_pair_dcursor_iter_init
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:545,1
    - Dst: fr_dcursor_head
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:547,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:549,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:550,1
    - Dst: FR_DBUFF_IN_BYTES_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:552,1
    - Dst: fr_dcursor_current
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:559,1
    - Dst: fr_dcursor_next
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:568,1
    - Dst: fr_dhcpv4_encode_option
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:572,1
    - Dst: fr_dict_root
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:573,1
    - Dst: FR_DBUFF_IN_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:577,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:592,1
    - Dst: FR_DBUFF_MEMSET_RETURN
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:593,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:593,1
    - Dst: fr_dbuff_set
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:596,1
    - Dst: fr_dbuff_used
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:596,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 137
    argCount: 5
    argNames:
    - dbuff
    - original
    - code
    - xid
    - vps
    argTypes:
    - fr_dbuff_t*
    - dhcp_packet_t*
    - int
    - uint32_t
    - fr_pair_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 597
    functionName: fr_dhcpv4_encode_dbuff
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 2
    functionsReached:
    - fr_dcursor_current
    - fr_dbuff_set
    - FR_DBUFF_IN_RETURN
    - fr_dcursor_next
    - fr_dhcpv4_encode_option
    - fr_pair_dcursor_iter_init
    - fr_pair_list_sort
    - fr_dbuff_used
    - fr_dcursor_head
    - FR_DBUFF
    - FR_DBUFF_MEMSET_RETURN
    - FR_DBUFF_IN_BYTES_RETURN
    - fr_pair_find_by_da
    - fr_dict_root
    - FR_DBUFF_IN_MEMCPY_RETURN
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fr_dhcpv4_encode_dbuff(fr_dbuff_t *dbuff, dhcp_packet_t *original,
      int code, uint32_t xid, fr_pair_list_t *vps)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fr_dict_autoload
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:615,1
    - Dst: fr_dict_attr_autoload
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:621,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 606
    functionDepth: 8
    functionLinenumber: 606
    functionLinenumberEnd: 628
    functionName: fr_dhcpv4_global_init
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 2
    functionsReached:
    - fr_dict_attr_autoload
    - fr_dict_autofree
    - fr_dict_autoload
    linkageType: ''
    returnType: int
    signature: int fr_dhcpv4_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:634,1
    - Dst: fr_dict_autofree
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 640
    functionName: fr_dhcpv4_global_free
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - fr_dict_autofree
    linkageType: ''
    returnType: void
    signature: void fr_dhcpv4_global_free(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:667,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:668,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:669,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - fp
    - ptr
    - attrlen
    - depth
    argTypes:
    - FILE*
    - uint8_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 672
    functionName: print_hex_data
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_hex_data(FILE *fp, uint8_t const *ptr, int attrlen, int
      depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:686,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:687,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:691,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:694,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:696,1
    - Dst: fr_assert
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:701,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:707,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:711,1
    - Dst: print_hex_data
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:713,1
    - Dst: fprintf
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:718,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - fp
    - packet
    - packet_len
    argTypes:
    - FILE*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 719
    functionName: fr_dhcpv4_print_hex
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 2
    functionsReached:
    - fr_assert
    - print_hex_data
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fr_dhcpv4_print_hex(FILE *fp, uint8_t const *packet, size_t packet_len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fr_dhcpv4_flag_dns_label
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:726,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:728,1
    - Dst: da_is_length_field16
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:741,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:742,1
    - Dst: da_is_length_field8
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:752,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:753,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:763,1
    - Dst: fr_dhcpv4_flag_prefix
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:775,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:776,1
    - Dst: fr_dhcpv4_flag_exists
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:780,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:781,1
    - Dst: fr_strerror_const
      Src: /src/freeradius-server/src/protocols/dhcpv4/base.c:786,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - da
    argTypes:
    - fr_dict_attr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 791
    functionName: attr_valid
    functionSourceFile: /src/freeradius-server/src/protocols/dhcpv4/base.c
    functionUses: 1
    functionsReached:
    - da_is_length_field16
    - fr_dhcpv4_flag_exists
    - fr_strerror_const
    - fr_dhcpv4_flag_prefix
    - fr_dhcpv4_flag_dns_label
    - da_is_length_field8
    linkageType: ''
    returnType: bool
    signature: bool attr_valid(fr_dict_attr_t *da)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: XSTRINGIFY
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSTRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: STRINGIFY
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: UNCONST
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 130
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNCONST(_type, _ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: IS_TARGET
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TARGET(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _struct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: TARGET
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET(_name, _struct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: DEBUG
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 706
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: NOTICE
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOTICE(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: ERROR
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 641
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:616,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:617,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:619,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:620,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:621,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:622,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:623,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:624,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:625,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:627,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:628,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:630,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:631,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:632,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:633,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:634,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:636,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:637,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:638,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:639,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:640,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:642,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:643,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:644,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:645,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:646,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:647,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:648,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:649,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:650,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:651,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:652,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:653,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:654,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:655,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 658
    functionName: usage
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 28
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(int code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/freeradius-server/scripts/jlibtool.c:674,1
    - Dst: setvbuf
      Src: /src/freeradius-server/scripts/jlibtool.c:681,1
    - Dst: vfprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:683,1
    - Dst: vsprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - str
    - n
    - fmt
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 689
    functionName: vsnprintf
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 6
    functionsReached:
    - setvbuf
    - vfprintf
    - vsprintf
    - fopen
    linkageType: ''
    returnType: int
    signature: int vsnprintf(char *str, size_t n, char const *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/freeradius-server/scripts/jlibtool.c:696,1
    - Dst: vsnprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:697,1
    - Dst: va_end
      Src: /src/freeradius-server/scripts/jlibtool.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - str
    - n
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: snprintf
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 123
    functionsReached:
    - vsnprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int snprintf(char *str, size_t n, char const *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - str
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 715
    functionName: strip_double_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void strip_double_chars(char *str, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:720,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: lt_alloc_check
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - exit
    linkageType: ''
    returnType: void
    signature: void *lt_alloc_check(void *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt_alloc_check
      Src: /src/freeradius-server/scripts/jlibtool.c:729,1
    - Dst: malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 730
    functionName: lt_malloc
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_alloc_check
    - malloc
    linkageType: ''
    returnType: void
    signature: void *lt_malloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt_alloc_check
      Src: /src/freeradius-server/scripts/jlibtool.c:734,1
    - Dst: strdup
      Src: /src/freeradius-server/scripts/jlibtool.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: lt_strdup
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_alloc_check
    - strdup
    linkageType: ''
    returnType: char
    signature: char *lt_strdup(char const *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:741,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 743
    functionName: lt_const_free
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    linkageType: ''
    returnType: void
    signature: void lt_const_free(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cc
    argTypes:
    - count_chars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 749
    functionName: init_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    linkageType: ''
    returnType: void
    signature: void init_count_chars(count_chars *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:754,1
    - Dst: init_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 758
    functionName: alloc_countchars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - init_count_chars
    linkageType: ''
    returnType: count_chars
    signature: count_chars *alloc_countchars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cc
    argTypes:
    - count_chars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 768
    functionName: clear_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_count_chars(count_chars *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cc
    - newval
    argTypes:
    - count_chars*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: push_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void push_count_chars(count_chars *cc, char const *newval)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cc
    argTypes:
    - count_chars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 781
    functionName: pop_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *pop_count_chars(count_chars *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cc
    - newval
    - position
    argTypes:
    - count_chars*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 793
    functionName: insert_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert_count_chars(count_chars *cc, char const *newval, int position)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cc
    - cctoadd
    argTypes:
    - count_chars*
    - count_chars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 803
    functionName: append_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - push_count_chars
    linkageType: ''
    returnType: void
    signature: void append_count_chars(count_chars *cc, count_chars *cctoadd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:813,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:820,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:825,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:827,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - cc
    - delim
    argTypes:
    - count_chars*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 835
    functionName: flatten_count_chars
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - strcat
    - strlen
    linkageType: ''
    returnType: char
    signature: char *flatten_count_chars(count_chars *cc, char delim)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:844,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:844,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:848,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 869
    functionName: shell_esc
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - strlen
    - IS_TARGET
    linkageType: ''
    returnType: char
    signature: char *shell_esc(char const *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/freeradius-server/scripts/jlibtool.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: external_spawn_sig_handler
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - kill
    linkageType: ''
    returnType: void
    signature: void external_spawn_sig_handler(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: external_spawn_timeout
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void external_spawn_timeout(__attribute__((unused)) int pid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:888,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:892,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:894,1
    - Dst: puts
      Src: /src/freeradius-server/scripts/jlibtool.c:897,1
    - Dst: fflush
      Src: /src/freeradius-server/scripts/jlibtool.c:899,1
    - Dst: spawnvp
      Src: /src/freeradius-server/scripts/jlibtool.c:907,1
    - Dst: fork
      Src: /src/freeradius-server/scripts/jlibtool.c:913,1
    - Dst: execvp
      Src: /src/freeradius-server/scripts/jlibtool.c:915,1
    - Dst: UNCONST
      Src: /src/freeradius-server/scripts/jlibtool.c:915,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:918,1
    - Dst: strerror
      Src: /src/freeradius-server/scripts/jlibtool.c:918,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:932,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:933,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:934,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:935,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:936,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:937,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:938,1
    - Dst: SIGNAL_FORWARD
      Src: /src/freeradius-server/scripts/jlibtool.c:939,1
    - Dst: sigaction
      Src: /src/freeradius-server/scripts/jlibtool.c:950,1
    - Dst: alarm
      Src: /src/freeradius-server/scripts/jlibtool.c:955,1
    - Dst: waitpid
      Src: /src/freeradius-server/scripts/jlibtool.c:958,1
    - Dst: signal
      Src: /src/freeradius-server/scripts/jlibtool.c:961,1
    - Dst: alarm
      Src: /src/freeradius-server/scripts/jlibtool.c:962,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:965,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:966,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:967,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:968,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:969,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:970,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:971,1
    - Dst: SIGNAL_RESET
      Src: /src/freeradius-server/scripts/jlibtool.c:972,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:981,1
    - Dst: kill
      Src: /src/freeradius-server/scripts/jlibtool.c:982,1
    - Dst: waitpid
      Src: /src/freeradius-server/scripts/jlibtool.c:984,1
    - Dst: WIFEXITED
      Src: /src/freeradius-server/scripts/jlibtool.c:991,1
    - Dst: WEXITSTATUS
      Src: /src/freeradius-server/scripts/jlibtool.c:992,1
    - Dst: WIFSIGNALED
      Src: /src/freeradius-server/scripts/jlibtool.c:996,1
    - Dst: WTERMSIG
      Src: /src/freeradius-server/scripts/jlibtool.c:997,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 3
    argNames:
    - cmd
    - file
    - argv
    argTypes:
    - command_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 1008
    functionName: external_spawn
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - sigaction
    - fflush
    - waitpid
    - execvp
    - WIFEXITED
    - SIGNAL_FORWARD
    - alarm
    - WEXITSTATUS
    - UNCONST
    - spawnvp
    - fork
    - puts
    - WIFSIGNALED
    - WTERMSIG
    - NOTICE
    - signal
    - fprintf
    - strerror
    - SIGNAL_RESET
    - kill
    linkageType: ''
    returnType: int
    signature: int external_spawn(command_t *cmd, __attribute__((unused)) char const
      *file, char const **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sig
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 929
    functionName: SIGNAL_FORWARD
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNAL_FORWARD(_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _sig
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 931
    functionName: SIGNAL_RESET
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNAL_RESET(_sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1019,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1022,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1025,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1027,1
    - Dst: flatten_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1029,1
    - Dst: shell_esc
      Src: /src/freeradius-server/scripts/jlibtool.c:1030,1
    - Dst: memcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1032,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1033,1
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:1039,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1041,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - cmd
    - cc
    argTypes:
    - command_t*
    - count_chars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1045
    functionName: run_command
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 1
    functionsReached:
    - push_count_chars
    - memcpy
    - init_count_chars
    - free
    - flatten_count_chars
    - shell_esc
    - append_count_chars
    - external_spawn
    linkageType: ''
    returnType: int
    signature: int run_command(command_t *cmd, count_chars *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _var
    - ','
    - _id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1052
    functionName: printc
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printc(_var, _id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _var
    - ','
    - _id
    - ','
    - _ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1054
    functionName: printc_ext
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printc_ext(_var, _id, _ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/freeradius-server/scripts/jlibtool.c:1057,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1059,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1060,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1061,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1062,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1063,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1066,1
    - Dst: printf
      Src: /src/freeradius-server/scripts/jlibtool.c:1066,1
    - Dst: printc_ext
      Src: /src/freeradius-server/scripts/jlibtool.c:1070,1
    - Dst: printc_ext
      Src: /src/freeradius-server/scripts/jlibtool.c:1072,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1073,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1074,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1075,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1076,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1077,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1078,1
    - Dst: printc
      Src: /src/freeradius-server/scripts/jlibtool.c:1079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1056
        line_start: 1056
        source_file: /src/freeradius-server/scripts/jlibtool.c
    constantsTouched: []
    func_position:
      end: 1080
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1080
    functionName: print_config
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - assert
    - printc_ext
    - strcmp
    - printf
    - printc
    linkageType: ''
    returnType: void
    signature: void print_config(char const *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_rpath
      Src: /src/freeradius-server/scripts/jlibtool.c:1087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - arg
    - cmd
    argTypes:
    - char*
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1092
    functionName: add_runtime_dir_lib
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - add_rpath
    linkageType: ''
    returnType: void
    signature: void add_runtime_dir_lib(char const *arg, command_t *cmd)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1096,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1102,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1104,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1107,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1109,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1115,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1117,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1119,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1121,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1129,1
    - Dst: tolower
      Src: /src/freeradius-server/scripts/jlibtool.c:1135,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1140,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:1151,1
    - Dst: strstr
      Src: /src/freeradius-server/scripts/jlibtool.c:1166,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1169,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1174,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:1176,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1181,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1184,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1187,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1190,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1194,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:1195,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1198,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1200,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:1201,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1204,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1208,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1212,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1215,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1219,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:1220,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1223,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1229,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1232,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:1233,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1236,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:1237,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1239,1
    - Dst: usage
      Src: /src/freeradius-server/scripts/jlibtool.c:1240,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1242,1
    - Dst: print_config
      Src: /src/freeradius-server/scripts/jlibtool.c:1243,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:1245,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1246,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:1247,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1249,1
    - Dst: strtoul
      Src: /src/freeradius-server/scripts/jlibtool.c:1250,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:1251,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1253,1
    - Dst: setenv
      Src: /src/freeradius-server/scripts/jlibtool.c:1260,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 129
    argCount: 2
    argNames:
    - arg
    - cmd
    argTypes:
    - char*
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1094
    functionDepth: 2
    functionLinenumber: 1094
    functionLinenumberEnd: 1267
    functionName: parse_long_opt
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - tolower
    - NOTICE
    - print_config
    - strchr
    - strstr
    - usage
    - strcasecmp
    - strlen
    - strcmp
    - strtoul
    - exit
    - strcpy
    - strncpy
    - DEBUG
    - setenv
    linkageType: ''
    returnType: int
    signature: int parse_long_opt(char const *arg, command_t *cmd)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1272,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1277,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1282,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1290,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1294,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1298,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1303,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1308,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1317,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1324,1
    - Dst: add_runtime_dir_lib
      Src: /src/freeradius-server/scripts/jlibtool.c:1328,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - arg
    - cmd
    argTypes:
    - char*
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1333
    functionName: parse_short_opt
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - strcmp
    - push_count_chars
    - add_runtime_dir_lib
    linkageType: ''
    returnType: int
    signature: int parse_short_opt(char const *arg, command_t *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lt_strdup
      Src: /src/freeradius-server/scripts/jlibtool.c:1338,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1339,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1340,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1353,1
    - Dst: strncmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1355,1
    - Dst: memmove
      Src: /src/freeradius-server/scripts/jlibtool.c:1356,1
    - Dst: memmove
      Src: /src/freeradius-server/scripts/jlibtool.c:1361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1364
    functionName: truncate_dll_name
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_strdup
    - memmove
    - strrchr
    - strlen
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *truncate_dll_name(char const *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/freeradius-server/scripts/jlibtool.c:1371,1
    - Dst: umask
      Src: /src/freeradius-server/scripts/jlibtool.c:1372,1
    - Dst: mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:1375,1
    - Dst: mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:1377,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:1380,1
    - Dst: strerror
      Src: /src/freeradius-server/scripts/jlibtool.c:1380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - cmd
    - path
    argTypes:
    - command_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1382
    functionName: safe_mkdir
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - mkdir
    - strerror
    - umask
    - NOTICE
    linkageType: ''
    returnType: void
    signature: void safe_mkdir(command_t *cmd, char const *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1393,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1404
    functionName: file_name
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *file_name(char const *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:1416,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1417,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1422,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - path
    - allocated
    argTypes:
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1432
    functionName: file_name_stripped
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - strrchr
    - file_name
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *file_name_stripped(char const *path, bool *allocated)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/freeradius-server/scripts/jlibtool.c:1444,1
    - Dst: strspn
      Src: /src/freeradius-server/scripts/jlibtool.c:1446,1
    - Dst: strcspn
      Src: /src/freeradius-server/scripts/jlibtool.c:1447,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1454,1
    - Dst: snprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:1455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - version_info
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1459
    functionName: darwin_dynamic_link_function
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - snprintf
    - lt_malloc
    - strcspn
    - strspn
    linkageType: ''
    returnType: char
    signature: char *darwin_dynamic_link_function(char const *version_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1468,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1473,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1481,1
    - Dst: memmove
      Src: /src/freeradius-server/scripts/jlibtool.c:1482,1
    - Dst: memcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1486
    functionName: add_dotlibs
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - strrchr
    - strlen
    - strcpy
    linkageType: ''
    returnType: void
    signature: void add_dotlibs(char *buffer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1492,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1492,1
    - Dst: strncmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1494,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1499,1
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:1499,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1502,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1505,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1507,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1508,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1516,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1520,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1524,1
    - Dst: add_dotlibs
      Src: /src/freeradius-server/scripts/jlibtool.c:1531,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - name
    - genlib
    argTypes:
    - char*
    - enum lib_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1534
    functionName: gen_library_name
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strrchr
    - file_name
    - free
    - add_dotlibs
    - strlen
    - calloc
    - strcpy
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *gen_library_name(char const *name, enum lib_type genlib)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:1542,1
    - Dst: stat
      Src: /src/freeradius-server/scripts/jlibtool.c:1546,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - genlib
    argTypes:
    - char*
    - enum lib_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1536
    functionDepth: 3
    functionLinenumber: 1536
    functionLinenumberEnd: 1554
    functionName: gen_install_name
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - stat
    - gen_library_name
    - free
    linkageType: ''
    returnType: char
    signature: char *gen_install_name(char const *name, enum lib_type genlib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1561,1
    - Dst: memcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1562,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1566,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:1568,1
    - Dst: stat
      Src: /src/freeradius-server/scripts/jlibtool.c:1569,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - arg
    - arglen
    argTypes:
    - command_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1556
    functionDepth: 2
    functionLinenumber: 1556
    functionLinenumberEnd: 1576
    functionName: check_object_exists
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - memcpy
    - stat
    - free
    - strcpy
    - DEBUG
    linkageType: ''
    returnType: char
    signature: char *check_object_exists(command_t *cmd, char const *arg, int arglen)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1588,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1588,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1589,1
    - Dst: add_dotlibs
      Src: /src/freeradius-server/scripts/jlibtool.c:1594,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1598,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1599,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1601,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1602,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1617,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1625,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1629,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1633,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:1641,1
    - Dst: stat
      Src: /src/freeradius-server/scripts/jlibtool.c:1642,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1650,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 5
    argNames:
    - cmd
    - arg
    - pathlen
    - libdircheck
    - libtype
    argTypes:
    - command_t*
    - char*
    - int
    - int
    - enum lib_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1653
    functionName: check_library_exists
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - ERROR
    - strrchr
    - free
    - stat
    - add_dotlibs
    - strlen
    - strcpy
    - DEBUG
    linkageType: ''
    returnType: char
    signature: "char *check_library_exists(command_t *cmd, char const *arg, int pathlen,\n\t\t\t\t
      \ int libdircheck, enum lib_type *libtype)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/freeradius-server/scripts/jlibtool.c:1663,1
    - Dst: fgets
      Src: /src/freeradius-server/scripts/jlibtool.c:1668,1
    - Dst: strstr
      Src: /src/freeradius-server/scripts/jlibtool.c:1672,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1673,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1674,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1675,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1678,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1679,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1683,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1684,1
    - Dst: fclose
      Src: /src/freeradius-server/scripts/jlibtool.c:1691,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1699,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1655
    functionDepth: 2
    functionLinenumber: 1655
    functionLinenumberEnd: 1705
    functionName: load_install_path
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - fgets
    - free
    - strstr
    - strlen
    - fopen
    - strncpy
    - fclose
    linkageType: ''
    returnType: char
    signature: char * load_install_path(char const *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1712,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1712,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1713,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1717,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1722,1
    - Dst: realpath
      Src: /src/freeradius-server/scripts/jlibtool.c:1724,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:1725,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:1728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - arg
    - pathlen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1736
    functionName: load_noinstall_path
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - lt_const_free
    - strlen
    - strcpy
    - strcat
    - realpath
    linkageType: ''
    returnType: char
    signature: char *load_noinstall_path(char const *arg, int pathlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:1741,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1743,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1745,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:1747,1
    - Dst: strcasecmp
      Src: /src/freeradius-server/scripts/jlibtool.c:1752,1
    - Dst: insert_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1753,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1756,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:1759,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - cmd
    - args
    argTypes:
    - command_t*
    - count_chars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1738
    functionDepth: 2
    functionLinenumber: 1738
    functionLinenumberEnd: 1764
    functionName: add_dynamic_link_opts
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - push_count_chars
    - IS_TARGET
    - strcasecmp
    - insert_count_chars
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void add_dynamic_link_opts(command_t *cmd, count_chars *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1772,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1773,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1773,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1774,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1777,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1778,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1780,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1783,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1784,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - cc
    - flag
    - path
    argTypes:
    - count_chars*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1767
    functionDepth: 2
    functionLinenumber: 1767
    functionLinenumberEnd: 1787
    functionName: push_path_flag
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - push_count_chars
    - strlen
    - strcpy
    - strcat
    linkageType: ''
    returnType: void
    signature: void push_path_flag(count_chars *cc, char const *flag, char const *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_path_flag
      Src: /src/freeradius-server/scripts/jlibtool.c:1792,1
    - Dst: push_path_flag
      Src: /src/freeradius-server/scripts/jlibtool.c:1803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cc
    - path
    argTypes:
    - count_chars*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1790
    functionDepth: 3
    functionLinenumber: 1790
    functionLinenumberEnd: 1805
    functionName: add_rpath
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 1
    functionsReached:
    - push_path_flag
    linkageType: ''
    returnType: void
    signature: void add_rpath(count_chars *cc, char const *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_install_path
      Src: /src/freeradius-server/scripts/jlibtool.c:1811,1
    - Dst: add_rpath
      Src: /src/freeradius-server/scripts/jlibtool.c:1813,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:1814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cc
    - arg
    argTypes:
    - count_chars*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1807
    functionDepth: 4
    functionLinenumber: 1807
    functionLinenumberEnd: 1816
    functionName: add_rpath_file
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - add_rpath
    - load_install_path
    - lt_const_free
    linkageType: ''
    returnType: void
    signature: void add_rpath_file(count_chars *cc, char const *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_noinstall_path
      Src: /src/freeradius-server/scripts/jlibtool.c:1822,1
    - Dst: add_rpath
      Src: /src/freeradius-server/scripts/jlibtool.c:1823,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cc
    - arg
    - pathlen
    argTypes:
    - count_chars*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1818
    functionDepth: 4
    functionLinenumber: 1818
    functionLinenumberEnd: 1825
    functionName: add_rpath_noinstall
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - add_rpath
    - lt_const_free
    - load_noinstall_path
    linkageType: ''
    returnType: void
    signature: void add_rpath_noinstall(count_chars *cc, char const *arg, int pathlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_install_path
      Src: /src/freeradius-server/scripts/jlibtool.c:1835,1
    - Dst: load_noinstall_path
      Src: /src/freeradius-server/scripts/jlibtool.c:1838,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1840,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1842,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1843,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1850,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1854,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1857,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1859,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1862,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1865,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1867,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1870,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:1871,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:1872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 4
    argNames:
    - cc
    - arg
    - pathlen
    - extlen
    argTypes:
    - count_chars*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1828
    functionDepth: 3
    functionLinenumber: 1828
    functionLinenumberEnd: 1873
    functionName: add_dylink_noinstall
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - push_count_chars
    - load_install_path
    - lt_const_free
    - strlen
    - strcpy
    - strncpy
    - load_noinstall_path
    linkageType: ''
    returnType: void
    signature: "void add_dylink_noinstall(count_chars *cc, char const *arg, int pathlen,\n\t\t\t\t\t\t
      \ int extlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNCONST
      Src: /src/freeradius-server/scripts/jlibtool.c:1880,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1880,1
    - Dst: UNCONST
      Src: /src/freeradius-server/scripts/jlibtool.c:1881,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:1881,1
    - Dst: strstr
      Src: /src/freeradius-server/scripts/jlibtool.c:1888,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1893,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1894,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1896,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1896,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1897,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1898,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1899,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1908,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1909,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1911,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1911,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1912,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1913,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1914,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - cc
    - arg
    argTypes:
    - count_chars*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 1918
    functionName: add_minus_l
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - push_count_chars
    - strrchr
    - UNCONST
    - strstr
    - strlen
    - strcpy
    - strcat
    linkageType: ''
    returnType: void
    signature: void add_minus_l(count_chars *cc, char const *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1924,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:1927,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:1927,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:1928,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:1929,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cc
    - arg
    argTypes:
    - count_chars*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1921
    functionDepth: 2
    functionLinenumber: 1921
    functionLinenumberEnd: 1932
    functionName: add_linker_flag_prefix
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - push_count_chars
    - strlen
    - strcpy
    - strcat
    linkageType: ''
    returnType: void
    signature: void add_linker_flag_prefix(count_chars *cc, char const *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:1950,1
    - Dst: init_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1952,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1953,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1954,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1955,1
    - Dst: flatten_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1956,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:1958,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:1960,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1962,1
    - Dst: getcwd
      Src: /src/freeradius-server/scripts/jlibtool.c:1964,1
    - Dst: chdir
      Src: /src/freeradius-server/scripts/jlibtool.c:1966,1
    - Dst: NOTICE
      Src: /src/freeradius-server/scripts/jlibtool.c:1967,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:1968,1
    - Dst: init_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1977,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1978,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1979,1
    - Dst: flatten_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:1980,1
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:1988,1
    - Dst: chdir
      Src: /src/freeradius-server/scripts/jlibtool.c:1990,1
    - Dst: opendir
      Src: /src/freeradius-server/scripts/jlibtool.c:1991,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:1993,1
    - Dst: strerror
      Src: /src/freeradius-server/scripts/jlibtool.c:1993,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:1994,1
    - Dst: readdir
      Src: /src/freeradius-server/scripts/jlibtool.c:1997,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:1998,1
    - Dst: strstr
      Src: /src/freeradius-server/scripts/jlibtool.c:2003,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2008,1
    - Dst: flatten_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2009,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:2011,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2012,1
    - Dst: pop_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2013,1
    - Dst: closedir
      Src: /src/freeradius-server/scripts/jlibtool.c:2017,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2018,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2019,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 2
    argNames:
    - cmd
    - lib
    argTypes:
    - command_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 1935
    functionDepth: 3
    functionLinenumber: 1935
    functionLinenumberEnd: 2021
    functionName: explode_static_lib
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - safe_mkdir
    - exit
    - readdir
    - DEBUG
    - IS_TARGET
    - pop_count_chars
    - push_count_chars
    - file_name
    - chdir
    - closedir
    - getcwd
    - NOTICE
    - init_count_chars
    - free
    - strstr
    - flatten_count_chars
    - opendir
    - strerror
    - external_spawn
    linkageType: ''
    returnType: int
    signature: int explode_static_lib(command_t *cmd, char const *lib)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2025,1
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2037,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2049,1
    - Dst: stat
      Src: /src/freeradius-server/scripts/jlibtool.c:2052,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:2053,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2055,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2065,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2065,1
    - Dst: check_object_exists
      Src: /src/freeradius-server/scripts/jlibtool.c:2066,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2068,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2069,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:2073,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2075,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2077,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2083,1
    - Dst: check_library_exists
      Src: /src/freeradius-server/scripts/jlibtool.c:2087,1
    - Dst: check_library_exists
      Src: /src/freeradius-server/scripts/jlibtool.c:2090,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2092,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2093,1
    - Dst: add_minus_l
      Src: /src/freeradius-server/scripts/jlibtool.c:2103,1
    - Dst: explode_static_lib
      Src: /src/freeradius-server/scripts/jlibtool.c:2105,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2107,1
    - Dst: explode_static_lib
      Src: /src/freeradius-server/scripts/jlibtool.c:2111,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2114,1
    - Dst: add_rpath_noinstall
      Src: /src/freeradius-server/scripts/jlibtool.c:2120,1
    - Dst: add_rpath_file
      Src: /src/freeradius-server/scripts/jlibtool.c:2123,1
    - Dst: lt_strdup
      Src: /src/freeradius-server/scripts/jlibtool.c:2138,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:2140,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2141,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2145,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2146,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2147,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2152,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2153,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2165,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2168,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2168,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2169,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2170,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2170,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2174,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 99
    argCount: 2
    argNames:
    - arg
    - cmd
    argTypes:
    - char*
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2023
    functionDepth: 5
    functionLinenumber: 2023
    functionLinenumberEnd: 2184
    functionName: parse_input_file_name
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - strrchr
    - add_rpath_file
    - add_minus_l
    - strlen
    - gen_install_name
    - lt_malloc
    - ERROR
    - lt_strdup
    - explode_static_lib
    - check_object_exists
    - check_library_exists
    - add_rpath_noinstall
    - exit
    - DEBUG
    - push_count_chars
    - file_name
    - strcmp
    - stat
    - strcpy
    linkageType: ''
    returnType: int
    signature: int parse_input_file_name(char const *arg, command_t *cmd)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2194,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2195,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2197,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:2201,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2204,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2204,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2205,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2208,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2216,1
    - Dst: assert
      Src: /src/freeradius-server/scripts/jlibtool.c:2217,1
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2220,1
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2221,1
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2222,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2223,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2224,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2225,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2230,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2230,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2232,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2233,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2236,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2239,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2241,1
    - Dst: truncate_dll_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2245,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2252,1
    - Dst: assert
      Src: /src/freeradius-server/scripts/jlibtool.c:2253,1
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2258,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2259,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2264,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2264,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2266,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2267,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2270,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2273,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2275,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2282,1
    - Dst: assert
      Src: /src/freeradius-server/scripts/jlibtool.c:2283,1
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2288,1
    - Dst: gen_library_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2289,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2290,1
    - Dst: gen_install_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2291,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2296,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2296,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2298,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2299,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2302,1
    - Dst: safe_mkdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2305,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2307,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2314,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2318,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2318,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2319,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2320,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2321,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2326,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2327,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2329,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2332,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2333,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2335,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 111
    argCount: 2
    argNames:
    - arg
    - cmd
    argTypes:
    - char*
    - command_t*
    assertStmts:
    - condition: (cmd->mode == MODE_LINK)
      pos:
        line_end: 2216
        line_start: 2216
        source_file: /src/freeradius-server/scripts/jlibtool.c
    - condition: (cmd->mode == MODE_LINK)
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/freeradius-server/scripts/jlibtool.c
    - condition: (cmd->mode == MODE_LINK)
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/freeradius-server/scripts/jlibtool.c
    constantsTouched: []
    func_position:
      end: 2339
      start: 2186
    functionDepth: 4
    functionLinenumber: 2186
    functionLinenumberEnd: 2339
    functionName: parse_output_file_name
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - gen_install_name
    - lt_malloc
    - ERROR
    - gen_library_name
    - truncate_dll_name
    - assert
    - strrchr
    - file_name
    - free
    - strlen
    - strcmp
    - safe_mkdir
    - exit
    - strcpy
    - strcat
    - IS_TARGET
    linkageType: ''
    returnType: int
    signature: int parse_output_file_name(char const *arg, command_t *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2345,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2346,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:2347,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2351,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2352,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2353,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:2354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - cmd
    argTypes:
    - char*
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2360
    functionName: automode
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - DEBUG
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *automode(char const *arg, command_t *cmd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2376,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2377,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2380,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2381,1
    - Dst: fopen
      Src: /src/freeradius-server/scripts/jlibtool.c:2382,1
    - Dst: file_name_stripped
      Src: /src/freeradius-server/scripts/jlibtool.c:2388,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2389,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2390,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2391,1
    - Dst: fclose
      Src: /src/freeradius-server/scripts/jlibtool.c:2392,1
    - Dst: lt_const_free
      Src: /src/freeradius-server/scripts/jlibtool.c:2393,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2397,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2400,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2400,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2401,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2402,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2406,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2407,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2411,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2412,1
    - Dst: puts
      Src: /src/freeradius-server/scripts/jlibtool.c:2413,1
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:2418,1
    - Dst: lt_strdup
      Src: /src/freeradius-server/scripts/jlibtool.c:2420,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2427,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2430,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2434,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2435,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2437,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2443,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2446,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2447,1
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:2452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 65
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2362
    functionDepth: 3
    functionLinenumber: 2362
    functionLinenumberEnd: 2456
    functionName: generate_def_file
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - puts
    - lt_malloc
    - ERROR
    - lt_strdup
    - strrchr
    - lt_const_free
    - fprintf
    - file_name_stripped
    - strlen
    - external_spawn
    - fopen
    - strcpy
    - strcat
    - fclose
    linkageType: ''
    returnType: void
    signature: void generate_def_file(command_t *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getcwd
      Src: /src/freeradius-server/scripts/jlibtool.c:2463,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2464,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2464,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2464,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2465,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2466,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - relpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2459
    functionDepth: 2
    functionLinenumber: 2459
    functionLinenumberEnd: 2469
    functionName: expand_path
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - getcwd
    - lt_malloc
    - strlen
    - strcpy
    - strcat
    linkageType: ''
    returnType: char
    signature: char * expand_path(char const *relpath)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2492,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2494,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2496,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2498,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:2500,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2505,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2506,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2511,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2515,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2517,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2520,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2524,1
    - Dst: exit
      Src: /src/freeradius-server/scripts/jlibtool.c:2525,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2527,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:2533,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2534,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2535,1
    - Dst: strip_double_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2538,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2540,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:2544,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2548,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2549,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/scripts/jlibtool.c:2549,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2550,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2551,1
    - Dst: STRINGIFY
      Src: /src/freeradius-server/scripts/jlibtool.c:2551,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2557,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2558,1
    - Dst: generate_def_file
      Src: /src/freeradius-server/scripts/jlibtool.c:2561,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2566,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2567,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2572,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2573,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2574,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2575,1
    - Dst: add_dynamic_link_opts
      Src: /src/freeradius-server/scripts/jlibtool.c:2576,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2472
    functionDepth: 4
    functionLinenumber: 2472
    functionLinenumberEnd: 2579
    functionName: link_fixup
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - ERROR
    - STRINGIFY
    - push_count_chars
    - strip_double_chars
    - add_dynamic_link_opts
    - strrchr
    - generate_def_file
    - append_count_chars
    - exit
    - strcpy
    - strcat
    - IS_TARGET
    linkageType: ''
    returnType: void
    signature: void link_fixup(command_t *cmd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2586,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2589,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2590,1
    - Dst: link_fixup
      Src: /src/freeradius-server/scripts/jlibtool.c:2595,1
    - Dst: link_fixup
      Src: /src/freeradius-server/scripts/jlibtool.c:2600,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2613,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2620,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2581
    functionDepth: 5
    functionLinenumber: 2581
    functionLinenumberEnd: 2622
    functionName: post_parse_fixup
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - link_fixup
    - push_count_chars
    linkageType: ''
    returnType: void
    signature: void post_parse_fixup(command_t *cmd)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2629,1
    - Dst: init_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2630,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2634,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2643,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2647,1
    - Dst: insert_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2648,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2651,1
    - Dst: clear_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2653,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2656,1
    - Dst: insert_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2657,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2660,1
    - Dst: IS_TARGET
      Src: /src/freeradius-server/scripts/jlibtool.c:2677,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2684,1
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2686,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2687,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:2689,1
    - Dst: snprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2691,1
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:2699,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2701,1
    - Dst: clear_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2704,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2707,1
    - Dst: insert_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2708,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2710,1
    - Dst: clear_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2712,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2715,1
    - Dst: insert_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2716,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2718,1
    - Dst: clear_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2720,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2728,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2729,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2731,1
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:2738,1
    - Dst: clear_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2746,1
    - Dst: append_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2748,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2751,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2754,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2757,1
    - Dst: dynamic_link_version_func
      Src: /src/freeradius-server/scripts/jlibtool.c:2758,1
    - Dst: add_dynamic_link_opts
      Src: /src/freeradius-server/scripts/jlibtool.c:2761,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2763,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2767,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2778,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2787,1
    - Dst: strstr
      Src: /src/freeradius-server/scripts/jlibtool.c:2794,1
    - Dst: strncpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2796,1
    - Dst: setenv
      Src: /src/freeradius-server/scripts/jlibtool.c:2800,1
    - Dst: setenv
      Src: /src/freeradius-server/scripts/jlibtool.c:2801,1
    - Dst: setenv
      Src: /src/freeradius-server/scripts/jlibtool.c:2802,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:2809,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2816,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2816,1
    - Dst: setenv
      Src: /src/freeradius-server/scripts/jlibtool.c:2817,1
    - Dst: isatty
      Src: /src/freeradius-server/scripts/jlibtool.c:2818,1
    - Dst: run_command
      Src: /src/freeradius-server/scripts/jlibtool.c:2821,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2832,1
    - Dst: free
      Src: /src/freeradius-server/scripts/jlibtool.c:2833,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 153
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2624
    functionDepth: 3
    functionLinenumber: 2624
    functionLinenumberEnd: 2835
    functionName: run_mode
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - strrchr
    - external_spawn
    - strlen
    - lt_malloc
    - ERROR
    - isatty
    - run_command
    - append_count_chars
    - strncpy
    - IS_TARGET
    - setenv
    - clear_count_chars
    - push_count_chars
    - add_dynamic_link_opts
    - file_name
    - strcmp
    - insert_count_chars
    - init_count_chars
    - free
    - strstr
    - snprintf
    - dynamic_link_version_func
    linkageType: ''
    returnType: int
    signature: int run_mode(command_t *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/freeradius-server/scripts/jlibtool.c:2843,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:2848,1
    - Dst: ERROR
      Src: /src/freeradius-server/scripts/jlibtool.c:2849,1
    - Dst: closedir
      Src: /src/freeradius-server/scripts/jlibtool.c:2851,1
    - Dst: readdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2855,1
    - Dst: strcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:2857,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2858,1
    - Dst: strcat
      Src: /src/freeradius-server/scripts/jlibtool.c:2859,1
    - Dst: remove
      Src: /src/freeradius-server/scripts/jlibtool.c:2860,1
    - Dst: rmdir
      Src: /src/freeradius-server/scripts/jlibtool.c:2864,1
    - Dst: closedir
      Src: /src/freeradius-server/scripts/jlibtool.c:2866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2867
    functionName: cleanup_tmp_dir
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - ERROR
    - rmdir
    - remove
    - opendir
    - strlen
    - readdir
    - strcpy
    - strcat
    - closedir
    linkageType: ''
    returnType: void
    signature: void cleanup_tmp_dir(char const *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_tmp_dir
      Src: /src/freeradius-server/scripts/jlibtool.c:2874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2869
    functionDepth: 2
    functionLinenumber: 2869
    functionLinenumberEnd: 2876
    functionName: cleanup_tmp_dirs
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - cleanup_tmp_dir
    linkageType: ''
    returnType: void
    signature: void cleanup_tmp_dirs(command_t *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: external_spawn
      Src: /src/freeradius-server/scripts/jlibtool.c:2893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2878
    functionDepth: 2
    functionLinenumber: 2878
    functionLinenumberEnd: 2894
    functionName: ensure_fake_uptodate
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - external_spawn
    linkageType: ''
    returnType: int
    signature: int ensure_fake_uptodate(command_t *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/freeradius-server/scripts/jlibtool.c:2905,1
    - Dst: basename
      Src: /src/freeradius-server/scripts/jlibtool.c:2906,1
    - Dst: UNCONST
      Src: /src/freeradius-server/scripts/jlibtool.c:2906,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2912,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2913,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2914,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2915,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2916,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2917,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2918,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2919,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2921,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2922,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2924,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2926,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2928,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2929,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2930,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2931,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2932,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2933,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2934,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2935,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2936,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2937,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2938,1
    - Dst: fprintf
      Src: /src/freeradius-server/scripts/jlibtool.c:2939,1
    - Dst: fclose
      Src: /src/freeradius-server/scripts/jlibtool.c:2940,1
    - Dst: ensure_fake_uptodate
      Src: /src/freeradius-server/scripts/jlibtool.c:2944,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - command_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2897
    functionDepth: 3
    functionLinenumber: 2897
    functionLinenumberEnd: 2946
    functionName: add_for_runtime
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - UNCONST
    - fprintf
    - ensure_fake_uptodate
    - fopen
    - basename
    - fclose
    linkageType: ''
    returnType: int
    signature: int add_for_runtime(command_t *cmd)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:2964,1
    - Dst: automode
      Src: /src/freeradius-server/scripts/jlibtool.c:2965,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:2967,1
    - Dst: assert
      Src: /src/freeradius-server/scripts/jlibtool.c:2969,1
    - Dst: strncmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2982,1
    - Dst: strncmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2991,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2992,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2993,1
    - Dst: strncmp
      Src: /src/freeradius-server/scripts/jlibtool.c:2998,1
    - Dst: strrchr
      Src: /src/freeradius-server/scripts/jlibtool.c:3009,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3012,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3014,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3016,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3018,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3020,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3022,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3024,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3026,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3028,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3030,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3031,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3033,1
    - Dst: strchr
      Src: /src/freeradius-server/scripts/jlibtool.c:3042,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3043,1
    - Dst: strlen
      Src: /src/freeradius-server/scripts/jlibtool.c:3049,1
    - Dst: lt_malloc
      Src: /src/freeradius-server/scripts/jlibtool.c:3051,1
    - Dst: memcpy
      Src: /src/freeradius-server/scripts/jlibtool.c:3053,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3057,1
    - Dst: parse_long_opt
      Src: /src/freeradius-server/scripts/jlibtool.c:3068,1
    - Dst: parse_short_opt
      Src: /src/freeradius-server/scripts/jlibtool.c:3069,1
    - Dst: parse_output_file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:3090,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3095,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:3096,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3098,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:3101,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3103,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3108,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3113,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3118,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3123,1
    - Dst: strcmp
      Src: /src/freeradius-server/scripts/jlibtool.c:3129,1
    - Dst: add_runtime_dir_lib
      Src: /src/freeradius-server/scripts/jlibtool.c:3138,1
    - Dst: parse_input_file_name
      Src: /src/freeradius-server/scripts/jlibtool.c:3150,1
    - Dst: automode
      Src: /src/freeradius-server/scripts/jlibtool.c:3161,1
    - Dst: DEBUG
      Src: /src/freeradius-server/scripts/jlibtool.c:3164,1
    - Dst: push_count_chars
      Src: /src/freeradius-server/scripts/jlibtool.c:3166,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 122
    argCount: 3
    argNames:
    - argc
    - argv
    - cmd
    argTypes:
    - int
    - char*[]
    - command_t*
    assertStmts:
    - condition: (cmd->mode != MODE_UNKNOWN)
      pos:
        line_end: 2968
        line_start: 2968
        source_file: /src/freeradius-server/scripts/jlibtool.c
    constantsTouched: []
    func_position:
      end: 3170
      start: 2948
    functionDepth: 6
    functionLinenumber: 2948
    functionLinenumberEnd: 3170
    functionName: parse_args
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 0
    functionsReached:
    - lt_malloc
    - assert
    - push_count_chars
    - memcpy
    - parse_long_opt
    - automode
    - file_name
    - strrchr
    - strchr
    - add_runtime_dir_lib
    - strlen
    - strcmp
    - parse_input_file_name
    - parse_short_opt
    - strncmp
    - parse_output_file_name
    - DEBUG
    linkageType: ''
    returnType: void
    signature: void parse_args(int argc, char *argv[], command_t *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/freeradius-server/scripts/jlibtool.c:3178,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3187,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3188,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3189,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3190,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3191,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3192,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3193,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3194,1
    - Dst: alloc_countchars
      Src: /src/freeradius-server/scripts/jlibtool.c:3195,1
    - Dst: parse_args
      Src: /src/freeradius-server/scripts/jlibtool.c:3200,1
    - Dst: post_parse_fixup
      Src: /src/freeradius-server/scripts/jlibtool.c:3201,1
    - Dst: usage
      Src: /src/freeradius-server/scripts/jlibtool.c:3207,1
    - Dst: run_mode
      Src: /src/freeradius-server/scripts/jlibtool.c:3210,1
    - Dst: add_for_runtime
      Src: /src/freeradius-server/scripts/jlibtool.c:3212,1
    - Dst: cleanup_tmp_dirs
      Src: /src/freeradius-server/scripts/jlibtool.c:3215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3172
    functionDepth: 7
    functionLinenumber: 3172
    functionLinenumberEnd: 3218
    functionName: main
    functionSourceFile: /src/freeradius-server/scripts/jlibtool.c
    functionUses: 4
    functionsReached:
    - cleanup_tmp_dirs
    - parse_args
    - usage
    - run_mode
    - add_for_runtime
    - post_parse_fixup
    - memset
    - alloc_countchars
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: get_last_sys_error
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_last_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: clear_sys_error
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: set_sys_error
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_sys_error(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: get_last_sys_error
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_last_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: clear_sys_error
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_sys_error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: set_sys_error
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_sys_error(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: strlen
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 455
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strlen(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: _strlen31
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _strlen31(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: EXIT
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: check_winnt
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_winnt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: check_win_minplat
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_win_minplat(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: check_winnt
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_winnt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: check_win_minplat
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_win_minplat(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: EXIT
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: EXIT
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: sleep
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sleep(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/openssl-3.0.15/e_os.h:298,1
    - Dst: PROCESS_DELAY_
      Src: /src/openssl-3.0.15/e_os.h:303,1
    - Dst: sleep
      Src: /src/openssl-3.0.15/e_os.h:309,1
    - Dst: usleep
      Src: /src/openssl-3.0.15/e_os.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 312
    functionName: ossl_sleep
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached:
    - nanosleep
    - sleep
    - usleep
    - PROCESS_DELAY_
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ossl_sleep(unsigned long millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/openssl-3.0.15/e_os.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: ossl_sleep
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached:
    - Sleep
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ossl_sleep(unsigned long millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openssl-3.0.15/e_os.h:326,1
    - Dst: gettimeofday
      Src: /src/openssl-3.0.15/e_os.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: ossl_sleep
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline ossl_sleep(unsigned long millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: getservbyname
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getservbyname(name,proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: gethostbyname
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gethostbyname(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: ioctlsocket
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioctlsocket(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PROCESSHANDLE_GETMINE_
      Src: /src/openssl-3.0.15/e_os.h:359,1
    - Dst: PROCESSHANDLE_DECOMPOSE_
      Src: /src/openssl-3.0.15/e_os.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: nssgetpid
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 0
    functionsReached:
    - PROCESSHANDLE_GETMINE_
    - PROCESSHANDLE_DECOMPOSE_
    linkageType: ''
    returnType: int
    signature: int nssgetpid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: getpid
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getpid(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: accept
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: accept(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: recvfrom
    functionSourceFile: /src/openssl-3.0.15/e_os.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recvfrom(a,b,c,d,e,f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:74,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:75,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:76,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:77,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:79,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:80,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:81,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:82,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:83,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 89
    functionName: digest_md5
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_md5(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:103,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:104,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:105,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:106,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:108,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:109,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:110,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:111,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:112,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: digest_sha1
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha1(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:132,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:133,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:134,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:135,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:137,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:138,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:139,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:140,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: digest_sha256
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha256(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:166,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:167,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:168,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:169,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:171,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:172,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:173,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:174,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:175,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: digest_sha384
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha384(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:188,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:189,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:190,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:191,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:193,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:194,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:195,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:196,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: digest_sha512
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *digest_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:206,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:208,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:210,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:212,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: destroy_digests
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_digests(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: digest_md5
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:225,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:226,1
    - Dst: digest_sha1
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:227,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:228,1
    - Dst: digest_sha256
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:229,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:230,1
    - Dst: digest_sha384
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:231,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:232,1
    - Dst: digest_sha512
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:233,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: ossltest_digest_nids
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - digest_md5
    - digest_sha512
    - digest_sha384
    - digest_sha256
    - EVP_MD_get_type
    - digest_sha1
    linkageType: ''
    returnType: int
    signature: int ossltest_digest_nids(const int **nids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:285,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:288,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:289,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:292,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:294,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:296,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:297,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:297,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 302
    functionName: ossltest_aes_128_cbc
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_impl_ctx_size
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_aes_128_cbc
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ossltest_aes_128_cbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:315,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:318,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:319,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:320,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:322,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:324,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:326,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:327,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:327,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: ossltest_aes_128_gcm
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_ctrl
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_impl_ctx_size
    - EVP_aes_128_gcm
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ossltest_aes_128_gcm(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:340,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:343,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:344,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:347,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:349,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:351,1
    - Dst: EVP_CIPHER_meth_set_set_asn1_params
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:353,1
    - Dst: EVP_CIPHER_meth_set_get_asn1_params
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:355,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:357,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:359,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 363
    functionName: ossltest_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_ctrl
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_set_set_asn1_params
    - EVP_CIPHER_meth_set_get_asn1_params
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ossltest_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:367,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:368,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 373
    functionName: destroy_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_ciphers(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:382,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:386,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:388,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:392,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:394,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - eng
    - key_id
    - pub
    - ui_method
    - ui_data
    argTypes:
    - ENGINE*
    - char*
    - int
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 397
    functionName: load_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - BIO_free
    - fprintf
    - OPENSSL_strncasecmp
    - BIO_new_file
    - PEM_read_bio_PUBKEY
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *load_key(ENGINE *eng, const char *key_id, int pub,\n                          UI_METHOD
      *ui_method, void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_key
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - ui_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: ossltest_load_privkey
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - load_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ossltest_load_privkey(ENGINE *eng, const char *key_id,\n
      \                                      UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_key
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - ui_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: ossltest_load_pubkey
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - load_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ossltest_load_pubkey(ENGINE *eng, const char *key_id,\n
      \                                     UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_OSSLTEST_strings
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:415,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:417,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:418,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:419,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:420,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:421,1
    - Dst: ossltest_rand_method
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:421,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:422,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:423,1
    - Dst: ENGINE_set_load_pubkey_function
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:424,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:425,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:426,1
    - Dst: OSSLTESTerr
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 432
    functionName: bind_ossltest
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_ciphers
    - ossltest_rand_method
    - ENGINE_set_finish_function
    - ENGINE_set_init_function
    - OSSLTESTerr
    - ENGINE_set_destroy_function
    - ENGINE_set_load_pubkey_function
    - ERR_load_OSSLTEST_strings
    - ENGINE_set_id
    - ENGINE_set_digests
    - ENGINE_set_name
    - ENGINE_set_load_privkey_function
    - ENGINE_set_RAND
    linkageType: ''
    returnType: int
    signature: int bind_ossltest(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:437,1
    - Dst: bind_ossltest
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_ossltest
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:450,1
    - Dst: bind_ossltest
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:453,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: engine_ossltest
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - ENGINE_new
    - bind_ossltest
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_ossltest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_ossltest
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:463,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:466,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:467,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: ENGINE_load_ossltest
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - engine_ossltest
    - ERR_clear_error
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: void ENGINE_load_ossltest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: ossltest_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: ossltest_finish
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_digests
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:486,1
    - Dst: destroy_ciphers
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:487,1
    - Dst: ERR_unload_OSSLTEST_strings
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: ossltest_destroy
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - destroy_digests
    - ERR_unload_OSSLTEST_strings
    - destroy_ciphers
    linkageType: ''
    returnType: int
    signature: int ossltest_destroy(ENGINE *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossltest_digest_nids
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:498,1
    - Dst: digest_md5
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:503,1
    - Dst: digest_sha1
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:506,1
    - Dst: digest_sha256
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:509,1
    - Dst: digest_sha384
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:512,1
    - Dst: digest_sha512
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 523
    functionName: ossltest_digests
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - digest_md5
    - digest_sha512
    - ossltest_digest_nids
    - digest_sha384
    - digest_sha256
    - digest_sha1
    linkageType: ''
    returnType: int
    signature: "int ossltest_digests(ENGINE *e, const EVP_MD **digest,\n                          const
      int **nids, int nid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossltest_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:538,1
    - Dst: ossltest_aes_128_gcm
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:541,1
    - Dst: ossltest_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 552
    functionName: ossltest_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - ossltest_aes_128_gcm
    - ossltest_aes_128_cbc
    - ossltest_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "int ossltest_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                          const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: fill_known_data
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_known_data(unsigned char *md, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:571,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 572
    functionName: digest_md5_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_get_init
    - EVP_md5
    linkageType: ''
    returnType: int
    signature: int digest_md5_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:577,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 578
    functionName: digest_md5_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_md5
    - EVP_MD_meth_get_update
    linkageType: ''
    returnType: int
    signature: "int digest_md5_update(EVP_MD_CTX *ctx, const void *data,\n                             size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:582,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:582,1
    - Dst: fill_known_data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: digest_md5_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_get_final
    - fill_known_data
    - EVP_md5
    linkageType: ''
    returnType: int
    signature: int digest_md5_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:595,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: digest_sha1_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_get_init
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: int digest_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:601,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: digest_sha1_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha1
    - EVP_MD_meth_get_update
    linkageType: ''
    returnType: int
    signature: "int digest_sha1_update(EVP_MD_CTX *ctx, const void *data,\n                              size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:606,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:606,1
    - Dst: fill_known_data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: digest_sha1_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_get_final
    - EVP_sha1
    - fill_known_data
    linkageType: ''
    returnType: int
    signature: int digest_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:619,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 620
    functionName: digest_sha256_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_MD_meth_get_init
    linkageType: ''
    returnType: int
    signature: int digest_sha256_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:625,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: digest_sha256_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_MD_meth_get_update
    linkageType: ''
    returnType: int
    signature: "int digest_sha256_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:630,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:630,1
    - Dst: fill_known_data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 636
    functionName: digest_sha256_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_MD_meth_get_final
    - fill_known_data
    linkageType: ''
    returnType: int
    signature: int digest_sha256_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:643,1
    - Dst: EVP_sha384
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: digest_sha384_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha384
    - EVP_MD_meth_get_init
    linkageType: ''
    returnType: int
    signature: int digest_sha384_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:649,1
    - Dst: EVP_sha384
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 650
    functionName: digest_sha384_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha384
    - EVP_MD_meth_get_update
    linkageType: ''
    returnType: int
    signature: "int digest_sha384_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:654,1
    - Dst: EVP_sha384
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:654,1
    - Dst: fill_known_data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 660
    functionName: digest_sha384_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha384
    - EVP_MD_meth_get_final
    - fill_known_data
    linkageType: ''
    returnType: int
    signature: int digest_sha384_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:667,1
    - Dst: EVP_sha512
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: digest_sha512_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_get_init
    - EVP_sha512
    linkageType: ''
    returnType: int
    signature: int digest_sha512_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_update
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:673,1
    - Dst: EVP_sha512
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: digest_sha512_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_sha512
    - EVP_MD_meth_get_update
    linkageType: ''
    returnType: int
    signature: "int digest_sha512_update(EVP_MD_CTX *ctx, const void *data,\n                                size_t
      count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_get_final
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:678,1
    - Dst: EVP_sha512
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:678,1
    - Dst: fill_known_data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 684
    functionName: digest_sha512_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_get_final
    - fill_known_data
    - EVP_sha512
    linkageType: ''
    returnType: int
    signature: int digest_sha512_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:694,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: ossltest_aes128_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - EVP_CIPHER_meth_get_init
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_init_key(EVP_CIPHER_CTX *ctx,\n                                    const
      unsigned char *key,\n                                    const unsigned char
      *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:703,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:711,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:714,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:714,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:718,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 722
    functionName: ossltest_aes128_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_aes_128_cbc
    - EVP_CIPHER_meth_get_do_cipher
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                                      const unsigned char *in, size_t
      inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:728,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 729
    functionName: ossltest_aes128_gcm_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - EVP_CIPHER_meth_get_init
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_gcm_init_key(EVP_CIPHER_CTX *ctx,\n                                        const
      unsigned char *key,\n                                        const unsigned
      char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:734,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:742,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:745,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:745,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:749,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 753
    functionName: ossltest_aes128_gcm_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - EVP_aes_128_gcm
    - OPENSSL_free
    - EVP_CIPHER_meth_get_do_cipher
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                                      const unsigned char *in, size_t
      inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:759,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:759,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 775
    functionName: ossltest_aes128_gcm_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - EVP_CIPHER_meth_get_ctrl
    - memset
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_gcm_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                   void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 779
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 187
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: ossltest_aes128_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx,\n
      \                                                 const unsigned char *inkey,\n
      \                                                 const unsigned char *iv,\n
      \                                                 int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:795,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:804,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:812,1
    - Dst: fill_known_data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:816,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:825,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 853
    functionName: ossltest_aes128_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - memmove
    - EVP_CIPHER_CTX_is_encrypting
    - fill_known_data
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx,\n                                                unsigned
      char *out,\n                                                const unsigned char
      *in,\n                                                size_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:858,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_ossltest.c:875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 897
    functionName: ossltest_aes128_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int ossltest_aes128_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type,\n
      \                                             int arg, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: ossltest_rand_bytes
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_rand_bytes(unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: ossltest_rand_status
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossltest_rand_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 926
    functionName: ossltest_rand_method
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *ossltest_rand_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: S_ISDIR
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:61,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:65,1
    - Dst: UI_set_method
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:70,1
    - Dst: UI_add_user_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:71,1
    - Dst: UI_construct_prompt
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:73,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:74,1
    - Dst: UI_add_input_string
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:76,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:78,1
    - Dst: UI_process
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:81,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:83,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:87,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:95,1
    - Dst: UI_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - ui_method
    - pass
    - maxsize
    - desc
    - info
    - data
    argTypes:
    - UI_METHOD*
    - char*
    - size_t
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 98
    functionName: file_get_pass
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - UI_set_method
    - UI_add_user_data
    - UI_new
    - UI_process
    - OPENSSL_free
    - ATTICerr
    - UI_free
    - UI_add_input_string
    - UI_construct_prompt
    linkageType: ''
    returnType: char
    signature: "char *file_get_pass(const UI_METHOD *ui_method, char *pass,\n                           size_t
      maxsize, const char *desc, const char *info,\n                           void
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - pass_data
    - desc
    - info
    - ui_method
    - ui_data
    argTypes:
    - struct pem_pass_data*
    - char*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: file_fill_pem_pass_data
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int file_fill_pem_pass_data(struct pem_pass_data *pass_data,\n                                   const
      char *desc, const char *info,\n                                   const UI_METHOD
      *ui_method, void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_get_pass
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:124,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - num
    - w
    - data
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: file_get_pem_pass
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - file_get_pass
    - strlen
    linkageType: ''
    returnType: int
    signature: int file_get_pem_pass(char *buf, int num, int w, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:139,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:140,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - str
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: check_suffix
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int check_suffix(const char *str, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_get0_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: get0_EMBEDDED
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_INFO_get0_data
    linkageType: ''
    returnType: struct embedded_st
    signature: struct embedded_st *get0_EMBEDDED(OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get0_EMBEDDED
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:182,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:185,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: store_info_free
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - get0_EMBEDDED
    - BUF_MEM_free
    - OSSL_STORE_INFO_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void store_info_free(OSSL_STORE_INFO *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:196,1
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:197,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:199,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:205,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:208,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - new_pem_name
    - embedded
    argTypes:
    - char*
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 214
    functionName: new_EMBEDDED
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - OPENSSL_free
    - ATTICerr
    - store_info_free
    - OPENSSL_strdup
    - OSSL_STORE_INFO_new
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *new_EMBEDDED(const char *new_pem_name,\n                                     BUF_MEM
      *embedded)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:307,1
    - Dst: d2i_PKCS12
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:317,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:322,1
    - Dst: PKCS12_mac_present
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:326,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:327,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:328,1
    - Dst: file_get_pass
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:331,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:334,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:337,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:337,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:338,1
    - Dst: PKCS12_parse
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:343,1
    - Dst: sk_OSSL_STORE_INFO_new_null
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:349,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:351,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:354,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:360,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:363,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:368,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:369,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:371,1
    - Dst: sk_X509_shift
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:372,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:373,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:379,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:380,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:381,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:382,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:383,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:384,1
    - Dst: sk_OSSL_STORE_INFO_pop_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:386,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:393,1
    - Dst: sk_OSSL_STORE_INFO_shift
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:399,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 401
    functionName: try_decode_PKCS12
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - file_get_pass
    - sk_X509_value
    - X509_free
    - sk_OSSL_STORE_INFO_new_null
    - PKCS12_mac_present
    - sk_OSSL_STORE_INFO_pop_free
    - ATTICerr
    - PKCS12_parse
    - strlen
    - OSSL_STORE_INFO_new_CERT
    - OSSL_STORE_INFO_new_PKEY
    - PKCS12_free
    - d2i_PKCS12
    - sk_X509_shift
    - PKCS12_verify_mac
    - sk_X509_num
    - STACK_OF
    - store_info_free
    - sk_OSSL_STORE_INFO_shift
    - sk_X509_pop_free
    - EVP_PKEY_free
    - sk_OSSL_STORE_INFO_push
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PKCS12(const char *pem_name,\n                                          const
      char *pem_header,\n                                          const unsigned
      char *blob,\n                                          size_t len, void **pctx,\n
      \                                         int *matchcount,\n                                          const
      UI_METHOD *ui_method,\n                                          void *ui_data,
      const char *uri,\n                                          OSSL_LIB_CTX *libctx,\n
      \                                         const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:405,1
    - Dst: sk_OSSL_STORE_INFO_num
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: eof_PKCS12
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_OSSL_STORE_INFO_num
    linkageType: ''
    returnType: int
    signature: int eof_PKCS12(void *ctx_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:412,1
    - Dst: sk_OSSL_STORE_INFO_pop_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: destroy_ctx_PKCS12
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_STORE_INFO_pop_free
    - STACK_OF
    linkageType: ''
    returnType: void
    signature: void destroy_ctx_PKCS12(void **pctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:453,1
    - Dst: d2i_X509_SIG
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:458,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:463,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:464,1
    - Dst: file_get_pass
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:468,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:471,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:475,1
    - Dst: PKCS12_pbe_crypt
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:476,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:476,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:482,1
    - Dst: new_EMBEDDED
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:485,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:487,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:493,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:494,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 496
    functionName: try_decode_PKCS8Encrypted
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - file_get_pass
    - d2i_X509_SIG
    - BUF_MEM_new
    - new_EMBEDDED
    - PKCS12_pbe_crypt
    - X509_SIG_free
    - ATTICerr
    - X509_SIG_get0
    - strlen
    - strcmp
    - BUF_MEM_free
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PKCS8Encrypted(const char *pem_name,\n
      \                                                 const char *pem_header,\n
      \                                                 const unsigned char *blob,\n
      \                                                 size_t len, void **pctx,\n
      \                                                 int *matchcount,\n                                                  const
      UI_METHOD *ui_method,\n                                                  void
      *ui_data,\n                                                  const char *uri,\n
      \                                                 OSSL_LIB_CTX *libctx,\n                                                  const
      char *propq)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:523,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:525,1
    - Dst: EVP_PKCS82PKEY_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:529,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:530,1
    - Dst: check_suffix
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:535,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:536,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:538,1
    - Dst: d2i_PrivateKey_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:541,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:548,1
    - Dst: ENGINE_get_pkey_asn1_meths
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:552,1
    - Dst: asn1meths
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:556,1
    - Dst: asn1meths
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:564,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:565,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:571,1
    - Dst: d2i_PrivateKey_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:572,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:577,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:582,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:585,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:589,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:594,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:595,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:600,1
    - Dst: d2i_PrivateKey_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:601,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:605,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:610,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:614,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:622,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:624,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 627
    functionName: try_decode_PrivateKey
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - d2i_PrivateKey_ex
    - check_suffix
    - ENGINE_get_pkey_asn1_meths
    - EVP_PKEY_asn1_get_count
    - OSSL_STORE_INFO_new_PKEY
    - EVP_PKEY_asn1_get0
    - d2i_PKCS8_PRIV_KEY_INFO
    - ERR_set_mark
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY_asn1_find_str
    - EVP_PKEY_free
    - ERR_pop_to_mark
    - strcmp
    - EVP_PKEY_asn1_get0_info
    - ENGINE_get_first
    - asn1meths
    - EVP_PKCS82PKEY_ex
    - ENGINE_get_next
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PrivateKey(const char *pem_name,\n                                              const
      char *pem_header,\n                                              const unsigned
      char *blob,\n                                              size_t len, void
      **pctx,\n                                              int *matchcount,\n                                              const
      UI_METHOD *ui_method,\n                                              void *ui_data,
      const char *uri,\n                                              OSSL_LIB_CTX
      *libctx,\n                                              const char *propq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:651,1
    - Dst: d2i_PUBKEY
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:657,1
    - Dst: OSSL_STORE_INFO_new_PUBKEY
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:659,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 663
    functionName: try_decode_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - d2i_PUBKEY
    - OSSL_STORE_INFO_new_PUBKEY
    - strcmp
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_PUBKEY(const char *pem_name,\n                                          const
      char *pem_header,\n                                          const unsigned
      char *blob,\n                                          size_t len, void **pctx,\n
      \                                         int *matchcount,\n                                          const
      UI_METHOD *ui_method,\n                                          void *ui_data,
      const char *uri,\n                                          OSSL_LIB_CTX *libctx,\n
      \                                         const char *propq)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_suffix
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:691,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:692,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:693,1
    - Dst: d2i_KeyParams
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:696,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:701,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:706,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:707,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:712,1
    - Dst: d2i_KeyParams
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:714,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:718,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:723,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:727,1
    - Dst: OSSL_STORE_INFO_new_PARAMS
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:735,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:737,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 740
    functionName: try_decode_params
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - check_suffix
    - EVP_PKEY_asn1_get_count
    - OSSL_STORE_INFO_new_PARAMS
    - EVP_PKEY_asn1_get0
    - d2i_KeyParams
    - ERR_set_mark
    - EVP_PKEY_asn1_find_str
    - EVP_PKEY_free
    - ERR_pop_to_mark
    - EVP_PKEY_asn1_get0_info
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_params(const char *pem_name,\n                                          const
      char *pem_header,\n                                          const unsigned
      char *blob,\n                                          size_t len, void **pctx,\n
      \                                         int *matchcount,\n                                          const
      UI_METHOD *ui_method,\n                                          void *ui_data,
      const char *uri,\n                                          OSSL_LIB_CTX *libctx,\n
      \                                         const char *propq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:774,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:776,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:777,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:783,1
    - Dst: d2i_X509_AUX
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:787,1
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:788,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:790,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 797
    functionName: try_decode_X509Certificate
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - d2i_X509_AUX
    - X509_free
    - OSSL_STORE_INFO_new_CERT
    - strcmp
    - d2i_X509
    - X509_new_ex
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_X509Certificate(const char *pem_name,\n
      \                                                  const char *pem_header,\n
      \                                                  const unsigned char *blob,\n
      \                                                  size_t len, void **pctx,\n
      \                                                  int *matchcount,\n                                                   const
      UI_METHOD *ui_method,\n                                                   void
      *ui_data,\n                                                   const char *uri,\n
      \                                                  OSSL_LIB_CTX *libctx,\n                                                   const
      char *propq)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:821,1
    - Dst: d2i_X509_CRL
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:827,1
    - Dst: OSSL_STORE_INFO_new_CRL
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:829,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 11
    argNames:
    - pem_name
    - pem_header
    - blob
    - len
    - pctx
    - matchcount
    - ui_method
    - ui_data
    - uri
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - void**
    - int*
    - UI_METHOD*
    - void*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 836
    functionName: try_decode_X509CRL
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_INFO_new_CRL
    - strcmp
    - d2i_X509_CRL
    - X509_CRL_free
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *try_decode_X509CRL(const char *pem_name,\n                                           const
      char *pem_header,\n                                           const unsigned
      char *blob,\n                                           size_t len, void **pctx,\n
      \                                          int *matchcount,\n                                           const
      UI_METHOD *ui_method,\n                                           void *ui_data,
      const char *uri,\n                                           OSSL_LIB_CTX *libctx,\n
      \                                          const char *propq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:917,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:918,1
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:921,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 927
    functionName: OSSL_STORE_LOADER_CTX_free
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_LOADER_CTX_free(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:934,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:934,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:937,1
    - Dst: BIO_buffer_peek
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:938,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 944
    functionName: file_find_type
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - strstr
    - BIO_buffer_peek
    - BIO_f_buffer
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int file_find_type(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:972,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:975,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:977,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:982,1
    - Dst: tolower
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:991,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1010,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1011,1
    - Dst: stat
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1015,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1016,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1029,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1031,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1034,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1036,1
    - Dst: S_ISDIR
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1040,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1042,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1046,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1051,1
    - Dst: file_find_type
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1052,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1053,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1057,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1059,1
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1067,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 6
    argNames:
    - loader
    - uri
    - libctx
    - propq
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER*
    - char*
    - OSSL_LIB_CTX*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 1069
    functionName: file_open_ex
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_CTX_free
    - file_find_type
    - tolower
    - BIO_free_all
    - stat
    - OPENSSL_strdup
    - ERR_raise_data
    - OPENSSL_zalloc
    - S_ISDIR
    - OPENSSL_strncasecmp
    - OPENSSL_DIR_read
    - ERR_add_error_data
    - ATTICerr
    - ERR_raise
    - BIO_new_file
    - strncmp
    linkageType: ''
    returnType: OSSL_STORE_LOADER_CTX
    signature: "OSSL_STORE_LOADER_CTX *file_open_ex\n    (const OSSL_STORE_LOADER
      *loader, const char *uri,\n     OSSL_LIB_CTX *libctx, const char *propq,\n     const
      UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_open_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - loader
    - uri
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1076
    functionName: file_open
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 5
    functionsReached:
    - file_open_ex
    linkageType: ''
    returnType: OSSL_STORE_LOADER_CTX
    signature: "OSSL_STORE_LOADER_CTX *file_open\n    (const OSSL_STORE_LOADER *loader,
      const char *uri,\n     const UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1085,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1086,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1087,1
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1088,1
    - Dst: file_find_type
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1094,1
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - loader
    - bp
    - libctx
    - propq
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER*
    - BIO*
    - OSSL_LIB_CTX*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1103
    functionName: file_attach
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_CTX_free
    - file_find_type
    - OPENSSL_zalloc
    - ATTICerr
    - OPENSSL_strdup
    linkageType: ''
    returnType: OSSL_STORE_LOADER_CTX
    signature: "OSSL_STORE_LOADER_CTX *file_attach\n    (const OSSL_STORE_LOADER *loader,
      BIO *bp,\n     OSSL_LIB_CTX *libctx, const char *propq,\n     const UI_METHOD
      *ui_method, void *ui_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - cmd
    - args
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1133
    functionName: file_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - ATTICerr
    linkageType: ''
    returnType: int
    signature: int file_ctrl(OSSL_STORE_LOADER_CTX *ctx, int cmd, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - expected
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1139
    functionName: file_expect
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_expect(OSSL_STORE_LOADER_CTX *ctx, int expected)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_SEARCH_get_type
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1149,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1156,1
    - Dst: X509_NAME_hash_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1160,1
    - Dst: OSSL_STORE_SEARCH_get0_name
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1160,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1162,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - search
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1170
    functionName: file_find
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - OSSL_STORE_SEARCH_get0_name
    - ATTICerr
    - X509_NAME_hash_ex
    - OSSL_STORE_SEARCH_get_type
    linkageType: ''
    returnType: int
    signature: "int file_find(OSSL_STORE_LOADER_CTX *ctx,\n                     const
      OSSL_STORE_SEARCH *search)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1189,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1190,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1193,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1198,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1205,1
    - Dst: FILE_HANDLER*::try_decode
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1207,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1212,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1213,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1214,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1215,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1217,1
    - Dst: FILE_HANDLER*::destroy_ctx
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1224,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1229,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1230,1
    - Dst: FILE_HANDLER*::destroy_ctx
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1232,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1250,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1254,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1255,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1258,1
    - Dst: get0_EMBEDDED
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1259,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1269,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 8
    argNames:
    - ctx
    - pem_name
    - pem_header
    - data
    - len
    - ui_method
    - ui_data
    - matchcount
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - char*
    - char*
    - unsigned char*
    - size_t
    - UI_METHOD*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1275
    functionName: file_load_try_decode
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - get0_EMBEDDED
    - FILE_HANDLER*::destroy_ctx
    - ERR_set_mark
    - OPENSSL_zalloc
    - ERR_GET_LIB
    - OSSL_STORE_INFO_get_type
    - OPENSSL_free
    - FILE_HANDLER*::try_decode
    - ATTICerr
    - ERR_peek_last_error
    - ERR_pop_to_mark
    - store_info_free
    - BUF_MEM_free
    - ERR_clear_last_mark
    - OSSL_NELEM
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_load_try_decode(OSSL_STORE_LOADER_CTX *ctx,\n
      \                                            const char *pem_name,\n                                             const
      char *pem_header,\n                                             unsigned char
      *data, size_t len,\n                                             const UI_METHOD
      *ui_method,\n                                             void *ui_data, int
      *matchcount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::try_decode
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1286,1
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1299
    functionName: file_load_try_repeat
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::destroy_ctx
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::try_decode
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_load_try_repeat(OSSL_STORE_LOADER_CTX *ctx,\n
      \                                            const UI_METHOD *ui_method,\n                                             void
      *ui_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1304,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pem_data
    - secure
    - num
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1307
    functionName: pem_free_flag
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void pem_free_flag(void *pem_data, int secure, size_t num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1314,1
    - Dst: PEM_read_bio
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1316,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1327,1
    - Dst: PEM_get_EVP_CIPHER_INFO
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1331,1
    - Dst: file_fill_pem_pass_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1332,1
    - Dst: PEM_do_header
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 9
    argNames:
    - bp
    - pem_name
    - pem_header
    - data
    - len
    - ui_method
    - ui_data
    - uri
    - secure
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    - UI_METHOD*
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1340
    functionName: file_read_pem
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_ex
    - PEM_read_bio
    - file_fill_pem_pass_data
    - strlen
    - PEM_do_header
    - PEM_get_EVP_CIPHER_INFO
    linkageType: ''
    returnType: int
    signature: "int file_read_pem(BIO *bp, char **pem_name, char **pem_header,\n                         unsigned
      char **data, long *len,\n                         const UI_METHOD *ui_method,
      void *ui_data,\n                         const char *uri, int secure)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_buffer_peek
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1353,1
    - Dst: ossl_do_blob_header
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1355,1
    - Dst: b2i_PublicKey_bio
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1364,1
    - Dst: b2i_PrivateKey_bio
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1365,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1368,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - bp
    - matchcount
    argTypes:
    - BIO*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1375
    functionName: file_try_read_msblob
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - b2i_PublicKey_bio
    - OSSL_STORE_INFO_new_PKEY
    - EVP_PKEY_free
    - b2i_PrivateKey_bio
    - BIO_buffer_peek
    - ossl_do_blob_header
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *file_try_read_msblob(BIO *bp, int *matchcount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_buffer_peek
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1388,1
    - Dst: ossl_do_PVK_header
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1390,1
    - Dst: file_fill_pem_pass_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1400,1
    - Dst: b2i_PVK_bio
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1402,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1403,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - bp
    - ui_method
    - ui_data
    - uri
    - matchcount
    argTypes:
    - BIO*
    - UI_METHOD*
    - void*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1410
    functionName: file_try_read_PVK
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_INFO_new_PKEY
    - file_fill_pem_pass_data
    - EVP_PKEY_free
    - BIO_buffer_peek
    - ossl_do_PVK_header
    - b2i_PVK_bio
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_try_read_PVK(BIO *bp, const UI_METHOD *ui_method,\n
      \                                         void *ui_data, const char *uri,\n
      \                                         int *matchcount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1416,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - data
    - len
    argTypes:
    - BIO*
    - unsigned char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1424
    functionName: file_read_asn1
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - asn1_d2i_read_bio
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int file_read_asn1(BIO *bp, unsigned char **data, long *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1429,1
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1430,1
    - Dst: ossl_ends_with_dirsep
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1432,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1433,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1433,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1434,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1436,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1438,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1442,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1443,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - name
    - data
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - char*
    - char**
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 1428
        line_start: 1428
        source_file: /src/openssl-3.0.15/engines/e_loader_attic.c
    - condition: (data != NULL)
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/openssl-3.0.15/engines/e_loader_attic.c
    constantsTouched: []
    func_position:
      end: 1447
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1447
    functionName: file_name_to_uri
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - assert
    - OPENSSL_strlcat
    - ossl_ends_with_dirsep
    - OPENSSL_zalloc
    - ATTICerr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int file_name_to_uri(OSSL_STORE_LOADER_CTX *ctx, const char *name,\n
      \                           char **data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1452,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1467,1
    - Dst: isdigit
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1489,1
    - Dst: isdigit
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1491,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1500,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1509
    functionName: file_name_check
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strncasecmp
    - ossl_isdigit
    - isdigit
    - strlen
    linkageType: ''
    returnType: int
    signature: int file_name_check(OSSL_STORE_LOADER_CTX *ctx, const char *name)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1527,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1528,1
    - Dst: file_name_check
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1535,1
    - Dst: file_name_to_uri
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1536,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1545,1
    - Dst: OSSL_STORE_INFO_new_NAME
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1551,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1552,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1553,1
    - Dst: file_eof
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1556,1
    - Dst: file_load_try_repeat
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1561,1
    - Dst: file_eof
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1565,1
    - Dst: file_read_pem
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1576,1
    - Dst: file_try_read_msblob
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1583,1
    - Dst: file_try_read_PVK
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1585,1
    - Dst: file_read_asn1
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1590,1
    - Dst: file_load_try_decode
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1596,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1606,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1612,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1618,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1619,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1621,1
    - Dst: pem_free_flag
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1628,1
    - Dst: pem_free_flag
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1629,1
    - Dst: pem_free_flag
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1630,1
    - Dst: file_eof
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1631,1
    - Dst: file_error
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1631,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1635,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1641,1
    - Dst: store_info_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1642,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 88
    argCount: 3
    argNames:
    - ctx
    - ui_method
    - ui_data
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    - UI_METHOD*
    - void*
    assertStmts:
    - condition: (ctx->_.dir.last_errno != 0)
      pos:
        line_end: 1526
        line_start: 1526
        source_file: /src/openssl-3.0.15/engines/e_loader_attic.c
    constantsTouched: []
    func_position:
      end: 1648
      start: 1513
    functionDepth: 4
    functionLinenumber: 1513
    functionLinenumberEnd: 1648
    functionName: file_load
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - file_read_pem
    - file_try_read_PVK
    - file_read_asn1
    - ATTICerr
    - file_try_read_msblob
    - ossl_assert
    - file_eof
    - ERR_peek_error
    - pem_free_flag
    - file_name_check
    - file_name_to_uri
    - OSSL_STORE_INFO_new_NAME
    - assert
    - OSSL_STORE_INFO_get_type
    - OPENSSL_DIR_read
    - ERR_raise
    - file_load_try_repeat
    - OPENSSL_free
    - ERR_add_error_data
    - file_error
    - store_info_free
    - file_load_try_decode
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: "OSSL_STORE_INFO *file_load(OSSL_STORE_LOADER_CTX *ctx,\n                                  const
      UI_METHOD *ui_method,\n                                  void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1653
    functionName: file_error
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_error(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_CTX*::_::file::last_handler::eof
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1661,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1664
    functionName: file_eof
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_LOADER_CTX*::_::file::last_handler::eof
    - BIO_eof
    linkageType: ''
    returnType: int
    signature: int file_eof(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1670,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1672,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1681,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1685,1
    - Dst: OSSL_STORE_LOADER_CTX_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_LOADER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1689
    functionName: file_close
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 4
    functionsReached:
    - OSSL_STORE_LOADER_CTX_free
    - OPENSSL_DIR_end
    - BIO_free_all
    - BIO_free
    - BIO_pop
    linkageType: ''
    returnType: int
    signature: int file_close(OSSL_STORE_LOADER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1703
    functionName: loader_attic_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int loader_attic_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1709
    functionName: loader_attic_finish
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int loader_attic_finish(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_unregister_loader
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1714,1
    - Dst: ERR_unload_ATTIC_strings
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1719,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1722
    functionName: loader_attic_destroy
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_free
    - ERR_unload_ATTIC_strings
    - OSSL_STORE_unregister_loader
    linkageType: ''
    returnType: int
    signature: int loader_attic_destroy(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_ATTIC_strings
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1728,1
    - Dst: OSSL_STORE_LOADER_new
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1731,1
    - Dst: OSSL_STORE_LOADER_set_open_ex
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1732,1
    - Dst: OSSL_STORE_LOADER_set_open
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1733,1
    - Dst: OSSL_STORE_LOADER_set_attach
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1734,1
    - Dst: OSSL_STORE_LOADER_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1735,1
    - Dst: OSSL_STORE_LOADER_set_expect
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1736,1
    - Dst: OSSL_STORE_LOADER_set_find
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1737,1
    - Dst: OSSL_STORE_LOADER_set_load
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1738,1
    - Dst: OSSL_STORE_LOADER_set_eof
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1739,1
    - Dst: OSSL_STORE_LOADER_set_error
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1740,1
    - Dst: OSSL_STORE_LOADER_set_close
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1741,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1743,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1744,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1745,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1746,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1747,1
    - Dst: OSSL_STORE_register_loader
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1749,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1750,1
    - Dst: ATTICerr
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1752,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1757
    functionName: bind_loader_attic
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - ERR_load_ATTIC_strings
    - OSSL_STORE_LOADER_set_open_ex
    - OSSL_STORE_LOADER_set_attach
    - ATTICerr
    - OSSL_STORE_LOADER_free
    - OSSL_STORE_LOADER_set_eof
    - ENGINE_set_init_function
    - OSSL_STORE_LOADER_set_open
    - ENGINE_set_destroy_function
    - OSSL_STORE_LOADER_new
    - OSSL_STORE_LOADER_set_find
    - OSSL_STORE_LOADER_set_close
    - OSSL_STORE_LOADER_set_expect
    - ENGINE_set_name
    - OSSL_STORE_LOADER_set_load
    - ENGINE_set_finish_function
    - OSSL_STORE_LOADER_set_error
    - OSSL_STORE_register_loader
    - OSSL_STORE_LOADER_set_ctrl
    - ENGINE_set_id
    linkageType: ''
    returnType: int
    signature: int bind_loader_attic(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1765,1
    - Dst: bind_loader_attic
      Src: /src/openssl-3.0.15/engines/e_loader_attic.c:1767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1763
    functionDepth: 2
    functionLinenumber: 1763
    functionLinenumberEnd: 1770
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_loader_attic
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: AFALGerr
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg_err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AFALGerr(f, r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_dasync_err.c:29,1
    - Dst: ERR_load_strings
      Src: /src/openssl-3.0.15/engines/e_dasync_err.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: ERR_load_DASYNC_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_DASYNC_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-3.0.15/engines/e_dasync_err.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: ERR_unload_DASYNC_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_DASYNC_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_dasync_err.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_dasync_err.c:54,1
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/engines/e_dasync_err.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: ERR_DASYNC_error
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_raise
    - ERR_set_debug
    linkageType: ''
    returnType: void
    signature: void ERR_DASYNC_error(int function, int reason, const char *file, int
      line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: dasync_sha1
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *dasync_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: destroy_digests
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 1
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_digests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dasync_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:98,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_dasync.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: dasync_digest_nids
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_type
    - dasync_sha1
    linkageType: ''
    returnType: int
    signature: int dasync_digest_nids(const int **nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: dasync_aes_128_cbc
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *dasync_aes_128_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: dasync_aes_256_ctr
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *dasync_aes_256_ctr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: dasync_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *dasync_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:208,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:209,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: destroy_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_ciphers(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_find
      Src: /src/openssl-3.0.15/engines/e_dasync.c:230,1
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-3.0.15/engines/e_dasync.c:231,1
    - Dst: EVP_PKEY_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:234,1
    - Dst: EVP_PKEY_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:235,1
    - Dst: EVP_PKEY_meth_set_paramgen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:236,1
    - Dst: EVP_PKEY_meth_set_keygen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:238,1
    - Dst: EVP_PKEY_meth_set_encrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:240,1
    - Dst: EVP_PKEY_meth_set_decrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:242,1
    - Dst: EVP_PKEY_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:244,1
    - Dst: ERR_load_DASYNC_strings
      Src: /src/openssl-3.0.15/engines/e_dasync.c:248,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_dasync.c:250,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_dasync.c:251,1
    - Dst: ENGINE_set_pkey_meths
      Src: /src/openssl-3.0.15/engines/e_dasync.c:252,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-3.0.15/engines/e_dasync.c:253,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-3.0.15/engines/e_dasync.c:254,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/engines/e_dasync.c:255,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/engines/e_dasync.c:256,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-3.0.15/engines/e_dasync.c:257,1
    - Dst: DASYNCerr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:258,1
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_dasync.c:266,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:268,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_dasync.c:269,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_dasync.c:270,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_dasync.c:272,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:273,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_dasync.c:274,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_dasync.c:275,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:276,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_dasync.c:280,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_dasync.c:284,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_dasync.c:285,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:290,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_dasync.c:292,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:294,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:296,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:298,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:300,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_dasync.c:304,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_dasync.c:308,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_dasync.c:309,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:314,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_dasync.c:316,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:318,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:320,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:322,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:324,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_dasync.c:328,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_dasync.c:333,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_dasync.c:334,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:340,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_dasync.c:342,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:344,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:346,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:348,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:350,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 37
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 355
    functionName: bind_dasync
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_PKEY_meth_set_encrypt
    - ENGINE_set_ciphers
    - EVP_CIPHER_meth_free
    - DASYNCerr
    - EVP_CIPHER_meth_set_flags
    - EVP_PKEY_meth_find
    - EVP_MD_meth_set_input_blocksize
    - EVP_PKEY_meth_set_init
    - EVP_MD_meth_set_app_datasize
    - ENGINE_set_init_function
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - ENGINE_set_destroy_function
    - EVP_CIPHER_meth_set_init
    - EVP_MD_meth_free
    - EVP_PKEY_meth_new
    - ENGINE_set_pkey_meths
    - EVP_MD_meth_set_final
    - EVP_PKEY_meth_set_ctrl
    - EVP_PKEY_meth_set_cleanup
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_ctrl
    - EVP_PKEY_meth_set_decrypt
    - EVP_CIPHER_meth_new
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - ENGINE_set_name
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_PKEY_meth_set_paramgen
    - ERR_load_DASYNC_strings
    - ENGINE_set_finish_function
    - EVP_MD_meth_set_result_size
    - ENGINE_set_id
    - ENGINE_set_digests
    - EVP_PKEY_meth_set_keygen
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: int
    signature: int bind_dasync(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: destroy_pkey
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void destroy_pkey(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_dasync.c:370,1
    - Dst: bind_dasync
      Src: /src/openssl-3.0.15/engines/e_dasync.c:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 375
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - bind_dasync
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/engines/e_dasync.c:383,1
    - Dst: bind_dasync
      Src: /src/openssl-3.0.15/engines/e_dasync.c:386,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 391
    functionName: engine_dasync
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - bind_dasync
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_dasync(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_dasync
      Src: /src/openssl-3.0.15/engines/e_dasync.c:395,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_dasync.c:398,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/engines/e_dasync.c:399,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:404,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_dasync.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 411
    functionName: engine_load_dasync_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - engine_dasync
    - ERR_set_mark
    - ERR_pop_to_mark
    linkageType: ''
    returnType: void
    signature: void engine_load_dasync_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: dasync_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dasync_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: dasync_finish
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dasync_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_digests
      Src: /src/openssl-3.0.15/engines/e_dasync.c:427,1
    - Dst: destroy_ciphers
      Src: /src/openssl-3.0.15/engines/e_dasync.c:428,1
    - Dst: destroy_pkey
      Src: /src/openssl-3.0.15/engines/e_dasync.c:429,1
    - Dst: ERR_unload_DASYNC_strings
      Src: /src/openssl-3.0.15/engines/e_dasync.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: dasync_destroy
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - destroy_digests
    - ERR_unload_DASYNC_strings
    - destroy_pkey
    - destroy_ciphers
    linkageType: ''
    returnType: int
    signature: int dasync_destroy(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - pmeth
    - pnids
    - nid
    argTypes:
    - ENGINE*
    - EVP_PKEY_METHOD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 451
    functionName: dasync_pkey
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dasync_pkey(ENGINE *e, EVP_PKEY_METHOD **pmeth,\n                       const
      int **pnids, int nid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dasync_digest_nids
      Src: /src/openssl-3.0.15/engines/e_dasync.c:459,1
    - Dst: dasync_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 472
    functionName: dasync_digests
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_digest_nids
    - dasync_sha1
    linkageType: ''
    returnType: int
    signature: "int dasync_digests(ENGINE *e, const EVP_MD **digest,\n                          const
      int **nids, int nid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dasync_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:487,1
    - Dst: dasync_aes_256_ctr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:490,1
    - Dst: dasync_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 501
    functionName: dasync_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_aes_256_ctr
    - dasync_aes_128_cbc_hmac_sha1
    - dasync_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: "int dasync_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                                   const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/openssl-3.0.15/engines/e_dasync.c:508,1
    - Dst: CloseHandle
      Src: /src/openssl-3.0.15/engines/e_dasync.c:509,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_dasync.c:511,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_dasync.c:512,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - readfd
    - pvwritefd
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 515
    functionName: wait_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - OPENSSL_free
    - close
    linkageType: ''
    returnType: void
    signature: "void wait_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,\n                         OSSL_ASYNC_FD
      readfd, void *pvwritefd)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-3.0.15/engines/e_dasync.c:533,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openssl-3.0.15/engines/e_dasync.c:536,1
    - Dst: ASYNC_WAIT_CTX_get_callback
      Src: /src/openssl-3.0.15/engines/e_dasync.c:538,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-3.0.15/engines/e_dasync.c:545,1
    - Dst: ASYNC_WAIT_CTX_get_fd
      Src: /src/openssl-3.0.15/engines/e_dasync.c:550,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:554,1
    - Dst: CreatePipe
      Src: /src/openssl-3.0.15/engines/e_dasync.c:558,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:559,1
    - Dst: pipe
      Src: /src/openssl-3.0.15/engines/e_dasync.c:563,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:564,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openssl-3.0.15/engines/e_dasync.c:570,1
    - Dst: wait_cleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:572,1
    - Dst: WriteFile
      Src: /src/openssl-3.0.15/engines/e_dasync.c:582,1
    - Dst: write
      Src: /src/openssl-3.0.15/engines/e_dasync.c:584,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-3.0.15/engines/e_dasync.c:589,1
    - Dst: ReadFile
      Src: /src/openssl-3.0.15/engines/e_dasync.c:593,1
    - Dst: read
      Src: /src/openssl-3.0.15/engines/e_dasync.c:595,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 598
    functionName: dummy_pause_job
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - ASYNC_WAIT_CTX_get_callback
    - write
    - OPENSSL_malloc
    - pipe
    - read
    - ASYNC_get_current_job
    - OPENSSL_free
    - WriteFile
    - ASYNC_WAIT_CTX_set_wait_fd
    - wait_cleanup
    - ReadFile
    - CreatePipe
    - ASYNC_get_wait_ctx
    - ASYNC_WAIT_CTX_get_fd
    linkageType: ''
    returnType: void
    signature: void dummy_pause_job(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-3.0.15/engines/e_dasync.c:606,1
    - Dst: EVP_MD_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:608,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 609
    functionName: dasync_sha1_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - EVP_MD_meth_get_init
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: int dasync_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-3.0.15/engines/e_dasync.c:614,1
    - Dst: EVP_MD_meth_get_update
      Src: /src/openssl-3.0.15/engines/e_dasync.c:616,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 617
    functionName: dasync_sha1_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - EVP_sha1
    - EVP_MD_meth_get_update
    linkageType: ''
    returnType: int
    signature: "int dasync_sha1_update(EVP_MD_CTX *ctx, const void *data,\n                             size_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dummy_pause_job
      Src: /src/openssl-3.0.15/engines/e_dasync.c:621,1
    - Dst: EVP_MD_meth_get_final
      Src: /src/openssl-3.0.15/engines/e_dasync.c:623,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 624
    functionName: dasync_sha1_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dummy_pause_job
    - EVP_MD_meth_get_final
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: int dasync_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:634,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:642,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:643,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_dasync.c:647,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:670,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:671,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:671,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:673,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_dasync.c:687,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_dasync.c:693,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 6
    argNames:
    - ctx
    - type
    - arg
    - ptr
    - aeadcapable
    - ciph
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    - int
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 712
    functionName: dasync_cipher_ctrl_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_cipher_data
    - memcpy
    - OPENSSL_malloc
    - EVP_CIPHER_impl_ctx_size
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_meth_get_ctrl
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_ctrl_helper(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                    void *ptr, int aeadcapable,\n                                     const
      EVP_CIPHER *ciph)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:721,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:724,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:725,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:726,1
    - Dst: DASYNCerr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:728,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:737,1
    - Dst: EVP_CIPHER_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:738,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:739,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 742
    functionName: dasync_cipher_init_key_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_cipher_data
    - DASYNCerr
    - EVP_CIPHER_meth_get_init
    - EVP_CIPHER_impl_ctx_size
    - OPENSSL_zalloc
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int 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: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:751,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:754,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:759,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-3.0.15/engines/e_dasync.c:764,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:771,1
    - Dst: EVP_CIPHER_meth_get_do_cipher
      Src: /src/openssl-3.0.15/engines/e_dasync.c:776,1
    - Dst: EVP_CIPHER_CTX_set_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:783,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 785
    functionName: dasync_cipher_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_cipher_data
    - EVP_CIPHER_meth_get_ctrl
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_meth_get_do_cipher
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_helper(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl,\n                                const
      EVP_CIPHER *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_dasync.c:791,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/engines/e_dasync.c:793,1
    - Dst: EVP_CIPHER_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_dasync.c:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cipher
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 797
    functionName: dasync_cipher_cleanup_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_impl_ctx_size
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int dasync_cipher_cleanup_helper(EVP_CIPHER_CTX *ctx,\n                                        const
      EVP_CIPHER *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:806,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: dasync_aes128_cbc_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_ctrl_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                 void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:812,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: dasync_aes128_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_init_key_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                             const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:818,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: dasync_aes128_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:823,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_dasync.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: dasync_aes128_cbc_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - dasync_cipher_cleanup_helper
    linkageType: ''
    returnType: int
    signature: int dasync_aes128_cbc_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:829,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 830
    functionName: dasync_aes256_ctr_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_ctr
    - dasync_cipher_ctrl_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes256_ctr_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                 void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:835,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: dasync_aes256_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_ctr
    - dasync_cipher_init_key_helper
    linkageType: ''
    returnType: int
    signature: "int dasync_aes256_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                             const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:841,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 842
    functionName: dasync_aes256_ctr_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_helper
    - EVP_aes_256_ctr
    linkageType: ''
    returnType: int
    signature: "int dasync_aes256_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:846,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openssl-3.0.15/engines/e_dasync.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 847
    functionName: dasync_aes256_ctr_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_ctr
    - dasync_cipher_cleanup_helper
    linkageType: ''
    returnType: int
    signature: int dasync_aes256_ctr_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_ctrl_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:857,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 858
    functionName: dasync_aes128_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_ctrl_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type,\n
      \                                            int arg, void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_init_key_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:869,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 871
    functionName: dasync_aes128_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_init_key_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:878,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 879
    functionName: dasync_aes128_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: "int dasync_aes128_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx,\n                                               unsigned
      char *out,\n                                               const unsigned char
      *in,\n                                               size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dasync_cipher_cleanup_helper
      Src: /src/openssl-3.0.15/engines/e_dasync.c:887,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/engines/e_dasync.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 888
    functionName: dasync_aes128_cbc_hmac_sha1_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - dasync_cipher_cleanup_helper
    - EVP_aes_128_cbc_hmac_sha1
    linkageType: ''
    returnType: int
    signature: int dasync_aes128_cbc_hmac_sha1_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:899,1
    - Dst: pinit
      Src: /src/openssl-3.0.15/engines/e_dasync.c:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 901
    functionName: dasync_rsa_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - pinit
    - EVP_PKEY_meth_get_init
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_cleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:908,1
    - Dst: pcleanup
      Src: /src/openssl-3.0.15/engines/e_dasync.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 910
    functionName: dasync_rsa_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - pcleanup
    - EVP_PKEY_meth_get_cleanup
    linkageType: ''
    returnType: void
    signature: void dasync_rsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_paramgen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:917,1
    - Dst: pparamgen_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 919
    functionName: dasync_rsa_paramgen_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_paramgen
    - pparamgen_init
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_paramgen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_paramgen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:926,1
    - Dst: pparamgen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 928
    functionName: dasync_rsa_paramgen
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_paramgen
    - pparamgen
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_keygen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:935,1
    - Dst: pkeygen_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 937
    functionName: dasync_rsa_keygen_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_keygen
    - pkeygen_init
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_keygen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_keygen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:944,1
    - Dst: pkeygen
      Src: /src/openssl-3.0.15/engines/e_dasync.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 946
    functionName: dasync_rsa_keygen
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_keygen
    - pkeygen
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_encrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:953,1
    - Dst: pencrypt_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 955
    functionName: dasync_rsa_encrypt_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - pencrypt_init
    - EVP_PKEY_meth_get_encrypt
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_encrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_encrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:966,1
    - Dst: pencryptfn
      Src: /src/openssl-3.0.15/engines/e_dasync.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 968
    functionName: dasync_rsa_encrypt
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - pencryptfn
    - EVP_PKEY_meth_get_encrypt
    linkageType: ''
    returnType: int
    signature: "int dasync_rsa_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out,\n                              size_t
      *outlen, const unsigned char *in,\n                              size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_decrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:975,1
    - Dst: pdecrypt_init
      Src: /src/openssl-3.0.15/engines/e_dasync.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: dasync_rsa_decrypt_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_decrypt
    - pdecrypt_init
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_decrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_decrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:988,1
    - Dst: pdecrypt
      Src: /src/openssl-3.0.15/engines/e_dasync.c:989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 990
    functionName: dasync_rsa_decrypt
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_decrypt
    - pdecrypt
    linkageType: ''
    returnType: int
    signature: "int dasync_rsa_decrypt(EVP_PKEY_CTX *ctx, unsigned char *out,\n                              size_t
      *outlen, const unsigned char *in,\n                              size_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:997,1
    - Dst: pctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 999
    functionName: dasync_rsa_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - pctrl
    - EVP_PKEY_meth_get_ctrl
    linkageType: ''
    returnType: int
    signature: int dasync_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_ctrl
      Src: /src/openssl-3.0.15/engines/e_dasync.c:1008,1
    - Dst: pctrl_str
      Src: /src/openssl-3.0.15/engines/e_dasync.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1010
    functionName: dasync_rsa_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync.c
    functionUses: 0
    functionsReached:
    - pctrl_str
    - EVP_PKEY_meth_get_ctrl
    linkageType: ''
    returnType: int
    signature: "int dasync_rsa_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,\n                               const
      char *value)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:293,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:296,1
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/engines/e_capi.c:297,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:299,1
    - Dst: capi_list_providers
      Src: /src/openssl-3.0.15/engines/e_capi.c:304,1
    - Dst: capi_list_certs
      Src: /src/openssl-3.0.15/engines/e_capi.c:308,1
    - Dst: capi_list_certs
      Src: /src/openssl-3.0.15/engines/e_capi.c:312,1
    - Dst: capi_list_containers
      Src: /src/openssl-3.0.15/engines/e_capi.c:316,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_capi.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:322,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:324,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:326,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:339,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:344,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_capi.c:348,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:351,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:353,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:360,1
    - Dst: capi_ctx_set_provname_idx
      Src: /src/openssl-3.0.15/engines/e_capi.c:364,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:373,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:374,1
    - Dst: capi_ctx_set_provname
      Src: /src/openssl-3.0.15/engines/e_capi.c:381,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:389,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:393,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 89
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 396
    functionName: capi_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_list_certs
    - capi_list_providers
    - capi_ctx_set_provname_idx
    - BIO_free
    - CAPI_trace
    - OPENSSL_free
    - capi_list_containers
    - ENGINE_get_ex_data
    - BIO_new_fp
    - OPENSSL_strdup
    - capi_ctx_set_provname
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: int capi_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_new_index
      Src: /src/openssl-3.0.15/engines/e_capi.c:419,1
    - Dst: X509_get_ex_new_index
      Src: /src/openssl-3.0.15/engines/e_capi.c:423,1
    - Dst: RSA_get_ex_new_index
      Src: /src/openssl-3.0.15/engines/e_capi.c:426,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-3.0.15/engines/e_capi.c:427,1
    - Dst: RSA_meth_set_pub_enc
      Src: /src/openssl-3.0.15/engines/e_capi.c:428,1
    - Dst: RSA_meth_get_pub_enc
      Src: /src/openssl-3.0.15/engines/e_capi.c:429,1
    - Dst: RSA_meth_set_pub_dec
      Src: /src/openssl-3.0.15/engines/e_capi.c:430,1
    - Dst: RSA_meth_get_pub_dec
      Src: /src/openssl-3.0.15/engines/e_capi.c:431,1
    - Dst: RSA_meth_set_priv_enc
      Src: /src/openssl-3.0.15/engines/e_capi.c:432,1
    - Dst: RSA_meth_set_priv_dec
      Src: /src/openssl-3.0.15/engines/e_capi.c:433,1
    - Dst: RSA_meth_set_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:434,1
    - Dst: RSA_meth_get_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:435,1
    - Dst: RSA_meth_set_bn_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:436,1
    - Dst: RSA_meth_get_bn_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:437,1
    - Dst: RSA_meth_set_finish
      Src: /src/openssl-3.0.15/engines/e_capi.c:438,1
    - Dst: RSA_meth_set_sign
      Src: /src/openssl-3.0.15/engines/e_capi.c:439,1
    - Dst: DSA_get_ex_new_index
      Src: /src/openssl-3.0.15/engines/e_capi.c:445,1
    - Dst: DSA_OpenSSL
      Src: /src/openssl-3.0.15/engines/e_capi.c:446,1
    - Dst: DSA_meth_set_sign
      Src: /src/openssl-3.0.15/engines/e_capi.c:447,1
    - Dst: DSA_meth_set_verify
      Src: /src/openssl-3.0.15/engines/e_capi.c:448,1
    - Dst: DSA_meth_get_verify
      Src: /src/openssl-3.0.15/engines/e_capi.c:449,1
    - Dst: DSA_meth_set_finish
      Src: /src/openssl-3.0.15/engines/e_capi.c:450,1
    - Dst: DSA_meth_set_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:451,1
    - Dst: DSA_meth_get_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:452,1
    - Dst: DSA_meth_set_bn_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:453,1
    - Dst: DSA_meth_get_bn_mod_exp
      Src: /src/openssl-3.0.15/engines/e_capi.c:454,1
    - Dst: capi_ctx_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:460,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:464,1
    - Dst: LoadLibrary
      Src: /src/openssl-3.0.15/engines/e_capi.c:468,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/engines/e_capi.c:468,1
    - Dst: GetModuleHandle
      Src: /src/openssl-3.0.15/engines/e_capi.c:469,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/engines/e_capi.c:469,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/engines/e_capi.c:472,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/engines/e_capi.c:476,1
    - Dst: OPENSSL_isservice
      Src: /src/openssl-3.0.15/engines/e_capi.c:477,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-3.0.15/engines/e_capi.c:483,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:486,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:492,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 42
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 496
    functionName: capi_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_meth_get_mod_exp
    - RSA_meth_get_pub_dec
    - RSA_meth_set_pub_enc
    - DSA_meth_get_bn_mod_exp
    - RSA_meth_set_bn_mod_exp
    - OPENSSL_isservice
    - DSA_meth_set_finish
    - DSA_meth_set_verify
    - RSA_meth_set_mod_exp
    - ENGINE_get_ex_new_index
    - DSA_meth_set_sign
    - CryptAcquireContextW
    - DSA_OpenSSL
    - RSA_meth_get_pub_enc
    - DSA_get_ex_new_index
    - DSA_meth_get_verify
    - CAPIerr
    - LoadLibrary
    - TEXT
    - RSA_get_ex_new_index
    - RSA_meth_set_priv_dec
    - ENGINE_set_ex_data
    - capi_ctx_new
    - DSA_meth_get_mod_exp
    - GetProcAddress
    - RSA_meth_set_sign
    - RSA_meth_set_pub_dec
    - X509_get_ex_new_index
    - DSA_meth_set_bn_mod_exp
    - CryptReleaseContext
    - RSA_meth_get_bn_mod_exp
    - RSA_meth_set_priv_enc
    - DSA_meth_set_mod_exp
    - RSA_meth_set_finish
    - RSA_PKCS1_OpenSSL
    - GetModuleHandle
    linkageType: ''
    returnType: int
    signature: int capi_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:500,1
    - Dst: DSA_meth_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:503,1
    - Dst: ERR_unload_CAPI_strings
      Src: /src/openssl-3.0.15/engines/e_capi.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: capi_destroy
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ERR_unload_CAPI_strings
    - DSA_meth_free
    - RSA_meth_free
    linkageType: ''
    returnType: int
    signature: int capi_destroy(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:513,1
    - Dst: capi_ctx_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:514,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 517
    functionName: capi_finish
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_ctx_free
    - ENGINE_set_ex_data
    - ENGINE_get_ex_data
    linkageType: ''
    returnType: int
    signature: int capi_finish(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA_meth_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:535,1
    - Dst: DSA_meth_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:539,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_capi.c:543,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_capi.c:544,1
    - Dst: ENGINE_set_flags
      Src: /src/openssl-3.0.15/engines/e_capi.c:545,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/engines/e_capi.c:546,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-3.0.15/engines/e_capi.c:547,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/engines/e_capi.c:548,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-3.0.15/engines/e_capi.c:549,1
    - Dst: ENGINE_set_DSA
      Src: /src/openssl-3.0.15/engines/e_capi.c:551,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openssl-3.0.15/engines/e_capi.c:553,1
    - Dst: ENGINE_set_load_ssl_client_cert_function
      Src: /src/openssl-3.0.15/engines/e_capi.c:554,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openssl-3.0.15/engines/e_capi.c:556,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openssl-3.0.15/engines/e_capi.c:557,1
    - Dst: ERR_load_CAPI_strings
      Src: /src/openssl-3.0.15/engines/e_capi.c:559,1
    - Dst: RSA_meth_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:563,1
    - Dst: DSA_meth_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 570
    functionName: bind_capi
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_finish_function
    - DSA_meth_new
    - ERR_load_CAPI_strings
    - ENGINE_set_init_function
    - ENGINE_set_RSA
    - ENGINE_set_destroy_function
    - ENGINE_set_cmd_defns
    - ENGINE_set_flags
    - RSA_meth_new
    - ENGINE_set_id
    - ENGINE_set_DSA
    - ENGINE_set_load_ssl_client_cert_function
    - ENGINE_set_name
    - ENGINE_set_load_privkey_function
    - ENGINE_set_ctrl_function
    - DSA_meth_free
    - RSA_meth_free
    linkageType: ''
    returnType: int
    signature: int bind_capi(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_capi.c:575,1
    - Dst: bind_capi
      Src: /src/openssl-3.0.15/engines/e_capi.c:577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bind_capi
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:587,1
    - Dst: bind_capi
      Src: /src/openssl-3.0.15/engines/e_capi.c:590,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 595
    functionName: engine_capi
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - ENGINE_new
    - bind_capi
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_capi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_capi
      Src: /src/openssl-3.0.15/engines/e_capi.c:600,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_capi.c:603,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/engines/e_capi.c:604,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:609,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_capi.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 616
    functionName: engine_load_capi_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_set_mark
    - ERR_pop_to_mark
    - engine_capi
    linkageType: ''
    returnType: void
    signature: void engine_load_capi_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/engines/e_capi.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bn
    - bin
    - binlen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 637
    functionName: lend_tobn
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: int
    signature: int lend_tobn(BIGNUM *bn, unsigned char *bin, int binlen)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CryptExportKey
      Src: /src/openssl-3.0.15/engines/e_capi.c:649,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:650,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:651,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:655,1
    - Dst: CryptExportKey
      Src: /src/openssl-3.0.15/engines/e_capi.c:660,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:661,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:662,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:668,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:679,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:680,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:682,1
    - Dst: RSA_new_method
      Src: /src/openssl-3.0.15/engines/e_capi.c:686,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:690,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:691,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:694,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:695,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:699,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/engines/e_capi.c:701,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:705,1
    - Dst: RSA_set_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:708,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:710,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/engines/e_capi.c:713,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:725,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:726,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:728,1
    - Dst: DSA_new_method
      Src: /src/openssl-3.0.15/engines/e_capi.c:733,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:736,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:737,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:738,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:739,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:741,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:742,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:743,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:744,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/engines/e_capi.c:747,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:748,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:749,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:752,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:755,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:758,1
    - Dst: DSA_set_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:762,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:764,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/engines/e_capi.c:767,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:772,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:773,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:775,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:780,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:782,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:784,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:791,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 130
    argCount: 2
    argNames:
    - eng
    - key
    argTypes:
    - ENGINE*
    - CAPI_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 794
    functionName: capi_get_pkey
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_set_ex_data
    - BIO_snprintf
    - EVP_PKEY_assign_RSA
    - DSA_new_method
    - RSA_new_method
    - CryptExportKey
    - BN_set_word
    - RSA_set0_key
    - CAPIerr
    - BN_new
    - DSA_set0_key
    - capi_addlasterror
    - BN_free
    - OPENSSL_free
    - ERR_add_error_data
    - EVP_PKEY_new
    - lend_tobn
    - OPENSSL_malloc
    - DSA_set0_pqg
    - DSA_set_ex_data
    - EVP_PKEY_assign_DSA
    - RSA_free
    - DSA_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *capi_get_pkey(ENGINE *eng, CAPI_KEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:802,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:805,1
    - Dst: capi_find_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:809,1
    - Dst: capi_get_pkey
      Src: /src/openssl-3.0.15/engines/e_capi.c:814,1
    - Dst: capi_free_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 796
    functionDepth: 3
    functionLinenumber: 796
    functionLinenumberEnd: 820
    functionName: capi_load_privkey
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_get_pkey
    - capi_free_key
    - capi_find_key
    - ENGINE_get_ex_data
    - CAPIerr
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *capi_load_privkey(ENGINE *eng, const char *key_id,\n                                   UI_METHOD
      *ui_method, void *callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 829
    functionName: capi_rsa_priv_enc
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "int capi_rsa_priv_enc(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:842,1
    - Dst: RSA_get0_engine
      Src: /src/openssl-3.0.15/engines/e_capi.c:842,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:844,1
    - Dst: RSA_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:846,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:848,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:879,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:880,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:881,1
    - Dst: CryptCreateHash
      Src: /src/openssl-3.0.15/engines/e_capi.c:887,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:888,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:889,1
    - Dst: CryptSetHashParam
      Src: /src/openssl-3.0.15/engines/e_capi.c:894,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:895,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:896,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/engines/e_capi.c:901,1
    - Dst: CryptSignHash
      Src: /src/openssl-3.0.15/engines/e_capi.c:902,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:903,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:904,1
    - Dst: CryptDestroyHash
      Src: /src/openssl-3.0.15/engines/e_capi.c:921,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 924
    functionName: capi_rsa_sign
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CryptSignHash
    - CryptSetHashParam
    - RSA_get_ex_data
    - BIO_snprintf
    - capi_addlasterror
    - CAPI_trace
    - CryptCreateHash
    - ERR_add_error_data
    - RSA_get0_engine
    - CryptDestroyHash
    - ENGINE_get_ex_data
    - RSA_size
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "int capi_rsa_sign(int dtype, const unsigned char *m, unsigned int
      m_len,\n                  unsigned char *sigret, unsigned int *siglen, const
      RSA *rsa)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:939,1
    - Dst: RSA_get0_engine
      Src: /src/openssl-3.0.15/engines/e_capi.c:939,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:941,1
    - Dst: RSA_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:943,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:945,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:961,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:962,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:963,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:969,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:970,1
    - Dst: CryptDecrypt
      Src: /src/openssl-3.0.15/engines/e_capi.c:978,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:979,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:980,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/engines/e_capi.c:981,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:982,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_capi.c:985,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/engines/e_capi.c:987,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:988,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 991
    functionName: capi_rsa_priv_dec
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - RSA_get_ex_data
    - BIO_snprintf
    - capi_addlasterror
    - OPENSSL_cleanse
    - CAPI_trace
    - OPENSSL_free
    - ERR_add_error_data
    - RSA_get0_engine
    - ENGINE_get_ex_data
    - CryptDecrypt
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "int capi_rsa_priv_dec(int flen, const unsigned char *from,\n                      unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:996,1
    - Dst: capi_free_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:997,1
    - Dst: RSA_set_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1000
    functionName: capi_rsa_free
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - RSA_get_ex_data
    - RSA_set_ex_data
    - capi_free_key
    linkageType: ''
    returnType: int
    signature: int capi_rsa_free(RSA *rsa)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:1015,1
    - Dst: DSA_get0_engine
      Src: /src/openssl-3.0.15/engines/e_capi.c:1015,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1017,1
    - Dst: DSA_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:1019,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1022,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1027,1
    - Dst: CryptCreateHash
      Src: /src/openssl-3.0.15/engines/e_capi.c:1032,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1033,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1034,1
    - Dst: CryptSetHashParam
      Src: /src/openssl-3.0.15/engines/e_capi.c:1039,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1040,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1041,1
    - Dst: CryptSignHash
      Src: /src/openssl-3.0.15/engines/e_capi.c:1047,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1048,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1049,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:1052,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:1052,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:1055,1
    - Dst: lend_tobn
      Src: /src/openssl-3.0.15/engines/e_capi.c:1056,1
    - Dst: DSA_SIG_new
      Src: /src/openssl-3.0.15/engines/e_capi.c:1057,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1058,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1059,1
    - Dst: DSA_SIG_set0
      Src: /src/openssl-3.0.15/engines/e_capi.c:1062,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/engines/e_capi.c:1068,1
    - Dst: CryptDestroyHash
      Src: /src/openssl-3.0.15/engines/e_capi.c:1069,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - digest
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1071
    functionName: capi_dsa_do_sign
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CryptSignHash
    - BN_new
    - CryptSetHashParam
    - DSA_SIG_new
    - DSA_get0_engine
    - capi_addlasterror
    - OPENSSL_cleanse
    - CAPI_trace
    - CryptCreateHash
    - BN_free
    - CryptDestroyHash
    - DSA_SIG_set0
    - ENGINE_get_ex_data
    - DSA_get_ex_data
    - lend_tobn
    - CAPIerr
    linkageType: ''
    returnType: DSA_SIG
    signature: "DSA_SIG *capi_dsa_do_sign(const unsigned char *digest, int dlen,\n
      \                                DSA *dsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:1076,1
    - Dst: capi_free_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:1077,1
    - Dst: DSA_set_ex_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1080
    functionName: capi_dsa_free
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - DSA_set_ex_data
    - DSA_get_ex_data
    - capi_free_key
    linkageType: ''
    returnType: int
    signature: int capi_dsa_free(DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/engines/e_capi.c:1090,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1092,1
    - Dst: BIO_vprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1095,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - level
    - format
    - argptr
    argTypes:
    - CAPI_CTX*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1097
    functionName: capi_vtrace
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - BIO_free
    - CAPIerr
    - BIO_vprintf
    linkageType: ''
    returnType: void
    signature: "void capi_vtrace(CAPI_CTX *ctx, int level, char *format,\n                        va_list
      argptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/engines/e_capi.c:1102,1
    - Dst: capi_vtrace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1103,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/engines/e_capi.c:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - format
    argTypes:
    - CAPI_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1105
    functionName: CAPI_trace
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 4
    functionsReached:
    - capi_vtrace
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void CAPI_trace(CAPI_CTX *ctx, char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: capi_adderror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1109,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/engines/e_capi.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: capi_addlasterror
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 4
    functionsReached:
    - GetLastError
    - capi_adderror
    linkageType: ''
    returnType: void
    signature: void capi_addlasterror(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1115,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/engines/e_capi.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1117
    functionName: capi_adderror
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - ERR_add_error_data
    linkageType: ''
    returnType: void
    signature: void capi_adderror(DWORD err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/openssl-3.0.15/engines/e_capi.c:1128,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1131,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/engines/e_capi.c:1136,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1138,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1141,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1143,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/engines/e_capi.c:1146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1147,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - wstr
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1152
    functionName: wide_to_asc
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - wcslen
    - OPENSSL_malloc
    - WideCharToMultiByte
    - OPENSSL_free
    - CAPIerr
    linkageType: ''
    returnType: char
    signature: char *wide_to_asc(LPCWSTR wstr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1159,1
    - Dst: CryptEnumProviders
      Src: /src/openssl-3.0.15/engines/e_capi.c:1160,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/engines/e_capi.c:1161,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1164,1
    - Dst: capi_adderror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1165,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1168,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1170,1
    - Dst: CryptEnumProviders
      Src: /src/openssl-3.0.15/engines/e_capi.c:1173,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/engines/e_capi.c:1174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1175,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1178,1
    - Dst: capi_adderror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1179,1
    - Dst: wide_to_asc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1184,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - pname
    - ptype
    - idx
    argTypes:
    - CAPI_CTX*
    - LPSTR*
    - DWORD*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1154
    functionDepth: 3
    functionLinenumber: 1154
    functionLinenumberEnd: 1194
    functionName: capi_get_provname
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CryptEnumProviders
    - OPENSSL_malloc
    - wide_to_asc
    - capi_adderror
    - CAPI_trace
    - OPENSSL_free
    - GetLastError
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "int capi_get_provname(CAPI_CTX *ctx, LPSTR *pname, DWORD *ptype,\n
      \                            DWORD idx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1201,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1202,1
    - Dst: capi_get_provname
      Src: /src/openssl-3.0.15/engines/e_capi.c:1204,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1209,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - CAPI_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1196
    functionDepth: 4
    functionLinenumber: 1196
    functionLinenumberEnd: 1213
    functionName: capi_list_providers
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CAPI_trace
    - OPENSSL_free
    - BIO_printf
    - capi_get_provname
    linkageType: ''
    returnType: int
    signature: int capi_list_providers(CAPI_CTX *ctx, BIO *out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1223,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1226,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/engines/e_capi.c:1228,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1229,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1233,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1234,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-3.0.15/engines/e_capi.c:1238,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1240,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1242,1
    - Dst: CryptGetProvParam
      Src: /src/openssl-3.0.15/engines/e_capi.c:1245,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1247,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1248,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1249,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1252,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1255,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1257,1
    - Dst: CryptGetProvParam
      Src: /src/openssl-3.0.15/engines/e_capi.c:1269,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/engines/e_capi.c:1271,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1274,1
    - Dst: capi_adderror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1275,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1278,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1281,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1284,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1291,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1292,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - CAPI_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1295
    functionName: capi_list_containers
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - MultiByteToWideChar
    - CryptReleaseContext
    - capi_addlasterror
    - OPENSSL_malloc
    - capi_adderror
    - CAPI_trace
    - OPENSSL_free
    - GetLastError
    - CryptGetProvParam
    - BIO_printf
    - alloca
    - CryptAcquireContextW
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: int capi_list_containers(CAPI_CTX *ctx, BIO *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-3.0.15/engines/e_capi.c:1303,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1306,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1308,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-3.0.15/engines/e_capi.c:1311,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1313,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1315,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1297
    functionDepth: 2
    functionLinenumber: 1297
    functionLinenumberEnd: 1320
    functionName: capi_get_prov_info
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - capi_addlasterror
    - CertGetCertificateContextProperty
    - OPENSSL_free
    - CAPIerr
    linkageType: ''
    returnType: CRYPT_KEY_PROV_INFO
    signature: "CRYPT_KEY_PROV_INFO *capi_get_prov_info(CAPI_CTX *ctx,\n                                               PCCERT_CONTEXT
      cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1328,1
    - Dst: wide_to_asc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1331,1
    - Dst: wide_to_asc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1332,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1336,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1337,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1339,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1342,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - out
    - pinfo
    argTypes:
    - CAPI_CTX*
    - BIO*
    - CRYPT_KEY_PROV_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1344
    functionName: capi_dump_prov_info
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_printf
    - wide_to_asc
    linkageType: ''
    returnType: void
    signature: "void capi_dump_prov_info(CAPI_CTX *ctx, BIO *out,\n                                CRYPT_KEY_PROV_INFO
      *pinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1351,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-3.0.15/engines/e_capi.c:1352,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1355,1
    - Dst: CertGetCertificateContextProperty
      Src: /src/openssl-3.0.15/engines/e_capi.c:1358,1
    - Dst: wide_to_asc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1360,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1361,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1364,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1365,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1346
    functionDepth: 3
    functionLinenumber: 1346
    functionLinenumberEnd: 1369
    functionName: capi_cert_get_fname
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - capi_addlasterror
    - CertGetCertificateContextProperty
    - wide_to_asc
    - CAPI_trace
    - OPENSSL_free
    - CAPIerr
    linkageType: ''
    returnType: char
    signature: char *capi_cert_get_fname(CAPI_CTX *ctx, PCCERT_CONTEXT cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: capi_cert_get_fname
      Src: /src/openssl-3.0.15/engines/e_capi.c:1378,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1380,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1381,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1383,1
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/engines/e_capi.c:1388,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1390,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1392,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/engines/e_capi.c:1393,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/engines/e_capi.c:1393,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1394,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/engines/e_capi.c:1395,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/engines/e_capi.c:1395,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1396,1
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/engines/e_capi.c:1399,1
    - Dst: capi_get_prov_info
      Src: /src/openssl-3.0.15/engines/e_capi.c:1403,1
    - Dst: capi_dump_prov_info
      Src: /src/openssl-3.0.15/engines/e_capi.c:1404,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1405,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-3.0.15/engines/e_capi.c:1409,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - out
    - cert
    argTypes:
    - CAPI_CTX*
    - BIO*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1371
    functionDepth: 4
    functionLinenumber: 1371
    functionLinenumberEnd: 1411
    functionName: capi_dump_cert
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_X509
    - X509_free
    - capi_cert_get_fname
    - X509_print_ex
    - capi_get_prov_info
    - OPENSSL_free
    - X509_get_issuer_name
    - d2i_X509
    - X509_NAME_print_ex
    - BIO_printf
    - capi_dump_prov_info
    - X509_get_subject_name
    linkageType: ''
    returnType: void
    signature: void capi_dump_cert(CAPI_CTX *ctx, BIO *out, PCCERT_CONTEXT cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1421,1
    - Dst: CertOpenStore
      Src: /src/openssl-3.0.15/engines/e_capi.c:1423,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1426,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - storename
    argTypes:
    - CAPI_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1413
    functionDepth: 3
    functionLinenumber: 1413
    functionLinenumberEnd: 1430
    functionName: capi_open_store
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - CAPI_trace
    - capi_addlasterror
    - CertOpenStore
    - CAPIerr
    linkageType: ''
    returnType: HCERTSTORE
    signature: HCERTSTORE capi_open_store(CAPI_CTX *ctx, char *storename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1443,1
    - Dst: capi_open_store
      Src: /src/openssl-3.0.15/engines/e_capi.c:1445,1
    - Dst: capi_find_cert
      Src: /src/openssl-3.0.15/engines/e_capi.c:1449,1
    - Dst: capi_dump_cert
      Src: /src/openssl-3.0.15/engines/e_capi.c:1454,1
    - Dst: CertFreeCertificateContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1455,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/openssl-3.0.15/engines/e_capi.c:1458,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/engines/e_capi.c:1461,1
    - Dst: capi_dump_cert
      Src: /src/openssl-3.0.15/engines/e_capi.c:1462,1
    - Dst: CertCloseStore
      Src: /src/openssl-3.0.15/engines/e_capi.c:1466,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - out
    - id
    argTypes:
    - CAPI_CTX*
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1432
    functionDepth: 5
    functionLinenumber: 1432
    functionLinenumberEnd: 1468
    functionName: capi_list_certs
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CertFreeCertificateContext
    - capi_open_store
    - capi_dump_cert
    - CAPI_trace
    - CertCloseStore
    - BIO_printf
    - capi_find_cert
    - CertEnumCertificatesInStore
    linkageType: ''
    returnType: int
    signature: int capi_list_certs(CAPI_CTX *ctx, BIO *out, char *id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CertFindCertificateInStore
      Src: /src/openssl-3.0.15/engines/e_capi.c:1478,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/openssl-3.0.15/engines/e_capi.c:1482,1
    - Dst: capi_cert_get_fname
      Src: /src/openssl-3.0.15/engines/e_capi.c:1485,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_capi.c:1487,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - id
    - hstore
    argTypes:
    - CAPI_CTX*
    - char*
    - HCERTSTORE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1470
    functionDepth: 4
    functionLinenumber: 1470
    functionLinenumberEnd: 1499
    functionName: capi_find_cert
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - capi_cert_get_fname
    - CertFindCertificateInStore
    - OPENSSL_free
    - strcmp
    - CertEnumCertificatesInStore
    linkageType: ''
    returnType: PCCERT_CONTEXT
    signature: "PCCERT_CONTEXT capi_find_cert(CAPI_CTX *ctx, const char *id,\n                                     HCERTSTORE
      hstore)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1506,1
    - Dst: wcscmp
      Src: /src/openssl-3.0.15/engines/e_capi.c:1512,1
    - Dst: wide_to_asc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1521,1
    - Dst: wide_to_asc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1522,1
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1524,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1526,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1527,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-3.0.15/engines/e_capi.c:1531,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1533,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1534,1
    - Dst: CryptGetUserKey
      Src: /src/openssl-3.0.15/engines/e_capi.c:1537,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1538,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1539,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1540,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1548,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - contname
    - provname
    - ptype
    - keyspec
    argTypes:
    - CAPI_CTX*
    - WCHAR*
    - WCHAR*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1501
    functionDepth: 3
    functionLinenumber: 1501
    functionLinenumberEnd: 1550
    functionName: capi_get_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - capi_addlasterror
    - CryptReleaseContext
    - wide_to_asc
    - CAPI_trace
    - OPENSSL_free
    - wcscmp
    - CryptAcquireContextW
    - CAPIerr
    - CryptGetUserKey
    linkageType: ''
    returnType: CAPI_KEY
    signature: "CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const WCHAR *contname,\n                              const
      WCHAR *provname, DWORD ptype,\n                              DWORD keyspec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: capi_get_prov_info
      Src: /src/openssl-3.0.15/engines/e_capi.c:1557,1
    - Dst: capi_get_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:1560,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CAPI_CTX*
    - PCCERT_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1552
    functionDepth: 4
    functionLinenumber: 1552
    functionLinenumberEnd: 1565
    functionName: capi_get_cert_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached:
    - capi_get_prov_info
    - capi_get_key
    - OPENSSL_free
    linkageType: ''
    returnType: CAPI_KEY
    signature: CAPI_KEY *capi_get_cert_key(CAPI_CTX *ctx, PCCERT_CONTEXT cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: capi_open_store
      Src: /src/openssl-3.0.15/engines/e_capi.c:1576,1
    - Dst: capi_find_cert
      Src: /src/openssl-3.0.15/engines/e_capi.c:1579,1
    - Dst: capi_get_cert_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:1581,1
    - Dst: CertFreeCertificateContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1582,1
    - Dst: CertCloseStore
      Src: /src/openssl-3.0.15/engines/e_capi.c:1584,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1592,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/engines/e_capi.c:1593,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1594,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1595,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/engines/e_capi.c:1597,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1598,1
    - Dst: capi_get_key
      Src: /src/openssl-3.0.15/engines/e_capi.c:1600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - CAPI_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1567
    functionDepth: 5
    functionLinenumber: 1567
    functionLinenumberEnd: 1607
    functionName: capi_find_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CertFreeCertificateContext
    - capi_open_store
    - MultiByteToWideChar
    - capi_get_key
    - capi_get_cert_key
    - CertCloseStore
    - alloca
    - capi_find_cert
    linkageType: ''
    returnType: CAPI_KEY
    signature: CAPI_KEY *capi_find_key(CAPI_CTX *ctx, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptDestroyKey
      Src: /src/openssl-3.0.15/engines/e_capi.c:1613,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1614,1
    - Dst: CertFreeCertificateContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1616,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - CAPI_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1618
    functionName: capi_free_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 3
    functionsReached:
    - CryptReleaseContext
    - OPENSSL_free
    - CertFreeCertificateContext
    - CryptDestroyKey
    linkageType: ''
    returnType: void
    signature: void capi_free_key(CAPI_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_capi.c:1624,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1622
    functionDepth: 1
    functionLinenumber: 1622
    functionLinenumberEnd: 1638
    functionName: capi_ctx_new
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CAPIerr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CAPI_CTX
    signature: CAPI_CTX *capi_ctx_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1642,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1645,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1646,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1647,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1648,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CAPI_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1640
    functionDepth: 3
    functionLinenumber: 1640
    functionLinenumberEnd: 1650
    functionName: capi_ctx_free
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - CAPI_trace
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void capi_ctx_free(CAPI_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAPI_trace
      Src: /src/openssl-3.0.15/engines/e_capi.c:1657,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1663,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/engines/e_capi.c:1664,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/engines/e_capi.c:1665,1
    - Dst: CryptAcquireContextW
      Src: /src/openssl-3.0.15/engines/e_capi.c:1667,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1669,1
    - Dst: capi_addlasterror
      Src: /src/openssl-3.0.15/engines/e_capi.c:1671,1
    - Dst: CryptReleaseContext
      Src: /src/openssl-3.0.15/engines/e_capi.c:1674,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/engines/e_capi.c:1676,1
    - Dst: CAPIerr
      Src: /src/openssl-3.0.15/engines/e_capi.c:1678,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - pname
    - type
    - check
    argTypes:
    - CAPI_CTX*
    - LPSTR
    - DWORD
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1652
    functionDepth: 3
    functionLinenumber: 1652
    functionLinenumberEnd: 1685
    functionName: capi_ctx_set_provname
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - MultiByteToWideChar
    - CryptReleaseContext
    - capi_addlasterror
    - OPENSSL_strdup
    - CAPI_trace
    - OPENSSL_free
    - alloca
    - CryptAcquireContextW
    - CAPIerr
    linkageType: ''
    returnType: int
    signature: "int capi_ctx_set_provname(CAPI_CTX *ctx, LPSTR pname, DWORD type,\n
      \                                int check)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: capi_get_provname
      Src: /src/openssl-3.0.15/engines/e_capi.c:1692,1
    - Dst: capi_ctx_set_provname
      Src: /src/openssl-3.0.15/engines/e_capi.c:1694,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_capi.c:1695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - CAPI_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1687
    functionDepth: 4
    functionLinenumber: 1687
    functionLinenumberEnd: 1697
    functionName: capi_ctx_set_provname_idx
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - capi_ctx_set_provname
    - capi_get_provname
    linkageType: ''
    returnType: int
    signature: int capi_ctx_set_provname_idx(CAPI_CTX *ctx, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - id
    - fns
    argTypes:
    - ENGINE*
    - char*
    - dynamic_fns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1918
    functionName: bind_engine
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_EXPORT
    signature: OPENSSL_EXPORT bind_engine(ENGINE *e, const char *id, const dynamic_fns
      *fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1923
    functionDepth: 0
    functionLinenumber: 1923
    functionLinenumberEnd: 1925
    functionName: engine_load_capi_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_load_capi_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: ATTICerr
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic_err.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTICerr(f, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: engine_load_afalg_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_load_afalg_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ALG_IV_LEN
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_IV_LEN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - ctx
    argTypes:
    - unsigned
    - aio_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: io_setup
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline io_setup(unsigned n, aio_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: eventfd
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline eventfd(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - aio_context_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: io_destroy
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline io_destroy(aio_context_t ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - n
    - iocb
    argTypes:
    - aio_context_t
    - long
    - struct iocb**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: io_read
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 7
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline io_read(aio_context_t ctx, long n, struct iocb **iocb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:141,1
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:154,1
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:168,1
    - Dst: syscall
      Src: /src/openssl-3.0.15/engines/e_afalg.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - min
    - max
    - events
    - timeout
    argTypes:
    - aio_context_t
    - long
    - long
    - struct io_event*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 177
    functionName: io_getevents
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline io_getevents(aio_context_t ctx, long min, long max,\n
      \                              struct io_event *events,\n                               struct
      timespec *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - waitfd
    - custom
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: afalg_waitfd_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: "void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,\n
      \                                OSSL_ASYNC_FD waitfd, void *custom)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_get_current_job
      Src: /src/openssl-3.0.15/engines/e_afalg.c:192,1
    - Dst: ASYNC_get_wait_ctx
      Src: /src/openssl-3.0.15/engines/e_afalg.c:194,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:196,1
    - Dst: ASYNC_WAIT_CTX_get_fd
      Src: /src/openssl-3.0.15/engines/e_afalg.c:200,1
    - Dst: eventfd
      Src: /src/openssl-3.0.15/engines/e_afalg.c:207,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:209,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:211,1
    - Dst: ASYNC_WAIT_CTX_set_wait_fd
      Src: /src/openssl-3.0.15/engines/e_afalg.c:215,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:219,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:220,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/engines/e_afalg.c:224,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:225,1
    - Dst: eventfd
      Src: /src/openssl-3.0.15/engines/e_afalg.c:232,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:234,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - aio
    argTypes:
    - afalg_aio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 242
    functionName: afalg_setup_async_event_notification
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - AFALGerr
    - fcntl
    - ASYNC_get_current_job
    - ALG_PERR
    - eventfd
    - close
    - ASYNC_WAIT_CTX_set_wait_fd
    - ASYNC_get_wait_ctx
    - ALG_WARN
    - ASYNC_WAIT_CTX_get_fd
    linkageType: ''
    returnType: int
    signature: int afalg_setup_async_event_notification(afalg_aio *aio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_setup
      Src: /src/openssl-3.0.15/engines/e_afalg.c:250,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:252,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:253,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_afalg.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - aio
    argTypes:
    - afalg_aio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: afalg_init_aio
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - memset
    - AFALGerr
    - io_setup
    - ALG_PERR
    linkageType: ''
    returnType: int
    signature: int afalg_init_aio(afalg_aio *aio)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: afalg_setup_async_event_notification
      Src: /src/openssl-3.0.15/engines/e_afalg.c:280,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_afalg.c:286,1
    - Dst: io_read
      Src: /src/openssl-3.0.15/engines/e_afalg.c:304,1
    - Dst: ALG_PWARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:306,1
    - Dst: ASYNC_pause_job
      Src: /src/openssl-3.0.15/engines/e_afalg.c:312,1
    - Dst: read
      Src: /src/openssl-3.0.15/engines/e_afalg.c:315,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:319,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:322,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_afalg.c:333,1
    - Dst: io_getevents
      Src: /src/openssl-3.0.15/engines/e_afalg.c:337,1
    - Dst: io_read
      Src: /src/openssl-3.0.15/engines/e_afalg.c:350,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:352,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:362,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:371,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:374,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 4
    argNames:
    - aio
    - sfd
    - buf
    - len
    argTypes:
    - afalg_aio*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 381
    functionName: afalg_fin_cipher_aio
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ASYNC_pause_job
    - read
    - io_read
    - ALG_PERR
    - afalg_setup_async_event_notification
    - ALG_PWARN
    - memset
    - ALG_WARN
    - io_getevents
    linkageType: ''
    returnType: int
    signature: "int afalg_fin_cipher_aio(afalg_aio *aio, int sfd, unsigned char *buf,\n
      \                               size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:388,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:389,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/engines/e_afalg.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cmsg
    - op
    argTypes:
    - struct cmsghdr*
    - ALG_OP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: afalg_set_op_sk
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - CMSG_DATA
    - CMSG_LEN
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline afalg_set_op_sk(struct cmsghdr *cmsg,\n                                   const
      ALG_OP_TYPE op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:399,1
    - Dst: ALG_IV_LEN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:399,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/engines/e_afalg.c:400,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - cmsg
    - iv
    - len
    argTypes:
    - struct cmsghdr*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 403
    functionName: afalg_set_iv_sk
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ALG_IV_LEN
    - CMSG_DATA
    - CMSG_LEN
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void afalg_set_iv_sk(struct cmsghdr *cmsg, const unsigned char *iv,\n
      \                           const unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/engines/e_afalg.c:409,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:411,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - actx
    - key
    - klen
    argTypes:
    - afalg_ctx*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: afalg_set_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - AFALGerr
    - ALG_PERR
    - setsockopt
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline afalg_set_key(afalg_ctx *actx, const unsigned char *key,\n
      \                               const int klen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_afalg.c:426,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:428,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:429,1
    - Dst: socket
      Src: /src/openssl-3.0.15/engines/e_afalg.c:431,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:433,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:434,1
    - Dst: bind
      Src: /src/openssl-3.0.15/engines/e_afalg.c:438,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:440,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:441,1
    - Dst: accept
      Src: /src/openssl-3.0.15/engines/e_afalg.c:445,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:447,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:448,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:456,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:458,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - actx
    - ciphertype
    - ciphername
    argTypes:
    - afalg_ctx*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 461
    functionName: afalg_create_sk
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - bind
    - AFALGerr
    - socket
    - close
    - ALG_PERR
    - accept
    - OPENSSL_strlcpy
    - memset
    linkageType: ''
    returnType: int
    signature: "int afalg_create_sk(afalg_ctx *actx, const char *ciphertype,\n                                const
      char *ciphername)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/engines/e_afalg.c:474,1
    - Dst: ALG_IV_LEN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:474,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/engines/e_afalg.c:474,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_afalg.c:476,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_afalg.c:477,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:485,1
    - Dst: afalg_set_op_sk
      Src: /src/openssl-3.0.15/engines/e_afalg.c:486,1
    - Dst: CMSG_NXTHDR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:487,1
    - Dst: afalg_set_iv_sk
      Src: /src/openssl-3.0.15/engines/e_afalg.c:488,1
    - Dst: sendmsg
      Src: /src/openssl-3.0.15/engines/e_afalg.c:508,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:510,1
    - Dst: vmsplice
      Src: /src/openssl-3.0.15/engines/e_afalg.c:519,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:521,1
    - Dst: splice
      Src: /src/openssl-3.0.15/engines/e_afalg.c:525,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:527,1
    - Dst: sendmsg
      Src: /src/openssl-3.0.15/engines/e_afalg.c:535,1
    - Dst: ALG_PERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:537,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:543,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 5
    argNames:
    - actx
    - in
    - inl
    - iv
    - enc
    argTypes:
    - afalg_ctx*
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 550
    functionName: afalg_start_cipher_sk
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - vmsplice
    - ALG_IV_LEN
    - afalg_set_iv_sk
    - ALG_PERR
    - CMSG_SPACE
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - afalg_set_op_sk
    - memset
    - sendmsg
    - ALG_WARN
    - splice
    linkageType: ''
    returnType: int
    signature: "int afalg_start_cipher_sk(afalg_ctx *actx, const unsigned char *in,\n
      \                                size_t inl, const unsigned char *iv,\n                                 unsigned
      int enc)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:561,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/engines/e_afalg.c:565,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:566,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_afalg.c:570,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:572,1
    - Dst: EVP_CIPHER_CTX_get_nid
      Src: /src/openssl-3.0.15/engines/e_afalg.c:576,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:584,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/engines/e_afalg.c:589,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:590,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/engines/e_afalg.c:591,1
    - Dst: afalg_create_sk
      Src: /src/openssl-3.0.15/engines/e_afalg.c:596,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/engines/e_afalg.c:600,1
    - Dst: afalg_set_key
      Src: /src/openssl-3.0.15/engines/e_afalg.c:602,1
    - Dst: afalg_init_aio
      Src: /src/openssl-3.0.15/engines/e_afalg.c:607,1
    - Dst: pipe
      Src: /src/openssl-3.0.15/engines/e_afalg.c:611,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:619,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:620,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 622
    functionName: afalg_cipher_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_create_sk
    - EVP_CIPHER_CTX_get0_cipher
    - pipe
    - close
    - afalg_set_key
    - EVP_CIPHER_CTX_get_key_length
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_get_nid
    - EVP_CIPHER_CTX_get_iv_length
    - afalg_init_aio
    - ALG_WARN
    linkageType: ''
    returnType: int
    signature: "int afalg_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:632,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_afalg.c:637,1
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:639,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_afalg.c:648,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:649,1
    - Dst: afalg_start_cipher_sk
      Src: /src/openssl-3.0.15/engines/e_afalg.c:653,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-3.0.15/engines/e_afalg.c:654,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_afalg.c:655,1
    - Dst: afalg_fin_cipher_aio
      Src: /src/openssl-3.0.15/engines/e_afalg.c:661,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_afalg.c:665,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:666,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_afalg.c:666,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:669,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_afalg.c:669,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 673
    functionName: afalg_do_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - afalg_fin_cipher_aio
    - EVP_CIPHER_CTX_iv
    - afalg_start_cipher_sk
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_is_encrypting
    - ALG_WARN
    linkageType: ''
    returnType: int
    signature: "int afalg_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALG_WARN
      Src: /src/openssl-3.0.15/engines/e_afalg.c:680,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_afalg.c:685,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:689,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:690,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:692,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:693,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:697,1
    - Dst: io_destroy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 701
    functionName: afalg_cipher_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - io_destroy
    - EVP_CIPHER_CTX_get_cipher_data
    - ALG_WARN
    - close
    linkageType: ''
    returnType: int
    signature: int afalg_cipher_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 715
    functionName: get_cipher_handle
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cbc_handles
    signature: cbc_handles *get_cipher_handle(int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_handle
      Src: /src/openssl-3.0.15/engines/e_afalg.c:719,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_afalg.c:725,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_afalg.c:728,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_afalg.c:730,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_afalg.c:733,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_afalg.c:735,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_afalg.c:737,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_afalg.c:739,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_afalg.c:741,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 745
    functionName: afalg_aes_cbc
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - get_cipher_handle
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *afalg_aes_cbc(int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: afalg_aes_cbc
      Src: /src/openssl-3.0.15/engines/e_afalg.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 768
    functionName: afalg_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_aes_cbc
    linkageType: ''
    returnType: int
    signature: "int afalg_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                         const
      int **nids, int nid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_load_AFALG_strings
      Src: /src/openssl-3.0.15/engines/e_afalg.c:774,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_afalg.c:776,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_afalg.c:777,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/engines/e_afalg.c:778,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/engines/e_afalg.c:779,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-3.0.15/engines/e_afalg.c:780,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:781,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_afalg.c:790,1
    - Dst: afalg_aes_cbc
      Src: /src/openssl-3.0.15/engines/e_afalg.c:791,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:792,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-3.0.15/engines/e_afalg.c:797,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:798,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 803
    functionName: bind_afalg
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_finish_function
    - ENGINE_set_ciphers
    - ENGINE_set_init_function
    - AFALGerr
    - afalg_aes_cbc
    - ENGINE_set_destroy_function
    - ERR_load_AFALG_strings
    - ENGINE_set_id
    - ENGINE_set_name
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int bind_afalg(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_afalg.c:808,1
    - Dst: afalg_chk_platform
      Src: /src/openssl-3.0.15/engines/e_afalg.c:811,1
    - Dst: bind_afalg
      Src: /src/openssl-3.0.15/engines/e_afalg.c:814,1
    - Dst: afalg_destroy
      Src: /src/openssl-3.0.15/engines/e_afalg.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 819
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - afalg_destroy
    - bind_afalg
    - afalg_chk_platform
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/openssl-3.0.15/engines/e_afalg.c:834,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:836,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/engines/e_afalg.c:841,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/engines/e_afalg.c:843,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/engines/e_afalg.c:844,1
    - Dst: KERNEL_VERSION
      Src: /src/openssl-3.0.15/engines/e_afalg.c:847,1
    - Dst: KERNEL_VERSION
      Src: /src/openssl-3.0.15/engines/e_afalg.c:848,1
    - Dst: ALG_ERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:849,1
    - Dst: ALG_ERR
      Src: /src/openssl-3.0.15/engines/e_afalg.c:851,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:853,1
    - Dst: socket
      Src: /src/openssl-3.0.15/engines/e_afalg.c:859,1
    - Dst: AFALGerr
      Src: /src/openssl-3.0.15/engines/e_afalg.c:861,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_afalg.c:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 867
    functionName: afalg_chk_platform
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 1
    functionsReached:
    - AFALGerr
    - socket
    - ALG_ERR
    - uname
    - close
    - atoi
    - KERNEL_VERSION
    - strtok
    linkageType: ''
    returnType: int
    signature: int afalg_chk_platform(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/engines/e_afalg.c:872,1
    - Dst: bind_afalg
      Src: /src/openssl-3.0.15/engines/e_afalg.c:875,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_afalg.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 880
    functionName: engine_afalg
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - bind_afalg
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_afalg(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: afalg_chk_platform
      Src: /src/openssl-3.0.15/engines/e_afalg.c:886,1
    - Dst: engine_afalg
      Src: /src/openssl-3.0.15/engines/e_afalg.c:889,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_afalg.c:892,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/engines/e_afalg.c:893,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_afalg.c:898,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_afalg.c:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 905
    functionName: engine_load_afalg_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_set_mark
    - engine_afalg
    - ERR_pop_to_mark
    - afalg_chk_platform
    linkageType: ''
    returnType: void
    signature: void engine_load_afalg_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 911
    functionName: afalg_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int afalg_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 916
    functionName: afalg_finish
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int afalg_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_afalg.c:921,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_afalg.c:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 926
    functionName: free_cbc
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int free_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_AFALG_strings
      Src: /src/openssl-3.0.15/engines/e_afalg.c:930,1
    - Dst: free_cbc
      Src: /src/openssl-3.0.15/engines/e_afalg.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 933
    functionName: afalg_destroy
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.c
    functionUses: 1
    functionsReached:
    - free_cbc
    - ERR_unload_AFALG_strings
    linkageType: ''
    returnType: int
    signature: int afalg_destroy(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_afalg_err.c:44,1
    - Dst: ERR_load_strings
      Src: /src/openssl-3.0.15/engines/e_afalg_err.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: ERR_load_AFALG_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_AFALG_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-3.0.15/engines/e_afalg_err.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: ERR_unload_AFALG_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_AFALG_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_afalg_err.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_afalg_err.c:69,1
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/engines/e_afalg_err.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: ERR_AFALG_error
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_raise
    - ERR_set_debug
    linkageType: ''
    returnType: void
    signature: void ERR_AFALG_error(int function, int reason, const char *file, int
      line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: DASYNCerr
    functionSourceFile: /src/openssl-3.0.15/engines/e_dasync_err.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DASYNCerr(f, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: OSSLTESTerr
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest_err.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSLTESTerr(f, r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_capi_err.c:67,1
    - Dst: ERR_load_strings
      Src: /src/openssl-3.0.15/engines/e_capi_err.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: ERR_load_CAPI_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_CAPI_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-3.0.15/engines/e_capi_err.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: ERR_unload_CAPI_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_CAPI_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_capi_err.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_capi_err.c:92,1
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/engines/e_capi_err.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: ERR_CAPI_error
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_raise
    - ERR_set_debug
    linkageType: ''
    returnType: void
    signature: void ERR_CAPI_error(int function, int reason, const char *file, int
      line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: CAPIerr
    functionSourceFile: /src/openssl-3.0.15/engines/e_capi_err.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPIerr(f, r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:87,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:88,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sess
    argTypes:
    - session_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: clean_devcrypto_session
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - memset
    - ERR_raise_data
    - ioctl
    linkageType: ''
    returnType: int
    signature: int clean_devcrypto_session(session_op_t *sess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: find_cipher_data_index
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: size_t
    signature: size_t find_cipher_data_index(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_cipher_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:180,1
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts:
    - condition: ("Code that never should be reached" == NULL)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/openssl-3.0.15/engines/e_devcrypto.c
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: get_cipher_data_index
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - find_cipher_data_index
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t get_cipher_data_index(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: get_cipher_data
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 7
    functionsReached:
    - get_cipher_data_index
    linkageType: ''
    returnType: struct cipher_data_st
    signature: struct cipher_data_st *get_cipher_data(int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:208,1
    - Dst: get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:210,1
    - Dst: EVP_CIPHER_CTX_get_nid
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:210,1
    - Dst: clean_devcrypto_session
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:215,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:228,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:230,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 238
    functionName: cipher_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - clean_devcrypto_session
    - ERR_raise_data
    - get_cipher_data
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_get_nid
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                       const
      unsigned char *iv, int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:244,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:246,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:253,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:263,1
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:267,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:268,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:270,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:284,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:285,1
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:293,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:294,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:299,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (inl >= ivlen)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/openssl-3.0.15/engines/e_devcrypto.c
    - condition: (inl >= ivlen)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/openssl-3.0.15/engines/e_devcrypto.c
    constantsTouched: []
    func_position:
      end: 319
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 319
    functionName: cipher_do_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - ERR_raise_data
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_get_iv_length
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t inl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:325,1
    - Dst: cipher_do_cipher
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:339,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:348,1
    - Dst: cipher_do_cipher
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 360
    functionName: ctr_do_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - memset
    - EVP_CIPHER_CTX_get_cipher_data
    - cipher_do_cipher
    linkageType: ''
    returnType: int
    signature: "int ctr_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                         const
      unsigned char *in, size_t inl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:365,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:376,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:377,1
    - Dst: cipher_init
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:378,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:378,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 390
    functionName: cipher_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - memset
    - EVP_CIPHER_CTX_iv
    - EVP_CIPHER_CTX_get_cipher_data
    - cipher_init
    linkageType: ''
    returnType: int
    signature: int cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void* p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:395,1
    - Dst: clean_devcrypto_session
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: cipher_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - clean_devcrypto_session
    linkageType: ''
    returnType: int
    signature: int cipher_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - cipher_data_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: devcrypto_test_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int devcrypto_test_cipher(size_t cipher_data_index)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:437,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:439,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:443,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:458,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:462,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:469,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:478,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:482,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:484,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:489,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:490,1
    - Dst: EVP_CIPHER_meth_set_ctrl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:494,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:495,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:497,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:500,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:507,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:509,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:513,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:517,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:526,1
    - Dst: devcrypto_test_cipher
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:527,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 532
    functionName: prepare_cipher_methods
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - devcrypto_test_cipher
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_ctrl
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - OSSL_NELEM
    - OPENSSL_strndup
    - EVP_CIPHER_meth_set_impl_ctx_size
    - memset
    - EVP_CIPHER_meth_set_iv_length
    - ioctl
    linkageType: ''
    returnType: void
    signature: void prepare_cipher_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:538,1
    - Dst: devcrypto_test_cipher
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:539,1
    - Dst: ENGINE_unregister_ciphers
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:542,1
    - Dst: ENGINE_register_ciphers
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 544
    functionName: rebuild_known_cipher_nids
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - ENGINE_register_ciphers
    - devcrypto_test_cipher
    - ENGINE_unregister_ciphers
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void rebuild_known_cipher_nids(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: get_cipher_method
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_cipher_data_index
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *get_cipher_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: get_cipher_nids
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_cipher_nids(const int **nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:563,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 567
    functionName: destroy_cipher_method
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_cipher_data_index
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void destroy_cipher_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:573,1
    - Dst: destroy_cipher_method
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:574,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 578
    functionName: destroy_all_cipher_methods
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - destroy_cipher_method
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void destroy_all_cipher_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cipher_nids
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:584,1
    - Dst: get_cipher_method
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 589
    functionName: devcrypto_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_cipher_method
    - get_cipher_nids
    linkageType: ''
    returnType: int
    signature: "int devcrypto_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                             const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cipher_list
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: devcrypto_select_all_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void devcrypto_select_all_ciphers(int *cipher_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:608,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:610,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:612,1
    - Dst: find_cipher_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:613,1
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:613,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:616,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - str
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 619
    functionName: cryptodev_select_cipher_cb
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_get_cipherbyname
    - find_cipher_data_index
    - fprintf
    - OPENSSL_free
    - OPENSSL_strndup
    - EVP_CIPHER_get_nid
    linkageType: ''
    returnType: int
    signature: int cryptodev_select_cipher_cb(const char *str, int len, void *usr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:626,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:629,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:631,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:632,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:633,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:637,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:640,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:643,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:645,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:647,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:649,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:650,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 653
    functionName: dump_cipher_info
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - OSSL_NELEM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_cipher_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 718
    functionName: find_digest_data_index
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: size_t
    signature: size_t find_digest_data_index(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_digest_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:722,1
    - Dst: assert
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts:
    - condition: ("Code that never should be reached" == NULL)
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/openssl-3.0.15/engines/e_devcrypto.c
    constantsTouched: []
    func_position:
      end: 734
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 734
    functionName: get_digest_data_index
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - find_digest_data_index
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t get_digest_data_index(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: get_digest_data
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_digest_data_index
    linkageType: ''
    returnType: struct digest_data_st
    signature: struct digest_data_st *get_digest_data(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:749,1
    - Dst: get_digest_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:751,1
    - Dst: EVP_MD_CTX_get_type
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:751,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:755,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:757,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 762
    functionName: digest_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    - EVP_MD_CTX_get_type
    - memset
    - get_digest_data
    - EVP_MD_CTX_get0_md_data
    - ioctl
    linkageType: ''
    returnType: int
    signature: int digest_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:769,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - src
    - srclen
    - res
    - flags
    argTypes:
    - struct digest_ctx*
    - void*
    - size_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: digest_op
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - memset
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int digest_op(struct digest_ctx *ctx, const void *src, size_t srclen,\n
      \                    void *res, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:782,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:790,1
    - Dst: digest_op
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:791,1
    - Dst: digest_op
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:793,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 799
    functionName: digest_update
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - digest_op
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX_get0_md_data
    - ERR_raise_data
    linkageType: ''
    returnType: int
    signature: int digest_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:804,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:809,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:810,1
    - Dst: EVP_MD_CTX_get_size
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:810,1
    - Dst: digest_op
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:811,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:812,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 817
    functionName: digest_final
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_MD_CTX_test_flags
    - ERR_raise_data
    - digest_op
    - EVP_MD_CTX_get0_md_data
    - EVP_MD_CTX_get_size
    linkageType: ''
    returnType: int
    signature: int digest_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:822,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:824,1
    - Dst: digest_init
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:830,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:831,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:837,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 819
    functionDepth: 5
    functionLinenumber: 819
    functionLinenumberEnd: 842
    functionName: digest_copy
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - digest_init
    - EVP_MD_CTX_get0_md_data
    - ERR_raise_data
    - ioctl
    linkageType: ''
    returnType: int
    signature: int digest_copy(EVP_MD_CTX *to, const EVP_MD_CTX *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:847,1
    - Dst: clean_devcrypto_session
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 853
    functionName: digest_cleanup
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_get0_md_data
    - clean_devcrypto_session
    linkageType: ''
    returnType: int
    signature: int digest_cleanup(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - digest_data_index
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 877
    functionName: devcrypto_test_digest
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int devcrypto_test_digest(size_t digest_data_index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:883,1
    - Dst: devcrypto_test_digest
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:884,1
    - Dst: ENGINE_unregister_digests
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:887,1
    - Dst: ENGINE_register_digests
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 889
    functionName: rebuild_known_digest_nids
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - devcrypto_test_digest
    - ENGINE_register_digests
    - ENGINE_unregister_digests
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void rebuild_known_digest_nids(ENGINE *e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:900,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:902,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:903,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:905,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:915,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:923,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:927,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:938,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:944,1
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:948,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:950,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:952,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:954,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:955,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:956,1
    - Dst: EVP_MD_meth_set_copy
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:957,1
    - Dst: EVP_MD_meth_set_cleanup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:958,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:959,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:962,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:968,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:970,1
    - Dst: devcrypto_test_digest
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:971,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 974
    functionName: prepare_digest_methods
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_cleanup
    - EVP_MD_meth_set_copy
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - devcrypto_test_digest
    - OSSL_NELEM
    - OPENSSL_strndup
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_free
    - EVP_MD_meth_set_input_blocksize
    - memset
    - ioctl
    linkageType: ''
    returnType: void
    signature: void prepare_digest_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 976
    functionDepth: 3
    functionLinenumber: 976
    functionLinenumberEnd: 983
    functionName: get_digest_method
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_digest_data_index
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *get_digest_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 989
    functionName: get_digest_nids
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_digest_nids(const int **nids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:993,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 991
    functionDepth: 3
    functionLinenumber: 991
    functionLinenumberEnd: 997
    functionName: destroy_digest_method
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    - get_digest_data_index
    linkageType: ''
    returnType: void
    signature: void destroy_digest_method(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1003,1
    - Dst: destroy_digest_method
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1004,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1008
    functionName: destroy_all_digest_methods
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - destroy_digest_method
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void destroy_all_digest_methods(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_digest_nids
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1014,1
    - Dst: get_digest_method
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1019
    functionName: devcrypto_digests
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - get_digest_nids
    - get_digest_method
    linkageType: ''
    returnType: int
    signature: "int devcrypto_digests(ENGINE *e, const EVP_MD **digest,\n                             const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - digest_list
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1027
    functionName: devcrypto_select_all_digests
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void devcrypto_select_all_digests(int *digest_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1038,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1040,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1042,1
    - Dst: find_digest_data_index
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1043,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1043,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1046,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - str
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1049
    functionName: cryptodev_select_digest_cb
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - find_digest_data_index
    - fprintf
    - OPENSSL_free
    - OPENSSL_strndup
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int cryptodev_select_digest_cb(const char *str, int len, void *usr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1056,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1059,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1062,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1063,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1064,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1069,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1073,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1075,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1077,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1079,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1081,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1083,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1085,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1086
    functionName: dump_digest_info
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - OSSL_NELEM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_digest_info(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1146,1
    - Dst: rebuild_known_digest_nids
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1153,1
    - Dst: rebuild_known_cipher_nids
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1155,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1162,1
    - Dst: devcrypto_select_all_ciphers
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1163,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1164,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1165,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1167,1
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1168,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1169,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1173,1
    - Dst: rebuild_known_cipher_nids
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1175,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1182,1
    - Dst: devcrypto_select_all_digests
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1183,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1184,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1185,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1187,1
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1188,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1189,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1192,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1193,1
    - Dst: rebuild_known_digest_nids
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1195,1
    - Dst: dump_cipher_info
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1200,1
    - Dst: dump_digest_info
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1202,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1134
    functionDepth: 2
    functionLinenumber: 1134
    functionLinenumberEnd: 1210
    functionName: devcrypto_ctrl
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - memcpy
    - rebuild_known_cipher_nids
    - OPENSSL_zalloc
    - fprintf
    - memset
    - CONF_parse_list
    - devcrypto_select_all_ciphers
    - OPENSSL_free
    - devcrypto_select_all_digests
    - dump_digest_info
    - rebuild_known_digest_nids
    - dump_cipher_info
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int devcrypto_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1228,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1232,1
    - Dst: strerror
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1232,1
    - Dst: ioctl
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1237,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1238,1
    - Dst: strerror
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1238,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1239,1
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1249
    functionName: open_devcrypto
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - open
    - strerror
    - fprintf
    - close
    - ioctl
    linkageType: ''
    returnType: int
    signature: int open_devcrypto(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1257,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1260,1
    - Dst: strerror
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1264
    functionName: close_devcrypto
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strerror
    - close
    linkageType: ''
    returnType: int
    signature: int close_devcrypto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_all_cipher_methods
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1268,1
    - Dst: destroy_all_digest_methods
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1270,1
    - Dst: close_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1266
    functionDepth: 5
    functionLinenumber: 1266
    functionLinenumberEnd: 1276
    functionName: devcrypto_unload
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - destroy_all_digest_methods
    - close_devcrypto
    - destroy_all_cipher_methods
    linkageType: ''
    returnType: int
    signature: int devcrypto_unload(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1280,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1281,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1282,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1283,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1284,1
    - Dst: prepare_cipher_methods
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1287,1
    - Dst: prepare_digest_methods
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1289,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1292,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1294,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1329
    functionName: bind_devcrypto
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - prepare_cipher_methods
    - ENGINE_set_ciphers
    - ENGINE_set_destroy_function
    - ENGINE_set_cmd_defns
    - ENGINE_set_ctrl_function
    - ENGINE_set_id
    - ENGINE_set_digests
    - ENGINE_set_name
    - prepare_digest_methods
    linkageType: ''
    returnType: int
    signature: int bind_devcrypto(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1340,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1343,1
    - Dst: bind_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1344,1
    - Dst: close_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1345,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1346,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1350,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1351,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1356,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1363
    functionName: engine_load_devcrypto_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - open_devcrypto
    - ENGINE_add
    - ENGINE_free
    - ERR_set_mark
    - close_devcrypto
    - ERR_pop_to_mark
    - ENGINE_new
    - bind_devcrypto
    linkageType: ''
    returnType: void
    signature: void engine_load_devcrypto_int(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1369,1
    - Dst: open_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1370,1
    - Dst: bind_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1372,1
    - Dst: close_devcrypto
      Src: /src/openssl-3.0.15/engines/e_devcrypto.c:1373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1377
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_devcrypto.c
    functionUses: 0
    functionsReached:
    - open_devcrypto
    - bind_devcrypto
    - close_devcrypto
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e, const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_padlock
      Src: /src/openssl-3.0.15/engines/e_padlock.c:49,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/engines/e_padlock.c:52,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/engines/e_padlock.c:53,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_padlock.c:58,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/engines/e_padlock.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: engine_load_padlock_int
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_set_mark
    - ERR_pop_to_mark
    - ENGINE_padlock
    linkageType: ''
    returnType: void
    signature: void engine_load_padlock_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: padlock_available
      Src: /src/openssl-3.0.15/engines/e_padlock.c:97,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/engines/e_padlock.c:106,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/engines/e_padlock.c:112,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/engines/e_padlock.c:113,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/engines/e_padlock.c:114,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-3.0.15/engines/e_padlock.c:115,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-3.0.15/engines/e_padlock.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 122
    functionName: padlock_bind_helper
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_ciphers
    - ENGINE_set_init_function
    - BIO_snprintf
    - padlock_available
    - ENGINE_set_id
    - ENGINE_set_name
    - ENGINE_set_RAND
    linkageType: ''
    returnType: int
    signature: int padlock_bind_helper(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/engines/e_padlock.c:128,1
    - Dst: padlock_bind_helper
      Src: /src/openssl-3.0.15/engines/e_padlock.c:134,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/engines/e_padlock.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: ENGINE_padlock
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 1
    functionsReached:
    - ENGINE_free
    - padlock_bind_helper
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_padlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: padlock_init
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int padlock_init(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/engines/e_padlock.c:169,1
    - Dst: padlock_bind_helper
      Src: /src/openssl-3.0.15/engines/e_padlock.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: padlock_bind_fn
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_bind_helper
    - strcmp
    linkageType: ''
    returnType: int
    signature: int padlock_bind_fn(ENGINE *e, const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: padlock_capability
      Src: /src/openssl-3.0.15/engines/e_padlock.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: padlock_available
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 1
    functionsReached:
    - padlock_capability
    linkageType: ''
    returnType: int
    signature: int padlock_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: NEAREST_ALIGNED
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEAREST_ALIGNED(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: ALIGNED_CIPHER_DATA
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED_CIPHER_DATA(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: padlock_ecb_encrypt
      Src: /src/openssl-3.0.15/engines/e_padlock.c:316,1
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-3.0.15/engines/e_padlock.c:317,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: padlock_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ecb_encrypt
    - ALIGNED_CIPHER_DATA
    linkageType: ''
    returnType: int
    signature: "int padlock_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-3.0.15/engines/e_padlock.c:324,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:327,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-3.0.15/engines/e_padlock.c:327,1
    - Dst: padlock_cbc_encrypt
      Src: /src/openssl-3.0.15/engines/e_padlock.c:328,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:329,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:329,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: padlock_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ALIGNED_CIPHER_DATA
    - memcpy
    - EVP_CIPHER_CTX_iv
    - EVP_CIPHER_CTX_iv_noconst
    - padlock_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int padlock_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-3.0.15/engines/e_padlock.c:337,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:340,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:341,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_padlock.c:346,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:357,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:363,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-3.0.15/engines/e_padlock.c:363,1
    - Dst: padlock_cfb_encrypt
      Src: /src/openssl-3.0.15/engines/e_padlock.c:366,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:376,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:379,1
    - Dst: padlock_aes_block
      Src: /src/openssl-3.0.15/engines/e_padlock.c:380,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:382,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:389,1
    - Dst: padlock_aes_block
      Src: /src/openssl-3.0.15/engines/e_padlock.c:390,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:391,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:399,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:399,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 402
    functionName: padlock_cfb_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ALIGNED_CIPHER_DATA
    - padlock_cfb_encrypt
    - EVP_CIPHER_CTX_get_num
    - padlock_aes_block
    - memcpy
    - EVP_CIPHER_CTX_iv
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_set_num
    - padlock_reload_key
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int padlock_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-3.0.15/engines/e_padlock.c:408,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:414,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:415,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:425,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:431,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/openssl-3.0.15/engines/e_padlock.c:431,1
    - Dst: padlock_ofb_encrypt
      Src: /src/openssl-3.0.15/engines/e_padlock.c:434,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:444,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:445,1
    - Dst: padlock_aes_block
      Src: /src/openssl-3.0.15/engines/e_padlock.c:446,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:447,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:454,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:454,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 457
    functionName: padlock_ofb_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ofb_encrypt
    - ALIGNED_CIPHER_DATA
    - padlock_aes_block
    - EVP_CIPHER_CTX_get_num
    - memcpy
    - EVP_CIPHER_CTX_iv
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_set_num
    - padlock_reload_key
    linkageType: ''
    returnType: int
    signature: "int padlock_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:464,1
    - Dst: padlock_ctr32_encrypt
      Src: /src/openssl-3.0.15/engines/e_padlock.c:465,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: padlock_ctr32_encrypt_glue
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_ctr32_encrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-3.0.15/engines/e_padlock.c:472,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:473,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-3.0.15/engines/e_padlock.c:480,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:481,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/engines/e_padlock.c:482,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/engines/e_padlock.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out_arg
    - in_arg
    - nbytes
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 487
    functionName: padlock_ctr_cipher
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ALIGNED_CIPHER_DATA
    - EVP_CIPHER_CTX_get_num
    - CRYPTO_ctr128_encrypt_ctr32
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "int padlock_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out_arg,\n
      \                  const unsigned char *in_arg, size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ksize
    - ','
    - lmode
    - ','
    - umode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 527
    functionName: DECLARE_AES_EVP
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_AES_EVP(ksize,lmode,umode)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: padlock_aes_128_ecb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:559,1
    - Dst: padlock_aes_128_cbc
      Src: /src/openssl-3.0.15/engines/e_padlock.c:562,1
    - Dst: padlock_aes_128_cfb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:565,1
    - Dst: padlock_aes_128_ofb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:568,1
    - Dst: padlock_aes_128_ctr
      Src: /src/openssl-3.0.15/engines/e_padlock.c:571,1
    - Dst: padlock_aes_192_ecb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:575,1
    - Dst: padlock_aes_192_cbc
      Src: /src/openssl-3.0.15/engines/e_padlock.c:578,1
    - Dst: padlock_aes_192_cfb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:581,1
    - Dst: padlock_aes_192_ofb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:584,1
    - Dst: padlock_aes_192_ctr
      Src: /src/openssl-3.0.15/engines/e_padlock.c:587,1
    - Dst: padlock_aes_256_ecb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:591,1
    - Dst: padlock_aes_256_cbc
      Src: /src/openssl-3.0.15/engines/e_padlock.c:594,1
    - Dst: padlock_aes_256_cfb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:597,1
    - Dst: padlock_aes_256_ofb
      Src: /src/openssl-3.0.15/engines/e_padlock.c:600,1
    - Dst: padlock_aes_256_ctr
      Src: /src/openssl-3.0.15/engines/e_padlock.c:603,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 613
    functionName: padlock_ciphers
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_aes_256_ecb
    - padlock_aes_192_cbc
    - padlock_aes_256_ofb
    - padlock_aes_192_ecb
    - padlock_aes_192_cfb
    - padlock_aes_256_cfb
    - padlock_aes_128_ctr
    - padlock_aes_128_ecb
    - padlock_aes_192_ofb
    - padlock_aes_128_cbc
    - padlock_aes_256_cbc
    - padlock_aes_128_ofb
    - padlock_aes_192_ctr
    - padlock_aes_128_cfb
    - padlock_aes_256_ctr
    linkageType: ''
    returnType: int
    signature: "int padlock_ciphers(ENGINE *e, const EVP_CIPHER **cipher, const int
      **nids,\n                int nid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/engines/e_padlock.c:621,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/engines/e_padlock.c:622,1
    - Dst: ALIGNED_CIPHER_DATA
      Src: /src/openssl-3.0.15/engines/e_padlock.c:627,1
    - Dst: memset
      Src: /src/openssl-3.0.15/engines/e_padlock.c:628,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/engines/e_padlock.c:634,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/engines/e_padlock.c:643,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:659,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:661,1
    - Dst: padlock_key_bswap
      Src: /src/openssl-3.0.15/engines/e_padlock.c:665,1
    - Dst: padlock_reload_key
      Src: /src/openssl-3.0.15/engines/e_padlock.c:679,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 682
    functionName: padlock_aes_init_key
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - ALIGNED_CIPHER_DATA
    - memcpy
    - EVP_CIPHER_CTX_get_mode
    - AES_set_encrypt_key
    - padlock_key_bswap
    - EVP_CIPHER_CTX_get_key_length
    - padlock_reload_key
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int padlock_aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char
      *key,\n                     const unsigned char *iv, int enc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: padlock_xstore
      Src: /src/openssl-3.0.15/engines/e_padlock.c:700,1
    - Dst: padlock_xstore
      Src: /src/openssl-3.0.15/engines/e_padlock.c:714,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/engines/e_padlock.c:727,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - output
    - count
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 730
    functionName: padlock_rand_bytes
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached:
    - padlock_xstore
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int padlock_rand_bytes(unsigned char *output, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: padlock_rand_status
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int padlock_rand_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - id
    - fns
    argTypes:
    - ENGINE*
    - char*
    - dynamic_fns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 759
    functionName: bind_engine
    functionSourceFile: /src/openssl-3.0.15/engines/e_padlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_EXPORT
    signature: OPENSSL_EXPORT bind_engine(ENGINE *e, const char *id, const dynamic_fns
      *fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: ALG_DGB
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_DGB(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: ALG_INFO
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_INFO(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: ALG_WARN
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_WARN(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ALG_ERR
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_ERR(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ALG_PERR
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_PERR(x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ALG_PWARN
    functionSourceFile: /src/openssl-3.0.15/engines/e_afalg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_PWARN(x, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_ossltest_err.c:29,1
    - Dst: ERR_load_strings
      Src: /src/openssl-3.0.15/engines/e_ossltest_err.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: ERR_load_OSSLTEST_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_OSSLTEST_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-3.0.15/engines/e_ossltest_err.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: ERR_unload_OSSLTEST_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_OSSLTEST_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_ossltest_err.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_ossltest_err.c:54,1
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/engines/e_ossltest_err.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: ERR_OSSLTEST_error
    functionSourceFile: /src/openssl-3.0.15/engines/e_ossltest_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_raise
    - ERR_set_debug
    linkageType: ''
    returnType: void
    signature: void ERR_OSSLTEST_error(int function, int reason, const char *file,
      int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_loader_attic_err.c:46,1
    - Dst: ERR_load_strings
      Src: /src/openssl-3.0.15/engines/e_loader_attic_err.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: ERR_load_ATTIC_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings
    - ERR_get_next_error_library
    linkageType: ''
    returnType: int
    signature: int ERR_load_ATTIC_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_unload_strings
      Src: /src/openssl-3.0.15/engines/e_loader_attic_err.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: ERR_unload_ATTIC_strings
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic_err.c
    functionUses: 1
    functionsReached:
    - ERR_unload_strings
    linkageType: ''
    returnType: void
    signature: void ERR_unload_ATTIC_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/engines/e_loader_attic_err.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/engines/e_loader_attic_err.c:71,1
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/engines/e_loader_attic_err.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - function
    - reason
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: ERR_ATTIC_error
    functionSourceFile: /src/openssl-3.0.15/engines/e_loader_attic_err.c
    functionUses: 0
    functionsReached:
    - ERR_get_next_error_library
    - ERR_raise
    - ERR_set_debug
    linkageType: ''
    returnType: void
    signature: void ERR_ATTIC_error(int function, int reason, const char *file, int
      line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/der_writer.c:20,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/der_writer.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: int_start_context
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - WPACKET_start_sub_packet
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int int_start_context(WPACKET *pkt, int tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/der_writer.c:39,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/crypto/der_writer.c:45,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/der_writer.c:46,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/crypto/der_writer.c:47,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: int_end_context
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - WPACKET_close
    - ossl_assert
    - WPACKET_put_bytes_u8
    - WPACKET_get_total_written
    linkageType: ''
    returnType: int
    signature: int int_end_context(WPACKET *pkt, int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_start_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:55,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-3.0.15/crypto/der_writer.c:56,1
    - Dst: int_end_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - pkt
    - tag
    - precompiled
    - precompiled_n
    argTypes:
    - WPACKET*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: ossl_DER_w_precompiled
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_end_context
    - int_start_context
    - WPACKET_memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_DER_w_precompiled(WPACKET *pkt, int tag,\n                           const
      unsigned char *precompiled,\n                           size_t precompiled_n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_start_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:62,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/der_writer.c:63,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:64,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/der_writer.c:65,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:66,1
    - Dst: int_end_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 3
    argNames:
    - pkt
    - tag
    - b
    argTypes:
    - WPACKET*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: ossl_DER_w_boolean
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_end_context
    - WPACKET_start_sub_packet
    - WPACKET_put_bytes_u8
    - int_start_context
    - WPACKET_close
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_boolean(WPACKET *pkt, int tag, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_start_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:73,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/der_writer.c:74,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-3.0.15/crypto/der_writer.c:75,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/der_writer.c:76,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:77,1
    - Dst: int_end_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 4
    argNames:
    - pkt
    - tag
    - data
    - data_n
    argTypes:
    - WPACKET*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: ossl_DER_w_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_end_context
    - WPACKET_start_sub_packet
    - WPACKET_memcpy
    - WPACKET_put_bytes_u8
    - int_start_context
    - WPACKET_close
    linkageType: ''
    returnType: int
    signature: "int ossl_DER_w_octet_string(WPACKET *pkt, int tag,\n                            const
      unsigned char *data, size_t data_n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_DER_w_octet_string
      Src: /src/openssl-3.0.15/crypto/der_writer.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkt
    - tag
    - value
    argTypes:
    - WPACKET*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: ossl_DER_w_octet_string_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - ossl_DER_w_octet_string
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_octet_string_uint32(WPACKET *pkt, int tag, uint32_t
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_start_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:100,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/der_writer.c:101,1
    - Dst: put_bytes
      Src: /src/openssl-3.0.15/crypto/der_writer.c:102,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:103,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/der_writer.c:104,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:105,1
    - Dst: int_end_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 3
    argNames:
    - pkt
    - tag
    - v
    argTypes:
    - WPACKET*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: int_der_w_integer
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_end_context
    - WPACKET_start_sub_packet
    - WPACKET_put_bytes_u8
    - int_start_context
    - put_bytes
    - WPACKET_close
    linkageType: ''
    returnType: int
    signature: "int int_der_w_integer(WPACKET *pkt, int tag,\n                             int
      (*put_bytes)(WPACKET *pkt, const void *v,\n                                              unsigned
      int *top_byte),\n                             const void *v)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes__
      Src: /src/openssl-3.0.15/crypto/der_writer.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pkt
    - v
    - top_byte
    argTypes:
    - WPACKET*
    - void*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: int_put_bytes_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - WPACKET_put_bytes__
    linkageType: ''
    returnType: int
    signature: "int int_put_bytes_uint32(WPACKET *pkt, const void *v,\n                               unsigned
      int *top_byte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_der_w_integer
      Src: /src/openssl-3.0.15/crypto/der_writer.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pkt
    - tag
    - v
    argTypes:
    - WPACKET*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: ossl_DER_w_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_der_w_integer
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_uint32(WPACKET *pkt, int tag, uint32_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/der_writer.c:137,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/der_writer.c:141,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/der_writer.c:144,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/der_writer.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pkt
    - v
    - top_byte
    argTypes:
    - WPACKET*
    - void*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: int_put_bytes_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - bn_get_words
    - WPACKET_allocate_bytes
    - BN_bn2bin
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "int int_put_bytes_bn(WPACKET *pkt, const void *v,\n                            unsigned
      int *top_byte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/der_writer.c:153,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/der_writer.c:155,1
    - Dst: ossl_DER_w_uint32
      Src: /src/openssl-3.0.15/crypto/der_writer.c:156,1
    - Dst: int_der_w_integer
      Src: /src/openssl-3.0.15/crypto/der_writer.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pkt
    - tag
    - v
    argTypes:
    - WPACKET*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: ossl_DER_w_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - BN_is_negative
    - ossl_DER_w_uint32
    - int_der_w_integer
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_bn(WPACKET *pkt, int tag, const BIGNUM *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_start_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:163,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/der_writer.c:164,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/der_writer.c:165,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:166,1
    - Dst: int_end_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: ossl_DER_w_null
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_end_context
    - WPACKET_start_sub_packet
    - WPACKET_put_bytes_u8
    - int_start_context
    - WPACKET_close
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_null(WPACKET *pkt, int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_start_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:173,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/der_writer.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: ossl_DER_w_begin_sequence
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - WPACKET_start_sub_packet
    - int_start_context
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_begin_sequence(WPACKET *pkt, int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/crypto/der_writer.c:192,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/der_writer.c:193,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/crypto/der_writer.c:194,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/crypto/der_writer.c:196,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/der_writer.c:197,1
    - Dst: int_end_context
      Src: /src/openssl-3.0.15/crypto/der_writer.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - WPACKET*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 199
    functionName: ossl_DER_w_end_sequence
    functionSourceFile: /src/openssl-3.0.15/crypto/der_writer.c
    functionUses: 0
    functionsReached:
    - int_end_context
    - WPACKET_put_bytes_u8
    - WPACKET_get_total_written
    - WPACKET_set_flags
    - WPACKET_close
    linkageType: ''
    returnType: int
    signature: int ossl_DER_w_end_sequence(WPACKET *pkt, int tag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_find
      Src: /src/openssl-3.0.15/crypto/provider.c:25,1
    - Dst: ossl_provider_new
      Src: /src/openssl-3.0.15/crypto/provider.c:26,1
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider.c:31,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider.c:32,1
    - Dst: ossl_provider_add_to_store
      Src: /src/openssl-3.0.15/crypto/provider.c:37,1
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider.c:38,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider.c:39,1
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider.c:43,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider.c:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - libctx
    - name
    - retain_fallbacks
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: OSSL_PROVIDER_try_load
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_activate
    - ossl_provider_add_to_store
    - ossl_provider_deactivate
    - ossl_provider_new
    - ossl_provider_free
    - ossl_provider_find
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: "OSSL_PROVIDER *OSSL_PROVIDER_try_load(OSSL_LIB_CTX *libctx, const
      char *name,\n                                      int retain_fallbacks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_disable_fallback_loading
      Src: /src/openssl-3.0.15/crypto/provider.c:55,1
    - Dst: OSSL_PROVIDER_try_load
      Src: /src/openssl-3.0.15/crypto/provider.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: OSSL_PROVIDER_load
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 3
    functionsReached:
    - ossl_provider_disable_fallback_loading
    - OSSL_PROVIDER_try_load
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *OSSL_PROVIDER_load(OSSL_LIB_CTX *libctx, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider.c:62,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: OSSL_PROVIDER_unload
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 3
    functionsReached:
    - ossl_provider_free
    - ossl_provider_deactivate
    linkageType: ''
    returnType: int
    signature: int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_gettable_params
      Src: /src/openssl-3.0.15/crypto/provider.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: OSSL_PROVIDER_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_gettable_params
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_PROVIDER_gettable_params(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_get_params
      Src: /src/openssl-3.0.15/crypto/provider.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prov
    - params
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: OSSL_PROVIDER_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_get_params
    linkageType: ''
    returnType: int
    signature: int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM
      params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_query_operation
      Src: /src/openssl-3.0.15/crypto/provider.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - operation_id
    - no_cache
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: OSSL_PROVIDER_query_operation
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_query_operation
    linkageType: ''
    returnType: OSSL_ALGORITHM
    signature: "OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER
      *prov,\n                                                    int operation_id,\n
      \                                                   int *no_cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_unquery_operation
      Src: /src/openssl-3.0.15/crypto/provider.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - operation_id
    - algs
    argTypes:
    - OSSL_PROVIDER*
    - int
    - OSSL_ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: OSSL_PROVIDER_unquery_operation
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_unquery_operation
    linkageType: ''
    returnType: void
    signature: "void OSSL_PROVIDER_unquery_operation(const OSSL_PROVIDER *prov,\n
      \                                    int operation_id,\n                                     const
      OSSL_ALGORITHM *algs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_prov_ctx
      Src: /src/openssl-3.0.15/crypto/provider.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: OSSL_PROVIDER_get0_provider_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_prov_ctx
    linkageType: ''
    returnType: void
    signature: void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_get0_dispatch
      Src: /src/openssl-3.0.15/crypto/provider.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: OSSL_PROVIDER_get0_dispatch
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_get0_dispatch
    linkageType: ''
    returnType: OSSL_DISPATCH
    signature: OSSL_DISPATCH *OSSL_PROVIDER_get0_dispatch(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_self_test
      Src: /src/openssl-3.0.15/crypto/provider.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: OSSL_PROVIDER_self_test
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_self_test
    linkageType: ''
    returnType: int
    signature: int OSSL_PROVIDER_self_test(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_get_capabilities
      Src: /src/openssl-3.0.15/crypto/provider.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - prov
    - capability
    - cb
    - arg
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: OSSL_PROVIDER_get_capabilities
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_get_capabilities
    linkageType: ''
    returnType: int
    signature: "int OSSL_PROVIDER_get_capabilities(const OSSL_PROVIDER *prov,\n                                   const
      char *capability,\n                                   OSSL_CALLBACK *cb,\n                                   void
      *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider.c:121,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/provider.c:124,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider.c:125,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider.c:127,1
    - Dst: ossl_provider_info_add_to_store
      Src: /src/openssl-3.0.15/crypto/provider.c:131,1
    - Dst: ossl_provider_info_clear
      Src: /src/openssl-3.0.15/crypto/provider.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - libctx
    - name
    - init_fn
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - OSSL_provider_init_fn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: OSSL_PROVIDER_add_builtin
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_info_add_to_store
    - ossl_provider_info_clear
    - OPENSSL_strdup
    - ERR_raise
    - memset
    linkageType: ''
    returnType: int
    signature: "int OSSL_PROVIDER_add_builtin(OSSL_LIB_CTX *libctx, const char *name,\n
      \                             OSSL_provider_init_fn *init_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_name
      Src: /src/openssl-3.0.15/crypto/provider.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: OSSL_PROVIDER_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_name
    linkageType: ''
    returnType: char
    signature: char *OSSL_PROVIDER_get0_name(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_doall_activated
      Src: /src/openssl-3.0.15/crypto/provider.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cbdata
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: OSSL_PROVIDER_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/provider.c
    functionUses: 0
    functionsReached:
    - ossl_provider_doall_activated
    linkageType: ''
    returnType: int
    signature: "int OSSL_PROVIDER_do_all(OSSL_LIB_CTX *ctx,\n                         int
      (*cb)(OSSL_PROVIDER *provider,\n                                   void *cbdata),\n
      \                        void *cbdata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:50,1
    - Dst: pthread_rwlock_init
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:56,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:63,1
    - Dst: pthread_mutexattr_init
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:71,1
    - Dst: pthread_mutexattr_settype
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:74,1
    - Dst: pthread_mutex_init
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:80,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:82,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 90
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutexattr_settype
    - pthread_mutexattr_init
    - pthread_mutexattr_destroy
    - OPENSSL_zalloc
    - OPENSSL_free
    - pthread_rwlock_init
    - pthread_mutex_init
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_rdlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:95,1
    - Dst: pthread_mutex_lock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:98,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts:
    - condition: (errno != EDEADLK && errno != EBUSY)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/openssl-3.0.15/crypto/threads_pthread.c
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - assert
    - pthread_rwlock_rdlock
    linkageType: ''
    returnType: __owur
    signature: __owur CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_wrlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:110,1
    - Dst: pthread_mutex_lock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:113,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts:
    - condition: (errno != EDEADLK && errno != EBUSY)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/openssl-3.0.15/crypto/threads_pthread.c
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_rwlock_wrlock
    - assert
    linkageType: ''
    returnType: __owur
    signature: __owur CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_unlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:125,1
    - Dst: pthread_mutex_unlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:128,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts:
    - condition: (errno != EPERM)
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/openssl-3.0.15/crypto/threads_pthread.c
    constantsTouched: []
    func_position:
      end: 135
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 135
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_rwlock_unlock
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_rwlock_destroy
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:143,1
    - Dst: pthread_mutex_destroy
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - pthread_mutex_destroy
    - pthread_rwlock_destroy
    linkageType: ''
    returnType: void
    signature: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_delete
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_key_delete
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_self
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_self
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_is_lock_free
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:202,1
    - Dst: __atomic_add_fetch
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:203,1
    - Dst: atomic_add_int_nv
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:209,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:213,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:219,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - atomic_add_int_nv
    - __atomic_is_lock_free
    - __atomic_add_fetch
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_is_lock_free
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:229,1
    - Dst: __atomic_or_fetch
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:230,1
    - Dst: atomic_or_64_nv
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:236,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:240,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:245,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - val
    - op
    - ret
    - lock
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 249
    functionName: CRYPTO_atomic_or
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - __atomic_or_fetch
    - atomic_or_64_nv
    - __atomic_is_lock_free
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,\n
      \                    CRYPTO_RWLOCK *lock)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_is_lock_free
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:254,1
    - Dst: __atomic_load
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:255,1
    - Dst: atomic_or_64_nv
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:261,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:265,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:268,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - uint64_t*
    - uint64_t*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: CRYPTO_atomic_load
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_read_lock
    - atomic_or_64_nv
    - __atomic_is_lock_free
    - __atomic_load
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: openssl_init_fork_handlers
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_init_fork_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-3.0.15/crypto/threads_pthread.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: openssl_get_fork_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_pthread.c
    functionUses: 0
    functionsReached:
    - getpid
    linkageType: ''
    returnType: int
    signature: int openssl_get_fork_id(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/getenv.c:21,1
    - Dst: GetACP
      Src: /src/openssl-3.0.15/crypto/getenv.c:31,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/getenv.c:44,1
    - Dst: _malloca
      Src: /src/openssl-3.0.15/crypto/getenv.c:47,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/getenv.c:51,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/getenv.c:54,1
    - Dst: _malloca
      Src: /src/openssl-3.0.15/crypto/getenv.c:58,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/getenv.c:62,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/getenv.c:64,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/getenv.c:70,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/getenv.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/getenv.c:76,1
    - Dst: _freea
      Src: /src/openssl-3.0.15/crypto/getenv.c:82,1
    - Dst: _freea
      Src: /src/openssl-3.0.15/crypto/getenv.c:85,1
    - Dst: __GLIBC_PREREQ
      Src: /src/openssl-3.0.15/crypto/getenv.c:92,1
    - Dst: secure_getenv
      Src: /src/openssl-3.0.15/crypto/getenv.c:94,1
    - Dst: OPENSSL_issetugid
      Src: /src/openssl-3.0.15/crypto/getenv.c:99,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/getenv.c:101,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 38
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 103
    functionName: ossl_safe_getenv
    functionSourceFile: /src/openssl-3.0.15/crypto/getenv.c
    functionUses: 0
    functionsReached:
    - secure_getenv
    - MultiByteToWideChar
    - __GLIBC_PREREQ
    - OPENSSL_malloc
    - GetACP
    - GetEnvironmentVariableW
    - WideCharToMultiByte
    - OPENSSL_free
    - OPENSSL_issetugid
    - getenv
    - _malloca
    - _freea
    linkageType: ''
    returnType: char
    signature: char *ossl_safe_getenv(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:42,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:57,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:59,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:60,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:64,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:66,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:68,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:68,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:69,1
    - Dst: _wfopen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:70,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:77,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:79,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:80,1
    - Dst: pathconf
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:86,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:90,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:91,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:111,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/o_fopen.c:114,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 117
    functionName: openssl_fopen
    functionSourceFile: /src/openssl-3.0.15/crypto/o_fopen.c
    functionUses: 0
    functionsReached:
    - MultiByteToWideChar
    - OPENSSL_malloc
    - _alloca
    - ERR_raise
    - pathconf
    - OPENSSL_free
    - GetLastError
    - strlen
    - fopen
    - _wfopen
    - OSSL_NELEM
    linkageType: ''
    returnType: FILE
    signature: FILE *openssl_fopen(const char *filename, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: openssl_fopen
    functionSourceFile: /src/openssl-3.0.15/crypto/o_fopen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *openssl_fopen(const char *filename, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: S390X_CAPBIT
    functionSourceFile: /src/openssl-3.0.15/crypto/s390x_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_CAPBIT(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethrtime
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-3.0.15/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - gethrtime
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sparcv9_vis1_instrument_bus
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openssl-3.0.15/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis1_instrument_bus
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sparcv9_vis1_instrument_bus2
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openssl-3.0.15/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - _sparcv9_vis1_instrument_bus2
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t
      max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: common_handler
    functionSourceFile: /src/openssl-3.0.15/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void common_handler(int sig)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:96,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:97,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:98,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:99,1
    - Dst: getisax
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:107,1
    - Dst: _sparcv9_vis1_instrument
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:136,1
    - Dst: sigfillset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:150,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:151,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:152,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:154,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:156,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:157,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:158,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:159,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:161,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:165,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:166,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:169,1
    - Dst: _sparcv9_rdtick
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:170,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:174,1
    - Dst: _sparcv9_vis1_probe
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:175,1
    - Dst: _sparcv9_vis1_instrument
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:178,1
    - Dst: _sparcv9_vis2_probe
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:181,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:186,1
    - Dst: _sparcv9_fmadd_probe
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:187,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:195,1
    - Dst: _sparcv9_vis3_probe
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:196,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:200,1
    - Dst: _sparcv9_fjaesx_probe
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:201,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:212,1
    - Dst: _sparcv9_rdcfr
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:213,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:216,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:217,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:219,1
    - Dst: syscall
      Src: /src/openssl-3.0.15/crypto/sparcv9cap.c:225,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 231
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/sparcv9cap.c
    functionUses: 0
    functionsReached:
    - sigaction
    - syscall
    - _sparcv9_fmadd_probe
    - sigsetjmp
    - strtoul
    - sigfillset
    - memset
    - getisax
    - _sparcv9_vis2_probe
    - _sparcv9_rdcfr
    - getenv
    - _sparcv9_rdtick
    - _sparcv9_vis1_instrument
    - strchr
    - sigprocmask
    - _sparcv9_vis1_probe
    - _sparcv9_fjaesx_probe
    - _sparcv9_vis3_probe
    - sigdelset
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset_func
      Src: /src/openssl-3.0.15/crypto/mem_clr.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: OPENSSL_cleanse
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_clr.c
    functionUses: 3
    functionsReached:
    - memset_func
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cleanse(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ossl_param_bytes_to_blocks
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_param_bytes_to_blocks(size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-3.0.15/crypto/params_dup.c:39,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/params_dup.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_dup.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out
    - extra_blocks
    - is_secure
    argTypes:
    - OSSL_PARAM_BUF*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: ossl_param_buf_alloc
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_secure_zalloc
    linkageType: ''
    returnType: int
    signature: "int ossl_param_buf_alloc(OSSL_PARAM_BUF *out, size_t extra_blocks,\n
      \                               int is_secure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - last
    - secure_buffer
    - secure_buffer_sz
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: ossl_param_set_secure_block
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_param_set_secure_block(OSSL_PARAM *last, void *secure_buffer,\n
      \                                size_t secure_buffer_sz)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/crypto/params_dup.c:69,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params_dup.c:83,1
    - Dst: ossl_param_bytes_to_blocks
      Src: /src/openssl-3.0.15/crypto/params_dup.c:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - src
    - dst
    - buf
    - param_count
    argTypes:
    - OSSL_PARAM*
    - OSSL_PARAM*
    - OSSL_PARAM_BUF[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 99
    functionName: ossl_param_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached:
    - ossl_param_bytes_to_blocks
    - CRYPTO_secure_allocated
    - memcpy
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *ossl_param_dup(const OSSL_PARAM *src, OSSL_PARAM *dst,\n
      \                                 OSSL_PARAM_BUF buf[OSSL_PARAM_BUF_MAX],\n
      \                                 int *param_count)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/params_dup.c:111,1
    - Dst: ossl_param_dup
      Src: /src/openssl-3.0.15/crypto/params_dup.c:114,1
    - Dst: ossl_param_bytes_to_blocks
      Src: /src/openssl-3.0.15/crypto/params_dup.c:116,1
    - Dst: ossl_param_buf_alloc
      Src: /src/openssl-3.0.15/crypto/params_dup.c:121,1
    - Dst: ossl_param_buf_alloc
      Src: /src/openssl-3.0.15/crypto/params_dup.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/params_dup.c:127,1
    - Dst: ossl_param_dup
      Src: /src/openssl-3.0.15/crypto/params_dup.c:132,1
    - Dst: ossl_param_set_secure_block
      Src: /src/openssl-3.0.15/crypto/params_dup.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - src
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 137
    functionName: OSSL_PARAM_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached:
    - ossl_param_set_secure_block
    - OPENSSL_free
    - ossl_param_dup
    - memset
    - ossl_param_buf_alloc
    - ossl_param_bytes_to_blocks
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_PARAM_dup(const OSSL_PARAM *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/params_dup.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: compare_params
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int compare_params(const void *left, const void *right)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-3.0.15/crypto/params_dup.c:177,1
    - Dst: qsort
      Src: /src/openssl-3.0.15/crypto/params_dup.c:178,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/params_dup.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_dup.c:183,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/params_dup.c:207,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - OSSL_PARAM*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 222
    functionName: OSSL_PARAM_merge
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached:
    - qsort
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *p1, const OSSL_PARAM
      *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/params_dup.c:232,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/params_dup.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: OSSL_PARAM_free
    functionSourceFile: /src/openssl-3.0.15/crypto/params_dup.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void OSSL_PARAM_free(OSSL_PARAM *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:16,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ex_data.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: ossl_do_ex_data_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ossl_lib_ctx_get_ex_data_global
    linkageType: ''
    returnType: int
    signature: int ossl_do_ex_data_init(OSSL_LIB_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:35,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - global
    - class_index
    argTypes:
    - OSSL_EX_DATA_GLOBAL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: get_and_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ERR_raise
    linkageType: ''
    returnType: EX_CALLBACKS
    signature: EX_CALLBACKS *get_and_lock(OSSL_EX_DATA_GLOBAL *global, int class_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcs
    argTypes:
    - EX_CALLBACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: cleanup_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_cb(EX_CALLBACK *funcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:67,1
    - Dst: sk_EX_CALLBACK_pop_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:75,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: ossl_crypto_cleanup_all_ex_data_int
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - sk_EX_CALLBACK_pop_free
    - ossl_lib_ctx_get_ex_data_global
    linkageType: ''
    returnType: void
    signature: void ossl_crypto_cleanup_all_ex_data_int(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: dummy_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dummy_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx,\n
      \                    long argl, void *argp)"
  - BBCount: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: dummy_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dummy_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, int idx,\n
      \                      long argl, void *argp)"
  - BBCount: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: dummy_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dummy_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n                     void
      **from_d, int idx,\n                     long argl, void *argp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:110,1
    - Dst: get_and_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:115,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:119,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-3.0.15/crypto/ex_data.c:121,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - class_index
    - idx
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: ossl_crypto_free_ex_index_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_num
    - ossl_lib_ctx_get_ex_data_global
    - sk_EX_CALLBACK_value
    - CRYPTO_THREAD_unlock
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: int ossl_crypto_free_ex_index_ex(OSSL_LIB_CTX *ctx, int class_index,
      int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_crypto_free_ex_index_ex
      Src: /src/openssl-3.0.15/crypto/ex_data.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - class_index
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: CRYPTO_free_ex_index
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - ossl_crypto_free_ex_index_ex
    linkageType: ''
    returnType: int
    signature: int CRYPTO_free_ex_index(int class_index, int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:151,1
    - Dst: get_and_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:156,1
    - Dst: sk_EX_CALLBACK_new_null
      Src: /src/openssl-3.0.15/crypto/ex_data.c:161,1
    - Dst: sk_EX_CALLBACK_push
      Src: /src/openssl-3.0.15/crypto/ex_data.c:165,1
    - Dst: sk_EX_CALLBACK_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:168,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ex_data.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:175,1
    - Dst: sk_EX_CALLBACK_push
      Src: /src/openssl-3.0.15/crypto/ex_data.c:185,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:187,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:190,1
    - Dst: sk_EX_CALLBACK_set
      Src: /src/openssl-3.0.15/crypto/ex_data.c:191,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:194,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 8
    argNames:
    - ctx
    - class_index
    - argl
    - argp
    - new_func
    - dup_func
    - free_func
    - priority
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - long
    - void*
    - CRYPTO_EX_new*
    - CRYPTO_EX_dup*
    - CRYPTO_EX_free*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 196
    functionName: ossl_crypto_get_ex_new_index_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_num
    - sk_EX_CALLBACK_push
    - OPENSSL_malloc
    - ossl_lib_ctx_get_ex_data_global
    - sk_EX_CALLBACK_set
    - ERR_raise
    - sk_EX_CALLBACK_new_null
    - OPENSSL_free
    - sk_EX_CALLBACK_free
    - CRYPTO_THREAD_unlock
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_crypto_get_ex_new_index_ex(OSSL_LIB_CTX *ctx, int class_index,\n
      \                                   long argl, void *argp,\n                                    CRYPTO_EX_new
      *new_func,\n                                    CRYPTO_EX_dup *dup_func,\n                                    CRYPTO_EX_free
      *free_func,\n                                    int priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_crypto_get_ex_new_index_ex
      Src: /src/openssl-3.0.15/crypto/ex_data.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: CRYPTO_get_ex_new_index
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - ossl_crypto_get_ex_new_index_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:221,1
    - Dst: get_and_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:226,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:232,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ex_data.c:234,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ex_data.c:237,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-3.0.15/crypto/ex_data.c:240,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:242,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:245,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:250,1
    - Dst: new_func
      Src: /src/openssl-3.0.15/crypto/ex_data.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:256,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - class_index
    - obj
    - ad
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - void*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 258
    functionName: ossl_crypto_new_ex_data_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_num
    - CRYPTO_get_ex_data
    - OPENSSL_malloc
    - new_func
    - ossl_lib_ctx_get_ex_data_global
    - ERR_raise
    - OPENSSL_free
    - sk_EX_CALLBACK_value
    - get_and_lock
    - CRYPTO_THREAD_unlock
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int ossl_crypto_new_ex_data_ex(OSSL_LIB_CTX *ctx, int class_index,
      void *obj,\n                               CRYPTO_EX_DATA *ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_crypto_new_ex_data_ex
      Src: /src/openssl-3.0.15/crypto/ex_data.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - class_index
    - obj
    - ad
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: CRYPTO_new_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - ossl_crypto_new_ex_data_ex
    linkageType: ''
    returnType: int
    signature: int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:285,1
    - Dst: get_and_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:289,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:293,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:294,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ex_data.c:298,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ex_data.c:301,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-3.0.15/crypto/ex_data.c:304,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:306,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:311,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:321,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:321,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:325,1
    - Dst: dup_func
      Src: /src/openssl-3.0.15/crypto/ex_data.c:327,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:330,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:335,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - class_index
    - to
    - from
    argTypes:
    - int
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 337
    functionName: CRYPTO_dup_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    - sk_EX_CALLBACK_num
    - dup_func
    - CRYPTO_get_ex_data
    - OPENSSL_malloc
    - ossl_lib_ctx_get_ex_data_global
    - ERR_raise
    - OPENSSL_free
    - sk_void_num
    - sk_EX_CALLBACK_value
    - get_and_lock
    - CRYPTO_THREAD_unlock
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,\n                       const
      CRYPTO_EX_DATA *from)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 359
    functionName: ex_callback_compare
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ex_callback_compare(const void *a, const void *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:373,1
    - Dst: get_and_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:378,1
    - Dst: sk_EX_CALLBACK_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:382,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ex_data.c:384,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ex_data.c:387,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-3.0.15/crypto/ex_data.c:390,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:394,1
    - Dst: qsort
      Src: /src/openssl-3.0.15/crypto/ex_data.c:398,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:403,1
    - Dst: EX_CALLBACK*::free_func
      Src: /src/openssl-3.0.15/crypto/ex_data.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:410,1
    - Dst: sk_void_free
      Src: /src/openssl-3.0.15/crypto/ex_data.c:412,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - class_index
    - obj
    - ad
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 415
    functionName: CRYPTO_free_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - sk_EX_CALLBACK_num
    - CRYPTO_get_ex_data
    - OPENSSL_malloc
    - EX_CALLBACK*::free_func
    - ossl_lib_ctx_get_ex_data_global
    - sk_void_free
    - OPENSSL_free
    - sk_EX_CALLBACK_value
    - qsort
    - get_and_lock
    - CRYPTO_THREAD_unlock
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA
      *ad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ex_data.c:426,1
    - Dst: ossl_crypto_alloc_ex_data_intern
      Src: /src/openssl-3.0.15/crypto/ex_data.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - class_index
    - obj
    - ad
    - idx
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: CRYPTO_alloc_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached:
    - ossl_crypto_alloc_ex_data_intern
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA
      *ad,\n                         int idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_ex_data_global
      Src: /src/openssl-3.0.15/crypto/ex_data.c:441,1
    - Dst: get_and_lock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:445,1
    - Dst: sk_EX_CALLBACK_value
      Src: /src/openssl-3.0.15/crypto/ex_data.c:448,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ex_data.c:449,1
    - Dst: EX_CALLBACK*::new_func
      Src: /src/openssl-3.0.15/crypto/ex_data.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - class_index
    - obj
    - ad
    - idx
    argTypes:
    - int
    - void*
    - CRYPTO_EX_DATA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 461
    functionName: ossl_crypto_alloc_ex_data_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 1
    functionsReached:
    - ossl_lib_ctx_get_ex_data_global
    - EX_CALLBACK*::new_func
    - sk_EX_CALLBACK_value
    - CRYPTO_THREAD_unlock
    - get_and_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_crypto_alloc_ex_data_intern(int class_index, void *obj,\n
      \                                    CRYPTO_EX_DATA *ad, int idx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_void_new_null
      Src: /src/openssl-3.0.15/crypto/ex_data.c:472,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:473,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:478,1
    - Dst: sk_void_push
      Src: /src/openssl-3.0.15/crypto/ex_data.c:479,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:480,1
    - Dst: sk_void_set
      Src: /src/openssl-3.0.15/crypto/ex_data.c:484,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ex_data.c:486,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - ad
    - idx
    - val
    argTypes:
    - CRYPTO_EX_DATA*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 490
    functionName: CRYPTO_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 1
    functionsReached:
    - sk_void_push
    - sk_void_new_null
    - ERR_raise
    - sk_void_set
    - sk_void_num
    linkageType: ''
    returnType: int
    signature: int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/ex_data.c:498,1
    - Dst: sk_void_value
      Src: /src/openssl-3.0.15/crypto/ex_data.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ad
    - idx
    argTypes:
    - CRYPTO_EX_DATA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: CRYPTO_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 4
    functionsReached:
    - sk_void_value
    - sk_void_num
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ad
    argTypes:
    - CRYPTO_EX_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: ossl_crypto_ex_data_get_ossl_lib_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/ex_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_crypto_ex_data_get_ossl_lib_ctx(const CRYPTO_EX_DATA
      *ad)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/param_build.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:58,1
    - Dst: ossl_param_bytes_to_blocks
      Src: /src/openssl-3.0.15/crypto/param_build.c:64,1
    - Dst: sk_OSSL_PARAM_BLD_DEF_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/param_build.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - bld
    - key
    - size
    - alloc
    - type
    - secure
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - int
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: param_push
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - sk_OSSL_PARAM_BLD_DEF_push
    - ossl_param_bytes_to_blocks
    linkageType: ''
    returnType: OSSL_PARAM_BLD_DEF
    signature: "OSSL_PARAM_BLD_DEF *param_push(OSSL_PARAM_BLD *bld, const char *key,\n
      \                                     int size, size_t alloc, int type,\n                                      int
      secure)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: param_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:84,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/param_build.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - bld
    - key
    - num
    - size
    - type
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: param_push_num
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - param_push
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int param_push_num(OSSL_PARAM_BLD *bld, const char *key,\n                          void
      *num, size_t size, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/param_build.c:93,1
    - Dst: sk_OSSL_PARAM_BLD_DEF_new_null
      Src: /src/openssl-3.0.15/crypto/param_build.c:96,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/param_build.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: OSSL_PARAM_BLD_new
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_OSSL_PARAM_BLD_DEF_new_null
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_PARAM_BLD
    signature: OSSL_PARAM_BLD *OSSL_PARAM_BLD_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PARAM_BLD_DEF_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/param_build.c:110,1
    - Dst: sk_OSSL_PARAM_BLD_DEF_pop
      Src: /src/openssl-3.0.15/crypto/param_build.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bld
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: free_all_params
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_OSSL_PARAM_BLD_DEF_pop
    - sk_OSSL_PARAM_BLD_DEF_num
    linkageType: ''
    returnType: void
    signature: void free_all_params(OSSL_PARAM_BLD *bld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_all_params
      Src: /src/openssl-3.0.15/crypto/param_build.c:117,1
    - Dst: sk_OSSL_PARAM_BLD_DEF_free
      Src: /src/openssl-3.0.15/crypto/param_build.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/param_build.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bld
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: OSSL_PARAM_BLD_free
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - free_all_params
    - sk_OSSL_PARAM_BLD_DEF_free
    linkageType: ''
    returnType: void
    signature: void OSSL_PARAM_BLD_free(OSSL_PARAM_BLD *bld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: OSSL_PARAM_BLD_push_int
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: OSSL_PARAM_BLD_push_uint
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key,\n
      \                            unsigned int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: OSSL_PARAM_BLD_push_long
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key,\n
      \                            long int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: OSSL_PARAM_BLD_push_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key,\n
      \                             unsigned long int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: OSSL_PARAM_BLD_push_int32
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key,\n
      \                             int32_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: OSSL_PARAM_BLD_push_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key,\n
      \                              uint32_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: OSSL_PARAM_BLD_push_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key,\n
      \                             int64_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: OSSL_PARAM_BLD_push_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key,\n
      \                              uint64_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: OSSL_PARAM_BLD_push_size_t
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key,\n
      \                              size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: OSSL_PARAM_BLD_push_time_t
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_time_t(OSSL_PARAM_BLD *bld, const char *key,\n
      \                              time_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: param_push_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: OSSL_PARAM_BLD_push_double
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key,\n
      \                              double num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN_pad
      Src: /src/openssl-3.0.15/crypto/param_build.c:196,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/param_build.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bld
    - key
    - bn
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: OSSL_PARAM_BLD_push_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - BN_num_bytes
    - OSSL_PARAM_BLD_push_BN_pad
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,\n
      \                          const BIGNUM *bn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/param_build.c:207,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/param_build.c:208,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/param_build.c:213,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:215,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:219,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/param_build.c:222,1
    - Dst: param_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - bld
    - key
    - bn
    - sz
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - BIGNUM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 234
    functionName: OSSL_PARAM_BLD_push_BN_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 1
    functionsReached:
    - ERR_raise_data
    - ERR_raise
    - param_push
    - BN_get_flags
    - BN_num_bytes
    - BN_is_negative
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key,\n
      \                              const BIGNUM *bn, size_t sz)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/param_build.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:245,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/crypto/param_build.c:248,1
    - Dst: param_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - bld
    - key
    - buf
    - bsize
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 254
    functionName: OSSL_PARAM_BLD_push_utf8_string
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push
    - CRYPTO_secure_allocated
    - strlen
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char
      *key,\n                                    const char *buf, size_t bsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/param_build.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:264,1
    - Dst: param_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bld
    - key
    - buf
    - bsize
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: OSSL_PARAM_BLD_push_utf8_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push
    - strlen
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key,\n
      \                                char *buf, size_t bsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:281,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/crypto/param_build.c:284,1
    - Dst: param_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bld
    - key
    - buf
    - bsize
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 290
    functionName: OSSL_PARAM_BLD_push_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push
    - CRYPTO_secure_allocated
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char
      *key,\n                                     const void *buf, size_t bsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:298,1
    - Dst: param_push
      Src: /src/openssl-3.0.15/crypto/param_build.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bld
    - key
    - buf
    - bsize
    argTypes:
    - OSSL_PARAM_BLD*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 306
    functionName: OSSL_PARAM_BLD_push_octet_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - param_push
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char
      *key,\n                                  void *buf, size_t bsize)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PARAM_BLD_DEF_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:312,1
    - Dst: sk_OSSL_PARAM_BLD_DEF_value
      Src: /src/openssl-3.0.15/crypto/param_build.c:317,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/crypto/param_build.c:333,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/param_build.c:341,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/param_build.c:343,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/param_build.c:349,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/param_build.c:351,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/param_build.c:354,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - bld
    - param
    - blk
    - secure
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - OSSL_PARAM_ALIGNED_BLOCK*
    - OSSL_PARAM_ALIGNED_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 356
    functionName: param_bld_convert
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_PARAM_BLD_DEF_num
    - memcpy
    - sk_OSSL_PARAM_BLD_DEF_value
    - BN_bn2nativepad
    - OSSL_PARAM_construct_end
    - memset
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *param_bld_convert(OSSL_PARAM_BLD *bld, OSSL_PARAM *param,\n
      \                                    OSSL_PARAM_ALIGNED_BLOCK *blk,\n                                     OSSL_PARAM_ALIGNED_BLOCK
      *secure)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PARAM_BLD_DEF_num
      Src: /src/openssl-3.0.15/crypto/param_build.c:362,1
    - Dst: ossl_param_bytes_to_blocks
      Src: /src/openssl-3.0.15/crypto/param_build.c:363,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/crypto/param_build.c:368,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:370,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/param_build.c:374,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/param_build.c:376,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/crypto/param_build.c:377,1
    - Dst: param_bld_convert
      Src: /src/openssl-3.0.15/crypto/param_build.c:381,1
    - Dst: ossl_param_set_secure_block
      Src: /src/openssl-3.0.15/crypto/param_build.c:382,1
    - Dst: free_all_params
      Src: /src/openssl-3.0.15/crypto/param_build.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - bld
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 389
    functionName: OSSL_PARAM_BLD_to_param
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build.c
    functionUses: 0
    functionsReached:
    - ossl_param_set_secure_block
    - OPENSSL_secure_free
    - free_all_params
    - sk_OSSL_PARAM_BLD_DEF_num
    - OPENSSL_malloc
    - OPENSSL_secure_malloc
    - ERR_raise
    - param_bld_convert
    - ossl_param_bytes_to_blocks
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: CLEAR
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(p, s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:101,1
    - Dst: sh_init
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:104,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - size
    - minsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 116
    functionName: CRYPTO_secure_malloc_init
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - sh_init
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_malloc_init(size_t size, size_t minsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_done
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:122,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: CRYPTO_secure_malloc_done
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - sh_done
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_malloc_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: CRYPTO_secure_malloc_initialized
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_malloc_initialized(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:148,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:150,1
    - Dst: sh_malloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:152,1
    - Dst: sh_actual_size
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:153,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:155,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: CRYPTO_secure_malloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - sh_malloc
    - CRYPTO_malloc
    - sh_actual_size
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_secure_malloc(size_t num, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_malloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:167,1
    - Dst: CRYPTO_zalloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: CRYPTO_secure_zalloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_zalloc
    - CRYPTO_secure_malloc
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_secure_zalloc(size_t num, const char *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:179,1
    - Dst: CRYPTO_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:180,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:183,1
    - Dst: sh_actual_size
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:185,1
    - Dst: CLEAR
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:186,1
    - Dst: sh_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:188,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:189,1
    - Dst: CRYPTO_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: CRYPTO_secure_free
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_secure_allocated
    - sh_actual_size
    - sh_free
    - CLEAR
    - CRYPTO_free
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void CRYPTO_secure_free(void *ptr, const char *file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:203,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:204,1
    - Dst: CRYPTO_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:205,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:208,1
    - Dst: sh_actual_size
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:210,1
    - Dst: CLEAR
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:211,1
    - Dst: sh_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:213,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:214,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:218,1
    - Dst: CRYPTO_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ptr
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: CRYPTO_secure_clear_free
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_secure_allocated
    - sh_actual_size
    - OPENSSL_cleanse
    - sh_free
    - CLEAR
    - CRYPTO_free
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_secure_clear_free(void *ptr, size_t num,\n                              const
      char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_allocated
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 237
    functionName: CRYPTO_secure_allocated
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 5
    functionsReached:
    - sh_allocated
    linkageType: ''
    returnType: int
    signature: int CRYPTO_secure_allocated(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:244,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: CRYPTO_secure_used
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: size_t
    signature: size_t CRYPTO_secure_used(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:259,1
    - Dst: sh_actual_size
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:261,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: CRYPTO_secure_actual_size
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - sh_actual_size
    linkageType: ''
    returnType: size_t
    signature: size_t CRYPTO_secure_actual_size(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: TESTBIT
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTBIT(t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: SETBIT
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: CLEARBIT
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEARBIT(t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: WITHIN_ARENA
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHIN_ARENA(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: WITHIN_FREELIST
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITHIN_FREELIST(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TESTBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:330,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 336
    functionName: sh_getlist
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: size_t sh_getlist(char *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:343,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:344,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:346,1
    - Dst: TESTBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: sh_testbit
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: int sh_testbit(char *ptr, int list, unsigned char *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:354,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:355,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:357,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:358,1
    - Dst: TESTBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:358,1
    - Dst: CLEARBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: sh_clearbit
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - CLEARBIT
    - TESTBIT
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: void sh_clearbit(char *ptr, int list, unsigned char *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:366,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:367,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:369,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:370,1
    - Dst: TESTBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:370,1
    - Dst: SETBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - list
    - table
    argTypes:
    - char*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: sh_setbit
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    - OPENSSL_assert
    - SETBIT
    linkageType: ''
    returnType: void
    signature: void sh_setbit(char *ptr, int list, unsigned char *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:378,1
    - Dst: WITHIN_FREELIST
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:378,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:379,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:379,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:383,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:383,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - ptr
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 392
    functionName: sh_add_to_list
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - WITHIN_ARENA
    - WITHIN_FREELIST
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: void sh_add_to_list(char **list, char *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:406,1
    - Dst: WITHIN_FREELIST
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:406,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 407
    functionName: sh_remove_from_list
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - WITHIN_ARENA
    - WITHIN_FREELIST
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: void sh_remove_from_list(char *ptr)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:421,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:424,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:425,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:430,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:446,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:463,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:464,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:468,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:469,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:473,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:474,1
    - Dst: sysconf
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:482,1
    - Dst: sysconf
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:484,1
    - Dst: GetSystemInfo
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:492,1
    - Dst: mmap
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:501,1
    - Dst: open
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:508,1
    - Dst: mmap
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:509,1
    - Dst: close
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:511,1
    - Dst: VirtualAlloc
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:518,1
    - Dst: sh_setbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:525,1
    - Dst: sh_add_to_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:526,1
    - Dst: mprotect
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:533,1
    - Dst: VirtualProtect
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:536,1
    - Dst: mprotect
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:543,1
    - Dst: VirtualProtect
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:546,1
    - Dst: syscall
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:551,1
    - Dst: mlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:553,1
    - Dst: VirtualLock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:560,1
    - Dst: mlock
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:563,1
    - Dst: madvise
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:567,1
    - Dst: sh_done
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:574,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 101
    argCount: 2
    argNames:
    - size
    - minsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 576
    functionName: sh_init
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - GetSystemInfo
    - VirtualProtect
    - VirtualLock
    - OPENSSL_assert
    - sh_setbit
    - open
    - syscall
    - sh_done
    - OPENSSL_zalloc
    - mlock
    - madvise
    - sysconf
    - sh_add_to_list
    - mprotect
    - close
    - VirtualAlloc
    - memset
    - mmap
    linkageType: ''
    returnType: int
    signature: int sh_init(size_t size, size_t minsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:581,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:582,1
    - Dst: munmap
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:585,1
    - Dst: VirtualFree
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:588,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 591
    functionName: sh_done
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - memset
    - VirtualFree
    - munmap
    linkageType: ''
    returnType: void
    signature: void sh_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: sh_allocated
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - WITHIN_ARENA
    linkageType: ''
    returnType: int
    signature: int sh_allocated(const char *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TESTBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:606,1
    - Dst: TESTBIT
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - list
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 610
    functionName: sh_find_my_buddy
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 0
    functionsReached:
    - TESTBIT
    linkageType: ''
    returnType: char
    signature: char *sh_find_my_buddy(char *ptr, int list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:639,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:639,1
    - Dst: sh_clearbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:640,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:641,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:642,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:648,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:648,1
    - Dst: sh_setbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:649,1
    - Dst: sh_add_to_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:650,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:651,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:655,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:655,1
    - Dst: sh_setbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:656,1
    - Dst: sh_add_to_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:657,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:658,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:660,1
    - Dst: sh_find_my_buddy
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:660,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:665,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:665,1
    - Dst: sh_setbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:666,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:667,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:669,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:669,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:672,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 675
    functionName: sh_malloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 1
    functionsReached:
    - WITHIN_ARENA
    - sh_setbit
    - OPENSSL_assert
    - memset
    - sh_add_to_list
    - sh_find_my_buddy
    - sh_testbit
    - sh_clearbit
    - sh_remove_from_list
    linkageType: ''
    returnType: void
    signature: void *sh_malloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:684,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:684,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:685,1
    - Dst: sh_getlist
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:688,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:689,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:689,1
    - Dst: sh_clearbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:690,1
    - Dst: sh_add_to_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:691,1
    - Dst: sh_find_my_buddy
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:694,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:695,1
    - Dst: sh_find_my_buddy
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:695,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:696,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:697,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:697,1
    - Dst: sh_clearbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:698,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:699,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:700,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:700,1
    - Dst: sh_clearbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:701,1
    - Dst: sh_remove_from_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:702,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:707,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:711,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:711,1
    - Dst: sh_setbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:712,1
    - Dst: sh_add_to_list
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:713,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 716
    functionName: sh_free
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 2
    functionsReached:
    - WITHIN_ARENA
    - OPENSSL_assert
    - sh_setbit
    - memset
    - sh_add_to_list
    - sh_find_my_buddy
    - sh_getlist
    - sh_testbit
    - sh_clearbit
    - sh_remove_from_list
    linkageType: ''
    returnType: void
    signature: void sh_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:722,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:722,1
    - Dst: WITHIN_ARENA
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:723,1
    - Dst: sh_getlist
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:725,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:726,1
    - Dst: sh_testbit
      Src: /src/openssl-3.0.15/crypto/mem_sec.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: sh_actual_size
    functionSourceFile: /src/openssl-3.0.15/crypto/mem_sec.c
    functionUses: 4
    functionsReached:
    - sh_getlist
    - WITHIN_ARENA
    - sh_testbit
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: size_t sh_actual_size(char *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - key
    - base
    - num
    - size
    - flags
    argTypes:
    - void*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 44
    functionName: ossl_bsearch
    functionSourceFile: /src/openssl-3.0.15/crypto/bsearch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *ossl_bsearch(const void *key, const void *base, int num,\n                         int
      size, int (*cmp) (const void *, const void *),\n                         int
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkt
    - len
    - allocbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: WPACKET_allocate_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 1
    functionsReached:
    - WPACKET_reserve_bytes
    linkageType: ''
    returnType: int
    signature: int WPACKET_allocate_bytes(WPACKET *pkt, size_t len, unsigned char
      **allocbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_len__
      Src: /src/openssl-3.0.15/crypto/packet.c:29,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:30,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/packet.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - pkt
    - len
    - allocbytes
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: WPACKET_sub_allocate_bytes__
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_allocate_bytes
    - WPACKET_close
    - WPACKET_start_sub_packet_len__
    linkageType: ''
    returnType: int
    signature: "int WPACKET_sub_allocate_bytes__(WPACKET *pkt, size_t len,\n                                 unsigned
      char **allocbytes, size_t lenbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: GETBUF
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETBUF(p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:46,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/packet.c:65,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-3.0.15/crypto/packet.c:69,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - pkt
    - len
    - allocbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 75
    functionName: WPACKET_reserve_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_grow
    - ossl_assert
    - WPACKET_get_curr
    linkageType: ''
    returnType: int
    signature: int WPACKET_reserve_bytes(WPACKET *pkt, size_t len, unsigned char **allocbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_reserve_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - pkt
    - len
    - allocbytes
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: WPACKET_sub_reserve_bytes__
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_reserve_bytes
    linkageType: ''
    returnType: int
    signature: "int WPACKET_sub_reserve_bytes__(WPACKET *pkt, size_t len,\n                                unsigned
      char **allocbytes, size_t lenbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - lenbytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: maxmaxsize
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t maxmaxsize(size_t lenbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/packet.c:107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/packet.c:108,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/packet.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pkt
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: wpacket_intern_init_len
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ERR_raise
    - OPENSSL_zalloc
    - WPACKET_allocate_bytes
    linkageType: ''
    returnType: int
    signature: int wpacket_intern_init_len(WPACKET *pkt, size_t lenbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maxmaxsize
      Src: /src/openssl-3.0.15/crypto/packet.c:131,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:134,1
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-3.0.15/crypto/packet.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pkt
    - buf
    - len
    - lenbytes
    argTypes:
    - WPACKET*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: WPACKET_init_static_len
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - wpacket_intern_init_len
    - maxmaxsize
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int WPACKET_init_static_len(WPACKET *pkt, unsigned char *buf, size_t
      len,\n                            size_t lenbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:148,1
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-3.0.15/crypto/packet.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pkt
    - buf
    - len
    argTypes:
    - WPACKET*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: WPACKET_init_der
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - wpacket_intern_init_len
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_init_der(WPACKET *pkt, unsigned char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:162,1
    - Dst: maxmaxsize
      Src: /src/openssl-3.0.15/crypto/packet.c:167,1
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-3.0.15/crypto/packet.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pkt
    - buf
    - lenbytes
    argTypes:
    - WPACKET*
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: WPACKET_init_len
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - wpacket_intern_init_len
    - maxmaxsize
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_init_len(WPACKET *pkt, BUF_MEM *buf, size_t lenbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/crypto/packet.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - buf
    argTypes:
    - WPACKET*
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: WPACKET_init
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_init_len
    linkageType: ''
    returnType: int
    signature: int WPACKET_init(WPACKET *pkt, BUF_MEM *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maxmaxsize
      Src: /src/openssl-3.0.15/crypto/packet.c:182,1
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-3.0.15/crypto/packet.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pkt
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: WPACKET_init_null
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - wpacket_intern_init_len
    - maxmaxsize
    linkageType: ''
    returnType: int
    signature: int WPACKET_init_null(WPACKET *pkt, size_t lenbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wpacket_intern_init_len
      Src: /src/openssl-3.0.15/crypto/packet.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: WPACKET_init_null_der
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - wpacket_intern_init_len
    linkageType: ''
    returnType: int
    signature: int WPACKET_init_null_der(WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - flags
    argTypes:
    - WPACKET*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: WPACKET_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_set_flags(WPACKET *pkt, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - data
    - value
    - len
    argTypes:
    - unsigned char*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: put_value
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int put_value(unsigned char *data, uint64_t value, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GETBUF
      Src: /src/openssl-3.0.15/crypto/packet.c:262,1
    - Dst: put_value
      Src: /src/openssl-3.0.15/crypto/packet.c:265,1
    - Dst: WPACKET_put_bytes__
      Src: /src/openssl-3.0.15/crypto/packet.c:277,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/packet.c:281,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/packet.c:288,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 3
    argNames:
    - pkt
    - sub
    - doclose
    argTypes:
    - WPACKET*
    - WPACKET_SUB*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 292
    functionName: wpacket_intern_close
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_put_bytes__
    - put_value
    - GETBUF
    - WPACKET_put_bytes_u8
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int wpacket_intern_close(WPACKET *pkt, WPACKET_SUB *sub, int doclose)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:298,1
    - Dst: wpacket_intern_close
      Src: /src/openssl-3.0.15/crypto/packet.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 307
    functionName: WPACKET_fill_lengths
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - wpacket_intern_close
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_fill_lengths(WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wpacket_intern_close
      Src: /src/openssl-3.0.15/crypto/packet.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 319
    functionName: WPACKET_close
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 7
    functionsReached:
    - wpacket_intern_close
    linkageType: ''
    returnType: int
    signature: int WPACKET_close(WPACKET *pkt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wpacket_intern_close
      Src: /src/openssl-3.0.15/crypto/packet.c:332,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/packet.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 339
    functionName: WPACKET_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - wpacket_intern_close
    linkageType: ''
    returnType: int
    signature: int WPACKET_finish(WPACKET *pkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:347,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/packet.c:354,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/packet.c:355,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - pkt
    - lenbytes
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 375
    functionName: WPACKET_start_sub_packet_len__
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - ossl_assert
    - OPENSSL_zalloc
    - WPACKET_allocate_bytes
    linkageType: ''
    returnType: int
    signature: int WPACKET_start_sub_packet_len__(WPACKET *pkt, size_t lenbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_len__
      Src: /src/openssl-3.0.15/crypto/packet.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: WPACKET_start_sub_packet
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 6
    functionsReached:
    - WPACKET_start_sub_packet_len__
    linkageType: ''
    returnType: int
    signature: int WPACKET_start_sub_packet(WPACKET *pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:387,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:388,1
    - Dst: put_value
      Src: /src/openssl-3.0.15/crypto/packet.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - pkt
    - val
    - size
    argTypes:
    - WPACKET*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 393
    functionName: WPACKET_put_bytes__
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 2
    functionsReached:
    - put_value
    - ossl_assert
    - WPACKET_allocate_bytes
    linkageType: ''
    returnType: int
    signature: int WPACKET_put_bytes__(WPACKET *pkt, uint64_t val, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:401,1
    - Dst: maxmaxsize
      Src: /src/openssl-3.0.15/crypto/packet.c:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pkt
    - maxsize
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 418
    functionName: WPACKET_set_max_size
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - maxmaxsize
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_set_max_size(WPACKET *pkt, size_t maxsize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:427,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/packet.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pkt
    - ch
    - len
    argTypes:
    - WPACKET*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 434
    functionName: WPACKET_memset
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - memset
    - WPACKET_allocate_bytes
    linkageType: ''
    returnType: int
    signature: int WPACKET_memset(WPACKET *pkt, int ch, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/packet.c:443,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/packet.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pkt
    - src
    - len
    argTypes:
    - WPACKET*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 450
    functionName: WPACKET_memcpy
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 2
    functionsReached:
    - memcpy
    - WPACKET_allocate_bytes
    linkageType: ''
    returnType: int
    signature: int WPACKET_memcpy(WPACKET *pkt, const void *src, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_start_sub_packet_len__
      Src: /src/openssl-3.0.15/crypto/packet.c:455,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-3.0.15/crypto/packet.c:456,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/packet.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - pkt
    - src
    - len
    - lenbytes
    argTypes:
    - WPACKET*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 461
    functionName: WPACKET_sub_memcpy__
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - WPACKET_close
    - WPACKET_memcpy
    - WPACKET_start_sub_packet_len__
    linkageType: ''
    returnType: int
    signature: "int WPACKET_sub_memcpy__(WPACKET *pkt, const void *src, size_t len,\n
      \                        size_t lenbytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - written
    argTypes:
    - WPACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: WPACKET_get_total_written
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 2
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_get_total_written(WPACKET *pkt, size_t *written)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/packet.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - len
    argTypes:
    - WPACKET*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: WPACKET_get_length
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int WPACKET_get_length(WPACKET *pkt, size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GETBUF
      Src: /src/openssl-3.0.15/crypto/packet.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 496
    functionName: WPACKET_get_curr
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 1
    functionsReached:
    - GETBUF
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *WPACKET_get_curr(WPACKET *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: WPACKET_is_null_buf
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WPACKET_is_null_buf(WPACKET *pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/packet.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: WPACKET_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/packet.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void WPACKET_cleanup(WPACKET *pkt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: struct algorithm_data_st*::reserve_store
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:48,1
    - Dst: struct algorithm_data_st*::pre
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:56,1
    - Dst: struct algorithm_data_st*::fn
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:77,1
    - Dst: struct algorithm_data_st*::post
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:84,1
    - Dst: struct algorithm_data_st*::unreserve_store
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:91,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - provider
    - map
    - cur_operation
    - no_store
    - cbdata
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_ALGORITHM*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 94
    functionName: algorithm_do_map
    functionSourceFile: /src/openssl-3.0.15/crypto/core_algorithm.c
    functionUses: 0
    functionsReached:
    - struct algorithm_data_st*::post
    - struct algorithm_data_st*::pre
    - struct algorithm_data_st*::reserve_store
    - struct algorithm_data_st*::unreserve_store
    - struct algorithm_data_st*::fn
    linkageType: ''
    returnType: int
    signature: "int algorithm_do_map(OSSL_PROVIDER *provider, const OSSL_ALGORITHM
      *map,\n                            int cur_operation, int no_store, void *cbdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_query_operation
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:120,1
    - Dst: algorithm_do_map
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:122,1
    - Dst: ossl_provider_unquery_operation
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - provider
    - cbdata
    argTypes:
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 135
    functionName: algorithm_do_this
    functionSourceFile: /src/openssl-3.0.15/crypto/core_algorithm.c
    functionUses: 0
    functionsReached:
    - ossl_provider_query_operation
    - algorithm_do_map
    - ossl_provider_unquery_operation
    linkageType: ''
    returnType: int
    signature: int algorithm_do_this(OSSL_PROVIDER *provider, void *cbdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_doall_activated
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:162,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:164,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:171,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:171,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:172,1
    - Dst: algorithm_do_this
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - libctx
    - operation_id
    - provider
    - data
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 178
    functionName: ossl_algorithm_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/core_algorithm.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    - ossl_provider_doall_activated
    - algorithm_do_this
    - ossl_provider_libctx
    - ossl_assert
    linkageType: ''
    returnType: void
    signature: "void ossl_algorithm_do_all(OSSL_LIB_CTX *libctx, int operation_id,\n
      \                          OSSL_PROVIDER *provider,\n                           int
      (*pre)(OSSL_PROVIDER *, int operation_id,\n                                      int
      no_store, void *data, int *result),\n                           int (*reserve_store)(int
      no_store, void *data),\n                           void (*fn)(OSSL_PROVIDER
      *provider,\n                                      const OSSL_ALGORITHM *algo,\n
      \                                     int no_store, void *data),\n                           int
      (*unreserve_store)(void *data),\n                           int (*post)(OSSL_PROVIDER
      *, int operation_id,\n                                       int no_store, void
      *data, int *result),\n                           void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:189,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:191,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/core_algorithm.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - algo
    argTypes:
    - OSSL_ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: ossl_algorithm_get1_first_name
    functionSourceFile: /src/openssl-3.0.15/crypto/core_algorithm.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    - ERR_raise
    - OPENSSL_strndup
    linkageType: ''
    returnType: char
    signature: char *ossl_algorithm_get1_first_name(const OSSL_ALGORITHM *algo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/armcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-3.0.15/crypto/armcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: ill_handler
    functionSourceFile: /src/openssl-3.0.15/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void ill_handler(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _armv7_tick
      Src: /src/openssl-3.0.15/crypto/armcap.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-3.0.15/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - _armv7_tick
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_aux_info
      Src: /src/openssl-3.0.15/crypto/armcap.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: getauxval
    functionSourceFile: /src/openssl-3.0.15/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - elf_aux_info
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getauxval(unsigned long key)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/armcap.c:156,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/armcap.c:157,1
    - Dst: sysctlbyname
      Src: /src/openssl-3.0.15/crypto/armcap.c:183,1
    - Dst: getauxval
      Src: /src/openssl-3.0.15/crypto/armcap.c:190,1
    - Dst: getauxval
      Src: /src/openssl-3.0.15/crypto/armcap.c:191,1
    - Dst: sigfillset
      Src: /src/openssl-3.0.15/crypto/armcap.c:217,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/armcap.c:218,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/armcap.c:219,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/armcap.c:220,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/armcap.c:221,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/armcap.c:222,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/armcap.c:224,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/armcap.c:228,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/armcap.c:229,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:233,1
    - Dst: _armv7_neon_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:234,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:236,1
    - Dst: _armv8_pmull_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:237,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:239,1
    - Dst: _armv8_aes_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:240,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:243,1
    - Dst: _armv8_sha1_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:244,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:247,1
    - Dst: _armv8_sha256_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:248,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/armcap.c:252,1
    - Dst: _armv8_sha512_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:253,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/armcap.c:266,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/armcap.c:267,1
    - Dst: _armv8_cpuid_probe
      Src: /src/openssl-3.0.15/crypto/armcap.c:271,1
    - Dst: MIDR_IS_CPU_MODEL
      Src: /src/openssl-3.0.15/crypto/armcap.c:273,1
    - Dst: MIDR_IS_CPU_MODEL
      Src: /src/openssl-3.0.15/crypto/armcap.c:274,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 279
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/armcap.c
    functionUses: 0
    functionsReached:
    - _armv8_sha512_probe
    - sigsetjmp
    - sysctlbyname
    - sigaction
    - sigprocmask
    - _armv7_neon_probe
    - _armv8_sha1_probe
    - sigdelset
    - _armv8_cpuid_probe
    - _armv8_aes_probe
    - _armv8_pmull_probe
    - sigfillset
    - strtoul
    - getenv
    - _armv8_sha256_probe
    - memset
    - MIDR_IS_CPU_MODEL
    - getauxval
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fab
    - ','
    - naml
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: FAB_OR_NAML
    functionSourceFile: /src/openssl-3.0.15/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAB_OR_NAML( fab, naml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nam
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: SET_NAMX_NO_SHORT_UPCASE
    functionSourceFile: /src/openssl-3.0.15/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NAMX_NO_SHORT_UPCASE( nam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fab
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: NAMX_DNA_FNA_SET
    functionSourceFile: /src/openssl-3.0.15/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMX_DNA_FNA_SET(fab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fab
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: NAMX_DNA_FNA_SET
    functionSourceFile: /src/openssl-3.0.15/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMX_DNA_FNA_SET(fab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fab
    - ','
    - naml
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: FAB_OR_NAML
    functionSourceFile: /src/openssl-3.0.15/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAB_OR_NAML( fab, naml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nam
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SET_NAMX_NO_SHORT_UPCASE
    functionSourceFile: /src/openssl-3.0.15/crypto/vms_rms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NAMX_NO_SHORT_UPCASE( nam)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:96,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:101,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:105,1
    - Dst: opendir
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:112,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:115,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:123,1
    - Dst: readdir
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:129,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:134,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:138,1
    - Dst: isdigit
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:140,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:144,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 150
    functionName: LP_find_file
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_unix.c
    functionUses: 0
    functionsReached:
    - isdigit
    - free
    - opendir
    - strlen
    - OPENSSL_strlcpy
    - readdir
    - memset
    - strncpy
    - malloc
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:155,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/LPdir_unix.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_unix.c
    functionUses: 0
    functionsReached:
    - free
    - closedir
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: OPENSSL_init
    functionSourceFile: /src/openssl-3.0.15/crypto/o_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/context.c:50,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ossl_lib_ctx_write_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_write_lock(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/context.c:55,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: ossl_lib_ctx_read_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_read_lock(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:60,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: ossl_lib_ctx_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_unlock(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ossl_lib_ctx_is_child
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_is_child(OSSL_LIB_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/context.c:77,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/context.c:81,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/context.c:86,1
    - Dst: ossl_do_ex_data_init
      Src: /src/openssl-3.0.15/crypto/context.c:93,1
    - Dst: ossl_crypto_new_ex_data_ex
      Src: /src/openssl-3.0.15/crypto/context.c:97,1
    - Dst: ossl_property_parse_init
      Src: /src/openssl-3.0.15/crypto/context.c:102,1
    - Dst: ossl_crypto_cleanup_all_ex_data_int
      Src: /src/openssl-3.0.15/crypto/context.c:108,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/context.c:110,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/context.c:111,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/context.c:112,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/context.c:113,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 115
    functionName: context_init
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_crypto_new_ex_data_ex
    - memset
    - ossl_do_ex_data_init
    - CRYPTO_THREAD_lock_new
    - ossl_property_parse_init
    - CRYPTO_THREAD_lock_free
    - ossl_crypto_cleanup_all_ex_data_int
    linkageType: ''
    returnType: int
    signature: int context_init(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ctx_thread_stop
      Src: /src/openssl-3.0.15/crypto/context.c:125,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/context.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/context.c:132,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:134,1
    - Dst: ossl_crypto_cleanup_all_ex_data_int
      Src: /src/openssl-3.0.15/crypto/context.c:135,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/context.c:137,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/context.c:139,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/context.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 143
    functionName: context_deinit
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_ctx_thread_stop
    - OPENSSL_free
    - fn
    - CRYPTO_free_ex_data
    - CRYPTO_THREAD_lock_free
    - ossl_crypto_cleanup_all_ex_data_int
    linkageType: ''
    returnType: int
    signature: int context_deinit(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/context.c:154,1
    - Dst: context_init
      Src: /src/openssl-3.0.15/crypto/context.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    - context_init
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(default_context_do_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_deinit
      Src: /src/openssl-3.0.15/crypto/context.c:160,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/context.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: ossl_lib_ctx_default_deinit
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_cleanup_local
    - context_deinit
    linkageType: ''
    returnType: void
    signature: void ossl_lib_ctx_default_deinit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/context.c:166,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/context.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: get_thread_default_context
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    - RUN_ONCE
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *get_thread_default_context(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_thread_default_context
      Src: /src/openssl-3.0.15/crypto/context.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: get_default_context
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - get_thread_default_context
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *get_default_context(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/context.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - defctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: set_default_context
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    linkageType: ''
    returnType: int
    signature: int set_default_context(OSSL_LIB_CTX *defctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/context.c:192,1
    - Dst: context_init
      Src: /src/openssl-3.0.15/crypto/context.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/context.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: OSSL_LIB_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - context_init
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *OSSL_LIB_CTX_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/crypto/context.c:205,1
    - Dst: ossl_bio_init_core
      Src: /src/openssl-3.0.15/crypto/context.c:210,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/crypto/context.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - in
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 216
    functionName: OSSL_LIB_CTX_new_from_dispatch
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_bio_init_core
    - OSSL_LIB_CTX_new
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: "OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE
      *handle,\n                                             const OSSL_DISPATCH *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new_from_dispatch
      Src: /src/openssl-3.0.15/crypto/context.c:221,1
    - Dst: ossl_provider_init_as_child
      Src: /src/openssl-3.0.15/crypto/context.c:226,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/crypto/context.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - in
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: OSSL_LIB_CTX_new_child
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - ossl_provider_init_as_child
    - OSSL_LIB_CTX_new_from_dispatch
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: "OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle,\n
      \                                    const OSSL_DISPATCH *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_load_file_ex
      Src: /src/openssl-3.0.15/crypto/context.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - config_file
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: OSSL_LIB_CTX_load_config
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CONF_modules_load_file_ex
    linkageType: ''
    returnType: int
    signature: int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_is_default
      Src: /src/openssl-3.0.15/crypto/context.c:243,1
    - Dst: ossl_provider_deinit_child
      Src: /src/openssl-3.0.15/crypto/context.c:248,1
    - Dst: context_deinit
      Src: /src/openssl-3.0.15/crypto/context.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/context.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: OSSL_LIB_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - ossl_provider_deinit_child
    - context_deinit
    - ossl_lib_ctx_is_default
    linkageType: ''
    returnType: void
    signature: void OSSL_LIB_CTX_free(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/context.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: OSSL_LIB_CTX_get0_global_default
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_default_context
      Src: /src/openssl-3.0.15/crypto/context.c:267,1
    - Dst: set_default_context
      Src: /src/openssl-3.0.15/crypto/context.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: OSSL_LIB_CTX_set0_default
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - get_default_context
    - set_default_context
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:284,1
    - Dst: ossl_rand_ctx_free
      Src: /src/openssl-3.0.15/crypto/context.c:285,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: ossl_release_default_drbg_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_rand_ctx_free
    - CRYPTO_set_ex_data
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void ossl_release_default_drbg_ctx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_default_context
      Src: /src/openssl-3.0.15/crypto/context.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: ossl_lib_ctx_get_concrete
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 5
    functionsReached:
    - get_default_context
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_lib_ctx_get_concrete(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_default_context
      Src: /src/openssl-3.0.15/crypto/context.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: ossl_lib_ctx_is_default
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 1
    functionsReached:
    - get_default_context
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_is_default(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: ossl_lib_ctx_is_global_default
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_is_global_default(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_crypto_ex_data_get_ossl_lib_ctx
      Src: /src/openssl-3.0.15/crypto/context.c:323,1
    - Dst: OSSL_LIB_CTX_METHOD*::new_func
      Src: /src/openssl-3.0.15/crypto/context.c:324,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/context.c:327,1
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:333,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - parent_ign
    - ptr_ign
    - ad
    - index
    - argl_ign
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: ossl_lib_ctx_generic_new
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    - ossl_crypto_ex_data_get_ossl_lib_ctx
    - OSSL_LIB_CTX_METHOD*::new_func
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: "void ossl_lib_ctx_generic_new(void *parent_ign, void *ptr_ign,\n                                     CRYPTO_EX_DATA
      *ad, int index,\n                                     long argl_ign, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_METHOD*::free_func
      Src: /src/openssl-3.0.15/crypto/context.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent_ign
    - ptr
    - ad
    - index
    - argl_ign
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: ossl_lib_ctx_generic_free
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_METHOD*::free_func
    linkageType: ''
    returnType: void
    signature: "void ossl_lib_ctx_generic_free(void *parent_ign, void *ptr,\n                                      CRYPTO_EX_DATA
      *ad, int index,\n                                      long argl_ign, void *argp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:351,1
    - Dst: ossl_crypto_get_ex_new_index_ex
      Src: /src/openssl-3.0.15/crypto/context.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - static_index
    - meth
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - OSSL_LIB_CTX_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: ossl_lib_ctx_init_index
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    - ossl_crypto_get_ex_new_index_ex
    linkageType: ''
    returnType: int
    signature: "int ossl_lib_ctx_init_index(OSSL_LIB_CTX *ctx, int static_index,\n
      \                                  const OSSL_LIB_CTX_METHOD *meth)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:373,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/context.c:377,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:380,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/context.c:383,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/context.c:385,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:386,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:389,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:390,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:391,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/context.c:395,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/context.c:397,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:398,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:404,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:405,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:406,1
    - Dst: ossl_lib_ctx_init_index
      Src: /src/openssl-3.0.15/crypto/context.c:410,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:411,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:412,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:416,1
    - Dst: ossl_crypto_alloc_ex_data_intern
      Src: /src/openssl-3.0.15/crypto/context.c:428,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/context.c:430,1
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/context.c:432,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:433,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:437,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - index
    - meth
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - OSSL_LIB_CTX_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 439
    functionName: ossl_lib_ctx_get_data
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_init_index
    - ossl_lib_ctx_get_concrete
    - ossl_crypto_alloc_ex_data_intern
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: "void *ossl_lib_ctx_get_data(OSSL_LIB_CTX *ctx, int index,\n                            const
      OSSL_LIB_CTX_METHOD *meth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 447
    functionName: ossl_lib_ctx_get_ex_data_global
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 8
    functionsReached:
    - ossl_lib_ctx_get_concrete
    linkageType: ''
    returnType: OSSL_EX_DATA_GLOBAL
    signature: OSSL_EX_DATA_GLOBAL *ossl_lib_ctx_get_ex_data_global(OSSL_LIB_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/context.c:454,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/context.c:458,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:463,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/context.c:468,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:472,1
    - Dst: run_once_fn
      Src: /src/openssl-3.0.15/crypto/context.c:476,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/context.c:479,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idx
    - run_once_fn
    argTypes:
    - OSSL_LIB_CTX*
    - unsigned int
    - ossl_lib_ctx_run_once_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 482
    functionName: ossl_lib_ctx_run_once
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    - ossl_lib_ctx_get_concrete
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - run_once_fn
    linkageType: ''
    returnType: int
    signature: "int ossl_lib_ctx_run_once(OSSL_LIB_CTX *ctx, unsigned int idx,\n                          ossl_lib_ctx_run_once_fn
      run_once_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/context.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - onfreefn
    argTypes:
    - OSSL_LIB_CTX*
    - ossl_lib_ctx_onfree_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 497
    functionName: ossl_lib_ctx_onfree
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: int ossl_lib_ctx_onfree(OSSL_LIB_CTX *ctx, ossl_lib_ctx_onfree_fn onfreefn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_is_global_default
      Src: /src/openssl-3.0.15/crypto/context.c:504,1
    - Dst: ossl_lib_ctx_is_default
      Src: /src/openssl-3.0.15/crypto/context.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 510
    functionName: ossl_lib_ctx_get_descriptor
    functionSourceFile: /src/openssl-3.0.15/crypto/context.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_is_global_default
    - ossl_lib_ctx_is_default
    linkageType: ''
    returnType: char
    signature: char *ossl_lib_ctx_get_descriptor(OSSL_LIB_CTX *libctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/passphrase.c:20,1
    - Dst: ossl_pw_clear_passphrase_cache
      Src: /src/openssl-3.0.15/crypto/passphrase.c:22,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/passphrase.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ossl_passphrase_data_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: ossl_pw_clear_passphrase_data
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - memset
    - ossl_pw_clear_passphrase_cache
    linkageType: ''
    returnType: void
    signature: void ossl_pw_clear_passphrase_data(struct ossl_passphrase_data_st *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/passphrase.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ossl_passphrase_data_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ossl_pw_clear_passphrase_cache
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 1
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void ossl_pw_clear_passphrase_cache(struct ossl_passphrase_data_st
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/passphrase.c:37,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:38,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:41,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/passphrase.c:44,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/passphrase.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - data
    - passphrase
    - passphrase_len
    argTypes:
    - struct ossl_passphrase_data_st*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: ossl_pw_set_passphrase
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_memdup
    - ossl_pw_clear_passphrase_data
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_set_passphrase(struct ossl_passphrase_data_st *data,\n
      \                          const unsigned char *passphrase,\n                           size_t
      passphrase_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/passphrase.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:58,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - cb
    - cbarg
    argTypes:
    - struct ossl_passphrase_data_st*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: ossl_pw_set_pem_password_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    - ossl_pw_clear_passphrase_data
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_set_pem_password_cb(struct ossl_passphrase_data_st *data,\n
      \                               pem_password_cb *cb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/passphrase.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:72,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - cb
    - cbarg
    argTypes:
    - struct ossl_passphrase_data_st*
    - OSSL_PASSPHRASE_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: ossl_pw_set_ossl_passphrase_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    - ossl_pw_clear_passphrase_data
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_set_ossl_passphrase_cb(struct ossl_passphrase_data_st
      *data,\n                                   OSSL_PASSPHRASE_CALLBACK *cb, void
      *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/passphrase.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:86,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - ui_method
    - ui_data
    argTypes:
    - struct ossl_passphrase_data_st*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: ossl_pw_set_ui_method
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    - ossl_pw_clear_passphrase_data
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_set_ui_method(struct ossl_passphrase_data_st *data,\n
      \                         const UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ossl_passphrase_data_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: ossl_pw_enable_passphrase_caching
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_pw_enable_passphrase_caching(struct ossl_passphrase_data_st
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ossl_passphrase_data_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: ossl_pw_disable_passphrase_caching
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_pw_disable_passphrase_caching(struct ossl_passphrase_data_st
      *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/passphrase.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:128,1
    - Dst: UI_new
      Src: /src/openssl-3.0.15/crypto/passphrase.c:132,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:133,1
    - Dst: UI_set_method
      Src: /src/openssl-3.0.15/crypto/passphrase.c:138,1
    - Dst: UI_add_user_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:140,1
    - Dst: UI_construct_prompt
      Src: /src/openssl-3.0.15/crypto/passphrase.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:146,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/passphrase.c:151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:153,1
    - Dst: UI_add_input_string
      Src: /src/openssl-3.0.15/crypto/passphrase.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:161,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/passphrase.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:169,1
    - Dst: UI_add_verify_string
      Src: /src/openssl-3.0.15/crypto/passphrase.c:172,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:177,1
    - Dst: UI_process
      Src: /src/openssl-3.0.15/crypto/passphrase.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:187,1
    - Dst: UI_get_result_length
      Src: /src/openssl-3.0.15/crypto/passphrase.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:192,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/passphrase.c:196,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/passphrase.c:202,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/passphrase.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/passphrase.c:204,1
    - Dst: UI_free
      Src: /src/openssl-3.0.15/crypto/passphrase.c:205,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 7
    argNames:
    - pass
    - pass_size
    - pass_len
    - prompt_info
    - verify
    - ui_method
    - ui_data
    argTypes:
    - char*
    - size_t
    - size_t*
    - char*
    - int
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 207
    functionName: do_ui_passphrase
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - UI_set_method
    - memcpy
    - UI_get_result_length
    - UI_add_user_data
    - UI_new
    - ERR_raise
    - OPENSSL_zalloc
    - UI_process
    - OPENSSL_clear_free
    - OPENSSL_free
    - UI_free
    - UI_add_input_string
    - UI_construct_prompt
    - UI_add_verify_string
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int do_ui_passphrase(char *pass, size_t pass_size, size_t *pass_len,\n
      \                           const char *prompt_info, int verify,\n                            const
      UI_METHOD *ui_method, void *ui_data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/passphrase.c:236,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/passphrase.c:247,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/passphrase.c:253,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:256,1
    - Dst: UI_UTIL_wrap_read_pem_callback
      Src: /src/openssl-3.0.15/crypto/passphrase.c:268,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:272,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/passphrase.c:281,1
    - Dst: do_ui_passphrase
      Src: /src/openssl-3.0.15/crypto/passphrase.c:286,1
    - Dst: UI_destroy_method
      Src: /src/openssl-3.0.15/crypto/passphrase.c:289,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-3.0.15/crypto/passphrase.c:296,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/passphrase.c:301,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/passphrase.c:302,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/passphrase.c:307,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 6
    argNames:
    - pass
    - pass_size
    - pass_len
    - params
    - verify
    - data
    argTypes:
    - char*
    - size_t
    - size_t*
    - OSSL_PARAM[]
    - int
    - struct ossl_passphrase_data_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 313
    functionName: ossl_pw_get_passphrase
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - memcpy
    - do_ui_passphrase
    - OPENSSL_clear_realloc
    - UI_UTIL_wrap_read_pem_callback
    - OPENSSL_cleanse
    - ERR_raise_data
    - ERR_raise
    - OSSL_PARAM_locate_const
    - cb
    - UI_destroy_method
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_get_passphrase(char *pass, size_t pass_size, size_t *pass_len,\n
      \                          const OSSL_PARAM params[], int verify,\n                           struct
      ossl_passphrase_data_st *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_utf8_string
      Src: /src/openssl-3.0.15/crypto/passphrase.c:320,1
    - Dst: ossl_pw_get_passphrase
      Src: /src/openssl-3.0.15/crypto/passphrase.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    - info
    argTypes:
    - char*
    - int
    - int
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: ossl_pw_get_password
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_pw_get_passphrase
    - OSSL_PARAM_utf8_string
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_get_password(char *buf, int size, int rwflag,\n                                void
      *userdata, const char *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_get_password
      Src: /src/openssl-3.0.15/crypto/passphrase.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: ossl_pw_pem_password
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_pw_get_password
    linkageType: ''
    returnType: int
    signature: int ossl_pw_pem_password(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_get_password
      Src: /src/openssl-3.0.15/crypto/passphrase.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: ossl_pw_pvk_password
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_pw_get_password
    linkageType: ''
    returnType: int
    signature: int ossl_pw_pvk_password(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_get_passphrase
      Src: /src/openssl-3.0.15/crypto/passphrase.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pass
    - pass_size
    - pass_len
    - params
    - arg
    argTypes:
    - char*
    - size_t
    - size_t*
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: ossl_pw_passphrase_callback_enc
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_pw_get_passphrase
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_passphrase_callback_enc(char *pass, size_t pass_size,\n
      \                                   size_t *pass_len,\n                                    const
      OSSL_PARAM params[], void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_get_passphrase
      Src: /src/openssl-3.0.15/crypto/passphrase.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pass
    - pass_size
    - pass_len
    - params
    - arg
    argTypes:
    - char*
    - size_t
    - size_t*
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: ossl_pw_passphrase_callback_dec
    functionSourceFile: /src/openssl-3.0.15/crypto/passphrase.c
    functionUses: 0
    functionsReached:
    - ossl_pw_get_passphrase
    linkageType: ''
    returnType: int
    signature: "int ossl_pw_passphrase_callback_dec(char *pass, size_t pass_size,\n
      \                                   size_t *pass_len,\n                                    const
      OSSL_PARAM params[], void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cpt_err.c:66,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/cpt_err.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ossl_err_load_CRYPTO_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/cpt_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_CRYPTO_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: ossl_toascii
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_toascii(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: ossl_fromascii
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_fromascii(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/ctype.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - c
    - mask
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: ossl_ctype_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_toascii
    linkageType: ''
    returnType: int
    signature: int ossl_ctype_check(int c, unsigned int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: ASCII_IS_DIGIT
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCII_IS_DIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: ASCII_IS_UPPER
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCII_IS_UPPER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: ASCII_IS_LOWER
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCII_IS_LOWER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/ctype.c:271,1
    - Dst: ASCII_IS_DIGIT
      Src: /src/openssl-3.0.15/crypto/ctype.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: ossl_isdigit
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 1
    functionsReached:
    - ossl_toascii
    - ASCII_IS_DIGIT
    linkageType: ''
    returnType: int
    signature: int ossl_isdigit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/ctype.c:278,1
    - Dst: ASCII_IS_UPPER
      Src: /src/openssl-3.0.15/crypto/ctype.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: ossl_isupper
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_toascii
    - ASCII_IS_UPPER
    linkageType: ''
    returnType: int
    signature: int ossl_isupper(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/ctype.c:285,1
    - Dst: ASCII_IS_LOWER
      Src: /src/openssl-3.0.15/crypto/ctype.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: ossl_islower
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_toascii
    - ASCII_IS_LOWER
    linkageType: ''
    returnType: int
    signature: int ossl_islower(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/ctype.c:298,1
    - Dst: ASCII_IS_UPPER
      Src: /src/openssl-3.0.15/crypto/ctype.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: ossl_tolower
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_toascii
    - ASCII_IS_UPPER
    linkageType: ''
    returnType: int
    signature: int ossl_tolower(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/ctype.c:305,1
    - Dst: ASCII_IS_LOWER
      Src: /src/openssl-3.0.15/crypto/ctype.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: ossl_toupper
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ossl_toascii
    - ASCII_IS_LOWER
    linkageType: ''
    returnType: int
    signature: int ossl_toupper(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASCII_IS_DIGIT
      Src: /src/openssl-3.0.15/crypto/ctype.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: ossl_ascii_isdigit
    functionSourceFile: /src/openssl-3.0.15/crypto/ctype.c
    functionUses: 0
    functionsReached:
    - ASCII_IS_DIGIT
    linkageType: ''
    returnType: int
    signature: int ossl_ascii_isdigit(int c)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:83,1
    - Dst: malloc
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:90,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:95,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:107,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:110,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:113,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:123,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:124,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:126,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:139,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:145,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:146,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:146,1
    - Dst: _tcscpy
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:147,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:147,1
    - Dst: _tcscpy
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:149,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:149,1
    - Dst: FindFirstFile
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:152,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:155,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:157,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:159,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:161,1
    - Dst: FindFirstFile
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:166,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:170,1
    - Dst: FindNextFile
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:176,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:189,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:196,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 202
    functionName: LP_find_file
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_win.c
    functionUses: 0
    functionsReached:
    - FindNextFile
    - MultiByteToWideChar
    - free
    - _alloca
    - TEXT
    - WideCharToMultiByte
    - GetLastError
    - strlen
    - _tcscpy
    - strcpy
    - memset
    - strncpy
    - malloc
    - FindFirstFile
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:207,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/LPdir_win.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_win.c
    functionUses: 0
    functionsReached:
    - FindClose
    - free
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/info.c:46,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/info.c:52,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/info.c:53,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:53,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:54,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/info.c:59,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/info.c:61,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/info.c:62,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:62,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:63,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/info.c:68,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/info.c:97,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/info.c:98,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:98,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:99,1
    - Dst: add_seeds_string
      Src: /src/openssl-3.0.15/crypto/info.c:132,1
    - Dst: add_seeds_string
      Src: /src/openssl-3.0.15/crypto/info.c:135,1
    - Dst: add_seeds_string
      Src: /src/openssl-3.0.15/crypto/info.c:138,1
    - Dst: add_seeds_string
      Src: /src/openssl-3.0.15/crypto/info.c:141,1
    - Dst: add_seeds_string
      Src: /src/openssl-3.0.15/crypto/info.c:144,1
    - Dst: add_seeds_stringlist
      Src: /src/openssl-3.0.15/crypto/info.c:147,1
    - Dst: add_seeds_stringlist
      Src: /src/openssl-3.0.15/crypto/info.c:150,1
    - Dst: add_seeds_string
      Src: /src/openssl-3.0.15/crypto/info.c:153,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 158
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/info.c
    functionUses: 0
    functionsReached:
    - add_seeds_string
    - BIO_snprintf
    - add_seeds_stringlist
    - strlen
    - getenv
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(init_info_strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: add_seeds_string
    functionSourceFile: /src/openssl-3.0.15/crypto/info.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_seeds_string(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - strlist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: add_seeds_stringlist
    functionSourceFile: /src/openssl-3.0.15/crypto/info.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_seeds_stringlist(label, strlist)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/info.c:167,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/info.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 207
    functionName: OPENSSL_info
    functionSourceFile: /src/openssl-3.0.15/crypto/info.c
    functionUses: 0
    functionsReached:
    - strlen
    - RUN_ONCE
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_info(int t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/threads_none.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 3
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/threads_none.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 5
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: __owur
    signature: __owur CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/threads_none.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 11
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: __owur
    signature: __owur CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/threads_none.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 18
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/threads_none.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/openssl-3.0.15/crypto/threads_none.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - init
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - val
    - op
    - ret
    - lock
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: CRYPTO_atomic_or
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,\n
      \                    CRYPTO_RWLOCK *lock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - uint64_t*
    - uint64_t*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: CRYPTO_atomic_load
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: openssl_init_fork_handlers
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_init_fork_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-3.0.15/crypto/threads_none.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: openssl_get_fork_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_none.c
    functionUses: 0
    functionsReached:
    - getpid
    linkageType: ''
    returnType: int
    signature: int openssl_get_fork_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_core.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OSSL_PROVIDER**
    - OSSL_PROVIDER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: ossl_provider_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_cmp(const OSSL_PROVIDER * const *a,\n                             const
      OSSL_PROVIDER * const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:238,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: provider_deactivate_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_provider_free
    - ossl_provider_deactivate
    linkageType: ''
    returnType: void
    signature: void provider_deactivate_free(OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - OSSL_PROVIDER_CHILD_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ossl_provider_child_cb_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ossl_provider_child_cb_free(OSSL_PROVIDER_CHILD_CB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:252,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pair
    argTypes:
    - INFOPAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: infopair_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void infopair_free(INFOPAIR *pair)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:258,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:263,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:268,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - src
    argTypes:
    - INFOPAIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 277
    functionName: infopair_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - OPENSSL_zalloc
    linkageType: ''
    returnType: INFOPAIR
    signature: INFOPAIR *infopair_copy(const INFOPAIR *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:281,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:282,1
    - Dst: sk_INFOPAIR_pop_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_PROVIDER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: ossl_provider_info_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - sk_INFOPAIR_pop_free
    linkageType: ''
    returnType: void
    signature: void ossl_provider_info_clear(OSSL_PROVIDER_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:294,1
    - Dst: sk_OSSL_PROVIDER_pop_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:295,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_pop_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:297,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:300,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:301,1
    - Dst: ossl_provider_info_clear
      Src: /src/openssl-3.0.15/crypto/provider_core.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:304,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - vstore
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 306
    functionName: provider_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_provider_info_clear
    - sk_OSSL_PROVIDER_CHILD_CB_pop_free
    - OPENSSL_free
    - sk_OSSL_PROVIDER_pop_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void provider_store_free(void *vstore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:310,1
    - Dst: sk_OSSL_PROVIDER_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:313,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:314,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_new_null
      Src: /src/openssl-3.0.15/crypto/provider_core.c:316,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:318,1
    - Dst: provider_store_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 326
    functionName: provider_store_new
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - provider_store_free
    - sk_OSSL_PROVIDER_CHILD_CB_new_null
    - sk_OSSL_PROVIDER_new
    - OPENSSL_zalloc
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void *provider_store_new(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_core.c:339,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 6
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: get_provider_store
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    - ERR_raise
    linkageType: ''
    returnType: struct provider_store_st
    signature: struct provider_store_st *get_provider_store(OSSL_LIB_CTX *libctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:350,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:351,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 7
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: ossl_provider_disable_fallback_loading
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_provider_disable_fallback_loading(OSSL_LIB_CTX *libctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:365,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:369,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:374,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:378,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:381,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:384,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:392,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:395,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - libctx
    - entry
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_PROVIDER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 362
    functionDepth: 7
    functionLinenumber: 362
    functionLinenumberEnd: 408
    functionName: ossl_provider_info_add_to_store
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_realloc
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_info_add_to_store(OSSL_LIB_CTX *libctx,\n                                    OSSL_PROVIDER_INFO
      *entry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:416,1
    - Dst: ossl_lib_ctx_is_default
      Src: /src/openssl-3.0.15/crypto/provider_core.c:426,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/provider_core.c:427,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:436,1
    - Dst: sk_OSSL_PROVIDER_find
      Src: /src/openssl-3.0.15/crypto/provider_core.c:438,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:439,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:440,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/provider_core.c:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - libctx
    - name
    - noconfig
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - ossl_unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 410
    functionDepth: 7
    functionLinenumber: 410
    functionLinenumberEnd: 446
    functionName: ossl_provider_find
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - ossl_provider_up_ref
    - ossl_lib_ctx_is_default
    - OPENSSL_init_crypto
    - sk_OSSL_PROVIDER_value
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - sk_OSSL_PROVIDER_find
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: "OSSL_PROVIDER *ossl_provider_find(OSSL_LIB_CTX *libctx, const char
      *name,\n                                  ossl_unused int noconfig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:459,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:461,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:464,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:465,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:471,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:472,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:473,1
    - Dst: sk_INFOPAIR_deep_copy
      Src: /src/openssl-3.0.15/crypto/provider_core.c:474,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:477,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - name
    - init_function
    - parameters
    argTypes:
    - char*
    - OSSL_provider_init_fn*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 485
    functionName: provider_new
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_new
    - sk_INFOPAIR_deep_copy
    - OPENSSL_strdup
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: "OSSL_PROVIDER *provider_new(const char *name,\n                                   OSSL_provider_init_fn
      *init_function,\n                                   STACK_OF(INFOPAIR) *parameters)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/provider_core.c:491,1
    - Dst: ossl_provider_up_ref_parent
      Src: /src/openssl-3.0.15/crypto/provider_core.c:496,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 504
    functionName: ossl_provider_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - ossl_provider_up_ref_parent
    - ossl_provider_free
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int ossl_provider_up_ref(OSSL_PROVIDER *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:510,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/provider_core.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - prov
    - activate
    argTypes:
    - OSSL_PROVIDER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 513
    functionName: provider_up_ref_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_provider_activate
    - ossl_provider_up_ref
    linkageType: ''
    returnType: int
    signature: int provider_up_ref_intern(OSSL_PROVIDER *prov, int activate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:518,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - prov
    - deactivate
    argTypes:
    - OSSL_PROVIDER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: provider_free_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_provider_free
    - ossl_provider_deactivate
    linkageType: ''
    returnType: int
    signature: int provider_free_intern(OSSL_PROVIDER *prov, int deactivate)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:538,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/provider_core.c:541,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_core.c:548,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:555,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_core.c:558,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:563,1
    - Dst: provider_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:570,1
    - Dst: ossl_provider_set_module_path
      Src: /src/openssl-3.0.15/crypto/provider_core.c:575,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:576,1
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/crypto/provider_core.c:582,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - libctx
    - name
    - init_function
    - noconfig
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - OSSL_provider_init_fn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 530
    functionDepth: 7
    functionLinenumber: 530
    functionLinenumberEnd: 592
    functionName: ossl_provider_new
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - provider_new
    - ossl_provider_set_module_path
    - ossl_provider_free
    - strcmp
    - CRYPTO_THREAD_read_lock
    - get_provider_store
    - memset
    - ERR_get_next_error_library
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: "OSSL_PROVIDER *ossl_provider_new(OSSL_LIB_CTX *libctx, const char
      *name,\n                                 OSSL_provider_init_fn *init_function,\n
      \                                int noconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:603,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:609,1
    - Dst: OSSL_PROVIDER_CHILD_CB*::create_cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 615
    functionName: create_provider_children
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_PROVIDER_CHILD_CB_num
    - sk_OSSL_PROVIDER_CHILD_CB_value
    - OSSL_PROVIDER_CHILD_CB*::create_cb
    linkageType: ''
    returnType: int
    signature: int create_provider_children(OSSL_PROVIDER *prov)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:628,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:631,1
    - Dst: sk_OSSL_PROVIDER_find
      Src: /src/openssl-3.0.15/crypto/provider_core.c:635,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:639,1
    - Dst: sk_OSSL_PROVIDER_push
      Src: /src/openssl-3.0.15/crypto/provider_core.c:642,1
    - Dst: create_provider_children
      Src: /src/openssl-3.0.15/crypto/provider_core.c:645,1
    - Dst: sk_OSSL_PROVIDER_delete_ptr
      Src: /src/openssl-3.0.15/crypto/provider_core.c:646,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:653,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/provider_core.c:656,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:657,1
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:675,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:676,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:682,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - prov
    - actualprov
    - retain_fallbacks
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_PROVIDER**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 617
    functionDepth: 7
    functionLinenumber: 617
    functionLinenumberEnd: 684
    functionName: ossl_provider_add_to_store
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - ossl_provider_up_ref
    - ossl_provider_deactivate
    - create_provider_children
    - ERR_raise
    - sk_OSSL_PROVIDER_delete_ptr
    - sk_OSSL_PROVIDER_value
    - sk_OSSL_PROVIDER_push
    - ossl_provider_free
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - sk_OSSL_PROVIDER_find
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_add_to_store(OSSL_PROVIDER *prov, OSSL_PROVIDER
      **actualprov,\n                               int retain_fallbacks)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/provider_core.c:691,1
    - Dst: ossl_provider_teardown
      Src: /src/openssl-3.0.15/crypto/provider_core.c:703,1
    - Dst: ERR_unload_strings
      Src: /src/openssl-3.0.15/crypto/provider_core.c:707,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:708,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:713,1
    - Dst: ossl_init_thread_deregister
      Src: /src/openssl-3.0.15/crypto/provider_core.c:725,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:726,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:728,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:729,1
    - Dst: sk_INFOPAIR_pop_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:730,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:731,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:732,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:734,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:736,1
    - Dst: ossl_provider_free_parent
      Src: /src/openssl-3.0.15/crypto/provider_core.c:740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 744
    functionName: ossl_provider_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 8
    functionsReached:
    - sk_INFOPAIR_pop_free
    - ossl_provider_teardown
    - CRYPTO_DOWN_REF
    - OPENSSL_free
    - DSO_free
    - ossl_init_thread_deregister
    - ossl_provider_free_parent
    - ERR_unload_strings
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void ossl_provider_free(OSSL_PROVIDER *prov)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:749,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:753,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - prov
    - module_path
    argTypes:
    - OSSL_PROVIDER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: ossl_provider_set_module_path
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_provider_set_module_path(OSSL_PROVIDER *prov, const char *module_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infopair_add
      Src: /src/openssl-3.0.15/crypto/provider_core.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - name
    - value
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 785
    functionName: ossl_provider_add_parameter
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - infopair_add
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_add_parameter(OSSL_PROVIDER *prov,\n                                const
      char *name, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: infopair_add
      Src: /src/openssl-3.0.15/crypto/provider_core.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - provinfo
    - name
    - value
    argTypes:
    - OSSL_PROVIDER_INFO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 792
    functionName: ossl_provider_info_add_parameter
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - infopair_add
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_info_add_parameter(OSSL_PROVIDER_INFO *provinfo,\n
      \                                    const char *name,\n                                     const
      char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:815,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:817,1
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:821,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:822,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:823,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:825,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - libctx
    - path
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 808
    functionDepth: 7
    functionLinenumber: 808
    functionLinenumberEnd: 830
    functionName: OSSL_PROVIDER_set_default_search_path
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_free
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int OSSL_PROVIDER_set_default_search_path(OSSL_LIB_CTX *libctx,\n
      \                                         const char *path)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/provider_core.c:848,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:849,1
    - Dst: DSO_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:869,1
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:874,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:875,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:879,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:880,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:882,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:887,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/provider_core.c:891,1
    - Dst: DSO_ctrl
      Src: /src/openssl-3.0.15/crypto/provider_core.c:896,1
    - Dst: DSO_convert_filename
      Src: /src/openssl-3.0.15/crypto/provider_core.c:902,1
    - Dst: DSO_merge
      Src: /src/openssl-3.0.15/crypto/provider_core.c:904,1
    - Dst: DSO_load
      Src: /src/openssl-3.0.15/crypto/provider_core.c:907,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:908,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:912,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:913,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:914,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/provider_core.c:919,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/provider_core.c:925,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/provider_core.c:931,1
    - Dst: OSSL_PROVIDER*::init_function
      Src: /src/openssl-3.0.15/crypto/provider_core.c:937,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/provider_core.c:939,1
    - Dst: OSSL_FUNC_provider_teardown
      Src: /src/openssl-3.0.15/crypto/provider_core.c:951,1
    - Dst: OSSL_FUNC_provider_gettable_params
      Src: /src/openssl-3.0.15/crypto/provider_core.c:955,1
    - Dst: OSSL_FUNC_provider_get_params
      Src: /src/openssl-3.0.15/crypto/provider_core.c:959,1
    - Dst: OSSL_FUNC_provider_self_test
      Src: /src/openssl-3.0.15/crypto/provider_core.c:963,1
    - Dst: OSSL_FUNC_provider_get_capabilities
      Src: /src/openssl-3.0.15/crypto/provider_core.c:967,1
    - Dst: OSSL_FUNC_provider_query_operation
      Src: /src/openssl-3.0.15/crypto/provider_core.c:971,1
    - Dst: OSSL_FUNC_provider_unquery_operation
      Src: /src/openssl-3.0.15/crypto/provider_core.c:975,1
    - Dst: OSSL_FUNC_provider_get_reason_strings
      Src: /src/openssl-3.0.15/crypto/provider_core.c:981,1
    - Dst: p_get_reason_strings
      Src: /src/openssl-3.0.15/crypto/provider_core.c:992,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1004,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1012,1
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1019,1
    - Dst: ERR_load_strings
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1030,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 123
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 837
    functionDepth: 7
    functionLinenumber: 837
    functionLinenumberEnd: 1041
    functionName: provider_init
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    - DSO_load
    - DSO_convert_filename
    - DSO_new
    - OSSL_FUNC_provider_get_reason_strings
    - ossl_assert
    - CRYPTO_THREAD_read_lock
    - ERR_raise_data
    - OSSL_FUNC_provider_teardown
    - p_get_reason_strings
    - ossl_safe_getenv
    - OPENSSL_strdup
    - get_provider_store
    - CRYPTO_THREAD_unlock
    - OSSL_FUNC_provider_get_capabilities
    - ERR_PACK
    - OSSL_FUNC_provider_self_test
    - ERR_raise
    - OSSL_FUNC_provider_get_params
    - OPENSSL_free
    - DSO_free
    - OSSL_FUNC_provider_query_operation
    - OSSL_PROVIDER*::init_function
    - DSO_merge
    - OPENSSL_zalloc
    - OSSL_FUNC_provider_gettable_params
    - ERR_load_strings
    - OSSL_FUNC_provider_unquery_operation
    - DSO_ctrl
    - DSO_bind_func
    linkageType: ''
    returnType: int
    signature: int provider_init(OSSL_PROVIDER *prov)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1059,1
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1066,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1070,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1072,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1073,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1098,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1102,1
    - Dst: OSSL_PROVIDER_CHILD_CB*::remove_cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1103,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1108,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1109,1
    - Dst: ossl_provider_free_parent
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1113,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - prov
    - upcalls
    - removechildren
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1049
    functionDepth: 7
    functionLinenumber: 1049
    functionLinenumberEnd: 1118
    functionName: provider_deactivate
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 5
    functionsReached:
    - OSSL_PROVIDER_CHILD_CB*::remove_cb
    - sk_OSSL_PROVIDER_CHILD_CB_value
    - sk_OSSL_PROVIDER_CHILD_CB_num
    - CRYPTO_THREAD_unlock
    - ossl_provider_free_parent
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - ossl_assert
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: "int provider_deactivate(OSSL_PROVIDER *prov, int upcalls,\n                               int
      removechildren)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: provider_init
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1137,1
    - Dst: ossl_provider_up_ref_parent
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1142,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1146,1
    - Dst: ossl_provider_free_parent
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1149,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1154,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1155,1
    - Dst: ossl_provider_free_parent
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1158,1
    - Dst: create_provider_children
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1167,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1170,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1171,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - prov
    - lock
    - upcalls
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1124
    functionDepth: 8
    functionLinenumber: 1124
    functionLinenumberEnd: 1178
    functionName: provider_activate
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 2
    functionsReached:
    - ossl_provider_up_ref_parent
    - create_provider_children
    - CRYPTO_THREAD_unlock
    - ossl_provider_free_parent
    - provider_init
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: int provider_activate(OSSL_PROVIDER *prov, int lock, int upcalls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1185,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1188,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1191,1
    - Dst: evp_method_store_cache_flush
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1195,1
    - Dst: ossl_encoder_store_cache_flush
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1197,1
    - Dst: ossl_decoder_store_cache_flush
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1198,1
    - Dst: ossl_store_loader_store_cache_flush
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1180
    functionDepth: 7
    functionLinenumber: 1180
    functionLinenumberEnd: 1210
    functionName: provider_flush_store_cache
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - evp_method_store_cache_flush
    - ossl_decoder_store_cache_flush
    - ossl_store_loader_store_cache_flush
    - ossl_encoder_store_cache_flush
    - CRYPTO_THREAD_read_lock
    - get_provider_store
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int provider_flush_store_cache(const OSSL_PROVIDER *prov)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1217,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1220,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1223,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1228,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1230,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1233,1
    - Dst: evp_method_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1235,1
    - Dst: ossl_encoder_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1237,1
    - Dst: ossl_decoder_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1238,1
    - Dst: ossl_store_loader_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1212
    functionDepth: 7
    functionLinenumber: 1212
    functionLinenumberEnd: 1250
    functionName: provider_remove_store_methods
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_store_loader_store_remove_all_provided
    - evp_method_store_remove_all_provided
    - ossl_decoder_store_remove_all_provided
    - OPENSSL_free
    - CRYPTO_THREAD_read_lock
    - ossl_encoder_store_remove_all_provided
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int provider_remove_store_methods(OSSL_PROVIDER *prov)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1266,1
    - Dst: provider_flush_store_cache
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - prov
    - upcalls
    - aschild
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1252
    functionDepth: 9
    functionLinenumber: 1252
    functionLinenumberEnd: 1270
    functionName: ossl_provider_activate
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 2
    functionsReached:
    - provider_activate
    - provider_flush_store_cache
    linkageType: ''
    returnType: int
    signature: int ossl_provider_activate(OSSL_PROVIDER *prov, int upcalls, int aschild)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1277,1
    - Dst: provider_remove_store_methods
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - prov
    - removechildren
    argTypes:
    - OSSL_PROVIDER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1272
    functionDepth: 8
    functionLinenumber: 1272
    functionLinenumberEnd: 1280
    functionName: ossl_provider_deactivate
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 5
    functionsReached:
    - provider_deactivate
    - provider_remove_store_methods
    linkageType: ''
    returnType: int
    signature: int ossl_provider_deactivate(OSSL_PROVIDER *prov, int removechildren)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1285
    functionName: ossl_provider_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ossl_provider_ctx(const OSSL_PROVIDER *prov)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1299,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1302,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1306,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1311,1
    - Dst: provider_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1324,1
    - Dst: ERR_get_next_error_library
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1329,1
    - Dst: provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1338,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1339,1
    - Dst: sk_OSSL_PROVIDER_push
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1343,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1344,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1355,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct provider_store_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1292
    functionDepth: 9
    functionLinenumber: 1292
    functionLinenumberEnd: 1357
    functionName: provider_activate_fallbacks
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - provider_new
    - ossl_provider_free
    - provider_activate
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_read_lock
    - sk_OSSL_PROVIDER_push
    - ERR_get_next_error_library
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int provider_activate_fallbacks(struct provider_store_st *store)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1365,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1366,1
    - Dst: ossl_lib_ctx_is_default
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1373,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1374,1
    - Dst: provider_activate_fallbacks
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1379,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1386,1
    - Dst: sk_OSSL_PROVIDER_dup
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1388,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1390,1
    - Dst: sk_OSSL_PROVIDER_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1393,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1399,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1401,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1409,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1410,1
    - Dst: provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1421,1
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1422,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1423,1
    - Dst: sk_OSSL_PROVIDER_delete
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1427,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1430,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1432,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1438,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1440,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1451,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1459,1
    - Dst: provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1461,1
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1467,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1472,1
    - Dst: sk_OSSL_PROVIDER_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1474,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 2
    argNames:
    - ctx
    - cbdata
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts:
    - condition: (ref > 0)
      pos:
        line_end: 1471
        line_start: 1471
        source_file: /src/openssl-3.0.15/crypto/provider_core.c
    constantsTouched: []
    func_position:
      end: 1476
      start: 1359
    functionDepth: 10
    functionLinenumber: 1359
    functionLinenumberEnd: 1476
    functionName: ossl_provider_doall_activated
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 2
    functionsReached:
    - ossl_lib_ctx_is_default
    - sk_OSSL_PROVIDER_value
    - CRYPTO_THREAD_read_lock
    - CRYPTO_DOWN_REF
    - OPENSSL_init_crypto
    - provider_activate
    - CRYPTO_UP_REF
    - get_provider_store
    - sk_OSSL_PROVIDER_dup
    - CRYPTO_THREAD_unlock
    - provider_deactivate
    - assert
    - sk_OSSL_PROVIDER_free
    - sk_OSSL_PROVIDER_num
    - STACK_OF
    - CRYPTO_THREAD_write_lock
    - provider_activate_fallbacks
    - sk_OSSL_PROVIDER_delete
    - cb
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_doall_activated(OSSL_LIB_CTX *ctx,\n                                  int
      (*cb)(OSSL_PROVIDER *provider,\n                                            void
      *cbdata),\n                                  void *cbdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1482,1
    - Dst: provider_activate_fallbacks
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1484,1
    - Dst: ossl_provider_find
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1487,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1489,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1492,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1478
    functionDepth: 10
    functionLinenumber: 1478
    functionLinenumberEnd: 1496
    functionName: OSSL_PROVIDER_available
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_provider_free
    - provider_activate_fallbacks
    - ossl_provider_find
    - CRYPTO_THREAD_read_lock
    - get_provider_store
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int OSSL_PROVIDER_available(OSSL_LIB_CTX *libctx, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1506
    functionName: ossl_provider_set_fallback
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_provider_set_fallback(OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: ossl_provider_name
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_provider_name(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1517
    functionName: ossl_provider_dso
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO
    signature: DSO *ossl_provider_dso(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_get_filename
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1526
    functionName: ossl_provider_module_name
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - DSO_get_filename
    linkageType: ''
    returnType: char
    signature: char *ossl_provider_module_name(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_get_filename
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1536
    functionName: ossl_provider_module_path
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - DSO_get_filename
    linkageType: ''
    returnType: char
    signature: char *ossl_provider_module_path(const OSSL_PROVIDER *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1544
    functionName: ossl_provider_prov_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ossl_provider_prov_ctx(const OSSL_PROVIDER *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1552
    functionName: ossl_provider_get0_dispatch
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OSSL_DISPATCH
    signature: OSSL_DISPATCH *ossl_provider_get0_dispatch(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1557
    functionName: ossl_provider_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_provider_libctx(const OSSL_PROVIDER *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::teardown
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1568
    functionName: ossl_provider_teardown
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OSSL_PROVIDER*::teardown
    linkageType: ''
    returnType: void
    signature: void ossl_provider_teardown(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::gettable_params
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1574
    functionName: ossl_provider_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OSSL_PROVIDER*::gettable_params
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *ossl_provider_gettable_params(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::get_params
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prov
    - params
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1580
    functionName: ossl_provider_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OSSL_PROVIDER*::get_params
    linkageType: ''
    returnType: int
    signature: int ossl_provider_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM
      params[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::self_test
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1588,1
    - Dst: provider_remove_store_methods
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1582
    functionDepth: 8
    functionLinenumber: 1582
    functionLinenumberEnd: 1592
    functionName: ossl_provider_self_test
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OSSL_PROVIDER*::self_test
    - provider_remove_store_methods
    linkageType: ''
    returnType: int
    signature: int ossl_provider_self_test(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::get_capabilities
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - prov
    - capability
    - cb
    - arg
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1601
    functionName: ossl_provider_get_capabilities
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 1
    functionsReached:
    - OSSL_PROVIDER*::get_capabilities
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_get_capabilities(const OSSL_PROVIDER *prov,\n                                   const
      char *capability,\n                                   OSSL_CALLBACK *cb,\n                                   void
      *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::query_operation
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - prov
    - operation_id
    - no_cache
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1618
    functionName: ossl_provider_query_operation
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 2
    functionsReached:
    - OSSL_PROVIDER*::query_operation
    linkageType: ''
    returnType: OSSL_ALGORITHM
    signature: "OSSL_ALGORITHM *ossl_provider_query_operation(const OSSL_PROVIDER
      *prov,\n                                                    int operation_id,\n
      \                                                   int *no_cache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER*::unquery_operation
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - prov
    - operation_id
    - algs
    argTypes:
    - OSSL_PROVIDER*
    - int
    - OSSL_ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1620
    functionDepth: 0
    functionLinenumber: 1620
    functionLinenumberEnd: 1626
    functionName: ossl_provider_unquery_operation
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 2
    functionsReached:
    - OSSL_PROVIDER*::unquery_operation
    linkageType: ''
    returnType: void
    signature: "void ossl_provider_unquery_operation(const OSSL_PROVIDER *prov,\n
      \                                    int operation_id,\n                                     const
      OSSL_ALGORITHM *algs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1633,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1636,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1640,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1641,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1645,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - provider
    - bitnum
    argTypes:
    - OSSL_PROVIDER*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1652
    functionName: ossl_provider_set_operation_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_realloc
    - memset
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_provider_set_operation_bit(OSSL_PROVIDER *provider, size_t
      bitnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1660,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1661,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1666,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - provider
    - bitnum
    - result
    argTypes:
    - OSSL_PROVIDER*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1672
    functionName: ossl_provider_test_operation_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    - ossl_assert
    - ERR_raise
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_test_operation_bit(OSSL_PROVIDER *provider, size_t
      bitnum,\n                                     int *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1678
    functionName: ossl_provider_get_parent
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_CORE_HANDLE
    signature: OSSL_CORE_HANDLE *ossl_provider_get_parent(OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1683
    functionName: ossl_provider_is_child
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_provider_is_child(const OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - prov
    - handle
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1691
    functionName: ossl_provider_set_child
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_provider_set_child(OSSL_PROVIDER *prov, const OSSL_CORE_HANDLE
      *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1700,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1703,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1706,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1708,1
    - Dst: OSSL_PROVIDER_CHILD_CB*::global_props_cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1709,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - libctx
    - props
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1693
    functionDepth: 7
    functionLinenumber: 1693
    functionLinenumberEnd: 1715
    functionName: ossl_provider_default_props_update
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_PROVIDER_CHILD_CB_value
    - sk_OSSL_PROVIDER_CHILD_CB_num
    - OSSL_PROVIDER_CHILD_CB*::global_props_cb
    - CRYPTO_THREAD_unlock
    - get_provider_store
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: int ossl_provider_default_props_update(OSSL_LIB_CTX *libctx, const
      char *props)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1741,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1744,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1753,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1754,1
    - Dst: evp_get_global_properties_str
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1757,1
    - Dst: global_props_cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1760,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1761,1
    - Dst: sk_OSSL_PROVIDER_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1763,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1767,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1769,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1772,1
    - Dst: create_cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1782,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_push
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1787,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1792,1
    - Dst: remove_cb
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1793,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1795,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1798,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - handle
    - cbdata
    argTypes:
    - OSSL_CORE_HANDLE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1717
    functionDepth: 7
    functionLinenumber: 1717
    functionLinenumberEnd: 1801
    functionName: ossl_provider_register_child_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - global_props_cb
    - CRYPTO_THREAD_unlock
    - sk_OSSL_PROVIDER_num
    - OPENSSL_free
    - sk_OSSL_PROVIDER_CHILD_CB_push
    - sk_OSSL_PROVIDER_value
    - create_cb
    - evp_get_global_properties_str
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - remove_cb
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_register_child_cb(const OSSL_CORE_HANDLE *handle,\n
      \                                          int (*create_cb)(\n                                               const
      OSSL_CORE_HANDLE *provider,\n                                               void
      *cbdata),\n                                           int (*remove_cb)(\n                                               const
      OSSL_CORE_HANDLE *provider,\n                                               void
      *cbdata),\n                                           int (*global_props_cb)(\n
      \                                              const char *props,\n                                               void
      *cbdata),\n                                           void *cbdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_provider_store
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1815,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1818,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1820,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1822,1
    - Dst: sk_OSSL_PROVIDER_CHILD_CB_delete
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1825,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1826,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1803
    functionDepth: 7
    functionLinenumber: 1803
    functionLinenumberEnd: 1831
    functionName: ossl_provider_deregister_child_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_PROVIDER_CHILD_CB_value
    - sk_OSSL_PROVIDER_CHILD_CB_num
    - sk_OSSL_PROVIDER_CHILD_CB_delete
    - OPENSSL_free
    - get_provider_store
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void ossl_provider_deregister_child_cb(const OSSL_CORE_HANDLE *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1913
    functionDepth: 0
    functionLinenumber: 1913
    functionLinenumberEnd: 1916
    functionName: core_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *core_gettable_params(const OSSL_CORE_HANDLE *handle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1928,1
    - Dst: OSSL_PARAM_set_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1929,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1930,1
    - Dst: OSSL_PARAM_set_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1931,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1934,1
    - Dst: OSSL_PARAM_set_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1936,1
    - Dst: ossl_provider_module_path
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1936,1
    - Dst: sk_INFOPAIR_num
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1942,1
    - Dst: sk_INFOPAIR_value
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1943,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1945,1
    - Dst: OSSL_PARAM_set_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1946,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - handle
    - params
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1949
    functionName: core_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - sk_INFOPAIR_num
    - OSSL_PARAM_set_utf8_ptr
    - sk_INFOPAIR_value
    - ossl_provider_module_path
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: int core_get_params(const OSSL_CORE_HANDLE *handle, OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts:
    - condition: (prov != NULL)
      pos:
        line_end: 1964
        line_start: 1964
        source_file: /src/openssl-3.0.15/crypto/provider_core.c
    constantsTouched: []
    func_position:
      end: 1967
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1967
    functionName: core_get_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: OPENSSL_CORE_CTX
    signature: OPENSSL_CORE_CTX *core_get_libctx(const OSSL_CORE_HANDLE *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_start
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - handfn
    - arg
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_thread_stop_handler_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1980
    functionName: core_thread_start
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ossl_init_thread_start
    linkageType: ''
    returnType: int
    signature: "int core_thread_start(const OSSL_CORE_HANDLE *handle,\n                             OSSL_thread_stop_handler_fn
      handfn,\n                             void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_new
      Src: /src/openssl-3.0.15/crypto/provider_core.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 1998
    functionName: core_new_error
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_new
    linkageType: ''
    returnType: void
    signature: void core_new_error(const OSSL_CORE_HANDLE *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - file
    - line
    - func
    argTypes:
    - OSSL_CORE_HANDLE*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2004
    functionName: core_set_error_debug
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_set_debug
    linkageType: ''
    returnType: void
    signature: "void core_set_error_debug(const OSSL_CORE_HANDLE *handle,\n                                 const
      char *file, int line, const char *func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2020,1
    - Dst: ERR_vset_error
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2021,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2021,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2021,1
    - Dst: ERR_vset_error
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - handle
    - reason
    - fmt
    - args
    argTypes:
    - OSSL_CORE_HANDLE*
    - uint32_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2025
    functionName: core_vset_error
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_vset_error
    - ERR_GET_LIB
    - ERR_GET_REASON
    linkageType: ''
    returnType: void
    signature: "void core_vset_error(const OSSL_CORE_HANDLE *handle,\n                            uint32_t
      reason, const char *fmt, va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2030
    functionName: core_set_error_mark
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_set_mark
    linkageType: ''
    returnType: int
    signature: int core_set_error_mark(const OSSL_CORE_HANDLE *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2035
    functionName: core_clear_last_error_mark
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: int core_clear_last_error_mark(const OSSL_CORE_HANDLE *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2040
    functionName: core_pop_error_to_mark
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - ERR_pop_to_mark
    linkageType: ''
    returnType: int
    signature: int core_pop_error_to_mark(const OSSL_CORE_HANDLE *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_SELF_TEST_get_callback
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - cb
    - cbarg
    argTypes:
    - OPENSSL_CORE_CTX*
    - OSSL_CALLBACK**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2046
    functionName: core_self_test_get_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OSSL_SELF_TEST_get_callback
    linkageType: ''
    returnType: void
    signature: "void core_self_test_get_callback(OPENSSL_CORE_CTX *libctx,\n                                        OSSL_CALLBACK
      **cb, void **cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_get0_name
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2048
    functionDepth: 2
    functionLinenumber: 2048
    functionLinenumberEnd: 2051
    functionName: core_provider_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_get0_name
    linkageType: ''
    returnType: char
    signature: char *core_provider_get0_name(const OSSL_CORE_HANDLE *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2053
    functionDepth: 2
    functionLinenumber: 2053
    functionLinenumberEnd: 2056
    functionName: core_provider_get0_provider_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_get0_provider_ctx
    linkageType: ''
    returnType: void
    signature: void *core_provider_get0_provider_ctx(const OSSL_CORE_HANDLE *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_get0_dispatch
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_CORE_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2058
    functionDepth: 2
    functionLinenumber: 2058
    functionLinenumberEnd: 2062
    functionName: core_provider_get0_dispatch
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_get0_dispatch
    linkageType: ''
    returnType: OSSL_DISPATCH
    signature: 'OSSL_DISPATCH *

      core_provider_get0_dispatch(const OSSL_CORE_HANDLE *prov)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_up_ref_intern
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prov
    - activate
    argTypes:
    - OSSL_CORE_HANDLE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2064
    functionDepth: 3
    functionLinenumber: 2064
    functionLinenumberEnd: 2068
    functionName: core_provider_up_ref_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - provider_up_ref_intern
    linkageType: ''
    returnType: int
    signature: "int core_provider_up_ref_intern(const OSSL_CORE_HANDLE *prov,\n                                       int
      activate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: provider_free_intern
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prov
    - deactivate
    argTypes:
    - OSSL_CORE_HANDLE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2070
    functionDepth: 2
    functionLinenumber: 2070
    functionLinenumberEnd: 2074
    functionName: core_provider_free_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - provider_free_intern
    linkageType: ''
    returnType: int
    signature: "int core_provider_free_intern(const OSSL_CORE_HANDLE *prov,\n                                     int
      deactivate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2080,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2082,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2085,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2095,1
    - Dst: OBJ_add_sigid
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - prov
    - sign_name
    - digest_name
    - pkey_name
    argTypes:
    - OSSL_CORE_HANDLE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2102
    functionName: core_obj_add_sigid
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - OBJ_txt2nid
    - OBJ_add_sigid
    linkageType: ''
    returnType: int
    signature: "int core_obj_add_sigid(const OSSL_CORE_HANDLE *prov,\n                              const
      char *sign_name, const char *digest_name,\n                              const
      char *pkey_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2108,1
    - Dst: OBJ_create
      Src: /src/openssl-3.0.15/crypto/provider_core.c:2109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - prov
    - oid
    - sn
    - ln
    argTypes:
    - OSSL_CORE_HANDLE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2110
    functionName: core_obj_create
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_core.c
    functionUses: 0
    functionsReached:
    - OBJ_create
    - OBJ_txt2nid
    linkageType: ''
    returnType: int
    signature: "int core_obj_create(const OSSL_CORE_HANDLE *prov, const char *oid,\n
      \                          const char *sn, const char *ln)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: __power_set
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __power_set(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: ill_handler
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void ill_handler(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_rdtsc_mftb
      Src: /src/openssl-3.0.15/crypto/ppccap.c:55,1
    - Dst: OPENSSL_rdtsc_mfspr268
      Src: /src/openssl-3.0.15/crypto/ppccap.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_rdtsc_mfspr268
    - OPENSSL_rdtsc_mftb
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_instrument_bus_mftb
      Src: /src/openssl-3.0.15/crypto/ppccap.c:68,1
    - Dst: OPENSSL_instrument_bus_mfspr268
      Src: /src/openssl-3.0.15/crypto/ppccap.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_instrument_bus_mftb
    - OPENSSL_instrument_bus_mfspr268
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_instrument_bus2_mftb
      Src: /src/openssl-3.0.15/crypto/ppccap.c:81,1
    - Dst: OPENSSL_instrument_bus2_mfspr268
      Src: /src/openssl-3.0.15/crypto/ppccap.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_instrument_bus2_mfspr268
    - OPENSSL_instrument_bus2_mftb
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t
      max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_aux_info
      Src: /src/openssl-3.0.15/crypto/ppccap.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: getauxval
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 1
    functionsReached:
    - elf_aux_info
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getauxval(unsigned long key)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/ppccap.c:145,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/ppccap.c:146,1
    - Dst: sysconf
      Src: /src/openssl-3.0.15/crypto/ppccap.c:158,1
    - Dst: uname
      Src: /src/openssl-3.0.15/crypto/ppccap.c:161,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/ppccap.c:161,1
    - Dst: __power_set
      Src: /src/openssl-3.0.15/crypto/ppccap.c:173,1
    - Dst: __power_set
      Src: /src/openssl-3.0.15/crypto/ppccap.c:177,1
    - Dst: __power_set
      Src: /src/openssl-3.0.15/crypto/ppccap.c:181,1
    - Dst: __power_set
      Src: /src/openssl-3.0.15/crypto/ppccap.c:184,1
    - Dst: __power_set
      Src: /src/openssl-3.0.15/crypto/ppccap.c:187,1
    - Dst: sysctlbyname
      Src: /src/openssl-3.0.15/crypto/ppccap.c:201,1
    - Dst: sysctlbyname
      Src: /src/openssl-3.0.15/crypto/ppccap.c:207,1
    - Dst: getauxval
      Src: /src/openssl-3.0.15/crypto/ppccap.c:218,1
    - Dst: getauxval
      Src: /src/openssl-3.0.15/crypto/ppccap.c:219,1
    - Dst: sigfillset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:248,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:249,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:250,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:252,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:254,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:255,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:256,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ppccap.c:258,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/ppccap.c:262,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/ppccap.c:263,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:266,1
    - Dst: OPENSSL_fpu_probe
      Src: /src/openssl-3.0.15/crypto/ppccap.c:267,1
    - Dst: uname
      Src: /src/openssl-3.0.15/crypto/ppccap.c:273,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:273,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:275,1
    - Dst: OPENSSL_ppc64_probe
      Src: /src/openssl-3.0.15/crypto/ppccap.c:276,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:286,1
    - Dst: OPENSSL_altivec_probe
      Src: /src/openssl-3.0.15/crypto/ppccap.c:287,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:289,1
    - Dst: OPENSSL_crypto207_probe
      Src: /src/openssl-3.0.15/crypto/ppccap.c:290,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:295,1
    - Dst: OPENSSL_madd300_probe
      Src: /src/openssl-3.0.15/crypto/ppccap.c:296,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:301,1
    - Dst: OPENSSL_rdtsc_mftb
      Src: /src/openssl-3.0.15/crypto/ppccap.c:302,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/ppccap.c:304,1
    - Dst: OPENSSL_rdtsc_mfspr268
      Src: /src/openssl-3.0.15/crypto/ppccap.c:305,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/ppccap.c:309,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/ppccap.c:310,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 311
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/ppccap.c
    functionUses: 0
    functionsReached:
    - sigaction
    - OPENSSL_rdtsc_mfspr268
    - OPENSSL_ppc64_probe
    - sigsetjmp
    - sysctlbyname
    - __power_set
    - strtoul
    - sigfillset
    - memset
    - OPENSSL_altivec_probe
    - getauxval
    - OPENSSL_crypto207_probe
    - atoi
    - OPENSSL_madd300_probe
    - uname
    - strcmp
    - getenv
    - sigprocmask
    - OPENSSL_fpu_probe
    - sysconf
    - OPENSSL_rdtsc_mftb
    - sigdelset
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:96,1
    - Dst: malloc
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:119,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:124,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:126,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:127,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:134,1
    - Dst: lib$find_file
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:150,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:159,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:184,1
    - Dst: str$free1_dx
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:186,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 189
    functionName: LP_find_file
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_vms.c
    functionUses: 0
    functionsReached:
    - lib$find_file
    - str$free1_dx
    - strlen
    - strcpy
    - memset
    - strcat
    - $VMS_STATUS_SUCCESS
    - strncpy
    - malloc
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lib$find_file_end
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:194,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:196,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/LPdir_vms.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_vms.c
    functionUses: 0
    functionsReached:
    - free
    - $VMS_STATUS_SUCCESS
    - lib$find_file_end
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: LOAD
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: INCREMENT
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCREMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: LOAD
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: FAILTEST
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAILTEST()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - malloc_fn
    - realloc_fn
    - free_fn
    argTypes:
    - CRYPTO_malloc_fn
    - CRYPTO_realloc_fn
    - CRYPTO_free_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: CRYPTO_set_mem_functions
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn,\n                             CRYPTO_realloc_fn
      realloc_fn,\n                             CRYPTO_free_fn free_fn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - malloc_fn
    - realloc_fn
    - free_fn
    argTypes:
    - CRYPTO_malloc_fn*
    - CRYPTO_realloc_fn*
    - CRYPTO_free_fn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: CRYPTO_get_mem_functions
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn,\n                              CRYPTO_realloc_fn
      *realloc_fn,\n                              CRYPTO_free_fn *free_fn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOAD
      Src: /src/openssl-3.0.15/crypto/mem.c:88,1
    - Dst: LOAD
      Src: /src/openssl-3.0.15/crypto/mem.c:90,1
    - Dst: LOAD
      Src: /src/openssl-3.0.15/crypto/mem.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - mcount
    - rcount
    - fcount
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: CRYPTO_get_alloc_counts
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached:
    - LOAD
    linkageType: ''
    returnType: void
    signature: void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/mem.c:109,1
    - Dst: atol
      Src: /src/openssl-3.0.15/crypto/mem.c:116,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/mem.c:117,1
    - Dst: atof
      Src: /src/openssl-3.0.15/crypto/mem.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: parseit
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached:
    - atol
    - strchr
    - atof
    linkageType: ''
    returnType: void
    signature: void parseit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: random
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: random()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - seed
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: srandom
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: srandom(seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/openssl-3.0.15/crypto/mem.c:138,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/mem.c:146,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/mem.c:149,1
    - Dst: write
      Src: /src/openssl-3.0.15/crypto/mem.c:150,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/mem.c:151,1
    - Dst: parseit
      Src: /src/openssl-3.0.15/crypto/mem.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: shouldfail
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached:
    - write
    - parseit
    - BIO_snprintf
    - random
    - strlen
    - perror
    linkageType: ''
    returnType: int
    signature: int shouldfail(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/mem.c:166,1
    - Dst: strdup
      Src: /src/openssl-3.0.15/crypto/mem.c:168,1
    - Dst: parseit
      Src: /src/openssl-3.0.15/crypto/mem.c:169,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/mem.c:170,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/mem.c:171,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/mem.c:172,1
    - Dst: srandom
      Src: /src/openssl-3.0.15/crypto/mem.c:173,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/mem.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: ossl_malloc_setup_failures
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached:
    - parseit
    - srandom
    - strdup
    - getenv
    - atoi
    linkageType: ''
    returnType: void
    signature: void ossl_malloc_setup_failures(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INCREMENT
      Src: /src/openssl-3.0.15/crypto/mem.c:179,1
    - Dst: malloc_impl
      Src: /src/openssl-3.0.15/crypto/mem.c:181,1
    - Dst: FAILTEST
      Src: /src/openssl-3.0.15/crypto/mem.c:186,1
    - Dst: malloc
      Src: /src/openssl-3.0.15/crypto/mem.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: CRYPTO_malloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached:
    - FAILTEST
    - malloc_impl
    - malloc
    - INCREMENT
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_malloc(size_t num, const char *file, int line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/mem.c:203,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mem.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - num
    - file
    - line
    argTypes:
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: CRYPTO_zalloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached:
    - memset
    - CRYPTO_malloc
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_zalloc(size_t num, const char *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INCREMENT
      Src: /src/openssl-3.0.15/crypto/mem.c:212,1
    - Dst: realloc_impl
      Src: /src/openssl-3.0.15/crypto/mem.c:214,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/mem.c:217,1
    - Dst: CRYPTO_free
      Src: /src/openssl-3.0.15/crypto/mem.c:220,1
    - Dst: FAILTEST
      Src: /src/openssl-3.0.15/crypto/mem.c:224,1
    - Dst: realloc
      Src: /src/openssl-3.0.15/crypto/mem.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - str
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: CRYPTO_realloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached:
    - FAILTEST
    - realloc_impl
    - CRYPTO_free
    - realloc
    - CRYPTO_malloc
    - INCREMENT
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_realloc(void *str, size_t num, const char *file, int line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/mem.c:234,1
    - Dst: CRYPTO_clear_free
      Src: /src/openssl-3.0.15/crypto/mem.c:237,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/mem.c:243,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/mem.c:247,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/mem.c:249,1
    - Dst: CRYPTO_clear_free
      Src: /src/openssl-3.0.15/crypto/mem.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - str
    - old_len
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 253
    functionName: CRYPTO_clear_realloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached:
    - CRYPTO_clear_free
    - OPENSSL_cleanse
    - CRYPTO_malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void *CRYPTO_clear_realloc(void *str, size_t old_len, size_t num,\n
      \                          const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INCREMENT
      Src: /src/openssl-3.0.15/crypto/mem.c:257,1
    - Dst: free_impl
      Src: /src/openssl-3.0.15/crypto/mem.c:259,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/mem.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - str
    - file
    - line
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: CRYPTO_free
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 3
    functionsReached:
    - free_impl
    - free
    - INCREMENT
    linkageType: ''
    returnType: void
    signature: void CRYPTO_free(void *str, const char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/mem.c:271,1
    - Dst: CRYPTO_free
      Src: /src/openssl-3.0.15/crypto/mem.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - str
    - num
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: CRYPTO_clear_free
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached:
    - CRYPTO_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void CRYPTO_clear_free(void *str, size_t num, const char *file, int
      line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: CRYPTO_mem_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_ctrl(int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: CRYPTO_set_mem_debug
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_set_mem_debug(int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - info
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: CRYPTO_mem_debug_push
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_debug_push(const char *info, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: CRYPTO_mem_debug_pop
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_debug_pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - addr
    - num
    - flag
    - file
    - line
    argTypes:
    - void*
    - size_t
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: CRYPTO_mem_debug_malloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag,\n                             const
      char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - addr1
    - addr2
    - num
    - flag
    - file
    - line
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: CRYPTO_mem_debug_realloc
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num,
      int flag,\n                              const char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - addr
    - flag
    - file
    - line
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: CRYPTO_mem_debug_free
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_mem_debug_free(void *addr, int flag,\n                           const
      char *file, int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: CRYPTO_mem_leaks
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_leaks(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: CRYPTO_mem_leaks_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_mem_leaks_fp(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - u
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: CRYPTO_mem_leaks_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/mem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_mem_leaks_cb(int (*cb)(const char *str, size_t len, void
      *u),\n                        void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - srce
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: ebcdic2ascii
    functionSourceFile: /src/openssl-3.0.15/crypto/ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ebcdic2ascii(void *dest, const void *srce, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dest
    - srce
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: ascii2ebcdic
    functionSourceFile: /src/openssl-3.0.15/crypto/ebcdic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ascii2ebcdic(void *dest, const void *srce, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/cpuid.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: ossl_getenv
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached:
    - GetEnvironmentVariableW
    linkageType: ''
    returnType: variant_char
    signature: variant_char *ossl_getenv(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/cpuid.c:54,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-3.0.15/crypto/cpuid.c:56,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/cpuid.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - variant_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: todigit
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached:
    - ossl_isdigit
    - ossl_tolower
    - ossl_isxdigit
    linkageType: ''
    returnType: int
    signature: int todigit(variant_char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/cpuid.c:70,1
    - Dst: todigit
      Src: /src/openssl-3.0.15/crypto/cpuid.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - variant_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: ossl_strtouint64
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached:
    - ossl_tolower
    - todigit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ossl_strtouint64(const variant_char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - srch
    argTypes:
    - variant_char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: ossl_strchr
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: variant_char
    signature: variant_char *ossl_strchr(const variant_char *str, char srch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_getenv
      Src: /src/openssl-3.0.15/crypto/cpuid.c:106,1
    - Dst: ossl_strtouint64
      Src: /src/openssl-3.0.15/crypto/cpuid.c:109,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openssl-3.0.15/crypto/cpuid.c:113,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openssl-3.0.15/crypto/cpuid.c:126,1
    - Dst: ossl_strchr
      Src: /src/openssl-3.0.15/crypto/cpuid.c:129,1
    - Dst: ossl_strtouint64
      Src: /src/openssl-3.0.15/crypto/cpuid.c:134,1
    - Dst: OPENSSL_ia32_cpuid
      Src: /src/openssl-3.0.15/crypto/cpuid.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 157
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached:
    - ossl_strtouint64
    - ossl_strchr
    - ossl_getenv
    - OPENSSL_ia32_cpuid
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - in_a
    - in_b
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 195
    functionName: CRYPTO_memcmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OPENSSL_rdtsc
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t OPENSSL_rdtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - cnt
    argTypes:
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: OPENSSL_instrument_bus
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - cnt
    - max
    argTypes:
    - unsigned int*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: OPENSSL_instrument_bus2
    functionSourceFile: /src/openssl-3.0.15/crypto/cpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t
      max)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/initthread.c:59,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_new_null
      Src: /src/openssl-3.0.15/crypto/initthread.c:63,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/initthread.c:64,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:66,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:67,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - sk_THREAD_EVENT_HANDLER_PTR_new_null
    - sk_THREAD_EVENT_HANDLER_PTR_free
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(create_global_tevent_register)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/initthread.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: get_global_tevent_register
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: GLOBAL_TEVENT_REGISTER
    signature: GLOBAL_TEVENT_REGISTER *get_global_tevent_register(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:95,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/initthread.c:100,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:104,1
    - Dst: init_thread_push_handlers
      Src: /src/openssl-3.0.15/crypto/initthread.c:109,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:111,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 121
    functionName: init_get_thread_local
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    - OPENSSL_zalloc
    - OPENSSL_free
    - init_thread_push_handlers
    linkageType: ''
    returnType: THREAD_EVENT_HANDLER
    signature: 'THREAD_EVENT_HANDLER **

      init_get_thread_local(CRYPTO_THREAD_LOCAL *local, int alloc, int keep)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_global_tevent_register
      Src: /src/openssl-3.0.15/crypto/initthread.c:158,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/initthread.c:162,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_push
      Src: /src/openssl-3.0.15/crypto/initthread.c:164,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/initthread.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - hands
    argTypes:
    - THREAD_EVENT_HANDLER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: init_thread_push_handlers
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 1
    functionsReached:
    - get_global_tevent_register
    - CRYPTO_THREAD_write_lock
    - sk_THREAD_EVENT_HANDLER_PTR_push
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int init_thread_push_handlers(THREAD_EVENT_HANDLER **hands)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_global_tevent_register
      Src: /src/openssl-3.0.15/crypto/initthread.c:175,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/initthread.c:178,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_num
      Src: /src/openssl-3.0.15/crypto/initthread.c:180,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_value
      Src: /src/openssl-3.0.15/crypto/initthread.c:182,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_delete
      Src: /src/openssl-3.0.15/crypto/initthread.c:185,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/initthread.c:186,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/initthread.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - handsin
    argTypes:
    - THREAD_EVENT_HANDLER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 192
    functionName: init_thread_remove_handlers
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - sk_THREAD_EVENT_HANDLER_PTR_delete
    - sk_THREAD_EVENT_HANDLER_PTR_value
    - sk_THREAD_EVENT_HANDLER_PTR_num
    - get_global_tevent_register
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void init_thread_remove_handlers(THREAD_EVENT_HANDLER **handsin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_thread_stop
      Src: /src/openssl-3.0.15/crypto/initthread.c:196,1
    - Dst: init_thread_remove_handlers
      Src: /src/openssl-3.0.15/crypto/initthread.c:197,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hands
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: init_thread_destructor
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - init_thread_remove_handlers
    - OPENSSL_free
    - init_thread_stop
    linkageType: ''
    returnType: void
    signature: void init_thread_destructor(void *hands)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: ossl_init_thread
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: int
    signature: int ossl_init_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_thread_deregister
      Src: /src/openssl-3.0.15/crypto/initthread.c:212,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: ossl_cleanup_thread
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_cleanup_local
    - init_thread_deregister
    linkageType: ''
    returnType: void
    signature: void ossl_cleanup_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/initthread.c:219,1
    - Dst: ossl_ctx_thread_stop
      Src: /src/openssl-3.0.15/crypto/initthread.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: OPENSSL_thread_stop_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_concrete
    - ossl_ctx_thread_stop
    linkageType: ''
    returnType: void
    signature: void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_get_thread_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:232,1
    - Dst: init_thread_stop
      Src: /src/openssl-3.0.15/crypto/initthread.c:233,1
    - Dst: init_thread_remove_handlers
      Src: /src/openssl-3.0.15/crypto/initthread.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: OPENSSL_thread_stop
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - init_thread_remove_handlers
    - OPENSSL_free
    - init_get_thread_local
    - init_thread_stop
    linkageType: ''
    returnType: void
    signature: void OPENSSL_thread_stop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_get_thread_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:244,1
    - Dst: init_thread_stop
      Src: /src/openssl-3.0.15/crypto/initthread.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: ossl_ctx_thread_stop
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 2
    functionsReached:
    - init_get_thread_local
    - init_thread_stop
    linkageType: ''
    returnType: void
    signature: void ossl_ctx_thread_stop(OSSL_LIB_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/initthread.c:254,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:259,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/initthread.c:263,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:267,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:272,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 275
    functionName: thread_event_ossl_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    - OPENSSL_free
    - CRYPTO_THREAD_set_local
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *thread_event_ossl_ctx_new(OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tlocal
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: thread_event_ossl_ctx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void thread_event_ossl_ctx_free(void *tlocal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ctx_thread_stop
      Src: /src/openssl-3.0.15/crypto/initthread.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: ossl_arg_thread_stop
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 0
    functionsReached:
    - ossl_ctx_thread_stop
    linkageType: ''
    returnType: void
    signature: void ossl_arg_thread_stop(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/initthread.c:297,1
    - Dst: init_get_thread_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:302,1
    - Dst: init_thread_stop
      Src: /src/openssl-3.0.15/crypto/initthread.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: ossl_ctx_thread_stop
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - init_get_thread_local
    - ossl_lib_ctx_get_data
    - init_thread_stop
    linkageType: ''
    returnType: void
    signature: void ossl_ctx_thread_stop(OSSL_LIB_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_global_tevent_register
      Src: /src/openssl-3.0.15/crypto/initthread.c:321,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/initthread.c:325,1
    - Dst: THREAD_EVENT_HANDLER*::handfn
      Src: /src/openssl-3.0.15/crypto/initthread.c:336,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:345,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/initthread.c:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - arg
    - hands
    argTypes:
    - void*
    - THREAD_EVENT_HANDLER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 350
    functionName: init_thread_stop
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 4
    functionsReached:
    - THREAD_EVENT_HANDLER*::handfn
    - OPENSSL_free
    - get_global_tevent_register
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void init_thread_stop(void *arg, THREAD_EVENT_HANDLER **hands)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/initthread.c:366,1
    - Dst: init_get_thread_local
      Src: /src/openssl-3.0.15/crypto/initthread.c:378,1
    - Dst: c_thread_start
      Src: /src/openssl-3.0.15/crypto/initthread.c:389,1
    - Dst: FIPS_get_core_handle
      Src: /src/openssl-3.0.15/crypto/initthread.c:389,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/initthread.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - index
    - arg
    - handfn
    argTypes:
    - void*
    - void*
    - OSSL_thread_stop_handler_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 408
    functionName: ossl_init_thread_start
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - init_get_thread_local
    - FIPS_get_core_handle
    - c_thread_start
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: "int ossl_init_thread_start(const void *index, void *arg,\n                           OSSL_thread_stop_handler_fn
      handfn)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_global_tevent_register
      Src: /src/openssl-3.0.15/crypto/initthread.c:416,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/initthread.c:420,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_num
      Src: /src/openssl-3.0.15/crypto/initthread.c:425,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_value
      Src: /src/openssl-3.0.15/crypto/initthread.c:427,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/initthread.c:432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:444,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:451,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:454,1
    - Dst: sk_THREAD_EVENT_HANDLER_PTR_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:455,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/initthread.c:456,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/initthread.c:458,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - index
    - all
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 461
    functionName: init_thread_deregister
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 2
    functionsReached:
    - sk_THREAD_EVENT_HANDLER_PTR_value
    - sk_THREAD_EVENT_HANDLER_PTR_free
    - sk_THREAD_EVENT_HANDLER_PTR_num
    - OPENSSL_free
    - get_global_tevent_register
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int init_thread_deregister(void *index, int all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_thread_deregister
      Src: /src/openssl-3.0.15/crypto/initthread.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - index
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: ossl_init_thread_deregister
    functionSourceFile: /src/openssl-3.0.15/crypto/initthread.c
    functionUses: 1
    functionsReached:
    - init_thread_deregister
    linkageType: ''
    returnType: int
    signature: int ossl_init_thread_deregister(void *index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: mflo
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mflo(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: mfhi
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfhi(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: mflo
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mflo(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: mfhi
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfhi(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: dmultu
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmultu(rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: multu
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multu(rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: mflo
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mflo(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rd
    - ','
    - rs
    - ','
    - rt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: mfhi
    functionSourceFile: /src/openssl-3.0.15/crypto/mips_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfhi(rd,rs,rt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: self_test_set_callback_new
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *self_test_set_callback_new(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stcb
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: self_test_set_callback_free
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void self_test_set_callback_free(void *stcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: get_self_test_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: SELF_TEST_CB
    signature: SELF_TEST_CB *get_self_test_callback(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_self_test_callback
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - libctx
    - cb
    - cbarg
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: OSSL_SELF_TEST_set_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - get_self_test_callback
    linkageType: ''
    returnType: void
    signature: "void OSSL_SELF_TEST_set_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK
      *cb,\n                                 void *cbarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_self_test_callback
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - libctx
    - cb
    - cbarg
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_CALLBACK**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 7
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: OSSL_SELF_TEST_get_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 1
    functionsReached:
    - get_self_test_callback
    linkageType: ''
    returnType: void
    signature: "void OSSL_SELF_TEST_get_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK
      **cb,\n                                 void **cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:89,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:92,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:95,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - OSSL_SELF_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: self_test_setparams
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: void
    signature: void self_test_setparams(OSSL_SELF_TEST *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:103,1
    - Dst: self_test_setparams
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cb
    - cbarg
    argTypes:
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: OSSL_SELF_TEST_new
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - self_test_setparams
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_SELF_TEST
    signature: OSSL_SELF_TEST *OSSL_SELF_TEST_new(OSSL_CALLBACK *cb, void *cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - OSSL_SELF_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: OSSL_SELF_TEST_free
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OSSL_SELF_TEST_free(OSSL_SELF_TEST *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: self_test_setparams
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:130,1
    - Dst: OSSL_SELF_TEST*::cb
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - st
    - type
    - desc
    argTypes:
    - OSSL_SELF_TEST*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: OSSL_SELF_TEST_onbegin
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OSSL_SELF_TEST*::cb
    - self_test_setparams
    linkageType: ''
    returnType: void
    signature: "void OSSL_SELF_TEST_onbegin(OSSL_SELF_TEST *st, const char *type,\n
      \                           const char *desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: self_test_setparams
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:144,1
    - Dst: OSSL_SELF_TEST*::cb
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - st
    - ret
    argTypes:
    - OSSL_SELF_TEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: OSSL_SELF_TEST_onend
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OSSL_SELF_TEST*::cb
    - self_test_setparams
    linkageType: ''
    returnType: void
    signature: void OSSL_SELF_TEST_onend(OSSL_SELF_TEST *st, int ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: self_test_setparams
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:165,1
    - Dst: OSSL_SELF_TEST*::cb
      Src: /src/openssl-3.0.15/crypto/self_test_core.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - st
    - bytes
    argTypes:
    - OSSL_SELF_TEST*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: OSSL_SELF_TEST_oncorrupt_byte
    functionSourceFile: /src/openssl-3.0.15/crypto/self_test_core.c
    functionUses: 0
    functionsReached:
    - OSSL_SELF_TEST*::cb
    - self_test_setparams
    linkageType: ''
    returnType: int
    signature: int OSSL_SELF_TEST_oncorrupt_byte(OSSL_SELF_TEST *st, unsigned char
      *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: OPENSSL_fork_prepare
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_fork_prepare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: OPENSSL_fork_parent
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_fork_parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: OPENSSL_fork_child
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_fork_child(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - directory
    argTypes:
    - LP_DIR_CTX**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: LP_find_file
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_nyi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LP_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: LP_find_file_end
    functionSourceFile: /src/openssl-3.0.15/crypto/LPdir_nyi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LP_find_file_end(LP_DIR_CTX **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - no_store
    - cbdata
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: is_temporary_method_store
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_temporary_method_store(int no_store, void *cbdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_temporary_method_store
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:38,1
    - Dst: struct construct_data_st*::mcm::get_tmp_store
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:45,1
    - Dst: struct construct_data_st*::mcm::lock_store
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - no_store
    - cbdata
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: ossl_method_construct_reserve_store
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached:
    - struct construct_data_st*::mcm::get_tmp_store
    - struct construct_data_st*::mcm::lock_store
    - is_temporary_method_store
    linkageType: ''
    returnType: int
    signature: int ossl_method_construct_reserve_store(int no_store, void *cbdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct construct_data_st*::mcm::unlock_store
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: ossl_method_construct_unreserve_store
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached:
    - struct construct_data_st*::mcm::unlock_store
    linkageType: ''
    returnType: int
    signature: int ossl_method_construct_unreserve_store(void *cbdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:64,1
    - Dst: is_temporary_method_store
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:72,1
    - Dst: ossl_provider_test_operation_bit
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - provider
    - operation_id
    - no_store
    - cbdata
    - result
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: ossl_method_construct_precondition
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached:
    - is_temporary_method_store
    - ossl_assert
    - ERR_raise
    - ossl_provider_test_operation_bit
    linkageType: ''
    returnType: int
    signature: "int ossl_method_construct_precondition(OSSL_PROVIDER *provider,\n
      \                                             int operation_id, int no_store,\n
      \                                             void *cbdata, int *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:91,1
    - Dst: is_temporary_method_store
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:98,1
    - Dst: ossl_provider_set_operation_bit
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - provider
    - operation_id
    - no_store
    - cbdata
    - result
    argTypes:
    - OSSL_PROVIDER*
    - int
    - int
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: ossl_method_construct_postcondition
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached:
    - is_temporary_method_store
    - ossl_provider_set_operation_bit
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_method_construct_postcondition(OSSL_PROVIDER *provider,\n
      \                                              int operation_id, int no_store,\n
      \                                              void *cbdata, int *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct construct_data_st*::mcm::construct
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:109,1
    - Dst: struct construct_data_st*::mcm::put
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:123,1
    - Dst: struct construct_data_st*::mcm::destruct
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - provider
    - algo
    - no_store
    - cbdata
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_ALGORITHM*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 128
    functionName: ossl_method_construct_this
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached:
    - struct construct_data_st*::mcm::construct
    - struct construct_data_st*::mcm::put
    - struct construct_data_st*::mcm::destruct
    linkageType: ''
    returnType: void
    signature: "void ossl_method_construct_this(OSSL_PROVIDER *provider,\n                                       const
      OSSL_ALGORITHM *algo,\n                                       int no_store,
      void *cbdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_algorithm_do_all
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:153,1
    - Dst: OSSL_METHOD_CONSTRUCT_METHOD*::get
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:163,1
    - Dst: OSSL_METHOD_CONSTRUCT_METHOD*::get
      Src: /src/openssl-3.0.15/crypto/core_fetch.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - libctx
    - operation_id
    - provider_rw
    - force_store
    - mcm
    - mcm_data
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - OSSL_PROVIDER**
    - int
    - OSSL_METHOD_CONSTRUCT_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 171
    functionName: ossl_method_construct
    functionSourceFile: /src/openssl-3.0.15/crypto/core_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_algorithm_do_all
    - OSSL_METHOD_CONSTRUCT_METHOD*::get
    linkageType: ''
    returnType: void
    signature: "void *ossl_method_construct(OSSL_LIB_CTX *libctx, int operation_id,\n
      \                           OSSL_PROVIDER **provider_rw, int force_store,\n
      \                           OSSL_METHOD_CONSTRUCT_METHOD *mcm, void *mcm_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-3.0.15/crypto/dllmain.c:33,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-3.0.15/crypto/dllmain.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: DllMain
    functionSourceFile: /src/openssl-3.0.15/crypto/dllmain.c
    functionUses: 0
    functionsReached:
    - OPENSSL_thread_stop
    - OPENSSL_cpuid_setup
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:38,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:43,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:53,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:55,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:61,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:62,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:76,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:77,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:114,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:117,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:124,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 9
    argNames:
    - paramdefs
    - key
    - value
    - value_n
    - paramdef
    - ishex
    - buf_n
    - tmpbn
    - found
    argTypes:
    - OSSL_PARAM*
    - char*
    - char*
    - size_t
    - OSSL_PARAM**
    - int*
    - size_t*
    - BIGNUM**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 135
    functionName: prepare_from_text
    functionSourceFile: /src/openssl-3.0.15/crypto/params_from_text.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - ERR_raise
    - BN_hex2bn
    - strlen
    - OSSL_PARAM_locate_const
    - BN_is_negative
    - strncmp
    - BN_add_word
    - BN_asc2bn
    linkageType: ''
    returnType: int
    signature: "int prepare_from_text(const OSSL_PARAM *paramdefs, const char *key,\n
      \                            const char *value, size_t value_n,\n                             /*
      Output parameters */\n                             const OSSL_PARAM **paramdef,
      int *ishex,\n                             size_t *buf_n, BIGNUM **tmpbn, int
      *found)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:156,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:165,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:175,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:177,1
    - Dst: OPENSSL_hexstr2buf_ex
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:186,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 8
    argNames:
    - to
    - paramdef
    - value
    - value_n
    - ishex
    - buf
    - buf_n
    - tmpbn
    argTypes:
    - OSSL_PARAM*
    - OSSL_PARAM*
    - char*
    - size_t
    - int
    - void*
    - size_t
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 201
    functionName: construct_from_text
    functionSourceFile: /src/openssl-3.0.15/crypto/params_from_text.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ebcdic2ascii
    - BN_bn2nativepad
    - OPENSSL_hexstr2buf_ex
    - BN_is_negative
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int construct_from_text(OSSL_PARAM *to, const OSSL_PARAM *paramdef,\n
      \                              const char *value, size_t value_n, int ishex,\n
      \                              void *buf, size_t buf_n, BIGNUM *tmpbn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepare_from_text
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:218,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:222,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:223,1
    - Dst: construct_from_text
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:227,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:229,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:231,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/params_from_text.c:234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - to
    - paramdefs
    - key
    - value
    - value_n
    - found
    argTypes:
    - OSSL_PARAM*
    - OSSL_PARAM*
    - char*
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 236
    functionName: OSSL_PARAM_allocate_from_text
    functionSourceFile: /src/openssl-3.0.15/crypto/params_from_text.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - BN_free
    - prepare_from_text
    - OPENSSL_free
    - construct_from_text
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_allocate_from_text(OSSL_PARAM *to,\n                                  const
      OSSL_PARAM *paramdefs,\n                                  const char *key, const
      char *value,\n                                  size_t value_n, int *found)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: real_shift
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int real_shift(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/params.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - p
    - key
    argTypes:
    - OSSL_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: OSSL_PARAM_locate
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_PARAM_locate(OSSL_PARAM *p, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/params.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - key
    argTypes:
    - OSSL_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: OSSL_PARAM_locate_const
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_PARAM_locate_const(const OSSL_PARAM *p, const char
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - key
    - data_type
    - data
    - data_size
    argTypes:
    - char*
    - unsigned int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: ossl_param_construct
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM ossl_param_construct(const char *key, unsigned int data_type,\n
      \                                      void *data, size_t data_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: OSSL_PARAM_modified
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_modified(const OSSL_PARAM *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: OSSL_PARAM_set_all_unmodified
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OSSL_PARAM_set_all_unmodified(OSSL_PARAM *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - number
    - s
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: is_negative
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_negative(const void *number, size_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - p
    - n
    - s
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: check_sign_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_sign_bytes(const unsigned char *p, size_t n, unsigned char
      s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/params.c:103,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params.c:104,1
    - Dst: check_sign_bytes
      Src: /src/openssl-3.0.15/crypto/params.c:107,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params.c:114,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/params.c:119,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params.c:120,1
    - Dst: check_sign_bytes
      Src: /src/openssl-3.0.15/crypto/params.c:123,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - dest
    - dest_len
    - src
    - src_len
    - pad
    - signed_int
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 134
    functionName: copy_integer
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - check_sign_bytes
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int copy_integer(unsigned char *dest, size_t dest_len,\n                        const
      unsigned char *src, size_t src_len,\n                        unsigned char pad,
      int signed_int)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_integer
      Src: /src/openssl-3.0.15/crypto/params.c:140,1
    - Dst: is_negative
      Src: /src/openssl-3.0.15/crypto/params.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - dest_len
    - src
    - src_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: signed_from_signed
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - is_negative
    - copy_integer
    linkageType: ''
    returnType: int
    signature: "int signed_from_signed(void *dest, size_t dest_len,\n                              const
      void *src, size_t src_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_integer
      Src: /src/openssl-3.0.15/crypto/params.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - dest_len
    - src
    - src_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: signed_from_unsigned
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - copy_integer
    linkageType: ''
    returnType: int
    signature: "int signed_from_unsigned(void *dest, size_t dest_len,\n                                const
      void *src, size_t src_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/openssl-3.0.15/crypto/params.c:155,1
    - Dst: copy_integer
      Src: /src/openssl-3.0.15/crypto/params.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - dest
    - dest_len
    - src
    - src_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: unsigned_from_signed
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - is_negative
    - copy_integer
    linkageType: ''
    returnType: int
    signature: "int unsigned_from_signed(void *dest, size_t dest_len,\n                                const
      void *src, size_t src_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_integer
      Src: /src/openssl-3.0.15/crypto/params.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - dest_len
    - src
    - src_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: unsigned_from_unsigned
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - copy_integer
    linkageType: ''
    returnType: int
    signature: "int unsigned_from_unsigned(void *dest, size_t dest_len,\n                                  const
      void *src, size_t src_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signed_from_signed
      Src: /src/openssl-3.0.15/crypto/params.c:171,1
    - Dst: signed_from_unsigned
      Src: /src/openssl-3.0.15/crypto/params.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - val
    - val_size
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: general_get_int
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - signed_from_unsigned
    - signed_from_signed
    linkageType: ''
    returnType: int
    signature: int general_get_int(const OSSL_PARAM *p, void *val, size_t val_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: signed_from_signed
      Src: /src/openssl-3.0.15/crypto/params.c:186,1
    - Dst: unsigned_from_signed
      Src: /src/openssl-3.0.15/crypto/params.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p
    - val
    - val_size
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: general_set_int
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - signed_from_signed
    - unsigned_from_signed
    linkageType: ''
    returnType: int
    signature: int general_set_int(OSSL_PARAM *p, void *val, size_t val_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unsigned_from_signed
      Src: /src/openssl-3.0.15/crypto/params.c:197,1
    - Dst: unsigned_from_unsigned
      Src: /src/openssl-3.0.15/crypto/params.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - val
    - val_size
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: general_get_uint
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - unsigned_from_signed
    - unsigned_from_unsigned
    linkageType: ''
    returnType: int
    signature: int general_get_uint(const OSSL_PARAM *p, void *val, size_t val_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: signed_from_unsigned
      Src: /src/openssl-3.0.15/crypto/params.c:212,1
    - Dst: unsigned_from_unsigned
      Src: /src/openssl-3.0.15/crypto/params.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p
    - val
    - val_size
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: general_set_uint
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - signed_from_unsigned
    - unsigned_from_unsigned
    linkageType: ''
    returnType: int
    signature: int general_set_uint(OSSL_PARAM *p, void *val, size_t val_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/crypto/params.c:224,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/crypto/params.c:226,1
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: OSSL_PARAM_get_int
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_int32
    - OSSL_PARAM_get_int64
    - general_get_int
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_int(const OSSL_PARAM *p, int *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/crypto/params.c:237,1
    - Dst: OSSL_PARAM_set_int64
      Src: /src/openssl-3.0.15/crypto/params.c:239,1
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: OSSL_PARAM_set_int
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_int32
    - general_set_int
    - OSSL_PARAM_set_int64
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_int(OSSL_PARAM *p, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: OSSL_PARAM_construct_int
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_int(const char *key, int *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/crypto/params.c:255,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/crypto/params.c:257,1
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: OSSL_PARAM_get_uint
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_uint32
    - OSSL_PARAM_get_uint64
    - general_get_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_uint(const OSSL_PARAM *p, unsigned int *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/crypto/params.c:268,1
    - Dst: OSSL_PARAM_set_uint64
      Src: /src/openssl-3.0.15/crypto/params.c:270,1
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: OSSL_PARAM_set_uint
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_uint64
    - general_set_uint
    - OSSL_PARAM_set_uint32
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_uint(OSSL_PARAM *p, unsigned int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: OSSL_PARAM_construct_uint
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_uint(const char *key, unsigned int
      *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/crypto/params.c:287,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/crypto/params.c:289,1
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 293
    functionName: OSSL_PARAM_get_long
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_int32
    - OSSL_PARAM_get_int64
    - general_get_int
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_long(const OSSL_PARAM *p, long int *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/crypto/params.c:300,1
    - Dst: OSSL_PARAM_set_int64
      Src: /src/openssl-3.0.15/crypto/params.c:302,1
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: OSSL_PARAM_set_long
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_int32
    - general_set_int
    - OSSL_PARAM_set_int64
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_long(OSSL_PARAM *p, long int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: OSSL_PARAM_construct_long
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_long(const char *key, long int *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/crypto/params.c:318,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/crypto/params.c:320,1
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - unsigned long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 324
    functionName: OSSL_PARAM_get_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_uint32
    - OSSL_PARAM_get_uint64
    - general_get_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_ulong(const OSSL_PARAM *p, unsigned long int *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/crypto/params.c:331,1
    - Dst: OSSL_PARAM_set_uint64
      Src: /src/openssl-3.0.15/crypto/params.c:333,1
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 337
    functionName: OSSL_PARAM_set_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_uint64
    - general_set_uint
    - OSSL_PARAM_set_uint32
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_ulong(OSSL_PARAM *p, unsigned long int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - unsigned long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: OSSL_PARAM_construct_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_ulong(const char *key, unsigned long
      int *buf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:367,1
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:391,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 409
    functionName: OSSL_PARAM_get_int32
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_get_int
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_int32(const OSSL_PARAM *p, int32_t *val)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:431,1
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:447,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 461
    functionName: OSSL_PARAM_set_int32
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_set_int
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_int32(OSSL_PARAM *p, int32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: OSSL_PARAM_construct_int32
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_int32(const char *key, int32_t *buf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:491,1
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:514,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 531
    functionName: OSSL_PARAM_get_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_get_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_uint32(const OSSL_PARAM *p, uint32_t *val)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:554,1
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:573,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 587
    functionName: OSSL_PARAM_set_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_set_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_uint32(OSSL_PARAM *p, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 593
    functionName: OSSL_PARAM_construct_uint32
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_uint32(const char *key, uint32_t *buf)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:611,1
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:629,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 653
    functionName: OSSL_PARAM_get_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_get_int
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_int64(const OSSL_PARAM *p, int64_t *val)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:678,1
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:697,1
    - Dst: real_shift
      Src: /src/openssl-3.0.15/crypto/params.c:708,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 717
    functionName: OSSL_PARAM_set_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_set_int
    - real_shift
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_int64(OSSL_PARAM *p, int64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: OSSL_PARAM_construct_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_int64(const char *key, int64_t *buf)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:740,1
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:763,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 787
    functionName: OSSL_PARAM_get_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - general_get_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_uint64(const OSSL_PARAM *p, uint64_t *val)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:813,1
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:835,1
    - Dst: real_shift
      Src: /src/openssl-3.0.15/crypto/params.c:841,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 789
    functionDepth: 4
    functionLinenumber: 789
    functionLinenumberEnd: 850
    functionName: OSSL_PARAM_set_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached:
    - real_shift
    - general_set_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_uint64(OSSL_PARAM *p, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 856
    functionName: OSSL_PARAM_construct_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_uint64(const char *key, uint64_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/crypto/params.c:863,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/crypto/params.c:865,1
    - Dst: general_get_uint
      Src: /src/openssl-3.0.15/crypto/params.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 858
    functionDepth: 5
    functionLinenumber: 858
    functionLinenumberEnd: 869
    functionName: OSSL_PARAM_get_size_t
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_uint32
    - OSSL_PARAM_get_uint64
    - general_get_uint
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_size_t(const OSSL_PARAM *p, size_t *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/crypto/params.c:876,1
    - Dst: OSSL_PARAM_set_uint64
      Src: /src/openssl-3.0.15/crypto/params.c:878,1
    - Dst: general_set_uint
      Src: /src/openssl-3.0.15/crypto/params.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 882
    functionName: OSSL_PARAM_set_size_t
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_uint64
    - general_set_uint
    - OSSL_PARAM_set_uint32
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_size_t(OSSL_PARAM *p, size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 888
    functionName: OSSL_PARAM_construct_size_t
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_size_t(const char *key, size_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/crypto/params.c:895,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/crypto/params.c:897,1
    - Dst: general_get_int
      Src: /src/openssl-3.0.15/crypto/params.c:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 890
    functionDepth: 5
    functionLinenumber: 890
    functionLinenumberEnd: 901
    functionName: OSSL_PARAM_get_time_t
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_int32
    - OSSL_PARAM_get_int64
    - general_get_int
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_time_t(const OSSL_PARAM *p, time_t *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/crypto/params.c:908,1
    - Dst: OSSL_PARAM_set_int64
      Src: /src/openssl-3.0.15/crypto/params.c:910,1
    - Dst: general_set_int
      Src: /src/openssl-3.0.15/crypto/params.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 903
    functionDepth: 5
    functionLinenumber: 903
    functionLinenumberEnd: 914
    functionName: OSSL_PARAM_set_time_t
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_int32
    - general_set_int
    - OSSL_PARAM_set_int64
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_time_t(OSSL_PARAM *p, time_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 919
    functionName: OSSL_PARAM_construct_time_t
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_time_t(const char *key, time_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_native2bn
      Src: /src/openssl-3.0.15/crypto/params.c:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 936
    functionName: OSSL_PARAM_get_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - BN_native2bn
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_BN(const OSSL_PARAM *p, BIGNUM **val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/params.c:949,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/params.c:952,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/crypto/params.c:962,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 965
    functionName: OSSL_PARAM_set_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - BN_is_negative
    - BN_bn2nativepad
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_BN(OSSL_PARAM *p, const BIGNUM *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - buf
    - bsize
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 972
    functionName: OSSL_PARAM_construct_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM OSSL_PARAM_construct_BN(const char *key, unsigned char
      *buf,\n                                   size_t bsize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: real_shift
      Src: /src/openssl-3.0.15/crypto/params.c:996,1
    - Dst: real_shift
      Src: /src/openssl-3.0.15/crypto/params.c:1010,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1018
    functionName: OSSL_PARAM_get_double
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - real_shift
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_double(const OSSL_PARAM *p, double *val)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1089
    functionName: OSSL_PARAM_set_double
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_double(OSSL_PARAM *p, double val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - char*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1094
    functionName: OSSL_PARAM_construct_double
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_double(const char *key, double *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/params.c:1123,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params.c:1133,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 5
    argNames:
    - p
    - val
    - max_len
    - used_len
    - type
    argTypes:
    - OSSL_PARAM*
    - void**
    - size_t*
    - size_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1135
    functionName: get_string_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int get_string_internal(const OSSL_PARAM *p, void **val,\n                               size_t
      *max_len, size_t *used_len,\n                               unsigned int type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1139,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-3.0.15/crypto/params.c:1158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - p
    - val
    - max_len
    argTypes:
    - OSSL_PARAM*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1164
    functionName: OSSL_PARAM_get_utf8_string
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - get_string_internal
    - OPENSSL_strnlen
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_utf8_string(const OSSL_PARAM *p, char **val, size_t
      max_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_string_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - val
    - max_len
    - used_len
    argTypes:
    - OSSL_PARAM*
    - void**
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1166
    functionDepth: 2
    functionLinenumber: 1166
    functionLinenumberEnd: 1171
    functionName: OSSL_PARAM_get_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - get_string_internal
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_get_octet_string(const OSSL_PARAM *p, void **val, size_t
      max_len,\n                                size_t *used_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/params.c:1182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - p
    - val
    - len
    - type
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1187
    functionName: set_string_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int set_string_internal(OSSL_PARAM *p, const void *val, size_t len,\n
      \                              unsigned int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_string_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1197,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/params.c:1197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1198
    functionName: OSSL_PARAM_set_utf8_string
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - set_string_internal
    - strlen
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_utf8_string(OSSL_PARAM *p, const char *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_string_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - val
    - len
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1210
    functionName: OSSL_PARAM_set_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - set_string_internal
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_set_octet_string(OSSL_PARAM *p, const void *val,\n
      \                               size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/params.c:1216,1
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:1217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - buf
    - bsize
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1218
    functionName: OSSL_PARAM_construct_utf8_string
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 1
    functionsReached:
    - strlen
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM OSSL_PARAM_construct_utf8_string(const char *key, char
      *buf,\n                                            size_t bsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - buf
    - bsize
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1224
    functionName: OSSL_PARAM_construct_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM OSSL_PARAM_construct_octet_string(const char *key, void
      *buf,\n                                             size_t bsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - p
    - val
    - used_len
    - type
    argTypes:
    - OSSL_PARAM*
    - void**
    - size_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1235
    functionName: get_ptr_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_ptr_internal(const OSSL_PARAM *p, const void **val,\n                            size_t
      *used_len, unsigned int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ptr_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1240
    functionName: OSSL_PARAM_get_utf8_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - get_ptr_internal
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_utf8_ptr(const OSSL_PARAM *p, const char **val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ptr_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - val
    - used_len
    argTypes:
    - OSSL_PARAM*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1246
    functionName: OSSL_PARAM_get_octet_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - get_ptr_internal
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_get_octet_ptr(const OSSL_PARAM *p, const void **val,\n
      \                            size_t *used_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - p
    - val
    - type
    - len
    argTypes:
    - OSSL_PARAM*
    - void*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1257
    functionName: set_ptr_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int set_ptr_internal(OSSL_PARAM *p, const void *val,\n                            unsigned
      int type, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_ptr_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1264,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/params.c:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1266
    functionName: OSSL_PARAM_set_utf8_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 1
    functionsReached:
    - strlen
    - set_ptr_internal
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_set_utf8_ptr(OSSL_PARAM *p, const char *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_ptr_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - val
    - used_len
    argTypes:
    - OSSL_PARAM*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1275
    functionName: OSSL_PARAM_set_octet_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - set_ptr_internal
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_set_octet_ptr(OSSL_PARAM *p, const void *val,\n                             size_t
      used_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - buf
    - bsize
    argTypes:
    - char*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: OSSL_PARAM_construct_utf8_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM OSSL_PARAM_construct_utf8_ptr(const char *key, char **buf,\n
      \                                        size_t bsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_construct
      Src: /src/openssl-3.0.15/crypto/params.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - buf
    - bsize
    argTypes:
    - char*
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: OSSL_PARAM_construct_octet_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - ossl_param_construct
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM OSSL_PARAM_construct_octet_ptr(const char *key, void **buf,\n
      \                                         size_t bsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1289
    functionDepth: 0
    functionLinenumber: 1289
    functionLinenumberEnd: 1294
    functionName: OSSL_PARAM_construct_end
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM OSSL_PARAM_construct_end(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - p
    - val
    - used_len
    - type
    argTypes:
    - OSSL_PARAM*
    - void**
    - size_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1305
    functionName: get_string_ptr_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_string_ptr_internal(const OSSL_PARAM *p, const void **val,\n
      \                                  size_t *used_len, unsigned int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/params.c:1309,1
    - Dst: get_string_ptr_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - OSSL_PARAM*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1307
    functionDepth: 2
    functionLinenumber: 1307
    functionLinenumberEnd: 1312
    functionName: OSSL_PARAM_get_utf8_string_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - get_string_ptr_internal
    - OSSL_PARAM_get_utf8_ptr
    linkageType: ''
    returnType: int
    signature: int OSSL_PARAM_get_utf8_string_ptr(const OSSL_PARAM *p, const char
      **val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_octet_ptr
      Src: /src/openssl-3.0.15/crypto/params.c:1317,1
    - Dst: get_string_ptr_internal
      Src: /src/openssl-3.0.15/crypto/params.c:1318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - p
    - val
    - used_len
    argTypes:
    - OSSL_PARAM*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1319
    functionName: OSSL_PARAM_get_octet_string_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_octet_ptr
    - get_string_ptr_internal
    linkageType: ''
    returnType: int
    signature: "int OSSL_PARAM_get_octet_string_ptr(const OSSL_PARAM *p, const void
      **val,\n                                    size_t *used_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:59,1
    - Dst: ossl_malloc_setup_failures
      Src: /src/openssl-3.0.15/crypto/init.c:61,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/init.c:64,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/init.c:65,1
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-3.0.15/crypto/init.c:68,1
    - Dst: ossl_init_thread
      Src: /src/openssl-3.0.15/crypto/init.c:70,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/init.c:73,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:80,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/init.c:81,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/init.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 87
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    - ossl_init_thread
    - OSSL_TRACE
    - ossl_malloc_setup_failures
    - CRYPTO_THREAD_lock_new
    - OPENSSL_cpuid_setup
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanup
      Src: /src/openssl-3.0.15/crypto/init.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: win32atexit
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanup
    linkageType: ''
    returnType: int
    signature: int win32atexit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/init.c:102,1
    - Dst: _onexit
      Src: /src/openssl-3.0.15/crypto/init.c:107,1
    - Dst: atexit
      Src: /src/openssl-3.0.15/crypto/init.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - _onexit
    - atexit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_register_atexit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/init.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_register_atexit,\n                           ossl_init_register_atexit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:132,1
    - Dst: GetModuleHandleEx
      Src: /src/openssl-3.0.15/crypto/init.c:142,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/init.c:146,1
    - Dst: err_shelve_state
      Src: /src/openssl-3.0.15/crypto/init.c:161,1
    - Dst: DSO_dsobyaddr
      Src: /src/openssl-3.0.15/crypto/init.c:164,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/init.c:170,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/init.c:172,1
    - Dst: err_unshelve_state
      Src: /src/openssl-3.0.15/crypto/init.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 179
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - err_shelve_state
    - OSSL_TRACE
    - DSO_free
    - GetModuleHandleEx
    - DSO_dsobyaddr
    - err_unshelve_state
    - OSSL_TRACE1
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_nodelete)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:191,1
    - Dst: ossl_err_load_crypto_strings
      Src: /src/openssl-3.0.15/crypto/init.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_err_load_crypto_strings
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_load_crypto_strings,\n
      \                          ossl_init_load_crypto_strings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:212,1
    - Dst: openssl_add_all_ciphers_int
      Src: /src/openssl-3.0.15/crypto/init.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - openssl_add_all_ciphers_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_ciphers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_ciphers,\n                           ossl_init_add_all_ciphers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:233,1
    - Dst: openssl_add_all_digests_int
      Src: /src/openssl-3.0.15/crypto/init.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 237
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - openssl_add_all_digests_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_digests)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_digests,\n                           ossl_init_add_all_digests)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_config_int
      Src: /src/openssl-3.0.15/crypto/init.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_config_int
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_config_int
      Src: /src/openssl-3.0.15/crypto/init.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_config_int
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_config_settings, ossl_init_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:265,1
    - Dst: ossl_no_config_int
      Src: /src/openssl-3.0.15/crypto/init.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: DEFINE_RUN_ONCE_STATIC_ALT
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - ossl_no_config_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_config, ossl_init_config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:275,1
    - Dst: async_init
      Src: /src/openssl-3.0.15/crypto/init.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - async_init
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_async)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:286,1
    - Dst: engine_load_openssl_int
      Src: /src/openssl-3.0.15/crypto/init.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE
    - engine_load_openssl_int
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:294,1
    - Dst: engine_load_rdrand_int
      Src: /src/openssl-3.0.15/crypto/init.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE
    - engine_load_rdrand_int
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_rdrand)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:302,1
    - Dst: engine_load_dynamic_int
      Src: /src/openssl-3.0.15/crypto/init.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_dynamic_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_dynamic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:311,1
    - Dst: engine_load_devcrypto_int
      Src: /src/openssl-3.0.15/crypto/init.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_devcrypto_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_devcrypto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:320,1
    - Dst: engine_load_padlock_int
      Src: /src/openssl-3.0.15/crypto/init.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_padlock_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_padlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:329,1
    - Dst: engine_load_capi_int
      Src: /src/openssl-3.0.15/crypto/init.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_capi_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_capi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:338,1
    - Dst: engine_load_afalg_int
      Src: /src/openssl-3.0.15/crypto/init.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 0
    functionsReached:
    - engine_load_afalg_int
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_init_engine_afalg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-3.0.15/crypto/init.c:368,1
    - Dst: OPENSSL_INIT_STOP*::handler
      Src: /src/openssl-3.0.15/crypto/init.c:372,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/init.c:375,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/init.c:379,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/init.c:381,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/init.c:384,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:392,1
    - Dst: ossl_comp_zlib_cleanup
      Src: /src/openssl-3.0.15/crypto/init.c:393,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:397,1
    - Dst: async_deinit
      Src: /src/openssl-3.0.15/crypto/init.c:398,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:412,1
    - Dst: ossl_rand_cleanup_int
      Src: /src/openssl-3.0.15/crypto/init.c:413,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:415,1
    - Dst: ossl_config_modules_free
      Src: /src/openssl-3.0.15/crypto/init.c:416,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:419,1
    - Dst: engine_cleanup_int
      Src: /src/openssl-3.0.15/crypto/init.c:420,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:424,1
    - Dst: ossl_store_cleanup_int
      Src: /src/openssl-3.0.15/crypto/init.c:425,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:428,1
    - Dst: ossl_lib_ctx_default_deinit
      Src: /src/openssl-3.0.15/crypto/init.c:429,1
    - Dst: ossl_cleanup_thread
      Src: /src/openssl-3.0.15/crypto/init.c:431,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:433,1
    - Dst: bio_cleanup
      Src: /src/openssl-3.0.15/crypto/init.c:434,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:436,1
    - Dst: evp_cleanup_int
      Src: /src/openssl-3.0.15/crypto/init.c:437,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:439,1
    - Dst: ossl_obj_cleanup_int
      Src: /src/openssl-3.0.15/crypto/init.c:440,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:442,1
    - Dst: err_cleanup
      Src: /src/openssl-3.0.15/crypto/init.c:443,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:445,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/crypto/init.c:446,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:449,1
    - Dst: OSSL_CMP_log_close
      Src: /src/openssl-3.0.15/crypto/init.c:450,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/init.c:453,1
    - Dst: ossl_trace_cleanup
      Src: /src/openssl-3.0.15/crypto/init.c:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 457
    functionName: OPENSSL_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 2
    functionsReached:
    - OSSL_TRACE
    - OSSL_CMP_log_close
    - OPENSSL_thread_stop
    - err_cleanup
    - CRYPTO_THREAD_cleanup_local
    - ossl_lib_ctx_default_deinit
    - ossl_comp_zlib_cleanup
    - CRYPTO_secure_malloc_done
    - CRYPTO_THREAD_lock_free
    - ossl_trace_cleanup
    - ossl_rand_cleanup_int
    - OPENSSL_free
    - ossl_store_cleanup_int
    - evp_cleanup_int
    - async_deinit
    - ossl_obj_cleanup_int
    - ossl_cleanup_thread
    - ossl_config_modules_free
    - OPENSSL_INIT_STOP*::handler
    - bio_cleanup
    - engine_cleanup_int
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cleanup(void)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/init.c:472,1
    - Dst: CRYPTO_atomic_load
      Src: /src/openssl-3.0.15/crypto/init.c:489,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:509,1
    - Dst: CRYPTO_atomic_load
      Src: /src/openssl-3.0.15/crypto/init.c:521,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-3.0.15/crypto/init.c:534,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:537,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:541,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-3.0.15/crypto/init.c:545,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:551,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-3.0.15/crypto/init.c:555,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:560,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-3.0.15/crypto/init.c:564,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:569,1
    - Dst: openssl_init_fork_handlers
      Src: /src/openssl-3.0.15/crypto/init.c:573,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-3.0.15/crypto/init.c:577,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/init.c:581,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/init.c:587,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:590,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/init.c:592,1
    - Dst: RUN_ONCE_ALT
      Src: /src/openssl-3.0.15/crypto/init.c:595,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/init.c:598,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:607,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:612,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:616,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:620,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:625,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:630,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:635,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/init.c:640,1
    - Dst: ENGINE_register_all_complete
      Src: /src/openssl-3.0.15/crypto/init.c:647,1
    - Dst: CRYPTO_atomic_or
      Src: /src/openssl-3.0.15/crypto/init.c:651,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 86
    argCount: 2
    argNames:
    - opts
    - settings
    argTypes:
    - uint64_t
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 655
    functionName: OPENSSL_init_crypto
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_set_local
    - openssl_init_fork_handlers
    - RUN_ONCE
    - CRYPTO_atomic_load
    - CRYPTO_THREAD_get_local
    - CRYPTO_THREAD_unlock
    - ERR_raise
    - CRYPTO_atomic_or
    - ENGINE_register_all_complete
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE_ALT
    linkageType: ''
    returnType: int
    signature: int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS
      *settings)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleEx
      Src: /src/openssl-3.0.15/crypto/init.c:678,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/init.c:699,1
    - Dst: DSO_dsobyaddr
      Src: /src/openssl-3.0.15/crypto/init.c:700,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/init.c:702,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/init.c:705,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/init.c:706,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/init.c:711,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/init.c:712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 721
    functionName: OPENSSL_atexit
    functionSourceFile: /src/openssl-3.0.15/crypto/init.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ERR_set_mark
    - ERR_raise
    - DSO_free
    - ERR_pop_to_mark
    - GetModuleHandleEx
    - DSO_dsobyaddr
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: int OPENSSL_atexit(void (*handler)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_child.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: child_prov_ossl_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *child_prov_ossl_ctx_new(OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vgbl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: child_prov_ossl_ctx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void child_prov_ossl_ctx_free(void *vgbl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_FUNC_core_get_libctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:69,1
    - Dst: c_get_libctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:85,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:87,1
    - Dst: struct child_prov_globals*::c_prov_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:92,1
    - Dst: struct child_prov_globals*::c_prov_get0_dispatch
      Src: /src/openssl-3.0.15/crypto/provider_child.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - handle
    - in
    - out
    - provctx
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    - OSSL_DISPATCH**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 96
    functionName: ossl_child_provider_init
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 0
    functionsReached:
    - c_get_libctx
    - struct child_prov_globals*::c_prov_get0_dispatch
    - ossl_lib_ctx_get_data
    - OSSL_FUNC_core_get_libctx
    - struct child_prov_globals*::c_prov_get0_provider_ctx
    linkageType: ''
    returnType: int
    signature: "int ossl_child_provider_init(const OSSL_CORE_HANDLE *handle,\n                                    const
      OSSL_DISPATCH *in,\n                                    const OSSL_DISPATCH
      **out,\n                                    void **provctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:106,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_child.c:111,1
    - Dst: struct child_prov_globals*::c_prov_name
      Src: /src/openssl-3.0.15/crypto/provider_child.c:114,1
    - Dst: ossl_provider_find
      Src: /src/openssl-3.0.15/crypto/provider_child.c:122,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:127,1
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_child.c:134,1
    - Dst: ossl_provider_new
      Src: /src/openssl-3.0.15/crypto/provider_child.c:141,1
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_child.c:145,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:146,1
    - Dst: ossl_provider_set_child
      Src: /src/openssl-3.0.15/crypto/provider_child.c:150,1
    - Dst: ossl_provider_add_to_store
      Src: /src/openssl-3.0.15/crypto/provider_child.c:151,1
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_child.c:152,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:153,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_child.c:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - prov
    - cbdata
    argTypes:
    - OSSL_CORE_HANDLE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 98
    functionDepth: 10
    functionLinenumber: 98
    functionLinenumberEnd: 162
    functionName: provider_create_child_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 0
    functionsReached:
    - ossl_provider_activate
    - ossl_provider_add_to_store
    - ossl_provider_set_child
    - ossl_provider_deactivate
    - struct child_prov_globals*::c_prov_name
    - ossl_provider_new
    - ossl_provider_free
    - ossl_provider_find
    - CRYPTO_THREAD_write_lock
    - ossl_lib_ctx_get_data
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int provider_create_child_cb(const OSSL_CORE_HANDLE *prov, void *cbdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:171,1
    - Dst: struct child_prov_globals*::c_prov_name
      Src: /src/openssl-3.0.15/crypto/provider_child.c:176,1
    - Dst: ossl_provider_find
      Src: /src/openssl-3.0.15/crypto/provider_child.c:177,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:184,1
    - Dst: ossl_provider_is_child
      Src: /src/openssl-3.0.15/crypto/provider_child.c:185,1
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_child.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - prov
    - cbdata
    argTypes:
    - OSSL_CORE_HANDLE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 9
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: provider_remove_child_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 0
    functionsReached:
    - ossl_provider_deactivate
    - struct child_prov_globals*::c_prov_name
    - ossl_provider_is_child
    - ossl_provider_free
    - ossl_provider_find
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: int provider_remove_child_cb(const OSSL_CORE_HANDLE *prov, void *cbdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_set_default_properties_int
      Src: /src/openssl-3.0.15/crypto/provider_child.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - props
    - cbdata
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: provider_global_props_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 0
    functionsReached:
    - evp_set_default_properties_int
    linkageType: ''
    returnType: int
    signature: int provider_global_props_cb(const char *props, void *cbdata)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:208,1
    - Dst: OSSL_FUNC_core_get_libctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:217,1
    - Dst: OSSL_FUNC_provider_register_child_cb
      Src: /src/openssl-3.0.15/crypto/provider_child.c:221,1
    - Dst: OSSL_FUNC_provider_deregister_child_cb
      Src: /src/openssl-3.0.15/crypto/provider_child.c:225,1
    - Dst: OSSL_FUNC_provider_name
      Src: /src/openssl-3.0.15/crypto/provider_child.c:228,1
    - Dst: OSSL_FUNC_provider_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:232,1
    - Dst: OSSL_FUNC_provider_get0_dispatch
      Src: /src/openssl-3.0.15/crypto/provider_child.c:235,1
    - Dst: OSSL_FUNC_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/provider_child.c:239,1
    - Dst: OSSL_FUNC_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:242,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_child.c:259,1
    - Dst: struct child_prov_globals*::c_provider_register_child_cb
      Src: /src/openssl-3.0.15/crypto/provider_child.c:263,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 3
    argNames:
    - ctx
    - handle
    - in
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 199
    functionDepth: 6
    functionLinenumber: 199
    functionLinenumberEnd: 271
    functionName: ossl_provider_init_as_child
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 1
    functionsReached:
    - OSSL_FUNC_provider_deregister_child_cb
    - OSSL_FUNC_provider_get0_provider_ctx
    - OSSL_FUNC_provider_register_child_cb
    - OSSL_FUNC_provider_up_ref
    - OSSL_FUNC_provider_free
    - struct child_prov_globals*::c_provider_register_child_cb
    - OSSL_FUNC_core_get_libctx
    - OSSL_FUNC_provider_name
    - OSSL_FUNC_provider_get0_dispatch
    - CRYPTO_THREAD_lock_new
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: "int ossl_provider_init_as_child(OSSL_LIB_CTX *ctx,\n                                const
      OSSL_CORE_HANDLE *handle,\n                                const OSSL_DISPATCH
      *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:276,1
    - Dst: struct child_prov_globals*::c_provider_deregister_child_cb
      Src: /src/openssl-3.0.15/crypto/provider_child.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: ossl_provider_deinit_child
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 1
    functionsReached:
    - ossl_lib_ctx_get_data
    - struct child_prov_globals*::c_provider_deregister_child_cb
    linkageType: ''
    returnType: void
    signature: void ossl_provider_deinit_child(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:301,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:301,1
    - Dst: ossl_provider_get_parent
      Src: /src/openssl-3.0.15/crypto/provider_child.c:307,1
    - Dst: struct child_prov_globals*::c_prov_up_ref
      Src: /src/openssl-3.0.15/crypto/provider_child.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - prov
    - activate
    argTypes:
    - OSSL_PROVIDER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 311
    functionName: ossl_provider_up_ref_parent
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 2
    functionsReached:
    - struct child_prov_globals*::c_prov_up_ref
    - ossl_provider_libctx
    - ossl_lib_ctx_get_data
    - ossl_provider_get_parent
    linkageType: ''
    returnType: int
    signature: int ossl_provider_up_ref_parent(OSSL_PROVIDER *prov, int activate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_child.c:318,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/provider_child.c:318,1
    - Dst: ossl_provider_get_parent
      Src: /src/openssl-3.0.15/crypto/provider_child.c:324,1
    - Dst: struct child_prov_globals*::c_prov_free
      Src: /src/openssl-3.0.15/crypto/provider_child.c:327,1
    - Dst: ossl_provider_get_parent
      Src: /src/openssl-3.0.15/crypto/provider_child.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - prov
    - deactivate
    argTypes:
    - OSSL_PROVIDER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 313
    functionDepth: 6
    functionLinenumber: 313
    functionLinenumberEnd: 328
    functionName: ossl_provider_free_parent
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_child.c
    functionUses: 3
    functionsReached:
    - struct child_prov_globals*::c_prov_free
    - ossl_provider_libctx
    - ossl_lib_ctx_get_data
    - ossl_provider_get_parent
    linkageType: ''
    returnType: int
    signature: int ossl_provider_free_parent(OSSL_PROVIDER *prov, int deactivate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/o_str.c:27,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/o_str.c:27,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/o_str.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: CRYPTO_strdup
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    - CRYPTO_malloc
    linkageType: ''
    returnType: char
    signature: char *CRYPTO_strdup(const char *str, const char* file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-3.0.15/crypto/o_str.c:41,1
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/o_str.c:43,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/o_str.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - str
    - s
    - file
    - line
    argTypes:
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: CRYPTO_strndup
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strnlen
    - CRYPTO_malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *CRYPTO_strndup(const char *str, size_t s, const char* file, int
      line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_malloc
      Src: /src/openssl-3.0.15/crypto/o_str.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:60,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/o_str.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - data
    - siz
    - file
    - line
    argTypes:
    - void*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: CRYPTO_memdup
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - CRYPTO_malloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_memdup(const void *data, size_t siz, const char* file,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: OPENSSL_strnlen
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_strnlen(const char *str, size_t maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/o_str.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: OPENSSL_strlcpy
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 2
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_strlcpy(char *dst, const char *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/o_str.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: OPENSSL_strlcat
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: size_t
    signature: size_t OPENSSL_strlcat(char *dst, const char *src, size_t size)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 136
    functionName: OPENSSL_hexchar2int
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_hexchar2int(unsigned char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:154,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/o_str.c:157,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/o_str.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - buf
    - buf_n
    - buflen
    - str
    - sep
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 176
    functionName: hexstr2buf_sep
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexchar2int
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int hexstr2buf_sep(unsigned char *buf, size_t buf_n, size_t *buflen,\n
      \                         const char *str, const char sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hexstr2buf_sep
      Src: /src/openssl-3.0.15/crypto/o_str.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - buf
    - buf_n
    - buflen
    - str
    - sep
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: OPENSSL_hexstr2buf_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 1
    functionsReached:
    - hexstr2buf_sep
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t
      *buflen,\n                          const char *str, const char sep)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/o_str.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:195,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/o_str.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:200,1
    - Dst: hexstr2buf_sep
      Src: /src/openssl-3.0.15/crypto/o_str.c:207,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/o_str.c:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - str
    - buflen
    - sep
    argTypes:
    - char*
    - long*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 214
    functionName: ossl_hexstr2buf_sep
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - hexstr2buf_sep
    - OPENSSL_free
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *ossl_hexstr2buf_sep(const char *str, long *buflen,\n
      \                                  const char sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_hexstr2buf_sep
      Src: /src/openssl-3.0.15/crypto/o_str.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - buflen
    argTypes:
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: OPENSSL_hexstr2buf
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - ossl_hexstr2buf_sep
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:240,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/o_str.c:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - str
    - str_n
    - strlength
    - buf
    - buflen
    - sep
    argTypes:
    - char*
    - size_t
    - size_t*
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 259
    functionName: buf2hexstr_sep
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - ebcdic2ascii
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int buf2hexstr_sep(char *str, size_t str_n, size_t *strlength,\n                          const
      unsigned char *buf, size_t buflen,\n                          const char sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buf2hexstr_sep
      Src: /src/openssl-3.0.15/crypto/o_str.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - str
    - str_n
    - strlength
    - buf
    - buflen
    - sep
    argTypes:
    - char*
    - size_t
    - size_t*
    - unsigned char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: OPENSSL_buf2hexstr_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - buf2hexstr_sep
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength,\n
      \                         const unsigned char *buf, size_t buflen,\n                          const
      char sep)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/o_str.c:274,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/o_str.c:277,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/o_str.c:278,1
    - Dst: buf2hexstr_sep
      Src: /src/openssl-3.0.15/crypto/o_str.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/o_str.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - buflen
    - sep
    argTypes:
    - unsigned char*
    - long
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 286
    functionName: ossl_buf2hexstr_sep
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - buf2hexstr_sep
    linkageType: ''
    returnType: char
    signature: char *ossl_buf2hexstr_sep(const unsigned char *buf, long buflen, char
      sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_buf2hexstr_sep
      Src: /src/openssl-3.0.15/crypto/o_str.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: OPENSSL_buf2hexstr
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - ossl_buf2hexstr_sep
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strerror_s
      Src: /src/openssl-3.0.15/crypto/o_str.c:302,1
    - Dst: strerror_r
      Src: /src/openssl-3.0.15/crypto/o_str.c:311,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/o_str.c:322,1
    - Dst: strerror_r
      Src: /src/openssl-3.0.15/crypto/o_str.c:331,1
    - Dst: strerror
      Src: /src/openssl-3.0.15/crypto/o_str.c:338,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/o_str.c:342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - errnum
    - buf
    - buflen
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 345
    functionName: openssl_strerror_r
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 0
    functionsReached:
    - strerror
    - strerror_s
    - OPENSSL_strlcpy
    - strerror_r
    linkageType: ''
    returnType: int
    signature: int openssl_strerror_r(int errnum, char *buf, size_t buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/o_str.c:351,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/o_str.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 355
    functionName: OPENSSL_strcasecmp
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 4
    functionsReached:
    - ossl_tolower
    linkageType: ''
    returnType: int
    signature: int OPENSSL_strcasecmp(const char *s1, const char *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/o_str.c:363,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/o_str.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: OPENSSL_strncasecmp
    functionSourceFile: /src/openssl-3.0.15/crypto/o_str.c
    functionUses: 3
    functionsReached:
    - ossl_tolower
    linkageType: ''
    returnType: int
    signature: int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lh_strcasehash
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMENUM_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: namenum_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - ossl_lh_strcasehash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long namenum_hash(const NAMENUM_ENTRY *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - NAMENUM_ENTRY*
    - NAMENUM_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: namenum_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int namenum_cmp(const NAMENUM_ENTRY *a, const NAMENUM_ENTRY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:57,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMENUM_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: namenum_free
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void namenum_free(NAMENUM_ENTRY *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_new
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: stored_namemap_new
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_new
    linkageType: ''
    returnType: void
    signature: void *stored_namemap_new(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vnamemap
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: stored_namemap_free
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_free
    linkageType: ''
    returnType: void
    signature: void stored_namemap_free(void *vnamemap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:104,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:107,1
    - Dst: tsan_load
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - namemap
    argTypes:
    - OSSL_NAMEMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: ossl_namemap_empty
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    - tsan_load
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: int ossl_namemap_empty(OSSL_NAMEMAP *namemap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - namenum
    - data
    argTypes:
    - NAMENUM_ENTRY*
    - DOALL_NAMES_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: do_name
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_name(const NAMENUM_ENTRY *namenum, DOALL_NAMES_DATA *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:153,1
    - Dst: lh_NAMENUM_ENTRY_num_items
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:156,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:158,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:161,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:163,1
    - Dst: lh_NAMENUM_ENTRY_doall_DOALL_NAMES_DATA
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:166,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:168,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - namemap
    - number
    - data
    argTypes:
    - OSSL_NAMEMAP*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 175
    functionName: ossl_namemap_doall_names
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - lh_NAMENUM_ENTRY_num_items
    - OPENSSL_malloc
    - lh_NAMENUM_ENTRY_doall_DOALL_NAMES_DATA
    - OPENSSL_free
    - fn
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int ossl_namemap_doall_names(const OSSL_NAMEMAP *namemap, int number,\n
      \                            void (*fn)(const char *name, void *data),\n                             void
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:182,1
    - Dst: lh_NAMENUM_ENTRY_retrieve
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - namemap
    - name
    - name_len
    argTypes:
    - OSSL_NAMEMAP*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: namemap_name2num_n
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - lh_NAMENUM_ENTRY_retrieve
    - OPENSSL_strndup
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int namemap_name2num_n(const OSSL_NAMEMAP *namemap,\n                              const
      char *name, size_t name_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:198,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:204,1
    - Dst: namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:206,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - namemap
    - name
    - name_len
    argTypes:
    - OSSL_NAMEMAP*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 210
    functionName: ossl_namemap_name2num_n
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - CRYPTO_THREAD_unlock
    - namemap_name2num_n
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_namemap_name2num_n(const OSSL_NAMEMAP *namemap,\n                            const
      char *name, size_t name_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:217,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - namemap
    - name
    argTypes:
    - OSSL_NAMEMAP*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: ossl_namemap_name2num
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_name2num_n
    - strlen
    linkageType: ''
    returnType: int
    signature: int ossl_namemap_name2num(const OSSL_NAMEMAP *namemap, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - name
    - vdata
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: do_num2name
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_num2name(const char *name, void *vdata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - namemap
    - number
    - idx
    argTypes:
    - OSSL_NAMEMAP*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: ossl_namemap_num2name
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_doall_names
    linkageType: ''
    returnType: char
    signature: "char *ossl_namemap_num2name(const OSSL_NAMEMAP *namemap, int number,\n
      \                                 size_t idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:254,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:257,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:258,1
    - Dst: tsan_counter
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:263,1
    - Dst: lh_NAMENUM_ENTRY_insert
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:264,1
    - Dst: lh_NAMENUM_ENTRY_error
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:266,1
    - Dst: namenum_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - namemap
    - number
    - name
    - name_len
    argTypes:
    - OSSL_NAMEMAP*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 273
    functionName: namemap_add_name_n
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - tsan_counter
    - OPENSSL_zalloc
    - OPENSSL_strndup
    - namemap_name2num_n
    - lh_NAMENUM_ENTRY_insert
    - lh_NAMENUM_ENTRY_error
    - namenum_free
    linkageType: ''
    returnType: int
    signature: "int namemap_add_name_n(OSSL_NAMEMAP *namemap, int number,\n                              const
      char *name, size_t name_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:282,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:288,1
    - Dst: namemap_add_name_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:290,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - namemap
    - number
    - name
    - name_len
    argTypes:
    - OSSL_NAMEMAP*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: ossl_namemap_add_name_n
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - namemap_add_name_n
    - ossl_namemap_stored
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int ossl_namemap_add_name_n(OSSL_NAMEMAP *namemap, int number,\n                            const
      char *name, size_t name_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_add_name_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:300,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - namemap
    - number
    - name
    argTypes:
    - OSSL_NAMEMAP*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: ossl_namemap_add_name
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - strlen
    - ossl_namemap_add_name_n
    linkageType: ''
    returnType: int
    signature: int ossl_namemap_add_name(OSSL_NAMEMAP *namemap, int number, const
      char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:310,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:311,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:315,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:324,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:325,1
    - Dst: namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:329,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:332,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:338,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:349,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:350,1
    - Dst: namemap_add_name_n
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:354,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:358,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:365,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:369,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - namemap
    - number
    - names
    - separator
    argTypes:
    - OSSL_NAMEMAP*
    - int
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 371
    functionName: ossl_namemap_add_names
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - namemap_add_name_n
    - strchr
    - ERR_raise_data
    - ERR_raise
    - strlen
    - namemap_name2num_n
    - CRYPTO_THREAD_write_lock
    - ossl_assert
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int ossl_namemap_add_names(OSSL_NAMEMAP *namemap, int number,\n                           const
      char *names, const char separator)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:389,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:389,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:390,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:390,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:394,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:394,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:395,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:395,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:396,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:399,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:400,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - base_nid
    - nid
    - pem_name
    - arg
    argTypes:
    - int
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 405
    functionName: get_legacy_evp_names
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2txt
    - OBJ_nid2obj
    - OBJ_nid2sn
    - ossl_namemap_add_name
    linkageType: ''
    returnType: void
    signature: "void get_legacy_evp_names(int base_nid, int nid, const char *pem_name,\n
      \                                void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:409,1
    - Dst: get_legacy_evp_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:412,1
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - 'on'
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 6
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: get_legacy_cipher_names
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - get_legacy_evp_names
    - OBJ_NAME_get
    - EVP_CIPHER_get_type
    linkageType: ''
    returnType: void
    signature: void get_legacy_cipher_names(const OBJ_NAME *on, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:417,1
    - Dst: get_legacy_evp_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:420,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - 'on'
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 6
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: get_legacy_md_names
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - get_legacy_evp_names
    - OBJ_NAME_get
    - EVP_MD_get_type
    linkageType: ''
    returnType: void
    signature: void get_legacy_md_names(const OBJ_NAME *on, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:429,1
    - Dst: get_legacy_evp_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:435,1
    - Dst: get_legacy_evp_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:438,1
    - Dst: get_legacy_evp_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:452,1
    - Dst: get_legacy_evp_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:456,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ameth
    - arg
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 423
    functionDepth: 6
    functionLinenumber: 423
    functionLinenumberEnd: 460
    functionName: get_legacy_pkey_meth_names
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 0
    functionsReached:
    - get_legacy_evp_names
    - EVP_PKEY_asn1_get0_info
    linkageType: ''
    returnType: void
    signature: "void get_legacy_pkey_meth_names(const EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                      void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:474,1
    - Dst: ossl_namemap_empty
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:481,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:493,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:496,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:498,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:502,1
    - Dst: get_legacy_pkey_meth_names
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:503,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 468
    functionDepth: 7
    functionLinenumber: 468
    functionLinenumberEnd: 508
    functionName: ossl_namemap_stored
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_asn1_get_count
    - get_legacy_pkey_meth_names
    - OBJ_NAME_do_all
    - EVP_PKEY_asn1_get0
    - ossl_namemap_empty
    - OPENSSL_init_crypto
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_NAMEMAP
    signature: OSSL_NAMEMAP *ossl_namemap_stored(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:514,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:515,1
    - Dst: lh_NAMENUM_ENTRY_new
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:517,1
    - Dst: ossl_namemap_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: ossl_namemap_new
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 1
    functionsReached:
    - ossl_namemap_free
    - CRYPTO_THREAD_lock_new
    - OPENSSL_zalloc
    - lh_NAMENUM_ENTRY_new
    linkageType: ''
    returnType: OSSL_NAMEMAP
    signature: OSSL_NAMEMAP *ossl_namemap_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_NAMENUM_ENTRY_doall
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:529,1
    - Dst: lh_NAMENUM_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:530,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:532,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/core_namemap.c:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - namemap
    argTypes:
    - OSSL_NAMEMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: ossl_namemap_free
    functionSourceFile: /src/openssl-3.0.15/crypto/core_namemap.c
    functionUses: 2
    functionsReached:
    - lh_NAMENUM_ENTRY_doall
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - lh_NAMENUM_ENTRY_free
    linkageType: ''
    returnType: void
    signature: void ossl_namemap_free(OSSL_NAMEMAP *namemap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_r
      Src: /src/openssl-3.0.15/crypto/o_time.c:35,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/o_time.c:37,1
    - Dst: gmtime_r
      Src: /src/openssl-3.0.15/crypto/o_time.c:41,1
    - Dst: gmtime_s
      Src: /src/openssl-3.0.15/crypto/o_time.c:45,1
    - Dst: gmtime
      Src: /src/openssl-3.0.15/crypto/o_time.c:49,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/o_time.c:53,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 2
    argNames:
    - timer
    - result
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 57
    functionName: OPENSSL_gmtime
    functionSourceFile: /src/openssl-3.0.15/crypto/o_time.c
    functionUses: 0
    functionsReached:
    - gmtime
    - gmtime_s
    - gmtime_r
    - memcpy
    linkageType: ''
    returnType: struct tm
    signature: struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: julian_adj
      Src: /src/openssl-3.0.15/crypto/o_time.c:78,1
    - Dst: julian_to_date
      Src: /src/openssl-3.0.15/crypto/o_time.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tm
    - off_day
    - offset_sec
    argTypes:
    - struct tm*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: OPENSSL_gmtime_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/o_time.c
    functionUses: 0
    functionsReached:
    - julian_to_date
    - julian_adj
    linkageType: ''
    returnType: int
    signature: int OPENSSL_gmtime_adj(struct tm *tm, int off_day, long offset_sec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: julian_adj
      Src: /src/openssl-3.0.15/crypto/o_time.c:107,1
    - Dst: julian_adj
      Src: /src/openssl-3.0.15/crypto/o_time.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - pday
    - psec
    - from
    - to
    argTypes:
    - int*
    - int*
    - struct tm*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: OPENSSL_gmtime_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/o_time.c
    functionUses: 0
    functionsReached:
    - julian_adj
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_gmtime_diff(int *pday, int *psec,\n                        const
      struct tm *from, const struct tm *to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: date_to_julian
      Src: /src/openssl-3.0.15/crypto/o_time.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - tm
    - off_day
    - offset_sec
    - pday
    - psec
    argTypes:
    - struct tm*
    - int
    - long
    - long*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 174
    functionName: julian_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/o_time.c
    functionUses: 2
    functionsReached:
    - date_to_julian
    linkageType: ''
    returnType: int
    signature: "int julian_adj(const struct tm *tm, int off_day, long offset_sec,\n
      \                     long *pday, int *psec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: date_to_julian
    functionSourceFile: /src/openssl-3.0.15/crypto/o_time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long date_to_julian(int y, int m, int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - jd
    - y
    - m
    - d
    argTypes:
    - long
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: julian_to_date
    functionSourceFile: /src/openssl-3.0.15/crypto/o_time.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void julian_to_date(long jd, int *y, int *m, int *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/threads_win.c:46,1
    - Dst: InitializeSRWLock
      Src: /src/openssl-3.0.15/crypto/threads_win.c:49,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/threads_win.c:52,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/openssl-3.0.15/crypto/threads_win.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/threads_win.c:60,1
    - Dst: InitializeCriticalSection
      Src: /src/openssl-3.0.15/crypto/threads_win.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: CRYPTO_THREAD_lock_new
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 9
    functionsReached:
    - InitializeCriticalSectionAndSpinCount
    - InitializeCriticalSection
    - OPENSSL_zalloc
    - OPENSSL_free
    - InitializeSRWLock
    linkageType: ''
    returnType: CRYPTO_RWLOCK
    signature: CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockShared
      Src: /src/openssl-3.0.15/crypto/threads_win.c:76,1
    - Dst: EnterCriticalSection
      Src: /src/openssl-3.0.15/crypto/threads_win.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: CRYPTO_THREAD_read_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 20
    functionsReached:
    - EnterCriticalSection
    - AcquireSRWLockShared
    linkageType: ''
    returnType: __owur
    signature: __owur CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/openssl-3.0.15/crypto/threads_win.c:88,1
    - Dst: EnterCriticalSection
      Src: /src/openssl-3.0.15/crypto/threads_win.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: CRYPTO_THREAD_write_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 32
    functionsReached:
    - AcquireSRWLockExclusive
    - EnterCriticalSection
    linkageType: ''
    returnType: __owur
    signature: __owur CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSRWLockExclusive
      Src: /src/openssl-3.0.15/crypto/threads_win.c:103,1
    - Dst: ReleaseSRWLockShared
      Src: /src/openssl-3.0.15/crypto/threads_win.c:105,1
    - Dst: LeaveCriticalSection
      Src: /src/openssl-3.0.15/crypto/threads_win.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: CRYPTO_THREAD_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 48
    functionsReached:
    - ReleaseSRWLockExclusive
    - LeaveCriticalSection
    - ReleaseSRWLockShared
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/openssl-3.0.15/crypto/threads_win.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/threads_win.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: CRYPTO_THREAD_lock_free
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 13
    functionsReached:
    - OPENSSL_free
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/openssl-3.0.15/crypto/threads_win.c:143,1
    - Dst: init
      Src: /src/openssl-3.0.15/crypto/threads_win.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - once
    argTypes:
    - CRYPTO_ONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: CRYPTO_THREAD_run_once
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - InterlockedCompareExchange
    - init
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/openssl-3.0.15/crypto/threads_win.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: CRYPTO_THREAD_init_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/crypto/threads_win.c:181,1
    - Dst: TlsGetValue
      Src: /src/openssl-3.0.15/crypto/threads_win.c:182,1
    - Dst: SetLastError
      Src: /src/openssl-3.0.15/crypto/threads_win.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 185
    functionName: CRYPTO_THREAD_get_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 3
    functionsReached:
    - GetLastError
    - TlsGetValue
    - SetLastError
    linkageType: ''
    returnType: void
    signature: void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/openssl-3.0.15/crypto/threads_win.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: CRYPTO_THREAD_set_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 4
    functionsReached:
    - TlsSetValue
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/openssl-3.0.15/crypto/threads_win.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - CRYPTO_THREAD_LOCAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: CRYPTO_THREAD_cleanup_local
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 3
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/openssl-3.0.15/crypto/threads_win.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: CRYPTO_THREAD_get_current_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: CRYPTO_THREAD_ID
    signature: CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CRYPTO_THREAD_ID
    - CRYPTO_THREAD_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: CRYPTO_THREAD_compare_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedExchangeAdd
      Src: /src/openssl-3.0.15/crypto/threads_win.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - val
    - amount
    - ret
    - lock
    argTypes:
    - int*
    - int
    - int*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: CRYPTO_atomic_add
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 0
    functionsReached:
    - InterlockedExchangeAdd
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/threads_win.c:223,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/threads_win.c:228,1
    - Dst: InterlockedOr64
      Src: /src/openssl-3.0.15/crypto/threads_win.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - val
    - op
    - ret
    - lock
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 236
    functionName: CRYPTO_atomic_or
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 1
    functionsReached:
    - InterlockedOr64
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,\n
      \                    CRYPTO_RWLOCK *lock)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/threads_win.c:241,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/threads_win.c:244,1
    - Dst: InterlockedOr64
      Src: /src/openssl-3.0.15/crypto/threads_win.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - val
    - ret
    - lock
    argTypes:
    - uint64_t*
    - uint64_t*
    - CRYPTO_RWLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: CRYPTO_atomic_load
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 1
    functionsReached:
    - InterlockedOr64
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: int
    signature: int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK
      *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: openssl_init_fork_handlers
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_init_fork_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: openssl_get_fork_id
    functionSourceFile: /src/openssl-3.0.15/crypto/threads_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int openssl_get_fork_id(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:26,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:27,1
    - Dst: OSSL_PARAM_set_int
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - bld
    - p
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: ossl_param_build_set_int
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_int
    - OSSL_PARAM_set_int
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_int(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,\n
      \                            const char *key, int num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_long
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:37,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:38,1
    - Dst: OSSL_PARAM_set_long
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - bld
    - p
    - key
    - num
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: ossl_param_build_set_long
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_long
    - OSSL_PARAM_BLD_push_long
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_long(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,\n
      \                             const char *key, long num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:48,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:49,1
    - Dst: OSSL_PARAM_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - bld
    - p
    - key
    - buf
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: ossl_param_build_set_utf8_string
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_utf8_string
    - OSSL_PARAM_BLD_push_utf8_string
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_utf8_string(OSSL_PARAM_BLD *bld, OSSL_PARAM
      *p,\n                                     const char *key, const char *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:61,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:63,1
    - Dst: OSSL_PARAM_set_octet_string
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - bld
    - p
    - key
    - data
    - data_len
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: ossl_param_build_set_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_set_octet_string
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_octet_string(OSSL_PARAM_BLD *bld, OSSL_PARAM
      *p,\n                                      const char *key,\n                                      const
      unsigned char *data,\n                                      size_t data_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN_pad
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:73,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:74,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - bld
    - p
    - key
    - bn
    - sz
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*
    - BIGNUM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: ossl_param_build_set_bn_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_locate
    - OSSL_PARAM_set_BN
    - OSSL_PARAM_BLD_push_BN_pad
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_bn_pad(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,\n
      \                               const char *key, const BIGNUM *bn,  size_t sz)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:88,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:90,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - bld
    - p
    - key
    - bn
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: ossl_param_build_set_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_BN
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_bn(OSSL_PARAM_BLD *bld, OSSL_PARAM *p,\n
      \                           const char *key, const BIGNUM *bn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_BIGNUM_const_num
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:100,1
    - Dst: sk_BIGNUM_const_value
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:106,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:107,1
    - Dst: sk_BIGNUM_const_value
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:114,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:115,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/param_build_set.c:117,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - bld
    - params
    - names
    - stk
    argTypes:
    - OSSL_PARAM_BLD*
    - OSSL_PARAM*
    - char*[]
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 122
    functionName: ossl_param_build_set_multi_key_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/param_build_set.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_BN
    - sk_BIGNUM_const_num
    - OSSL_PARAM_set_BN
    - sk_BIGNUM_const_value
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: "int ossl_param_build_set_multi_key_bn(OSSL_PARAM_BLD *bld, OSSL_PARAM
      *params,\n                                      const char *names[],\n                                      STACK_OF(BIGNUM_const)
      *stk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: ossl_sa_new
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OPENSSL_SA
    signature: OPENSSL_SA *ossl_sa_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - sa
    - arg
    argTypes:
    - OPENSSL_SA*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: sa_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sa_doall(const OPENSSL_SA *sa, void (*node)(void **),\n                     void
      (*leaf)(ossl_uintmax_t, void *, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: sa_free_node
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void sa_free_node(void **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - p
    - arg
    argTypes:
    - ossl_uintmax_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: sa_free_leaf
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void sa_free_leaf(ossl_uintmax_t n, void *p, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sa_doall
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sa
    argTypes:
    - OPENSSL_SA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: ossl_sa_free
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sa_doall
    linkageType: ''
    returnType: void
    signature: void ossl_sa_free(OPENSSL_SA *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sa_doall
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sa
    argTypes:
    - OPENSSL_SA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: ossl_sa_free_leaves
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sa_doall
    linkageType: ''
    returnType: void
    signature: void ossl_sa_free_leaves(OPENSSL_SA *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - l
    - arg
    argTypes:
    - ossl_uintmax_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: trampoline
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: void trampoline(ossl_uintmax_t n, void *l, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sa_doall
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sa
    argTypes:
    - OPENSSL_SA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: ossl_sa_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - sa_doall
    linkageType: ''
    returnType: void
    signature: void ossl_sa_doall(const OPENSSL_SA *sa, void (*leaf)(ossl_uintmax_t,
      void *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sa_doall
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sa
    - arg
    argTypes:
    - OPENSSL_SA*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: ossl_sa_doall_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - sa_doall
    linkageType: ''
    returnType: void
    signature: "void ossl_sa_doall_arg(const OPENSSL_SA *sa,\n                          void
      (*leaf)(ossl_uintmax_t, void *, void *),\n                          void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sa
    argTypes:
    - OPENSSL_SA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: ossl_sa_num
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_sa_num(const OPENSSL_SA *sa)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - sa
    - n
    argTypes:
    - OPENSSL_SA*
    - ossl_uintmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: ossl_sa_get
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ossl_sa_get(const OPENSSL_SA *sa, ossl_uintmax_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: alloc_node
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline **alloc_node(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: alloc_node
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:193,1
    - Dst: alloc_node
      Src: /src/openssl-3.0.15/crypto/sparse_array.c:205,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - sa
    - posn
    - val
    argTypes:
    - OPENSSL_SA*
    - ossl_uintmax_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 216
    functionName: ossl_sa_set
    functionSourceFile: /src/openssl-3.0.15/crypto/sparse_array.c
    functionUses: 0
    functionsReached:
    - alloc_node
    linkageType: ''
    returnType: int
    signature: int ossl_sa_set(OPENSSL_SA *sa, ossl_uintmax_t posn, void *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: STR_
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: STR
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: TOK_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_FUNC(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: TOK_CPU
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOK_CPU(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: ill_handler
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void ill_handler(int sig)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: visibility
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:78,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:88,1
    - Dst: getauxval
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:92,1
    - Dst: OPENSSL_s390x_facilities
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:96,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:100,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:101,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:102,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:110,1
    - Dst: sigfillset
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:112,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:113,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:114,1
    - Dst: sigdelset
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:115,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:117,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:118,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:119,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:122,1
    - Dst: OPENSSL_s390x_facilities
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:123,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:126,1
    - Dst: sigsetjmp
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:127,1
    - Dst: OPENSSL_vx_probe
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:128,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:130,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:131,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:132,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:135,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:136,1
    - Dst: sigprocmask
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:137,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:141,1
    - Dst: parse_env
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:143,1
    - Dst: OPENSSL_s390x_functions
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:153,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 181
    functionName: OPENSSL_cpuid_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 2
    functionsReached:
    - sigsetjmp
    - OPENSSL_s390x_facilities
    - parse_env
    - sigaction
    - sigprocmask
    - memset
    - sigdelset
    - sigfillset
    - getenv
    - S390X_CAPBIT
    - OPENSSL_vx_probe
    - visibility
    - OPENSSL_s390x_functions
    - getauxval
    linkageType: ''
    returnType: void
    signature: void OPENSSL_cpuid_setup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:215,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:217,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:218,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:220,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:221,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:223,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:225,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:227,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:243,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:244,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:246,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:247,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:248,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:250,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:251,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:252,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:254,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:255,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:257,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:258,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:260,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:276,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:277,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:279,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:280,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:281,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:282,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:284,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:285,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:286,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:287,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:289,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:290,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:291,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:292,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:294,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:295,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:296,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:297,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:299,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:315,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:316,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:317,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:318,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:320,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:321,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:322,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:323,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:324,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:325,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:326,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:327,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:328,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:330,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:331,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:332,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:333,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:334,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:335,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:337,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:338,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:339,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:340,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:342,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:343,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:344,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:345,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:347,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:348,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:349,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:350,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:352,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:353,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:354,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:355,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:357,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:358,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:359,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:360,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:364,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:374,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:375,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:376,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:377,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:379,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:380,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:381,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:382,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:383,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:384,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:385,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:386,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:387,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:389,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:390,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:391,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:392,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:393,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:394,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:396,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:397,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:398,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:399,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:401,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:402,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:403,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:404,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:406,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:407,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:408,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:409,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:411,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:412,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:413,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:414,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:416,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:417,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:418,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:419,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:423,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:433,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:434,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:435,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:436,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:437,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:438,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:440,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:441,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:442,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:443,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:444,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:445,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:446,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:447,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:448,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:450,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:451,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:452,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:453,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:454,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:455,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:457,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:458,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:459,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:460,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:462,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:463,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:464,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:465,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:467,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:468,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:469,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:470,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:472,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:473,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:474,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:475,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:477,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:478,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:479,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:480,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:482,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:483,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:486,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:496,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:497,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:498,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:499,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:500,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:501,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:502,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:503,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:504,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:506,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:507,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:508,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:509,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:510,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:511,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:512,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:513,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:514,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:515,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:516,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:517,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:518,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:519,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:520,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:521,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:522,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:523,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:524,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:525,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:526,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:528,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:529,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:530,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:531,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:532,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:533,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:535,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:536,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:537,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:538,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:540,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:541,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:542,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:543,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:545,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:546,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:547,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:548,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:550,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:551,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:552,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:553,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:555,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:556,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:557,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:558,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:560,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:561,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:562,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:563,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:564,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:565,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:566,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:568,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:578,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:579,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:580,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:581,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:582,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:583,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:584,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:585,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:586,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:587,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:589,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:590,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:591,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:592,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:593,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:594,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:595,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:596,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:597,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:598,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:599,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:600,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:601,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:602,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:603,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:604,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:605,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:606,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:607,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:608,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:609,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:611,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:612,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:613,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:614,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:615,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:616,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:618,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:619,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:620,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:621,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:623,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:624,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:625,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:626,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:628,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:629,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:630,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:631,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:633,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:634,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:635,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:636,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:638,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:639,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:640,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:641,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:643,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:644,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:645,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:646,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:647,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:648,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:649,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:651,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:652,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:653,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:654,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:655,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:656,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:657,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:658,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:659,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:660,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:661,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:662,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:663,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:664,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:665,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:666,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:667,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:668,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:669,1
    - Dst: malloc
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:676,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:676,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:681,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:682,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:684,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:685,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:686,1
    - Dst: sscanf
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:690,1
    - Dst: STR
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:691,1
    - Dst: STR
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:692,1
    - Dst: sscanf
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:696,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:704,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:705,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:706,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:707,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:708,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:709,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:710,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:711,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:712,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:713,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:714,1
    - Dst: TOK_FUNC
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:715,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:718,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:719,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:720,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:721,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:722,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:723,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:724,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:725,1
    - Dst: TOK_CPU
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:726,1
    - Dst: while
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:730,1
    - Dst: if
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:731,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:731,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:738,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/s390xcap.c:743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - cap
    argTypes:
    - struct OPENSSL_s390xcap_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 745
    functionName: parse_env
    functionSourceFile: /src/openssl-3.0.15/crypto/s390xcap.c
    functionUses: 1
    functionsReached:
    - sscanf
    - STR
    - TOK_CPU
    - if
    - ossl_isspace
    - free
    - TOK_FUNC
    - strlen
    - strspn
    - while
    - S390X_CAPBIT
    - strcpy
    - memset
    - strtok
    - malloc
    linkageType: ''
    returnType: int
    signature: int parse_env(struct OPENSSL_s390xcap_st *cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openssl-3.0.15/crypto/uid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_issetugid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: issetugid
      Src: /src/openssl-3.0.15/crypto/uid.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openssl-3.0.15/crypto/uid.c
    functionUses: 1
    functionsReached:
    - issetugid
    linkageType: ''
    returnType: int
    signature: int OPENSSL_issetugid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getauxval
      Src: /src/openssl-3.0.15/crypto/uid.c:50,1
    - Dst: getuid
      Src: /src/openssl-3.0.15/crypto/uid.c:52,1
    - Dst: geteuid
      Src: /src/openssl-3.0.15/crypto/uid.c:52,1
    - Dst: getgid
      Src: /src/openssl-3.0.15/crypto/uid.c:52,1
    - Dst: getegid
      Src: /src/openssl-3.0.15/crypto/uid.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: OPENSSL_issetugid
    functionSourceFile: /src/openssl-3.0.15/crypto/uid.c
    functionUses: 1
    functionsReached:
    - geteuid
    - getegid
    - getgid
    - getuid
    - getauxval
    linkageType: ''
    returnType: int
    signature: int OPENSSL_issetugid(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:45,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:46,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:50,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - pkt
    - cont_len
    argTypes:
    - WPACKET*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 57
    functionName: ossl_encode_der_length
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1_dsa.c
    functionUses: 0
    functionsReached:
    - WPACKET_put_bytes_u8
    - WPACKET_put_bytes_u16
    linkageType: ''
    returnType: int
    signature: int ossl_encode_der_length(WPACKET *pkt, size_t cont_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:71,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:83,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:85,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:86,1
    - Dst: ossl_encode_der_length
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:87,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:88,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:89,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - pkt
    - n
    argTypes:
    - WPACKET*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: ossl_encode_der_integer
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1_dsa.c
    functionUses: 0
    functionsReached:
    - WPACKET_start_sub_packet
    - WPACKET_put_bytes_u8
    - BN_num_bits
    - ossl_encode_der_length
    - WPACKET_allocate_bytes
    - WPACKET_close
    - BN_is_negative
    - BN_bn2binpad
    linkageType: ''
    returnType: int
    signature: int ossl_encode_der_integer(WPACKET *pkt, const BIGNUM *n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_is_null_buf
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:110,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:112,1
    - Dst: WPACKET_init_null
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:116,1
    - Dst: ossl_encode_der_integer
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:125,1
    - Dst: ossl_encode_der_integer
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:126,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:127,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:128,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:130,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:135,1
    - Dst: ossl_encode_der_length
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:136,1
    - Dst: ossl_encode_der_integer
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:141,1
    - Dst: ossl_encode_der_integer
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:142,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 3
    argNames:
    - pkt
    - r
    - s
    argTypes:
    - WPACKET*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 147
    functionName: ossl_encode_der_dsa_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1_dsa.c
    functionUses: 0
    functionsReached:
    - WPACKET_is_null_buf
    - WPACKET_start_sub_packet
    - WPACKET_finish
    - WPACKET_put_bytes_u8
    - WPACKET_init_null
    - ossl_encode_der_length
    - ossl_encode_der_integer
    - WPACKET_close
    - WPACKET_get_length
    - WPACKET_cleanup
    linkageType: ''
    returnType: int
    signature: int ossl_encode_der_dsa_sig(WPACKET *pkt, const BIGNUM *r, const BIGNUM
      *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:159,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:163,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:165,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pkt
    - subpkt
    argTypes:
    - PACKET*
    - PACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: ossl_decode_der_length
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1_dsa.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - PACKET_get_sub_packet
    - PACKET_get_length_prefixed_1
    - PACKET_get_length_prefixed_2
    linkageType: ''
    returnType: int
    signature: int ossl_decode_der_length(PACKET *pkt, PACKET *subpkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:193,1
    - Dst: ossl_decode_der_length
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:195,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:201,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:205,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:206,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:211,1
    - Dst: PACKET_data
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:211,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:212,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - pkt
    - n
    argTypes:
    - PACKET*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 216
    functionName: ossl_decode_der_integer
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1_dsa.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - ossl_decode_der_length
    - BN_bin2bn
    - PACKET_remaining
    - PACKET_data
    linkageType: ''
    returnType: int
    signature: int ossl_decode_der_integer(PACKET *pkt, BIGNUM *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:240,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:241,1
    - Dst: ossl_decode_der_length
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:243,1
    - Dst: ossl_decode_der_integer
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:244,1
    - Dst: ossl_decode_der_integer
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:245,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:246,1
    - Dst: PACKET_data
      Src: /src/openssl-3.0.15/crypto/asn1_dsa.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 4
    argNames:
    - r
    - s
    - ppin
    - len
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - unsigned char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 252
    functionName: ossl_decode_der_dsa_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1_dsa.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - ossl_decode_der_length
    - PACKET_buf_init
    - PACKET_remaining
    - ossl_decode_der_integer
    - PACKET_data
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_decode_der_dsa_sig(BIGNUM *r, BIGNUM *s,\n                               const
      unsigned char **ppin, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - delta
    - numpoints
    - firsttime
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: adapt
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int adapt(unsigned int delta, unsigned int numpoints,\n                 unsigned
      int firsttime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: is_basic
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline is_basic(unsigned int a)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: digit_decoded
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline digit_decoded(const unsigned char a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_basic
      Src: /src/openssl-3.0.15/crypto/punycode.c:139,1
    - Dst: digit_decoded
      Src: /src/openssl-3.0.15/crypto/punycode.c:158,1
    - Dst: adapt
      Src: /src/openssl-3.0.15/crypto/punycode.c:177,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/punycode.c:186,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - pEncoded
    - enc_len
    - pDecoded
    - pout_length
    argTypes:
    - char*
    - size_t
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 195
    functionName: ossl_punycode_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached:
    - memmove
    - adapt
    - digit_decoded
    - is_basic
    linkageType: ''
    returnType: int
    signature: "int ossl_punycode_decode(const char *pEncoded, const size_t enc_len,\n
      \                        unsigned int *pDecoded, unsigned int *pout_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - out
    - utf
    argTypes:
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 238
    functionName: codepoint2utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int codepoint2utf8(unsigned char *out, unsigned long utf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/punycode.c:278,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/punycode.c:279,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/punycode.c:281,1
    - Dst: PUSHC
      Src: /src/openssl-3.0.15/crypto/punycode.c:283,1
    - Dst: ossl_punycode_decode
      Src: /src/openssl-3.0.15/crypto/punycode.c:287,1
    - Dst: codepoint2utf8
      Src: /src/openssl-3.0.15/crypto/punycode.c:292,1
    - Dst: PUSHC
      Src: /src/openssl-3.0.15/crypto/punycode.c:298,1
    - Dst: PUSHC
      Src: /src/openssl-3.0.15/crypto/punycode.c:301,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - in
    - out
    - outlen
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 313
    functionName: ossl_a2ulabel
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached:
    - PUSHC
    - strchr
    - codepoint2utf8
    - ossl_punycode_decode
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int ossl_a2ulabel(const char *in, char *out, size_t *outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: PUSHC
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSHC(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/crypto/punycode.c:328,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/punycode.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - u
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: ossl_a2ucompare
    functionSourceFile: /src/openssl-3.0.15/crypto/punycode.c
    functionUses: 0
    functionsReached:
    - ossl_a2ulabel
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ossl_a2ucompare(const char *a, const char *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/trace.c:67,1
    - Dst: struct trace_data_st*::callback
      Src: /src/openssl-3.0.15/crypto/trace.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - channel
    - buf
    - num
    - written
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: trace_write
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - struct trace_data_st*::callback
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: "int trace_write(BIO *channel,\n                       const char *buf,
      size_t num, size_t *written)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_write
      Src: /src/openssl-3.0.15/crypto/trace.c:79,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/trace.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - channel
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: trace_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - strlen
    - trace_write
    linkageType: ''
    returnType: int
    signature: int trace_puts(BIO *channel, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/trace.c:87,1
    - Dst: struct trace_data_st*::callback
      Src: /src/openssl-3.0.15/crypto/trace.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - channel
    - cmd
    - argl
    - argp
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: trace_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - struct trace_data_st*::callback
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long trace_ctrl(BIO *channel, int cmd, long argl, void *argp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/trace.c:105,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/trace.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - channel
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: trace_free
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int trace_free(BIO *channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: TRACE_CATEGORY_
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_CATEGORY_(name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/trace.c:145,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/trace.c:151,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/trace.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: OSSL_trace_get_category_name
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *OSSL_trace_get_category_name(int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/trace.c:164,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/trace.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 169
    functionName: OSSL_trace_get_category_num
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int OSSL_trace_get_category_num(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:197,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:201,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - category
    - type
    - data
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 212
    functionName: trace_attach_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE2
    linkageType: ''
    returnType: int
    signature: int trace_attach_cb(int category, int type, const void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:218,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:222,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - category
    - type
    - data
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: trace_detach_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE2
    linkageType: ''
    returnType: int
    signature: int trace_detach_cb(int category, int type, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_ossl_trace_init
      Src: /src/openssl-3.0.15/crypto/trace.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - do_ossl_trace_init
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_trace_init)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/trace.c:252,1
    - Dst: detach_cb
      Src: /src/openssl-3.0.15/crypto/trace.c:261,1
    - Dst: detach_cb
      Src: /src/openssl-3.0.15/crypto/trace.c:265,1
    - Dst: detach_cb
      Src: /src/openssl-3.0.15/crypto/trace.c:269,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/trace.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/trace.c:279,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/trace.c:284,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/trace.c:291,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/trace.c:297,1
    - Dst: attach_cb
      Src: /src/openssl-3.0.15/crypto/trace.c:313,1
    - Dst: attach_cb
      Src: /src/openssl-3.0.15/crypto/trace.c:317,1
    - Dst: attach_cb
      Src: /src/openssl-3.0.15/crypto/trace.c:321,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 52
    argCount: 5
    argNames:
    - category
    - type
    - channel
    - prefix
    - suffix
    argTypes:
    - int
    - int
    - BIO**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 325
    functionName: set_trace_data
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - BIO_free
    - detach_cb
    - OPENSSL_free
    - attach_cb
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int set_trace_data(int category, int type, BIO **channel,\n                          const
      char **prefix, const char **suffix,\n                          int (*attach_cb)(int,
      int, const void *),\n                          int (*detach_cb)(int, int, const
      void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/trace.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: do_ossl_trace_init
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: int
    signature: int do_ossl_trace_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_trace_data
      Src: /src/openssl-3.0.15/crypto/trace.c:347,1
    - Dst: set_trace_data
      Src: /src/openssl-3.0.15/crypto/trace.c:350,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/trace.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 355
    functionName: ossl_trace_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - set_trace_data
    linkageType: ''
    returnType: void
    signature: void ossl_trace_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_trace_data
      Src: /src/openssl-3.0.15/crypto/trace.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - category
    - channel
    argTypes:
    - int
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: OSSL_trace_set_channel
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - set_trace_data
    linkageType: ''
    returnType: int
    signature: int OSSL_trace_set_channel(int category, BIO *channel)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:372,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:377,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/trace.c:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - category
    - type
    - data
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 388
    functionName: trace_attach_w_callback_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE2
    linkageType: ''
    returnType: int
    signature: int trace_attach_w_callback_cb(int category, int type, const void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/trace.c:401,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/trace.c:403,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/trace.c:410,1
    - Dst: set_trace_data
      Src: /src/openssl-3.0.15/crypto/trace.c:413,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/trace.c:420,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/trace.c:421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - category
    - callback
    - data
    argTypes:
    - int
    - OSSL_trace_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 425
    functionName: OSSL_trace_set_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - OPENSSL_zalloc
    - BIO_set_data
    - OPENSSL_free
    - set_trace_data
    linkageType: ''
    returnType: int
    signature: int OSSL_trace_set_callback(int category, OSSL_trace_cb callback, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_trace_data
      Src: /src/openssl-3.0.15/crypto/trace.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - category
    - prefix
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: OSSL_trace_set_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - set_trace_data
    linkageType: ''
    returnType: int
    signature: int OSSL_trace_set_prefix(int category, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_trace_data
      Src: /src/openssl-3.0.15/crypto/trace.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - category
    - suffix
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 445
    functionName: OSSL_trace_set_suffix
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - set_trace_data
    linkageType: ''
    returnType: int
    signature: int OSSL_trace_set_suffix(int category, const char *suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - category
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: ossl_trace_get_category
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_trace_get_category(int category)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_trace_get_category
      Src: /src/openssl-3.0.15/crypto/trace.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - category
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: OSSL_trace_enabled
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - ossl_trace_get_category
    linkageType: ''
    returnType: int
    signature: int OSSL_trace_enabled(int category)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_trace_get_category
      Src: /src/openssl-3.0.15/crypto/trace.c:475,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/trace.c:483,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/trace.c:489,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/trace.c:490,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/trace.c:494,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/trace.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - category
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 501
    functionName: OSSL_trace_begin
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_ctrl
    - strlen
    - ossl_trace_get_category
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: BIO
    signature: BIO *OSSL_trace_begin(int category)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_trace_get_category
      Src: /src/openssl-3.0.15/crypto/trace.c:508,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/trace.c:513,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/trace.c:514,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/trace.c:518,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/trace.c:519,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/trace.c:523,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/trace.c:524,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/trace.c:528,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - category
    - channel
    argTypes:
    - int
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 531
    functionName: OSSL_trace_end
    functionSourceFile: /src/openssl-3.0.15/crypto/trace.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_puts
    - BIO_ctrl
    - strlen
    - ossl_trace_get_category
    - ossl_assert
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void OSSL_trace_end(int category, BIO * channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: MIDR_PARTNUM
    functionSourceFile: /src/openssl-3.0.15/crypto/arm_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_PARTNUM(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: MIDR_IMPLEMENTER
    functionSourceFile: /src/openssl-3.0.15/crypto/arm_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_IMPLEMENTER(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: MIDR_ARCHITECTURE
    functionSourceFile: /src/openssl-3.0.15/crypto/arm_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_ARCHITECTURE(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - imp
    - ','
    - partnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: MIDR_CPU_MODEL
    functionSourceFile: /src/openssl-3.0.15/crypto/arm_arch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_CPU_MODEL(imp, partnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - midr
    - ','
    - imp
    - ','
    - partnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: MIDR_IS_CPU_MODEL
    functionSourceFile: /src/openssl-3.0.15/crypto/arm_arch.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_IS_CPU_MODEL(midr, imp, partnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: OpenSSL_version_num
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OpenSSL_version_num(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: OPENSSL_version_major
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int OPENSSL_version_major(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: OPENSSL_version_minor
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int OPENSSL_version_minor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: OPENSSL_version_patch
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int OPENSSL_version_patch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: OPENSSL_version_pre_release
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_version_pre_release(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: OPENSSL_version_build_metadata
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_version_build_metadata(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_info
      Src: /src/openssl-3.0.15/crypto/cversion.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - t
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: OpenSSL_version
    functionSourceFile: /src/openssl-3.0.15/crypto/cversion.c
    functionUses: 1
    functionsReached:
    - OPENSSL_info
    linkageType: ''
    returnType: char
    signature: char *OpenSSL_version(int t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:31,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: prov_conf_ossl_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *prov_conf_ossl_ctx_new(OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PROVIDER_pop_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:49,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:52,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - vpcgbl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: prov_conf_ossl_ctx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_PROVIDER_pop_free
    - OPENSSL_free
    - OSSL_TRACE
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void prov_conf_ossl_ctx_free(void *vpcgbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: skip_dot
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *skip_dot(const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:86,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:90,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:96,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:104,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:105,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:106,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:114,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:118,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:119,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:120,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:123,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:124,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:126,1
    - Dst: sk_OPENSSL_CSTRING_pop
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:127,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:131,1
    - Dst: provider_conf_params_internal
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:132,1
    - Dst: sk_OPENSSL_CSTRING_pop
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:135,1
    - Dst: sk_OPENSSL_CSTRING_pop
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:139,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:141,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:143,1
    - Dst: ossl_provider_add_parameter
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:145,1
    - Dst: ossl_provider_info_add_parameter
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - prov
    - provinfo
    - name
    - value
    - cnf
    - visited
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_PROVIDER_INFO*
    - char*
    - char*
    - CONF*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 151
    functionName: provider_conf_params_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 1
    functionsReached:
    - sk_OPENSSL_CSTRING_push
    - sk_OPENSSL_CSTRING_value
    - OPENSSL_strlcat
    - ossl_provider_add_parameter
    - sk_CONF_VALUE_num
    - ossl_provider_info_add_parameter
    - provider_conf_params_internal
    - ERR_raise
    - NCONF_get_section
    - sk_OPENSSL_CSTRING_num
    - STACK_OF
    - strlen
    - OPENSSL_strlcpy
    - OSSL_TRACE2
    - sk_OPENSSL_CSTRING_pop
    - sk_CONF_VALUE_value
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: "int provider_conf_params_internal(OSSL_PROVIDER *prov,\n                                         OSSL_PROVIDER_INFO
      *provinfo,\n                                         const char *name, const
      char *value,\n                                         const CONF *cnf,\n                                         STACK_OF(OPENSSL_CSTRING)
      *visited)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:167,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:167,1
    - Dst: provider_conf_params_internal
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:172,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - prov
    - provinfo
    - name
    - value
    - cnf
    argTypes:
    - OSSL_PROVIDER*
    - OSSL_PROVIDER_INFO*
    - char*
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: provider_conf_params
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_CSTRING_new_null
    - sk_OPENSSL_CSTRING_free
    - STACK_OF
    - provider_conf_params_internal
    linkageType: ''
    returnType: int
    signature: "int provider_conf_params(OSSL_PROVIDER *prov,\n                                OSSL_PROVIDER_INFO
      *provinfo,\n                                const char *name, const char *value,\n
      \                               const CONF *cnf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PROVIDER_num
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:188,1
    - Dst: sk_OSSL_PROVIDER_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:190,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:192,1
    - Dst: OSSL_PROVIDER_get0_name
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - name
    - activated
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 198
    functionName: prov_already_activated
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_PROVIDER_num
    - OSSL_PROVIDER_get0_name
    - sk_OSSL_PROVIDER_value
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int prov_already_activated(const char *name,\n                                  STACK_OF(OSSL_PROVIDER)
      *activated)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:204,1
    - Dst: skip_dot
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:212,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:213,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:215,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:218,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:224,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:225,1
    - Dst: skip_dot
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:226,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:229,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:235,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:237,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:240,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:242,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:248,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:251,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:252,1
    - Dst: prov_already_activated
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:255,1
    - Dst: ossl_provider_disable_fallback_loading
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:263,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:265,1
    - Dst: ossl_provider_find
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:268,1
    - Dst: ossl_provider_new
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:270,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:272,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:274,1
    - Dst: ossl_provider_set_module_path
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:279,1
    - Dst: provider_conf_params
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:281,1
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:284,1
    - Dst: ossl_provider_add_to_store
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:286,1
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:287,1
    - Dst: ossl_provider_activate
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:290,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:291,1
    - Dst: sk_OSSL_PROVIDER_new_null
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:295,1
    - Dst: sk_OSSL_PROVIDER_push
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:297,1
    - Dst: ossl_provider_deactivate
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:299,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:300,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:308,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:310,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:314,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:317,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:319,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:324,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:326,1
    - Dst: provider_conf_params
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:331,1
    - Dst: ossl_provider_info_add_to_store
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:333,1
    - Dst: ossl_provider_info_clear
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:337,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 97
    argCount: 4
    argNames:
    - libctx
    - name
    - value
    - cnf
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 200
    functionDepth: 10
    functionLinenumber: 200
    functionLinenumberEnd: 349
    functionName: provider_conf_load
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - ossl_provider_add_to_store
    - sk_OSSL_PROVIDER_new_null
    - ossl_provider_set_module_path
    - ossl_provider_disable_fallback_loading
    - sk_OSSL_PROVIDER_push
    - ossl_provider_activate
    - ERR_raise_data
    - NCONF_get_section
    - ossl_provider_new
    - skip_dot
    - prov_already_activated
    - memset
    - OPENSSL_strdup
    - CRYPTO_THREAD_unlock
    - ERR_clear_error
    - ERR_raise
    - STACK_OF
    - strcmp
    - ossl_provider_find
    - CRYPTO_THREAD_write_lock
    - sk_CONF_VALUE_value
    - OSSL_TRACE1
    - ossl_provider_deactivate
    - ossl_provider_info_add_to_store
    - sk_CONF_VALUE_num
    - ossl_provider_info_clear
    - provider_conf_params
    - ossl_provider_free
    - OSSL_TRACE2
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: "int provider_conf_load(OSSL_LIB_CTX *libctx, const char *name,\n                              const
      char *value, const CONF *cnf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:353,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:357,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:358,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:361,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:361,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:364,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:368,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:369,1
    - Dst: provider_conf_load
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:370,1
    - Dst: NCONF_get0_libctx
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 11
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: provider_conf_init
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - NCONF_get0_libctx
    - ERR_raise
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - provider_conf_load
    - sk_CONF_VALUE_value
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: int provider_conf_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:380,1
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/provider_conf.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: ossl_provider_add_conf_module
    functionSourceFile: /src/openssl-3.0.15/crypto/provider_conf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void ossl_provider_add_conf_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:51,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:55,1
    - Dst: GetProcessWindowStation
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:65,1
    - Dst: GetUserObjectInformationW
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:69,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:70,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:76,1
    - Dst: GetUserObjectInformationW
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:77,1
    - Dst: wcsstr
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:88,1
    - Dst: wcsstr
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:92,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 97
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 1
    functionsReached:
    - GetProcessWindowStation
    - wcsstr
    - GetModuleHandle
    - GetLastError
    - GetUserObjectInformationW
    - alloca
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:120,1
    - Dst: GetFileType
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:121,1
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:126,1
    - Dst: _vsnprintf
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:127,1
    - Dst: WriteFile
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:128,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:129,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:139,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:142,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:147,1
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:189,1
    - Dst: _vsntprintf
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:190,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:190,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:191,1
    - Dst: _T
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:191,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:192,1
    - Dst: OutputDebugString
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:204,1
    - Dst: check_winnt
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:208,1
    - Dst: OPENSSL_isservice
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:208,1
    - Dst: RegisterEventSource
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:209,1
    - Dst: _T
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:209,1
    - Dst: ReportEvent
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:214,1
    - Dst: OutputDebugString
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:223,1
    - Dst: DeregisterEventSource
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:227,1
    - Dst: MessageBox
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:230,1
    - Dst: _T
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:230,1
    - Dst: MessageBox
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:234,1
    - Dst: _T
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:234,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 1
    argNames:
    - fmta
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 236
    functionName: OPENSSL_showfatal
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - va_start
    - check_winnt
    - OPENSSL_isservice
    - WriteFile
    - GetStdHandle
    - strlen
    - _vsntprintf
    - ReportEvent
    - MessageBox
    - _T
    - OutputDebugString
    - GetFileType
    - va_end
    - DeregisterEventSource
    - _vsnprintf
    - OSSL_NELEM
    - RegisterEventSource
    - MultiByteToWideChar
    - alloca
    linkageType: ''
    returnType: void
    signature: void OPENSSL_showfatal(const char *fmta, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:243,1
    - Dst: vfprintf
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:244,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmta
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: OPENSSL_showfatal
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void OPENSSL_showfatal(const char *fmta, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: OPENSSL_isservice
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_isservice(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_showfatal
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:257,1
    - Dst: abort
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:260,1
    - Dst: raise
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:266,1
    - Dst: _exit
      Src: /src/openssl-3.0.15/crypto/cryptlib.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - message
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: OPENSSL_die
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_showfatal
    - _exit
    - raise
    - abort
    linkageType: ''
    returnType: void
    signature: void OPENSSL_die(const char *message, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: OPENSSL_VPROC_STRING_
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_VPROC_STRING_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: OPENSSL_VPROC_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPENSSL_VPROC_STRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: OPENSSL_VPROC_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/cryptlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_VPROC_FUNC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: RC4_options
    functionSourceFile: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *RC4_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SK_LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c:58,1
    - Dst: SK_LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c:59,1
    - Dst: SK_LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c:60,1
    - Dst: SK_LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - RC4_KEY*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 63
    functionName: RC4_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c
    functionUses: 0
    functionsReached:
    - SK_LOOP
    linkageType: ''
    returnType: void
    signature: void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: SK_LOOP
    functionSourceFile: /src/openssl-3.0.15/crypto/rc4/rc4_skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SK_LOOP(d,n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:49,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:50,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:51,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:52,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:53,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:54,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:55,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:56,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:66,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:69,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:72,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:75,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:78,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:81,1
    - Dst: LOOP
      Src: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c:84,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - key
    - len
    - indata
    - outdata
    argTypes:
    - RC4_KEY*
    - size_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 91
    functionName: RC4
    functionSourceFile: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c
    functionUses: 0
    functionsReached:
    - LOOP
    linkageType: ''
    returnType: void
    signature: "void RC4(RC4_KEY *key, size_t len, const unsigned char *indata,\n
      \        unsigned char *outdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: LOOP
    functionSourceFile: /src/openssl-3.0.15/crypto/rc4/rc4_enc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOOP(in,out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: ctr128_inc
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr128_inc(unsigned char *counter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctr128_inc
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 59
    functionName: ctr128_inc_aligned
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached:
    - ctr128_inc
    linkageType: ''
    returnType: void
    signature: void ctr128_inc_aligned(unsigned char *counter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ctr128_inc_aligned
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:100,1
    - Dst: ctr128_inc_aligned
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:112,1
    - Dst: ctr128_inc
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:127,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 135
    functionName: CRYPTO_ctr128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached:
    - ctr128_inc
    - ctr128_inc_aligned
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: ctr96_inc
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ctr128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr96_inc(unsigned char *counter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:166,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:189,1
    - Dst: ctr96_inc
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:192,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:199,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:202,1
    - Dst: ctr96_inc
      Src: /src/openssl-3.0.15/crypto/modes/ctr128.c:204,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 212
    functionName: CRYPTO_ctr128_encrypt_ctr32
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ctr128.c
    functionUses: 1
    functionsReached:
    - ctr96_inc
    - memset
    - GETU32
    - PUTU32
    linkageType: ''
    returnType: void
    signature: "void 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:59,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:63,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:68,1
    - Dst: block
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:69,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:76,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: CRYPTO_128_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memmove
    - block
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:111,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:112,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:122,1
    - Dst: block
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:123,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:124,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 129
    functionName: crypto_128_unwrap_raw
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memmove
    - block
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: crypto_128_unwrap_raw
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:157,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:163,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: CRYPTO_128_unwrap
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - crypto_128_unwrap_raw
    - OPENSSL_cleanse
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:207,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:209,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:222,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:223,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:224,1
    - Dst: block
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:225,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:228,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:229,1
    - Dst: CRYPTO_128_wrap
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: CRYPTO_128_wrap_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_wrap
    - memcpy
    - memmove
    - block
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: block
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:279,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:280,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:282,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:284,1
    - Dst: crypto_128_unwrap_raw
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:287,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:289,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:299,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:300,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:301,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:315,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:324,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/wrap128.c:325,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 331
    functionName: CRYPTO_128_unwrap_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/wrap128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - block
    - OPENSSL_cleanse
    - CRYPTO_memcmp
    - crypto_128_unwrap_raw
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:30,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: CRYPTO_ccm128_init
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx,\n                        unsigned
      int M, unsigned int L, void *key,\n                        block128_f block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - nonce
    - nlen
    - mlen
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 65
    functionName: CRYPTO_ccm128_setiv
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx,\n                        const
      unsigned char *nonce, size_t nlen, size_t mlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - aad
    - alen
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: CRYPTO_ccm128_aad
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx,\n                       const
      unsigned char *aad, size_t alen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: ctr64_inc
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_inc(unsigned char *counter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:167,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:177,1
    - Dst: ctr64_inc
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:186,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 4
    argNames:
    - ctx
    - inp
    - out
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 219
    functionName: CRYPTO_ccm128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - U64
    - memcpy
    - ctr64_inc
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx,\n                          const
      unsigned char *inp, unsigned char *out,\n                          size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ctr64_inc
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:258,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:260,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - inp
    - out
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 294
    functionName: CRYPTO_ccm128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_inc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx,\n                          const
      unsigned char *inp, unsigned char *out,\n                          size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - counter
    - inc
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: ctr64_add
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_add(unsigned char *counter, size_t inc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:340,1
    - Dst: ctr64_add
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:350,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 372
    functionName: CRYPTO_ccm128_encrypt_ccm64
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - U64
    - ctr64_add
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx,\n                                const
      unsigned char *inp, unsigned char *out,\n                                size_t
      len, ccm128_f stream)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ctr64_add
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:410,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 430
    functionName: CRYPTO_ccm128_decrypt_ccm64
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - ctr64_add
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx,\n                                const
      unsigned char *inp, unsigned char *out,\n                                size_t
      len, ccm128_f stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ccm128.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - CCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: CRYPTO_ccm128_tag
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ccm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cbc128.c:73,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 74
    functionName: CRYPTO_cbc128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cbc128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cbc128.c:119,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 172
    functionName: CRYPTO_cbc128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cbc128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:42,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:50,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: CRYPTO_cts128_encrypt_block
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:71,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 85
    functionName: CRYPTO_nistcts128_encrypt_block
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:111,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:113,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:115,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:116,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 121
    functionName: CRYPTO_cts128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:151,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 156
    functionName: CRYPTO_nistcts128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:178,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:185,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 198
    functionName: CRYPTO_cts128_decrypt_block
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:218,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:225,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:232,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 246
    functionName: CRYPTO_nistcts128_decrypt_block
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_decrypt
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:272,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:278,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 286
    functionName: CRYPTO_cts128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:316,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cts128.c:322,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 330
    functionName: CRYPTO_nistcts128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cts128.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: GETU32
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: PUTU32
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PACK
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: REDUCE1BIT
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDUCE1BIT(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REDUCE1BIT
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - Htable
    - H
    argTypes:
    - u128[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: gcm_init_8bit
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: void gcm_init_8bit(u128 Htable[256], u64 H[2])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:111,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:112,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:113,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:114,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:115,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:116,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:117,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:118,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:119,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:120,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:121,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:122,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:123,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:124,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:125,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:126,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:127,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:128,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:129,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:130,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:131,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:132,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:133,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:134,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:135,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:136,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:137,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:138,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:139,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:140,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:141,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:142,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:143,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:144,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:145,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:146,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:147,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:148,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:149,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:150,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:151,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:152,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:153,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:154,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:155,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:156,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:157,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:158,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:159,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:160,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:161,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:162,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:163,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:164,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:165,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:166,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:167,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:168,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:169,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:170,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:170,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:170,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:170,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:171,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:171,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:171,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:171,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:172,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:172,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:172,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:172,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:173,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:173,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:173,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:173,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:174,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:174,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:174,1
    - Dst: PACK
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:174,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:197,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:198,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:203,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:205,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:207,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - Xi
    - Htable
    argTypes:
    - u64[]
    - u128[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 215
    functionName: gcm_gmult_8bit
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - PUTU32
    - PACK
    linkageType: ''
    returnType: void
    signature: void gcm_gmult_8bit(u64 Xi[2], const u128 Htable[256])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REDUCE1BIT
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:235,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:249,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:251,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 2
    argNames:
    - Htable
    - H
    argTypes:
    - u128[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 290
    functionName: gcm_init_4bit
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: void gcm_init_4bit(u128 Htable[16], u64 H[2])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:347,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:348,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:353,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:355,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:357,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - Xi
    - Htable
    argTypes:
    - u64[]
    - u128[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 365
    functionName: gcm_gmult_4bit
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - PUTU32
    linkageType: ''
    returnType: void
    signature: void gcm_gmult_4bit(u64 Xi[2], const u128 Htable[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - in
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: GHASH
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GHASH(ctx,in,len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:577,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:580,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:580,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:584,1
    - Dst: REDUCE1BIT
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:594,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:600,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:601,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:606,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:608,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:610,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - Xi
    - H
    argTypes:
    - u64[]
    - u64[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 618
    functionName: gcm_gmult_1bit
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - BSWAP8
    - GETU32
    - PUTU32
    - REDUCE1BIT
    linkageType: ''
    returnType: void
    signature: void gcm_gmult_1bit(u64 Xi[2], const u64 H[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: GCM_MUL
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM_MUL(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - in
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: GHASH
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GHASH(ctx,in,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 733
    functionName: CTX__GHASH
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTX__GHASH(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 735
    functionName: CTX__GHASH
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTX__GHASH(f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:830,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:847,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:854,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:859,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:874,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:878,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:880,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:897,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:899,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - ctx
    - iv
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 903
    functionName: CRYPTO_gcm128_setiv
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BSWAP4
    - BSWAP8
    - GETU32
    - PUTU32
    - GCM_MUL
    linkageType: ''
    returnType: void
    signature: "void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char
      *iv,\n                         size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:923,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:935,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:943,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:951,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 964
    functionName: CRYPTO_gcm128_aad
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - GCM_MUL
    - U64
    - GHASH
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:985,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:995,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:999,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1004,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1011,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1013,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1030,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1043,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1057,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1072,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1074,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1084,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1099,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1101,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1111,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1122,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1124,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1130,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1141,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1143,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1172,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1174,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1183,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1190,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 149
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 1196
    functionName: CRYPTO_gcm128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - U64
    - memcpy
    - BSWAP4
    - GETU32
    - PUTU32
    - GHASH
    - GCM_MUL
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1217,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1227,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1231,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1236,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1243,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1245,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1262,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1277,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1291,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1298,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1307,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1309,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1323,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1332,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1334,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1354,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1356,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1365,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1376,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1378,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1410,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1412,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1421,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1430,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 155
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1436
    functionName: CRYPTO_gcm128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - U64
    - memcpy
    - BSWAP4
    - GETU32
    - PUTU32
    - GHASH
    - GCM_MUL
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1443,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1459,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1469,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1473,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1478,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1485,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1487,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1501,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1514,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1524,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1533,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1535,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1539,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1553,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1555,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1562,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1568,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1578,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1580,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 101
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - stream
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ctr128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1438
    functionDepth: 2
    functionLinenumber: 1438
    functionLinenumberEnd: 1597
    functionName: CRYPTO_gcm128_encrypt_ctr32
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - U64
    - memcpy
    - BSWAP4
    - GETU32
    - PUTU32
    - GHASH
    - GCM_MUL
    - CRYPTO_gcm128_encrypt
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx,\n                                const
      unsigned char *in, unsigned char *out,\n                                size_t
      len, ctr128_f stream)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1604,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1620,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1630,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1634,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1639,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1646,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1648,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1662,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1677,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1687,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1692,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1697,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1699,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1713,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1719,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1729,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1731,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1744,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1746,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 105
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - stream
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    - ctr128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1599
    functionDepth: 2
    functionLinenumber: 1599
    functionLinenumberEnd: 1765
    functionName: CRYPTO_gcm128_decrypt_ctr32
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - U64
    - memcpy
    - CRYPTO_gcm128_decrypt
    - BSWAP4
    - GETU32
    - PUTU32
    - GHASH
    - GCM_MUL
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx,\n                                const
      unsigned char *in, unsigned char *out,\n                                size_t
      len, ctr128_f stream)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1788,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1791,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1795,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1799,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1804,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1805,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1812,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1812,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1813,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1813,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1820,1
    - Dst: GHASH
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1822,1
    - Dst: GCM_MUL
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1826,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1833,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1767
    functionDepth: 1
    functionLinenumber: 1767
    functionLinenumberEnd: 1836
    functionName: CRYPTO_gcm128_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BSWAP8
    - GETU32
    - CRYPTO_memcmp
    - GHASH
    - GCM_MUL
    - memset
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char
      *tag,\n                         size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1840,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - GCM128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1838
    functionDepth: 2
    functionLinenumber: 1838
    functionLinenumberEnd: 1843
    functionName: CRYPTO_gcm128_tag
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_finish
    - memcpy
    linkageType: ''
    returnType: void
    signature: void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1849,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - block
    argTypes:
    - void*
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1853
    functionName: CRYPTO_gcm128_new
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - CRYPTO_gcm128_init
    linkageType: ''
    returnType: GCM128_CONTEXT
    signature: GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/modes/gcm128.c:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - GCM128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1855
    functionDepth: 1
    functionLinenumber: 1855
    functionLinenumberEnd: 1858
    functionName: CRYPTO_gcm128_release
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/gcm128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: ocb_ntz
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 ocb_ntz(u64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - shift
    - out
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: ocb_block_lshift
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ocb_block_lshift(const unsigned char *in, size_t shift,\n                             unsigned
      char *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_block_lshift
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - OCB_BLOCK*
    - OCB_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: ocb_double
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_lshift
    linkageType: ''
    returnType: void
    signature: void ocb_double(OCB_BLOCK *in, OCB_BLOCK *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in1
    - in2
    - len
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: ocb_block_xor
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ocb_block_xor(const unsigned char *in1,\n                          const
      unsigned char *in2, size_t len,\n                          unsigned char *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:113,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - OCB128_CONTEXT*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 125
    functionName: ocb_lookup_l
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - ocb_double
    linkageType: ''
    returnType: OCB_BLOCK
    signature: OCB_BLOCK *ocb_lookup_l(OCB128_CONTEXT *ctx, size_t idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:137,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:138,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - keyenc
    - keydec
    - encrypt
    - decrypt
    - stream
    argTypes:
    - void*
    - void*
    - block128_f
    - block128_f
    - ocb128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: CRYPTO_ocb128_new
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - CRYPTO_ocb128_init
    linkageType: ''
    returnType: OCB128_CONTEXT
    signature: "OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec,\n                                  block128_f
      encrypt, block128_f decrypt,\n                                  ocb128_f stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:155,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:159,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:175,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:178,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:181,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:184,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:185,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:186,1
    - Dst: ocb_double
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 6
    argNames:
    - ctx
    - keyenc
    - keydec
    - encrypt
    - decrypt
    - stream
    argTypes:
    - OCB128_CONTEXT*
    - void*
    - void*
    - block128_f
    - block128_f
    - ocb128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 191
    functionName: CRYPTO_ocb128_init
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 1
    functionsReached:
    - ocb_double
    - OCB128_CONTEXT*::encrypt
    - OPENSSL_malloc
    - ERR_raise
    - memset
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec,\n
      \                      block128_f encrypt, block128_f decrypt,\n                       ocb128_f
      stream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:199,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:206,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - dest
    - src
    - keyenc
    - keydec
    argTypes:
    - OCB128_CONTEXT*
    - OCB128_CONTEXT*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 212
    functionName: CRYPTO_ocb128_copy_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src,\n
      \                          void *keyenc, void *keydec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:233,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:237,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:238,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:242,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:244,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:247,1
    - Dst: ocb_block_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:248,1
    - Dst: ocb_block_lshift
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - iv
    - len
    - taglen
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 262
    functionName: CRYPTO_ocb128_setiv
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block_xor
    - memcpy
    - OCB128_CONTEXT*::encrypt
    - ocb_block_lshift
    - memset
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv,\n
      \                       size_t len, size_t taglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:284,1
    - Dst: ocb_ntz
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:284,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:287,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:289,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:293,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:294,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:295,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:306,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:310,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:311,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:313,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:316,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 323
    functionName: CRYPTO_ocb128_aad
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_ntz
    - memcpy
    - OCB128_CONTEXT*::encrypt
    - ocb_block16_xor
    - ocb_lookup_l
    - memset
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:353,1
    - Dst: OCB128_CONTEXT*::stream
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:356,1
    - Dst: ocb_lookup_l
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:366,1
    - Dst: ocb_ntz
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:366,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:369,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:371,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:375,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:378,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:379,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:380,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:382,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:397,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:400,1
    - Dst: ocb_block_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:403,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:406,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:407,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 415
    functionName: CRYPTO_ocb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_ntz
    - OCB128_CONTEXT*::stream
    - memcpy
    - OCB128_CONTEXT*::encrypt
    - ocb_block16_xor
    - memset
    - ocb_lookup_l
    - ocb_block_xor
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ocb_lookup_l
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:445,1
    - Dst: OCB128_CONTEXT*::stream
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:448,1
    - Dst: ocb_lookup_l
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:458,1
    - Dst: ocb_ntz
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:458,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:461,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:463,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:467,1
    - Dst: OCB128_CONTEXT*::decrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:468,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:469,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:472,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:474,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:489,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:492,1
    - Dst: ocb_block_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:495,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:498,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:499,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 507
    functionName: CRYPTO_ocb128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OCB128_CONTEXT*::decrypt
    - ocb_ntz
    - OCB128_CONTEXT*::stream
    - memcpy
    - OCB128_CONTEXT*::encrypt
    - ocb_block16_xor
    - memset
    - ocb_lookup_l
    - ocb_block_xor
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:521,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:522,1
    - Dst: OCB128_CONTEXT*::encrypt
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:523,1
    - Dst: ocb_block16_xor
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:524,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:527,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - tag
    - len
    - write
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 532
    functionName: ocb_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_block16_xor
    - CRYPTO_memcmp
    - memcpy
    - OCB128_CONTEXT*::encrypt
    linkageType: ''
    returnType: int
    signature: "int ocb_finish(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len,\n
      \                     int write)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_finish
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: CRYPTO_ocb128_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_finish
    linkageType: ''
    returnType: int
    signature: "int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char
      *tag,\n                         size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocb_finish
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - OCB128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: CRYPTO_ocb128_tag
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - ocb_finish
    linkageType: ''
    returnType: int
    signature: int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:557,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/ocb128.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OCB128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: CRYPTO_ocb128_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ocb128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 91
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 144
    functionName: CRYPTO_cfb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cfb128.c:163,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/cfb128.c:177,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: cfbr_encrypt_block
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfbr_encrypt_block
      Src: /src/openssl-3.0.15/crypto/modes/cfb128.c:196,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: CRYPTO_cfb128_1_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - cfbr_encrypt_block
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfbr_encrypt_block
      Src: /src/openssl-3.0.15/crypto/modes/cfb128.c:210,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: CRYPTO_cfb128_8_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/cfb128.c
    functionUses: 0
    functionsReached:
    - cfbr_encrypt_block
    linkageType: ''
    returnType: void
    signature: "void 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/xts128.c:39,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/xts128.c:48,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/xts128.c:59,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/xts128.c:103,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/xts128.c:131,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/xts128.c:153,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 86
    argCount: 6
    argNames:
    - ctx
    - iv
    - inp
    - out
    - len
    - enc
    argTypes:
    - XTS128_CONTEXT*
    - unsigned char[]
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 161
    functionName: CRYPTO_xts128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/xts128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int 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: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 7
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - num
    - block
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - void*
    - unsigned char[]
    - int*
    - block128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 86
    functionName: CRYPTO_ofb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/ofb128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: rotl8
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __owur
    signature: __owur rotl8(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: rotr8
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __owur
    signature: __owur rotr8(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl8
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:37,1
    - Dst: rotr8
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:37,1
    - Dst: rotl8
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:38,1
    - Dst: rotr8
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: byteswap8
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - rotl8
    - rotr8
    linkageType: ''
    returnType: __owur
    signature: __owur byteswap8(uint64_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byteswap8
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - SIV_BLOCK*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: siv128_getword
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - byteswap8
    linkageType: ''
    returnType: __owur
    signature: __owur siv128_getword(SIV_BLOCK const *b, size_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byteswap8
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - i
    - x
    argTypes:
    - SIV_BLOCK*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: siv128_putword
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - byteswap8
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline siv128_putword(SIV_BLOCK *b, size_t i, uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - SIV_BLOCK*
    - SIV_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: siv128_xorblock
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline siv128_xorblock(SIV_BLOCK *x,\n                                        SIV_BLOCK
      const *y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siv128_getword
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:76,1
    - Dst: siv128_getword
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:77,1
    - Dst: siv128_putword
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:85,1
    - Dst: siv128_putword
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - SIV_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: siv128_dbl
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - siv128_getword
    - siv128_putword
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline siv128_dbl(SIV_BLOCK *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_CTX_dup
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:97,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:102,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:104,1
    - Dst: siv128_xorblock
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:105,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:106,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:109,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:110,1
    - Dst: siv128_dbl
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:112,1
    - Dst: siv128_xorblock
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:113,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:114,1
    - Dst: EVP_MAC_final
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:117,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - SIV128_CONTEXT*
    - SIV_BLOCK*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 126
    functionName: siv128_do_s2v_p
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_update
    - memcpy
    - siv128_xorblock
    - EVP_MAC_CTX_dup
    - siv128_dbl
    - EVP_MAC_CTX_free
    - memset
    - EVP_MAC_final
    linkageType: ''
    returnType: __owur
    signature: "__owur siv128_do_s2v_p(SIV128_CONTEXT *ctx, SIV_BLOCK *out,\n                                              unsigned
      char const* in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:135,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - out
    - in
    - len
    - icv
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    - SIV_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: siv128_do_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptUpdate
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: __owur
    signature: "__owur siv128_do_encrypt(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                            unsigned char const *in, size_t
      len,\n                                             SIV_BLOCK *icv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:150,1
    - Dst: ossl_siv128_init
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - key
    - klen
    - cbc
    - ctr
    - libctx
    - propq
    argTypes:
    - unsigned char*
    - int
    - EVP_CIPHER*
    - EVP_CIPHER*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: ossl_siv128_new
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ossl_siv128_init
    linkageType: ''
    returnType: SIV128_CONTEXT
    signature: "SIV128_CONTEXT *ossl_siv128_new(const unsigned char *key, int klen,\n
      \                                 EVP_CIPHER *cbc, EVP_CIPHER *ctr,\n                                  OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:176,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:177,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:178,1
    - Dst: EVP_MAC_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:179,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:187,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:188,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:190,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:192,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:194,1
    - Dst: EVP_MAC_fetch
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:196,1
    - Dst: EVP_MAC_CTX_new
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:197,1
    - Dst: EVP_MAC_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:198,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:199,1
    - Dst: EVP_MAC_CTX_dup
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:200,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:201,1
    - Dst: EVP_MAC_final
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:202,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:204,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:205,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:206,1
    - Dst: EVP_MAC_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:207,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:210,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 7
    argNames:
    - ctx
    - key
    - klen
    - cbc
    - ctr
    - libctx
    - propq
    argTypes:
    - SIV128_CONTEXT*
    - unsigned char*
    - int
    - EVP_CIPHER*
    - EVP_CIPHER*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 216
    functionName: ossl_siv128_init
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 1
    functionsReached:
    - EVP_MAC_free
    - EVP_CIPHER_CTX_free
    - EVP_MAC_update
    - EVP_MAC_CTX_dup
    - OSSL_PARAM_construct_utf8_string
    - EVP_MAC_CTX_new
    - EVP_MAC_fetch
    - EVP_MAC_CTX_set_params
    - EVP_CIPHER_get0_name
    - EVP_CIPHER_CTX_new
    - OSSL_PARAM_construct_end
    - EVP_EncryptInit_ex
    - EVP_MAC_CTX_free
    - OSSL_PARAM_construct_octet_string
    - memset
    - EVP_MAC_final
    linkageType: ''
    returnType: int
    signature: "int ossl_siv128_init(SIV128_CONTEXT *ctx, const unsigned char *key,
      int klen,\n                       const EVP_CIPHER *cbc, const EVP_CIPHER *ctr,\n
      \                      OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:223,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:225,1
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:229,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:231,1
    - Dst: EVP_MAC_CTX_dup
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:232,1
    - Dst: EVP_MAC_up_ref
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SIV128_CONTEXT*
    - SIV128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: ossl_siv128_copy_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_MAC_CTX_dup
    - EVP_CIPHER_CTX_new
    - EVP_MAC_up_ref
    - EVP_MAC_CTX_free
    - EVP_CIPHER_CTX_copy
    linkageType: ''
    returnType: int
    signature: int ossl_siv128_copy_ctx(SIV128_CONTEXT *dest, SIV128_CONTEXT *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: siv128_dbl
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:253,1
    - Dst: EVP_MAC_CTX_dup
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:255,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:256,1
    - Dst: EVP_MAC_final
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:257,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:260,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:263,1
    - Dst: siv128_xorblock
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - SIV128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: ossl_siv128_aad
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_update
    - siv128_xorblock
    - EVP_MAC_CTX_dup
    - siv128_dbl
    - EVP_MAC_CTX_free
    - EVP_MAC_final
    linkageType: ''
    returnType: int
    signature: "int ossl_siv128_aad(SIV128_CONTEXT *ctx, const unsigned char *aad,\n
      \                     size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: siv128_do_s2v_p
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:284,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:287,1
    - Dst: siv128_do_encrypt
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - SIV128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 295
    functionName: ossl_siv128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - siv128_do_encrypt
    - siv128_do_s2v_p
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_siv128_encrypt(SIV128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:313,1
    - Dst: siv128_do_encrypt
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:317,1
    - Dst: siv128_do_s2v_p
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:318,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - SIV128_CONTEXT*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 300
    functionDepth: 5
    functionLinenumber: 300
    functionLinenumberEnd: 331
    functionName: ossl_siv128_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - siv128_do_encrypt
    - siv128_do_s2v_p
    - OPENSSL_cleanse
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_siv128_decrypt(SIV128_CONTEXT *ctx,\n                          const
      unsigned char *in, unsigned char *out,\n                          size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SIV128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: ossl_siv128_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_siv128_finish(SIV128_CONTEXT *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - SIV128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: ossl_siv128_set_tag
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ossl_siv128_set_tag(SIV128_CONTEXT *ctx, const unsigned char *tag,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - tag
    - len
    argTypes:
    - SIV128_CONTEXT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: ossl_siv128_get_tag
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ossl_siv128_get_tag(SIV128_CONTEXT *ctx, unsigned char *tag, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:373,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:375,1
    - Dst: EVP_MAC_free
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:377,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:379,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/modes/siv128.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SIV128_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: ossl_siv128_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_free
    - EVP_MAC_CTX_free
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: int ossl_siv128_cleanup(SIV128_CONTEXT *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - SIV128_CONTEXT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: ossl_siv128_speed
    functionSourceFile: /src/openssl-3.0.15/crypto/modes/siv128.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_siv128_speed(SIV128_CONTEXT *ctx, int arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: U8TOU64
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 U8TOU64(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: U64TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void U64TO8(unsigned char *p, u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c:67,1
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: poly1305_init
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: int
    signature: int poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c:105,1
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 133
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: void
    signature: "void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,\n
      \                    u32 padbit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c:169,1
    - Dst: U64TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 171
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_base2_44.c
    functionUses: 0
    functionsReached:
    - U64TO8
    linkageType: ''
    returnType: void
    signature: void poly1305_emit(void *ctx, unsigned char mac[16], const u32 nonce[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: Poly1305_ctx_size
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Poly1305_ctx_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: U8TOU32
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int U8TOU32(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: CONSTANT_TIME_CARRY
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONSTANT_TIME_CARRY(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: U8TOU64
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 U8TOU64(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: U64TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void U64TO8(unsigned char *p, u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:143,1
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: poly1305_init
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU64
    linkageType: ''
    returnType: void
    signature: void poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:167,1
    - Dst: U8TOU64
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:168,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:192,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 211
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - CONSTANT_TIME_CARRY
    - U8TOU64
    linkageType: ''
    returnType: void
    signature: void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,
      u32 padbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:243,1
    - Dst: U64TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 245
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U64TO8
    linkageType: ''
    returnType: void
    signature: "void poly1305_emit(void *ctx, unsigned char mac[16],\n                          const
      u32 nonce[4])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: U32TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void U32TO8(unsigned char *p, unsigned int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:283,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:284,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:285,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 287
    functionName: poly1305_init
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: void poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:315,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:316,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:317,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:318,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:354,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:355,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:356,1
    - Dst: CONSTANT_TIME_CARRY
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 377
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - CONSTANT_TIME_CARRY
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,
      u32 padbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:419,1
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:420,1
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:421,1
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 423
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U32TO8
    linkageType: ''
    returnType: void
    signature: "void poly1305_emit(void *ctx, unsigned char mac[16],\n                          const
      u32 nonce[4])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:435,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:436,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:437,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:438,1
    - Dst: poly1305_init
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:441,1
    - Dst: poly1305_init
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - POLY1305*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 457
    functionName: Poly1305_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - U8TOU32
    - poly1305_init
    linkageType: ''
    returnType: void
    signature: void Poly1305_Init(POLY1305 *ctx, const unsigned char key[32])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:484,1
    - Dst: poly1305_blocks
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:485,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:490,1
    - Dst: poly1305_blocks
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:500,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - POLY1305*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 508
    functionName: Poly1305_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_blocks
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Poly1305_Update(POLY1305 *ctx, const unsigned char *inp, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_blocks
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:522,1
    - Dst: poly1305_emit
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:525,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - mac
    argTypes:
    - POLY1305*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 529
    functionName: Poly1305_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305.c
    functionUses: 0
    functionsReached:
    - poly1305_blocks
    - OPENSSL_cleanse
    - poly1305_emit
    linkageType: ''
    returnType: void
    signature: void Poly1305_Final(POLY1305 *ctx, unsigned char mac[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: TWO
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TWO(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: EXP
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXP(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: U8TOU32
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: U32TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: U8TOU32
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: U32TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: U8TOU32
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: U32TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: U8TOU32
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TOU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: U32TO8
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8(p,v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:117,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:118,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:119,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:120,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:122,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:123,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:124,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:125,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:160,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:160,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:161,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:161,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:162,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:162,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:163,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:163,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:165,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:166,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:167,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:168,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:177,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:177,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:178,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:178,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:181,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:181,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:182,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:182,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:185,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:185,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:186,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:186,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:189,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:189,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:190,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:190,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:193,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:193,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:194,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:194,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:197,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:197,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:198,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:198,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:201,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:201,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:202,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - void*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 222
    functionName: poly1305_init
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached:
    - EXP
    - TWO
    - U8TOU32
    linkageType: ''
    returnType: int
    signature: int poly1305_init(void *ctx, const unsigned char key[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:284,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:285,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:286,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:287,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:295,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:295,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:296,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:296,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:297,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:297,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:298,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:298,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:300,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:301,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:302,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:303,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:314,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:314,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:315,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:315,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:316,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:316,1
    - Dst: EXP
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:317,1
    - Dst: U8TOU32
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:317,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:319,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:320,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:321,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:322,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:336,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:336,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:337,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:337,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:338,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:338,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:339,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:339,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:341,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:341,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:342,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:342,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:343,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:343,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:344,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:344,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:383,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:383,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:384,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:384,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:385,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:385,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:386,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:386,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:388,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:388,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:389,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:389,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:390,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:390,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:391,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:391,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:409,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:410,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:411,1
    - Dst: TWO
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 101
    argCount: 4
    argNames:
    - ctx
    - inp
    - len
    - padbit
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 428
    functionName: poly1305_blocks
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 2
    functionsReached:
    - EXP
    - TWO
    - U8TOU32
    linkageType: ''
    returnType: void
    signature: "void poly1305_blocks(void *ctx, const unsigned char *inp, size_t len,\n
      \                    int padbit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:484,1
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:485,1
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:486,1
    - Dst: U32TO8
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - mac
    - nonce
    argTypes:
    - void*
    - unsigned char[]
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 488
    functionName: poly1305_emit
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ieee754.c
    functionUses: 1
    functionsReached:
    - U32TO8
    linkageType: ''
    returnType: void
    signature: void poly1305_emit(void *ctx, unsigned char mac[16], const u32 nonce[4])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poly1305_init_int
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ppc.c:34,1
    - Dst: poly1305_init_fpu
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ppc.c:38,1
    - Dst: poly1305_init_int
      Src: /src/openssl-3.0.15/crypto/poly1305/poly1305_ppc.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - key
    - func
    argTypes:
    - void*
    - unsigned char[]
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: poly1305_init
    functionSourceFile: /src/openssl-3.0.15/crypto/poly1305/poly1305_ppc.c
    functionUses: 1
    functionsReached:
    - poly1305_init_int
    - poly1305_init_fpu
    linkageType: ''
    returnType: int
    signature: int poly1305_init(void *ctx, const unsigned char key[16], void *func[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:88,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:109,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:134,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:135,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:141,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:147,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:159,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:167,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:172,1
    - Dst: DSO_MALLOC
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:178,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:182,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:185,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:188,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:192,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:194,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:198,1
    - Dst: sk_void_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:204,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:214,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 216
    functionName: vms_load
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - strcat
    - sk_void_push
    - strrchr
    - strchr
    - ERR_raise
    - OPENSSL_free
    - strlen
    - DSO_MALLOC
    - DSO_convert_filename
    - strncpy
    linkageType: ''
    returnType: int
    signature: int vms_load(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:227,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:230,1
    - Dst: sk_void_pop
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:234,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: vms_unload
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - sk_void_pop
    - OPENSSL_free
    - sk_void_num
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int vms_unload(DSO *dso)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lib$establish
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:255,1
    - Dst: lib$find_image_symbol
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:258,1
    - Dst: lib$find_image_symbol
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 264
    functionName: do_find_symbol
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - lib$establish
    - lib$find_image_symbol
    linkageType: ''
    returnType: int
    signature: "int do_find_symbol(DSO_VMS_INTERNAL *ptr,\n                          struct
      dsc$descriptor_s *symname_dsc, void **sym,\n                          unsigned
      long flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:290,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:296,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:299,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:304,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:305,1
    - Dst: sk_void_value
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:308,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:309,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:311,1
    - Dst: do_find_symbol
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:315,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:317,1
    - Dst: do_find_symbol
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:318,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:320,1
    - Dst: sys$getmsg
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:332,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:334,1
    - Dst: lib$signal
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:335,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:340,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - dso
    - symname
    - sym
    argTypes:
    - DSO*
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 352
    functionName: vms_bind_sym
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - sk_void_value
    - sys$getmsg
    - ERR_raise_data
    - ERR_raise
    - lib$signal
    - sk_void_num
    - strlen
    - do_find_symbol
    - strcpy
    - $VMS_STATUS_SUCCESS
    linkageType: ''
    returnType: void
    signature: void vms_bind_sym(DSO *dso, const char *symname, void **sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vms_bind_sym
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: vms_bind_func
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - vms_bind_sym
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:391,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:392,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:398,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:399,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:405,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:406,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:407,1
    - Dst: FAB_OR_NAML
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:408,1
    - Dst: NAMX_DNA_FNA_SET
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:409,1
    - Dst: SET_NAMX_NO_SHORT_UPCASE
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:414,1
    - Dst: sys$parse
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:418,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:420,1
    - Dst: sys$getmsg
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:430,1
    - Dst: $VMS_STATUS_SUCCESS
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:432,1
    - Dst: lib$signal
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:433,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:437,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:444,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:447,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 452
    functionName: vms_merger
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - NAMX_DNA_FNA_SET
    - FAB_OR_NAML
    - SET_NAMX_NO_SHORT_UPCASE
    - OPENSSL_malloc
    - sys$getmsg
    - ERR_raise_data
    - ERR_raise
    - lib$signal
    - sys$parse
    - strlen
    - strcpy
    - strncpy
    - $VMS_STATUS_SUCCESS
    linkageType: ''
    returnType: char
    signature: "char *vms_merger(DSO *dso, const char *filespec1,\n                        const
      char *filespec2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:460,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:462,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:467,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:467,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:473,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:474,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:477,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:479,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:481,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_vms.c:484,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 487
    functionName: vms_name_converter
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_vms.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strrchr
    - strchr
    - strlen
    - strcat
    - OPENSSL_strdup
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *vms_name_converter(DSO *dso, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddressW
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - hModule
    - lpProcName
    argTypes:
    - HMODULE
    - LPCSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: GetProcAddressA
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - GetProcAddressW
    linkageType: ''
    returnType: FARPROC
    signature: FARPROC GetProcAddressA(HMODULE hModule, LPCSTR lpProcName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:37,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:40,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:42,1
    - Dst: SetLastError
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:45,1
    - Dst: MultiByteToWideChar
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:49,1
    - Dst: LoadLibraryW
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - lpLibFileName
    argTypes:
    - LPCSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: LoadLibraryA
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - LoadLibraryW
    - MultiByteToWideChar
    - SetLastError
    - _alloca
    - strlen
    - alloca
    linkageType: ''
    returnType: HINSTANCE
    signature: HINSTANCE LoadLibraryA(LPCSTR lpLibFileName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:103,1
    - Dst: LoadLibraryA
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:106,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:108,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:114,1
    - Dst: sk_void_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:118,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:127,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:128,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 132
    functionName: win32_load
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    - LoadLibraryA
    - OPENSSL_malloc
    - sk_void_push
    - ERR_raise_data
    - ERR_raise
    - OPENSSL_free
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int win32_load(DSO *dso)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:138,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:141,1
    - Dst: sk_void_pop
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:145,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:149,1
    - Dst: sk_void_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 159
    functionName: win32_unload
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sk_void_pop
    - FreeLibrary
    - sk_void_push
    - ERR_raise
    - OPENSSL_free
    - sk_void_num
    linkageType: ''
    returnType: int
    signature: int win32_unload(DSO *dso)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:170,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:174,1
    - Dst: sk_void_value
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:177,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:179,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:182,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: win32_bind_func
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sk_void_value
    - ERR_raise_data
    - ERR_raise
    - sk_void_num
    - GetProcAddress
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:212,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:218,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:237,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:238,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 3
    argNames:
    - dso
    - filename
    - assume_last_is_dir
    argTypes:
    - DSO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 301
    functionName: win32_splitter
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - OPENSSL_free
    - ERR_raise
    linkageType: ''
    returnType: struct file_st
    signature: "struct file_st *win32_splitter(DSO *dso, const char *filename,\n                                      int
      assume_last_is_dir)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:310,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:331,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:335,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:337,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:342,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:344,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:351,1
    - Dst: openssl_strnchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:358,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:364,1
    - Dst: openssl_strnchr
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:372,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:377,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:383,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - dso
    - file_split
    argTypes:
    - DSO*
    - struct file_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 387
    functionName: win32_joiner
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - openssl_strnchr
    - strcpy
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *win32_joiner(DSO *dso, const struct file_st *file_split)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:397,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:401,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:403,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:407,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:409,1
    - Dst: win32_splitter
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:413,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:415,1
    - Dst: win32_splitter
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:418,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:420,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:421,1
    - Dst: win32_joiner
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:445,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:447,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:448,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 450
    functionName: win32_merger
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - win32_joiner
    - ERR_raise
    - win32_splitter
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: "char *win32_merger(DSO *dso, const char *filespec1,\n                          const
      char *filespec2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:457,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:458,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:459,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:460,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:463,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:466,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:468,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:472,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 476
    functionName: win32_name_converter
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - sprintf
    - OPENSSL_malloc
    - strstr
    - ERR_raise
    - strlen
    linkageType: ''
    returnType: char
    signature: char *win32_name_converter(DSO *dso, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - string
    - c
    - len
    argTypes:
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: openssl_strnchr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *openssl_strnchr(const char *string, int c, size_t len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:522,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:522,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:524,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:529,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:531,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:532,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:538,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:542,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:543,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:551,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:552,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:560,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:561,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:570,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:573,1
    - Dst: wcslen
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:577,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:590,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:595,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:604,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 606
    functionName: win32_pathbyaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    - wcslen
    - memcpy
    - LoadLibrary
    - TEXT
    - ERR_raise
    - WideCharToMultiByte
    - strlen
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int win32_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:621,1
    - Dst: TEXT
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:621,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:623,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:628,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:630,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:631,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:637,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:641,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:642,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:646,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:647,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:655,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:660,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:662,1
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/crypto/dso/dso_win32.c:668,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 670
    functionName: win32_globallookup
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_win32.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    - LoadLibrary
    - TEXT
    - ERR_raise
    - GetProcAddress
    linkageType: ''
    returnType: void
    signature: void *win32_globallookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:17,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:19,1
    - Dst: sk_void_new_null
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:22,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:25,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:26,1
    - Dst: DSO_METHOD_openssl
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:29,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:33,1
    - Dst: sk_void_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:35,1
    - Dst: DSO*::meth::init
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:39,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DSO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 45
    functionName: DSO_new_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - sk_void_new_null
    - ERR_raise
    - OPENSSL_zalloc
    - sk_void_free
    - OPENSSL_free
    - DSO_free
    - CRYPTO_THREAD_lock_new
    - DSO*::meth::init
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_new_method(DSO_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new_method
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: DSO_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO_new_method
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_new(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:59,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:62,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:65,1
    - Dst: DSO*::meth::dso_unload
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:69,1
    - Dst: DSO*::meth::finish
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:75,1
    - Dst: sk_void_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:81,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 85
    functionName: DSO_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 5
    functionsReached:
    - CRYPTO_DOWN_REF
    - DSO*::meth::finish
    - REF_ASSERT_ISNT
    - ERR_raise
    - sk_void_free
    - DSO*::meth::dso_unload
    - REF_PRINT_COUNT
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: int DSO_free(DSO *dso)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: DSO_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSO_flags(DSO *dso)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:97,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:101,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:104,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: DSO_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - ERR_raise
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int DSO_up_ref(DSO *dso)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new_method
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:117,1
    - Dst: DSO_ctrl
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:130,1
    - Dst: DSO_set_filename
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:139,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:148,1
    - Dst: DSO*::meth::dso_load
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:152,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:159,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 4
    argNames:
    - dso
    - filename
    - meth
    - flags
    argTypes:
    - DSO*
    - char*
    - DSO_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 161
    functionName: DSO_load
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO_new_method
    - DSO_set_filename
    - ERR_raise
    - DSO*::meth::dso_load
    - DSO_free
    - DSO_ctrl
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:168,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:172,1
    - Dst: DSO*::meth::dso_bind_func
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:175,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: DSO_bind_func
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO*::meth::dso_bind_func
    - ERR_raise
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:215,1
    - Dst: DSO*::meth::dso_ctrl
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - dso
    - cmd
    - larg
    - parg
    argTypes:
    - DSO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 219
    functionName: DSO_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    - DSO*::meth::dso_ctrl
    linkageType: ''
    returnType: long
    signature: long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: DSO_get_filename
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *DSO_get_filename(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:239,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:245,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 251
    functionName: DSO_set_filename
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DSO_set_filename(DSO *dso, const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:258,1
    - Dst: DSO*::merger
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:263,1
    - Dst: DSO*::meth::dso_merger
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: DSO_merge
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 1
    functionsReached:
    - DSO*::merger
    - DSO*::meth::dso_merger
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:275,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:281,1
    - Dst: DSO*::name_converter
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:286,1
    - Dst: DSO*::meth::dso_name_converter
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:288,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 298
    functionName: DSO_convert_filename
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 3
    functionsReached:
    - DSO*::meth::dso_name_converter
    - DSO*::name_converter
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *DSO_convert_filename(DSO *dso, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 309
    functionName: DSO_pathbyaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DSO_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSO_pathbyaddr
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:315,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:320,1
    - Dst: DSO_pathbyaddr
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:322,1
    - Dst: DSO_load
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:323,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - addr
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 327
    functionName: DSO_dsobyaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - DSO_load
    - DSO_pathbyaddr
    linkageType: ''
    returnType: DSO
    signature: DSO *DSO_dsobyaddr(void *addr, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSO_METHOD_openssl
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:331,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_lib.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 338
    functionName: DSO_global_lookup
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_lib.c
    functionUses: 0
    functionsReached:
    - DSO_METHOD_openssl
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *DSO_global_lookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:100,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:105,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:113,1
    - Dst: dlopen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:116,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:118,1
    - Dst: dlerror
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:119,1
    - Dst: set_sys_error
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:126,1
    - Dst: sk_void_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:128,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:136,1
    - Dst: dlclose
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: dlfcn_load
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dlerror
    - sk_void_push
    - dlclose
    - get_last_sys_error
    - ERR_raise_data
    - ERR_raise
    - set_sys_error
    - OPENSSL_free
    - dlopen
    - strlen
    - DSO_convert_filename
    linkageType: ''
    returnType: int
    signature: int dlfcn_load(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:146,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:149,1
    - Dst: sk_void_pop
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:153,1
    - Dst: sk_void_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:157,1
    - Dst: dlclose
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: dlfcn_unload
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - sk_void_pop
    - sk_void_push
    - dlclose
    - ERR_raise
    - sk_void_num
    linkageType: ''
    returnType: int
    signature: int dlfcn_unload(DSO *dso)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:174,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:178,1
    - Dst: sk_void_value
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:181,1
    - Dst: sk_void_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:183,1
    - Dst: dlsym
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:186,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:188,1
    - Dst: dlerror
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: dlfcn_bind_func
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dlerror
    - sk_void_value
    - ERR_raise_data
    - ERR_raise
    - sk_void_num
    - dlsym
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:201,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:209,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:211,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:219,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:221,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:234,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:235,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:241,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:243,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:246,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 251
    functionName: dlfcn_merger
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - strlen
    - strcpy
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: "char *dlfcn_merger(DSO *dso, const char *filespec1,\n                          const
      char *filespec2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:258,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:260,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:263,1
    - Dst: DSO_flags
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:264,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:267,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:269,1
    - Dst: DSO_flags
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:273,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:274,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:276,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 280
    functionName: dlfcn_name_converter
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - sprintf
    - DSO_flags
    - OPENSSL_malloc
    - strstr
    - ERR_raise
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dlfcn_name_converter(DSO *dso, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rld_new_interface
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - address
    - dl
    argTypes:
    - void*
    - Dl_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: dladdr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 4
    functionsReached:
    - _rld_new_interface
    linkageType: ''
    returnType: int
    signature: int dladdr(void *address, Dl_info *dl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:345,1
    - Dst: loadquery
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:351,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:358,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:375,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:377,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:380,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:381,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:388,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:389,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:390,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:401,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ptr
    - dl
    argTypes:
    - void*
    - Dl_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 403
    functionName: dladdr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 4
    functionsReached:
    - loadquery
    - OPENSSL_strlcat
    - OPENSSL_malloc
    - OPENSSL_free
    - strlen
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: int
    signature: int dladdr(void *ptr, Dl_info *dl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:422,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:423,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:426,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:435,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:440,1
    - Dst: dlerror
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 443
    functionName: dlfcn_pathbyaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dladdr
    - memcpy
    - dlerror
    - OPENSSL_free
    - ERR_add_error_data
    - strlen
    linkageType: ''
    returnType: int
    signature: int dlfcn_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:447,1
    - Dst: dlsym
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:450,1
    - Dst: dlclose
      Src: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: dlfcn_globallookup
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dlfcn.c
    functionUses: 0
    functionsReached:
    - dlclose
    - dlopen
    - dlsym
    linkageType: ''
    returnType: void
    signature: void *dlfcn_globallookup(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/dso/dso_err.c:52,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/dso/dso_err.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: ossl_err_load_DSO_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_DSO_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: DSO_METHOD_openssl
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: DSO_METHOD
    signature: DSO_METHOD *DSO_METHOD_openssl(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DSO_convert_filename
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:61,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:64,1
    - Dst: shl_load
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:67,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:73,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:74,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:77,1
    - Dst: sk_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:93,1
    - Dst: shl_unload
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 97
    functionName: dl_load
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_unload
    - sk_push
    - ERR_raise_data
    - shl_load
    - ERR_raise
    - OPENSSL_free
    - DSO_convert_filename
    - openssl_strerror_r
    linkageType: ''
    returnType: int
    signature: int dl_load(DSO *dso)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:103,1
    - Dst: sk_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:106,1
    - Dst: sk_pop
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:111,1
    - Dst: sk_push
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:115,1
    - Dst: shl_unload
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dso
    argTypes:
    - DSO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 120
    functionName: dl_unload
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - sk_pop
    - sk_push
    - sk_num
    - ERR_raise
    - shl_unload
    linkageType: ''
    returnType: int
    signature: int dl_unload(DSO *dso)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:128,1
    - Dst: sk_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:132,1
    - Dst: sk_value
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:135,1
    - Dst: sk_num
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:137,1
    - Dst: shl_findsym
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:140,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:143,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:144,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - symname
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 152
    functionName: dl_bind_func
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_findsym
    - sk_num
    - sk_value
    - ERR_raise_data
    - ERR_raise
    - openssl_strerror_r
    linkageType: ''
    returnType: DSO_FUNC_TYPE
    signature: DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:159,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:169,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:179,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:193,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:194,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:202,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:205,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:207,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - dso
    - filespec1
    - filespec2
    argTypes:
    - DSO*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 210
    functionName: dl_merger
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - strlen
    - strcpy
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *dl_merger(DSO *dso, const char *filespec1, const char *filespec2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:224,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:226,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:229,1
    - Dst: DSO_flags
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:230,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:233,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:235,1
    - Dst: DSO_flags
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:239,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:240,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:242,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dso
    - filename
    argTypes:
    - DSO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 246
    functionName: dl_name_converter
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - sprintf
    - DSO_flags
    - OPENSSL_malloc
    - strstr
    - ERR_raise
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dl_name_converter(DSO *dso, const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: shl_get_r
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:263,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:266,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - addr
    - path
    - sz
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 278
    functionName: dl_pathbyaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_get_r
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int dl_pathbyaddr(void *addr, char *path, int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shl_findsym
      Src: /src/openssl-3.0.15/crypto/dso/dso_dl.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: dl_globallookup
    functionSourceFile: /src/openssl-3.0.15/crypto/dso/dso_dl.c
    functionUses: 0
    functionsReached:
    - shl_findsym
    linkageType: ''
    returnType: void
    signature: void *dl_globallookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UI_new_method
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: UI_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - UI_new_method
    linkageType: ''
    returnType: UI
    signature: UI *UI_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:25,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:28,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:35,1
    - Dst: UI_get_default_method
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:40,1
    - Dst: UI_null
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:42,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:45,1
    - Dst: UI_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: UI_new_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - UI_get_default_method
    - UI_null
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - UI_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: UI
    signature: UI *UI_new_method(const UI_METHOD *method)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: free_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_string(UI_STRING *uis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_destroy_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:78,1
    - Dst: sk_UI_STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:80,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:81,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: UI_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 3
    functionsReached:
    - UI*::meth::ui_destroy_data
    - OPENSSL_free
    - CRYPTO_free_ex_data
    - CRYPTO_THREAD_lock_free
    - sk_UI_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: void UI_free(UI *ui)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_UI_STRING_new_null
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: allocate_string_stack
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_new_null
    linkageType: ''
    returnType: int
    signature: int allocate_string_stack(UI *ui)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:105,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:108,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:109,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: general_allocate_prompt
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - ERR_raise
    linkageType: ''
    returnType: UI_STRING
    signature: "UI_STRING *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: 4
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_prompt
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:126,1
    - Dst: allocate_string_stack
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:130,1
    - Dst: sk_UI_STRING_push
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:134,1
    - Dst: free_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:138,1
    - Dst: free_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:141,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: general_allocate_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - allocate_string_stack
    - sk_UI_STRING_push
    - free_string
    - general_allocate_prompt
    linkageType: ''
    returnType: int
    signature: "int 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:162,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:165,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:166,1
    - Dst: general_allocate_prompt
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:170,1
    - Dst: allocate_string_stack
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:174,1
    - Dst: sk_UI_STRING_push
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:178,1
    - Dst: free_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:184,1
    - Dst: free_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:187,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 191
    functionName: general_allocate_boolean
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_prompt
    - allocate_string_stack
    - strchr
    - ERR_raise
    - sk_UI_STRING_push
    - free_string
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: UI_add_input_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int UI_add_input_string(UI *ui, const char *prompt, int flags,\n                        char
      *result_buf, int minsize, int maxsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:214,1
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ui
    - prompt
    - flags
    - result_buf
    - minsize
    - maxsize
    argTypes:
    - UI*
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: UI_dup_input_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int UI_dup_input_string(UI *ui, const char *prompt, int flags,\n                        char
      *result_buf, int minsize, int maxsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:228,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: UI_add_verify_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:240,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:242,1
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:247,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: UI_dup_verify_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_boolean
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:256,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: UI_add_input_boolean
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_boolean
    linkageType: ''
    returnType: int
    signature: "int 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:273,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:279,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:281,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:287,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:289,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:295,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:297,1
    - Dst: general_allocate_boolean
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:302,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:306,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:309,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 311
    functionName: UI_dup_input_boolean
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - general_allocate_boolean
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: UI_add_info_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_add_info_string(UI *ui, const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:324,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:326,1
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 333
    functionName: UI_dup_info_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_dup_info_string(UI *ui, const char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: UI_add_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_add_error_string(UI *ui, const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:346,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:348,1
    - Dst: general_allocate_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ui
    - text
    argTypes:
    - UI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: UI_dup_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    - general_allocate_string
    linkageType: ''
    returnType: int
    signature: int UI_dup_error_string(UI *ui, const char *text)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_construct_prompt
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:362,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:371,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:373,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:376,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:377,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:380,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:381,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:383,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:384,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - ui
    - phrase_desc
    - object_name
    argTypes:
    - UI*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 389
    functionName: UI_construct_prompt
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - UI*::meth::ui_construct_prompt
    - OPENSSL_strlcat
    - OPENSSL_malloc
    - ERR_raise
    - strlen
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: char
    signature: "char *UI_construct_prompt(UI *ui, const char *phrase_desc,\n                          const
      char *object_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_destroy_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ui
    - user_data
    argTypes:
    - UI*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 402
    functionName: UI_add_user_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - UI*::meth::ui_destroy_data
    linkageType: ''
    returnType: void
    signature: void *UI_add_user_data(UI *ui, void *user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:410,1
    - Dst: UI*::meth::ui_duplicate_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:414,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:416,1
    - Dst: UI_add_user_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ui
    - user_data
    argTypes:
    - UI*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 424
    functionName: UI_dup_user_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - UI*::meth::ui_duplicate_data
    - UI_add_user_data
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int UI_dup_user_data(UI *ui, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: UI_get0_user_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *UI_get0_user_data(UI *ui)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:434,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:437,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:438,1
    - Dst: UI_get0_result_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:441,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ui
    - i
    argTypes:
    - UI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 442
    functionName: UI_get0_result
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - sk_UI_STRING_num
    - sk_UI_STRING_value
    - ERR_raise
    - UI_get0_result_string
    linkageType: ''
    returnType: char
    signature: char *UI_get0_result(UI *ui, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:447,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:450,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:451,1
    - Dst: UI_get_result_string_length
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:454,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ui
    - i
    argTypes:
    - UI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 455
    functionName: UI_get_result_length
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - sk_UI_STRING_num
    - UI_get_result_string_length
    - sk_UI_STRING_value
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int UI_get_result_length(UI *ui, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:461,1
    - Dst: UI*::meth::ui_write_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - len
    - ui
    argTypes:
    - char*
    - size_t
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: print_error
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 14
    functionsReached:
    - memset
    - UI*::meth::ui_write_string
    linkageType: ''
    returnType: int
    signature: int print_error(const char *str, size_t len, UI *ui)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UI*::meth::ui_open_session
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:477,1
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:484,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:487,1
    - Dst: UI*::meth::ui_write_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:489,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:490,1
    - Dst: UI*::meth::ui_flush
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:500,1
    - Dst: sk_UI_STRING_num
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:514,1
    - Dst: UI*::meth::ui_read_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:516,1
    - Dst: sk_UI_STRING_value
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:517,1
    - Dst: UI*::meth::ui_close_session
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:541,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:548,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 550
    functionName: UI_process
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached:
    - UI*::meth::ui_open_session
    - UI*::meth::ui_write_string
    - UI*::meth::ui_close_session
    - UI*::meth::ui_read_string
    - ERR_raise_data
    - sk_UI_STRING_num
    - UI*::meth::ui_flush
    - ERR_print_errors_cb
    - sk_UI_STRING_value
    linkageType: ''
    returnType: int
    signature: int UI_process(UI *ui)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:555,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ui
    - cmd
    - i
    - p
    argTypes:
    - UI*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 575
    functionName: UI_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - UI*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: UI_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int UI_set_ex_data(UI *r, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - UI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: UI_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *UI_get_ex_data(const UI *r, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: UI_get_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_get_method(UI *ui)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ui
    - meth
    argTypes:
    - UI*
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 596
    functionName: UI_set_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:602,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:603,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:604,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:607,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:608,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 613
    functionName: UI_create_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_create_method(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:624,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:626,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ui_method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 629
    functionName: UI_destroy_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - CRYPTO_free_ex_data
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void UI_destroy_method(UI_METHOD *ui_method)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 638
    functionName: UI_method_set_opener
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: UI_method_set_writer
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_writer(UI_METHOD *method,\n                         int
      (*writer) (UI *ui, UI_STRING *uis))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 657
    functionName: UI_method_set_flusher
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 667
    functionName: UI_method_set_reader
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_reader(UI_METHOD *method,\n                         int
      (*reader) (UI *ui, UI_STRING *uis))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 676
    functionName: UI_method_set_closer
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - method
    - (*duplicator) (UI *ui, void *ui_data)
    argTypes:
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: UI_method_set_data_duplicator
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_data_duplicator(UI_METHOD *method,\n                                  void
      *(*duplicator) (UI *ui, void *ui_data),\n                                  void
      (*destructor)(UI *ui, void *ui_data))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - method
    - "(*prompt_constructor) (UI *ui,\n                                                                  const
      char *,\n                                                                  const
      char *)"
    argTypes:
    - UI_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 700
    functionName: UI_method_set_prompt_constructor
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int UI_method_set_prompt_constructor(UI_METHOD *method,\n                                     char
      *(*prompt_constructor) (UI *ui,\n                                                                  const
      char *,\n                                                                  const
      char *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - idx
    - data
    argTypes:
    - UI_METHOD*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: UI_method_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: (*UI_method_get_opener(const UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_opener(const UI_METHOD *method)) (UI *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 719
    functionName: (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING
      *)
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING
      *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: (*UI_method_get_flusher(const UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 733
    functionName: (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING
      *)
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING
      *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 740
    functionName: (*UI_method_get_closer(const UI_METHOD *method)) (UI *)
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*UI_method_get_closer(const UI_METHOD *method)) (UI *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: "*(*UI_method_get_prompt_constructor(const UI_METHOD *method))\n
      \   (UI *, const char *, const char *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *(*UI_method_get_prompt_constructor(const UI_METHOD *method))\n
      \   (UI *, const char *, const char *)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 755
    functionName: '*(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI
      *, void *)'
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI
      *, void *)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 762
    functionName: (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *,
      void *)
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI
      *, void *)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - idx
    argTypes:
    - UI_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: UI_method_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *UI_method_get_ex_data(const UI_METHOD *method, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: UI_get_string_type
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum UI_string_types
    signature: enum UI_string_types UI_get_string_type(UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: UI_get_input_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_input_flags(UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: UI_get0_output_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_output_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 797
    functionName: UI_get0_action_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_action_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 812
    functionName: UI_get0_result_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_result_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 827
    functionName: UI_get_result_string_length
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_result_string_length(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: UI_get0_test_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *UI_get0_test_string(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 857
    functionName: UI_get_result_minsize
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_result_minsize(UI_STRING *uis)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - uis
    argTypes:
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 872
    functionName: UI_get_result_maxsize
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int UI_get_result_maxsize(UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UI_set_result_ex
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:876,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ui
    - uis
    - result
    argTypes:
    - UI*
    - UI_STRING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 877
    functionName: UI_set_result
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    - UI_set_result_ex
    linkageType: ''
    returnType: int
    signature: int UI_set_result(UI *ui, UI_STRING *uis, const char *result)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:888,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:896,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:904,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:908,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:918,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:924,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/ui/ui_lib.c:928,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - ui
    - uis
    - result
    - len
    argTypes:
    - UI*
    - UI_STRING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 940
    functionName: UI_set_result_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_lib.c
    functionUses: 1
    functionsReached:
    - strchr
    - ERR_raise_data
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UI_UTIL_read_pw
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:26,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - length
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: UI_UTIL_read_pw_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - UI_UTIL_read_pw
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt,\n
      \                          int verify)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:41,1
    - Dst: UI_add_input_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:43,1
    - Dst: UI_add_verify_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:45,1
    - Dst: UI_process
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:47,1
    - Dst: UI_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - buf
    - buff
    - size
    - prompt
    - verify
    argTypes:
    - char*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: UI_UTIL_read_pw
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 1
    functionsReached:
    - UI_process
    - UI_new
    - UI_free
    - UI_add_input_string
    - UI_add_verify_string
    linkageType: ''
    returnType: int
    signature: "int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt,\n
      \                   int verify)"
  - BBCount: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: ui_new_method_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ui_new_method_data(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n
      \                              int idx, long argl, void *argp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - to
    - from
    - pptr
    - idx
    - argl
    - argp
    argTypes:
    - CRYPTO_EX_DATA*
    - CRYPTO_EX_DATA*
    - void**
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: ui_dup_method_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "int ui_dup_method_data(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,\n
      \                             void **pptr, int idx, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - parent
    - ptr
    - ad
    - idx
    - argl
    - argp
    argTypes:
    - void*
    - void*
    - CRYPTO_EX_DATA*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: ui_free_method_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void ui_free_method_data(void *parent, void *ptr, CRYPTO_EX_DATA *ad,\n
      \                               int idx, long argl, void *argp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_new_index
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_new_index
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ui_method_data_index_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: ui_open
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ui_open(UI *ui)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:105,1
    - Dst: UI_method_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:110,1
    - Dst: UI_get_method
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:110,1
    - Dst: UI_get_result_maxsize
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:111,1
    - Dst: struct pem_password_cb_data*::cb
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:112,1
    - Dst: UI_get0_user_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:114,1
    - Dst: UI_set_result_ex
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: ui_read
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached:
    - UI_set_result_ex
    - UI_method_get_ex_data
    - UI_get0_user_data
    - UI_get_string_type
    - UI_get_method
    - UI_get_result_maxsize
    - struct pem_password_cb_data*::cb
    linkageType: ''
    returnType: int
    signature: int ui_read(UI *ui, UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: ui_write
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ui_write(UI *ui, UI_STRING *uis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: ui_close
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ui_close(UI *ui)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:147,1
    - Dst: UI_create_method
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:148,1
    - Dst: UI_method_set_opener
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:149,1
    - Dst: UI_method_set_reader
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:150,1
    - Dst: UI_method_set_writer
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:151,1
    - Dst: UI_method_set_closer
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:152,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:153,1
    - Dst: UI_method_set_ex_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:154,1
    - Dst: UI_destroy_method
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:155,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ui/ui_util.c:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - cb
    - rwflag
    argTypes:
    - pem_password_cb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: UI_UTIL_wrap_read_pem_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_util.c
    functionUses: 1
    functionsReached:
    - UI_method_set_ex_data
    - RUN_ONCE
    - UI_create_method
    - UI_method_set_closer
    - OPENSSL_zalloc
    - UI_method_set_writer
    - OPENSSL_free
    - UI_method_set_reader
    - UI_method_set_opener
    - UI_destroy_method
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int
      rwflag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_err.c:43,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/ui/ui_err.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: ossl_err_load_UI_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_UI_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: TTY_get
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_get(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: TTY_set
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_set(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: TTY_get
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_get(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: TTY_set
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_set(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: TTY_get
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_get(tty,data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: TTY_set
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_set(tty,data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:205,1
    - Dst: fputs
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:208,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:208,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 218
    functionName: write_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 2
    functionsReached:
    - fputs
    - fflush
    - UI_get_string_type
    - UI_get0_output_string
    linkageType: ''
    returnType: int
    signature: int write_string(UI *ui, UI_STRING *uis)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UI_get_string_type
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:224,1
    - Dst: fputs
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:226,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:226,1
    - Dst: fputs
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:227,1
    - Dst: UI_get0_action_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:227,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:228,1
    - Dst: read_string_inner
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:229,1
    - Dst: UI_get_input_flags
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:230,1
    - Dst: fputs
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:233,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:233,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:234,1
    - Dst: read_string_inner
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:235,1
    - Dst: UI_get_input_flags
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:236,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:239,1
    - Dst: UI_get0_output_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:239,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:240,1
    - Dst: read_string_inner
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:241,1
    - Dst: UI_get_input_flags
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:242,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:245,1
    - Dst: UI_get0_result_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:245,1
    - Dst: UI_get0_test_string
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:245,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:246,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - ui
    - uis
    argTypes:
    - UI*
    - UI_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 257
    functionName: read_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 2
    functionsReached:
    - UI_get0_result_string
    - UI_get0_output_string
    - UI_get_input_flags
    - fputs
    - fprintf
    - fflush
    - read_string_inner
    - UI_get0_test_string
    - UI_get_string_type
    - strcmp
    - UI_get0_action_string
    linkageType: ''
    returnType: int
    signature: int read_string(UI *ui, UI_STRING *uis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:267,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: read_till_nl
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - strchr
    - fgets
    linkageType: ''
    returnType: int
    signature: int read_till_nl(FILE *in)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pushsig
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:290,1
    - Dst: noecho_console
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:293,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:302,1
    - Dst: ReadConsoleW
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:305,1
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:305,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:314,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:318,1
    - Dst: ReadConsoleA
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:322,1
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:322,1
    - Dst: noecho_fgets
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:335,1
    - Dst: fgets
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:339,1
    - Dst: feof
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:342,1
    - Dst: ferror
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:344,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:346,1
    - Dst: read_till_nl
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:349,1
    - Dst: UI_set_result
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:351,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:358,1
    - Dst: echo_console
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:359,1
    - Dst: popsig
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:363,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:368,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 69
    argCount: 4
    argNames:
    - ui
    - uis
    - echo
    - strip_nl
    argTypes:
    - UI*
    - UI_STRING*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 370
    functionName: read_string_inner
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - read_till_nl
    - fgets
    - ferror
    - popsig
    - GetEnvironmentVariableW
    - OPENSSL_cleanse
    - ReadConsoleA
    - strchr
    - UI_set_result
    - WideCharToMultiByte
    - noecho_console
    - GetStdHandle
    - fprintf
    - echo_console
    - ReadConsoleW
    - feof
    - noecho_fgets
    - pushsig
    linkageType: ''
    returnType: int
    signature: int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:375,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:383,1
    - Dst: GetConsoleMode
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:386,1
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:386,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:390,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:399,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:401,1
    - Dst: TTY_get
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:406,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:406,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:459,1
    - Dst: sys$assign
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:466,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:470,1
    - Dst: sys$qiow
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:475,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 483
    functionName: open_console
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - sys$qiow
    - ERR_raise_data
    - sys$assign
    - GetStdHandle
    - GetConsoleMode
    - fopen
    - fileno
    - TTY_get
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int open_console(UI *ui)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:488,1
    - Dst: TTY_set
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:493,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:493,1
    - Dst: sys$qiow
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:501,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:504,1
    - Dst: SetConsoleMode
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:515,1
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 519
    functionName: noecho_console
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - sys$qiow
    - memcpy
    - ERR_raise_data
    - GetStdHandle
    - TTY_set
    - fileno
    - SetConsoleMode
    linkageType: ''
    returnType: int
    signature: int noecho_console(UI *ui)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:524,1
    - Dst: TTY_set
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:525,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:525,1
    - Dst: sys$qiow
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:533,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:536,1
    - Dst: SetConsoleMode
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:546,1
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 550
    functionName: echo_console
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - sys$qiow
    - memcpy
    - ERR_raise_data
    - GetStdHandle
    - TTY_set
    - fileno
    - SetConsoleMode
    linkageType: ''
    returnType: int
    signature: int echo_console(UI *ui)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:557,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:559,1
    - Dst: sys$dassgn
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:561,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:563,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ui
    argTypes:
    - UI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 571
    functionName: close_console
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached:
    - sys$dassgn
    - ERR_raise_data
    - CRYPTO_THREAD_unlock
    - fclose
    linkageType: ''
    returnType: int
    signature: int close_console(UI *ui)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:583,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:588,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:589,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:590,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:591,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:592,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:593,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:609,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:611,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 619
    functionName: pushsig
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - sigaction
    - memset
    - signal
    linkageType: ''
    returnType: void
    signature: void pushsig(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:624,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:625,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:626,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:627,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:628,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:629,1
    - Dst: sigaction
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:642,1
    - Dst: signal
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 648
    functionName: popsig
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - sigaction
    - signal
    linkageType: ''
    returnType: void
    signature: void popsig(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: recsig
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void recsig(int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getch
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:671,1
    - Dst: getch
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:673,1
    - Dst: GetStdHandle
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:692,1
    - Dst: FlushConsoleInputBuffer
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:693,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ui/ui_openssl.c:696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - size
    - tty
    argTypes:
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 697
    functionName: noecho_fgets
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached:
    - _getch
    - FlushConsoleInputBuffer
    - GetStdHandle
    - getch
    - strlen
    linkageType: ''
    returnType: int
    signature: int noecho_fgets(char *buf, int size, FILE *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: UI_OpenSSL
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - UI_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: UI_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UI_set_default_method(const UI_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: UI_get_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_openssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: UI_null
    functionSourceFile: /src/openssl-3.0.15/crypto/ui/ui_null.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UI_METHOD
    signature: UI_METHOD *UI_null(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:50,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:51,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:52,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:58,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:60,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:63,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:64,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: ec_field_size
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - BN_free
    - EC_GROUP_get_curve
    - BN_num_bits
    - BN_new
    linkageType: ''
    returnType: size_t
    signature: size_t ec_field_size(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - msglen
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: is_all_zeros
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_all_zeros(const unsigned char *msg, size_t msglen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_SM2_Ciphertext
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:90,1
    - Dst: SM2_Ciphertext_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ct
    - ct_size
    - pt_size
    argTypes:
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: ossl_sm2_plaintext_size
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - d2i_SM2_Ciphertext
    - SM2_Ciphertext_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_plaintext_size(const unsigned char *ct, size_t ct_size,\n
      \                           size_t *pt_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_field_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:103,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:103,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:104,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:111,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:112,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:113,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - key
    - digest
    - msg_len
    - ct_size
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: ossl_sm2_ciphertext_size
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - EC_KEY_get0_group
    - ec_field_size
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_ciphertext_size(const EC_KEY *key, const EVP_MD *digest,\n
      \                            size_t msg_len, size_t *ct_size)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:133,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:135,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:136,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:137,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:144,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:146,1
    - Dst: ossl_ec_key_get0_propq
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:154,1
    - Dst: ec_field_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:160,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:164,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:165,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:168,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:172,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:173,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:174,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:175,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:176,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:180,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:184,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:185,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:188,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:192,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:196,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:202,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:206,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:207,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:208,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:209,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:210,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:214,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:215,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:216,1
    - Dst: ossl_ecdh_kdf_X9_63
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:223,1
    - Dst: is_all_zeros
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:227,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:228,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:235,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:237,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:240,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:241,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:242,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:243,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:245,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:251,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:252,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:255,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:258,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:259,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:260,1
    - Dst: i2d_SM2_Ciphertext
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:267,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:275,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:276,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:277,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:278,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:279,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:280,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:281,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:282,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:283,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:284,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 122
    argCount: 6
    argNames:
    - key
    - digest
    - msg
    - msg_len
    - ciphertext_buf
    - ciphertext_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 286
    functionName: ossl_sm2_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EC_POINT_new
    - BN_CTX_start
    - EVP_MD_get0_name
    - ec_field_size
    - ossl_ec_key_get_libctx
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - BN_CTX_get
    - ossl_ecdh_kdf_X9_63
    - EVP_DigestFinal
    - ossl_ec_key_get0_propq
    - BN_bn2binpad
    - memset
    - EC_POINT_free
    - EVP_MD_get_size
    - EVP_DigestInit
    - EVP_MD_CTX_new
    - ERR_raise
    - OPENSSL_free
    - ASN1_OCTET_STRING_new
    - EC_POINT_mul
    - i2d_SM2_Ciphertext
    - EC_POINT_get_affine_coordinates
    - EVP_DigestUpdate
    - EC_KEY_get0_public_key
    - is_all_zeros
    - ASN1_OCTET_STRING_free
    - BN_CTX_free
    - ASN1_OCTET_STRING_set
    - OPENSSL_zalloc
    - BN_CTX_new_ex
    - BN_priv_rand_range_ex
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_encrypt(const EC_KEY *key,\n                     const
      EVP_MD *digest,\n                     const uint8_t *msg, size_t msg_len,\n
      \                    uint8_t *ciphertext_buf, size_t *ciphertext_len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:296,1
    - Dst: ec_field_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:303,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:304,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:310,1
    - Dst: ossl_ec_key_get0_propq
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:311,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:316,1
    - Dst: d2i_SM2_Ciphertext
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:321,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:326,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:334,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:338,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:340,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:344,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:345,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:346,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:349,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:353,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:354,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:355,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:358,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:362,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:364,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:368,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:370,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:370,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:372,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:373,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:377,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:378,1
    - Dst: ossl_ecdh_kdf_X9_63
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:379,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:381,1
    - Dst: is_all_zeros
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:385,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:386,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:393,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:395,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:399,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:400,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:401,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:402,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:403,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:404,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:408,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:409,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:418,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:420,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:421,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:422,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:423,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:424,1
    - Dst: SM2_Ciphertext_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:425,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c:426,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 99
    argCount: 6
    argNames:
    - key
    - digest
    - ciphertext
    - ciphertext_len
    - ptext_buf
    - ptext_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 429
    functionName: ossl_sm2_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_crypt.c
    functionUses: 0
    functionsReached:
    - d2i_SM2_Ciphertext
    - EVP_MD_CTX_free
    - EC_KEY_get0_private_key
    - EC_POINT_new
    - BN_CTX_start
    - ec_field_size
    - SM2_Ciphertext_free
    - ossl_ec_key_get_libctx
    - EC_KEY_get0_group
    - BN_CTX_get
    - ossl_ecdh_kdf_X9_63
    - EVP_DigestFinal
    - ossl_ec_key_get0_propq
    - CRYPTO_memcmp
    - BN_bn2binpad
    - memset
    - EC_POINT_free
    - EVP_MD_get_size
    - EVP_DigestInit
    - EVP_MD_CTX_new
    - ERR_raise
    - OPENSSL_free
    - EC_POINT_mul
    - EC_POINT_get_affine_coordinates
    - EVP_DigestUpdate
    - is_all_zeros
    - EC_POINT_set_affine_coordinates
    - OPENSSL_zalloc
    - BN_CTX_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_decrypt(const EC_KEY *key,\n                     const
      EVP_MD *digest,\n                     const uint8_t *ciphertext, size_t ciphertext_len,\n
      \                    uint8_t *ptext_buf, size_t *ptext_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_err.c:43,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_err.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: ossl_err_load_SM2_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_SM2_strings(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:31,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:49,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:53,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:54,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:56,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:62,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:63,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:64,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:65,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:66,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:69,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:73,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:82,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:89,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:90,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:95,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:99,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:100,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:105,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:109,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:112,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:116,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:117,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:118,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:119,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:120,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:121,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:123,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:124,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:125,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:126,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:127,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:130,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:131,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:132,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:133,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:134,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:142,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:143,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:144,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 77
    argCount: 5
    argNames:
    - out
    - digest
    - id
    - id_len
    - key
    argTypes:
    - uint8_t*
    - EVP_MD*
    - uint8_t*
    - size_t
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 146
    functionName: ossl_sm2_compute_z_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - BN_num_bytes
    - ossl_ec_key_get_libctx
    - EC_KEY_get0_group
    - BN_CTX_get
    - EC_GROUP_get_curve
    - EVP_DigestFinal
    - BN_bn2binpad
    - EVP_DigestInit
    - EC_GROUP_get0_generator
    - EVP_MD_CTX_new
    - ERR_raise
    - OPENSSL_free
    - EC_POINT_get_affine_coordinates
    - EVP_DigestUpdate
    - EC_KEY_get0_public_key
    - OPENSSL_zalloc
    - BN_CTX_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_compute_z_digest(uint8_t *out,\n                              const
      EVP_MD *digest,\n                              const uint8_t *id,\n                              const
      size_t id_len,\n                              const EC_KEY *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:154,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:155,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:159,1
    - Dst: ossl_ec_key_get0_propq
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:163,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:169,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:173,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:175,1
    - Dst: ossl_sm2_compute_z_digest
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:179,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:184,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:185,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:186,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:189,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:195,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:199,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:200,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 6
    argNames:
    - digest
    - key
    - id
    - id_len
    - msg
    - msg_len
    argTypes:
    - EVP_MD*
    - EC_KEY*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 202
    functionName: sm2_compute_msg_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - EVP_DigestInit
    - EVP_MD_CTX_free
    - ossl_sm2_compute_z_digest
    - EVP_DigestFinal
    - BN_bin2bn
    - EVP_MD_CTX_new
    - EVP_MD_get0_name
    - ERR_raise
    - OPENSSL_zalloc
    - ossl_ec_key_get0_propq
    - OPENSSL_free
    - ossl_ec_key_get_libctx
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *sm2_compute_msg_hash(const EVP_MD *digest,\n                                    const
      EC_KEY *key,\n                                    const uint8_t *id,\n                                    const
      size_t id_len,\n                                    const uint8_t *msg, size_t
      msg_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:206,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:207,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:208,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:218,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:220,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:223,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:227,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:228,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:229,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:230,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:231,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:233,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:241,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:242,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:245,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:259,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:260,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:264,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:265,1
    - Dst: BN_mod_add
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:267,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:268,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:273,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:277,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:281,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:284,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:284,1
    - Dst: ossl_ec_group_do_inverse_ord
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:285,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:286,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:287,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:288,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:289,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:294,1
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:297,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:299,1
    - Dst: ECDSA_SIG_set0
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:304,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:310,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:311,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:314,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:315,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 2
    argNames:
    - key
    - e
    argTypes:
    - EC_KEY*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 317
    functionName: sm2_sig_gen
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - ossl_ec_group_do_inverse_ord
    - EC_KEY_get0_private_key
    - EC_POINT_new
    - BN_CTX_start
    - ossl_ec_key_get_libctx
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - BN_CTX_get
    - BN_mod_mul
    - BN_mod_add
    - EC_POINT_free
    - BN_cmp
    - BN_sub
    - BN_new
    - ERR_raise
    - BN_free
    - BN_value_one
    - EC_POINT_mul
    - BN_add
    - EC_POINT_get_affine_coordinates
    - ECDSA_SIG_set0
    - ECDSA_SIG_new
    - BN_CTX_new_ex
    - BN_priv_rand_range_ex
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *sm2_sig_gen(const EC_KEY *key, const BIGNUM *e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:323,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:324,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:331,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:333,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:336,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:340,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:341,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:342,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:344,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:358,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:360,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:360,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:361,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:361,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:362,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:363,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:364,1
    - Dst: BN_mod_add
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:368,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:369,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:373,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:374,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:378,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:378,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:379,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:380,1
    - Dst: BN_mod_add
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:384,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:385,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:389,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:393,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:394,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - key
    - sig
    - e
    argTypes:
    - EC_KEY*
    - ECDSA_SIG*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 396
    functionName: sm2_sig_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_public_key
    - EC_POINT_free
    - BN_mod_add
    - EC_POINT_get_affine_coordinates
    - BN_CTX_free
    - EC_POINT_new
    - BN_CTX_start
    - ERR_raise
    - ECDSA_SIG_get0
    - BN_CTX_new_ex
    - BN_value_one
    - EC_POINT_mul
    - EC_GROUP_get0_order
    - ossl_ec_key_get_libctx
    - EC_KEY_get0_group
    - BN_CTX_get
    - BN_cmp
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int sm2_sig_verify(const EC_KEY *key, const ECDSA_SIG *sig,\n                          const
      BIGNUM *e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sm2_compute_msg_hash
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:407,1
    - Dst: sm2_sig_gen
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:413,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - key
    - digest
    - id
    - id_len
    - msg
    - msg_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 418
    functionName: ossl_sm2_do_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - BN_free
    - sm2_sig_gen
    - sm2_compute_msg_hash
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *ossl_sm2_do_sign(const EC_KEY *key,\n                            const
      EVP_MD *digest,\n                            const uint8_t *id,\n                            const
      size_t id_len,\n                            const uint8_t *msg, size_t msg_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sm2_compute_msg_hash
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:430,1
    - Dst: sm2_sig_verify
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:436,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - key
    - digest
    - sig
    - id
    - id_len
    - msg
    - msg_len
    argTypes:
    - EC_KEY*
    - EVP_MD*
    - ECDSA_SIG*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 441
    functionName: ossl_sm2_do_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - BN_free
    - sm2_sig_verify
    - sm2_compute_msg_hash
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_do_verify(const EC_KEY *key,\n                       const
      EVP_MD *digest,\n                       const ECDSA_SIG *sig,\n                       const
      uint8_t *id,\n                       const size_t id_len,\n                       const
      uint8_t *msg, size_t msg_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:453,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:457,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:459,1
    - Dst: sm2_sig_gen
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:463,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:465,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:469,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:471,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:479,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - dgst
    - dgstlen
    - sig
    - siglen
    - eckey
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 482
    functionName: ossl_sm2_internal_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - sm2_sig_gen
    - i2d_ECDSA_SIG
    - ERR_raise
    - ECDSA_SIG_free
    - BN_free
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_internal_sign(const unsigned char *dgst, int dgstlen,\n
      \                          unsigned char *sig, unsigned int *siglen,\n                           EC_KEY
      *eckey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:495,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:497,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:500,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:501,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:505,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:506,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:507,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:511,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:513,1
    - Dst: sm2_sig_verify
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:517,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:520,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:521,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c:522,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - dgst
    - dgstlen
    - sig
    - sig_len
    - eckey
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 524
    functionName: ossl_sm2_internal_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_sign.c
    functionUses: 0
    functionsReached:
    - d2i_ECDSA_SIG
    - ECDSA_SIG_new
    - BN_bin2bn
    - i2d_ECDSA_SIG
    - ERR_raise
    - ECDSA_SIG_free
    - BN_free
    - OPENSSL_free
    - sm2_sig_verify
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ossl_sm2_internal_verify(const unsigned char *dgst, int dgstlen,\n
      \                            const unsigned char *sig, int sig_len,\n                             EC_KEY
      *eckey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:30,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:31,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:33,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:38,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:39,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:41,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:41,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:43,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/sm2/sm2_key.c:49,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 51
    functionName: ossl_sm2_key_private_check
    functionSourceFile: /src/openssl-3.0.15/crypto/sm2/sm2_key.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_sub_word
    - EC_KEY_get0_private_key
    - ERR_raise
    - BN_free
    - BN_value_one
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_sm2_key_private_check(const EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: PEM_SignInit
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: PEM_SignUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: "int PEM_SignUpdate(EVP_MD_CTX *ctx,\n                   const unsigned
      char *data, unsigned int count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:35,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:37,1
    - Dst: EVP_SignFinal
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:41,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_sign.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: PEM_SignFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_sign.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_PKEY_get_size
    - EVP_SignFinal
    - ERR_raise
    - EVP_EncodeBlock
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                  unsigned
      int *siglen, EVP_PKEY *pkey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:43,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:47,1
    - Dst: OSSL_DECODER_CTX_set_pem_password_cb
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:56,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:59,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:60,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:61,1
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:61,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:62,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:65,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:65,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:67,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:68,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:71,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:76,1
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:82,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:83,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:85,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:90,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:95,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 7
    argNames:
    - bp
    - x
    - cb
    - u
    - libctx
    - propq
    - selection
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 97
    functionName: pem_read_bio_key_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_eof
    - evp_keymgmt_util_has
    - ERR_GET_REASON
    - OSSL_DECODER_CTX_new_for_pkey
    - BIO_tell
    - ERR_peek_error
    - ERR_set_mark
    - ERR_raise
    - EVP_PKEY_free
    - OSSL_DECODER_from_bio
    - OSSL_DECODER_CTX_set_pem_password_cb
    - ERR_pop_to_mark
    - OSSL_DECODER_CTX_free
    - ERR_clear_last_mark
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *pem_read_bio_key_decoder(BIO *bp, EVP_PKEY **x,\n                                          pem_password_cb
      *cb, void *u,\n                                          OSSL_LIB_CTX *libctx,\n
      \                                         const char *propq,\n                                          int
      selection)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:112,1
    - Dst: PEM_bytes_read_bio_secmem
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:114,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:117,1
    - Dst: PEM_bytes_read_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:125,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:128,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:132,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:135,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:138,1
    - Dst: evp_pkcs82pkey_legacy
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:140,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:142,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:145,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:146,1
    - Dst: d2i_X509_SIG
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:152,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:155,1
    - Dst: PEM_def_callback
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:159,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:160,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:163,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:164,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:165,1
    - Dst: evp_pkcs82pkey_legacy
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:168,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:170,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:173,1
    - Dst: ossl_pem_check_suffix
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:174,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:176,1
    - Dst: ossl_d2i_PrivateKey_legacy
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:179,1
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:184,1
    - Dst: ossl_pem_check_suffix
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:186,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:188,1
    - Dst: EVP_PKEY_set_type_str
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:191,1
    - Dst: EVP_PKEY*::ameth::param_decode
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:193,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:194,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:199,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:207,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:209,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:210,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 7
    argNames:
    - bp
    - x
    - cb
    - u
    - libctx
    - propq
    - selection
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 212
    functionName: pem_read_bio_key_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - ossl_pem_check_suffix
    - d2i_X509_SIG
    - PEM_def_callback
    - OPENSSL_cleanse
    - PKCS8_PRIV_KEY_INFO_free
    - X509_SIG_free
    - ossl_d2i_PrivateKey_legacy
    - PEM_bytes_read_bio_secmem
    - evp_pkcs82pkey_legacy
    - OPENSSL_secure_free
    - ERR_peek_last_error
    - EVP_PKEY*::ameth::param_decode
    - ossl_d2i_PUBKEY_legacy
    - d2i_PKCS8_PRIV_KEY_INFO
    - ERR_raise
    - EVP_PKEY_new
    - strcmp
    - EVP_PKEY_set_type_str
    - PEM_bytes_read_bio
    - ERR_set_mark
    - EVP_PKEY_free
    - EVP_PKEY_asn1_find_str
    - ERR_pop_to_mark
    - OPENSSL_secure_clear_free
    - cb
    - ERR_clear_last_mark
    - PKCS8_decrypt
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *pem_read_bio_key_legacy(BIO *bp, EVP_PKEY **x,\n                                         pem_password_cb
      *cb, void *u,\n                                         OSSL_LIB_CTX *libctx,\n
      \                                        const char *propq,\n                                         int
      selection)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:225,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:226,1
    - Dst: BIO_f_readbuffer
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:226,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:229,1
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:230,1
    - Dst: ossl_pw_set_pem_password_cb
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:236,1
    - Dst: ossl_pw_enable_passphrase_caching
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:237,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:240,1
    - Dst: pem_read_bio_key_decoder
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:241,1
    - Dst: BIO_seek
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:244,1
    - Dst: pem_read_bio_key_legacy
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:245,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:249,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:251,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:254,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:256,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 7
    argNames:
    - bp
    - x
    - cb
    - u
    - libctx
    - propq
    - selection
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 260
    functionName: pem_read_bio_key
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - ossl_pw_set_pem_password_cb
    - BIO_free
    - BIO_tell
    - ERR_set_mark
    - BIO_f_readbuffer
    - pem_read_bio_key_legacy
    - ERR_pop_to_mark
    - ossl_pw_enable_passphrase_caching
    - ossl_pw_clear_passphrase_data
    - ERR_clear_last_mark
    - pem_read_bio_key_decoder
    - BIO_seek
    - BIO_pop
    - BIO_push
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *pem_read_bio_key(BIO *bp, EVP_PKEY **x,\n                                  pem_password_cb
      *cb, void *u,\n                                  OSSL_LIB_CTX *libctx,\n                                  const
      char *propq,\n                                  int selection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_read_bio_key
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - bp
    - x
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: PEM_read_bio_PUBKEY_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - pem_read_bio_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_bio_PUBKEY_ex(BIO *bp, EVP_PKEY **x,\n                                 pem_password_cb
      *cb, void *u,\n                                 OSSL_LIB_CTX *libctx, const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PUBKEY_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: PEM_read_bio_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - PEM_read_bio_PUBKEY_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:284,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:284,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:285,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:288,1
    - Dst: PEM_read_bio_PUBKEY_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:289,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - fp
    - x
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 277
    functionDepth: 5
    functionLinenumber: 277
    functionLinenumberEnd: 292
    functionName: PEM_read_PUBKEY_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PUBKEY_ex
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_PUBKEY_ex(FILE *fp, EVP_PKEY **x,\n                             pem_password_cb
      *cb, void *u,\n                             OSSL_LIB_CTX *libctx, const char
      *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PUBKEY_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: PEM_read_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_read_PUBKEY_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *PEM_read_PUBKEY(FILE *fp, EVP_PKEY **x, pem_password_cb *cb,
      void *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_read_bio_key
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - bp
    - x
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 4
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: PEM_read_bio_PrivateKey_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - pem_read_bio_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_bio_PrivateKey_ex(BIO *bp, EVP_PKEY **x,\n                                     pem_password_cb
      *cb, void *u,\n                                     OSSL_LIB_CTX *libctx, const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 5
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: PEM_read_bio_PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - PEM_read_bio_PrivateKey_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPLEMENT_PEM_provided_write_body_vars
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:317,1
    - Dst: IMPLEMENT_PEM_provided_write_body_pass
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:319,1
    - Dst: IMPLEMENT_PEM_provided_write_body_main
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:320,1
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:324,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 327
    functionName: PEM_write_cb_ex_fnsig
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - IMPLEMENT_PEM_provided_write_body_main
    - PEM_write_bio_PKCS8PrivateKey
    - IMPLEMENT_PEM_provided_write_body_pass
    - PEM_write_bio_PrivateKey_traditional
    - IMPLEMENT_PEM_provided_write_body_vars
    linkageType: ''
    returnType: void
    signature: void PEM_write_cb_ex_fnsig(PrivateKey, EVP_PKEY, BIO, write_bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: PEM_write_cb_fnsig
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey_ex
    linkageType: ''
    returnType: void
    signature: void PEM_write_cb_fnsig(PrivateKey, EVP_PKEY, BIO, write_bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_assigned
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:351,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:352,1
    - Dst: evp_pkey_copy_downgraded
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:353,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:357,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:358,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:361,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:362,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 7
    argNames:
    - bp
    - x
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 367
    functionName: PEM_write_bio_PrivateKey_traditional
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - evp_pkey_is_assigned
    - PEM_ASN1_write_bio
    - BIO_snprintf
    - evp_pkey_is_provided
    - ERR_raise
    - EVP_PKEY_free
    - evp_pkey_copy_downgraded
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x,\n
      \                                        const EVP_CIPHER *enc,\n                                         const
      unsigned char *kstr, int klen,\n                                         pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - num
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: no_password_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int no_password_cb(char *buf, int num, int rwflag, void *userdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_read_bio_key
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - x
    - libctx
    - propq
    argTypes:
    - BIO*
    - EVP_PKEY**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 383
    functionName: PEM_read_bio_Parameters_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - pem_read_bio_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x,\n                                     OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_Parameters_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: PEM_read_bio_Parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - PEM_read_bio_Parameters_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPLEMENT_PEM_provided_write_body_vars
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:393,1
    - Dst: IMPLEMENT_PEM_provided_write_body_main
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:395,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:401,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: PEM_write_fnsig
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - IMPLEMENT_PEM_provided_write_body_main
    - BIO_snprintf
    - IMPLEMENT_PEM_provided_write_body_vars
    - PEM_ASN1_write_bio
    linkageType: ''
    returnType: void
    signature: void PEM_write_fnsig(Parameters, EVP_PKEY, BIO, write_bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:414,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:414,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:415,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:418,1
    - Dst: PEM_read_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:419,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - fp
    - x
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: PEM_read_PrivateKey_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - PEM_read_bio_PrivateKey_ex
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_PrivateKey_ex(FILE *fp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                 void *u, OSSL_LIB_CTX *libctx,\n                                 const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 6
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: PEM_read_PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 1
    functionsReached:
    - PEM_read_PrivateKey_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:435,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:436,1
    - Dst: PEM_write_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:439,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 443
    functionName: PEM_write_cb_ex_fnsig
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - PEM_write_bio_PrivateKey_ex
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void PEM_write_cb_ex_fnsig(PrivateKey, EVP_PKEY, FILE, write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_pkey.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 448
    functionName: PEM_write_cb_fnsig
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pkey.c
    functionUses: 0
    functionsReached:
    - PEM_write_PrivateKey_ex
    linkageType: ''
    returnType: void
    signature: void PEM_write_cb_fnsig(PrivateKey, EVP_PKEY, FILE, write)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:58,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:59,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - rsa
    argTypes:
    - EVP_PKEY*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: pkey_get_rsa
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_RSA
    - RSA_free
    linkageType: ''
    returnType: RSA
    signature: RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:73,1
    - Dst: pkey_get_rsa
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - rsa
    - cb
    - u
    argTypes:
    - BIO*
    - RSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: PEM_read_bio_RSAPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - pkey_get_rsa
    linkageType: ''
    returnType: RSA
    signature: "RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **rsa, pem_password_cb
      *cb,\n                                void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:82,1
    - Dst: pkey_get_rsa
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - rsa
    - cb
    - u
    argTypes:
    - FILE*
    - RSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: PEM_read_RSAPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_PrivateKey
    - pkey_get_rsa
    linkageType: ''
    returnType: RSA
    signature: RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb,
      void *u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:98,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:99,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - dsa
    argTypes:
    - EVP_PKEY*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: pkey_get_dsa
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_DSA
    - DSA_free
    linkageType: ''
    returnType: DSA
    signature: DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:113,1
    - Dst: pkey_get_dsa
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - dsa
    - cb
    - u
    argTypes:
    - BIO*
    - DSA**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 6
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: PEM_read_bio_DSAPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - pkey_get_dsa
    linkageType: ''
    returnType: DSA
    signature: "DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb
      *cb,\n                                void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:123,1
    - Dst: pkey_get_dsa
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: PEM_read_DSAPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_PrivateKey
    - pkey_get_dsa
    linkageType: ''
    returnType: DSA
    signature: DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb,
      void *u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:139,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:140,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - eckey
    argTypes:
    - EVP_PKEY*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: pkey_get_eckey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_EC_KEY
    - EC_KEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:154,1
    - Dst: pkey_get_eckey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - bp
    - key
    - cb
    - u
    argTypes:
    - BIO*
    - EC_KEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: PEM_read_bio_ECPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - pkey_get_eckey
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_PrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:170,1
    - Dst: pkey_get_eckey
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - eckey
    - cb
    - u
    argTypes:
    - FILE*
    - EC_KEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: PEM_read_ECPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_read_PrivateKey
    - pkey_get_eckey
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:192,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:196,1
    - Dst: d2i_DHxparams
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:197,1
    - Dst: d2i_DHparams
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:202,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - DH**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 206
    functionName: PEM_read_bio_DHparams
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - PEM_bytes_read_bio
    - d2i_DHxparams
    - ERR_raise
    - d2i_DHparams
    - OPENSSL_free
    - strcmp
    linkageType: ''
    returnType: DH
    signature: DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void
      *u)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:214,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:214,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:215,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:218,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:219,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_all.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - DH**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: PEM_read_DHparams
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_all.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - PEM_read_bio_DHparams
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: DH
    signature: DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PEM_bytes_read_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_oth.c:28,1
    - Dst: d2i
      Src: /src/openssl-3.0.15/crypto/pem/pem_oth.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_oth.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: PEM_ASN1_read_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_oth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - PEM_bytes_read_bio
    - d2i
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: "void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp,
      void **x,\n                        pem_password_cb *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:45,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: PEM_write_bio_PKCS8PrivateKey_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, const EVP_PKEY *x,
      int nid,\n                                      const char *kstr, int klen,\n
      \                                     pem_password_cb *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:52,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: PEM_write_bio_PKCS8PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 1
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_PKCS8PrivateKey(BIO *bp, const EVP_PKEY *x, const
      EVP_CIPHER *enc,\n                                  const char *kstr, int klen,\n
      \                                 pem_password_cb *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:59,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: i2d_PKCS8PrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                            const char *kstr, int klen,\n                            pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:66,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: i2d_PKCS8PrivateKey_nid_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid,\n
      \                               const char *kstr, int klen,\n                                pem_password_cb
      *cb, void *u)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:76,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:90,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:102,1
    - Dst: OSSL_ENCODER_CTX_set_cipher
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:106,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:106,1
    - Dst: OSSL_ENCODER_CTX_set_passphrase
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:118,1
    - Dst: OSSL_ENCODER_CTX_set_pem_password_cb
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:121,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:125,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:132,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:133,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:140,1
    - Dst: PKCS8_encrypt
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:146,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:148,1
    - Dst: i2d_PKCS8_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:152,1
    - Dst: PEM_write_bio_PKCS8
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:154,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:155,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:158,1
    - Dst: PEM_write_bio_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:160,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:163,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:165,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 10
    argNames:
    - bp
    - x
    - isder
    - nid
    - enc
    - kstr
    - klen
    - cb
    - u
    - propq
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - int
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 167
    functionName: do_pk8pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 4
    functionsReached:
    - OPENSSL_cleanse
    - PEM_write_bio_PKCS8
    - PKCS8_PRIV_KEY_INFO_free
    - X509_SIG_free
    - strlen
    - OSSL_ENCODER_CTX_set_passphrase
    - PEM_write_bio_PKCS8_PRIV_KEY_INFO
    - i2d_PKCS8_PRIV_KEY_INFO_bio
    - OSSL_ENCODER_CTX_set_pem_password_cb
    - i2d_PKCS8_bio
    - ERR_raise
    - OSSL_ENCODER_CTX_free
    - EVP_CIPHER_get0_name
    - PKCS8_encrypt
    - OSSL_ENCODER_CTX_new_for_pkey
    - OSSL_ENCODER_to_bio
    - OSSL_ENCODER_CTX_get_num_encoders
    - EVP_PKEY2PKCS8
    - cb
    - OSSL_ENCODER_CTX_set_cipher
    linkageType: ''
    returnType: int
    signature: "int do_pk8pkey(BIO *bp, const EVP_PKEY *x, int isder, int nid,\n                      const
      EVP_CIPHER *enc, const char *kstr, int klen,\n                      pem_password_cb
      *cb, void *u, const char *propq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS8_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:178,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:182,1
    - Dst: PEM_def_callback
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:186,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:187,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:190,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:191,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:192,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:195,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:196,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - bp
    - x
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 204
    functionName: d2i_PKCS8PrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - d2i_PKCS8_bio
    - PEM_def_callback
    - OPENSSL_cleanse
    - ERR_raise
    - PKCS8_PRIV_KEY_INFO_free
    - X509_SIG_free
    - EVP_PKEY_free
    - cb
    - EVP_PKCS82PKEY
    - PKCS8_decrypt
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                  void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:212,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: i2d_PKCS8PrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                           const char *kstr, int klen,\n                           pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:219,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: i2d_PKCS8PrivateKey_nid_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid,\n
      \                              const char *kstr, int klen,\n                               pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:226,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: PEM_write_PKCS8PrivateKey_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_write_PKCS8PrivateKey_nid(FILE *fp, const EVP_PKEY *x, int
      nid,\n                                  const char *kstr, int klen,\n                                  pem_password_cb
      *cb, void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_pk8pkey_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:233,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: PEM_write_PKCS8PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - do_pk8pkey_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_write_PKCS8PrivateKey(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER
      *enc,\n                              const char *kstr, int klen,\n                              pem_password_cb
      *cb, void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:244,1
    - Dst: do_pk8pkey
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:247,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 10
    argNames:
    - fp
    - x
    - isder
    - nid
    - enc
    - kstr
    - klen
    - cb
    - u
    - propq
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - int
    - EVP_CIPHER*
    - char*
    - int
    - pem_password_cb*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: do_pk8pkey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 4
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - do_pk8pkey
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int do_pk8pkey_fp(FILE *fp, const EVP_PKEY *x, int isder, int nid,\n
      \                        const EVP_CIPHER *enc, const char *kstr, int klen,\n
      \                        pem_password_cb *cb, void *u, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:259,1
    - Dst: d2i_PKCS8PrivateKey_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:262,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_pk8.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - fp
    - x
    - cb
    - u
    argTypes:
    - FILE*
    - EVP_PKEY**
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: d2i_PKCS8PrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_pk8.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - d2i_PKCS8PrivateKey_bio
    - BIO_free
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb
      *cb,\n                                 void *u)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:235,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:241,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:241,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:256,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:272,1
    - Dst: PEM_proc_type
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:278,1
    - Dst: PEM_dek_info
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:279,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:279,1
    - Dst: PEM_write_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:283,1
    - Dst: PEM_write_bio_RSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:289,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:290,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:297,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_info.c:309,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 7
    argNames:
    - bp
    - xi
    - enc
    - kstr
    - klen
    - cb
    - u
    argTypes:
    - BIO*
    - X509_INFO*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 311
    functionName: PEM_X509_INFO_write_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_info.c
    functionUses: 0
    functionsReached:
    - PEM_dek_info
    - PEM_write_bio_X509
    - PEM_write_bio
    - PEM_write_bio_RSAPrivateKey
    - OPENSSL_cleanse
    - ERR_raise
    - EVP_CIPHER_get0_name
    - PEM_proc_type
    - strlen
    - EVP_PKEY_get0_RSA
    - EVP_CIPHER_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int PEM_X509_INFO_write_bio(BIO *bp, const X509_INFO *xi, EVP_CIPHER
      *enc,\n                            const unsigned char *kstr, int klen,\n                            pem_password_cb
      *cb, void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/pem/pem_err.c:70,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/pem/pem_err.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: ossl_err_load_PEM_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_PEM_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - asn1
    - ','
    - pq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: IMPLEMENT_PEM_provided_write_body_vars
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_body_vars(type, asn1, pq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: IMPLEMENT_PEM_provided_write_body_pass
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_body_pass()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - outtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: IMPLEMENT_PEM_provided_write_body_main
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_body_main(type, outtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - asn1
    - ','
    - writename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: IMPLEMENT_PEM_provided_write_body_fallback
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_PEM_provided_write_body_fallback(str, asn1,          \\\n
      \                                                   writename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - asn1
    - ','
    - writename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: IMPLEMENT_PEM_provided_write_body_fallback_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_PEM_provided_write_body_fallback_cb(str, asn1,       \\\n
      \                                                      writename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - ','
    - OUTTYPE
    - ','
    - outtype
    - ','
    - writename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: IMPLEMENT_PEM_provided_write_to
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_PEM_provided_write_to(name, TYPE, type, str, asn1,   \\\n
      \                                        OUTTYPE, outtype, writename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - ','
    - OUTTYPE
    - ','
    - outtype
    - ','
    - writename
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: IMPLEMENT_PEM_provided_write_cb_to
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "IMPLEMENT_PEM_provided_write_cb_to(name, TYPE, type, str, asn1, \\\n
      \                                           OUTTYPE, outtype, writename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: IMPLEMENT_PEM_provided_write_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_fp(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: IMPLEMENT_PEM_provided_write_cb_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_cb_fp(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: IMPLEMENT_PEM_provided_write_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_bio(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: IMPLEMENT_PEM_provided_write_cb_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_cb_bio(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: IMPLEMENT_PEM_provided_write
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: IMPLEMENT_PEM_provided_write_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_write_cb(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: IMPLEMENT_PEM_provided_rw
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_rw(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - TYPE
    - ','
    - type
    - ','
    - str
    - ','
    - asn1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: IMPLEMENT_PEM_provided_rw_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_PEM_provided_rw_cb(name, TYPE, type, str, asn1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: read_ledword
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int read_ledword(const unsigned char **in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - nbyte
    - r
    argTypes:
    - unsigned char**
    - unsigned int
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: read_lebn
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    linkageType: ''
    returnType: int
    signature: int read_lebn(const unsigned char **in, unsigned int nbyte, BIGNUM
      **r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - isdss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: isdss_to_evp_type
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isdss_to_evp_type(isdss)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:82,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:86,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:89,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:91,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:96,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:98,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:107,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:111,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:117,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - key
    - evp_type
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 119
    functionName: evp_pkey_new0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set1_DSA
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_set1_RSA
    - RSA_free
    - DSA_free
    - ossl_assert
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *evp_pkey_new0_key(void *key, int evp_type)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:191,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:196,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:197,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:204,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:218,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:242,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 6
    argNames:
    - in
    - length
    - pmagic
    - pbitlen
    - pisdss
    - pispub
    argTypes:
    - unsigned char**
    - unsigned int
    - unsigned int*
    - unsigned int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 247
    functionName: ossl_do_blob_header
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - read_ledword
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_do_blob_header(const unsigned char **in, unsigned int length,\n
      \                       unsigned int *pmagic, unsigned int *pbitlen,\n                        int
      *pisdss, int *pispub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - bitlen
    - isdss
    - ispub
    argTypes:
    - unsigned
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 280
    functionName: ossl_blob_length
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ossl_blob_length(unsigned bitlen, int isdss, int ispub)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_do_blob_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:289,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:290,1
    - Dst: ossl_blob_length
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:294,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:295,1
    - Dst: ossl_b2i_RSA_after_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:299,1
    - Dst: ossl_b2i_DSA_after_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - in
    - length
    - isdss
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 311
    functionName: do_b2i_key
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - ossl_b2i_RSA_after_header
    - ERR_raise
    - ossl_blob_length
    - ossl_b2i_DSA_after_header
    - ossl_do_blob_header
    linkageType: ''
    returnType: void
    signature: "void *do_b2i_key(const unsigned char **in, unsigned int length,\n
      \                       int *isdss, int *ispub)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_b2i_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:316,1
    - Dst: evp_pkey_new0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:318,1
    - Dst: isdss_to_evp_type
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - length
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: ossl_b2i
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - isdss_to_evp_type
    - do_b2i_key
    - evp_pkey_new0_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ossl_b2i(const unsigned char **in, unsigned int length, int
      *ispub)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:330,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:331,1
    - Dst: ossl_do_blob_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:335,1
    - Dst: ossl_blob_length
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:338,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:340,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:343,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:345,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:349,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:350,1
    - Dst: ossl_b2i_RSA_after_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:355,1
    - Dst: ossl_b2i_DSA_after_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:358,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:362,1
    - Dst: evp_pkey_new0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:366,1
    - Dst: isdss_to_evp_type
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:366,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:368,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - in
    - ispub
    argTypes:
    - BIO*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 370
    functionName: ossl_b2i_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - ossl_b2i_RSA_after_header
    - BIO_read
    - OPENSSL_malloc
    - isdss_to_evp_type
    - ERR_raise
    - ossl_blob_length
    - evp_pkey_new0_key
    - OPENSSL_free
    - ossl_b2i_DSA_after_header
    - ossl_do_blob_header
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ossl_b2i_bio(BIO *in, int *ispub)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:383,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:386,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:389,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:392,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:396,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:399,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:403,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:406,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:409,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:412,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:415,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:418,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:421,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:429,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:430,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:431,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:432,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:433,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:434,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:435,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:436,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 3
    argNames:
    - in
    - bitlen
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 438
    functionName: ossl_b2i_DSA_after_header
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 2
    functionsReached:
    - read_lebn
    - BN_new
    - DSA_set0_key
    - DSA_set0_pqg
    - BN_CTX_new
    - ERR_raise
    - BN_free
    - DSA_new
    - BN_set_flags
    - BN_mod_exp
    - DSA_free
    - BN_CTX_free
    linkageType: ''
    returnType: DSA
    signature: "DSA *ossl_b2i_DSA_after_header(const unsigned char **in, unsigned
      int bitlen,\n                               int ispub)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:451,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:454,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:457,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:457,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:459,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:462,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:464,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:466,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:468,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:470,1
    - Dst: read_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:472,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:474,1
    - Dst: RSA_set0_crt_params
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:477,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:481,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:488,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:489,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:490,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:491,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:492,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:493,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:494,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:495,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:496,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:497,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 3
    argNames:
    - in
    - bitlen
    - ispub
    argTypes:
    - unsigned char**
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 499
    functionName: ossl_b2i_RSA_after_header
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 2
    functionsReached:
    - read_lebn
    - BN_new
    - RSA_set0_factors
    - RSA_new
    - ERR_raise
    - BN_free
    - RSA_set0_key
    - RSA_free
    - BN_set_word
    - RSA_set0_crt_params
    - read_ledword
    linkageType: ''
    returnType: RSA
    signature: "RSA *ossl_b2i_RSA_after_header(const unsigned char **in, unsigned
      int bitlen,\n                               int ispub)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_b2i
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: b2i_PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - ossl_b2i
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_b2i
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: b2i_PublicKey
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - ossl_b2i
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_b2i_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 520
    functionName: b2i_PrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - ossl_b2i_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PrivateKey_bio(BIO *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_b2i_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: b2i_PublicKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - ossl_b2i_bio
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PublicKey_bio(BIO *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - dw
    argTypes:
    - unsigned char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 538
    functionName: write_ledword
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_ledword(unsigned char **out, unsigned int dw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - bn
    - len
    argTypes:
    - unsigned char**
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: write_lebn
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BN_bn2lebinpad
    linkageType: ''
    returnType: void
    signature: void write_lebn(unsigned char **out, const BIGNUM *bn, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:560,1
    - Dst: check_bitlen_rsa
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:561,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:561,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:564,1
    - Dst: check_bitlen_dsa
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:565,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:565,1
    - Dst: ossl_blob_length
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:573,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:579,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:580,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:594,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:595,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:596,1
    - Dst: write_rsa
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:598,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:598,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:601,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - out
    - pk
    - ispub
    argTypes:
    - unsigned char**
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 607
    functionName: do_i2b
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - write_ledword
    - check_bitlen_dsa
    - OPENSSL_malloc
    - ERR_raise
    - ossl_blob_length
    - EVP_PKEY_get0_RSA
    - write_rsa
    - check_bitlen_rsa
    - EVP_PKEY_is_a
    linkageType: ''
    returnType: int
    signature: int do_i2b(unsigned char **out, const EVP_PKEY *pk, int ispub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:614,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:617,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - out
    - pk
    - ispub
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 622
    functionName: do_i2b_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - OPENSSL_free
    - do_i2b
    linkageType: ''
    returnType: int
    signature: int do_i2b_bio(BIO *out, const EVP_PKEY *pk, int ispub)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:629,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:630,1
    - Dst: RSA_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:632,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:633,1
    - Dst: RSA_get0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:646,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:647,1
    - Dst: RSA_get0_factors
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:649,1
    - Dst: RSA_get0_crt_params
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:650,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:651,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:652,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:653,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:654,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:655,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:660,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - rsa
    - ispub
    - pmagic
    argTypes:
    - RSA*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 662
    functionName: check_bitlen_rsa
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - RSA_get0_factors
    - BN_num_bits
    - ERR_raise
    - RSA_bits
    - RSA_get0_crt_params
    - BN_num_bytes
    - RSA_size
    - RSA_get0_key
    linkageType: ''
    returnType: int
    signature: int check_bitlen_rsa(const RSA *rsa, int ispub, unsigned int *pmagic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:669,1
    - Dst: RSA_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:670,1
    - Dst: RSA_get0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:671,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:672,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:673,1
    - Dst: RSA_get0_factors
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:676,1
    - Dst: RSA_get0_crt_params
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:677,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:678,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:679,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:680,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:681,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:682,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - out
    - rsa
    - ispub
    argTypes:
    - unsigned char**
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 684
    functionName: write_rsa
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - RSA_get0_factors
    - write_lebn
    - RSA_bits
    - RSA_get0_crt_params
    - RSA_size
    - RSA_get0_key
    linkageType: ''
    returnType: void
    signature: void write_rsa(unsigned char **out, const RSA *rsa, int ispub)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_pqg
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:693,1
    - Dst: DSA_get0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:694,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:695,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:696,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:697,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:700,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:704,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - dsa
    - ispub
    - pmagic
    argTypes:
    - DSA*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 713
    functionName: check_bitlen_dsa
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - DSA_get0_pqg
    - ERR_raise
    - DSA_get0_key
    linkageType: ''
    returnType: int
    signature: int check_bitlen_dsa(const DSA *dsa, int ispub, unsigned int *pmagic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_pqg
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:721,1
    - Dst: DSA_get0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:722,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:723,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:724,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:725,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:726,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:728,1
    - Dst: write_lebn
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:730,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - out
    - dsa
    - ispub
    argTypes:
    - unsigned char**
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 735
    functionName: write_dsa
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - DSA_get0_pqg
    - DSA_get0_key
    - write_lebn
    - BN_num_bytes
    - memset
    linkageType: ''
    returnType: void
    signature: void write_dsa(unsigned char **out, const DSA *dsa, int ispub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pk
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: i2b_PrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_i2b_bio
    linkageType: ''
    returnType: int
    signature: int i2b_PrivateKey_bio(BIO *out, const EVP_PKEY *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pk
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: i2b_PublicKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_i2b_bio
    linkageType: ''
    returnType: int
    signature: int i2b_PublicKey_bio(BIO *out, const EVP_PKEY *pk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:757,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:762,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:765,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:767,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:775,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:776,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:777,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:778,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:784,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 790
    functionName: ossl_do_PVK_header
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - read_ledword
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_do_PVK_header(const unsigned char **in, unsigned int length,\n
      \                      int skip_magic,\n                       unsigned int
      *psaltlen, unsigned int *pkeylen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:798,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:802,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:806,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:807,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:808,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:809,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:814,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:815,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 7
    argNames:
    - key
    - salt
    - saltlen
    - pass
    - passlen
    - libctx
    - propq
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 817
    functionName: derive_pvk_key
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - EVP_DigestFinal_ex
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int derive_pvk_key(unsigned char *key,\n                          const
      unsigned char *salt, unsigned int saltlen,\n                          const
      unsigned char *pass, int passlen,\n                          OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:833,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:836,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:848,1
    - Dst: PEM_def_callback
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:850,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:852,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:855,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:857,1
    - Dst: derive_pvk_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:860,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:865,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:868,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:873,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:875,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:877,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:879,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:881,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:884,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:885,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:887,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:889,1
    - Dst: read_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:891,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:893,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:899,1
    - Dst: do_b2i_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:904,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:906,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:908,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:911,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:912,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 81
    argCount: 9
    argNames:
    - in
    - saltlen
    - keylen
    - cb
    - u
    - isdss
    - ispub
    - libctx
    - propq
    argTypes:
    - unsigned char**
    - unsigned int
    - unsigned int
    - pem_password_cb*
    - void*
    - int*
    - int*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 915
    functionName: do_PVK_body_key
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptFinal_ex
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - derive_pvk_key
    - memcpy
    - OPENSSL_malloc
    - PEM_def_callback
    - do_b2i_key
    - OPENSSL_cleanse
    - ERR_raise
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - cb
    - memset
    - EVP_CIPHER_fetch
    - read_ledword
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: void
    signature: "void *do_PVK_body_key(const unsigned char **in,\n                             unsigned
      int saltlen, unsigned int keylen,\n                             pem_password_cb
      *cb, void *u,\n                             int *isdss, int *ispub,\n                             OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:927,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:928,1
    - Dst: ossl_do_PVK_header
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:933,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:936,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:938,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:942,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:943,1
    - Dst: do_PVK_body_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:946,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:949,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 7
    argNames:
    - in
    - cb
    - u
    - isdss
    - ispub
    - libctx
    - propq
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    - int*
    - int*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 951
    functionName: do_PVK_key_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_clear_free
    - do_PVK_body_key
    - ossl_do_PVK_header
    linkageType: ''
    returnType: void
    signature: "void *do_PVK_key_bio(BIO *in, pem_password_cb *cb, void *u,\n                            int
      *isdss, int *ispub,\n                            OSSL_LIB_CTX *libctx, const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_PVK_key_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - in
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 954
    functionDepth: 5
    functionLinenumber: 954
    functionLinenumberEnd: 961
    functionName: b2i_DSA_PVK_bio_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_PVK_key_bio
    linkageType: ''
    returnType: DSA
    signature: "DSA *b2i_DSA_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u,\n                        OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b2i_DSA_PVK_bio_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - cb
    - u
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 963
    functionDepth: 6
    functionLinenumber: 963
    functionLinenumberEnd: 966
    functionName: b2i_DSA_PVK_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - b2i_DSA_PVK_bio_ex
    linkageType: ''
    returnType: DSA
    signature: DSA *b2i_DSA_PVK_bio(BIO *in, pem_password_cb *cb, void *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_PVK_key_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - in
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 969
    functionDepth: 5
    functionLinenumber: 969
    functionLinenumberEnd: 976
    functionName: b2i_RSA_PVK_bio_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_PVK_key_bio
    linkageType: ''
    returnType: RSA
    signature: "RSA *b2i_RSA_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u,\n                        OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b2i_RSA_PVK_bio_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - cb
    - u
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 6
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: b2i_RSA_PVK_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - b2i_RSA_PVK_bio_ex
    linkageType: ''
    returnType: RSA
    signature: RSA *b2i_RSA_PVK_bio(BIO *in, pem_password_cb *cb, void *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_PVK_key_bio
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:988,1
    - Dst: evp_pkey_new0_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:990,1
    - Dst: isdss_to_evp_type
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - in
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 991
    functionName: b2i_PVK_bio_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - do_PVK_key_bio
    - isdss_to_evp_type
    - evp_pkey_new0_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u,\n
      \                        OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b2i_PVK_bio_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - cb
    - u
    argTypes:
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 993
    functionDepth: 6
    functionLinenumber: 993
    functionLinenumberEnd: 996
    functionName: b2i_PVK_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 1
    functionsReached:
    - b2i_PVK_bio_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: do_i2b
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1013,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1022,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1024,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1029,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1033,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1034,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1035,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1036,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1041,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1042,1
    - Dst: write_ledword
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1043,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1046,1
    - Dst: do_i2b
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1052,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1059,1
    - Dst: PEM_def_callback
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1061,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1063,1
    - Dst: derive_pvk_key
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1066,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1069,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1072,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1074,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1076,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1077,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1079,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1082,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1091,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1093,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1096,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 7
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - unsigned char**
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1099
    functionName: i2b_PVK
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - PEM_def_callback
    - OPENSSL_cleanse
    - do_i2b
    - EVP_CIPHER_CTX_free
    - EVP_PKEY_get_id
    - EVP_EncryptInit_ex
    - memset
    - RAND_bytes_ex
    - write_ledword
    - EVP_CIPHER_free
    - ERR_raise
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_fetch
    - EVP_EncryptUpdate
    - derive_pvk_key
    - OPENSSL_malloc
    - cb
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int i2b_PVK(unsigned char **out, const EVP_PKEY *pk, int enclevel,\n
      \                  pem_password_cb *cb, void *u, OSSL_LIB_CTX *libctx,\n                   const
      char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2b_PVK
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1108,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    - libctx
    - propq
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1118
    functionName: i2b_PVK_bio_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - OPENSSL_free
    - i2b_PVK
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel,\n                   pem_password_cb
      *cb, void *u, OSSL_LIB_CTX *libctx,\n                   const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2b_PVK_bio_ex
      Src: /src/openssl-3.0.15/crypto/pem/pvkfmt.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - pk
    - enclevel
    - cb
    - u
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 4
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: i2b_PVK_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pvkfmt.c
    functionUses: 0
    functionsReached:
    - i2b_PVK_bio_ex
    linkageType: ''
    returnType: int
    signature: "int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel,\n                pem_password_cb
      *cb, void *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:41,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:43,1
    - Dst: EVP_get_pw_prompt
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:47,1
    - Dst: EVP_read_pw_string_min
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:60,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:62,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:63,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - buf
    - num
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 67
    functionName: PEM_def_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 4
    functionsReached:
    - memcpy
    - ERR_raise
    - strlen
    - memset
    - EVP_get_pw_prompt
    - EVP_read_pw_string_min
    linkageType: ''
    returnType: int
    signature: int PEM_def_callback(char *buf, int num, int rwflag, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:72,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: PEM_proc_type
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void PEM_proc_type(char *buf, int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:89,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:92,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:97,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - type
    - len
    - str
    argTypes:
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 106
    functionName: PEM_dek_info
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - strcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void PEM_dek_info(char *buf, const char *type, int len, const char
      *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:115,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:116,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:119,1
    - Dst: PEM_ASN1_read_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:120,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:121,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 123
    functionName: PEM_ASN1_read
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - PEM_ASN1_read_bio
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: void
    signature: "void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp,
      void **x,\n                    pem_password_cb *cb, void *u)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:129,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:134,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:137,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:139,1
    - Dst: ossl_pem_check_suffix
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:141,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:147,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:154,1
    - Dst: ossl_pem_check_suffix
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:157,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:160,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:168,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:176,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:177,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:182,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:183,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:186,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:187,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:191,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:192,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:195,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:196,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:200,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:201,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:204,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:205,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:209,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:210,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:213,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:214,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 49
    argCount: 2
    argNames:
    - nm
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 219
    functionName: check_pem
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_find_str
    - ENGINE_finish
    - ossl_pem_check_suffix
    - strcmp
    linkageType: ''
    returnType: int
    signature: int check_pem(const char *nm, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:224,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - flags
    - num
    argTypes:
    - void*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: pem_free
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void pem_free(void *p, unsigned int flags, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:231,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - num
    - flags
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: pem_malloc
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_secure_malloc
    linkageType: ''
    returnType: void
    signature: void *pem_malloc(int num, unsigned int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:247,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:248,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:249,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:250,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:251,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:251,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:252,1
    - Dst: check_pem
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:255,1
    - Dst: PEM_get_EVP_CIPHER_INFO
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:256,1
    - Dst: PEM_do_header
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:258,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:271,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:272,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:274,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 8
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    - flags
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 276
    functionName: pem_bytes_read_bio_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_ex
    - ERR_GET_REASON
    - check_pem
    - ERR_peek_error
    - ERR_add_error_data
    - pem_free
    - PEM_do_header
    - PEM_get_EVP_CIPHER_INFO
    linkageType: ''
    returnType: int
    signature: "int pem_bytes_read_bio_flags(unsigned char **pdata, long *plen,\n
      \                                   char **pnm, const char *name, BIO *bp,\n
      \                                   pem_password_cb *cb, void *u,\n                                    unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_bytes_read_bio_flags
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: PEM_bytes_read_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - pem_bytes_read_bio_flags
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: pem_bytes_read_bio_flags
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pdata
    - plen
    - pnm
    - name
    - bp
    - cb
    - u
    argTypes:
    - unsigned char**
    - long*
    - char**
    - char*
    - BIO*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: PEM_bytes_read_bio_secmem
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - pem_bytes_read_bio_flags
    linkageType: ''
    returnType: int
    signature: "int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char
      **pnm,\n                              const char *name, BIO *bp, pem_password_cb
      *cb,\n                              void *u)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:301,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:301,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:302,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:305,1
    - Dst: PEM_ASN1_write_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:306,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:307,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 309
    functionName: PEM_ASN1_write
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEM_ASN1_write_bio
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,\n
      \                  const void *x, const EVP_CIPHER *enc,\n                   const
      unsigned char *kstr, int klen,\n                   pem_password_cb *callback,
      void *u)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:326,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:327,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:328,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:333,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:335,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:340,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:341,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:347,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:349,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:353,1
    - Dst: PEM_def_callback
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:358,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:362,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:367,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:372,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:372,1
    - Dst: EVP_BytesToKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:378,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:378,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:382,1
    - Dst: PEM_proc_type
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:385,1
    - Dst: PEM_dek_info
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:386,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:386,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:390,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:391,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:392,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:393,1
    - Dst: PEM_write_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:402,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:406,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:407,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:408,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:409,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:410,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 69
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 412
    functionName: PEM_ASN1_write_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - PEM_dek_info
    - PEM_def_callback
    - ebcdic2ascii
    - OPENSSL_cleanse
    - PEM_proc_type
    - strlen
    - EVP_md5
    - EVP_BytesToKey
    - EVP_CIPHER_CTX_free
    - PEM_write_bio
    - i2d
    - OPENSSL_clear_free
    - EVP_EncryptInit_ex
    - EVP_CIPHER_get_iv_length
    - ERR_raise
    - EVP_CIPHER_get0_name
    - EVP_CIPHER_CTX_new
    - RAND_bytes
    - EVP_EncryptUpdate
    - OPENSSL_malloc
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,\n
      \                      const void *x, const EVP_CIPHER *enc,\n                       const
      unsigned char *kstr, int klen,\n                       pem_password_cb *callback,
      void *u)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:428,1
    - Dst: PEM_def_callback
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:436,1
    - Dst: callback
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:438,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:440,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:445,1
    - Dst: EVP_BytesToKey
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:448,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:448,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:452,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:456,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:458,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:462,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:467,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:469,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:470,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:471,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 473
    functionName: PEM_do_header
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 2
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_BytesToKey
    - EVP_CIPHER_CTX_free
    - PEM_def_callback
    - ebcdic2ascii
    - OPENSSL_cleanse
    - ERR_raise
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - EVP_md5
    - EVP_DecryptFinal_ex
    - callback
    linkageType: ''
    returnType: int
    signature: "int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long
      *plen,\n                  pem_password_cb *callback, void *u)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:497,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:501,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:502,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:506,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:510,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:513,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:514,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:515,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:519,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:521,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:529,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:530,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:534,1
    - Dst: strcspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:541,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:544,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:546,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:549,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:552,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:554,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:557,1
    - Dst: load_iv
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:561,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:561,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - header
    - cipher
    argTypes:
    - char*
    - EVP_CIPHER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 565
    functionName: PEM_get_EVP_CIPHER_INFO
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 2
    functionsReached:
    - EVP_get_cipherbyname
    - load_iv
    - ERR_raise
    - memset
    - strspn
    - EVP_CIPHER_get_iv_length
    - strncmp
    - strcspn
    linkageType: ''
    returnType: int
    signature: int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:577,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - fromp
    - to
    - num
    argTypes:
    - char**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 588
    functionName: load_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: int load_iv(char **fromp, unsigned char *to, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:597,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:597,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:598,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:601,1
    - Dst: PEM_write_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:602,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - name
    - header
    - data
    - len
    argTypes:
    - FILE*
    - char*
    - char*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 605
    functionName: PEM_write
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - PEM_write_bio
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_write(FILE *fp, const char *name, const char *header,\n              const
      unsigned char *data, long len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:613,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:622,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:623,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:625,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:626,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:627,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:630,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:632,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:632,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:636,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:645,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:647,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:653,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:654,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:656,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:657,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:658,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:664,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:665,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:666,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 51
    argCount: 5
    argNames:
    - bp
    - name
    - header
    - data
    - len
    argTypes:
    - BIO*
    - char*
    - char*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 668
    functionName: PEM_write_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 3
    functionsReached:
    - EVP_ENCODE_CTX_free
    - OPENSSL_malloc
    - EVP_EncodeInit
    - ERR_raise
    - OPENSSL_clear_free
    - strlen
    - BIO_write
    - EVP_EncodeFinal
    - EVP_ENCODE_CTX_new
    - EVP_EncodeUpdate
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio(BIO *bp, const char *name, const char *header,\n
      \                 const unsigned char *data, long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:677,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:677,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:678,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:681,1
    - Dst: PEM_read_bio
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:682,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - fp
    - name
    - header
    - data
    - len
    argTypes:
    - FILE*
    - char**
    - char**
    - unsigned char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 685
    functionName: PEM_read
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: "int PEM_read(FILE *fp, char **name, char **header, unsigned char **data,\n
      \            long *len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:697,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:698,1
    - Dst: ossl_isbase64
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:712,1
    - Dst: ossl_iscntrl
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:723,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 4
    argNames:
    - linebuf
    - len
    - flags
    - first_call
    argTypes:
    - char*
    - int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 732
    functionName: sanitize_line
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - memmove
    - ossl_iscntrl
    - ossl_isbase64
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sanitize_line(char *linebuf, int len, unsigned int flags, int first_call)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pem_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:753,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:755,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:760,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:763,1
    - Dst: sanitize_line
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:768,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:772,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:774,1
    - Dst: pem_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:777,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:779,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:782,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:786,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - bp
    - name
    - flags
    argTypes:
    - BIO*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 788
    functionName: get_name
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 28
    functionsReached:
    - memcpy
    - pem_malloc
    - ERR_raise
    - pem_free
    - BIO_gets
    - strncmp
    - sanitize_line
    linkageType: ''
    returnType: int
    signature: int get_name(BIO *bp, char **name, unsigned int flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pem_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:821,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:823,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:829,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:831,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:844,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:847,1
    - Dst: sanitize_line
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:849,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:860,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:870,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:872,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:873,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:874,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:875,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:885,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:892,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:908,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 5
    argNames:
    - bp
    - header
    - data
    - name
    - flags
    argTypes:
    - BIO*
    - BIO**
    - BIO**
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 910
    functionName: get_header_and_data
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - pem_malloc
    - memchr
    - ERR_raise
    - strlen
    - pem_free
    - BIO_gets
    - strncmp
    - sanitize_line
    linkageType: ''
    returnType: int
    signature: "int get_header_and_data(BIO *bp, BIO **header, BIO **data, char *name,\n
      \                              unsigned int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:933,1
    - Dst: BIO_s_secmem
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:936,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:936,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:938,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:939,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:941,1
    - Dst: get_name
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:945,1
    - Dst: get_header_and_data
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:947,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:950,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:957,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:959,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:963,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:964,1
    - Dst: EVP_DecodeFinal
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:966,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:968,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:974,1
    - Dst: pem_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:975,1
    - Dst: pem_malloc
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:976,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:979,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:982,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:991,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:993,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:996,1
    - Dst: pem_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:997,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:998,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:999,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 6
    argNames:
    - bp
    - name_out
    - header
    - data
    - len_out
    - flags
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 918
    functionDepth: 3
    functionLinenumber: 918
    functionLinenumberEnd: 1001
    functionName: PEM_read_bio_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 2
    functionsReached:
    - EVP_ENCODE_CTX_free
    - EVP_DecodeInit
    - BIO_new
    - get_name
    - BIO_get_mem_ptr
    - BIO_read
    - pem_malloc
    - BIO_free
    - EVP_DecodeFinal
    - get_header_and_data
    - ERR_raise
    - BIO_s_secmem
    - EVP_DecodeUpdate
    - BIO_get_mem_data
    - EVP_ENCODE_CTX_new
    - pem_free
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: "int PEM_read_bio_ex(BIO *bp, char **name_out, char **header,\n                    unsigned
      char **data, long *len_out, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bp
    - name
    - header
    - data
    - len
    argTypes:
    - BIO*
    - char**
    - char**
    - unsigned char**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1003
    functionDepth: 4
    functionLinenumber: 1003
    functionLinenumberEnd: 1007
    functionName: PEM_read_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 2
    functionsReached:
    - PEM_read_bio_ex
    linkageType: ''
    returnType: int
    signature: "int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char
      **data,\n                 long *len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:1017,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:1018,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/pem/pem_lib.c:1023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pem_str
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1029
    functionName: ossl_pem_check_suffix
    functionSourceFile: /src/openssl-3.0.15/crypto/pem/pem_lib.c
    functionUses: 2
    functionsReached:
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ossl_pem_check_suffix(const char *pem_str, const char *suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: prefetch256
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prefetch256(const void *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: GETU32
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:496,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:497,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:498,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:499,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:518,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:519,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:540,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:541,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 571
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 1
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:585,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:620,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:621,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 652
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 1
    functionsReached:
    - ROTATE
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:666,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:673,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:674,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:675,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:676,1
    - Dst: prefetch256
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:679,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:708,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:708,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:709,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:709,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:775,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:775,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:776,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:776,1
    - Dst: prefetch256
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 61
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 665
        line_start: 665
        source_file: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    constantsTouched: []
    func_position:
      end: 866
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 866
    functionName: AES_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached:
    - prefetch256
    - ROTATE
    - GETU32
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:880,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:887,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:888,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:889,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:890,1
    - Dst: prefetch256
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:893,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:933,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:934,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:934,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:1010,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:1011,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:1011,1
    - Dst: prefetch256
      Src: /src/openssl-3.0.15/crypto/aes/aes_x86core.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    constantsTouched: []
    func_position:
      end: 1074
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 1074
    functionName: AES_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_x86core.c
    functionUses: 0
    functionsReached:
    - prefetch256
    - ROTATE
    - GETU32
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: SWAP
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_local.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GETU32
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PUTU32
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GETU32
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PUTU32
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ecb.c:25,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ecb.c:26,1
    - Dst: AES_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ecb.c:29,1
    - Dst: AES_decrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ecb.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    - int
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/openssl-3.0.15/crypto/aes/aes_ecb.c
    - condition: ((AES_ENCRYPT == enc) || (AES_DECRYPT == enc))
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/openssl-3.0.15/crypto/aes/aes_ecb.c
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: AES_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ecb.c
    functionUses: 0
    functionsReached:
    - AES_decrypt
    - AES_encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                    const AES_KEY *key, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_128_wrap
      Src: /src/openssl-3.0.15/crypto/aes/aes_wrap.c:24,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: AES_wrap_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_wrap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_wrap
    linkageType: ''
    returnType: int
    signature: "int AES_wrap_key(AES_KEY *key, const unsigned char *iv,\n                 unsigned
      char *out,\n                 const unsigned char *in, unsigned int inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_128_unwrap
      Src: /src/openssl-3.0.15/crypto/aes/aes_wrap.c:31,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: AES_unwrap_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_wrap.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_unwrap
    linkageType: ''
    returnType: int
    signature: "int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,\n                   unsigned
      char *out,\n                   const unsigned char *in, unsigned int inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: AES_options
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *AES_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: load_block
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load_block(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: store_block
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store_block(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: load_block
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load_block(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: store_block
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store_block(d, s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:58,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:59,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:60,1
    - Dst: AES_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:76,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:86,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:87,1
    - Dst: load_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:93,1
    - Dst: load_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:94,1
    - Dst: load_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:97,1
    - Dst: AES_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:100,1
    - Dst: store_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:104,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:111,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:112,1
    - Dst: AES_decrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:129,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:139,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:140,1
    - Dst: load_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:146,1
    - Dst: load_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:147,1
    - Dst: load_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:150,1
    - Dst: AES_decrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:154,1
    - Dst: store_block
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:158,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:165,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:166,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - AES_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 169
    functionName: AES_ige_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached:
    - store_block
    - OPENSSL_assert
    - load_block
    - memcpy
    - AES_encrypt
    - AES_decrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:200,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:201,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:202,1
    - Dst: AES_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:216,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:220,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:236,1
    - Dst: AES_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:242,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:255,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:268,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:269,1
    - Dst: AES_decrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:272,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:275,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:286,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:287,1
    - Dst: AES_decrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:290,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_ige.c:293,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 301
    functionName: AES_bi_ige_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ige.c
    functionUses: 0
    functionsReached:
    - AES_decrypt
    - AES_encrypt
    - OPENSSL_assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_ofb.c:23,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: AES_ofb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_cfb.c:30,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: AES_cfb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_cfb.c:39,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: AES_cfb1_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_cfb.c:47,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: AES_cfb8_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: XtimeWord
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XtimeWord(u32 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:91,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: XtimeLong
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: void
    signature: void XtimeLong(u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 1
    argNames:
    - w
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 234
    functionName: SubWord
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubWord(u32 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:241,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:241,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:242,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:243,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:244,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:244,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:245,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:246,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:246,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:247,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:248,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:248,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:249,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:250,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:250,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:251,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:252,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:252,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:253,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:255,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:256,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:256,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:258,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:259,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:261,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:262,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:263,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:264,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:265,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:267,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:269,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:271,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:272,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:274,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:275,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:277,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:280,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:282,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:284,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:285,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:286,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:288,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:290,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:291,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:294,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:295,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:297,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:297,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:299,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:300,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:302,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:303,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:304,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:305,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:306,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:308,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:310,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:310,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:311,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:312,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:313,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:313,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:314,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:315,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:315,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:316,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:317,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:317,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:318,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:319,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:319,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:320,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:321,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:321,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:322,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 1
    argNames:
    - w
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 325
    functionName: SubLong
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: void
    signature: void SubLong(u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:335,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:336,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:336,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:337,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:338,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:339,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:339,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:340,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:341,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:341,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:342,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:343,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:343,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:344,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:345,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:345,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:346,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:347,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:347,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:348,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:349,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:349,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:350,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:352,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:353,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:353,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:355,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:356,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:358,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:359,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:360,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:361,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:362,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:364,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:366,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:368,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:369,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:371,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:372,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:374,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:377,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:379,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:381,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:382,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:383,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:385,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:387,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:388,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:391,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:392,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:394,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:394,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:396,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:397,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:399,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:400,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:401,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:402,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:403,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:405,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:407,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:407,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:408,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:409,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:410,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:410,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:411,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:412,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:412,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:413,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:414,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:414,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:415,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:416,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:416,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:417,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:418,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:418,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:419,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:420,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:420,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 1
    argNames:
    - w
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 423
    functionName: InvSubLong
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: void
    signature: void InvSubLong(u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: ShiftRows
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShiftRows(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 461
    functionName: InvShiftRows
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvShiftRows(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:472,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:473,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:474,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:475,1
    - Dst: XtimeLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 489
    functionName: MixColumns
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - XtimeLong
    - U64
    linkageType: ''
    returnType: void
    signature: void MixColumns(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:500,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:501,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:502,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:503,1
    - Dst: XtimeLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:505,1
    - Dst: XtimeLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:515,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:516,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:517,1
    - Dst: XtimeLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:519,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:520,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 525
    functionName: InvMixColumns
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - XtimeLong
    - U64
    linkageType: ''
    returnType: void
    signature: void InvMixColumns(u64 *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - w
    argTypes:
    - u64*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: AddRoundKey
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddRoundKey(u64 *state, const u64 *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:539,1
    - Dst: AddRoundKey
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:541,1
    - Dst: SubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:544,1
    - Dst: SubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:545,1
    - Dst: ShiftRows
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:546,1
    - Dst: MixColumns
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:547,1
    - Dst: AddRoundKey
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:548,1
    - Dst: SubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:551,1
    - Dst: SubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:552,1
    - Dst: ShiftRows
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:553,1
    - Dst: AddRoundKey
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:554,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - in
    - out
    - w
    - nr
    argTypes:
    - unsigned char*
    - unsigned char*
    - u64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 557
    functionName: Cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - AddRoundKey
    - MixColumns
    - memcpy
    - ShiftRows
    - SubLong
    linkageType: ''
    returnType: void
    signature: "void Cipher(const unsigned char *in, unsigned char *out,\n                   const
      u64 *w, int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:566,1
    - Dst: AddRoundKey
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:568,1
    - Dst: InvShiftRows
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:571,1
    - Dst: InvSubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:572,1
    - Dst: InvSubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:573,1
    - Dst: AddRoundKey
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:574,1
    - Dst: InvMixColumns
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:575,1
    - Dst: InvShiftRows
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:578,1
    - Dst: InvSubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:579,1
    - Dst: InvSubLong
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:580,1
    - Dst: AddRoundKey
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:581,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - in
    - out
    - w
    - nr
    argTypes:
    - unsigned char*
    - unsigned char*
    - u64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 584
    functionName: InvCipher
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - InvMixColumns
    - AddRoundKey
    - memcpy
    - InvSubLong
    - InvShiftRows
    linkageType: ''
    returnType: void
    signature: "void InvCipher(const unsigned char *in, unsigned char *out,\n                      const
      u64 *w, int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 597
    functionName: RotWord
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RotWord(u32 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:607,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:608,1
    - Dst: RotWord
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:614,1
    - Dst: SubWord
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:615,1
    - Dst: XtimeWord
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:617,1
    - Dst: SubWord
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - key
    - w
    - nr
    - nk
    argTypes:
    - unsigned char*
    - u64*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 626
    functionName: KeyExpansion
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 0
    functionsReached:
    - RotWord
    - XtimeWord
    - SubWord
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void KeyExpansion(const unsigned char *key, u64 *w,\n                         int
      nr, int nk)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: KeyExpansion
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:650,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 652
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 2
    functionsReached:
    - KeyExpansion
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 1
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:672,1
    - Dst: Cipher
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/openssl-3.0.15/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 676
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 676
    functionName: AES_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - Cipher
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:687,1
    - Dst: InvCipher
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 686
        line_start: 686
        source_file: /src/openssl-3.0.15/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 691
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 691
    functionName: AES_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - InvCipher
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1300,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1301,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1302,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1303,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1322,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1323,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1344,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1345,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1375
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1427
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 1
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1442,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1449,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1450,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1451,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1452,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1596,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1603,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1610,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/openssl-3.0.15/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 1618
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1618
    functionName: AES_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - GETU32
    - PUTU32
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_encrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1634,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1641,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1642,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1643,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1644,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1788,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1795,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1802,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1809,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - AES_KEY*
    assertStmts:
    - condition: (in && out && key)
      pos:
        line_end: 1633
        line_start: 1633
        source_file: /src/openssl-3.0.15/crypto/aes/aes_core.c
    constantsTouched: []
    func_position:
      end: 1810
      start: 1624
    functionDepth: 0
    functionLinenumber: 1624
    functionLinenumberEnd: 1810
    functionName: AES_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 3
    functionsReached:
    - GETU32
    - PUTU32
    - assert
    linkageType: ''
    returnType: void
    signature: "void AES_decrypt(const unsigned char *in, unsigned char *out,\n                 const
      AES_KEY *key)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1878,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1879,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1880,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1881,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1900,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1901,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1922,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1923,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1953
    functionName: AES_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 4
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: "int AES_set_encrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:1967,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:2001,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:2002,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/aes/aes_core.c:2002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - AES_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 2011
    functionName: AES_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_core.c
    functionUses: 1
    functionsReached:
    - ROTATE
    - AES_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int AES_set_decrypt_key(const unsigned char *userKey, const int bits,\n
      \                       AES_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_cbc.c:26,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/aes/aes_cbc.c:29,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: AES_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aes/aes_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 20
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:31,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:33,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:36,1
    - Dst: sk_OPENSSL_PSTRING_new_null
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:41,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:43,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:45,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:58,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:62,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:67,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:105,1
    - Dst: sk_OPENSSL_PSTRING_push
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:111,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:115,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:118,1
    - Dst: sk_OPENSSL_PSTRING_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:123,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 102
    argCount: 2
    argNames:
    - in
    - num
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 126
    functionName: TXT_DB_read
    functionSourceFile: /src/openssl-3.0.15/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_grow_clean
    - OPENSSL_malloc
    - BUF_MEM_grow
    - BUF_MEM_new
    - sk_OPENSSL_PSTRING_push
    - sk_OPENSSL_PSTRING_new_null
    - OPENSSL_free
    - strlen
    - BIO_gets
    - BUF_MEM_free
    - sk_OPENSSL_PSTRING_free
    linkageType: ''
    returnType: TXT_DB
    signature: TXT_DB *TXT_DB_read(BIO *in, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:132,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - db
    - idx
    - value
    argTypes:
    - TXT_DB*
    - int
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: TXT_DB_get_by_index
    functionSourceFile: /src/openssl-3.0.15/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - LHASH_OF
    - lh_OPENSSL_STRING_retrieve
    linkageType: ''
    returnType: OPENSSL_STRING
    signature: "OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx,\n                                    OPENSSL_STRING
      *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:151,1
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:160,1
    - Dst: OPENSSL_LH_new
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:160,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:164,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:166,1
    - Dst: qual
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:167,1
    - Dst: lh_OPENSSL_STRING_insert
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:169,1
    - Dst: sk_OPENSSL_PSTRING_find
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:171,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:173,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:176,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:178,1
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - db
    - field
    - hash
    - cmp
    argTypes:
    - TXT_DB*
    - int
    - OPENSSL_LH_HASHFUNC
    - OPENSSL_LH_COMPFUNC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 186
    functionName: TXT_DB_create_index
    functionSourceFile: /src/openssl-3.0.15/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - lh_OPENSSL_STRING_retrieve
    - sk_OPENSSL_PSTRING_find
    - LHASH_OF
    - qual
    - OPENSSL_LH_new
    - lh_OPENSSL_STRING_free
    - sk_OPENSSL_PSTRING_num
    - lh_OPENSSL_STRING_insert
    linkageType: ''
    returnType: int
    signature: "int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING
      *),\n                        OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:195,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:197,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:200,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:205,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:207,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:225,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:231,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - BIO*
    - TXT_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 233
    functionName: TXT_DB_write
    functionSourceFile: /src/openssl-3.0.15/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - BUF_MEM_grow_clean
    - BUF_MEM_new
    - sk_OPENSSL_PSTRING_num
    - strlen
    - BIO_write
    - BUF_MEM_free
    linkageType: ''
    returnType: long
    signature: long TXT_DB_write(BIO *out, TXT_DB *db)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:244,1
    - Dst: lh_OPENSSL_STRING_insert
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:258,1
    - Dst: lh_OPENSSL_STRING_retrieve
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:259,1
    - Dst: sk_OPENSSL_PSTRING_push
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:263,1
    - Dst: lh_OPENSSL_STRING_delete
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:273,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 2
    argNames:
    - db
    - row
    argTypes:
    - TXT_DB*
    - OPENSSL_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 278
    functionName: TXT_DB_insert
    functionSourceFile: /src/openssl-3.0.15/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - lh_OPENSSL_STRING_insert
    - lh_OPENSSL_STRING_retrieve
    - sk_OPENSSL_PSTRING_push
    - lh_OPENSSL_STRING_delete
    linkageType: ''
    returnType: int
    signature: int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *row)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lh_OPENSSL_STRING_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:289,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:290,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:292,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:294,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:299,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:303,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:310,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:310,1
    - Dst: sk_OPENSSL_PSTRING_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:312,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/txt_db/txt_db.c:314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - db
    argTypes:
    - TXT_DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 315
    functionName: TXT_DB_free
    functionSourceFile: /src/openssl-3.0.15/crypto/txt_db/txt_db.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - lh_OPENSSL_STRING_free
    - sk_OPENSSL_PSTRING_num
    - OPENSSL_free
    - sk_OPENSSL_PSTRING_free
    linkageType: ''
    returnType: void
    signature: void TXT_DB_free(TXT_DB *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: ROTL
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(x, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: U32TO8_LE
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8_LE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: U64TO8_LE
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64TO8_LE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: U8TO64_LE
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U8TO64_LE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: SipHash_ctx_size
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SipHash_ctx_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SIPHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: SipHash_hash_size
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SipHash_hash_size(SIPHASH *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hash_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: siphash_adjust_hash_size
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t siphash_adjust_hash_size(size_t hash_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: siphash_adjust_hash_size
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:87,1
    - Dst: siphash_adjust_hash_size
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - hash_size
    argTypes:
    - SIPHASH*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: SipHash_set_hash_size
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - siphash_adjust_hash_size
    linkageType: ''
    returnType: int
    signature: int SipHash_set_hash_size(SIPHASH *ctx, size_t hash_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: U8TO64_LE
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:111,1
    - Dst: U8TO64_LE
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:112,1
    - Dst: siphash_adjust_hash_size
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - k
    - crounds
    - drounds
    argTypes:
    - SIPHASH*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 137
    functionName: SipHash_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - U8TO64_LE
    - siphash_adjust_hash_size
    linkageType: ''
    returnType: int
    signature: int SipHash_Init(SIPHASH *ctx, const unsigned char *k, int crounds,
      int drounds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:158,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:164,1
    - Dst: U8TO64_LE
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:169,1
    - Dst: U8TO64_LE
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:179,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - SIPHASH*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 195
    functionName: SipHash_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - U8TO64_LE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SipHash_Update(SIPHASH *ctx, const unsigned char *in, size_t inlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: U64TO8_LE
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:246,1
    - Dst: U64TO8_LE
      Src: /src/openssl-3.0.15/crypto/siphash/siphash.c:253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - SIPHASH*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 255
    functionName: SipHash_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/siphash/siphash.c
    functionUses: 0
    functionsReached:
    - U64TO8_LE
    linkageType: ''
    returnType: int
    signature: int SipHash_Final(SIPHASH *ctx, unsigned char *out, size_t outlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:25,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:38,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:40,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:40,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:44,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:48,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:49,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:52,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c:58,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - params
    - N
    - s
    - priv
    argTypes:
    - BN_CTX*
    - FFC_PARAMS*
    - int
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 60
    functionName: ossl_ffc_generate_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_key_generate.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_lshift
    - BN_num_bits
    - BN_free
    - BN_value_one
    - BN_priv_rand_range_ex
    - BN_add_word
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_generate_private_key(BN_CTX *ctx, const FFC_PARAMS *params,\n
      \                                 int N, int s, BIGNUM *priv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - params
    argTypes:
    - FFC_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: ossl_ffc_params_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_init(FFC_PARAMS *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:30,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:31,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:32,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:34,1
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - params
    argTypes:
    - FFC_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ossl_ffc_params_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - BN_free
    - OPENSSL_free
    - ossl_ffc_params_init
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_cleanup(FFC_PARAMS *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:41,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:45,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - FFC_PARAMS*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: ossl_ffc_params_set0_pqg
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_set0_pqg(FFC_PARAMS *d, BIGNUM *p, BIGNUM *q,
      BIGNUM *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - FFC_PARAMS*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: ossl_ffc_params_get0_pqg
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_ffc_params_get0_pqg(const FFC_PARAMS *d, const BIGNUM **p,\n
      \                             const BIGNUM **q, const BIGNUM **g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - j
    argTypes:
    - FFC_PARAMS*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: ossl_ffc_params_set0_j
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_set0_j(FFC_PARAMS *d, BIGNUM *j)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:84,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - params
    - seed
    - seedlen
    argTypes:
    - FFC_PARAMS*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 97
    functionName: ossl_ffc_params_set_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_set_seed(FFC_PARAMS *params,\n                             const
      unsigned char *seed, size_t seedlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - index
    argTypes:
    - FFC_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: ossl_ffc_params_set_gindex
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_set_gindex(FFC_PARAMS *params, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - index
    argTypes:
    - FFC_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: ossl_ffc_params_set_pcounter
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_set_pcounter(FFC_PARAMS *params, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - index
    argTypes:
    - FFC_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: ossl_ffc_params_set_h
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_set_h(FFC_PARAMS *params, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - flags
    argTypes:
    - FFC_PARAMS*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: ossl_ffc_params_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_ffc_params_set_flags(FFC_PARAMS *params, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - params
    - flags
    - enable
    argTypes:
    - FFC_PARAMS*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: ossl_ffc_params_enable_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_ffc_params_enable_flags(FFC_PARAMS *params, unsigned int
      flags,\n                                  int enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - params
    - alg
    - props
    argTypes:
    - FFC_PARAMS*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: ossl_ffc_set_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_set_digest(FFC_PARAMS *params, const char *alg, const
      char *props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_set_seed
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - params
    - seed
    - seedlen
    - counter
    argTypes:
    - FFC_PARAMS*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: ossl_ffc_params_set_validate_params
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_set_seed
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_set_validate_params(FFC_PARAMS *params,\n                                        const
      unsigned char *seed,\n                                        size_t seedlen,
      int counter)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - params
    - seed
    - seedlen
    - pcounter
    argTypes:
    - FFC_PARAMS*
    - unsigned char**
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: ossl_ffc_params_get_validate_params
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_ffc_params_get_validate_params(const FFC_PARAMS *params,\n
      \                                        unsigned char **seed, size_t *seedlen,\n
      \                                        int *pcounter)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:167,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:168,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:170,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - BIGNUM**
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 175
    functionName: ffc_bn_cpy
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_clear_free
    - BN_get_flags
    linkageType: ''
    returnType: int
    signature: int ffc_bn_cpy(BIGNUM **dst, const BIGNUM *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ffc_bn_cpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:179,1
    - Dst: ffc_bn_cpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:180,1
    - Dst: ffc_bn_cpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:181,1
    - Dst: ffc_bn_cpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:187,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - FFC_PARAMS*
    - FFC_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 203
    functionName: ossl_ffc_params_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ffc_bn_cpy
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_params_copy(FFC_PARAMS *dst, const FFC_PARAMS *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:207,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:208,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - ignore_q
    argTypes:
    - FFC_PARAMS*
    - FFC_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: ossl_ffc_params_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_params_cmp(const FFC_PARAMS *a, const FFC_PARAMS *b, int
      ignore_q)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:221,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:224,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:227,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:230,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:233,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:236,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:239,1
    - Dst: ossl_param_build_set_octet_string
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:242,1
    - Dst: ossl_ffc_uid_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:247,1
    - Dst: ossl_ffc_named_group_get_name
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:248,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:251,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:257,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:261,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:265,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:271,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:276,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 37
    argCount: 3
    argNames:
    - ffc
    - bld
    - params
    argTypes:
    - FFC_PARAMS*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 281
    functionName: ossl_ffc_params_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - ossl_param_build_set_octet_string
    - ossl_param_build_set_utf8_string
    - ossl_param_build_set_bn
    - ossl_ffc_uid_to_dh_named_group
    - ossl_param_build_set_int
    - ossl_ffc_named_group_get_name
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_todata(const FFC_PARAMS *ffc, OSSL_PARAM_BLD *bld,\n
      \                     OSSL_PARAM params[])"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:286,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:288,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:291,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:294,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:299,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:300,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:304,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:305,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:308,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:312,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:316,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params.c:317,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 39
    argCount: 3
    argNames:
    - bp
    - ffc
    - indent
    argTypes:
    - BIO*
    - FFC_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 323
    functionName: ossl_ffc_params_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - ASN1_bn_print
    - BIO_write
    - BIO_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_params_print(BIO *bp, const FFC_PARAMS *ffc, int indent)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:30,1
    - Dst: ossl_ffc_name_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:41,1
    - Dst: ossl_ffc_named_group_set
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:42,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:47,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:48,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:49,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:51,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:52,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:53,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:56,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:58,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:62,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:64,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:68,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:69,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:71,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:73,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:77,1
    - Dst: ossl_ffc_params_set_seed
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:81,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:84,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:86,1
    - Dst: ossl_ffc_params_enable_flags
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:88,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:90,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:92,1
    - Dst: ossl_ffc_params_enable_flags
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:94,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:96,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:98,1
    - Dst: ossl_ffc_params_enable_flags
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:100,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:103,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:110,1
    - Dst: ossl_ffc_set_digest
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:116,1
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:120,1
    - Dst: ossl_ffc_params_set0_j
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:121,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:125,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:126,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:127,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c:128,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 97
    argCount: 2
    argNames:
    - ffc
    - params
    argTypes:
    - FFC_PARAMS*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 130
    functionName: ossl_ffc_params_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_named_group_set
    - ossl_ffc_set_digest
    - ossl_ffc_params_set0_pqg
    - OSSL_PARAM_get_BN
    - ossl_ffc_params_set0_j
    - BN_free
    - ossl_ffc_params_set_seed
    - OSSL_PARAM_locate_const
    - ossl_ffc_name_to_dh_named_group
    - OSSL_PARAM_get_int
    - ossl_ffc_params_enable_flags
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_params_fromdata(FFC_PARAMS *ffc, const OSSL_PARAM params[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:33,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:33,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:33,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:43,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:45,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - ctx
    - mont
    - p
    - q
    - g
    - tmp
    - ret
    argTypes:
    - BN_CTX*
    - BN_MONT_CTX*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: ossl_ffc_params_validate_unverifiable_g
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_cmp
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_validate_unverifiable_g(BN_CTX *ctx, BN_MONT_CTX
      *mont,\n                                            const BIGNUM *p, const BIGNUM
      *q,\n                                            const BIGNUM *g, BIGNUM *tmp,\n
      \                                           int *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:62,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:63,1
    - Dst: ossl_ffc_params_FIPS186_4_gen_verify
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - libctx
    - params
    - type
    - res
    - cb
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: ossl_ffc_params_FIPS186_4_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_FIPS186_4_gen_verify
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_FIPS186_4_validate(OSSL_LIB_CTX *libctx,\n                                       const
      FFC_PARAMS *params, int type,\n                                       int *res,
      BN_GENCB *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:82,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:83,1
    - Dst: ossl_ffc_params_FIPS186_2_gen_verify
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - libctx
    - params
    - type
    - res
    - cb
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: ossl_ffc_params_FIPS186_2_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - ossl_ffc_params_FIPS186_2_gen_verify
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_FIPS186_2_validate(OSSL_LIB_CTX *libctx,\n                                       const
      FFC_PARAMS *params, int type,\n                                       int *res,
      BN_GENCB *cb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:108,1
    - Dst: ossl_ffc_params_FIPS186_2_validate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:116,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:120,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:125,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - libctx
    - params
    - paramstype
    - res
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 132
    functionName: ossl_ffc_params_simple_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - ossl_ffc_params_copy
    - ossl_ffc_params_cleanup
    - ossl_ffc_params_FIPS186_2_validate
    - ossl_ffc_params_FIPS186_4_validate
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_simple_validate(OSSL_LIB_CTX *libctx, const FFC_PARAMS
      *params,\n                                    int paramstype, int *res)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:151,1
    - Dst: ossl_ffc_params_FIPS186_2_validate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:156,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:159,1
    - Dst: ossl_ffc_params_simple_validate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:164,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:168,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:170,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:172,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:178,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - libctx
    - params
    - paramstype
    - res
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 187
    functionName: ossl_ffc_params_full_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_validate.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - BN_CTX_new_ex
    - ossl_ffc_params_simple_validate
    - ossl_ffc_params_FIPS186_2_validate
    - BN_CTX_free
    - ossl_ffc_params_FIPS186_4_validate
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_full_validate(OSSL_LIB_CTX *libctx, const FFC_PARAMS
      *params,\n                                  int paramstype, int *res)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:49,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:61,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 4
    argNames:
    - L
    - N
    - type
    - verify
    argTypes:
    - size_t
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: ffc_validate_LN
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ffc_validate_LN(size_t L, size_t N, int type, int verify)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:87,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 4
    argNames:
    - L
    - N
    - type
    - verify
    argTypes:
    - size_t
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 91
    functionName: ffc_validate_LN
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ffc_validate_LN(size_t L, size_t N, int type, int verify)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:103,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:108,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:111,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:111,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:115,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 8
    argNames:
    - ctx
    - mont
    - g
    - hbn
    - p
    - e
    - pm1
    - hret
    argTypes:
    - BN_CTX*
    - BN_MONT_CTX*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: generate_unverifiable_g
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp_mont
    - BN_value_one
    - BN_set_word
    - BN_add_word
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int generate_unverifiable_g(BN_CTX *ctx, BN_MONT_CTX *mont, BIGNUM
      *g,\n                                   BIGNUM *hbn, const BIGNUM *p,\n                                   const
      BIGNUM *e,const BIGNUM *pm1,\n                                   int *hret)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:143,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:147,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:168,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:169,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:170,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:171,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:172,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:173,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:174,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:181,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:181,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:186,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 10
    argNames:
    - ctx
    - mont
    - evpmd
    - g
    - tmp
    - p
    - e
    - gindex
    - seed
    - seedlen
    argTypes:
    - BN_CTX*
    - BN_MONT_CTX*
    - EVP_MD*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 188
    functionName: generate_canonical_g
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - BN_bin2bn
    - BN_mod_exp_mont
    - EVP_MD_CTX_new
    - BN_value_one
    - EVP_DigestFinal_ex
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int generate_canonical_g(BN_CTX *ctx, BN_MONT_CTX *mont,\n                                const
      EVP_MD *evpmd, BIGNUM *g, BIGNUM *tmp,\n                                const
      BIGNUM *p, const BIGNUM *e,\n                                int gindex, unsigned
      char *seed, size_t seedlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:202,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:203,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:204,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:205,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:206,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:207,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:211,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:211,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:214,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:227,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:230,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:244,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:245,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:251,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:252,1
    - Dst: BN_mask_bits
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:261,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:262,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:263,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:269,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:270,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:276,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:276,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:277,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:286,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:293,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:309,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 54
    argCount: 12
    argNames:
    - ctx
    - evpmd
    - max_counter
    - n
    - buf
    - buf_len
    - q
    - p
    - L
    - cb
    - counter
    - res
    argTypes:
    - BN_CTX*
    - EVP_MD*
    - int
    - int
    - unsigned char*
    - size_t
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_GENCB*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 311
    functionName: generate_p
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - BN_lshift
    - BN_bin2bn
    - BN_CTX_start
    - BN_check_prime
    - BN_CTX_end
    - BN_GENCB_call
    - BN_value_one
    - BN_zero
    - BN_add
    - BN_mask_bits
    - BN_copy
    - BN_lshift1
    - BN_mod
    - BN_CTX_get
    - EVP_Digest
    - BN_cmp
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int generate_p(BN_CTX *ctx, const EVP_MD *evpmd, int max_counter,
      int n,\n                      unsigned char *buf, size_t buf_len, const BIGNUM
      *q,\n                      BIGNUM *p, int L, BN_GENCB *cb, int *counter,\n                      int
      *res)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:321,1
    - Dst: ossl_bn_get_libctx
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:323,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:327,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:332,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:339,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:347,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:356,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:364,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 10
    argNames:
    - ctx
    - q
    - evpmd
    - qsize
    - seed
    - seedlen
    - generate_seed
    - retm
    - res
    - cb
    argTypes:
    - BN_CTX*
    - BIGNUM*
    - EVP_MD*
    - int
    - unsigned char*
    - size_t
    - int
    - int*
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 384
    functionName: generate_q_fips186_4
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - EVP_MD_get_size
    - ossl_bn_get_libctx
    - BN_bin2bn
    - BN_GENCB_call
    - memset
    - EVP_Digest
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: "int generate_q_fips186_4(BN_CTX *ctx, BIGNUM *q, const EVP_MD *evpmd,\n
      \                               int qsize, unsigned char *seed, size_t seedlen,\n
      \                               int generate_seed, int *retm, int *res,\n                                BN_GENCB
      *cb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bn_get_libctx
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:394,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:399,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:402,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:405,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:406,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:416,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:418,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:426,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:430,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 10
    argNames:
    - ctx
    - q
    - evpmd
    - buf
    - seed
    - qsize
    - generate_seed
    - retm
    - res
    - cb
    argTypes:
    - BN_CTX*
    - BIGNUM*
    - EVP_MD*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    - int*
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 444
    functionName: generate_q_fips186_2
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - memcpy
    - ossl_bn_get_libctx
    - BN_bin2bn
    - BN_GENCB_call
    - EVP_Digest
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: "int generate_q_fips186_2(BN_CTX *ctx, BIGNUM *q, const EVP_MD *evpmd,\n
      \                               unsigned char *buf, unsigned char *seed,\n                                size_t
      qsize, int generate_seed, int *retm,\n                                int *res,
      BN_GENCB *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - N
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 455
    functionName: default_mdname
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *default_mdname(size_t N)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:537,1
    - Dst: default_mdname
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:541,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:546,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:550,1
    - Dst: ffc_validate_LN
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:563,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:568,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:572,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:575,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:576,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:577,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:578,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:579,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:580,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:628,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:629,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:643,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:654,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:679,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:679,1
    - Dst: generate_q_fips186_4
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:683,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:687,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:691,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:693,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:696,1
    - Dst: generate_p
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:697,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:713,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:719,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:726,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:728,1
    - Dst: ossl_ffc_params_validate_unverifiable_g
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:732,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:742,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:742,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:742,1
    - Dst: generate_canonical_g
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:748,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:754,1
    - Dst: generate_unverifiable_g
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:759,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:763,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:768,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:769,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:772,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:773,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:776,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:777,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:781,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:794,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:795,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:797,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:798,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:799,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:800,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:801,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 227
    argCount: 8
    argNames:
    - libctx
    - params
    - mode
    - type
    - L
    - N
    - res
    - cb
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - int
    - size_t
    - size_t
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 803
    functionName: ossl_ffc_params_FIPS186_4_gen_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 1
    functionsReached:
    - BN_dup
    - EVP_MD_CTX_free
    - memcpy
    - BN_MONT_CTX_set
    - BN_CTX_start
    - BN_CTX_get
    - ossl_ffc_params_set_validate_params
    - EVP_MD_fetch
    - BN_cmp
    - BN_sub
    - ossl_ffc_params_validate_unverifiable_g
    - ffc_validate_LN
    - EVP_MD_get_size
    - BN_div
    - generate_unverifiable_g
    - EVP_MD_CTX_new
    - default_mdname
    - BN_free
    - OPENSSL_free
    - BN_value_one
    - generate_p
    - BN_lshift
    - BN_CTX_free
    - OPENSSL_malloc
    - BN_MONT_CTX_new
    - EVP_MD_free
    - BN_CTX_end
    - BN_GENCB_call
    - BN_CTX_new_ex
    - BN_MONT_CTX_free
    - generate_canonical_g
    - generate_q_fips186_4
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_FIPS186_4_gen_verify(OSSL_LIB_CTX *libctx,\n                                         FFC_PARAMS
      *params, int mode, int type,\n                                         size_t
      L, size_t N, int *res,\n                                         BN_GENCB *cb)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:832,1
    - Dst: default_mdname
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:836,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:841,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:846,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:876,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:879,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:883,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:885,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:886,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:887,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:888,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:889,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:890,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:894,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:894,1
    - Dst: generate_q_fips186_2
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:930,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:934,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:936,1
    - Dst: generate_p
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:951,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:961,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:969,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:978,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:980,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:986,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:986,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:989,1
    - Dst: generate_unverifiable_g
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:991,1
    - Dst: ossl_ffc_params_validate_unverifiable_g
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:994,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1000,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1005,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1006,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1009,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1010,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1013,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1014,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1018,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1029,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1030,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1031,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1032,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 194
    argCount: 8
    argNames:
    - libctx
    - params
    - mode
    - type
    - L
    - N
    - res
    - cb
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - int
    - size_t
    - size_t
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 1034
    functionName: ossl_ffc_params_FIPS186_2_gen_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 1
    functionsReached:
    - BN_dup
    - memcpy
    - BN_MONT_CTX_set
    - BN_CTX_start
    - BN_CTX_get
    - generate_q_fips186_2
    - ossl_ffc_params_set_validate_params
    - BN_cmp
    - BN_sub
    - ossl_ffc_params_validate_unverifiable_g
    - EVP_MD_get_size
    - BN_div
    - generate_unverifiable_g
    - default_mdname
    - BN_free
    - BN_value_one
    - generate_p
    - BN_lshift
    - BN_MONT_CTX_new
    - EVP_MD_free
    - BN_CTX_end
    - BN_GENCB_call
    - BN_CTX_new_ex
    - BN_MONT_CTX_free
    - BN_CTX_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx,\n                                         FFC_PARAMS
      *params, int mode, int type,\n                                         size_t
      L, size_t N, int *res,\n                                         BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_FIPS186_4_gen_verify
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - libctx
    - params
    - type
    - L
    - N
    - res
    - cb
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - size_t
    - size_t
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1036
    functionDepth: 4
    functionLinenumber: 1036
    functionLinenumberEnd: 1043
    functionName: ossl_ffc_params_FIPS186_4_generate
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_FIPS186_4_gen_verify
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_FIPS186_4_generate(OSSL_LIB_CTX *libctx, FFC_PARAMS
      *params,\n                                       int type, size_t L, size_t
      N,\n                                       int *res, BN_GENCB *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_FIPS186_2_gen_verify
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1050,1
    - Dst: ossl_ffc_params_enable_flags
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - libctx
    - params
    - type
    - L
    - N
    - res
    - cb
    argTypes:
    - OSSL_LIB_CTX*
    - FFC_PARAMS*
    - int
    - size_t
    - size_t
    - int*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1046
    functionDepth: 4
    functionLinenumber: 1046
    functionLinenumberEnd: 1057
    functionName: ossl_ffc_params_FIPS186_2_generate
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_params_generate.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_FIPS186_2_gen_verify
    - ossl_ffc_params_enable_flags
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_params_FIPS186_2_generate(OSSL_LIB_CTX *libctx, FFC_PARAMS
      *params,\n                                       int type, size_t L, size_t
      N,\n                                       int *res, BN_GENCB *cb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:32,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:37,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:40,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:42,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:45,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:46,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:48,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:53,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:54,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - params
    - pub_key
    - ret
    argTypes:
    - FFC_PARAMS*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 57
    functionName: ossl_ffc_validate_public_key_partial
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_CTX_free
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_copy
    - BN_set_word
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_validate_public_key_partial(const FFC_PARAMS *params,\n
      \                                        const BIGNUM *pub_key, int *ret)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_validate_public_key_partial
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:69,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:73,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:76,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:77,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:81,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:83,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:90,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:91,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - params
    - pub_key
    - ret
    argTypes:
    - FFC_PARAMS*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 94
    functionName: ossl_ffc_validate_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c
    functionUses: 0
    functionsReached:
    - BN_is_one
    - BN_CTX_free
    - ossl_ffc_validate_public_key_partial
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_mod_exp
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_validate_public_key(const FFC_PARAMS *params,\n                                 const
      BIGNUM *pub_key, int *ret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:113,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:113,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - upper
    - priv
    - ret
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: ossl_ffc_validate_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_key_validate.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_ffc_validate_private_key(const BIGNUM *upper, const BIGNUM
      *priv,\n                                  int *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sz
    - ','
    - keylength
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: FFDHE
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFDHE(sz, keylength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sz
    - ','
    - keylength
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: MODP
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODP(sz, keylength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - uid
    - ','
    - sz
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: RFC5114
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RFC5114(name, uid, sz, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sz
    - ','
    - keylength
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FFDHE
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFDHE(sz, keylength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sz
    - ','
    - keylength
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MODP
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MODP(sz, keylength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - uid
    - ','
    - sz
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: RFC5114
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RFC5114(name, uid, sz, tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:94,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: ossl_ffc_name_to_dh_named_group
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    linkageType: ''
    returnType: DH_NAMED_GROUP
    signature: DH_NAMED_GROUP *ossl_ffc_name_to_dh_named_group(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - uid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: ossl_ffc_uid_to_dh_named_group
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: DH_NAMED_GROUP
    signature: DH_NAMED_GROUP *ossl_ffc_uid_to_dh_named_group(int uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:119,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:121,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:122,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - p
    - q
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: ossl_ffc_numbers_to_dh_named_group
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    - OSSL_NELEM
    linkageType: ''
    returnType: DH_NAMED_GROUP
    signature: "DH_NAMED_GROUP *ossl_ffc_numbers_to_dh_named_group(const BIGNUM *p,\n
      \                                                        const BIGNUM *q,\n
      \                                                        const BIGNUM *g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - DH_NAMED_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: ossl_ffc_named_group_get_uid
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_named_group_get_uid(const DH_NAMED_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - DH_NAMED_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: ossl_ffc_named_group_get_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_ffc_named_group_get_name(const DH_NAMED_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - DH_NAMED_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: ossl_ffc_named_group_get_keylength
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_named_group_get_keylength(const DH_NAMED_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - DH_NAMED_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: ossl_ffc_named_group_get_q
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ossl_ffc_named_group_get_q(const DH_NAMED_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ffc
    - group
    argTypes:
    - FFC_PARAMS*
    - DH_NAMED_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: ossl_ffc_named_group_set
    functionSourceFile: /src/openssl-3.0.15/crypto/ffc/ffc_dh.c
    functionUses: 1
    functionsReached:
    - ossl_ffc_params_set0_pqg
    linkageType: ''
    returnType: int
    signature: int ossl_ffc_named_group_set(FFC_PARAMS *ffc, const DH_NAMED_GROUP
      *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: BUF_MEM_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_new
    linkageType: ''
    returnType: BUF_MEM
    signature: BUF_MEM *BUF_MEM_new_ex(unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: BUF_MEM_new
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 4
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BUF_MEM
    signature: BUF_MEM *BUF_MEM_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:49,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BUF_MEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: BUF_MEM_free
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void BUF_MEM_free(BUF_MEM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:62,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:65,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: sec_alloc_realloc
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_clear_free
    - OPENSSL_secure_malloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *sec_alloc_realloc(BUF_MEM *str, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:90,1
    - Dst: sec_alloc_realloc
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:95,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:99,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 108
    functionName: BUF_MEM_grow
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 2
    functionsReached:
    - OPENSSL_realloc
    - memset
    - sec_alloc_realloc
    - ERR_raise
    linkageType: ''
    returnType: size_t
    signature: size_t BUF_MEM_grow(BUF_MEM *str, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:117,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:128,1
    - Dst: sec_alloc_realloc
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:133,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:137,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/buffer/buffer.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - BUF_MEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 146
    functionName: BUF_MEM_grow_clean
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 2
    functionsReached:
    - OPENSSL_clear_realloc
    - memset
    - sec_alloc_realloc
    - ERR_raise
    linkageType: ''
    returnType: size_t
    signature: size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: BUF_reverse
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BUF_reverse(unsigned char *out, const unsigned char *in, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/buffer/buf_err.c:26,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/buffer/buf_err.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: ossl_err_load_BUF_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/buffer/buf_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_BUF_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: F1
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F1(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: F2
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F2(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: F3
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F3(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: F4
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F4(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: F5
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F5(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: RIP1
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP1(a,b,c,d,e,w,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: RIP2
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP2(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: RIP3
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP3(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: RIP4
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP4(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - w
    - ','
    - s
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: RIP5
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIP5(a,b,c,d,e,w,s,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - RIPEMD160_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: RIPEMD160_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int RIPEMD160_Init(RIPEMD160_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:65,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:66,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:67,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:68,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:69,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:70,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:71,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:72,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:73,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:74,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:75,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:76,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:77,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:78,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:79,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:80,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:81,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:82,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:83,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:84,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:85,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:86,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:87,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:88,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:89,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:90,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:91,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:92,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:93,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:94,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:95,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:96,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:97,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:98,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:99,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:100,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:101,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:102,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:103,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:104,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:105,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:106,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:107,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:108,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:109,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:110,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:111,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:112,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:114,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:115,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:116,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:117,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:118,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:119,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:120,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:121,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:122,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:123,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:124,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:125,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:126,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:127,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:128,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:129,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:131,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:132,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:133,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:134,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:135,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:136,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:137,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:138,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:139,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:140,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:141,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:142,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:143,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:144,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:145,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:146,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:148,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:149,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:150,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:151,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:152,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:153,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:154,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:155,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:156,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:157,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:158,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:159,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:160,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:161,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:162,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:163,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:165,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:166,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:167,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:168,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:169,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:170,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:171,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:172,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:173,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:174,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:175,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:176,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:177,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:178,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:179,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:180,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:194,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:195,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:196,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:197,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:198,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:199,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:200,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:201,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:202,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:203,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:204,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:205,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:206,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:207,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:208,1
    - Dst: RIP5
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:209,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:211,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:212,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:213,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:214,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:215,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:216,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:217,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:218,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:219,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:220,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:221,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:222,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:223,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:224,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:225,1
    - Dst: RIP4
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:226,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:228,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:229,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:230,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:231,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:232,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:233,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:234,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:235,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:236,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:237,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:238,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:239,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:240,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:241,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:242,1
    - Dst: RIP3
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:243,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:245,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:246,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:247,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:248,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:249,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:250,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:251,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:252,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:253,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:254,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:255,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:256,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:257,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:258,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:259,1
    - Dst: RIP2
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:260,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:262,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:263,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:264,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:265,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:266,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:267,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:268,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:269,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:270,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:271,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:272,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:273,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:274,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:275,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:276,1
    - Dst: RIP1
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 216
    argCount: 3
    argNames:
    - ctx
    - p
    - num
    argTypes:
    - RIPEMD160_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 287
    functionName: ripemd160_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c
    functionUses: 0
    functionsReached:
    - RIP1
    - RIP4
    - HOST_c2l
    - RIP5
    - RIP3
    - RIP2
    - X
    linkageType: ''
    returnType: void
    signature: void ripemd160_block_data_order(RIPEMD160_CTX *ctx, const void *p,
      size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_dgst.c
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RIPEMD160_Init
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_one.c:28,1
    - Dst: RIPEMD160_Update
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_one.c:30,1
    - Dst: RIPEMD160_Final
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_one.c:31,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ripemd/rmd_one.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: RIPEMD160
    functionSourceFile: /src/openssl-3.0.15/crypto/ripemd/rmd_one.c
    functionUses: 0
    functionsReached:
    - RIPEMD160_Init
    - OPENSSL_cleanse
    - RIPEMD160_Update
    - RIPEMD160_Final
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned
      char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: rotl
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline rotl(uint32_t a, uint8_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: load_u32_be
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline load_u32_be(const uint8_t *b, uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - b
    argTypes:
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: store_u32_be
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline store_u32_be(uint32_t v, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:121,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:121,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:121,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: SM4_T_slow
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - rotl
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline SM4_T_slow(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:127,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:128,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: SM4_T
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - rotl
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline SM4_T(uint32_t X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:157,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:158,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:159,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:160,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:171,1
    - Dst: rotl
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - key
    - ks
    argTypes:
    - uint8_t*
    - SM4_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 177
    functionName: ossl_sm4_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - load_u32_be
    - rotl
    linkageType: ''
    returnType: int
    signature: int ossl_sm4_set_key(const uint8_t *key, SM4_KEY *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - k0
    - ','
    - k1
    - ','
    - k2
    - ','
    - k3
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: SM4_RNDS
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SM4_RNDS(k0, k1, k2, k3, F)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:189,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:190,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:191,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:192,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:198,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:199,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:200,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:201,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:202,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:203,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:204,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:205,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:207,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:208,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:209,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - uint8_t*
    - uint8_t*
    - SM4_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: ossl_sm4_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - SM4_RNDS
    - store_u32_be
    - load_u32_be
    linkageType: ''
    returnType: void
    signature: void ossl_sm4_encrypt(const uint8_t *in, uint8_t *out, const SM4_KEY
      *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:215,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:216,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:217,1
    - Dst: load_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:218,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:220,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:221,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:222,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:223,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:224,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:225,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:226,1
    - Dst: SM4_RNDS
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:227,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:229,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:230,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:231,1
    - Dst: store_u32_be
      Src: /src/openssl-3.0.15/crypto/sm4/sm4.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - uint8_t*
    - uint8_t*
    - SM4_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: ossl_sm4_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/sm4/sm4.c
    functionUses: 0
    functionsReached:
    - SM4_RNDS
    - store_u32_be
    - load_u32_be
    linkageType: ''
    returnType: void
    signature: void ossl_sm4_decrypt(const uint8_t *in, uint8_t *out, const SM4_KEY
      *ks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k1
    - l
    - bl
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: make_kn
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_kn(unsigned char *k1, const unsigned char *l, int bl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:56,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:57,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: CMAC_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - ERR_raise
    linkageType: ''
    returnType: CMAC_CTX
    signature: CMAC_CTX *CMAC_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:71,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:72,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:73,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:74,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: CMAC_CTX_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void CMAC_CTX_cleanup(CMAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: CMAC_CTX_get0_cipher_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:88,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: CMAC_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - CMAC_CTX_cleanup
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void CMAC_CTX_free(CMAC_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:99,1
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:101,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:103,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:104,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:105,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - CMAC_CTX*
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: CMAC_CTX_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - memcpy
    - EVP_CIPHER_CTX_copy
    linkageType: ''
    returnType: int
    signature: int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:121,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:123,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:123,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:131,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:140,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:142,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:144,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:146,1
    - Dst: EVP_Cipher
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:148,1
    - Dst: make_kn
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:150,1
    - Dst: make_kn
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:151,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:152,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:154,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:157,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - key
    - keylen
    - cipher
    - impl
    argTypes:
    - CMAC_CTX*
    - void*
    - size_t
    - EVP_CIPHER*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 161
    functionName: CMAC_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CIPHER_CTX_get0_cipher
    - make_kn
    - EVP_CIPHER_CTX_get_block_size
    - OPENSSL_cleanse
    - EVP_Cipher
    - EVP_EncryptInit_ex
    - memset
    linkageType: ''
    returnType: int
    signature: "int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,\n              const
      EVP_CIPHER *cipher, ENGINE *impl)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:172,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:181,1
    - Dst: EVP_Cipher
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:189,1
    - Dst: EVP_Cipher
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:194,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - in
    - dlen
    argTypes:
    - CMAC_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 204
    functionName: CMAC_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - EVP_Cipher
    - memcpy
    linkageType: ''
    returnType: int
    signature: int CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:212,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:226,1
    - Dst: EVP_Cipher
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:230,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - out
    - poutlen
    argTypes:
    - CMAC_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 235
    functionName: CMAC_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - memset
    - OPENSSL_cleanse
    - EVP_Cipher
    linkageType: ''
    returnType: int
    signature: int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cmac/cmac.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 249
    functionName: CMAC_resume
    functionSourceFile: /src/openssl-3.0.15/crypto/cmac/cmac.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: int CMAC_resume(CMAC_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:27,1
    - Dst: PKCS5_pbe2_set_iv_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:30,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:33,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:34,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:37,1
    - Dst: PKCS5_pbe2_set_iv_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:40,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:43,1
    - Dst: PKCS5_pbe_set_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:44,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:48,1
    - Dst: PKCS8_set0_pbe_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:51,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 10
    argNames:
    - pbe_nid
    - cipher
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    - libctx
    - propq
    argTypes:
    - int
    - EVP_CIPHER*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 58
    functionName: PKCS8_encrypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c
    functionUses: 0
    functionsReached:
    - PKCS5_pbe_set_ex
    - ERR_set_mark
    - ERR_raise
    - X509_ALGOR_free
    - EVP_PBE_find
    - ERR_pop_to_mark
    - PKCS5_pbe2_set_iv_ex
    - ERR_clear_last_mark
    - PKCS8_set0_pbe_ex
    linkageType: ''
    returnType: X509_SIG
    signature: "X509_SIG *PKCS8_encrypt_ex(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,\n                           OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: PKCS8_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c
    functionUses: 1
    functionsReached:
    - PKCS8_encrypt_ex
    linkageType: ''
    returnType: X509_SIG
    signature: "X509_SIG *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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_i2d_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:77,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:80,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:87,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - pass
    - passlen
    - p8inf
    - pbe
    - ctx
    - propq
    argTypes:
    - char*
    - int
    - PKCS8_PRIV_KEY_INFO*
    - X509_ALGOR*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: PKCS8_set0_pbe_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c
    functionUses: 1
    functionsReached:
    - PKCS12_item_i2d_encrypt_ex
    - ASN1_OCTET_STRING_free
    - ASN1_ITEM_rptr
    - OPENSSL_zalloc
    - ERR_raise
    linkageType: ''
    returnType: X509_SIG
    signature: "X509_SIG *PKCS8_set0_pbe_ex(const char *pass, int passlen,\n                            PKCS8_PRIV_KEY_INFO
      *p8inf, X509_ALGOR *pbe,\n                            OSSL_LIB_CTX *ctx, const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_set0_pbe_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pass
    - passlen
    - p8inf
    - pbe
    argTypes:
    - char*
    - int
    - PKCS8_PRIV_KEY_INFO*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: PKCS8_set0_pbe
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_p8e.c
    functionUses: 0
    functionsReached:
    - PKCS8_set0_pbe_ex
    linkageType: ''
    returnType: X509_SIG
    signature: "X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen,\n                         PKCS8_PRIV_KEY_INFO
      *p8inf, X509_ALGOR *pbe)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:28,1
    - Dst: EVP_PKEY_get_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:31,1
    - Dst: X509at_add1_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bag
    - pkey
    - nid
    argTypes:
    - PKCS12_SAFEBAG*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: copy_bag_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_attr_by_NID
    - X509at_add1_attr
    - EVP_PKEY_get_attr
    linkageType: ''
    returnType: int
    signature: int copy_bag_attr(PKCS12_SAFEBAG *bag, EVP_PKEY *pkey, int nid)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:43,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:44,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:64,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:69,1
    - Dst: X509_digest
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:71,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:71,1
    - Dst: X509_alias_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:77,1
    - Dst: X509_keyid_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:82,1
    - Dst: pkcs12_add_cert_bag
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:85,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:89,1
    - Dst: PKCS12_add_cert
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:90,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:90,1
    - Dst: PKCS12_add_safe_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:94,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:98,1
    - Dst: PKCS12_add_key_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:102,1
    - Dst: copy_bag_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:108,1
    - Dst: copy_bag_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:110,1
    - Dst: PKCS12_add_friendlyname
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:113,1
    - Dst: PKCS12_add_localkeyid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:115,1
    - Dst: PKCS12_add_safe
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:119,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:122,1
    - Dst: PKCS12_add_safes_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:125,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:130,1
    - Dst: PKCS12_set_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:135,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:141,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:142,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:143,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 81
    argCount: 12
    argNames:
    - pass
    - name
    - pkey
    - cert
    - ca
    - nid_key
    - nid_cert
    - iter
    - mac_iter
    - keytype
    - ctx
    - propq
    argTypes:
    - char*
    - char*
    - EVP_PKEY*
    - X509*
    - STACK_OF*
    - int
    - int
    - int
    - int
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 146
    functionName: PKCS12_create_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - copy_bag_attr
    - PKCS12_add_localkeyid
    - PKCS12_add_friendlyname
    - X509_alias_get0
    - pkcs12_add_cert_bag
    - X509_digest
    - PKCS12_add_safes_ex
    - sk_PKCS12_SAFEBAG_pop_free
    - X509_check_private_key
    - PKCS12_free
    - ERR_raise
    - sk_X509_num
    - STACK_OF
    - PKCS12_set_mac
    - PKCS12_add_safe
    - X509_keyid_get0
    - PKCS12_add_safe_ex
    - sk_PKCS7_pop_free
    - PKCS12_add_cert
    - PKCS12_add_key_ex
    - EVP_sha1
    linkageType: ''
    returnType: PKCS12
    signature: "PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY
      *pkey,\n                         X509 *cert, STACK_OF(X509) *ca, int nid_key,
      int nid_cert,\n                         int iter, int mac_iter, int keytype,\n
      \                        OSSL_LIB_CTX *ctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_create_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: PKCS12_create
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c
    functionUses: 0
    functionsReached:
    - PKCS12_create_ex
    linkageType: ''
    returnType: PKCS12
    signature: "PKCS12 *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: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_create_cert
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:166,1
    - Dst: PKCS12_add_friendlyname
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:169,1
    - Dst: PKCS12_add_localkeyid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:172,1
    - Dst: pkcs12_add_bag
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:175,1
    - Dst: PKCS12_SAFEBAG_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c:181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 6
    argNames:
    - pbags
    - cert
    - name
    - namelen
    - keyid
    - keyidlen
    argTypes:
    - STACK_OF**
    - X509*
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 183
    functionName: pkcs12_add_cert_bag
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crt.c
    functionUses: 1
    functionsReached:
    - PKCS12_add_localkeyid
    - PKCS12_add_friendlyname
    - PKCS12_SAFEBAG_create_cert
    - pkcs12_add_bag
    - PKCS12_SAFEBAG_free
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "PKCS12_SAFEBAG *pkcs12_add_cert_bag(STACK_OF(PKCS12_SAFEBAG) **pbags,\n
      \                                          X509 *cert,\n                                           const
      char *name,\n                                           int namelen,\n                                           unsigned
      char *keyid,\n                                           int keyidlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/pk12err.c:57,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/pkcs12/pk12err.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: ossl_err_load_PKCS12_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/pk12err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_PKCS12_strings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:37,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:43,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:44,1
    - Dst: newpass_p12
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:48,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p12
    - oldpass
    - newpass
    argTypes:
    - PKCS12*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: PKCS12_newpass
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c
    functionUses: 0
    functionsReached:
    - newpass_p12
    - PKCS12_verify_mac
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:60,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:61,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:69,1
    - Dst: sk_PKCS7_new_null
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:71,1
    - Dst: sk_PKCS7_num
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:73,1
    - Dst: sk_PKCS7_value
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:74,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:75,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:77,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:79,1
    - Dst: alg_get
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:81,1
    - Dst: newpass_bags
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:89,1
    - Dst: PKCS12_pack_p7data
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:93,1
    - Dst: PKCS12_pack_p7encdata
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:95,1
    - Dst: sk_PKCS7_push
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:97,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:99,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:106,1
    - Dst: PKCS12_pack_authsafes
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:108,1
    - Dst: PKCS12_gen_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:111,1
    - Dst: X509_SIG_getm
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:113,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:114,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:122,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:124,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:127,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:128,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:129,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 3
    argNames:
    - p12
    - oldpass
    - newpass
    argTypes:
    - PKCS12*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 131
    functionName: newpass_p12
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c
    functionUses: 1
    functionsReached:
    - sk_PKCS7_push
    - OBJ_obj2nid
    - PKCS12_pack_p7encdata
    - PKCS12_pack_authsafes
    - sk_PKCS7_num
    - PKCS12_pack_p7data
    - PKCS12_unpack_p7encdata
    - PKCS12_unpack_p7data
    - newpass_bags
    - sk_PKCS12_SAFEBAG_pop_free
    - sk_PKCS7_new_null
    - PKCS12_gen_mac
    - X509_SIG_getm
    - alg_get
    - STACK_OF
    - PKCS12_unpack_authsafes
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - sk_PKCS7_pop_free
    - sk_PKCS7_value
    linkageType: ''
    returnType: int
    signature: int newpass_p12(PKCS12 *p12, const char *oldpass, const char *newpass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:154,1
    - Dst: PKCS8_decrypt
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:157,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:159,1
    - Dst: alg_get
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:160,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:161,1
    - Dst: PKCS8_encrypt
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:164,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:166,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - bag
    - oldpass
    - newpass
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 172
    functionName: newpass_bag
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_get_nid
    - PKCS8_PRIV_KEY_INFO_free
    - X509_SIG_free
    - alg_get
    - X509_SIG_get0
    - PKCS8_encrypt
    - PKCS8_decrypt
    linkageType: ''
    returnType: int
    signature: "int newpass_bag(PKCS12_SAFEBAG *bag, const char *oldpass,\n                       const
      char *newpass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:179,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:179,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:182,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:183,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - alg
    - pnid
    - piter
    - psaltlen
    argTypes:
    - X509_ALGOR*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 187
    functionName: alg_get
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_npas.c
    functionUses: 2
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_INTEGER_get
    - ASN1_TYPE_unpack_sequence
    - PBEPARAM_free
    linkageType: ''
    returnType: int
    signature: "int alg_get(const X509_ALGOR *alg, int *pnid, int *piter,\n                   int
      *psaltlen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:31,1
    - Dst: EVP_PBE_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:36,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:46,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:47,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:47,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:49,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:50,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:58,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:62,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:64,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:71,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:78,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:84,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:86,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:92,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:92,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:94,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:99,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:110,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 10
    argNames:
    - algor
    - pass
    - passlen
    - in
    - inlen
    - data
    - datalen
    - en_de
    - libctx
    - propq
    argTypes:
    - X509_ALGOR*
    - char*
    - int
    - unsigned char*
    - int
    - unsigned char**
    - int*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 113
    functionName: PKCS12_pbe_crypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_get0_cipher
    - EVP_CIPHER_CTX_free
    - EVP_CipherUpdate
    - EVP_CIPHER_CTX_get_block_size
    - OPENSSL_malloc
    - EVP_CIPHER_get_flags
    - ERR_raise
    - ERR_raise_data
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_ctrl
    - EVP_PBE_CipherInit_ex
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *PKCS12_pbe_crypt_ex(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,\n                                   OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_pbe_crypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - algor
    - pass
    - passlen
    - in
    - inlen
    - data
    - datalen
    - en_de
    argTypes:
    - X509_ALGOR*
    - char*
    - int
    - unsigned char*
    - int
    - unsigned char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: PKCS12_pbe_crypt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 1
    functionsReached:
    - PKCS12_pbe_crypt_ex
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *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: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_pbe_crypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:140,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:145,1
    - Dst: BIO_dump
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:147,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:148,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:149,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 8
    argNames:
    - algor
    - it
    - pass
    - passlen
    - oct
    - zbuf
    - libctx
    - propq
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - ASN1_OCTET_STRING*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 156
    functionName: PKCS12_item_decrypt_d2i_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - PKCS12_pbe_crypt_ex
    - ASN1_item_d2i
    - OPENSSL_cleanse
    - ERR_raise
    - OPENSSL_free
    - BIO_dump
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM
      *it,\n                                 const char *pass, int passlen,\n                                 const
      ASN1_OCTET_STRING *oct, int zbuf,\n                                 OSSL_LIB_CTX
      *libctx,\n                                 const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:145,1
    - Dst: BIO_dump
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - BIO_dump
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(PKCS12_DECRYPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_decrypt_d2i_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - algor
    - it
    - pass
    - passlen
    - oct
    - zbuf
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - ASN1_OCTET_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: PKCS12_item_decrypt_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - PKCS12_item_decrypt_d2i_ex
    linkageType: ''
    returnType: void
    signature: "void *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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:183,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:186,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:188,1
    - Dst: PKCS12_pbe_crypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:191,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:193,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:194,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:199,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 8
    argNames:
    - algor
    - it
    - pass
    - passlen
    - obj
    - zbuf
    - ctx
    - propq
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - void*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 204
    functionName: PKCS12_item_i2d_encrypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 1
    functionsReached:
    - PKCS12_pbe_crypt_ex
    - ASN1_OCTET_STRING_free
    - OPENSSL_cleanse
    - ASN1_item_i2d
    - ERR_raise
    - OPENSSL_free
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor,\n
      \                                             const ASN1_ITEM *it,\n                                              const
      char *pass, int passlen,\n                                              void
      *obj, int zbuf,\n                                              OSSL_LIB_CTX
      *ctx,\n                                              const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_i2d_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - algor
    - it
    - pass
    - passlen
    - obj
    - zbuf
    argTypes:
    - X509_ALGOR*
    - ASN1_ITEM*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: PKCS12_item_i2d_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_decr.c
    functionUses: 0
    functionsReached:
    - PKCS12_item_i2d_encrypt_ex
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor,\n                                           const
      ASN1_ITEM *it,\n                                           const char *pass,
      int passlen,\n                                           void *obj, int zbuf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:22,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:23,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:26,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:28,1
    - Dst: ossl_pkcs7_set0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:30,1
    - Dst: ossl_pkcs7_set1_propq
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:32,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:38,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:44,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:50,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - mode
    - ctx
    - propq
    argTypes:
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 52
    functionName: PKCS12_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - PKCS12_new
    - OBJ_nid2obj
    - PKCS12_free
    - ossl_pkcs7_set0_libctx
    - ERR_raise
    - ossl_pkcs7_set1_propq
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_init_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: PKCS12_init
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_init.c
    functionUses: 0
    functionsReached:
    - PKCS12_init_ex
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *PKCS12_init(int mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_BAGS_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:27,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:30,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:32,1
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:36,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:40,1
    - Dst: PKCS12_BAGS_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - obj
    - it
    - nid1
    - nid2
    argTypes:
    - void*
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: PKCS12_item_pack_safebag
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - PKCS12_BAGS_new
    - OBJ_nid2obj
    - ERR_raise
    - ASN1_item_pack
    - PKCS12_BAGS_free
    - PKCS12_SAFEBAG_new
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM
      *it,\n                                         int nid1, int nid2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:103,1
    - Dst: PKCS7_set_type
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:107,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:111,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:112,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:112,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:114,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:115,1
    - Dst: PKCS5_pbe2_set_iv_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:118,1
    - Dst: PKCS5_pbe_set_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:120,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:124,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:127,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:129,1
    - Dst: PKCS12_item_i2d_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:131,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:133,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:137,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:141,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 9
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - bags
    - ctx
    - propq
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - STACK_OF*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 144
    functionName: PKCS12_pack_p7encdata_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - PKCS7_new_ex
    - PKCS5_pbe_set_ex
    - PKCS12_item_i2d_encrypt_ex
    - PKCS7_set_type
    - ASN1_ITEM_rptr
    - EVP_CIPHER_free
    - ERR_set_mark
    - ERR_raise
    - X509_ALGOR_free
    - PKCS7_free
    - OBJ_nid2sn
    - ERR_pop_to_mark
    - EVP_get_cipherbynid
    - PKCS5_pbe2_set_iv_ex
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: PKCS7
    signature: "PKCS7 *PKCS12_pack_p7encdata_ex(int pbe_nid, const char *pass, int
      passlen,\n                                unsigned char *salt, int saltlen,
      int iter,\n                                STACK_OF(PKCS12_SAFEBAG) *bags,\n
      \                               OSSL_LIB_CTX *ctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_pack_p7encdata_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - bags
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: PKCS12_pack_p7encdata
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c
    functionUses: 1
    functionsReached:
    - PKCS12_pack_p7encdata_ex
    linkageType: ''
    returnType: PKCS7
    signature: "PKCS7 *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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_decrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bag
    - pass
    - passlen
    - ctx
    - propq
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: PKCS12_decrypt_skey_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - PKCS8_decrypt_ex
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey_ex(const PKCS12_SAFEBAG *bag,\n
      \                                           const char *pass, int passlen,\n
      \                                           OSSL_LIB_CTX *ctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_decrypt_skey_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bag
    - pass
    - passlen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: PKCS12_decrypt_skey
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_add.c
    functionUses: 0
    functionsReached:
    - PKCS12_decrypt_skey_ex
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag,\n
      \                                        const char *pass, int passlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: PKCS12_PBE_add
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS12_PBE_add(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:39,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:41,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:48,1
    - Dst: PKCS12_key_gen_utf8_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:51,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:55,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:56,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:59,1
    - Dst: PKCS12_key_gen_utf8_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:60,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:61,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:64,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:65,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:71,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:72,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:73,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 9
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 76
    functionName: PKCS12_PBE_keyivgen_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached:
    - PKCS12_key_gen_utf8_ex
    - EVP_CIPHER_get_key_length
    - ASN1_ITEM_rptr
    - OPENSSL_cleanse
    - ASN1_INTEGER_get
    - ERR_raise
    - EVP_CipherInit_ex
    - ASN1_TYPE_unpack_sequence
    - PBEPARAM_free
    - EVP_CIPHER_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int PKCS12_PBE_keyivgen_ex(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,\n                           OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_PBE_keyivgen_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: PKCS12_PBE_keyivgen
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_crpt.c
    functionUses: 0
    functionsReached:
    - PKCS12_PBE_keyivgen_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:47,1
    - Dst: PKCS12_mac_present
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:61,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:62,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:67,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:71,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:78,1
    - Dst: parse_pk12
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:82,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:83,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:85,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:87,1
    - Dst: sk_X509_shift
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:92,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:97,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:98,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:99,1
    - Dst: ossl_x509_add_cert_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:107,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:111,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:113,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:120,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:124,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:127,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:128,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 69
    argCount: 5
    argNames:
    - p12
    - pass
    - pkey
    - cert
    - ca
    argTypes:
    - PKCS12*
    - char*
    - EVP_PKEY**
    - X509**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 131
    functionName: PKCS12_parse
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - X509_check_private_key
    - sk_X509_pop_free
    - X509_free
    - ERR_GET_REASON
    - sk_X509_shift
    - PKCS12_verify_mac
    - ERR_raise
    - ERR_GET_LIB
    - PKCS12_mac_present
    - sk_X509_new_null
    - parse_pk12
    - STACK_OF
    - ERR_peek_last_error
    - ERR_set_mark
    - ERR_pop_to_mark
    - EVP_PKEY_free
    - sk_X509_free
    - ossl_x509_add_cert_new
    linkageType: ''
    returnType: int
    signature: "int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509
      **cert,\n                 STACK_OF(X509) **ca)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:139,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:140,1
    - Dst: PKCS12_unpack_authsafes
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:144,1
    - Dst: sk_PKCS7_num
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:146,1
    - Dst: sk_PKCS7_value
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:147,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:148,1
    - Dst: PKCS12_unpack_p7data
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:150,1
    - Dst: PKCS12_unpack_p7encdata
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:152,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:156,1
    - Dst: parse_bags
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:159,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:160,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:161,1
    - Dst: sk_PKCS12_SAFEBAG_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:164,1
    - Dst: sk_PKCS7_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - PKCS12*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 168
    functionName: parse_pk12
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - sk_PKCS12_SAFEBAG_pop_free
    - PKCS12_unpack_p7encdata
    - sk_PKCS7_pop_free
    - OBJ_obj2nid
    - PKCS12_unpack_p7data
    - sk_PKCS7_value
    - STACK_OF
    - PKCS12_unpack_authsafes
    - sk_PKCS7_num
    - parse_bags
    linkageType: ''
    returnType: int
    signature: "int parse_pk12(PKCS12 *p12, const char *pass, int passlen,\n                      EVP_PKEY
      **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_PKCS12_SAFEBAG_num
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:175,1
    - Dst: parse_bag
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:176,1
    - Dst: sk_PKCS12_SAFEBAG_value
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - bags
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - STACK_OF*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: parse_bags
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - sk_PKCS12_SAFEBAG_value
    - parse_bag
    - sk_PKCS12_SAFEBAG_num
    linkageType: ''
    returnType: int
    signature: "int parse_bags(const STACK_OF(PKCS12_SAFEBAG) *bags, const char *pass,\n
      \                     int passlen, EVP_PKEY **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:193,1
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:196,1
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:199,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:203,1
    - Dst: PKCS12_SAFEBAG_get0_p8inf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:203,1
    - Dst: PKCS12_decrypt_skey
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:211,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:213,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:214,1
    - Dst: PKCS12_SAFEBAG_get_bag_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:221,1
    - Dst: PKCS12_SAFEBAG_get1_cert
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:223,1
    - Dst: X509_keyid_set1
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:225,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:226,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:233,1
    - Dst: X509_alias_set1
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:235,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:236,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:238,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:244,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:245,1
    - Dst: parse_bags
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:252,1
    - Dst: PKCS12_SAFEBAG_get0_safes
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c:252,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 5
    argNames:
    - bag
    - pass
    - passlen
    - pkey
    - ocerts
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    - EVP_PKEY**
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 259
    functionName: parse_bag
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_kiss.c
    functionUses: 1
    functionsReached:
    - X509_keyid_set1
    - PKCS12_SAFEBAG_get0_attr
    - X509_free
    - parse_bags
    - PKCS12_decrypt_skey
    - sk_X509_push
    - PKCS8_PRIV_KEY_INFO_free
    - OPENSSL_free
    - ASN1_STRING_to_UTF8
    - PKCS12_SAFEBAG_get_bag_nid
    - PKCS12_SAFEBAG_get1_cert
    - X509_alias_set1
    - PKCS12_SAFEBAG_get0_safes
    - EVP_PKCS82PKEY
    - PKCS12_SAFEBAG_get0_p8inf
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: int
    signature: "int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,\n
      \                    EVP_PKEY **pkey, STACK_OF(X509) *ocerts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p12
    argTypes:
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: PKCS12_mac_present
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PKCS12_mac_present(const PKCS12 *p12)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:36,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: PKCS12_get0_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - X509_SIG_get0
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:66,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:70,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:71,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 73
    functionName: pkcs12_gen_gost_mac_key
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - PKCS5_PBKDF2_HMAC
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int 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: 14
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:102,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:111,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:112,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:113,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:114,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:117,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:118,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:121,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:121,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:125,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:128,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:130,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:131,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:137,1
    - Dst: pkcs12_gen_gost_mac_key
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:139,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:148,1
    - Dst: PKCS12_key_gen_utf8_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:153,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:157,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:162,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:163,1
    - Dst: HMAC_Update
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:164,1
    - Dst: HMAC_Final
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:166,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:172,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:173,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:174,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - mac
    - maclen
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 176
    functionName: pkcs12_gen_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_free
    - OBJ_obj2nid
    - pkcs12_gen_gost_mac_key
    - OPENSSL_cleanse
    - X509_SIG_get0
    - HMAC_Update
    - HMAC_Init_ex
    - ASN1_INTEGER_get
    - ossl_safe_getenv
    - HMAC_CTX_new
    - EVP_MD_get_size
    - OBJ_obj2txt
    - ERR_raise
    - PKCS7_type_is_data
    - X509_ALGOR_get0
    - HMAC_Final
    - EVP_MD_get_type
    - PKCS12_key_gen_utf8_ex
    - ERR_set_mark
    - EVP_get_digestbynid
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkcs12_gen_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p12
    - pass
    - passlen
    - mac
    - maclen
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: PKCS12_gen_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - pkcs12_gen_mac
    linkageType: ''
    returnType: int
    signature: "int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen,\n                   unsigned
      char *mac, unsigned int *maclen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:192,1
    - Dst: pkcs12_gen_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:196,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:199,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:200,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:201,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - p12
    - pass
    - passlen
    argTypes:
    - PKCS12*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: PKCS12_verify_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 3
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - ERR_raise
    - X509_SIG_get0
    - CRYPTO_memcmp
    - pkcs12_gen_mac
    linkageType: ''
    returnType: int
    signature: int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:219,1
    - Dst: PKCS12_setup_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:222,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:223,1
    - Dst: pkcs12_gen_mac
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:229,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:230,1
    - Dst: X509_SIG_getm
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:233,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 7
    argNames:
    - p12
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - md_type
    argTypes:
    - PKCS12*
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 239
    functionName: PKCS12_set_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_set
    - ERR_raise
    - EVP_sha256
    - X509_SIG_getm
    - pkcs12_gen_mac
    - PKCS12_setup_mac
    linkageType: ''
    returnType: int
    signature: "int 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: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_MAC_DATA_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:247,1
    - Dst: PKCS12_MAC_DATA_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:250,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:253,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:254,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:258,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:267,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:272,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:276,1
    - Dst: X509_SIG_getm
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:278,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:279,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:279,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:279,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - p12
    - iter
    - salt
    - saltlen
    - md_type
    argTypes:
    - PKCS12*
    - int
    - unsigned char*
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 286
    functionName: PKCS12_setup_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_mutl.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - ASN1_INTEGER_set
    - X509_ALGOR_set0
    - memcpy
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ERR_raise
    - PKCS12_MAC_DATA_new
    - ASN1_INTEGER_new
    - X509_SIG_getm
    - EVP_MD_get_type
    - PKCS12_MAC_DATA_free
    linkageType: ''
    returnType: int
    signature: "int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int
      saltlen,\n                     const EVP_MD *md_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8d.c:21,1
    - Dst: PKCS12_item_decrypt_d2i_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8d.c:22,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8d.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - p8
    - pass
    - passlen
    - ctx
    - propq
    argTypes:
    - X509_SIG*
    - char*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: PKCS8_decrypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_p8d.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - X509_SIG_get0
    - PKCS12_item_decrypt_d2i_ex
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *PKCS8_decrypt_ex(const X509_SIG *p8, const char
      *pass,\n                                      int passlen, OSSL_LIB_CTX *ctx,\n
      \                                     const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_decrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_p8d.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p8
    - pass
    - passlen
    argTypes:
    - X509_SIG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: PKCS8_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_p8d.c
    functionUses: 3
    functionsReached:
    - PKCS8_decrypt_ex
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char
      *pass,\n                                   int passlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:23,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - asc
    - asclen
    - uni
    - unilen
    argTypes:
    - char*
    - int
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: OPENSSL_asc2uni
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - strlen
    - ERR_raise
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *OPENSSL_asc2uni(const char *asc, int asclen,\n                               unsigned
      char **uni, int *unilen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:60,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - uni
    - unilen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: OPENSSL_uni2asc
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_uni2asc(const unsigned char *uni, int unilen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:87,1
    - Dst: UTF8_getc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:90,1
    - Dst: OPENSSL_asc2uni
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:109,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:123,1
    - Dst: UTF8_getc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - asc
    - asclen
    - uni
    - unilen
    argTypes:
    - char*
    - int
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 152
    functionName: OPENSSL_utf82uni
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_asc2uni
    - strlen
    - UTF8_getc
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *OPENSSL_utf82uni(const char *asc, int asclen,\n                                unsigned
      char **uni, int *unilen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - str
    - utf16
    - len
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: bmp_to_utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: int bmp_to_utf8(char *str, const unsigned char *utf16, int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bmp_to_utf8
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:191,1
    - Dst: OPENSSL_uni2asc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:197,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:208,1
    - Dst: bmp_to_utf8
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:214,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - uni
    - unilen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 225
    functionName: OPENSSL_uni2utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_uni2asc
    - bmp_to_utf8
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:229,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p12
    argTypes:
    - BIO*
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: i2d_PKCS12_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS12_bio(BIO *bp, const PKCS12 *p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:235,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p12
    argTypes:
    - FILE*
    - PKCS12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: i2d_PKCS12_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:241,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p12
    argTypes:
    - BIO*
    - PKCS12**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: d2i_PKCS12_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:247,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p12
    argTypes:
    - FILE*
    - PKCS12**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: d2i_PKCS12_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: PKCS12
    signature: PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_asc2uni
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:32,1
    - Dst: PKCS12_key_gen_uni_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:35,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 11
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    - ctx
    - propq
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: PKCS12_key_gen_asc_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_asc2uni
    - PKCS12_key_gen_uni_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int PKCS12_key_gen_asc_ex(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,\n                          OSSL_LIB_CTX
      *ctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_key_gen_asc_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: PKCS12_key_gen_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - PKCS12_key_gen_asc_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_utf82uni
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:61,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:62,1
    - Dst: PKCS12_key_gen_uni_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:65,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 11
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    - ctx
    - propq
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: PKCS12_key_gen_utf8_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 2
    functionsReached:
    - OPENSSL_clear_free
    - OPENSSL_utf82uni
    - PKCS12_key_gen_uni_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int PKCS12_key_gen_utf8_ex(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,\n                           OSSL_LIB_CTX
      *ctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_key_gen_utf8_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: PKCS12_key_gen_utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - PKCS12_key_gen_utf8_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:92,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:95,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:96,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:100,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:101,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:103,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:105,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:107,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:108,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:112,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:113,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:114,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:115,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:116,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:117,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:118,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:119,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:121,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:124,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:126,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:127,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 11
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - id
    - iter
    - n
    - out
    - md_type
    - libctx
    - propq
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int
    - unsigned char*
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 131
    functionName: PKCS12_key_gen_uni_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 2
    functionsReached:
    - OSSL_TRACE_END
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - EVP_KDF_fetch
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_free
    - EVP_MD_get0_name
    - BIO_hex_string
    - EVP_KDF_CTX_free
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int PKCS12_key_gen_uni_ex(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,\n                          OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:112,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:113,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:114,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:115,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:116,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:117,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - BIO_hex_string
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(PKCS12_KEYGEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:124,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - BIO_hex_string
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(PKCS12_KEYGEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_key_gen_uni_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: PKCS12_key_gen_uni
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_key.c
    functionUses: 0
    functionsReached:
    - PKCS12_key_gen_uni_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bag
    - attr_nid
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: PKCS12_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bag
    - attr_nid
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: PKCS12_SAFEBAG_get0_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - PKCS12_get_attr_gen
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag,\n                                          int
      attr_nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_get_attr_gen
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:30,1
    - Dst: PKCS8_pkey_get0_attrs
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: PKCS8_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_get_attr_gen
    - PKCS8_pkey_get0_attrs
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: PKCS12_SAFEBAG_get0_p8inf
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG
      *bag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: PKCS12_SAFEBAG_get0_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: X509_SIG
    signature: X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: PKCS12_SAFEBAG_get0_safes
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: PKCS12_SAFEBAG_get0_type
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: PKCS12_SAFEBAG_get_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:67,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: PKCS12_SAFEBAG_get_bag_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: int
    signature: int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: PKCS12_SAFEBAG_get0_bag_type
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: PKCS12_SAFEBAG_get0_bag_obj
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:86,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:88,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:90,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: PKCS12_SAFEBAG_get1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_item_unpack
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: X509
    signature: X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get_nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:96,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:98,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:100,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: PKCS12_SAFEBAG_get1_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_item_unpack
    - PKCS12_SAFEBAG_get_nid
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_pack_safebag
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:106,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x509
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: PKCS12_SAFEBAG_create_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - PKCS12_item_pack_safebag
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_item_pack_safebag
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:112,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: PKCS12_SAFEBAG_create_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PKCS12_item_pack_safebag
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_BAGS_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:122,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:125,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:130,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:133,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:137,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:139,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:142,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:145,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:153,1
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:158,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:162,1
    - Dst: PKCS12_BAGS_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:166,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - type
    - vtype
    - value
    - len
    argTypes:
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 168
    functionName: PKCS12_SAFEBAG_create_secret
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_BAGS_new
    - ASN1_TYPE_new
    - ASN1_OCTET_STRING_free
    - OBJ_nid2obj
    - ASN1_OCTET_STRING_set
    - ERR_raise
    - ASN1_TYPE_set
    - ASN1_OCTET_STRING_new
    - PKCS12_BAGS_free
    - PKCS12_SAFEBAG_new
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype, const
      unsigned char *value, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:174,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:177,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: PKCS12_SAFEBAG_create0_p8inf
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - PKCS12_SAFEBAG_new
    - ERR_raise
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_new
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:189,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:193,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p8
    argTypes:
    - X509_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: PKCS12_SAFEBAG_create0_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - PKCS12_SAFEBAG_new
    - ERR_raise
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:215,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:216,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:216,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:218,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:219,1
    - Dst: PKCS8_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:224,1
    - Dst: PKCS12_SAFEBAG_create0_pkcs8
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:229,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:231,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 9
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    - ctx
    - propq
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 236
    functionName: PKCS12_SAFEBAG_create_pkcs8_encrypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_free
    - ERR_set_mark
    - PKCS8_encrypt_ex
    - OBJ_nid2sn
    - X509_SIG_free
    - ERR_pop_to_mark
    - EVP_get_cipherbynid
    - PKCS12_SAFEBAG_create0_pkcs8
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(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,\n                                                       OSSL_LIB_CTX
      *ctx,\n                                                       const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_create_pkcs8_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - pbe_nid
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - p8inf
    argTypes:
    - int
    - char*
    - int
    - unsigned char*
    - int
    - int
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: PKCS12_SAFEBAG_create_pkcs8_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_sbag.c
    functionUses: 0
    functionsReached:
    - PKCS12_SAFEBAG_create_pkcs8_encrypt_ex
    linkageType: ''
    returnType: PKCS12_SAFEBAG
    signature: "PKCS12_SAFEBAG *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: PKCS12_add_localkeyid
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 2
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name,\n
      \                         int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p8
    - usage
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: PKCS8_add_keyusage
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: PKCS12_add_friendlyname_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name,\n
      \                               int namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: PKCS12_add_friendlyname_utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name,\n
      \                               int namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: PKCS12_add_friendlyname_uni
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag,\n                                const
      unsigned char *name, int namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bag
    - name
    - namelen
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: PKCS12_add_CSPName_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, int
      namelen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - bag
    - nid
    - type
    - bytes
    - len
    argTypes:
    - PKCS12_SAFEBAG*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: PKCS12_add1_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add1_attr_by_NID(PKCS12_SAFEBAG *bag, int nid, int type,\n
      \                           const unsigned char *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - bag
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - PKCS12_SAFEBAG*
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: PKCS12_add1_attr_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int PKCS12_add1_attr_by_txt(PKCS12_SAFEBAG *bag, const char *attrname,
      int type,\n                            const unsigned char *bytes, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:100,1
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:101,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - attrs
    - attr_nid
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: PKCS12_get_attr_gen
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 3
    functionsReached:
    - X509_ATTRIBUTE_get0_type
    - X509at_get_attr_by_NID
    - X509at_get_attr
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs,\n
      \                              int attr_nid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12_SAFEBAG_get0_attr
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:109,1
    - Dst: OPENSSL_uni2utf8
      Src: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: PKCS12_get_friendlyname
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_uni2utf8
    - PKCS12_SAFEBAG_get0_attr
    linkageType: ''
    returnType: char
    signature: char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bag
    argTypes:
    - PKCS12_SAFEBAG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: PKCS12_SAFEBAG_get0_attrs
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs12/p12_attr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_init_thread_start
      Src: /src/openssl-3.0.15/crypto/async/async.c:39,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/async/async.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:44,1
    - Dst: async_fibre_init_dispatcher
      Src: /src/openssl-3.0.15/crypto/async/async.c:48,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 59
    functionName: async_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_fibre_init_dispatcher
    - CRYPTO_THREAD_set_local
    - OPENSSL_malloc
    - ERR_raise
    - ossl_init_thread_start
    - OPENSSL_free
    linkageType: ''
    returnType: async_ctx
    signature: async_ctx *async_ctx_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: async_get_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_get_local
    linkageType: ''
    returnType: async_ctx
    signature: async_ctx *async_get_ctx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:70,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: async_ctx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - async_get_ctx
    - CRYPTO_THREAD_set_local
    linkageType: ''
    returnType: int
    signature: int async_ctx_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/async/async.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: async_job_new
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASYNC_JOB
    signature: ASYNC_JOB *async_job_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:98,1
    - Dst: async_fibre_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: async_job_free
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - async_fibre_free
    linkageType: ''
    returnType: void
    signature: void async_job_free(ASYNC_JOB *job)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:108,1
    - Dst: ASYNC_init_thread
      Src: /src/openssl-3.0.15/crypto/async/async.c:114,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:116,1
    - Dst: sk_ASYNC_JOB_pop
      Src: /src/openssl-3.0.15/crypto/async/async.c:119,1
    - Dst: async_job_new
      Src: /src/openssl-3.0.15/crypto/async/async.c:125,1
    - Dst: async_fibre_makecontext
      Src: /src/openssl-3.0.15/crypto/async/async.c:127,1
    - Dst: async_job_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:128,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: async_get_pool_job
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - ASYNC_init_thread
    - CRYPTO_THREAD_get_local
    - async_job_free
    - sk_ASYNC_JOB_pop
    - async_job_new
    - async_fibre_makecontext
    linkageType: ''
    returnType: ASYNC_JOB
    signature: ASYNC_JOB *async_get_pool_job(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:140,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:145,1
    - Dst: sk_ASYNC_JOB_push
      Src: /src/openssl-3.0.15/crypto/async/async.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 148
    functionName: async_release_job
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_ASYNC_JOB_push
    - CRYPTO_THREAD_get_local
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void async_release_job(ASYNC_JOB *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:153,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:156,1
    - Dst: ASYNC_JOB*::func
      Src: /src/openssl-3.0.15/crypto/async/async.c:162,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-3.0.15/crypto/async/async.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: async_start_func
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_fibre_swapcontext
    - async_get_ctx
    - ASYNC_JOB*::func
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void async_start_func(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/async/async.c:183,1
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:186,1
    - Dst: async_ctx_new
      Src: /src/openssl-3.0.15/crypto/async/async.c:188,1
    - Dst: async_release_job
      Src: /src/openssl-3.0.15/crypto/async/async.c:200,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/crypto/async/async.c:222,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:225,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-3.0.15/crypto/async/async.c:229,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/crypto/async/async.c:231,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:232,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/crypto/async/async.c:240,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:245,1
    - Dst: async_release_job
      Src: /src/openssl-3.0.15/crypto/async/async.c:246,1
    - Dst: async_get_pool_job
      Src: /src/openssl-3.0.15/crypto/async/async.c:253,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/async/async.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:259,1
    - Dst: async_release_job
      Src: /src/openssl-3.0.15/crypto/async/async.c:260,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/async/async.c:264,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/async/async.c:271,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-3.0.15/crypto/async/async.c:272,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:274,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/crypto/async/async.c:281,1
    - Dst: async_release_job
      Src: /src/openssl-3.0.15/crypto/async/async.c:285,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 5
    argNames:
    - job
    - wctx
    - ret
    - args
    - size
    argTypes:
    - ASYNC_JOB**
    - ASYNC_WAIT_CTX*
    - int*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 289
    functionName: ASYNC_start_job
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_release_job
    - async_ctx_new
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - async_fibre_swapcontext
    - OPENSSL_init_crypto
    - ossl_lib_ctx_get_concrete
    - async_get_ctx
    - OSSL_LIB_CTX_set0_default
    - async_get_pool_job
    linkageType: ''
    returnType: int
    signature: "int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *wctx, int *ret,\n
      \                   int (*func)(void *), void *args, size_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:294,1
    - Dst: async_fibre_swapcontext
      Src: /src/openssl-3.0.15/crypto/async/async.c:309,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:311,1
    - Dst: async_wait_ctx_reset_counts
      Src: /src/openssl-3.0.15/crypto/async/async.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 318
    functionName: ASYNC_pause_job
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 6
    functionsReached:
    - async_wait_ctx_reset_counts
    - async_get_ctx
    - ERR_raise
    - async_fibre_swapcontext
    linkageType: ''
    returnType: int
    signature: int ASYNC_pause_job(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASYNC_JOB_pop
      Src: /src/openssl-3.0.15/crypto/async/async.c:328,1
    - Dst: async_job_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - async_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: async_empty_pool
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - async_job_free
    - sk_ASYNC_JOB_pop
    linkageType: ''
    returnType: void
    signature: void async_empty_pool(async_pool *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:335,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:338,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: async_init
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_init_local
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: int
    signature: int async_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:348,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: async_deinit
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: void
    signature: void async_deinit(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:358,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/async/async.c:362,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-3.0.15/crypto/async/async.c:365,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/async/async.c:368,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:370,1
    - Dst: sk_ASYNC_JOB_new_reserve
      Src: /src/openssl-3.0.15/crypto/async/async.c:374,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:376,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:377,1
    - Dst: async_job_new
      Src: /src/openssl-3.0.15/crypto/async/async.c:386,1
    - Dst: async_fibre_makecontext
      Src: /src/openssl-3.0.15/crypto/async/async.c:387,1
    - Dst: async_job_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:392,1
    - Dst: sk_ASYNC_JOB_push
      Src: /src/openssl-3.0.15/crypto/async/async.c:396,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:400,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async.c:401,1
    - Dst: async_empty_pool
      Src: /src/openssl-3.0.15/crypto/async/async.c:407,1
    - Dst: sk_ASYNC_JOB_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:408,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:409,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - max_size
    - init_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 352
    functionDepth: 7
    functionLinenumber: 352
    functionLinenumberEnd: 411
    functionName: ASYNC_init_thread
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 2
    functionsReached:
    - sk_ASYNC_JOB_push
    - CRYPTO_THREAD_set_local
    - sk_ASYNC_JOB_new_reserve
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_init_crypto
    - ossl_init_thread_start
    - OPENSSL_free
    - async_job_free
    - async_empty_pool
    - async_job_new
    - async_fibre_makecontext
    - sk_ASYNC_JOB_free
    linkageType: ''
    returnType: int
    signature: int ASYNC_init_thread(size_t max_size, size_t init_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:415,1
    - Dst: async_empty_pool
      Src: /src/openssl-3.0.15/crypto/async/async.c:418,1
    - Dst: sk_ASYNC_JOB_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:419,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:420,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/async/async.c:421,1
    - Dst: async_local_cleanup
      Src: /src/openssl-3.0.15/crypto/async/async.c:423,1
    - Dst: async_ctx_free
      Src: /src/openssl-3.0.15/crypto/async/async.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: async_delete_thread_state
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    - async_ctx_free
    - async_empty_pool
    - OPENSSL_free
    - async_local_cleanup
    - sk_ASYNC_JOB_free
    linkageType: ''
    returnType: void
    signature: void async_delete_thread_state(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/async/async.c:429,1
    - Dst: async_delete_thread_state
      Src: /src/openssl-3.0.15/crypto/async/async.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 433
    functionName: ASYNC_cleanup_thread
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 1
    functionsReached:
    - OPENSSL_init_crypto
    - async_delete_thread_state
    linkageType: ''
    returnType: void
    signature: void ASYNC_cleanup_thread(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/async/async.c:439,1
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 447
    functionName: ASYNC_get_current_job
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    - async_get_ctx
    linkageType: ''
    returnType: ASYNC_JOB
    signature: ASYNC_JOB *ASYNC_get_current_job(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - ASYNC_JOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: ASYNC_get_wait_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASYNC_WAIT_CTX
    signature: ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/async/async.c:458,1
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: ASYNC_block_pause
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: void ASYNC_block_pause(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/async/async.c:475,1
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/async.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 487
    functionName: ASYNC_unblock_pause
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - async_get_ctx
    linkageType: ''
    returnType: void
    signature: void ASYNC_unblock_pause(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ASYNC_WAIT_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASYNC_WAIT_CTX
    signature: ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct fd_lookup_st*::cleanup
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:33,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: ASYNC_WAIT_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - struct fd_lookup_st*::cleanup
    linkageType: ''
    returnType: void
    signature: void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - fd
    - custom_data
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    - OSSL_ASYNC_FD
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: ASYNC_WAIT_CTX_set_wait_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: ASYNC_WAIT_CTX_get_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key,\n
      \                         OSSL_ASYNC_FD *fd, void **custom_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - fd
    - numfds
    argTypes:
    - ASYNC_WAIT_CTX*
    - OSSL_ASYNC_FD*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: ASYNC_WAIT_CTX_get_all_fds
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD
      *fd,\n                               size_t *numfds)"
  - BBCount: 4
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 138
    functionName: ASYNC_WAIT_CTX_get_changed_fds
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - ASYNC_WAIT_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 183
    functionName: ASYNC_WAIT_CTX_clear_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - callback
    - callback_arg
    argTypes:
    - ASYNC_WAIT_CTX*
    - ASYNC_callback_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: ASYNC_WAIT_CTX_set_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_set_callback(ASYNC_WAIT_CTX *ctx,\n                                ASYNC_callback_fn
      callback,\n                                void *callback_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - callback
    - callback_arg
    argTypes:
    - ASYNC_WAIT_CTX*
    - ASYNC_callback_fn*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: ASYNC_WAIT_CTX_get_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASYNC_WAIT_CTX_get_callback(ASYNC_WAIT_CTX *ctx,\n                                ASYNC_callback_fn
      *callback,\n                                void **callback_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - status
    argTypes:
    - ASYNC_WAIT_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: ASYNC_WAIT_CTX_set_status
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASYNC_WAIT_CTX_set_status(ASYNC_WAIT_CTX *ctx, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: ASYNC_WAIT_CTX_get_status
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASYNC_WAIT_CTX_get_status(ASYNC_WAIT_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/async_wait.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASYNC_WAIT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: async_wait_ctx_reset_counts
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_wait.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void async_wait_ctx_reset_counts(ASYNC_WAIT_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/async/async_err.c:33,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/async/async_err.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: ossl_err_load_ASYNC_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/async/async_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_ASYNC_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASYNC_is_capable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: async_local_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_null.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_local_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - n
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_swapcontext(o,n,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_makecontext(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_makecontext(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: async_fibre_free
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_free(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - n
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_null.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_swapcontext(o,n,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_null.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_fibre_makecontext(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASYNC_is_capable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: async_get_ctx
      Src: /src/openssl-3.0.15/crypto/async/arch/async_win.c:25,1
    - Dst: ConvertFiberToThread
      Src: /src/openssl-3.0.15/crypto/async/arch/async_win.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: async_local_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.c
    functionUses: 1
    functionsReached:
    - async_get_ctx
    - ConvertFiberToThread
    linkageType: ''
    returnType: void
    signature: void async_local_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConvertThreadToFiberEx
      Src: /src/openssl-3.0.15/crypto/async/arch/async_win.c:38,1
    - Dst: ConvertThreadToFiber
      Src: /src/openssl-3.0.15/crypto/async/arch/async_win.c:40,1
    - Dst: GetCurrentFiber
      Src: /src/openssl-3.0.15/crypto/async/arch/async_win.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: async_fibre_init_dispatcher
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.c
    functionUses: 1
    functionsReached:
    - ConvertThreadToFiber
    - GetCurrentFiber
    - ConvertThreadToFiberEx
    linkageType: ''
    returnType: int
    signature: int async_fibre_init_dispatcher(async_fibre *fibre)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_start_func
      Src: /src/openssl-3.0.15/crypto/async/arch/async_win.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - PVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: async_start_func_win
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_win.c
    functionUses: 0
    functionsReached:
    - async_start_func
    linkageType: ''
    returnType: VOID
    signature: VOID async_start_func_win(PVOID unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getcontext
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: ASYNC_is_capable
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_posix.c
    functionUses: 0
    functionsReached:
    - getcontext
    linkageType: ''
    returnType: int
    signature: int ASYNC_is_capable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: async_local_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_posix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void async_local_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getcontext
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.c:41,1
    - Dst: makecontext
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: async_fibre_makecontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_posix.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - getcontext
    - makecontext
    linkageType: ''
    returnType: int
    signature: int async_fibre_makecontext(async_fibre *fibre)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fibre
    argTypes:
    - async_fibre*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: async_fibre_free
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_posix.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void async_fibre_free(async_fibre *fibre)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: swapcontext
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.h:67,1
    - Dst: _setjmp
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.h:71,1
    - Dst: _longjmp
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.h:73,1
    - Dst: setcontext
      Src: /src/openssl-3.0.15/crypto/async/arch/async_posix.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - o
    - n
    - r
    argTypes:
    - async_fibre*
    - async_fibre*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: async_fibre_swapcontext
    functionSourceFile: /src/openssl-3.0.15/crypto/async/arch/async_posix.h
    functionUses: 3
    functionsReached:
    - swapcontext
    - _longjmp
    - setcontext
    - _setjmp
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline async_fibre_swapcontext(async_fibre *o, async_fibre *n,
      int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - WHIRLPOOL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: WHIRLPOOL_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_Init(WHIRLPOOL_CTX *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_BitUpdate
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:82,1
    - Dst: WHIRLPOOL_BitUpdate
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - _inp
    - bytes
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: WHIRLPOOL_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL_BitUpdate
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *_inp, size_t bytes)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:117,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:127,1
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:129,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:132,1
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:168,1
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:186,1
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:201,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 3
    argNames:
    - c
    - _inp
    - bits
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 212
    functionName: WHIRLPOOL_BitUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c
    functionUses: 1
    functionsReached:
    - memcpy
    - whirlpool_block
    linkageType: ''
    returnType: void
    signature: void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *_inp, size_t
      bits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:230,1
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:231,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:235,1
    - Dst: whirlpool_block
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:243,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:246,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - WHIRLPOOL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 251
    functionName: WHIRLPOOL_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - memset
    - OPENSSL_cleanse
    - memcpy
    - whirlpool_block
    linkageType: ''
    returnType: int
    signature: int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WHIRLPOOL_Init
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:260,1
    - Dst: WHIRLPOOL_Update
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:261,1
    - Dst: WHIRLPOOL_Final
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - inp
    - bytes
    - md
    argTypes:
    - void*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: WHIRLPOOL
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_dgst.c
    functionUses: 0
    functionsReached:
    - WHIRLPOOL_Init
    - WHIRLPOOL_Final
    - WHIRLPOOL_Update
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - inp
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: GO_FOR_MMX
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GO_FOR_MMX(ctx,inp,num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(i,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(i,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: LL
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL(c0,c1,c2,c3,c4,c5,c6,c7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: C0
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C0(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: C1
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C1(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: C2
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C2(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: C3
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C3(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: C4
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C4(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: C5
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C5(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: C6
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C6(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: C7
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C7(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: LL
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL(c0,c1,c2,c3,c4,c5,c6,c7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: C0
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C0(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: C1
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C1(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: C2
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C2(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: C3
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C3(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: C4
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C4(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: C5
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C5(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: C6
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C6(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: C7
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C7(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - c0
    - ','
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - ','
    - c5
    - ','
    - c6
    - ','
    - c7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: LL
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL(c0,c1,c2,c3,c4,c5,c6,c7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: C0
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C0(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: C1
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C1(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: C2
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C2(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: C3
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C3(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: C4
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C4(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: C5
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C5(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: C6
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C6(K,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: C7
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C7(K,i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GO_FOR_MMX
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:509,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:521,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:521,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:522,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:522,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:523,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:523,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:524,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:524,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:526,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:528,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:528,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:529,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:529,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:530,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:530,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:531,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:531,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:533,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:542,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:567,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:567,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:567,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:567,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:568,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:568,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:568,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:568,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:569,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:569,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:569,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:569,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:570,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:570,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:570,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:570,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:571,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:571,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:571,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:571,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:572,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:572,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:572,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:572,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:573,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:573,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:573,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:573,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:574,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:574,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:574,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:574,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:575,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:575,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:575,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:575,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:576,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:576,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:576,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:576,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:577,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:577,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:577,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:577,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:578,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:578,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:578,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:578,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:579,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:579,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:579,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:579,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:580,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:580,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:580,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:580,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:581,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:581,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:581,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:581,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:582,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:582,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:582,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:582,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:593,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:593,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:593,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:593,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:594,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:594,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:594,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:594,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:595,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:595,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:595,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:595,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:596,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:596,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:596,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:596,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:597,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:597,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:597,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:597,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:598,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:598,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:598,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:598,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:599,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:599,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:599,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:599,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:600,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:600,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:600,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:600,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:601,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:601,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:601,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:601,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:602,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:602,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:602,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:602,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:603,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:603,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:603,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:603,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:604,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:604,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:604,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:604,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:605,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:605,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:605,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:605,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:606,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:606,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:606,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:606,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:607,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:607,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:607,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:607,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:608,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:608,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:608,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:608,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:619,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:620,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:621,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:622,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:623,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:624,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:625,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:626,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:629,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:630,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:631,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:632,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:633,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:634,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:635,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:636,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:638,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:639,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:640,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:641,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:642,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:643,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:644,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:645,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:647,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:648,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:649,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:650,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:651,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:652,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:653,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:654,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:656,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:657,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:658,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:659,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:660,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:661,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:662,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:663,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:665,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:666,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:667,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:668,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:669,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:670,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:671,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:672,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:674,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:675,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:676,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:677,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:678,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:679,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:680,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:681,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:683,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:684,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:685,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:686,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:687,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:688,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:689,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:690,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:701,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:702,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:703,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:704,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:705,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:706,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:707,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:708,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:710,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:711,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:712,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:713,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:714,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:715,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:716,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:717,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:719,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:720,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:721,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:722,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:723,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:724,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:725,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:726,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:728,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:729,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:730,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:731,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:732,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:733,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:734,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:735,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:737,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:738,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:739,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:740,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:741,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:742,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:743,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:744,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:746,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:747,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:748,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:749,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:750,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:751,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:752,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:753,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:755,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:756,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:757,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:758,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:759,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:760,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:761,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:762,1
    - Dst: C0
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:764,1
    - Dst: C1
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:765,1
    - Dst: C2
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:766,1
    - Dst: C3
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:767,1
    - Dst: C4
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:768,1
    - Dst: C5
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:769,1
    - Dst: C6
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:770,1
    - Dst: C7
      Src: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c:771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 232
    argCount: 3
    argNames:
    - ctx
    - inp
    - n
    argTypes:
    - WHIRLPOOL_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 805
    functionName: whirlpool_block
    functionSourceFile: /src/openssl-3.0.15/crypto/whrlpool/wp_block.c
    functionUses: 2
    functionsReached:
    - C5
    - memcpy
    - C7
    - C0
    - C4
    - C1
    - C6
    - C3
    - GO_FOR_MMX
    - C2
    linkageType: ''
    returnType: void
    signature: void whirlpool_block(WHIRLPOOL_CTX *ctx, const void *inp, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:30,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:31,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:34,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:35,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:40,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:42,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:44,1
    - Dst: n2ln
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:47,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:52,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:54,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:56,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:58,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:59,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:61,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:62,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:65,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:67,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:69,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:72,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:73,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:78,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:80,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:82,1
    - Dst: l2nn
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:85,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:89,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:90,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 94
    functionName: IDEA_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_cbc.c
    functionUses: 0
    functionsReached:
    - n2ln
    - n2l
    - l2n
    - IDEA_encrypt
    - l2nn
    linkageType: ''
    returnType: void
    signature: "void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv,\n
      \                     int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:108,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:109,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:110,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:111,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:112,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:113,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:114,1
    - Dst: E_IDEA
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:115,1
    - Dst: idea_mul
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:118,1
    - Dst: idea_mul
      Src: /src/openssl-3.0.15/crypto/idea/i_cbc.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 129
    functionName: IDEA_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_cbc.c
    functionUses: 1
    functionsReached:
    - E_IDEA
    - idea_mul
    linkageType: ''
    returnType: void
    signature: void IDEA_encrypt(unsigned long *d, IDEA_KEY_SCHEDULE *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:44,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:45,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:49,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:50,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:53,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:56,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:58,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:68,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ofb64.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 6
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 73
    functionName: IDEA_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_ofb64.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, IDEA_KEY_SCHEDULE *schedule,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:27,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:28,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:29,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:30,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:31,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:32,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:33,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - key
    - ks
    argTypes:
    - unsigned char*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 59
    functionName: IDEA_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_skey.c
    functionUses: 0
    functionsReached:
    - n2s
    linkageType: ''
    returnType: void
    signature: void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE
      *ks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inverse
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:69,1
    - Dst: inverse
      Src: /src/openssl-3.0.15/crypto/idea/i_skey.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - ek
    - dk
    argTypes:
    - IDEA_KEY_SCHEDULE*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: IDEA_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_skey.c
    functionUses: 0
    functionsReached:
    - inverse
    linkageType: ''
    returnType: void
    signature: void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE
      *dk)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - xin
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 119
    functionName: inverse
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IDEA_INT
    signature: IDEA_INT inverse(unsigned int xin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: IDEA_options
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_ecb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *IDEA_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_ecb.c:31,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_ecb.c:33,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_ecb.c:35,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ecb.c:37,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_ecb.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - unsigned char*
    - unsigned char*
    - IDEA_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: IDEA_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_ecb.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     IDEA_KEY_SCHEDULE *ks)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:45,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:47,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:49,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:52,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:54,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:65,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:67,1
    - Dst: IDEA_encrypt
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:69,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:72,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/idea/i_cfb64.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 7
    argNames:
    - in
    - out
    - length
    - schedule
    - ivec
    - num
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - long
    - IDEA_KEY_SCHEDULE*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 86
    functionName: IDEA_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/i_cfb64.c
    functionUses: 0
    functionsReached:
    - IDEA_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - b
    - ','
    - ul
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 19
    functionName: idea_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: idea_mul(r,a,b,ul)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: n2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: l2nn
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: n2l
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: l2n
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: s2n
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: n2s
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2s(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: E_IDEA
    functionSourceFile: /src/openssl-3.0.15/crypto/idea/idea_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_IDEA(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: c2l
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: l2c
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:40,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - MDC2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: MDC2_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MDC2_Init(MDC2_CTX *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:53,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:59,1
    - Dst: mdc2_body
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:63,1
    - Dst: mdc2_body
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:68,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - in
    - len
    argTypes:
    - MDC2_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: MDC2_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - mdc2_body
    - memcpy
    linkageType: ''
    returnType: int
    signature: int MDC2_Update(MDC2_CTX *c, const unsigned char *in, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:87,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:89,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:94,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:95,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:96,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:98,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:99,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:100,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:108,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:109,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:111,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 3
    argNames:
    - c
    - in
    - len
    argTypes:
    - MDC2_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 114
    functionName: mdc2_body
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c
    functionUses: 1
    functionsReached:
    - DES_set_odd_parity
    - c2l
    - l2c
    - DES_set_key_unchecked
    - DES_encrypt1
    linkageType: ''
    returnType: void
    signature: void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:126,1
    - Dst: mdc2_body
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:127,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:129,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - MDC2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: MDC2_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2dgst.c
    functionUses: 0
    functionsReached:
    - mdc2_body
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int MDC2_Final(unsigned char *md, MDC2_CTX *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2_one.c:27,1
    - Dst: MDC2_Update
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2_one.c:29,1
    - Dst: MDC2_Final
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2_one.c:30,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/mdc2/mdc2_one.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: MDC2
    functionSourceFile: /src/openssl-3.0.15/crypto/mdc2/mdc2_one.c
    functionUses: 0
    functionsReached:
    - MDC2_Final
    - MDC2_Init
    - OPENSSL_cleanse
    - MDC2_Update
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:28,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:29,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:32,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:33,1
    - Dst: RC2_encrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:38,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:40,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:42,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:45,1
    - Dst: RC2_encrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:50,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:52,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:54,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:56,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:57,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:59,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:60,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:63,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:65,1
    - Dst: RC2_decrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:67,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:70,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:71,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:76,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:78,1
    - Dst: RC2_decrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:80,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:83,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:87,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c:88,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 92
    functionName: RC2_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c
    functionUses: 0
    functionsReached:
    - l2cn
    - c2ln
    - c2l
    - l2c
    - RC2_decrypt
    - RC2_encrypt
    linkageType: ''
    returnType: void
    signature: "void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out,
      long length,\n                     RC2_KEY *ks, unsigned char *iv, int encrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC2_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 138
    functionName: RC2_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RC2_encrypt(unsigned long *d, RC2_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC2_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 185
    functionName: RC2_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_cbc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RC2_decrypt(unsigned long *d, RC2_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c:33,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c:35,1
    - Dst: RC2_encrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c:38,1
    - Dst: RC2_decrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c:40,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c:42,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - RC2_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: RC2_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_ecb.c
    functionUses: 0
    functionsReached:
    - c2l
    - RC2_decrypt
    - RC2_encrypt
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out,
      RC2_KEY *ks,\n                     int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: c2l
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: c2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: l2c
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: l2cn
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: n2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: l2nn
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: n2l
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: l2n
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: C_RC2
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C_RC2(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:38,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:39,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:43,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:44,1
    - Dst: RC2_encrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:47,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:50,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:52,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:62,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c:63,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 67
    functionName: RC2_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2ofb64.c
    functionUses: 0
    functionsReached:
    - c2l
    - RC2_encrypt
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      long length, RC2_KEY *schedule, unsigned char *ivec,\n
      \                      int *num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - key
    - len
    - data
    - bits
    argTypes:
    - RC2_KEY*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 100
    functionName: RC2_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,
      int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:39,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:41,1
    - Dst: RC2_encrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:43,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:46,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:48,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:59,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:61,1
    - Dst: RC2_encrypt
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:63,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:66,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c:68,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: RC2_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc2/rc2cfb64.c
    functionUses: 0
    functionsReached:
    - c2l
    - RC2_encrypt
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 300
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:72,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:73,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:75,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:75,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:76,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: des_ede_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - BLOCK_CIPHER_ecb_loop
    - data
    - EVP_CIPHER_CTX_is_encrypting
    - DES_ecb3_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:84,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:85,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:86,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:86,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:87,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:90,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:96,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:97,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:98,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:98,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:99,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: des_ede_ofb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - DES_ede3_ofb64_encrypt
    - data
    - EVP_CIPHER_CTX_get_num
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:110,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:119,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:122,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:128,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: des_ede_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_is_encrypting
    - DES_ede3_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:139,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:140,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:141,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:141,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:142,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:143,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:144,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:150,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:151,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:152,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:152,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:153,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:154,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 158
    functionName: des_ede_cfb64_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - data
    - EVP_CIPHER_CTX_set_num
    - DES_ede3_cfb64_encrypt
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:170,1
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:174,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:175,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:175,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:176,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 183
    functionName: des_ede3_cfb1_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_test_flags
    - DES_ede3_cfb_encrypt
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int des_ede3_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:189,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:190,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:190,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:191,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:192,1
    - Dst: DES_ede3_cfb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:198,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:199,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:199,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:200,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: des_ede3_cfb8_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_is_encrypting
    - DES_ede3_cfb_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:228,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:233,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:236,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:237,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:238,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:245,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:246,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 249
    functionName: des_ede_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - data
    - EVP_CIPHER_CTX_get_mode
    - des_t4_key_expand
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: "int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:255,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:260,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:263,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:264,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:265,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:272,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:273,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 276
    functionName: des_ede3_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - data
    - DES_set_key_unchecked
    - EVP_CIPHER_CTX_get_mode
    - des_t4_key_expand
    linkageType: ''
    returnType: int
    signature: "int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:286,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:287,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:289,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:291,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: des3_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_key_length
    - RAND_priv_bytes
    - DES_set_odd_parity
    linkageType: ''
    returnType: int
    signature: int des3_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: EVP_des_ede
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: EVP_des_ede3
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede3(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:326,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:328,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:335,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:338,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:340,1
    - Dst: BUF_reverse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:342,1
    - Dst: BUF_reverse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:343,1
    - Dst: BUF_reverse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:344,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:346,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:347,1
    - Dst: ossl_sha1
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:348,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:349,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:351,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:352,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:353,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:354,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 359
    functionName: des_ede3_unwrap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BUF_reverse
    - memmove
    - ossl_sha1
    - OPENSSL_cleanse
    - des_ede_cbc_cipher
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: "int des_ede3_unwrap(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:368,1
    - Dst: ossl_sha1
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:370,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:372,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:373,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:375,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:377,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:379,1
    - Dst: BUF_reverse
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:380,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:381,1
    - Dst: des_ede_cbc_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 384
    functionName: des_ede3_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - ossl_sha1
    - OPENSSL_cleanse
    - BUF_reverse
    - des_ede_cbc_cipher
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: "int des_ede3_wrap(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                         const
      unsigned char *in, size_t inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:397,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:398,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:402,1
    - Dst: des_ede3_wrap
      Src: /src/openssl-3.0.15/crypto/evp/e_des3.c:403,1
    - Dst: des_ede3_unwrap
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: des_ede3_wrap_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached:
    - des_ede3_unwrap
    - ERR_raise
    - des_ede3_wrap
    - EVP_CIPHER_CTX_is_encrypting
    - ossl_is_partially_overlapping
    linkageType: ''
    returnType: int
    signature: "int des_ede3_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: EVP_des_ede3_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede3_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - datalen
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: update
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 104
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t datalen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - mdname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: canon_mdname
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *canon_mdname(const char *mdname)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:56,1
    - Dst: EVP_MD_CTX*::digest::freectx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:60,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:67,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:69,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:75,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:77,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:93,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:94,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:99,1
    - Dst: canon_mdname
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:102,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:102,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:109,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:111,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:112,1
    - Dst: evp_keymgmt_util_query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:115,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:118,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:119,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:148,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:149,1
    - Dst: EVP_SIGNATURE_fetch
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:153,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:156,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:159,1
    - Dst: evp_signature_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:161,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:181,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:182,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:185,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:188,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:192,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:194,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:198,1
    - Dst: EVP_SIGNATURE*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:206,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:206,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:208,1
    - Dst: canon_mdname
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:219,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:219,1
    - Dst: evp_keymgmt_util_get_deflt_digest_name
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:222,1
    - Dst: canon_mdname
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:225,1
    - Dst: evp_md_ctx_clear_digest
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:234,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:237,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:245,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:250,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:252,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:253,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:263,1
    - Dst: EVP_SIGNATURE*::digest_verify_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:270,1
    - Dst: EVP_SIGNATURE*::digest_sign_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:273,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:284,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:287,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:289,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:297,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:298,1
    - Dst: evp_get_digestbyname_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:305,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:313,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:314,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:318,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:325,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:331,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:336,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:342,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:346,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:352,1
    - Dst: evp_pkey_ctx_use_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:367,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:370,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 220
    argCount: 10
    argNames:
    - ctx
    - pctx
    - type
    - mdname
    - libctx
    - props
    - e
    - pkey
    - ver
    - params
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - EVP_MD*
    - char*
    - OSSL_LIB_CTX*
    - char*
    - ENGINE*
    - EVP_PKEY*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 372
    functionName: do_sigver_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_SIGNATURE*::newctx
    - EVP_MD_CTX*::pctx::pmeth::verifyctx_init
    - EVP_MD_CTX*::digest::freectx
    - EVP_MD_get0_name
    - evp_signature_fetch_from_prov
    - evp_pkey_export_to_provider
    - EVP_PKEY_get_default_digest_nid
    - EVP_SIGNATURE*::digest_sign_init
    - EVP_PKEY_CTX_new
    - ossl_assert
    - evp_keymgmt_util_get_deflt_digest_name
    - evp_pkey_ctx_free_old_ops
    - EVP_MD_CTX*::pctx::pmeth::signctx_init
    - evp_keymgmt_util_query_operation_name
    - evp_pkey_ctx_use_cached_data
    - evp_pkey_ctx_is_legacy
    - EVP_KEYMGMT_get0_name
    - EVP_MD_fetch
    - EVP_KEYMGMT_free
    - evp_get_digestbyname_ex
    - EVP_SIGNATURE_free
    - ossl_provider_ctx
    - EVP_KEYMGMT_get0_provider
    - EVP_PKEY_CTX_set_signature_md
    - EVP_SIGNATURE*::digest_verify_init
    - ERR_raise
    - evp_md_ctx_clear_digest
    - evp_keymgmt_fetch_from_prov
    - EVP_PKEY_sign_init
    - EVP_get_digestbyname
    - EVP_PKEY_CTX_new_from_pkey
    - canon_mdname
    - EVP_DigestInit_ex
    - ERR_set_mark
    - EVP_SIGNATURE_fetch
    - EVP_PKEY_verify_init
    - EVP_get_digestbynid
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_SIGNATURE_get0_provider
    linkageType: ''
    returnType: int
    signature: "int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                          const
      EVP_MD *type, const char *mdname,\n                          OSSL_LIB_CTX *libctx,
      const char *props,\n                          ENGINE *e, EVP_PKEY *pkey, int
      ver,\n                          const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - pctx
    - mdname
    - libctx
    - props
    - pkey
    - params
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - char*
    - OSSL_LIB_CTX*
    - char*
    - EVP_PKEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: EVP_DigestSignInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSignInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n
      \                         const char *mdname, OSSL_LIB_CTX *libctx,\n                          const
      char *props, EVP_PKEY *pkey,\n                          const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:386,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: EVP_DigestSignInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 12
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                       const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - pctx
    - mdname
    - libctx
    - props
    - pkey
    - params
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX**
    - char*
    - OSSL_LIB_CTX*
    - char*
    - EVP_PKEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: EVP_DigestVerifyInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerifyInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n
      \                           const char *mdname, OSSL_LIB_CTX *libctx,\n                            const
      char *props, EVP_PKEY *pkey,\n                            const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sigver_init
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:402,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 404
    functionName: EVP_DigestVerifyInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - do_sigver_init
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,\n                         const
      EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:418,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::digest_sign_update
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:422,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digest_custom
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:429,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - data
    - dsize
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 435
    functionName: EVP_DigestSignUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 12
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX*::pctx::pmeth::digest_custom
    - ERR_raise
    - EVP_PKEY_CTX*::op::sig::signature::digest_sign_update
    linkageType: ''
    returnType: int
    signature: int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t
      dsize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:448,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::digest_verify_update
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:452,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digest_custom
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:459,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:464,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - data
    - dsize
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 465
    functionName: EVP_DigestVerifyUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_PKEY_CTX*::op::sig::signature::digest_verify_update
    - EVP_MD_CTX*::pctx::pmeth::digest_custom
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t
      dsize)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: op::sig::signature::digest_sign_final
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:481,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:484,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::digest_sign_final
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:488,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:491,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:496,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digest_custom
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:502,1
    - Dst: pmeth::signctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:508,1
    - Dst: pmeth::signctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:510,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:512,1
    - Dst: EVP_PKEY_CTX*::pmeth::signctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:515,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:516,1
    - Dst: pmeth::signctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:530,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:532,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:534,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:538,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:539,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::signctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:543,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:546,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:547,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:551,1
    - Dst: pmeth::signctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:555,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:558,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:560,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 3
    argNames:
    - ctx
    - sigret
    - siglen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 565
    functionName: EVP_DigestSignFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 9
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_get_size
    - EVP_MD_CTX*::pctx::pmeth::signctx
    - EVP_PKEY_CTX_dup
    - op::sig::signature::digest_sign_final
    - pmeth::signctx
    - EVP_PKEY_CTX*::op::sig::signature::digest_sign_final
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_CTX*::pmeth::signctx
    - EVP_MD_CTX_new
    - ERR_raise
    - EVP_MD_CTX*::pctx::pmeth::digest_custom
    - EVP_PKEY_sign
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n
      \                       size_t *siglen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::op::sig::signature::digest_sign
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:577,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digestsign
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:584,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:587,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:589,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - sigret
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 590
    functionName: EVP_DigestSign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_DigestSignFinal
    - EVP_PKEY_CTX*::op::sig::signature::digest_sign
    - EVP_DigestSignUpdate
    - EVP_MD_CTX*::pctx::pmeth::digestsign
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t
      *siglen,\n                   const unsigned char *tbs, size_t tbslen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: op::sig::signature::digest_verify_final
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:608,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:610,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::digest_verify_final
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:614,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:616,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:621,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digest_custom
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:627,1
    - Dst: pmeth::verifyctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:637,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:639,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:641,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:644,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:645,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::verifyctx
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:649,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:652,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:653,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:657,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 3
    argNames:
    - ctx
    - sig
    - siglen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 658
    functionName: EVP_DigestVerifyFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_CTX*::pctx::pmeth::verifyctx
    - EVP_PKEY_CTX_dup
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_verify
    - EVP_MD_CTX_new
    - pmeth::verifyctx
    - ERR_raise
    - op::sig::signature::digest_verify_final
    - EVP_PKEY_CTX*::op::sig::signature::digest_verify_final
    - EVP_MD_CTX*::pctx::pmeth::digest_custom
    - EVP_DigestFinal_ex
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig,\n
      \                         size_t siglen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::op::sig::signature::digest_verify
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:670,1
    - Dst: EVP_MD_CTX*::pctx::pmeth::digestverify
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:676,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:679,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/crypto/evp/m_sigver.c:681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - sigret
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 682
    functionName: EVP_DigestVerify
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_sigver.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::op::sig::signature::digest_verify
    - EVP_MD_CTX*::pctx::pmeth::digestverify
    - EVP_DigestVerifyFinal
    - EVP_DigestVerifyUpdate
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret,\n
      \                    size_t siglen, const unsigned char *tbs, size_t tbslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: PKCS5_PBE_add
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS5_PBE_add(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_name
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:47,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:51,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:51,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:53,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:59,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:62,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:64,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:71,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:78,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:80,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:84,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:85,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:86,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:89,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:91,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:93,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:94,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:96,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:97,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:99,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:100,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:101,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:103,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:104,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:105,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:108,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:109,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 9
    argNames:
    - cctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 111
    functionName: PKCS5_PBE_keyivgen_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_CIPHER_get_key_length
    - memcpy
    - OPENSSL_cleanse
    - EVP_KDF_CTX_free
    - EVP_MD_name
    - OSSL_PARAM_construct_int
    - strlen
    - OSSL_PARAM_construct_octet_string
    - ASN1_INTEGER_get
    - EVP_CipherInit_ex
    - EVP_CIPHER_get_iv_length
    - EVP_MD_get_size
    - EVP_KDF_CTX_new
    - EVP_KDF_fetch
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_free
    - ERR_raise
    - PBEPARAM_free
    - ASN1_ITEM_rptr
    - OSSL_PARAM_construct_end
    - ASN1_TYPE_unpack_sequence
    linkageType: ''
    returnType: int
    signature: "int PKCS5_PBE_keyivgen_ex(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, OSSL_LIB_CTX *libctx,\n
      \                         const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_PBE_keyivgen_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - cctx
    - pass
    - passlen
    - param
    - cipher
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: PKCS5_PBE_keyivgen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt.c
    functionUses: 0
    functionsReached:
    - PKCS5_PBE_keyivgen_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vkdf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: evp_kdf_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int evp_kdf_up_ref(void *vkdf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:40,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:41,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - vkdf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: evp_kdf_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void evp_kdf_free(void *vkdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:50,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: evp_kdf_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *evp_kdf_new(void)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: evp_kdf_new
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:67,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:68,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:72,1
    - Dst: evp_kdf_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:73,1
    - Dst: OSSL_FUNC_kdf_newctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:83,1
    - Dst: OSSL_FUNC_kdf_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:89,1
    - Dst: OSSL_FUNC_kdf_freectx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:94,1
    - Dst: OSSL_FUNC_kdf_reset
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:100,1
    - Dst: OSSL_FUNC_kdf_derive
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:105,1
    - Dst: OSSL_FUNC_kdf_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:112,1
    - Dst: OSSL_FUNC_kdf_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:118,1
    - Dst: OSSL_FUNC_kdf_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:124,1
    - Dst: OSSL_FUNC_kdf_get_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:129,1
    - Dst: OSSL_FUNC_kdf_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:134,1
    - Dst: OSSL_FUNC_kdf_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:139,1
    - Dst: evp_kdf_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:149,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:150,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:155,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 82
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 158
    functionName: evp_kdf_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_kdf_dupctx
    - evp_kdf_new
    - OSSL_FUNC_kdf_get_params
    - ossl_provider_up_ref
    - OSSL_FUNC_kdf_newctx
    - OSSL_FUNC_kdf_gettable_ctx_params
    - OSSL_FUNC_kdf_set_ctx_params
    - ossl_algorithm_get1_first_name
    - ERR_raise
    - OSSL_FUNC_kdf_freectx
    - OSSL_FUNC_kdf_derive
    - OSSL_FUNC_kdf_get_ctx_params
    - OSSL_FUNC_kdf_settable_ctx_params
    - evp_kdf_free
    - OSSL_FUNC_kdf_gettable_params
    - OSSL_FUNC_kdf_reset
    linkageType: ''
    returnType: void
    signature: "void *evp_kdf_from_algorithm(int name_id,\n                                    const
      OSSL_ALGORITHM *algodef,\n                                    OSSL_PROVIDER
      *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: EVP_KDF_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 2
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_KDF
    signature: "EVP_KDF *EVP_KDF_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,\n
      \                      const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_kdf_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: EVP_KDF_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - evp_kdf_up_ref
    linkageType: ''
    returnType: int
    signature: int EVP_KDF_up_ref(EVP_KDF *kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_kdf_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: EVP_KDF_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 2
    functionsReached:
    - evp_kdf_free
    linkageType: ''
    returnType: void
    signature: void EVP_KDF_free(EVP_KDF *kdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF*::gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:182,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:182,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: EVP_KDF_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_get0_provider
    - EVP_KDF*::gettable_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KDF_gettable_params(const EVP_KDF *kdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:191,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:191,1
    - Dst: EVP_KDF*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: EVP_KDF_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KDF*::gettable_ctx_params
    - EVP_KDF_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KDF_gettable_ctx_params(const EVP_KDF *kdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:201,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:201,1
    - Dst: EVP_KDF*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: EVP_KDF_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KDF*::settable_ctx_params
    - EVP_KDF_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KDF_settable_ctx_params(const EVP_KDF *kdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:211,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:211,1
    - Dst: EVP_KDF_CTX*::meth::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: EVP_KDF_CTX_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX*::meth::gettable_ctx_params
    - EVP_KDF_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KDF_CTX_gettable_params(EVP_KDF_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:221,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:221,1
    - Dst: EVP_KDF_CTX*::meth::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: EVP_KDF_CTX_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_get0_provider
    - EVP_KDF_CTX*::meth::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KDF_CTX_settable_params(EVP_KDF_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/kdf_meth.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: EVP_KDF_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_meth.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_KDF_do_all_provided(OSSL_LIB_CTX *libctx,\n                             void
      (*fn)(EVP_KDF *kdf, void *arg),\n                             void *arg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:28,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:29,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:37,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:41,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:42,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:46,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:50,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:53,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:54,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:59,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:60,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 6
    argNames:
    - ctx
    - type
    - ek
    - ekl
    - iv
    - priv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - int
    - unsigned char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 62
    functionName: EVP_OpenInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_open.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - OPENSSL_malloc
    - EVP_CIPHER_CTX_reset
    - ERR_raise
    - EVP_PKEY_decrypt_init
    - EVP_DecryptInit_ex
    - EVP_PKEY_decrypt
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_open.c:68,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: EVP_OpenFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_open.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptFinal_ex
    - EVP_DecryptInit_ex
    linkageType: ''
    returnType: int
    signature: int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:28,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:29,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:36,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:39,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:41,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:42,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:47,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:49,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:52,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:54,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:54,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:56,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:61,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    - libctx
    - propq
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 63
    functionName: EVP_SignFinal_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_sign.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_sign_init
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_get_size
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX_new
    - ERR_raise
    - EVP_PKEY_sign
    - EVP_PKEY_CTX_free
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_get0_md
    - EVP_PKEY_CTX_set_signature_md
    linkageType: ''
    returnType: int
    signature: "int EVP_SignFinal_ex(EVP_MD_CTX *ctx, unsigned char *sigret,\n                     unsigned
      int *siglen, EVP_PKEY *pkey, OSSL_LIB_CTX *libctx,\n                     const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_SignFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_sign.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - sigret
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: EVP_SignFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_sign.c
    functionUses: 1
    functionsReached:
    - EVP_SignFinal_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,\n                  unsigned
      int *siglen, EVP_PKEY *pkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 309
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:40,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:45,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - user_key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char[]
    - unsigned char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: chacha_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - data
    - CHACHA_U8TOU32
    linkageType: ''
    returnType: int
    signature: "int 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:61,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:107,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:117,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:118,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - ctx
    - out
    - inp
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 126
    functionName: chacha_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - data
    - memset
    - ChaCha20_ctr32
    linkageType: ''
    returnType: int
    signature: "int chacha_cipher(EVP_CIPHER_CTX * ctx, unsigned char *out,\n                         const
      unsigned char *inp, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: EVP_chacha20
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_chacha20(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: aead_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aead_data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - actx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: POLY1305_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POLY1305_ctx(actx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:171,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:187,1
    - Dst: chacha_init_key
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:190,1
    - Dst: chacha_init_key
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 200
    functionName: chacha20_poly1305_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - chacha_init_key
    - memcpy
    - aead_data
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_init_key(EVP_CIPHER_CTX *ctx,\n                                      const
      unsigned char *inkey,\n                                      const unsigned
      char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:217,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:232,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:234,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:234,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:236,1
    - Dst: xor128_encrypt_n_pad
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:243,1
    - Dst: xor128_decrypt_n_pad
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:245,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:257,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:259,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:259,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:261,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:282,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:289,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:291,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:291,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:294,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:294,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:301,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:302,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:302,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:304,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:304,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:305,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:311,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:311,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 72
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 312
    functionName: chacha20_poly1305_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - memcpy
    - aead_data
    - POLY1305_ctx
    - xor128_decrypt_n_pad
    - xor128_encrypt_n_pad
    - Poly1305_Update
    - memset
    - Poly1305_Init
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                                        const unsigned char *in, size_t
      len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:367,1
    - Dst: chacha20_poly1305_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:373,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:376,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:378,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:378,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:384,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:384,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:393,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:393,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:400,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:400,1
    - Dst: chacha_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:412,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:413,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:413,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:418,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:418,1
    - Dst: chacha_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:419,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:433,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:433,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:439,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:439,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:443,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:443,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:464,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:464,1
    - Dst: Poly1305_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:466,1
    - Dst: POLY1305_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:466,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:472,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:474,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:475,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:481,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 97
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 486
    functionName: chacha20_poly1305_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - memcpy
    - chacha20_poly1305_tls_cipher
    - aead_data
    - POLY1305_ctx
    - Poly1305_Final
    - CRYPTO_memcmp
    - Poly1305_Update
    - chacha_cipher
    - memset
    - Poly1305_Init
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:490,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:492,1
    - Dst: Poly1305_ctx_size
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: chacha20_poly1305_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - Poly1305_ctx_size
    - OPENSSL_cleanse
    - aead_data
    linkageType: ''
    returnType: int
    signature: int chacha20_poly1305_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: aead_data
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:499,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:505,1
    - Dst: Poly1305_ctx_size
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:505,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:507,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:517,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:525,1
    - Dst: Poly1305_ctx_size
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:525,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:527,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:547,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:549,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:551,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:558,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:566,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:576,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:593,1
    - Dst: CHACHA_U8TOU32
      Src: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c:594,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 607
    functionName: chacha20_poly1305_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached:
    - CHACHA_U8TOU32
    - memcpy
    - aead_data
    - Poly1305_ctx_size
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_memdup
    - memset
    linkageType: ''
    returnType: int
    signature: "int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                 void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: EVP_chacha20_poly1305
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_chacha20_poly1305.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_chacha20_poly1305(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nm
    - ','
    - fn
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: IMPLEMENT_LEGACY_EVP_MD_METH_SHA3
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LEGACY_EVP_MD_METH_SHA3(nm, fn, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nm
    - ','
    - fn
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: IMPLEMENT_LEGACY_EVP_MD_METH_SHAKE
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LEGACY_EVP_MD_METH_SHAKE(nm, fn, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sha1_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/legacy_sha.c:68,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/evp/legacy_sha.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: sha1_int_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached:
    - ossl_sha1_ctrl
    - EVP_MD_CTX_get0_md_data
    linkageType: ''
    returnType: int
    signature: int sha1_int_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - evp_ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: shake_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int shake_ctrl(EVP_MD_CTX *evp_ctx, int cmd, int p1, void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: EVP_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: EVP_sha224
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: EVP_sha256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: EVP_sha512_224
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha512_224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: EVP_sha512_256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha512_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: EVP_sha384
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: EVP_sha512
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: EVP_MD_SHA3
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_SHA3(bitlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bitlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 225
    functionName: EVP_MD_SHAKE
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_MD_SHAKE(bitlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:23,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:26,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:32,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:33,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: evp_keyexch_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - ossl_provider_up_ref
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: EVP_KEYEXCH
    signature: EVP_KEYEXCH *evp_keyexch_new(OSSL_PROVIDER *prov)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: evp_keyexch_new
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:51,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:52,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:57,1
    - Dst: OSSL_FUNC_keyexch_newctx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:66,1
    - Dst: OSSL_FUNC_keyexch_init
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:72,1
    - Dst: OSSL_FUNC_keyexch_set_peer
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:78,1
    - Dst: OSSL_FUNC_keyexch_derive
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:83,1
    - Dst: OSSL_FUNC_keyexch_freectx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:89,1
    - Dst: OSSL_FUNC_keyexch_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:95,1
    - Dst: OSSL_FUNC_keyexch_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:100,1
    - Dst: OSSL_FUNC_keyexch_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:107,1
    - Dst: OSSL_FUNC_keyexch_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:113,1
    - Dst: OSSL_FUNC_keyexch_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:120,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:136,1
    - Dst: EVP_KEYEXCH_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:143,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 83
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 145
    functionName: evp_keyexch_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_keyexch_set_peer
    - evp_keyexch_new
    - OSSL_FUNC_keyexch_freectx
    - OSSL_FUNC_keyexch_newctx
    - OSSL_FUNC_keyexch_init
    - ossl_algorithm_get1_first_name
    - ERR_raise
    - OSSL_FUNC_keyexch_get_ctx_params
    - OSSL_FUNC_keyexch_settable_ctx_params
    - OSSL_FUNC_keyexch_derive
    - OSSL_FUNC_keyexch_dupctx
    - EVP_KEYEXCH_free
    - OSSL_FUNC_keyexch_gettable_ctx_params
    - OSSL_FUNC_keyexch_set_ctx_params
    linkageType: ''
    returnType: void
    signature: "void *evp_keyexch_from_algorithm(int name_id,\n                                        const
      OSSL_ALGORITHM *algodef,\n                                        OSSL_PROVIDER
      *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:153,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:156,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:157,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:158,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - exchange
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: EVP_KEYEXCH_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_KEYEXCH_free(EVP_KEYEXCH *exchange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exchange
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: EVP_KEYEXCH_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_KEYEXCH_up_ref(EVP_KEYEXCH *exchange)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exchange
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: EVP_KEYEXCH_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_KEYEXCH_get0_provider(const EVP_KEYEXCH *exchange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: EVP_KEYEXCH_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_KEYEXCH
    signature: "EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,\n
      \                              const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - algorithm
    - properties
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: evp_keyexch_fetch_from_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - evp_generic_fetch_from_prov
    linkageType: ''
    returnType: EVP_KEYEXCH
    signature: "EVP_KEYEXCH *evp_keyexch_fetch_from_prov(OSSL_PROVIDER *prov,\n                                         const
      char *algorithm,\n                                         const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_derive_init_ex
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: EVP_PKEY_derive_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_derive_init_ex
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:211,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:215,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:218,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:220,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:228,1
    - Dst: EVP_PKEY_set_type_by_keymgmt
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:231,1
    - Dst: evp_keymgmt_newdata
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:232,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:233,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:235,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:244,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:246,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:247,1
    - Dst: evp_keymgmt_util_query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:250,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:253,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:254,1
    - Dst: EVP_KEYEXCH_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:284,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:285,1
    - Dst: EVP_KEYEXCH_fetch
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:290,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:292,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:295,1
    - Dst: evp_keyexch_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:297,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:316,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:317,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:320,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:323,1
    - Dst: EVP_KEYEXCH_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:327,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:331,1
    - Dst: EVP_KEYEXCH*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:336,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:336,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:339,1
    - Dst: EVP_KEYEXCH*::init
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:342,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:344,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:347,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:349,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:357,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:363,1
    - Dst: EVP_PKEY_CTX*::pmeth::derive_init
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:369,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:372,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 375
    functionName: EVP_PKEY_derive_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 1
    functionsReached:
    - evp_keyexch_fetch_from_prov
    - evp_pkey_export_to_provider
    - EVP_KEYEXCH*::newctx
    - EVP_KEYEXCH_free
    - ossl_assert
    - evp_pkey_ctx_free_old_ops
    - evp_keymgmt_util_query_operation_name
    - EVP_KEYEXCH*::init
    - evp_pkey_ctx_is_legacy
    - evp_keymgmt_newdata
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT_free
    - EVP_PKEY_CTX*::pmeth::derive_init
    - EVP_KEYMGMT_get0_provider
    - EVP_KEYEXCH_get0_provider
    - ERR_raise
    - EVP_PKEY_new
    - evp_keymgmt_fetch_from_prov
    - EVP_PKEY_set_type_by_keymgmt
    - ERR_set_mark
    - EVP_PKEY_free
    - EVP_KEYEXCH_fetch
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - ossl_provider_ctx
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:386,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:390,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:394,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:399,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:402,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:403,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:418,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:419,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:420,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:423,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:425,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::set_peer
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:433,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:444,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:450,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:454,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:463,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:468,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:479,1
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:480,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:481,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:485,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:488,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:495,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 3
    argNames:
    - ctx
    - peer
    - validate_peer
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 498
    functionName: EVP_PKEY_derive_set_peer_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_PKEY_CTX*::pmeth::ctrl
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_up_ref
    - EVP_PKEY_missing_parameters
    - EVP_KEYEXCH_get0_provider
    - ERR_raise
    - evp_pkey_export_to_provider
    - EVP_PKEY_free
    - evp_keymgmt_fetch_from_prov
    - EVP_KEYMGMT_get0_name
    - EVP_PKEY_CTX_free
    - EVP_KEYMGMT_free
    - EVP_PKEY_parameters_eq
    - EVP_PKEY_public_check
    - EVP_PKEY_CTX*::op::kex::exchange::set_peer
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_derive_set_peer_ex(EVP_PKEY_CTX *ctx, EVP_PKEY *peer,\n
      \                               int validate_peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_derive_set_peer_ex
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - peer
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: EVP_PKEY_derive_set_peer
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive_set_peer_ex
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:510,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:514,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:515,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::derive
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:522,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:528,1
    - Dst: M_check_autoarg
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:532,1
    - Dst: EVP_PKEY_CTX*::pmeth::derive
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:533,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - key
    - pkeylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 534
    functionName: EVP_PKEY_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - M_check_autoarg
    - ERR_raise
    - EVP_PKEY_CTX*::op::kex::exchange::derive
    - EVP_PKEY_CTX*::pmeth::derive
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *pkeylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyexch
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: evp_keyexch_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_keyexch_get_number(const EVP_KEYEXCH *keyexch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyexch
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 544
    functionName: EVP_KEYEXCH_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KEYEXCH_get0_name(const EVP_KEYEXCH *keyexch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyexch
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: EVP_KEYEXCH_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KEYEXCH_get0_description(const EVP_KEYEXCH *keyexch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - keyexch
    - name
    argTypes:
    - EVP_KEYEXCH*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: EVP_KEYEXCH_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 566
    functionName: EVP_KEYEXCH_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_KEYEXCH_do_all_provided(OSSL_LIB_CTX *libctx,\n                                 void
      (*fn)(EVP_KEYEXCH *keyexch, void *arg),\n                                 void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keyexch
    - data
    argTypes:
    - EVP_KEYEXCH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 576
    functionName: EVP_KEYEXCH_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_KEYEXCH_names_do_all(const EVP_KEYEXCH *keyexch,\n                             void
      (*fn)(const char *name, void *data),\n                             void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:585,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:585,1
    - Dst: EVP_KEYEXCH*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - keyexch
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 587
    functionName: EVP_KEYEXCH_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - EVP_KEYEXCH_get0_provider
    - EVP_KEYEXCH*::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEYEXCH_gettable_ctx_params(const EVP_KEYEXCH *keyexch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:595,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:595,1
    - Dst: EVP_KEYEXCH*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/exchange.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - keyexch
    argTypes:
    - EVP_KEYEXCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 597
    functionName: EVP_KEYEXCH_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/exchange.c
    functionUses: 0
    functionsReached:
    - EVP_KEYEXCH*::settable_ctx_params
    - EVP_KEYEXCH_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEYEXCH_settable_ctx_params(const EVP_KEYEXCH *keyexch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_bf_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: EVP_bf_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_bf_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_bf_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: EVP_des_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_ede3_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: EVP_des_ede3_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_ede3_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede3_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_des_ede_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: EVP_des_ede_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_des_ede_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_des_ede_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_idea_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: EVP_idea_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_idea_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_idea_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_rc2_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: EVP_rc2_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_rc2_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc2_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_cast5_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: EVP_cast5_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_cast5_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_cast5_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_rc5_32_12_16_cfb64
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: EVP_rc5_32_12_16_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_rc5_32_12_16_cfb64
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc5_32_12_16_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_cfb128
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: EVP_aes_128_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_192_cfb128
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: EVP_aes_192_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_192_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_192_cfb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_256_cfb128
      Src: /src/openssl-3.0.15/crypto/evp/e_old.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: EVP_aes_256_cfb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_old.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_cfb128
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cfb(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::freectx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:40,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:44,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:45,1
    - Dst: EVP_CIPHER_CTX*::cipher::cleanup
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:54,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:60,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:62,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:64,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: EVP_CIPHER_CTX_reset
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::freectx
    - EVP_CIPHER_free
    - ENGINE_finish
    - OPENSSL_cleanse
    - OPENSSL_free
    - EVP_CIPHER_CTX*::cipher::cleanup
    - memset
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: EVP_CIPHER_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 15
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: EVP_CIPHER_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 15
    functionsReached:
    - OPENSSL_free
    - EVP_CIPHER_CTX_reset
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_init_internal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - cipher
    - key
    - iv
    - enc
    - params
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: EVP_CipherInit_ex2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - evp_cipher_init_internal
    linkageType: ''
    returnType: int
    signature: "int EVP_CipherInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      const unsigned char *key, const unsigned char *iv,\n
      \                      int enc, const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:445,1
    - Dst: evp_cipher_init_internal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - cipher
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 447
    functionName: EVP_CipherInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_reset
    - evp_cipher_init_internal
    linkageType: ''
    returnType: int
    signature: "int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                  const unsigned char *key, const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_init_internal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - cipher
    - impl
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - ENGINE*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: EVP_CipherInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 3
    functionsReached:
    - evp_cipher_init_internal
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:460,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:462,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: EVP_CipherUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_EncryptUpdate
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl,\n                     const unsigned char *in, int inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:468,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: EVP_CipherFinal_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_DecryptFinal_ex
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:476,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: EVP_CipherFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal
    - EVP_DecryptFinal
    linkageType: ''
    returnType: int
    signature: int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: EVP_EncryptInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                   const unsigned char *key, const unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:491,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 492
    functionName: EVP_EncryptInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 10
    functionsReached:
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      ENGINE *impl, const unsigned char *key,\n                       const
      unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex2
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cipher
    - key
    - iv
    - params
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: EVP_EncryptInit_ex2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit_ex2
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                       const unsigned char *key, const unsigned char *iv,\n
      \                       const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: EVP_DecryptInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                   const unsigned char *key, const unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:511,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: EVP_DecryptInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 7
    functionsReached:
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                      ENGINE *impl, const unsigned char *key,\n                       const
      unsigned char *iv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherInit_ex2
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cipher
    - key
    - iv
    - params
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: EVP_DecryptInit_ex2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherInit_ex2
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,\n
      \                       const unsigned char *key, const unsigned char *iv,\n
      \                       const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr1
    - ptr2
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 556
    functionName: ossl_is_partially_overlapping
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_is_partially_overlapping(const void *ptr1, const void *ptr2,
      int len)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:564,1
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:571,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:572,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:576,1
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:588,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:589,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:594,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:603,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:606,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:621,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:624,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:627,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:637,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:643,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 646
    functionName: evp_EncryptDecryptUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - memcpy
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - ERR_raise
    - EVP_CIPHER_CTX_test_flags
    - ossl_is_partially_overlapping
    linkageType: ''
    returnType: int
    signature: "int evp_EncryptDecryptUpdate(EVP_CIPHER_CTX *ctx,\n                                    unsigned
      char *out, int *outl,\n                                    const unsigned char
      *in, int inl)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:659,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:665,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:670,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:680,1
    - Dst: EVP_CIPHER_CTX*::cipher::cupdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:684,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:690,1
    - Dst: evp_EncryptDecryptUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:701,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 702
    functionName: EVP_EncryptUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 9
    functionsReached:
    - evp_EncryptDecryptUpdate
    - EVP_CIPHER_CTX*::cipher::cupdate
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl,\n                      const unsigned char *in, int inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: EVP_EncryptFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:721,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:727,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:732,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:738,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:741,1
    - Dst: EVP_CIPHER_CTX*::cipher::cfinal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:745,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:750,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:762,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:771,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:779,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:789,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 795
    functionName: EVP_EncryptFinal_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 8
    functionsReached:
    - OPENSSL_assert
    - EVP_CIPHER_CTX_get_block_size
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - ERR_raise
    - EVP_CIPHER_CTX*::cipher::cfinal
    linkageType: ''
    returnType: int
    signature: int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:808,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:814,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:819,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:825,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:828,1
    - Dst: EVP_CIPHER_CTX*::cipher::cupdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:831,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:837,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:850,1
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:854,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:855,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:859,1
    - Dst: evp_EncryptDecryptUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:874,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:876,1
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:881,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:882,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:895,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:898,1
    - Dst: evp_EncryptDecryptUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:904,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:914,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 82
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 922
    functionName: EVP_DecryptUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 6
    functionsReached:
    - OPENSSL_assert
    - memcpy
    - EVP_CIPHER_CTX_get_block_size
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - evp_EncryptDecryptUpdate
    - ERR_raise
    - EVP_CIPHER_CTX_test_flags
    - EVP_CIPHER_CTX*::cipher::cupdate
    - ossl_is_partially_overlapping
    linkageType: ''
    returnType: int
    signature: "int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl,\n                      const unsigned char *in, int inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 929
    functionName: EVP_DecryptFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_DecryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:942,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:948,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:953,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:960,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:963,1
    - Dst: EVP_CIPHER_CTX*::cipher::cfinal
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:967,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:972,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:985,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:996,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1004,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1007,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1015,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1020,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 1031
    functionName: EVP_DecryptFinal_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 8
    functionsReached:
    - OPENSSL_assert
    - EVP_CIPHER_CTX_get_block_size
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - ERR_raise
    - EVP_CIPHER_CTX*::cipher::cfinal
    linkageType: ''
    returnType: int
    signature: int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int
      *outl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1040,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1044,1
    - Dst: EVP_CIPHER_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1044,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1046,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1050,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1051,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1063,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1064,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - c
    - keylen
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1072
    functionName: EVP_CIPHER_CTX_set_key_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_settable_ctx_params
    - OSSL_PARAM_construct_size_t
    - evp_do_ciph_ctx_setparams
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_CIPHER_CTX_ctrl
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *c, int keylen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1087,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pad
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1091
    functionName: EVP_CIPHER_CTX_set_padding
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 5
    functionsReached:
    - OSSL_PARAM_construct_uint
    - evp_do_ciph_ctx_setparams
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1104,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1113,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1118,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1137,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1144,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1148,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1155,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1161,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1170,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1176,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1181,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1187,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1189,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1193,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1194,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1202,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1207,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1209,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1213,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1215,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1216,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1227,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1229,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1231,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1235,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1237,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1239,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1240,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1249,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1252,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1255,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1257,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1260,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1262,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1263,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1272,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1278,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1280,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1286,1
    - Dst: EVP_CIPHER_CTX*::cipher::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1290,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1294,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 151
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1298
    functionName: EVP_CIPHER_CTX_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - OSSL_PARAM_construct_uint
    - OSSL_PARAM_construct_size_t
    - evp_do_ciph_ctx_setparams
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_do_ciph_ctx_getparams
    - EVP_CIPHER_CTX*::cipher::ctrl
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void
      *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER*::get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - params
    argTypes:
    - EVP_CIPHER*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1305
    functionName: EVP_CIPHER_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER*::get_params
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_params(EVP_CIPHER *cipher, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_CIPHER_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1314
    functionName: EVP_CIPHER_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::set_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_set_params(EVP_CIPHER_CTX *ctx, const OSSL_PARAM
      params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX*::cipher::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_CIPHER_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1321
    functionName: EVP_CIPHER_CTX_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::get_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER*::gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1326,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1327,1
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1329
    functionName: EVP_CIPHER_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER*::gettable_params
    - EVP_CIPHER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1336,1
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1336,1
    - Dst: EVP_CIPHER*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1340
    functionName: EVP_CIPHER_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER*::settable_ctx_params
    - EVP_CIPHER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1347,1
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1347,1
    - Dst: EVP_CIPHER*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1351
    functionName: EVP_CIPHER_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get0_provider
    - EVP_CIPHER*::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1358,1
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1358,1
    - Dst: EVP_CIPHER_CTX*::cipher::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1362
    functionName: EVP_CIPHER_CTX_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get0_provider
    - EVP_CIPHER_CTX*::cipher::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *cctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1369,1
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1369,1
    - Dst: EVP_CIPHER_CTX*::cipher::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1373
    functionName: EVP_CIPHER_CTX_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX*::cipher::gettable_ctx_params
    - EVP_CIPHER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *cctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1384,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1386
    functionName: EVP_CIPHER_CTX_get_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - ossl_provider_libctx
    - EVP_CIPHER_get0_provider
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *EVP_CIPHER_CTX_get_libctx(EVP_CIPHER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1392,1
    - Dst: EVP_CIPHER_CTX_get_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1399,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1401,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1389
    functionDepth: 3
    functionLinenumber: 1389
    functionLinenumberEnd: 1407
    functionName: EVP_CIPHER_CTX_rand_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_libctx
    - EVP_CIPHER_CTX_get_key_length
    - RAND_priv_bytes_ex
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1412,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1420,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1424,1
    - Dst: EVP_CIPHER_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1429,1
    - Dst: EVP_CIPHER_CTX*::cipher::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1434,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1436,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1447,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1448,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1453,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1454,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1457,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1460,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1463,1
    - Dst: EVP_CIPHER_CTX*::cipher::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1467,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1469,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1473
    functionName: EVP_CIPHER_CTX_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - ENGINE_init
    - memcpy
    - OPENSSL_malloc
    - EVP_CIPHER_up_ref
    - EVP_CIPHER_CTX_reset
    - ERR_raise
    - EVP_CIPHER_CTX*::cipher::ctrl
    - EVP_CIPHER_CTX*::cipher::dupctx
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1477,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1480,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1475
    functionDepth: 1
    functionLinenumber: 1475
    functionLinenumberEnd: 1488
    functionName: evp_cipher_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *evp_cipher_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1506,1
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - name
    - vlegacy_nid
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1518
    functionName: set_legacy_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_get
    - EVP_CIPHER_get_nid
    linkageType: ''
    returnType: void
    signature: void set_legacy_nid(const char *name, void *vlegacy_nid)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1529,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1530,1
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1536,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1538,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1539,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1545,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1546,1
    - Dst: OSSL_FUNC_cipher_newctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1556,1
    - Dst: OSSL_FUNC_cipher_encrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1562,1
    - Dst: OSSL_FUNC_cipher_decrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1568,1
    - Dst: OSSL_FUNC_cipher_update
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1574,1
    - Dst: OSSL_FUNC_cipher_final
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1580,1
    - Dst: OSSL_FUNC_cipher_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1586,1
    - Dst: OSSL_FUNC_cipher_freectx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1591,1
    - Dst: OSSL_FUNC_cipher_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1597,1
    - Dst: OSSL_FUNC_cipher_get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1602,1
    - Dst: OSSL_FUNC_cipher_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1607,1
    - Dst: OSSL_FUNC_cipher_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1612,1
    - Dst: OSSL_FUNC_cipher_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1617,1
    - Dst: OSSL_FUNC_cipher_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1623,1
    - Dst: OSSL_FUNC_cipher_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1629,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1642,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1643,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1648,1
    - Dst: evp_cipher_cache_constants
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1650,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1651,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1652,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 111
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1657
    functionName: evp_cipher_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_cipher_encrypt_init
    - evp_cipher_cache_constants
    - OSSL_FUNC_cipher_get_ctx_params
    - OSSL_FUNC_cipher_gettable_params
    - OSSL_FUNC_cipher_settable_ctx_params
    - OSSL_FUNC_cipher_cipher
    - evp_cipher_new
    - ossl_algorithm_get1_first_name
    - OSSL_FUNC_cipher_gettable_ctx_params
    - OSSL_FUNC_cipher_update
    - OSSL_FUNC_cipher_decrypt_init
    - EVP_CIPHER_free
    - OSSL_FUNC_cipher_freectx
    - ossl_provider_up_ref
    - ERR_raise
    - OSSL_FUNC_cipher_get_params
    - OSSL_FUNC_cipher_dupctx
    - OSSL_FUNC_cipher_final
    - OSSL_FUNC_cipher_newctx
    - evp_names_do_all
    - OSSL_FUNC_cipher_set_ctx_params
    linkageType: ''
    returnType: void
    signature: "void *evp_cipher_from_algorithm(const int name_id,\n                                       const
      OSSL_ALGORITHM *algodef,\n                                       OSSL_PROVIDER
      *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1662
    functionName: evp_cipher_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_up_ref
    linkageType: ''
    returnType: int
    signature: int evp_cipher_up_ref(void *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1667
    functionName: evp_cipher_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_free
    linkageType: ''
    returnType: void
    signature: void evp_cipher_free(void *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1678
    functionName: EVP_CIPHER_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 4
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_CIPHER
    signature: "EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,\n
      \                            const char *properties)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1687
    functionName: EVP_CIPHER_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 2
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_up_ref(EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1691,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1692,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1693,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1695
    functionName: evp_cipher_free_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void evp_cipher_free_int(EVP_CIPHER *cipher)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1704,1
    - Dst: evp_cipher_free_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1708
    functionName: EVP_CIPHER_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 7
    functionsReached:
    - evp_cipher_free_int
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_free(EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_enc.c:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1718
    functionName: EVP_CIPHER_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_enc.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx,\n                                void
      (*fn)(EVP_CIPHER *mac, void *arg),\n                                void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: EVP_mdc2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_mdc2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_mdc2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: BIO_f_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_md(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:52,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:56,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: md_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int md_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:66,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:66,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:67,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: md_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - BIO_set_data
    - BIO_set_init
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int md_free(BIO *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:82,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:83,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:88,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:89,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:91,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:96,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: md_read
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - BIO_read
    - BIO_get_data
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_get_init
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int md_read(BIO *b, char *out, int outl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:110,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:111,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:113,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:115,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:117,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:119,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:125,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 129
    functionName: md_write
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - BIO_get_data
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_get_init
    - BIO_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int md_write(BIO *b, const char *in, int inl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:140,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:141,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:145,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:146,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:146,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:150,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:153,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:155,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:162,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:165,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:166,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:171,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:172,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:173,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:178,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:180,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:184,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:185,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:187,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:190,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 194
    functionName: md_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - EVP_DigestInit_ex
    - BIO_ctrl
    - EVP_MD_CTX_copy_ex
    - BIO_copy_next_retry
    - BIO_set_data
    - BIO_clear_retry_flags
    - BIO_get_init
    - EVP_MD_CTX_get0_md
    - BIO_set_init
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long md_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:200,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: md_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long md_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:213,1
    - Dst: EVP_MD_CTX_get_size
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:215,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_md.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: md_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_md.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_get_size
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int md_gets(BIO *bp, char *buf, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: OSSL_EC_curve_nid2name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_support.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *OSSL_EC_curve_nid2name(int nid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_curve_nist2nid_int
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:138,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:141,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: ossl_ec_curve_name2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_support.c
    functionUses: 0
    functionsReached:
    - ossl_ec_curve_nist2nid_int
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_ec_curve_name2nid(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: ossl_ec_curve_nid2nist_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_support.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *ossl_ec_curve_nid2nist_int(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:183,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/ec_support.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: ossl_ec_curve_nist2nid_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_support.c
    functionUses: 1
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_ec_curve_nist2nid_int(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/evp/p_enc.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_enc.c:28,1
    - Dst: evp_pkey_get0_RSA_int
      Src: /src/openssl-3.0.15/crypto/evp/p_enc.c:32,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/p_enc.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ek
    - key
    - key_len
    - pubk
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: EVP_PKEY_encrypt_old
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_enc.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get0_RSA_int
    - EVP_PKEY_get_id
    - ERR_raise
    - RSA_public_encrypt
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_encrypt_old(unsigned char *ek, const unsigned char *key,\n
      \                        int key_len, EVP_PKEY *pubk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_METHOD**
    - pmeth_fn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: pmeth_func_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pmeth_func_cmp(const EVP_PKEY_METHOD *const *a, pmeth_fn const
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_METHOD**
    - EVP_PKEY_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: pmeth_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pmeth_cmp(const EVP_PKEY_METHOD *const *a,\n                     const
      EVP_PKEY_METHOD *const *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_find
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:101,1
    - Dst: sk_EVP_PKEY_METHOD_value
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: evp_pkey_meth_find_added_by_application
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_find
    - sk_EVP_PKEY_METHOD_value
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *evp_pkey_meth_find_added_by_application(int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_meth_find_added_by_application
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:114,1
    - Dst: OBJ_bsearch_pmeth_func
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:119,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: EVP_PKEY_meth_find
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_meth_find_added_by_application
    - OBJ_bsearch_pmeth_func
    - OSSL_NELEM
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:130,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: EVP_PKEY_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_name2type
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - keytype
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: help_get_legacy_alg_type_from_keymgmt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_name2type
    linkageType: ''
    returnType: void
    signature: "void help_get_legacy_alg_type_from_keymgmt(const char *keytype,\n
      \                                                 void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: get_legacy_alg_type_from_keymgmt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT_names_do_all
    linkageType: ''
    returnType: int
    signature: int get_legacy_alg_type_from_keymgmt(const EVP_KEYMGMT *keymgmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:165,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:167,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:169,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:171,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: evp_pkey_ctx_state
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_PKEY_CTX_IS_GEN_OP
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_state(const EVP_PKEY_CTX *ctx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:193,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:198,1
    - Dst: evp_pkey_name2type
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:202,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:214,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:233,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:240,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:241,1
    - Dst: ENGINE_get_pkey_meth_engine
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:245,1
    - Dst: ENGINE_get_pkey_meth
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:253,1
    - Dst: EVP_PKEY_meth_find
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:257,1
    - Dst: evp_pkey_meth_find_added_by_application
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:259,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:277,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:281,1
    - Dst: get_legacy_alg_type_from_keymgmt
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:295,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:305,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:306,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:307,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:317,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:319,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:321,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:326,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:330,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:336,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:337,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:350,1
    - Dst: EVP_PKEY_METHOD*::init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:353,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:355,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 107
    argCount: 6
    argNames:
    - libctx
    - pkey
    - e
    - keytype
    - propquery
    - id
    argTypes:
    - OSSL_LIB_CTX*
    - EVP_PKEY*
    - ENGINE*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 361
    functionName: int_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - EVP_PKEY_meth_find
    - EVP_KEYMGMT_fetch
    - EVP_PKEY_CTX_free
    - ossl_assert
    - ENGINE_init
    - EVP_PKEY_METHOD*::init
    - ENGINE_finish
    - OBJ_nid2sn
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT_free
    - OPENSSL_strdup
    - evp_pkey_is_provided
    - evp_pkey_name2type
    - ERR_raise
    - OPENSSL_free
    - evp_pkey_meth_find_added_by_application
    - EVP_KEYMGMT_up_ref
    - ENGINE_get_pkey_meth_engine
    - get_legacy_alg_type_from_keymgmt
    - OPENSSL_zalloc
    - ENGINE_get_pkey_meth
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "EVP_PKEY_CTX *int_ctx_new(OSSL_LIB_CTX *libctx,\n                                 EVP_PKEY
      *pkey, ENGINE *e,\n                                 const char *keytype, const
      char *propquery,\n                                 int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - name
    - propquery
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: EVP_PKEY_CTX_new_from_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx,\n                                         const
      char *name,\n                                         const char *propquery)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - pkey
    - propquery
    argTypes:
    - OSSL_LIB_CTX*
    - EVP_PKEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: EVP_PKEY_CTX_new_from_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 3
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: "EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_pkey(OSSL_LIB_CTX *libctx, EVP_PKEY
      *pkey,\n                                         const char *propquery)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:380,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::freectx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:382,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:383,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:386,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::freectx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:388,1
    - Dst: EVP_KEYEXCH_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:389,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:392,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::freectx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:394,1
    - Dst: EVP_KEM_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:395,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:399,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::freectx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:401,1
    - Dst: EVP_ASYM_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:402,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:405,1
    - Dst: evp_keymgmt_gen_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:407,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 409
    functionName: evp_pkey_ctx_free_old_ops
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_CTX*::op::kex::exchange::freectx
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_PKEY_CTX*::op::encap::kem::freectx
    - EVP_KEM_free
    - EVP_PKEY_CTX*::op::ciph::cipher::freectx
    - EVP_PKEY_CTX*::op::sig::signature::freectx
    - EVP_PKEY_CTX_IS_GEN_OP
    - EVP_ASYM_CIPHER_free
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - evp_keymgmt_gen_cleanup
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_KEYEXCH_free
    - EVP_SIGNATURE_free
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    linkageType: ''
    returnType: void
    signature: void evp_pkey_ctx_free_old_ops(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::pmeth::cleanup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:416,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:418,1
    - Dst: evp_pkey_ctx_free_all_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:420,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:422,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:424,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:425,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:426,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:428,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:430,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 432
    functionName: EVP_PKEY_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 8
    functionsReached:
    - evp_pkey_ctx_free_all_cached_data
    - evp_pkey_ctx_free_old_ops
    - ENGINE_finish
    - EVP_PKEY_CTX*::pmeth::cleanup
    - EVP_PKEY_free
    - OPENSSL_free
    - BN_free
    - EVP_KEYMGMT_free
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ppkey_id
    - pflags
    - meth
    argTypes:
    - int*
    - int*
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: EVP_PKEY_meth_get0_info
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,\n                             const
      EVP_PKEY_METHOD *meth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_METHOD*
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: EVP_PKEY_meth_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: EVP_PKEY_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - e
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: EVP_PKEY_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 3
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_ctx_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - e
    argTypes:
    - int
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: EVP_PKEY_CTX_new_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - int_ctx_new
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:479,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:480,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:484,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:486,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:491,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:498,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:504,1
    - Dst: EVP_KEYEXCH_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:507,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:511,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:516,1
    - Dst: EVP_KEYEXCH_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:519,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:525,1
    - Dst: EVP_SIGNATURE_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:528,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:532,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:537,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:540,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:546,1
    - Dst: EVP_ASYM_CIPHER_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:549,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:553,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:558,1
    - Dst: EVP_ASYM_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:561,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:567,1
    - Dst: EVP_KEM_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:570,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:574,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:579,1
    - Dst: EVP_KEM_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:582,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:588,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:599,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:607,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:611,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:613,1
    - Dst: EVP_PKEY_CTX*::pmeth::copy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:617,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:622,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 143
    argCount: 1
    argNames:
    - pctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 473
    functionDepth: 5
    functionLinenumber: 473
    functionLinenumberEnd: 624
    functionName: EVP_PKEY_CTX_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_PKEY_up_ref
    - EVP_PKEY_CTX_IS_GEN_OP
    - evp_pkey_export_to_provider
    - EVP_KEM_up_ref
    - EVP_PKEY_CTX*::pmeth::copy
    - EVP_ASYM_CIPHER_up_ref
    - EVP_KEYEXCH_free
    - EVP_ASYM_CIPHER_free
    - EVP_PKEY_CTX_free
    - ossl_assert
    - ENGINE_init
    - EVP_KEM_free
    - EVP_PKEY_CTX*::op::kex::exchange::dupctx
    - EVP_PKEY_CTX*::op::sig::signature::dupctx
    - EVP_PKEY_CTX*::op::encap::kem::dupctx
    - EVP_KEYMGMT_free
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_SIGNATURE_free
    - OPENSSL_strdup
    - EVP_PKEY_CTX*::op::ciph::cipher::dupctx
    - ERR_raise
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - EVP_SIGNATURE_up_ref
    - EVP_KEYMGMT_up_ref
    - OPENSSL_zalloc
    - EVP_KEYEXCH_up_ref
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_PKEY_CTX_dup(const EVP_PKEY_CTX *pctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:629,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:631,1
    - Dst: sk_EVP_PKEY_METHOD_push
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:635,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:636,1
    - Dst: sk_EVP_PKEY_METHOD_sort
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 641
    functionName: EVP_PKEY_meth_add0
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_sort
    - sk_EVP_PKEY_METHOD_new
    - ERR_raise
    - sk_EVP_PKEY_METHOD_push
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_pop_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: evp_app_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_pop_free
    linkageType: ''
    returnType: void
    signature: void evp_app_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_METHOD_delete_ptr
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 656
    functionName: EVP_PKEY_meth_remove
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_delete_ptr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:660,1
    - Dst: sk_EVP_PKEY_METHOD_num
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: EVP_PKEY_meth_get_count
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_num
    - OSSL_NELEM
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_meth_get_count(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:669,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:673,1
    - Dst: sk_EVP_PKEY_METHOD_num
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:674,1
    - Dst: sk_EVP_PKEY_METHOD_value
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 677
    functionName: EVP_PKEY_meth_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_METHOD_num
    - sk_EVP_PKEY_METHOD_value
    - OSSL_NELEM
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:683,1
    - Dst: evp_pkey_name2type
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:684,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - keytype
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: EVP_PKEY_CTX_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_is_legacy
    - evp_pkey_name2type
    - EVP_KEYMGMT_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_is_a(EVP_PKEY_CTX *ctx, const char *keytype)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_state
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:691,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:693,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:697,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:699,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:703,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:705,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:709,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:711,1
    - Dst: evp_keymgmt_gen_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:715,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:717,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:721,1
    - Dst: evp_pkey_ctx_set_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:727,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 731
    functionName: EVP_PKEY_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - evp_pkey_ctx_set_params_to_ctrl
    - EVP_PKEY_CTX*::op::sig::signature::set_ctx_params
    - EVP_PKEY_CTX*::op::encap::kem::set_ctx_params
    - evp_pkey_ctx_state
    - EVP_PKEY_CTX*::op::ciph::cipher::set_ctx_params
    - EVP_PKEY_CTX_IS_GEN_OP
    - evp_keymgmt_gen_set_params
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX*::op::kex::exchange::set_ctx_params
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_params(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_state
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:735,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:737,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:741,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:743,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:747,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:749,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:753,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:755,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:759,1
    - Dst: evp_pkey_ctx_get_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:765,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 769
    functionName: EVP_PKEY_CTX_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - evp_pkey_ctx_state
    - evp_pkey_ctx_get_params_to_ctrl
    - EVP_PKEY_CTX*::op::encap::kem::get_ctx_params
    - EVP_PKEY_CTX*::op::ciph::cipher::get_ctx_params
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX*::op::sig::signature::get_ctx_params
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_PKEY_CTX*::op::kex::exchange::get_ctx_params
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_params(EVP_PKEY_CTX *ctx, OSSL_PARAM *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:776,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:779,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:779,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:780,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:783,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:786,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:787,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:788,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:791,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:794,1
    - Dst: EVP_ASYM_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:795,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:796,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:799,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:802,1
    - Dst: EVP_KEM_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:802,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:803,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 807
    functionName: EVP_PKEY_CTX_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_ASYM_CIPHER_get0_provider
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_PKEY_CTX*::op::sig::signature::gettable_ctx_params
    - EVP_PKEY_CTX*::op::ciph::cipher::gettable_ctx_params
    - EVP_KEYEXCH_get0_provider
    - EVP_PKEY_CTX*::op::kex::exchange::gettable_ctx_params
    - EVP_KEM_get0_provider
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX*::op::encap::kem::gettable_ctx_params
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_SIGNATURE_get0_provider
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_PKEY_CTX_gettable_params(const EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:813,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:816,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:816,1
    - Dst: EVP_PKEY_CTX*::op::kex::exchange::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:817,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:820,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:823,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:824,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:825,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:828,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:831,1
    - Dst: EVP_ASYM_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:832,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:833,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:836,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:839,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:839,1
    - Dst: EVP_PKEY_CTX*::keymgmt::gen_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:840,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:843,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:846,1
    - Dst: EVP_KEM_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:846,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:847,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 851
    functionName: EVP_PKEY_CTX_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_ASYM_CIPHER_get0_provider
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_PKEY_CTX*::keymgmt::gen_settable_params
    - EVP_KEYEXCH_get0_provider
    - EVP_PKEY_CTX_IS_GEN_OP
    - EVP_PKEY_CTX*::op::encap::kem::settable_ctx_params
    - EVP_PKEY_CTX*::op::ciph::cipher::settable_ctx_params
    - EVP_PKEY_CTX*::op::sig::signature::settable_ctx_params
    - EVP_PKEY_CTX*::op::kex::exchange::settable_ctx_params
    - EVP_KEM_get0_provider
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_SIGNATURE_get0_provider
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - EVP_KEYMGMT_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_PKEY_CTX_settable_params(const EVP_PKEY_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:876,1
    - Dst: EVP_PKEY_CTX_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:877,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:882,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 888
    functionName: evp_pkey_ctx_set_params_strict
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_settable_params
    - evp_pkey_ctx_is_provided
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_set_params_strict(EVP_PKEY_CTX *ctx, OSSL_PARAM *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:901,1
    - Dst: EVP_PKEY_CTX_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:902,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:907,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:912,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 913
    functionName: evp_pkey_ctx_get_params_strict
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_gettable_params
    - EVP_PKEY_CTX_get_params
    - evp_pkey_ctx_is_provided
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_get_params_strict(EVP_PKEY_CTX *ctx, OSSL_PARAM *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:922,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:923,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:929,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:932,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:935,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:937,1
    - Dst: evp_get_digestbyname_ex
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 947
    functionName: EVP_PKEY_CTX_get_signature_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_get_digestbyname_ex
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - EVP_PKEY_CTX_get_params
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:957,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:963,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:968,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:971,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:977,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - md
    - fallback
    - param
    - op
    - ctrl
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 980
    functionName: evp_pkey_ctx_set_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - EVP_MD_get0_name
    - ERR_raise
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_set_md(EVP_PKEY_CTX *ctx, const EVP_MD *md,\n                               int
      fallback, const char *param, int op,\n                               int ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 987
    functionName: EVP_PKEY_CTX_set_signature_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 3
    functionsReached:
    - evp_pkey_ctx_set_md
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 989
    functionDepth: 4
    functionLinenumber: 989
    functionLinenumberEnd: 994
    functionName: EVP_PKEY_CTX_set_tls1_prf_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_md
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_tls1_prf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1004,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1011,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1015,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1019,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1026,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - ctx
    - fallback
    - param
    - op
    - ctrl
    - data
    - datalen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1029
    functionName: evp_pkey_ctx_set1_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_set1_octet_string(EVP_PKEY_CTX *ctx, int fallback,\n
      \                                         const char *param, int op, int ctrl,\n
      \                                         const unsigned char *data,\n                                          int
      datalen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1044,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1051,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1055,1
    - Dst: EVP_PKEY_CTX_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1062,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1063,1
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1064,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1068,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1069,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1071,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1081,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1086,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1090,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1095,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1096,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1099,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 7
    argNames:
    - ctx
    - fallback
    - param
    - op
    - ctrl
    - data
    - datalen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1101
    functionName: evp_pkey_ctx_add1_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - evp_pkey_ctx_set1_octet_string
    - EVP_PKEY_CTX_gettable_params
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_clear_free
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_locate_const
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_get_params
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_add1_octet_string(EVP_PKEY_CTX *ctx, int fallback,\n
      \                                         const char *param, int op, int ctrl,\n
      \                                         const unsigned char *data,\n                                          int
      datalen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - sec
    - seclen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1103
    functionDepth: 4
    functionLinenumber: 1103
    functionLinenumberEnd: 1111
    functionName: EVP_PKEY_CTX_set1_tls1_prf_secret
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set1_tls1_prf_secret(EVP_PKEY_CTX *ctx,\n                                      const
      unsigned char *sec, int seclen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - seed
    - seedlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1113
    functionDepth: 4
    functionLinenumber: 1113
    functionLinenumberEnd: 1121
    functionName: EVP_PKEY_CTX_add1_tls1_prf_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_add1_tls1_prf_seed(EVP_PKEY_CTX *ctx,\n                                    const
      unsigned char *seed, int seedlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1123
    functionDepth: 4
    functionLinenumber: 1123
    functionLinenumberEnd: 1128
    functionName: EVP_PKEY_CTX_set_hkdf_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_md
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_hkdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - salt
    - saltlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1130
    functionDepth: 4
    functionLinenumber: 1130
    functionLinenumberEnd: 1138
    functionName: EVP_PKEY_CTX_set1_hkdf_salt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set1_hkdf_salt(EVP_PKEY_CTX *ctx,\n                                const
      unsigned char *salt, int saltlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1148
    functionName: EVP_PKEY_CTX_set1_hkdf_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set1_hkdf_key(EVP_PKEY_CTX *ctx,\n                                      const
      unsigned char *key, int keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_add1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - info
    - infolen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1150
    functionDepth: 5
    functionLinenumber: 1150
    functionLinenumberEnd: 1158
    functionName: EVP_PKEY_CTX_add1_hkdf_info
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_add1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_add1_hkdf_info(EVP_PKEY_CTX *ctx,\n                                      const
      unsigned char *info, int infolen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1164,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1165,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1172,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1177,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1181,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1182,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1185
    functionName: EVP_PKEY_CTX_set_hkdf_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - ERR_raise
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_hkdf_mode(EVP_PKEY_CTX *ctx, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - pass
    - passlen
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: EVP_PKEY_CTX_set1_pbe_pass
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set1_pbe_pass(EVP_PKEY_CTX *ctx, const char *pass,\n
      \                              int passlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - salt
    - saltlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1197
    functionDepth: 4
    functionLinenumber: 1197
    functionLinenumberEnd: 1205
    functionName: EVP_PKEY_CTX_set1_scrypt_salt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set1_scrypt_salt(EVP_PKEY_CTX *ctx,\n                                  const
      unsigned char *salt, int saltlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1213,1
    - Dst: EVP_PKEY_CTX_ctrl_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1220,1
    - Dst: OSSL_PARAM_construct_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1223,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1224,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - param
    - op
    - ctrl
    - val
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1227
    functionName: evp_pkey_ctx_set_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - ERR_raise
    - EVP_PKEY_CTX_ctrl_uint64
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_set_params
    - OSSL_PARAM_construct_uint64
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_set_uint64(EVP_PKEY_CTX *ctx, const char *param,\n
      \                                  int op, int ctrl, uint64_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - n
    argTypes:
    - EVP_PKEY_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1234
    functionName: EVP_PKEY_CTX_set_scrypt_N
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_uint64
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_scrypt_N(EVP_PKEY_CTX *ctx, uint64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - r
    argTypes:
    - EVP_PKEY_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1236
    functionDepth: 4
    functionLinenumber: 1236
    functionLinenumberEnd: 1241
    functionName: EVP_PKEY_CTX_set_scrypt_r
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_uint64
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_scrypt_r(EVP_PKEY_CTX *ctx, uint64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - EVP_PKEY_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1243
    functionDepth: 4
    functionLinenumber: 1243
    functionLinenumberEnd: 1248
    functionName: EVP_PKEY_CTX_set_scrypt_p
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_uint64
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_scrypt_p(EVP_PKEY_CTX *ctx, uint64_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - maxmem_bytes
    argTypes:
    - EVP_PKEY_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1250
    functionDepth: 4
    functionLinenumber: 1250
    functionLinenumberEnd: 1257
    functionName: EVP_PKEY_CTX_set_scrypt_maxmem_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_uint64
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_scrypt_maxmem_bytes(EVP_PKEY_CTX *ctx,\n                                         uint64_t
      maxmem_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_set1_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1259
    functionDepth: 4
    functionLinenumber: 1259
    functionLinenumberEnd: 1267
    functionName: EVP_PKEY_CTX_set_mac_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set1_octet_string
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_mac_key(EVP_PKEY_CTX *ctx, const unsigned char
      *key,\n                             int keylen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1274,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1277,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1278,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1281,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1283,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1269
    functionDepth: 3
    functionLinenumber: 1269
    functionLinenumberEnd: 1285
    functionName: EVP_PKEY_CTX_set_kem_op
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX_set_params
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_kem_op(EVP_PKEY_CTX *ctx, const char *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1292,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1293,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1298,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1304,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1306,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - id
    - len
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1287
    functionDepth: 4
    functionLinenumber: 1287
    functionLinenumberEnd: 1310
    functionName: evp_pkey_ctx_set1_id_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_set1_id_prov(EVP_PKEY_CTX *ctx, const void *id, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - id
    - len
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1316
    functionName: EVP_PKEY_CTX_set1_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set1_id(EVP_PKEY_CTX *ctx, const void *id, int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1324,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1325,1
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1330,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1332,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1336,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - id
    - id_len
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1318
    functionDepth: 4
    functionLinenumber: 1318
    functionLinenumberEnd: 1346
    functionName: get1_id_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ERR_raise
    - evp_pkey_ctx_get_params_strict
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - OSSL_PARAM_construct_octet_ptr
    linkageType: ''
    returnType: int
    signature: int get1_id_data(EVP_PKEY_CTX *ctx, void *id, size_t *id_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get1_id_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1348
    functionDepth: 5
    functionLinenumber: 1348
    functionLinenumberEnd: 1351
    functionName: evp_pkey_ctx_get1_id_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - get1_id_data
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_get1_id_prov(EVP_PKEY_CTX *ctx, void *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get1_id_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id_len
    argTypes:
    - EVP_PKEY_CTX*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1353
    functionDepth: 5
    functionLinenumber: 1353
    functionLinenumberEnd: 1356
    functionName: evp_pkey_ctx_get1_id_len_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - get1_id_data
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_get1_id_len_prov(EVP_PKEY_CTX *ctx, size_t *id_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1361
    functionName: EVP_PKEY_CTX_get1_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get1_id(EVP_PKEY_CTX *ctx, void *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id_len
    argTypes:
    - EVP_PKEY_CTX*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1367
    functionName: EVP_PKEY_CTX_get1_id_len
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get1_id_len(EVP_PKEY_CTX *ctx, size_t *id_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1381,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1386,1
    - Dst: evp_pkey_ctx_state
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1391,1
    - Dst: evp_pkey_ctx_ctrl_to_param
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1393,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1397,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1403,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1406,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 6
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1410
    functionName: evp_pkey_ctx_ctrl_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl
    - evp_pkey_ctx_state
    - ERR_raise
    - evp_pkey_ctx_ctrl_to_param
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_ctrl_int(EVP_PKEY_CTX *ctx, int keytype, int optype,\n
      \                                int cmd, int p1, void *p2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1418,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1422,1
    - Dst: evp_pkey_ctx_store_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1423,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1426,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1428,1
    - Dst: evp_pkey_ctx_ctrl_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1412
    functionDepth: 3
    functionLinenumber: 1412
    functionLinenumberEnd: 1438
    functionName: EVP_PKEY_CTX_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 8
    functionsReached:
    - evp_pkey_ctx_store_cached_data
    - evp_pkey_ctx_ctrl_int
    - ERR_set_mark
    - ERR_raise
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,\n
      \                     int cmd, int p1, void *p2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1440
    functionDepth: 4
    functionLinenumber: 1440
    functionLinenumberEnd: 1444
    functionName: EVP_PKEY_CTX_ctrl_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype,\n
      \                            int cmd, uint64_t value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1453,1
    - Dst: evp_pkey_ctx_state
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1457,1
    - Dst: evp_pkey_ctx_ctrl_str_to_param
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1459,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1463,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1466,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1467,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl_str
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - name
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1476
    functionName: evp_pkey_ctx_ctrl_str_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl_str
    - evp_pkey_ctx_state
    - evp_pkey_ctx_ctrl_str_to_param
    - ERR_raise
    - strcmp
    - EVP_PKEY_CTX_md
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_ctrl_str_int(EVP_PKEY_CTX *ctx,\n                                     const
      char *name, const char *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1484,1
    - Dst: evp_pkey_ctx_store_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1485,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1486,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1488,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1490,1
    - Dst: evp_pkey_ctx_ctrl_str_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - name
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1501
    functionName: EVP_PKEY_CTX_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_ctrl_str_int
    - evp_pkey_ctx_store_cached_data
    - ERR_set_mark
    - ERR_pop_to_mark
    - strlen
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx,\n                          const
      char *name, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1511,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1512,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - cmd
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1517
    functionName: decode_cmd
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int decode_cmd(int cmd, const char *name)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: decode_cmd
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1529,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1533,1
    - Dst: evp_pkey_ctx_state
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1538,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1541,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1544,1
    - Dst: evp_pkey_type2name
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1545,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1546,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1553,1
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1556,1
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1556,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1557,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1564,1
    - Dst: evp_pkey_ctx_free_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1570,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1572,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1574,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1579,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1581,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 7
    argNames:
    - ctx
    - keytype
    - optype
    - cmd
    - name
    - data
    - data_len
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1519
    functionDepth: 2
    functionLinenumber: 1519
    functionLinenumberEnd: 1590
    functionName: evp_pkey_ctx_store_cached_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_type
    - evp_pkey_ctx_state
    - decode_cmd
    - ERR_raise
    - evp_pkey_type2name
    - OPENSSL_memdup
    - OPENSSL_strdup
    - EVP_KEYMGMT_is_a
    - evp_pkey_ctx_free_cached_data
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_store_cached_data(EVP_PKEY_CTX *ctx,\n                                          int
      keytype, int optype,\n                                          int cmd, const
      char *name,\n                                          const void *data, size_t
      data_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_cmd
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1595,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1598,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - cmd
    - name
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1604
    functionName: evp_pkey_ctx_free_cached_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - decode_cmd
    linkageType: ''
    returnType: void
    signature: "void evp_pkey_ctx_free_cached_data(EVP_PKEY_CTX *ctx,\n                                          int
      cmd, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_free_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1606
    functionDepth: 3
    functionLinenumber: 1606
    functionLinenumberEnd: 1609
    functionName: evp_pkey_ctx_free_all_cached_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_ctx_free_cached_data
    linkageType: ''
    returnType: void
    signature: void evp_pkey_ctx_free_all_cached_data(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_ctrl_str_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1621,1
    - Dst: evp_pkey_ctx_ctrl_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1611
    functionDepth: 3
    functionLinenumber: 1611
    functionLinenumberEnd: 1629
    functionName: evp_pkey_ctx_use_cached_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_ctx_ctrl_str_int
    - evp_pkey_ctx_ctrl_int
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_use_cached_data(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1634
    functionName: EVP_PKEY_CTX_get0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *EVP_PKEY_CTX_get0_libctx(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1639
    functionName: EVP_PKEY_CTX_get0_propq
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_PKEY_CTX_get0_propq(const EVP_PKEY_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1643,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1645,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1646,1
    - Dst: EVP_KEYEXCH_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1648,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1649,1
    - Dst: EVP_KEM_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1651,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1652,1
    - Dst: EVP_ASYM_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1654,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1655,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1657,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1661
    functionName: EVP_PKEY_CTX_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_ASYM_CIPHER_get0_provider
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - EVP_KEYEXCH_get0_provider
    - EVP_PKEY_CTX_IS_GEN_OP
    - EVP_KEM_get0_provider
    - EVP_PKEY_CTX_IS_KEM_OP
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - EVP_KEYMGMT_get0_provider
    - EVP_SIGNATURE_get0_provider
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_PKEY_CTX_get0_provider(const EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1669,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - cmd
    - str
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1673
    functionName: EVP_PKEY_CTX_str2ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::ctrl
    - strlen
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1681,1
    - Dst: EVP_PKEY_CTX*::pmeth::ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1685,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - cmd
    - hex
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1675
    functionDepth: 4
    functionLinenumber: 1675
    functionLinenumberEnd: 1688
    functionName: EVP_PKEY_CTX_hex2ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_PKEY_CTX*::pmeth::ctrl
    - OPENSSL_hexstr2buf
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1695,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1696,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - optype
    - cmd
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1700
    functionName: EVP_PKEY_CTX_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached:
    - EVP_get_digestbyname
    - ERR_raise
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1705
    functionName: EVP_PKEY_CTX_get_operation
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dat
    - datlen
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1711
    functionName: EVP_PKEY_CTX_set0_keygen_info
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int
      datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1716
    functionName: EVP_PKEY_CTX_set_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1721
    functionName: EVP_PKEY_CTX_get_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_CTX_get_data(const EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1726
    functionName: EVP_PKEY_CTX_get0_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1728
    functionDepth: 0
    functionLinenumber: 1728
    functionLinenumberEnd: 1731
    functionName: EVP_PKEY_CTX_get0_peerkey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1736
    functionName: EVP_PKEY_CTX_set_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1741
    functionName: EVP_PKEY_CTX_get_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1747
    functionName: EVP_PKEY_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,\n                            int
      (*init) (EVP_PKEY_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1754
    functionName: EVP_PKEY_meth_set_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth,\n                            int
      (*copy) (EVP_PKEY_CTX *dst,\n                                         const
      EVP_PKEY_CTX *src))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1760
    functionName: EVP_PKEY_meth_set_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth,\n                               void
      (*cleanup) (EVP_PKEY_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1769
    functionName: EVP_PKEY_meth_set_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1771
    functionDepth: 0
    functionLinenumber: 1771
    functionLinenumberEnd: 1778
    functionName: EVP_PKEY_meth_set_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1780
    functionDepth: 0
    functionLinenumber: 1780
    functionLinenumberEnd: 1789
    functionName: EVP_PKEY_meth_set_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1791
    functionDepth: 0
    functionLinenumber: 1791
    functionLinenumberEnd: 1801
    functionName: EVP_PKEY_meth_set_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1817
    functionName: EVP_PKEY_meth_set_verify_recover
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1829
    functionName: EVP_PKEY_meth_set_signctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1841
    functionName: EVP_PKEY_meth_set_verifyctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1853
    functionName: EVP_PKEY_meth_set_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1865
    functionName: EVP_PKEY_meth_set_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1875
    functionName: EVP_PKEY_meth_set_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1886
    functionName: EVP_PKEY_meth_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1893
    functionName: EVP_PKEY_meth_set_digestsign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_digestsign(EVP_PKEY_METHOD *pmeth,\n    int
      (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen,\n                       const
      unsigned char *tbs, size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1901
    functionName: EVP_PKEY_meth_set_digestverify
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_digestverify(EVP_PKEY_METHOD *pmeth,\n    int
      (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,\n                         size_t
      siglen, const unsigned char *tbs,\n                         size_t tbslen))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1907
    functionName: EVP_PKEY_meth_set_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth,\n                             int
      (*check) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1913
    functionName: EVP_PKEY_meth_set_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth,\n                                    int
      (*check) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1919
    functionName: EVP_PKEY_meth_set_param_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth,\n                                   int
      (*check) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1921
    functionDepth: 0
    functionLinenumber: 1921
    functionLinenumberEnd: 1926
    functionName: EVP_PKEY_meth_set_digest_custom
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth,\n                                     int
      (*digest_custom) (EVP_PKEY_CTX *ctx,\n                                                           EVP_MD_CTX
      *mctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1932
    functionName: EVP_PKEY_meth_get_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth,\n                            int
      (**pinit) (EVP_PKEY_CTX *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1939
    functionName: EVP_PKEY_meth_get_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth,\n                            int
      (**pcopy) (EVP_PKEY_CTX *dst,\n                                           const
      EVP_PKEY_CTX *src))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1945
    functionName: EVP_PKEY_meth_get_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth,\n                               void
      (**pcleanup) (EVP_PKEY_CTX *ctx))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1956
    functionName: EVP_PKEY_meth_get_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth,\n                                int
      (**pparamgen_init) (EVP_PKEY_CTX *ctx),\n                                int
      (**pparamgen) (EVP_PKEY_CTX *ctx,\n                                                   EVP_PKEY
      *pkey))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 1967
    functionName: EVP_PKEY_meth_get_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth,\n                              int
      (**pkeygen_init) (EVP_PKEY_CTX *ctx),\n                              int (**pkeygen)
      (EVP_PKEY_CTX *ctx,\n                                               EVP_PKEY
      *pkey))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 1980
    functionName: EVP_PKEY_meth_get_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_sign(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 1994
    functionName: EVP_PKEY_meth_get_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_verify(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1996
    functionDepth: 0
    functionLinenumber: 1996
    functionLinenumberEnd: 2012
    functionName: EVP_PKEY_meth_get_verify_recover
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_verify_recover(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2026
    functionName: EVP_PKEY_meth_get_signctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_signctx(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2040
    functionName: EVP_PKEY_meth_get_verifyctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_verifyctx(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2054
    functionName: EVP_PKEY_meth_get_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_encrypt(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2068
    functionName: EVP_PKEY_meth_get_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_decrypt(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2080
    functionName: EVP_PKEY_meth_get_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_derive(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2093
    functionName: EVP_PKEY_meth_get_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_ctrl(const 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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2101
    functionName: EVP_PKEY_meth_get_digestsign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_digestsign(const EVP_PKEY_METHOD *pmeth,\n
      \   int (**digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       const unsigned char *tbs, size_t tbslen))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2110
    functionName: EVP_PKEY_meth_get_digestverify
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_digestverify(const EVP_PKEY_METHOD *pmeth,\n
      \   int (**digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,\n                          size_t
      siglen, const unsigned char *tbs,\n                          size_t tbslen))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2112
    functionDepth: 0
    functionLinenumber: 2112
    functionLinenumberEnd: 2117
    functionName: EVP_PKEY_meth_get_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth,\n                             int
      (**pcheck) (EVP_PKEY *pkey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2124
    functionName: EVP_PKEY_meth_get_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth,\n
      \                                   int (**pcheck) (EVP_PKEY *pkey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2131
    functionName: EVP_PKEY_meth_get_param_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth,\n
      \                                  int (**pcheck) (EVP_PKEY *pkey))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pmeth
    argTypes:
    - EVP_PKEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2133
    functionDepth: 0
    functionLinenumber: 2133
    functionLinenumberEnd: 2139
    functionName: EVP_PKEY_meth_get_digest_custom
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_meth_get_digest_custom(const EVP_PKEY_METHOD *pmeth,\n
      \                                    int (**pdigest_custom) (EVP_PKEY_CTX *ctx,\n
      \                                                            EVP_MD_CTX *mctx))"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:32,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:36,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:39,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:41,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:46,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:53,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:56,1
    - Dst: evp_keymgmt_util_query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:60,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:64,1
    - Dst: EVP_ASYM_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:93,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:94,1
    - Dst: EVP_ASYM_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:98,1
    - Dst: EVP_ASYM_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:101,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:104,1
    - Dst: evp_asym_cipher_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:106,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:125,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:126,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:129,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:132,1
    - Dst: EVP_ASYM_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:136,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:140,1
    - Dst: EVP_ASYM_CIPHER*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:145,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:155,1
    - Dst: EVP_ASYM_CIPHER*::encrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:163,1
    - Dst: EVP_ASYM_CIPHER*::decrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:170,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:176,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:184,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:185,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:189,1
    - Dst: EVP_PKEY_CTX*::pmeth::encrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:196,1
    - Dst: EVP_PKEY_CTX*::pmeth::decrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:204,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:210,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:213,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 129
    argCount: 3
    argNames:
    - ctx
    - operation
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 215
    functionName: evp_pkey_asym_cipher_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - EVP_ASYM_CIPHER_get0_provider
    - EVP_ASYM_CIPHER*::decrypt_init
    - EVP_ASYM_CIPHER*::encrypt_init
    - evp_pkey_export_to_provider
    - evp_asym_cipher_fetch_from_prov
    - EVP_ASYM_CIPHER_free
    - ossl_assert
    - EVP_PKEY_CTX*::pmeth::encrypt_init
    - evp_pkey_ctx_free_old_ops
    - evp_keymgmt_util_query_operation_name
    - evp_pkey_ctx_is_legacy
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT_free
    - EVP_KEYMGMT_get0_provider
    - EVP_PKEY_CTX*::pmeth::decrypt_init
    - EVP_ASYM_CIPHER_fetch
    - ERR_raise
    - evp_keymgmt_fetch_from_prov
    - EVP_ASYM_CIPHER*::newctx
    - ERR_set_mark
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - ossl_provider_ctx
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_asym_cipher_init(EVP_PKEY_CTX *ctx, int operation,\n
      \                                    const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asym_cipher_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: EVP_PKEY_encrypt_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 1
    functionsReached:
    - evp_pkey_asym_cipher_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asym_cipher_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: EVP_PKEY_encrypt_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asym_cipher_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_encrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:239,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::encrypt
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:246,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:252,1
    - Dst: M_check_autoarg
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:255,1
    - Dst: EVP_PKEY_CTX*::pmeth::encrypt
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 257
    functionName: EVP_PKEY_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 1
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::op::ciph::cipher::encrypt
    - EVP_PKEY_CTX*::pmeth::encrypt
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,\n                     unsigned
      char *out, size_t *outlen,\n                     const unsigned char *in, size_t
      inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asym_cipher_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 5
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: EVP_PKEY_decrypt_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 2
    functionsReached:
    - evp_pkey_asym_cipher_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asym_cipher_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: EVP_PKEY_decrypt_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asym_cipher_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_decrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:281,1
    - Dst: EVP_PKEY_CTX*::op::ciph::cipher::decrypt
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:288,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:294,1
    - Dst: M_check_autoarg
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:297,1
    - Dst: EVP_PKEY_CTX*::pmeth::decrypt
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 299
    functionName: EVP_PKEY_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 2
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::op::ciph::cipher::decrypt
    - ERR_raise
    - EVP_PKEY_CTX*::pmeth::decrypt
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,\n                     unsigned
      char *out, size_t *outlen,\n                     const unsigned char *in, size_t
      inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:304,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:307,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:311,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:313,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:314,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 322
    functionName: evp_asym_cipher_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - ossl_provider_up_ref
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: EVP_ASYM_CIPHER
    signature: EVP_ASYM_CIPHER *evp_asym_cipher_new(OSSL_PROVIDER *prov)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: evp_asym_cipher_new
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:334,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:339,1
    - Dst: OSSL_FUNC_asym_cipher_newctx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:348,1
    - Dst: OSSL_FUNC_asym_cipher_encrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:354,1
    - Dst: OSSL_FUNC_asym_cipher_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:360,1
    - Dst: OSSL_FUNC_asym_cipher_decrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:366,1
    - Dst: OSSL_FUNC_asym_cipher_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:372,1
    - Dst: OSSL_FUNC_asym_cipher_freectx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:378,1
    - Dst: OSSL_FUNC_asym_cipher_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:384,1
    - Dst: OSSL_FUNC_asym_cipher_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:390,1
    - Dst: OSSL_FUNC_asym_cipher_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:397,1
    - Dst: OSSL_FUNC_asym_cipher_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:404,1
    - Dst: OSSL_FUNC_asym_cipher_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:411,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:431,1
    - Dst: EVP_ASYM_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:437,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 90
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 439
    functionName: evp_asym_cipher_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_asym_cipher_gettable_ctx_params
    - OSSL_FUNC_asym_cipher_freectx
    - OSSL_FUNC_asym_cipher_set_ctx_params
    - OSSL_FUNC_asym_cipher_decrypt_init
    - OSSL_FUNC_asym_cipher_newctx
    - evp_asym_cipher_new
    - OSSL_FUNC_asym_cipher_decrypt
    - OSSL_FUNC_asym_cipher_dupctx
    - ossl_algorithm_get1_first_name
    - ERR_raise
    - OSSL_FUNC_asym_cipher_get_ctx_params
    - EVP_ASYM_CIPHER_free
    - OSSL_FUNC_asym_cipher_settable_ctx_params
    - OSSL_FUNC_asym_cipher_encrypt
    - OSSL_FUNC_asym_cipher_encrypt_init
    linkageType: ''
    returnType: void
    signature: "void *evp_asym_cipher_from_algorithm(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:447,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:450,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:451,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:452,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: EVP_ASYM_CIPHER_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_ASYM_CIPHER_free(EVP_ASYM_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: EVP_ASYM_CIPHER_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 1
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_ASYM_CIPHER_up_ref(EVP_ASYM_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: EVP_ASYM_CIPHER_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_ASYM_CIPHER_get0_provider(const EVP_ASYM_CIPHER
      *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 476
    functionName: EVP_ASYM_CIPHER_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_ASYM_CIPHER
    signature: "EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char
      *algorithm,\n                                       const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - algorithm
    - properties
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: evp_asym_cipher_fetch_from_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch_from_prov
    linkageType: ''
    returnType: EVP_ASYM_CIPHER
    signature: "EVP_ASYM_CIPHER *evp_asym_cipher_fetch_from_prov(OSSL_PROVIDER *prov,\n
      \                                                const char *algorithm,\n                                                 const
      char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher
    - name
    argTypes:
    - EVP_ASYM_CIPHER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: EVP_ASYM_CIPHER_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_ASYM_CIPHER_is_a(const EVP_ASYM_CIPHER *cipher, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: evp_asym_cipher_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_asym_cipher_get_number(const EVP_ASYM_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: EVP_ASYM_CIPHER_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_ASYM_CIPHER_get0_name(const EVP_ASYM_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: EVP_ASYM_CIPHER_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_ASYM_CIPHER_get0_description(const EVP_ASYM_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 519
    functionName: EVP_ASYM_CIPHER_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx,\n                                     void
      (*fn)(EVP_ASYM_CIPHER *cipher,\n                                                void
      *arg),\n                                     void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - data
    argTypes:
    - EVP_ASYM_CIPHER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: EVP_ASYM_CIPHER_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_ASYM_CIPHER_names_do_all(const EVP_ASYM_CIPHER *cipher,\n
      \                                void (*fn)(const char *name, void *data),\n
      \                                void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:539,1
    - Dst: EVP_ASYM_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:539,1
    - Dst: EVP_ASYM_CIPHER*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cip
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: EVP_ASYM_CIPHER_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - EVP_ASYM_CIPHER_get0_provider
    - EVP_ASYM_CIPHER*::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_ASYM_CIPHER_gettable_ctx_params(const EVP_ASYM_CIPHER
      *cip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:550,1
    - Dst: EVP_ASYM_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:550,1
    - Dst: EVP_ASYM_CIPHER*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/asymcipher.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cip
    argTypes:
    - EVP_ASYM_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: EVP_ASYM_CIPHER_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/asymcipher.c
    functionUses: 0
    functionsReached:
    - EVP_ASYM_CIPHER_get0_provider
    - EVP_ASYM_CIPHER*::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_ASYM_CIPHER_settable_ctx_params(const EVP_ASYM_CIPHER
      *cip)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:31,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:39,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:44,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:47,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:48,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:51,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:53,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:54,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:56,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:57,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:59,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:60,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:63,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:66,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:70,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:74,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:75,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:78,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 10
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - digest
    - keylen
    - out
    - libctx
    - propq
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    - int
    - unsigned char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 81
    functionName: ossl_pkcs5_pbkdf2_hmac_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - OSSL_TRACE_END
    - EVP_KDF_CTX_new
    - EVP_KDF_fetch
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_free
    - EVP_MD_get0_name
    - EVP_KDF_CTX_free
    - BIO_hex_string
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int ossl_pkcs5_pbkdf2_hmac_ex(const char *pass, int passlen,\n                              const
      unsigned char *salt, int saltlen, int iter,\n                              const
      EVP_MD *digest, int keylen, unsigned char *out,\n                              OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:66,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:70,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:74,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:75,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - BIO_hex_string
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(PKCS5V2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pkcs5_pbkdf2_hmac_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - digest
    - keylen
    - out
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - EVP_MD*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: PKCS5_PBKDF2_HMAC
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 3
    functionsReached:
    - ossl_pkcs5_pbkdf2_hmac_ex
    linkageType: ''
    returnType: int
    signature: "int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, const unsigned
      char *salt,\n                      int saltlen, int iter, const EVP_MD *digest,
      int keylen,\n                      unsigned char *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:99,1
    - Dst: ossl_pkcs5_pbkdf2_hmac_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:100,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - iter
    - keylen
    - out
    argTypes:
    - char*
    - int
    - unsigned char*
    - int
    - int
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: PKCS5_PBKDF2_HMAC_SHA1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 2
    functionsReached:
    - ossl_pkcs5_pbkdf2_hmac_ex
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int 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: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:125,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:125,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:127,1
    - Dst: EVP_PBE_find_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:132,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:132,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:134,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:142,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:146,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:147,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:150,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:153,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:154,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:157,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:160,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:163,1
    - Dst: kdf
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:166,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:168,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 9
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 171
    functionName: PKCS5_v2_PBE_keyivgen_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - PBE2PARAM_free
    - OBJ_obj2txt
    - kdf
    - EVP_CIPHER_free
    - ASN1_ITEM_rptr
    - EVP_get_cipherbyname
    - OBJ_obj2nid
    - ERR_set_mark
    - ERR_raise
    - EVP_CipherInit_ex
    - ASN1_TYPE_unpack_sequence
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_CIPHER_asn1_to_param
    - EVP_CIPHER_fetch
    - EVP_PBE_find_ex
    linkageType: ''
    returnType: int
    signature: "int PKCS5_v2_PBE_keyivgen_ex(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,\n                             OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_v2_PBE_keyivgen_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: PKCS5_v2_PBE_keyivgen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - PKCS5_v2_PBE_keyivgen_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:195,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:198,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:199,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:203,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:206,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:210,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:212,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:219,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:220,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:225,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:229,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:230,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:234,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:235,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:235,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:237,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:240,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:246,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:253,1
    - Dst: ossl_pkcs5_pbkdf2_hmac_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:254,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:257,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:259,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:260,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:261,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 9
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 263
    functionName: PKCS5_v2_PBKDF2_keyivgen_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OBJ_obj2nid
    - OPENSSL_cleanse
    - PBKDF2PARAM_free
    - ossl_pkcs5_pbkdf2_hmac_ex
    - ASN1_INTEGER_get
    - EVP_CIPHER_CTX_get_key_length
    - OBJ_nid2sn
    - EVP_CipherInit_ex
    - ERR_raise
    - EVP_CIPHER_CTX_get0_cipher
    - ASN1_ITEM_rptr
    - ERR_set_mark
    - EVP_get_digestbynid
    - EVP_PBE_find
    - ASN1_TYPE_unpack_sequence
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int PKCS5_v2_PBKDF2_keyivgen_ex(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,\n                                OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_v2_PBKDF2_keyivgen_ex
      Src: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 6
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: PKCS5_v2_PBKDF2_keyivgen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p5_crpt2.c
    functionUses: 0
    functionsReached:
    - PKCS5_v2_PBKDF2_keyivgen_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:21,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:22,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:27,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: dh_paramgen_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_is_legacy
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int dh_paramgen_check(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:37,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: dh_param_derive_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_is_legacy
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int dh_param_derive_check(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dh_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:54,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:57,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:58,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - gindex
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: EVP_PKEY_CTX_set_dh_paramgen_gindex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - dh_paramgen_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dh_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:70,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:73,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:75,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - seed
    - seedlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: EVP_PKEY_CTX_set_dh_paramgen_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_construct_end
    - dh_paramgen_check
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_dh_paramgen_seed(EVP_PKEY_CTX *ctx,\n                                      const
      unsigned char *seed,\n                                      size_t seedlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - typ
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: EVP_PKEY_CTX_set_dh_paramgen_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_paramgen_type(EVP_PKEY_CTX *ctx, int typ)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dh_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:96,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:99,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:100,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pbits
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: EVP_PKEY_CTX_set_dh_paramgen_prime_len
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_end
    - dh_paramgen_check
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int pbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dh_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:110,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:113,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:114,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - qbits
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: EVP_PKEY_CTX_set_dh_paramgen_subprime_len
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_end
    - dh_paramgen_check
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_paramgen_subprime_len(EVP_PKEY_CTX *ctx, int
      qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dh_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:124,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:127,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:128,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - gen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: EVP_PKEY_CTX_set_dh_paramgen_generator
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - dh_paramgen_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - gen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: EVP_PKEY_CTX_set_dh_rfc5114
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_rfc5114(EVP_PKEY_CTX *ctx, int gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_set_dh_rfc5114
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - gen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: EVP_PKEY_CTX_set_dhx_rfc5114
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_dh_rfc5114
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dhx_rfc5114(EVP_PKEY_CTX *ctx, int gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - nid
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: EVP_PKEY_CTX_set_dh_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_nid(EVP_PKEY_CTX *ctx, int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:165,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:166,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:170,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:171,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pad
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: EVP_PKEY_CTX_set_dh_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - OSSL_PARAM_construct_uint
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_pad(EVP_PKEY_CTX *ctx, int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - kdf
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: EVP_PKEY_CTX_set_dh_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_kdf_type(EVP_PKEY_CTX *ctx, int kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: EVP_PKEY_CTX_get_dh_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_dh_kdf_type(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - oid
    argTypes:
    - EVP_PKEY_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: EVP_PKEY_CTX_set0_dh_kdf_oid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - oid
    argTypes:
    - EVP_PKEY_CTX*
    - ASN1_OBJECT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: EVP_PKEY_CTX_get0_dh_kdf_oid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get0_dh_kdf_oid(EVP_PKEY_CTX *ctx, ASN1_OBJECT **oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: EVP_PKEY_CTX_set_dh_kdf_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pmd
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: EVP_PKEY_CTX_get_dh_kdf_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_dh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **pmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dh_param_derive_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:242,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:255,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:257,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:259,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - outlen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 263
    functionName: EVP_PKEY_CTX_set_dh_kdf_outlen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - dh_param_derive_check
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dh_param_derive_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:271,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:275,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:277,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:279,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - plen
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 288
    functionName: EVP_PKEY_CTX_get_dh_kdf_outlen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - dh_param_derive_check
    - ERR_raise
    - evp_pkey_ctx_get_params_strict
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_dh_kdf_outlen(EVP_PKEY_CTX *ctx, int *plen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dh_param_derive_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:298,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:302,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:309,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:311,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:313,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - ukm
    - len
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 317
    functionName: EVP_PKEY_CTX_set0_dh_kdf_ukm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - dh_param_derive_check
    - ERR_raise
    - OPENSSL_free
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char *ukm,
      int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dh_param_derive_check
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:326,1
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:330,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:332,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - pukm
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 345
    functionName: EVP_PKEY_CTX_get0_dh_kdf_ukm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_ctrl.c
    functionUses: 0
    functionsReached:
    - dh_param_derive_check
    - ERR_raise
    - evp_pkey_ctx_get_params_strict
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_ptr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get0_dh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char **pukm)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_find_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:101,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:101,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:106,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:108,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:109,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:117,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:120,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:121,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:121,1
    - Dst: EVP_get_cipherbynid
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:124,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:126,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:127,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:128,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:131,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:135,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:136,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:136,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:139,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:142,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:143,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:146,1
    - Dst: keygen_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:151,1
    - Dst: keygen
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:153,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:156,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:157,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 8
    argNames:
    - pbe_obj
    - pass
    - passlen
    - param
    - ctx
    - en_de
    - libctx
    - propq
    argTypes:
    - ASN1_OBJECT*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER_CTX*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 160
    functionName: EVP_PBE_CipherInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - strlen
    - keygen
    - ERR_raise_data
    - OBJ_nid2sn
    - EVP_CIPHER_free
    - keygen_ex
    - ERR_raise
    - EVP_get_cipherbynid
    - OPENSSL_strlcpy
    - EVP_CIPHER_fetch
    - EVP_PBE_find_ex
    - i2t_ASN1_OBJECT
    - ERR_set_mark
    - EVP_get_digestbynid
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_CipherInit_ex(ASN1_OBJECT *pbe_obj, const char *pass,
      int passlen,\n                          ASN1_TYPE *param, EVP_CIPHER_CTX *ctx,
      int en_de,\n                          OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pbe_obj
    - pass
    - passlen
    - param
    - ctx
    - en_de
    argTypes:
    - ASN1_OBJECT*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: EVP_PBE_CipherInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_CipherInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int
      passlen,\n                       ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int
      en_de)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pbe1
    - pbe2
    argTypes:
    - EVP_PBE_CTL*
    - EVP_PBE_CTL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: pbe2_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pbe2_cmp(const EVP_PBE_CTL *pbe1, const EVP_PBE_CTL *pbe2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PBE_CTL**
    - EVP_PBE_CTL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: pbe_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pbe_cmp(const EVP_PBE_CTL *const *a, const EVP_PBE_CTL *const *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:198,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:203,1
    - Dst: sk_EVP_PBE_CTL_push
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:213,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:219,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 221
    functionName: EVP_PBE_alg_add_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - sk_EVP_PBE_CTL_push
    - sk_EVP_PBE_CTL_new
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid,\n
      \                        int md_nid, EVP_PBE_KEYGEN *keygen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:229,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:233,1
    - Dst: EVP_PBE_alg_add_type
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - nid
    - cipher
    - md
    - keygen
    argTypes:
    - int
    - EVP_CIPHER*
    - EVP_MD*
    - EVP_PBE_KEYGEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: EVP_PBE_alg_add
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_alg_add_type
    - EVP_CIPHER_get_nid
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD
      *md,\n                    EVP_PBE_KEYGEN *keygen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_find
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:253,1
    - Dst: sk_EVP_PBE_CTL_value
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:254,1
    - Dst: OBJ_bsearch_pbe2
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:257,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - type
    - pbe_nid
    - pcnid
    - pmnid
    - pkeygen
    - pkeygen_ex
    argTypes:
    - int
    - int
    - int*
    - int*
    - EVP_PBE_KEYGEN**
    - EVP_PBE_KEYGEN_EX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 270
    functionName: EVP_PBE_find_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 2
    functionsReached:
    - sk_EVP_PBE_CTL_find
    - sk_EVP_PBE_CTL_value
    - OBJ_bsearch_pbe2
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_find_ex(int type, int pbe_nid, int *pcnid, int *pmnid,\n
      \                   EVP_PBE_KEYGEN **pkeygen, EVP_PBE_KEYGEN_EX **pkeygen_ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_find_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - type
    - pbe_nid
    - pcnid
    - pmnid
    - pkeygen
    argTypes:
    - int
    - int
    - int*
    - int*
    - EVP_PBE_KEYGEN**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: EVP_PBE_find
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 2
    functionsReached:
    - EVP_PBE_find_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_find(int type, int pbe_nid,\n                 int *pcnid,
      int *pmnid, EVP_PBE_KEYGEN **pkeygen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbe
    argTypes:
    - EVP_PBE_CTL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: free_evp_pbe_ctl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_evp_pbe_ctl(EVP_PBE_CTL *pbe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PBE_CTL_pop_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: EVP_PBE_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PBE_CTL_pop_free
    linkageType: ''
    returnType: void
    signature: void EVP_PBE_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/evp_pbe.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ptype
    - ppbe_nid
    - num
    argTypes:
    - int*
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 302
    functionName: EVP_PBE_get
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pbe.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:23,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:26,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:32,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:33,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: evp_signature_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - ossl_provider_up_ref
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: EVP_SIGNATURE
    signature: EVP_SIGNATURE *evp_signature_new(OSSL_PROVIDER *prov)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: evp_signature_new
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:54,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:59,1
    - Dst: OSSL_FUNC_signature_newctx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:68,1
    - Dst: OSSL_FUNC_signature_sign_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:74,1
    - Dst: OSSL_FUNC_signature_sign
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:80,1
    - Dst: OSSL_FUNC_signature_verify_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:86,1
    - Dst: OSSL_FUNC_signature_verify
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:92,1
    - Dst: OSSL_FUNC_signature_verify_recover_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:99,1
    - Dst: OSSL_FUNC_signature_verify_recover
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:106,1
    - Dst: OSSL_FUNC_signature_digest_sign_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:113,1
    - Dst: OSSL_FUNC_signature_digest_sign_update
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:119,1
    - Dst: OSSL_FUNC_signature_digest_sign_final
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:126,1
    - Dst: OSSL_FUNC_signature_digest_sign
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:133,1
    - Dst: OSSL_FUNC_signature_digest_verify_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:139,1
    - Dst: OSSL_FUNC_signature_digest_verify_update
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:145,1
    - Dst: OSSL_FUNC_signature_digest_verify_final
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:152,1
    - Dst: OSSL_FUNC_signature_digest_verify
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:159,1
    - Dst: OSSL_FUNC_signature_freectx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:164,1
    - Dst: OSSL_FUNC_signature_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:170,1
    - Dst: OSSL_FUNC_signature_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:176,1
    - Dst: OSSL_FUNC_signature_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:183,1
    - Dst: OSSL_FUNC_signature_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:190,1
    - Dst: OSSL_FUNC_signature_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:197,1
    - Dst: OSSL_FUNC_signature_get_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:204,1
    - Dst: OSSL_FUNC_signature_gettable_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:211,1
    - Dst: OSSL_FUNC_signature_set_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:218,1
    - Dst: OSSL_FUNC_signature_settable_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:225,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:270,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:276,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 170
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 278
    functionName: evp_signature_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_signature_settable_ctx_params
    - OSSL_FUNC_signature_newctx
    - OSSL_FUNC_signature_get_ctx_params
    - OSSL_FUNC_signature_freectx
    - OSSL_FUNC_signature_verify_recover_init
    - OSSL_FUNC_signature_digest_verify
    - OSSL_FUNC_signature_digest_verify_final
    - OSSL_FUNC_signature_verify_init
    - OSSL_FUNC_signature_gettable_ctx_params
    - ossl_algorithm_get1_first_name
    - OSSL_FUNC_signature_digest_sign_update
    - OSSL_FUNC_signature_verify
    - OSSL_FUNC_signature_digest_verify_init
    - OSSL_FUNC_signature_get_ctx_md_params
    - EVP_SIGNATURE_free
    - OSSL_FUNC_signature_set_ctx_md_params
    - OSSL_FUNC_signature_sign
    - ERR_raise
    - OSSL_FUNC_signature_verify_recover
    - OSSL_FUNC_signature_digest_sign_init
    - OSSL_FUNC_signature_digest_verify_update
    - OSSL_FUNC_signature_dupctx
    - OSSL_FUNC_signature_settable_ctx_md_params
    - OSSL_FUNC_signature_gettable_ctx_md_params
    - OSSL_FUNC_signature_digest_sign_final
    - evp_signature_new
    - OSSL_FUNC_signature_set_ctx_params
    - OSSL_FUNC_signature_sign_init
    - OSSL_FUNC_signature_digest_sign
    linkageType: ''
    returnType: void
    signature: "void *evp_signature_from_algorithm(int name_id,\n                                          const
      OSSL_ALGORITHM *algodef,\n                                          OSSL_PROVIDER
      *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:286,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:289,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:290,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:291,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - signature
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: EVP_SIGNATURE_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_SIGNATURE_free(EVP_SIGNATURE *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - signature
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: EVP_SIGNATURE_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 1
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_SIGNATURE_up_ref(EVP_SIGNATURE *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signature
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: EVP_SIGNATURE_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_SIGNATURE_get0_provider(const EVP_SIGNATURE *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: EVP_SIGNATURE_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_SIGNATURE
    signature: "EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,\n
      \                                  const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - algorithm
    - properties
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: evp_signature_fetch_from_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch_from_prov
    linkageType: ''
    returnType: EVP_SIGNATURE
    signature: "EVP_SIGNATURE *evp_signature_fetch_from_prov(OSSL_PROVIDER *prov,\n
      \                                            const char *algorithm,\n                                             const
      char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - signature
    - name
    argTypes:
    - EVP_SIGNATURE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: EVP_SIGNATURE_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_SIGNATURE_is_a(const EVP_SIGNATURE *signature, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signature
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: evp_signature_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_signature_get_number(const EVP_SIGNATURE *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signature
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: EVP_SIGNATURE_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_SIGNATURE_get0_name(const EVP_SIGNATURE *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signature
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: EVP_SIGNATURE_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_SIGNATURE_get0_description(const EVP_SIGNATURE *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 359
    functionName: EVP_SIGNATURE_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx,\n                                   void
      (*fn)(EVP_SIGNATURE *signature,\n                                              void
      *arg),\n                                   void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - signature
    - data
    argTypes:
    - EVP_SIGNATURE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: EVP_SIGNATURE_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_SIGNATURE_names_do_all(const EVP_SIGNATURE *signature,\n                               void
      (*fn)(const char *name, void *data),\n                               void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:379,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:379,1
    - Dst: EVP_SIGNATURE*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 381
    functionName: EVP_SIGNATURE_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - EVP_SIGNATURE*::gettable_ctx_params
    - EVP_SIGNATURE_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_SIGNATURE_gettable_ctx_params(const EVP_SIGNATURE *sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:390,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:390,1
    - Dst: EVP_SIGNATURE*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - EVP_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: EVP_SIGNATURE_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - EVP_SIGNATURE*::settable_ctx_params
    - EVP_SIGNATURE_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_SIGNATURE_settable_ctx_params(const EVP_SIGNATURE *sig)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:406,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:410,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:413,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:415,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:419,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:420,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:427,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:429,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:430,1
    - Dst: evp_keymgmt_util_query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:433,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:436,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:437,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:466,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:467,1
    - Dst: EVP_SIGNATURE_fetch
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:472,1
    - Dst: EVP_SIGNATURE_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:474,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:477,1
    - Dst: evp_signature_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:479,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:499,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:500,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:503,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:506,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:510,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:514,1
    - Dst: EVP_SIGNATURE*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:520,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:520,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:523,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:530,1
    - Dst: EVP_SIGNATURE*::sign_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:534,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:538,1
    - Dst: EVP_SIGNATURE*::verify_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:542,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:546,1
    - Dst: EVP_SIGNATURE*::verify_recover_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:550,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:554,1
    - Dst: EVP_SIGNATURE*::freectx
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:559,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:570,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:571,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:579,1
    - Dst: EVP_PKEY_CTX*::pmeth::sign_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:587,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:592,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_recover_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:597,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:600,1
    - Dst: evp_pkey_ctx_use_cached_data
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:608,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:611,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:614,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:616,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 155
    argCount: 3
    argNames:
    - ctx
    - operation
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 394
    functionDepth: 4
    functionLinenumber: 394
    functionLinenumberEnd: 618
    functionName: evp_pkey_signature_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - EVP_SIGNATURE*::newctx
    - EVP_PKEY_CTX*::pmeth::sign_init
    - evp_signature_fetch_from_prov
    - evp_pkey_export_to_provider
    - ossl_assert
    - evp_pkey_ctx_free_old_ops
    - evp_keymgmt_util_query_operation_name
    - evp_pkey_ctx_use_cached_data
    - evp_pkey_ctx_is_legacy
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT_free
    - EVP_SIGNATURE_free
    - EVP_KEYMGMT_get0_provider
    - EVP_SIGNATURE*::verify_init
    - EVP_SIGNATURE_get0_provider
    - ERR_raise
    - evp_keymgmt_fetch_from_prov
    - EVP_SIGNATURE*::verify_recover_init
    - EVP_SIGNATURE*::sign_init
    - EVP_PKEY_CTX*::pmeth::verify_init
    - EVP_PKEY_CTX*::pmeth::verify_recover_init
    - EVP_SIGNATURE*::freectx
    - ERR_set_mark
    - EVP_SIGNATURE_fetch
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - ossl_provider_ctx
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_signature_init(EVP_PKEY_CTX *ctx, int operation,\n                                   const
      OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_signature_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: EVP_PKEY_sign_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 3
    functionsReached:
    - evp_pkey_signature_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_signature_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 5
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: EVP_PKEY_sign_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_pkey_signature_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_sign_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:637,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:642,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:650,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::sign
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:654,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:661,1
    - Dst: M_check_autoarg
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:665,1
    - Dst: EVP_PKEY_CTX*::pmeth::sign
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:666,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 667
    functionName: EVP_PKEY_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_CTX*::op::sig::signature::sign
    - M_check_autoarg
    - EVP_PKEY_CTX*::pmeth::sign
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,\n                  unsigned char
      *sig, size_t *siglen,\n                  const unsigned char *tbs, size_t tbslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_signature_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 5
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: EVP_PKEY_verify_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 2
    functionsReached:
    - evp_pkey_signature_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_signature_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 5
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: EVP_PKEY_verify_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_pkey_signature_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_verify_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:686,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:691,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:699,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::verify
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:703,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:709,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:713,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 714
    functionName: EVP_PKEY_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::verify
    - EVP_PKEY_CTX*::op::sig::signature::verify
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,\n                    const
      unsigned char *sig, size_t siglen,\n                    const unsigned char
      *tbs, size_t tbslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_signature_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: EVP_PKEY_verify_recover_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_pkey_signature_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_signature_init
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 5
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: EVP_PKEY_verify_recover_init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - evp_pkey_signature_init
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_verify_recover_init_ex(EVP_PKEY_CTX *ctx,\n                                    const
      OSSL_PARAM params[])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:734,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:739,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:747,1
    - Dst: EVP_PKEY_CTX*::op::sig::signature::verify_recover
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:751,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:758,1
    - Dst: M_check_autoarg
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:761,1
    - Dst: EVP_PKEY_CTX*::pmeth::verify_recover
      Src: /src/openssl-3.0.15/crypto/evp/signature.c:762,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - rout
    - routlen
    - sig
    - siglen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 763
    functionName: EVP_PKEY_verify_recover
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/signature.c
    functionUses: 0
    functionsReached:
    - M_check_autoarg
    - EVP_PKEY_CTX*::pmeth::verify_recover
    - EVP_PKEY_CTX*::op::sig::signature::verify_recover
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *rout, size_t *routlen,\n                            const unsigned char
      *sig, size_t siglen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: EVP_blake2b512
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_blake2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_blake2b512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: EVP_blake2s256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_blake2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_blake2s256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - arg
    - ','
    - arglen
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: M_check_autoarg
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M_check_autoarg(ctx, arg, arglen, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: BIO_f_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_cipher(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:69,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:75,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:81,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: enc_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - BIO_set_data
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int enc_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:94,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:98,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:99,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:100,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: enc_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - BIO_get_data
    - BIO_set_data
    - OPENSSL_clear_free
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int enc_free(BIO *a)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:114,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:116,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:125,1
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:136,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:151,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:160,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:162,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:179,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:182,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:197,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:200,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:222,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:229,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:230,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 232
    functionName: enc_read
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - BIO_read
    - memcpy
    - EVP_CIPHER_CTX_get_block_size
    - BIO_get_data
    - EVP_CipherUpdate
    - BIO_copy_next_retry
    - BIO_should_retry
    - BIO_clear_retry_flags
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int enc_read(BIO *b, char *out, int outl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:240,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:241,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:247,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:250,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:252,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:266,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:269,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:279,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:281,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 292
    functionName: enc_write
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - EVP_CipherUpdate
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int enc_write(BIO *b, const char *in, int inl)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:304,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:305,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:313,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:314,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:316,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:322,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:327,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:332,1
    - Dst: enc_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:339,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:352,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:364,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:370,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:371,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:372,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:377,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:381,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:382,1
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:385,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:387,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:390,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 394
    functionName: enc_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - BIO_get_data
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - enc_write
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_CIPHER_CTX_copy
    - BIO_set_init
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long enc_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:398,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: enc_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long enc_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:415,1
    - Dst: BIO_get_callback_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:419,1
    - Dst: callback_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:420,1
    - Dst: BIO_get_callback
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:426,1
    - Dst: callback
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:429,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:435,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:437,1
    - Dst: callback_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:441,1
    - Dst: callback
      Src: /src/openssl-3.0.15/crypto/evp/bio_enc.c:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - b
    - c
    - k
    - i
    - e
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 448
    functionName: BIO_set_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_enc.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_get_data
    - BIO_get_callback
    - BIO_get_callback_ex
    - callback_ex
    - EVP_CipherInit_ex
    - callback
    linkageType: ''
    returnType: int
    signature: "int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char
      *k,\n                   const unsigned char *i, int e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: EVP_md4
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_md4.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vstore
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: evp_method_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void evp_method_store_free(void *vstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: evp_method_store_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *evp_method_store_new(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: get_tmp_evp_method_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *get_tmp_evp_method_store(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - store
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: dealloc_tmp_evp_method_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void dealloc_tmp_evp_method_store(void *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: get_evp_method_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_METHOD_STORE
    signature: OSSL_METHOD_STORE *get_evp_method_store(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:91,1
    - Dst: ossl_method_lock_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: reserve_evp_method_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - get_evp_method_store
    - ossl_method_lock_store
    linkageType: ''
    returnType: int
    signature: int reserve_evp_method_store(void *store, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:102,1
    - Dst: ossl_method_unlock_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 7
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: unreserve_evp_method_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - get_evp_method_store
    - ossl_method_unlock_store
    linkageType: ''
    returnType: int
    signature: int unreserve_evp_method_store(void *store, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:132,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - name_id
    - operation_id
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: evp_method_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t evp_method_id(int name_id, unsigned int operation_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:154,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:156,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:157,1
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:161,1
    - Dst: evp_method_id
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:165,1
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:169,1
    - Dst: ossl_method_store_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - store
    - prov
    - data
    argTypes:
    - void*
    - OSSL_PROVIDER**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 140
    functionDepth: 8
    functionLinenumber: 140
    functionLinenumberEnd: 176
    functionName: get_evp_method_from_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - strchr
    - strlen
    - ossl_method_store_fetch
    - get_evp_method_store
    - evp_method_id
    - ossl_namemap_name2num_n
    linkageType: ''
    returnType: void
    signature: "void *get_evp_method_from_store(void *store, const OSSL_PROVIDER **prov,\n
      \                                      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:196,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:198,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:201,1
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:202,1
    - Dst: evp_method_id
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:203,1
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:207,1
    - Dst: ossl_method_store_add
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 6
    argNames:
    - store
    - method
    - prov
    - names
    - propdef
    - data
    argTypes:
    - void*
    - void*
    - OSSL_PROVIDER*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 178
    functionDepth: 8
    functionLinenumber: 178
    functionLinenumberEnd: 213
    functionName: put_evp_method_in_store
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - strchr
    - ossl_method_store_add
    - strlen
    - get_evp_method_store
    - evp_method_id
    - ossl_namemap_name2num_n
    linkageType: ''
    returnType: int
    signature: "int put_evp_method_in_store(void *store, void *method,\n                                   const
      OSSL_PROVIDER *prov,\n                                   const char *names,
      const char *propdef,\n                                   void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:230,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:231,1
    - Dst: ossl_namemap_add_names
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:233,1
    - Dst: struct evp_method_data_st*::method_from_algorithm
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - algodef
    - prov
    - data
    argTypes:
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 8
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: construct_evp_method
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - struct evp_method_data_st*::method_from_algorithm
    - ossl_namemap_add_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: void
    signature: "void *construct_evp_method(const OSSL_ALGORITHM *algodef,\n                                  OSSL_PROVIDER
      *prov, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct evp_method_data_st*::destruct_method
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: destruct_evp_method
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - struct evp_method_data_st*::destruct_method
    linkageType: ''
    returnType: void
    signature: void destruct_evp_method(void *method, void *data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:270,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:278,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:286,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:287,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:295,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:296,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:302,1
    - Dst: evp_method_id
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:312,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:313,1
    - Dst: ossl_method_store_cache_get
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:325,1
    - Dst: ossl_method_construct
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:344,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:360,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:362,1
    - Dst: free_method
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:364,1
    - Dst: evp_method_id
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:367,1
    - Dst: ossl_method_store_cache_set
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:369,1
    - Dst: ossl_namemap_num2name
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:385,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:386,1
    - Dst: ossl_lib_ctx_get_descriptor
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:388,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 7
    argNames:
    - methdata
    - prov
    - operation_id
    - name_id
    - name
    - properties
    - "(*new_method)(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov)"
    argTypes:
    - struct evp_method_data_st*
    - OSSL_PROVIDER*
    - int
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 394
    functionName: inner_evp_generic_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - free_method
    - ossl_namemap_stored
    - ossl_method_store_cache_get
    - ossl_lib_ctx_get_descriptor
    - ossl_namemap_num2name
    - ERR_raise_data
    - ERR_raise
    - ossl_namemap_name2num
    - ossl_method_store_cache_set
    - get_evp_method_store
    - evp_method_id
    - ossl_method_construct
    - ossl_assert
    linkageType: ''
    returnType: void
    signature: "void *\ninner_evp_generic_fetch(struct evp_method_data_st *methdata,\n
      \                       OSSL_PROVIDER *prov, int operation_id,\n                        int
      name_id, const char *name,\n                        const char *properties,\n
      \                       void *(*new_method)(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov),\n                        int (*up_ref_method)(void *),\n                        void
      (*free_method)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:409,1
    - Dst: dealloc_tmp_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - libctx
    - operation_id
    - name
    - properties
    - "(*new_method)(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov)"
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 396
    functionDepth: 9
    functionLinenumber: 396
    functionLinenumberEnd: 414
    functionName: evp_generic_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 6
    functionsReached:
    - inner_evp_generic_fetch
    - dealloc_tmp_evp_method_store
    linkageType: ''
    returnType: void
    signature: "void *evp_generic_fetch(OSSL_LIB_CTX *libctx, int operation_id,\n
      \                       const char *name, const char *properties,\n                        void
      *(*new_method)(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov),\n                        int (*up_ref_method)(void *),\n                        void
      (*free_method)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:436,1
    - Dst: dealloc_tmp_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - libctx
    - operation_id
    - name_id
    - properties
    - "(*new_method)(int name_id,\n                                                      const
      OSSL_ALGORITHM *algodef,\n                                                      OSSL_PROVIDER
      *prov)"
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 9
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: evp_generic_fetch_by_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - inner_evp_generic_fetch
    - dealloc_tmp_evp_method_store
    linkageType: ''
    returnType: void
    signature: "void *evp_generic_fetch_by_number(OSSL_LIB_CTX *libctx, int operation_id,\n
      \                                 int name_id, const char *properties,\n                                  void
      *(*new_method)(int name_id,\n                                                      const
      OSSL_ALGORITHM *algodef,\n                                                      OSSL_PROVIDER
      *prov),\n                                  int (*up_ref_method)(void *),\n                                  void
      (*free_method)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:460,1
    - Dst: inner_evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:462,1
    - Dst: dealloc_tmp_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - prov
    - operation_id
    - name
    - properties
    - "(*new_method)(int name_id,\n                                                      const
      OSSL_ALGORITHM *algodef,\n                                                      OSSL_PROVIDER
      *prov)"
    argTypes:
    - OSSL_PROVIDER*
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 449
    functionDepth: 9
    functionLinenumber: 449
    functionLinenumberEnd: 467
    functionName: evp_generic_fetch_from_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 3
    functionsReached:
    - inner_evp_generic_fetch
    - ossl_provider_libctx
    - dealloc_tmp_evp_method_store
    linkageType: ''
    returnType: void
    signature: "void *evp_generic_fetch_from_prov(OSSL_PROVIDER *prov, int operation_id,\n
      \                                 const char *name, const char *properties,\n
      \                                 void *(*new_method)(int name_id,\n                                                      const
      OSSL_ALGORITHM *algodef,\n                                                      OSSL_PROVIDER
      *prov),\n                                  int (*up_ref_method)(void *),\n                                  void
      (*free_method)(void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:471,1
    - Dst: ossl_method_store_cache_flush_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 476
    functionName: evp_method_store_cache_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 1
    functionsReached:
    - get_evp_method_store
    - ossl_method_store_cache_flush_all
    linkageType: ''
    returnType: int
    signature: int evp_method_store_cache_flush(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:480,1
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:481,1
    - Dst: ossl_method_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 478
    functionDepth: 7
    functionLinenumber: 478
    functionLinenumberEnd: 486
    functionName: evp_method_store_remove_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 1
    functionsReached:
    - get_evp_method_store
    - ossl_provider_libctx
    - ossl_method_store_remove_all_provided
    linkageType: ''
    returnType: int
    signature: int evp_method_store_remove_all_provided(const OSSL_PROVIDER *prov)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:493,1
    - Dst: ossl_ctx_global_properties
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:494,1
    - Dst: ossl_global_properties_no_mirrored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:502,1
    - Dst: ossl_global_properties_stop_mirroring
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:509,1
    - Dst: ossl_property_list_to_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:512,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:514,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:516,1
    - Dst: ossl_property_list_to_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:519,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:521,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:522,1
    - Dst: ossl_provider_default_props_update
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:525,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:526,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:528,1
    - Dst: ossl_method_store_cache_flush_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:531,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:533,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - libctx
    - def_prop
    - loadconfig
    - mirrored
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_PROPERTY_LIST*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 488
    functionDepth: 8
    functionLinenumber: 488
    functionLinenumberEnd: 535
    functionName: evp_set_parsed_default_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_property_list_to_string
    - ossl_property_free
    - OPENSSL_malloc
    - ossl_ctx_global_properties
    - ossl_global_properties_no_mirrored
    - ERR_raise
    - ossl_global_properties_stop_mirroring
    - OPENSSL_free
    - ossl_provider_default_props_update
    - get_evp_method_store
    - ossl_method_store_cache_flush_all
    linkageType: ''
    returnType: int
    signature: "int evp_set_parsed_default_properties(OSSL_LIB_CTX *libctx,\n                                             OSSL_PROPERTY_LIST
      *def_prop,\n                                             int loadconfig,\n                                             int
      mirrored)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_parse_query
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:542,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:543,1
    - Dst: evp_set_parsed_default_properties
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:546,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - libctx
    - propq
    - loadconfig
    - mirrored
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 537
    functionDepth: 9
    functionLinenumber: 537
    functionLinenumberEnd: 551
    functionName: evp_set_default_properties_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 1
    functionsReached:
    - ossl_parse_query
    - ossl_property_free
    - evp_set_parsed_default_properties
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int evp_set_default_properties_int(OSSL_LIB_CTX *libctx, const char
      *propq,\n                                   int loadconfig, int mirrored)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_set_default_properties_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 10
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: EVP_set_default_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 1
    functionsReached:
    - evp_set_default_properties_int
    linkageType: ''
    returnType: int
    signature: int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ctx_global_properties
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:561,1
    - Dst: evp_set_default_properties_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:567,1
    - Dst: ossl_parse_query
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:568,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:569,1
    - Dst: ossl_property_merge
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:572,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:573,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:575,1
    - Dst: evp_set_parsed_default_properties
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:578,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - libctx
    - propq
    - loadconfig
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 558
    functionDepth: 10
    functionLinenumber: 558
    functionLinenumberEnd: 583
    functionName: evp_default_properties_merge
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_property_free
    - ossl_ctx_global_properties
    - ERR_raise
    - ossl_parse_query
    - ossl_property_merge
    - evp_set_default_properties_int
    - evp_set_parsed_default_properties
    linkageType: ''
    returnType: int
    signature: "int evp_default_properties_merge(OSSL_LIB_CTX *libctx, const char
      *propq,\n                                        int loadconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ctx_global_properties
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:588,1
    - Dst: ossl_property_is_enabled
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - prop_name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 591
    functionName: evp_default_property_is_enabled
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - ossl_property_is_enabled
    - ossl_ctx_global_properties
    linkageType: ''
    returnType: int
    signature: "int evp_default_property_is_enabled(OSSL_LIB_CTX *libctx,\n                                           const
      char *prop_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_default_property_is_enabled
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: EVP_default_properties_is_fips_enabled
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 3
    functionsReached:
    - evp_default_property_is_enabled
    linkageType: ''
    returnType: int
    signature: int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_default_properties_merge
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - enable
    - loadconfig
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 11
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: evp_default_properties_enable_fips_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - evp_default_properties_merge
    linkageType: ''
    returnType: int
    signature: "int evp_default_properties_enable_fips_int(OSSL_LIB_CTX *libctx, int
      enable,\n                                           int loadconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_default_properties_enable_fips_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - enable
    argTypes:
    - OSSL_LIB_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 12
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: EVP_default_properties_enable_fips
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - evp_default_properties_enable_fips_int
    linkageType: ''
    returnType: int
    signature: int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ctx_global_properties
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:613,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:618,1
    - Dst: ossl_property_list_to_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:620,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:622,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:626,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:628,1
    - Dst: ossl_property_list_to_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:631,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:632,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - libctx
    - loadconfig
    argTypes:
    - OSSL_LIB_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 637
    functionName: evp_get_global_properties_str
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 1
    functionsReached:
    - ossl_property_list_to_string
    - OPENSSL_malloc
    - ossl_ctx_global_properties
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *evp_get_global_properties_str(OSSL_LIB_CTX *libctx, int loadconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct filter_data_st*::user_fn
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - id
    - method
    - arg
    argTypes:
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: filter_on_operation_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 0
    functionsReached:
    - struct filter_data_st*::user_fn
    linkageType: ''
    returnType: void
    signature: void filter_on_operation_id(int id, void *method, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inner_evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:667,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:674,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:676,1
    - Dst: get_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:676,1
    - Dst: dealloc_tmp_evp_method_store
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - libctx
    - operation_id
    - user_arg
    - "(*new_method)(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov)"
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 653
    functionDepth: 9
    functionLinenumber: 653
    functionLinenumberEnd: 679
    functionName: evp_generic_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 5
    functionsReached:
    - get_evp_method_store
    - inner_evp_generic_fetch
    - ossl_method_store_do_all
    - dealloc_tmp_evp_method_store
    linkageType: ''
    returnType: void
    signature: "void evp_generic_do_all(OSSL_LIB_CTX *libctx, int operation_id,\n
      \                       void (*user_fn)(void *method, void *arg),\n                        void
      *user_arg,\n                        void *(*new_method)(int name_id,\n                                            const
      OSSL_ALGORITHM *algodef,\n                                            OSSL_PROVIDER
      *prov),\n                        int (*up_ref_method)(void *),\n                        void
      (*free_method)(void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:687,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:688,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:691,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - prov
    - number
    - legacy_name
    - name
    argTypes:
    - OSSL_PROVIDER*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 681
    functionDepth: 8
    functionLinenumber: 681
    functionLinenumberEnd: 693
    functionName: evp_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 3
    functionsReached:
    - ossl_namemap_name2num
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: "int evp_is_a(OSSL_PROVIDER *prov, int number,\n             const
      char *legacy_name, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:699,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:700,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/evp/evp_fetch.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - number
    - data
    argTypes:
    - OSSL_PROVIDER*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 695
    functionDepth: 8
    functionLinenumber: 695
    functionLinenumberEnd: 703
    functionName: evp_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_fetch.c
    functionUses: 4
    functionsReached:
    - ossl_namemap_doall_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: "int evp_names_do_all(OSSL_PROVIDER *prov, int number,\n                     void
      (*fn)(const char *name, void *data),\n                     void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_err.c:204,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/evp/evp_err.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: ossl_err_load_EVP_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_EVP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sm4_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:29,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: sm4_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - ossl_sm4_set_key
    linkageType: ''
    returnType: int
    signature: "int sm4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:38,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SM4_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: sm4_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                           size_t len, const SM4_KEY *key,\n                            unsigned
      char *ivec, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SM4_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: sm4_cfb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                              size_t length, const SM4_KEY *key,\n                               unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sm4_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:57,1
    - Dst: ossl_sm4_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - SM4_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: sm4_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - ossl_sm4_encrypt
    - ossl_sm4_decrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                           const SM4_KEY *key, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SM4_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: sm4_ofb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void sm4_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                              size_t length, const SM4_KEY *key,\n                               unsigned
      char *ivec, int *num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:77,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:79,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:85,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:86,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_sm4.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: sm4_ctr_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: int
    signature: "int sm4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: EVP_sm4_ctr
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_sm4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_sm4_ctr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_new
      Src: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cipher_type
    - block_size
    - key_len
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: EVP_CIPHER_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached:
    - evp_cipher_new
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int
      key_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c:47,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: EVP_CIPHER_meth_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_new
    - memcpy
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_free_int
      Src: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: EVP_CIPHER_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 10
    functionsReached:
    - evp_cipher_free_int
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_meth_free(EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - iv_len
    argTypes:
    - EVP_CIPHER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: EVP_CIPHER_meth_set_iv_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - flags
    argTypes:
    - EVP_CIPHER*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: EVP_CIPHER_meth_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - ctx_size
    argTypes:
    - EVP_CIPHER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: EVP_CIPHER_meth_set_impl_ctx_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: EVP_CIPHER_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: EVP_CIPHER_meth_set_do_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: EVP_CIPHER_meth_set_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher,\n                                int
      (*cleanup) (EVP_CIPHER_CTX *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: EVP_CIPHER_meth_set_set_asn1_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher,\n                                        int
      (*set_asn1_parameters) (EVP_CIPHER_CTX *,\n                                                                    ASN1_TYPE
      *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: EVP_CIPHER_meth_set_get_asn1_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher,\n                                        int
      (*get_asn1_parameters) (EVP_CIPHER_CTX *,\n                                                                    ASN1_TYPE
      *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: EVP_CIPHER_meth_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher,\n                             int
      (*ctrl) (EVP_CIPHER_CTX *, int type,\n                                          int
      arg, void *ptr))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 169
    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/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    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/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *)
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: "(*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                                     ASN1_TYPE
      *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                                     ASN1_TYPE
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: "(*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                               ASN1_TYPE
      *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                               ASN1_TYPE
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - arg
    - ptr
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: "(*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                          int type, int
      arg,\n                                                          void *ptr)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/cmeth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX
      *,\n                                                          int type, int
      arg,\n                                                          void *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_bits
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: EVP_PKEY_get_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_bits
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_bits(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_security_bits
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: EVP_PKEY_get_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_security_bits
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - mode
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 107
    functionName: EVP_PKEY_save_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - idx
    - arg
    argTypes:
    - EVP_PKEY*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: EVP_PKEY_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_ex_data(EVP_PKEY *key, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: EVP_PKEY_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_get_ex_data(const EVP_PKEY *key, int idx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:132,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:132,1
    - Dst: evp_pkey_copy_downgraded
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:133,1
    - Dst: evp_pkey_is_blank
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:150,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:151,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:152,1
    - Dst: EVP_PKEY_set_type_by_keymgmt
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:155,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:160,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:165,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:166,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:170,1
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:174,1
    - Dst: evp_keymgmt_util_copy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:180,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:202,1
    - Dst: evp_keymgmt_dup
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:204,1
    - Dst: EVP_PKEY*::ameth::param_copy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:212,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:214,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 216
    functionName: EVP_PKEY_copy_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_dup
    - EVP_PKEY*::ameth::param_copy
    - EVP_PKEY_set_type_by_keymgmt
    - evp_pkey_is_blank
    - EVP_PKEY_missing_parameters
    - evp_pkey_is_provided
    - evp_pkey_is_legacy
    - EVP_PKEY_set_type
    - ERR_raise
    - evp_pkey_export_to_provider
    - EVP_PKEY_free
    - evp_pkey_copy_downgraded
    - EVP_PKEY_parameters_eq
    - evp_keymgmt_util_copy
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:222,1
    - Dst: EVP_PKEY*::ameth::param_missing
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: EVP_PKEY_missing_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - evp_keymgmt_util_has
    - EVP_PKEY*::ameth::param_missing
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:241,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:241,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:241,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:245,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:245,1
    - Dst: evp_keymgmt_util_match
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:246,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:252,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:253,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:253,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:255,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:256,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:256,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:271,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:279,1
    - Dst: evp_keymgmt_match
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:294,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - a
    - b
    - selection
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 295
    functionName: evp_pkey_cmp_any
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_legacy
    - evp_pkey_is_provided
    - evp_pkey_export_to_provider
    - evp_keymgmt_util_match
    - OBJ_nid2sn
    - evp_keymgmt_match
    - ossl_assert
    - EVP_KEYMGMT_is_a
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_cmp_any(const EVP_PKEY *a, const EVP_PKEY *b,\n                            int
      selection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: EVP_PKEY_cmp_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_parameters_eq
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_cmp_any
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:312,1
    - Dst: EVP_PKEY*::ameth::param_cmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 320
    functionName: EVP_PKEY_parameters_eq
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY*::ameth::param_cmp
    - evp_pkey_cmp_any
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: EVP_PKEY_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_eq
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:345,1
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:346,1
    - Dst: evp_pkey_cmp_any
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:350,1
    - Dst: EVP_PKEY*::ameth::param_cmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:361,1
    - Dst: EVP_PKEY*::ameth::pub_cmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:367,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 371
    functionName: EVP_PKEY_eq
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::param_cmp
    - evp_keymgmt_util_has
    - EVP_PKEY*::ameth::pub_cmp
    - evp_pkey_cmp_any
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:394,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:396,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:402,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:411,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:413,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:418,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:419,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:422,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:423,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:428,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:429,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:433,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:437,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:443,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:445,1
    - Dst: pkey_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:449,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:454,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:459,1
    - Dst: EVP_PKEY*::ameth::set_priv_key
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:463,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:464,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:469,1
    - Dst: EVP_PKEY*::ameth::set_pub_key
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:473,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:474,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:482,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:485,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 8
    argNames:
    - libctx
    - strtype
    - propq
    - nidtype
    - e
    - key
    - len
    - key_is_priv
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - int
    - ENGINE*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 487
    functionName: new_raw_key_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - pkey_set_type
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_free
    - ossl_assert
    - EVP_PKEY_fromdata
    - ENGINE_finish
    - EVP_PKEY_fromdata_init
    - OBJ_nid2sn
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_asn1_find
    - ERR_raise
    - EVP_PKEY_new
    - EVP_PKEY*::ameth::set_priv_key
    - ERR_set_mark
    - EVP_PKEY_asn1_find_str
    - EVP_PKEY*::ameth::set_pub_key
    - EVP_PKEY_free
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *new_raw_key_int(OSSL_LIB_CTX *libctx,\n                                 const
      char *strtype,\n                                 const char *propq,\n                                 int
      nidtype,\n                                 ENGINE *e,\n                                 const
      unsigned char *key,\n                                 size_t len,\n                                 int
      key_is_priv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_raw_key_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - libctx
    - keytype
    - propq
    - priv
    - len
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 6
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: EVP_PKEY_new_raw_private_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - new_raw_key_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_raw_private_key_ex(OSSL_LIB_CTX *libctx,\n
      \                                         const char *keytype,\n                                          const
      char *propq,\n                                          const unsigned char
      *priv, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_raw_key_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - e
    - priv
    - len
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 6
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: EVP_PKEY_new_raw_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - new_raw_key_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e,\n                                       const
      unsigned char *priv,\n                                       size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_raw_key_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - libctx
    - keytype
    - propq
    - pub
    - len
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 505
    functionDepth: 6
    functionLinenumber: 505
    functionLinenumberEnd: 511
    functionName: EVP_PKEY_new_raw_public_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - new_raw_key_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_raw_public_key_ex(OSSL_LIB_CTX *libctx,\n                                         const
      char *keytype, const char *propq,\n                                         const
      unsigned char *pub, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_raw_key_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - e
    - pub
    - len
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 6
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: EVP_PKEY_new_raw_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - new_raw_key_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e,\n                                      const
      unsigned char *pub,\n                                      size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:534,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:536,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:540,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 548
    functionName: get_raw_key_details
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_octet_string
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int get_raw_key_details(const OSSL_PARAM params[], void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_util_export
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:560,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:565,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:570,1
    - Dst: EVP_PKEY*::ameth::get_priv_key
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:574,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 580
    functionName: EVP_PKEY_get_raw_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::get_priv_key
    - evp_keymgmt_util_export
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char
      *priv,\n                                 size_t *len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_util_export
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:592,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:597,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:602,1
    - Dst: EVP_PKEY*::ameth::get_pub_key
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:606,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pkey
    - pub
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 612
    functionName: EVP_PKEY_get_raw_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::get_pub_key
    - evp_keymgmt_util_export
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char
      *pub,\n                                size_t *len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_id
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:622,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:629,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:632,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:636,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:640,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:641,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:645,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:647,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:650,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:654,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:657,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:659,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:660,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:665,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:669,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 7
    argNames:
    - priv
    - len
    - cipher_name
    - cipher
    - libctx
    - propq
    - e
    argTypes:
    - unsigned char*
    - size_t
    - char*
    - EVP_CIPHER*
    - OSSL_LIB_CTX*
    - char*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 672
    functionName: new_cmac_key_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - EVP_PKEY_fromdata_init
    - EVP_CIPHER_get0_name
    - OSSL_PARAM_construct_end
    - ENGINE_get_id
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *new_cmac_key_int(const unsigned char *priv, size_t len,\n
      \                                 const char *cipher_name,\n                                  const
      EVP_CIPHER *cipher,\n                                  OSSL_LIB_CTX *libctx,\n
      \                                 const char *propq, ENGINE *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_cmac_key_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - e
    - priv
    - len
    - cipher
    argTypes:
    - ENGINE*
    - unsigned char*
    - size_t
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 6
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: EVP_PKEY_new_CMAC_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - new_cmac_key_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv,\n
      \                               size_t len, const EVP_CIPHER *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - type
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: EVP_PKEY_set_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_type(EVP_PKEY *pkey, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pkey
    - str
    - len
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 688
    functionName: EVP_PKEY_set_type_str
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:694,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:695,1
    - Dst: ENGINE_get_pkey_meth
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:698,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:699,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:700,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pkey
    - e
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: EVP_PKEY_set1_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - ENGINE_finish
    - ERR_raise
    - ENGINE_get_pkey_meth
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: EVP_PKEY_get0_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_is_foreign
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:722,1
    - Dst: ossl_ec_key_is_foreign
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:729,1
    - Dst: ossl_dsa_is_foreign
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:735,1
    - Dst: ossl_dh_is_foreign
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:741,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 748
    functionName: detect_foreign_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_is_foreign
    - ossl_ec_key_is_foreign
    - ossl_dh_is_foreign
    - ossl_dsa_is_foreign
    linkageType: ''
    returnType: void
    signature: void detect_foreign_key(EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:755,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:757,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:760,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:774,1
    - Dst: detect_foreign_key
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:778,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 3
    argNames:
    - pkey
    - type
    - key
    argTypes:
    - EVP_PKEY*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 781
    functionName: EVP_PKEY_assign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_type
    - EC_GROUP_get_curve_name
    - EVP_PKEY_set_type
    - EC_KEY_get0_group
    - detect_foreign_key
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 793
    functionName: EVP_PKEY_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_provided
    linkageType: ''
    returnType: void
    signature: void *EVP_PKEY_get0(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:799,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 808
    functionName: EVP_PKEY_get0_hmac
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:815,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 824
    functionName: EVP_PKEY_get0_poly1305
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t
      *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:833,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pkey
    - len
    argTypes:
    - EVP_PKEY*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 842
    functionName: EVP_PKEY_get0_siphash
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:849,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 853
    functionName: evp_pkey_get0_DSA_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: DSA
    signature: DSA *evp_pkey_get0_DSA_int(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_DSA_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: EVP_PKEY_get0_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_get0_DSA_int
    linkageType: ''
    returnType: DSA
    signature: DSA *EVP_PKEY_get0_DSA(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:862,1
    - Dst: DSA_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 866
    functionName: EVP_PKEY_set1_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_assign_DSA
    - DSA_up_ref
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, DSA *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_DSA_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:869,1
    - Dst: DSA_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 874
    functionName: EVP_PKEY_get1_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_get0_DSA_int
    - DSA_up_ref
    linkageType: ''
    returnType: DSA
    signature: DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:880,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:881,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pkey
    - type
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 885
    functionName: evp_pkey_get0_ECX_KEY
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    - EVP_PKEY_get_base_id
    linkageType: ''
    returnType: ECX_KEY
    signature: ECX_KEY *evp_pkey_get0_ECX_KEY(const EVP_PKEY *pkey, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_ECX_KEY
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:889,1
    - Dst: ossl_ecx_key_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - type
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 894
    functionName: evp_pkey_get1_ECX_KEY
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_up_ref
    - evp_pkey_get0_ECX_KEY
    linkageType: ''
    returnType: ECX_KEY
    signature: ECX_KEY *evp_pkey_get1_ECX_KEY(EVP_PKEY *pkey, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 901
    functionName: IMPLEMENT_ECX_VARIANT
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ECX_VARIANT(NAME)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_is_named_safe_prime_group
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:933,1
    - Dst: DH_get0_q
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:936,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:938,1
    - Dst: DH_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - dhkey
    argTypes:
    - EVP_PKEY*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 943
    functionName: EVP_PKEY_set1_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - DH_get0_q
    - ossl_dh_is_named_safe_prime_group
    - DH_up_ref
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *dhkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:948,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 952
    functionName: evp_pkey_get0_DH_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: DH
    signature: DH *evp_pkey_get0_DH_int(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_DH_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 957
    functionName: EVP_PKEY_get0_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get0_DH_int
    linkageType: ''
    returnType: DH
    signature: DH *EVP_PKEY_get0_DH(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_DH_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:961,1
    - Dst: DH_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 966
    functionName: EVP_PKEY_get1_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - DH_up_ref
    - evp_pkey_get0_DH_int
    linkageType: ''
    returnType: DH
    signature: DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:974,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 983
    functionName: EVP_PKEY_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 5
    functionsReached:
    - ENGINE_finish
    - EVP_PKEY_asn1_find
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_type(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 988
    functionName: EVP_PKEY_get_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_id(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 993
    functionName: EVP_PKEY_get_base_id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_base_id(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1027,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1028,1
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1032,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1032,1
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1034,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1035
    functionName: evp_pkey_name2type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_type
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    - OBJ_ln2nid
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: int evp_pkey_name2type(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1041,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1047
    functionName: evp_pkey_type2name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2sn
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *evp_pkey_type2name(int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_name2type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1054,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pkey
    - name
    argTypes:
    - EVP_PKEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1049
    functionDepth: 4
    functionLinenumber: 1049
    functionLinenumberEnd: 1056
    functionName: EVP_PKEY_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_name2type
    - EVP_KEYMGMT_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_is_a(const EVP_PKEY *pkey, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_typed
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1062,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1065,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1066,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1066,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1068,1
    - Dst: EVP_KEYMGMT_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - data
    argTypes:
    - EVP_PKEY*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1072
    functionName: EVP_PKEY_type_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_typed
    - EVP_KEYMGMT_names_do_all
    - evp_pkey_is_provided
    - EVP_PKEY_get_id
    - OBJ_nid2sn
    - fn
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_type_names_do_all(const EVP_PKEY *pkey,\n                               void
      (*fn)(const char *name, void *data),\n                               void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1077,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1090,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1096,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1097,1
    - Dst: EVP_PKEY*::keymgmt::query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1100,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1101,1
    - Dst: EVP_SIGNATURE_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1104,1
    - Dst: EVP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1111
    functionName: EVP_PKEY_can_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_base_id
    - ossl_provider_libctx
    - EVP_SIGNATURE_fetch
    - EVP_KEYMGMT_get0_name
    - EC_KEY_can_sign
    - EVP_SIGNATURE_free
    - EVP_PKEY*::keymgmt::query_operation_name
    - EVP_KEYMGMT_get0_provider
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_can_sign(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1115,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1117,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - pop_f_prefix
    - saved_indent
    argTypes:
    - BIO**
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1123
    functionName: print_reset_indent
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - BIO_set_indent
    - BIO_pop
    linkageType: ''
    returnType: int
    signature: int print_reset_indent(BIO **out, int pop_f_prefix, long saved_indent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1131,1
    - Dst: BIO_set_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1134,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1135,1
    - Dst: BIO_f_prefix
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1135,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1139,1
    - Dst: BIO_set_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1142,1
    - Dst: print_reset_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - out
    - pop_f_prefix
    - saved_indent
    - indent
    argTypes:
    - BIO**
    - int*
    - long*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1148
    functionName: print_set_indent
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - BIO_set_indent
    - BIO_new
    - BIO_f_prefix
    - print_reset_indent
    - BIO_get_indent
    - BIO_push
    linkageType: ''
    returnType: int
    signature: "int print_set_indent(BIO **out, int *pop_f_prefix, long *saved_indent,\n
      \                           long indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1153,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1154,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - kstr
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1156
    functionName: unsup_alg
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - BIO_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int unsup_alg(BIO *out, const EVP_PKEY *pkey, int indent,\n                     const
      char *kstr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: print_set_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1170,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1173,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1175,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1176,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1177,1
    - Dst: legacy_print
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1184,1
    - Dst: unsup_alg
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1186,1
    - Dst: print_reset_indent
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - pkey
    - out
    - indent
    - selection
    - propquery
    - legacy_pctx
    argTypes:
    - EVP_PKEY*
    - BIO*
    - int
    - int
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1191
    functionName: print_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - print_reset_indent
    - print_set_indent
    - unsup_alg
    - OSSL_ENCODER_CTX_free
    - legacy_print
    - OSSL_ENCODER_to_bio
    - OSSL_ENCODER_CTX_new_for_pkey
    - OSSL_ENCODER_CTX_get_num_encoders
    linkageType: ''
    returnType: int
    signature: "int print_pkey(const EVP_PKEY *pkey, BIO *out, int indent,\n                      int
      selection /* For provided encoding */,\n                      const char *propquery
      /* For provided encoding */,\n                      int (*legacy_print)(BIO
      *out, const EVP_PKEY *pkey,\n                                          int indent,
      ASN1_PCTX *pctx),\n                      ASN1_PCTX *legacy_pctx /* For legacy
      print */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1193
    functionDepth: 4
    functionLinenumber: 1193
    functionLinenumberEnd: 1199
    functionName: EVP_PKEY_print_public
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - print_pkey
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey,\n                          int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1207
    functionName: EVP_PKEY_print_private
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - print_pkey
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey,\n                           int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - pkey
    - indent
    - pctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 4
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: EVP_PKEY_print_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - print_pkey
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey,\n                          int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1222,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1226,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - pkey
    - indent
    - pctx
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1218
    functionDepth: 5
    functionLinenumber: 1218
    functionLinenumberEnd: 1229
    functionName: EVP_PKEY_print_public_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - EVP_PKEY_print_public
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_public_fp(FILE *fp, const EVP_PKEY *pkey,\n                             int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1235,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1239,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - pkey
    - indent
    - pctx
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1231
    functionDepth: 5
    functionLinenumber: 1231
    functionLinenumberEnd: 1242
    functionName: EVP_PKEY_print_private_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - EVP_PKEY_print_private
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_private_fp(FILE *fp, const EVP_PKEY *pkey,\n                              int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1248,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1252,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - pkey
    - indent
    - pctx
    argTypes:
    - FILE*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1244
    functionDepth: 5
    functionLinenumber: 1244
    functionLinenumberEnd: 1255
    functionName: EVP_PKEY_print_params_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - EVP_PKEY_print_params
    - BIO_free
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_print_params_fp(FILE *fp, const EVP_PKEY *pkey,\n                             int
      indent, ASN1_PCTX *pctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1265,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mdname
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1268
    functionName: mdname2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_ln2nid
    - OBJ_sn2nid
    linkageType: ''
    returnType: void
    signature: void mdname2nid(const char *mdname, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_default_digest_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1279,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1284,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1290,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1291,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1292,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1293,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1299,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1300,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1270
    functionDepth: 8
    functionLinenumber: 1270
    functionLinenumberEnd: 1317
    functionName: legacy_asn1_ctrl_to_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - EVP_MD_free
    - ossl_namemap_doall_names
    - ERR_set_mark
    - EVP_PKEY_get_default_digest_name
    - ossl_namemap_name2num
    - ERR_pop_to_mark
    - ossl_provider_libctx
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int legacy_asn1_ctrl_to_param(EVP_PKEY *pkey, int op,\n                                     int
      arg1, void *arg2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: legacy_asn1_ctrl_to_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1322,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1319
    functionDepth: 9
    functionLinenumber: 1319
    functionLinenumberEnd: 1326
    functionName: evp_pkey_asn1_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - legacy_asn1_ctrl_to_param
    linkageType: ''
    returnType: int
    signature: int evp_pkey_asn1_ctrl(EVP_PKEY *pkey, int op, int arg1, void *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - pnid
    argTypes:
    - EVP_PKEY*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1328
    functionDepth: 10
    functionLinenumber: 1328
    functionLinenumberEnd: 1333
    functionName: EVP_PKEY_get_default_digest_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_pkey_asn1_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_util_get_deflt_digest_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1339,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1345,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1346,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pkey
    - mdname
    - mdname_sz
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1335
    functionDepth: 11
    functionLinenumber: 1335
    functionLinenumberEnd: 1352
    functionName: EVP_PKEY_get_default_digest_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_get_default_digest_nid
    - evp_keymgmt_util_get_deflt_digest_name
    - OBJ_nid2sn
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey,\n                                     char
      *mdname, size_t mdname_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pkey
    - gname
    - gname_sz
    - gname_len
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1359
    functionName: EVP_PKEY_get_group_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_utf8_string_param
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_group_name(const EVP_PKEY *pkey, char *gname, size_t
      gname_sz,\n                            size_t *gname_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1367,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1370,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1371,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1373,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkey
    - libctx
    - name
    - propq
    argTypes:
    - EVP_PKEY*
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1361
    functionDepth: 3
    functionLinenumber: 1361
    functionLinenumberEnd: 1377
    functionName: EVP_PKEY_digestsign_supports_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - ERR_set_mark
    - ERR_pop_to_mark
    - EVP_DigestSignInit_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX
      *libctx,\n                                        const char *name, const char
      *propq)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1384,1
    - Dst: EVP_PKEY_set_octet_string_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1386,1
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - pub
    - publen
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1379
    functionDepth: 10
    functionLinenumber: 1379
    functionLinenumberEnd: 1397
    functionName: EVP_PKEY_set1_encoded_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_asn1_ctrl
    - evp_pkey_is_provided
    - EVP_PKEY_set_octet_string_param
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey, const unsigned
      char *pub,\n                                     size_t publen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1405,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1413,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1420,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1424,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1427,1
    - Dst: evp_pkey_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - pkey
    - ppub
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1399
    functionDepth: 10
    functionLinenumber: 1399
    functionLinenumberEnd: 1439
    functionName: EVP_PKEY_get1_encoded_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - evp_pkey_asn1_ctrl
    - evp_pkey_is_provided
    - EVP_PKEY_get_octet_string_param
    - OPENSSL_free
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char
      **ppub)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1447,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1450,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1458,1
    - Dst: EVPerr
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1460,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1466,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1467,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1474,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1445
    functionDepth: 4
    functionLinenumber: 1445
    functionLinenumberEnd: 1477
    functionName: EVP_PKEY_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 5
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - EVPerr
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_new(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1504,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1505,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1506,1
    - Dst: evp_pkey_free_it
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1518,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1530,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1532,1
    - Dst: EVP_PKEY_asn1_find_str
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1539,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1541,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1544,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1557,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1562,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1563,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1596,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1597,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 6
    argNames:
    - pkey
    - e
    - type
    - str
    - len
    - keymgmt
    argTypes:
    - EVP_PKEY*
    - ENGINE*
    - int
    - char*
    - int
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1605
    functionName: pkey_set_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached:
    - ENGINE_init
    - EVP_KEYMGMT_up_ref
    - ENGINE_finish
    - EVP_PKEY_asn1_find
    - ERR_raise
    - EVP_PKEY_asn1_find_str
    - ossl_assert
    - evp_pkey_free_it
    linkageType: ''
    returnType: int
    signature: "int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char
      *str,\n                         int len, EVP_KEYMGMT *keymgmt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1616,1
    - Dst: pkey_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1618,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1618,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - name
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1608
    functionDepth: 2
    functionLinenumber: 1608
    functionLinenumberEnd: 1627
    functionName: find_ameth
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - ERR_pop_to_mark
    - strlen
    - ERR_set_mark
    - pkey_set_type
    linkageType: ''
    returnType: void
    signature: void find_ameth(const char *name, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1642,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1644,1
    - Dst: pkey_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pkey
    - keymgmt
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1657
    functionName: EVP_PKEY_set_type_by_keymgmt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVP_KEYMGMT_names_do_all
    - ERR_raise
    - pkey_set_type
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1663,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1666,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1669
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 3
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_up_ref(EVP_PKEY *pkey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1677,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1681,1
    - Dst: evp_pkey_is_blank
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1684,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1687,1
    - Dst: evp_keymgmt_util_copy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1688,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1694,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1699,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1701,1
    - Dst: EVP_PKEY_ASN1_METHOD*::copy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1704,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1712,1
    - Dst: ossl_x509at_dup
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1717,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1722,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1672
    functionDepth: 5
    functionLinenumber: 1672
    functionLinenumberEnd: 1724
    functionName: EVP_PKEY_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_dup_ex_data
    - EVP_PKEY_ASN1_METHOD*::copy
    - evp_pkey_is_blank
    - evp_pkey_is_provided
    - evp_pkey_is_legacy
    - EVP_PKEY_set_type
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - ossl_x509at_dup
    - evp_keymgmt_util_copy
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1732,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1740,1
    - Dst: EVP_PKEY_ASN1_METHOD*::pkey_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1749,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1753,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1754,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    assertStmts:
    - condition: (x->pkey.ptr == NULL)
      pos:
        line_end: 1739
        line_start: 1739
        source_file: /src/openssl-3.0.15/crypto/evp/p_lib.c
    constantsTouched: []
    func_position:
      end: 1759
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1759
    functionName: evp_pkey_free_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - EVP_PKEY_asn1_find
    - EVP_PKEY_ASN1_METHOD*::pkey_free
    - assert
    linkageType: ''
    returnType: void
    signature: void evp_pkey_free_legacy(EVP_PKEY *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_util_clear_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1765,1
    - Dst: evp_pkey_free_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1767,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1771,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1762
    functionDepth: 2
    functionLinenumber: 1762
    functionLinenumberEnd: 1777
    functionName: evp_pkey_free_it
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - evp_keymgmt_freedata
    - evp_keymgmt_util_clear_operation_cache
    - evp_pkey_free_legacy
    - EVP_KEYMGMT_free
    linkageType: ''
    returnType: void
    signature: void evp_pkey_free_it(EVP_PKEY *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1786,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1787,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1790,1
    - Dst: evp_pkey_free_it
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1791,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1793,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1795,1
    - Dst: sk_X509_ATTRIBUTE_pop_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1797,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1800
    functionName: EVP_PKEY_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 38
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - CRYPTO_free_ex_data
    - sk_X509_ATTRIBUTE_pop_free
    - CRYPTO_THREAD_lock_free
    - evp_pkey_free_it
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_free(EVP_PKEY *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_size
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1802
    functionDepth: 0
    functionLinenumber: 1802
    functionLinenumberEnd: 1814
    functionName: EVP_PKEY_get_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY*::ameth::pkey_size
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_size(const EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_assigned
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1818,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1828
    functionName: EVP_PKEY_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_assigned
    - evp_pkey_is_provided
    linkageType: ''
    returnType: char
    signature: char *EVP_PKEY_get0_description(const EVP_PKEY *pkey)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1873,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1879,1
    - Dst: EVP_PKEY*::ameth::dirty_cnt
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1895,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1896,1
    - Dst: evp_keymgmt_util_find_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1898,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1917,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1920,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1924,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1924,1
    - Dst: evp_keymgmt_newdata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1927,1
    - Dst: EVP_PKEY*::ameth::export_to
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1930,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1932,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1943,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1944,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1949,1
    - Dst: EVP_PKEY*::ameth::dirty_cnt
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1951,1
    - Dst: evp_keymgmt_util_clear_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1952,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1953,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1954,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1956,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1959,1
    - Dst: evp_keymgmt_util_find_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1962,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1966,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1967,1
    - Dst: evp_keymgmt_util_cache_keydata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1973,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1975,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1976,1
    - Dst: EVP_PKEY*::ameth::dirty_cnt
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1982,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1984,1
    - Dst: evp_keymgmt_util_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:1989,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2005,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 102
    argCount: 4
    argNames:
    - pk
    - libctx
    - keymgmt
    - propquery
    argTypes:
    - EVP_PKEY*
    - OSSL_LIB_CTX*
    - EVP_KEYMGMT**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1830
    functionDepth: 5
    functionLinenumber: 1830
    functionLinenumberEnd: 2007
    functionName: evp_pkey_export_to_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 8
    functionsReached:
    - evp_keymgmt_util_export_to_provider
    - EVP_KEYMGMT_up_ref
    - EVP_PKEY_CTX_new_from_pkey
    - evp_keymgmt_freedata
    - evp_keymgmt_util_clear_operation_cache
    - CRYPTO_THREAD_unlock
    - evp_keymgmt_util_cache_keydata
    - EVP_PKEY*::ameth::dirty_cnt
    - OBJ_nid2sn
    - evp_keymgmt_newdata
    - evp_keymgmt_util_find_operation_cache
    - EVP_KEYMGMT_free
    - EVP_PKEY_CTX_free
    - CRYPTO_THREAD_write_lock
    - EVP_KEYMGMT_is_a
    - CRYPTO_THREAD_read_lock
    - EVP_PKEY*::ameth::export_to
    linkageType: ''
    returnType: void
    signature: "void *evp_pkey_export_to_provider(EVP_PKEY *pk, OSSL_LIB_CTX *libctx,\n
      \                                 EVP_KEYMGMT **keymgmt,\n                                  const
      char *propquery)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2014,1
    - Dst: evp_pkey_is_assigned
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2017,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2017,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2023,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2031,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2032,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2040,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2044,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2046,1
    - Dst: evp_pkey_free_it
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2050,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2053,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2059,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2067,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2069,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2072,1
    - Dst: evp_keymgmt_export
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2075,1
    - Dst: ameth::dirty_cnt
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2080,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2082,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2085,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2088,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2094,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EVP_PKEY**
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2010
    functionDepth: 5
    functionLinenumber: 2010
    functionLinenumberEnd: 2098
    functionName: evp_pkey_copy_downgraded
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 2
    functionsReached:
    - evp_pkey_is_assigned
    - EVP_PKEY_CTX_new_from_pkey
    - evp_pkey_is_provided
    - EVP_PKEY_set_type
    - ERR_raise_data
    - ERR_raise
    - ameth::dirty_cnt
    - evp_keymgmt_export
    - OBJ_nid2sn
    - EVP_PKEY_new
    - EVP_KEYMGMT_get0_name
    - EVP_PKEY_CTX_free
    - EVP_PKEY_free
    - ossl_provider_libctx
    - ossl_assert
    - evp_pkey_free_it
    linkageType: ''
    returnType: int
    signature: int evp_pkey_copy_downgraded(EVP_PKEY **dest, const EVP_PKEY *src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2105,1
    - Dst: evp_pkey_is_assigned
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2112,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2114,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2117,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2122,1
    - Dst: evp_pkey_copy_downgraded
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2128,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2131,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2142,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2148,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - pk
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2100
    functionDepth: 6
    functionLinenumber: 2100
    functionLinenumberEnd: 2151
    functionName: evp_pkey_get_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 6
    functionsReached:
    - evp_pkey_is_assigned
    - evp_pkey_is_provided
    - EVP_PKEY_free
    - evp_pkey_copy_downgraded
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - ossl_assert
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void *evp_pkey_get_legacy(EVP_PKEY *pk)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2167,1
    - Dst: OSSL_PARAM_construct_BN
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2168,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2169,1
    - Dst: EVP_PKEY_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2170,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2171,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2178,1
    - Dst: EVP_PKEY_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2184,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2188,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2190,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2193,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2194,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2196,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2197,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2198,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - pkey
    - key_name
    - bn
    argTypes:
    - EVP_PKEY*
    - char*
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2154
    functionDepth: 2
    functionLinenumber: 2154
    functionLinenumberEnd: 2201
    functionName: EVP_PKEY_get_bn_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_BN
    - OPENSSL_cleanse
    - OPENSSL_zalloc
    - OPENSSL_clear_free
    - OSSL_PARAM_modified
    - OSSL_PARAM_construct_end
    - EVP_PKEY_get_params
    - OPENSSL_free
    - memset
    - OSSL_PARAM_construct_BN
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_bn_param(const EVP_PKEY *pkey, const char *key_name,\n
      \                         BIGNUM **bn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2213,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2214,1
    - Dst: EVP_PKEY_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2215,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - pkey
    - key_name
    - buf
    - max_buf_sz
    - out_len
    argTypes:
    - EVP_PKEY*
    - char*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2220
    functionName: EVP_PKEY_get_octet_string_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_modified
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_get_params
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey, const char
      *key_name,\n                                    unsigned char *buf, size_t max_buf_sz,\n
      \                                   size_t *out_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2232,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2233,1
    - Dst: EVP_PKEY_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2234,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2235,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 5
    argNames:
    - pkey
    - key_name
    - str
    - max_buf_sz
    - out_len
    argTypes:
    - EVP_PKEY*
    - char*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2222
    functionDepth: 2
    functionLinenumber: 2222
    functionLinenumberEnd: 2247
    functionName: EVP_PKEY_get_utf8_string_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_modified
    - EVP_PKEY_get_params
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey, const char
      *key_name,\n                                    char *str, size_t max_buf_sz,\n
      \                                   size_t *out_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2257,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2258,1
    - Dst: EVP_PKEY_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2259,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - key_name
    - out
    argTypes:
    - EVP_PKEY*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2249
    functionDepth: 2
    functionLinenumber: 2249
    functionLinenumberEnd: 2261
    functionName: EVP_PKEY_get_int_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_modified
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_PKEY_get_params
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_int_param(const EVP_PKEY *pkey, const char *key_name,\n
      \                          int *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2271,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2272,1
    - Dst: EVP_PKEY_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2273,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - key_name
    - out
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2263
    functionDepth: 2
    functionLinenumber: 2263
    functionLinenumberEnd: 2275
    functionName: EVP_PKEY_get_size_t_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_modified
    - EVP_PKEY_get_params
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_size_t_param(const EVP_PKEY *pkey, const char *key_name,\n
      \                             size_t *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2284,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2285,1
    - Dst: EVP_PKEY_set_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - key_name
    - in
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2277
    functionDepth: 2
    functionLinenumber: 2277
    functionLinenumberEnd: 2287
    functionName: EVP_PKEY_set_int_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_PKEY_set_params
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int
      in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2296,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2297,1
    - Dst: EVP_PKEY_set_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - key_name
    - in
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2289
    functionDepth: 2
    functionLinenumber: 2289
    functionLinenumberEnd: 2299
    functionName: EVP_PKEY_set_size_t_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_end
    - EVP_PKEY_set_params
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name,
      size_t in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_assigned
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2311,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2314,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2315,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2318,1
    - Dst: OSSL_PARAM_construct_BN
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2320,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2321,1
    - Dst: EVP_PKEY_set_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - pkey
    - key_name
    - bn
    argTypes:
    - EVP_PKEY*
    - char*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2323
    functionName: EVP_PKEY_set_bn_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_assigned
    - ossl_assert
    - BN_bn2nativepad
    - OSSL_PARAM_construct_end
    - EVP_PKEY_set_params
    - BN_num_bytes
    - OSSL_PARAM_construct_BN
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name,\n
      \                         const BIGNUM *bn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2333,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2334,1
    - Dst: EVP_PKEY_set_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - key_name
    - str
    argTypes:
    - EVP_PKEY*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2325
    functionDepth: 2
    functionLinenumber: 2325
    functionLinenumberEnd: 2336
    functionName: EVP_PKEY_set_utf8_string_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_set_params
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name,\n
      \                                  const char *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2346,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2348,1
    - Dst: EVP_PKEY_set_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pkey
    - key_name
    - buf
    - bsize
    argTypes:
    - EVP_PKEY*
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2338
    functionDepth: 2
    functionLinenumber: 2338
    functionLinenumberEnd: 2350
    functionName: EVP_PKEY_set_octet_string_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_construct_end
    - EVP_PKEY_set_params
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name,\n
      \                                   const unsigned char *buf, size_t bsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2354,1
    - Dst: EVP_KEYMGMT_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2352
    functionDepth: 1
    functionLinenumber: 2352
    functionLinenumberEnd: 2357
    functionName: EVP_PKEY_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_provided
    - EVP_KEYMGMT_settable_params
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2362,1
    - Dst: evp_keymgmt_set_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2364,1
    - Dst: evp_pkey_set_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2375,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pkey
    - params
    argTypes:
    - EVP_PKEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2359
    functionDepth: 1
    functionLinenumber: 2359
    functionLinenumberEnd: 2382
    functionName: EVP_PKEY_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 5
    functionsReached:
    - evp_pkey_is_provided
    - evp_pkey_set_params_to_ctrl
    - evp_keymgmt_set_params
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_set_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2374
    functionDepth: 0
    functionLinenumber: 2374
    functionLinenumberEnd: 2376
    functionName: if
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 6
    functionsReached:
    - evp_pkey_set_params_to_ctrl
    linkageType: ''
    returnType: else
    signature: else if (evp_pkey_is_legacy(pkey))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2386,1
    - Dst: EVP_KEYMGMT_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2389
    functionName: EVP_PKEY_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT_gettable_params
    - evp_pkey_is_provided
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_PKEY_gettable_params(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2394,1
    - Dst: evp_keymgmt_get_params
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2395,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2397,1
    - Dst: evp_pkey_get_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2398,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - params
    argTypes:
    - EVP_PKEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2391
    functionDepth: 1
    functionLinenumber: 2391
    functionLinenumberEnd: 2403
    functionName: EVP_PKEY_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 5
    functionsReached:
    - evp_keymgmt_get_params
    - evp_pkey_is_legacy
    - evp_pkey_is_provided
    - ERR_raise
    - evp_pkey_get_params_to_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2418,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2423,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2429,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2434,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2437,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2440,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2406
    functionDepth: 3
    functionLinenumber: 2406
    functionLinenumberEnd: 2444
    functionName: EVP_PKEY_get_ec_point_conv_form
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get_conv_form
    - EVP_PKEY_get_utf8_string_param
    - strcmp
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_ec_point_conv_form(const EVP_PKEY *pkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2458,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2463,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2467,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2473,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2477,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/p_lib.c:2479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2446
    functionDepth: 3
    functionLinenumber: 2446
    functionLinenumberEnd: 2483
    functionName: EVP_PKEY_get_field_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_field_type
    - EVP_PKEY_get_utf8_string_param
    - strcmp
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_field_type(const EVP_PKEY *pkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:33,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:34,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:37,1
    - Dst: EVP_CIPHER_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:38,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:39,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:43,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:46,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:47,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:50,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:54,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:60,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:62,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:66,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:67,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:70,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:75,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:76,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 7
    argNames:
    - ctx
    - type
    - ek
    - ekl
    - iv
    - pubk
    - npubk
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_CIPHER*
    - unsigned char**
    - int*
    - unsigned char*
    - EVP_PKEY**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 78
    functionName: EVP_SealInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_seal.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get0_cipher
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_CIPHER_CTX_reset
    - EVP_CIPHER_get0_provider
    - RAND_priv_bytes_ex
    - ERR_raise
    - EVP_PKEY_encrypt_init
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_get_key_length
    - EVP_EncryptInit_ex
    - EVP_PKEY_CTX_free
    - EVP_PKEY_encrypt
    - EVP_CIPHER_CTX_get_iv_length
    - ossl_provider_libctx
    - EVP_CIPHER_CTX_rand_key
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:83,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_seal.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: EVP_SealFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_seal.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_EncryptInit_ex
    linkageType: ''
    returnType: int
    signature: int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 352
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:73,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:77,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:78,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:81,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:82,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: aesni_cbc_hmac_sha1_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - data
    - aesni_set_decrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx,\n                                        const
      unsigned char *inkey,\n                                        const unsigned
      char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:112,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:121,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: sha1_update
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 15
    functionsReached:
    - sha1_block_data_order
    - SHA1_Update
    linkageType: ''
    returnType: void
    signature: void sha1_update(SHA_CTX *c, const void *data, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:183,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:202,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:203,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:209,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:210,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:215,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:216,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:232,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:246,1
    - Dst: sha1_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:255,1
    - Dst: sha1_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:273,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:274,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:283,1
    - Dst: sha1_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:291,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:293,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:300,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:306,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:308,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:313,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:315,1
    - Dst: sha1_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:323,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:325,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:328,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:330,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:332,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:334,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:336,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:339,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:341,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:343,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:345,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:347,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:349,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:352,1
    - Dst: sha1_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:359,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:365,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:371,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:372,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:373,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:374,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:375,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:399,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:401,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:402,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 405
    functionName: tls1_1_multi_block_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BSWAP4
    - BSWAP8
    - OPENSSL_cleanse
    - aesni_multi_cbc_encrypt
    - PUTU32
    - RAND_bytes
    - memset
    - sha1_multi_block
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 22
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:411,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:427,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:440,1
    - Dst: aesni_cbc_sha1_enc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:442,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:456,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:460,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:463,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:465,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:466,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:473,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:476,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:507,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:518,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:520,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:527,1
    - Dst: constant_time_ge
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:536,1
    - Dst: constant_time_select
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:544,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:553,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:561,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:563,1
    - Dst: aesni256_cbc_sha1_dec
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:564,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:574,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:583,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:592,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:620,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:636,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:644,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:648,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:657,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:658,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:659,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:660,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:661,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:673,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:675,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:689,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:693,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:694,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:744,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:745,1
    - Dst: aesni256_cbc_sha1_dec
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:746,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:761,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:764,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 221
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 769
    functionName: aesni_cbc_hmac_sha1_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - memcpy
    - constant_time_select
    - data
    - SHA1_Final
    - BSWAP4
    - sha1_block_data_order
    - aesni_cbc_sha1_enc
    - aesni256_cbc_sha1_dec
    - SHA1_Update
    - constant_time_ge
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    - aesni_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char
      *out,\n                                      const unsigned char *in, size_t
      len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:774,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:782,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:785,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:786,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:787,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:789,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:794,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:795,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:799,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:800,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:802,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:816,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:827,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:833,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:854,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:870,1
    - Dst: tls1_1_multi_block_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c:897,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 906
    functionName: aesni_cbc_hmac_sha1_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - tls1_1_multi_block_encrypt
    - memcpy
    - data
    - OPENSSL_cleanse
    - SHA1_Update
    - SHA1_Init
    - memset
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n
      \                                   void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 952
    functionName: EVP_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 958
    functionName: EVP_aes_256_cbc_hmac_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: EVP_aes_128_cbc_hmac_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: EVP_aes_256_cbc_hmac_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc5.c
    functionUses: 355
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:47,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:51,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:59,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 70
    functionName: rc5_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc5.c
    functionUses: 0
    functionsReached:
    - data
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int rc5_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:78,1
    - Dst: RC5_32_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:81,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:81,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc5.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: r_32_12_16_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc5.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_get_key_length
    - RC5_32_set_key
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int r_32_12_16_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_md5_sha1_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/legacy_md5_sha1.c:24,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/evp/legacy_md5_sha1.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cmd
    - mslen
    - ms
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: md5_sha1_int_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_md5_sha1.c
    functionUses: 0
    functionsReached:
    - ossl_md5_sha1_ctrl
    - EVP_MD_CTX_get0_md_data
    linkageType: ''
    returnType: int
    signature: int md5_sha1_int_ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: EVP_md5_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_md5_sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md5_sha1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 135
    functionName: ctr64_inc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_inc(unsigned char *counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: AES_GCM_ASM2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AES_GCM_ASM2(gctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:148,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:150,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:153,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:154,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:160,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:161,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 178
    functionName: aesni_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - EVP_CIPHER_CTX_get_mode
    - ERR_raise
    - aesni_set_decrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aesni_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                         const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:183,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:183,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: aesni_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_C_DATA
    - aesni_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:192,1
    - Dst: aesni_ecb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:197,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:197,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: aesni_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_C_DATA
    - aesni_ecb_encrypt
    linkageType: ''
    returnType: int
    signature: "int aesni_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:226,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:230,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:230,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:232,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:240,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:247,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 254
    functionName: aesni_gcm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - memcpy
    - CRYPTO_gcm128_init
    - CRYPTO_gcm128_setiv
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:263,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:270,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:280,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:281,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:287,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:291,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:296,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 308
    functionName: aesni_xts_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - memcpy
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - aesni_set_decrypt_key
    - EVP_C_DATA
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: "int aesni_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:317,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:321,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:321,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:323,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: aesni_ccm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - memcpy
    - CRYPTO_ccm128_init
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aesni_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:344,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:354,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:354,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:356,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:356,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:358,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:374,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:383,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:385,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 389
    functionName: aesni_ocb_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - memcpy
    - CRYPTO_ocb128_setiv
    - aesni_set_decrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - CRYPTO_ocb128_init
    linkageType: ''
    returnType: int
    signature: "int aesni_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                             const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 418
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 444
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:451,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:453,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:454,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:458,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:478,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:511,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 516
    functionName: aes_t4_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - aes_t4_set_decrypt_key
    - EVP_CIPHER_CTX_get_mode
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - aes_t4_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                          const unsigned char *iv, int enc)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:549,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:553,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:554,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:555,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:576,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:583,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:585,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 590
    functionName: aes_t4_gcm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_gcm128_init
    - CRYPTO_gcm128_setiv
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - aes_t4_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:599,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:606,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:616,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:617,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:624,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:637,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:651,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:659,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 663
    functionName: aes_t4_xts_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - aes_t4_set_decrypt_key
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - CRYPTO_memcmp
    - aes_t4_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:672,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:676,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:677,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:678,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 688
    functionName: aes_t4_ccm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_ccm128_init
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - aes_t4_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_t4_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:698,1
    - Dst: aes_t4_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:708,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:708,1
    - Dst: aes_t4_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:710,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:710,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:712,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:727,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:736,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 742
    functionName: aes_t4_ocb_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - aes_t4_set_decrypt_key
    - aes_t4_set_encrypt_key
    - CRYPTO_ocb128_setiv
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - CRYPTO_ocb128_init
    linkageType: ''
    returnType: int
    signature: "int aes_t4_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                              const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 776
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 802
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:969,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:970,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:972,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: s390x_aes_ecb_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - S390X_AES_FC
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ecb_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *iv,
      int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:983,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 987
    functionName: s390x_aes_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - s390x_km
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:993,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:995,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:996,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:998,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:999,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - ivec
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1002
    functionName: s390x_aes_ofb_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - S390X_AES_FC
    - memcpy
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ofb_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *ivec,
      int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1007,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1008,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1009,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1013,1
    - Dst: s390x_kmo
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1026,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1033,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1045
    functionName: s390x_aes_ofb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    - s390x_kmo
    - s390x_km
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1051,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1053,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1054,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1056,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1061,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - key
    - ivec
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1064
    functionName: s390x_aes_cfb_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - S390X_AES_FC
    - memcpy
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *ivec,
      int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1069,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1070,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1071,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1072,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1073,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1078,1
    - Dst: s390x_kmf
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1093,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1100,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1101,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1114
    functionName: s390x_aes_cfb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_kmf
    - memcpy
    - S390X_AES_FC
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    - EVP_CIPHER_CTX_is_encrypting
    - s390x_km
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1120,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1122,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1123,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1125,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1130,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - key
    - ivec
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1133
    functionName: s390x_aes_cfb8_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - S390X_AES_FC
    - memcpy
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb8_init_key(EVP_CIPHER_CTX *ctx,\n                                   const
      unsigned char *key,\n                                   const unsigned char
      *ivec, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1138,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1139,1
    - Dst: EVP_CIPHER_CTX_iv_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1140,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1142,1
    - Dst: s390x_kmf
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1143,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1146
    functionName: s390x_aes_cfb8_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_kmf
    - memcpy
    - EVP_CIPHER_CTX_iv_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1164
    functionName: S390X_gcm_ivpadlen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_gcm_ivpadlen(i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1179,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1193,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - aad
    - len
    argTypes:
    - S390X_AES_GCM_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1217
    functionName: s390x_aes_gcm_aad
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - U64
    - s390x_kma
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_aad(S390X_AES_GCM_CTX *ctx, const unsigned char
      *aad,\n                             size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1236,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1252,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1275,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1294,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - in
    - out
    - len
    argTypes:
    - S390X_AES_GCM_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1306
    functionName: s390x_aes_gcm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - U64
    - s390x_km
    - s390x_kma
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm(S390X_AES_GCM_CTX *ctx, const unsigned char *in,\n
      \                        unsigned char *out, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1323,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1328,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1329,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - S390X_AES_GCM_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1339
    functionName: s390x_aes_gcm_setiv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - S390X_gcm_ivpadlen
    - s390x_kma
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void s390x_aes_gcm_setiv(S390X_AES_GCM_CTX *ctx,\n                                const
      unsigned char *iv)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1348,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1356,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1375,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1378,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1380,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1382,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1383,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1388,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1395,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1396,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1400,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1405,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1409,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1415,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1427,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1429,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1430,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1440,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1445,1
    - Dst: ctr64_inc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1450,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1455,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1459,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1460,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1469,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1470,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1481,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1494,1
    - Dst: S390X_gcm_ivpadlen
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1499,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1501,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1502,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1506,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 117
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1346
    functionDepth: 2
    functionLinenumber: 1346
    functionLinenumberEnd: 1513
    functionName: s390x_aes_gcm_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ctr64_inc
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - EVP_CIPHER_CTX_buf_noconst
    - OPENSSL_free
    - EVP_C_DATA
    - s390x_aes_gcm_setiv
    - S390X_gcm_ivpadlen
    - EVP_CIPHER_get_iv_length
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: int s390x_aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1522,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1529,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1530,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1532,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1540,1
    - Dst: s390x_aes_gcm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1546,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1548,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1554
    functionName: s390x_aes_gcm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - S390X_AES_FC
    - memcpy
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - s390x_aes_gcm_setiv
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *iv,
      int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1563,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1564,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1565,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1578,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1582,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1593,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1597,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1600,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1602,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1611
    functionName: s390x_aes_gcm_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_kma
    - memcpy
    - OPENSSL_cleanse
    - ERR_raise
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1622,1
    - Dst: s390x_aes_gcm_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1630,1
    - Dst: s390x_aes_gcm_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1637,1
    - Dst: s390x_aes_gcm
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1640,1
    - Dst: s390x_kma
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1647,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1651,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1654,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1661,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1662,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1619
    functionDepth: 4
    functionLinenumber: 1619
    functionLinenumberEnd: 1667
    functionName: s390x_aes_gcm_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_kma
    - s390x_aes_gcm
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - s390x_aes_gcm_tls_cipher
    - s390x_aes_gcm_aad
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1671,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1677,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1681
    functionName: s390x_aes_gcm_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_C_DATA
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int s390x_aes_gcm_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - nonce
    - mlen
    argTypes:
    - S390X_AES_CCM_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1706
    functionName: s390x_aes_ccm_setiv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void s390x_aes_ccm_setiv(S390X_AES_CCM_CTX *ctx,\n                                          const
      unsigned char *nonce,\n                                          size_t mlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s390x_kmac
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1752,1
    - Dst: s390x_kmac
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1759,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1767,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - ctx
    - aad
    - alen
    argTypes:
    - S390X_AES_CCM_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1772
    functionName: s390x_aes_ccm_aad
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_km
    - s390x_kmac
    linkageType: ''
    returnType: void
    signature: "void s390x_aes_ccm_aad(S390X_AES_CCM_CTX *ctx, const unsigned char
      *aad,\n                              size_t alen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1787,1
    - Dst: s390x_kmac
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1824,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1829,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1834,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1839,1
    - Dst: s390x_kmac
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1844,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1849,1
    - Dst: s390x_km
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1858,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - ctx
    - in
    - out
    - len
    - enc
    argTypes:
    - S390X_AES_CCM_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1778
    functionDepth: 1
    functionLinenumber: 1778
    functionLinenumberEnd: 1865
    functionName: s390x_aes_ccm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - s390x_km
    - CRYPTO_ctr128_encrypt_ctr32
    - s390x_kmac
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm(S390X_AES_CCM_CTX *ctx, const unsigned char *in,\n
      \                        unsigned char *out, size_t len, int enc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1874,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1876,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1877,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1885,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1893,1
    - Dst: s390x_aes_ccm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1894,1
    - Dst: s390x_aes_ccm_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1897,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1903,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1906,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1909,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1910,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1871
    functionDepth: 2
    functionLinenumber: 1871
    functionLinenumberEnd: 1918
    functionName: s390x_aes_ccm_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - s390x_aes_ccm_setiv
    - EVP_C_DATA
    - CRYPTO_memcmp
    - s390x_aes_ccm_aad
    - EVP_CIPHER_CTX_is_encrypting
    - s390x_aes_ccm
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                                   const unsigned char *in, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1928,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1935,1
    - Dst: S390X_AES_FC
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1936,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1937,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1942,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1956
    functionName: s390x_aes_ccm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - S390X_AES_FC
    - memcpy
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - memset
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm_init_key(EVP_CIPHER_CTX *ctx,\n                                  const
      unsigned char *key,\n                                  const unsigned char *iv,
      int enc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1967,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1968,1
    - Dst: s390x_aes_ccm_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1976,1
    - Dst: s390x_aes_ccm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:1992,1
    - Dst: s390x_aes_ccm_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2002,1
    - Dst: s390x_aes_ccm_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2017,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2023,1
    - Dst: s390x_aes_ccm
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2031,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2032,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2033,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2039,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 1964
    functionDepth: 3
    functionLinenumber: 1964
    functionLinenumberEnd: 2046
    functionName: s390x_aes_ccm_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - s390x_aes_ccm_setiv
    - EVP_C_DATA
    - CRYPTO_memcmp
    - s390x_aes_ccm_aad
    - s390x_aes_ccm_tls_cipher
    - EVP_CIPHER_CTX_is_encrypting
    - s390x_aes_ccm
    linkageType: ''
    returnType: int
    signature: "int s390x_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2055,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2079,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2080,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2090,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2110,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2128,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2134,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2135,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2142,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2149,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2161
    functionName: s390x_aes_ccm_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_C_DATA
    - EVP_CIPHER_CTX_buf_noconst
    - memcpy
    linkageType: ''
    returnType: int
    signature: int s390x_aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2227
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,    \\\n
      \                             MODE,flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2228
    functionDepth: 0
    functionLinenumber: 2228
    functionLinenumberEnd: 2265
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2280
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2281
    functionDepth: 0
    functionLinenumber: 2281
    functionLinenumberEnd: 2295
    functionName: BLOCK_CIPHER_custom
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2306
    functionName: BLOCK_CIPHER_generic_pack
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic_pack(nid,keylen,flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2311,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2313,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2318,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2319,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2331,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2332,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2340,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2341,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2349,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2350,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2359,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2360,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2379,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2379,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2387,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2388,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2396,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2396,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2408,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2413
    functionName: aes_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - vpaes_set_encrypt_key
    - HWAES_set_decrypt_key
    - EVP_CIPHER_CTX_get_mode
    - HWAES_set_encrypt_key
    - AES_set_encrypt_key
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - vpaes_set_decrypt_key
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2418,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2422,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2423,1
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2424,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2431
    functionName: aes_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aes_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2436,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2447
    functionName: aes_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aes_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2452,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2454,1
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2455,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2459
    functionName: aes_ofb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2464,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2466,1
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2467,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2469,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2461
    functionDepth: 1
    functionLinenumber: 2461
    functionLinenumberEnd: 2472
    functionName: aes_cfb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_cfb128_encrypt
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int aes_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2477,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2479,1
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2480,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2482,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2474
    functionDepth: 2
    functionLinenumber: 2474
    functionLinenumberEnd: 2485
    functionName: aes_cfb8_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - CRYPTO_cfb128_8_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int aes_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2490,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2492,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2493,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2494,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2496,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2497,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2502,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2503,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2505,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2506,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2512,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2513,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2515,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2487
    functionDepth: 2
    functionLinenumber: 2487
    functionLinenumberEnd: 2520
    functionName: aes_cfb1_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_CIPHER_CTX_get_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_test_flags
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: int
    signature: "int aes_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2525,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2527,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2534,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2536,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2539,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2541,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2522
    functionDepth: 3
    functionLinenumber: 2522
    functionLinenumberEnd: 2545
    functionName: aes_ctr_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - CRYPTO_ctr128_encrypt_ctr32
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aes_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2553,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2556,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2551
    functionDepth: 1
    functionLinenumber: 2551
    functionLinenumberEnd: 2560
    functionName: aes_gcm_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_C_DATA
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int aes_gcm_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2564,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2569,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2586,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2587,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2588,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2598,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2606,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2612,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2623,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2624,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2632,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2635,1
    - Dst: ctr64_inc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2640,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2647,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2648,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2656,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2680,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2689,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2690,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2693,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 106
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2562
    functionDepth: 2
    functionLinenumber: 2562
    functionLinenumberEnd: 2702
    functionName: aes_gcm_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ctr64_inc
    - memcpy
    - OPENSSL_malloc
    - CRYPTO_gcm128_setiv
    - ERR_raise
    - OPENSSL_free
    - EVP_C_DATA
    - EVP_CIPHER_get_iv_length
    linkageType: ''
    returnType: int
    signature: int aes_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2707,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2714,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2715,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2727,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2728,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2736,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2737,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2745,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2746,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2761,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2768,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2770,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2704
    functionDepth: 2
    functionLinenumber: 2704
    functionLinenumberEnd: 2775
    functionName: aes_gcm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - vpaes_set_encrypt_key
    - memcpy
    - CRYPTO_gcm128_init
    - HWAES_set_encrypt_key
    - AES_set_encrypt_key
    - CRYPTO_gcm128_setiv
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2787,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2801,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2809,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2814,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2825,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2826,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2829,1
    - Dst: CRYPTO_gcm128_encrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2835,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2843,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2844,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2847,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2853,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2859,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2866,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2867,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2870,1
    - Dst: CRYPTO_gcm128_decrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2876,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2884,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2885,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2888,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2894,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2899,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2901,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2902,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 77
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2784
    functionDepth: 3
    functionLinenumber: 2784
    functionLinenumberEnd: 2912
    functionName: aes_gcm_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 1
    functionsReached:
    - AES_gcm_decrypt
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_encrypt_ctr32
    - CRYPTO_gcm128_decrypt
    - AES_GCM_ASM
    - OPENSSL_cleanse
    - CRYPTO_gcm128_aad
    - ERR_raise
    - AES_gcm_encrypt
    - AES_GCM_ASM2
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_ctrl
    - CRYPTO_gcm128_decrypt_ctr32
    - CRYPTO_gcm128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - gctx
    - offset
    argTypes:
    - EVP_AES_GCM_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2923
    functionDepth: 1
    functionLinenumber: 2923
    functionLinenumberEnd: 2935
    functionName: aes_gcm_iv_generate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: int aes_gcm_iv_generate(EVP_AES_GCM_CTX *gctx, int offset)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2941,1
    - Dst: aes_gcm_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2948,1
    - Dst: aes_gcm_iv_generate
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2958,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2960,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2971,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2977,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2980,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2983,1
    - Dst: CRYPTO_gcm128_encrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2991,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:2999,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3002,1
    - Dst: AES_gcm_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3005,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3013,1
    - Dst: AES_GCM_ASM
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3021,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3024,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3027,1
    - Dst: CRYPTO_gcm128_decrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3035,1
    - Dst: AES_GCM_ASM2
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3043,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3046,1
    - Dst: AES_gcm_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3049,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3057,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3067,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3072,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 2938
    functionDepth: 4
    functionLinenumber: 2938
    functionLinenumberEnd: 3079
    functionName: aes_gcm_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - AES_gcm_decrypt
    - CRYPTO_gcm128_finish
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_encrypt_ctr32
    - CRYPTO_gcm128_decrypt
    - AES_GCM_ASM
    - CRYPTO_gcm128_setiv
    - CRYPTO_gcm128_aad
    - AES_gcm_encrypt
    - AES_GCM_ASM2
    - EVP_C_DATA
    - aes_gcm_iv_generate
    - CRYPTO_gcm128_decrypt_ctr32
    - aes_gcm_tls_cipher
    - CRYPTO_gcm128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3095,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3099,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3118
      start: 3093
    functionDepth: 1
    functionLinenumber: 3093
    functionLinenumberEnd: 3118
    functionName: aes_xts_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: int aes_xts_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3123,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3131,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3152,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3165,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3171,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3178,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3193,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3196,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3200,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3210,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3213,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3217,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3120
    functionDepth: 1
    functionLinenumber: 3120
    functionLinenumberEnd: 3230
    functionName: aes_xts_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - vpaes_set_encrypt_key
    - memcpy
    - HWAES_set_encrypt_key
    - HWAES_set_decrypt_key
    - ERR_raise
    - AES_set_encrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - CRYPTO_memcmp
    - vpaes_set_decrypt_key
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3251,1
    - Dst: CRYPTO_xts128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3259,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3232
    functionDepth: 1
    functionLinenumber: 3232
    functionLinenumberEnd: 3263
    functionName: aes_xts_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_C_DATA
    - ERR_raise
    - CRYPTO_xts128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aes_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3276,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3296,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3296,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3300,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3301,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3307,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3312,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3313,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3323,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3338,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3342,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3342,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3348,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3350,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3360,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3274
    functionDepth: 1
    functionLinenumber: 3274
    functionLinenumberEnd: 3373
    functionName: aes_ccm_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: int aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3378,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3385,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3386,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3389,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3398,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3399,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3401,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3408,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3408,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3410,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3375
    functionDepth: 1
    functionLinenumber: 3375
    functionLinenumberEnd: 3420
    functionName: aes_ccm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - vpaes_set_encrypt_key
    - memcpy
    - CRYPTO_ccm128_init
    - HWAES_set_encrypt_key
    - AES_set_encrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aes_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3425,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3431,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3432,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3432,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3435,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3439,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3443,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3443,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3448,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3449,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3451,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3453,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3457,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3459,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3461,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3462,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3422
    functionDepth: 2
    functionLinenumber: 3422
    functionLinenumberEnd: 3469
    functionName: aes_ccm_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 1
    functionsReached:
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_encrypt_ccm64
    - memcpy
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_setiv
    - CRYPTO_ccm128_decrypt
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - CRYPTO_memcmp
    - CRYPTO_ccm128_tag
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_ccm128_aad
    linkageType: ''
    returnType: int
    signature: "int aes_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3474,1
    - Dst: aes_ccm_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3481,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3492,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3501,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3506,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3511,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3515,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3516,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3518,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3524,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3526,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3528,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3529,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3529,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3535,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3471
    functionDepth: 3
    functionLinenumber: 3471
    functionLinenumberEnd: 3541
    functionName: aes_ccm_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ccm128_tag
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_encrypt_ccm64
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_setiv
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - CRYPTO_memcmp
    - aes_ccm_tls_cipher
    - CRYPTO_ccm128_decrypt
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_ccm128_aad
    linkageType: ''
    returnType: int
    signature: "int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3565,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3570,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3571,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3571,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3574,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3574,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3580,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3582,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3561
    functionDepth: 1
    functionLinenumber: 3561
    functionLinenumberEnd: 3586
    functionName: aes_wrap_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - AES_set_encrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    - EVP_CIPHER_CTX_is_encrypting
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_wrap_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3591,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3594,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3602,1
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3607,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3608,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3612,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3628,1
    - Dst: CRYPTO_128_wrap_pad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3629,1
    - Dst: CRYPTO_128_unwrap_pad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3633,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3637,1
    - Dst: CRYPTO_128_wrap
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3638,1
    - Dst: CRYPTO_128_unwrap
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3641,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inlen
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3645
      start: 3588
    functionDepth: 2
    functionLinenumber: 3588
    functionLinenumberEnd: 3645
    functionName: aes_wrap_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_128_unwrap_pad
    - CRYPTO_128_wrap
    - CRYPTO_128_unwrap
    - CRYPTO_128_wrap_pad
    - ERR_raise
    - EVP_C_DATA
    - EVP_CIPHER_CTX_get_iv_length
    - EVP_CIPHER_CTX_is_encrypting
    - ossl_is_partially_overlapping
    linkageType: ''
    returnType: int
    signature: "int aes_wrap_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3660
    functionDepth: 0
    functionLinenumber: 3660
    functionLinenumberEnd: 3663
    functionName: EVP_aes_128_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3677
      start: 3674
    functionDepth: 0
    functionLinenumber: 3674
    functionLinenumberEnd: 3677
    functionName: EVP_aes_192_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_192_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3691
      start: 3688
    functionDepth: 0
    functionLinenumber: 3688
    functionLinenumberEnd: 3691
    functionName: EVP_aes_256_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_wrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3702
    functionDepth: 0
    functionLinenumber: 3702
    functionLinenumberEnd: 3705
    functionName: EVP_aes_128_wrap_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_wrap_pad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3719
      start: 3716
    functionDepth: 0
    functionLinenumber: 3716
    functionLinenumberEnd: 3719
    functionName: EVP_aes_192_wrap_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_192_wrap_pad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3730
    functionDepth: 0
    functionLinenumber: 3730
    functionLinenumberEnd: 3733
    functionName: EVP_aes_256_wrap_pad
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_wrap_pad(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3738,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3746,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3774,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3776,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3780,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3783,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3788,1
    - Dst: CRYPTO_ocb128_copy_ctx
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3789,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3736
    functionDepth: 2
    functionLinenumber: 3736
    functionLinenumberEnd: 3797
    functionName: aes_ocb_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_C_DATA
    - CRYPTO_ocb128_copy_ctx
    - EVP_CIPHER_get_iv_length
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: int aes_ocb_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3802,1
    - Dst: HWAES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3814,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3814,1
    - Dst: HWAES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3816,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3816,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3818,1
    - Dst: vpaes_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3830,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3831,1
    - Dst: vpaes_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3833,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3834,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3836,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3845,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3845,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3847,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3847,1
    - Dst: CRYPTO_ocb128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3849,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3864,1
    - Dst: CRYPTO_ocb128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3873,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3875,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3799
    functionDepth: 3
    functionLinenumber: 3799
    functionLinenumberEnd: 3879
    functionName: aes_ocb_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - vpaes_set_encrypt_key
    - memcpy
    - HWAES_set_encrypt_key
    - HWAES_set_decrypt_key
    - AES_set_encrypt_key
    - CRYPTO_ocb128_setiv
    - EVP_CIPHER_CTX_get_key_length
    - vpaes_set_decrypt_key
    - EVP_C_DATA
    - CRYPTO_ocb128_init
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aes_ocb_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3888,1
    - Dst: ossl_is_partially_overlapping
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3913,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3914,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3928,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3932,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3940,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3942,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3943,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3947,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3965,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3967,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3968,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3972,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3982,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3993,1
    - Dst: CRYPTO_ocb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3994,1
    - Dst: CRYPTO_ocb128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:3998,1
    - Dst: CRYPTO_ocb128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:4006,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:4012,1
    - Dst: CRYPTO_ocb128_finish
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:4015,1
    - Dst: CRYPTO_ocb128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:4022,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 94
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4028
      start: 3881
    functionDepth: 4
    functionLinenumber: 3881
    functionLinenumberEnd: 4028
    functionName: aes_ocb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ocb128_decrypt
    - memcpy
    - CRYPTO_ocb128_encrypt
    - ERR_raise
    - EVP_C_DATA
    - CRYPTO_ocb128_finish
    - CRYPTO_ocb128_tag
    - CRYPTO_ocb128_aad
    - EVP_CIPHER_CTX_is_encrypting
    - ossl_is_partially_overlapping
    linkageType: ''
    returnType: int
    signature: "int aes_ocb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:4032,1
    - Dst: CRYPTO_ocb128_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/e_aes.c:4033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4035
      start: 4030
    functionDepth: 2
    functionLinenumber: 4030
    functionLinenumberEnd: 4035
    functionName: aes_ocb_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - CRYPTO_ocb128_cleanup
    linkageType: ''
    returnType: int
    signature: int aes_ocb_cleanup(EVP_CIPHER_CTX *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vrand
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: evp_rand_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int evp_rand_up_ref(void *vrand)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:72,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:73,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - vrand
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: evp_rand_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void evp_rand_free(void *vrand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:80,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: evp_rand_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *evp_rand_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::enable_locking
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: EVP_RAND_enable_locking
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::enable_locking
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_enable_locking(EVP_RAND_CTX *rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: evp_rand_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::lock
    linkageType: ''
    returnType: int
    signature: int evp_rand_lock(EVP_RAND_CTX *rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: evp_rand_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::unlock
    linkageType: ''
    returnType: void
    signature: void evp_rand_unlock(EVP_RAND_CTX *rand)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:126,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:127,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:131,1
    - Dst: evp_rand_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:132,1
    - Dst: OSSL_FUNC_rand_newctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:142,1
    - Dst: OSSL_FUNC_rand_freectx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:148,1
    - Dst: OSSL_FUNC_rand_instantiate
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:154,1
    - Dst: OSSL_FUNC_rand_uninstantiate
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:160,1
    - Dst: OSSL_FUNC_rand_generate
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:166,1
    - Dst: OSSL_FUNC_rand_reseed
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:172,1
    - Dst: OSSL_FUNC_rand_nonce
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:177,1
    - Dst: OSSL_FUNC_rand_enable_locking
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:182,1
    - Dst: OSSL_FUNC_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:188,1
    - Dst: OSSL_FUNC_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:194,1
    - Dst: OSSL_FUNC_rand_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:201,1
    - Dst: OSSL_FUNC_rand_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:207,1
    - Dst: OSSL_FUNC_rand_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:213,1
    - Dst: OSSL_FUNC_rand_get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:218,1
    - Dst: OSSL_FUNC_rand_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:223,1
    - Dst: OSSL_FUNC_rand_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:229,1
    - Dst: OSSL_FUNC_rand_verify_zeroization
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:234,1
    - Dst: evp_rand_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:259,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:263,1
    - Dst: evp_rand_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:265,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 123
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 271
    functionName: evp_rand_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_rand_generate
    - OSSL_FUNC_rand_settable_ctx_params
    - OSSL_FUNC_rand_gettable_ctx_params
    - OSSL_FUNC_rand_gettable_params
    - OSSL_FUNC_rand_enable_locking
    - OSSL_FUNC_rand_set_ctx_params
    - OSSL_FUNC_rand_uninstantiate
    - ossl_algorithm_get1_first_name
    - evp_rand_free
    - OSSL_FUNC_rand_get_params
    - OSSL_FUNC_rand_instantiate
    - OSSL_FUNC_rand_freectx
    - OSSL_FUNC_rand_nonce
    - OSSL_FUNC_rand_verify_zeroization
    - ossl_provider_up_ref
    - OSSL_FUNC_rand_newctx
    - OSSL_FUNC_rand_unlock
    - ERR_raise
    - OSSL_FUNC_rand_get_ctx_params
    - evp_rand_new
    - OSSL_FUNC_rand_lock
    - OSSL_FUNC_rand_reseed
    linkageType: ''
    returnType: void
    signature: "void *evp_rand_from_algorithm(int name_id,\n                                     const
      OSSL_ALGORITHM *algodef,\n                                     OSSL_PROVIDER
      *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 10
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: EVP_RAND_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_RAND
    signature: "EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,\n
      \                        const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: EVP_RAND_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_up_ref
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_up_ref(EVP_RAND *rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: EVP_RAND_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_free
    linkageType: ''
    returnType: void
    signature: void EVP_RAND_free(EVP_RAND *rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: evp_rand_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_rand_get_number(const EVP_RAND *rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: EVP_RAND_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_RAND_get0_name(const EVP_RAND *rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: EVP_RAND_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_RAND_get0_description(const EVP_RAND *rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - rand
    - name
    argTypes:
    - EVP_RAND*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 9
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: EVP_RAND_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_is_a(const EVP_RAND *rand, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: EVP_RAND_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_RAND_get0_provider(const EVP_RAND *rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND*::get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rand
    - params
    argTypes:
    - EVP_RAND*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: EVP_RAND_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND*::get_params
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: evp_rand_ctx_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int evp_rand_ctx_up_ref(EVP_RAND_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:337,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:341,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:342,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:343,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:344,1
    - Dst: evp_rand_ctx_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:348,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:349,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:350,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:351,1
    - Dst: EVP_RAND*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:357,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:357,1
    - Dst: EVP_RAND_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:359,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:360,1
    - Dst: EVP_RAND*::freectx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:361,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:362,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:363,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - rand
    - parent
    argTypes:
    - EVP_RAND*
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 371
    functionName: EVP_RAND_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND*::newctx
    - EVP_RAND*::freectx
    - EVP_RAND_CTX_free
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_free
    - evp_rand_ctx_up_ref
    - CRYPTO_THREAD_lock_new
    - EVP_RAND_up_ref
    - CRYPTO_THREAD_lock_free
    - ossl_provider_ctx
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: EVP_RAND_CTX *EVP_RAND_CTX_new(EVP_RAND *rand, EVP_RAND_CTX *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:381,1
    - Dst: EVP_RAND_CTX*::meth::freectx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:385,1
    - Dst: EVP_RAND_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:387,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:388,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:389,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 391
    functionName: EVP_RAND_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 2
    functionsReached:
    - EVP_RAND_free
    - CRYPTO_DOWN_REF
    - EVP_RAND_CTX*::meth::freectx
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - EVP_RAND_CTX_free
    linkageType: ''
    returnType: void
    signature: void EVP_RAND_CTX_free(EVP_RAND_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: EVP_RAND_CTX_get0_rand
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_RAND
    signature: EVP_RAND *EVP_RAND_CTX_get0_rand(EVP_RAND_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_RAND_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: evp_rand_get_ctx_params_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::get_ctx_params
    linkageType: ''
    returnType: int
    signature: "int evp_rand_get_ctx_params_locked(EVP_RAND_CTX *ctx,\n                                          OSSL_PARAM
      params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:408,1
    - Dst: evp_rand_get_ctx_params_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:410,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_RAND_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: EVP_RAND_CTX_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_unlock
    - evp_rand_get_ctx_params_locked
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_CTX_get_params(EVP_RAND_CTX *ctx, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_RAND_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: evp_rand_set_ctx_params_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::set_ctx_params
    linkageType: ''
    returnType: int
    signature: "int evp_rand_set_ctx_params_locked(EVP_RAND_CTX *ctx,\n                                          const
      OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:427,1
    - Dst: evp_rand_set_ctx_params_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:429,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_RAND_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 432
    functionName: EVP_RAND_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_unlock
    - evp_rand_set_ctx_params_locked
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_CTX_set_params(EVP_RAND_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND*::gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:438,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:438,1
    - Dst: EVP_RAND_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: EVP_RAND_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_get0_provider
    - EVP_RAND*::gettable_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_RAND_gettable_params(const EVP_RAND *rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:447,1
    - Dst: EVP_RAND_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:447,1
    - Dst: EVP_RAND*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: EVP_RAND_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND*::gettable_ctx_params
    - EVP_RAND_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_RAND_gettable_ctx_params(const EVP_RAND *rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:457,1
    - Dst: EVP_RAND_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:457,1
    - Dst: EVP_RAND*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rand
    argTypes:
    - EVP_RAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 459
    functionName: EVP_RAND_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_get0_provider
    - EVP_RAND*::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_RAND_settable_ctx_params(const EVP_RAND *rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:467,1
    - Dst: EVP_RAND_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:467,1
    - Dst: EVP_RAND_CTX*::meth::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 469
    functionName: EVP_RAND_CTX_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::gettable_ctx_params
    - EVP_RAND_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_RAND_CTX_gettable_params(EVP_RAND_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:477,1
    - Dst: EVP_RAND_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:477,1
    - Dst: EVP_RAND_CTX*::meth::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 479
    functionName: EVP_RAND_CTX_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::settable_ctx_params
    - EVP_RAND_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_RAND_CTX_settable_params(EVP_RAND_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 10
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: EVP_RAND_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_RAND_do_all_provided(OSSL_LIB_CTX *libctx,\n                              void
      (*fn)(EVP_RAND *rand, void *arg),\n                              void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rand
    - data
    argTypes:
    - EVP_RAND*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 9
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: EVP_RAND_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_RAND_names_do_all(const EVP_RAND *rand,\n                          void
      (*fn)(const char *name, void *data),\n                          void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::instantiate
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - strength
    - prediction_resistance
    - pstr
    - pstr_len
    - params
    argTypes:
    - EVP_RAND_CTX*
    - unsigned int
    - int
    - unsigned char*
    - size_t
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 507
    functionName: evp_rand_instantiate_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::instantiate
    linkageType: ''
    returnType: int
    signature: "int evp_rand_instantiate_locked\n    (EVP_RAND_CTX *ctx, unsigned
      int strength, int prediction_resistance,\n     const unsigned char *pstr, size_t
      pstr_len, const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:516,1
    - Dst: evp_rand_instantiate_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:518,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - strength
    - prediction_resistance
    - pstr
    - pstr_len
    - params
    argTypes:
    - EVP_RAND_CTX*
    - unsigned int
    - int
    - unsigned char*
    - size_t
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 522
    functionName: EVP_RAND_instantiate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_unlock
    - evp_rand_instantiate_locked
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: "int EVP_RAND_instantiate(EVP_RAND_CTX *ctx, unsigned int strength,\n
      \                        int prediction_resistance,\n                         const
      unsigned char *pstr, size_t pstr_len,\n                         const OSSL_PARAM
      params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::uninstantiate
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: evp_rand_uninstantiate_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::uninstantiate
    linkageType: ''
    returnType: int
    signature: int evp_rand_uninstantiate_locked(EVP_RAND_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:533,1
    - Dst: evp_rand_uninstantiate_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:535,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 538
    functionName: EVP_RAND_uninstantiate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_unlock
    - evp_rand_uninstantiate_locked
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_uninstantiate(EVP_RAND_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:549,1
    - Dst: evp_rand_get_ctx_params_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:551,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:553,1
    - Dst: EVP_RAND_CTX*::meth::generate
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:558,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - ctx
    - out
    - outlen
    - strength
    - prediction_resistance
    - addin
    - addin_len
    argTypes:
    - EVP_RAND_CTX*
    - unsigned char*
    - size_t
    - unsigned int
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 570
    functionName: evp_rand_generate_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::generate
    - evp_rand_get_ctx_params_locked
    - OSSL_PARAM_construct_size_t
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int evp_rand_generate_locked(EVP_RAND_CTX *ctx, unsigned char *out,\n
      \                                   size_t outlen, unsigned int strength,\n
      \                                   int prediction_resistance,\n                                    const
      unsigned char *addin,\n                                    size_t addin_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:578,1
    - Dst: evp_rand_generate_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:580,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - ctx
    - out
    - outlen
    - strength
    - prediction_resistance
    - addin
    - addin_len
    argTypes:
    - EVP_RAND_CTX*
    - unsigned char*
    - size_t
    - unsigned int
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 584
    functionName: EVP_RAND_generate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_generate_locked
    - evp_rand_unlock
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: "int EVP_RAND_generate(EVP_RAND_CTX *ctx, unsigned char *out, size_t
      outlen,\n                      unsigned int strength, int prediction_resistance,\n
      \                     const unsigned char *addin, size_t addin_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::reseed
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - prediction_resistance
    - ent
    - ent_len
    - addin
    - addin_len
    argTypes:
    - EVP_RAND_CTX*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: evp_rand_reseed_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::reseed
    linkageType: ''
    returnType: int
    signature: "int evp_rand_reseed_locked(EVP_RAND_CTX *ctx, int prediction_resistance,\n
      \                                 const unsigned char *ent, size_t ent_len,\n
      \                                 const unsigned char *addin, size_t addin_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:602,1
    - Dst: evp_rand_reseed_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:604,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - prediction_resistance
    - ent
    - ent_len
    - addin
    - addin_len
    argTypes:
    - EVP_RAND_CTX*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 608
    functionName: EVP_RAND_reseed
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_unlock
    - evp_rand_reseed_locked
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: "int EVP_RAND_reseed(EVP_RAND_CTX *ctx, int prediction_resistance,\n
      \                   const unsigned char *ent, size_t ent_len,\n                    const
      unsigned char *addin, size_t addin_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:615,1
    - Dst: evp_rand_get_ctx_params_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 619
    functionName: evp_rand_strength_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_get_ctx_params_locked
    - OSSL_PARAM_construct_uint
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int evp_rand_strength_locked(EVP_RAND_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:625,1
    - Dst: evp_rand_strength_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:627,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 630
    functionName: EVP_RAND_get_strength
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_unlock
    - evp_rand_strength_locked
    - evp_rand_lock
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int EVP_RAND_get_strength(EVP_RAND_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_strength_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:635,1
    - Dst: EVP_RAND_CTX*::meth::nonce
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:639,1
    - Dst: evp_rand_generate_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - EVP_RAND_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: evp_rand_nonce_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_generate_locked
    - EVP_RAND_CTX*::meth::nonce
    - evp_rand_strength_locked
    linkageType: ''
    returnType: int
    signature: "int evp_rand_nonce_locked(EVP_RAND_CTX *ctx, unsigned char *out,\n
      \                                size_t outlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:648,1
    - Dst: evp_rand_nonce_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:650,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - EVP_RAND_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: EVP_RAND_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_nonce_locked
    - evp_rand_unlock
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_nonce(EVP_RAND_CTX *ctx, unsigned char *out, size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:660,1
    - Dst: EVP_RAND_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 664
    functionName: EVP_RAND_get_state
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_int
    - EVP_RAND_CTX_get_params
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_get_state(EVP_RAND_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_CTX*::meth::verify_zeroization
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: evp_rand_verify_zeroization_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX*::meth::verify_zeroization
    linkageType: ''
    returnType: int
    signature: int evp_rand_verify_zeroization_locked(EVP_RAND_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_rand_lock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:677,1
    - Dst: evp_rand_verify_zeroization_locked
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:679,1
    - Dst: evp_rand_unlock
      Src: /src/openssl-3.0.15/crypto/evp/evp_rand.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: EVP_RAND_verify_zeroization
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_rand.c
    functionUses: 0
    functionsReached:
    - evp_rand_verify_zeroization_locked
    - evp_rand_unlock
    - evp_rand_lock
    linkageType: ''
    returnType: int
    signature: int EVP_RAND_verify_zeroization(EVP_RAND_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:24,1
    - Dst: EVP_MAC*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:27,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:27,1
    - Dst: EVP_MAC_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:28,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:29,1
    - Dst: EVP_MAC*::freectx
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:31,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: EVP_MAC_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - EVP_MAC*::newctx
    - EVP_MAC_up_ref
    - EVP_MAC*::freectx
    - ossl_provider_ctx
    linkageType: ''
    returnType: EVP_MAC_CTX
    signature: EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_CTX*::meth::freectx
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:44,1
    - Dst: EVP_MAC_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: EVP_MAC_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 5
    functionsReached:
    - EVP_MAC_CTX*::meth::freectx
    - OPENSSL_free
    - EVP_MAC_free
    linkageType: ''
    returnType: void
    signature: void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:60,1
    - Dst: EVP_MAC_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:67,1
    - Dst: EVP_MAC_CTX*::meth::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:71,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - src
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 78
    functionName: EVP_MAC_CTX_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 4
    functionsReached:
    - EVP_MAC_CTX*::meth::dupctx
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - EVP_MAC_up_ref
    - EVP_MAC_CTX_free
    linkageType: ''
    returnType: EVP_MAC_CTX
    signature: EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: EVP_MAC_CTX_get0_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MAC
    signature: EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:92,1
    - Dst: EVP_MAC_CTX*::meth::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:94,1
    - Dst: EVP_MAC_CTX*::meth::get_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EVP_MAC_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: get_size_t_ctx_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_CTX*::meth::get_params
    - EVP_MAC_CTX*::meth::get_ctx_params
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: size_t
    signature: size_t get_size_t_ctx_param(EVP_MAC_CTX *ctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_size_t_ctx_param
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: EVP_MAC_CTX_get_mac_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - get_size_t_ctx_param
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_size_t_ctx_param
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: EVP_MAC_CTX_get_block_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - get_size_t_ctx_param
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_MAC_CTX_get_block_size(EVP_MAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_CTX*::meth::init
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - keylen
    - params
    argTypes:
    - EVP_MAC_CTX*
    - unsigned char*
    - size_t
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: EVP_MAC_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_CTX*::meth::init
    linkageType: ''
    returnType: int
    signature: "int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t
      keylen,\n                 const OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_CTX*::meth::update
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - datalen
    argTypes:
    - EVP_MAC_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: EVP_MAC_update
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 3
    functionsReached:
    - EVP_MAC_CTX*::meth::update
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t
      datalen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:142,1
    - Dst: EVP_MAC_CTX_get_mac_size
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:149,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:156,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:160,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:161,1
    - Dst: EVP_MAC_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:164,1
    - Dst: EVP_MAC_CTX*::meth::final
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - xof
    - out
    - outl
    - outsize
    argTypes:
    - EVP_MAC_CTX*
    - int
    - unsigned char*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 172
    functionName: evp_mac_final
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - EVP_MAC_CTX_set_params
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_MAC_CTX_get_mac_size
    - EVP_MAC_CTX*::meth::final
    linkageType: ''
    returnType: int
    signature: "int evp_mac_final(EVP_MAC_CTX *ctx, int xof,\n                         unsigned
      char *out, size_t *outl, size_t outsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_mac_final
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out
    - outl
    - outsize
    argTypes:
    - EVP_MAC_CTX*
    - unsigned char*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: EVP_MAC_final
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 3
    functionsReached:
    - evp_mac_final
    linkageType: ''
    returnType: int
    signature: "int EVP_MAC_final(EVP_MAC_CTX *ctx,\n                  unsigned char
      *out, size_t *outl, size_t outsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_mac_final
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - out
    - outsize
    argTypes:
    - EVP_MAC_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: EVP_MAC_finalXOF
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - evp_mac_final
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_finalXOF(EVP_MAC_CTX *ctx, unsigned char *out, size_t outsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC*::get_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mac
    - params
    argTypes:
    - EVP_MAC*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: EVP_MAC_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MAC*::get_params
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_CTX*::meth::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_MAC_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: EVP_MAC_CTX_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_CTX*::meth::get_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_CTX*::meth::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_MAC_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: EVP_MAC_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 2
    functionsReached:
    - EVP_MAC_CTX*::meth::set_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: evp_mac_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_mac_get_number(const EVP_MAC *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: EVP_MAC_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_MAC_get0_name(const EVP_MAC *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: EVP_MAC_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_MAC_get0_description(const EVP_MAC *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - mac
    - name
    argTypes:
    - EVP_MAC*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 9
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: EVP_MAC_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_is_a(const EVP_MAC *mac, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mac
    - data
    argTypes:
    - EVP_MAC*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 9
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: EVP_MAC_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_MAC_names_do_all(const EVP_MAC *mac,\n                         void
      (*fn)(const char *name, void *data),\n                         void *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC_fetch
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:249,1
    - Dst: EVP_MAC_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:260,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:268,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:271,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:276,1
    - Dst: EVP_MAC_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:281,1
    - Dst: EVP_MAC_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:282,1
    - Dst: EVP_MAC_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:283,1
    - Dst: EVP_MAC_init
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:284,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:285,1
    - Dst: EVP_MAC_final
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:286,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:288,1
    - Dst: EVP_MAC_final
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:289,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:290,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:300,1
    - Dst: EVP_MAC_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_lib.c:301,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 12
    argNames:
    - libctx
    - name
    - propq
    - subalg
    - params
    - key
    - keylen
    - data
    - datalen
    - out
    - outsize
    - outlen
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - char*
    - OSSL_PARAM*
    - void*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 303
    functionName: EVP_Q_mac
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_free
    - EVP_MAC_update
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - EVP_MAC_settable_ctx_params
    - ERR_raise
    - EVP_MAC_fetch
    - EVP_MAC_CTX_new
    - EVP_MAC_CTX_set_params
    - OPENSSL_free
    - EVP_MAC_CTX_free
    - OSSL_PARAM_locate_const
    - EVP_MAC_init
    - EVP_MAC_final
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *EVP_Q_mac(OSSL_LIB_CTX *libctx,\n                         const
      char *name, const char *propq,\n                         const char *subalg,
      const OSSL_PARAM *params,\n                         const void *key, size_t
      keylen,\n                         const unsigned char *data, size_t datalen,\n
      \                        unsigned char *out, size_t outsize, size_t *outlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:27,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: evp_pkey_ctx_getset_ecdh_param_checks
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_is_legacy
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - ERR_raise
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline evp_pkey_ctx_getset_ecdh_param_checks(const EVP_PKEY_CTX
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_getset_ecdh_param_checks
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:45,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:60,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:62,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - cofactor_mode
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 68
    functionName: EVP_PKEY_CTX_set_ecdh_cofactor_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - evp_pkey_ctx_getset_ecdh_param_checks
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx, int cofactor_mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_getset_ecdh_param_checks
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:75,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:79,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:81,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:83,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 105
    functionName: EVP_PKEY_CTX_get_ecdh_cofactor_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_get_params_strict
    - evp_pkey_ctx_getset_ecdh_param_checks
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_ecdh_cofactor_mode(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - kdf
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: EVP_PKEY_CTX_set_ecdh_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_ecdh_kdf_type(EVP_PKEY_CTX *ctx, int kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: EVP_PKEY_CTX_get_ecdh_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_ecdh_kdf_type(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: EVP_PKEY_CTX_set_ecdh_kdf_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pmd
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: EVP_PKEY_CTX_get_ecdh_kdf_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_ecdh_kdf_md(EVP_PKEY_CTX *ctx, const EVP_MD **pmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_getset_ecdh_param_checks
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:153,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:166,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:168,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:170,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - outlen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: EVP_PKEY_CTX_set_ecdh_kdf_outlen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - evp_pkey_ctx_getset_ecdh_param_checks
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int outlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_getset_ecdh_param_checks
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:182,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:186,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:188,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - plen
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 208
    functionName: EVP_PKEY_CTX_get_ecdh_kdf_outlen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - ERR_raise
    - evp_pkey_ctx_get_params_strict
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_getset_ecdh_param_checks
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_ecdh_kdf_outlen(EVP_PKEY_CTX *ctx, int *plen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_getset_ecdh_param_checks
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:215,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:219,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:226,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:228,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:232,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - ukm
    - len
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 240
    functionName: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_free
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - OSSL_PARAM_construct_octet_string
    - evp_pkey_ctx_getset_ecdh_param_checks
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char
      *ukm, int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_getset_ecdh_param_checks
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:249,1
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:253,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:255,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - pukm
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 275
    functionName: EVP_PKEY_CTX_get0_ecdh_kdf_ukm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - evp_pkey_ctx_get_params_strict
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_getset_ecdh_param_checks
    - OSSL_PARAM_construct_octet_ptr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get0_ecdh_kdf_ukm(EVP_PKEY_CTX *ctx, unsigned char
      **pukm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - nid
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - param_enc
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: EVP_PKEY_CTX_set_ec_param_enc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ec_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_ec_param_enc(EVP_PKEY_CTX *ctx, int param_enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 358
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:69,1
    - Dst: aesni_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:73,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:74,1
    - Dst: aesni_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:77,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:78,1
    - Dst: SHA256_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 88
    functionName: aesni_cbc_hmac_sha256_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_set_encrypt_key
    - data
    - aesni_set_decrypt_key
    - EVP_CIPHER_CTX_get_key_length
    - SHA256_Init
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha256_init_key(EVP_CIPHER_CTX *ctx,\n                                          const
      unsigned char *inkey,\n                                          const unsigned
      char *iv, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:107,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:116,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: sha256_update
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - sha256_block_data_order
    - SHA256_Update
    linkageType: ''
    returnType: void
    signature: void sha256_update(SHA256_CTX *c, const void *data, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:178,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:198,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:199,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:205,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:206,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:211,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:212,1
    - Dst: BSWAP8
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:231,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:245,1
    - Dst: sha256_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:254,1
    - Dst: sha256_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:272,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:273,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:282,1
    - Dst: sha256_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:290,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:292,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:299,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:305,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:307,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:312,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:314,1
    - Dst: sha256_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:322,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:324,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:327,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:329,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:331,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:333,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:335,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:337,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:339,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:341,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:344,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:346,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:348,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:350,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:352,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:354,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:356,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:358,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:360,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:363,1
    - Dst: sha256_multi_block
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:370,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:376,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:382,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:383,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:384,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:385,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:386,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:387,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:388,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:389,1
    - Dst: aesni_multi_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:413,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:415,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:416,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 419
    functionName: tls1_1_multi_block_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 1
    functionsReached:
    - memcpy
    - BSWAP4
    - BSWAP8
    - OPENSSL_cleanse
    - aesni_multi_cbc_encrypt
    - PUTU32
    - RAND_bytes
    - memset
    - sha256_multi_block
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 16
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:426,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:442,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:469,1
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:471,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:485,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:489,1
    - Dst: SHA256_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:492,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:494,1
    - Dst: SHA256_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:495,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:502,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:505,1
    - Dst: aesni_cbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:518,1
    - Dst: constant_time_ge
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:547,1
    - Dst: constant_time_select
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:555,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:564,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:571,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:580,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:611,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:630,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:641,1
    - Dst: sha256_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:645,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:657,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:658,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:659,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:660,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:661,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:662,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:663,1
    - Dst: BSWAP4
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:664,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:676,1
    - Dst: SHA256_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:678,1
    - Dst: sha1_block_data_order
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:692,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:696,1
    - Dst: SHA256_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:697,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:741,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 196
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 746
    functionName: aesni_cbc_hmac_sha256_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Final
    - aesni_cbc_sha256_enc
    - memcpy
    - constant_time_select
    - data
    - BSWAP4
    - sha256_block_data_order
    - sha1_block_data_order
    - constant_time_ge
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    - SHA256_Update
    - aesni_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha256_cipher(EVP_CIPHER_CTX *ctx,\n                                        unsigned
      char *out,\n                                        const unsigned char *in,
      size_t len)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:751,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:760,1
    - Dst: SHA256_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:766,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:767,1
    - Dst: SHA256_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:768,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:770,1
    - Dst: SHA256_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:775,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:776,1
    - Dst: SHA256_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:780,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:781,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:783,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:797,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:808,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:814,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:838,1
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:854,1
    - Dst: tls1_1_multi_block_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:881,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 91
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 890
    functionName: aesni_cbc_hmac_sha256_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Final
    - tls1_1_multi_block_encrypt
    - memcpy
    - data
    - OPENSSL_cleanse
    - SHA256_Init
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    - SHA256_Update
    linkageType: ''
    returnType: int
    signature: "int aesni_cbc_hmac_sha256_ctrl(EVP_CIPHER_CTX *ctx, int type, int
      arg,\n                                      void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 937
    functionName: EVP_aes_128_cbc_hmac_sha256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aesni_cbc_sha256_enc
      Src: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 944
    functionName: EVP_aes_256_cbc_hmac_sha256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached:
    - aesni_cbc_sha256_enc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: EVP_aes_128_cbc_hmac_sha256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 954
    functionName: EVP_aes_256_cbc_hmac_sha256
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aes_cbc_hmac_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c
    functionUses: 361
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: EVP_desx_cbc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_desx_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:65,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:65,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:66,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:66,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:67,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: desx_cbc_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached:
    - data
    - DES_set_key_unchecked
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int desx_cbc_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:76,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:76,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:78,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:78,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:79,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:85,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:85,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:87,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:87,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: desx_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_xcbc_d.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_is_encrypting
    - DES_xcbc_encrypt
    linkageType: ''
    returnType: int
    signature: "int desx_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:21,1
    - Dst: EVP_des_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:21,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:22,1
    - Dst: EVP_des_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:22,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:23,1
    - Dst: EVP_des_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:23,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:24,1
    - Dst: EVP_des_ede_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:24,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:25,1
    - Dst: EVP_des_ede3_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:25,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:26,1
    - Dst: EVP_des_ede3_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:26,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:27,1
    - Dst: EVP_des_ede3_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:27,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:29,1
    - Dst: EVP_des_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:29,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:30,1
    - Dst: EVP_des_ede_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:30,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:31,1
    - Dst: EVP_des_ede3_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:31,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:33,1
    - Dst: EVP_desx_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:33,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:34,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:35,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:37,1
    - Dst: EVP_des_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:37,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:38,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:39,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:40,1
    - Dst: EVP_des_ede_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:40,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:41,1
    - Dst: EVP_des_ede3_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:41,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:42,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:43,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:45,1
    - Dst: EVP_des_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:45,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:46,1
    - Dst: EVP_des_ede
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:46,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:47,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:48,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:49,1
    - Dst: EVP_des_ede3
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:49,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:50,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:51,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:52,1
    - Dst: EVP_des_ede3_wrap
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:52,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:53,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:57,1
    - Dst: EVP_rc4
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:57,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:58,1
    - Dst: EVP_rc4_40
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:58,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:60,1
    - Dst: EVP_rc4_hmac_md5
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:60,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:65,1
    - Dst: EVP_idea_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:65,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:66,1
    - Dst: EVP_idea_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:66,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:67,1
    - Dst: EVP_idea_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:67,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:68,1
    - Dst: EVP_idea_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:68,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:69,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:70,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:74,1
    - Dst: EVP_seed_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:74,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:75,1
    - Dst: EVP_seed_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:75,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:76,1
    - Dst: EVP_seed_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:76,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:77,1
    - Dst: EVP_seed_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:77,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:78,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:79,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:83,1
    - Dst: EVP_sm4_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:83,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:84,1
    - Dst: EVP_sm4_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:84,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:85,1
    - Dst: EVP_sm4_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:85,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:86,1
    - Dst: EVP_sm4_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:86,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:87,1
    - Dst: EVP_sm4_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:87,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:88,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:89,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:93,1
    - Dst: EVP_rc2_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:93,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:94,1
    - Dst: EVP_rc2_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:94,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:95,1
    - Dst: EVP_rc2_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:95,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:96,1
    - Dst: EVP_rc2_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:96,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:97,1
    - Dst: EVP_rc2_40_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:97,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:98,1
    - Dst: EVP_rc2_64_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:98,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:99,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:100,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:101,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:102,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:103,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:107,1
    - Dst: EVP_bf_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:107,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:108,1
    - Dst: EVP_bf_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:108,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:109,1
    - Dst: EVP_bf_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:109,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:110,1
    - Dst: EVP_bf_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:110,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:111,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:112,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:113,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:117,1
    - Dst: EVP_cast5_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:117,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:118,1
    - Dst: EVP_cast5_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:118,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:119,1
    - Dst: EVP_cast5_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:119,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:120,1
    - Dst: EVP_cast5_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:120,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:121,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:122,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:123,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:124,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:128,1
    - Dst: EVP_rc5_32_12_16_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:128,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:129,1
    - Dst: EVP_rc5_32_12_16_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:129,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:130,1
    - Dst: EVP_rc5_32_12_16_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:130,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:131,1
    - Dst: EVP_rc5_32_12_16_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:131,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:132,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:133,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:136,1
    - Dst: EVP_aes_128_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:136,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:137,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:137,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:138,1
    - Dst: EVP_aes_128_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:138,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:139,1
    - Dst: EVP_aes_128_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:139,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:140,1
    - Dst: EVP_aes_128_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:140,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:141,1
    - Dst: EVP_aes_128_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:141,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:142,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:142,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:143,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:143,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:145,1
    - Dst: EVP_aes_128_ocb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:145,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:147,1
    - Dst: EVP_aes_128_xts
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:147,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:148,1
    - Dst: EVP_aes_128_ccm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:148,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:149,1
    - Dst: EVP_aes_128_wrap
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:149,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:150,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:151,1
    - Dst: EVP_aes_128_wrap_pad
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:151,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:152,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:153,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:154,1
    - Dst: EVP_aes_192_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:154,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:155,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:155,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:156,1
    - Dst: EVP_aes_192_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:156,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:157,1
    - Dst: EVP_aes_192_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:157,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:158,1
    - Dst: EVP_aes_192_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:158,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:159,1
    - Dst: EVP_aes_192_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:159,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:160,1
    - Dst: EVP_aes_192_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:160,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:161,1
    - Dst: EVP_aes_192_gcm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:161,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:163,1
    - Dst: EVP_aes_192_ocb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:163,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:165,1
    - Dst: EVP_aes_192_ccm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:165,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:166,1
    - Dst: EVP_aes_192_wrap
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:166,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:167,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:168,1
    - Dst: EVP_aes_192_wrap_pad
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:168,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:169,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:170,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:171,1
    - Dst: EVP_aes_256_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:171,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:172,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:172,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:173,1
    - Dst: EVP_aes_256_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:173,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:174,1
    - Dst: EVP_aes_256_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:174,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:175,1
    - Dst: EVP_aes_256_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:175,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:176,1
    - Dst: EVP_aes_256_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:176,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:177,1
    - Dst: EVP_aes_256_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:177,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:178,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:178,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:180,1
    - Dst: EVP_aes_256_ocb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:180,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:182,1
    - Dst: EVP_aes_256_xts
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:182,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:183,1
    - Dst: EVP_aes_256_ccm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:183,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:184,1
    - Dst: EVP_aes_256_wrap
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:184,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:185,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:186,1
    - Dst: EVP_aes_256_wrap_pad
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:186,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:187,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:188,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:189,1
    - Dst: EVP_aes_128_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:189,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:190,1
    - Dst: EVP_aes_256_cbc_hmac_sha1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:190,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:191,1
    - Dst: EVP_aes_128_cbc_hmac_sha256
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:191,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:192,1
    - Dst: EVP_aes_256_cbc_hmac_sha256
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:192,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:194,1
    - Dst: EVP_aria_128_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:194,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:195,1
    - Dst: EVP_aria_128_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:195,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:196,1
    - Dst: EVP_aria_128_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:196,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:197,1
    - Dst: EVP_aria_128_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:197,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:198,1
    - Dst: EVP_aria_128_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:198,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:199,1
    - Dst: EVP_aria_128_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:199,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:200,1
    - Dst: EVP_aria_128_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:200,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:201,1
    - Dst: EVP_aria_128_gcm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:201,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:202,1
    - Dst: EVP_aria_128_ccm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:202,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:203,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:204,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:205,1
    - Dst: EVP_aria_192_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:205,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:206,1
    - Dst: EVP_aria_192_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:206,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:207,1
    - Dst: EVP_aria_192_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:207,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:208,1
    - Dst: EVP_aria_192_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:208,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:209,1
    - Dst: EVP_aria_192_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:209,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:210,1
    - Dst: EVP_aria_192_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:210,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:211,1
    - Dst: EVP_aria_192_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:211,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:212,1
    - Dst: EVP_aria_192_gcm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:212,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:213,1
    - Dst: EVP_aria_192_ccm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:213,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:214,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:215,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:216,1
    - Dst: EVP_aria_256_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:216,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:217,1
    - Dst: EVP_aria_256_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:217,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:218,1
    - Dst: EVP_aria_256_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:218,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:219,1
    - Dst: EVP_aria_256_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:219,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:220,1
    - Dst: EVP_aria_256_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:220,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:221,1
    - Dst: EVP_aria_256_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:221,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:222,1
    - Dst: EVP_aria_256_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:222,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:223,1
    - Dst: EVP_aria_256_gcm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:223,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:224,1
    - Dst: EVP_aria_256_ccm
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:224,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:225,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:226,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:230,1
    - Dst: EVP_camellia_128_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:230,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:231,1
    - Dst: EVP_camellia_128_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:231,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:232,1
    - Dst: EVP_camellia_128_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:232,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:233,1
    - Dst: EVP_camellia_128_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:233,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:234,1
    - Dst: EVP_camellia_128_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:234,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:235,1
    - Dst: EVP_camellia_128_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:235,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:236,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:237,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:238,1
    - Dst: EVP_camellia_192_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:238,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:239,1
    - Dst: EVP_camellia_192_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:239,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:240,1
    - Dst: EVP_camellia_192_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:240,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:241,1
    - Dst: EVP_camellia_192_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:241,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:242,1
    - Dst: EVP_camellia_192_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:242,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:243,1
    - Dst: EVP_camellia_192_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:243,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:244,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:245,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:246,1
    - Dst: EVP_camellia_256_ecb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:246,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:247,1
    - Dst: EVP_camellia_256_cbc
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:247,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:248,1
    - Dst: EVP_camellia_256_cfb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:248,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:249,1
    - Dst: EVP_camellia_256_cfb1
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:249,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:250,1
    - Dst: EVP_camellia_256_cfb8
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:250,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:251,1
    - Dst: EVP_camellia_256_ofb
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:251,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:252,1
    - Dst: EVP_add_cipher_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:253,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:254,1
    - Dst: EVP_camellia_128_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:254,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:255,1
    - Dst: EVP_camellia_192_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:255,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:256,1
    - Dst: EVP_camellia_256_ctr
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:256,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:260,1
    - Dst: EVP_chacha20
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:260,1
    - Dst: EVP_add_cipher
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:262,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-3.0.15/crypto/evp/c_allc.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 197
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 265
    functionName: openssl_add_all_ciphers_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/c_allc.c
    functionUses: 1
    functionsReached:
    - EVP_camellia_128_cfb1
    - EVP_des_ecb
    - EVP_des_ede3_wrap
    - EVP_chacha20
    - EVP_rc2_ofb
    - EVP_idea_ofb
    - EVP_camellia_192_ofb
    - EVP_aes_128_cfb1
    - EVP_aes_256_ccm
    - EVP_des_cfb
    - EVP_aria_128_ctr
    - EVP_aria_192_cfb8
    - EVP_camellia_192_ctr
    - EVP_aria_256_ctr
    - EVP_aria_128_ofb
    - EVP_aes_192_ccm
    - EVP_aria_256_cfb
    - EVP_desx_cbc
    - EVP_aria_192_ccm
    - EVP_camellia_192_cfb8
    - EVP_aes_192_wrap_pad
    - EVP_aes_128_cbc
    - EVP_aes_128_cbc_hmac_sha256
    - EVP_camellia_256_cfb1
    - EVP_aes_192_cfb
    - EVP_aes_256_cbc
    - EVP_aes_256_cbc_hmac_sha1
    - EVP_rc5_32_12_16_cfb
    - EVP_aes_128_cfb8
    - EVP_add_cipher
    - EVP_camellia_192_cbc
    - EVP_aes_192_cfb8
    - EVP_camellia_256_cbc
    - EVP_aes_256_xts
    - EVP_cast5_cfb
    - EVP_aria_256_ofb
    - EVP_aria_192_cfb
    - EVP_aria_192_ofb
    - EVP_sm4_ofb
    - EVP_cast5_ecb
    - EVP_aria_128_cfb1
    - EVP_camellia_256_cfb8
    - EVP_idea_ecb
    - EVP_bf_ofb
    - EVP_camellia_128_cfb8
    - EVP_camellia_256_ofb
    - EVP_rc2_cbc
    - EVP_sm4_ecb
    - EVP_aria_128_ccm
    - EVP_des_ede3_cfb1
    - EVP_rc2_ecb
    - EVP_sm4_ctr
    - EVP_aria_256_cfb1
    - EVP_camellia_192_cfb
    - EVP_camellia_128_ecb
    - EVP_aes_256_gcm
    - EVP_add_cipher_alias
    - EVP_rc4
    - EVP_aes_128_ocb
    - EVP_des_ede_cfb
    - EVP_aes_192_gcm
    - EVP_aria_256_ecb
    - EVP_aes_256_wrap
    - EVP_aes_128_cfb
    - EVP_aes_128_ofb
    - EVP_aes_128_ecb
    - EVP_aes_256_ocb
    - EVP_aes_128_cbc_hmac_sha1
    - EVP_cast5_ofb
    - EVP_sm4_cfb
    - EVP_aes_128_wrap_pad
    - EVP_des_ede_ofb
    - EVP_aes_256_ctr
    - EVP_aes_128_ccm
    - EVP_rc5_32_12_16_ecb
    - EVP_camellia_256_cfb
    - EVP_rc2_cfb
    - EVP_aria_256_cbc
    - EVP_aria_192_ctr
    - EVP_aes_256_cfb
    - EVP_aria_128_cfb
    - EVP_aes_256_cfb8
    - EVP_aria_192_ecb
    - EVP_seed_ecb
    - EVP_seed_cbc
    - EVP_camellia_192_ecb
    - EVP_aes_192_ctr
    - EVP_chacha20_poly1305
    - EVP_aes_256_wrap_pad
    - EVP_des_ede3_ofb
    - EVP_aria_192_cbc
    - EVP_camellia_128_ctr
    - EVP_bf_cfb
    - EVP_camellia_128_cbc
    - EVP_aria_192_gcm
    - EVP_aes_128_wrap
    - EVP_rc2_40_cbc
    - EVP_sm4_cbc
    - EVP_seed_ofb
    - EVP_aes_192_ecb
    - EVP_bf_ecb
    - EVP_des_cfb8
    - EVP_aes_128_ctr
    - EVP_aria_128_cbc
    - EVP_aes_192_ocb
    - EVP_aria_256_cfb8
    - EVP_des_ede3
    - EVP_rc4_hmac_md5
    - EVP_camellia_128_ofb
    - EVP_idea_cfb
    - EVP_aes_256_cbc_hmac_sha256
    - EVP_aria_256_gcm
    - EVP_aria_128_ecb
    - EVP_aes_192_wrap
    - EVP_aes_192_cfb1
    - EVP_camellia_256_ecb
    - EVP_aes_256_ecb
    - EVP_rc4_40
    - EVP_aria_128_gcm
    - EVP_aes_192_ofb
    - EVP_aria_192_cfb1
    - EVP_camellia_256_ctr
    - EVP_bf_cbc
    - EVP_aes_192_cbc
    - EVP_des_cfb1
    - EVP_cast5_cbc
    - EVP_rc2_64_cbc
    - EVP_aria_128_cfb8
    - EVP_aes_128_gcm
    - EVP_des_ede3_cbc
    - EVP_des_ede3_cfb
    - EVP_idea_cbc
    - EVP_aes_128_xts
    - EVP_des_ede
    - EVP_camellia_192_cfb1
    - EVP_aria_256_ccm
    - EVP_des_ede3_cfb8
    - EVP_camellia_128_cfb
    - EVP_aes_256_ofb
    - EVP_aes_256_cfb1
    - EVP_des_ofb
    - EVP_rc5_32_12_16_ofb
    - EVP_des_cbc
    - EVP_rc5_32_12_16_cbc
    - EVP_seed_cfb
    - EVP_des_ede_cbc
    linkageType: ''
    returnType: void
    signature: void openssl_add_all_ciphers_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: EVP_md2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_md2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4.c
    functionUses: 363
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: EVP_rc4
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: EVP_rc4_40
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc4_40(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4.c:82,1
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4.c:84,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: rc4_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_get_key_length
    - RC4_set_key
    linkageType: ''
    returnType: int
    signature: "int rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4.c:91,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: rc4_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4.c
    functionUses: 0
    functionsReached:
    - data
    - RC4
    linkageType: ''
    returnType: int
    signature: "int rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                      const
      unsigned char *in, size_t inl)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:297,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:298,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:301,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:303,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:315,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:316,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:319,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:320,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:321,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:328,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:329,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:332,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:334,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 341
    functionName: default_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int default_check(enum state state,\n                         const
      struct translation_st *translation,\n                         const struct translation_ctx_st
      *ctx)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:390,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:396,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:413,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:419,1
    - Dst: EVP_PKEY_CTX_IS_DERIVE_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:421,1
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:423,1
    - Dst: EVP_PKEY_CTX_IS_KEM_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:425,1
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:431,1
    - Dst: EVP_PKEY_CTX_IS_FROMDATA_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:433,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:435,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:446,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:460,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:462,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:463,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:466,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:468,1
    - Dst: OSSL_PARAM_construct_BN
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:473,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:481,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:489,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:495,1
    - Dst: OSSL_PARAM_construct_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:500,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:505,1
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:510,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:550,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:564,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:565,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:567,1
    - Dst: EVP_PKEY_CTX_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:574,1
    - Dst: OSSL_PARAM_allocate_from_text
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:575,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:577,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:580,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:621,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:625,1
    - Dst: OSSL_PARAM_get_uint
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:629,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:635,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:638,1
    - Dst: OSSL_PARAM_get_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:642,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:645,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:662,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:663,1
    - Dst: OSSL_PARAM_set_int
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:671,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:675,1
    - Dst: OSSL_PARAM_set_uint
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:678,1
    - Dst: OSSL_PARAM_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:683,1
    - Dst: OSSL_PARAM_set_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:685,1
    - Dst: OSSL_PARAM_set_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:688,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:691,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 167
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 707
    functionName: default_fixup_args
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_DERIVE_OP
    - OSSL_PARAM_get_octet_ptr
    - EVP_PKEY_CTX_IS_GEN_OP
    - EVP_PKEY_CTX_IS_FROMDATA_OP
    - OSSL_PARAM_construct_int
    - strlen
    - BN_num_bytes
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_get_int
    - OSSL_PARAM_set_int
    - ossl_assert
    - OSSL_PARAM_construct_uint
    - EVP_PKEY_CTX_settable_params
    - OSSL_PARAM_allocate_from_text
    - OSSL_PARAM_set_uint
    - BN_bn2nativepad
    - OSSL_PARAM_set_BN
    - ERR_raise_data
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - OSSL_PARAM_get_uint
    - OSSL_PARAM_construct_BN
    - OSSL_PARAM_construct_octet_ptr
    - OSSL_PARAM_get_utf8_string
    - OPENSSL_strlcat
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - OSSL_PARAM_set_octet_string
    - OPENSSL_free
    - EVP_PKEY_CTX_IS_KEM_OP
    - default_check
    - OSSL_PARAM_set_octet_ptr
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - OSSL_PARAM_get_octet_string
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_ptr
    - strcpy
    - OSSL_PARAM_set_utf8_string
    linkageType: ''
    returnType: int
    signature: "int default_fixup_args(enum state state,\n                              const
      struct translation_st *translation,\n                              struct translation_ctx_st
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 718
    functionName: cleanup_translation_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int cleanup_translation_ctx(enum state state,\n                        const
      struct translation_st *translation,\n                        struct translation_ctx_st
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: get_cipher_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get0_name
    linkageType: ''
    returnType: char
    signature: char *get_cipher_name(void *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: get_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get0_name
    linkageType: ''
    returnType: char
    signature: char *get_md_name(void *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_get_cipherbyname_ex
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 737
    functionName: get_cipher_by_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - evp_get_cipherbyname_ex
    linkageType: ''
    returnType: void
    signature: void *get_cipher_by_name(OSSL_LIB_CTX *libctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_get_digestbyname_ex
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: get_md_by_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - evp_get_digestbyname_ex
    linkageType: ''
    returnType: void
    signature: void *get_md_by_name(OSSL_LIB_CTX *libctx, const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:753,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:774,1
    - Dst: get_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:775,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:776,1
    - Dst: get_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:778,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:779,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:782,1
    - Dst: get_algo_by_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:791,1
    - Dst: get_algo_by_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:794,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 5
    argNames:
    - state
    - translation
    - ctx
    - (*get_name)(void *algo)
    - "(*get_algo_by_name)(OSSL_LIB_CTX *libctx,\n                                                         const
      char *name)"
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 744
    functionDepth: 6
    functionLinenumber: 744
    functionLinenumberEnd: 799
    functionName: fix_cipher_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - get_name
    - get_algo_by_name
    - default_fixup_args
    - OBJ_nid2sn
    - strlen
    - default_check
    linkageType: ''
    returnType: int
    signature: "int fix_cipher_md(enum state state,\n                         const
      struct translation_st *translation,\n                         struct translation_ctx_st
      *ctx,\n                         const char *(*get_name)(void *algo),\n                         const
      void *(*get_algo_by_name)(OSSL_LIB_CTX *libctx,\n                                                         const
      char *name))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_cipher_md
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 801
    functionDepth: 7
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: fix_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - fix_cipher_md
    linkageType: ''
    returnType: int
    signature: "int fix_cipher(enum state state,\n                      const struct
      translation_st *translation,\n                      struct translation_ctx_st
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_cipher_md
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 809
    functionDepth: 7
    functionLinenumber: 809
    functionLinenumberEnd: 815
    functionName: fix_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - fix_cipher_md
    linkageType: ''
    returnType: int
    signature: "int fix_md(enum state state,\n                  const struct translation_st
      *translation,\n                  struct translation_ctx_st *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 817
    functionDepth: 6
    functionLinenumber: 817
    functionLinenumberEnd: 832
    functionName: fix_distid_len
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_fixup_args
    linkageType: ''
    returnType: int
    signature: "int fix_distid_len(enum state state,\n                          const
      struct translation_st *translation,\n                          struct translation_ctx_st
      *ctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:853,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:861,1
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:882,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:897,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:900,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:909,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 4
    argNames:
    - state
    - translation
    - ctx
    - kdf_type_map
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - struct kdf_type_map_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 839
    functionDepth: 6
    functionLinenumber: 839
    functionLinenumberEnd: 920
    functionName: fix_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_fixup_args
    - strlen
    - default_check
    - ossl_assert
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: "int fix_kdf_type(enum state state,\n                        const
      struct translation_st *translation,\n                        struct translation_ctx_st
      *ctx,\n                        const struct kdf_type_map_st *kdf_type_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_kdf_type
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 923
    functionDepth: 7
    functionLinenumber: 923
    functionLinenumberEnd: 934
    functionName: fix_dh_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - fix_kdf_type
    linkageType: ''
    returnType: int
    signature: "int fix_dh_kdf_type(enum state state,\n                           const
      struct translation_st *translation,\n                           struct translation_ctx_st
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_kdf_type
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 937
    functionDepth: 7
    functionLinenumber: 937
    functionLinenumberEnd: 948
    functionName: fix_ec_kdf_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - fix_kdf_type
    linkageType: ''
    returnType: int
    signature: "int fix_ec_kdf_type(enum state state,\n                           const
      struct translation_st *translation,\n                           struct translation_ctx_st
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:957,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:970,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:975,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:987,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 951
    functionDepth: 6
    functionLinenumber: 951
    functionLinenumberEnd: 991
    functionName: fix_oid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_check
    - default_fixup_args
    - OBJ_txt2obj
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: "int fix_oid(enum state state,\n                   const struct translation_st
      *translation,\n                   struct translation_ctx_st *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1000,1
    - Dst: ossl_ffc_named_group_get_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1008,1
    - Dst: ossl_ffc_uid_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1009,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1010,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 994
    functionDepth: 6
    functionLinenumber: 994
    functionLinenumberEnd: 1017
    functionName: fix_dh_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - ossl_ffc_uid_to_dh_named_group
    - default_fixup_args
    - ossl_ffc_named_group_get_name
    - default_check
    linkageType: ''
    returnType: int
    signature: "int fix_dh_nid(enum state state,\n                      const struct
      translation_st *translation,\n                      struct translation_ctx_st
      *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1026,1
    - Dst: ossl_ffc_named_group_get_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1035,1
    - Dst: ossl_ffc_uid_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1036,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1037,1
    - Dst: ossl_ffc_named_group_get_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1047,1
    - Dst: ossl_ffc_uid_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1048,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1048,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1049,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1060,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1020
    functionDepth: 6
    functionLinenumber: 1020
    functionLinenumberEnd: 1061
    functionName: fix_dh_nid5114
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - atoi
    - ERR_raise
    - ossl_ffc_uid_to_dh_named_group
    - default_fixup_args
    - ossl_ffc_named_group_get_name
    - default_check
    linkageType: ''
    returnType: int
    signature: "int fix_dh_nid5114(enum state state,\n                          const
      struct translation_st *translation,\n                          struct translation_ctx_st
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1070,1
    - Dst: ossl_dh_gen_type_id2name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1078,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1078,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1080,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1083,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1086,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1064
    functionDepth: 6
    functionLinenumber: 1064
    functionLinenumberEnd: 1087
    functionName: fix_dh_paramgen_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - ossl_dh_gen_type_id2name
    - atoi
    - ERR_raise
    - default_fixup_args
    - strlen
    - default_check
    linkageType: ''
    returnType: int
    signature: "int fix_dh_paramgen_type(enum state state,\n                                const
      struct translation_st *translation,\n                                struct
      translation_ctx_st *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1096,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1118,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1122,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1090
    functionDepth: 6
    functionLinenumber: 1090
    functionLinenumberEnd: 1135
    functionName: fix_ec_param_enc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_check
    - default_fixup_args
    - strcmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int fix_ec_param_enc(enum state state,\n                            const
      struct translation_st *translation,\n                            struct translation_ctx_st
      *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1145,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1153,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1169,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1138
    functionDepth: 6
    functionLinenumber: 1138
    functionLinenumberEnd: 1178
    functionName: fix_ec_paramgen_curve_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_check
    - OBJ_nid2sn
    - default_fixup_args
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: "int fix_ec_paramgen_curve_nid(enum state state,\n                                     const
      struct translation_st *translation,\n                                     struct
      translation_ctx_st *ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1199,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1211,1
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1215,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1225,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1181
    functionDepth: 6
    functionLinenumber: 1181
    functionLinenumberEnd: 1241
    functionName: fix_ecdh_cofactor
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_check
    - default_fixup_args
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int fix_ecdh_cofactor(enum state state,\n                             const
      struct translation_st *translation,\n                             struct translation_ctx_st
      *ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1260,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1296,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1310,1
    - Dst: OSSL_PARAM_get_uint
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1312,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1317,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1321,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1322,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1332,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1336,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1339,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1346,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1347,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1351,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1352,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1244
    functionDepth: 6
    functionLinenumber: 1244
    functionLinenumberEnd: 1366
    functionName: fix_rsa_padding_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    - ERR_raise
    - default_fixup_args
    - OSSL_PARAM_construct_int
    - strlen
    - strcmp
    - default_check
    - OSSL_PARAM_get_int
    - OSSL_PARAM_get_uint
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int fix_rsa_padding_mode(enum state state,\n                                const
      struct translation_st *translation,\n                                struct
      translation_ctx_st *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1380,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1403,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1407,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1408,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1411,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1415,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1418,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1426,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1427,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1431,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1431,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1369
    functionDepth: 6
    functionLinenumber: 1369
    functionLinenumberEnd: 1446
    functionName: fix_rsa_pss_saltlen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - atoi
    - default_fixup_args
    - strlen
    - strcmp
    - default_check
    - strncpy
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int fix_rsa_pss_saltlen(enum state state,\n                               const
      struct translation_st *translation,\n                               struct translation_ctx_st
      *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: default_check
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1460,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1467,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1471,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1474,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1477,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1484,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1485,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1488,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1449
    functionDepth: 6
    functionLinenumber: 1449
    functionLinenumberEnd: 1498
    functionName: fix_hkdf_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_fixup_args
    - strlen
    - strcmp
    - default_check
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int fix_hkdf_mode(enum state state,\n                         const
      struct translation_st *translation,\n                         struct translation_ctx_st
      *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1517,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1521,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1522,1
    - Dst: ossl_ffc_uid_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1526,1
    - Dst: ossl_ffc_named_group_get_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1528,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1537,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1537,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1541,1
    - Dst: OSSL_EC_curve_nid2name
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1543,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1548,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1559,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1510
    functionDepth: 6
    functionLinenumber: 1510
    functionLinenumberEnd: 1561
    functionName: get_payload_group_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve_name
    - OSSL_EC_curve_nid2name
    - ossl_ffc_uid_to_dh_named_group
    - EVP_PKEY_get_base_id
    - ERR_raise
    - ossl_ffc_named_group_get_name
    - default_fixup_args
    - strlen
    - DH_get_nid
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: "int get_payload_group_name(enum state state,\n                                  const
      struct translation_st *translation,\n                                  struct
      translation_ctx_st *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1573,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1577,1
    - Dst: DH_get0_priv_key
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1579,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1586,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1588,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1593,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1563
    functionDepth: 6
    functionLinenumber: 1563
    functionLinenumberEnd: 1598
    functionName: get_payload_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_private_key
    - ERR_raise
    - EVP_PKEY_get_base_id
    - DH_get0_priv_key
    - default_fixup_args
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int get_payload_private_key(enum state state,\n                                   const
      struct translation_st *translation,\n                                   struct
      translation_ctx_st *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1609,1
    - Dst: ossl_dh_key2buf
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1615,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1615,1
    - Dst: DH_get0_pub_key
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1619,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1619,1
    - Dst: DSA_get0_pub_key
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1629,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1629,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1637,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1638,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1638,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1639,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1640,1
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1644,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1648,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1654,1
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1658,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1600
    functionDepth: 6
    functionLinenumber: 1600
    functionLinenumberEnd: 1661
    functionName: get_payload_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - EC_KEY_get0_public_key
    - EC_POINT_point2buf
    - ERR_raise
    - EVP_PKEY_get_base_id
    - default_fixup_args
    - ossl_ec_key_get_libctx
    - BN_CTX_new_ex
    - OPENSSL_free
    - DH_get0_pub_key
    - EVP_PKEY_get0_DH
    - ossl_dh_key2buf
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    - BN_CTX_free
    - DSA_get0_pub_key
    linkageType: ''
    returnType: int
    signature: "int get_payload_public_key(enum state state,\n                                  const
      struct translation_st *translation,\n                                  struct
      translation_ctx_st *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - state
    - translation
    - ctx
    - bn
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1663
    functionDepth: 6
    functionLinenumber: 1663
    functionLinenumberEnd: 1674
    functionName: get_payload_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_fixup_args
    linkageType: ''
    returnType: int
    signature: "int get_payload_bn(enum state state,\n                          const
      struct translation_st *translation,\n                          struct translation_ctx_st
      *ctx, const BIGNUM *bn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1683,1
    - Dst: DH_get0_p
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1686,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1686,1
    - Dst: DSA_get0_p
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1691,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1691,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1695,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1676
    functionDepth: 7
    functionLinenumber: 1676
    functionLinenumberEnd: 1699
    functionName: get_dh_dsa_payload_p
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - ERR_raise
    - EVP_PKEY_get_base_id
    - get_payload_bn
    - EVP_PKEY_get0_DH
    - DSA_get0_p
    - DH_get0_p
    linkageType: ''
    returnType: int
    signature: "int get_dh_dsa_payload_p(enum state state,\n                                const
      struct translation_st *translation,\n                                struct
      translation_ctx_st *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1707,1
    - Dst: DH_get0_q
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1710,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1710,1
    - Dst: DSA_get0_q
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1715,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1715,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1701
    functionDepth: 7
    functionLinenumber: 1701
    functionLinenumberEnd: 1721
    functionName: get_dh_dsa_payload_q
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - EVP_PKEY_get_base_id
    - get_payload_bn
    - EVP_PKEY_get0_DH
    - DH_get0_q
    - DSA_get0_q
    linkageType: ''
    returnType: int
    signature: "int get_dh_dsa_payload_q(enum state state,\n                                const
      struct translation_st *translation,\n                                struct
      translation_ctx_st *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1729,1
    - Dst: DH_get0_g
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1732,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1732,1
    - Dst: DSA_get0_g
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1737,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1737,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1723
    functionDepth: 7
    functionLinenumber: 1723
    functionLinenumberEnd: 1743
    functionName: get_dh_dsa_payload_g
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - EVP_PKEY_get_base_id
    - get_payload_bn
    - EVP_PKEY_get0_DH
    - DSA_get0_g
    - DH_get0_g
    linkageType: ''
    returnType: int
    signature: "int get_dh_dsa_payload_g(enum state state,\n                                const
      struct translation_st *translation,\n                                struct
      translation_ctx_st *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: default_fixup_args
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - state
    - translation
    - ctx
    - val
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1745
    functionDepth: 6
    functionLinenumber: 1745
    functionLinenumberEnd: 1756
    functionName: get_payload_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - default_fixup_args
    linkageType: ''
    returnType: int
    signature: "int get_payload_int(enum state state,\n                           const
      struct translation_st *translation,\n                           struct translation_ctx_st
      *ctx,\n                           const int val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1765,1
    - Dst: EC_KEY_decoded_from_explicit_params
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1768,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1768,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1770,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1776,1
    - Dst: get_payload_int
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1758
    functionDepth: 7
    functionLinenumber: 1758
    functionLinenumberEnd: 1781
    functionName: get_ec_decoded_from_explicit_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - get_payload_int
    - ERR_raise
    - EVP_PKEY_base_id
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_decoded_from_explicit_params
    linkageType: ''
    returnType: int
    signature: "int get_ec_decoded_from_explicit_params(enum state state,\n                                               const
      struct translation_st *translation,\n                                               struct
      translation_ctx_st *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1789,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1790,1
    - Dst: RSA_get0_n
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1792,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1792,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1783
    functionDepth: 7
    functionLinenumber: 1783
    functionLinenumberEnd: 1795
    functionName: get_rsa_payload_n
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - RSA_get0_n
    - get_payload_bn
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_get_base_id
    linkageType: ''
    returnType: int
    signature: "int get_rsa_payload_n(enum state state,\n                             const
      struct translation_st *translation,\n                             struct translation_ctx_st
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1803,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1804,1
    - Dst: RSA_get0_e
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1806,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1806,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1797
    functionDepth: 7
    functionLinenumber: 1797
    functionLinenumberEnd: 1809
    functionName: get_rsa_payload_e
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - get_payload_bn
    - RSA_get0_e
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_get_base_id
    linkageType: ''
    returnType: int
    signature: "int get_rsa_payload_e(enum state state,\n                             const
      struct translation_st *translation,\n                             struct translation_ctx_st
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1817,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1818,1
    - Dst: RSA_get0_d
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1820,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1820,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1811
    functionDepth: 7
    functionLinenumber: 1811
    functionLinenumberEnd: 1823
    functionName: get_rsa_payload_d
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - RSA_get0_d
    - get_payload_bn
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_get_base_id
    linkageType: ''
    returnType: int
    signature: "int get_rsa_payload_d(enum state state,\n                             const
      struct translation_st *translation,\n                             struct translation_ctx_st
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1830,1
    - Dst: RSA_get0_p
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1835,1
    - Dst: RSA_get0_q
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1838,1
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1842,1
    - Dst: RSA_get0_multi_prime_factors
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1846,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - state
    - translation
    - ctx
    - factornum
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1825
    functionDepth: 7
    functionLinenumber: 1825
    functionLinenumberEnd: 1853
    functionName: get_rsa_payload_factor
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - RSA_get0_q
    - RSA_get0_p
    - RSA_get_multi_prime_extra_count
    - get_payload_bn
    - EVP_PKEY_get0_RSA
    - RSA_get0_multi_prime_factors
    linkageType: ''
    returnType: int
    signature: "int get_rsa_payload_factor(enum state state,\n                                  const
      struct translation_st *translation,\n                                  struct
      translation_ctx_st *ctx,\n                                  size_t factornum)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1860,1
    - Dst: RSA_get0_dmp1
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1865,1
    - Dst: RSA_get0_dmq1
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1868,1
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1872,1
    - Dst: RSA_get0_multi_prime_crt_params
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1876,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1882,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - state
    - translation
    - ctx
    - exponentnum
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1855
    functionDepth: 7
    functionLinenumber: 1855
    functionLinenumberEnd: 1883
    functionName: get_rsa_payload_exponent
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - RSA_get_multi_prime_extra_count
    - RSA_get0_dmq1
    - RSA_get0_multi_prime_crt_params
    - get_payload_bn
    - EVP_PKEY_get0_RSA
    - RSA_get0_dmp1
    linkageType: ''
    returnType: int
    signature: "int get_rsa_payload_exponent(enum state state,\n                                    const
      struct translation_st *translation,\n                                    struct
      translation_ctx_st *ctx,\n                                    size_t exponentnum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1890,1
    - Dst: RSA_get0_iqmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1895,1
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1899,1
    - Dst: RSA_get0_multi_prime_crt_params
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1903,1
    - Dst: get_payload_bn
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1909,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - state
    - translation
    - ctx
    - coefficientnum
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1885
    functionDepth: 7
    functionLinenumber: 1885
    functionLinenumberEnd: 1910
    functionName: get_rsa_payload_coefficient
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - RSA_get_multi_prime_extra_count
    - RSA_get0_multi_prime_crt_params
    - get_payload_bn
    - EVP_PKEY_get0_RSA
    - RSA_get0_iqmp
    linkageType: ''
    returnType: int
    signature: "int get_rsa_payload_coefficient(enum state state,\n                                       const
      struct translation_st *translation,\n                                       struct
      translation_ctx_st *ctx,\n                                       size_t coefficientnum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1923
    functionName: IMPL_GET_RSA_PAYLOAD_FACTOR
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_GET_RSA_PAYLOAD_FACTOR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1936
    functionName: IMPL_GET_RSA_PAYLOAD_EXPONENT
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_GET_RSA_PAYLOAD_EXPONENT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1949
    functionName: IMPL_GET_RSA_PAYLOAD_COEFFICIENT
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_GET_RSA_PAYLOAD_COEFFICIENT(n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1988,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1993,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1994,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:1995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - state
    - translation
    - ctx
    argTypes:
    - enum state
    - struct translation_st*
    - struct translation_ctx_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 2004
    functionName: fix_group_ecx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    - OPENSSL_strcasecmp
    - OSSL_PARAM_get_utf8_string_ptr
    linkageType: ''
    returnType: int
    signature: "int fix_group_ecx(enum state state,\n                         const
      struct translation_st *translation,\n                         struct translation_ctx_st
      *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2531,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2575,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2578,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2607,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 32
    argCount: 3
    argNames:
    - tmpl
    - translations
    - translations_num
    argTypes:
    - struct translation_st*
    - struct translation_st*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2515
    functionDepth: 3
    functionLinenumber: 2515
    functionLinenumberEnd: 2618
    functionName: lookup_translation
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: struct translation_st
    signature: "struct translation_st *\nlookup_translation(struct translation_st
      *tmpl,\n                   const struct translation_st *translations,\n                   size_t
      translations_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_translation
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2623,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - struct translation_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2620
    functionDepth: 4
    functionLinenumber: 2620
    functionLinenumberEnd: 2625
    functionName: lookup_evp_pkey_ctx_translation
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - lookup_translation
    - OSSL_NELEM
    linkageType: ''
    returnType: struct translation_st
    signature: 'struct translation_st *

      lookup_evp_pkey_ctx_translation(struct translation_st *tmpl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_translation
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2630,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - struct translation_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2627
    functionDepth: 4
    functionLinenumber: 2627
    functionLinenumberEnd: 2632
    functionName: lookup_evp_pkey_translation
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - lookup_translation
    - OSSL_NELEM
    linkageType: ''
    returnType: struct translation_st
    signature: 'struct translation_st *

      lookup_evp_pkey_translation(struct translation_st *tmpl)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lookup_evp_pkey_ctx_translation
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2651,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2654,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2672,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2680,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2683,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2694,1
    - Dst: cleanup_translation_ctx
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2698,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 6
    argNames:
    - pctx
    - keytype
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2635
    functionDepth: 5
    functionLinenumber: 2635
    functionLinenumberEnd: 2701
    functionName: evp_pkey_ctx_ctrl_to_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 1
    functionsReached:
    - lookup_evp_pkey_ctx_translation
    - ERR_raise
    - evp_pkey_ctx_get_params_strict
    - cleanup_translation_ctx
    - evp_pkey_ctx_set_params_strict
    - fixup
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_ctrl_to_param(EVP_PKEY_CTX *pctx,\n                               int
      keytype, int optype,\n                               int cmd, int p1, void *p2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lookup_evp_pkey_ctx_translation
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2721,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2733,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2738,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2752,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2758,1
    - Dst: cleanup_translation_ctx
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2760,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - pctx
    - name
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2704
    functionDepth: 5
    functionLinenumber: 2704
    functionLinenumberEnd: 2763
    functionName: evp_pkey_ctx_ctrl_str_to_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 1
    functionsReached:
    - lookup_evp_pkey_ctx_translation
    - cleanup_translation_ctx
    - strlen
    - evp_pkey_ctx_set_params_strict
    - fixup
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_ctrl_str_to_param(EVP_PKEY_CTX *pctx,\n                                   const
      char *name, const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lookup_evp_pkey_ctx_translation
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2784,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2794,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2797,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2806,1
    - Dst: cleanup_translation_ctx
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2810,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - pctx
    - action_type
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - enum action
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2766
    functionDepth: 5
    functionLinenumber: 2766
    functionLinenumberEnd: 2816
    functionName: evp_pkey_ctx_setget_params_to_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - lookup_evp_pkey_ctx_translation
    - cleanup_translation_ctx
    - fixup
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_ctx_setget_params_to_ctrl(EVP_PKEY_CTX *pctx,\n                                              enum
      action action_type,\n                                              OSSL_PARAM
      *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_setget_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2818
    functionDepth: 6
    functionLinenumber: 2818
    functionLinenumberEnd: 2821
    functionName: evp_pkey_ctx_set_params_to_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 1
    functionsReached:
    - evp_pkey_ctx_setget_params_to_ctrl
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_set_params_to_ctrl(EVP_PKEY_CTX *ctx, const OSSL_PARAM
      *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_setget_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2823
    functionDepth: 6
    functionLinenumber: 2823
    functionLinenumberEnd: 2826
    functionName: evp_pkey_ctx_get_params_to_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 1
    functionsReached:
    - evp_pkey_ctx_setget_params_to_ctrl
    linkageType: ''
    returnType: int
    signature: int evp_pkey_ctx_get_params_to_ctrl(EVP_PKEY_CTX *ctx, OSSL_PARAM *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lookup_evp_pkey_translation
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2843,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2858,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2859,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2860,1
    - Dst: fixup
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2864,1
    - Dst: cleanup_translation_ctx
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - pkey
    - action_type
    - params
    argTypes:
    - EVP_PKEY*
    - enum action
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2829
    functionDepth: 5
    functionLinenumber: 2829
    functionLinenumberEnd: 2869
    functionName: evp_pkey_setget_params_to_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 0
    functionsReached:
    - cleanup_translation_ctx
    - fixup
    - ossl_assert
    - lookup_evp_pkey_translation
    linkageType: ''
    returnType: int
    signature: "int evp_pkey_setget_params_to_ctrl(const EVP_PKEY *pkey,\n                                          enum
      action action_type,\n                                          OSSL_PARAM *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_setget_params_to_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c:2873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - params
    argTypes:
    - EVP_PKEY*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2871
    functionDepth: 6
    functionLinenumber: 2871
    functionLinenumberEnd: 2874
    functionName: evp_pkey_get_params_to_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/ctrl_params_translate.c
    functionUses: 1
    functionsReached:
    - evp_pkey_setget_params_to_ctrl
    linkageType: ''
    returnType: int
    signature: int evp_pkey_get_params_to_ctrl(const EVP_PKEY *pkey, OSSL_PARAM *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:20,1
    - Dst: EVP_md4
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:20,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:23,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:23,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:24,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:25,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:25,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:27,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:27,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:28,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:29,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:31,1
    - Dst: EVP_mdc2
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:31,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:34,1
    - Dst: EVP_ripemd160
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:34,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:35,1
    - Dst: EVP_add_digest_alias
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:36,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:38,1
    - Dst: EVP_sha224
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:38,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:39,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:39,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:40,1
    - Dst: EVP_sha384
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:40,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:41,1
    - Dst: EVP_sha512
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:41,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:42,1
    - Dst: EVP_sha512_224
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:42,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:43,1
    - Dst: EVP_sha512_256
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:43,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:45,1
    - Dst: EVP_whirlpool
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:45,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:48,1
    - Dst: EVP_sm3
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:48,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:51,1
    - Dst: EVP_blake2b512
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:51,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:52,1
    - Dst: EVP_blake2s256
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:52,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:54,1
    - Dst: EVP_sha3_224
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:54,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:55,1
    - Dst: EVP_sha3_256
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:55,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:56,1
    - Dst: EVP_sha3_384
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:56,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:57,1
    - Dst: EVP_sha3_512
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:57,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:58,1
    - Dst: EVP_shake128
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:58,1
    - Dst: EVP_add_digest
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:59,1
    - Dst: EVP_shake256
      Src: /src/openssl-3.0.15/crypto/evp/c_alld.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 60
    functionName: openssl_add_all_digests_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/c_alld.c
    functionUses: 1
    functionsReached:
    - EVP_sha512_224
    - EVP_md5_sha1
    - EVP_ripemd160
    - EVP_sha384
    - EVP_add_digest
    - EVP_sha224
    - EVP_sha3_256
    - EVP_shake128
    - EVP_md5
    - EVP_sm3
    - EVP_sha3_224
    - EVP_add_digest_alias
    - EVP_sha512_256
    - EVP_whirlpool
    - EVP_sha512
    - EVP_sha3_384
    - EVP_mdc2
    - EVP_shake256
    - EVP_sha256
    - EVP_sha3_512
    - EVP_blake2b512
    - EVP_blake2s256
    - EVP_sha1
    - EVP_md4
    linkageType: ''
    returnType: void
    signature: void openssl_add_all_digests_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vmac
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: evp_mac_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int evp_mac_up_ref(void *vmac)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:39,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:40,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - vmac
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: evp_mac_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void evp_mac_free(void *vmac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:49,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:50,1
    - Dst: evp_mac_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: evp_mac_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - evp_mac_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *evp_mac_new(void)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: evp_mac_new
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:69,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:73,1
    - Dst: evp_mac_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:74,1
    - Dst: OSSL_FUNC_mac_newctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:84,1
    - Dst: OSSL_FUNC_mac_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:90,1
    - Dst: OSSL_FUNC_mac_freectx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:95,1
    - Dst: OSSL_FUNC_mac_init
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:101,1
    - Dst: OSSL_FUNC_mac_update
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:107,1
    - Dst: OSSL_FUNC_mac_final
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:113,1
    - Dst: OSSL_FUNC_mac_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:120,1
    - Dst: OSSL_FUNC_mac_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:126,1
    - Dst: OSSL_FUNC_mac_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:132,1
    - Dst: OSSL_FUNC_mac_get_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:137,1
    - Dst: OSSL_FUNC_mac_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:142,1
    - Dst: OSSL_FUNC_mac_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:147,1
    - Dst: evp_mac_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:159,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:164,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 89
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 167
    functionName: evp_mac_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - ossl_provider_up_ref
    - OSSL_FUNC_mac_newctx
    - evp_mac_new
    - OSSL_FUNC_mac_gettable_ctx_params
    - OSSL_FUNC_mac_dupctx
    - ossl_algorithm_get1_first_name
    - ERR_raise
    - OSSL_FUNC_mac_init
    - OSSL_FUNC_mac_settable_ctx_params
    - OSSL_FUNC_mac_gettable_params
    - OSSL_FUNC_mac_get_ctx_params
    - OSSL_FUNC_mac_get_params
    - OSSL_FUNC_mac_set_ctx_params
    - OSSL_FUNC_mac_final
    - OSSL_FUNC_mac_freectx
    - OSSL_FUNC_mac_update
    - evp_mac_free
    linkageType: ''
    returnType: void
    signature: "void *evp_mac_from_algorithm(int name_id,\n                                    const
      OSSL_ALGORITHM *algodef,\n                                    OSSL_PROVIDER
      *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - libctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 10
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: EVP_MAC_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 2
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_MAC
    signature: "EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,\n
      \                      const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_mac_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: EVP_MAC_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 3
    functionsReached:
    - evp_mac_up_ref
    linkageType: ''
    returnType: int
    signature: int EVP_MAC_up_ref(EVP_MAC *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_mac_free
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: EVP_MAC_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 4
    functionsReached:
    - evp_mac_free
    linkageType: ''
    returnType: void
    signature: void EVP_MAC_free(EVP_MAC *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: EVP_MAC_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MAC*::gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:196,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:196,1
    - Dst: EVP_MAC_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: EVP_MAC_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - EVP_MAC*::gettable_params
    - EVP_MAC_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:205,1
    - Dst: EVP_MAC_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:205,1
    - Dst: EVP_MAC*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: EVP_MAC_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_get0_provider
    - EVP_MAC*::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:215,1
    - Dst: EVP_MAC_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:215,1
    - Dst: EVP_MAC*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mac
    argTypes:
    - EVP_MAC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: EVP_MAC_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 1
    functionsReached:
    - EVP_MAC*::settable_ctx_params
    - EVP_MAC_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:225,1
    - Dst: EVP_MAC_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:225,1
    - Dst: EVP_MAC_CTX*::meth::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: EVP_MAC_CTX_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_get0_provider
    - EVP_MAC_CTX*::meth::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:235,1
    - Dst: EVP_MAC_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:235,1
    - Dst: EVP_MAC_CTX*::meth::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: EVP_MAC_CTX_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - EVP_MAC_get0_provider
    - EVP_MAC_CTX*::meth::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/mac_meth.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 10
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: EVP_MAC_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/mac_meth.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx,\n                             void
      (*fn)(EVP_MAC *mac, void *arg),\n                             void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_cast.c
    functionUses: 367
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_cast.c:43,1
    - Dst: CAST_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_cast.c:47,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_cast.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: cast_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_cast.c
    functionUses: 0
    functionsReached:
    - CAST_set_key
    - EVP_CIPHER_CTX_get_key_length
    - data
    linkageType: ''
    returnType: int
    signature: "int cast_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nm
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 23
    functionName: IMPLEMENT_LEGACY_EVP_MD_METH
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_meth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LEGACY_EVP_MD_METH(nm, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nm
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: IMPLEMENT_LEGACY_EVP_MD_METH_LC
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_meth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LEGACY_EVP_MD_METH_LC(nm, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - init
    - ','
    - update
    - ','
    - final
    - ','
    - ctrl
    - ','
    - blksz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: LEGACY_EVP_MD_METH_TABLE
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_meth.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEGACY_EVP_MD_METH_TABLE(init, update, final, ctrl, blksz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: conv_bin2ascii
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conv_bin2ascii(a, table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: conv_bin2ascii
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conv_bin2ascii(a, table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: B64_NOT_BASE64
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_NOT_BASE64(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: B64_BASE64
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B64_BASE64(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - table
    argTypes:
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: conv_ascii2bin
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char conv_ascii2bin(unsigned char a, const unsigned char *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - table
    argTypes:
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: conv_ascii2bin
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char conv_ascii2bin(unsigned char a, const unsigned char *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: EVP_ENCODE_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_ENCODE_CTX
    signature: EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: EVP_ENCODE_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dctx
    - sctx
    argTypes:
    - EVP_ENCODE_CTX*
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: EVP_ENCODE_CTX_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, const EVP_ENCODE_CTX
      *sctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: EVP_ENCODE_CTX_num
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: evp_encode_ctx_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evp_encode_ctx_set_flags(EVP_ENCODE_CTX *ctx, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: EVP_EncodeInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:171,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:173,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:179,1
    - Dst: evp_encodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:182,1
    - Dst: evp_encodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:193,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 215
    functionName: EVP_EncodeUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_encodeblock_int
    - OPENSSL_assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int
      *outl,\n                      const unsigned char *in, int inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_encodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: EVP_EncodeFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_encodeblock_int
    linkageType: ''
    returnType: void
    signature: void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:247,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:248,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:249,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:250,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:256,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:257,1
    - Dst: conv_bin2ascii
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - t
    - f
    - dlen
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 267
    functionName: evp_encodeblock_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 2
    functionsReached:
    - conv_bin2ascii
    linkageType: ''
    returnType: int
    signature: "int evp_encodeblock_int(EVP_ENCODE_CTX *ctx, unsigned char *t,\n                               const
      unsigned char *f, int dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_encodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - f
    - dlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: EVP_EncodeBlock
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_encodeblock_int
    linkageType: ''
    returnType: int
    signature: int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_ENCODE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: EVP_DecodeInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_DecodeInit(EVP_ENCODE_CTX *ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:332,1
    - Dst: B64_BASE64
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:340,1
    - Dst: B64_BASE64
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:357,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:367,1
    - Dst: evp_decodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:372,1
    - Dst: evp_decodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:391,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 88
    argCount: 5
    argNames:
    - ctx
    - out
    - outl
    - in
    - inl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 411
    functionName: EVP_DecodeUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - B64_BASE64
    - conv_ascii2bin
    - evp_decodeblock_int
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: "int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int
      *outl,\n                     const unsigned char *in, int inl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:426,1
    - Dst: B64_NOT_BASE64
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:435,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:435,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:442,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:443,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:444,1
    - Dst: conv_ascii2bin
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:445,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - t
    - f
    - n
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 457
    functionName: evp_decodeblock_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - conv_ascii2bin
    - B64_NOT_BASE64
    linkageType: ''
    returnType: int
    signature: "int evp_decodeblock_int(EVP_ENCODE_CTX *ctx, unsigned char *t,\n                               const
      unsigned char *f, int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_decodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - f
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: EVP_DecodeBlock
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 0
    functionsReached:
    - evp_decodeblock_int
    linkageType: ''
    returnType: int
    signature: int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_decodeblock_int
      Src: /src/openssl-3.0.15/crypto/evp/encode.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - out
    - outl
    argTypes:
    - EVP_ENCODE_CTX*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: EVP_DecodeFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/encode.c
    functionUses: 1
    functionsReached:
    - evp_decodeblock_int
    linkageType: ''
    returnType: int
    signature: int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: EVP_whirlpool
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_wp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_whirlpool(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:25,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:28,1
    - Dst: CONF_imodule_get_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:29,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:29,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:31,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:33,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:36,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:37,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:38,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:42,1
    - Dst: evp_default_properties_enable_fips_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:49,1
    - Dst: NCONF_get0_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:51,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:54,1
    - Dst: evp_set_default_properties_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:55,1
    - Dst: NCONF_get0_libctx
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:57,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 21
    functionDepth: 12
    functionLinenumber: 21
    functionLinenumberEnd: 68
    functionName: alg_module_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_cnf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - NCONF_get0_libctx
    - ERR_raise_data
    - ERR_raise
    - X509V3_get_value_bool
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - CONF_imodule_get_name
    - strcmp
    - evp_set_default_properties_int
    - OSSL_TRACE2
    - evp_default_properties_enable_fips_int
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int alg_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:72,1
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/evp/evp_cnf.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: EVP_add_alg_module
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_cnf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void EVP_add_alg_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_null.c
    functionUses: 1277
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: update
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_null.c
    functionUses: 114
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: final
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_null.c
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: EVP_md_null
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/m_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md_null(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:24,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:25,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: keymgmt_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ERR_raise
    - OPENSSL_zalloc
    - EVP_KEYMGMT_free
    linkageType: ''
    returnType: void
    signature: void *keymgmt_new(void)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: keymgmt_new
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:46,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:50,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:51,1
    - Dst: OSSL_FUNC_keymgmt_new
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:60,1
    - Dst: OSSL_FUNC_keymgmt_gen_init
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:64,1
    - Dst: OSSL_FUNC_keymgmt_gen_set_template
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:69,1
    - Dst: OSSL_FUNC_keymgmt_gen_set_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:75,1
    - Dst: OSSL_FUNC_keymgmt_gen_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:82,1
    - Dst: OSSL_FUNC_keymgmt_gen
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:87,1
    - Dst: OSSL_FUNC_keymgmt_gen_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:91,1
    - Dst: OSSL_FUNC_keymgmt_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:95,1
    - Dst: OSSL_FUNC_keymgmt_load
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:99,1
    - Dst: OSSL_FUNC_keymgmt_get_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:104,1
    - Dst: OSSL_FUNC_keymgmt_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:111,1
    - Dst: OSSL_FUNC_keymgmt_set_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:117,1
    - Dst: OSSL_FUNC_keymgmt_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:124,1
    - Dst: OSSL_FUNC_keymgmt_query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:130,1
    - Dst: OSSL_FUNC_keymgmt_has
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:134,1
    - Dst: OSSL_FUNC_keymgmt_dup
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:138,1
    - Dst: OSSL_FUNC_keymgmt_validate
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:142,1
    - Dst: OSSL_FUNC_keymgmt_match
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:146,1
    - Dst: OSSL_FUNC_keymgmt_import
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:151,1
    - Dst: OSSL_FUNC_keymgmt_import_types
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:157,1
    - Dst: OSSL_FUNC_keymgmt_export
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:163,1
    - Dst: OSSL_FUNC_keymgmt_export_types
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:169,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:196,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:201,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 130
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 204
    functionName: keymgmt_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_keymgmt_gen_init
    - OSSL_FUNC_keymgmt_gen_cleanup
    - OSSL_FUNC_keymgmt_new
    - OSSL_FUNC_keymgmt_gen_set_params
    - OSSL_FUNC_keymgmt_match
    - OSSL_FUNC_keymgmt_validate
    - OSSL_FUNC_keymgmt_query_operation_name
    - OSSL_FUNC_keymgmt_export_types
    - ossl_algorithm_get1_first_name
    - OSSL_FUNC_keymgmt_gen
    - OSSL_FUNC_keymgmt_gettable_params
    - EVP_KEYMGMT_free
    - OSSL_FUNC_keymgmt_dup
    - ossl_provider_up_ref
    - OSSL_FUNC_keymgmt_import_types
    - OSSL_FUNC_keymgmt_export
    - ERR_raise
    - OSSL_FUNC_keymgmt_settable_params
    - OSSL_FUNC_keymgmt_import
    - OSSL_FUNC_keymgmt_has
    - OSSL_FUNC_keymgmt_set_params
    - OSSL_FUNC_keymgmt_load
    - keymgmt_new
    - OSSL_FUNC_keymgmt_gen_settable_params
    - OSSL_FUNC_keymgmt_get_params
    - OSSL_FUNC_keymgmt_gen_set_template
    - OSSL_FUNC_keymgmt_free
    linkageType: ''
    returnType: void
    signature: "void *keymgmt_from_algorithm(int name_id,\n                                    const
      OSSL_ALGORITHM *algodef,\n                                    OSSL_PROVIDER
      *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch_by_number
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - name_id
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 10
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: evp_keymgmt_fetch_by_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - evp_generic_fetch_by_number
    linkageType: ''
    returnType: EVP_KEYMGMT
    signature: "EVP_KEYMGMT *evp_keymgmt_fetch_by_number(OSSL_LIB_CTX *ctx, int name_id,\n
      \                                        const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - name
    - properties
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 10
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: evp_keymgmt_fetch_from_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 5
    functionsReached:
    - evp_generic_fetch_from_prov
    linkageType: ''
    returnType: EVP_KEYMGMT
    signature: "EVP_KEYMGMT *evp_keymgmt_fetch_from_prov(OSSL_PROVIDER *prov,\n                                         const
      char *name,\n                                         const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 10
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: EVP_KEYMGMT_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_KEYMGMT
    signature: "EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,\n
      \                              const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: EVP_KEYMGMT_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 4
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:251,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:254,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:255,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:256,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: EVP_KEYMGMT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 12
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: EVP_KEYMGMT_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_KEYMGMT_get0_provider(const EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: evp_keymgmt_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_get_number(const EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: EVP_KEYMGMT_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KEYMGMT_get0_description(const EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: EVP_KEYMGMT_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KEYMGMT_get0_name(const EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - keymgmt
    - name
    argTypes:
    - EVP_KEYMGMT*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 9
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: EVP_KEYMGMT_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 5
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 10
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: EVP_KEYMGMT_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx,\n                                 void
      (*fn)(EVP_KEYMGMT *keymgmt, void *arg),\n                                 void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keymgmt
    - data
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 9
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: EVP_KEYMGMT_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 3
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_KEYMGMT_names_do_all(const EVP_KEYMGMT *keymgmt,\n                             void
      (*fn)(const char *name, void *data),\n                             void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:312,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:312,1
    - Dst: EVP_KEYMGMT*::new
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: evp_keymgmt_newdata
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 2
    functionsReached:
    - EVP_KEYMGMT*::new
    - EVP_KEYMGMT_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: void
    signature: void *evp_keymgmt_newdata(const EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keymgmt
    - keydata
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: evp_keymgmt_freedata
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 2
    functionsReached:
    - EVP_KEYMGMT*::free
    linkageType: ''
    returnType: void
    signature: void evp_keymgmt_freedata(const EVP_KEYMGMT *keymgmt, void *keydata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:333,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:333,1
    - Dst: EVP_KEYMGMT*::gen_init
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keymgmt
    - selection
    - params
    argTypes:
    - EVP_KEYMGMT*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: evp_keymgmt_gen_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::gen_init
    - EVP_KEYMGMT_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_gen_init(const EVP_KEYMGMT *keymgmt, int selection,\n
      \                          const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::gen_set_template
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keymgmt
    - genctx
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: evp_keymgmt_gen_set_template
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::gen_set_template
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_gen_set_template(const EVP_KEYMGMT *keymgmt, void
      *genctx,\n                                 void *template)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::gen_set_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keymgmt
    - genctx
    - params
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: evp_keymgmt_gen_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::gen_set_params
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_gen_set_params(const EVP_KEYMGMT *keymgmt, void *genctx,\n
      \                              const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:364,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:364,1
    - Dst: EVP_KEYMGMT*::gen_settable_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: EVP_KEYMGMT_gen_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::gen_settable_params
    - EVP_KEYMGMT_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEYMGMT_gen_settable_params(const EVP_KEYMGMT *keymgmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::gen
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - keymgmt
    - genctx
    - cb
    - cbarg
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: evp_keymgmt_gen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::gen
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_gen(const EVP_KEYMGMT *keymgmt, void *genctx,\n
      \                     OSSL_CALLBACK *cb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::gen_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - keymgmt
    - genctx
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: evp_keymgmt_gen_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::gen_cleanup
    linkageType: ''
    returnType: void
    signature: void evp_keymgmt_gen_cleanup(const EVP_KEYMGMT *keymgmt, void *genctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: evp_keymgmt_has_load
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_has_load(const EVP_KEYMGMT *keymgmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_has_load
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:393,1
    - Dst: EVP_KEYMGMT*::load
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keymgmt
    - objref
    - objref_sz
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 396
    functionName: evp_keymgmt_load
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::load
    - evp_keymgmt_has_load
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_load(const EVP_KEYMGMT *keymgmt,\n                       const
      void *objref, size_t objref_sz)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::get_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keymgmt
    - keydata
    - params
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: evp_keymgmt_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::get_params
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_get_params(const EVP_KEYMGMT *keymgmt, void *keydata,\n
      \                          OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:408,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:408,1
    - Dst: EVP_KEYMGMT*::gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: EVP_KEYMGMT_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT_get0_provider
    - EVP_KEYMGMT*::gettable_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEYMGMT_gettable_params(const EVP_KEYMGMT *keymgmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::set_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keymgmt
    - keydata
    - params
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: evp_keymgmt_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::set_params
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_set_params(const EVP_KEYMGMT *keymgmt, void *keydata,\n
      \                          const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:425,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:425,1
    - Dst: EVP_KEYMGMT*::settable_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keymgmt
    argTypes:
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: EVP_KEYMGMT_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::settable_params
    - EVP_KEYMGMT_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEYMGMT_settable_params(const EVP_KEYMGMT *keymgmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::has
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keymgmt
    - keydata
    - selection
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: evp_keymgmt_has
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::has
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_has(const EVP_KEYMGMT *keymgmt, void *keydata, int
      selection)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::validate
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - keymgmt
    - keydata
    - selection
    - checktype
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: evp_keymgmt_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::validate
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_validate(const EVP_KEYMGMT *keymgmt, void *keydata,\n
      \                        int selection, int checktype)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::match
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - keymgmt
    - keydata1
    - keydata2
    - selection
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: evp_keymgmt_match
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::match
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_match(const EVP_KEYMGMT *keymgmt,\n                      const
      void *keydata1, const void *keydata2,\n                      int selection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::import
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - keymgmt
    - keydata
    - selection
    - params
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: evp_keymgmt_import
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::import
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_import(const EVP_KEYMGMT *keymgmt, void *keydata,\n
      \                      int selection, const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::import_types
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keymgmt
    - selection
    argTypes:
    - EVP_KEYMGMT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: evp_keymgmt_import_types
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::import_types
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *evp_keymgmt_import_types(const EVP_KEYMGMT *keymgmt,\n
      \                                          int selection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::export
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - keymgmt
    - keydata
    - selection
    - param_cb
    - cbarg
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - int
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: evp_keymgmt_export
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::export
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_export(const EVP_KEYMGMT *keymgmt, void *keydata,\n
      \                      int selection, OSSL_CALLBACK *param_cb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::export_types
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keymgmt
    - selection
    argTypes:
    - EVP_KEYMGMT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: evp_keymgmt_export_types
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT*::export_types
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *evp_keymgmt_export_types(const EVP_KEYMGMT *keymgmt,\n
      \                                          int selection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::dup
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - keymgmt
    - keydata_from
    - selection
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: evp_keymgmt_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_meth.c
    functionUses: 1
    functionsReached:
    - EVP_KEYMGMT*::dup
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_dup(const EVP_KEYMGMT *keymgmt, const void *keydata_from,\n
      \                     int selection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: EVP_set_pw_prompt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_key.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: void EVP_set_pw_prompt(const char *prompt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: EVP_get_pw_prompt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_get_pw_prompt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_read_pw_string_min
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: EVP_read_pw_string
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_key.c
    functionUses: 0
    functionsReached:
    - EVP_read_pw_string_min
    linkageType: ''
    returnType: int
    signature: int EVP_read_pw_string(char *buf, int len, const char *prompt, int
      verify)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UI_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:61,1
    - Dst: UI_add_input_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:64,1
    - Dst: UI_add_verify_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:67,1
    - Dst: UI_process
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:71,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:72,1
    - Dst: UI_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - buf
    - min
    - len
    - prompt
    - verify
    argTypes:
    - char*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: EVP_read_pw_string_min
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_key.c
    functionUses: 2
    functionsReached:
    - OPENSSL_cleanse
    - UI_process
    - UI_new
    - UI_free
    - UI_add_input_string
    - UI_add_verify_string
    linkageType: ''
    returnType: int
    signature: "int EVP_read_pw_string_min(char *buf, int min, int len, const char
      *prompt,\n                           int verify)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:88,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:89,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:90,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:91,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:96,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:100,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:103,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:105,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:108,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:110,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:114,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:116,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:118,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:149,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:151,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/evp_key.c:152,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 154
    functionName: EVP_BytesToKey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_key.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_CIPHER_get_key_length
    - OPENSSL_assert
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - OPENSSL_cleanse
    - EVP_DigestFinal_ex
    - EVP_CIPHER_get_iv_length
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_add
      Src: /src/openssl-3.0.15/crypto/evp/names.c:26,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:26,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-3.0.15/crypto/evp/names.c:30,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/evp/names.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: EVP_add_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2ln
    - OBJ_nid2sn
    - OBJ_NAME_add
    linkageType: ''
    returnType: int
    signature: int EVP_add_cipher(const EVP_CIPHER *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:40,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-3.0.15/crypto/evp/names.c:41,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-3.0.15/crypto/evp/names.c:44,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/evp/names.c:44,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-3.0.15/crypto/evp/names.c:50,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:50,1
    - Dst: OBJ_NAME_add
      Src: /src/openssl-3.0.15/crypto/evp/names.c:54,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/evp/names.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 58
    functionName: EVP_add_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 2
    functionsReached:
    - OBJ_nid2ln
    - OBJ_nid2sn
    - OBJ_NAME_add
    linkageType: ''
    returnType: int
    signature: int EVP_add_digest(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/evp/names.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: cipher_from_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_get
    linkageType: ''
    returnType: void
    signature: void cipher_from_name(const char *name, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_get_cipherbyname_ex
      Src: /src/openssl-3.0.15/crypto/evp/names.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: EVP_get_cipherbyname
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 3
    functionsReached:
    - evp_get_cipherbyname_ex
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_get_cipherbyname(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/evp/names.c:83,1
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/evp/names.c:86,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/names.c:97,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/names.c:99,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/names.c:107,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/evp/names.c:108,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/evp/names.c:109,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/names.c:110,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/evp/names.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 118
    functionName: evp_get_cipherbyname_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 2
    functionsReached:
    - ossl_namemap_stored
    - EVP_CIPHER_free
    - OBJ_NAME_get
    - ERR_set_mark
    - OPENSSL_init_crypto
    - ossl_namemap_name2num
    - ERR_pop_to_mark
    - ossl_namemap_doall_names
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: EVP_CIPHER
    signature: "EVP_CIPHER *evp_get_cipherbyname_ex(OSSL_LIB_CTX *libctx,\n                                          const
      char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/evp/names.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: digest_from_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_get
    linkageType: ''
    returnType: void
    signature: void digest_from_name(const char *name, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_get_digestbyname_ex
      Src: /src/openssl-3.0.15/crypto/evp/names.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: EVP_get_digestbyname
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 5
    functionsReached:
    - evp_get_digestbyname_ex
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_get_digestbyname(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/evp/names.c:142,1
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/evp/names.c:145,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/evp/names.c:156,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/evp/names.c:158,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/evp/names.c:166,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/names.c:167,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/names.c:168,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/evp/names.c:169,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/evp/names.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 8
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: evp_get_digestbyname_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 4
    functionsReached:
    - ossl_namemap_stored
    - ossl_namemap_doall_names
    - OBJ_NAME_get
    - ERR_set_mark
    - OPENSSL_init_crypto
    - ossl_namemap_name2num
    - ERR_pop_to_mark
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *evp_get_digestbyname_ex(OSSL_LIB_CTX *libctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/names.c:181,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/names.c:182,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/names.c:183,1
    - Dst: OBJ_NAME_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/names.c:189,1
    - Dst: EVP_PBE_cleanup
      Src: /src/openssl-3.0.15/crypto/evp/names.c:191,1
    - Dst: OBJ_sigid_free
      Src: /src/openssl-3.0.15/crypto/evp/names.c:192,1
    - Dst: evp_app_cleanup_int
      Src: /src/openssl-3.0.15/crypto/evp/names.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 195
    functionName: evp_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 1
    functionsReached:
    - OBJ_sigid_free
    - EVP_PBE_cleanup
    - evp_app_cleanup_int
    - OBJ_NAME_cleanup
    linkageType: ''
    returnType: void
    signature: void evp_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct doall_cipher*::fn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:207,1
    - Dst: struct doall_cipher*::fn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nm
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: do_all_cipher_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - struct doall_cipher*::fn
    linkageType: ''
    returnType: void
    signature: void do_all_cipher_fn(const OBJ_NAME *nm, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/evp/names.c:219,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-3.0.15/crypto/evp/names.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: EVP_CIPHER_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph,\n                                   const
      char *from, const char *to, void *x),\n                       void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/evp/names.c:233,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openssl-3.0.15/crypto/evp/names.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 238
    functionName: EVP_CIPHER_do_all_sorted
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all_sorted
    linkageType: ''
    returnType: void
    signature: "void EVP_CIPHER_do_all_sorted(void (*fn) (const EVP_CIPHER *ciph,\n
      \                                         const char *from, const char *to,\n
      \                                         void *x), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct doall_md*::fn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:250,1
    - Dst: struct doall_md*::fn
      Src: /src/openssl-3.0.15/crypto/evp/names.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nm
    - arg
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: do_all_md_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - struct doall_md*::fn
    linkageType: ''
    returnType: void
    signature: void do_all_md_fn(const OBJ_NAME *nm, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/evp/names.c:262,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-3.0.15/crypto/evp/names.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 267
    functionName: EVP_MD_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_MD_do_all(void (*fn) (const EVP_MD *md,\n                               const
      char *from, const char *to, void *x),\n                   void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/evp/names.c:275,1
    - Dst: OBJ_NAME_do_all_sorted
      Src: /src/openssl-3.0.15/crypto/evp/names.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: EVP_MD_do_all_sorted
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - OBJ_NAME_do_all_sorted
    linkageType: ''
    returnType: void
    signature: "void EVP_MD_do_all_sorted(void (*fn) (const EVP_MD *md,\n                                      const
      char *from, const char *to,\n                                      void *x),
      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 369
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:48,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:49,1
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:54,1
    - Dst: MD5_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - inkey
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: rc4_hmac_md5_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_get_key_length
    - MD5_Init
    - RC4_set_key
    linkageType: ''
    returnType: int
    signature: "int rc4_hmac_md5_init_key(EVP_CIPHER_CTX *ctx,\n                                 const
      unsigned char *inkey,\n                                 const unsigned char
      *iv, int enc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:79,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:91,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:101,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:102,1
    - Dst: rc4_md5_enc
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:104,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:118,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:122,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:125,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:127,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:128,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:130,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:132,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:145,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:146,1
    - Dst: rc4_md5_enc
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:148,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:164,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:166,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:169,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:171,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:172,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:174,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:177,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 184
    functionName: rc4_hmac_md5_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - rc4_md5_enc
    - memcpy
    - data
    - CRYPTO_memcmp
    - MD5_Update
    - RC4
    - MD5_Final
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int rc4_hmac_md5_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:189,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:197,1
    - Dst: MD5_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:200,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:201,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:202,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:204,1
    - Dst: MD5_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:209,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:210,1
    - Dst: MD5_Init
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:214,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:215,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:217,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:231,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 247
    functionName: rc4_hmac_md5_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 0
    functionsReached:
    - memcpy
    - data
    - OPENSSL_cleanse
    - MD5_Init
    - MD5_Update
    - memset
    - EVP_CIPHER_CTX_is_encrypting
    - MD5_Final
    linkageType: ''
    returnType: int
    signature: "int rc4_hmac_md5_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,\n                             void
      *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: EVP_rc4_hmac_md5
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc4_hmac_md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc4_hmac_md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: EVP_enc_null
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_enc_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: null_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int null_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_null.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: null_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_null.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int null_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                       const
      unsigned char *in, size_t inl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - func
    - ','
    - errfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: PARAM_CHECK
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARAM_CHECK(obj, func, errfunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - func
    - ','
    - type
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: PARAM_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARAM_FUNC(name, func, type, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - func
    - ','
    - type
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: PARAM_CTX_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARAM_CTX_FUNC(name, func, type, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type
    - ','
    - getname
    - ','
    - getfunc
    - ','
    - getctxname
    - ','
    - getctxfunc
    - ','
    - setctxname
    - ','
    - setctxfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: PARAM_FUNCTIONS
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PARAM_FUNCTIONS(type,                                                  \\\n
      \                       getname, getfunc,                                      \\\n
      \                       getctxname, getctxfunc,                                \\\n
      \                       setctxname, setctxfunc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_utils.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: geterr
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_utils.c
    functionUses: 9
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void geterr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_utils.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: seterr
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_utils.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void seterr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:30,1
    - Dst: EVP_KDF*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:32,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:32,1
    - Dst: EVP_KDF_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:34,1
    - Dst: EVP_KDF*::freectx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: EVP_KDF_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 3
    functionsReached:
    - EVP_KDF_up_ref
    - EVP_KDF*::newctx
    - ERR_raise
    - OPENSSL_zalloc
    - EVP_KDF*::freectx
    - OPENSSL_free
    - ossl_provider_ctx
    linkageType: ''
    returnType: EVP_KDF_CTX
    signature: EVP_KDF_CTX *EVP_KDF_CTX_new(EVP_KDF *kdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_CTX*::meth::freectx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:49,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: EVP_KDF_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - EVP_KDF_free
    - EVP_KDF_CTX*::meth::freectx
    linkageType: ''
    returnType: void
    signature: void EVP_KDF_CTX_free(EVP_KDF_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:62,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:64,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:68,1
    - Dst: EVP_KDF_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:69,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:71,1
    - Dst: EVP_KDF_CTX*::meth::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:75,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - src
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 81
    functionName: EVP_KDF_CTX_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_up_ref
    - memcpy
    - EVP_KDF_CTX*::meth::dupctx
    - OPENSSL_malloc
    - EVP_KDF_CTX_free
    - ERR_raise
    - OPENSSL_free
    linkageType: ''
    returnType: EVP_KDF_CTX
    signature: EVP_KDF_CTX *EVP_KDF_CTX_dup(const EVP_KDF_CTX *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: evp_kdf_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_kdf_get_number(const EVP_KDF *kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: EVP_KDF_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KDF_get0_name(const EVP_KDF *kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: EVP_KDF_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KDF_get0_description(const EVP_KDF *kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - kdf
    - name
    argTypes:
    - EVP_KDF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 9
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: EVP_KDF_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_KDF_is_a(const EVP_KDF *kdf, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: EVP_KDF_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_KDF_get0_provider(const EVP_KDF *kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: EVP_KDF_CTX_kdf
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_KDF
    signature: EVP_KDF *EVP_KDF_CTX_kdf(EVP_KDF_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_CTX*::meth::reset
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: EVP_KDF_CTX_reset
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX*::meth::reset
    linkageType: ''
    returnType: void
    signature: void EVP_KDF_CTX_reset(EVP_KDF_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:130,1
    - Dst: EVP_KDF_CTX*::meth::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:132,1
    - Dst: EVP_KDF_CTX*::meth::get_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_KDF_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: EVP_KDF_CTX_get_kdf_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX*::meth::get_params
    - EVP_KDF_CTX*::meth::get_ctx_params
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_KDF_CTX_get_kdf_size(EVP_KDF_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_CTX*::meth::derive
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - key
    - keylen
    - params
    argTypes:
    - EVP_KDF_CTX*
    - unsigned char*
    - size_t
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: EVP_KDF_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 3
    functionsReached:
    - EVP_KDF_CTX*::meth::derive
    linkageType: ''
    returnType: int
    signature: "int EVP_KDF_derive(EVP_KDF_CTX *ctx, unsigned char *key, size_t keylen,\n
      \                  const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF*::get_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - kdf
    - params
    argTypes:
    - EVP_KDF*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: EVP_KDF_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KDF*::get_params
    linkageType: ''
    returnType: int
    signature: int EVP_KDF_get_params(EVP_KDF *kdf, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_CTX*::meth::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_KDF_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: EVP_KDF_CTX_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX*::meth::get_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_KDF_CTX_get_params(EVP_KDF_CTX *ctx, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_CTX*::meth::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_KDF_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: EVP_KDF_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX*::meth::set_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_KDF_CTX_set_params(EVP_KDF_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/kdf_lib.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - kdf
    - data
    argTypes:
    - EVP_KDF*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 9
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: EVP_KDF_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kdf_lib.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_KDF_names_do_all(const EVP_KDF *kdf,\n                         void
      (*fn)(const char *name, void *data),\n                         void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 372
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:56,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:58,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:59,1
    - Dst: cmll_t4_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:61,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:107,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 112
    functionName: cmll_t4_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - cmll_t4_set_key
    - EVP_CIPHER_CTX_get_mode
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int cmll_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 164
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: BLOCK_CIPHER_generic_pack
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic_pack(nid,keylen,flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:196,1
    - Dst: Camellia_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:198,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:201,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 218
    functionName: camellia_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_mode
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    - Camellia_set_key
    linkageType: ''
    returnType: int
    signature: "int camellia_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:223,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:227,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:228,1
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:229,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 234
    functionName: camellia_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int camellia_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:239,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: camellia_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int camellia_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:255,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:257,1
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:258,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: camellia_ofb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: int
    signature: "int camellia_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:266,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:268,1
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:269,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:270,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: camellia_cfb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_cfb128_encrypt
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int camellia_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:278,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:280,1
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:281,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:282,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: camellia_cfb8_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - CRYPTO_cfb128_8_encrypt
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int camellia_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:290,1
    - Dst: EVP_CIPHER_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:292,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:293,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:294,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:295,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:297,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:302,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:303,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:305,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:307,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:313,1
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:314,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:316,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 322
    functionName: camellia_cfb1_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_CIPHER_CTX_get_num
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_test_flags
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: int
    signature: "int camellia_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                               const unsigned char *in, size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:327,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:329,1
    - Dst: CRYPTO_ctr128_encrypt_ctr32
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:335,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:336,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:340,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:341,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_camellia.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 345
    functionName: camellia_ctr_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_camellia.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - CRYPTO_ctr128_encrypt_ctr32
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: int
    signature: "int camellia_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                              const unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:27,1
    - Dst: RSA_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: EVP_PKEY_set1_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_assign_RSA
    - RSA_up_ref
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, RSA *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:37,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 7
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: evp_pkey_get0_RSA_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 1
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: RSA
    signature: RSA *evp_pkey_get0_RSA_int(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_RSA_int
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 8
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: EVP_PKEY_get0_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 8
    functionsReached:
    - evp_pkey_get0_RSA_int
    linkageType: ''
    returnType: RSA
    signature: RSA *EVP_PKEY_get0_RSA(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_RSA_int
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:50,1
    - Dst: RSA_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: EVP_PKEY_get1_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 1
    functionsReached:
    - evp_pkey_get0_RSA_int
    - RSA_up_ref
    linkageType: ''
    returnType: RSA
    signature: RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:60,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:62,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - EVP_PKEY*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: EVP_PKEY_set1_EC_KEY
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 0
    functionsReached:
    - EC_KEY_up_ref
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_free
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:72,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: evp_pkey_get0_EC_KEY_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    - EVP_PKEY_get_base_id
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *evp_pkey_get0_EC_KEY_int(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_EC_KEY_int
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 8
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: EVP_PKEY_get0_EC_KEY
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 6
    functionsReached:
    - evp_pkey_get0_EC_KEY_int
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EVP_PKEY_get0_EC_KEY(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get0_EC_KEY_int
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:85,1
    - Dst: EC_KEY_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/p_legacy.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 8
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: EVP_PKEY_get1_EC_KEY
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_legacy.c
    functionUses: 1
    functionsReached:
    - EC_KEY_up_ref
    - evp_pkey_get0_EC_KEY_int
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:65,1
    - Dst: ossl_aria_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:68,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:69,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:70,1
    - Dst: ossl_aria_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:72,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:73,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: aria_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - ossl_aria_set_encrypt_key
    - EVP_CIPHER_CTX_get_mode
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_CIPHER_CTX_get_cipher_data
    - ossl_aria_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: "int aria_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:88,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - in
    - out
    - len
    - key
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: aria_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t len, const ARIA_KEY *key,\n                             unsigned
      char *ivec, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: aria_cfb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cfb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                               size_t length, const ARIA_KEY *key,\n                                unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: aria_cfb1_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cfb1_encrypt(const unsigned char *in, unsigned char *out,\n
      \                             size_t length, const ARIA_KEY *key,\n                              unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: aria_cfb8_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_cfb8_encrypt(const unsigned char *in, unsigned char *out,\n
      \                             size_t length, const ARIA_KEY *key,\n                              unsigned
      char *ivec, int *num, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_aria_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - ARIA_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: aria_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - ossl_aria_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            const ARIA_KEY *key, const int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - in
    - out
    - length
    - key
    - ivec
    - num
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - ARIA_KEY*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: aria_ofb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void aria_ofb128_encrypt(const unsigned char *in, unsigned char *out,\n
      \                            size_t length, const ARIA_KEY *key,\n                             unsigned
      char *ivec, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ksize
    - ','
    - cbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: IMPLEMENT_ARIA_CFBR
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ARIA_CFBR(ksize,cbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: BLOCK_CIPHER_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:178,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:180,1
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:186,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:187,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: aria_ctr_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_set_num
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aria_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                               const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: ctr64_inc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctr64_inc(unsigned char *counter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:219,1
    - Dst: ossl_aria_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:224,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:225,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:230,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:240,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:247,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 254
    functionName: aria_gcm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ossl_aria_set_encrypt_key
    - CRYPTO_gcm128_init
    - CRYPTO_gcm128_setiv
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aria_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                                const unsigned char *iv, int enc)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:258,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:264,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:281,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:282,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:283,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:291,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:293,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:293,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:298,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:301,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:301,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:307,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:318,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:319,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:320,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:328,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:331,1
    - Dst: ctr64_inc
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:336,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:342,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:344,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:345,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:353,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:353,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:357,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:358,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:364,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:369,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:370,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:378,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:387,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:388,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:391,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 400
    functionName: aria_gcm_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ctr64_inc
    - memcpy
    - OPENSSL_malloc
    - CRYPTO_gcm128_setiv
    - ERR_raise
    - EVP_CIPHER_CTX_buf_noconst
    - OPENSSL_free
    - EVP_C_DATA
    - EVP_CIPHER_get_iv_length
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: int aria_gcm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:405,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:416,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:416,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:421,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:421,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:428,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:430,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:434,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:438,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:441,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:441,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:444,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:444,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:446,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 456
    functionName: aria_gcm_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_decrypt
    - OPENSSL_cleanse
    - CRYPTO_gcm128_aad
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - CRYPTO_memcmp
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_gcm128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aria_gcm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:461,1
    - Dst: aria_gcm_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:468,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:474,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:476,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:477,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:480,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:485,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:488,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:489,1
    - Dst: CRYPTO_gcm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:495,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:495,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 500
    functionName: aria_gcm_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_gcm128_finish
    - CRYPTO_gcm128_tag
    - CRYPTO_gcm128_decrypt
    - CRYPTO_gcm128_aad
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - aria_gcm_tls_cipher
    - CRYPTO_gcm128_encrypt
    linkageType: ''
    returnType: int
    signature: "int aria_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:504,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: aria_gcm_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: int aria_gcm_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:516,1
    - Dst: ossl_aria_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:522,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:523,1
    - Dst: CRYPTO_ccm128_init
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:525,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:528,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 539
    functionName: aria_ccm_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CRYPTO_ccm128_init
    - ossl_aria_set_encrypt_key
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int aria_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:543,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:564,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:564,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:568,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:569,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:575,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:580,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:581,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:591,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:605,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:609,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:609,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:615,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:617,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:627,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 639
    functionName: aria_ccm_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_ccm128_tag
    linkageType: ''
    returnType: int
    signature: int aria_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:644,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:651,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:652,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:652,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:655,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:659,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:663,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:663,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:668,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:669,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:670,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:672,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:676,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:677,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:679,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:680,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 687
    functionName: aria_ccm_tls_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_encrypt_ccm64
    - memcpy
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_setiv
    - CRYPTO_ccm128_decrypt
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - CRYPTO_memcmp
    - CRYPTO_ccm128_tag
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_ccm128_aad
    linkageType: ''
    returnType: int
    signature: "int aria_ccm_tls_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n
      \                             const unsigned char *in, size_t len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:692,1
    - Dst: aria_ccm_tls_cipher
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:700,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:711,1
    - Dst: CRYPTO_ccm128_aad
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:719,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:724,1
    - Dst: CRYPTO_ccm128_setiv
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:729,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:733,1
    - Dst: CRYPTO_ccm128_encrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:734,1
    - Dst: CRYPTO_ccm128_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:735,1
    - Dst: CRYPTO_ccm128_decrypt_ccm64
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:741,1
    - Dst: CRYPTO_ccm128_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:743,1
    - Dst: CRYPTO_ccm128_tag
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:745,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:746,1
    - Dst: EVP_CIPHER_CTX_buf_noconst
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:746,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_aria.c:752,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 758
    functionName: aria_ccm_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ccm128_tag
    - EVP_CIPHER_CTX_is_encrypting
    - CRYPTO_ccm128_decrypt_ccm64
    - CRYPTO_ccm128_encrypt_ccm64
    - CRYPTO_ccm128_encrypt
    - CRYPTO_ccm128_decrypt
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_buf_noconst
    - EVP_C_DATA
    - CRYPTO_memcmp
    - aria_ccm_tls_cipher
    - CRYPTO_ccm128_setiv
    - CRYPTO_ccm128_aad
    linkageType: ''
    returnType: int
    signature: "int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - nid
    - ','
    - keylen
    - ','
    - blocksize
    - ','
    - ivlen
    - ','
    - nmode
    - ','
    - mode
    - ','
    - MODE
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 781
    functionName: BLOCK_CIPHER_aead
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_CIPHER_aead(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:26,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:27,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:34,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:37,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:39,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:40,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:46,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:49,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:51,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:51,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:53,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:55,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 6
    argNames:
    - ctx
    - sigbuf
    - siglen
    - pkey
    - libctx
    - propq
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    - EVP_PKEY*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 57
    functionName: EVP_VerifyFinal_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_verify.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_CTX_copy_ex
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_verify
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX_new
    - ERR_raise
    - EVP_PKEY_verify_init
    - EVP_PKEY_CTX_free
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_get0_md
    - EVP_PKEY_CTX_set_signature_md
    linkageType: ''
    returnType: int
    signature: "int EVP_VerifyFinal_ex(EVP_MD_CTX *ctx, const unsigned char *sigbuf,\n
      \                      unsigned int siglen, EVP_PKEY *pkey, OSSL_LIB_CTX *libctx,\n
      \                      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_VerifyFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/p_verify.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - sigbuf
    - siglen
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: EVP_VerifyFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_verify.c
    functionUses: 0
    functionsReached:
    - EVP_VerifyFinal_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf,\n
      \                   unsigned int siglen, EVP_PKEY *pkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/evp/p_dec.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/p_dec.c:28,1
    - Dst: evp_pkey_get0_RSA_int
      Src: /src/openssl-3.0.15/crypto/evp/p_dec.c:32,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-3.0.15/crypto/evp/p_dec.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - key
    - ek
    - ekl
    - priv
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 8
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: EVP_PKEY_decrypt_old
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/p_dec.c
    functionUses: 0
    functionsReached:
    - RSA_private_decrypt
    - evp_pkey_get0_RSA_int
    - EVP_PKEY_get_id
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_decrypt_old(unsigned char *key, const unsigned char *ek,
      int ekl,\n                         EVP_PKEY *priv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:32,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:33,1
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:35,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:37,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - force
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: cleanup_old_md_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    - EVP_MD_CTX_test_flags
    - EVP_MD_CTX*::digest::cleanup
    linkageType: ''
    returnType: void
    signature: void cleanup_old_md_data(EVP_MD_CTX *ctx, int force)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX*::digest::freectx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:47,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:49,1
    - Dst: cleanup_old_md_data
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:58,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:63,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - force
    - keep_fetched
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 73
    functionName: evp_md_ctx_clear_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 1
    functionsReached:
    - cleanup_old_md_data
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX*::digest::freectx
    - ENGINE_finish
    - EVP_MD_free
    linkageType: ''
    returnType: void
    signature: void evp_md_ctx_clear_digest(EVP_MD_CTX *ctx, int force, int keep_fetched)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:85,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:86,1
    - Dst: evp_md_ctx_clear_digest
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:91,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - keep_fetched
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: evp_md_ctx_reset_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - evp_md_ctx_clear_digest
    - EVP_MD_CTX_test_flags
    - EVP_PKEY_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int evp_md_ctx_reset_ex(EVP_MD_CTX *ctx, int keep_fetched)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_ctx_reset_ex
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: EVP_MD_CTX_reset
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 8
    functionsReached:
    - evp_md_ctx_reset_ex
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:111,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:113,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:117,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:120,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:124,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - pkey
    - id
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - ASN1_OCTET_STRING*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: evp_md_ctx_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_set1_id
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_MD_CTX_new
    - ERR_raise
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_set_pkey_ctx
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: "EVP_MD_CTX *evp_md_ctx_new_ex(EVP_PKEY *pkey, const ASN1_OCTET_STRING
      *id,\n                              OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: EVP_MD_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 26
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: EVP_MD_CTX *EVP_MD_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: EVP_MD_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 28
    functionsReached:
    - OPENSSL_free
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_free(EVP_MD_CTX *ctx)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:153,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:162,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:164,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:165,1
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:170,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:174,1
    - Dst: EVP_MD_CTX*::digest::freectx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:186,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:210,1
    - Dst: ENGINE_get_digest_engine
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:215,1
    - Dst: defined
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:224,1
    - Dst: defined
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:224,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:233,1
    - Dst: cleanup_old_md_data
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:245,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:249,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:250,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:254,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:258,1
    - Dst: EVP_MD_CTX*::digest::freectx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:265,1
    - Dst: EVP_MD_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:269,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:270,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:273,1
    - Dst: EVP_MD_CTX*::digest::newctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:278,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:278,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:280,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:286,1
    - Dst: EVP_MD_CTX*::digest::dinit
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:290,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:298,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:299,1
    - Dst: ENGINE_get_digest
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:308,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:311,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:312,1
    - Dst: cleanup_old_md_data
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:327,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:332,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:334,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:344,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:347,1
    - Dst: EVP_MD_CTX*::digest::init
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:355,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 129
    argCount: 4
    argNames:
    - ctx
    - type
    - params
    - impl
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    - OSSL_PARAM[]
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 356
    functionName: evp_md_init_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::digest::init
    - EVP_MD_CTX*::digest::freectx
    - EVP_DigestSignInit
    - ossl_assert
    - ENGINE_init
    - defined
    - ENGINE_finish
    - OBJ_nid2sn
    - EVP_MD_fetch
    - EVP_DigestVerifyInit
    - EVP_MD_CTX*::digest::newctx
    - EVP_MD_CTX*::digest::dinit
    - ERR_raise
    - EVP_MD_up_ref
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - ENGINE_get_digest_engine
    - cleanup_old_md_data
    - EVP_MD_CTX_clear_flags
    - ENGINE_get_digest
    - OPENSSL_zalloc
    - EVP_MD_free
    - EVP_PKEY_CTX_ctrl
    - ossl_provider_ctx
    linkageType: ''
    returnType: int
    signature: "int evp_md_init_internal(EVP_MD_CTX *ctx, const EVP_MD *type,\n                                const
      OSSL_PARAM params[], ENGINE *impl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_init_internal
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - type
    - params
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: EVP_DigestInit_ex2
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - evp_md_init_internal
    linkageType: ''
    returnType: int
    signature: "int EVP_DigestInit_ex2(EVP_MD_CTX *ctx, const EVP_MD *type,\n                       const
      OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:366,1
    - Dst: evp_md_init_internal
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 7
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: EVP_DigestInit
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 4
    functionsReached:
    - EVP_MD_CTX_reset
    - evp_md_init_internal
    linkageType: ''
    returnType: int
    signature: int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_init_internal
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - type
    - impl
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: EVP_DigestInit_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 18
    functionsReached:
    - evp_md_init_internal
    linkageType: ''
    returnType: int
    signature: int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:381,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:392,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:394,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:395,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:405,1
    - Dst: EVP_MD_CTX*::digest::dupdate
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:408,1
    - Dst: EVP_MD_CTX*::update
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:412,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 413
    functionName: EVP_DigestUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 22
    functionsReached:
    - EVP_DigestVerifyUpdate
    - ERR_raise
    - EVP_MD_CTX*::update
    - EVP_MD_CTX*::digest::dupdate
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:419,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 7
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: EVP_DigestFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int
      *size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:434,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:442,1
    - Dst: EVP_MD_CTX*::digest::dfinal
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:446,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:452,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:461,1
    - Dst: EVP_MD_CTX*::digest::final
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:462,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:466,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:467,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:469,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - md
    - isize
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 471
    functionName: EVP_DigestFinal_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 17
    functionsReached:
    - EVP_MD_get_size
    - OPENSSL_assert
    - EVP_MD_CTX*::digest::dfinal
    - EVP_MD_CTX_set_flags
    - OPENSSL_cleanse
    - ERR_raise
    - EVP_MD_CTX*::digest::final
    - EVP_MD_CTX*::digest::cleanup
    linkageType: ''
    returnType: int
    signature: int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned
      int *isize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:480,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:488,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:492,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:493,1
    - Dst: EVP_MD_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:495,1
    - Dst: EVP_MD_CTX*::digest::dfinal
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:496,1
    - Dst: EVP_MD_CTX*::digest::md_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:503,1
    - Dst: EVP_MD_CTX*::digest::final
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:504,1
    - Dst: EVP_MD_CTX*::digest::cleanup
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:506,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:507,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:509,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - md
    - size
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 515
    functionName: EVP_DigestFinalXOF
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - EVP_MD_CTX*::digest::dfinal
    - EVP_MD_CTX_set_flags
    - OPENSSL_cleanse
    - EVP_MD_CTX*::digest::cleanup
    - EVP_MD_CTX*::digest::md_ctrl
    - ERR_raise
    - OSSL_PARAM_construct_end
    - EVP_MD_CTX*::digest::final
    - EVP_MD_CTX_set_params
    linkageType: ''
    returnType: int
    signature: int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:519,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 7
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: EVP_MD_CTX_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_reset
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:529,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:535,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:537,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:547,1
    - Dst: evp_md_ctx_reset_ex
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:551,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:554,1
    - Dst: EVP_MD_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:561,1
    - Dst: EVP_MD_CTX*::digest::dupctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:564,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:566,1
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:573,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:576,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:578,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:579,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:591,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:592,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:599,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:602,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:603,1
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:606,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:619,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:621,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:625,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:632,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:634,1
    - Dst: EVP_MD_CTX*::digest::copy
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:641,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 523
    functionDepth: 7
    functionLinenumber: 523
    functionLinenumberEnd: 644
    functionName: EVP_MD_CTX_copy_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 8
    functionsReached:
    - ENGINE_init
    - EVP_PKEY_CTX_dup
    - memcpy
    - OPENSSL_malloc
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_clear_flags
    - EVP_MD_CTX*::digest::copy
    - ERR_raise
    - evp_md_ctx_reset_ex
    - EVP_MD_CTX_reset
    - EVP_MD_up_ref
    - EVP_MD_CTX*::digest::dupctx
    - EVP_MD_free
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:650,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:655,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:656,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:657,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:658,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:659,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 646
    functionDepth: 8
    functionLinenumber: 646
    functionLinenumberEnd: 662
    functionName: EVP_Digest
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 3
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_new
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: "int EVP_Digest(const void *data, size_t count,\n               unsigned
      char *md, unsigned int *size, const EVP_MD *type,\n               ENGINE *impl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:668,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:673,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - libctx
    - name
    - propq
    - data
    - datalen
    - md
    - mdlen
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - void*
    - size_t
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 664
    functionDepth: 9
    functionLinenumber: 664
    functionLinenumberEnd: 679
    functionName: EVP_Q_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int EVP_Q_digest(OSSL_LIB_CTX *libctx, const char *name, const char
      *propq,\n                 const void *data, size_t datalen,\n                 unsigned
      char *md, size_t *mdlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD*::get_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - digest
    - params
    argTypes:
    - EVP_MD*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 686
    functionName: EVP_MD_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD*::get_params
    linkageType: ''
    returnType: int
    signature: int EVP_MD_get_params(const EVP_MD *digest, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD*::gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:691,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:692,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - digest
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 694
    functionName: EVP_MD_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD*::gettable_params
    - EVP_MD_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MD_gettable_params(const EVP_MD *digest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::op::sig::signature::set_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:706,1
    - Dst: EVP_MD_CTX*::digest::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_MD_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: EVP_MD_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX*::op::sig::signature::set_ctx_md_params
    - EVP_MD_CTX*::digest::set_ctx_params
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_set_params(EVP_MD_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:720,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:720,1
    - Dst: EVP_MD*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: EVP_MD_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get0_provider
    - EVP_MD*::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MD_settable_ctx_params(const EVP_MD *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::op::sig::signature::settable_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:741,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:745,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:745,1
    - Dst: EVP_MD_CTX*::digest::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:746,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 750
    functionName: EVP_MD_CTX_settable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::op::sig::signature::settable_ctx_md_params
    - EVP_MD_get0_provider
    - EVP_MD_CTX*::digest::settable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MD_CTX_settable_params(EVP_MD_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::op::sig::signature::get_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:762,1
    - Dst: EVP_MD_CTX*::digest::get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_MD_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 769
    functionName: EVP_MD_CTX_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX*::digest::get_ctx_params
    - EVP_PKEY_CTX*::op::sig::signature::get_ctx_md_params
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_get_params(EVP_MD_CTX *ctx, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:776,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:776,1
    - Dst: EVP_MD*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 780
    functionName: EVP_MD_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get0_provider
    - EVP_MD*::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MD_gettable_ctx_params(const EVP_MD *md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX*::op::sig::signature::gettable_ctx_md_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:797,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:801,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:801,1
    - Dst: EVP_MD_CTX*::digest::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:802,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 805
    functionName: EVP_MD_CTX_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::op::sig::signature::gettable_ctx_md_params
    - EVP_MD_get0_provider
    - EVP_MD_CTX*::digest::gettable_ctx_params
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:815,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:825,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:829,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:833,1
    - Dst: EVP_MD_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:841,1
    - Dst: EVP_MD_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:843,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:850,1
    - Dst: EVP_MD_CTX*::digest::md_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:854,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 859
    functionName: EVP_MD_CTX_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - OSSL_PARAM_construct_utf8_string
    - EVP_MD_CTX*::digest::md_ctrl
    - ERR_raise
    - OSSL_PARAM_construct_octet_string
    - EVP_MD_CTX_get_params
    - EVP_MD_CTX_set_params
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:863,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:866,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 874
    functionName: evp_md_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *evp_md_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_get
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:891,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:898,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - name
    - vlegacy_nid
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 904
    functionName: set_legacy_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_nid
    - OBJ_NAME_get
    linkageType: ''
    returnType: void
    signature: void set_legacy_nid(const char *name, void *vlegacy_nid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:914,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:915,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:916,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:917,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:919,1
    - Dst: evp_do_md_getparams
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 932
    functionName: evp_md_cache_constants
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - evp_do_md_getparams
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int evp_md_cache_constants(EVP_MD *md)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_new
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:943,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:944,1
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:950,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:952,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:953,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:959,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:960,1
    - Dst: OSSL_FUNC_digest_newctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:969,1
    - Dst: OSSL_FUNC_digest_init
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:975,1
    - Dst: OSSL_FUNC_digest_update
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:981,1
    - Dst: OSSL_FUNC_digest_final
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:987,1
    - Dst: OSSL_FUNC_digest_digest
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:993,1
    - Dst: OSSL_FUNC_digest_freectx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:998,1
    - Dst: OSSL_FUNC_digest_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1004,1
    - Dst: OSSL_FUNC_digest_get_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1008,1
    - Dst: OSSL_FUNC_digest_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1012,1
    - Dst: OSSL_FUNC_digest_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1016,1
    - Dst: OSSL_FUNC_digest_gettable_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1020,1
    - Dst: OSSL_FUNC_digest_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1025,1
    - Dst: OSSL_FUNC_digest_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1030,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1042,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1043,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1048,1
    - Dst: evp_md_cache_constants
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1050,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1051,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1052,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 97
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 934
    functionDepth: 9
    functionLinenumber: 934
    functionLinenumberEnd: 1057
    functionName: evp_md_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_digest_init
    - OSSL_FUNC_digest_gettable_params
    - OSSL_FUNC_digest_get_ctx_params
    - ossl_algorithm_get1_first_name
    - OSSL_FUNC_digest_settable_ctx_params
    - OSSL_FUNC_digest_final
    - OSSL_FUNC_digest_dupctx
    - OSSL_FUNC_digest_gettable_ctx_params
    - ossl_provider_up_ref
    - ERR_raise
    - OSSL_FUNC_digest_freectx
    - OSSL_FUNC_digest_update
    - evp_md_new
    - OSSL_FUNC_digest_set_ctx_params
    - OSSL_FUNC_digest_newctx
    - evp_md_cache_constants
    - OSSL_FUNC_digest_get_params
    - evp_names_do_all
    - OSSL_FUNC_digest_digest
    - EVP_MD_free
    linkageType: ''
    returnType: void
    signature: "void *evp_md_from_algorithm(int name_id,\n                                   const
      OSSL_ALGORITHM *algodef,\n                                   OSSL_PROVIDER *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1062
    functionName: evp_md_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_up_ref
    linkageType: ''
    returnType: int
    signature: int evp_md_up_ref(void *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1067
    functionName: evp_md_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_free
    linkageType: ''
    returnType: void
    signature: void evp_md_free(void *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 10
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: EVP_MD_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 14
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_MD
    signature: "EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,\n                     const
      char *properties)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1086
    functionName: EVP_MD_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 3
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_MD_up_ref(EVP_MD *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1095,1
    - Dst: evp_md_free_int
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1099
    functionName: EVP_MD_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 17
    functionsReached:
    - evp_md_free_int
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_MD_free(EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/digest.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1101
    functionDepth: 10
    functionLinenumber: 1101
    functionLinenumberEnd: 1108
    functionName: EVP_MD_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/digest.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx,\n                            void
      (*fn)(EVP_MD *mac, void *arg),\n                            void *arg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:32,1
    - Dst: evp_keymgmt_gen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:41,1
    - Dst: evp_keymgmt_gen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:46,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:52,1
    - Dst: EVP_PKEY_CTX*::pmeth::paramgen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:72,1
    - Dst: EVP_PKEY_CTX*::pmeth::keygen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:76,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:83,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:89,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 2
    argNames:
    - ctx
    - operation
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 92
    functionName: gen_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 5
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::paramgen_init
    - evp_pkey_ctx_free_old_ops
    - evp_keymgmt_gen_init
    - ERR_raise
    - EVP_PKEY_CTX*::pmeth::keygen_init
    linkageType: ''
    returnType: int
    signature: int gen_init(EVP_PKEY_CTX *ctx, int operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: EVP_PKEY_paramgen_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - gen_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: EVP_PKEY_keygen_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - gen_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:113,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:115,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:117,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:119,1
    - Dst: EVP_PKEY_CTX*::pkey_gencb
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: ossl_callback_to_pkey_gencb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pkey_gencb
    - OSSL_PARAM_get_int
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int ossl_callback_to_pkey_gencb(const OSSL_PARAM params[], void *arg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:148,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:171,1
    - Dst: evp_keymgmt_gen_set_template
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:180,1
    - Dst: evp_keymgmt_util_gen
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:189,1
    - Dst: evp_pkey_free_legacy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:198,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:220,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:220,1
    - Dst: EVP_PKEY_CTX*::pmeth::paramgen
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:225,1
    - Dst: EVP_PKEY_CTX*::pmeth::keygen
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:228,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:253,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 257
    functionName: EVP_PKEY_generate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::keygen
    - evp_keymgmt_util_gen
    - EVP_PKEY_CTX*::pmeth::paramgen
    - evp_keymgmt_gen_set_template
    - evp_pkey_is_provided
    - ERR_raise
    - evp_pkey_export_to_provider
    - EVP_PKEY_free
    - EVP_PKEY_new
    - evp_pkey_free_legacy
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_generate(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:262,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 7
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: EVP_PKEY_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_generate
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:271,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - ppkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 7
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: EVP_PKEY_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_generate
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_gen_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: EVP_PKEY_CTX_set_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: EVP_PKEY_CTX_get_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_gen_cb
    signature: EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_get_arg
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:294,1
    - Dst: EVP_PKEY_CTX*::pkey_gencb
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - gcb
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: trans_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pkey_gencb
    - BN_GENCB_get_arg
    linkageType: ''
    returnType: int
    signature: int trans_cb(int a, int b, BN_GENCB *gcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cb
    - ctx
    argTypes:
    - BN_GENCB*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: evp_pkey_set_cb_translate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set
    linkageType: ''
    returnType: void
    signature: void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: EVP_PKEY_CTX_get_keygen_info
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:321,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:324,1
    - Dst: EVP_PKEY_CTX_set_mac_key
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:326,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:328,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - type
    - e
    - key
    - keylen
    argTypes:
    - int
    - ENGINE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 316
    functionDepth: 8
    functionLinenumber: 316
    functionLinenumberEnd: 333
    functionName: EVP_PKEY_new_mac_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 12
    functionsReached:
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_mac_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e,\n                               const
      unsigned char *key, int keylen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:344,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - operation
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: fromdata_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    - evp_pkey_ctx_free_old_ops
    linkageType: ''
    returnType: int
    signature: int fromdata_init(EVP_PKEY_CTX *ctx, int operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromdata_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 5
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: EVP_PKEY_fromdata_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 2
    functionsReached:
    - fromdata_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_fromdata_init(EVP_PKEY_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:370,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:378,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:381,1
    - Dst: evp_keymgmt_util_fromdata
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:385,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - ppkey
    - selection
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY**
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 363
    functionDepth: 5
    functionLinenumber: 363
    functionLinenumberEnd: 395
    functionName: EVP_PKEY_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_new
    - evp_keymgmt_util_fromdata
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection,\n
      \                     OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fromdata_init
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:400,1
    - Dst: evp_keymgmt_import_types
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - selection
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 397
    functionDepth: 5
    functionLinenumber: 397
    functionLinenumberEnd: 403
    functionName: EVP_PKEY_fromdata_settable
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_import_types
    - fromdata_init
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_PKEY_fromdata_settable(EVP_PKEY_CTX *ctx, int selection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: ossl_pkey_todata_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_dup
    linkageType: ''
    returnType: int
    signature: int ossl_pkey_todata_cb(const OSSL_PARAM params[], void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkey
    - selection
    - params
    argTypes:
    - EVP_PKEY*
    - int
    - OSSL_PARAM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: EVP_PKEY_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_export
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM
      **params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct fake_import_data_st*::export_cb
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fake_keydata
    - ignored_selection
    - params
    argTypes:
    - void*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: pkey_fake_import
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 0
    functionsReached:
    - struct fake_import_data_st*::export_cb
    linkageType: ''
    returnType: int
    signature: "int pkey_fake_import(void *fake_keydata, int ignored_selection,\n
      \                           const OSSL_PARAM params[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:442,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:446,1
    - Dst: EVP_PKEY*::ameth::export_to
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:456,1
    - Dst: evp_keymgmt_util_export
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pkey
    - selection
    - export_cb
    - export_cbarg
    argTypes:
    - EVP_PKEY*
    - int
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 461
    functionName: EVP_PKEY_export
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_gn.c
    functionUses: 1
    functionsReached:
    - evp_pkey_is_legacy
    - EVP_PKEY*::ameth::export_to
    - ERR_raise
    - evp_keymgmt_util_export
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_export(const EVP_PKEY *pkey, int selection,\n                    OSSL_CALLBACK
      *export_cb, void *export_cbarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:50,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:67,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:68,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:69,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:73,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:76,1
    - Dst: OSSL_PARAM_construct_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:78,1
    - Dst: OSSL_PARAM_construct_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:79,1
    - Dst: OSSL_PARAM_construct_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:80,1
    - Dst: OSSL_PARAM_construct_uint64
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:81,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:82,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:83,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 12
    argNames:
    - pass
    - passlen
    - salt
    - saltlen
    - N
    - r
    - p
    - maxmem
    - key
    - keylen
    - ctx
    - propq
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - size_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - unsigned char*
    - size_t
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 88
    functionName: EVP_PBE_scrypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - EVP_KDF_fetch
    - EVP_KDF_free
    - EVP_KDF_CTX_free
    - ERR_raise
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_construct_uint64
    linkageType: ''
    returnType: int
    signature: "int EVP_PBE_scrypt_ex(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,\n                      OSSL_LIB_CTX *ctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_scrypt_ex
      Src: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: EVP_PBE_scrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pbe_scrypt.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_scrypt_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:24,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keymgmt1
    - keymgmt2
    argTypes:
    - EVP_KEYMGMT*
    - EVP_KEYMGMT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 10
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: match_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT_is_a
    linkageType: ''
    returnType: int
    signature: int match_type(const EVP_KEYMGMT *keymgmt1, const EVP_KEYMGMT *keymgmt2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_newdata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:37,1
    - Dst: evp_keymgmt_import
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:50,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: evp_keymgmt_util_try_import
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_freedata
    - evp_keymgmt_newdata
    - evp_keymgmt_import
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_util_try_import(const OSSL_PARAM params[], void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_set_type_by_keymgmt
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:65,1
    - Dst: evp_keymgmt_util_cache_keyinfo
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - pkey
    - keymgmt
    - keydata
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: evp_keymgmt_util_assign_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_util_cache_keyinfo
    - EVP_PKEY_set_type_by_keymgmt
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_util_assign_pkey(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt,\n
      \                                void *keydata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:79,1
    - Dst: evp_keymgmt_util_assign_pkey
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:80,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - keymgmt
    - keydata
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: evp_keymgmt_util_make_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - evp_keymgmt_util_assign_pkey
    - EVP_PKEY_new
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *evp_keymgmt_util_make_pkey(EVP_KEYMGMT *keymgmt, void *keydata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_export
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - pk
    - selection
    - export_cb
    - export_cbarg
    argTypes:
    - EVP_PKEY*
    - int
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: evp_keymgmt_util_export
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 3
    functionsReached:
    - evp_keymgmt_export
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_util_export(const EVP_PKEY *pk, int selection,\n                            OSSL_CALLBACK
      *export_cb, void *export_cbarg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:122,1
    - Dst: evp_keymgmt_util_find_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:131,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:135,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:139,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:149,1
    - Dst: match_type
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:149,1
    - Dst: evp_keymgmt_util_export
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:167,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:172,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:173,1
    - Dst: evp_keymgmt_util_find_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:177,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:181,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:187,1
    - Dst: evp_keymgmt_util_clear_operation_cache
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:197,1
    - Dst: evp_keymgmt_util_cache_keydata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:200,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:202,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:203,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:210,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - pk
    - keymgmt
    - selection
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 96
    functionDepth: 11
    functionLinenumber: 96
    functionLinenumberEnd: 213
    functionName: evp_keymgmt_util_export_to_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 1
    functionsReached:
    - match_type
    - evp_keymgmt_freedata
    - evp_keymgmt_util_clear_operation_cache
    - evp_keymgmt_util_cache_keydata
    - evp_keymgmt_util_export
    - evp_keymgmt_util_find_operation_cache
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - ossl_assert
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_util_export_to_provider(EVP_PKEY *pk, EVP_KEYMGMT
      *keymgmt,\n                                          int selection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:217,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:218,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - OP_CACHE_ELEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: op_cache_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_freedata
    - OPENSSL_free
    - EVP_KEYMGMT_free
    linkageType: ''
    returnType: void
    signature: void op_cache_free(OP_CACHE_ELEM *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:225,1
    - Dst: sk_OP_CACHE_ELEM_pop_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:227,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - pk
    - locking
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: evp_keymgmt_util_clear_operation_cache
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 3
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - sk_OP_CACHE_ELEM_pop_free
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_util_clear_operation_cache(EVP_PKEY *pk, int locking)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OP_CACHE_ELEM_num
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:240,1
    - Dst: sk_OP_CACHE_ELEM_value
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - pk
    - keymgmt
    - selection
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 258
    functionName: evp_keymgmt_util_find_operation_cache
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 2
    functionsReached:
    - sk_OP_CACHE_ELEM_value
    - sk_OP_CACHE_ELEM_num
    linkageType: ''
    returnType: OP_CACHE_ELEM
    signature: "OP_CACHE_ELEM *evp_keymgmt_util_find_operation_cache(EVP_PKEY *pk,\n
      \                                                    EVP_KEYMGMT *keymgmt,\n
      \                                                    int selection)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_OP_CACHE_ELEM_new_null
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:267,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:272,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:279,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:280,1
    - Dst: sk_OP_CACHE_ELEM_push
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:284,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:285,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - pk
    - keymgmt
    - keydata
    - selection
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 291
    functionName: evp_keymgmt_util_cache_keydata
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 2
    functionsReached:
    - sk_OP_CACHE_ELEM_push
    - EVP_KEYMGMT_up_ref
    - OPENSSL_malloc
    - sk_OP_CACHE_ELEM_new_null
    - OPENSSL_free
    - EVP_KEYMGMT_free
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_util_cache_keydata(EVP_PKEY *pk, EVP_KEYMGMT *keymgmt,\n
      \                                  void *keydata, int selection)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:306,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:307,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:309,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:310,1
    - Dst: evp_keymgmt_get_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pk
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 317
    functionName: evp_keymgmt_util_cache_keyinfo
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - evp_keymgmt_get_params
    linkageType: ''
    returnType: void
    signature: void evp_keymgmt_util_cache_keyinfo(EVP_PKEY *pk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_newdata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:324,1
    - Dst: evp_keymgmt_import
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:325,1
    - Dst: evp_keymgmt_util_assign_pkey
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:326,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - target
    - keymgmt
    - selection
    - params
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 331
    functionName: evp_keymgmt_util_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 1
    functionsReached:
    - evp_keymgmt_freedata
    - evp_keymgmt_util_assign_pkey
    - evp_keymgmt_newdata
    - evp_keymgmt_import
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_util_fromdata(EVP_PKEY *target, EVP_KEYMGMT *keymgmt,\n
      \                               int selection, const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_has
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pk
    - selection
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 340
    functionName: evp_keymgmt_util_has
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 3
    functionsReached:
    - evp_keymgmt_has
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_util_has(EVP_PKEY *pk, int selection)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: match_type
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:387,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:388,1
    - Dst: evp_keymgmt_util_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:403,1
    - Dst: evp_keymgmt_util_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:424,1
    - Dst: evp_keymgmt_match
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:446,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 3
    argNames:
    - pk1
    - pk2
    - selection
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 355
    functionDepth: 12
    functionLinenumber: 355
    functionLinenumberEnd: 447
    functionName: evp_keymgmt_util_match
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 1
    functionsReached:
    - evp_keymgmt_util_export_to_provider
    - evp_keymgmt_match
    - ERR_raise
    - match_type
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_util_match(EVP_PKEY *pk1, EVP_PKEY *pk2, int selection)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_dup
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:469,1
    - Dst: match_type
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:474,1
    - Dst: evp_keymgmt_util_export
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:481,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:493,1
    - Dst: EVP_PKEY_set_type_by_keymgmt
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:507,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:508,1
    - Dst: evp_keymgmt_util_cache_keyinfo
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:512,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - to
    - from
    - selection
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 449
    functionDepth: 11
    functionLinenumber: 449
    functionLinenumberEnd: 515
    functionName: evp_keymgmt_util_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 2
    functionsReached:
    - evp_keymgmt_dup
    - EVP_PKEY_set_type_by_keymgmt
    - match_type
    - evp_keymgmt_freedata
    - ERR_raise
    - evp_keymgmt_util_cache_keyinfo
    - evp_keymgmt_util_export
    linkageType: ''
    returnType: int
    signature: int evp_keymgmt_util_copy(EVP_PKEY *to, EVP_PKEY *from, int selection)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_keymgmt_gen
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:522,1
    - Dst: evp_keymgmt_util_assign_pkey
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:523,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - target
    - keymgmt
    - genctx
    - cb
    - cbarg
    argTypes:
    - EVP_PKEY*
    - EVP_KEYMGMT*
    - void*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 517
    functionDepth: 4
    functionLinenumber: 517
    functionLinenumberEnd: 529
    functionName: evp_keymgmt_util_gen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 1
    functionsReached:
    - evp_keymgmt_freedata
    - evp_keymgmt_util_assign_pkey
    - evp_keymgmt_gen
    linkageType: ''
    returnType: void
    signature: "void *evp_keymgmt_util_gen(EVP_PKEY *target, EVP_KEYMGMT *keymgmt,\n
      \                          void *genctx, OSSL_CALLBACK *cb, void *cbarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:548,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:551,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:554,1
    - Dst: evp_keymgmt_get_params
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:556,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:559,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:565,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - keymgmt
    - keydata
    - mdname
    - mdname_sz
    argTypes:
    - EVP_KEYMGMT*
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 575
    functionName: evp_keymgmt_util_get_deflt_digest_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 2
    functionsReached:
    - evp_keymgmt_get_params
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_modified
    - OSSL_PARAM_construct_end
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: int
    signature: "int evp_keymgmt_util_get_deflt_digest_name(EVP_KEYMGMT *keymgmt,\n
      \                                          void *keydata,\n                                           char
      *mdname, size_t mdname_sz)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT*::query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:589,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - keymgmt
    - op_id
    argTypes:
    - EVP_KEYMGMT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 594
    functionName: evp_keymgmt_util_query_operation_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/keymgmt_lib.c
    functionUses: 4
    functionsReached:
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT*::query_operation_name
    linkageType: ''
    returnType: char
    signature: "char *evp_keymgmt_util_query_operation_name(EVP_KEYMGMT *keymgmt,\n
      \                                                 int op_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:44,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:45,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: idea_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_idea.c
    functionUses: 0
    functionsReached:
    - BLOCK_CIPHER_ecb_loop
    - IDEA_ecb_encrypt
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int idea_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:61,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:63,1
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:67,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:67,1
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:71,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:72,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:72,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/evp/e_idea.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 76
    functionName: idea_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_idea.c
    functionUses: 0
    functionsReached:
    - IDEA_set_encrypt_key
    - IDEA_set_decrypt_key
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_get_mode
    - EVP_C_DATA
    linkageType: ''
    returnType: int
    signature: "int idea_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEED_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_seed.c:39,1
    - Dst: EVP_C_DATA
      Src: /src/openssl-3.0.15/crypto/evp/e_seed.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: seed_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_seed.c
    functionUses: 0
    functionsReached:
    - EVP_C_DATA
    - SEED_set_key
    linkageType: ''
    returnType: int
    signature: "int seed_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                        const unsigned char *iv, int enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:31,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:35,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:39,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:39,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:40,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:41,1
    - Dst: EVP_PKEY*::ameth::priv_decode_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:47,1
    - Dst: EVP_PKEY*::ameth::priv_decode
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:51,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:55,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:62,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - p8
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 64
    functionName: evp_pkcs82pkey_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - i2t_ASN1_OBJECT
    - OBJ_obj2nid
    - EVP_PKEY_set_type
    - ERR_raise_data
    - ERR_raise
    - EVP_PKEY*::ameth::priv_decode_ex
    - EVP_PKEY_free
    - EVP_PKEY_new
    - PKCS8_pkey_get0
    - EVP_PKEY*::ameth::priv_decode
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *evp_pkcs82pkey_legacy(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX
      *libctx,\n                                const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:77,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:84,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:87,1
    - Dst: evp_pkcs82pkey_legacy
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:89,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:91,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p8
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 94
    functionName: EVP_PKCS82PKEY_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - evp_pkcs82pkey_legacy
    - OSSL_DECODER_CTX_new_for_pkey
    - OSSL_DECODER_from_data
    - OPENSSL_clear_free
    - OSSL_DECODER_CTX_free
    - i2d_PKCS8_PRIV_KEY_INFO
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX
      *libctx,\n                            const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKCS82PKEY_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 7
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: EVP_PKCS82PKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 2
    functionsReached:
    - EVP_PKCS82PKEY_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:113,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:119,1
    - Dst: OSSL_ENCODER_to_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:122,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:127,1
    - Dst: PKCS8_PRIV_KEY_INFO_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:133,1
    - Dst: EVP_PKEY*::ameth::priv_encode
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:139,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:140,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:148,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:154,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:157,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 160
    functionName: EVP_PKEY2PKCS8
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - evp_pkey_is_provided
    - d2i_PKCS8_PRIV_KEY_INFO
    - PKCS8_PRIV_KEY_INFO_new
    - ERR_raise
    - PKCS8_PRIV_KEY_INFO_free
    - OPENSSL_free
    - OSSL_ENCODER_CTX_free
    - OSSL_ENCODER_CTX_new_for_pkey
    - EVP_PKEY*::ameth::priv_encode
    - OSSL_ENCODER_to_data
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: EVP_PKEY_get_attr_count
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_attr_count(const EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - nid
    - lastpos
    argTypes:
    - EVP_PKEY*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: EVP_PKEY_get_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - obj
    - lastpos
    argTypes:
    - EVP_PKEY*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: EVP_PKEY_get_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT
      *obj,\n                             int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - loc
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: EVP_PKEY_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - loc
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: EVP_PKEY_delete_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - attr
    argTypes:
    - EVP_PKEY*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: EVP_PKEY_add1_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - obj
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 204
    functionName: EVP_PKEY_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key,\n                              const
      ASN1_OBJECT *obj, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - nid
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: EVP_PKEY_add1_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key,\n                              int
      nid, int type,\n                              const unsigned char *bytes, int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: EVP_PKEY_add1_attr_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key,\n                              const
      char *attrname, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:230,1
    - Dst: EVP_PKEY_get0_asn1
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:233,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: EVP_PKEY_get0_type_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT_get0_name
    - EVP_PKEY_get0_asn1
    - EVP_PKEY_asn1_get0_info
    linkageType: ''
    returnType: char
    signature: char *EVP_PKEY_get0_type_name(const EVP_PKEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:243,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/evp_pkey.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: EVP_PKEY_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_pkey.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_provided
    - EVP_KEYMGMT_get0_provider
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_PKEY_get0_provider(const EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: EVP_ripemd160
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_ripemd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_ripemd160(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:19,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:20,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: dsa_paramgen_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int dsa_paramgen_check(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:35,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:38,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:40,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - dsa_paramgen_check
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dsa_paramgen_type(EVP_PKEY_CTX *ctx, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:50,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:53,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:54,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - gindex
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_gindex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - dsa_paramgen_check
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dsa_paramgen_gindex(EVP_PKEY_CTX *ctx, int gindex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:66,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:69,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:71,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - seed
    - seedlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_octet_string
    - dsa_paramgen_check
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_set_params
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_dsa_paramgen_seed(EVP_PKEY_CTX *ctx,\n                                       const
      unsigned char *seed,\n                                       size_t seedlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:82,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:85,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:86,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - nbits
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - dsa_paramgen_check
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:97,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:100,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:101,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - qbits
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 104
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - dsa_paramgen_check
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dsa_paramgen_q_bits(EVP_PKEY_CTX *ctx, int qbits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dsa_paramgen_check
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:113,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:116,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:119,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:121,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - md_name
    - md_properties
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 124
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_md_props
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - dsa_paramgen_check
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_dsa_paramgen_md_props(EVP_PKEY_CTX *ctx,\n                                           const
      char *md_name,\n                                           const char *md_properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: EVP_PKEY_CTX_set_dsa_paramgen_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dsa_ctrl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_dsa_paramgen_md(EVP_PKEY_CTX *ctx, const EVP_MD
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: EVP_md5
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/legacy_md5.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: BIO_f_base64
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_base64(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:72,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:80,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:84,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: b64_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - BIO_set_data
    - OPENSSL_free
    - EVP_ENCODE_CTX_new
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int b64_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:96,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:101,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:102,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: b64_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - EVP_ENCODE_CTX_free
    - BIO_get_data
    - BIO_set_data
    - OPENSSL_free
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int b64_free(BIO *a)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:117,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:119,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:123,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:130,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:135,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:139,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:140,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:161,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:168,1
    - Dst: BIO_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:188,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:209,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:213,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:222,1
    - Dst: BIO_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:260,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:264,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:277,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:286,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:311,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:322,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 324
    functionName: b64_read
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - EVP_DecodeInit
    - OPENSSL_assert
    - BIO_get_data
    - memcpy
    - BIO_read
    - memmove
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_should_retry
    - EVP_DecodeUpdate
    - EVP_DecodeBlock
    - BIO_get_flags
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int b64_read(BIO *b, char *out, int outl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:334,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:335,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:339,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:346,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:349,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:350,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:351,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:354,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:356,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:359,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:361,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:362,1
    - Dst: BIO_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:375,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:377,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:384,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:390,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:392,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:393,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:401,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:408,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:410,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:411,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:415,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:419,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:420,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:429,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:431,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:434,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:437,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:438,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 90
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 444
    functionName: b64_write
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - BIO_get_data
    - memcpy
    - EVP_EncodeInit
    - BIO_copy_next_retry
    - EVP_EncodeUpdate
    - BIO_clear_retry_flags
    - EVP_EncodeBlock
    - BIO_write
    - BIO_get_flags
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int b64_write(BIO *b, const char *in, int inl)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:453,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:454,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:463,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:469,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:472,1
    - Dst: EVP_ENCODE_CTX_num
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:475,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:478,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:481,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:484,1
    - Dst: b64_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:490,1
    - Dst: BIO_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:494,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:496,1
    - Dst: EVP_ENCODE_CTX_num
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:504,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:506,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:512,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:516,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:517,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:518,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:527,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 531
    functionName: b64_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - BIO_get_data
    - BIO_ctrl
    - b64_write
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - EVP_EncodeBlock
    - EVP_EncodeFinal
    - BIO_get_flags
    - EVP_ENCODE_CTX_num
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long b64_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:535,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 541
    functionName: b64_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long b64_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b64_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:545,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/bio_b64.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: b64_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_b64.c
    functionUses: 0
    functionsReached:
    - strlen
    - b64_write
    linkageType: ''
    returnType: int
    signature: int b64_puts(BIO *b, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_bf.c
    functionUses: 391
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_bf.c:41,1
    - Dst: BF_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_bf.c:45,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_bf.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: bf_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_bf.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_get_key_length
    - BF_set_key
    linkageType: ''
    returnType: int
    signature: "int bf_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n                       const
      unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/dh_support.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: ossl_dh_gen_type_id2name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_support.c
    functionUses: 1
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *ossl_dh_gen_type_id2name(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/evp/dh_support.c:55,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/evp/dh_support.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: ossl_dh_gen_type_name2id
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/dh_support.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_dh_gen_type_name2id(const char *name, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:33,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:37,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:40,1
    - Dst: evp_keymgmt_validate
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - selection
    - checktype
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: try_provided_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_is_legacy
    - evp_keymgmt_validate
    - ERR_raise
    - evp_pkey_export_to_provider
    linkageType: ''
    returnType: int
    signature: int try_provided_check(EVP_PKEY_CTX *ctx, int selection, int checktype)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:53,1
    - Dst: try_provided_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:57,1
    - Dst: EVP_PKEY_CTX*::pmeth::public_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:68,1
    - Dst: EVP_PKEY*::ameth::pkey_public_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - checktype
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 79
    functionName: evp_pkey_public_check_combined
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::public_check
    - try_provided_check
    - ERR_raise
    - EVP_PKEY*::ameth::pkey_public_check
    linkageType: ''
    returnType: int
    signature: int evp_pkey_public_check_combined(EVP_PKEY_CTX *ctx, int checktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_public_check_combined
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: EVP_PKEY_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 1
    functionsReached:
    - evp_pkey_public_check_combined
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_public_check_combined
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 8
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: EVP_PKEY_public_check_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - evp_pkey_public_check_combined
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_public_check_quick(EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:97,1
    - Dst: try_provided_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:101,1
    - Dst: EVP_PKEY_CTX*::pmeth::param_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:113,1
    - Dst: EVP_PKEY*::ameth::pkey_param_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:119,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:122,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - checktype
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 7
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: evp_pkey_param_check_combined
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::pmeth::param_check
    - EVP_PKEY*::ameth::pkey_param_check
    - try_provided_check
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int evp_pkey_param_check_combined(EVP_PKEY_CTX *ctx, int checktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_param_check_combined
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: EVP_PKEY_param_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - evp_pkey_param_check_combined
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_param_check_combined
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: EVP_PKEY_param_check_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - evp_pkey_param_check_combined
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_param_check_quick(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:142,1
    - Dst: try_provided_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 7
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: EVP_PKEY_private_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - try_provided_check
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: EVP_PKEY_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_pairwise_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_check(EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:166,1
    - Dst: try_provided_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:170,1
    - Dst: EVP_PKEY_CTX*::pmeth::check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:181,1
    - Dst: EVP_PKEY*::ameth::pkey_check
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:187,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/pmeth_check.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 160
    functionDepth: 7
    functionLinenumber: 160
    functionLinenumberEnd: 192
    functionName: EVP_PKEY_pairwise_check
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/pmeth_check.c
    functionUses: 1
    functionsReached:
    - try_provided_check
    - EVP_PKEY_CTX*::pmeth::check
    - ERR_raise
    - EVP_PKEY*::ameth::pkey_check
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 392
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: EVP_rc2_64_cbc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc2_64_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: EVP_rc2_40_cbc
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_rc2_40_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC2_set_key
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:95,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:95,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:95,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: rc2_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_get_key_length
    - RC2_set_key
    linkageType: ''
    returnType: int
    signature: "int rc2_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: rc2_meth_to_magic
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int rc2_meth_to_magic(EVP_CIPHER_CTX *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: rc2_magic_to_meth
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int rc2_magic_to_meth(int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:139,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:140,1
    - Dst: ASN1_TYPE_get_int_octetstring
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:141,1
    - Dst: rc2_magic_to_meth
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:144,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:147,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:149,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: rc2_get_asn1_type_and_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - OPENSSL_assert
    - ASN1_TYPE_get_int_octetstring
    - EVP_CipherInit_ex
    - rc2_magic_to_meth
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_get_iv_length
    linkageType: ''
    returnType: int
    signature: int rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc2_meth_to_magic
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:163,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:164,1
    - Dst: ASN1_TYPE_set_int_octetstring
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: rc2_set_asn1_type_and_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_iv_length
    - ASN1_TYPE_set_int_octetstring
    - rc2_meth_to_magic
    linkageType: ''
    returnType: int
    signature: int rc2_set_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:174,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:174,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:178,1
    - Dst: data
      Src: /src/openssl-3.0.15/crypto/evp/e_rc2.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 196
    functionName: rc2_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_rc2.c
    functionUses: 0
    functionsReached:
    - data
    - EVP_CIPHER_CTX_get_key_length
    linkageType: ''
    returnType: int
    signature: int rc2_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_param_to_asn1_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: EVP_CIPHER_param_to_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_cipher_param_to_asn1_ex
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_asn1_to_param_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: EVP_CIPHER_asn1_to_param
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - evp_cipher_asn1_to_param_ex
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:52,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:53,1
    - Dst: ASN1_TYPE_get_octetstring
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:55,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: EVP_CIPHER_get_asn1_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_iv_length
    - ASN1_TYPE_get_octetstring
    - EVP_CipherInit_ex
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *ctx, ASN1_TYPE *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_original_iv
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:72,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:73,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:74,1
    - Dst: ASN1_TYPE_set_octetstring
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: EVP_CIPHER_set_asn1_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_iv_length
    - ASN1_TYPE_set_octetstring
    - EVP_CIPHER_CTX_original_iv
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER*::set_asn1_parameters
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:103,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:104,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:105,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:107,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:108,1
    - Dst: evp_cipher_set_asn1_aead_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:113,1
    - Dst: EVP_CIPHER_set_asn1_iv
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:123,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:133,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:136,1
    - Dst: EVP_CIPHER_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:138,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:142,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:144,1
    - Dst: OSSL_PARAM_set_all_unmodified
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:147,1
    - Dst: EVP_CIPHER_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:149,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:150,1
    - Dst: d2i_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:165,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 3
    argNames:
    - c
    - type
    - asn1_params
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    - evp_cipher_aead_asn1_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 169
    functionName: evp_cipher_param_to_asn1_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER*::set_asn1_parameters
    - OSSL_PARAM_set_all_unmodified
    - EVP_CIPHER_get_mode
    - OPENSSL_malloc
    - evp_cipher_set_asn1_aead_params
    - d2i_ASN1_TYPE
    - EVP_CIPHER_get_flags
    - ASN1_TYPE_set
    - EVP_CIPHER_CTX_get_params
    - ERR_raise
    - OPENSSL_free
    - OSSL_PARAM_modified
    - OSSL_PARAM_construct_end
    - EVP_CIPHER_is_a
    - EVP_CIPHER_set_asn1_iv
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: int
    signature: "int evp_cipher_param_to_asn1_ex(EVP_CIPHER_CTX *c, ASN1_TYPE *type,\n
      \                               evp_cipher_aead_asn1_params *asn1_params)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER*::get_asn1_parameters
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:194,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:195,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:196,1
    - Dst: evp_cipher_get_asn1_aead_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:202,1
    - Dst: EVP_CIPHER_get_asn1_iv
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:212,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:219,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:221,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:224,1
    - Dst: EVP_CIPHER_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:225,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:236,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - c
    - type
    - asn1_params
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    - evp_cipher_aead_asn1_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 240
    functionName: evp_cipher_asn1_to_param_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_CTX_set_params
    - EVP_CIPHER_get_mode
    - EVP_CIPHER_get_flags
    - ERR_raise
    - EVP_CIPHER*::get_asn1_parameters
    - OPENSSL_free
    - OSSL_PARAM_construct_end
    - EVP_CIPHER_get_asn1_iv
    - OSSL_PARAM_construct_octet_string
    - evp_cipher_get_asn1_aead_params
    - i2d_ASN1_TYPE
    linkageType: ''
    returnType: int
    signature: "int evp_cipher_asn1_to_param_ex(EVP_CIPHER_CTX *c, ASN1_TYPE *type,\n
      \                               evp_cipher_aead_asn1_params *asn1_params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_type_get_octetstring_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:252,1
    - Dst: ossl_asn1_type_get_octetstring_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:255,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - c
    - type
    - asn1_params
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    - evp_cipher_aead_asn1_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 261
    functionName: evp_cipher_get_asn1_aead_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ossl_asn1_type_get_octetstring_int
    linkageType: ''
    returnType: int
    signature: "int evp_cipher_get_asn1_aead_params(EVP_CIPHER_CTX *c, ASN1_TYPE *type,\n
      \                                   evp_cipher_aead_asn1_params *asn1_params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_type_set_octetstring_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - c
    - type
    - asn1_params
    argTypes:
    - EVP_CIPHER_CTX*
    - ASN1_TYPE*
    - evp_cipher_aead_asn1_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: evp_cipher_set_asn1_aead_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - ossl_asn1_type_set_octetstring_int
    linkageType: ''
    returnType: int
    signature: "int evp_cipher_set_asn1_aead_params(EVP_CIPHER_CTX *c, ASN1_TYPE *type,\n
      \                                   evp_cipher_aead_asn1_params *asn1_params)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:279,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:330,1
    - Dst: OBJ_get0_data
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:332,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 339
    functionName: EVP_CIPHER_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - EVP_CIPHER_get_nid
    - OBJ_get0_data
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_type(const EVP_CIPHER *cipher)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:350,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:351,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:352,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:353,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:354,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:355,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:357,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:358,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:360,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:362,1
    - Dst: evp_do_ciph_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:363,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:381,1
    - Dst: EVP_CIPHER_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 386
    functionName: evp_cipher_cache_constants
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_construct_uint
    - OSSL_PARAM_construct_size_t
    - EVP_CIPHER_gettable_ctx_params
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - evp_do_ciph_getparams
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int evp_cipher_cache_constants(EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: EVP_CIPHER_get_block_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_block_size(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: EVP_CIPHER_CTX_get_block_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 12
    functionsReached:
    - EVP_CIPHER_get_block_size
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 401
    functionName: EVP_CIPHER_impl_ctx_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:416,1
    - Dst: EVP_CIPHER_CTX*::cipher::ccipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:419,1
    - Dst: EVP_CIPHER_CTX*::cipher::cupdate
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:424,1
    - Dst: EVP_CIPHER_CTX*::cipher::cfinal
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:428,1
    - Dst: EVP_CIPHER_CTX*::cipher::do_cipher
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 435
    functionName: EVP_Cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_CTX_get_block_size
    - EVP_CIPHER_CTX*::cipher::ccipher
    - EVP_CIPHER_CTX*::cipher::do_cipher
    - EVP_CIPHER_CTX*::cipher::cfinal
    - EVP_CIPHER_CTX*::cipher::cupdate
    linkageType: ''
    returnType: int
    signature: "int EVP_Cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n               const
      unsigned char *in, unsigned int inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: EVP_CIPHER_CTX_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 451
    functionName: EVP_CIPHER_CTX_get0_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_CTX_get0_cipher(const EVP_CIPHER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 463
    functionName: EVP_CIPHER_CTX_get1_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_up_ref
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *EVP_CIPHER_CTX_get1_cipher(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: EVP_CIPHER_CTX_is_encrypting
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_is_encrypting(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: EVP_CIPHER_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long EVP_CIPHER_get_flags(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: EVP_CIPHER_CTX_get_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: EVP_CIPHER_CTX_set_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: EVP_CIPHER_CTX_get_cipher_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - cipher_data
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: EVP_CIPHER_CTX_set_cipher_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: EVP_CIPHER_get_iv_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_iv_length(const EVP_CIPHER *cipher)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:508,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:513,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:515,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:517,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:518,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:525,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:527,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 505
    functionDepth: 5
    functionLinenumber: 505
    functionLinenumberEnd: 539
    functionName: EVP_CIPHER_CTX_get_iv_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 15
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - EVP_CIPHER_get_flags
    - OSSL_PARAM_modified
    - evp_do_ciph_ctx_getparams
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_get_iv_length
    - OSSL_PARAM_get_int
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:547,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 550
    functionName: EVP_CIPHER_CTX_get_tag_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_do_ciph_ctx_getparams
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_tag_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:560,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: EVP_CIPHER_CTX_original_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - evp_do_ciph_ctx_getparams
    - OSSL_PARAM_construct_octet_ptr
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:577,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 582
    functionName: EVP_CIPHER_CTX_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached:
    - evp_do_ciph_ctx_getparams
    - OSSL_PARAM_construct_octet_ptr
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:591,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 596
    functionName: EVP_CIPHER_CTX_iv_noconst
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 9
    functionsReached:
    - evp_do_ciph_ctx_getparams
    - OSSL_PARAM_construct_octet_ptr
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:604,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 606
    functionName: EVP_CIPHER_CTX_get_updated_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_octet_string
    - evp_do_ciph_ctx_getparams
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_updated_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:613,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - EVP_CIPHER_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: EVP_CIPHER_CTX_get_original_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_octet_string
    - evp_do_ciph_ctx_getparams
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_original_iv(EVP_CIPHER_CTX *ctx, void *buf,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 620
    functionName: EVP_CIPHER_CTX_buf_noconst
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:628,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 632
    functionName: EVP_CIPHER_CTX_get_num
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 17
    functionsReached:
    - OSSL_PARAM_construct_uint
    - evp_do_ciph_ctx_getparams
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_num(const EVP_CIPHER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:640,1
    - Dst: evp_do_ciph_ctx_setparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - num
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: EVP_CIPHER_CTX_set_num
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 17
    functionsReached:
    - OSSL_PARAM_construct_uint
    - evp_do_ciph_ctx_setparams
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 651
    functionName: EVP_CIPHER_get_key_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_key_length(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:659,1
    - Dst: evp_do_ciph_ctx_getparams
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: EVP_CIPHER_CTX_get_key_length
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 43
    functionsReached:
    - evp_do_ciph_ctx_getparams
    - OSSL_PARAM_construct_size_t
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: EVP_CIPHER_get_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 673
    functionName: EVP_CIPHER_CTX_get_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_get_nid(const EVP_CIPHER_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:680,1
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:681,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cipher
    - name
    argTypes:
    - EVP_CIPHER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 675
    functionDepth: 9
    functionLinenumber: 675
    functionLinenumberEnd: 682
    functionName: EVP_CIPHER_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_CIPHER_get0_name
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 687
    functionName: evp_cipher_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_cipher_get_number(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:694,1
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 698
    functionName: EVP_CIPHER_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached:
    - OBJ_nid2sn
    - EVP_CIPHER_get_nid
    linkageType: ''
    returnType: char
    signature: char *EVP_CIPHER_get0_name(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:705,1
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 709
    functionName: EVP_CIPHER_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - EVP_CIPHER_get_nid
    linkageType: ''
    returnType: char
    signature: char *EVP_CIPHER_get0_description(const EVP_CIPHER *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cipher
    - data
    argTypes:
    - EVP_CIPHER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 711
    functionDepth: 9
    functionLinenumber: 711
    functionLinenumberEnd: 719
    functionName: EVP_CIPHER_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher,\n                            void
      (*fn)(const char *name, void *data),\n                            void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 724
    functionName: EVP_CIPHER_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_CIPHER_get0_provider(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 729
    functionName: EVP_CIPHER_get_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_get_flags
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_get_mode(const EVP_CIPHER *cipher)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:736,1
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:737,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - md
    - name
    argTypes:
    - EVP_MD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 731
    functionDepth: 9
    functionLinenumber: 731
    functionLinenumberEnd: 738
    functionName: EVP_MD_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    - EVP_MD_get0_name
    linkageType: ''
    returnType: int
    signature: int EVP_MD_is_a(const EVP_MD *md, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 743
    functionName: evp_md_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_md_get_number(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:750,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: EVP_MD_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - EVP_MD_nid
    linkageType: ''
    returnType: char
    signature: char *EVP_MD_get0_description(const EVP_MD *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:763,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 767
    functionName: EVP_MD_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 8
    functionsReached:
    - OBJ_nid2sn
    - EVP_MD_nid
    linkageType: ''
    returnType: char
    signature: char *EVP_MD_get0_name(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - data
    argTypes:
    - EVP_MD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 9
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: EVP_MD_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_names_do_all(const EVP_MD *md,\n                        void
      (*fn)(const char *name, void *data),\n                        void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 782
    functionName: EVP_MD_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_MD_get0_provider(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 787
    functionName: EVP_MD_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_get_type(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 792
    functionName: EVP_MD_get_pkey_type
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_get_pkey_type(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: EVP_MD_get_block_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_MD_get_block_size(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 810
    functionName: EVP_MD_get_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 13
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_MD_get_size(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: EVP_MD_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long EVP_MD_get_flags(const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - md_type
    - pkey_type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 827
    functionName: EVP_MD_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached:
    - evp_md_new
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:840,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 848
    functionName: EVP_MD_meth_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_new
    - memcpy
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_meth_dup(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:852,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:853,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:854,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 856
    functionName: evp_md_free_int
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void evp_md_free_int(EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_free_int
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:863,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 864
    functionName: EVP_MD_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 10
    functionsReached:
    - evp_md_free_int
    linkageType: ''
    returnType: void
    signature: void EVP_MD_meth_free(EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - md
    - blocksize
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 873
    functionName: EVP_MD_meth_set_input_blocksize
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - md
    - resultsize
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 881
    functionName: EVP_MD_meth_set_result_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - md
    - datasize
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 889
    functionName: EVP_MD_meth_set_app_datasize
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - md
    - flags
    argTypes:
    - EVP_MD*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 897
    functionName: EVP_MD_meth_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 905
    functionName: EVP_MD_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 915
    functionName: EVP_MD_meth_set_update
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx,\n
      \                                                    const void *data,\n                                                     size_t
      count))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 924
    functionName: EVP_MD_meth_set_final
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx,\n
      \                                                  unsigned char *md))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 933
    functionName: EVP_MD_meth_set_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to,\n
      \                                                const EVP_MD_CTX *from))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 941
    functionName: EVP_MD_meth_set_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 950
    functionName: EVP_MD_meth_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx,
      int cmd,\n                                                 int p1, void *p2))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 955
    functionName: EVP_MD_meth_get_input_blocksize
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_get_input_blocksize(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 959
    functionName: EVP_MD_meth_get_result_size
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_get_result_size(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: EVP_MD_meth_get_app_datasize
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_meth_get_app_datasize(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: EVP_MD_meth_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long EVP_MD_meth_get_flags(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 971
    functionName: (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: "(*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                               const void *data,\n                                                size_t
      count)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                               const void *data,\n                                                size_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: "(*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n                                               unsigned
      char *md)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,\n
      \                                              unsigned char *md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_MD_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 987
    functionName: "(*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
      EVP_MD_CTX *from)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,\n                                              const
      EVP_MD_CTX *from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 991
    functionName: (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_MD_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: "(*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int
      cmd,\n                                              int p1, void *p2)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int
      cmd,\n                                              int p1, void *p2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1004
    functionName: EVP_MD_CTX_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1012
    functionName: EVP_MD_CTX_get0_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_CTX_get0_md(const EVP_MD_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1024
    functionName: EVP_MD_CTX_get1_md
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_up_ref
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_MD_CTX_get1_md(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1029
    functionName: EVP_MD_CTX_get_pkey_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *EVP_MD_CTX_get_pkey_ctx(const EVP_MD_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_test_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1038,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1039,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1045,1
    - Dst: EVP_MD_CTX_clear_flags
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - pctx
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1032
    functionDepth: 5
    functionLinenumber: 1032
    functionLinenumberEnd: 1049
    functionName: EVP_MD_CTX_set_pkey_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_test_flags
    - EVP_PKEY_CTX_free
    - EVP_MD_CTX_clear_flags
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1055
    functionName: EVP_MD_CTX_get0_md_data
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *EVP_MD_CTX_get0_md_data(const EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1061
    functionName: "(*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count)"
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,\n                                             const
      void *data, size_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    functionName: EVP_MD_CTX_set_update_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1073
    functionName: EVP_MD_CTX_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1078
    functionName: EVP_MD_CTX_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_MD_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1083
    functionName: EVP_MD_CTX_test_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1090,1
    - Dst: EVP_CIPHER_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - enable
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1085
    functionDepth: 2
    functionLinenumber: 1085
    functionLinenumberEnd: 1092
    functionName: evp_cipher_ctx_enable_use_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_uint
    - EVP_CIPHER_CTX_set_params
    linkageType: ''
    returnType: int
    signature: "int evp_cipher_ctx_enable_use_bits(EVP_CIPHER_CTX *ctx,\n                                          unsigned
      int enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_ctx_enable_use_bits
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1101
    functionName: EVP_CIPHER_CTX_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_cipher_ctx_enable_use_bits
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_cipher_ctx_enable_use_bits
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1103
    functionDepth: 3
    functionLinenumber: 1103
    functionLinenumberEnd: 1110
    functionName: EVP_CIPHER_CTX_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - evp_cipher_ctx_enable_use_bits
    linkageType: ''
    returnType: void
    signature: void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1115
    functionName: EVP_CIPHER_CTX_test_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1124,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1132,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1119
    functionDepth: 3
    functionLinenumber: 1119
    functionLinenumberEnd: 1135
    functionName: EVP_PKEY_CTX_set_group_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_params
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_group_name(EVP_PKEY_CTX *ctx, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1142,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1144,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1152,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - name
    - namelen
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1137
    functionDepth: 3
    functionLinenumber: 1137
    functionLinenumberEnd: 1157
    functionName: EVP_PKEY_CTX_get_group_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_get_params
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_group_name(EVP_PKEY_CTX *ctx, char *name, size_t
      namelen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1172,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1175,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1176,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1177,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - libctx
    - name
    - propq
    - params
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1168
    functionDepth: 7
    functionLinenumber: 1168
    functionLinenumberEnd: 1181
    functionName: evp_pkey_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_free
    - EVP_PKEY_generate
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *evp_pkey_keygen(OSSL_LIB_CTX *libctx, const char *name,\n
      \                                const char *propq, const OSSL_PARAM *params)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1192,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1194,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1195,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1196,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1197,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1198,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1199,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1201,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1202,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1203,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1204,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1206,1
    - Dst: evp_pkey_keygen
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1209,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/evp/evp_lib.c:1212,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - libctx
    - propq
    - type
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1183
    functionDepth: 8
    functionLinenumber: 1183
    functionLinenumberEnd: 1214
    functionName: EVP_PKEY_Q_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/evp_lib.c
    functionUses: 0
    functionsReached:
    - va_arg
    - evp_pkey_keygen
    - OSSL_PARAM_construct_size_t
    - va_start
    - va_end
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *EVP_PKEY_Q_keygen(OSSL_LIB_CTX *libctx, const char *propq,\n
      \                           const char *type, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_CIPHER_ecb_loop
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:63,1
    - Dst: DES_ecb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:64,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:65,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: des_ecb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - BLOCK_CIPHER_ecb_loop
    - DES_ecb_encrypt
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int des_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:74,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:75,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:76,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:78,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:84,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:85,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:86,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: des_ofb_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - EVP_CIPHER_CTX_get_cipher_data
    - DES_ofb64_encrypt
    - EVP_CIPHER_CTX_set_num
    linkageType: ''
    returnType: int
    signature: "int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:96,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:103,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:104,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:106,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:112,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:113,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: des_cbc_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - DES_ncbc_encrypt
    - EVP_CIPHER_CTX_is_encrypting
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                          const
      unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:123,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:124,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:125,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:127,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:128,1
    - Dst: EVP_CIPHER_CTX_get_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:134,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:135,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:136,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:138,1
    - Dst: EVP_CIPHER_CTX_set_num
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: des_cfb64_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_num
    - DES_cfb64_encrypt
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_set_num
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: "int des_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                            const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:160,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:160,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: des_cfb1_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_is_encrypting
    - DES_cfb_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:181,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:182,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:184,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:190,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:191,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: des_cfb8_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_is_encrypting
    - DES_cfb_encrypt
    linkageType: ''
    returnType: int
    signature: "int des_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:213,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:218,1
    - Dst: des_t4_key_expand
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:221,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:227,1
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: des_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - DES_set_key_unchecked
    - EVP_CIPHER_CTX_get_cipher_data
    - EVP_CIPHER_CTX_get_mode
    - des_t4_key_expand
    linkageType: ''
    returnType: int
    signature: "int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                       const unsigned char *iv, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:236,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/evp/e_des.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - c
    - type
    - arg
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: des_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/e_des.c
    functionUses: 0
    functionsReached:
    - RAND_priv_bytes
    - DES_set_odd_parity
    linkageType: ''
    returnType: int
    signature: int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: BIO_f_reliable
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_reliable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:136,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:144,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:147,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: ok_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - ERR_raise
    - OPENSSL_zalloc
    - BIO_set_data
    - OPENSSL_free
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int ok_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:160,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:162,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:163,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:164,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 8
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: ok_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - BIO_get_data
    - BIO_set_data
    - OPENSSL_clear_free
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int ok_free(BIO *a)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:179,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:180,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:182,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:192,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:207,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:222,1
    - Dst: sig_in
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:231,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:232,1
    - Dst: block_in
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:239,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:240,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:251,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:252,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 254
    functionName: ok_read
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_get_data
    - BIO_read
    - memmove
    - block_in
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_get_init
    - sig_in
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int ok_read(BIO *b, char *out, int outl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:265,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:266,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:269,1
    - Dst: sig_out
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:272,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:276,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:279,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:281,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:282,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:303,1
    - Dst: block_out
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:309,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:310,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:316,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:317,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 319
    functionName: ok_write
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_get_data
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_should_retry
    - BIO_get_init
    - BIO_write
    - block_out
    - sig_out
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int ok_write(BIO *b, const char *in, int inl)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:330,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:331,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:343,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:349,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:355,1
    - Dst: block_out
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:360,1
    - Dst: ok_write
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:364,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:376,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:379,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:380,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:381,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:388,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:390,1
    - Dst: BIO_get_init
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:393,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:395,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:400,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 404
    functionName: ok_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_ctrl
    - EVP_DigestInit_ex
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - ok_write
    - BIO_get_init
    - BIO_next
    - EVP_MD_CTX_get0_md
    - BIO_set_init
    - block_out
    linkageType: ''
    returnType: long
    signature: long ok_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:410,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: ok_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long ok_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: longswap
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longswap(void *_ptr, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:441,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:443,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:444,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:445,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:450,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:456,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:458,1
    - Dst: longswap
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:459,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:462,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:462,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:464,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 433
    functionDepth: 6
    functionLinenumber: 433
    functionLinenumberEnd: 473
    functionName: sig_out
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - memcpy
    - BIO_get_data
    - EVP_DigestInit_ex
    - longswap
    - BIO_clear_retry_flags
    - strlen
    - EVP_DigestFinal_ex
    - RAND_bytes
    - EVP_MD_CTX_get0_md
    - EVP_MD_CTX_get0_md_data
    linkageType: ''
    returnType: int
    signature: int sig_out(BIO *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:485,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:488,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:489,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:491,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:496,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:498,1
    - Dst: longswap
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:499,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:502,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:502,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:504,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:506,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:511,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:521,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 475
    functionDepth: 6
    functionLinenumber: 475
    functionLinenumberEnd: 523
    functionName: sig_in
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - memcpy
    - BIO_get_data
    - EVP_DigestInit_ex
    - memmove
    - longswap
    - BIO_clear_retry_flags
    - strlen
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_MD_CTX_get0_md
    - EVP_MD_CTX_get0_md_data
    linkageType: ''
    returnType: int
    signature: int sig_in(BIO *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:533,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:535,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:536,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:543,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:546,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 554
    functionName: block_out
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - BIO_get_data
    - BIO_clear_retry_flags
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_get0_md
    linkageType: ''
    returnType: int
    signature: int block_out(BIO *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:564,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:566,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:566,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:570,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:582,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:585,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:587,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/evp/bio_ok.c:599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts:
    - condition: (sizeof(tl) >= OK_BLOCK_BLOCK)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    constantsTouched: []
    func_position:
      end: 601
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 601
    functionName: block_in
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/bio_ok.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - assert
    - BIO_get_data
    - BIO_clear_retry_flags
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_MD_CTX_get0_md
    linkageType: ''
    returnType: int
    signature: int block_in(BIO *b)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:32,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:40,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:47,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:49,1
    - Dst: evp_keymgmt_util_query_operation_name
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:55,1
    - Dst: EVP_KEM_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:86,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:87,1
    - Dst: EVP_KEM_fetch
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:91,1
    - Dst: EVP_KEM_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:93,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:96,1
    - Dst: evp_kem_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:101,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:121,1
    - Dst: EVP_KEYMGMT_get0_name
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:122,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:125,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:128,1
    - Dst: EVP_KEM_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:132,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:133,1
    - Dst: EVP_KEM*::newctx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:138,1
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:148,1
    - Dst: EVP_KEM*::encapsulate_init
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:152,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:156,1
    - Dst: EVP_KEM*::decapsulate_init
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:163,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:167,1
    - Dst: evp_pkey_ctx_free_old_ops
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:174,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:177,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 99
    argCount: 3
    argNames:
    - ctx
    - operation
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 179
    functionName: evp_kem_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - evp_pkey_ctx_free_old_ops
    - EVP_KEM_free
    - EVP_KEM*::decapsulate_init
    - evp_keymgmt_util_query_operation_name
    - EVP_KEYMGMT_get0_provider
    - ERR_raise
    - evp_pkey_export_to_provider
    - EVP_KEM*::newctx
    - evp_kem_fetch_from_prov
    - EVP_KEM_get0_provider
    - evp_keymgmt_fetch_from_prov
    - EVP_KEYMGMT_get0_name
    - EVP_KEYMGMT_free
    - EVP_KEM*::encapsulate_init
    - EVP_KEM_fetch
    - ossl_assert
    - ossl_provider_ctx
    linkageType: ''
    returnType: int
    signature: "int evp_kem_init(EVP_PKEY_CTX *ctx, int operation,\n                        const
      OSSL_PARAM params[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_kem_init
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 12
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: EVP_PKEY_encapsulate_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - evp_kem_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_encapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:199,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::encapsulate
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - secret
    - secretlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: EVP_PKEY_encapsulate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::op::encap::kem::encapsulate
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx,\n                         unsigned
      char *out, size_t *outlen,\n                         unsigned char *secret,
      size_t *secretlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_kem_init
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - EVP_PKEY_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 12
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: EVP_PKEY_decapsulate_init
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - evp_kem_init
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_decapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:225,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:230,1
    - Dst: EVP_PKEY_CTX*::op::encap::kem::decapsulate
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - secret
    - secretlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: EVP_PKEY_decapsulate
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX*::op::encap::kem::decapsulate
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx,\n                         unsigned
      char *secret, size_t *secretlen,\n                         const unsigned char
      *in, size_t inlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:242,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:246,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:249,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 257
    functionName: evp_kem_new
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - ossl_provider_up_ref
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: EVP_KEM
    signature: EVP_KEM *evp_kem_new(OSSL_PROVIDER *prov)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: evp_kem_new
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:267,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:268,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:273,1
    - Dst: OSSL_FUNC_kem_newctx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:282,1
    - Dst: OSSL_FUNC_kem_encapsulate_init
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:288,1
    - Dst: OSSL_FUNC_kem_encapsulate
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:294,1
    - Dst: OSSL_FUNC_kem_decapsulate_init
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:300,1
    - Dst: OSSL_FUNC_kem_decapsulate
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:306,1
    - Dst: OSSL_FUNC_kem_freectx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:312,1
    - Dst: OSSL_FUNC_kem_dupctx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:318,1
    - Dst: OSSL_FUNC_kem_get_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:324,1
    - Dst: OSSL_FUNC_kem_gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:331,1
    - Dst: OSSL_FUNC_kem_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:338,1
    - Dst: OSSL_FUNC_kem_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:345,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:365,1
    - Dst: EVP_KEM_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:371,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 90
    argCount: 3
    argNames:
    - name_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 373
    functionName: evp_kem_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_kem_gettable_ctx_params
    - OSSL_FUNC_kem_newctx
    - OSSL_FUNC_kem_decapsulate
    - OSSL_FUNC_kem_freectx
    - OSSL_FUNC_kem_dupctx
    - OSSL_FUNC_kem_settable_ctx_params
    - EVP_KEM_free
    - OSSL_FUNC_kem_decapsulate_init
    - OSSL_FUNC_kem_get_ctx_params
    - OSSL_FUNC_kem_set_ctx_params
    - OSSL_FUNC_kem_encapsulate_init
    - evp_kem_new
    - ossl_algorithm_get1_first_name
    - ERR_raise
    - OSSL_FUNC_kem_encapsulate
    linkageType: ''
    returnType: void
    signature: "void *evp_kem_from_algorithm(int name_id, const OSSL_ALGORITHM *algodef,\n
      \                                   OSSL_PROVIDER *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:382,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:385,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:386,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:387,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: EVP_KEM_free
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void EVP_KEM_free(EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 397
    functionName: EVP_KEM_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 1
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EVP_KEM_up_ref(EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: EVP_KEM_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *EVP_KEM_get0_provider(const EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - algorithm
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 10
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: EVP_KEM_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch
    linkageType: ''
    returnType: EVP_KEM
    signature: "EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,\n
      \                      const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prov
    - algorithm
    - properties
    argTypes:
    - OSSL_PROVIDER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 10
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: evp_kem_fetch_from_prov
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 1
    functionsReached:
    - evp_generic_fetch_from_prov
    linkageType: ''
    returnType: EVP_KEM
    signature: "EVP_KEM *evp_kem_fetch_from_prov(OSSL_PROVIDER *prov, const char *algorithm,\n
      \                                const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_is_a
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - kem
    - name
    argTypes:
    - EVP_KEM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 9
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: EVP_KEM_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - evp_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_KEM_is_a(const EVP_KEM *kem, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: evp_kem_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evp_kem_get_number(const EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: EVP_KEM_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KEM_get0_name(const EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: EVP_KEM_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *EVP_KEM_get0_description(const EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evp_generic_do_all
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - libctx
    - arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 10
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: EVP_KEM_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - evp_generic_do_all
    linkageType: ''
    returnType: void
    signature: "void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx,\n                             void
      (*fn)(EVP_KEM *kem, void *arg),\n                             void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_names_do_all
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - kem
    - data
    argTypes:
    - EVP_KEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 9
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: EVP_KEM_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - evp_names_do_all
    linkageType: ''
    returnType: int
    signature: "int EVP_KEM_names_do_all(const EVP_KEM *kem,\n                         void
      (*fn)(const char *name, void *data),\n                         void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:469,1
    - Dst: EVP_KEM_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:469,1
    - Dst: EVP_KEM*::gettable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 471
    functionName: EVP_KEM_gettable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - EVP_KEM*::gettable_ctx_params
    - EVP_KEM_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEM_gettable_ctx_params(const EVP_KEM *kem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:480,1
    - Dst: EVP_KEM_get0_provider
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:480,1
    - Dst: EVP_KEM*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/evp/kem.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - kem
    argTypes:
    - EVP_KEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 482
    functionName: EVP_KEM_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/evp/kem.c
    functionUses: 0
    functionsReached:
    - EVP_KEM*::settable_ctx_params
    - EVP_KEM_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *EVP_KEM_settable_ctx_params(const EVP_KEM *kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: CMS_signed_get_attr_count
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int CMS_signed_get_attr_count(const CMS_SignerInfo *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - nid
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: CMS_signed_get_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - obj
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: CMS_signed_get_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT
      *obj,\n                               int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: CMS_signed_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: CMS_signed_delete_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - si
    - attr
    argTypes:
    - CMS_SignerInfo*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: CMS_signed_add1_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - obj
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: CMS_signed_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,\n                                const
      ASN1_OBJECT *obj, int type,\n                                const void *bytes,
      int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - nid
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: CMS_signed_add1_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,\n                                int
      nid, int type, const void *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr_by_txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: CMS_signed_add1_attr_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,\n                                const
      char *attrname, int type,\n                                const void *bytes,
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - oid
    - lastpos
    - type
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: CMS_signed_get0_data_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get0_data_by_OBJ
    linkageType: ''
    returnType: void
    signature: "void *CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo *si,\n                                  const
      ASN1_OBJECT *oid,\n                                  int lastpos, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: CMS_unsigned_get_attr_count
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - nid
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: CMS_unsigned_get_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,\n
      \                                int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - si
    - obj
    - lastpos
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: CMS_unsigned_get_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si,\n                                 const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: CMS_unsigned_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_delete_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - loc
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: CMS_unsigned_delete_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - si
    - attr
    argTypes:
    - CMS_SignerInfo*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: CMS_unsigned_add1_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - obj
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: CMS_unsigned_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,\n                                  const
      ASN1_OBJECT *obj, int type,\n                                  const void *bytes,
      int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - nid
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: CMS_unsigned_add1_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,\n                                  int
      nid, int type,\n                                  const void *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509at_add1_attr_by_txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - si
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - CMS_SignerInfo*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: CMS_unsigned_add1_attr_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - ossl_x509at_add1_attr_by_txt
    linkageType: ''
    returnType: int
    signature: "int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,\n                                  const
      char *attrname, int type,\n                                  const void *bytes,
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - oid
    - lastpos
    - type
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OBJECT*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: CMS_unsigned_get0_data_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get0_data_by_OBJ
    linkageType: ''
    returnType: void
    signature: "void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT
      *oid,\n                                    int lastpos, int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:218,1
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - nid
    - attrs
    - lastpos
    argTypes:
    - int
    - STACK_OF*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 225
    functionName: cms_attrib_get
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *cms_attrib_get(int nid,\n                                      const
      STACK_OF(X509_ATTRIBUTE) *attrs,\n                                      int
      *lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cms_attrib_get
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:232,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:235,1
    - Dst: cms_attrib_get
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - nid
    - flags
    - type
    - attrs
    - have_attrs
    argTypes:
    - int
    - int
    - int
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 256
    functionName: cms_check_attribute
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - cms_attrib_get
    - X509_ATTRIBUTE_count
    linkageType: ''
    returnType: int
    signature: "int cms_check_attribute(int nid, int flags, int type,\n                               const
      STACK_OF(X509_ATTRIBUTE) *attrs,\n                               int have_attrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:271,1
    - Dst: CMS_unsigned_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:272,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:274,1
    - Dst: cms_check_attribute
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:278,1
    - Dst: cms_check_attribute
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:280,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_att.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: ossl_cms_si_check_attributes
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_att.c
    functionUses: 0
    functionsReached:
    - CMS_unsigned_get_attr_count
    - CMS_signed_get_attr_count
    - ERR_raise
    - cms_check_attribute
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_cms_si_check_attributes(const CMS_SignerInfo *si)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:41,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:42,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:46,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:46,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:48,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:52,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:54,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:63,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:66,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:66,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:72,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:73,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:76,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:78,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:79,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:84,1
    - Dst: EVP_CIPHER_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:86,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:92,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:97,1
    - Dst: evp_cipher_asn1_to_param_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:103,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:106,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:111,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:116,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:125,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:128,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:139,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:151,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:155,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:159,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:164,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:165,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:169,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:171,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:174,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:175,1
    - Dst: EVP_CIPHER_CTX_get_tag_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:177,1
    - Dst: evp_cipher_param_to_asn1_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:183,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:188,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:195,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:197,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:200,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:203,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 149
    argCount: 2
    argNames:
    - ec
    - cms_ctx
    argTypes:
    - CMS_EncryptedContentInfo*
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 205
    functionName: ossl_cms_EncryptedContent_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - memcpy
    - EVP_get_cipherbyobj
    - EVP_CIPHER_CTX_ctrl
    - ASN1_TYPE_free
    - evp_cipher_param_to_asn1_ex
    - BIO_new
    - EVP_CIPHER_get_flags
    - BIO_f_cipher
    - EVP_CIPHER_CTX_get_key_length
    - OPENSSL_clear_free
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_get_tag_length
    - RAND_bytes_ex
    - EVP_CIPHER_free
    - OBJ_nid2obj
    - BIO_get_cipher_ctx
    - ERR_clear_error
    - EVP_CIPHER_CTX_get_type
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - EVP_CIPHER_get0_name
    - EVP_CIPHER_fetch
    - evp_cipher_asn1_to_param_ex
    - EVP_CIPHER_CTX_rand_key
    - ASN1_TYPE_new
    - OPENSSL_malloc
    - BIO_free
    - ossl_cms_ctx_get0_propq
    - ERR_set_mark
    - ERR_pop_to_mark
    - EVP_CIPHER_CTX_get_iv_length
    - ERR_clear_last_mark
    linkageType: ''
    returnType: BIO
    signature: "BIO *ossl_cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec,\n
      \                                       const CMS_CTX *cms_ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:214,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:215,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:218,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ec
    - cipher
    - key
    - keylen
    - cms_ctx
    argTypes:
    - CMS_EncryptedContentInfo*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: ossl_cms_EncryptedContent_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_EncryptedContent_init(CMS_EncryptedContentInfo *ec,\n
      \                                  const EVP_CIPHER *cipher,\n                                   const
      unsigned char *key, size_t keylen,\n                                   const
      CMS_CTX *cms_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:232,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:236,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:238,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:241,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:244,1
    - Dst: ossl_cms_EncryptedContent_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:248,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - cms
    - ciph
    - key
    - keylen
    argTypes:
    - CMS_ContentInfo*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: CMS_EncryptedData_set1_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - OBJ_obj2nid
    - ossl_cms_EncryptedContent_init
    - ERR_raise
    - M_ASN1_new_of
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: int
    signature: "int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER
      *ciph,\n                               const unsigned char *key, size_t keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_EncryptedContent_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:257,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_enc.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 7
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: ossl_cms_EncryptedData_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_enc.c
    functionUses: 0
    functionsReached:
    - ossl_cms_EncryptedContent_init_bio
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_EncryptedData_init_bio(const CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cms/cms_err.c:173,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/cms/cms_err.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: ossl_err_load_CMS_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_CMS_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:27,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ri
    - pass
    - passlen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - ossl_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: CMS_RecipientInfo_set0_password
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - strlen
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,\n                                    unsigned
      char *pass, ossl_ssize_t passlen)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:46,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:54,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:56,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:59,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:78,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:83,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:89,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:93,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:94,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:98,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:100,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:105,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:105,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:108,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:111,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:113,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:117,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:122,1
    - Dst: EVP_CIPHER_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:122,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:124,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:128,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:132,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:140,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:141,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:144,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:145,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:149,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:149,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:155,1
    - Dst: PKCS5_pbkdf2_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:160,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:165,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:168,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:174,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:176,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:178,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:179,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 115
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 182
    functionName: CMS_add0_recipient_password
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - M_ASN1_free_of
    - X509_ALGOR_new
    - EVP_CIPHER_CTX_free
    - CMS_RecipientInfo_set0_password
    - sk_CMS_RecipientInfo_push
    - CMS_get0_RecipientInfos
    - X509_ALGOR_free
    - EVP_EncryptInit_ex
    - ASN1_item_pack
    - EVP_CIPHER_param_to_asn1
    - RAND_bytes_ex
    - OBJ_nid2obj
    - ossl_cms_get0_env_enc_content
    - EVP_CIPHER_CTX_get_type
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - EVP_CIPHER_CTX_new
    - STACK_OF
    - PKCS5_pbkdf2_set
    - ossl_cms_get0_cmsctx
    - ASN1_TYPE_new
    - ASN1_ITEM_rptr
    - EVP_CIPHER_CTX_get_iv_length
    - M_ASN1_new_of
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *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: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:193,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:204,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:205,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:209,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:216,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:219,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:222,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:224,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:236,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 5
    argNames:
    - out
    - outlen
    - in
    - inlen
    - ctx
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 242
    functionName: kek_unwrap_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EVP_CIPHER_CTX_get_block_size
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_clear_free
    - EVP_DecryptInit_ex
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int kek_unwrap_key(unsigned char *out, size_t *outlen,\n                          const
      unsigned char *in, size_t inlen,\n                          EVP_CIPHER_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_block_size
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:248,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:271,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:274,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:274,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:278,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - out
    - outlen
    - in
    - inlen
    - ctx
    - cms_ctx
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - EVP_CIPHER_CTX*
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 286
    functionName: kek_wrap_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - EVP_EncryptUpdate
    - memcpy
    - EVP_CIPHER_CTX_get_block_size
    - ossl_cms_ctx_get0_libctx
    linkageType: ''
    returnType: int
    signature: "int kek_wrap_key(unsigned char *out, size_t *outlen,\n                        const
      unsigned char *in, size_t inlen,\n                        EVP_CIPHER_CTX *ctx,
      const CMS_CTX *cms_ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:302,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:304,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:309,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:314,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:315,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:319,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:319,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:323,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:327,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:328,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:328,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:329,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:332,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:336,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:338,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:342,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:344,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:345,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:346,1
    - Dst: EVP_PBE_CipherInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:354,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:357,1
    - Dst: kek_wrap_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:365,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:368,1
    - Dst: kek_wrap_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:373,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:378,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:381,1
    - Dst: kek_unwrap_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:384,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:387,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:391,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:400,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:401,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:404,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_pwri.c:405,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 3
    argNames:
    - cms
    - ri
    - en_de
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 290
    functionDepth: 6
    functionLinenumber: 290
    functionLinenumberEnd: 409
    functionName: ossl_cms_RecipientInfo_pwri_crypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_pwri.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EVP_CIPHER_CTX_free
    - X509_ALGOR_free
    - OPENSSL_clear_free
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_set_padding
    - kek_wrap_key
    - OBJ_obj2txt
    - EVP_CIPHER_free
    - ossl_cms_get0_env_enc_content
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - EVP_PBE_CipherInit
    - EVP_CIPHER_fetch
    - ossl_cms_get0_cmsctx
    - ASN1_ITEM_rptr
    - OPENSSL_malloc
    - kek_unwrap_key
    - ossl_cms_ctx_get0_propq
    - ASN1_TYPE_unpack_sequence
    - EVP_CIPHER_asn1_to_param
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_RecipientInfo_pwri_crypt(const CMS_ContentInfo *cms,\n
      \                                     CMS_RecipientInfo *ri, int en_de)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:32,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:37,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:38,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:41,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:48,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:49,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:51,1
    - Dst: EVP_PKEY_CTX_set_group_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:53,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:56,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:62,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:66,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:67,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:68,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - ptype
    - pval
    - libctx
    - propq
    argTypes:
    - int
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 19
    functionDepth: 8
    functionLinenumber: 19
    functionLinenumberEnd: 70
    functionName: pkey_type2param
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - OBJ_obj2txt
    - EVP_PKEY_paramgen_init
    - OSSL_DECODER_CTX_new_for_pkey
    - OSSL_DECODER_from_data
    - ERR_raise
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - OSSL_DECODER_CTX_free
    - EVP_PKEY_CTX_set_group_name
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *pkey_type2param(int ptype, const void *pval,\n                                 OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:83,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:84,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:91,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:95,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:98,1
    - Dst: pkey_type2param
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:101,1
    - Dst: EVP_PKEY_CTX_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:102,1
    - Dst: EVP_PKEY_CTX_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:103,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:108,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:109,1
    - Dst: EVP_PKEY_set1_encoded_public_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:113,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:116,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:119,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 3
    argNames:
    - pctx
    - alg
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 72
    functionDepth: 11
    functionLinenumber: 72
    functionLinenumberEnd: 121
    functionName: ecdh_cms_set_peerkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive_set_peer
    - pkey_type2param
    - EVP_PKEY_copy_parameters
    - ASN1_STRING_length
    - EVP_PKEY_CTX_get0_libctx
    - ASN1_STRING_get0_data
    - OBJ_obj2nid
    - EVP_PKEY_CTX_get0_propq
    - EVP_PKEY_free
    - EVP_PKEY_new
    - X509_ALGOR_get0
    - EVP_PKEY_set1_encoded_public_key
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: "int ecdh_cms_set_peerkey(EVP_PKEY_CTX *pctx,\n                                X509_ALGOR
      *alg, ASN1_BIT_STRING *pubkey)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:133,1
    - Dst: EVP_PKEY_CTX_set_ecdh_cofactor_mode
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:143,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:146,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:149,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pctx
    - eckdf_nid
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: ecdh_cms_set_kdf_param
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - EVP_PKEY_CTX_set_ecdh_kdf_type
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EVP_get_digestbynid
    - EVP_PKEY_CTX_set_ecdh_cofactor_mode
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_set_kdf_param(EVP_PKEY_CTX *pctx, int eckdf_nid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:170,1
    - Dst: ecdh_cms_set_kdf_param
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:173,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:174,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:183,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:186,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:189,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:190,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:191,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:193,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:195,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:198,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_outlen
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:199,1
    - Dst: CMS_SharedInfo_encode
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:202,1
    - Dst: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:207,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:213,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:215,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 2
    argNames:
    - pctx
    - ri
    argTypes:
    - EVP_PKEY_CTX*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 217
    functionName: ecdh_cms_set_shared_info
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2txt
    - EVP_CIPHER_get_mode
    - EVP_CIPHER_free
    - EVP_PKEY_CTX_set_ecdh_kdf_outlen
    - OBJ_obj2nid
    - EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    - ERR_raise
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_get_key_length
    - OPENSSL_free
    - EVP_EncryptInit_ex
    - CMS_RecipientInfo_kari_get0_alg
    - CMS_RecipientInfo_kari_get0_ctx
    - CMS_SharedInfo_encode
    - EVP_CIPHER_asn1_to_param
    - EVP_CIPHER_fetch
    - d2i_X509_ALGOR
    - ecdh_cms_set_kdf_param
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo
      *ri)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:223,1
    - Dst: EVP_PKEY_CTX_get0_peerkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:227,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:231,1
    - Dst: ecdh_cms_set_peerkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:236,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:237,1
    - Dst: ecdh_cms_set_shared_info
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:242,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 219
    functionDepth: 12
    functionLinenumber: 219
    functionLinenumberEnd: 247
    functionName: ecdh_cms_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - ecdh_cms_set_peerkey
    - EVP_PKEY_CTX_get0_peerkey
    - ERR_raise
    - ecdh_cms_set_shared_info
    - CMS_RecipientInfo_kari_get0_orig_id
    - CMS_RecipientInfo_get0_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:266,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:270,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:271,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:274,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:276,1
    - Dst: EVP_PKEY_get1_encoded_public_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:280,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:283,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:288,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:288,1
    - Dst: EVP_PKEY_CTX_get_ecdh_kdf_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:293,1
    - Dst: EVP_PKEY_CTX_get_ecdh_kdf_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:296,1
    - Dst: EVP_PKEY_CTX_get_ecdh_cofactor_mode
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:298,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:308,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:315,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:316,1
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:320,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:325,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:325,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:328,1
    - Dst: EVP_CIPHER_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:329,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:330,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:334,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:337,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:338,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:341,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:343,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:344,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_outlen
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:348,1
    - Dst: CMS_SharedInfo_encode
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:351,1
    - Dst: EVP_PKEY_CTX_set0_ecdh_kdf_ukm
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:356,1
    - Dst: i2d_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:364,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:367,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:370,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:372,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:372,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:377,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:378,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 102
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 249
    functionDepth: 11
    functionLinenumber: 249
    functionLinenumberEnd: 380
    functionName: ecdh_cms_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - i2d_X509_ALGOR
    - EVP_PKEY_CTX_set0_ecdh_kdf_ukm
    - EVP_PKEY_get1_encoded_public_key
    - EVP_PKEY_CTX_get_ecdh_kdf_md
    - CMS_RecipientInfo_kari_get0_alg
    - ASN1_TYPE_free
    - ASN1_STRING_set0
    - X509_ALGOR_new
    - X509_ALGOR_set0
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_get_key_length
    - EVP_PKEY_CTX_set_ecdh_kdf_outlen
    - CMS_RecipientInfo_kari_get0_orig_id
    - EVP_CIPHER_param_to_asn1
    - EVP_PKEY_CTX_set_ecdh_kdf_type
    - OBJ_nid2obj
    - EVP_CIPHER_CTX_get_type
    - ASN1_STRING_new
    - OPENSSL_free
    - X509_ALGOR_get0
    - EVP_PKEY_CTX_get_ecdh_cofactor_mode
    - EVP_MD_get_type
    - CMS_SharedInfo_encode
    - OBJ_find_sigid_by_algs
    - EVP_PKEY_CTX_get0_pkey
    - ASN1_TYPE_new
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - ASN1_TYPE_get
    - EVP_sha1
    - CMS_RecipientInfo_kari_get0_ctx
    - EVP_PKEY_CTX_get_ecdh_kdf_type
    - CMS_RecipientInfo_get0_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int ecdh_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:384,1
    - Dst: ecdh_cms_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:387,1
    - Dst: ecdh_cms_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:390,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - decrypt
    argTypes:
    - CMS_RecipientInfo*
    - int
    assertStmts:
    - condition: (decrypt == 0 || decrypt == 1)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 13
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: ossl_cms_ecdh_envelope
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - ecdh_cms_encrypt
    - ERR_raise
    - assert
    - ecdh_cms_decrypt
    linkageType: ''
    returnType: int
    signature: int ossl_cms_ecdh_envelope(CMS_RecipientInfo *ri, int decrypt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:399,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:406,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:409,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:412,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:412,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:414,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ec.c:414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - si
    - verify
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts:
    - condition: (verify == 0 || verify == 1)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: ossl_cms_ecdsa_dsa_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ec.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - assert
    - OBJ_nid2obj
    - OBJ_obj2nid
    - EVP_PKEY_get_id
    - CMS_SignerInfo_get0_algs
    - OBJ_find_sigid_by_algs
    linkageType: ''
    returnType: int
    signature: int ossl_cms_ecdsa_dsa_sign(CMS_SignerInfo *si, int verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:31,1
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:33,1
    - Dst: CMS_ContentInfo_it
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:34,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:35,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:36,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:38,1
    - Dst: ossl_cms_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:39,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - CMS_ContentInfo**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: d2i_CMS_ContentInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ossl_cms_resolve_libctx
    - ossl_cms_ctx_get0_propq
    - ASN1_item_d2i_ex
    - CMS_ContentInfo_it
    - ossl_cms_ctx_get0_libctx
    - ERR_set_mark
    - ERR_pop_to_mark
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *d2i_CMS_ContentInfo(CMS_ContentInfo **a,\n                                     const
      unsigned char **in, long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:47,1
    - Dst: CMS_ContentInfo_it
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - CMS_ContentInfo*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: i2d_CMS_ContentInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - CMS_ContentInfo_it
    linkageType: ''
    returnType: int
    signature: int i2d_CMS_ContentInfo(const CMS_ContentInfo *a, unsigned char **out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:54,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:54,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:60,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:62,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: CMS_ContentInfo_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ERR_raise
    - CMS_ContentInfo_free
    - OPENSSL_strdup
    - ASN1_item_new_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const
      char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: CMS_ContentInfo_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_ContentInfo_new_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_ContentInfo_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_env_enc_content_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:80,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:81,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: CMS_ContentInfo_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - OPENSSL_free
    - ASN1_item_free
    - ossl_cms_env_enc_content_free
    linkageType: ''
    returnType: void
    signature: void CMS_ContentInfo_free(CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ossl_cms_get0_cmsctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: CMS_CTX
    signature: CMS_CTX *ossl_cms_get0_cmsctx(const CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: ossl_cms_ctx_get0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_cms_ctx_get0_libctx(const CMS_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: ossl_cms_ctx_get0_propq
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_cms_ctx_get0_propq(const CMS_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:104,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:105,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:106,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:107,1
    - Dst: ossl_cms_SignerInfos_set_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:109,1
    - Dst: ossl_cms_RecipientInfos_set_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:110,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:112,1
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:114,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:115,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ci
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: ossl_cms_resolve_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 1
    functionsReached:
    - ossl_x509_set0_libctx
    - ossl_cms_RecipientInfos_set_cmsctx
    - sk_CMS_CertificateChoices_num
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    - STACK_OF
    - cms_get0_certificate_choices
    - ossl_cms_SignerInfos_set_cmsctx
    - ossl_cms_get0_cmsctx
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: void
    signature: void ossl_cms_resolve_libctx(CMS_ContentInfo *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: CMS_get0_type
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:129,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:132,1
    - Dst: CMS_set_detached
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: ossl_cms_Data_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - CMS_ContentInfo_new_ex
    - CMS_set_detached
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *ossl_cms_Data_create(OSSL_LIB_CTX *libctx, const char
      *propq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:141,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:147,1
    - Dst: BIO_s_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:147,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:152,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:152,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: ossl_cms_content_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_new_mem_buf
    - CMS_get0_content
    - BIO_s_null
    - BIO_s_mem
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_content_bio(CMS_ContentInfo *cms)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_content_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:165,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:168,1
    - Dst: ossl_cms_SignedData_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:174,1
    - Dst: ossl_cms_DigestedData_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:178,1
    - Dst: ossl_cms_CompressedData_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:182,1
    - Dst: ossl_cms_EncryptedData_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:187,1
    - Dst: ossl_cms_EnvelopedData_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:191,1
    - Dst: ossl_cms_AuthEnvelopedData_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:199,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:204,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:207,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - cms
    - icont
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 157
    functionDepth: 8
    functionLinenumber: 157
    functionLinenumberEnd: 210
    functionName: CMS_dataInit
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ossl_cms_content_bio
    - BIO_free
    - OBJ_obj2nid
    - ERR_raise
    - ossl_cms_AuthEnvelopedData_init_bio
    - ossl_cms_CompressedData_init_bio
    - ossl_cms_DigestedData_init_bio
    - ossl_cms_SignedData_init_bio
    - ossl_cms_EncryptedData_init_bio
    - ossl_cms_EnvelopedData_init_bio
    - BIO_push
    linkageType: ''
    returnType: BIO
    signature: BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:215,1
    - Dst: BIO_find_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:226,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:229,1
    - Dst: BIO_set_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:231,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:232,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:233,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:237,1
    - Dst: ossl_cms_EnvelopedData_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:246,1
    - Dst: ossl_cms_AuthEnvelopedData_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:249,1
    - Dst: ossl_cms_SignedData_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:252,1
    - Dst: ossl_cms_DigestedData_do_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:255,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - cms
    - cmsbio
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 261
    functionName: CMS_dataFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - BIO_set_mem_eof_return
    - ossl_cms_SignedData_final
    - OBJ_obj2nid
    - CMS_get0_content
    - ERR_raise
    - BIO_set_flags
    - ossl_cms_EnvelopedData_final
    - ossl_cms_AuthEnvelopedData_final
    - BIO_get_mem_data
    - ossl_cms_DigestedData_do_final
    - ASN1_STRING_set0
    linkageType: ''
    returnType: int
    signature: int CMS_dataFinal(CMS_ContentInfo *cms, BIO *cmsbio)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 304
    functionName: CMS_get0_content
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:313,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 341
    functionName: cms_get0_econtent_type
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT **cms_get0_econtent_type(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_econtent_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: CMS_get0_eContentType
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - cms_get0_econtent_type
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_econtent_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:356,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:361,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cms
    - oid
    argTypes:
    - CMS_ContentInfo*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: CMS_set1_eContentType
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    - cms_get0_econtent_type
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: CMS_is_detached
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_get0_content
    linkageType: ''
    returnType: int
    signature: int CMS_is_detached(CMS_ContentInfo *cms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:385,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:389,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:394,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cms
    - detached
    argTypes:
    - CMS_ContentInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 404
    functionName: CMS_set_detached
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_new
    - CMS_get0_content
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int CMS_set_detached(CMS_ContentInfo *cms, int detached)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:417,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:418,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:420,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:421,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:421,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:422,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:427,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:429,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:430,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:433,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:435,1
    - Dst: BIO_f_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:435,1
    - Dst: BIO_set_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:436,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:437,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:440,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:443,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - digestAlgorithm
    - ctx
    argTypes:
    - X509_ALGOR*
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 408
    functionDepth: 11
    functionLinenumber: 408
    functionLinenumberEnd: 446
    functionName: ossl_cms_DigestAlgorithm_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyobj
    - BIO_new
    - OBJ_obj2txt
    - BIO_free
    - ERR_set_mark
    - ossl_cms_ctx_get0_propq
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - X509_ALGOR_get0
    - ERR_pop_to_mark
    - BIO_f_md
    - ERR_clear_last_mark
    - BIO_set_md
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: BIO
    signature: "BIO *ossl_cms_DigestAlgorithm_init_bio(X509_ALGOR *digestAlgorithm,\n
      \                                      const CMS_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:455,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:456,1
    - Dst: BIO_find_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:460,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:462,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:465,1
    - Dst: EVP_MD_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:466,1
    - Dst: EVP_MD_get_pkey_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:471,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:471,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:472,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - mctx
    - chain
    - mdalg
    argTypes:
    - EVP_MD_CTX*
    - BIO*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 450
    functionDepth: 8
    functionLinenumber: 450
    functionLinenumberEnd: 475
    functionName: ossl_cms_DigestAlgorithm_find_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - EVP_MD_CTX_copy_ex
    - OBJ_obj2nid
    - ERR_raise
    - EVP_MD_CTX_get_type
    - X509_ALGOR_get0
    - EVP_MD_get_pkey_type
    - EVP_MD_CTX_get0_md
    - BIO_get_md_ctx
    - BIO_next
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain,\n
      \                                     X509_ALGOR *mdalg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:480,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 500
    functionName: cms_get0_certificate_choices
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF **cms_get0_certificate_choices(CMS_ContentInfo *cms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:504,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:507,1
    - Dst: sk_CMS_CertificateChoices_new_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:511,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:514,1
    - Dst: sk_CMS_CertificateChoices_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:517,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 522
    functionName: CMS_add0_CertificateChoices
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - sk_CMS_CertificateChoices_push
    - STACK_OF
    - sk_CMS_CertificateChoices_new_null
    - cms_get0_certificate_choices
    - M_ASN1_free_of
    - M_ASN1_new_of
    linkageType: ''
    returnType: CMS_CertificateChoices
    signature: CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo
      *cms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:527,1
    - Dst: cms_get0_certificate_choices
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:530,1
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:533,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:534,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:536,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:537,1
    - Dst: CMS_add0_CertificateChoices
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cms
    - cert
    argTypes:
    - CMS_ContentInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 548
    functionName: CMS_add0_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_CertificateChoices
    - sk_CMS_CertificateChoices_num
    - ERR_raise
    - STACK_OF
    - X509_cmp
    - cms_get0_certificate_choices
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: int
    signature: int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_cert
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:553,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cms
    - cert
    argTypes:
    - CMS_ContentInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: CMS_add1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - CMS_add0_cert
    linkageType: ''
    returnType: int
    signature: int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:562,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 582
    functionName: cms_get0_revocation_choices
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF **cms_get0_revocation_choices(CMS_ContentInfo *cms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:586,1
    - Dst: cms_get0_revocation_choices
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:589,1
    - Dst: sk_CMS_RevocationInfoChoice_new_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:593,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:596,1
    - Dst: sk_CMS_RevocationInfoChoice_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:599,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 604
    functionName: CMS_add0_RevocationInfoChoice
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RevocationInfoChoice_new_null
    - cms_get0_revocation_choices
    - STACK_OF
    - M_ASN1_free_of
    - sk_CMS_RevocationInfoChoice_push
    - M_ASN1_new_of
    linkageType: ''
    returnType: CMS_RevocationInfoChoice
    signature: CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo
      *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add0_RevocationInfoChoice
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cms
    - crl
    argTypes:
    - CMS_ContentInfo*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 615
    functionName: CMS_add0_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - CMS_add0_RevocationInfoChoice
    linkageType: ''
    returnType: int
    signature: int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:619,1
    - Dst: CMS_add0_crl
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:621,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cms
    - crl
    argTypes:
    - CMS_ContentInfo*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 4
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: CMS_add1_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - CMS_add0_crl
    - X509_CRL_free
    linkageType: ''
    returnType: int
    signature: int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:682,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:682,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:685,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ias
    - cert
    argTypes:
    - CMS_IssuerAndSerialNumber*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 686
    functionName: ossl_cms_ias_cert_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - X509_get_issuer_name
    - ASN1_INTEGER_cmp
    - X509_get0_serialNumber
    linkageType: ''
    returnType: int
    signature: int ossl_cms_ias_cert_cmp(CMS_IssuerAndSerialNumber *ias, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_subject_key_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:690,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - keyid
    - cert
    argTypes:
    - ASN1_OCTET_STRING*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 695
    functionName: ossl_cms_keyid_cert_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - X509_get0_subject_key_id
    linkageType: ''
    returnType: int
    signature: int ossl_cms_keyid_cert_cmp(ASN1_OCTET_STRING *keyid, X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:700,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:703,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:703,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:705,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:705,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:707,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:711,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pias
    - cert
    argTypes:
    - CMS_IssuerAndSerialNumber**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 714
    functionName: ossl_cms_set1_ias
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    - ASN1_STRING_copy
    - ERR_raise
    - X509_get_issuer_name
    - M_ASN1_free_of
    - X509_get0_serialNumber
    - M_ASN1_new_of
    linkageType: ''
    returnType: int
    signature: int ossl_cms_set1_ias(CMS_IssuerAndSerialNumber **pias, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_subject_key_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:720,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:722,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:725,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:727,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_lib.c:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pkeyid
    - cert
    argTypes:
    - ASN1_OCTET_STRING**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 733
    functionName: ossl_cms_set1_keyid
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_lib.c
    functionUses: 0
    functionsReached:
    - X509_get0_subject_key_id
    - ASN1_OCTET_STRING_free
    - ERR_raise
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: int ossl_cms_set1_keyid(ASN1_OCTET_STRING **pkeyid, X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: cms_get_enveloped_type_simple
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int cms_get_enveloped_type_simple(const CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_get_enveloped_type_simple
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:47,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: cms_get_enveloped_type
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_get_enveloped_type_simple
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int cms_get_enveloped_type(const CMS_ContentInfo *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_get_enveloped_type_simple
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:56,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:57,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cinf
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: ossl_cms_env_enc_content_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - OPENSSL_clear_free
    - ossl_cms_get0_env_enc_content
    - cms_get_enveloped_type_simple
    linkageType: ''
    returnType: void
    signature: void ossl_cms_env_enc_content_free(const CMS_ContentInfo *cinf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: ossl_cms_get0_enveloped
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: CMS_EnvelopedData
    signature: CMS_EnvelopedData *ossl_cms_get0_enveloped(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: ossl_cms_get0_auth_enveloped
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: CMS_AuthEnvelopedData
    signature: CMS_AuthEnvelopedData *ossl_cms_get0_auth_enveloped(CMS_ContentInfo
      *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:86,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:91,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:92,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:93,1
    - Dst: ossl_cms_get0_enveloped
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: cms_enveloped_data_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_get0_enveloped
    - OBJ_nid2obj
    - ERR_raise
    - M_ASN1_new_of
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: CMS_EnvelopedData
    signature: CMS_EnvelopedData *cms_enveloped_data_init(CMS_ContentInfo *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:103,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:105,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:111,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:112,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:113,1
    - Dst: ossl_cms_get0_auth_enveloped
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: cms_auth_enveloped_data_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ERR_raise
    - ossl_cms_get0_auth_enveloped
    - M_ASN1_new_of
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: CMS_AuthEnvelopedData
    signature: 'CMS_AuthEnvelopedData *

      cms_auth_enveloped_data_init(CMS_ContentInfo *cms)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:130,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:136,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:136,1
    - Dst: ossl_cms_dh_envelope
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:137,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:138,1
    - Dst: ossl_cms_ecdh_envelope
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:139,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:140,1
    - Dst: ossl_cms_rsa_envelope
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:141,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - ri
    - cmd
    argTypes:
    - CMS_RecipientInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 119
    functionDepth: 14
    functionLinenumber: 119
    functionLinenumberEnd: 156
    functionName: ossl_cms_env_asn1_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_rsa_envelope
    - ossl_cms_dh_envelope
    - ERR_raise
    - EVP_PKEY*::ameth::pkey_ctrl
    - ossl_cms_ecdh_envelope
    - EVP_PKEY_is_a
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: int ossl_cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cms_get_enveloped_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: ossl_cms_get0_env_enc_content
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 3
    functionsReached:
    - cms_get_enveloped_type
    linkageType: ''
    returnType: CMS_EncryptedContentInfo
    signature: CMS_EncryptedContentInfo *ossl_cms_get0_env_enc_content(const CMS_ContentInfo
      *cms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:192,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:193,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:193,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:195,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:196,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:204,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:205,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: ossl_cms_RecipientInfos_set_cmsctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - ossl_x509_set0_libctx
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - ossl_cms_ctx_get0_propq
    - CMS_get0_RecipientInfos
    - ossl_cms_ctx_get0_libctx
    - STACK_OF
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: void
    signature: void ossl_cms_RecipientInfos_set_cmsctx(CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: CMS_RecipientInfo_type
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_type(CMS_RecipientInfo *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: CMS_RecipientInfo_get0_pkey_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:242,1
    - Dst: cms_enveloped_data_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:245,1
    - Dst: ossl_cms_EncryptedContent_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:249,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:250,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:254,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cipher
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: CMS_EnvelopedData_create_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_enveloped_data_init
    - ossl_cms_EncryptedContent_init
    - ERR_raise
    - CMS_ContentInfo_free
    - CMS_ContentInfo_new_ex
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher,\n
      \                                            OSSL_LIB_CTX *libctx,\n                                             const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_EnvelopedData_create_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: CMS_EnvelopedData_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMS_EnvelopedData_create_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:271,1
    - Dst: cms_auth_enveloped_data_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:274,1
    - Dst: ossl_cms_EncryptedContent_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:277,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:279,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:283,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cipher
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 286
    functionName: CMS_AuthEnvelopedData_create_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_EncryptedContent_init
    - ERR_raise
    - cms_auth_enveloped_data_init
    - CMS_ContentInfo_free
    - CMS_ContentInfo_new_ex
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *\nCMS_AuthEnvelopedData_create_ex(const EVP_CIPHER
      *cipher, OSSL_LIB_CTX *libctx,\n                                const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_AuthEnvelopedData_create_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: CMS_AuthEnvelopedData_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMS_AuthEnvelopedData_create_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:305,1
    - Dst: ossl_cms_set1_SignerIdentifier
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:326,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:329,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:330,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:336,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:336,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:338,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:341,1
    - Dst: ossl_cms_env_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - ri
    - recip
    - pk
    - flags
    - ctx
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    - EVP_PKEY*
    - unsigned int
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 298
    functionDepth: 15
    functionLinenumber: 298
    functionLinenumberEnd: 346
    functionName: cms_RecipientInfo_ktri_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_up_ref
    - EVP_PKEY_encrypt_init
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    - ossl_cms_env_asn1_ctrl
    - ossl_cms_set1_SignerIdentifier
    - M_ASN1_new_of
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,\n
      \                                      EVP_PKEY *pk, unsigned int flags,\n                                       const
      CMS_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:357,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:359,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:361,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:366,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:370,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:372,1
    - Dst: ossl_cms_pkey_get_ri_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:376,1
    - Dst: cms_RecipientInfo_ktri_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:379,1
    - Dst: ossl_cms_RecipientInfo_kari_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:384,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:390,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:395,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:401,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:403,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - cms
    - recip
    - originatorPrivKey
    - originator
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - EVP_PKEY*
    - X509*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 352
    functionDepth: 16
    functionLinenumber: 352
    functionLinenumberEnd: 406
    functionName: CMS_add1_recipient
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RecipientInfo_push
    - ERR_raise
    - CMS_get0_RecipientInfos
    - ossl_cms_pkey_get_ri_type
    - STACK_OF
    - ossl_cms_RecipientInfo_kari_init
    - cms_RecipientInfo_ktri_init
    - M_ASN1_free_of
    - M_ASN1_new_of
    - ossl_cms_get0_cmsctx
    - X509_get0_pubkey
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip,\n
      \                                     EVP_PKEY *originatorPrivKey,\n                                      X509
      *originator, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_add1_recipient
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cms
    - recip
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 17
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: CMS_add1_recipient_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - CMS_add1_recipient
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509
      *recip,\n                                           unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ri
    - pk
    - recip
    - palg
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY**
    - X509**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: CMS_RecipientInfo_ktri_get0_algs
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,\n                                     EVP_PKEY
      **pk, X509 **recip,\n                                     X509_ALGOR **palg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:442,1
    - Dst: ossl_cms_SignerIdentifier_get0_signer_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ri
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_RecipientInfo*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 449
    functionName: CMS_RecipientInfo_ktri_get0_signer_id
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_SignerIdentifier_get0_signer_id
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,\n
      \                                         ASN1_OCTET_STRING **keyid,\n                                          X509_NAME
      **issuer,\n                                          ASN1_INTEGER **sno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:454,1
    - Dst: ossl_cms_SignerIdentifier_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ri
    - cert
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: CMS_RecipientInfo_ktri_cert_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_SignerIdentifier_cert_cmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:463,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - pkey
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: CMS_RecipientInfo_set0_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:481,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:486,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:490,1
    - Dst: ossl_cms_env_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:495,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:498,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:498,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:500,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:504,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:508,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:511,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:514,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:518,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:521,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:527,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:529,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 473
    functionDepth: 15
    functionLinenumber: 473
    functionLinenumberEnd: 531
    functionName: cms_RecipientInfo_ktri_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - EVP_PKEY_encrypt_init
    - ossl_cms_get0_env_enc_content
    - ossl_cms_ctx_get0_propq
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - OPENSSL_free
    - ossl_cms_env_asn1_ctrl
    - EVP_PKEY_CTX_free
    - EVP_PKEY_encrypt
    - ASN1_STRING_set0
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_ktri_encrypt(const CMS_ContentInfo *cms,\n                                          CMS_RecipientInfo
      *ri)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:547,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:548,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:549,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:551,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:554,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:563,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:565,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:566,1
    - Dst: EVP_get_cipherbyobj
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:571,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:573,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:574,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:577,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:579,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:580,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:583,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:587,1
    - Dst: ossl_cms_env_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:590,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:593,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:598,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:600,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:604,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:609,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:615,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:620,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:623,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 535
    functionDepth: 15
    functionLinenumber: 535
    functionLinenumberEnd: 626
    functionName: cms_RecipientInfo_ktri_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get_key_length
    - EVP_get_cipherbyobj
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - EVP_PKEY_CTX_free
    - OPENSSL_clear_free
    - ossl_cms_env_asn1_ctrl
    - OBJ_obj2txt
    - EVP_CIPHER_free
    - ossl_cms_get0_env_enc_content
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - OPENSSL_free
    - EVP_CIPHER_fetch
    - ossl_cms_get0_cmsctx
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - ossl_cms_ctx_get0_propq
    - ERR_set_mark
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms,\n                                          CMS_RecipientInfo
      *ri)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:636,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ri
    - id
    - idlen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 645
    functionName: CMS_RecipientInfo_kekri_id_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,\n                                   const
      unsigned char *id, size_t idlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 664
    functionName: aes_wrap_keylen
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t aes_wrap_keylen(int nid)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:675,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:675,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:695,1
    - Dst: aes_wrap_keylen
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:701,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:704,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:709,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:716,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:720,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:728,1
    - Dst: sk_CMS_RecipientInfo_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:733,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:743,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:752,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:753,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:758,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:760,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 762
    functionName: CMS_add0_recipient_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set0
    - X509_ALGOR_set0
    - sk_CMS_RecipientInfo_push
    - OBJ_nid2obj
    - ERR_raise
    - CMS_get0_RecipientInfos
    - aes_wrap_keylen
    - STACK_OF
    - M_ASN1_free_of
    - M_ASN1_new_of
    linkageType: ''
    returnType: CMS_RecipientInfo
    signature: "CMS_RecipientInfo *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: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:773,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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 796
    functionName: CMS_RecipientInfo_kekri_get0_id
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ri
    - key
    - keylen
    argTypes:
    - CMS_RecipientInfo*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 811
    functionName: CMS_RecipientInfo_set0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,\n                               unsigned
      char *key, size_t keylen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:830,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:830,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:831,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - keylen
    - ctx
    argTypes:
    - size_t
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 832
    functionName: cms_get_key_wrap_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_ctx_get0_libctx
    - EVP_CIPHER_fetch
    - ossl_cms_ctx_get0_propq
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *cms_get_key_wrap_cipher(size_t keylen, const CMS_CTX *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:848,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:850,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:857,1
    - Dst: cms_get_key_wrap_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:861,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:863,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:868,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:870,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:874,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:876,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:880,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:881,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:882,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:883,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:884,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:888,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:889,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:893,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:898,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:900,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:901,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 837
    functionDepth: 4
    functionLinenumber: 837
    functionLinenumberEnd: 904
    functionName: cms_RecipientInfo_kekri_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_flags
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - OPENSSL_malloc
    - ossl_cms_get0_env_enc_content
    - ERR_raise
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - cms_get_key_wrap_cipher
    - ASN1_STRING_set0
    - EVP_EncryptFinal_ex
    - ossl_assert
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_kekri_encrypt(const CMS_ContentInfo *cms,\n
      \                                          CMS_RecipientInfo *ri)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:919,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:921,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:928,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:932,1
    - Dst: aes_wrap_keylen
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:933,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:934,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:941,1
    - Dst: cms_get_key_wrap_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:945,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:947,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:951,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:953,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:957,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:959,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:963,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:964,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:967,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:968,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:973,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:980,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:982,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:983,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 986
    functionName: cms_RecipientInfo_kekri_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - OPENSSL_malloc
    - OBJ_obj2nid
    - ossl_cms_get0_env_enc_content
    - ERR_raise
    - OPENSSL_clear_free
    - aes_wrap_keylen
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - OPENSSL_free
    - EVP_DecryptFinal_ex
    - cms_get_key_wrap_cipher
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: int
    signature: "int cms_RecipientInfo_kekri_decrypt(CMS_ContentInfo *cms,\n                                           CMS_RecipientInfo
      *ri)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cms_RecipientInfo_ktri_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:992,1
    - Dst: cms_RecipientInfo_kekri_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:995,1
    - Dst: ossl_cms_RecipientInfo_pwri_crypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:998,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 988
    functionDepth: 16
    functionLinenumber: 988
    functionLinenumberEnd: 1004
    functionName: CMS_RecipientInfo_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - cms_RecipientInfo_ktri_decrypt
    - cms_RecipientInfo_kekri_decrypt
    - ossl_cms_RecipientInfo_pwri_crypt
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo
      *ri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cms_RecipientInfo_ktri_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1010,1
    - Dst: ossl_cms_RecipientInfo_kari_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1013,1
    - Dst: cms_RecipientInfo_kekri_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1016,1
    - Dst: ossl_cms_RecipientInfo_pwri_crypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1019,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1006
    functionDepth: 16
    functionLinenumber: 1006
    functionLinenumberEnd: 1025
    functionName: CMS_RecipientInfo_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - cms_RecipientInfo_ktri_encrypt
    - cms_RecipientInfo_kekri_encrypt
    - ERR_raise
    - ossl_cms_RecipientInfo_kari_encrypt
    - ossl_cms_RecipientInfo_pwri_crypt
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo
      *ri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1035,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1037,1
    - Dst: sk_CMS_RevocationInfoChoice_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1047,1
    - Dst: sk_CMS_RevocationInfoChoice_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1049,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - env
    argTypes:
    - CMS_EnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1055
    functionName: cms_env_set_originfo_version
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - sk_CMS_CertificateChoices_num
    - sk_CMS_RevocationInfoChoice_value
    - sk_CMS_RevocationInfoChoice_num
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: void
    signature: void cms_env_set_originfo_version(CMS_EnvelopedData *env)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cms_env_set_originfo_version
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1068,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1073,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1074,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - env
    argTypes:
    - CMS_EnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1088
    functionName: cms_env_set_version
    functionSourceFile: /src/openssl-3.0.15/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: void cms_env_set_version(CMS_EnvelopedData *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1096,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1097,1
    - Dst: CMS_RecipientInfo_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cms
    - ris
    argTypes:
    - CMS_ContentInfo*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1090
    functionDepth: 17
    functionLinenumber: 1090
    functionLinenumberEnd: 1102
    functionName: cms_env_encrypt_content_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RecipientInfo_value
    - CMS_RecipientInfo_encrypt
    - sk_CMS_RecipientInfo_num
    linkageType: ''
    returnType: int
    signature: "int cms_env_encrypt_content_key(const CMS_ContentInfo *cms,\n                                       STACK_OF(CMS_RecipientInfo)
      *ris)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ec
    argTypes:
    - CMS_EncryptedContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1110
    functionName: cms_env_clear_ec
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void cms_env_clear_ec(CMS_EncryptedContentInfo *ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_EncryptedContent_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1115,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1116,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1122,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1124,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1131,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1131,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1133,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1112
    functionDepth: 7
    functionLinenumber: 1112
    functionLinenumberEnd: 1139
    functionName: cms_EnvelopedData_Decryption_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get0_cipher
    - ossl_cms_EncryptedContent_init_bio
    - BIO_free
    - BIO_get_cipher_ctx
    - EVP_CIPHER_get_flags
    - EVP_CIPHER_CTX_ctrl
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_EnvelopedData_Decryption_init_bio(CMS_ContentInfo *cms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1144,1
    - Dst: ossl_cms_EncryptedContent_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1152,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1152,1
    - Dst: cms_env_encrypt_content_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1161,1
    - Dst: cms_env_set_version
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1166,1
    - Dst: cms_env_clear_ec
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1171,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1141
    functionDepth: 18
    functionLinenumber: 1141
    functionLinenumberEnd: 1176
    functionName: cms_EnvelopedData_Encryption_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - ossl_cms_EncryptedContent_init_bio
    - BIO_free
    - cms_env_clear_ec
    - ERR_raise
    - ossl_cms_get0_cmsctx
    - STACK_OF
    - cms_env_set_version
    - cms_env_encrypt_content_key
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_EnvelopedData_Encryption_init_bio(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_EnvelopedData_Encryption_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1182,1
    - Dst: cms_EnvelopedData_Decryption_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1178
    functionDepth: 19
    functionLinenumber: 1178
    functionLinenumberEnd: 1187
    functionName: ossl_cms_EnvelopedData_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - cms_EnvelopedData_Decryption_init_bio
    - cms_EnvelopedData_Encryption_init_bio
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_EnvelopedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1192,1
    - Dst: ossl_cms_EncryptedContent_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1204,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1204,1
    - Dst: cms_env_encrypt_content_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1213,1
    - Dst: cms_env_clear_ec
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1223,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1189
    functionDepth: 18
    functionLinenumber: 1189
    functionLinenumberEnd: 1228
    functionName: ossl_cms_AuthEnvelopedData_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - ossl_cms_EncryptedContent_init_bio
    - BIO_free
    - cms_env_clear_ec
    - ERR_raise
    - ossl_cms_get0_cmsctx
    - STACK_OF
    - cms_env_encrypt_content_key
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_AuthEnvelopedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1234,1
    - Dst: ossl_cms_get0_enveloped
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1236,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1241,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1245,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1251,1
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1251,1
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1254,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1257,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1261,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1263,1
    - Dst: cms_env_set_version
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - cms
    - chain
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1270
    functionName: ossl_cms_EnvelopedData_final
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - BIO_find_type
    - ossl_cms_get0_enveloped
    - EVP_CIPHER_CTX_get0_cipher
    - BIO_get_cipher_ctx
    - EVP_CIPHER_get_flags
    - ERR_raise
    - sk_X509_ATTRIBUTE_new_null
    - EVP_CIPHER_CTX_ctrl
    - cms_env_set_version
    linkageType: ''
    returnType: int
    signature: int ossl_cms_EnvelopedData_final(CMS_ContentInfo *cms, BIO *chain)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1278,1
    - Dst: EVP_CIPHER_CTX_is_encrypting
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1284,1
    - Dst: EVP_CIPHER_CTX_get_tag_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1287,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1289,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1290,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1292,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1296,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - cms
    - cmsbio
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1272
    functionDepth: 3
    functionLinenumber: 1272
    functionLinenumberEnd: 1303
    functionName: ossl_cms_AuthEnvelopedData_final
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ASN1_OCTET_STRING_set
    - BIO_get_cipher_ctx
    - ERR_raise
    - OPENSSL_free
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_get_tag_length
    - EVP_CIPHER_CTX_is_encrypting
    linkageType: ''
    returnType: int
    signature: int ossl_cms_AuthEnvelopedData_final(CMS_ContentInfo *cms, BIO *cmsbio)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1313,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1315,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1317,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1319,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1321,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - pk
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1310
    functionDepth: 5
    functionLinenumber: 1310
    functionLinenumberEnd: 1335
    functionName: ossl_cms_pkey_get_ri_type
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - EVP_PKEY_is_a
    linkageType: ''
    returnType: int
    signature: int ossl_cms_pkey_get_ri_type(EVP_PKEY *pk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1344,1
    - Dst: ossl_cms_pkey_get_ri_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_env.c:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pk
    - ri_type
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1337
    functionDepth: 6
    functionLinenumber: 1337
    functionLinenumberEnd: 1355
    functionName: ossl_cms_pkey_is_ri_type_supported
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_env.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pkey_ctrl
    - ossl_cms_pkey_get_ri_type
    linkageType: ''
    returnType: int
    signature: int ossl_cms_pkey_is_ri_type_supported(EVP_PKEY *pk, int ri_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:30,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:34,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:38,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:38,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - prr
    argTypes:
    - CMS_SignerInfo*
    - CMS_ReceiptRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 46
    functionName: CMS_get1_ReceiptRequest
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ASN1_item_unpack
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - CMS_ReceiptRequest_free
    - CMS_signed_get0_data_by_OBJ
    linkageType: ''
    returnType: int
    signature: int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest
      **prr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:57,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:61,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:65,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:65,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - psc
    argTypes:
    - CMS_SignerInfo*
    - ESS_SIGNING_CERT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: ossl_cms_signerinfo_get_signing_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ESS_SIGNING_CERT_free
    - ASN1_item_unpack
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - CMS_signed_get0_data_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_signerinfo_get_signing_cert(const CMS_SignerInfo *si,\n
      \                                               ESS_SIGNING_CERT **psc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:84,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:88,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:92,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:92,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - si
    - psc
    argTypes:
    - CMS_SignerInfo*
    - ESS_SIGNING_CERT_V2**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: ossl_cms_signerinfo_get_signing_cert_v2
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ESS_SIGNING_CERT_V2_free
    - ASN1_item_unpack
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - CMS_signed_get0_data_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_signerinfo_get_signing_cert_v2(const CMS_SignerInfo *si,\n
      \                                                  ESS_SIGNING_CERT_V2 **psc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_signerinfo_get_signing_cert
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:107,1
    - Dst: ossl_cms_signerinfo_get_signing_cert_v2
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:108,1
    - Dst: OSSL_ESS_check_signing_certs
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:109,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:111,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - si
    - chain
    argTypes:
    - CMS_SignerInfo*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: ossl_cms_check_signing_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ESS_SIGNING_CERT_V2_free
    - ESS_SIGNING_CERT_free
    - ossl_cms_signerinfo_get_signing_cert
    - OSSL_ESS_check_signing_certs
    - ossl_cms_signerinfo_get_signing_cert_v2
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_check_signing_certs(const CMS_SignerInfo *si,\n                                 const
      STACK_OF(X509) *chain)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ReceiptRequest_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:123,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:127,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:129,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:131,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:136,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:150,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - id
    - idlen
    - allorfirst
    - receiptList
    - receiptsTo
    - libctx
    argTypes:
    - unsigned char*
    - int
    - int
    - STACK_OF*
    - STACK_OF*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 156
    functionName: CMS_ReceiptRequest_create0_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - ERR_raise
    - ASN1_STRING_set
    - CMS_ReceiptRequest_new
    - CMS_ReceiptRequest_free
    - sk_GENERAL_NAMES_pop_free
    - ASN1_STRING_set0
    linkageType: ''
    returnType: CMS_ReceiptRequest
    signature: "CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex(\n    unsigned char
      *id, int idlen, int allorfirst,\n    STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES)
      *receiptsTo,\n    OSSL_LIB_CTX *libctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ReceiptRequest_create0_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - id
    - idlen
    - allorfirst
    - receiptList
    - receiptsTo
    argTypes:
    - unsigned char*
    - int
    - int
    - STACK_OF*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: CMS_ReceiptRequest_create0
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_ReceiptRequest_create0_ex
    linkageType: ''
    returnType: CMS_ReceiptRequest
    signature: "CMS_ReceiptRequest *CMS_ReceiptRequest_create0(\n    unsigned char
      *id, int idlen, int allorfirst,\n    STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES)
      *receiptsTo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_CMS_ReceiptRequest
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:171,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:175,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - si
    - rr
    argTypes:
    - CMS_SignerInfo*
    - CMS_ReceiptRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: CMS_add1_ReceiptRequest
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    - i2d_CMS_ReceiptRequest
    - OPENSSL_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest
      *rr)
  - BBCount: 8
    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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 212
    functionName: CMS_ReceiptRequest_get0_values
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:219,1
    - Dst: ossl_asn1_item_digest_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:223,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:223,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:225,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - si
    - dig
    - diglen
    argTypes:
    - CMS_SignerInfo*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: cms_msgSigDigest
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyobj
    - ASN1_ITEM_rptr
    - ossl_asn1_item_digest_ex
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    linkageType: ''
    returnType: int
    signature: "int cms_msgSigDigest(CMS_SignerInfo *si,\n                            unsigned
      char *dig, unsigned int *diglen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cms_msgSigDigest
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:239,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:242,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - CMS_SignerInfo*
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: ossl_cms_msgSigDigest_add1
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    - cms_msgSigDigest
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_cms_msgSigDigest_add1(CMS_SignerInfo *dest, CMS_SignerInfo
      *src)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:257,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:265,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:266,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:271,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:276,1
    - Dst: CMS_get0_eContentType
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:277,1
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:282,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:284,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:288,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:288,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:291,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:297,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:298,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:299,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:303,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:304,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:308,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:312,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:313,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:318,1
    - Dst: cms_msgSigDigest
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:322,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:323,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:328,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:332,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:333,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:339,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:340,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:343,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:349,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:350,1
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:356,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:357,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:361,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:363,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:370,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:371,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 2
    argNames:
    - cms
    - req_cms
    argTypes:
    - CMS_ContentInfo*
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 374
    functionName: ossl_cms_Receipt_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - ASN1_item_unpack
    - OBJ_obj2nid
    - M_ASN1_free_of
    - CMS_get0_SignerInfos
    - CMS_get0_eContentType
    - CMS_get1_ReceiptRequest
    - CMS_get0_content
    - sk_CMS_SignerInfo_num
    - OBJ_cmp
    - memcmp
    - cms_msgSigDigest
    - ASN1_STRING_cmp
    - OBJ_nid2obj
    - sk_CMS_SignerInfo_value
    - ERR_raise
    - STACK_OF
    - CMS_ReceiptRequest_free
    - ASN1_ITEM_rptr
    - CMS_signed_get0_data_by_OBJ
    linkageType: ''
    returnType: int
    signature: int ossl_cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get1_ReceiptRequest
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:392,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:393,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:399,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:400,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:403,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:412,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:412,1
    - Dst: CMS_ReceiptRequest_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_ess.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 417
    functionName: ossl_cms_encode_Receipt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_ess.c
    functionUses: 0
    functionsReached:
    - CMS_get1_ReceiptRequest
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - ERR_raise
    - CMS_ReceiptRequest_free
    - ASN1_item_pack
    - CMS_signed_get0_data_by_OBJ
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *ossl_cms_encode_Receipt(CMS_SignerInfo *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:29,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: cms_get0_signed
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: CMS_SignedData
    signature: CMS_SignedData *cms_get0_signed(CMS_ContentInfo *cms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:41,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:46,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:48,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:49,1
    - Dst: cms_get0_signed
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 53
    functionName: cms_signed_data_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_get0_signed
    - OBJ_nid2obj
    - ERR_raise
    - M_ASN1_new_of
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: CMS_SignedData
    signature: CMS_SignedData *cms_signed_data_init(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cms_signed_data_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: CMS_SignedData_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - cms_signed_data_init
    linkageType: ''
    returnType: int
    signature: int CMS_SignedData_init(CMS_ContentInfo *cms)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_CMS_CertificateChoices_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:75,1
    - Dst: sk_CMS_CertificateChoices_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:76,1
    - Dst: sk_CMS_RevocationInfoChoice_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:89,1
    - Dst: sk_CMS_RevocationInfoChoice_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:90,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:97,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:101,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:102,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 1
    argNames:
    - sd
    argTypes:
    - CMS_SignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 115
    functionName: cms_sd_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - sk_CMS_CertificateChoices_num
    - sk_CMS_SignerInfo_value
    - sk_CMS_SignerInfo_num
    - sk_CMS_RevocationInfoChoice_value
    - sk_CMS_RevocationInfoChoice_num
    - sk_CMS_CertificateChoices_value
    linkageType: ''
    returnType: void
    signature: void cms_sd_set_version(CMS_SignedData *sd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cms
    - si
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: cms_set_si_contentType_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int cms_set_si_contentType_attr(CMS_ContentInfo *cms, CMS_SignerInfo
      *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:142,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:146,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:147,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:150,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:153,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:155,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:158,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:163,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - cms
    - si
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 176
    functionName: cms_copy_messageDigest
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    - OBJ_nid2obj
    - sk_CMS_SignerInfo_value
    - CMS_signed_get_attr_count
    - ERR_raise
    - sk_CMS_SignerInfo_num
    - OBJ_cmp
    - STACK_OF
    - CMS_get0_SignerInfos
    - CMS_signed_get0_data_by_OBJ
    linkageType: ''
    returnType: int
    signature: int cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_set1_ias
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:183,1
    - Dst: ossl_cms_set1_keyid
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - sid
    - cert
    - type
    - ctx
    argTypes:
    - CMS_SignerIdentifier*
    - X509*
    - int
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: ossl_cms_set1_SignerIdentifier
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - ossl_cms_set1_keyid
    - ossl_cms_set1_ias
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_set1_SignerIdentifier(CMS_SignerIdentifier *sid, X509
      *cert,\n                                   int type, const CMS_CTX *ctx)"
  - BBCount: 6
    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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 218
    functionName: ossl_cms_SignerIdentifier_get0_signer_id
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_SignerIdentifier_get0_signer_id(CMS_SignerIdentifier
      *sid,\n                                             ASN1_OCTET_STRING **keyid,\n
      \                                            X509_NAME **issuer,\n                                             ASN1_INTEGER
      **sno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_ias_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:223,1
    - Dst: ossl_cms_keyid_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sid
    - cert
    argTypes:
    - CMS_SignerIdentifier*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: ossl_cms_SignerIdentifier_cert_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - ossl_cms_ias_cert_cmp
    - ossl_cms_keyid_cert_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_cms_SignerIdentifier_cert_cmp(CMS_SignerIdentifier *sid, X509
      *cert)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:235,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:235,1
    - Dst: ossl_cms_ecdsa_dsa_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:236,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:237,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:237,1
    - Dst: ossl_cms_rsa_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:238,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:245,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - si
    - cmd
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 253
    functionName: cms_sd_asn1_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - ossl_cms_ecdsa_dsa_sign
    - ERR_raise
    - ossl_cms_rsa_sign
    - EVP_PKEY*::ameth::pkey_ctrl
    - EVP_PKEY_is_a
    linkageType: ''
    returnType: int
    signature: int cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:261,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:263,1
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:267,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:268,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:268,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:269,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:270,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:273,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:274,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - CMS_SignerInfo*
    - ESS_SIGNING_CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 278
    functionName: ossl_cms_add1_signing_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    - ASN1_STRING_free
    - i2d_ESS_SIGNING_CERT
    - OPENSSL_malloc
    - ASN1_STRING_new
    - OPENSSL_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_add1_signing_cert(CMS_SignerInfo *si,\n                                      const
      ESS_SIGNING_CERT *sc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT_V2
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:286,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:288,1
    - Dst: i2d_ESS_SIGNING_CERT_V2
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:292,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:293,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:293,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:294,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:295,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:298,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:299,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - CMS_SignerInfo*
    - ESS_SIGNING_CERT_V2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 303
    functionName: ossl_cms_add1_signing_cert_v2
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    - i2d_ESS_SIGNING_CERT_V2
    - ASN1_STRING_free
    - OPENSSL_malloc
    - ASN1_STRING_new
    - OPENSSL_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_add1_signing_cert_v2(CMS_SignerInfo *si,\n                                         const
      ESS_SIGNING_CERT_V2 *sc)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:313,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:315,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:316,1
    - Dst: cms_signed_data_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:319,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:322,1
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:326,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:328,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:329,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:338,1
    - Dst: ossl_cms_set1_SignerIdentifier
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:352,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:358,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:359,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:360,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:363,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:365,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:372,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:377,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:381,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:384,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:388,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:389,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:390,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:391,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:395,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:396,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:399,1
    - Dst: sk_X509_ALGOR_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:400,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:401,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:406,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:407,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:408,1
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:417,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:423,1
    - Dst: CMS_add_standard_smimecap
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:424,1
    - Dst: CMS_add_smimecap
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:426,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:427,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:436,1
    - Dst: OSSL_ESS_signing_cert_new_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:437,1
    - Dst: ossl_cms_add1_signing_cert
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:440,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:441,1
    - Dst: OSSL_ESS_signing_cert_v2_new_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:443,1
    - Dst: ossl_cms_add1_signing_cert_v2
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:446,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:447,1
    - Dst: cms_copy_messageDigest
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:453,1
    - Dst: cms_set_si_contentType_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:455,1
    - Dst: CMS_SignerInfo_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:458,1
    - Dst: CMS_add1_cert
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:465,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:471,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:471,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:473,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:476,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:478,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:480,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:481,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:482,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:483,1
    - Dst: sk_CMS_SignerInfo_new_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:490,1
    - Dst: sk_CMS_SignerInfo_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:491,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:497,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:499,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 169
    argCount: 5
    argNames:
    - cms
    - signer
    - pk
    - md
    - flags
    argTypes:
    - CMS_ContentInfo*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 305
    functionDepth: 11
    functionLinenumber: 305
    functionLinenumberEnd: 502
    functionName: CMS_add1_signer
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - sk_X509_ALGOR_push
    - ESS_SIGNING_CERT_V2_free
    - X509_ALGOR_set_md
    - cms_copy_messageDigest
    - EVP_PKEY_up_ref
    - sk_X509_ALGOR_value
    - EVP_MD_get0_name
    - EVP_PKEY_get_default_digest_nid
    - M_ASN1_free_of
    - CMS_add_standard_smimecap
    - X509_ALGOR_new
    - X509_up_ref
    - EVP_PKEY_get_id
    - ERR_raise_data
    - cms_set_si_contentType_attr
    - X509_ALGOR_free
    - sk_X509_ALGOR_pop_free
    - CMS_add1_cert
    - sk_X509_ATTRIBUTE_new_null
    - ossl_cms_set1_SignerIdentifier
    - OSSL_ESS_signing_cert_new_init
    - ossl_cms_add1_signing_cert_v2
    - CMS_SignerInfo_sign
    - EVP_PKEY_CTX_set_signature_md
    - ossl_cms_add1_signing_cert
    - X509_check_private_key
    - ESS_SIGNING_CERT_free
    - OBJ_obj2txt
    - EVP_MD_CTX_new
    - OSSL_ESS_signing_cert_v2_new_init
    - sk_CMS_SignerInfo_push
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - X509_ALGOR_get0
    - STACK_OF
    - ossl_cms_get0_cmsctx
    - EVP_MD_is_a
    - EVP_PKEY_sign_init
    - X509_check_purpose
    - cms_sd_asn1_ctrl
    - EVP_PKEY_CTX_new_from_pkey
    - sk_CMS_SignerInfo_new_null
    - ossl_cms_ctx_get0_propq
    - EVP_get_digestbynid
    - CMS_add_smimecap
    - EVP_DigestSignInit_ex
    - sk_X509_ALGOR_num
    - M_ASN1_new_of
    - cms_signed_data_init
    linkageType: ''
    returnType: CMS_SignerInfo
    signature: "CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,\n                                X509
      *signer, EVP_PKEY *pk, const EVP_MD *md,\n                                unsigned
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:508,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:509,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:511,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:512,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:513,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:515,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 520
    functionName: ossl_cms_SignerInfos_set_cmsctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - sk_CMS_SignerInfo_value
    - ERR_set_mark
    - sk_CMS_SignerInfo_num
    - STACK_OF
    - ERR_pop_to_mark
    - CMS_get0_SignerInfos
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: void
    signature: void ossl_cms_SignerInfos_set_cmsctx(CMS_ContentInfo *cms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:530,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:535,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:542,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:545,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - si
    - t
    argTypes:
    - CMS_SignerInfo*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 549
    functionName: cms_add1_signingTime
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - CMS_signed_add1_attr_by_NID
    - ASN1_TIME_free
    - X509_gmtime_adj
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int cms_add1_signingTime(CMS_SignerInfo *si, ASN1_TIME *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: CMS_SignerInfo_get0_pkey_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_CTX
    signature: EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: CMS_SignerInfo_get0_md_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD_CTX
    signature: EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:592,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:593,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:594,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - si
    - signer
    argTypes:
    - CMS_SignerInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 598
    functionName: CMS_SignerInfo_set1_signer_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - X509_free
    - X509_up_ref
    - X509_get_pubkey
    linkageType: ''
    returnType: void
    signature: void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_SignerIdentifier_get0_signer_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - si
    - keyid
    - issuer
    - sno
    argTypes:
    - CMS_SignerInfo*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 605
    functionName: CMS_SignerInfo_get0_signer_id
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - ossl_cms_SignerIdentifier_get0_signer_id
    linkageType: ''
    returnType: int
    signature: "int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,\n                                  ASN1_OCTET_STRING
      **keyid,\n                                  X509_NAME **issuer, ASN1_INTEGER
      **sno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_SignerIdentifier_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - cert
    argTypes:
    - CMS_SignerInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: CMS_SignerInfo_cert_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - ossl_cms_SignerIdentifier_cert_cmp
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert)
  - BBCount: 5
    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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 671
    functionName: CMS_SignerInfo_get0_algs
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk,\n
      \                             X509 **signer, X509_ALGOR **pdig,\n                              X509_ALGOR
      **psig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: CMS_SignerInfo_get0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:681,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:684,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:687,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:692,1
    - Dst: ossl_cms_DigestAlgorithm_find_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:696,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:699,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:706,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:710,1
    - Dst: CMS_signed_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:712,1
    - Dst: cms_set_si_contentType_attr
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:716,1
    - Dst: CMS_SignerInfo_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:719,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:728,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:730,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:731,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:733,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:736,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:737,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:740,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:745,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:745,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:747,1
    - Dst: EVP_SignFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:750,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:751,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:752,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:753,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:754,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:757,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:763,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:764,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 3
    argNames:
    - cms
    - si
    - chain
    argTypes:
    - CMS_ContentInfo*
    - CMS_SignerInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 678
    functionDepth: 9
    functionLinenumber: 678
    functionLinenumberEnd: 767
    functionName: cms_SignerInfo_content_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_sign
    - ASN1_STRING_set0
    - EVP_PKEY_CTX_free
    - EVP_SignFinal_ex
    - CMS_signed_add1_attr_by_NID
    - cms_set_si_contentType_attr
    - CMS_SignerInfo_sign
    - EVP_PKEY_get_size
    - EVP_MD_CTX_new
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - OPENSSL_free
    - EVP_DigestFinal_ex
    - ossl_cms_get0_cmsctx
    - cms_sd_asn1_ctrl
    - OPENSSL_malloc
    - CMS_signed_get_attr_count
    - ossl_cms_ctx_get0_propq
    - ossl_cms_DigestAlgorithm_find_ctx
    linkageType: ''
    returnType: int
    signature: "int cms_SignerInfo_content_sign(CMS_ContentInfo *cms,\n                                       CMS_SignerInfo
      *si, BIO *chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:771,1
    - Dst: CMS_get0_SignerInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:775,1
    - Dst: sk_CMS_SignerInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:776,1
    - Dst: sk_CMS_SignerInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:777,1
    - Dst: cms_SignerInfo_content_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cms
    - chain
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 769
    functionDepth: 10
    functionLinenumber: 769
    functionLinenumberEnd: 783
    functionName: ossl_cms_SignedData_final
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - sk_CMS_SignerInfo_value
    - sk_CMS_SignerInfo_num
    - cms_SignerInfo_content_sign
    - STACK_OF
    - CMS_get0_SignerInfos
    linkageType: ''
    returnType: int
    signature: int ossl_cms_SignedData_final(CMS_ContentInfo *cms, BIO *chain)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:795,1
    - Dst: CMS_signed_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:799,1
    - Dst: cms_add1_signingTime
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:800,1
    - Dst: ossl_cms_si_check_attributes
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:804,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:810,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:811,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:812,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:813,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:819,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:820,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:823,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:825,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:827,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:828,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:831,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:834,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:836,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:841,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:842,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 785
    functionDepth: 7
    functionLinenumber: 785
    functionLinenumberEnd: 844
    functionName: CMS_SignerInfo_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 2
    functionsReached:
    - EVP_DigestSignFinal
    - CMS_signed_get_attr_by_NID
    - ossl_cms_si_check_attributes
    - OBJ_obj2txt
    - ASN1_ITEM_rptr
    - OPENSSL_malloc
    - ossl_cms_ctx_get0_propq
    - ASN1_item_i2d
    - cms_add1_signingTime
    - ossl_cms_ctx_get0_libctx
    - OPENSSL_free
    - EVP_MD_CTX_reset
    - EVP_DigestSignInit_ex
    - ASN1_STRING_set0
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_sign(CMS_SignerInfo *si)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:855,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:856,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:859,1
    - Dst: ossl_cms_si_check_attributes
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:863,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:866,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:868,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:869,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:874,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:876,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:877,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:880,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:882,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:883,1
    - Dst: EVP_DigestVerifyInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:887,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:887,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:891,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:894,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:895,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:898,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:899,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:904,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:907,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:909,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:910,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 846
    functionDepth: 11
    functionLinenumber: 846
    functionLinenumberEnd: 912
    functionName: CMS_SignerInfo_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyobj
    - EVP_MD_get0_name
    - ASN1_item_i2d
    - ossl_cms_si_check_attributes
    - EVP_DigestVerifyInit_ex
    - EVP_DigestVerifyUpdate
    - OBJ_obj2txt
    - EVP_MD_CTX_new
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - OPENSSL_free
    - EVP_MD_CTX_reset
    - cms_sd_asn1_ctrl
    - ASN1_ITEM_rptr
    - ossl_cms_ctx_get0_propq
    - ERR_set_mark
    - EVP_DigestVerifyFinal
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_verify(CMS_SignerInfo *si)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cms_get0_signed
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:922,1
    - Dst: cms_sd_set_version
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:926,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:927,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:931,1
    - Dst: ossl_cms_DigestAlgorithm_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:932,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:933,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:937,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:943,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 916
    functionDepth: 12
    functionLinenumber: 916
    functionLinenumberEnd: 945
    functionName: ossl_cms_SignedData_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 1
    functionsReached:
    - cms_get0_signed
    - ossl_cms_DigestAlgorithm_init_bio
    - BIO_push
    - BIO_free_all
    - sk_X509_ALGOR_value
    - sk_X509_ALGOR_num
    - ossl_cms_get0_cmsctx
    - cms_sd_set_version
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_SignedData_init_bio(CMS_ContentInfo *cms)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:950,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:957,1
    - Dst: CMS_signed_get_attr_count
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:961,1
    - Dst: CMS_signed_get0_data_by_OBJ
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:962,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:963,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:966,1
    - Dst: ossl_cms_DigestAlgorithm_find_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:971,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:974,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:975,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:983,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:987,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:988,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:993,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:996,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:996,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:998,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1001,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1003,1
    - Dst: cms_sd_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1006,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1008,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1011,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1017,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_sd.c:1018,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - si
    - chain
    argTypes:
    - CMS_SignerInfo*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 947
    functionDepth: 9
    functionLinenumber: 947
    functionLinenumberEnd: 1021
    functionName: CMS_SignerInfo_verify_content
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_sd.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - cms_sd_asn1_ctrl
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_verify
    - OBJ_nid2obj
    - EVP_MD_CTX_new
    - CMS_signed_get_attr_count
    - ossl_cms_ctx_get0_propq
    - ERR_raise
    - ossl_cms_ctx_get0_libctx
    - EVP_PKEY_verify_init
    - ossl_cms_DigestAlgorithm_find_ctx
    - EVP_PKEY_CTX_free
    - EVP_DigestFinal_ex
    - memcmp
    - EVP_MD_CTX_get0_md
    - CMS_signed_get0_data_by_OBJ
    - EVP_PKEY_CTX_set_signature_md
    linkageType: ''
    returnType: int
    signature: int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:27,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:31,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:36,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:40,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:42,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - md
    - libctx
    - propq
    argTypes:
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 49
    functionName: ossl_cms_DigestedData_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dd.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set_md
    - OBJ_nid2obj
    - CMS_ContentInfo_new_ex
    - CMS_ContentInfo_free
    - M_ASN1_new_of
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *ossl_cms_DigestedData_create(const EVP_MD *md,\n
      \                                             OSSL_LIB_CTX *libctx,\n                                              const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_DigestAlgorithm_init_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:55,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 12
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: ossl_cms_DigestedData_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dd.c
    functionUses: 1
    functionsReached:
    - ossl_cms_DigestAlgorithm_init_bio
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_DigestedData_init_bio(const CMS_ContentInfo *cms)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:62,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:69,1
    - Dst: ossl_cms_DigestAlgorithm_find_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:75,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:78,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:83,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:88,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:92,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dd.c:98,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - cms
    - chain
    - verify
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 59
    functionDepth: 9
    functionLinenumber: 59
    functionLinenumberEnd: 102
    functionName: ossl_cms_DigestedData_do_final
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dd.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - ERR_raise
    - ossl_cms_DigestAlgorithm_find_ctx
    - EVP_DigestFinal_ex
    - memcmp
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_DigestedData_do_final(const CMS_ContentInfo *cms, BIO
      *chain,\n                                   int verify)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:33,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:34,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:40,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:41,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:45,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:46,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:50,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:56,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:57,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:59,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:61,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:64,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:66,1
    - Dst: EVP_PKEY_set1_encoded_public_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:67,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:70,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:73,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:75,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:76,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 43
    argCount: 3
    argNames:
    - pctx
    - alg
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 19
    functionDepth: 11
    functionLinenumber: 19
    functionLinenumberEnd: 78
    functionName: dh_cms_set_peerkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dh.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_derive_set_peer
    - ASN1_STRING_length
    - ASN1_INTEGER_to_BN
    - OBJ_obj2nid
    - EVP_PKEY_set1_encoded_public_key
    - ASN1_INTEGER_free
    - ASN1_STRING_get0_data
    - EVP_PKEY_copy_parameters
    - BN_bn2binpad
    - d2i_ASN1_INTEGER
    - EVP_PKEY_get_size
    - BN_free
    - OPENSSL_free
    - X509_ALGOR_get0
    - EVP_PKEY_new
    - EVP_PKEY_is_a
    - EVP_PKEY_CTX_get0_pkey
    - OPENSSL_malloc
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int dh_cms_set_peerkey(EVP_PKEY_CTX *pctx,\n                              X509_ALGOR
      *alg, ASN1_BIT_STRING *pubkey)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:93,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:101,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:105,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:106,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:106,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:114,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:117,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:121,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:124,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:126,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:128,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:130,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:133,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_outlen
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:134,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_oid
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:137,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:138,1
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:138,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:143,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:144,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:144,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_ukm
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:149,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:155,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:157,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 63
    argCount: 2
    argNames:
    - pctx
    - ri
    argTypes:
    - EVP_PKEY_CTX*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 159
    functionName: dh_cms_set_shared_info
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dh.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_set_dh_kdf_md
    - ASN1_STRING_length
    - OBJ_obj2nid
    - EVP_CIPHER_get_type
    - EVP_PKEY_CTX_set_dh_kdf_outlen
    - CMS_RecipientInfo_kari_get0_alg
    - ASN1_STRING_get0_data
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_get_key_length
    - EVP_EncryptInit_ex
    - OBJ_obj2txt
    - EVP_CIPHER_free
    - OBJ_nid2obj
    - ERR_raise
    - OPENSSL_free
    - EVP_CIPHER_fetch
    - d2i_X509_ALGOR
    - EVP_PKEY_CTX_set_dh_kdf_type
    - EVP_CIPHER_get_mode
    - EVP_PKEY_CTX_set0_dh_kdf_oid
    - EVP_sha1
    - CMS_RecipientInfo_kari_get0_ctx
    - OPENSSL_memdup
    - EVP_PKEY_CTX_set0_dh_kdf_ukm
    - EVP_CIPHER_asn1_to_param
    linkageType: ''
    returnType: int
    signature: int dh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:163,1
    - Dst: EVP_PKEY_CTX_get0_peerkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:168,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:172,1
    - Dst: dh_cms_set_peerkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:178,1
    - Dst: dh_cms_set_shared_info
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 161
    functionDepth: 12
    functionLinenumber: 161
    functionLinenumberEnd: 188
    functionName: dh_cms_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dh.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_get0_peerkey
    - dh_cms_set_shared_info
    - ERR_raise
    - dh_cms_set_peerkey
    - CMS_RecipientInfo_kari_get0_orig_id
    - CMS_RecipientInfo_get0_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int dh_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:208,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:212,1
    - Dst: CMS_RecipientInfo_kari_get0_orig_id
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:213,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:218,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:219,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:223,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:226,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:227,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:232,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:233,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:236,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:241,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:241,1
    - Dst: EVP_PKEY_CTX_get_dh_kdf_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:246,1
    - Dst: EVP_PKEY_CTX_get_dh_kdf_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:247,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:252,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:259,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:260,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:262,1
    - Dst: CMS_RecipientInfo_kari_get0_alg
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:266,1
    - Dst: CMS_RecipientInfo_kari_get0_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:270,1
    - Dst: EVP_CIPHER_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:271,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_oid
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:272,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:272,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:274,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:278,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:281,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:282,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:285,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:287,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:288,1
    - Dst: EVP_PKEY_CTX_set_dh_kdf_outlen
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:292,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:296,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:297,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:297,1
    - Dst: EVP_PKEY_CTX_set0_dh_kdf_ukm
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:302,1
    - Dst: i2d_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:311,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:314,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:317,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:319,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:319,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:322,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:325,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:326,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:327,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 110
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 190
    functionDepth: 5
    functionLinenumber: 190
    functionLinenumberEnd: 329
    functionName: dh_cms_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dh.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_set_dh_kdf_md
    - i2d_X509_ALGOR
    - ASN1_STRING_length
    - EVP_PKEY_CTX_get_dh_kdf_type
    - EVP_PKEY_CTX_set_dh_kdf_outlen
    - CMS_RecipientInfo_kari_get0_alg
    - ASN1_TYPE_free
    - ASN1_INTEGER_free
    - ASN1_STRING_set0
    - X509_ALGOR_new
    - ASN1_STRING_get0_data
    - X509_ALGOR_set0
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_get_key_length
    - CMS_RecipientInfo_kari_get0_orig_id
    - EVP_CIPHER_param_to_asn1
    - i2d_ASN1_INTEGER
    - EVP_PKEY_get_bn_param
    - OBJ_nid2obj
    - EVP_CIPHER_CTX_get_type
    - ASN1_STRING_new
    - BN_free
    - OPENSSL_free
    - X509_ALGOR_get0
    - EVP_MD_get_type
    - EVP_PKEY_CTX_get0_pkey
    - ASN1_TYPE_new
    - EVP_PKEY_CTX_set_dh_kdf_type
    - ASN1_STRING_free
    - EVP_PKEY_CTX_get_dh_kdf_md
    - EVP_PKEY_CTX_set0_dh_kdf_oid
    - ASN1_TYPE_get
    - BN_to_ASN1_INTEGER
    - EVP_sha1
    - CMS_RecipientInfo_kari_get0_ctx
    - OPENSSL_memdup
    - EVP_PKEY_CTX_set0_dh_kdf_ukm
    - CMS_RecipientInfo_get0_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int dh_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:333,1
    - Dst: dh_cms_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:336,1
    - Dst: dh_cms_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:339,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_dh.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - decrypt
    argTypes:
    - CMS_RecipientInfo*
    - int
    assertStmts:
    - condition: (decrypt == 0 || decrypt == 1)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/openssl-3.0.15/crypto/cms/cms_dh.c
    constantsTouched: []
    func_position:
      end: 343
      start: 331
    functionDepth: 13
    functionLinenumber: 331
    functionLinenumberEnd: 343
    functionName: ossl_cms_dh_envelope
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_dh.c
    functionUses: 1
    functionsReached:
    - dh_cms_encrypt
    - ERR_raise
    - assert
    - dh_cms_decrypt
    linkageType: ''
    returnType: int
    signature: int ossl_cms_dh_envelope(CMS_RecipientInfo *ri, int decrypt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:36,1
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:39,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:43,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:48,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:53,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:54,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:56,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - comp_nid
    - libctx
    - propq
    argTypes:
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 63
    functionName: ossl_cms_CompressedData_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_cd.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - CMS_ContentInfo_new_ex
    - ERR_raise
    - CMS_ContentInfo_free
    - M_ASN1_new_of
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *ossl_cms_CompressedData_create(int comp_nid,\n                                                OSSL_LIB_CTX
      *libctx,\n                                                const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:71,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:75,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:77,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:80,1
    - Dst: BIO_f_zlib
      Src: /src/openssl-3.0.15/crypto/cms/cms_cd.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: ossl_cms_CompressedData_init_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_cd.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - OBJ_obj2nid
    - BIO_f_zlib
    - ERR_raise
    - X509_ALGOR_get0
    linkageType: ''
    returnType: BIO
    signature: BIO *ossl_cms_CompressedData_init_bio(const CMS_ContentInfo *cms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ri
    - palg
    - pukm
    argTypes:
    - CMS_RecipientInfo*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: CMS_RecipientInfo_kari_get0_alg
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 4
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri,\n                                    X509_ALGOR
      **palg,\n                                    ASN1_OCTET_STRING **pukm)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:65,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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 95
    functionName: CMS_RecipientInfo_kari_get0_orig_id
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 4
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:102,1
    - Dst: ossl_cms_ias_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:107,1
    - Dst: ossl_cms_keyid_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ri
    - cert
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: CMS_RecipientInfo_kari_orig_id_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - ossl_cms_ias_cert_cmp
    - ERR_raise
    - ossl_cms_keyid_cert_cmp
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509
      *cert)
  - BBCount: 13
    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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: CMS_RecipientEncryptedKey_get0_id
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_ias_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:154,1
    - Dst: ossl_cms_keyid_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - rek
    - cert
    argTypes:
    - CMS_RecipientEncryptedKey*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: CMS_RecipientEncryptedKey_cert_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - ossl_cms_ias_cert_cmp
    - ossl_cms_keyid_cert_cmp
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek,\n
      \                                      X509 *cert)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:168,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:173,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:173,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:175,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:176,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:180,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:182,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ri
    - pk
    - peer
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 191
    functionName: CMS_RecipientInfo_kari_set0_pkey_and_peer
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_CTX_new_from_pkey
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri,\n
      \                                             EVP_PKEY *pk, X509 *peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_kari_set0_pkey_and_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ri
    - pk
    argTypes:
    - CMS_RecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: CMS_RecipientInfo_kari_set0_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_kari_set0_pkey_and_peer
    linkageType: ''
    returnType: int
    signature: int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY
      *pk)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: CMS_RecipientInfo_kari_get0_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:221,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:225,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:228,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:231,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:233,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:236,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:243,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:245,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:246,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:248,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 251
    functionName: cms_kek_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_CipherUpdate
    - OPENSSL_malloc
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_reset
    - EVP_CIPHER_CTX_get_key_length
    - OPENSSL_free
    - EVP_CipherInit_ex
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_kek_cipher(unsigned char **pout, size_t *poutlen,\n                          const
      unsigned char *in, size_t inlen,\n                          CMS_KeyAgreeRecipientInfo
      *kari, int enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_env_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:266,1
    - Dst: cms_kek_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:269,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:271,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:272,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - cms
    - ri
    - rek
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - CMS_RecipientEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 253
    functionDepth: 15
    functionLinenumber: 253
    functionLinenumberEnd: 280
    functionName: CMS_RecipientInfo_kari_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - cms_kek_cipher
    - ossl_cms_get0_env_enc_content
    - OPENSSL_free
    - ossl_cms_env_asn1_ctrl
    - OPENSSL_clear_free
    linkageType: ''
    returnType: int
    signature: "int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms,\n                                   CMS_RecipientInfo
      *ri,\n                                   CMS_RecipientEncryptedKey *rek)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:290,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:291,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:293,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:296,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:298,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:300,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:301,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:304,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:310,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:311,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - kari
    - pk
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 8
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: cms_kari_create_ephemeral_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_keygen
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_kari_create_ephemeral_key(CMS_KeyAgreeRecipientInfo *kari,\n
      \                                        EVP_PKEY *pk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:323,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:323,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:325,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:328,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - kari
    - originatorPrivKey
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 337
    functionName: cms_kari_set_originator_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_kari_set_originator_private_key(CMS_KeyAgreeRecipientInfo
      *kari,\n                                               EVP_PKEY *originatorPrivKey
      )"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:349,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:358,1
    - Dst: sk_CMS_RecipientEncryptedKey_push
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:362,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:363,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:369,1
    - Dst: ossl_cms_set1_keyid
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:372,1
    - Dst: ossl_cms_set1_ias
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:376,1
    - Dst: cms_kari_create_ephemeral_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:382,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:393,1
    - Dst: ossl_cms_set1_keyid
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:396,1
    - Dst: ossl_cms_set1_ias
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:400,1
    - Dst: cms_kari_set_originator_private_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:404,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:408,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 7
    argNames:
    - ri
    - recip
    - recipPubKey
    - originator
    - originatorPrivKey
    - flags
    - ctx
    argTypes:
    - CMS_RecipientInfo*
    - X509*
    - EVP_PKEY*
    - X509*
    - EVP_PKEY*
    - unsigned int
    - CMS_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 341
    functionDepth: 9
    functionLinenumber: 341
    functionLinenumberEnd: 411
    functionName: ossl_cms_RecipientInfo_kari_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 1
    functionsReached:
    - sk_CMS_RecipientEncryptedKey_push
    - ossl_cms_set1_keyid
    - cms_kari_set_originator_private_key
    - EVP_PKEY_up_ref
    - cms_kari_create_ephemeral_key
    - ossl_cms_set1_ias
    - M_ASN1_free_of
    - ASN1_OCTET_STRING_new
    - M_ASN1_new_of
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri,  X509
      *recip,\n                                     EVP_PKEY *recipPubKey, X509 *originator,\n
      \                                    EVP_PKEY *originatorPrivKey,\n                                     unsigned
      int flags, const CMS_CTX *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:425,1
    - Dst: EVP_CIPHER_CTX_get_mode
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:427,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:433,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:434,1
    - Dst: EVP_CIPHER_meth_get_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:435,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:441,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:443,1
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:453,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:464,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:464,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:466,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:469,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - kari
    - cipher
    argTypes:
    - CMS_KeyAgreeRecipientInfo*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 472
    functionName: cms_wrap_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get_key_length
    - EVP_CIPHER_CTX_get0_cipher
    - EVP_CIPHER_free
    - EVP_CIPHER_get_mode
    - EVP_CIPHER_CTX_get_mode
    - EVP_CIPHER_get_flags
    - EVP_CIPHER_get_type
    - ossl_cms_ctx_get0_libctx
    - EVP_CIPHER_get0_name
    - ossl_cms_ctx_get0_propq
    - EVP_EncryptInit_ex
    - EVP_CIPHER_meth_get_ctrl
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: "int cms_wrap_init(CMS_KeyAgreeRecipientInfo *kari,\n                         const
      EVP_CIPHER *cipher)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:482,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:486,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:491,1
    - Dst: cms_wrap_init
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:493,1
    - Dst: M_ASN1_new_of
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:502,1
    - Dst: ossl_cms_env_asn1_ctrl
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:507,1
    - Dst: sk_CMS_RecipientEncryptedKey_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:510,1
    - Dst: sk_CMS_RecipientEncryptedKey_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:513,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:514,1
    - Dst: cms_kek_cipher
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:516,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_kari.c:519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - cms
    - ri
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 476
    functionDepth: 15
    functionLinenumber: 476
    functionLinenumberEnd: 523
    functionName: ossl_cms_RecipientInfo_kari_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_kari.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_derive_set_peer
    - ASN1_STRING_set0
    - sk_CMS_RecipientEncryptedKey_num
    - cms_kek_cipher
    - ossl_cms_get0_env_enc_content
    - ERR_raise
    - cms_wrap_init
    - ossl_cms_env_asn1_ctrl
    - STACK_OF
    - sk_CMS_RecipientEncryptedKey_value
    - M_ASN1_new_of
    linkageType: ''
    returnType: int
    signature: "int ossl_cms_RecipientInfo_kari_encrypt(const CMS_ContentInfo *cms,\n
      \                                       CMS_RecipientInfo *ri)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:24,1
    - Dst: BIO_s_null
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:24,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:26,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:26,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - flags
    argTypes:
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: cms_get_text_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_s_null
    - BIO_new
    - BIO_set_mem_eof_return
    - BIO_s_mem
    linkageType: ''
    returnType: BIO
    signature: BIO *cms_get_text_bio(BIO *out, unsigned int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cms_get_text_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:42,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:48,1
    - Dst: BIO_method_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:50,1
    - Dst: BIO_get_cipher_status
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:51,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:59,1
    - Dst: SMIME_text
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:65,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:73,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - out
    - in
    - flags
    argTypes:
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 76
    functionName: cms_copy_content
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_method_type
    - cms_get_text_bio
    - BIO_free
    - ERR_raise
    - BIO_get_cipher_status
    - SMIME_text
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int cms_copy_content(BIO *out, BIO *in, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cms
    argTypes:
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: check_content
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_get0_content
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int check_content(CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:95,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:96,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - f
    - upto
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: do_free_upto
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_free_all
    - BIO_free
    - BIO_pop
    linkageType: ''
    returnType: void
    signature: void do_free_upto(BIO *f, BIO *upto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:109,1
    - Dst: CMS_get0_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:110,1
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:113,1
    - Dst: cms_copy_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:116,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cms
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 9
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: CMS_data
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - BIO_free_all
    - OBJ_obj2nid
    - CMS_get0_type
    - ERR_raise
    - cms_copy_content
    - CMS_dataInit
    linkageType: ''
    returnType: int
    signature: int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_Data_create
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:124,1
    - Dst: CMS_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:129,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - in
    - flags
    - libctx
    - propq
    argTypes:
    - BIO*
    - unsigned int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: CMS_data_create_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_ContentInfo_free
    - ossl_cms_Data_create
    - CMS_final
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags,\n
      \                                   OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_data_create_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - flags
    argTypes:
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: CMS_data_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_data_create_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:147,1
    - Dst: CMS_get0_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:148,1
    - Dst: check_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:152,1
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:155,1
    - Dst: cms_copy_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:159,1
    - Dst: ossl_cms_DigestedData_do_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:161,1
    - Dst: do_free_upto
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 10
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: CMS_digest_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - do_free_upto
    - OBJ_obj2nid
    - CMS_get0_type
    - ERR_raise
    - check_content
    - cms_copy_content
    - ossl_cms_DigestedData_do_final
    - CMS_dataInit
    linkageType: ''
    returnType: int
    signature: "int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n
      \                     unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:177,1
    - Dst: ossl_cms_DigestedData_create
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:178,1
    - Dst: CMS_set_detached
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:183,1
    - Dst: CMS_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:185,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - in
    - md
    - flags
    - ctx
    - propq
    argTypes:
    - BIO*
    - EVP_MD*
    - unsigned int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 190
    functionName: CMS_digest_create_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - ossl_cms_DigestedData_create
    - CMS_set_detached
    - CMS_final
    - EVP_sha1
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md,\n
      \                                     unsigned int flags, OSSL_LIB_CTX *ctx,\n
      \                                     const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_digest_create_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - md
    - flags
    argTypes:
    - BIO*
    - EVP_MD*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: CMS_digest_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_digest_create_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md,\n                                   unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:205,1
    - Dst: CMS_get0_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:206,1
    - Dst: check_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:210,1
    - Dst: CMS_EncryptedData_set1_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:213,1
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:215,1
    - Dst: cms_copy_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:218,1
    - Dst: do_free_upto
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:219,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 9
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: CMS_EncryptedData_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_EncryptedData_set1_key
    - do_free_upto
    - OBJ_obj2nid
    - CMS_get0_type
    - ERR_raise
    - check_content
    - cms_copy_content
    - CMS_dataInit
    linkageType: ''
    returnType: int
    signature: "int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,\n                              const
      unsigned char *key, size_t keylen,\n                              BIO *dcont,
      BIO *out, unsigned int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:232,1
    - Dst: CMS_ContentInfo_new_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:235,1
    - Dst: CMS_EncryptedData_set1_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:238,1
    - Dst: CMS_set_detached
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:242,1
    - Dst: CMS_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:245,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 7
    argNames:
    - in
    - cipher
    - key
    - keylen
    - flags
    - libctx
    - propq
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    - unsigned int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 250
    functionName: CMS_EncryptedData_encrypt_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_EncryptedData_set1_key
    - ERR_raise
    - CMS_set_detached
    - CMS_final
    - CMS_ContentInfo_free
    - CMS_ContentInfo_new_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER
      *cipher,\n                                              const unsigned char
      *key,\n                                              size_t keylen, unsigned
      int flags,\n                                              OSSL_LIB_CTX *libctx,\n
      \                                             const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_EncryptedData_encrypt_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - in
    - cipher
    - key
    - keylen
    - flags
    argTypes:
    - BIO*
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: CMS_EncryptedData_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_EncryptedData_encrypt_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER
      *cipher,\n                                           const unsigned char *key,\n
      \                                          size_t keylen, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:677,1
    - Dst: CMS_RecipientInfo_kari_get0_reks
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:680,1
    - Dst: sk_CMS_RecipientEncryptedKey_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:681,1
    - Dst: sk_CMS_RecipientEncryptedKey_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:684,1
    - Dst: CMS_RecipientEncryptedKey_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:685,1
    - Dst: CMS_RecipientInfo_kari_set0_pkey_and_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:687,1
    - Dst: CMS_RecipientInfo_kari_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:688,1
    - Dst: CMS_RecipientInfo_kari_set0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:689,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - cms
    - ri
    - pk
    - cert
    - peer
    argTypes:
    - CMS_ContentInfo*
    - CMS_RecipientInfo*
    - EVP_PKEY*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 672
    functionDepth: 16
    functionLinenumber: 672
    functionLinenumberEnd: 695
    functionName: cms_kari_set1_pkey_and_peer
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_kari_set0_pkey_and_peer
    - CMS_RecipientInfo_kari_set0_pkey
    - sk_CMS_RecipientEncryptedKey_num
    - STACK_OF
    - CMS_RecipientInfo_kari_get0_reks
    - CMS_RecipientEncryptedKey_cert_cmp
    - sk_CMS_RecipientEncryptedKey_value
    - CMS_RecipientInfo_kari_decrypt
    linkageType: ''
    returnType: int
    signature: "int cms_kari_set1_pkey_and_peer(CMS_ContentInfo *cms,\n                                       CMS_RecipientInfo
      *ri,\n                                       EVP_PKEY *pk, X509 *cert, X509
      *peer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMS_decrypt_set1_pkey_and_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cms
    - pk
    - cert
    argTypes:
    - CMS_ContentInfo*
    - EVP_PKEY*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: CMS_decrypt_set1_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_decrypt_set1_pkey_and_peer
    linkageType: ''
    returnType: int
    signature: int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509
      *cert)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:705,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:705,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:709,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:713,1
    - Dst: ossl_cms_pkey_get_ri_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:721,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:723,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:727,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:730,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:731,1
    - Dst: ossl_cms_pkey_is_ri_type_supported
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:732,1
    - Dst: cms_kari_set1_pkey_and_peer
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:736,1
    - Dst: CMS_RecipientInfo_ktri_cert_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:743,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:744,1
    - Dst: CMS_RecipientInfo_set0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:745,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:746,1
    - Dst: CMS_RecipientInfo_set0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:747,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:754,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:759,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:776,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:781,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 4
    argNames:
    - cms
    - pk
    - cert
    - peer
    argTypes:
    - CMS_ContentInfo*
    - EVP_PKEY*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 702
    functionDepth: 17
    functionLinenumber: 702
    functionLinenumberEnd: 784
    functionName: CMS_decrypt_set1_pkey_and_peer
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 1
    functionsReached:
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - EVP_PKEY_up_ref
    - ossl_cms_pkey_is_ri_type_supported
    - ossl_cms_get0_env_enc_content
    - ERR_clear_error
    - ERR_raise
    - ossl_cms_pkey_get_ri_type
    - CMS_get0_RecipientInfos
    - OPENSSL_clear_free
    - CMS_RecipientInfo_type
    - STACK_OF
    - cms_kari_set1_pkey_and_peer
    - CMS_RecipientInfo_ktri_cert_cmp
    - CMS_RecipientInfo_set0_pkey
    - CMS_RecipientInfo_decrypt
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY
      *pk,\n                                   X509 *cert, X509 *peer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:790,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:794,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:795,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:796,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:797,1
    - Dst: CMS_RecipientInfo_kekri_id_cmp
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:802,1
    - Dst: CMS_RecipientInfo_set0_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:804,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:805,1
    - Dst: CMS_RecipientInfo_set0_key
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:806,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:810,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:813,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:818,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - cms
    - key
    - keylen
    - id
    - idlen
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 786
    functionDepth: 17
    functionLinenumber: 786
    functionLinenumberEnd: 821
    functionName: CMS_decrypt_set1_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - CMS_RecipientInfo_set0_key
    - ERR_clear_error
    - CMS_RecipientInfo_type
    - CMS_get0_RecipientInfos
    - ERR_raise
    - CMS_RecipientInfo_kekri_id_cmp
    - STACK_OF
    - CMS_RecipientInfo_decrypt
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt_set1_key(CMS_ContentInfo *cms,\n                         unsigned
      char *key, size_t keylen,\n                         const unsigned char *id,
      size_t idlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:826,1
    - Dst: CMS_get0_RecipientInfos
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:826,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:829,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:833,1
    - Dst: sk_CMS_RecipientInfo_num
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:838,1
    - Dst: sk_CMS_RecipientInfo_value
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:839,1
    - Dst: CMS_RecipientInfo_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:840,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:845,1
    - Dst: CMS_RecipientInfo_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:846,1
    - Dst: CMS_RecipientInfo_set0_password
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:847,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:853,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - cms
    - pass
    - passlen
    argTypes:
    - CMS_ContentInfo*
    - unsigned char*
    - ossl_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 823
    functionDepth: 17
    functionLinenumber: 823
    functionLinenumberEnd: 856
    functionName: CMS_decrypt_set1_password
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_set0_password
    - sk_CMS_RecipientInfo_num
    - sk_CMS_RecipientInfo_value
    - ossl_cms_get0_env_enc_content
    - CMS_RecipientInfo_type
    - CMS_get0_RecipientInfos
    - ERR_raise
    - OPENSSL_clear_free
    - STACK_OF
    - CMS_RecipientInfo_decrypt
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt_set1_password(CMS_ContentInfo *cms,\n                              unsigned
      char *pass, ossl_ssize_t passlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:864,1
    - Dst: CMS_get0_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:864,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:868,1
    - Dst: check_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:871,1
    - Dst: ossl_cms_get0_env_enc_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:873,1
    - Dst: CMS_decrypt_set1_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:878,1
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:880,1
    - Dst: cms_copy_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:883,1
    - Dst: do_free_upto
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:884,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 858
    functionDepth: 9
    functionLinenumber: 858
    functionLinenumberEnd: 886
    functionName: CMS_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - do_free_upto
    - CMS_decrypt_set1_pkey
    - OBJ_obj2nid
    - CMS_get0_type
    - ossl_cms_get0_env_enc_content
    - ERR_raise
    - check_content
    - cms_copy_content
    - CMS_dataInit
    linkageType: ''
    returnType: int
    signature: "int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert,\n
      \               BIO *dcont, BIO *out, unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:893,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:894,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:898,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:902,1
    - Dst: CMS_dataFinal
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:904,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:905,1
    - Dst: do_free_upto
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:912,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - cms
    - data
    - dcont
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 888
    functionDepth: 9
    functionLinenumber: 888
    functionLinenumberEnd: 916
    functionName: CMS_final
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 3
    functionsReached:
    - do_free_upto
    - BIO_flush
    - CMS_dataFinal
    - SMIME_crlf_copy
    - ERR_raise
    - CMS_dataInit
    linkageType: ''
    returnType: int
    signature: int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned
      int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:926,1
    - Dst: CMS_get0_type
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:926,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:927,1
    - Dst: check_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:931,1
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:934,1
    - Dst: cms_copy_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:937,1
    - Dst: do_free_upto
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 920
    functionDepth: 9
    functionLinenumber: 920
    functionLinenumberEnd: 940
    functionName: CMS_uncompress
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - do_free_upto
    - OBJ_obj2nid
    - CMS_get0_type
    - ERR_raise
    - check_content
    - cms_copy_content
    - CMS_dataInit
    linkageType: ''
    returnType: int
    signature: "int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                   unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_CompressedData_create
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:948,1
    - Dst: CMS_set_detached
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:953,1
    - Dst: CMS_final
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:955,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:958,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - in
    - comp_nid
    - flags
    argTypes:
    - BIO*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 942
    functionDepth: 10
    functionLinenumber: 942
    functionLinenumberEnd: 960
    functionName: CMS_compress
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - ossl_cms_CompressedData_create
    - CMS_final
    - CMS_set_detached
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cms
    - dcont
    - out
    - flags
    argTypes:
    - CMS_ContentInfo*
    - BIO*
    - BIO*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: CMS_uncompress
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,\n                   unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_smime.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in
    - comp_nid
    - flags
    argTypes:
    - BIO*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: CMS_compress
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_smime.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:23,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:23,1
    - Dst: ossl_x509_algor_mgf1_decode
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:30,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: rsa_oaep_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - RSA_OAEP_PARAMS_free
    - ossl_x509_algor_mgf1_decode
    - ASN1_TYPE_unpack_sequence
    linkageType: ''
    returnType: RSA_OAEP_PARAMS
    signature: RSA_OAEP_PARAMS *rsa_oaep_decode(const X509_ALGOR *alg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:50,1
    - Dst: CMS_RecipientInfo_ktri_get0_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:53,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:59,1
    - Dst: rsa_oaep_decode
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:66,1
    - Dst: ossl_x509_algor_get_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:70,1
    - Dst: ossl_x509_algor_get_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:73,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:85,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:95,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:97,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:99,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:103,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:110,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 112
    functionName: rsa_cms_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 0
    functionsReached:
    - CMS_RecipientInfo_ktri_get0_algs
    - EVP_PKEY_CTX_set_rsa_padding
    - OBJ_obj2nid
    - rsa_oaep_decode
    - ERR_raise
    - ossl_x509_algor_get_md
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - OPENSSL_free
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - RSA_OAEP_PARAMS_free
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - CMS_RecipientInfo_get0_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int rsa_cms_decrypt(CMS_RecipientInfo *ri)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CMS_RecipientInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:121,1
    - Dst: CMS_RecipientInfo_ktri_get0_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:125,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:128,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:132,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:132,1
    - Dst: EVP_PKEY_CTX_get_rsa_oaep_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:138,1
    - Dst: EVP_PKEY_CTX_get_rsa_mgf1_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:140,1
    - Dst: EVP_PKEY_CTX_get0_rsa_oaep_label
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:142,1
    - Dst: RSA_OAEP_PARAMS_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:145,1
    - Dst: ossl_x509_algor_new_from_md
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:148,1
    - Dst: ossl_x509_algor_md_to_mgf1
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:150,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:153,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:156,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:159,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:162,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:162,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:169,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:169,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:171,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:171,1
    - Dst: RSA_OAEP_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:176,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:177,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:178,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 62
    argCount: 1
    argNames:
    - ri
    argTypes:
    - CMS_RecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 180
    functionName: rsa_cms_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_get_rsa_mgf1_md
    - X509_ALGOR_new
    - X509_ALGOR_set0
    - ASN1_item_pack
    - CMS_RecipientInfo_ktri_get0_algs
    - EVP_PKEY_CTX_get0_rsa_oaep_label
    - RSA_OAEP_PARAMS_new
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get_rsa_padding
    - ASN1_OCTET_STRING_new
    - ossl_x509_algor_new_from_md
    - ossl_x509_algor_md_to_mgf1
    - ASN1_STRING_free
    - ASN1_OCTET_STRING_free
    - ASN1_ITEM_rptr
    - ASN1_OCTET_STRING_set
    - EVP_PKEY_CTX_get_rsa_oaep_md
    - RSA_OAEP_PARAMS_free
    - CMS_RecipientInfo_get0_pkey_ctx
    linkageType: ''
    returnType: int
    signature: int rsa_cms_encrypt(CMS_RecipientInfo *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:184,1
    - Dst: rsa_cms_decrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:187,1
    - Dst: rsa_cms_encrypt
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - decrypt
    argTypes:
    - CMS_RecipientInfo*
    - int
    assertStmts:
    - condition: (decrypt == 0 || decrypt == 1)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: ossl_cms_rsa_envelope
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - rsa_cms_decrypt
    - rsa_cms_encrypt
    - assert
    linkageType: ''
    returnType: int
    signature: int ossl_cms_rsa_envelope(CMS_RecipientInfo *ri, int decrypt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:200,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:206,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:208,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:212,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:212,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:219,1
    - Dst: ossl_rsa_ctx_to_pss_string
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:223,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:226,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:226,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:229,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:231,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:233,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 240
    functionName: rsa_cms_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - CMS_SignerInfo_get0_pkey_ctx
    - OBJ_nid2obj
    - ossl_rsa_ctx_to_pss_string
    - EVP_PKEY_CTX_get_rsa_padding
    - evp_pkey_ctx_is_legacy
    - OSSL_PARAM_construct_end
    - CMS_SignerInfo_get0_algs
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_get_params
    - d2i_X509_ALGOR
    linkageType: ''
    returnType: int
    signature: int rsa_cms_sign(CMS_SignerInfo *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMS_SignerInfo_get0_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:246,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:247,1
    - Dst: CMS_SignerInfo_get0_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:249,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:250,1
    - Dst: ossl_rsa_pss_to_ctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:252,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:254,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:255,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - si
    argTypes:
    - CMS_SignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 266
    functionName: rsa_cms_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - CMS_SignerInfo_get0_pkey_ctx
    - OBJ_obj2nid
    - ERR_raise
    - CMS_SignerInfo_get0_algs
    - ossl_rsa_pss_to_ctx
    - EVP_PKEY_is_a
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: int rsa_cms_verify(CMS_SignerInfo *si)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:270,1
    - Dst: rsa_cms_verify
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:273,1
    - Dst: rsa_cms_sign
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_rsa.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - si
    - verify
    argTypes:
    - CMS_SignerInfo*
    - int
    assertStmts:
    - condition: (verify == 0 || verify == 1)
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: ossl_cms_rsa_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_rsa.c
    functionUses: 1
    functionsReached:
    - rsa_cms_verify
    - ERR_raise
    - assert
    - rsa_cms_sign
    linkageType: ''
    returnType: int
    signature: int ossl_cms_rsa_sign(CMS_SignerInfo *si, int verify)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMS_get0_content
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:21,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:25,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - boundary
    - cms
    argTypes:
    - unsigned char***
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: CMS_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - CMS_get0_content
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:39,1
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:41,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:41,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:42,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:43,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:45,1
    - Dst: ossl_cms_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:46,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bp
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: d2i_CMS_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ossl_cms_resolve_libctx
    - ossl_cms_ctx_get0_propq
    - ERR_set_mark
    - ossl_cms_ctx_get0_libctx
    - ASN1_item_d2i_bio_ex
    - ERR_pop_to_mark
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:54,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: i2d_CMS_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:61,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - cms
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: BIO_new_CMS
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - BIO_new_NDEF
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:69,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - cms
    - in
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: i2d_CMS_bio_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_ASN1_stream
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:76,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - cms
    - in
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: PEM_write_bio_CMS_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PEM_write_bio_ASN1_stream
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in,\n
      \                            int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:82,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:83,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:84,1
    - Dst: CMS_get0_eContentType
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:84,1
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:85,1
    - Dst: SMIME_write_ASN1_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:92,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:94,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:95,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - bio
    - cms
    - data
    - flags
    argTypes:
    - BIO*
    - CMS_ContentInfo*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: SMIME_write_CMS
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - SMIME_write_ASN1_ex
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ossl_cms_ctx_get0_propq
    - ossl_cms_ctx_get0_libctx
    - STACK_OF
    - CMS_get0_eContentType
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: int
    signature: int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cms_get0_cmsctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:103,1
    - Dst: SMIME_read_ASN1_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:105,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:106,1
    - Dst: ossl_cms_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:108,1
    - Dst: ossl_cms_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:109,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:111,1
    - Dst: ossl_cms_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:112,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - bio
    - flags
    - bcont
    - cms
    argTypes:
    - BIO*
    - int
    - BIO**
    - CMS_ContentInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: SMIME_read_CMS_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - SMIME_read_ASN1_ex
    - ossl_cms_resolve_libctx
    - ossl_cms_ctx_get0_propq
    - ERR_set_mark
    - ossl_cms_ctx_get0_libctx
    - ERR_pop_to_mark
    - ossl_cms_get0_cmsctx
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: "CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont,\n
      \                                  CMS_ContentInfo **cms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_CMS_ex
      Src: /src/openssl-3.0.15/crypto/cms/cms_io.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - bcont
    argTypes:
    - BIO*
    - BIO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: SMIME_read_CMS
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_io.c
    functionUses: 0
    functionsReached:
    - SMIME_read_CMS_ex
    linkageType: ''
    returnType: CMS_ContentInfo
    signature: CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:51,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:52,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: cms_si_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_MD_CTX_free
    - X509_free
    linkageType: ''
    returnType: int
    signature: "int cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: cms_rek_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int cms_rek_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:152,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:155,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:158,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: cms_kari_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_flags
    - EVP_CIPHER_CTX_new
    - EVP_PKEY_CTX_free
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: int
    signature: "int cms_kari_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                       void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:205,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:206,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:207,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:210,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: cms_ri_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_clear_free
    - EVP_PKEY_CTX_free
    - X509_free
    linkageType: ''
    returnType: int
    signature: "int cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                    void *exarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMS_stream
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:305,1
    - Dst: CMS_dataInit
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:309,1
    - Dst: CMS_dataFinal
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 293
    functionDepth: 9
    functionLinenumber: 293
    functionLinenumberEnd: 322
    functionName: cms_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_asn1.c
    functionUses: 0
    functionsReached:
    - CMS_dataInit
    - CMS_dataFinal
    - CMS_stream
    linkageType: ''
    returnType: int
    signature: "int cms_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:414,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cms/cms_asn1.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - pder
    - kekalg
    - ukm
    - keylen
    argTypes:
    - unsigned char**
    - X509_ALGOR*
    - ASN1_OCTET_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 415
    functionName: CMS_SharedInfo_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/cms/cms_asn1.c
    functionUses: 2
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d
    linkageType: ''
    returnType: int
    signature: "int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg,\n
      \                         ASN1_OCTET_STRING *ukm, int keylen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_flags
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:49,1
    - Dst: EVP_MD_get_block_size
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:55,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:56,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:61,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:62,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:63,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:69,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:73,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:78,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:79,1
    - Dst: EVP_MD_get_block_size
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:80,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:85,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:86,1
    - Dst: EVP_MD_get_block_size
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:87,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:90,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:95,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:96,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 50
    argCount: 5
    argNames:
    - ctx
    - key
    - len
    - md
    - impl
    argTypes:
    - HMAC_CTX*
    - void*
    - int
    - EVP_MD*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 99
    functionName: HMAC_Init_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_block_size
    - memcpy
    - EVP_MD_CTX_copy_ex
    - EVP_DigestInit_ex
    - OPENSSL_cleanse
    - EVP_MD_get_flags
    - EVP_DigestFinal_ex
    - memset
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,\n                 const
      EVP_MD *md, ENGINE *impl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_CTX_reset
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:105,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - key
    - len
    - md
    argTypes:
    - HMAC_CTX*
    - void*
    - int
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 9
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: HMAC_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - HMAC_CTX_reset
    - HMAC_Init_ex
    linkageType: ''
    returnType: int
    signature: int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - HMAC_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: HMAC_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:125,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:127,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:129,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - md
    - len
    argTypes:
    - HMAC_CTX*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 8
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: HMAC_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: int
    signature: int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: HMAC_size
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    linkageType: ''
    returnType: size_t
    signature: size_t HMAC_size(const HMAC_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:147,1
    - Dst: HMAC_CTX_reset
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:150,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: HMAC_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 1
    functionsReached:
    - HMAC_CTX_free
    - HMAC_CTX_reset
    - OPENSSL_zalloc
    linkageType: ''
    returnType: HMAC_CTX
    signature: HMAC_CTX *HMAC_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:160,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:161,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 7
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: hmac_ctx_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_reset
    linkageType: ''
    returnType: void
    signature: void hmac_ctx_cleanup(HMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:169,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:170,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:171,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 8
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: HMAC_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - hmac_ctx_cleanup
    - EVP_MD_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void HMAC_CTX_free(HMAC_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:180,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:184,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 192
    functionName: hmac_ctx_alloc_mds
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    linkageType: ''
    returnType: int
    signature: int hmac_ctx_alloc_mds(HMAC_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:196,1
    - Dst: hmac_ctx_alloc_mds
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:197,1
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 8
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: HMAC_CTX_reset
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 2
    functionsReached:
    - hmac_ctx_cleanup
    - hmac_ctx_alloc_mds
    linkageType: ''
    returnType: int
    signature: int HMAC_CTX_reset(HMAC_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hmac_ctx_alloc_mds
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:206,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:208,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:210,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:212,1
    - Dst: hmac_ctx_cleanup
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - dctx
    - sctx
    argTypes:
    - HMAC_CTX*
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 8
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: HMAC_CTX_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - hmac_ctx_cleanup
    - hmac_ctx_alloc_mds
    - EVP_MD_CTX_copy_ex
    linkageType: ''
    returnType: int
    signature: int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:226,1
    - Dst: EVP_Q_mac
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:231,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - evp_md
    - key
    - key_len
    - data
    - data_len
    - md
    - md_len
    argTypes:
    - EVP_MD*
    - void*
    - int
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 238
    functionName: HMAC
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 4
    functionsReached:
    - EVP_MD_get_size
    - EVP_Q_mac
    - EVP_MD_get0_name
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,\n
      \                   const unsigned char *data, size_t data_len,\n                    unsigned
      char *md, unsigned int *md_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:242,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:243,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/hmac/hmac.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - HMAC_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: HMAC_CTX_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    linkageType: ''
    returnType: void
    signature: void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - HMAC_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: HMAC_CTX_get_md
    functionSourceFile: /src/openssl-3.0.15/crypto/hmac/hmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: BN_lsw
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_kron.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_lsw(n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:32,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:33,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:35,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:37,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:41,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:44,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:56,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:57,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:63,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:63,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:70,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:72,1
    - Dst: BN_lsw
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:80,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:102,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:103,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:109,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:111,1
    - Dst: BN_lsw
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:117,1
    - Dst: BN_lsw
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:122,1
    - Dst: BN_lsw
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:122,1
    - Dst: BN_lsw
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:122,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:126,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_kron.c:135,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 140
    functionName: BN_kronecker
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_kron.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_abs_is_word
    - bn_check_top
    - BN_is_one
    - BN_lsw
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - BN_is_bit_set
    - BN_nnmod
    - BN_rshift
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:29,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:30,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:32,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:33,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:34,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:35,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:37,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:38,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:39,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:44,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:50,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:52,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:53,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:55,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:59,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:66,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:67,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:68,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:82,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:97,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:98,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:101,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:141,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:143,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:162,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:167,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:169,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:170,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:173,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:187,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:188,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:189,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 90
    argCount: 5
    argNames:
    - in
    - a
    - n
    - ctx
    - pnoinv
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 191
    functionName: bn_mod_inverse_no_branch
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gcd.c
    functionUses: 0
    functionsReached:
    - BN_CTX_start
    - BN_ucmp
    - BN_CTX_get
    - BN_one
    - bn_check_top
    - BN_with_flags
    - BN_mul
    - BN_sub
    - BN_div
    - BN_new
    - BN_is_one
    - BN_free
    - BN_nnmod
    - BN_add
    - BN_CTX_end
    - BN_zero
    - BN_copy
    - bn_init
    - BN_is_zero
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline *bn_mod_inverse_no_branch(BIGNUM *in,\n                                 const
      BIGNUM *a, const BIGNUM *n,\n                                 BN_CTX *ctx, int
      *pnoinv)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:206,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:206,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:213,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:214,1
    - Dst: bn_mod_inverse_no_branch
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:215,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:218,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:219,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:221,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:222,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:223,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:224,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:225,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:226,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:227,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:228,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:233,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:239,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:241,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:242,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:244,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:247,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:248,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:260,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:260,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:269,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:283,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:286,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:287,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:293,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:297,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:305,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:308,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:309,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:313,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:317,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:333,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:335,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:341,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:345,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:350,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:357,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:367,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:367,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:368,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:370,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:372,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:372,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:374,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:376,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:378,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:380,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:384,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:386,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:388,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:390,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:397,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:402,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:407,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:448,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:449,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:452,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:453,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:455,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:456,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:459,1
    - Dst: BN_mul_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:461,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:464,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:467,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:487,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:492,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:494,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:495,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:498,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:508,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:509,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:510,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 211
    argCount: 5
    argNames:
    - in
    - a
    - n
    - ctx
    - pnoinv
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 512
    functionName: int_bn_mod_inverse
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gcd.c
    functionUses: 0
    functionsReached:
    - BN_abs_is_word
    - bn_mod_inverse_no_branch
    - BN_CTX_start
    - BN_is_bit_set
    - BN_ucmp
    - BN_CTX_get
    - BN_one
    - bn_check_top
    - BN_get_flags
    - BN_rshift
    - BN_uadd
    - BN_usub
    - BN_set_word
    - BN_mul
    - BN_sub
    - BN_div
    - BN_new
    - BN_is_one
    - BN_num_bits
    - BN_free
    - BN_lshift1
    - BN_nnmod
    - BN_add
    - BN_is_odd
    - BN_is_word
    - BN_lshift
    - BN_CTX_end
    - BN_zero
    - BN_copy
    - BN_rshift1
    - BN_mul_word
    - BN_is_zero
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *int_bn_mod_inverse(BIGNUM *in,\n                           const
      BIGNUM *a, const BIGNUM *n, BN_CTX *ctx,\n                           int *pnoinv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:523,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:525,1
    - Dst: int_bn_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:530,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:532,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - in
    - a
    - n
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 535
    functionName: BN_mod_inverse
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gcd.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new_ex
    - BN_CTX_free
    - ERR_raise
    - int_bn_mod_inverse
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *BN_mod_inverse(BIGNUM *in,\n                       const BIGNUM
      *a, const BIGNUM *n, BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:558,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:559,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:563,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:564,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:569,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:570,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:572,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:573,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:574,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:578,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:579,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:593,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:594,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:599,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:600,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:601,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:605,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:608,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:609,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:620,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:624,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:626,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:630,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:637,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:638,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:644,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gcd.c:645,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 4
    argNames:
    - r
    - in_a
    - in_b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 647
    functionName: BN_gcd
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gcd.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_lshift
    - bn_wexpand
    - BN_rshift1
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - BN_lshift1
    - BN_consttime_swap
    - BN_add
    - BN_rshift
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul4x_mont_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_ppc.c:27,1
    - Dst: bn_mul_mont_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_ppc.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - rp
    - ap
    - bp
    - np
    - n0
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 38
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ppc.c
    functionUses: 0
    functionsReached:
    - bn_mul_mont_int
    - bn_mul4x_mont_int
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/bn/bn_err.c:52,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/bn/bn_err.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: ossl_err_load_BN_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_BN_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:81,1
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:82,1
    - Dst: rsaz_1024_norm2red_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:83,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:85,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:86,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:89,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:91,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:93,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:94,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:97,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:98,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:102,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:103,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:107,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:108,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:110,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:111,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:113,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:114,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:116,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:117,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:120,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:121,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:122,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:124,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:125,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:127,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:128,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:130,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:131,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:133,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:134,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:137,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:138,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:139,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:141,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:142,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:144,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:145,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:147,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:148,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:151,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:152,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:153,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:155,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:156,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:158,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:159,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:161,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:162,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:165,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:166,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:167,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:169,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:170,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:172,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:173,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:176,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:177,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:178,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:180,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:181,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:183,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:184,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:187,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:188,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:189,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:191,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:192,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:194,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:195,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:198,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:199,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:200,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:202,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:203,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:205,1
    - Dst: rsaz_1024_scatter5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:206,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:212,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:218,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:224,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:225,1
    - Dst: rsaz_1024_sqr_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:229,1
    - Dst: rsaz_1024_gather5_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:233,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:234,1
    - Dst: rsaz_1024_mul_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:237,1
    - Dst: rsaz_1024_red2norm_avx2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:239,1
    - Dst: bn_reduce_once_in_place
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:241,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:243,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 111
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 245
    functionName: RSAZ_1024_mod_exp_avx2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c
    functionUses: 0
    functionsReached:
    - rsaz_1024_gather5_avx2
    - rsaz_1024_norm2red_avx2
    - rsaz_1024_red2norm_avx2
    - rsaz_1024_scatter5_avx2
    - OPENSSL_cleanse
    - bn_reduce_once_in_place
    - rsaz_1024_mul_avx2
    - rsaz_1024_sqr_avx2
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsaz_512_scatter4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:284,1
    - Dst: rsaz_512_mul
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:287,1
    - Dst: rsaz_512_scatter4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:288,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:291,1
    - Dst: rsaz_512_scatter4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:292,1
    - Dst: rsaz_512_mul_scatter4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:295,1
    - Dst: rsaz_512_gather4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:300,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:301,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:302,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:307,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:308,1
    - Dst: rsaz_512_sqr
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:310,1
    - Dst: rsaz_512_mul_gather4
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:311,1
    - Dst: rsaz_512_mul_by_one
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:315,1
    - Dst: bn_reduce_once_in_place
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:317,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:319,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 6
    argNames:
    - result
    - base
    - exponent
    - m
    - k0
    - RR
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 321
    functionName: RSAZ_512_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp.c
    functionUses: 0
    functionsReached:
    - rsaz_512_mul_scatter4
    - rsaz_512_mul
    - rsaz_512_sqr
    - rsaz_512_scatter4
    - OPENSSL_cleanse
    - rsaz_512_gather4
    - rsaz_512_mul_by_one
    - bn_reduce_once_in_place
    - rsaz_512_mul_gather4
    linkageType: ''
    returnType: void
    signature: "void 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: 17
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:24,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:25,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:27,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:31,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:33,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:37,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:41,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:44,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:46,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:50,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:51,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:52,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:54,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:61,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:62,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:66,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:69,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:71,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:73,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:77,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:80,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:84,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 5
    argNames:
    - dv
    - rem
    - m
    - d
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 86
    functionName: BN_div
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - BN_lshift
    - bn_wexpand
    - BN_rshift1
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_copy
    - BN_zero
    - BN_lshift1
    - BN_usub
    - BN_ucmp
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM
      *d,\n           BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - m
    - d1
    - d0
    argTypes:
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: bn_div_3_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_3_words(const BN_ULONG *m, BN_ULONG d1, BN_ULONG d0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - num
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 159
    functionName: bn_left_align
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached:
    - BN_num_bits_word
    linkageType: ''
    returnType: int
    signature: int bn_left_align(BIGNUM *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n0
    - ','
    - n1
    - ','
    - d0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: bn_div_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_div_words(n0,n1,d0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n0
    - ','
    - n1
    - ','
    - d0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: bn_div_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_div_words(n0,n1,d0)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:214,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:215,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:225,1
    - Dst: bn_div_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:229,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:233,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - dv
    - rm
    - num
    - divisor
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 239
    functionName: BN_div
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 4
    functionsReached:
    - bn_div_fixed_top
    - bn_correct_top
    - ERR_raise
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM
      *divisor,\n           BN_CTX *ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:273,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:275,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:276,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:277,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:278,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:280,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:281,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:282,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:283,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:284,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:289,1
    - Dst: bn_left_align
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:291,1
    - Dst: bn_lshift_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:300,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:308,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:310,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:327,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:336,1
    - Dst: bn_div_3_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:346,1
    - Dst: bn_div_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:362,1
    - Dst: bn_div_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:386,1
    - Dst: BN_UMULT_LOHI
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:392,1
    - Dst: BN_UMULT_HIGH
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:395,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:399,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:400,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:401,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:402,1
    - Dst: mul64
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:403,1
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:422,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:429,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:438,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:440,1
    - Dst: bn_rshift_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:450,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:453,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:456,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_div.c:457,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 114
    argCount: 5
    argNames:
    - dv
    - rm
    - num
    - divisor
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts:
    - condition: ((*wnumtop) == 0)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/openssl-3.0.15/crypto/bn/bn_div.c
    - condition: (divisor->top > 0 && divisor->d[divisor->top - 1] != 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/openssl-3.0.15/crypto/bn/bn_div.c
    constantsTouched: []
    func_position:
      end: 459
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 459
    functionName: bn_div_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_div.c
    functionUses: 1
    functionsReached:
    - LBITS
    - bn_wexpand
    - mul64
    - BN_CTX_start
    - bn_lshift_fixed_top
    - BN_CTX_get
    - bn_rshift_fixed_top
    - bn_check_top
    - bn_div_3_words
    - HBITS
    - BN_UMULT_HIGH
    - bn_mul_words
    - memset
    - assert
    - bn_sub_words
    - BN_UMULT_LOHI
    - bn_add_words
    - BN_CTX_end
    - BN_copy
    - bn_left_align
    - bn_div_words
    linkageType: ''
    returnType: int
    signature: "int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num,\n
      \                    const BIGNUM *divisor, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:19,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:20,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:24,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:28,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 43
    functionName: BN_lshift1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_lshift1(BIGNUM *r, const BIGNUM *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:50,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:51,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:53,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:54,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:60,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 79
    functionName: BN_rshift1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    functionUses: 5
    functionsReached:
    - bn_wexpand
    - BN_zero
    - bn_check_top
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_rshift1(BIGNUM *r, const BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:86,1
    - Dst: bn_lshift_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:90,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:92,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: BN_lshift
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    functionUses: 7
    functionsReached:
    - bn_correct_top
    - bn_check_top
    - bn_lshift_fixed_top
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_lshift(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:111,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:113,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:114,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:117,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    constantsTouched: []
    func_position:
      end: 148
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 148
    functionName: bn_lshift_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    functionUses: 2
    functionsReached:
    - memset
    - bn_check_top
    - assert
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int bn_lshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:155,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:159,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:160,1
    - Dst: bn_rshift_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:162,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:164,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: BN_rshift
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    functionUses: 5
    functionsReached:
    - bn_correct_top
    - bn_check_top
    - ERR_raise
    - bn_rshift_fixed_top
    linkageType: ''
    returnType: int
    signature: int BN_rshift(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:183,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:188,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_shift.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: bn_rshift_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_shift.c
    functionUses: 2
    functionsReached:
    - BN_zero
    - assert
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int bn_rshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - mult
    - high
    - low
    - mont
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: BN_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_set_params(int mult, int high, int low, int mont)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: BN_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_get_params(int which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: BN_value_one
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_value_one(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - l
    argTypes:
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 143
    functionName: BN_num_bits_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_num_bits_word(BN_ULONG l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:158,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:161,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:164,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 176
    functionName: bn_num_bits_consttime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - constant_time_eq_int
    - BN_num_bits_word
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline bn_num_bits_consttime(const BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:181,1
    - Dst: bn_num_bits_consttime
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:193,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:196,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: BN_num_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 14
    functionsReached:
    - BN_num_bits_word
    - bn_check_top
    - BN_is_zero
    - bn_num_bits_consttime
    linkageType: ''
    returnType: int
    signature: int BN_num_bits(const BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:204,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:205,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:207,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - clear
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: bn_free_d
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    - BN_get_flags
    linkageType: ''
    returnType: void
    signature: void bn_free_d(BIGNUM *a, int clear)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:217,1
    - Dst: bn_free_d
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:218,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:219,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:220,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: BN_clear_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 6
    functionsReached:
    - OPENSSL_free
    - OPENSSL_cleanse
    - BN_get_flags
    - bn_free_d
    linkageType: ''
    returnType: void
    signature: void BN_clear_free(BIGNUM *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:229,1
    - Dst: bn_free_d
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:230,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: BN_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 34
    functionsReached:
    - OPENSSL_free
    - BN_get_flags
    - bn_free_d
    linkageType: ''
    returnType: void
    signature: void BN_free(BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: bn_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: void bn_init(BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:247,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:248,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: BN_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 20
    functionsReached:
    - bn_check_top
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: BN_secure_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_secure_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:271,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:275,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:278,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:279,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:281,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:283,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:287,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    assertStmts:
    - condition: (b->top <= words)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    constantsTouched: []
    func_position:
      end: 292
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 292
    functionName: bn_expand_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - OPENSSL_zalloc
    - ERR_raise
    - BN_get_flags
    - OPENSSL_secure_zalloc
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG *bn_expand_internal(const BIGNUM *b, int words)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand_internal
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:305,1
    - Dst: bn_free_d
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - b
    - words
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 315
    functionName: bn_expand2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_free_d
    - bn_expand_internal
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *bn_expand2(BIGNUM *b, int words)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:323,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:325,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:325,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:325,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:328,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:329,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: BN_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - BN_new
    - BN_free
    - BN_copy
    - BN_get_flags
    - BN_secure_new
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_dup(const BIGNUM *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:340,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:342,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:346,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:350,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 357
    functionName: BN_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 10
    functionsReached:
    - bn_check_top
    - BN_get_flags
    - memcpy
    - bn_wexpand
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: FLAGS_DATA
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_DATA(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: FLAGS_STRUCT
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGS_STRUCT(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:371,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:372,1
    - Dst: FLAGS_STRUCT
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:392,1
    - Dst: FLAGS_DATA
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:392,1
    - Dst: FLAGS_STRUCT
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:393,1
    - Dst: FLAGS_DATA
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:393,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:394,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 396
    functionName: BN_swap
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - FLAGS_STRUCT
    - FLAGS_DATA
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: void BN_swap(BIGNUM *a, BIGNUM *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:402,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: BN_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: void BN_clear(BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: BN_get_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG BN_get_word(const BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:422,1
    - Dst: bn_expand
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:423,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: BN_set_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 6
    functionsReached:
    - bn_check_top
    - bn_expand
    linkageType: ''
    returnType: int
    signature: int BN_set_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:441,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:444,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:455,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:456,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:474,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 476
    functionName: BN_bin2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 13
    functionsReached:
    - bn_check_top
    - BN_new
    - bn_wexpand
    - BN_free
    - bn_correct_top
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:493,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:499,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:500,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - a
    - to
    - tolen
    - endianess
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    - endianess_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 530
    functionName: bn2binpad
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - memset
    - bn_correct_top
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: int bn2binpad(const BIGNUM *a, unsigned char *to, int tolen, endianess_t
      endianess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: BN_bn2binpad
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - to
    argTypes:
    - BIGNUM*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: BN_bn2bin
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 7
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2bin(const BIGNUM *a, unsigned char *to)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:552,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:555,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:567,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:568,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:587,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 589
    functionName: BN_lebin2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_new
    - bn_wexpand
    - BN_free
    - bn_correct_top
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn2binpad
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: BN_bn2lebinpad
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn2binpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:603,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - len
    - ret
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 605
    functionName: BN_native2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - BN_lebin2bn
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_native2bn(const unsigned char *s, int len, BIGNUM *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:612,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - to
    - tolen
    argTypes:
    - BIGNUM*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 607
    functionDepth: 3
    functionLinenumber: 607
    functionLinenumberEnd: 614
    functionName: BN_bn2nativepad
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - BN_bn2binpad
    - BN_bn2lebinpad
    linkageType: ''
    returnType: int
    signature: int BN_bn2nativepad(const BIGNUM *a, unsigned char *to, int tolen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:624,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:629,1
    - Dst: constant_time_lt_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:629,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:631,1
    - Dst: constant_time_lt_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:631,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:637,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:638,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 651
    functionName: BN_ucmp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - constant_time_select_int
    - BN_get_flags
    - constant_time_lt_bn
    linkageType: ''
    returnType: int
    signature: int BN_ucmp(const BIGNUM *a, const BIGNUM *b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:668,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:669,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 698
    functionName: BN_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 16
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_cmp(const BIGNUM *a, const BIGNUM *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:710,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 721
    functionName: BN_set_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_set_bit(BIGNUM *a, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:727,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 739
    functionName: BN_clear_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_clear_bit(BIGNUM *a, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 753
    functionName: BN_is_bit_set
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_is_bit_set(const BIGNUM *a, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 774
    functionName: ossl_bn_mask_bits_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_bn_mask_bits_fixed_top(BIGNUM *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:780,1
    - Dst: ossl_bn_mask_bits_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:781,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 785
    functionName: BN_mask_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - ossl_bn_mask_bits_fixed_top
    - bn_check_top
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: int BN_mask_bits(BIGNUM *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: BN_set_negative
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: void
    signature: void BN_set_negative(BIGNUM *a, int b)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 814
    functionName: bn_cmp_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_cmp_words(const BN_ULONG *a, const BN_ULONG *b, int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_cmp_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - a
    - b
    - cl
    - dl
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 843
    functionName: bn_cmp_part_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - bn_cmp_words
    linkageType: ''
    returnType: int
    signature: int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl,
      int dl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_wcheck_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:860,1
    - Dst: bn_wcheck_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - condition
    - a
    - b
    - nwords
    argTypes:
    - BN_ULONG
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 907
    functionName: BN_consttime_swap
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached:
    - bn_wcheck_size
    linkageType: ''
    returnType: void
    signature: void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int
      nwords)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 934
    functionName: BN_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_security_bits(int L, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 941
    functionName: BN_zero_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_zero_ex(BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 946
    functionName: BN_abs_is_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 951
    functionName: BN_is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_is_zero(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: BN_is_one
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached:
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: int BN_is_one(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 961
    functionName: BN_is_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached:
    - BN_abs_is_word
    linkageType: ''
    returnType: int
    signature: int BN_is_word(const BIGNUM *a, const BN_ULONG w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:971,1
    - Dst: constant_time_eq_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:971,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:974,1
    - Dst: constant_time_is_zero_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 977
    functionName: ossl_bn_is_word_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - constant_time_select_int
    - constant_time_eq_bn
    - constant_time_is_zero_bn
    linkageType: ''
    returnType: int
    signature: int ossl_bn_is_word_fixed_top(const BIGNUM *a, BN_ULONG w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 982
    functionName: BN_is_odd
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_is_odd(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 987
    functionName: BN_is_negative
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_is_negative(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 993
    functionName: BN_to_montgomery
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    linkageType: ''
    returnType: int
    signature: "int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                    BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - b
    - flags
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1004
    functionName: BN_with_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1010,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1016
    functionName: BN_GENCB_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    linkageType: ''
    returnType: BN_GENCB
    signature: BN_GENCB *BN_GENCB_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1023
    functionName: BN_GENCB_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_GENCB_free(BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1028
    functionName: BN_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_set_flags(BIGNUM *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1033
    functionName: BN_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BN_get_flags(const BIGNUM *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gencb
    - cb_arg
    argTypes:
    - BN_GENCB*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1043
    functionName: BN_GENCB_set_old
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int,
      void *),\n                      void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gencb
    - cb_arg
    argTypes:
    - BN_GENCB*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1053
    functionName: BN_GENCB_set
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB
      *),\n                  void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1058
    functionName: BN_GENCB_get_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *BN_GENCB_get_arg(BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand2
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - words
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1063
    functionName: bn_wexpand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 11
    functionsReached:
    - bn_expand2
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *bn_wexpand(BIGNUM *a, int words)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_msb
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1077,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1078,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1081,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1085
    functionName: bn_correct_top_consttime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 0
    functionsReached:
    - constant_time_select_int
    - constant_time_msb
    - constant_time_eq_int
    linkageType: ''
    returnType: void
    signature: void bn_correct_top_consttime(BIGNUM *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_pollute
      Src: /src/openssl-3.0.15/crypto/bn/bn_lib.c:1103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1104
    functionName: bn_correct_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_lib.c
    functionUses: 8
    functionsReached:
    - bn_pollute
    linkageType: ''
    returnType: void
    signature: void bn_correct_top(BIGNUM *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:21,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - r
    - m
    - d
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: BN_nnmod
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 3
    functionsReached:
    - BN_mod
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:36,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: BN_mod_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 2
    functionsReached:
    - BN_nnmod
    - BN_add
    linkageType: ''
    returnType: int
    signature: "int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:61,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:67,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 102
    functionName: bn_mod_add_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_sub_words
    - bn_wexpand
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int bn_mod_add_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                         const BIGNUM *m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mod_add_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:107,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: BN_mod_add_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 1
    functionsReached:
    - bn_mod_add_fixed_top
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: "int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                    const BIGNUM *m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:118,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: BN_mod_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_nnmod
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 185
    functionName: bn_mod_sub_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int bn_mod_sub_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                         const BIGNUM *m)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:195,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:199,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - r
    - a
    - b
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: BN_mod_sub_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_sub
    - BN_add
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                    const BIGNUM *m)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:213,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:214,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:215,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:217,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:218,1
    - Dst: BN_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:221,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:224,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:227,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:229,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:232,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - r
    - a
    - b
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: BN_mod_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - BN_CTX_start
    - BN_CTX_end
    - BN_nnmod
    - BN_mul
    - BN_CTX_get
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: "int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:238,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: BN_mod_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 1
    functionsReached:
    - BN_sqr
    - BN_mod
    linkageType: ''
    returnType: int
    signature: int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:246,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:248,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - r
    - a
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: BN_mod_lshift1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_lshift1
    - BN_nnmod
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:258,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:260,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:261,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - r
    - a
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: BN_mod_lshift1_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_lshift1
    - bn_check_top
    - BN_cmp
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:272,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:276,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:282,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:283,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - r
    - a
    - n
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: BN_mod_lshift
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - bn_check_top
    - BN_free
    - BN_mod_lshift_quick
    - BN_nnmod
    linkageType: ''
    returnType: int
    signature: "int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM
      *m,\n                  BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:296,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:304,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:304,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:308,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:316,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:320,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:327,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:328,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mod.c:332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - r
    - a
    - n
    - m
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 335
    functionName: BN_mod_lshift_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mod.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_lshift
    - BN_num_bits
    - ERR_raise
    - BN_lshift1
    - BN_copy
    - BN_cmp
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM
      *m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:34,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:37,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:41,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:44,1
    - Dst: BN_BLINDING_set_current_thread
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:48,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:51,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:56,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:61,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:64,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:65,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - A
    - Ai
    - mod
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 79
    functionName: BN_BLINDING_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - bn_check_top
    - BN_BLINDING_free
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - BN_set_flags
    - BN_get_flags
    - CRYPTO_THREAD_lock_new
    - BN_BLINDING_set_current_thread
    linkageType: ''
    returnType: BN_BLINDING
    signature: BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM
      *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:85,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:86,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:87,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:88,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: BN_BLINDING_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - BN_free
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void BN_BLINDING_free(BN_BLINDING *r)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:98,1
    - Dst: BN_BLINDING_create_param
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:108,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:112,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:113,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:116,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:117,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 2
    argNames:
    - b
    - ctx
    argTypes:
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 127
    functionName: BN_BLINDING_update
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_create_param
    - bn_mul_mont_fixed_top
    - BN_mod_mul
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: BN_BLINDING_convert
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_convert_ex
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:141,1
    - Dst: BN_BLINDING_update
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:148,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:151,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:155,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - n
    - r
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 160
    functionName: BN_BLINDING_convert_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - BN_BLINDING_update
    - BN_mod_mul_montgomery
    - bn_check_top
    - BN_mod_mul
    - ERR_raise
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_invert_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: BN_BLINDING_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_invert_ex
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:172,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:175,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:194,1
    - Dst: bn_correct_top_consttime
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:195,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:197,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - n
    - r
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_BLINDING*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 202
    functionName: BN_BLINDING_invert_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_mod_mul
    - bn_correct_top_consttime
    - ERR_raise
    - bn_mul_mont_fixed_top
    linkageType: ''
    returnType: int
    signature: "int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING
      *b,\n                          BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_compare_id
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:206,1
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: BN_BLINDING_is_current_thread
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_compare_id
    - CRYPTO_THREAD_get_current_id
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_is_current_thread(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: BN_BLINDING_set_current_thread
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_get_current_id
    linkageType: ''
    returnType: void
    signature: void BN_BLINDING_set_current_thread(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: BN_BLINDING_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_lock(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: BN_BLINDING_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int BN_BLINDING_unlock(BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BN_BLINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: BN_BLINDING_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long BN_BLINDING_get_flags(const BN_BLINDING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BN_BLINDING*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: BN_BLINDING_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_BLINDING_set_flags(BN_BLINDING *b, unsigned long flags)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:248,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:255,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:257,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:261,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:262,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:274,1
    - Dst: int_bn_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:286,1
    - Dst: BN_BLINDING*::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:292,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:295,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:300,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:301,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_blind.c:308,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 61
    argCount: 5
    argNames:
    - b
    - e
    - m
    - ctx
    - m_ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 313
    functionName: BN_BLINDING_create_param
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_blind.c
    functionUses: 1
    functionsReached:
    - BN_dup
    - BN_new
    - BN_BLINDING_free
    - ERR_raise
    - BN_BLINDING*::bn_mod_exp
    - BN_free
    - BN_priv_rand_range_ex
    - BN_BLINDING_new
    - bn_to_mont_fixed_top
    - BN_mod_exp
    - int_bn_mod_inverse
    linkageType: ''
    returnType: BN_BLINDING
    signature: "BN_BLINDING *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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: BN_get0_nist_prime_192
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_192(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: BN_get0_nist_prime_224
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: BN_get0_nist_prime_256
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: BN_get0_nist_prime_384
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: BN_get0_nist_prime_521
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get0_nist_prime_521(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - src_in
    - ','
    - top
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: nist_cp_bn_0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_cp_bn_0(dst, src_in, top, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - top
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: nist_cp_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nist_cp_bn(BN_ULONG *dst, const BN_ULONG *src, int top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: bn_cp_64
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_64(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: bn_64_set_0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_64_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: bn_cp_32_naked
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_32_naked(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: bn_32_set_0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_32_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: bn_cp_32
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_32(to,n,from,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: bn_cp_64
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_64(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: bn_64_set_0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_64_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - to
    - ','
    - n
    - ','
    - from
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: bn_cp_32
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_cp_32(to, n, from, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: bn_32_set_0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_32_set_0(to, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: load_u32
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline load_u32(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - void*
    - NIST_INT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: store_lo32
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline store_lo32(void *ptr, NIST_INT64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: nist_set_192
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_192(to, from, a1, a2, a3)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:365,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:366,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:372,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:372,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:373,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:375,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:377,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:380,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:383,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:386,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:390,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:399,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:402,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:405,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:408,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:411,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:415,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:418,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:422,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:425,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:428,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:431,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:434,1
    - Dst: nist_set_192
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:442,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:443,1
    - Dst: nist_set_192
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:444,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:445,1
    - Dst: nist_set_192
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:446,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:447,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:452,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:463,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:466,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 66
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 471
    functionName: BN_nist_mod_192
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - bn_add_words
    - bn_sub_words
    - bn_wexpand
    - load_u32
    - nist_cp_bn_0
    - nist_set_192
    - nist_cp_bn
    - BN_ucmp
    - store_lo32
    - BN_zero
    - BN_copy
    - BN_nnmod
    - BN_is_negative
    - bn_correct_top
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 486
    functionName: nist_set_224
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_224(to, from, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:502,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:503,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:509,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:509,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:510,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:512,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:514,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:517,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:520,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:523,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:529,1
    - Dst: nist_set_224
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:532,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:536,1
    - Dst: nist_set_224
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:599,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:600,1
    - Dst: nist_set_224
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:601,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:602,1
    - Dst: nist_set_224
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:603,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:604,1
    - Dst: nist_set_224
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:605,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:606,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:616,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:630,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:640,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:642,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 87
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 645
    functionName: BN_nist_mod_224
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - bn_add_words
    - bn_sub_words
    - bn_wexpand
    - nist_cp_bn_0
    - nist_cp_bn
    - BN_ucmp
    - nist_set_224
    - BN_zero
    - BN_copy
    - BN_nnmod
    - BN_is_negative
    - bn_correct_top
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 658
    functionName: nist_set_256
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_256(to, from, a1, a2, a3, a4, a5, a6, a7, a8)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:674,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:675,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:681,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:681,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:682,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:684,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:686,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:689,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:692,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:695,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:699,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:708,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:715,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:718,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:725,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:728,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:734,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:737,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:746,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:749,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:757,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:760,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:768,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:771,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:780,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:783,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:792,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:803,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:807,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:808,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:822,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:826,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:827,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:831,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:832,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:836,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:837,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:841,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:842,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:846,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:847,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:851,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:852,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:860,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:864,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:873,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:875,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 139
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 878
    functionName: BN_nist_mod_256
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - bn_add_words
    - bn_sub_words
    - bn_wexpand
    - load_u32
    - nist_cp_bn_0
    - nist_cp_bn
    - BN_ucmp
    - store_lo32
    - BN_zero
    - BN_copy
    - BN_nnmod
    - nist_set_256
    - BN_is_negative
    - bn_correct_top
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 29
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - ','
    - a10
    - ','
    - a11
    - ','
    - a12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 895
    functionName: nist_set_384
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nist_set_384(to,from,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:911,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:912,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:918,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:918,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:919,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:921,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:923,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:926,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:929,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:932,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:936,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:945,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:950,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:953,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:959,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:962,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:967,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:970,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:978,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:981,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:992,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:995,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1004,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1007,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1015,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1018,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1024,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1027,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1032,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1035,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1040,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1043,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1048,1
    - Dst: load_u32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1051,1
    - Dst: store_lo32
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1056,1
    - Dst: nist_set_256
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1067,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1081,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1086,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1090,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1092,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1096,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1098,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1102,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1103,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1107,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1108,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1112,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1114,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1118,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1119,1
    - Dst: nist_set_384
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1123,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1124,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1132,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1136,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1145,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1147,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 162
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 896
    functionDepth: 4
    functionLinenumber: 896
    functionLinenumberEnd: 1150
    functionName: BN_nist_mod_384
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - bn_add_words
    - bn_sub_words
    - bn_wexpand
    - load_u32
    - nist_cp_bn_0
    - nist_cp_bn
    - BN_ucmp
    - store_lo32
    - BN_zero
    - BN_copy
    - BN_nnmod
    - nist_set_256
    - nist_set_384
    - BN_is_negative
    - bn_correct_top
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1163,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1164,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1170,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1170,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1171,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1173,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1175,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1178,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1181,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1184,1
    - Dst: nist_cp_bn_0
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1189,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1212,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1213,1
    - Dst: nist_cp_bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1217,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1156
    functionDepth: 4
    functionLinenumber: 1156
    functionLinenumberEnd: 1222
    functionName: BN_nist_mod_521
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - bn_add_words
    - bn_sub_words
    - bn_wexpand
    - nist_cp_bn_0
    - nist_cp_bn
    - BN_ucmp
    - BN_zero
    - BN_copy
    - BN_nnmod
    - BN_is_negative
    - bn_correct_top
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field,\n
      \                   BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1226,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1228,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1230,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1232,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_nist.c:1234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - r
    - a
    - field
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1237
    functionName: "(*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a,\n
      \                                         const BIGNUM *field, BN_CTX *ctx)"
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_nist.c
    functionUses: 0
    functionsReached:
    - BN_ucmp
    linkageType: ''
    returnType: int
    signature: "int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM
      *a,\n                                          const BIGNUM *field, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select_64
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.h:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - r
    - mask
    - a
    - b
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG*
    - BN_ULONG*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: bn_select_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp.h
    functionUses: 0
    functionsReached:
    - constant_time_select_64
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline bn_select_words(BN_ULONG *r, BN_ULONG mask,\n                                        const
      BN_ULONG *a,\n                                        const BN_ULONG *b, size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.h:73,1
    - Dst: bn_select_words
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - r
    - carry
    - m
    - tmp
    - num
    argTypes:
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG*
    - BN_ULONG*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: bn_reduce_once_in_place
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp.h
    functionUses: 2
    functionsReached:
    - bn_select_words
    - bn_sub_words
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline bn_reduce_once_in_place(BN_ULONG *r,\n                                                    BN_ULONG
      carry,\n                                                    const BN_ULONG *m,\n
      \                                                   BN_ULONG *tmp, size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: bn_pollute
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pollute(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: bn_check_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_check_top(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: bn_fix_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_fix_top(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bn
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: bn_check_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_check_size(bn, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bn
    - ','
    - words
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: bn_wcheck_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_wcheck_size(bn, words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: bn_fix_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_fix_top(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: BN_window_bits_for_exponent_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_window_bits_for_exponent_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: BN_window_bits_for_ctime_exponent_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_window_bits_for_ctime_exponent_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: BN_window_bits_for_ctime_exponent_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_window_bits_for_ctime_exponent_size(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 401
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 426
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: BN_UMULT_LOHI
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_LOHI(low,high,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: BN_UMULT_HIGH
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_UMULT_HIGH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 469
    functionName: bn_clear_top2max
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_clear_top2max(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: Lw
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lw(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: Hw
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Hw(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 486
    functionName: mul_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 493
    functionName: mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 513
    functionName: mul_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 541
    functionName: mul_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - w
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,w,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 557
    functionName: sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: LBITS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: HBITS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    functionName: L2HBITS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L2HBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 568
    functionName: LLBITS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LLBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: LHBITS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 570
    functionName: LL2HBITS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL2HBITS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - h
    - ','
    - bl
    - ','
    - bh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 588
    functionName: mul64
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul64(l,h,bl,bh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lo
    - ','
    - ho
    - ','
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: sqr64
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr64(lo,ho,in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - bl
    - ','
    - bh
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 614
    functionName: mul_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,bl,bh,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - bl
    - ','
    - bh
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,bl,bh,c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_expand2
      Src: /src/openssl-3.0.15/crypto/bn/bn_local.h:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - bits
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 675
    functionName: bn_expand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_local.h
    functionUses: 1
    functionsReached:
    - bn_expand2
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline *bn_expand(BIGNUM *a, int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:18,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:19,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:23,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:25,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:28,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:31,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:34,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 42
    functionName: BN_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_add.c
    functionUses: 12
    functionsReached:
    - bn_check_top
    - BN_zero
    - BN_usub
    - BN_ucmp
    - BN_uadd
    linkageType: ''
    returnType: int
    signature: int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:49,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:50,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:54,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:56,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:59,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:62,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:65,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: BN_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_add.c
    functionUses: 15
    functionsReached:
    - bn_check_top
    - BN_zero
    - BN_usub
    - BN_ucmp
    - BN_uadd
    linkageType: ''
    returnType: int
    signature: int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:82,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:83,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:96,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:105,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 76
    functionDepth: 4
    functionLinenumber: 76
    functionLinenumberEnd: 122
    functionName: BN_uadd
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_add.c
    functionUses: 3
    functionsReached:
    - bn_add_words
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:131,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:132,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:139,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:143,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:150,1
    - Dst: bn_pollute
      Src: /src/openssl-3.0.15/crypto/bn/bn_add.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 170
    functionName: BN_usub
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_add.c
    functionUses: 4
    functionsReached:
    - bn_check_top
    - bn_sub_words
    - bn_wexpand
    - bn_pollute
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: BN_DEF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_DEF(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: BN_DEF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_DEF(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1013
    functionName: make_dh_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_dh_bn(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:31,1
    - Dst: BN_div_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:35,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:36,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 59
    functionName: BN_mod_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_word.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_free
    - bn_check_top
    - BN_div_word
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:66,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:76,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:78,1
    - Dst: bn_div_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:85,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 96
    functionName: BN_div_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_word.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_lshift
    - bn_div_words
    - BN_num_bits_word
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:103,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:110,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:111,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:115,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:116,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:125,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 132
    functionName: BN_add_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_word.c
    functionUses: 3
    functionsReached:
    - BN_sub_word
    - bn_check_top
    - bn_wexpand
    - BN_set_word
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_add_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:138,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:145,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:146,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:148,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:154,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 179
    functionName: BN_sub_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_word.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - BN_set_negative
    - BN_set_word
    - BN_add_word
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_sub_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:185,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:189,1
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:191,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:193,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_word.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - BIGNUM*
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: BN_mul_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_word.c
    functionUses: 1
    functionsReached:
    - BN_zero
    - bn_check_top
    - bn_mul_words
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_mul_word(BIGNUM *a, BN_ULONG w)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bn_get_libctx
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:28,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:33,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:43,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:45,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:50,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:51,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:63,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:89,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:93,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:98,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 7
    argNames:
    - flag
    - rnd
    - bits
    - top
    - bottom
    - strength
    - ctx
    argTypes:
    - BNRAND_FLAG
    - BIGNUM*
    - int
    - int
    - int
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 100
    functionName: bnrand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - bn_check_top
    - ossl_bn_get_libctx
    - OPENSSL_malloc
    - BN_bin2bn
    - RAND_priv_bytes_ex
    - ERR_raise
    - OPENSSL_clear_free
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "int bnrand(BNRAND_FLAG flag, BIGNUM *rnd, int bits, int top, int bottom,\n
      \                 unsigned int strength, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rnd
    - bits
    - top
    - bottom
    - strength
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: BN_rand_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: "int BN_rand_ex(BIGNUM *rnd, int bits, int top, int bottom,\n               unsigned
      int strength, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: BN_rand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: int BN_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: BN_bntest_rand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - rnd
    - bits
    - top
    - bottom
    - strength
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: BN_priv_rand_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: "int BN_priv_rand_ex(BIGNUM *rnd, int bits, int top, int bottom,\n
      \                   unsigned int strength, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: BN_priv_rand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand
    linkageType: ''
    returnType: int
    signature: int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:140,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:145,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:149,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:154,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:155,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:155,1
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:161,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:171,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:172,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:174,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:175,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:180,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:185,1
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:189,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:194,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:198,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:201,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - flag
    - r
    - range
    - strength
    - ctx
    argTypes:
    - BNRAND_FLAG
    - BIGNUM*
    - BIGNUM*
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 203
    functionName: bnrand_range
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_num_bits
    - ERR_raise
    - BN_zero
    - BN_is_bit_set
    - bnrand
    - BN_cmp
    - BN_sub
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int bnrand_range(BNRAND_FLAG flag, BIGNUM *r, const BIGNUM *range,\n
      \                       unsigned int strength, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand_range
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - range
    - strength
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 6
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: BN_rand_range_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand_range
    linkageType: ''
    returnType: int
    signature: "int BN_rand_range_ex(BIGNUM *r, const BIGNUM *range, unsigned int
      strength,\n                     BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand_range
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 6
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: BN_rand_range
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 3
    functionsReached:
    - bnrand_range
    linkageType: ''
    returnType: int
    signature: int BN_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand_range
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - range
    - strength
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: BN_priv_rand_range_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 4
    functionsReached:
    - bnrand_range
    linkageType: ''
    returnType: int
    signature: "int BN_priv_rand_range_ex(BIGNUM *r, const BIGNUM *range, unsigned
      int strength,\n                          BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bnrand_range
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: BN_priv_rand_range
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bnrand_range
    linkageType: ''
    returnType: int
    signature: int BN_priv_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rnd
    - bits
    - top
    - bottom
    argTypes:
    - BIGNUM*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: BN_pseudo_rand
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 2
    functionsReached:
    - BN_rand
    linkageType: ''
    returnType: int
    signature: int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_rand_range
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - range
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 7
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: BN_pseudo_rand_range
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - BN_rand_range
    linkageType: ''
    returnType: int
    signature: int BN_pseudo_rand_range(BIGNUM *r, const BIGNUM *range)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:250,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:254,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:255,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:259,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:264,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:266,1
    - Dst: bnrand
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:268,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:273,1
    - Dst: ossl_bn_mask_bits_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:276,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:278,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - r
    - range
    - strength
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - unsigned int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 286
    functionName: ossl_bn_priv_rand_range_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - ossl_bn_mask_bits_fixed_top
    - BN_num_bits
    - ERR_raise
    - BN_zero
    - BN_set_flags
    - bnrand
    - BN_ucmp
    - bn_correct_top
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_bn_priv_rand_range_fixed_top(BIGNUM *r, const BIGNUM *range,\n
      \                                     unsigned int strength, BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:301,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:310,1
    - Dst: ossl_bn_get_libctx
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:317,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:322,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:329,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:335,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:339,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:341,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:348,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:352,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:353,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:354,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:356,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:357,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:359,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:365,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:370,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:374,1
    - Dst: ossl_bn_mask_bits_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:375,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:375,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:377,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:381,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:387,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:390,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:391,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:392,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:393,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:394,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:395,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 6
    argNames:
    - out
    - range
    - priv
    - message
    - message_len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 296
    functionDepth: 11
    functionLinenumber: 296
    functionLinenumberEnd: 397
    functionName: ossl_bn_gen_dsa_nonce_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - memcpy
    - ossl_bn_get_libctx
    - OPENSSL_cleanse
    - BN_set_flags
    - BN_num_bytes
    - BN_ucmp
    - bn_correct_top
    - OPENSSL_clear_free
    - BN_bn2binpad
    - EVP_MD_CTX_new
    - BN_num_bits
    - ERR_raise
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    - ossl_bn_mask_bits_fixed_top
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    - BN_bin2bn
    - RAND_priv_bytes_ex
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_bn_gen_dsa_nonce_fixed_top(BIGNUM *out, const BIGNUM *range,\n
      \                                   const BIGNUM *priv,\n                                    const
      unsigned char *message,\n                                    size_t message_len,
      BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bn_gen_dsa_nonce_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:405,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_rand.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - out
    - range
    - priv
    - message
    - message_len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 399
    functionDepth: 12
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: BN_generate_dsa_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rand.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - ossl_bn_gen_dsa_nonce_fixed_top
    linkageType: ''
    returnType: int
    signature: "int 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: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:30,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:43,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:55,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:59,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:60,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:66,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:113,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 139
    functionName: bn_compute_wNAF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - BN_is_bit_set
    - BN_is_negative
    - BN_is_zero
    linkageType: ''
    returnType: signed char
    signature: signed char *bn_compute_wNAF(const BIGNUM *scalar, int w, size_t *ret_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: bn_get_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_get_top(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: bn_get_dmax
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_get_dmax(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: bn_set_all_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn_set_all_zero(BIGNUM *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:164,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - out
    - in
    - size
    argTypes:
    - BN_ULONG*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: bn_copy_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int bn_copy_words(BN_ULONG *out, const BIGNUM *in, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: bn_get_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG *bn_get_words(const BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - words
    - size
    argTypes:
    - BIGNUM*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: bn_set_static_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    linkageType: ''
    returnType: void
    signature: void bn_set_static_words(BIGNUM *a, const BN_ULONG *words, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:191,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:195,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_intern.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - a
    - words
    - num_words
    argTypes:
    - BIGNUM*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 4
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: bn_set_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_intern.c
    functionUses: 0
    functionsReached:
    - memcpy
    - bn_correct_top
    - ERR_raise
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int bn_set_words(BIGNUM *a, const BN_ULONG *words, int num_words)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: alloca
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alloca(s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:54,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:57,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:62,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:63,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:67,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:69,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:71,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:72,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:75,1
    - Dst: BN_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:80,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:82,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:83,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:87,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:92,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:93,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 95
    functionName: BN_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_one
    - bn_check_top
    - BN_mul
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_copy
    - BN_is_bit_set
    - BN_get_flags
    - BN_CTX_get
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:102,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:103,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:104,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:142,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:145,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:146,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:147,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:149,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:152,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:157,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:161,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 167
    functionName: BN_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 3
    functionsReached:
    - BN_is_odd
    - bn_check_top
    - BN_mod_exp_mont
    - BN_mod_exp_mont_word
    - BN_get_flags
    - BN_mod_exp_recp
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const
      BIGNUM *m,\n               BN_CTX *ctx)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:179,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:180,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:183,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:187,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:190,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:192,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:194,1
    - Dst: BN_RECP_CTX_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:199,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:201,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:202,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:203,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:209,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:212,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:215,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:219,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:221,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:222,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:227,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:229,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:233,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:234,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:247,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:249,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:254,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:258,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:260,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:277,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:289,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:294,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:306,1
    - Dst: BN_RECP_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:307,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:308,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 114
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 310
    functionName: BN_mod_exp_recp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_abs_is_word
    - BN_RECP_CTX_init
    - BN_CTX_start
    - BN_is_bit_set
    - BN_CTX_get
    - BN_one
    - bn_check_top
    - BN_window_bits_for_exponent_size
    - BN_mod_mul_reciprocal
    - BN_get_flags
    - BN_num_bits
    - ERR_raise
    - BN_nnmod
    - BN_RECP_CTX_free
    - BN_RECP_CTX_set
    - BN_CTX_end
    - BN_zero
    - BN_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                   const BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:323,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:324,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:325,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:327,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:328,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:333,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:334,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:335,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:336,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:339,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:342,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:344,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:346,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:351,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:352,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:353,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:354,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:365,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:367,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:371,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:372,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:377,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:380,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:382,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:386,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:387,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:402,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:412,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:412,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:415,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:417,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:435,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:447,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:452,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:474,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:478,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:483,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:484,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:485,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 137
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 487
    functionName: BN_mod_exp_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 4
    functionsReached:
    - BN_abs_is_word
    - bn_wexpand
    - BN_MONT_CTX_set
    - BN_CTX_start
    - bn_mul_mont_fixed_top
    - BN_is_bit_set
    - BN_ucmp
    - BN_CTX_get
    - BN_one
    - bn_check_top
    - BN_window_bits_for_exponent_size
    - BN_from_montgomery
    - BN_get_flags
    - bn_to_mont_fixed_top
    - BN_mod_exp_mont_consttime
    - BN_num_bits
    - ERR_raise
    - BN_value_one
    - BN_nnmod
    - BN_is_odd
    - BN_mod_mul_montgomery
    - BN_MONT_CTX_new
    - BN_CTX_end
    - BN_zero
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: "int 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: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - bitpos
    argTypes:
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: bn_get_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - b
    - top
    - buf
    - idx
    - window
    argTypes:
    - BIGNUM*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 531
    functionName: MOD_EXP_CTIME_COPY_TO_PREBUF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int MOD_EXP_CTIME_COPY_TO_PREBUF(const BIGNUM *b, int top,\n                                        unsigned
      char *buf, int idx,\n                                        int window)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:549,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:558,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:570,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:571,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:572,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:573,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 593
    functionName: MOD_EXP_CTIME_COPY_FROM_PREBUF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached:
    - constant_time_eq_int
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: "int MOD_EXP_CTIME_COPY_FROM_PREBUF(BIGNUM *b, int top,\n                                          unsigned
      char *buf, int idx,\n                                          int window)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 601
    functionName: MOD_EXP_CTIME_ALIGN
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD_EXP_CTIME_ALIGN(x_)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:626,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:627,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:628,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:630,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:631,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:639,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:649,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:651,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:653,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:658,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:667,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:669,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:673,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:674,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:676,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:688,1
    - Dst: rsaz_avx2_eligible
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:689,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:690,1
    - Dst: RSAZ_1024_mod_exp_avx2
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:692,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:696,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:699,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:700,1
    - Dst: RSAZ_512_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:702,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:705,1
    - Dst: BN_window_bits_for_ctime_exponent_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:712,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:741,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:745,1
    - Dst: MOD_EXP_CTIME_ALIGN
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:749,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:750,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:775,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:775,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:779,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:856,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:857,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:860,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:861,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:867,1
    - Dst: bn_flip_n_scatter5_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:868,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:872,1
    - Dst: bn_flip_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:874,1
    - Dst: bn_get_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:885,1
    - Dst: bn_gather5_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:886,1
    - Dst: bn_get_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:896,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:907,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:908,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:909,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:910,1
    - Dst: bn_mul_mont_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:911,1
    - Dst: bn_mul_mont_gather5_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:912,1
    - Dst: bn_flip_t4
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:916,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:920,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:921,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:971,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:972,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:973,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:974,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:979,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:980,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:985,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:986,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:990,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:991,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:993,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:994,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:998,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:999,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1000,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1001,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1004,1
    - Dst: bn_scatter5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1005,1
    - Dst: bn_get_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1017,1
    - Dst: bn_gather5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1018,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1026,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1027,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1028,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1029,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1030,1
    - Dst: bn_mul_mont_gather5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1031,1
    - Dst: bn_get_bits5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1032,1
    - Dst: bn_power5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1036,1
    - Dst: bn_get_bits5
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1037,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1057,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1059,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1069,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1071,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1076,1
    - Dst: MOD_EXP_CTIME_COPY_TO_PREBUF
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1078,1
    - Dst: bn_get_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1093,1
    - Dst: MOD_EXP_CTIME_COPY_FROM_PREBUF
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1094,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1107,1
    - Dst: bn_get_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1121,1
    - Dst: MOD_EXP_CTIME_COPY_FROM_PREBUF
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1125,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1130,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1145,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1149,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1154,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1157,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1159,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 278
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 609
    functionDepth: 5
    functionLinenumber: 609
    functionLinenumberEnd: 1161
    functionName: BN_mod_exp_mont_consttime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 3
    functionsReached:
    - BN_abs_is_word
    - bn_mul_mont_vis3
    - bn_scatter5
    - bn_wexpand
    - bn_get_bits
    - BN_MONT_CTX_set
    - OPENSSL_cleanse
    - BN_CTX_start
    - MOD_EXP_CTIME_COPY_FROM_PREBUF
    - bn_power5
    - rsaz_avx2_eligible
    - bn_mul_mont_fixed_top
    - BN_ucmp
    - BN_CTX_get
    - bn_correct_top
    - BN_one
    - bn_mul_mont_gather5
    - bn_check_top
    - RSAZ_512_mod_exp
    - BN_from_montgomery
    - bn_to_mont_fixed_top
    - memset
    - bn_gather5
    - MOD_EXP_CTIME_ALIGN
    - BN_window_bits_for_ctime_exponent_size
    - BN_num_bits
    - ERR_raise
    - RSAZ_1024_mod_exp_avx2
    - BN_value_one
    - OPENSSL_free
    - BN_nnmod
    - bn_mul_mont_t4
    - bn_mul_mont
    - bn_gather5_t4
    - BN_is_odd
    - bn_flip_t4
    - BN_mod_mul_montgomery
    - bn_flip_n_scatter5_t4
    - OPENSSL_malloc
    - MOD_EXP_CTIME_COPY_TO_PREBUF
    - BN_mod_exp_mont
    - BN_MONT_CTX_new
    - BN_CTX_end
    - bn_mul_mont_gather5_t4
    - BN_zero
    - BN_MONT_CTX_free
    - bn_get_bits5
    - alloca
    linkageType: ''
    returnType: int
    signature: "int 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: 30
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1189,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1192,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1196,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1197,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1200,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1206,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1209,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1211,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1213,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1218,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1223,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1224,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1225,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1232,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1234,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1249,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1253,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1260,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1265,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1269,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1273,1
    - Dst: BN_TO_MONTGOMERY_WORD
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1285,1
    - Dst: BN_MOD_MUL_WORD
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1289,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1295,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1298,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1304,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1305,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1306,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 113
    argCount: 6
    argNames:
    - rr
    - a
    - p
    - m
    - ctx
    - in_mont
    argTypes:
    - BIGNUM*
    - BN_ULONG
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1308
    functionName: BN_mod_exp_mont_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_abs_is_word
    - BN_MONT_CTX_set
    - BN_CTX_start
    - BN_is_bit_set
    - BN_CTX_get
    - BN_one
    - BN_TO_MONTGOMERY_WORD
    - bn_check_top
    - BN_from_montgomery
    - BN_get_flags
    - BN_MOD_MUL_WORD
    - BN_num_bits
    - ERR_raise
    - BN_is_odd
    - BN_mod_mul_montgomery
    - BN_MONT_CTX_new
    - BN_CTX_end
    - BN_zero
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - w
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1174
    functionName: BN_MOD_MUL_WORD
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_MOD_MUL_WORD(r, w, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - w
    - ','
    - mont
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1188
    functionName: BN_TO_MONTGOMERY_WORD
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_TO_MONTGOMERY_WORD(r, w, mont)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1320,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1321,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1322,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1324,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1329,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1333,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1336,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1338,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1340,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1345,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1346,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1347,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1351,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1353,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1354,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1359,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1361,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1365,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1366,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1379,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1381,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1386,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1390,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1392,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1409,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1421,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1426,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1438,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1439,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 103
    argCount: 5
    argNames:
    - r
    - a
    - p
    - m
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1441
    functionName: BN_mod_exp_simple
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 1
    functionsReached:
    - BN_one
    - BN_abs_is_word
    - bn_check_top
    - BN_mod_mul
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_window_bits_for_exponent_size
    - BN_CTX_end
    - BN_zero
    - BN_copy
    - BN_nnmod
    - BN_get_flags
    - BN_is_bit_set
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,\n
      \                     const BIGNUM *m, BN_CTX *ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsaz_avx512ifma_eligible
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1462,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1463,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1464,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1466,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1468,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1475,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1477,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1483,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1485,1
    - Dst: ossl_rsaz_mod_exp_avx512_x2
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1489,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1497,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1498,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1502,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1503,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1510,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1512,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1517,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp.c:1519,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 11
    argNames:
    - rr1
    - a1
    - p1
    - m1
    - in_mont1
    - rr2
    - a2
    - p2
    - m2
    - in_mont2
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1450
    functionDepth: 6
    functionLinenumber: 1450
    functionLinenumberEnd: 1523
    functionName: BN_mod_exp_mont_consttime_x2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp.c
    functionUses: 0
    functionsReached:
    - ossl_rsaz_mod_exp_avx512_x2
    - bn_check_top
    - ossl_rsaz_avx512ifma_eligible
    - bn_wexpand
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_num_bits
    - BN_mod_exp_mont_consttime
    - BN_MONT_CTX_free
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: "int BN_mod_exp_mont_consttime_x2(BIGNUM *rr1, const BIGNUM *a1, const
      BIGNUM *p1,\n                                 const BIGNUM *m1, BN_MONT_CTX
      *in_mont1,\n                                 BIGNUM *rr2, const BIGNUM *a2,
      const BIGNUM *p2,\n                                 const BIGNUM *m2, BN_MONT_CTX
      *in_mont2,\n                                 BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: bn_pack4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: bn_pack4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: bn_pack4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: bn_pack4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_srp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bn_pack4(a1,a2,a3,a4)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:29,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:32,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:36,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb_arg
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: BN_generate_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - BN_free
    - BN_new
    - BN_generate_prime_ex
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *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: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:51,1
    - Dst: ossl_bn_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - checks
    - ctx_passed
    - cb_arg
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: BN_is_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - ossl_bn_check_prime
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime(const BIGNUM *a, int checks,\n                void
      (*callback) (int, int, void *), BN_CTX *ctx_passed,\n                void *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:61,1
    - Dst: ossl_bn_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_depr.c:62,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: BN_is_prime_fasttest
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - ossl_bn_check_prime
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:22,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:22,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:24,1
    - Dst: BN_print
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:25,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: BN_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BN_print
    - BIO_new
    - BIO_free
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int BN_print_fp(FILE *fp, const BIGNUM *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:36,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:38,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:38,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:45,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: BN_print
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_print.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_print(BIO *bp, const BIGNUM *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:64,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bn/bn_print.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: BN_options
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_print.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    linkageType: ''
    returnType: char
    signature: char *BN_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:88,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:89,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:91,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:98,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:101,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - channel
    - text
    - ctx
    argTypes:
    - BIO*
    - char*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: ctxdbg
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void ctxdbg(BIO *channel, const char *text, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: CTXDBG
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTXDBG(str, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: CTXDBG
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTXDBG(str, ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:123,1
    - Dst: BN_POOL_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:127,1
    - Dst: BN_STACK_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: BN_CTX_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 12
    functionsReached:
    - BN_STACK_init
    - BN_POOL_init
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX *BN_CTX_new_ex(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: BN_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 6
    functionsReached:
    - BN_CTX_new_ex
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX *BN_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: BN_CTX_secure_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new_ex
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX *BN_CTX_secure_new_ex(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: BN_CTX_secure_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - BN_CTX_secure_new_ex
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX *BN_CTX_secure_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:163,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:166,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:170,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:173,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:174,1
    - Dst: BN_STACK_finish
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:176,1
    - Dst: BN_POOL_finish
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 179
    functionName: BN_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 18
    functionsReached:
    - OSSL_TRACE_END
    - BN_POOL_finish
    - OPENSSL_free
    - BN_STACK_finish
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void BN_CTX_free(BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:163,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:166,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:170,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(BN_CTX)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:183,1
    - Dst: BN_STACK_push
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:189,1
    - Dst: CTXDBG
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: BN_CTX_start
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 22
    functionsReached:
    - BN_STACK_push
    - CTXDBG
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void BN_CTX_start(BN_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:199,1
    - Dst: BN_STACK_pop
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:203,1
    - Dst: BN_POOL_release
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:206,1
    - Dst: CTXDBG
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: BN_CTX_end
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 18
    functionsReached:
    - BN_POOL_release
    - BN_STACK_pop
    - CTXDBG
    linkageType: ''
    returnType: void
    signature: void BN_CTX_end(BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTXDBG
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:218,1
    - Dst: BN_POOL_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:227,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:231,1
    - Dst: CTXDBG
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 237
    functionName: BN_CTX_get
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 23
    functionsReached:
    - BN_POOL_get
    - BN_zero
    - CTXDBG
    - ERR_raise
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_CTX_get(BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: ossl_bn_get_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_bn_get_libctx(BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: BN_STACK_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_STACK_init(BN_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: BN_STACK_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_STACK_finish(BN_STACK *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:272,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:276,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - st
    - idx
    argTypes:
    - BN_STACK*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 283
    functionName: BN_STACK_push
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: int BN_STACK_push(BN_STACK *st, unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - BN_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: BN_STACK_pop
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int BN_STACK_pop(BN_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: BN_POOL_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BN_POOL_init(BN_POOL *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - BN_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 313
    functionName: BN_POOL_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_POOL_finish(BN_POOL *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:325,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:326,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:330,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - p
    - flag
    argTypes:
    - BN_POOL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 355
    functionName: BN_POOL_get
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - bn_init
    - BN_set_flags
    - ERR_raise
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_POOL_get(BN_POOL *p, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_ctx.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - num
    argTypes:
    - BN_POOL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: BN_POOL_release
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_ctx.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    linkageType: ''
    returnType: void
    signature: void BN_POOL_release(BN_POOL *p, unsigned int num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:23,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:24,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:25,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:27,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 47
    functionName: BN_bn2hex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_conv.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_strdup
    - ERR_raise
    - BN_is_zero
    linkageType: ''
    returnType: char
    signature: char *BN_bn2hex(const BIGNUM *a)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:67,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:71,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:72,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:74,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:77,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:82,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:86,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:89,1
    - Dst: BN_div_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:92,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:103,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:117,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:121,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 123
    functionName: BN_bn2dec
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_conv.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - OPENSSL_malloc
    - BIO_snprintf
    - BN_num_bits
    - BN_div_word
    - ERR_raise
    - BN_free
    - OPENSSL_free
    - BN_is_negative
    - BN_is_zero
    linkageType: ''
    returnType: char
    signature: char *BN_bn2dec(const BIGNUM *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isxdigit
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:141,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:153,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:158,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:161,1
    - Dst: bn_expand
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:165,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:176,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:189,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:192,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:199,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 201
    functionName: BN_hex2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_conv.c
    functionUses: 3
    functionsReached:
    - bn_check_top
    - BN_new
    - ossl_isxdigit
    - bn_expand
    - ERR_raise
    - BN_free
    - BN_zero
    - BN_get_flags
    - OPENSSL_hexchar2int
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: int BN_hex2bn(BIGNUM **bn, const char *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:217,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:232,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:236,1
    - Dst: bn_expand
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:240,1
    - Dst: BN_mul_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:252,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:253,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:260,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:262,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:269,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 271
    functionName: BN_dec2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_conv.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_expand
    - BN_new
    - BN_free
    - BN_zero
    - BN_add_word
    - ossl_isdigit
    - bn_correct_top
    - BN_mul_word
    linkageType: ''
    returnType: int
    signature: int BN_dec2bn(BIGNUM **bn, const char *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:281,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_conv.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - bn
    - a
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: BN_asc2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_conv.c
    functionUses: 1
    functionsReached:
    - BN_dec2bn
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int BN_asc2bn(BIGNUM **bn, const char *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - boundary
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: ALIGN_OF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_OF(ptr, boundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: BITS2WORD8_SIZE
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS2WORD8_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: BITS2WORD64_SIZE
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS2WORD64_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitsize
    - digit_size
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: number_of_digits
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline number_of_digits(int bitsize, int digit_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: number_of_digits
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:136,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:163,1
    - Dst: ALIGN_OF
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:166,1
    - Dst: to_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:178,1
    - Dst: to_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:179,1
    - Dst: to_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:180,1
    - Dst: to_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:181,1
    - Dst: to_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:182,1
    - Dst: to_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:183,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:201,1
    - Dst: set_bit
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:203,1
    - Dst: amm
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:205,1
    - Dst: amm
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:206,1
    - Dst: amm
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:208,1
    - Dst: amm
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:209,1
    - Dst: exp_x2
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:217,1
    - Dst: from_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:220,1
    - Dst: from_words52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:221,1
    - Dst: bn_reduce_once_in_place
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:226,1
    - Dst: bn_reduce_once_in_place
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:227,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:232,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 13
    argNames:
    - res1
    - base1
    - exp1
    - m1
    - rr1
    - k0_1
    - res2
    - base2
    - exp2
    - m2
    - rr2
    - k0_2
    - factor_size
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 236
    functionName: ossl_rsaz_mod_exp_avx512_x2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 1
    functionsReached:
    - number_of_digits
    - OPENSSL_malloc
    - from_words52
    - OPENSSL_cleanse
    - exp_x2
    - ALIGN_OF
    - amm
    - to_words52
    - OPENSSL_free
    - bn_reduce_once_in_place
    - set_bit
    - memset
    linkageType: ''
    returnType: int
    signature: "int ossl_rsaz_mod_exp_avx512_x2(BN_ULONG *res1,\n                                const
      BN_ULONG *base1,\n                                const BN_ULONG *exp1,\n                                const
      BN_ULONG *m1,\n                                const BN_ULONG *rr1,\n                                BN_ULONG
      k0_1,\n                                BN_ULONG *res2,\n                                const
      BN_ULONG *base2,\n                                const BN_ULONG *exp2,\n                                const
      BN_ULONG *m2,\n                                const BN_ULONG *rr2,\n                                BN_ULONG
      k0_2,\n                                int factor_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:293,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:294,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:295,1
    - Dst: DAMM
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:304,1
    - Dst: DAMM
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:305,1
    - Dst: DAMS
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:308,1
    - Dst: DAMM
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:309,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:313,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:315,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:337,1
    - Dst: ossl_extract_multiplier_2x20_win5
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:349,1
    - Dst: ossl_extract_multiplier_2x20_win5
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:351,1
    - Dst: ossl_extract_multiplier_2x20_win5
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:377,1
    - Dst: ossl_extract_multiplier_2x20_win5
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:396,1
    - Dst: DAMS
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:403,1
    - Dst: DAMS
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:404,1
    - Dst: DAMS
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:405,1
    - Dst: DAMS
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:406,1
    - Dst: DAMS
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:407,1
    - Dst: DAMM
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:409,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:423,1
    - Dst: DAMM
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:426,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:429,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 6
    argNames:
    - out
    - base
    - exp
    - m
    - rr
    - k0
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*[]
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 439
    functionName: RSAZ_exp52x20_x2_256
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_assert
    - ossl_extract_multiplier_2x20_win5
    - OPENSSL_cleanse
    - DAMS
    - memset
    - DAMM
    linkageType: ''
    returnType: void
    signature: "void RSAZ_exp52x20_x2_256(BN_ULONG *out,          /* [2][20] */\n
      \                                const BN_ULONG *base,   /* [2][20] */\n                                 const
      BN_ULONG *exp[2], /* 2x16    */\n                                 const BN_ULONG
      *m,      /* [2][20] */\n                                 const BN_ULONG *rr,
      \    /* [2][20] */\n                                 const BN_ULONG k0[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - m
    - ','
    - k0
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: DAMS
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAMS(r,a,m,k0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - in
    - in_len
    argTypes:
    - uint8_t*
    - int
    assertStmts:
    - condition: (in != NULL)
      pos:
        line_end: 444
        line_start: 444
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: get_digit52
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline get_digit52(const uint8_t *in, int in_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:463,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:464,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:466,1
    - Dst: number_of_digits
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:466,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:473,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:476,1
    - Dst: get_digit52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:483,1
    - Dst: get_digit52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:488,1
    - Dst: BITS2WORD8_SIZE
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:488,1
    - Dst: get_digit52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:493,1
    - Dst: BITS2WORD8_SIZE
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - out
    - out_len
    - in
    - in_bitsize
    argTypes:
    - BN_ULONG*
    - int
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (out != NULL)
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    - condition: (in != NULL)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    - condition: (out_len >= number_of_digits(in_bitsize, DIGIT_SIZE))
      pos:
        line_end: 465
        line_start: 465
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    constantsTouched: []
    func_position:
      end: 503
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 503
    functionName: to_words52
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 1
    functionsReached:
    - memcpy
    - BITS2WORD8_SIZE
    - assert
    - number_of_digits
    - get_digit52
    linkageType: ''
    returnType: void
    signature: "void to_words52(BN_ULONG *out, int out_len,\n                       const
      BN_ULONG *in, int in_bitsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pStr
    - strLen
    - digit
    argTypes:
    - uint8_t*
    - int
    - uint64_t
    assertStmts:
    - condition: (pStr != NULL)
      pos:
        line_end: 506
        line_start: 506
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: put_digit52
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline put_digit52(uint8_t *pStr, int strLen, uint64_t digit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BITS2WORD64_SIZE
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:522,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:524,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:525,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:538,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:541,1
    - Dst: put_digit52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:546,1
    - Dst: put_digit52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:549,1
    - Dst: BITS2WORD8_SIZE
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:549,1
    - Dst: put_digit52
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:552,1
    - Dst: BITS2WORD8_SIZE
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - out
    - out_bitsize
    - in
    argTypes:
    - BN_ULONG*
    - int
    - BN_ULONG*
    assertStmts:
    - condition: (in != NULL)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    - condition: (out != NULL)
      pos:
        line_end: 523
        line_start: 523
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    constantsTouched: []
    func_position:
      end: 555
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 555
    functionName: from_words52
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 1
    functionsReached:
    - BITS2WORD64_SIZE
    - BITS2WORD8_SIZE
    - assert
    - memcpy
    - put_digit52
    linkageType: ''
    returnType: void
    signature: void from_words52(BN_ULONG *out, int out_bitsize, const BN_ULONG *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - idx
    argTypes:
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (a != NULL)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: set_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/rsaz_exp_x2.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline set_bit(BN_ULONG *a, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: SQR_nibble
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR_nibble(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: SQR1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR1(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: SQR0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR0(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: SQR1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR1(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: SQR0
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR0(w)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 4
    argNames:
    - r1
    - r0
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 126
    functionName: bn_GF2m_mul_1x1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bn_GF2m_mul_1x1(BN_ULONG *r1, BN_ULONG *r0, const BN_ULONG a,\n
      \                           const BN_ULONG b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 4
    argNames:
    - r1
    - r0
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 223
    functionName: bn_GF2m_mul_1x1
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bn_GF2m_mul_1x1(BN_ULONG *r1, BN_ULONG *r0, const BN_ULONG a,\n
      \                           const BN_ULONG b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:236,1
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:237,1
    - Dst: bn_GF2m_mul_1x1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:238,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: bn_GF2m_mul_2x2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_GF2m_mul_1x1
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:257,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:258,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:268,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 282
    functionName: BN_GF2m_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:298,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:302,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:311,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:380,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - r
    - a
    - p
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 382
    functionName: BN_GF2m_mod_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_correct_top
    - BN_zero
    - bn_check_top
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:394,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:395,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:396,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:396,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:397,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:398,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:401,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - r
    - a
    - p
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: BN_GF2m_mod
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_GF2m_poly2arr
    - ERR_raise
    - BN_GF2m_mod_arr
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:417,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:418,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:421,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:424,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:425,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:429,1
    - Dst: bn_GF2m_mul_2x2
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:442,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:448,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:449,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:451,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:454,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 456
    functionName: BN_GF2m_mod_mul_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - bn_wexpand
    - BN_CTX_start
    - BN_GF2m_mod_sqr_arr
    - BN_CTX_end
    - bn_GF2m_mul_2x2
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:469,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:472,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:473,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:474,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:476,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:478,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:481,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:483,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:486,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:487,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 465
    functionDepth: 6
    functionLinenumber: 465
    functionLinenumberEnd: 491
    functionName: BN_GF2m_mod_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul_arr
    - bn_check_top
    - OPENSSL_malloc
    - BN_num_bits
    - BN_GF2m_poly2arr
    - ERR_raise
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                   const BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:500,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:501,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:502,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:504,1
    - Dst: SQR1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:508,1
    - Dst: SQR0
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:509,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:513,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:514,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:516,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:519,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 494
    functionDepth: 5
    functionLinenumber: 494
    functionLinenumberEnd: 521
    functionName: BN_GF2m_mod_sqr_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - bn_wexpand
    - BN_CTX_start
    - BN_CTX_end
    - SQR1
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - bn_correct_top
    - SQR0
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[],\n
      \                       BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:532,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:535,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:536,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:538,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:540,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:543,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:545,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:548,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:549,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 553
    functionName: BN_GF2m_mod_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - OPENSSL_malloc
    - BN_num_bits
    - BN_GF2m_poly2arr
    - ERR_raise
    - BN_GF2m_mod_sqr_arr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:567,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:568,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:570,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:572,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:573,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:574,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:575,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:579,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:581,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:584,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:587,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:591,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:592,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:594,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:596,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:597,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:600,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:604,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:607,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:607,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:616,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:618,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:624,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:625,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:629,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:635,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:642,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:705,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:708,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:712,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:714,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:721,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:722,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:724,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 143
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 726
    functionName: BN_GF2m_mod_inv_vartime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_is_odd
    - BN_abs_is_word
    - bn_check_top
    - bn_wexpand
    - BN_GF2m_add
    - BN_rshift1
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - bn_correct_top
    - BN_copy
    - BN_GF2m_mod
    - BN_CTX_get
    - BN_num_bits_word
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_inv_vartime(BIGNUM *r, const BIGNUM *a,\n                                   const
      BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:739,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:740,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:744,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:750,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:753,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:756,1
    - Dst: BN_GF2m_mod_inv_vartime
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:760,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:764,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:770,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 733
    functionDepth: 7
    functionLinenumber: 733
    functionLinenumberEnd: 772
    functionName: BN_GF2m_mod_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul
    - BN_num_bits
    - BN_CTX_start
    - BN_GF2m_mod_inv_vartime
    - BN_CTX_end
    - BN_priv_rand_ex
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:786,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:787,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:788,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:790,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:793,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:794,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - r
    - xx
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 780
    functionDepth: 8
    functionLinenumber: 780
    functionLinenumberEnd: 799
    functionName: BN_GF2m_mod_inv_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_GF2m_mod_inv
    - BN_GF2m_arr2poly
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *xx, const int p[],\n
      \                       BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:811,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:812,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:813,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:815,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:816,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:820,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:822,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:824,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:828,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - r
    - y
    - x
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 805
    functionDepth: 8
    functionLinenumber: 805
    functionLinenumberEnd: 830
    functionName: BN_GF2m_mod_div
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_GF2m_mod_mul
    - BN_GF2m_mod_inv
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *y, const BIGNUM *x,\n
      \                   const BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:844,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:845,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:847,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:848,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:850,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:853,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:854,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - r
    - yy
    - xx
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 838
    functionDepth: 9
    functionLinenumber: 838
    functionLinenumberEnd: 859
    functionName: BN_GF2m_mod_div_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_GF2m_arr2poly
    - BN_CTX_start
    - BN_GF2m_mod_div
    - BN_CTX_end
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *yy, const BIGNUM
      *xx,\n                        const int p[], BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:872,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:873,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:875,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:876,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:878,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:879,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:881,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:882,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:885,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:888,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:890,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:892,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:893,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:897,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:899,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:902,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 866
    functionDepth: 6
    functionLinenumber: 866
    functionLinenumberEnd: 904
    functionName: BN_GF2m_mod_exp_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_GF2m_mod_mul_arr
    - BN_abs_is_word
    - bn_check_top
    - BN_num_bits
    - BN_CTX_start
    - BN_GF2m_mod_sqr_arr
    - BN_CTX_end
    - BN_copy
    - BN_is_bit_set
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                       const int p[], BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:916,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:919,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:920,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:921,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:923,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:925,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:928,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:930,1
    - Dst: BN_GF2m_mod_exp_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:933,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:934,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - r
    - a
    - b
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 912
    functionDepth: 7
    functionLinenumber: 912
    functionLinenumberEnd: 938
    functionName: BN_GF2m_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - OPENSSL_malloc
    - BN_num_bits
    - BN_GF2m_poly2arr
    - ERR_raise
    - OPENSSL_free
    - BN_GF2m_mod_exp_arr
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b,\n
      \                   const BIGNUM *p, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:950,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:954,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:958,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:959,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:962,1
    - Dst: BN_GF2m_mod_exp_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:964,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:965,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 944
    functionDepth: 7
    functionLinenumber: 944
    functionLinenumberEnd: 970
    functionName: BN_GF2m_mod_sqrt_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_CTX_start
    - BN_CTX_end
    - BN_zero
    - BN_CTX_get
    - BN_GF2m_mod_exp_arr
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, const int p[],\n
      \                        BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:981,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:984,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:985,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:987,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:989,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:992,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:994,1
    - Dst: BN_GF2m_mod_sqrt_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:997,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:998,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1000,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 978
    functionDepth: 8
    functionLinenumber: 978
    functionLinenumberEnd: 1002
    functionName: BN_GF2m_mod_sqrt
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - OPENSSL_malloc
    - BN_num_bits
    - BN_GF2m_poly2arr
    - ERR_raise
    - OPENSSL_free
    - BN_GF2m_mod_sqrt_arr
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1014,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1018,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1022,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1023,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1024,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1025,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1029,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1032,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1033,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1040,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1043,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1045,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1047,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1053,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1054,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1055,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1059,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1062,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1064,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1065,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1068,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1070,1
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1072,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1074,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1076,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1080,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1081,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1082,1
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1087,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1089,1
    - Dst: BN_GF2m_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1091,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1092,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1096,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1098,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1103,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 100
    argCount: 4
    argNames:
    - r
    - a_
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1008
    functionDepth: 6
    functionLinenumber: 1008
    functionLinenumberEnd: 1105
    functionName: BN_GF2m_mod_solve_quad_arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul_arr
    - BN_GF2m_cmp
    - bn_check_top
    - BN_GF2m_add
    - BN_CTX_start
    - ERR_raise
    - BN_GF2m_mod_sqr_arr
    - BN_CTX_end
    - BN_zero
    - BN_copy
    - BN_GF2m_mod_arr
    - BN_priv_rand_ex
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a_, const
      int p[],\n                               BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1117,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1120,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1121,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1125,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1128,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1130,1
    - Dst: BN_GF2m_mod_solve_quad_arr
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1133,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1134,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - r
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1113
    functionDepth: 7
    functionLinenumber: 1113
    functionLinenumberEnd: 1138
    functionName: BN_GF2m_mod_solve_quad
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - OPENSSL_malloc
    - BN_num_bits
    - BN_GF2m_poly2arr
    - ERR_raise
    - BN_GF2m_mod_solve_quad_arr
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *p,\n                           BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - a
    - p
    - max
    argTypes:
    - BIGNUM*
    - int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1176
    functionName: BN_GF2m_poly2arr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 6
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1186,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1187,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1189,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c:1192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - int[]
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1182
    functionDepth: 2
    functionLinenumber: 1182
    functionLinenumberEnd: 1195
    functionName: BN_GF2m_arr2poly
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_gf2m.c
    functionUses: 2
    functionsReached:
    - BN_zero
    - bn_check_top
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: int BN_GF2m_arr2poly(const int p[], BIGNUM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:15,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:16,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - recp
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: BN_RECP_CTX_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - memset
    - bn_init
    linkageType: ''
    returnType: void
    signature: void BN_RECP_CTX_init(BN_RECP_CTX *recp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:24,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:25,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:29,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: BN_RECP_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 0
    functionsReached:
    - bn_init
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BN_RECP_CTX
    signature: BN_RECP_CTX *BN_RECP_CTX_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:39,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:40,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - recp
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: BN_RECP_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_RECP_CTX_free(BN_RECP_CTX *recp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:47,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:47,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:49,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - recp
    - d
    - ctx
    argTypes:
    - BN_RECP_CTX*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: BN_RECP_CTX_set
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_num_bits
    - BN_zero
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:62,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:63,1
    - Dst: BN_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:67,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:70,1
    - Dst: BN_div_recp
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:77,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:79,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - r
    - x
    - y
    - recp
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_RECP_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 82
    functionName: BN_mod_mul_reciprocal
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - bn_check_top
    - BN_div_recp
    - BN_mul
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_get
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: "int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM
      *y,\n                          BN_RECP_CTX *recp, BN_CTX *ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:90,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:91,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:92,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:93,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:94,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:98,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:99,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:100,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:101,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:104,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:114,1
    - Dst: BN_reciprocal
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:121,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:132,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:134,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:136,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:140,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:142,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:149,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:152,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:154,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:158,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:162,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:163,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:164,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 5
    argNames:
    - dv
    - rem
    - m
    - recp
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_RECP_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 166
    functionName: BN_div_recp
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_usub
    - BN_reciprocal
    - bn_check_top
    - BN_mul
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_copy
    - BN_zero
    - BN_add_word
    - BN_rshift
    - BN_ucmp
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m,\n                BN_RECP_CTX
      *recp, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:179,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:180,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:183,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:186,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:191,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_recp.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - r
    - m
    - len
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: BN_reciprocal
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_recp.c
    functionUses: 1
    functionsReached:
    - BN_div
    - bn_check_top
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_get
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: BN_DEF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_DEF(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: BN_DEF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_DEF(lo, hi)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: bn_rsa_fips186_5_aux_prime_min_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_rsa_fips186_5_aux_prime_min_size(int nbits)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - nbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: bn_rsa_fips186_5_aux_prime_max_sum_size_for_prob_primes
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_rsa_fips186_5_aux_prime_max_sum_size_for_prob_primes(int nbits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:111,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:113,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:118,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:120,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:126,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - Xp1
    - p1
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: bn_rsa_fips186_4_find_aux_prob_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_call
    - BN_copy
    - BN_set_flags
    - BN_add_word
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: "int bn_rsa_fips186_4_find_aux_prob_prime(const BIGNUM *Xp1,\n                                                BIGNUM
      *p1, BN_CTX *ctx,\n                                                BN_GENCB
      *cb)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:168,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:170,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:171,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:172,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:173,1
    - Dst: bn_rsa_fips186_5_aux_prime_min_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:177,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:184,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:191,1
    - Dst: bn_rsa_fips186_4_find_aux_prob_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:197,1
    - Dst: bn_rsa_fips186_4_find_aux_prob_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:198,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:201,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:201,1
    - Dst: bn_rsa_fips186_5_aux_prime_max_sum_size_for_prob_primes
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:202,1
    - Dst: ossl_bn_rsa_fips186_4_derive_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:205,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:212,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:214,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:216,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:218,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:219,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 47
    argCount: 11
    argNames:
    - p
    - Xpout
    - p1
    - p2
    - Xp
    - Xp1
    - Xp2
    - nlen
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 154
    functionDepth: 6
    functionLinenumber: 154
    functionLinenumberEnd: 221
    functionName: ossl_bn_rsa_fips186_4_gen_prob_primes
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 0
    functionsReached:
    - ossl_bn_rsa_fips186_4_derive_prime
    - bn_rsa_fips186_5_aux_prime_min_size
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_clear
    - BN_priv_rand_ex
    - BN_CTX_get
    - bn_rsa_fips186_4_find_aux_prob_prime
    - bn_rsa_fips186_5_aux_prime_max_sum_size_for_prob_primes
    linkageType: ''
    returnType: int
    signature: "int ossl_bn_rsa_fips186_4_gen_prob_primes(BIGNUM *p, BIGNUM *Xpout,\n
      \                                         BIGNUM *p1, BIGNUM *p2,\n                                          const
      BIGNUM *Xp, const BIGNUM *Xp1,\n                                          const
      BIGNUM *Xp2, int nlen,\n                                          const BIGNUM
      *e, BN_CTX *ctx,\n                                          BN_GENCB *cb)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:255,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:257,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:258,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:259,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:260,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:261,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:262,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:263,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:267,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:280,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:282,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:283,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:284,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:284,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:285,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:289,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:291,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:292,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:294,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:295,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:296,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:297,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:298,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:300,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:303,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:303,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:320,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:320,1
    - Dst: BN_mod_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:324,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:324,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:330,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:336,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:339,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:340,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:341,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:343,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:344,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:353,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:356,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:362,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:364,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c:365,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 78
    argCount: 9
    argNames:
    - Y
    - X
    - Xin
    - r1
    - r2
    - nlen
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 367
    functionName: ossl_bn_rsa_fips186_4_derive_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_rsa_fips186_4.c
    functionUses: 1
    functionsReached:
    - BN_CTX_start
    - BN_is_negative
    - BN_CTX_get
    - BN_mod_sub
    - BN_mul
    - BN_sub
    - BN_sub_word
    - BN_is_one
    - BN_mod_inverse
    - BN_num_bits
    - ERR_raise
    - BN_value_one
    - BN_lshift1
    - BN_add
    - BN_clear
    - BN_gcd
    - BN_lshift
    - BN_CTX_end
    - BN_GENCB_call
    - BN_copy
    - BN_priv_rand_range_ex
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: "int ossl_bn_rsa_fips186_4_derive_prime(BIGNUM *Y, BIGNUM *X, const
      BIGNUM *Xin,\n                                       const BIGNUM *r1, const
      BIGNUM *r2,\n                                       int nlen, const BIGNUM *e,
      BN_CTX *ctx,\n                                       BN_GENCB *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:22,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:28,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:29,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:30,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:31,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 45
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 45
    functionName: bn_mul_add_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n
      \                         BN_ULONG w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:51,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:57,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:58,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:59,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:60,1
    - Dst: mul
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 73
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 73
    functionName: bn_mul_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - mul
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG
      w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:77,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:83,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:84,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:85,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:86,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: bn_sqr_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - assert
    - sqr
    linkageType: ''
    returnType: void
    signature: void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:109,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:113,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:114,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:118,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:119,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:120,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:121,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: bn_mul_add_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - HBITS
    - mul_add
    - LBITS
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n
      \                         BN_ULONG w)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:141,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:145,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:146,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:150,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:151,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:152,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:153,1
    - Dst: mul
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (num >= 0)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: bn_mul_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - HBITS
    - mul
    - LBITS
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG
      w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:170,1
    - Dst: sqr64
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:176,1
    - Dst: sqr64
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:177,1
    - Dst: sqr64
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:178,1
    - Dst: sqr64
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:179,1
    - Dst: sqr64
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: bn_sqr_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr64
    - assert
    linkageType: ''
    returnType: void
    signature: void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: bn_div_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:215,1
    - Dst: assert
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: ((i == BN_BITS2) || (h <= (BN_ULONG)1 << i))
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 268
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 268
    functionName: bn_div_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 2
    functionsReached:
    - BN_num_bits_word
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 311
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 311
    functionName: bn_add_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG
      *b,\n                      int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 368
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 368
    functionName: bn_add_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG
      *b,\n                      int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    constantsTouched: []
    func_position:
      end: 431
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 431
    functionName: bn_sub_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 9
    functionsReached:
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG
      *b,\n                      int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: mul_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 486
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 499
    functionName: mul_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 509
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 517
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: mul_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 543
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: mul_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 589
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:598,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:601,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:602,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:605,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:606,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:607,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:610,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:611,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:612,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:613,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:616,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:617,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:618,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:619,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:620,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:623,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:624,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:625,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:626,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:627,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:628,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:631,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:632,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:633,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:634,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:635,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:636,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:637,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:640,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:641,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:642,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:643,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:644,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:645,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:646,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:647,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:650,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:651,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:652,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:653,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:654,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:655,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:656,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:659,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:660,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:661,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:662,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:663,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:664,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:667,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:668,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:669,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:670,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:671,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:674,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:675,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:676,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:677,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:680,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:681,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:682,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:685,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:686,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 692
    functionName: bn_mul_comba8
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:701,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:704,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:705,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:708,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:709,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:710,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:713,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:714,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:715,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:716,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:719,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:720,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:721,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:724,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:725,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 731
    functionName: bn_mul_comba4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:740,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:743,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:746,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:747,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:750,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:751,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:754,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:755,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:756,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:759,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:760,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:761,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:764,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:765,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:766,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:767,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:770,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:771,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:772,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:773,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:776,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:777,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:778,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:779,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:782,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:783,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:784,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:787,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:788,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:789,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:792,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:793,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:796,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:797,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:800,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 806
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:815,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:818,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:821,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:822,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:825,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:826,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:829,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:830,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:833,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 839
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:870,1
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:872,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:879,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:880,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:882,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:885,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:896,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:897,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:899,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:902,1
    - Dst: HBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:912,1
    - Dst: LBITS
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:913,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:914,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:916,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:921,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:923,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:933,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 945
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached:
    - bn_sqr_mont
    - LBITS
    - bn_sub_words
    - HBITS
    - mul
    - mul_add
    - alloca
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 956
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 969
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_sqr_normal
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_sqr_normal
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:979,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:980,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:981,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 983
    functionName: bn_mul_comba4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:987,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:988,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:989,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:990,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:991,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:992,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:993,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 995
    functionName: bn_mul_comba8
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 0
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:1007,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:1013,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:1018,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_asm.c:1027,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1039
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached:
    - alloca
    - bn_mul_add_words
    - bn_sub_words
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1045
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:21,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - BIGNUM*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 40
    functionName: BN_bn2mpi
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mpi.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int BN_bn2mpi(const BIGNUM *a, unsigned char *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:49,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:55,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:60,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:75,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:77,1
    - Dst: BN_clear_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:82,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:82,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mpi.c:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - d
    - n
    - ain
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 86
    functionName: BN_mpi2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mpi.c
    functionUses: 0
    functionsReached:
    - bn_check_top
    - BN_new
    - BN_bin2bn
    - BN_num_bits
    - ERR_raise
    - BN_free
    - BN_clear_bit
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_mpi2bn(const unsigned char *d, int n, BIGNUM *ain)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:29,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:30,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:31,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:32,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:33,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:36,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:39,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:40,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:42,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:48,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:49,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:50,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:51,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:52,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:59,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:61,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:65,1
    - Dst: BN_window_bits_for_exponent_size
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:66,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:71,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:72,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:77,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:78,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:83,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:86,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:91,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:92,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:100,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:101,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:106,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:107,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:111,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:114,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:119,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:120,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:134,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:134,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:138,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:143,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:148,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:154,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:160,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:165,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:171,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:178,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:186,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:192,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:197,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:198,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_exp2.c:199,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 201
    functionName: BN_mod_exp2_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_exp2.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_set
    - BN_CTX_start
    - BN_is_bit_set
    - BN_to_montgomery
    - BN_ucmp
    - BN_CTX_get
    - BN_one
    - bn_check_top
    - BN_window_bits_for_exponent_size
    - BN_from_montgomery
    - BN_num_bits
    - ERR_raise
    - BN_value_one
    - BN_mod
    - BN_is_odd
    - BN_mod_mul_montgomery
    - BN_MONT_CTX_new
    - BN_CTX_end
    - BN_zero
    - BN_MONT_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-3.0.15/crypto/bn/bn_sparc.c:57,1
    - Dst: bn_mul_mont_vis3
      Src: /src/openssl-3.0.15/crypto/bn/bn_sparc.c:60,1
    - Dst: bn_mul_mont_fpu
      Src: /src/openssl-3.0.15/crypto/bn/bn_sparc.c:74,1
    - Dst: bn_mul_mont_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_sparc.c:76,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 77
    functionName: bn_mul_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_sparc.c
    functionUses: 1
    functionsReached:
    - bn_mul_mont_fpu
    - bn_mul_mont_int
    - bn_mul_mont_vis3
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:19,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:21,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - r
    - a
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: BN_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_sqr.c
    functionUses: 4
    functionsReached:
    - bn_correct_top
    - bn_check_top
    - bn_sqr_fixed_top
    linkageType: ''
    returnType: int
    signature: int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:33,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:43,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:44,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:49,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:55,1
    - Dst: bn_sqr_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:57,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:62,1
    - Dst: bn_sqr_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:64,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:70,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:74,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:78,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:80,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:82,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:84,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:88,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:90,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:97,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:102,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:103,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:104,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - r
    - a
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 106
    functionName: bn_sqr_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_sqr.c
    functionUses: 1
    functionsReached:
    - bn_sqr_comba8
    - bn_check_top
    - bn_wexpand
    - bn_sqr_normal
    - BN_CTX_start
    - bn_sqr_comba4
    - BN_CTX_end
    - BN_copy
    - BN_CTX_get
    - BN_num_bits_word
    - bn_sqr_recursive
    linkageType: ''
    returnType: int
    signature: int bn_sqr_fixed_top(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:124,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:131,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:135,1
    - Dst: bn_sqr_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:139,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - r
    - a
    - n
    - tmp
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: bn_sqr_normal
    functionSourceFile: /src/openssl-3.0.15/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: void bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG
      *tmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:164,1
    - Dst: bn_sqr_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:166,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:171,1
    - Dst: bn_sqr_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:173,1
    - Dst: bn_sqr_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:178,1
    - Dst: bn_cmp_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:182,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:185,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:187,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:195,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:197,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:198,1
    - Dst: bn_sqr_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:199,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:207,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:210,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqr.c:218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - r
    - a
    - n2
    - t
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 238
    functionName: bn_sqr_recursive
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_sqr.c
    functionUses: 2
    functionsReached:
    - bn_sqr_comba8
    - bn_add_words
    - bn_sub_words
    - bn_sqr_normal
    - bn_sqr_comba4
    - bn_cmp_words
    - memset
    - bn_sqr_recursive
    linkageType: ''
    returnType: void
    signature: void bn_sqr_recursive(BN_ULONG *r, const BN_ULONG *a, int n2, BN_ULONG
      *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: square
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: square(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: BN_DEF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_DEF(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: BN_DEF
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_DEF(lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: ossl_bn_get0_small_factors
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ossl_bn_get0_small_factors(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: calc_trial_divisions
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int calc_trial_divisions(int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: bn_mr_min_checks
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bn_mr_min_checks(int bits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB*::cb::cb_1
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:111,1
    - Dst: BN_GENCB*::cb::cb_2
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cb
    - a
    - b
    argTypes:
    - BN_GENCB*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 121
    functionName: BN_GENCB_call
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 7
    functionsReached:
    - BN_GENCB*::cb::cb_1
    - BN_GENCB*::cb::cb_2
    linkageType: ''
    returnType: int
    signature: int BN_GENCB_call(BN_GENCB *cb, int a, int b)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: bn_mr_min_checks
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:143,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:149,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:153,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:154,1
    - Dst: probable_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:160,1
    - Dst: probable_prime_dh
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:163,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:167,1
    - Dst: bn_is_prime_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:172,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:182,1
    - Dst: bn_is_prime_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:186,1
    - Dst: bn_is_prime_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:192,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:206,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:207,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:208,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 72
    argCount: 7
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - BN_GENCB*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 210
    functionName: BN_generate_prime_ex2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached:
    - probable_prime
    - bn_check_top
    - BN_CTX_start
    - OPENSSL_zalloc
    - ERR_raise
    - BN_GENCB_call
    - bn_is_prime_int
    - OPENSSL_free
    - BN_CTX_end
    - probable_prime_dh
    - BN_rshift1
    - BN_CTX_get
    - bn_mr_min_checks
    linkageType: ''
    returnType: int
    signature: "int BN_generate_prime_ex2(BIGNUM *ret, int bits, int safe,\n                          const
      BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb,\n                          BN_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:216,1
    - Dst: BN_generate_prime_ex2
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:222,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ret
    - bits
    - safe
    - add
    - rem
    - cb
    argTypes:
    - BIGNUM*
    - int
    - int
    - BIGNUM*
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: BN_generate_prime_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_generate_prime_ex2
    - BN_CTX_free
    - BN_CTX_new
    linkageType: ''
    returnType: int
    signature: "int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe,\n                         const
      BIGNUM *add, const BIGNUM *rem, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bn_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - checks
    - ctx_passed
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: BN_is_prime_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 2
    functionsReached:
    - ossl_bn_check_prime
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime_ex(const BIGNUM *a, int checks, BN_CTX *ctx_passed,\n
      \                  BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bn_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - w
    - checks
    - ctx
    - do_trial_division
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: BN_is_prime_fasttest_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 0
    functionsReached:
    - ossl_bn_check_prime
    linkageType: ''
    returnType: int
    signature: "int BN_is_prime_fasttest_ex(const BIGNUM *w, int checks, BN_CTX *ctx,\n
      \                           int do_trial_division, BN_GENCB *cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mr_min_checks
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:247,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:247,1
    - Dst: bn_is_prime_int
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - w
    - checks
    - ctx
    - do_trial_division
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: ossl_bn_check_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 4
    functionsReached:
    - bn_is_prime_int
    - BN_num_bits
    - bn_mr_min_checks
    linkageType: ''
    returnType: int
    signature: "int ossl_bn_check_prime(const BIGNUM *w, int checks, BN_CTX *ctx,\n
      \                       int do_trial_division, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bn_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: BN_check_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 6
    functionsReached:
    - ossl_bn_check_prime
    linkageType: ''
    returnType: int
    signature: int BN_check_prime(const BIGNUM *p, BN_CTX *ctx, BN_GENCB *cb)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:279,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:279,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:283,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:285,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:289,1
    - Dst: calc_trial_divisions
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:294,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:294,1
    - Dst: BN_mod_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:297,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:301,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:303,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:307,1
    - Dst: ossl_bn_miller_rabin_is_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:311,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 5
    argNames:
    - w
    - checks
    - ctx
    - do_trial_division
    - cb
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 321
    functionName: bn_is_prime_int
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 2
    functionsReached:
    - BN_is_odd
    - BN_is_word
    - BN_num_bits
    - calc_trial_divisions
    - BN_CTX_new
    - ossl_bn_miller_rabin_is_prime
    - BN_GENCB_call
    - BN_value_one
    - BN_mod_word
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int bn_is_prime_int(const BIGNUM *w, int checks, BN_CTX *ctx,\n                           int
      do_trial_division, BN_GENCB *cb)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:346,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:349,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:350,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:351,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:352,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:353,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:354,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:355,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:356,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:360,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:361,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:363,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:364,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:368,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:368,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:373,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:376,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:380,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:381,1
    - Dst: bn_mr_min_checks
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:385,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:385,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:390,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:391,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:396,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:399,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:406,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:409,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:409,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:414,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:414,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:417,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:420,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:425,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:425,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:428,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:431,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:436,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:436,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:439,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:450,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:457,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:458,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:459,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:460,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:461,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:462,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:463,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:464,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:465,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 106
    argCount: 6
    argNames:
    - w
    - iterations
    - ctx
    - cb
    - enhanced
    - status
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    - BN_GENCB*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 338
    functionDepth: 7
    functionLinenumber: 338
    functionLinenumberEnd: 467
    functionName: ossl_bn_miller_rabin_is_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_set
    - BN_CTX_start
    - BN_is_bit_set
    - BN_is_negative
    - BN_CTX_get
    - BN_mod_mul
    - BN_rshift
    - BN_cmp
    - BN_sub_word
    - BN_is_one
    - BN_num_bits
    - BN_clear
    - BN_gcd
    - BN_add_word
    - BN_is_odd
    - BN_mod_exp_mont
    - BN_MONT_CTX_new
    - BN_CTX_end
    - BN_GENCB_call
    - BN_copy
    - BN_priv_rand_range_ex
    - BN_MONT_CTX_free
    - bn_mr_min_checks
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_bn_miller_rabin_is_prime(const BIGNUM *w, int iterations,
      BN_CTX *ctx,\n                                  BN_GENCB *cb, int enhanced,
      int *status)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: calc_trial_divisions
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:483,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:487,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:490,1
    - Dst: BN_mod_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:494,1
    - Dst: square
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:510,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:510,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:520,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:522,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:524,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 5
    argNames:
    - rnd
    - bits
    - safe
    - mods
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - int
    - prime_t*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 478
    functionDepth: 6
    functionLinenumber: 478
    functionLinenumberEnd: 526
    functionName: probable_prime
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_get_word
    - bn_check_top
    - BN_num_bits
    - calc_trial_divisions
    - square
    - BN_priv_rand_ex
    - BN_mod_word
    - BN_add_word
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: "int probable_prime(BIGNUM *rnd, int bits, int safe, prime_t *mods,\n
      \                         BN_CTX *ctx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: calc_trial_divisions
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:543,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:546,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:547,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:550,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:551,1
    - Dst: BN_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:554,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:559,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:561,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:564,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:567,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:571,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:572,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:573,1
    - Dst: BN_mod_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:579,1
    - Dst: square
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:589,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:589,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:594,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:600,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:605,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_prime.c:606,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 62
    argCount: 7
    argNames:
    - rnd
    - bits
    - safe
    - mods
    - add
    - rem
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - int
    - prime_t*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 536
    functionDepth: 6
    functionLinenumber: 536
    functionLinenumberEnd: 608
    functionName: probable_prime_dh
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_prime.c
    functionUses: 1
    functionsReached:
    - BN_get_word
    - bn_check_top
    - BN_num_bits
    - calc_trial_divisions
    - BN_CTX_start
    - BN_CTX_end
    - square
    - BN_add_word
    - BN_add
    - BN_mod
    - BN_rand_ex
    - BN_mod_word
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int probable_prime_dh(BIGNUM *rnd, int bits, int safe, prime_t *mods,\n
      \                            const BIGNUM *add, const BIGNUM *rem,\n                             BN_CTX
      *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:27,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:29,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:29,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:33,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:35,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:40,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:43,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - pi
    - Xpi
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 45
    functionName: bn_x931_derive_pi
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_GENCB_call
    - BN_copy
    - BN_add_word
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: "int bn_x931_derive_pi(BIGNUM *pi, const BIGNUM *Xpi, BN_CTX *ctx,\n
      \                            BN_GENCB *cb)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:63,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:68,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:71,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:73,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:75,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:77,1
    - Dst: bn_x931_derive_pi
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:82,1
    - Dst: bn_x931_derive_pi
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:85,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:88,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:93,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:96,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:99,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:102,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:105,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:108,1
    - Dst: BN_mod_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:113,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:116,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:123,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:124,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:126,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:128,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:130,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:136,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:142,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:146,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:152,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 155
    functionName: BN_X931_derive_prime_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_mod_sub
    - BN_sub_word
    - BN_is_one
    - BN_mod_inverse
    - BN_CTX_start
    - BN_check_prime
    - BN_CTX_end
    - BN_GENCB_call
    - BN_copy
    - bn_x931_derive_pi
    - BN_add
    - BN_gcd
    - BN_mul
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int 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: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:178,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:182,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:183,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:188,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:193,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:195,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:199,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:207,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - Xp
    - Xq
    - nbits
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 162
    functionDepth: 6
    functionLinenumber: 162
    functionLinenumberEnd: 209
    functionName: BN_X931_generate_Xpq
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_priv_rand_ex
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX
      *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:226,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:228,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:230,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:234,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:236,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:238,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_x931p.c:244,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 9
    argNames:
    - p
    - p1
    - p2
    - Xp1
    - Xp2
    - Xp
    - e
    - ctx
    - cb
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 219
    functionDepth: 7
    functionLinenumber: 219
    functionLinenumberEnd: 248
    functionName: BN_X931_generate_prime_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_x931p.c
    functionUses: 0
    functionsReached:
    - BN_X931_derive_prime_ex
    - BN_CTX_start
    - BN_CTX_end
    - BN_priv_rand_ex
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int 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: 72
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:28,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:28,1
    - Dst: BN_abs_is_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:29,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:31,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:34,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:34,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:36,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:43,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:47,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:47,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:49,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:52,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:52,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:54,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:57,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:63,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:64,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:65,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:67,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:68,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:73,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:78,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:83,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:96,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:99,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:101,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:137,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:141,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:144,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:148,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:152,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:154,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:158,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:160,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:163,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:173,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:183,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:186,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:186,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:188,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:193,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:194,1
    - Dst: BN_kronecker
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:215,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:220,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:227,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:229,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:230,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:254,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:258,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:259,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:261,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:263,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:266,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:269,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:271,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:273,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:280,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:282,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:286,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:300,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:301,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:310,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:314,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:317,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:322,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:327,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:330,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:333,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:335,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:337,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:349,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:352,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:353,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:361,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:365,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c:366,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 256
    argCount: 4
    argNames:
    - in
    - a
    - p
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 13
    functionDepth: 6
    functionLinenumber: 13
    functionLinenumberEnd: 368
    functionName: BN_mod_sqrt
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_sqrt.c
    functionUses: 0
    functionsReached:
    - BN_abs_is_word
    - BN_mod_exp
    - BN_mod_sqr
    - BN_CTX_start
    - BN_is_bit_set
    - BN_ucmp
    - BN_CTX_get
    - BN_one
    - bn_check_top
    - BN_mod_mul
    - BN_rshift
    - BN_priv_rand_ex
    - BN_set_word
    - BN_clear_free
    - BN_cmp
    - BN_sub_word
    - BN_new
    - BN_is_one
    - BN_num_bits
    - ERR_raise
    - BN_free
    - BN_nnmod
    - BN_add_word
    - BN_is_odd
    - BN_CTX_end
    - BN_kronecker
    - BN_copy
    - BN_zero
    - BN_rshift1
    - BN_mod_lshift1_quick
    - BN_is_zero
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX
      *ctx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:33,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/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
    assertStmts:
    - condition: (cl >= 0)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    constantsTouched: []
    func_position:
      end: 154
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 154
    functionName: bn_sub_part_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 0
    functionsReached:
    - bn_sub_words
    - assert
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_sub_part_words(BN_ULONG *r,\n                           const
      BN_ULONG *a, const BN_ULONG *b,\n                           int cl, int dl)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:186,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:195,1
    - Dst: bn_mul_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:201,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:203,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:208,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:209,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:213,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:214,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:220,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:221,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:230,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:231,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:238,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:239,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:247,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:249,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:251,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:252,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:257,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:259,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:261,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:262,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:268,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:270,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:271,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:272,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:281,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:284,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:287,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:296,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 316
    functionName: bn_mul_recursive
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_sub_part_words
    - bn_mul_comba4
    - bn_mul_normal
    - bn_add_words
    - bn_sub_words
    - bn_cmp_part_words
    - bn_mul_recursive
    - memset
    - bn_mul_comba8
    linkageType: ''
    returnType: void
    signature: "void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2,\n
      \                     int dna, int dnb, BN_ULONG *t)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:330,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:335,1
    - Dst: bn_cmp_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:336,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:340,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:341,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:345,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:346,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:353,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:354,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:359,1
    - Dst: bn_sub_part_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:360,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:369,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:370,1
    - Dst: bn_mul_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:371,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:372,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:376,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:377,1
    - Dst: bn_mul_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:378,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:379,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:382,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:383,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:393,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:395,1
    - Dst: bn_mul_part_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:397,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:399,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:403,1
    - Dst: bn_mul_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:406,1
    - Dst: bn_mul_part_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:415,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:420,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:436,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:439,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:442,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:451,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 471
    functionName: bn_mul_part_recursive
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_sub_part_words
    - bn_mul_normal
    - bn_mul_comba4
    - bn_add_words
    - bn_sub_words
    - bn_cmp_part_words
    - bn_mul_recursive
    - bn_mul_part_recursive
    - memset
    - bn_mul_comba8
    linkageType: ''
    returnType: void
    signature: "void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b,
      int n,\n                           int tna, int tnb, BN_ULONG *t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:482,1
    - Dst: bn_mul_low_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:484,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:485,1
    - Dst: bn_mul_low_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:486,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:487,1
    - Dst: bn_mul_low_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:489,1
    - Dst: bn_mul_low_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:490,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:491,1
    - Dst: bn_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:492,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 494
    functionName: bn_mul_low_recursive
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_recursive
    - bn_add_words
    - bn_mul_low_recursive
    - bn_mul_low_normal
    linkageType: ''
    returnType: void
    signature: "void bn_mul_low_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int
      n2,\n                          BN_ULONG *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:499,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:501,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: BN_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 9
    functionsReached:
    - bn_check_top
    - bn_correct_top
    - bn_mul_fixed_top
    linkageType: ''
    returnType: int
    signature: int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:520,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:521,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:522,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:528,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:533,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:535,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:547,1
    - Dst: bn_mul_comba4
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:550,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:555,1
    - Dst: bn_mul_comba8
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:558,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:571,1
    - Dst: BN_num_bits_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:574,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:577,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:579,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:583,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:585,1
    - Dst: bn_mul_part_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:587,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:591,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:593,1
    - Dst: bn_mul_recursive
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:595,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:602,1
    - Dst: bn_mul_normal
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:605,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:612,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:617,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:618,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 95
    argCount: 4
    argNames:
    - r
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts:
    - condition: (j <= al || j <= bl)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    constantsTouched: []
    func_position:
      end: 620
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 620
    functionName: bn_mul_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_comba4
    - bn_mul_normal
    - bn_check_top
    - assert
    - bn_wexpand
    - BN_CTX_start
    - BN_CTX_end
    - BN_zero
    - bn_mul_part_recursive
    - bn_mul_recursive
    - BN_copy
    - bn_mul_comba8
    - BN_CTX_get
    - BN_num_bits_word
    linkageType: ''
    returnType: int
    signature: int bn_mul_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX
      *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:640,1
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:643,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:648,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:651,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:654,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - r
    - a
    - na
    - b
    - nb
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 662
    functionName: bn_mul_normal
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 3
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, int
      nb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:666,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:671,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:674,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:677,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mul.c:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 684
    functionName: bn_mul_low_normal
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mul.c
    functionUses: 1
    functionsReached:
    - bn_mul_add_words
    - bn_mul_words
    linkageType: ''
    returnType: void
    signature: void bn_mul_low_normal(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: COPY_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_BN(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 42
    functionName: BN_get_rfc2409_prime_768
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: BN_get_rfc2409_prime_1024
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BN
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: BN_get_rfc3526_prime_1536
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - COPY_BN
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BN
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: BN_get_rfc3526_prime_2048
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - COPY_BN
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BN
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: BN_get_rfc3526_prime_3072
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - COPY_BN
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BN
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: BN_get_rfc3526_prime_4096
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - COPY_BN
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BN
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: BN_get_rfc3526_prime_6144
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - COPY_BN
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_BN
      Src: /src/openssl-3.0.15/crypto/bn/bn_const.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: BN_get_rfc3526_prime_8192
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_const.c
    functionUses: 0
    functionsReached:
    - COPY_BN
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:29,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:31,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - r
    - a
    - b
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: BN_mod_mul_montgomery
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 6
    functionsReached:
    - bn_mul_mont_fixed_top
    - bn_correct_top
    - bn_check_top
    linkageType: ''
    returnType: int
    signature: "int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                          BN_MONT_CTX *mont, BN_CTX *ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:46,1
    - Dst: bn_mul_mont
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:48,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:61,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:65,1
    - Dst: bn_sqr_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:67,1
    - Dst: bn_mul_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:70,1
    - Dst: bn_from_montgomery_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:75,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:78,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:83,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 5
    argNames:
    - r
    - a
    - b
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 85
    functionName: bn_mul_mont_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - bn_sqr_fixed_top
    - bn_check_top
    - bn_wexpand
    - BN_CTX_start
    - BN_CTX_end
    - BN_from_montgomery
    - bn_mul_fixed_top
    - BN_CTX_get
    - bn_mul_mont
    - bn_from_montgomery_word
    linkageType: ''
    returnType: int
    signature: "int bn_mul_mont_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM
      *b,\n                          BN_MONT_CTX *mont, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:103,1
    - Dst: bn_mul_add_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:126,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:133,1
    - Dst: bn_sub_words
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 3
    argNames:
    - ret
    - r
    - mont
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 159
    functionName: bn_from_montgomery_word
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - bn_mul_add_words
    - bn_sub_words
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int bn_from_montgomery_word(BIGNUM *ret, BIGNUM *r, BN_MONT_CTX *mont)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:167,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:168,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ret
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: BN_from_montgomery
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 5
    functionsReached:
    - bn_from_mont_fixed_top
    - bn_check_top
    - bn_correct_top
    linkageType: ''
    returnType: int
    signature: "int BN_from_montgomery(BIGNUM *ret, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                      BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:181,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:182,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:182,1
    - Dst: bn_from_montgomery_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:183,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:185,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:190,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:191,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:195,1
    - Dst: BN_mask_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:197,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:199,1
    - Dst: BN_mask_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:201,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:203,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:205,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:207,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:210,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:211,1
    - Dst: bn_check_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:215,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:217,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - ret
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 220
    functionName: bn_from_mont_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - BN_usub
    - bn_check_top
    - BN_mul
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - BN_add
    - BN_mask_bits
    - BN_rshift
    - BN_ucmp
    - BN_CTX_get
    - bn_from_montgomery_word
    linkageType: ''
    returnType: int
    signature: "int bn_from_mont_fixed_top(BIGNUM *ret, const BIGNUM *a, BN_MONT_CTX
      *mont,\n                           BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - a
    - mont
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_MONT_CTX*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: bn_to_mont_fixed_top
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 3
    functionsReached:
    - bn_mul_mont_fixed_top
    linkageType: ''
    returnType: int
    signature: "int bn_to_mont_fixed_top(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont,\n
      \                        BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:233,1
    - Dst: BN_MONT_CTX_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: BN_MONT_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 8
    functionsReached:
    - OPENSSL_malloc
    - BN_MONT_CTX_init
    - ERR_raise
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: BN_MONT_CTX *BN_MONT_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:245,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:246,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: BN_MONT_CTX_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 1
    functionsReached:
    - bn_init
    linkageType: ''
    returnType: void
    signature: void BN_MONT_CTX_init(BN_MONT_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:256,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:257,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:258,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mont
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: BN_MONT_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 8
    functionsReached:
    - BN_clear_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BN_MONT_CTX_free(BN_MONT_CTX *mont)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:268,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:271,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:272,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:275,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:277,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:278,1
    - Dst: bn_init
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:286,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:291,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:292,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:294,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:304,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:305,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:314,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:315,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:316,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:318,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:320,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:321,1
    - Dst: bn_expand
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:325,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:333,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:341,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:342,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:349,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:350,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:351,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:353,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:355,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:356,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:360,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:363,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:374,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:375,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:376,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:379,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:381,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:383,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:388,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:394,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:395,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:397,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:407,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 120
    argCount: 3
    argNames:
    - mont
    - mod
    - ctx
    argTypes:
    - BN_MONT_CTX*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 409
    functionName: BN_MONT_CTX_set
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 8
    functionsReached:
    - BN_CTX_start
    - BN_set_flags
    - BN_CTX_get
    - BN_get_flags
    - BN_set_word
    - BN_set_bit
    - BN_sub_word
    - BN_div
    - bn_expand
    - BN_is_one
    - BN_mod_inverse
    - BN_num_bits
    - BN_mod
    - BN_lshift
    - BN_CTX_end
    - BN_copy
    - bn_init
    - BN_zero
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:416,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:418,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - BN_MONT_CTX*
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: BN_MONT_CTX_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:433,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:436,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:448,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:451,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:452,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:457,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:458,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:463,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/bn/bn_mont.c:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - pmont
    - lock
    - mod
    - ctx
    argTypes:
    - BN_MONT_CTX**
    - CRYPTO_RWLOCK*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 428
    functionDepth: 7
    functionLinenumber: 428
    functionLinenumberEnd: 469
    functionName: BN_MONT_CTX_set_locked
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/bn_mont.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_MONT_CTX_free
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: "BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK
      *lock,\n                                    const BIGNUM *mod, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - word
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: mul_add
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add(r,a,word,carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - a
    - ','
    - word
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: mul
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(r,a,word,carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r0
    - ','
    - r1
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr(r0,r1,a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:119,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:120,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:121,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:122,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:128,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:131,1
    - Dst: mul_add
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: bn_mul_add_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached:
    - mul_add
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,\n
      \                         BN_ULONG w)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:149,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:150,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:151,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:152,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:158,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:161,1
    - Dst: mul
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - rp
    - ap
    - num
    - w
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: bn_mul_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 7
    functionsReached:
    - mul
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG
      w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:175,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:176,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:177,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:178,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:184,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:187,1
    - Dst: sqr
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - r
    - a
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 192
    functionName: bn_sqr_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 1
    functionsReached:
    - sqr
    linkageType: ''
    returnType: void
    signature: void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - l
    - d
    argTypes:
    - BN_ULONG
    - BN_ULONG
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: bn_div_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rp
    - ap
    - bp
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 229
    functionName: bn_add_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG
      *bp,\n                      int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rp
    - ap
    - bp
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 256
    functionName: bn_sub_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG
      *bp,\n                      int n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - r
    - a
    - b
    - n
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 306
    functionName: bn_sub_words
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG bn_sub_words(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: mul_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 360
    functionName: mul_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 372
    functionName: sqr_add_c
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c(a,i,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 388
    functionName: mul_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_add_c2(a,b,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - i
    - ','
    - j
    - ','
    - c0
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: sqr_add_c2
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqr_add_c2(a,i,j,c0,c1,c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:400,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:403,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:404,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:407,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:408,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:409,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:412,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:413,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:414,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:415,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:418,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:419,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:420,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:421,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:422,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:425,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:426,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:427,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:428,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:429,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:430,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:433,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:434,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:435,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:436,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:437,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:438,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:439,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:442,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:443,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:444,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:445,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:446,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:447,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:448,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:449,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:452,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:453,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:454,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:455,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:456,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:457,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:458,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:461,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:462,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:463,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:464,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:465,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:466,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:469,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:470,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:471,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:472,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:473,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:476,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:477,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:478,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:479,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:482,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:483,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:484,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:487,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:488,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 98
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 494
    functionName: bn_mul_comba8
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:503,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:506,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:507,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:510,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:511,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:512,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:515,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:516,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:517,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:518,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:521,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:522,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:523,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:526,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:527,1
    - Dst: mul_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 533
    functionName: bn_mul_comba4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 3
    functionsReached:
    - mul_add_c
    linkageType: ''
    returnType: void
    signature: void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:542,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:545,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:548,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:549,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:552,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:553,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:556,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:557,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:558,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:561,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:562,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:563,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:566,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:567,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:568,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:569,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:572,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:573,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:574,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:575,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:578,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:579,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:580,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:581,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:584,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:585,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:586,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:589,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:590,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:591,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:594,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:595,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:598,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:599,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:602,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 608
    functionName: bn_sqr_comba8
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:617,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:620,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:623,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:624,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:627,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:628,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:631,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:632,1
    - Dst: sqr_add_c2
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:635,1
    - Dst: sqr_add_c
      Src: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - BN_ULONG*
    - BN_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 641
    functionName: bn_sqr_comba4
    functionSourceFile: /src/openssl-3.0.15/crypto/bn/asm/x86_64-gcc.c
    functionUses: 2
    functionsReached:
    - sqr_add_c
    - sqr_add_c2
    linkageType: ''
    returnType: void
    signature: void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:49,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:52,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:63,1
    - Dst: encoder_process
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - out
    argTypes:
    - OSSL_ENCODER_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: OSSL_ENCODER_to_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 2
    functionsReached:
    - ERR_raise_data
    - OSSL_ENCODER_CTX_get_num_encoders
    - ERR_raise
    - memset
    - encoder_process
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_to_bio(OSSL_ENCODER_CTX *ctx, BIO *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:75,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:76,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: bio_from_file
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_set_fp
    - BIO_new
    - ERR_raise
    - BIO_s_file
    linkageType: ''
    returnType: BIO
    signature: BIO *bio_from_file(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_from_file
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:85,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:89,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - fp
    argTypes:
    - OSSL_ENCODER_CTX*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: OSSL_ENCODER_to_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - bio_from_file
    - OSSL_ENCODER_to_bio
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_to_fp(OSSL_ENCODER_CTX *ctx, FILE *fp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:104,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:108,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:108,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:111,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:112,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:133,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - pdata
    - pdata_len
    argTypes:
    - OSSL_ENCODER_CTX*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 145
    functionName: OSSL_ENCODER_to_data
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - BIO_get_mem_ptr
    - memcpy
    - BIO_free
    - ERR_raise
    - OSSL_ENCODER_to_bio
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_to_data(OSSL_ENCODER_CTX *ctx, unsigned char **pdata,\n
      \                        size_t *pdata_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:149,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:150,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:154,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - selection
    argTypes:
    - OSSL_ENCODER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: OSSL_ENCODER_CTX_set_selection
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_CTX_set_selection(OSSL_ENCODER_CTX *ctx, int selection)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:166,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - output_type
    argTypes:
    - OSSL_ENCODER_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: OSSL_ENCODER_CTX_set_output_type
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_output_type(OSSL_ENCODER_CTX *ctx,\n                                     const
      char *output_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:178,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - output_structure
    argTypes:
    - OSSL_ENCODER_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: OSSL_ENCODER_CTX_set_output_structure
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_output_structure(OSSL_ENCODER_CTX *ctx,\n
      \                                         const char *output_structure)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:196,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:197,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:202,1
    - Dst: OSSL_ENCODER_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:206,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:207,1
    - Dst: OSSL_ENCODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:211,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:212,1
    - Dst: ossl_encoder_parsed_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:213,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:215,1
    - Dst: OSSL_ENCODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:217,1
    - Dst: ossl_property_find_property
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:222,1
    - Dst: ossl_property_get_string_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:223,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:225,1
    - Dst: OSSL_ENCODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:228,1
    - Dst: OSSL_ENCODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:229,1
    - Dst: ossl_property_find_property
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:234,1
    - Dst: ossl_property_get_string_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:237,1
    - Dst: ossl_encoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - encoder
    - encoderctx
    argTypes:
    - OSSL_ENCODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 245
    functionName: ossl_encoder_instance_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_property_get_string_value
    - OSSL_ENCODER_up_ref
    - OPENSSL_zalloc
    - ERR_raise
    - ERR_raise_data
    - OSSL_ENCODER_get0_properties
    - ossl_encoder_instance_free
    - ossl_encoder_parsed_properties
    - ossl_property_find_property
    - ossl_provider_libctx
    - OSSL_ENCODER_get0_provider
    - ossl_assert
    - OSSL_ENCODER_get0_name
    linkageType: ''
    returnType: OSSL_ENCODER_INSTANCE
    signature: "OSSL_ENCODER_INSTANCE *ossl_encoder_instance_new(OSSL_ENCODER *encoder,\n
      \                                                       void *encoderctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_INSTANCE*::encoder::freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:251,1
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:253,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - encoder_inst
    argTypes:
    - OSSL_ENCODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: ossl_encoder_instance_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OSSL_ENCODER_INSTANCE*::encoder::freectx
    - OSSL_ENCODER_free
    linkageType: ''
    returnType: void
    signature: void ossl_encoder_instance_free(OSSL_ENCODER_INSTANCE *encoder_inst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_ENCODER_INSTANCE_new_null
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:267,1
    - Dst: sk_OSSL_ENCODER_INSTANCE_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:271,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:274,1
    - Dst: OSSL_ENCODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:278,1
    - Dst: OSSL_ENCODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:279,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - ei
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_ENCODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 283
    functionName: ossl_encoder_ctx_add_encoder_inst
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - sk_OSSL_ENCODER_INSTANCE_new_null
    - OSSL_ENCODER_get0_properties
    - ERR_raise
    - BIO_printf
    - sk_OSSL_ENCODER_INSTANCE_push
    - OSSL_ENCODER_get0_name
    linkageType: ''
    returnType: int
    signature: "int ossl_encoder_ctx_add_encoder_inst(OSSL_ENCODER_CTX *ctx,\n                                             OSSL_ENCODER_INSTANCE
      *ei)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:274,1
    - Dst: OSSL_ENCODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:278,1
    - Dst: OSSL_ENCODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OSSL_ENCODER_get0_properties
    - OSSL_ENCODER_get0_name
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:292,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:292,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:293,1
    - Dst: OSSL_ENCODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:297,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:298,1
    - Dst: OSSL_ENCODER*::newctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:300,1
    - Dst: ossl_encoder_instance_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:302,1
    - Dst: ossl_encoder_ctx_add_encoder_inst
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:307,1
    - Dst: ossl_encoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:312,1
    - Dst: OSSL_ENCODER*::freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:314,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - encoder
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 316
    functionName: OSSL_ENCODER_CTX_add_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER*::newctx
    - ossl_encoder_ctx_add_encoder_inst
    - ERR_raise
    - ossl_encoder_instance_free
    - OSSL_PROVIDER_get0_provider_ctx
    - ossl_encoder_instance_new
    - OSSL_ENCODER_get0_provider
    - ossl_assert
    - OSSL_ENCODER*::freectx
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_CTX_add_encoder(OSSL_ENCODER_CTX *ctx, OSSL_ENCODER
      *encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - libctx
    - propq
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: OSSL_ENCODER_CTX_add_extra
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_add_extra(OSSL_ENCODER_CTX *ctx,\n                               OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_ENCODER_INSTANCE_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_ENCODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: OSSL_ENCODER_CTX_get_num_encoders
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 3
    functionsReached:
    - sk_OSSL_ENCODER_INSTANCE_num
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_CTX_get_num_encoders(OSSL_ENCODER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - construct
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_ENCODER_CONSTRUCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: OSSL_ENCODER_CTX_set_construct
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_construct(OSSL_ENCODER_CTX *ctx,\n                                   OSSL_ENCODER_CONSTRUCT
      *construct)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:345,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - construct_data
    argTypes:
    - OSSL_ENCODER_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: OSSL_ENCODER_CTX_set_construct_data
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_construct_data(OSSL_ENCODER_CTX *ctx,\n                                        void
      *construct_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:356,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - cleanup
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_ENCODER_CLEANUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: OSSL_ENCODER_CTX_set_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_cleanup(OSSL_ENCODER_CTX *ctx,\n                                 OSSL_ENCODER_CLEANUP
      *cleanup)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - encoder_inst
    argTypes:
    - OSSL_ENCODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: OSSL_ENCODER_INSTANCE_get_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_ENCODER
    signature: 'OSSL_ENCODER *

      OSSL_ENCODER_INSTANCE_get_encoder(OSSL_ENCODER_INSTANCE *encoder_inst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - encoder_inst
    argTypes:
    - OSSL_ENCODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: OSSL_ENCODER_INSTANCE_get_encoder_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      OSSL_ENCODER_INSTANCE_get_encoder_ctx(OSSL_ENCODER_INSTANCE *encoder_inst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - encoder_inst
    argTypes:
    - OSSL_ENCODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 386
    functionName: OSSL_ENCODER_INSTANCE_get_output_type
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      OSSL_ENCODER_INSTANCE_get_output_type(OSSL_ENCODER_INSTANCE *encoder_inst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - encoder_inst
    argTypes:
    - OSSL_ENCODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 394
    functionName: OSSL_ENCODER_INSTANCE_get_output_structure
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      OSSL_ENCODER_INSTANCE_get_output_structure(OSSL_ENCODER_INSTANCE *encoder_inst)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:425,1
    - Dst: sk_OSSL_ENCODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:428,1
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:430,1
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:432,1
    - Dst: OSSL_ENCODER_INSTANCE_get_output_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:434,1
    - Dst: OSSL_ENCODER_INSTANCE_get_output_structure
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:436,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:437,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:445,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:449,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:460,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:463,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:467,1
    - Dst: OSSL_ENCODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:471,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:473,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:477,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:489,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:492,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:497,1
    - Dst: encoder_process
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:508,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:529,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:532,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:543,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:546,1
    - Dst: struct encoder_process_data_st*::ctx::construct
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:573,1
    - Dst: OSSL_ENCODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:577,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:586,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:587,1
    - Dst: OSSL_ENCODER_INSTANCE_get_output_structure
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:600,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:603,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:607,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:611,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:614,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:632,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:632,1
    - Dst: ossl_core_bio_new_from_bio
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:637,1
    - Dst: OSSL_ENCODER*::encode
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:639,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:645,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:649,1
    - Dst: ossl_core_bio_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:652,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:659,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:669,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:672,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:675,1
    - Dst: struct encoder_process_data_st*::ctx::cleanup
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:677,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 118
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct encoder_process_data_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 679
    functionName: encoder_process
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 2
    functionsReached:
    - struct encoder_process_data_st*::ctx::construct
    - OSSL_TRACE_END
    - OSSL_ENCODER_is_a
    - OSSL_ENCODER_INSTANCE_get_encoder_ctx
    - OSSL_PARAM_construct_octet_string
    - BIO_printf
    - ossl_assert
    - BIO_s_mem
    - BIO_new
    - BIO_get_mem_ptr
    - sk_OSSL_ENCODER_INSTANCE_value
    - OSSL_ENCODER_INSTANCE_get_output_type
    - ossl_core_bio_free
    - memset
    - encoder_process
    - OSSL_ENCODER_INSTANCE_get_output_structure
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - OPENSSL_free
    - ossl_core_bio_new_from_bio
    - OSSL_ENCODER_get0_name
    - OPENSSL_strcasecmp
    - struct encoder_process_data_st*::ctx::cleanup
    - BIO_free
    - OSSL_ENCODER*::encode
    - OSSL_ENCODER_INSTANCE_get_encoder
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: int encoder_process(struct encoder_process_data_st *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 649
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:54,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:58,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:59,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:66,1
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:68,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:69,1
    - Dst: BIO_f_readbuffer
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:69,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:72,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:74,1
    - Dst: ossl_pw_enable_passphrase_caching
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:79,1
    - Dst: decoder_process
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:81,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:99,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:99,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:101,1
    - Dst: ossl_pw_clear_passphrase_cache
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:109,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:112,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - in
    argTypes:
    - OSSL_DECODER_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 116
    functionName: OSSL_DECODER_from_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - decoder_process
    - ossl_pw_clear_passphrase_cache
    - BIO_free
    - OSSL_DECODER_CTX_get_num_decoders
    - BIO_tell
    - ERR_peek_error
    - ERR_raise_data
    - ERR_raise
    - BIO_f_readbuffer
    - ERR_peek_last_error
    - ossl_pw_enable_passphrase_caching
    - memset
    - BIO_pop
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_from_bio(OSSL_DECODER_CTX *ctx, BIO *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:123,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:124,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: bio_from_file
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached:
    - BIO_set_fp
    - BIO_new
    - ERR_raise
    - BIO_s_file
    linkageType: ''
    returnType: BIO
    signature: BIO *bio_from_file(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_from_file
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:133,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:137,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - fp
    argTypes:
    - OSSL_DECODER_CTX*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: OSSL_DECODER_from_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - bio_from_file
    - OSSL_DECODER_from_bio
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_from_fp(OSSL_DECODER_CTX *ctx, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:151,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:155,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:156,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:157,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - pdata
    - pdata_len
    argTypes:
    - OSSL_DECODER_CTX*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: OSSL_DECODER_from_data
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 2
    functionsReached:
    - BIO_new_mem_buf
    - BIO_free
    - ERR_raise
    - OSSL_DECODER_from_bio
    - BIO_get_mem_data
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_from_data(OSSL_DECODER_CTX *ctx, const unsigned char
      **pdata,\n                           size_t *pdata_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - selection
    argTypes:
    - OSSL_DECODER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: OSSL_DECODER_CTX_set_selection
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_CTX_set_selection(OSSL_DECODER_CTX *ctx, int selection)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - input_type
    argTypes:
    - OSSL_DECODER_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: OSSL_DECODER_CTX_set_input_type
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_input_type(OSSL_DECODER_CTX *ctx,\n                                    const
      char *input_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - input_structure
    argTypes:
    - OSSL_DECODER_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: OSSL_DECODER_CTX_set_input_structure
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_input_structure(OSSL_DECODER_CTX *ctx,\n
      \                                        const char *input_structure)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:222,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:227,1
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:231,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:232,1
    - Dst: ossl_decoder_parsed_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:233,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:235,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:237,1
    - Dst: ossl_property_find_property
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:242,1
    - Dst: ossl_property_get_string_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:243,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:245,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:248,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:249,1
    - Dst: ossl_property_find_property
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:254,1
    - Dst: ossl_property_get_string_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:257,1
    - Dst: OSSL_DECODER_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:260,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:261,1
    - Dst: ossl_decoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:268,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - decoder
    - decoderctx
    argTypes:
    - OSSL_DECODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 270
    functionName: ossl_decoder_instance_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_property_get_string_value
    - ossl_decoder_parsed_properties
    - ossl_decoder_instance_free
    - ERR_raise_data
    - OPENSSL_zalloc
    - OSSL_DECODER_get0_provider
    - ERR_raise
    - OSSL_DECODER_get0_name
    - OSSL_DECODER_get0_properties
    - ossl_property_find_property
    - ossl_provider_libctx
    - ossl_assert
    - OSSL_DECODER_up_ref
    linkageType: ''
    returnType: OSSL_DECODER_INSTANCE
    signature: "OSSL_DECODER_INSTANCE *ossl_decoder_instance_new(OSSL_DECODER *decoder,\n
      \                                                void *decoderctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_INSTANCE*::decoder::freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:276,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:278,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - decoder_inst
    argTypes:
    - OSSL_DECODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: ossl_decoder_instance_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OSSL_DECODER_INSTANCE*::decoder::freectx
    - OSSL_DECODER_free
    linkageType: ''
    returnType: void
    signature: void ossl_decoder_instance_free(OSSL_DECODER_INSTANCE *decoder_inst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_DECODER_INSTANCE_new_null
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:292,1
    - Dst: sk_OSSL_DECODER_INSTANCE_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:296,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:299,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:303,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:304,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - di
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_DECODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 308
    functionName: ossl_decoder_ctx_add_decoder_inst
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - sk_OSSL_DECODER_INSTANCE_new_null
    - OSSL_DECODER_get0_name
    - ERR_raise
    - OSSL_DECODER_get0_properties
    - sk_OSSL_DECODER_INSTANCE_push
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int ossl_decoder_ctx_add_decoder_inst(OSSL_DECODER_CTX *ctx,\n                                      OSSL_DECODER_INSTANCE
      *di)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:299,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:303,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OSSL_DECODER_get0_properties
    - OSSL_DECODER_get0_name
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:317,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:317,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:318,1
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:322,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:323,1
    - Dst: OSSL_DECODER*::newctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:325,1
    - Dst: ossl_decoder_instance_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:327,1
    - Dst: ossl_decoder_ctx_add_decoder_inst
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:332,1
    - Dst: ossl_decoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:337,1
    - Dst: OSSL_DECODER*::freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - decoder
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 341
    functionName: OSSL_DECODER_CTX_add_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER*::newctx
    - ossl_decoder_instance_new
    - ossl_decoder_instance_free
    - OSSL_DECODER_get0_provider
    - ERR_raise
    - ossl_decoder_ctx_add_decoder_inst
    - OSSL_PROVIDER_get0_provider_ctx
    - ossl_assert
    - OSSL_DECODER*::freectx
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_CTX_add_decoder(OSSL_DECODER_CTX *ctx, OSSL_DECODER
      *decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:359,1
    - Dst: OSSL_DECODER_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:361,1
    - Dst: sk_OSSL_DECODER_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:362,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - decoder
    - arg
    argTypes:
    - OSSL_DECODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: collect_all_decoders
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - OSSL_DECODER_free
    - sk_OSSL_DECODER_push
    - OSSL_DECODER_up_ref
    linkageType: ''
    returnType: void
    signature: void collect_all_decoders(OSSL_DECODER *decoder, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:370,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:371,1
    - Dst: OSSL_DECODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:373,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:378,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:382,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:383,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:384,1
    - Dst: sk_OSSL_DECODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:393,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:398,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:400,1
    - Dst: OSSL_DECODER*::newctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:405,1
    - Dst: ossl_decoder_instance_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:408,1
    - Dst: OSSL_DECODER*::freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:409,1
    - Dst: OSSL_DECODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:416,1
    - Dst: OSSL_DECODER_INSTANCE_get_input_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:417,1
    - Dst: ossl_decoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:418,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:420,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:422,1
    - Dst: OSSL_DECODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:428,1
    - Dst: OSSL_DECODER_INSTANCE_get_input_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:429,1
    - Dst: ossl_decoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:430,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:432,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:434,1
    - Dst: ossl_decoder_ctx_add_decoder_inst
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:444,1
    - Dst: ossl_decoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:445,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - decoder
    - arg
    argTypes:
    - OSSL_DECODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 451
    functionName: collect_extra_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER*::newctx
    - OSSL_TRACE_END
    - sk_OSSL_DECODER_INSTANCE_value
    - ossl_decoder_instance_new
    - ossl_decoder_instance_free
    - OSSL_DECODER_get0_name
    - OSSL_DECODER_get0_provider
    - OSSL_DECODER_get0_properties
    - OSSL_PROVIDER_get0_provider_ctx
    - OSSL_DECODER_is_a
    - OSSL_DECODER_INSTANCE_get_input_type
    - BIO_printf
    - ossl_decoder_ctx_add_decoder_inst
    - OSSL_DECODER*::freectx
    linkageType: ''
    returnType: void
    signature: void collect_extra_decoder(OSSL_DECODER *decoder, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:378,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:382,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 384
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OSSL_DECODER_get0_properties
    - OSSL_DECODER_get0_name
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:483,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:485,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:486,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:498,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:500,1
    - Dst: sk_OSSL_DECODER_new_null
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:503,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:505,1
    - Dst: OSSL_DECODER_do_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:508,1
    - Dst: sk_OSSL_DECODER_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:509,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:511,1
    - Dst: sk_OSSL_DECODER_INSTANCE_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:514,1
    - Dst: sk_OSSL_DECODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:532,1
    - Dst: OSSL_DECODER_INSTANCE_get_input_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:535,1
    - Dst: collect_extra_decoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:539,1
    - Dst: sk_OSSL_DECODER_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:539,1
    - Dst: sk_OSSL_DECODER_pop_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - libctx
    - propq
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 555
    functionName: OSSL_DECODER_CTX_add_extra
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - sk_OSSL_DECODER_INSTANCE_value
    - OSSL_DECODER_INSTANCE_get_input_type
    - OSSL_DECODER_do_all_provided
    - sk_OSSL_DECODER_INSTANCE_num
    - sk_OSSL_DECODER_value
    - sk_OSSL_DECODER_num
    - collect_extra_decoder
    - ERR_raise
    - memset
    - sk_OSSL_DECODER_pop_free
    - STACK_OF
    - sk_OSSL_DECODER_new_null
    - BIO_printf
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_add_extra(OSSL_DECODER_CTX *ctx,\n                               OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_DECODER_INSTANCE_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_DECODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: OSSL_DECODER_CTX_get_num_decoders
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached:
    - sk_OSSL_DECODER_INSTANCE_num
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_CTX_get_num_decoders(OSSL_DECODER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:567,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - construct
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_DECODER_CONSTRUCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: OSSL_DECODER_CTX_set_construct
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_construct(OSSL_DECODER_CTX *ctx,\n                                   OSSL_DECODER_CONSTRUCT
      *construct)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:578,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - construct_data
    argTypes:
    - OSSL_DECODER_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 584
    functionName: OSSL_DECODER_CTX_set_construct_data
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_construct_data(OSSL_DECODER_CTX *ctx,\n                                        void
      *construct_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:589,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - cleanup
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_DECODER_CLEANUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: OSSL_DECODER_CTX_set_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_cleanup(OSSL_DECODER_CTX *ctx,\n                                 OSSL_DECODER_CLEANUP
      *cleanup)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_DECODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 603
    functionName: OSSL_DECODER_CTX_get_construct
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_DECODER_CONSTRUCT
    signature: 'OSSL_DECODER_CONSTRUCT *

      OSSL_DECODER_CTX_get_construct(OSSL_DECODER_CTX *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_DECODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: OSSL_DECODER_CTX_get_construct_data
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *OSSL_DECODER_CTX_get_construct_data(OSSL_DECODER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_DECODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 618
    functionName: OSSL_DECODER_CTX_get_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_DECODER_CLEANUP
    signature: 'OSSL_DECODER_CLEANUP *

      OSSL_DECODER_CTX_get_cleanup(OSSL_DECODER_CTX *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:627,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:628,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:629,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:630,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:631,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:635,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:636,1
    - Dst: OSSL_DECODER*::export_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - decoder_inst
    - reference
    - reference_sz
    - export_cb
    - export_cbarg
    argTypes:
    - OSSL_DECODER_INSTANCE*
    - void*
    - size_t
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 639
    functionName: OSSL_DECODER_export
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_INSTANCE_get_decoder_ctx
    - ERR_raise
    - OSSL_DECODER*::export_object
    - OSSL_DECODER_INSTANCE_get_decoder
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_export(OSSL_DECODER_INSTANCE *decoder_inst,\n                        void
      *reference, size_t reference_sz,\n                        OSSL_CALLBACK *export_cb,
      void *export_cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - decoder_inst
    argTypes:
    - OSSL_DECODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: OSSL_DECODER_INSTANCE_get_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: OSSL_DECODER
    signature: 'OSSL_DECODER *

      OSSL_DECODER_INSTANCE_get_decoder(OSSL_DECODER_INSTANCE *decoder_inst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - decoder_inst
    argTypes:
    - OSSL_DECODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 655
    functionName: OSSL_DECODER_INSTANCE_get_decoder_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      OSSL_DECODER_INSTANCE_get_decoder_ctx(OSSL_DECODER_INSTANCE *decoder_inst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - decoder_inst
    argTypes:
    - OSSL_DECODER_INSTANCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 663
    functionName: OSSL_DECODER_INSTANCE_get_input_type
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      OSSL_DECODER_INSTANCE_get_input_type(OSSL_DECODER_INSTANCE *decoder_inst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - decoder_inst
    - was_set
    argTypes:
    - OSSL_DECODER_INSTANCE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: OSSL_DECODER_INSTANCE_get_input_structure
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\nOSSL_DECODER_INSTANCE_get_input_structure(OSSL_DECODER_INSTANCE
      *decoder_inst,\n                                          int *was_set)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:697,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:710,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:713,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:716,1
    - Dst: sk_OSSL_DECODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:724,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:726,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:733,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:736,1
    - Dst: OSSL_DECODER_CTX*::construct
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:738,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:741,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:744,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:762,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:765,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:771,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:772,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:776,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:777,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:794,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:798,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:805,1
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:815,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:816,1
    - Dst: ossl_core_bio_new_from_bio
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:820,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:821,1
    - Dst: sk_OSSL_DECODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:827,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:829,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:831,1
    - Dst: OSSL_DECODER_INSTANCE_get_input_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:833,1
    - Dst: OSSL_DECODER_INSTANCE_get_input_structure
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:836,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:840,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:845,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:846,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:847,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:855,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:857,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:861,1
    - Dst: OSSL_DECODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:871,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:873,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:877,1
    - Dst: OSSL_DECODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:885,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:887,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:890,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:901,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:904,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:907,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:921,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:924,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:927,1
    - Dst: BIO_seek
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:942,1
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:943,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:948,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:952,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:958,1
    - Dst: OSSL_DECODER*::decode
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:963,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:970,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:977,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:983,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:986,1
    - Dst: ossl_core_bio_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:997,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:998,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 132
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 1000
    functionName: decoder_process
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_TRACE_END
    - sk_OSSL_DECODER_INSTANCE_value
    - OSSL_DECODER_CTX*::construct
    - OSSL_DECODER_CTX_get_num_decoders
    - OSSL_DECODER_get0_properties
    - OSSL_DECODER_is_a
    - BIO_printf
    - OSSL_PARAM_locate_const
    - OSSL_DECODER_INSTANCE_get_decoder
    - ossl_core_bio_free
    - memset
    - OSSL_DECODER_INSTANCE_get_input_structure
    - BIO_seek
    - OSSL_DECODER*::decode
    - OSSL_DECODER_INSTANCE_get_decoder_ctx
    - BIO_tell
    - OSSL_PARAM_get_utf8_string_ptr
    - ERR_raise
    - OSSL_DECODER_get0_name
    - ossl_core_bio_new_from_bio
    - OPENSSL_strcasecmp
    - BIO_new_mem_buf
    - BIO_free
    - ERR_set_mark
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - OSSL_DECODER_INSTANCE_get_input_type
    linkageType: ''
    returnType: int
    signature: int decoder_process(const OSSL_PARAM params[], void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 736
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 744
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 805
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:840,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:845,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 847
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OSSL_DECODER_get0_properties
    - OSSL_DECODER_get0_name
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 861
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 877
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 927
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 952
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 977
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_lib.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_passphrase
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - kstr
    - klen
    argTypes:
    - OSSL_DECODER_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: OSSL_DECODER_CTX_set_passphrase
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - ossl_pw_set_passphrase
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_passphrase(OSSL_DECODER_CTX *ctx,\n                                    const
      unsigned char *kstr,\n                                    size_t klen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_ui_method
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ui_method
    - ui_data
    argTypes:
    - OSSL_DECODER_CTX*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: OSSL_DECODER_CTX_set_passphrase_ui
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - ossl_pw_set_ui_method
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_passphrase_ui(OSSL_DECODER_CTX *ctx,\n                                       const
      UI_METHOD *ui_method,\n                                       void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_pem_password_cb
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - cb
    - cbarg
    argTypes:
    - OSSL_DECODER_CTX*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: OSSL_DECODER_CTX_set_pem_password_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 1
    functionsReached:
    - ossl_pw_set_pem_password_cb
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_pem_password_cb(OSSL_DECODER_CTX *ctx,\n
      \                                        pem_password_cb *cb, void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_ossl_passphrase_cb
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - cb
    - cbarg
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_PASSPHRASE_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: OSSL_DECODER_CTX_set_passphrase_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - ossl_pw_set_ossl_passphrase_cb
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_passphrase_cb(OSSL_DECODER_CTX *ctx,\n                                       OSSL_PASSPHRASE_CALLBACK
      *cb,\n                                       void *cbarg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_INSTANCE_get_decoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:71,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:72,1
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:73,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:89,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:93,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:95,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:104,1
    - Dst: sk_EVP_KEYMGMT_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:114,1
    - Dst: sk_EVP_KEYMGMT_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:116,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:117,1
    - Dst: evp_keymgmt_has_load
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:120,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:121,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:126,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:128,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:131,1
    - Dst: evp_keymgmt_load
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:147,1
    - Dst: OSSL_DECODER*::export_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:163,1
    - Dst: evp_keymgmt_util_make_pkey
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:172,1
    - Dst: evp_keymgmt_freedata
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:173,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:181,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - decoder_inst
    - params
    - construct_data
    argTypes:
    - OSSL_DECODER_INSTANCE*
    - OSSL_PARAM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 66
    functionDepth: 11
    functionLinenumber: 66
    functionLinenumberEnd: 188
    functionName: decoder_construct_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_util_make_pkey
    - OSSL_DECODER_INSTANCE_get_decoder
    - OSSL_PARAM_get_utf8_string
    - evp_keymgmt_has_load
    - EVP_KEYMGMT_up_ref
    - evp_keymgmt_load
    - OSSL_DECODER_INSTANCE_get_decoder_ctx
    - evp_keymgmt_freedata
    - sk_EVP_KEYMGMT_value
    - EVP_KEYMGMT_free
    - OSSL_DECODER_get0_provider
    - EVP_KEYMGMT_fetch
    - OPENSSL_free
    - OSSL_DECODER*::export_object
    - OSSL_PARAM_locate_const
    - sk_EVP_KEYMGMT_num
    - EVP_KEYMGMT_get0_provider
    - EVP_KEYMGMT_is_a
    linkageType: ''
    returnType: int
    signature: "int decoder_construct_pkey(OSSL_DECODER_INSTANCE *decoder_inst,\n
      \                                 const OSSL_PARAM *params,\n                                  void
      *construct_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_KEYMGMT_pop_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:195,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:196,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:197,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - construct_data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 200
    functionName: decoder_clean_pkey_construct_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_EVP_KEYMGMT_pop_free
    linkageType: ''
    returnType: void
    signature: void decoder_clean_pkey_construct_arg(void *construct_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:204,1
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: collect_name
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_CSTRING_push
    - STACK_OF
    linkageType: ''
    returnType: void
    signature: void collect_name(const char *name, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:211,1
    - Dst: EVP_KEYMGMT_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:213,1
    - Dst: sk_EVP_KEYMGMT_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:215,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - keymgmt
    - arg
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: collect_keymgmt
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - EVP_KEYMGMT_up_ref
    - sk_EVP_KEYMGMT_push
    - EVP_KEYMGMT_free
    linkageType: ''
    returnType: void
    signature: void collect_keymgmt(EVP_KEYMGMT *keymgmt, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:233,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:234,1
    - Dst: OSSL_DECODER*::does_selection
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:255,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:259,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:260,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:261,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:263,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:265,1
    - Dst: OSSL_DECODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:267,1
    - Dst: OSSL_DECODER*::newctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:271,1
    - Dst: ossl_decoder_instance_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:275,1
    - Dst: OSSL_DECODER*::freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:276,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:282,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:286,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:287,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:288,1
    - Dst: ossl_decoder_ctx_add_decoder_inst
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:290,1
    - Dst: ossl_decoder_instance_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:291,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - decoder
    - arg
    argTypes:
    - OSSL_DECODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 304
    functionName: collect_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER*::newctx
    - OSSL_TRACE_END
    - sk_OPENSSL_CSTRING_value
    - ossl_decoder_instance_new
    - ossl_decoder_instance_free
    - OSSL_DECODER_get0_name
    - OSSL_DECODER_get0_provider
    - OSSL_DECODER*::does_selection
    - sk_OPENSSL_CSTRING_num
    - OSSL_DECODER_get0_properties
    - OSSL_PROVIDER_get0_provider_ctx
    - OSSL_DECODER_is_a
    - BIO_printf
    - ossl_decoder_ctx_add_decoder_inst
    - OSSL_DECODER*::freectx
    linkageType: ''
    returnType: void
    signature: void collect_decoder(OSSL_DECODER *decoder, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:255,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:259,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OSSL_DECODER_get0_properties
    - OSSL_DECODER_get0_name
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:282,1
    - Dst: OSSL_DECODER_get0_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:286,1
    - Dst: OSSL_DECODER_get0_properties
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 288
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - OSSL_DECODER_get0_properties
    - OSSL_DECODER_get0_name
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:312,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:320,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:321,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:325,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:334,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:336,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:338,1
    - Dst: sk_EVP_KEYMGMT_new_null
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:339,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:340,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:341,1
    - Dst: EVP_KEYMGMT_do_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:350,1
    - Dst: sk_EVP_KEYMGMT_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:354,1
    - Dst: sk_EVP_KEYMGMT_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:356,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:366,1
    - Dst: EVP_KEYMGMT_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:367,1
    - Dst: EVP_KEYMGMT_names_do_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:368,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:369,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:376,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:377,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:381,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:383,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:384,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:385,1
    - Dst: OSSL_DECODER_do_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:396,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:398,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:405,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:408,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:411,1
    - Dst: OSSL_DECODER_CTX_set_construct
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:412,1
    - Dst: OSSL_DECODER_CTX_set_construct_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:413,1
    - Dst: OSSL_DECODER_CTX_set_cleanup
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:414,1
    - Dst: decoder_clean_pkey_construct_arg
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:423,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:424,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 5
    argNames:
    - ctx
    - pkey
    - keytype
    - libctx
    - propquery
    argTypes:
    - OSSL_DECODER_CTX*
    - EVP_PKEY**
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 306
    functionDepth: 11
    functionLinenumber: 306
    functionLinenumberEnd: 427
    functionName: ossl_decoder_ctx_setup_for_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - sk_OPENSSL_CSTRING_value
    - sk_OPENSSL_CSTRING_free
    - OSSL_DECODER_CTX_get_num_decoders
    - sk_EVP_KEYMGMT_new_null
    - sk_OPENSSL_CSTRING_num
    - OSSL_DECODER_CTX_set_construct_data
    - sk_EVP_KEYMGMT_num
    - BIO_printf
    - EVP_KEYMGMT_is_a
    - EVP_KEYMGMT_names_do_all
    - OSSL_DECODER_do_all_provided
    - OPENSSL_strdup
    - sk_EVP_KEYMGMT_value
    - ERR_raise
    - STACK_OF
    - strcmp
    - decoder_clean_pkey_construct_arg
    - EVP_KEYMGMT_do_all_provided
    - OSSL_DECODER_CTX_set_cleanup
    - OPENSSL_zalloc
    - sk_OPENSSL_CSTRING_new_null
    - OSSL_DECODER_CTX_set_construct
    linkageType: ''
    returnType: int
    signature: "int ossl_decoder_ctx_setup_for_pkey(OSSL_DECODER_CTX *ctx,\n                                    EVP_PKEY
      **pkey, const char *keytype,\n                                    OSSL_LIB_CTX
      *libctx,\n                                    const char *propquery)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 334
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:376,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:377,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:381,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:383,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 385
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - sk_OPENSSL_CSTRING_num
    - sk_OPENSSL_CSTRING_value
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_CTX_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:438,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:439,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:444,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:447,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:449,1
    - Dst: OSSL_DECODER_CTX_set_input_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:451,1
    - Dst: OSSL_DECODER_CTX_set_input_structure
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:452,1
    - Dst: OSSL_DECODER_CTX_set_selection
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:453,1
    - Dst: ossl_decoder_ctx_setup_for_pkey
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:454,1
    - Dst: OSSL_DECODER_CTX_add_extra
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:456,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:458,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:459,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:460,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - pkey
    - input_type
    - input_structure
    - keytype
    - selection
    - libctx
    - propquery
    argTypes:
    - EVP_PKEY**
    - char*
    - char*
    - char*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 429
    functionDepth: 12
    functionLinenumber: 429
    functionLinenumberEnd: 466
    functionName: OSSL_DECODER_CTX_new_for_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 3
    functionsReached:
    - OSSL_TRACE_END
    - OSSL_DECODER_CTX_set_input_type
    - OSSL_DECODER_CTX_new
    - OSSL_DECODER_CTX_add_extra
    - OSSL_DECODER_CTX_set_selection
    - OSSL_DECODER_CTX_get_num_decoders
    - ERR_raise
    - OSSL_DECODER_CTX_set_input_structure
    - ossl_decoder_ctx_setup_for_pkey
    - OSSL_DECODER_CTX_free
    - BIO_printf
    linkageType: ''
    returnType: OSSL_DECODER_CTX
    signature: "OSSL_DECODER_CTX *\nOSSL_DECODER_CTX_new_for_pkey(EVP_PKEY **pkey,\n
      \                             const char *input_type,\n                              const
      char *input_structure,\n                              const char *keytype, int
      selection,\n                              OSSL_LIB_CTX *libctx, const char *propquery)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:444,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:458,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_CTX_get_num_decoders
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(DECODER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_err.c:32,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_err.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: ossl_err_load_OSSL_DECODER_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_OSSL_DECODER_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:31,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:32,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: ossl_decoder_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ERR_raise
    - OSSL_DECODER_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_DECODER
    signature: OSSL_DECODER *ossl_decoder_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: OSSL_DECODER_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 2
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_up_ref(OSSL_DECODER *decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:61,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:62,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:63,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: OSSL_DECODER_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 3
    functionsReached:
    - ossl_property_free
    - CRYPTO_DOWN_REF
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void OSSL_DECODER_free(OSSL_DECODER *decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vstore
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: decoder_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void decoder_store_free(void *vstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: decoder_store_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *decoder_store_new(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: get_tmp_decoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *get_tmp_decoder_store(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - store
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: dealloc_tmp_decoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void dealloc_tmp_decoder_store(void *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 6
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: get_decoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_METHOD_STORE
    signature: OSSL_METHOD_STORE *get_decoder_store(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:132,1
    - Dst: ossl_method_lock_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 7
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: reserve_decoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - get_decoder_store
    - ossl_method_lock_store
    linkageType: ''
    returnType: int
    signature: int reserve_decoder_store(void *store, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:143,1
    - Dst: ossl_method_unlock_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: unreserve_decoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - get_decoder_store
    - ossl_method_unlock_store
    linkageType: ''
    returnType: int
    signature: int unreserve_decoder_store(void *store, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:163,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:165,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:166,1
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:170,1
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:177,1
    - Dst: ossl_method_store_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - store
    - prov
    - data
    argTypes:
    - void*
    - OSSL_PROVIDER**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: get_decoder_from_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - get_decoder_store
    - strchr
    - strlen
    - ossl_method_store_fetch
    - ossl_namemap_name2num_n
    linkageType: ''
    returnType: void
    signature: "void *get_decoder_from_store(void *store, const OSSL_PROVIDER **prov,\n
      \                                   void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:202,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:204,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:207,1
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:208,1
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:211,1
    - Dst: ossl_method_store_add
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 6
    argNames:
    - store
    - method
    - prov
    - names
    - propdef
    - data
    argTypes:
    - void*
    - void*
    - OSSL_PROVIDER*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 8
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: put_decoder_in_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - get_decoder_store
    - strchr
    - ossl_method_store_add
    - strlen
    - ossl_namemap_name2num_n
    linkageType: ''
    returnType: int
    signature: "int put_decoder_in_store(void *store, void *method,\n                                const
      OSSL_PROVIDER *prov,\n                                const char *names, const
      char *propdef,\n                                void *data)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:225,1
    - Dst: ossl_decoder_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:227,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:230,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:231,1
    - Dst: ossl_parse_property
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:236,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:237,1
    - Dst: OSSL_FUNC_decoder_newctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:245,1
    - Dst: OSSL_FUNC_decoder_freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:249,1
    - Dst: OSSL_FUNC_decoder_get_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:254,1
    - Dst: OSSL_FUNC_decoder_gettable_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:259,1
    - Dst: OSSL_FUNC_decoder_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:264,1
    - Dst: OSSL_FUNC_decoder_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:269,1
    - Dst: OSSL_FUNC_decoder_does_selection
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:274,1
    - Dst: OSSL_FUNC_decoder_decode
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:278,1
    - Dst: OSSL_FUNC_decoder_export_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:282,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:294,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:295,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:299,1
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:300,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 3
    argNames:
    - id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 306
    functionName: ossl_decoder_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_decoder_settable_ctx_params
    - OSSL_FUNC_decoder_freectx
    - ossl_provider_up_ref
    - OSSL_FUNC_decoder_get_params
    - OSSL_FUNC_decoder_set_ctx_params
    - OSSL_FUNC_decoder_decode
    - OSSL_FUNC_decoder_export_object
    - OSSL_DECODER_free
    - ossl_algorithm_get1_first_name
    - ERR_raise
    - OSSL_FUNC_decoder_newctx
    - OSSL_FUNC_decoder_gettable_params
    - OSSL_FUNC_decoder_does_selection
    - ossl_provider_libctx
    - ossl_decoder_new
    - ossl_parse_property
    linkageType: ''
    returnType: void
    signature: "void *ossl_decoder_from_algorithm(int id, const OSSL_ALGORITHM *algodef,\n
      \                                 OSSL_PROVIDER *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:324,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:325,1
    - Dst: ossl_namemap_add_names
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:327,1
    - Dst: ossl_decoder_from_algorithm
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - algodef
    - prov
    - data
    argTypes:
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 314
    functionDepth: 8
    functionLinenumber: 314
    functionLinenumberEnd: 342
    functionName: construct_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_add_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    - ossl_decoder_from_algorithm
    linkageType: ''
    returnType: void
    signature: "void *construct_decoder(const OSSL_ALGORITHM *algodef,\n                               OSSL_PROVIDER
      *prov, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: destruct_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_free
    linkageType: ''
    returnType: void
    signature: void destruct_decoder(void *method, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: up_ref_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_up_ref
    linkageType: ''
    returnType: int
    signature: int up_ref_decoder(void *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: free_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_free
    linkageType: ''
    returnType: void
    signature: void free_decoder(void *method)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:365,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:366,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:372,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:380,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:381,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:386,1
    - Dst: ossl_method_store_cache_get
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:396,1
    - Dst: ossl_method_construct
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:412,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:422,1
    - Dst: ossl_method_store_cache_set
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:424,1
    - Dst: ossl_namemap_num2name
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:439,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:440,1
    - Dst: ossl_lib_ctx_get_descriptor
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:442,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 4
    argNames:
    - methdata
    - id
    - name
    - properties
    argTypes:
    - struct decoder_data_st*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 361
    functionDepth: 8
    functionLinenumber: 361
    functionLinenumberEnd: 448
    functionName: inner_ossl_decoder_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - ossl_method_store_cache_get
    - ossl_lib_ctx_get_descriptor
    - ossl_namemap_num2name
    - get_decoder_store
    - ERR_raise_data
    - ERR_raise
    - ossl_namemap_name2num
    - ossl_method_store_cache_set
    - ossl_method_construct
    - ossl_assert
    linkageType: ''
    returnType: OSSL_DECODER
    signature: "OSSL_DECODER *\ninner_ossl_decoder_fetch(struct decoder_data_st *methdata,
      int id,\n                         const char *name, const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_ossl_decoder_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:458,1
    - Dst: dealloc_tmp_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - libctx
    - name
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 450
    functionDepth: 9
    functionLinenumber: 450
    functionLinenumberEnd: 461
    functionName: OSSL_DECODER_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - dealloc_tmp_decoder_store
    - inner_ossl_decoder_fetch
    linkageType: ''
    returnType: OSSL_DECODER
    signature: "OSSL_DECODER *OSSL_DECODER_fetch(OSSL_LIB_CTX *libctx, const char
      *name,\n                                 const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_ossl_decoder_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:471,1
    - Dst: dealloc_tmp_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - libctx
    - id
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: ossl_decoder_fetch_by_number
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - dealloc_tmp_decoder_store
    - inner_ossl_decoder_fetch
    linkageType: ''
    returnType: OSSL_DECODER
    signature: "OSSL_DECODER *ossl_decoder_fetch_by_number(OSSL_LIB_CTX *libctx, int
      id,\n                                           const char *properties)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:478,1
    - Dst: ossl_method_store_cache_flush_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 7
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: ossl_decoder_store_cache_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 1
    functionsReached:
    - get_decoder_store
    - ossl_method_store_cache_flush_all
    linkageType: ''
    returnType: int
    signature: int ossl_decoder_store_cache_flush(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:487,1
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:488,1
    - Dst: ossl_method_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 485
    functionDepth: 7
    functionLinenumber: 485
    functionLinenumberEnd: 493
    functionName: ossl_decoder_store_remove_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 1
    functionsReached:
    - get_decoder_store
    - ossl_provider_libctx
    - ossl_method_store_remove_all_provided
    linkageType: ''
    returnType: int
    signature: int ossl_decoder_store_remove_all_provided(const OSSL_PROVIDER *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:501,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 507
    functionName: OSSL_DECODER_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 5
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *OSSL_DECODER_get0_provider(const OSSL_DECODER *decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:511,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 517
    functionName: OSSL_DECODER_get0_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 10
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OSSL_DECODER_get0_properties(const OSSL_DECODER *decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:522,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 528
    functionName: ossl_decoder_parsed_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: 'OSSL_PROPERTY_LIST *

      ossl_decoder_parsed_properties(const OSSL_DECODER *decoder)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:532,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 538
    functionName: ossl_decoder_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_decoder_get_number(const OSSL_DECODER *decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: OSSL_DECODER_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_DECODER_get0_name(const OSSL_DECODER *decoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: OSSL_DECODER_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_DECODER_get0_description(const OSSL_DECODER *decoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:553,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:554,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - decoder
    - name
    argTypes:
    - OSSL_DECODER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 8
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: OSSL_DECODER_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 3
    functionsReached:
    - ossl_namemap_name2num
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_is_a(const OSSL_DECODER *decoder, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct do_one_data_st*::user_fn
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - method
    - arg
    argTypes:
    - ossl_unused
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: do_one
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - struct do_one_data_st*::user_fn
    linkageType: ''
    returnType: void
    signature: void do_one(ossl_unused int id, void *method, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inner_ossl_decoder_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:583,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:588,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:589,1
    - Dst: get_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:589,1
    - Dst: dealloc_tmp_decoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - libctx
    - user_arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 9
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: OSSL_DECODER_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 2
    functionsReached:
    - dealloc_tmp_decoder_store
    - get_decoder_store
    - ossl_method_store_do_all
    - inner_ossl_decoder_fetch
    linkageType: ''
    returnType: void
    signature: "void OSSL_DECODER_do_all_provided(OSSL_LIB_CTX *libctx,\n                                  void
      (*user_fn)(OSSL_DECODER *decoder,\n                                                  void
      *arg),\n                                  void *user_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:601,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:602,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - decoder
    - data
    argTypes:
    - OSSL_DECODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 593
    functionDepth: 8
    functionLinenumber: 593
    functionLinenumberEnd: 608
    functionName: OSSL_DECODER_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_doall_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_names_do_all(const OSSL_DECODER *decoder,\n                              void
      (*fn)(const char *name, void *data),\n                              void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:614,1
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:614,1
    - Dst: OSSL_DECODER*::gettable_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 619
    functionName: OSSL_DECODER_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER*::gettable_params
    - OSSL_DECODER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: 'OSSL_PARAM *

      OSSL_DECODER_gettable_params(OSSL_DECODER *decoder)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER*::get_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - decoder
    - params
    argTypes:
    - OSSL_DECODER*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: OSSL_DECODER_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER*::get_params
    linkageType: ''
    returnType: int
    signature: int OSSL_DECODER_get_params(OSSL_DECODER *decoder, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:632,1
    - Dst: OSSL_DECODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:632,1
    - Dst: OSSL_DECODER*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - OSSL_DECODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 637
    functionName: OSSL_DECODER_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER*::settable_ctx_params
    - OSSL_DECODER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: 'OSSL_PARAM *

      OSSL_DECODER_settable_ctx_params(OSSL_DECODER *decoder)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:653,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 657
    functionName: OSSL_DECODER_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_DECODER_CTX
    signature: OSSL_DECODER_CTX *OSSL_DECODER_CTX_new(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:666,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:667,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:674,1
    - Dst: sk_OSSL_DECODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:677,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:679,1
    - Dst: OSSL_DECODER_INSTANCE_get_decoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:681,1
    - Dst: OSSL_DECODER*::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:685,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - OSSL_DECODER_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 689
    functionName: OSSL_DECODER_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_DECODER_INSTANCE_value
    - OSSL_DECODER_INSTANCE_get_decoder_ctx
    - OSSL_DECODER_CTX_get_num_decoders
    - ERR_raise
    - OSSL_DECODER*::set_ctx_params
    - OSSL_DECODER_INSTANCE_get_decoder
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int OSSL_DECODER_CTX_set_params(OSSL_DECODER_CTX *ctx,\n                                const
      OSSL_PARAM params[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_CTX*::cleanup
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:695,1
    - Dst: sk_OSSL_DECODER_INSTANCE_pop_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:696,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:698,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_DECODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: OSSL_DECODER_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/decoder_meth.c
    functionUses: 4
    functionsReached:
    - OSSL_DECODER_CTX*::cleanup
    - sk_OSSL_DECODER_INSTANCE_pop_free
    - OPENSSL_free
    - ossl_pw_clear_passphrase_data
    linkageType: ''
    returnType: void
    signature: void OSSL_DECODER_CTX_free(OSSL_DECODER_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:32,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:35,1
    - Dst: OSSL_ENCODER_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - cipher_name
    - propquery
    argTypes:
    - OSSL_ENCODER_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: OSSL_ENCODER_CTX_set_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - OSSL_ENCODER_CTX_set_params
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_cipher(OSSL_ENCODER_CTX *ctx,\n                                const
      char *cipher_name,\n                                const char *propquery)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_passphrase
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - kstr
    - klen
    argTypes:
    - OSSL_ENCODER_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: OSSL_ENCODER_CTX_set_passphrase
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 1
    functionsReached:
    - ossl_pw_set_passphrase
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_passphrase(OSSL_ENCODER_CTX *ctx,\n                                    const
      unsigned char *kstr,\n                                    size_t klen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_ui_method
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ui_method
    - ui_data
    argTypes:
    - OSSL_ENCODER_CTX*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: OSSL_ENCODER_CTX_set_passphrase_ui
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - ossl_pw_set_ui_method
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_passphrase_ui(OSSL_ENCODER_CTX *ctx,\n                                       const
      UI_METHOD *ui_method,\n                                       void *ui_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_pem_password_cb
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - cb
    - cbarg
    argTypes:
    - OSSL_ENCODER_CTX*
    - pem_password_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: OSSL_ENCODER_CTX_set_pem_password_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 1
    functionsReached:
    - ossl_pw_set_pem_password_cb
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_pem_password_cb(OSSL_ENCODER_CTX *ctx,\n
      \                                        pem_password_cb *cb, void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pw_set_ossl_passphrase_cb
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - cb
    - cbarg
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_PASSPHRASE_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: OSSL_ENCODER_CTX_set_passphrase_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - ossl_pw_set_ossl_passphrase_cb
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_passphrase_cb(OSSL_ENCODER_CTX *ctx,\n                                       OSSL_PASSPHRASE_CALLBACK
      *cb,\n                                       void *cbarg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:98,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:100,1
    - Dst: OSSL_ENCODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:101,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:102,1
    - Dst: OSSL_ENCODER_is_a
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:113,1
    - Dst: OSSL_ENCODER*::does_selection
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:115,1
    - Dst: OSSL_ENCODER_CTX_add_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 2
    argNames:
    - encoder
    - arg
    argTypes:
    - OSSL_ENCODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 126
    functionName: collect_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_CSTRING_value
    - OSSL_ENCODER_CTX_add_encoder
    - OSSL_ENCODER*::does_selection
    - OSSL_ENCODER_is_a
    - sk_OPENSSL_CSTRING_num
    - OSSL_PROVIDER_get0_provider_ctx
    - OSSL_ENCODER_get0_provider
    linkageType: ''
    returnType: void
    signature: void collect_encoder(OSSL_ENCODER *encoder, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - arg
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: collect_name
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_CSTRING_push
    linkageType: ''
    returnType: void
    signature: void collect_name(const char *name, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:167,1
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:168,1
    - Dst: OSSL_ENCODER*::import_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: encoder_import_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER_INSTANCE_get_encoder_ctx
    - OSSL_ENCODER_INSTANCE_get_encoder
    - OSSL_ENCODER*::import_object
    linkageType: ''
    returnType: int
    signature: int encoder_import_cb(const OSSL_PARAM params[], void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:183,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:185,1
    - Dst: OSSL_ENCODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:186,1
    - Dst: evp_keymgmt_export
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - encoder_inst
    - arg
    argTypes:
    - OSSL_ENCODER_INSTANCE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: encoder_construct_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_export
    - OSSL_ENCODER_INSTANCE_get_encoder
    - EVP_KEYMGMT_get0_provider
    - OSSL_ENCODER_get0_provider
    linkageType: ''
    returnType: void
    signature: 'void *

      encoder_construct_pkey(OSSL_ENCODER_INSTANCE *encoder_inst, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:209,1
    - Dst: OSSL_ENCODER*::free_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: encoder_destruct_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER*::free_object
    - OSSL_ENCODER_INSTANCE_get_encoder
    linkageType: ''
    returnType: void
    signature: void encoder_destruct_pkey(void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:232,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:233,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:237,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:238,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:239,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:246,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:247,1
    - Dst: sk_OPENSSL_CSTRING_new_null
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:255,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:257,1
    - Dst: EVP_KEYMGMT_names_do_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:262,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:264,1
    - Dst: OSSL_ENCODER_do_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:280,1
    - Dst: OSSL_ENCODER_do_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:287,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:289,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:291,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:296,1
    - Dst: OSSL_ENCODER_CTX_set_construct
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:297,1
    - Dst: OSSL_ENCODER_CTX_set_construct_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:298,1
    - Dst: OSSL_ENCODER_CTX_set_cleanup
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:299,1
    - Dst: OSSL_ENCODER_CTX_set_construct_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:311,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:312,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 4
    argNames:
    - ctx
    - pkey
    - selection
    - propquery
    argTypes:
    - OSSL_ENCODER_CTX*
    - EVP_PKEY*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 222
    functionDepth: 10
    functionLinenumber: 222
    functionLinenumberEnd: 315
    functionName: ossl_encoder_ctx_setup_for_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER_CTX_set_construct
    - EVP_KEYMGMT_names_do_all
    - sk_OPENSSL_CSTRING_free
    - OSSL_ENCODER_CTX_set_construct_data
    - evp_pkey_is_provided
    - ERR_raise
    - OPENSSL_zalloc
    - OSSL_ENCODER_do_all_provided
    - sk_OPENSSL_CSTRING_new_null
    - OSSL_ENCODER_CTX_set_cleanup
    - OPENSSL_free
    - OSSL_ENCODER_CTX_get_num_encoders
    - ossl_provider_libctx
    - EVP_KEYMGMT_get0_provider
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_encoder_ctx_setup_for_pkey(OSSL_ENCODER_CTX *ctx,\n                                           const
      EVP_PKEY *pkey,\n                                           int selection,\n
      \                                          const char *propquery)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:327,1
    - Dst: evp_pkey_is_assigned
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:331,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:332,1
    - Dst: OSSL_ENCODER_CTX_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:337,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:338,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:342,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:343,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:345,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:349,1
    - Dst: EVP_PKEY_get0_type_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:351,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:352,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:354,1
    - Dst: OSSL_ENCODER_CTX_set_output_type
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:356,1
    - Dst: OSSL_ENCODER_CTX_set_output_structure
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:358,1
    - Dst: OSSL_ENCODER_CTX_set_selection
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:359,1
    - Dst: ossl_encoder_ctx_setup_for_pkey
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:360,1
    - Dst: OSSL_ENCODER_CTX_add_extra
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:361,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:365,1
    - Dst: OSSL_ENCODER_CTX_set_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:368,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:371,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:372,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:373,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - pkey
    - selection
    - output_type
    - output_struct
    - propquery
    argTypes:
    - EVP_PKEY*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 317
    functionDepth: 11
    functionLinenumber: 317
    functionLinenumberEnd: 379
    functionName: OSSL_ENCODER_CTX_new_for_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 3
    functionsReached:
    - OSSL_TRACE_END
    - OSSL_PARAM_construct_int
    - BIO_printf
    - ossl_provider_libctx
    - ossl_encoder_ctx_setup_for_pkey
    - OSSL_ENCODER_CTX_set_output_type
    - ERR_raise_data
    - OSSL_ENCODER_CTX_set_params
    - EVP_KEYMGMT_get0_provider
    - evp_pkey_is_assigned
    - evp_pkey_is_provided
    - OSSL_ENCODER_CTX_new
    - ERR_raise
    - OSSL_ENCODER_CTX_free
    - EVP_PKEY_get0_type_name
    - OSSL_ENCODER_CTX_get_num_encoders
    - OSSL_ENCODER_CTX_set_selection
    - OSSL_ENCODER_CTX_add_extra
    - OSSL_ENCODER_CTX_set_output_structure
    linkageType: ''
    returnType: OSSL_ENCODER_CTX
    signature: "OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new_for_pkey(const EVP_PKEY *pkey,\n
      \                                               int selection,\n                                                const
      char *output_type,\n                                                const char
      *output_struct,\n                                                const char
      *propquery)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:349,1
    - Dst: EVP_PKEY_get0_type_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:351,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_type_name
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:371,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_pkey.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER_CTX_get_num_encoders
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(ENCODER)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:31,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:32,1
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: ossl_encoder_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OSSL_ENCODER_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_ENCODER
    signature: OSSL_ENCODER *ossl_encoder_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: OSSL_ENCODER_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 1
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_up_ref(OSSL_ENCODER *encoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:61,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:62,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:63,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:64,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: OSSL_ENCODER_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 2
    functionsReached:
    - ossl_property_free
    - CRYPTO_DOWN_REF
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void OSSL_ENCODER_free(OSSL_ENCODER *encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vstore
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: encoder_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void encoder_store_free(void *vstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: encoder_store_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *encoder_store_new(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: get_tmp_encoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *get_tmp_encoder_store(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - store
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: dealloc_tmp_encoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void dealloc_tmp_encoder_store(void *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 6
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: get_encoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_METHOD_STORE
    signature: OSSL_METHOD_STORE *get_encoder_store(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:132,1
    - Dst: ossl_method_lock_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 7
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: reserve_encoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_lock_store
    - get_encoder_store
    linkageType: ''
    returnType: int
    signature: int reserve_encoder_store(void *store, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:143,1
    - Dst: ossl_method_unlock_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: unreserve_encoder_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_unlock_store
    - get_encoder_store
    linkageType: ''
    returnType: int
    signature: int unreserve_encoder_store(void *store, void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:163,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:165,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:166,1
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:170,1
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:177,1
    - Dst: ossl_method_store_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - store
    - prov
    - data
    argTypes:
    - void*
    - OSSL_PROVIDER**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: get_encoder_from_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - strchr
    - get_encoder_store
    - strlen
    - ossl_method_store_fetch
    - ossl_namemap_name2num_n
    linkageType: ''
    returnType: void
    signature: "void *get_encoder_from_store(void *store, const OSSL_PROVIDER **prov,\n
      \                                   void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:202,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:204,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:207,1
    - Dst: ossl_namemap_name2num_n
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:208,1
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:211,1
    - Dst: ossl_method_store_add
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 6
    argNames:
    - store
    - method
    - prov
    - names
    - propdef
    - data
    argTypes:
    - void*
    - void*
    - OSSL_PROVIDER*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 185
    functionDepth: 8
    functionLinenumber: 185
    functionLinenumberEnd: 217
    functionName: put_encoder_in_store
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - strchr
    - get_encoder_store
    - ossl_method_store_add
    - strlen
    - ossl_namemap_name2num_n
    linkageType: ''
    returnType: int
    signature: "int put_encoder_in_store(void *store, void *method,\n                                const
      OSSL_PROVIDER *prov,\n                                const char *names, const
      char *propdef,\n                                void *data)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:225,1
    - Dst: ossl_encoder_new
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:227,1
    - Dst: ossl_algorithm_get1_first_name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:230,1
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:231,1
    - Dst: ossl_parse_property
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:236,1
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:237,1
    - Dst: OSSL_FUNC_encoder_newctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:246,1
    - Dst: OSSL_FUNC_encoder_freectx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:251,1
    - Dst: OSSL_FUNC_encoder_get_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:256,1
    - Dst: OSSL_FUNC_encoder_gettable_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:261,1
    - Dst: OSSL_FUNC_encoder_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:266,1
    - Dst: OSSL_FUNC_encoder_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:271,1
    - Dst: OSSL_FUNC_encoder_does_selection
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:276,1
    - Dst: OSSL_FUNC_encoder_encode
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:280,1
    - Dst: OSSL_FUNC_encoder_import_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:285,1
    - Dst: OSSL_FUNC_encoder_free_object
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:290,1
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:304,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:305,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:309,1
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:310,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 68
    argCount: 3
    argNames:
    - id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 316
    functionName: encoder_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_encoder_gettable_params
    - OSSL_FUNC_encoder_does_selection
    - OSSL_FUNC_encoder_set_ctx_params
    - ossl_provider_up_ref
    - OSSL_FUNC_encoder_import_object
    - OSSL_FUNC_encoder_newctx
    - OSSL_FUNC_encoder_freectx
    - OSSL_FUNC_encoder_settable_ctx_params
    - ossl_algorithm_get1_first_name
    - ossl_encoder_new
    - OSSL_FUNC_encoder_get_params
    - OSSL_FUNC_encoder_free_object
    - ERR_raise
    - OSSL_FUNC_encoder_encode
    - ossl_provider_libctx
    - OSSL_ENCODER_free
    - ossl_parse_property
    linkageType: ''
    returnType: void
    signature: "void *encoder_from_algorithm(int id, const OSSL_ALGORITHM *algodef,\n
      \                                   OSSL_PROVIDER *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:334,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:335,1
    - Dst: ossl_namemap_add_names
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:337,1
    - Dst: encoder_from_algorithm
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - algodef
    - prov
    - data
    argTypes:
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 324
    functionDepth: 8
    functionLinenumber: 324
    functionLinenumberEnd: 352
    functionName: construct_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - encoder_from_algorithm
    - ossl_namemap_add_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: void
    signature: "void *construct_encoder(const OSSL_ALGORITHM *algodef,\n                               OSSL_PROVIDER
      *prov, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: destruct_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER_free
    linkageType: ''
    returnType: void
    signature: void destruct_encoder(void *method, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_up_ref
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: up_ref_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER_up_ref
    linkageType: ''
    returnType: int
    signature: int up_ref_encoder(void *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: free_encoder
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER_free
    linkageType: ''
    returnType: void
    signature: void free_encoder(void *method)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:375,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:376,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:382,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:390,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:391,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:396,1
    - Dst: ossl_method_store_cache_get
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:406,1
    - Dst: ossl_method_construct
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:422,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:432,1
    - Dst: ossl_method_store_cache_set
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:433,1
    - Dst: ossl_namemap_num2name
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:448,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:449,1
    - Dst: ossl_lib_ctx_get_descriptor
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:451,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - methdata
    - id
    - name
    - properties
    argTypes:
    - struct encoder_data_st*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 371
    functionDepth: 8
    functionLinenumber: 371
    functionLinenumberEnd: 457
    functionName: inner_ossl_encoder_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - ossl_method_store_cache_get
    - ossl_lib_ctx_get_descriptor
    - ossl_namemap_num2name
    - get_encoder_store
    - ERR_raise_data
    - ERR_raise
    - ossl_namemap_name2num
    - ossl_method_store_cache_set
    - ossl_method_construct
    - ossl_assert
    linkageType: ''
    returnType: OSSL_ENCODER
    signature: "OSSL_ENCODER *\ninner_ossl_encoder_fetch(struct encoder_data_st *methdata,
      int id,\n                         const char *name, const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_ossl_encoder_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:467,1
    - Dst: dealloc_tmp_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - libctx
    - name
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 459
    functionDepth: 9
    functionLinenumber: 459
    functionLinenumberEnd: 470
    functionName: OSSL_ENCODER_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - dealloc_tmp_encoder_store
    - inner_ossl_encoder_fetch
    linkageType: ''
    returnType: OSSL_ENCODER
    signature: "OSSL_ENCODER *OSSL_ENCODER_fetch(OSSL_LIB_CTX *libctx, const char
      *name,\n                                 const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_ossl_encoder_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:480,1
    - Dst: dealloc_tmp_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - libctx
    - id
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 9
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: ossl_encoder_fetch_by_number
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - dealloc_tmp_encoder_store
    - inner_ossl_encoder_fetch
    linkageType: ''
    returnType: OSSL_ENCODER
    signature: "OSSL_ENCODER *ossl_encoder_fetch_by_number(OSSL_LIB_CTX *libctx, int
      id,\n                                           const char *properties)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:487,1
    - Dst: ossl_method_store_cache_flush_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 7
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: ossl_encoder_store_cache_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 1
    functionsReached:
    - ossl_method_store_cache_flush_all
    - get_encoder_store
    linkageType: ''
    returnType: int
    signature: int ossl_encoder_store_cache_flush(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:496,1
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:497,1
    - Dst: ossl_method_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 494
    functionDepth: 7
    functionLinenumber: 494
    functionLinenumberEnd: 502
    functionName: ossl_encoder_store_remove_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 1
    functionsReached:
    - ossl_method_store_remove_all_provided
    - ossl_provider_libctx
    - get_encoder_store
    linkageType: ''
    returnType: int
    signature: int ossl_encoder_store_remove_all_provided(const OSSL_PROVIDER *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:510,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 516
    functionName: OSSL_ENCODER_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 4
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *OSSL_ENCODER_get0_provider(const OSSL_ENCODER *encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:520,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: OSSL_ENCODER_get0_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 3
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OSSL_ENCODER_get0_properties(const OSSL_ENCODER *encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:531,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: ossl_encoder_parsed_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: 'OSSL_PROPERTY_LIST *

      ossl_encoder_parsed_properties(const OSSL_ENCODER *encoder)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:541,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 547
    functionName: ossl_encoder_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_encoder_get_number(const OSSL_ENCODER *encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: OSSL_ENCODER_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_ENCODER_get0_name(const OSSL_ENCODER *encoder)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: OSSL_ENCODER_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_ENCODER_get0_description(const OSSL_ENCODER *encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:562,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:563,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - encoder
    - name
    argTypes:
    - OSSL_ENCODER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 559
    functionDepth: 8
    functionLinenumber: 559
    functionLinenumberEnd: 568
    functionName: OSSL_ENCODER_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 2
    functionsReached:
    - ossl_namemap_name2num
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_is_a(const OSSL_ENCODER *encoder, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct do_one_data_st*::user_fn
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - method
    - arg
    argTypes:
    - ossl_unused
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: do_one
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - struct do_one_data_st*::user_fn
    linkageType: ''
    returnType: void
    signature: void do_one(ossl_unused int id, void *method, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inner_ossl_encoder_fetch
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:592,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:597,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:598,1
    - Dst: get_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:598,1
    - Dst: dealloc_tmp_encoder_store
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - libctx
    - user_arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 582
    functionDepth: 9
    functionLinenumber: 582
    functionLinenumberEnd: 600
    functionName: OSSL_ENCODER_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 1
    functionsReached:
    - dealloc_tmp_encoder_store
    - ossl_method_store_do_all
    - inner_ossl_encoder_fetch
    - get_encoder_store
    linkageType: ''
    returnType: void
    signature: "void OSSL_ENCODER_do_all_provided(OSSL_LIB_CTX *libctx,\n                                  void
      (*user_fn)(OSSL_ENCODER *encoder,\n                                                  void
      *arg),\n                                  void *user_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:610,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:611,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - encoder
    - data
    argTypes:
    - OSSL_ENCODER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 602
    functionDepth: 8
    functionLinenumber: 602
    functionLinenumberEnd: 617
    functionName: OSSL_ENCODER_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_doall_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_names_do_all(const OSSL_ENCODER *encoder,\n                              void
      (*fn)(const char *name, void *data),\n                              void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:623,1
    - Dst: OSSL_ENCODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:623,1
    - Dst: OSSL_ENCODER*::gettable_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: OSSL_ENCODER_gettable_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER*::gettable_params
    - OSSL_ENCODER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: 'OSSL_PARAM *

      OSSL_ENCODER_gettable_params(OSSL_ENCODER *encoder)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER*::get_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - encoder
    - params
    argTypes:
    - OSSL_ENCODER*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: OSSL_ENCODER_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER*::get_params
    linkageType: ''
    returnType: int
    signature: int OSSL_ENCODER_get_params(OSSL_ENCODER *encoder, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:640,1
    - Dst: OSSL_ENCODER_get0_provider
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:640,1
    - Dst: OSSL_ENCODER*::settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - OSSL_ENCODER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: OSSL_ENCODER_settable_ctx_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_ENCODER*::settable_ctx_params
    - OSSL_ENCODER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *OSSL_ENCODER_settable_ctx_params(OSSL_ENCODER *encoder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:655,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 659
    functionName: OSSL_ENCODER_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_ENCODER_CTX
    signature: OSSL_ENCODER_CTX *OSSL_ENCODER_CTX_new(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:668,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:669,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:676,1
    - Dst: sk_OSSL_ENCODER_INSTANCE_value
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:679,1
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:680,1
    - Dst: OSSL_ENCODER_INSTANCE_get_encoder_ctx
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:681,1
    - Dst: OSSL_ENCODER*::set_ctx_params
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:685,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - OSSL_ENCODER_CTX*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 689
    functionName: OSSL_ENCODER_CTX_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 2
    functionsReached:
    - sk_OSSL_ENCODER_INSTANCE_value
    - OSSL_ENCODER*::set_ctx_params
    - ERR_raise
    - OSSL_ENCODER_INSTANCE_get_encoder_ctx
    - OSSL_ENCODER_INSTANCE_get_encoder
    - OSSL_ENCODER_CTX_get_num_encoders
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int OSSL_ENCODER_CTX_set_params(OSSL_ENCODER_CTX *ctx,\n                                const
      OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_ENCODER_INSTANCE_pop_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:694,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:696,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:697,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_ENCODER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: OSSL_ENCODER_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_meth.c
    functionUses: 4
    functionsReached:
    - sk_OSSL_ENCODER_INSTANCE_pop_free
    - OPENSSL_free
    - ossl_pw_clear_passphrase_data
    linkageType: ''
    returnType: void
    signature: void OSSL_ENCODER_CTX_free(OSSL_ENCODER_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_err.c:32,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/encode_decode/encoder_err.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: ossl_err_load_OSSL_ENCODER_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/encode_decode/encoder_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_OSSL_ENCODER_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/ess/ess_err.c:44,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/ess/ess_err.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: ossl_err_load_ESS_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_ESS_strings(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ESS_SIGNING_CERT_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:32,1
    - Dst: sk_ESS_CERT_ID_new_null
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:35,1
    - Dst: ESS_CERT_ID_new_init
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:38,1
    - Dst: sk_ESS_CERT_ID_push
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:39,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:41,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:42,1
    - Dst: ESS_CERT_ID_new_init
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:44,1
    - Dst: sk_ESS_CERT_ID_push
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:45,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:51,1
    - Dst: ESS_CERT_ID_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:53,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - signcert
    - certs
    - set_issuer_serial
    argTypes:
    - X509*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 55
    functionName: OSSL_ESS_signing_cert_new_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - sk_ESS_CERT_ID_push
    - ESS_SIGNING_CERT_free
    - ESS_SIGNING_CERT_new
    - ESS_CERT_ID_new_init
    - ESS_CERT_ID_free
    - ERR_raise
    - sk_X509_num
    - sk_ESS_CERT_ID_new_null
    linkageType: ''
    returnType: ESS_SIGNING_CERT
    signature: "ESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert,\n
      \                                                const STACK_OF(X509) *certs,\n
      \                                                int set_issuer_serial)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ESS_CERT_ID_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:64,1
    - Dst: X509_digest
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:66,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:66,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:68,1
    - Dst: ESS_ISSUER_SERIAL_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:76,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:78,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:81,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:81,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:83,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:86,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:88,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:88,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:93,1
    - Dst: ESS_CERT_ID_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:95,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 2
    argNames:
    - cert
    - set_issuer_serial
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 97
    functionName: ESS_CERT_ID_new_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 1
    functionsReached:
    - X509_digest
    - ASN1_OCTET_STRING_set
    - GENERAL_NAME_free
    - ESS_CERT_ID_free
    - ERR_raise
    - ESS_ISSUER_SERIAL_new
    - sk_GENERAL_NAME_push
    - X509_NAME_dup
    - X509_get_issuer_name
    - ESS_CERT_ID_new
    - EVP_sha1
    - X509_get0_serialNumber
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - GENERAL_NAME_new
    linkageType: ''
    returnType: ESS_CERT_ID
    signature: "ESS_CERT_ID *ESS_CERT_ID_new_init(const X509 *cert,\n                                         int
      set_issuer_serial)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ESS_SIGNING_CERT_V2_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:109,1
    - Dst: ESS_CERT_ID_V2_new_init
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:111,1
    - Dst: sk_ESS_CERT_ID_V2_push
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:114,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:118,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:119,1
    - Dst: ESS_CERT_ID_V2_new_init
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:121,1
    - Dst: sk_ESS_CERT_ID_V2_push
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:123,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:130,1
    - Dst: ESS_CERT_ID_V2_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - hash_alg
    - signcert
    - certs
    - set_issuer_serial
    argTypes:
    - EVP_MD*
    - X509*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 134
    functionName: OSSL_ESS_signing_cert_v2_new_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 1
    functionsReached:
    - ESS_SIGNING_CERT_V2_new
    - ESS_SIGNING_CERT_V2_free
    - sk_X509_value
    - ESS_CERT_ID_V2_free
    - ESS_CERT_ID_V2_new_init
    - ERR_raise
    - sk_X509_num
    - sk_ESS_CERT_ID_V2_push
    linkageType: ''
    returnType: ESS_SIGNING_CERT_V2
    signature: "ESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD
      *hash_alg,\n                                                       const X509
      *signcert,\n                                                       const\n                                                       STACK_OF(X509)
      *certs,\n                                                       int set_issuer_serial)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:146,1
    - Dst: ESS_CERT_ID_V2_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:148,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:151,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:152,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:155,1
    - Dst: X509_digest
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:164,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:167,1
    - Dst: ESS_ISSUER_SERIAL_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:173,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:175,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:178,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:178,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:180,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:183,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:184,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:184,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:190,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:191,1
    - Dst: ESS_CERT_ID_V2_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:192,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:193,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - hash_alg
    - cert
    - set_issuer_serial
    argTypes:
    - EVP_MD*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 136
    functionDepth: 10
    functionLinenumber: 136
    functionLinenumberEnd: 195
    functionName: ESS_CERT_ID_V2_new_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 1
    functionsReached:
    - X509_ALGOR_set_md
    - GENERAL_NAME_free
    - ESS_CERT_ID_V2_new
    - ASN1_INTEGER_free
    - X509_ALGOR_new
    - ESS_CERT_ID_V2_free
    - X509_digest
    - X509_ALGOR_free
    - ESS_ISSUER_SERIAL_new
    - X509_NAME_dup
    - X509_get_issuer_name
    - memset
    - ERR_raise
    - sk_GENERAL_NAME_push
    - GENERAL_NAME_new
    - EVP_MD_is_a
    - ASN1_OCTET_STRING_set
    - X509_get0_serialNumber
    - ASN1_INTEGER_dup
    linkageType: ''
    returnType: ESS_CERT_ID_V2
    signature: "ESS_CERT_ID_V2 *ESS_CERT_ID_V2_new_init(const EVP_MD *hash_alg,\n
      \                                              const X509 *cert,\n                                               int
      set_issuer_serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:201,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:204,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:206,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:206,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:209,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - is
    - cert
    argTypes:
    - ESS_ISSUER_SERIAL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: ess_issuer_serial_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - X509_get_issuer_name
    - sk_GENERAL_NAME_num
    - X509_get0_serialNumber
    - X509_NAME_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int ess_issuer_serial_cmp(const ESS_ISSUER_SERIAL *is, const X509 *cert)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:230,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:235,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:237,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:239,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:241,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:242,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:245,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:249,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:252,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:254,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:255,1
    - Dst: X509_digest
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:260,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:264,1
    - Dst: ess_issuer_serial_cmp
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:268,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:273,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:280,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:282,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 4
    argNames:
    - cid
    - cid_v2
    - index
    - certs
    argTypes:
    - ESS_CERT_ID*
    - ESS_CERT_ID_V2*
    - int
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 217
    functionDepth: 11
    functionLinenumber: 217
    functionLinenumberEnd: 284
    functionName: find
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 365
    functionsReached:
    - sk_X509_value
    - OBJ_obj2txt
    - EVP_get_digestbyname
    - X509_digest
    - ess_issuer_serial_cmp
    - ERR_set_mark
    - ERR_raise
    - ERR_clear_last_mark
    - sk_X509_num
    - ERR_pop_to_mark
    - memcmp
    - strcpy
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int find(const ESS_CERT_ID *cid, const ESS_CERT_ID_V2 *cid_v2,\n                int
      index, const STACK_OF(X509) *certs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_ESS_CERT_ID_num
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:291,1
    - Dst: sk_ESS_CERT_ID_V2_num
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:292,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:296,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:300,1
    - Dst: find
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:305,1
    - Dst: sk_ESS_CERT_ID_value
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:305,1
    - Dst: find
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:310,1
    - Dst: sk_ESS_CERT_ID_V2_value
      Src: /src/openssl-3.0.15/crypto/ess/ess_lib.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - ss
    - ssv2
    - chain
    - require_signing_cert
    argTypes:
    - ESS_SIGNING_CERT*
    - ESS_SIGNING_CERT_V2*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 286
    functionDepth: 12
    functionLinenumber: 286
    functionLinenumberEnd: 315
    functionName: OSSL_ESS_check_signing_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/ess/ess_lib.c
    functionUses: 1
    functionsReached:
    - sk_ESS_CERT_ID_num
    - find
    - sk_ESS_CERT_ID_V2_value
    - ERR_raise
    - sk_ESS_CERT_ID_value
    - sk_ESS_CERT_ID_V2_num
    linkageType: ''
    returnType: int
    signature: "int OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss,\n                                 const
      ESS_SIGNING_CERT_V2 *ssv2,\n                                 const STACK_OF(X509)
      *chain,\n                                 int require_signing_cert)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:53,1
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:61,1
    - Dst: EVP_DecodeInit
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:82,1
    - Dst: evp_encode_ctx_set_flags
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:83,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:87,1
    - Dst: EVP_DecodeUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:91,1
    - Dst: EVP_DecodeFinal
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:96,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:119,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:124,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - a
    - alen
    - src
    argTypes:
    - unsigned char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 127
    functionName: t_fromb64
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_ENCODE_CTX_free
    - EVP_DecodeInit
    - memmove
    - EVP_DecodeFinal
    - EVP_DecodeUpdate
    - strlen
    - EVP_ENCODE_CTX_new
    - evp_encode_ctx_set_flags
    linkageType: ''
    returnType: int
    signature: int t_fromb64(unsigned char *a, size_t alen, const char *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_ENCODE_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:135,1
    - Dst: EVP_EncodeInit
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:143,1
    - Dst: evp_encode_ctx_set_flags
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:144,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:154,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:156,1
    - Dst: EVP_EncodeUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:160,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:162,1
    - Dst: EVP_EncodeFinal
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:166,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:171,1
    - Dst: EVP_ENCODE_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 177
    functionName: t_tob64
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_ENCODE_CTX_free
    - evp_encode_ctx_set_flags
    - memmove
    - EVP_EncodeInit
    - EVP_EncodeFinal
    - EVP_ENCODE_CTX_new
    - EVP_EncodeUpdate
    linkageType: ''
    returnType: int
    signature: int t_tob64(char *dst, const unsigned char *src, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:183,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - user_pwd
    argTypes:
    - SRP_user_pwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: SRP_user_pwd_free
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_free
    - OPENSSL_free
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void SRP_user_pwd_free(SRP_user_pwd *user_pwd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: SRP_user_pwd_new
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *SRP_user_pwd_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vinfo
    - g
    - N
    argTypes:
    - SRP_user_pwd*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: SRP_user_pwd_set_gN
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SRP_user_pwd_set_gN(SRP_user_pwd *vinfo, const BIGNUM *g,\n                         const
      BIGNUM *N)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:217,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:218,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:219,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - vinfo
    - id
    - info
    argTypes:
    - SRP_user_pwd*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: SRP_user_pwd_set1_ids
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int SRP_user_pwd_set1_ids(SRP_user_pwd *vinfo, const char *id,\n                          const
      char *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: t_fromb64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:233,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:236,1
    - Dst: t_fromb64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:238,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:241,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - vinfo
    - s
    - v
    argTypes:
    - SRP_user_pwd*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 249
    functionName: SRP_user_pwd_set_sv
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_free
    - t_fromb64
    linkageType: ''
    returnType: int
    signature: "int SRP_user_pwd_set_sv(SRP_user_pwd *vinfo, const char *s,\n                               const
      char *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:253,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vinfo
    - s
    - v
    argTypes:
    - SRP_user_pwd*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: SRP_user_pwd_set0_sv
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int SRP_user_pwd_set0_sv(SRP_user_pwd *vinfo, BIGNUM *s, BIGNUM *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SRP_user_pwd_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:266,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:269,1
    - Dst: SRP_user_pwd_set1_ids
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:270,1
    - Dst: SRP_user_pwd_set0_sv
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:271,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:271,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:271,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - src
    argTypes:
    - SRP_user_pwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: srp_user_pwd_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - SRP_user_pwd_set0_sv
    - SRP_user_pwd_new
    - SRP_user_pwd_free
    - SRP_user_pwd_set_gN
    - SRP_user_pwd_set1_ids
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *srp_user_pwd_dup(SRP_user_pwd *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:280,1
    - Dst: sk_SRP_user_pwd_new_null
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:284,1
    - Dst: sk_SRP_gN_cache_new_null
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:285,1
    - Dst: sk_SRP_user_pwd_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:286,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:287,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:293,1
    - Dst: sk_SRP_user_pwd_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:294,1
    - Dst: sk_SRP_gN_cache_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:295,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - seed_key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 300
    functionName: SRP_VBASE_new
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - sk_SRP_user_pwd_free
    - sk_SRP_gN_cache_new_null
    - OPENSSL_free
    - sk_SRP_gN_cache_free
    - OPENSSL_strdup
    - sk_SRP_user_pwd_new_null
    linkageType: ''
    returnType: SRP_VBASE
    signature: SRP_VBASE *SRP_VBASE_new(char *seed_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_pop_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:306,1
    - Dst: sk_SRP_gN_cache_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:307,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vb
    argTypes:
    - SRP_VBASE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: SRP_VBASE_free
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_SRP_user_pwd_pop_free
    - sk_SRP_gN_cache_free
    linkageType: ''
    returnType: void
    signature: void SRP_VBASE_free(SRP_VBASE *vb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:316,1
    - Dst: t_fromb64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:321,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:325,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:328,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:331,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 335
    functionName: SRP_gN_new_init
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - t_fromb64
    - OPENSSL_malloc
    - BN_bin2bn
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: SRP_gN_cache
    signature: SRP_gN_cache *SRP_gN_new_init(const char *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:341,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:342,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gN_cache
    argTypes:
    - SRP_gN_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: SRP_gN_free
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - BN_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SRP_gN_free(SRP_gN_cache *gN_cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_gN_num
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:352,1
    - Dst: sk_SRP_gN_value
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:353,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:354,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - id
    - gN_tab
    argTypes:
    - char*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 360
    functionName: SRP_get_gN_by_id
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_value
    - SRP_get_default_gN
    - sk_SRP_gN_num
    - strcmp
    linkageType: ''
    returnType: SRP_gN
    signature: SRP_gN *SRP_get_gN_by_id(const char *id, STACK_OF(SRP_gN) *gN_tab)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_gN_cache_num
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:369,1
    - Dst: sk_SRP_gN_cache_value
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:370,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:371,1
    - Dst: SRP_gN_new_init
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:375,1
    - Dst: sk_SRP_gN_cache_insert
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:377,1
    - Dst: SRP_gN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - gN_cache
    - ch
    argTypes:
    - STACK_OF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 383
    functionName: SRP_gN_place_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_gN_cache_value
    - SRP_gN_free
    - sk_SRP_gN_cache_num
    - strcmp
    - SRP_gN_new_init
    - sk_SRP_gN_cache_insert
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_gN_place_bn(STACK_OF(SRP_gN_cache) *gN_cache, char *ch)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:398,1
    - Dst: sk_SRP_gN_new_null
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:398,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:407,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:407,1
    - Dst: BIO_read_filename
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:411,1
    - Dst: TXT_DB_read
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:416,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:422,1
    - Dst: sk_OPENSSL_PSTRING_num
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:424,1
    - Dst: sk_OPENSSL_PSTRING_value
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:425,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:431,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:434,1
    - Dst: SRP_gN_place_bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:435,1
    - Dst: SRP_gN_place_bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:437,1
    - Dst: sk_SRP_gN_insert
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:439,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:451,1
    - Dst: SRP_user_pwd_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:453,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:456,1
    - Dst: SRP_user_pwd_set1_ids
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:457,1
    - Dst: SRP_user_pwd_set_sv
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:462,1
    - Dst: sk_SRP_user_pwd_insert
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:466,1
    - Dst: SRP_get_gN_by_id
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:476,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:493,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:494,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:497,1
    - Dst: TXT_DB_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:499,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:500,1
    - Dst: sk_SRP_gN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:502,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 2
    argNames:
    - vb
    - verifier_file
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 506
    functionName: SRP_VBASE_init
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_PSTRING_value
    - sk_SRP_gN_insert
    - SRP_user_pwd_new
    - BIO_read_filename
    - sk_SRP_gN_free
    - SRP_get_gN_by_id
    - BIO_new
    - SRP_user_pwd_set_sv
    - BIO_free_all
    - OPENSSL_strdup
    - TXT_DB_read
    - SRP_user_pwd_set1_ids
    - sk_OPENSSL_PSTRING_num
    - BIO_s_file
    - OPENSSL_free
    - STACK_OF
    - TXT_DB_free
    - SRP_user_pwd_set_gN
    - SRP_get_default_gN
    - SRP_gN_place_bn
    - OPENSSL_malloc
    - sk_SRP_gN_new_null
    - sk_SRP_user_pwd_insert
    - SRP_user_pwd_free
    linkageType: ''
    returnType: int
    signature: int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_num
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:516,1
    - Dst: sk_SRP_user_pwd_value
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:517,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 523
    functionName: find_user
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_user_pwd_value
    - strcmp
    - sk_SRP_user_pwd_num
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *find_user(SRP_VBASE *vb, char *username)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SRP_user_pwd_push
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vb
    - user_pwd
    argTypes:
    - SRP_VBASE*
    - SRP_user_pwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: SRP_VBASE_add0_user
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_SRP_user_pwd_push
    linkageType: ''
    returnType: int
    signature: int SRP_VBASE_add0_user(SRP_VBASE *vb, SRP_user_pwd *user_pwd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: SRP_VBASE_get_by_user
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - find_user
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:560,1
    - Dst: srp_user_pwd_dup
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:561,1
    - Dst: SRP_user_pwd_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:569,1
    - Dst: SRP_user_pwd_set_gN
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:572,1
    - Dst: SRP_user_pwd_set1_ids
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:574,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:577,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:579,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:582,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:584,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:585,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:585,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:586,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:586,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:587,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:589,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:591,1
    - Dst: SRP_user_pwd_set0_sv
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:593,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:594,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:595,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:599,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:600,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:601,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 2
    argNames:
    - vb
    - username
    argTypes:
    - SRP_VBASE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 549
    functionDepth: 11
    functionLinenumber: 549
    functionLinenumberEnd: 603
    functionName: SRP_VBASE_get1_by_user
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - find_user
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - srp_user_pwd_dup
    - EVP_DigestInit_ex
    - SRP_user_pwd_set0_sv
    - BN_bin2bn
    - EVP_MD_CTX_new
    - EVP_MD_free
    - RAND_priv_bytes
    - SRP_user_pwd_new
    - strlen
    - EVP_DigestFinal_ex
    - SRP_user_pwd_free
    - SRP_user_pwd_set_gN
    - SRP_user_pwd_set1_ids
    - EVP_MD_fetch
    linkageType: ''
    returnType: SRP_user_pwd
    signature: SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: t_fromb64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:626,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:628,1
    - Dst: t_fromb64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:632,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:634,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:640,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:649,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:652,1
    - Dst: t_fromb64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:654,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:656,1
    - Dst: SRP_create_verifier_BN_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:661,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:665,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:667,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:668,1
    - Dst: t_tob64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:670,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:670,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:676,1
    - Dst: t_tob64
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:679,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:680,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:691,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:692,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:693,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:694,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:695,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 80
    argCount: 8
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - char*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 608
    functionDepth: 4
    functionLinenumber: 608
    functionLinenumberEnd: 697
    functionName: SRP_create_verifier_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - SRP_get_default_gN
    - t_fromb64
    - BN_bin2bn
    - OPENSSL_malloc
    - BN_bn2bin
    - t_tob64
    - BN_free
    - OPENSSL_free
    - OPENSSL_clear_free
    - BN_num_bytes
    - BN_clear_free
    - SRP_create_verifier_BN_ex
    linkageType: ''
    returnType: char
    signature: "char *SRP_create_verifier_ex(const char *user, const char *pass, char
      **salt,\n                             char **verifier, const char *N, const
      char *g,\n                             OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_create_verifier_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 5
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: SRP_create_verifier
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - SRP_create_verifier_ex
    linkageType: ''
    returnType: char
    signature: "char *SRP_create_verifier(const char *user, const char *pass, char
      **salt,\n                          char **verifier, const char *N, const char
      *g)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:721,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:732,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:735,1
    - Dst: SRP_Calc_x_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:742,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:746,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:750,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:751,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:761,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:762,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:763,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 8
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    - libctx
    - propq
    argTypes:
    - char*
    - char*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM*
    - BIGNUM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 714
    functionDepth: 4
    functionLinenumber: 714
    functionLinenumberEnd: 765
    functionName: SRP_create_verifier_BN_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - BN_new
    - BN_bin2bn
    - SRP_Calc_x_ex
    - BN_CTX_new_ex
    - BN_clear_free
    - BN_mod_exp
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int SRP_create_verifier_BN_ex(const char *user, const char *pass,
      BIGNUM **salt,\n                              BIGNUM **verifier, const BIGNUM
      *N,\n                              const BIGNUM *g, OSSL_LIB_CTX *libctx,\n
      \                             const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_create_verifier_BN_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_vfy.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - user
    - pass
    - salt
    - verifier
    - N
    - g
    argTypes:
    - char*
    - char*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 767
    functionDepth: 5
    functionLinenumber: 767
    functionLinenumberEnd: 773
    functionName: SRP_create_verifier_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_vfy.c
    functionUses: 0
    functionsReached:
    - SRP_create_verifier_BN_ex
    linkageType: ''
    returnType: int
    signature: "int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM
      **salt,\n                           BIGNUM **verifier, const BIGNUM *N,\n                           const
      BIGNUM *g)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:31,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:33,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:38,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:42,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:44,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:45,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:46,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:48,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:50,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:51,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 5
    argNames:
    - x
    - y
    - N
    - libctx
    - propq
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 26
    functionDepth: 11
    functionLinenumber: 26
    functionLinenumberEnd: 53
    functionName: srp_Calc_xy
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BN_bin2bn
    - OPENSSL_free
    - BN_num_bytes
    - BN_ucmp
    - BN_bn2binpad
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *srp_Calc_xy(const BIGNUM *x, const BIGNUM *y, const BIGNUM
      *N,\n                           OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - N
    - g
    - libctx
    - propq
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 12
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: srp_Calc_k
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *srp_Calc_k(const BIGNUM *N, const BIGNUM *g,\n                          OSSL_LIB_CTX
      *libctx,\n                          const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - A
    - B
    - N
    - libctx
    - propq
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 12
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: SRP_Calc_u_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_u_ex(const BIGNUM *A, const BIGNUM *B, const BIGNUM
      *N,\n                      OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srp_Calc_xy
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - A
    - B
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 12
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: SRP_Calc_u
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - srp_Calc_xy
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:85,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:85,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:90,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:92,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:95,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:96,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:97,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:101,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:102,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 5
    argNames:
    - A
    - v
    - u
    - b
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 104
    functionName: SRP_Calc_server_key
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    - BN_new
    - BN_CTX_new
    - BN_free
    - BN_clear_free
    - BN_mod_exp
    - BN_CTX_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const
      BIGNUM *u,\n                            const BIGNUM *b, const BIGNUM *N)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:114,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:117,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:118,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:118,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:123,1
    - Dst: srp_Calc_k
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:124,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:125,1
    - Dst: BN_mod_add
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:126,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:127,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:131,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:132,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:133,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 6
    argNames:
    - b
    - N
    - g
    - v
    - libctx
    - propq
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 106
    functionDepth: 13
    functionLinenumber: 106
    functionLinenumberEnd: 136
    functionName: SRP_Calc_B_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    - BN_new
    - BN_free
    - BN_CTX_new_ex
    - srp_Calc_k
    - BN_mod_add
    - BN_clear_free
    - BN_mod_exp
    - BN_CTX_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_B_ex(const BIGNUM *b, const BIGNUM *N, const BIGNUM
      *g,\n                      const BIGNUM *v, OSSL_LIB_CTX *libctx, const char
      *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Calc_B_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - N
    - g
    - v
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 14
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: SRP_Calc_B
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - SRP_Calc_B_ex
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM
      *g,\n                   const BIGNUM *v)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:156,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:159,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:159,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:162,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:166,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:167,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:167,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:168,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:169,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:169,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:170,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:171,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:173,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:175,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:175,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:178,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:179,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:182,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:186,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:187,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 32
    argCount: 5
    argNames:
    - s
    - user
    - pass
    - libctx
    - propq
    argTypes:
    - BIGNUM*
    - char*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 144
    functionDepth: 11
    functionLinenumber: 144
    functionLinenumberEnd: 189
    functionName: SRP_Calc_x_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    - BN_bin2bn
    - EVP_MD_CTX_new
    - BN_bn2bin
    - OPENSSL_free
    - strlen
    - EVP_DigestFinal_ex
    - BN_num_bytes
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_x_ex(const BIGNUM *s, const char *user, const char
      *pass,\n                      OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Calc_x_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - user
    - pass
    argTypes:
    - BIGNUM*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 12
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: SRP_Calc_x
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - SRP_Calc_x_ex
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:201,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:204,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:204,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:205,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - a
    - N
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: SRP_Calc_A
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_new
    - BN_free
    - BN_mod_exp
    - BN_CTX_free
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:221,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:224,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:225,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:226,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:227,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:230,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:231,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:232,1
    - Dst: srp_Calc_k
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:234,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:236,1
    - Dst: BN_mod_sub
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:238,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:240,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:242,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:244,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:245,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:246,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:251,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:252,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:253,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:254,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:255,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:256,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    argCount: 8
    argNames:
    - N
    - B
    - g
    - x
    - a
    - u
    - libctx
    - propq
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 212
    functionDepth: 13
    functionLinenumber: 212
    functionLinenumberEnd: 258
    functionName: SRP_Calc_client_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_mod_sub
    - BN_new
    - BN_mod_mul
    - BN_CTX_free
    - BN_free
    - BN_CTX_new_ex
    - BN_set_flags
    - srp_Calc_k
    - BN_add
    - BN_clear_free
    - BN_with_flags
    - BN_mod_exp
    - BN_mul
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_client_key_ex(const BIGNUM *N, const BIGNUM *B, const
      BIGNUM *g,\n                            const BIGNUM *x, const BIGNUM *a, const
      BIGNUM *u,\n                            OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Calc_client_key_ex
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - N
    - B
    - g
    - x
    - a
    - u
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 14
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: SRP_Calc_client_key
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - SRP_Calc_client_key_ex
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const
      BIGNUM *g,\n                            const BIGNUM *x, const BIGNUM *a, const
      BIGNUM *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:272,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:275,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:278,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:280,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:282,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - B
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 285
    functionName: SRP_Verify_B_mod_N
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_CTX_new
    - BN_free
    - BN_nnmod
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - A
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: SRP_Verify_A_mod_N
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - SRP_Verify_B_mod_N
    linkageType: ''
    returnType: int
    signature: int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:316,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - g
    - N
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: SRP_check_known_gN_param
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: char
    signature: char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/srp/srp_lib.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: SRP_get_default_gN
    functionSourceFile: /src/openssl-3.0.15/crypto/srp/srp_lib.c
    functionUses: 3
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SRP_gN
    signature: SRP_gN *SRP_get_default_gN(const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_TRUST**
    - X509_TRUST**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: tr_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tr_cmp(const X509_TRUST *const *a, const X509_TRUST *const *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    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/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int,
      X509 *,\n                                                                int)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:72,1
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:74,1
    - Dst: default_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:76,1
    - Dst: X509_TRUST_get0
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:77,1
    - Dst: X509_TRUST*::check_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - x
    - id
    - flags
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: X509_check_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - X509_TRUST*::check_trust
    - default_trust
    - X509_TRUST_get0
    - X509_TRUST_get_by_id
    - obj_trust
    linkageType: ''
    returnType: int
    signature: int X509_check_trust(X509 *x, int id, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: X509_TRUST_get_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_num
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: X509_TRUST_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 1
    functionsReached:
    - sk_X509_TRUST_value
    linkageType: ''
    returnType: X509_TRUST
    signature: X509_TRUST *X509_TRUST_get0(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_find
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: X509_TRUST_get_by_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 1
    functionsReached:
    - sk_X509_TRUST_find
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_by_id(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - trust
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: X509_TRUST_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - X509_TRUST_get_by_id
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_set(int *t, int trust)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:135,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:139,1
    - Dst: X509_TRUST_get0
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:148,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:150,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:151,1
    - Dst: sk_X509_TRUST_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:168,1
    - Dst: sk_X509_TRUST_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:179,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:180,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - id
    - flags
    - name
    - arg1
    - arg2
    argTypes:
    - int
    - int
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 183
    functionName: X509_TRUST_add
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_new
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - X509_TRUST_get0
    - X509_TRUST_get_by_id
    - sk_X509_TRUST_push
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509
      *, int),\n                   const char *name, int arg1, void *arg2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:191,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: trtable_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void trtable_free(X509_TRUST *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_TRUST_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: X509_TRUST_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - sk_X509_TRUST_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_TRUST_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: X509_TRUST_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_flags(const X509_TRUST *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: X509_TRUST_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_TRUST_get0_name(const X509_TRUST *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_TRUST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: X509_TRUST_get_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_TRUST_get_trust(const X509_TRUST *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 227
    functionName: trust_1oidany
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - obj_trust
    linkageType: ''
    returnType: int
    signature: int trust_1oidany(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: obj_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: trust_1oid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - obj_trust
    linkageType: ''
    returnType: int
    signature: int trust_1oid(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - trust
    - x
    - flags
    argTypes:
    - X509_TRUST*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: trust_compat
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: int trust_compat(X509_TRUST *trust, X509 *x, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:257,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:258,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:259,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:268,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:269,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:270,1
    - Dst: trust_compat
      Src: /src/openssl-3.0.15/crypto/x509/x509_trust.c:299,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 3
    argNames:
    - id
    - x
    - flags
    argTypes:
    - int
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 300
    functionName: obj_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_trust.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_OBJECT_value
    - sk_ASN1_OBJECT_num
    - trust_compat
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int obj_trust(int id, X509 *x, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:35,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:38,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:39,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - method
    - utf8
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_UTF8STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: i2s_ASN1_UTF8STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utf8.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method,\n                          ASN1_UTF8STRING
      *utf8)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:52,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:56,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:59,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:59,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:60,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:61,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/x509/v3_utf8.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: s2i_ASN1_UTF8STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utf8.c
    functionUses: 0
    functionsReached:
    - ASN1_UTF8STRING_new
    - ebcdic2ascii
    - ERR_raise
    - strlen
    - ASN1_STRING_set
    - ASN1_UTF8STRING_free
    linkageType: ''
    returnType: ASN1_UTF8STRING
    signature: "ASN1_UTF8STRING *s2i_ASN1_UTF8STRING(X509V3_EXT_METHOD *method,\n
      \                                    X509V3_CTX *ctx, const char *str)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:110,1
    - Dst: sk_ACCESS_DESCRIPTION_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:113,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:114,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:118,1
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:119,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:120,1
    - Dst: sk_ACCESS_DESCRIPTION_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:123,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:126,1
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:131,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:133,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:134,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:137,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:139,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:144,1
    - Dst: sk_ACCESS_DESCRIPTION_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:148,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 150
    functionName: v2i_AUTHORITY_INFO_ACCESS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_info.c
    functionUses: 0
    functionsReached:
    - v2i_GENERAL_NAME_ex
    - sk_ACCESS_DESCRIPTION_pop_free
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_num
    - strchr
    - ERR_raise_data
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strndup
    - sk_ACCESS_DESCRIPTION_push
    - sk_ACCESS_DESCRIPTION_new_reserve
    - OBJ_txt2obj
    - ACCESS_DESCRIPTION_new
    linkageType: ''
    returnType: AUTHORITY_INFO_ACCESS
    signature: "AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD\n
      \                                                       *method,\n                                                        X509V3_CTX
      *ctx,\n                                                        STACK_OF(CONF_VALUE)\n
      \                                                       *nval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/v3_info.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ACCESS_DESCRIPTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: i2a_ACCESS_DESCRIPTION
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_info.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_pku.c:40,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_pku.c:42,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_pku.c:43,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_pku.c:45,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_pku.c:48,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_pku.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - method
    - usage
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - PKEY_USAGE_PERIOD*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: i2r_PKEY_USAGE_PERIOD
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_pku.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_printf
    - ASN1_GENERALIZEDTIME_print
    linkageType: ''
    returnType: int
    signature: "int i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method,\n                                 PKEY_USAGE_PERIOD
      *usage, BIO *out,\n                                 int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:24,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509_CRL*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: X509_CRL_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set_version(X509_CRL *x, long version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509_CRL*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: X509_CRL_set_issuer_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set_issuer_name(X509_CRL *x, const X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_set1_time
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_CRL*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: X509_CRL_set1_lastUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ossl_x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_set1_time
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_CRL*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: X509_CRL_set1_nextUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ossl_x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_sort
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:58,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:59,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: X509_CRL_sort
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_sort
    - sk_X509_REVOKED_num
    - sk_X509_REVOKED_value
    linkageType: ''
    returnType: int
    signature: int X509_CRL_sort(X509_CRL *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:71,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:74,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: X509_CRL_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int X509_CRL_up_ref(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: X509_CRL_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long X509_CRL_get_version(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: X509_CRL_get0_lastUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: X509_CRL_get0_nextUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: X509_CRL_get_lastUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: X509_CRL_get_nextUpdate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: X509_CRL_get_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: X509_CRL_get0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_CRL_get0_extensions(const X509_CRL *crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - psig
    - palg
    argTypes:
    - X509_CRL*
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: X509_CRL_get0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING
      **psig,\n                             const X509_ALGOR **palg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: X509_CRL_get_signature_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_signature_nid(const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: X509_REVOKED_get0_revocationDate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:148,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509_REVOKED*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 155
    functionName: X509_REVOKED_set_revocationDate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_free
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: X509_REVOKED_get0_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - serial
    argTypes:
    - X509_REVOKED*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: X509_REVOKED_set_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: X509_REVOKED_get0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_REVOKED_get0_extensions(const X509_REVOKED *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_CRL_INFO
      Src: /src/openssl-3.0.15/crypto/x509/x509cset.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crl
    - pp
    argTypes:
    - X509_CRL*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: i2d_re_X509_CRL_tbs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509cset.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CRL_INFO
    linkageType: ''
    returnType: int
    signature: int i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **pp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICYINFO_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:34,1
    - Dst: sk_X509_POLICY_DATA_new
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:38,1
    - Dst: sk_POLICYINFO_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:42,1
    - Dst: ossl_policy_data_new
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:43,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:45,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:51,1
    - Dst: sk_X509_POLICY_DATA_find
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:57,1
    - Dst: sk_X509_POLICY_DATA_push
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:60,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:61,1
    - Dst: ossl_policy_data_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:71,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:73,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:75,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - x
    - policies
    - crit
    argTypes:
    - X509*
    - CERTIFICATEPOLICIES*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 79
    functionName: policy_cache_create
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 0
    functionsReached:
    - ossl_policy_data_free
    - sk_X509_POLICY_DATA_new
    - sk_X509_POLICY_DATA_push
    - OBJ_obj2nid
    - sk_POLICYINFO_pop_free
    - sk_POLICYINFO_value
    - ERR_raise
    - sk_X509_POLICY_DATA_pop_free
    - sk_X509_POLICY_DATA_find
    - ossl_policy_data_new
    - sk_POLICYINFO_num
    linkageType: ''
    returnType: int
    signature: "int policy_cache_create(X509 *x,\n                               CERTIFICATEPOLICIES
      *policies, int crit)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:92,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:94,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:109,1
    - Dst: policy_cache_set_int
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:118,1
    - Dst: policy_cache_set_int
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:121,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:128,1
    - Dst: policy_cache_create
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:140,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:147,1
    - Dst: ossl_policy_cache_set_mapping
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:154,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:159,1
    - Dst: policy_cache_set_int
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:164,1
    - Dst: POLICY_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:172,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:173,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 176
    functionName: policy_cache_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 0
    functionsReached:
    - ossl_policy_cache_set_mapping
    - POLICY_CONSTRAINTS_free
    - OPENSSL_malloc
    - policy_cache_set_int
    - ERR_raise
    - ASN1_INTEGER_free
    - X509_get_ext_d2i
    - policy_cache_create
    linkageType: ''
    returnType: int
    signature: int policy_cache_new(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_policy_data_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:182,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - X509_POLICY_CACHE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: ossl_policy_cache_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_policy_data_free
    - sk_X509_POLICY_DATA_pop_free
    linkageType: ''
    returnType: void
    signature: void ossl_policy_cache_free(X509_POLICY_CACHE *cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:191,1
    - Dst: policy_cache_new
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:193,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: ossl_policy_cache_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 0
    functionsReached:
    - policy_cache_new
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: X509_POLICY_CACHE
    signature: X509_POLICY_CACHE *ossl_policy_cache_set(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_DATA_find
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:207,1
    - Dst: sk_X509_POLICY_DATA_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - id
    argTypes:
    - X509_POLICY_CACHE*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: ossl_policy_cache_find_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_value
    - sk_X509_POLICY_DATA_find
    linkageType: ''
    returnType: X509_POLICY_DATA
    signature: "X509_POLICY_DATA *ossl_policy_cache_find_data(const X509_POLICY_CACHE
      *cache,\n                                              const ASN1_OBJECT *id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_POLICY_DATA**
    - X509_POLICY_DATA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: policy_data_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "int policy_data_cmp(const X509_POLICY_DATA *const *a,\n                           const
      X509_POLICY_DATA *const *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/pcy_cache.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - value
    argTypes:
    - long*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: policy_cache_set_int
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_cache.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: int policy_cache_set_int(long *out, ASN1_INTEGER *value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:79,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:82,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:83,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:84,1
    - Dst: X509V3_EXT_get
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:86,1
    - Dst: unknown_ext_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:87,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:89,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:89,1
    - Dst: X509V3_EXT_METHOD*::d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:91,1
    - Dst: unknown_ext_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:94,1
    - Dst: X509V3_EXT_METHOD*::i2s
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:97,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:102,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:107,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:108,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:112,1
    - Dst: X509V3_EXT_METHOD*::i2v
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:117,1
    - Dst: X509V3_EXT_val_prn
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:121,1
    - Dst: X509V3_EXT_METHOD*::i2r
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:124,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:131,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:133,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:133,1
    - Dst: X509V3_EXT_METHOD*::ext_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - out
    - ext
    - flag
    - indent
    argTypes:
    - BIO*
    - X509_EXTENSION*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 137
    functionName: X509V3_EXT_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_prn.c
    functionUses: 1
    functionsReached:
    - X509V3_EXT_METHOD*::d2i
    - ASN1_STRING_length
    - X509V3_EXT_METHOD*::i2s
    - ASN1_item_d2i
    - X509V3_EXT_METHOD*::ext_free
    - strlen
    - BIO_printf
    - ASN1_STRING_get0_data
    - ASN1_ITEM_ptr
    - X509_EXTENSION_get_data
    - OPENSSL_free
    - STACK_OF
    - X509V3_EXT_val_prn
    - ASN1_item_free
    - ascii2ebcdic
    - OPENSSL_malloc
    - sk_CONF_VALUE_pop_free
    - X509V3_EXT_METHOD*::i2v
    - X509V3_EXT_METHOD*::i2r
    - X509V3_EXT_get
    - unknown_ext_print
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long
      flag,\n                     int indent)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:145,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:149,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:153,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:157,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:158,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:160,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:161,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:163,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:165,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:166,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:167,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:169,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:170,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:171,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:171,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 5
    argNames:
    - bp
    - title
    - exts
    - flag
    - indent
    argTypes:
    - BIO*
    - char*
    - STACK_OF*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 177
    functionName: X509V3_extensions_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_prn.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_print
    - X509_EXTENSION_get_critical
    - ASN1_STRING_print
    - sk_X509_EXTENSION_value
    - X509_EXTENSION_get_data
    - OBJ_obj2nid
    - BIO_write
    - sk_X509_EXTENSION_num
    - BIO_printf
    - X509_EXTENSION_get_object
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int X509V3_extensions_print(BIO *bp, const char *title,\n                            const
      STACK_OF(X509_EXTENSION) *exts,\n                            unsigned long flag,
      int indent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:191,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:195,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:197,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 202
    functionName: unknown_ext_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_prn.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - BIO_dump_indent
    - ASN1_parse_dump
    linkageType: ''
    returnType: int
    signature: "int unknown_ext_print(BIO *out, const unsigned char *ext, int extlen,\n
      \                            unsigned long flag, int indent, int supported)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:210,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:212,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_prn.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fp
    - ext
    - flag
    - indent
    argTypes:
    - FILE*
    - X509_EXTENSION*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: X509V3_EXT_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - X509V3_EXT_print
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_print_fp(FILE *fp, X509_EXTENSION *ext, int flag, int
      indent)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:214,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:220,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:226,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:231,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:236,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:241,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:246,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:257,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:262,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:266,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:267,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:271,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:272,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:276,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:277,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:281,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:282,1
    - Dst: ossl_ipaddr_to_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:286,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:289,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:290,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:294,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:295,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 2
    argNames:
    - out
    - gen
    argTypes:
    - BIO*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 299
    functionName: GENERAL_NAME_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 0
    functionsReached:
    - ossl_ipaddr_to_asc
    - i2a_ASN1_OBJECT
    - OBJ_obj2nid
    - OPENSSL_free
    - X509_NAME_print_ex
    - BIO_printf
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:305,1
    - Dst: sk_GENERAL_NAME_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:306,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:310,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:311,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:315,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:317,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:318,1
    - Dst: copy_issuer
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:319,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:322,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:326,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:331,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 333
    functionName: v2i_issuer_alt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - sk_GENERAL_NAME_free
    - ERR_raise
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_pop_free
    - v2i_GENERAL_NAME
    - strcmp
    - copy_issuer
    - ossl_v3_name_cmp
    - sk_CONF_VALUE_value
    - sk_GENERAL_NAME_new_reserve
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "GENERAL_NAMES *v2i_issuer_alt(X509V3_EXT_METHOD *method,\n                                     X509V3_CTX
      *ctx,\n                                     STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:347,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:350,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:353,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:354,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:355,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:359,1
    - Dst: sk_GENERAL_NAME_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:360,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:361,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:366,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:367,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:369,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - gens
    argTypes:
    - X509V3_CTX*
    - GENERAL_NAMES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 376
    functionName: copy_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 1
    functionsReached:
    - X509_get_ext
    - sk_GENERAL_NAME_reserve
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_free
    - ERR_raise
    - sk_GENERAL_NAME_push
    - X509V3_EXT_d2i
    - sk_GENERAL_NAME_num
    - X509_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:384,1
    - Dst: sk_GENERAL_NAME_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:387,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:389,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:390,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:395,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:396,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:397,1
    - Dst: copy_email
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:398,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:400,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:401,1
    - Dst: copy_email
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:402,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:406,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:408,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:413,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 415
    functionName: v2i_subject_alt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 0
    functionsReached:
    - copy_email
    - sk_CONF_VALUE_num
    - sk_GENERAL_NAME_free
    - ERR_raise
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_pop_free
    - v2i_GENERAL_NAME
    - strcmp
    - ossl_v3_name_cmp
    - sk_CONF_VALUE_value
    - sk_GENERAL_NAME_new_reserve
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "GENERAL_NAMES *v2i_subject_alt(X509V3_EXT_METHOD *method,\n                                      X509V3_CTX
      *ctx,\n                                      STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:433,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:438,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:439,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:442,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:444,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:445,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:445,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:447,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:448,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:451,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:452,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:458,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:459,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:468,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:469,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - gens
    - move_p
    argTypes:
    - X509V3_CTX*
    - GENERAL_NAMES*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 472
    functionName: copy_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 1
    functionsReached:
    - X509_NAME_delete_entry
    - ASN1_STRING_dup
    - GENERAL_NAME_free
    - ERR_raise
    - X509_NAME_ENTRY_get_data
    - X509_NAME_ENTRY_free
    - sk_GENERAL_NAME_push
    - X509_NAME_get_entry
    - X509_REQ_get_subject_name
    - X509_NAME_get_index_by_NID
    - GENERAL_NAME_new
    - ASN1_IA5STRING_free
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:480,1
    - Dst: sk_GENERAL_NAME_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:483,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:485,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:486,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:491,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:492,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:494,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 500
    functionName: v2i_GENERAL_NAMES
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - sk_GENERAL_NAME_free
    - ERR_raise
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_pop_free
    - v2i_GENERAL_NAME
    - sk_CONF_VALUE_value
    - sk_GENERAL_NAME_new_reserve
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: "GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,\n
      \                                X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - method
    - ctx
    - cnf
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: v2i_GENERAL_NAME
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 3
    functionsReached:
    - v2i_GENERAL_NAME_ex
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,\n
      \                              X509V3_CTX *ctx, CONF_VALUE *cnf)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:517,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:524,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:526,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:541,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:542,1
    - Dst: a2i_IPADDRESS_NC
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:552,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:554,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:556,1
    - Dst: do_dirname
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:563,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:564,1
    - Dst: do_othername
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:570,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:571,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:576,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:581,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:582,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:583,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:584,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:586,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:597,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 599
    functionName: a2i_GENERAL_NAME
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_new
    - do_dirname
    - GENERAL_NAME_free
    - ERR_raise_data
    - ERR_raise
    - ASN1_STRING_set
    - strlen
    - a2i_IPADDRESS
    - OBJ_txt2obj
    - GENERAL_NAME_new
    - do_othername
    - ASN1_IA5STRING_free
    - a2i_IPADDRESS_NC
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "GENERAL_NAME *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: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:613,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:617,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:619,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:621,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:623,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:625,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:627,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:629,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:632,1
    - Dst: a2i_GENERAL_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:637,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - out
    - method
    - ctx
    - cnf
    - is_nc
    argTypes:
    - GENERAL_NAME*
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - CONF_VALUE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 639
    functionName: v2i_GENERAL_NAME_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 2
    functionsReached:
    - a2i_GENERAL_NAME
    - ossl_v3_name_cmp
    - ERR_raise_data
    - ERR_raise
    linkageType: ''
    returnType: GENERAL_NAME
    signature: "GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,\n                                  const
      X509V3_EXT_METHOD *method,\n                                  X509V3_CTX *ctx,
      CONF_VALUE *cnf, int is_nc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:646,1
    - Dst: OTHERNAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:648,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:654,1
    - Dst: ASN1_generate_v3
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:655,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:658,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:661,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:662,1
    - Dst: OTHERNAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - gen
    - value
    - ctx
    argTypes:
    - GENERAL_NAME*
    - char*
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 671
    functionName: do_othername
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 1
    functionsReached:
    - OTHERNAME_new
    - OTHERNAME_free
    - strchr
    - OPENSSL_free
    - OPENSSL_strndup
    - ASN1_TYPE_free
    - OBJ_txt2obj
    - ASN1_generate_v3
    linkageType: ''
    returnType: int
    signature: int do_othername(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:676,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:679,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:681,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:683,1
    - Dst: X509V3_NAME_from_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:688,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:695,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_san.c:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - gen
    - value
    - ctx
    argTypes:
    - GENERAL_NAME*
    - char*
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 698
    functionName: do_dirname
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_san.c
    functionUses: 1
    functionsReached:
    - X509_NAME_new
    - X509V3_NAME_from_section
    - X509_NAME_free
    - ERR_raise_data
    - X509V3_get_section
    - STACK_OF
    - X509V3_section_free
    linkageType: ''
    returnType: int
    signature: int do_dirname(GENERAL_NAME *gen, const char *value, X509V3_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:24,1
    - Dst: X509_NAME_get_text_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - name
    - nid
    - buf
    - len
    argTypes:
    - X509_NAME*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: X509_NAME_get_text_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2obj
    - X509_NAME_get_text_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid,\n                              char
      *buf, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:36,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:39,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:39,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - name
    - obj
    - buf
    - len
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: X509_NAME_get_text_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_get_entry
    - memcpy
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_index_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT
      *obj,\n                              char *buf, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: X509_NAME_entry_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    linkageType: ''
    returnType: int
    signature: int X509_NAME_entry_count(const X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:64,1
    - Dst: X509_NAME_get_index_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - nid
    - lastpos
    argTypes:
    - X509_NAME*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: X509_NAME_get_index_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - OBJ_nid2obj
    - X509_NAME_get_index_by_OBJ
    linkageType: ''
    returnType: int
    signature: int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int
      lastpos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:76,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:83,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:85,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - name
    - obj
    - lastpos
    argTypes:
    - X509_NAME*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: X509_NAME_get_index_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 2
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    - OBJ_cmp
    - STACK_OF
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_get_index_by_OBJ(const X509_NAME *name, const ASN1_OBJECT
      *obj,\n                               int lastpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:94,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - name
    - loc
    argTypes:
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: X509_NAME_get_entry
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 2
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:105,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:107,1
    - Dst: sk_X509_NAME_ENTRY_delete
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:112,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:113,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:120,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:123,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - name
    - loc
    argTypes:
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 139
    functionName: X509_NAME_delete_entry
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - sk_X509_NAME_ENTRY_delete
    - sk_X509_NAME_ENTRY_num
    - STACK_OF
    - sk_X509_NAME_ENTRY_value
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:148,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:151,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:152,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: X509_NAME_add_entry_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_create_by_OBJ
    - X509_NAME_ENTRY_free
    - X509_NAME_add_entry
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:162,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:165,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:166,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 168
    functionName: X509_NAME_add_entry_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_create_by_NID
    - X509_NAME_ENTRY_free
    - X509_NAME_add_entry
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_create_by_txt
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:176,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:179,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:180,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: X509_NAME_add_entry_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_free
    - X509_NAME_ENTRY_create_by_txt
    - X509_NAME_add_entry
    linkageType: ''
    returnType: int
    signature: "int 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: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:193,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:198,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:211,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:217,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:221,1
    - Dst: X509_NAME_ENTRY_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:224,1
    - Dst: sk_X509_NAME_ENTRY_insert
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:228,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:232,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:234,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:238,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - name
    - ne
    - loc
    - set
    argTypes:
    - X509_NAME*
    - X509_NAME_ENTRY*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 240
    functionName: X509_NAME_add_entry
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 3
    functionsReached:
    - sk_X509_NAME_ENTRY_value
    - X509_NAME_ENTRY_dup
    - sk_X509_NAME_ENTRY_insert
    - ERR_raise
    - X509_NAME_ENTRY_free
    - STACK_OF
    - sk_X509_NAME_ENTRY_num
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne,
      int loc,\n                        int set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:250,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:252,1
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:256,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ne
    - field
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: X509_NAME_ENTRY_create_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_ENTRY_create_by_OBJ
    - OBJ_txt2obj
    - ERR_raise_data
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "X509_NAME_ENTRY *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:269,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:271,1
    - Dst: X509_NAME_ENTRY_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:274,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ne
    - nid
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY**
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 277
    functionName: X509_NAME_ENTRY_create_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - X509_NAME_ENTRY_create_by_OBJ
    - OBJ_nid2obj
    - ASN1_OBJECT_free
    - ERR_raise
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne,
      int nid,\n                                               int type,\n                                               const
      unsigned char *bytes,\n                                               int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_ENTRY_new
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:287,1
    - Dst: X509_NAME_ENTRY_set_object
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:292,1
    - Dst: X509_NAME_ENTRY_set_data
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:294,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:302,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 304
    functionName: X509_NAME_ENTRY_create_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 3
    functionsReached:
    - X509_NAME_ENTRY_set_object
    - X509_NAME_ENTRY_new
    - X509_NAME_ENTRY_free
    - X509_NAME_ENTRY_set_data
    linkageType: ''
    returnType: X509_NAME_ENTRY
    signature: "X509_NAME_ENTRY *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:309,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:312,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ne
    - obj
    argTypes:
    - X509_NAME_ENTRY*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: X509_NAME_ENTRY_set_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_dup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT
      *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:325,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:327,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:329,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:330,1
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openssl-3.0.15/crypto/x509/x509name.c:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - ne
    - type
    - bytes
    - len
    argTypes:
    - X509_NAME_ENTRY*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 340
    functionName: X509_NAME_ENTRY_set_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 1
    functionsReached:
    - ASN1_PRINTABLE_type
    - ASN1_STRING_set_by_NID
    - OBJ_obj2nid
    - strlen
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,\n                             const
      unsigned char *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: X509_NAME_ENTRY_get_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: X509_NAME_ENTRY_get_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: X509_NAME_ENTRY_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509name.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ia5base
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: IA5_OFFSET_LEN
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IA5_OFFSET_LEN(ia5base, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - start
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: ia5memchr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ia5memchr(str, start, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - str
    - c
    argTypes:
    - ASN1_IA5STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: ia5memrchr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ia5memrchr(ASN1_IA5STRING *str, int c)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: ia5ncasecmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ia5ncasecmp(const char *s1, const char *s2, size_t n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:130,1
    - Dst: NAME_CONSTRAINTS_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:134,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:137,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:138,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:139,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:142,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:146,1
    - Dst: GENERAL_SUBTREE_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:150,1
    - Dst: v2i_GENERAL_NAME_ex
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:153,1
    - Dst: sk_GENERAL_SUBTREE_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:156,1
    - Dst: sk_GENERAL_SUBTREE_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:165,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:167,1
    - Dst: GENERAL_SUBTREE_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:168,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 171
    functionName: v2i_NAME_CONSTRAINTS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached:
    - GENERAL_SUBTREE_new
    - v2i_GENERAL_NAME_ex
    - sk_GENERAL_SUBTREE_new_null
    - NAME_CONSTRAINTS_free
    - sk_CONF_VALUE_num
    - ERR_raise
    - GENERAL_SUBTREE_free
    - STACK_OF
    - strncmp
    - sk_GENERAL_SUBTREE_push
    - sk_CONF_VALUE_value
    - NAME_CONSTRAINTS_new
    linkageType: ''
    returnType: void
    signature: "void *v2i_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method,\n                                  X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_i2r_name_constraints
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:177,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:180,1
    - Dst: do_i2r_name_constraints
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - method
    - a
    - bp
    - ind
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: i2r_NAME_CONSTRAINTS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached:
    - do_i2r_name_constraints
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "int i2r_NAME_CONSTRAINTS(const X509V3_EXT_METHOD *method, void *a,\n
      \                               BIO *bp, int ind)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:192,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:193,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:194,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:196,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:198,1
    - Dst: print_nc_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:200,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - method
    - trees
    - bp
    - ind
    - name
    argTypes:
    - X509V3_EXT_METHOD*
    - STACK_OF*
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: do_i2r_name_constraints
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - print_nc_ipadd
    - BIO_puts
    - sk_GENERAL_SUBTREE_num
    - BIO_printf
    - sk_GENERAL_SUBTREE_value
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: "int do_i2r_name_constraints(const X509V3_EXT_METHOD *method,\n                                   STACK_OF(GENERAL_SUBTREE)
      *trees,\n                                   BIO *bp, int ind, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ipaddr_to_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:212,1
    - Dst: ossl_ipaddr_to_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:213,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:215,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:217,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - ip
    argTypes:
    - BIO*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: print_nc_ipadd
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - ossl_ipaddr_to_asc
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int print_nc_ipadd(BIO *bp, ASN1_OCTET_STRING *ip)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: add_lengths
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int add_lengths(int *out, int a, int b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:255,1
    - Dst: add_lengths
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:261,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:261,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:262,1
    - Dst: add_lengths
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:263,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:264,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:265,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:269,1
    - Dst: nc_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:274,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:286,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:289,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:290,1
    - Dst: nc_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:294,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:302,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:303,1
    - Dst: nc_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:304,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - x
    - nc
    argTypes:
    - X509*
    - NAME_CONSTRAINTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 311
    functionName: NAME_CONSTRAINTS_check
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - X509_NAME_ENTRY_get_data
    - X509_NAME_entry_count
    - add_lengths
    - nc_match
    - sk_GENERAL_SUBTREE_num
    - sk_GENERAL_NAME_num
    - X509_NAME_get_index_by_NID
    - X509_NAME_get_entry
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:341,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:402,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 32
    argCount: 3
    argNames:
    - cn
    - dnsid
    - idlen
    argTypes:
    - ASN1_STRING*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 404
    functionName: cn2dnsid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - memchr
    - ASN1_STRING_to_UTF8
    linkageType: ''
    returnType: int
    signature: int cn2dnsid(ASN1_STRING *cn, unsigned char **dnsid, size_t *idlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:412,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:429,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:432,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:433,1
    - Dst: cn2dnsid
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:436,1
    - Dst: nc_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:443,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - x
    - nc
    argTypes:
    - X509*
    - NAME_CONSTRAINTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 449
    functionName: NAME_CONSTRAINTS_check_CN
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached:
    - X509_NAME_ENTRY_get_data
    - OPENSSL_free
    - nc_match
    - cn2dnsid
    - X509_NAME_get_entry
    - X509_NAME_get_index_by_NID
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:463,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:464,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sub
    argTypes:
    - GENERAL_SUBTREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 470
    functionName: nc_minmax_valid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_to_BN
    - BN_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int nc_minmax_valid(GENERAL_SUBTREE *sub)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:484,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:493,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:494,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:497,1
    - Dst: nc_minmax_valid
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:500,1
    - Dst: nc_match_single
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:507,1
    - Dst: sk_GENERAL_SUBTREE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:519,1
    - Dst: sk_GENERAL_SUBTREE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:520,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:523,1
    - Dst: nc_minmax_valid
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:526,1
    - Dst: nc_match_single
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:529,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 35
    argCount: 2
    argNames:
    - gen
    - nc
    argTypes:
    - GENERAL_NAME*
    - NAME_CONSTRAINTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 472
    functionDepth: 4
    functionLinenumber: 472
    functionLinenumberEnd: 539
    functionName: nc_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - OBJ_cmp
    - sk_GENERAL_SUBTREE_num
    - nc_match_single
    - sk_GENERAL_SUBTREE_value
    - nc_minmax_valid
    linkageType: ''
    returnType: int
    signature: int nc_match(GENERAL_NAME *gen, NAME_CONSTRAINTS *nc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nc_email_eai
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:552,1
    - Dst: nc_dn
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:559,1
    - Dst: nc_dns
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:562,1
    - Dst: nc_email
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:565,1
    - Dst: nc_uri
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:568,1
    - Dst: nc_ip
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - effective_type
    - gen
    - base
    argTypes:
    - int
    - GENERAL_NAME*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 578
    functionName: nc_match_single
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - nc_ip
    - nc_dns
    - nc_email_eai
    - nc_email
    - nc_dn
    - nc_uri
    linkageType: ''
    returnType: int
    signature: "int nc_match_single(int effective_type, GENERAL_NAME *gen,\n                           GENERAL_NAME
      *base)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:589,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:591,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:595,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - nm
    - base
    argTypes:
    - X509_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 598
    functionName: nc_dn
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - memcmp
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: int nc_dn(const X509_NAME *nm, const X509_NAME *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - dns
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 627
    functionName: nc_dns
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - ia5ncasecmp
    linkageType: ''
    returnType: int
    signature: int nc_dns(ASN1_IA5STRING *dns, ASN1_IA5STRING *base)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:648,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:652,1
    - Dst: ia5memrchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:663,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:670,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:675,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:680,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:681,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:683,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:683,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:690,1
    - Dst: IA5_OFFSET_LEN
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:696,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:697,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:698,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:704,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - emltype
    - base
    argTypes:
    - ASN1_TYPE*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 706
    functionName: nc_email_eai
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - IA5_OFFSET_LEN
    - ia5memrchr
    - memchr
    - ossl_a2ulabel
    - OPENSSL_free
    - OPENSSL_strndup
    - strlen
    - ia5ncasecmp
    - memset
    linkageType: ''
    returnType: int
    signature: int nc_email_eai(ASN1_TYPE *emltype, ASN1_IA5STRING *base)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ia5memrchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:712,1
    - Dst: ia5memrchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:713,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:722,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:734,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:735,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:738,1
    - Dst: IA5_OFFSET_LEN
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:745,1
    - Dst: IA5_OFFSET_LEN
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:746,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:748,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - eml
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 753
    functionName: nc_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - IA5_OFFSET_LEN
    - ia5memrchr
    - memchr
    - ia5ncasecmp
    - strncmp
    linkageType: ''
    returnType: int
    signature: int nc_email(ASN1_IA5STRING *eml, ASN1_IA5STRING *base)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ia5memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:759,1
    - Dst: IA5_OFFSET_LEN
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:764,1
    - Dst: ia5memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:774,1
    - Dst: ia5memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:777,1
    - Dst: IA5_OFFSET_LEN
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:780,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:791,1
    - Dst: ia5ncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ncons.c:798,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - uri
    - base
    argTypes:
    - ASN1_IA5STRING*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 803
    functionName: nc_uri
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached:
    - IA5_OFFSET_LEN
    - ia5ncasecmp
    - ia5memchr
    linkageType: ''
    returnType: int
    signature: int nc_uri(ASN1_IA5STRING *uri, ASN1_IA5STRING *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ip
    - base
    argTypes:
    - ASN1_OCTET_STRING*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 834
    functionName: nc_ip
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ncons.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nc_ip(ASN1_OCTET_STRING *ip, ASN1_OCTET_STRING *base)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:28,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:35,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:36,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:38,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:44,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:45,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:47,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:50,1
    - Dst: X509_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:52,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:56,1
    - Dst: X509_set_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:57,1
    - Dst: X509_sign
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:60,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/crypto/x509/x509_r2x.c:60,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: X509_REQ_to_X509
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_r2x.c
    functionUses: 0
    functionsReached:
    - X509_REQ_get0_pubkey
    - sk_X509_ATTRIBUTE_num
    - X509_new
    - ASN1_INTEGER_set
    - X509_free
    - X509_set_pubkey
    - X509_sign
    - X509_set_issuer_name
    - ERR_raise
    - EVP_md5
    - ASN1_INTEGER_new
    - X509_set_subject_name
    - X509_gmtime_adj
    - X509_REQ_get_subject_name
    linkageType: ''
    returnType: X509
    signature: X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_int.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - meth
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: s2i_asn1_int
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_int.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    linkageType: ''
    returnType: void
    signature: "void *s2i_asn1_int(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx,\n                          const
      char *value)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509type.c:25,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x509type.c:32,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/x509/x509type.c:63,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/x509/x509type.c:64,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 84
    functionName: X509_certificate_type
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509type.c
    functionUses: 0
    functionsReached:
    - X509_get_signature_nid
    - OBJ_find_sigid_algs
    - EVP_PKEY_get_id
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int X509_certificate_type(const X509 *x, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:33,1
    - Dst: ASN1_item_verify_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:36,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: X509_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify_ex
    - X509_ALGOR_cmp
    linkageType: ''
    returnType: int
    signature: int X509_verify(X509 *a, EVP_PKEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:44,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - r
    - libctx
    - propq
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: X509_REQ_verify_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify_ex
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_verify_ex(X509_REQ *a, EVP_PKEY *r, OSSL_LIB_CTX *libctx,\n
      \                      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_verify_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: X509_REQ_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - X509_REQ_verify_ex
    linkageType: ''
    returnType: int
    signature: int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:56,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: NETSCAPE_SPKI_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:63,1
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:75,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: X509_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:83,1
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:87,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: X509_sign_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_get
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:95,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:100,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - url
    - bio
    - rbio
    - timeout
    - it
    argTypes:
    - char*
    - BIO*
    - BIO*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: simple_get_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - OSSL_HTTP_get
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *simple_get_asn1(const char *url, BIO *bio, BIO *rbio,\n
      \                                  int timeout, const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simple_get_asn1
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:108,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - url
    - bio
    - rbio
    - timeout
    argTypes:
    - char*
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: X509_load_http
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - simple_get_asn1
    linkageType: ''
    returnType: X509
    signature: X509 *X509_load_http(const char *url, BIO *bio, BIO *rbio, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:115,1
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:119,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: X509_REQ_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:127,1
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:131,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509_REQ*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: X509_REQ_sign_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:139,1
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:143,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: X509_CRL_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:151,1
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:155,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - x
    - ctx
    argTypes:
    - X509_CRL*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: X509_CRL_sign_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simple_get_asn1
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:162,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - url
    - bio
    - rbio
    - timeout
    argTypes:
    - char*
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: X509_CRL_load_http
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - simple_get_asn1
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio,
      int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:169,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - pkey
    - md
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: NETSCAPE_SPKI_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ex
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:176,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x509
    argTypes:
    - FILE*
    - X509**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: d2i_X509_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: X509
    signature: X509 *d2i_X509_fp(FILE *fp, X509 **x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:181,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x509
    argTypes:
    - FILE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: i2d_X509_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_X509_fp(FILE *fp, const X509 *x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:187,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x509
    argTypes:
    - BIO*
    - X509**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: d2i_X509_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509
    signature: X509 *d2i_X509_bio(BIO *bp, X509 **x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:192,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x509
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: i2d_X509_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_X509_bio(BIO *bp, const X509 *x509)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:198,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - crl
    argTypes:
    - FILE*
    - X509_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: d2i_X509_CRL_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:203,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - crl
    argTypes:
    - FILE*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: i2d_X509_CRL_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_X509_CRL_fp(FILE *fp, const X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:209,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - crl
    argTypes:
    - BIO*
    - X509_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: d2i_X509_CRL_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:214,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - crl
    argTypes:
    - BIO*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: i2d_X509_CRL_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_X509_CRL_bio(BIO *bp, const X509_CRL *crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:229,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:229,1
    - Dst: ossl_pkcs7_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - p7
    argTypes:
    - FILE*
    - PKCS7**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: d2i_PKCS7_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp_ex
    - ossl_pkcs7_resolve_libctx
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:237,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p7
    argTypes:
    - FILE*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: i2d_PKCS7_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7_fp(FILE *fp, const PKCS7 *p7)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:252,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:252,1
    - Dst: ossl_pkcs7_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - bp
    - p7
    argTypes:
    - BIO*
    - PKCS7**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: d2i_PKCS7_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio_ex
    - ossl_pkcs7_resolve_libctx
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:260,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p7
    argTypes:
    - BIO*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: i2d_PKCS7_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7_bio(BIO *bp, const PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:266,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - req
    argTypes:
    - FILE*
    - X509_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: d2i_X509_REQ_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:271,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - req
    argTypes:
    - FILE*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: i2d_X509_REQ_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_X509_REQ_fp(FILE *fp, const X509_REQ *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:285,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bp
    - req
    argTypes:
    - BIO*
    - X509_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: d2i_X509_REQ_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio_ex
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:290,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - req
    argTypes:
    - BIO*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: i2d_X509_REQ_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_X509_REQ_bio(BIO *bp, const X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:296,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: d2i_RSAPrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:301,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: i2d_RSAPrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPrivateKey_fp(FILE *fp, const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:306,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: d2i_RSAPublicKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: d2i_RSA_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:318,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: i2d_RSAPublicKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPublicKey_fp(FILE *fp, const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - rsa
    argTypes:
    - FILE*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: i2d_RSA_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp
    linkageType: ''
    returnType: int
    signature: int i2d_RSA_PUBKEY_fp(FILE *fp, const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:329,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: d2i_RSAPrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:334,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: i2d_RSAPrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPrivateKey_bio(BIO *bp, const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:339,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: d2i_RSAPublicKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: d2i_RSA_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:349,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: i2d_RSAPublicKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d_bio
    linkageType: ''
    returnType: int
    signature: int i2d_RSAPublicKey_bio(BIO *bp, const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - rsa
    argTypes:
    - BIO*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: i2d_RSA_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_RSA_PUBKEY_bio(BIO *bp, const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: d2i_DSAPrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: i2d_DSAPrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_DSAPrivateKey_fp(FILE *fp, const DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: d2i_DSA_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - dsa
    argTypes:
    - FILE*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: i2d_DSA_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_PUBKEY_fp(FILE *fp, const DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: d2i_DSAPrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: i2d_DSAPrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_DSAPrivateKey_bio(BIO *bp, const DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: d2i_DSA_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - dsa
    argTypes:
    - BIO*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: i2d_DSA_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_PUBKEY_bio(BIO *bp, const DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: d2i_EC_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: i2d_EC_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_EC_PUBKEY_fp(FILE *fp, const EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: d2i_ECPrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - eckey
    argTypes:
    - FILE*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: i2d_ECPrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_ECPrivateKey_fp(FILE *fp, const EC_KEY *eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: d2i_EC_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - ecdsa
    argTypes:
    - BIO*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: i2d_EC_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_EC_PUBKEY_bio(BIO *bp, const EC_KEY *ecdsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: d2i_ECPrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - eckey
    argTypes:
    - BIO*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: i2d_ECPrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_ECPrivateKey_bio(BIO *bp, const EC_KEY *eckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:448,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 9
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: X509_pubkey_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - X509_get0_pubkey_bitstr
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int X509_pubkey_digest(const X509 *data, const EVP_MD *type,\n                       unsigned
      char *md, unsigned int *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:458,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:463,1
    - Dst: ossl_asn1_item_digest_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:466,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - cert
    - md
    - data
    - len
    argTypes:
    - X509*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 455
    functionDepth: 10
    functionLinenumber: 455
    functionLinenumberEnd: 468
    functionName: X509_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 5
    functionsReached:
    - ASN1_ITEM_rptr
    - ossl_asn1_item_digest_ex
    - memcpy
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: "int X509_digest(const X509 *cert, const EVP_MD *md, unsigned char
      *data,\n                unsigned int *len)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:487,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:491,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:491,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:492,1
    - Dst: ossl_rsa_pss_decode
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:498,1
    - Dst: ossl_rsa_pss_get_param_unverified
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:503,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:507,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:508,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:511,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:513,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:513,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:530,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:537,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:540,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:540,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:542,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:543,1
    - Dst: X509_digest
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:546,1
    - Dst: ASN1_OCTET_STRING_new::ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:547,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:549,1
    - Dst: hash::hash
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:549,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:553,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:558,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 3
    argNames:
    - cert
    - md_used
    - md_is_fallback
    argTypes:
    - X509*
    - EVP_MD**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 471
    functionDepth: 11
    functionLinenumber: 471
    functionLinenumberEnd: 560
    functionName: X509_digest_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - X509_digest
    - ASN1_OCTET_STRING_set
    - EVP_MD_get0_name
    - ERR_raise
    - ossl_rsa_pss_decode
    - ossl_rsa_pss_get_param_unverified
    - EVP_MD_fetch
    - X509_get_signature_nid
    - OBJ_nid2sn
    - EVP_get_digestbynid
    - ASN1_OCTET_STRING_new::ASN1_OCTET_STRING_new
    - hash::hash
    - EVP_MD_free
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *X509_digest_sig(const X509 *cert,\n                                   EVP_MD
      **md_used, int *md_is_fallback)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:566,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:569,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:575,1
    - Dst: ossl_asn1_item_digest_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:578,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_CRL*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 562
    functionDepth: 10
    functionLinenumber: 562
    functionLinenumberEnd: 580
    functionName: X509_CRL_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ASN1_ITEM_rptr
    - ossl_asn1_item_digest_ex
    - ERR_raise
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type,\n                    unsigned
      char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_item_digest_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:585,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_REQ*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: X509_REQ_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ossl_asn1_item_digest_ex
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type,\n                    unsigned
      char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:592,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - type
    - md
    - len
    argTypes:
    - X509_NAME*
    - EVP_MD*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: X509_NAME_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,\n
      \                    unsigned char *md, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_digest
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:600,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:600,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 602
    functionName: PKCS7_ISSUER_AND_SERIAL_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_digest
    linkageType: ''
    returnType: int
    signature: "int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,\n
      \                                  const EVP_MD *type, unsigned char *md,\n
      \                                  unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8
    argTypes:
    - FILE*
    - X509_SIG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: d2i_PKCS8_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: X509_SIG
    signature: X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8
    argTypes:
    - FILE*
    - X509_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: i2d_PKCS8_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_fp(FILE *fp, const X509_SIG *p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8
    argTypes:
    - BIO*
    - X509_SIG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: d2i_PKCS8_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: X509_SIG
    signature: X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8
    argTypes:
    - BIO*
    - X509_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: i2d_PKCS8_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_bio(BIO *bp, const X509_SIG *p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - xpk
    argTypes:
    - FILE*
    - X509_PUBKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: d2i_X509_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *d2i_X509_PUBKEY_fp(FILE *fp, X509_PUBKEY **xpk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - xpk
    argTypes:
    - FILE*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: i2d_X509_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_X509_PUBKEY_fp(FILE *fp, const X509_PUBKEY *xpk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - xpk
    argTypes:
    - BIO*
    - X509_PUBKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: d2i_X509_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *d2i_X509_PUBKEY_bio(BIO *bp, X509_PUBKEY **xpk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - xpk
    argTypes:
    - BIO*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 648
    functionName: i2d_X509_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_X509_PUBKEY_bio(BIO *bp, const X509_PUBKEY *xpk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8inf
    argTypes:
    - FILE*
    - PKCS8_PRIV_KEY_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 656
    functionName: d2i_PKCS8_PRIV_KEY_INFO_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,\n                                                PKCS8_PRIV_KEY_INFO
      **p8inf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - p8inf
    argTypes:
    - FILE*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: i2d_PKCS8_PRIV_KEY_INFO_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, const PKCS8_PRIV_KEY_INFO
      *p8inf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:669,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:672,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fp
    - key
    argTypes:
    - FILE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 675
    functionName: i2d_PKCS8PrivateKeyInfo_fp
    functionSourceFile: /src/openssl-3.0.15/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: int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, const EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - pkey
    argTypes:
    - FILE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: i2d_PrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PrivateKey_fp(FILE *fp, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: d2i_PrivateKey_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:693,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:693,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:694,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:697,1
    - Dst: d2i_PrivateKey_ex_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:698,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - a
    - libctx
    - propq
    argTypes:
    - FILE*
    - EVP_PKEY**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 701
    functionName: d2i_PrivateKey_ex_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - d2i_PrivateKey_ex_bio
    - BIO_set_fp
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX
      *libctx,\n                               const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - pkey
    argTypes:
    - FILE*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: i2d_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: d2i_PUBKEY_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8inf
    argTypes:
    - BIO*
    - PKCS8_PRIV_KEY_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: d2i_PKCS8_PRIV_KEY_INFO_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: PKCS8_PRIV_KEY_INFO
    signature: "PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,\n                                                 PKCS8_PRIV_KEY_INFO
      **p8inf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - p8inf
    argTypes:
    - BIO*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 726
    functionName: i2d_PKCS8_PRIV_KEY_INFO_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, const PKCS8_PRIV_KEY_INFO
      *p8inf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:733,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:736,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bp
    - key
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 739
    functionName: i2d_PKCS8PrivateKeyInfo_bio
    functionSourceFile: /src/openssl-3.0.15/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: int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, const EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 744
    functionName: i2d_PrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PrivateKey_bio(BIO *bp, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 749
    functionName: d2i_PrivateKey_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:759,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:764,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bp
    - a
    - libctx
    - propq
    argTypes:
    - BIO*
    - EVP_PKEY**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 768
    functionName: d2i_PrivateKey_ex_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 1
    functionsReached:
    - d2i_AutoPrivateKey_ex
    - asn1_d2i_read_bio
    - BUF_MEM_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX
      *libctx,\n                                const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 773
    functionName: i2d_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/x509/x_all.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: d2i_PUBKEY_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_all.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a)
  - BBCount: 97
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 1
    argNames:
    - n
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 225
    functionName: X509_verify_cert_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_txt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_verify_cert_error_string(long n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: X509_CRL_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_ext_count(const X509_CRL *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509_CRL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: X509_CRL_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509_CRL*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: X509_CRL_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj,\n
      \                           int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509_CRL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_CRL_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: X509_CRL_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: X509_CRL_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509_CRL*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: X509_CRL_get_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 1
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int
      *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509_CRL*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: X509_CRL_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit,\n
      \                         unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509_CRL*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: X509_CRL_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: X509_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_count(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: X509_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 2
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: X509_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: X509_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: X509_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 2
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_get_ext(const X509 *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: X509_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_delete_ext(X509 *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: X509_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: X509_get_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 2
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: X509_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,\n                      unsigned
      long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: X509_REVOKED_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_get_ext_count(const X509_REVOKED *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - X509_REVOKED*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: X509_REVOKED_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - obj
    - lastpos
    argTypes:
    - X509_REVOKED*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: X509_REVOKED_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT
      *obj,\n                                int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - X509_REVOKED*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: X509_REVOKED_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit,
      int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_REVOKED*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: X509_REVOKED_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - X509_REVOKED*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: X509_REVOKED_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ex
    - loc
    argTypes:
    - X509_REVOKED*
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: X509_REVOKED_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - X509_REVOKED*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: X509_REVOKED_get_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int
      *crit, int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x509_ext.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - x
    - nid
    - value
    - crit
    - flags
    argTypes:
    - X509_REVOKED*
    - int
    - void*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: X509_REVOKED_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value,
      int crit,\n                              unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/x509rset.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509_REQ*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: X509_REQ_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set_version(X509_REQ *x, long version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/x509/x509rset.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509_REQ*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: X509_REQ_set_subject_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set_subject_name(X509_REQ *x, const X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/x509/x509rset.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: X509_REQ_set_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509rset.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:77,1
    - Dst: sk_ASN1_OBJECT_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:82,1
    - Dst: sk_ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:83,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:88,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:93,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:94,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:95,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_extku.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: v2i_EXTENDED_KEY_USAGE
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_extku.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_free
    - sk_ASN1_OBJECT_new_reserve
    - sk_CONF_VALUE_num
    - ERR_raise_data
    - ERR_raise
    - sk_ASN1_OBJECT_pop_free
    - sk_ASN1_OBJECT_push
    - OBJ_txt2obj
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: void
    signature: "void *v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx,\n                                    STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:47,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:51,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:53,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:57,1
    - Dst: sk_CONF_VALUE_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:59,1
    - Dst: sk_CONF_VALUE_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:68,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:75,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - name
    - value
    - vallen
    - extlist
    argTypes:
    - char*
    - char*
    - size_t
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 77
    functionName: x509v3_add_len_value
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_new_null
    - sk_CONF_VALUE_free
    - OPENSSL_malloc
    - memchr
    - ERR_raise
    - sk_CONF_VALUE_push
    - OPENSSL_free
    - OPENSSL_strndup
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int x509v3_add_len_value(const char *name, const char *value,\n                                size_t
      vallen, STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509v3_add_len_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:82,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - extlist
    argTypes:
    - char*
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: X509V3_add_value
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - strlen
    - x509v3_add_len_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value(const char *name, const char *value,\n                     STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509v3_add_len_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:90,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - extlist
    argTypes:
    - char*
    - unsigned char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: X509V3_add_value_uchar
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - strlen
    - x509v3_add_len_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_uchar(const char *name, const unsigned char *value,\n
      \                          STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509v3_add_len_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - name
    - value
    - vallen
    - extlist
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: x509v3_add_len_value_uchar
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - x509v3_add_len_value
    linkageType: ''
    returnType: int
    signature: "int x509v3_add_len_value_uchar(const char *name, const unsigned char
      *value,\n                               size_t vallen, STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: X509V3_conf_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509V3_conf_free(CONF_VALUE *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:117,1
    - Dst: X509V3_add_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - asn1_bool
    - extlist
    argTypes:
    - char*
    - int
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: X509V3_add_value_bool
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_bool(const char *name, int asn1_bool,\n                          STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - asn1_bool
    - extlist
    argTypes:
    - char*
    - int
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: X509V3_add_value_bool_nf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_bool_nf(const char *name, int asn1_bool,\n                             STACK_OF(CONF_VALUE)
      **extlist)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:139,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:140,1
    - Dst: BN_bn2hex
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:142,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:146,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:150,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:156,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:157,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:159,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:160,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - bn
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 164
    functionName: bignum_to_string
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcat
    - OPENSSL_malloc
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - strlen
    - OPENSSL_strlcpy
    - BN_bn2dec
    - BN_bn2hex
    linkageType: ''
    returnType: char
    signature: char *bignum_to_string(const BIGNUM *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_to_BN
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:173,1
    - Dst: bignum_to_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:174,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:175,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - method
    - a
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: i2s_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - bignum_to_string
    - BN_free
    - ASN1_ENUMERATED_to_BN
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *method, const ASN1_ENUMERATED
      *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:187,1
    - Dst: bignum_to_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:189,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - method
    - a
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: i2s_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_to_BN
    - BN_free
    - bignum_to_string
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *method, const ASN1_INTEGER
      *a)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:202,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:207,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:225,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:227,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:230,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:231,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:235,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:238,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:241,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - method
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 247
    functionName: s2i_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - BN_new
    - ERR_raise
    - BN_free
    - BN_hex2bn
    - BN_to_ASN1_INTEGER
    - BN_dec2bn
    - BN_is_zero
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *method, const char
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:257,1
    - Dst: X509V3_add_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:259,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - name
    - aint
    - extlist
    argTypes:
    - char*
    - ASN1_INTEGER*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: X509V3_add_value_int
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509V3_add_value
    - i2s_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: "int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,\n
      \                        STACK_OF(CONF_VALUE) **extlist)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:270,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:271,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:272,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:273,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:274,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:275,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:279,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:280,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:281,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:282,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:283,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:284,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:289,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:290,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - value
    - asn1_bool
    argTypes:
    - CONF_VALUE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 292
    functionName: X509V3_get_value_bool
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - X509V3_conf_add_error_name_value
    - strcmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:298,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - aint
    argTypes:
    - CONF_VALUE*
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 7
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: X509V3_get_value_int
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    - X509V3_conf_add_error_name_value
    linkageType: ''
    returnType: int
    signature: int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:413,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:417,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: strip_spaces
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strip_spaces(char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:437,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - cmp
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 444
    functionName: ossl_v3_name_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 3
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int ossl_v3_name_cmp(const char *name, const char *cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: sk_strcmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sk_strcmp(const char *const *a, const char *const *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:502,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:510,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:512,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:513,1
    - Dst: append_ia5
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:514,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:517,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:518,1
    - Dst: append_ia5
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:521,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - name
    - gens
    argTypes:
    - X509_NAME*
    - GENERAL_NAMES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 525
    functionName: get_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - X509_NAME_ENTRY_get_data
    - STACK_OF
    - X509_NAME_get_entry
    - X509_NAME_get_index_by_NID
    - sk_GENERAL_NAME_num
    - append_ia5
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *get_email(const X509_NAME *name,\n                                           GENERAL_NAMES
      *gens)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - OPENSSL_STRING
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: str_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void str_free(OPENSSL_STRING str)
  - BBCount: 4
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 609
    functionName: skip_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void skip_prefix(const unsigned char **p, size_t *plen,\n                        size_t
      subject_len,\n                        unsigned int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:616,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 639
    functionName: equal_nocase
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    linkageType: ''
    returnType: int
    signature: "int equal_nocase(const unsigned char *pattern, size_t pattern_len,\n
      \                       const unsigned char *subject, size_t subject_len,\n
      \                       unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:646,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:649,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 650
    functionName: equal_case
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - skip_prefix
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int equal_case(const unsigned char *pattern, size_t pattern_len,\n
      \                     const unsigned char *subject, size_t subject_len,\n                      unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: equal_nocase
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:672,1
    - Dst: equal_case
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:679,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 680
    functionName: equal_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - equal_nocase
    - equal_case
    linkageType: ''
    returnType: int
    signature: "int 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: equal_nocase
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:699,1
    - Dst: equal_nocase
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:703,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:718,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 735
    functionName: wildcard_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strncasecmp
    - equal_nocase
    linkageType: ''
    returnType: int
    signature: "int 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: 12
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:778,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 34
    argCount: 3
    argNames:
    - p
    - len
    - flags
    argTypes:
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 803
    functionName: valid_star
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strncasecmp
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *valid_star(const unsigned char *p, size_t len,\n                                       unsigned
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_star
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:817,1
    - Dst: equal_nocase
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:819,1
    - Dst: wildcard_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:821,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 806
    functionDepth: 4
    functionLinenumber: 806
    functionLinenumberEnd: 824
    functionName: equal_wildcard
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - wildcard_match
    - equal_nocase
    - valid_star
    linkageType: ''
    returnType: int
    signature: "int equal_wildcard(const unsigned char *pattern, size_t pattern_len,\n
      \                         const unsigned char *subject, size_t subject_len,\n
      \                         unsigned int flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:844,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:845,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:848,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:855,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:863,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:865,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:867,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:871,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 7
    argNames:
    - a
    - cmp_type
    - equal
    - flags
    - b
    - blen
    - peername
    argTypes:
    - ASN1_STRING*
    - int
    - equal_fn
    - unsigned int
    - char*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 874
    functionName: do_check_string
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strndup
    - memcmp
    - equal
    - ASN1_STRING_to_UTF8
    linkageType: ''
    returnType: int
    signature: "int 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: 23
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:910,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:912,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:914,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:918,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:923,1
    - Dst: do_check_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:978,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:982,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:994,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:995,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:996,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:997,1
    - Dst: do_check_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1000,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 6
    argNames:
    - x
    - chk
    - chklen
    - flags
    - check_type
    - peername
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 1005
    functionName: do_x509_check
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - OBJ_obj2nid
    - X509_NAME_ENTRY_get_data
    - strlen
    - sk_GENERAL_NAME_num
    - X509_NAME_get_index_by_NID
    - X509_NAME_get_entry
    - do_check_string
    - GENERAL_NAMES_free
    - X509_get_ext_d2i
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int do_x509_check(X509 *x, const char *chk, size_t chklen,\n                         unsigned
      int flags, int check_type, char **peername)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1018,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1019,1
    - Dst: do_x509_check
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - x
    - chk
    - chklen
    - flags
    - peername
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1024
    functionName: X509_check_host
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - memchr
    - do_x509_check
    - strlen
    linkageType: ''
    returnType: int
    signature: "int X509_check_host(X509 *x, const char *chk, size_t chklen,\n                    unsigned
      int flags, char **peername)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1037,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1038,1
    - Dst: do_x509_check
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - x
    - chk
    - chklen
    - flags
    argTypes:
    - X509*
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1043
    functionName: X509_check_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - memchr
    - do_x509_check
    - strlen
    linkageType: ''
    returnType: int
    signature: "int X509_check_email(X509 *x, const char *chk, size_t chklen,\n                     unsigned
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_x509_check
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - x
    - chk
    - chklen
    - flags
    argTypes:
    - X509*
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1045
    functionDepth: 3
    functionLinenumber: 1045
    functionLinenumberEnd: 1051
    functionName: X509_check_ip
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - do_x509_check
    linkageType: ''
    returnType: int
    signature: "int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,\n
      \                 unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1060,1
    - Dst: do_x509_check
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - x
    - ipasc
    - flags
    argTypes:
    - X509*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1064
    functionName: X509_check_ip_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - do_x509_check
    - ossl_a2i_ipadd
    linkageType: ''
    returnType: int
    signature: int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1077,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1085,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1090,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1094
    functionName: ossl_ipaddr_to_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 2
    functionsReached:
    - BIO_snprintf
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *ossl_ipaddr_to_asc(unsigned char *p, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1109,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1114,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1117,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ipasc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1122
    functionName: a2i_IPADDRESS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - ossl_a2i_ipadd
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1131,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1134,1
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1140,1
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1147,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1153,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1162,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - ipasc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1165
    functionName: a2i_IPADDRESS_NC
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - strchr
    - ossl_a2i_ipadd
    - OPENSSL_free
    - ASN1_OCTET_STRING_new
    - OPENSSL_strdup
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1171,1
    - Dst: ipv6_from_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1172,1
    - Dst: ipv4_from_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ipout
    - ipasc
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1180
    functionName: ossl_a2i_ipadd
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 3
    functionsReached:
    - ipv4_from_asc
    - strchr
    - ipv6_from_asc
    linkageType: ''
    returnType: int
    signature: int ossl_a2i_ipadd(unsigned char *ipout, const char *ipasc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1187,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1193,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - v4
    - in
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1200
    functionName: ipv4_from_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    - sscanf
    linkageType: ''
    returnType: int
    signature: int ipv4_from_asc(unsigned char *v4, const char *in)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1225,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1262,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1264,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1267,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1271,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - v6
    - in
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1275
    functionName: ipv6_from_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int ipv6_from_asc(unsigned char *v6, const char *in)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ipv4_from_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1301,1
    - Dst: ipv6_hex
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - elem
    - len
    - usr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1311
    functionName: ipv6_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 0
    functionsReached:
    - ipv4_from_asc
    - ipv6_hex
    linkageType: ''
    returnType: int
    signature: int ipv6_cb(const char *elem, int len, void *usr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/x509/v3_utl.c:1328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1336
    functionName: ipv6_hex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_utl.c
    functionUses: 1
    functionsReached:
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: int
    signature: int ipv6_hex(unsigned char *out, const char *in, int inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: node_data_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_data_critical(data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: node_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_critical(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: X509_get_default_private_dir
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_private_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: X509_get_default_cert_area
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_area(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: X509_get_default_cert_dir
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_dir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: X509_get_default_cert_file
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_get_default_cert_dir_env
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_dir_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: X509_get_default_cert_file_env
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_get_default_cert_file_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/pcy_node.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_POLICY_NODE**
    - X509_POLICY_NODE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: node_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_node.c
    functionUses: 0
    functionsReached:
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: "int node_cmp(const X509_POLICY_NODE *const *a,\n                    const
      X509_POLICY_NODE *const *b)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP_get_store
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:22,1
    - Dst: OSSL_STORE_open_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:24,1
    - Dst: OSSL_STORE_find
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:47,1
    - Dst: OSSL_STORE_load
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:50,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:57,1
    - Dst: cache_objects
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:66,1
    - Dst: OSSL_STORE_INFO_get0_NAME
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:66,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:76,1
    - Dst: OSSL_STORE_INFO_get0_CERT
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:77,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:80,1
    - Dst: OSSL_STORE_INFO_get0_CRL
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:81,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:86,1
    - Dst: OSSL_STORE_close
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:90,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 6
    argNames:
    - lctx
    - uri
    - criterion
    - depth
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - char*
    - OSSL_STORE_SEARCH*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 93
    functionName: cache_objects
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_open_ex
    - OSSL_STORE_load
    - OSSL_STORE_INFO_free
    - OSSL_STORE_close
    - X509_LOOKUP_get_store
    - OSSL_STORE_INFO_get_type
    - OSSL_STORE_find
    - OSSL_STORE_INFO_get0_CERT
    - X509_STORE_add_crl
    - X509_STORE_add_cert
    - OSSL_STORE_INFO_get0_NAME
    - cache_objects
    - OSSL_STORE_INFO_get0_CRL
    linkageType: ''
    returnType: int
    signature: "int cache_objects(X509_LOOKUP *lctx, const char *uri,\n                         const
      OSSL_STORE_SEARCH *criterion,\n                         int depth, OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - OPENSSL_STRING
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: free_uri
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_uri(OPENSSL_STRING data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:104,1
    - Dst: X509_LOOKUP_get_method_data
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:104,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: by_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_get_method_data
    - STACK_OF
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: void by_store_free(X509_LOOKUP *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:116,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:116,1
    - Dst: X509_get_default_cert_dir
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:118,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:121,1
    - Dst: X509_LOOKUP_get_method_data
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:121,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:122,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:128,1
    - Dst: X509_LOOKUP_set_method_data
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:129,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:131,1
    - Dst: cache_objects
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 7
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - retp
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 139
    functionName: by_store_ctrl_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_dir_env
    - X509_LOOKUP_set_method_data
    - sk_OPENSSL_STRING_push
    - X509_LOOKUP_get_method_data
    - sk_OPENSSL_STRING_new_null
    - X509_get_default_cert_dir
    - STACK_OF
    - cache_objects
    - ossl_safe_getenv
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int by_store_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argp,\n
      \                           long argl, char **retp, OSSL_LIB_CTX *libctx,\n
      \                           const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: by_store_ctrl_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - retp
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: by_store_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - by_store_ctrl_ex
    linkageType: ''
    returnType: int
    signature: "int by_store_ctrl(X509_LOOKUP *ctx, int cmd,\n                         const
      char *argp, long argl, char **retp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:151,1
    - Dst: X509_LOOKUP_get_method_data
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:151,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:155,1
    - Dst: cache_objects
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:156,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - ctx
    - type
    - criterion
    - ret
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - OSSL_STORE_SEARCH*
    - X509_OBJECT*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 163
    functionName: by_store
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_get_method_data
    - sk_OPENSSL_STRING_num
    - sk_OPENSSL_STRING_value
    - STACK_OF
    - cache_objects
    linkageType: ''
    returnType: int
    signature: "int by_store(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n                    const
      OSSL_STORE_SEARCH *criterion, X509_OBJECT *ret,\n                    OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_SEARCH_by_name
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:170,1
    - Dst: by_store
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:171,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:172,1
    - Dst: X509_STORE_get0_objects
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:173,1
    - Dst: X509_LOOKUP_get_store
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:173,1
    - Dst: OSSL_STORE_SEARCH_free
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:176,1
    - Dst: X509_OBJECT_retrieve_by_subject
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:179,1
    - Dst: X509_OBJECT_set1_X509
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:203,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:205,1
    - Dst: X509_OBJECT_set1_X509_CRL
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:208,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - ctx
    - type
    - name
    - ret
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 217
    functionName: by_store_subject_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_set1_X509
    - X509_STORE_get0_objects
    - X509_LOOKUP_get_store
    - X509_free
    - OSSL_STORE_SEARCH_free
    - X509_OBJECT_set1_X509_CRL
    - STACK_OF
    - OSSL_STORE_SEARCH_by_name
    - X509_CRL_free
    - by_store
    - X509_OBJECT_retrieve_by_subject
    linkageType: ''
    returnType: int
    signature: "int by_store_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                              const X509_NAME *name, X509_OBJECT *ret,\n                               OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: by_store_subject_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_store.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: by_store_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached:
    - by_store_subject_ex
    linkageType: ''
    returnType: int
    signature: "int by_store_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n                            const
      X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: X509_LOOKUP_store
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_store(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: X509_policy_tree_level_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_policy_tree_level_count(const X509_POLICY_TREE *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - tree
    - i
    argTypes:
    - X509_POLICY_TREE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: X509_policy_tree_get0_level
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_LEVEL
    signature: "X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE
      *tree,\n                                               int i)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_lib.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - X509_POLICY_LEVEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: X509_policy_level_node_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    linkageType: ''
    returnType: int
    signature: int X509_policy_level_node_count(X509_POLICY_LEVEL *level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_lib.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - level
    - i
    argTypes:
    - X509_POLICY_LEVEL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: X509_policy_level_get0_node
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_value
    linkageType: ''
    returnType: X509_POLICY_NODE
    signature: X509_POLICY_NODE *X509_policy_level_get0_node(const X509_POLICY_LEVEL
      *level, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: X509_policy_node_get0_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: X509_policy_node_get0_parent
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_NODE
    signature: "X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE\n
      \                                                    *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:22,1
    - Dst: sk_POLICYQUALINFO_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:25,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:26,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - X509_POLICY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: ossl_policy_data_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_data.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - sk_POLICYQUALINFO_pop_free
    - sk_ASN1_OBJECT_pop_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void ossl_policy_data_free(X509_POLICY_DATA *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:47,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:52,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:55,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:60,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:61,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/pcy_data.c:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - policy
    - cid
    - crit
    argTypes:
    - POLICYINFO*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 82
    functionName: ossl_policy_data_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_data.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_OBJECT_new_null
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: X509_POLICY_DATA
    signature: "X509_POLICY_DATA *ossl_policy_data_new(POLICYINFO *policy,\n                                       const
      ASN1_OBJECT *cid, int crit)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:49,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:50,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:52,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:56,1
    - Dst: v2i_GENERAL_NAMES
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:59,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:61,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - sect
    argTypes:
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: gnames_from_sectname
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_pop_free
    - ERR_raise
    - X509V3_get_section
    - STACK_OF
    - X509V3_parse_list
    - v2i_GENERAL_NAMES
    - X509V3_section_free
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *gnames_from_sectname(X509V3_CTX *ctx,\n                                                    char
      *sect)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:70,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:74,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:78,1
    - Dst: gnames_from_sectname
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:79,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:82,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:84,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:86,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:89,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:92,1
    - Dst: X509V3_NAME_from_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:95,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:96,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:99,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:100,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:105,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:114,1
    - Dst: DIST_POINT_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:118,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:132,1
    - Dst: sk_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:133,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 3
    argNames:
    - pdp
    - ctx
    - cnf
    argTypes:
    - DIST_POINT_NAME**
    - X509V3_CTX*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 135
    functionName: set_dist_point_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - X509V3_NAME_from_section
    - X509_NAME_free
    - sk_X509_NAME_ENTRY_value
    - gnames_from_sectname
    - sk_X509_NAME_ENTRY_pop_free
    - ERR_raise
    - sk_GENERAL_NAME_pop_free
    - X509V3_get_section
    - DIST_POINT_NAME_new
    - STACK_OF
    - strcmp
    - strncmp
    - sk_X509_NAME_ENTRY_num
    - X509V3_section_free
    linkageType: ''
    returnType: int
    signature: "int set_dist_point_name(DIST_POINT_NAME **pdp, X509V3_CTX *ctx,\n
      \                              CONF_VALUE *cnf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:152,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:156,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:161,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:162,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:164,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:169,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:170,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:181,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - preas
    - value
    argTypes:
    - ASN1_BIT_STRING**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: set_reasons
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - sk_CONF_VALUE_pop_free
    - X509V3_parse_list
    - STACK_OF
    - strcmp
    - ASN1_BIT_STRING_new
    - sk_CONF_VALUE_value
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: int set_reasons(ASN1_BIT_STRING **preas, char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:190,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:192,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:196,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:197,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:201,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - out
    - rname
    - rflags
    - indent
    argTypes:
    - BIO*
    - char*
    - ASN1_BIT_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: print_reasons
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_BIT_STRING_get_bit
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "int print_reasons(BIO *out, const char *rname,\n                         ASN1_BIT_STRING
      *rflags, int indent)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DIST_POINT_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:212,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:216,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:218,1
    - Dst: set_dist_point_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:219,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:224,1
    - Dst: set_reasons
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:225,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:227,1
    - Dst: gnames_from_sectname
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:228,1
    - Dst: DIST_POINT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:237,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - nval
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 239
    functionName: crldp_from_section
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - gnames_from_sectname
    - sk_CONF_VALUE_num
    - set_reasons
    - DIST_POINT_new
    - set_dist_point_name
    - strcmp
    - DIST_POINT_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: DIST_POINT
    signature: "DIST_POINT *crldp_from_section(X509V3_CTX *ctx,\n                                      STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:244,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:248,1
    - Dst: sk_DIST_POINT_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:251,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:257,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:259,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:260,1
    - Dst: crldp_from_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:263,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:264,1
    - Dst: sk_DIST_POINT_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:267,1
    - Dst: v2i_GENERAL_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:269,1
    - Dst: GENERAL_NAMES_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:271,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:273,1
    - Dst: DIST_POINT_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:276,1
    - Dst: sk_DIST_POINT_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:278,1
    - Dst: DIST_POINT_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:279,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:289,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:291,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:292,1
    - Dst: sk_DIST_POINT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:293,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 295
    functionName: v2i_crld
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAMES_new
    - sk_DIST_POINT_pop_free
    - sk_DIST_POINT_push
    - crldp_from_section
    - sk_CONF_VALUE_num
    - sk_DIST_POINT_new_reserve
    - GENERAL_NAME_free
    - DIST_POINT_new
    - ERR_raise
    - sk_GENERAL_NAME_push
    - X509V3_get_section
    - DIST_POINT_NAME_new
    - STACK_OF
    - v2i_GENERAL_NAME
    - GENERAL_NAMES_free
    - sk_CONF_VALUE_value
    - X509V3_section_free
    linkageType: ''
    returnType: void
    signature: "void *v2i_crld(const X509V3_EXT_METHOD *method,\n                      X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: dpn_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: "int dpn_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ISSUING_DIST_POINT_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:371,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:374,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:375,1
    - Dst: set_dist_point_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:378,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:383,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:384,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:386,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:387,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:389,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:390,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:392,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:393,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:395,1
    - Dst: set_reasons
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:396,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:399,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:400,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:407,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:409,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 411
    functionName: v2i_idp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - X509V3_conf_add_error_name_value
    - set_reasons
    - ISSUING_DIST_POINT_new
    - X509V3_get_value_bool
    - ERR_raise
    - ISSUING_DIST_POINT_free
    - set_dist_point_name
    - strcmp
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: void
    signature: "void *v2i_idp(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,\n
      \                    STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:428,1
    - Dst: print_gens
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:429,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:433,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:434,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - out
    - dpn
    - indent
    argTypes:
    - BIO*
    - DIST_POINT_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 438
    functionName: print_distpoint
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_printf
    - X509_NAME_print_ex
    - print_gens
    linkageType: ''
    returnType: int
    signature: int print_distpoint(BIO *out, DIST_POINT_NAME *dpn, int indent)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: print_distpoint
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:445,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:447,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:449,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:451,1
    - Dst: print_reasons
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:453,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:455,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:459,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 4
    argNames:
    - method
    - pidp
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 462
    functionName: i2r_idp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - print_reasons
    - BIO_printf
    - print_distpoint
    linkageType: ''
    returnType: int
    signature: "int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,\n
      \                  int indent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:467,1
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:470,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:472,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:473,1
    - Dst: print_distpoint
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:475,1
    - Dst: print_reasons
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:477,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:479,1
    - Dst: print_gens
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - method
    - pcrldp
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 484
    functionName: i2r_crldp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - sk_DIST_POINT_value
    - sk_DIST_POINT_num
    - print_gens
    - STACK_OF
    - print_reasons
    - BIO_printf
    - print_distpoint
    linkageType: ''
    returnType: int
    signature: "int i2r_crldp(const X509V3_EXT_METHOD *method, void *pcrldp, BIO *out,\n
      \                    int indent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:490,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:496,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:497,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:500,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:501,1
    - Dst: X509_NAME_add_entry
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:502,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:506,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_crld.c:510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - dpn
    - iname
    argTypes:
    - DIST_POINT_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 513
    functionName: DIST_POINT_set_dpname
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_crld.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_value
    - X509_NAME_free
    - X509_NAME_dup
    - STACK_OF
    - i2d_X509_NAME
    - sk_X509_NAME_ENTRY_num
    - X509_NAME_add_entry
    linkageType: ''
    returnType: int
    signature: int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, const X509_NAME *iname)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:43,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:55,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:57,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:64,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:65,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:66,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:67,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:68,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:76,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:88,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:114,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:114,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:115,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:122,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:126,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:134,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:183,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_obj.c:185,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 134
    argCount: 3
    argNames:
    - a
    - buf
    - len
    argTypes:
    - X509_NAME*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 187
    functionName: X509_NAME_oneline
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_obj.c
    functionUses: 4
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    - sk_X509_NAME_ENTRY_value
    - memcpy
    - BUF_MEM_grow
    - BUF_MEM_new
    - OBJ_obj2nid
    - i2t_ASN1_OBJECT
    - ossl_toascii
    - ERR_raise
    - OPENSSL_free
    - OBJ_nid2sn
    - strlen
    - BUF_MEM_free
    - strncpy
    - ascii2ebcdic
    linkageType: ''
    returnType: char
    signature: char *X509_NAME_oneline(const X509_NAME *a, char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_dup
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: GENERAL_NAME_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached:
    - ASN1_dup
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *GENERAL_NAME_dup(const GENERAL_NAME *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:78,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:89,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EDIPARTYNAME*
    - EDIPARTYNAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 90
    functionName: edipartyname_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: int edipartyname_cmp(const EDIPARTYNAME *a, const EDIPARTYNAME *b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:101,1
    - Dst: edipartyname_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:105,1
    - Dst: OTHERNAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:109,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:115,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:119,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:123,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:127,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - GENERAL_NAME*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 131
    functionName: GENERAL_NAME_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    - ASN1_OCTET_STRING_cmp
    - OBJ_cmp
    - edipartyname_cmp
    - OTHERNAME_cmp
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:141,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OTHERNAME*
    - OTHERNAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: OTHERNAME_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - ASN1_TYPE_cmp
    linkageType: ''
    returnType: int
    signature: int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - GENERAL_NAME*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 182
    functionName: GENERAL_NAME_set0_value
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - a
    - ptype
    argTypes:
    - GENERAL_NAME*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 215
    functionName: GENERAL_NAME_get0_value
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OTHERNAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:221,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:224,1
    - Dst: GENERAL_NAME_set0_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_genn.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - gen
    - oid
    - value
    argTypes:
    - GENERAL_NAME*
    - ASN1_OBJECT*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: GENERAL_NAME_set0_othername
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_set0_value
    - ASN1_TYPE_free
    - OTHERNAME_new
    linkageType: ''
    returnType: int
    signature: "int GENERAL_NAME_set0_othername(GENERAL_NAME *gen,\n                                ASN1_OBJECT
      *oid, ASN1_TYPE *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - gen
    - poid
    - pvalue
    argTypes:
    - GENERAL_NAME*
    - ASN1_OBJECT**
    - ASN1_TYPE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: GENERAL_NAME_get0_otherName
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_genn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,\n                                ASN1_OBJECT
      **poid, ASN1_TYPE **pvalue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:30,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: X509_issuer_and_serial_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:40,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:47,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:50,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:54,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:56,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:56,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:58,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:68,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:69,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 37
    functionDepth: 11
    functionLinenumber: 37
    functionLinenumberEnd: 72
    functionName: X509_issuer_and_serial_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - X509_NAME_oneline
    - EVP_MD_CTX_new
    - OPENSSL_free
    - strlen
    - EVP_DigestFinal_ex
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_issuer_and_serial_hash(X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: X509_issuer_name_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_issuer_name_cmp(const X509 *a, const X509 *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: X509_subject_name_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_subject_name_cmp(const X509 *a, const X509 *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: X509_CRL_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    linkageType: ''
    returnType: int
    signature: int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: X509_CRL_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int X509_CRL_match(const X509_CRL *a, const X509_CRL *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: X509_get_issuer_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_get_issuer_name(const X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: X509_issuer_name_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_ex
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_issuer_name_hash(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_old
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: X509_issuer_name_hash_old
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_old
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_issuer_name_hash_old(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: X509_get_subject_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_get_subject_name(const X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: X509_get_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_get_serialNumber(X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: X509_get0_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_get0_serialNumber(const X509 *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: X509_subject_name_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_ex
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_subject_name_hash(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_hash_old
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: X509_subject_name_hash_old
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - X509_NAME_hash_old
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_subject_name_hash_old(X509 *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:163,1
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:164,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:168,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:178,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 182
    functionName: X509_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 1
    functionsReached:
    - X509_check_purpose
    - memcmp
    linkageType: ''
    returnType: int
    signature: int X509_cmp(const X509 *a, const X509 *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:265,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:271,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:283,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_NAME*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: X509_NAME_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 7
    functionsReached:
    - memcmp
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:294,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:298,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:302,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - x
    - libctx
    - propq
    - ok
    argTypes:
    - X509_NAME*
    - OSSL_LIB_CTX*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 11
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: X509_NAME_hash_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 3
    functionsReached:
    - EVP_Digest
    - EVP_MD_free
    - i2d_X509_NAME
    - EVP_MD_fetch
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx,\n
      \                               const char *propq, int *ok)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:320,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:321,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:329,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:332,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:333,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:334,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:340,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 11
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: X509_NAME_hash_old
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - EVP_DigestFinal_ex
    - i2d_X509_NAME
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_NAME_hash_old(const X509_NAME *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: X509_get0_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 3
    functionsReached:
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_get0_pubkey(const X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: X509_get_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 4
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_get_pubkey(X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:400,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:402,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:406,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:408,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:411,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:414,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 419
    functionName: X509_check_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_eq
    - ERR_raise
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int X509_check_private_key(const X509 *x, const EVP_PKEY *k)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:435,1
    - Dst: EVP_PKEY_get_group_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:438,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:442,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - pkey
    - sign_nid
    - pflags
    argTypes:
    - EVP_PKEY*
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 463
    functionName: check_suite_b
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_group_name
    - EVP_PKEY_is_a
    - OBJ_txt2nid
    linkageType: ''
    returnType: int
    signature: int check_suite_b(EVP_PKEY *pkey, int sign_nid, unsigned long *pflags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:477,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:482,1
    - Dst: check_suite_b
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:491,1
    - Dst: X509_get_version
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:493,1
    - Dst: check_suite_b
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:501,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:507,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:508,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:509,1
    - Dst: X509_get_version
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:510,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:514,1
    - Dst: check_suite_b
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:515,1
    - Dst: check_suite_b
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:521,1
    - Dst: X509_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:521,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 4
    argNames:
    - perror_depth
    - x
    - chain
    - flags
    argTypes:
    - int*
    - X509*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 465
    functionDepth: 6
    functionLinenumber: 465
    functionLinenumberEnd: 538
    functionName: X509_chain_check_suiteb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - check_suite_b
    - sk_X509_value
    - sk_X509_num
    - X509_get_signature_nid
    - X509_get_version
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: "int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509)
      *chain,\n                            unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:545,1
    - Dst: check_suite_b
      Src: /src/openssl-3.0.15/crypto/x509/x509_cmp.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - pk
    - flags
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 540
    functionDepth: 6
    functionLinenumber: 540
    functionLinenumberEnd: 547
    functionName: X509_CRL_check_suiteb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached:
    - check_suite_b
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - perror_depth
    - x
    - chain
    - flags
    argTypes:
    - int*
    - X509*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: X509_chain_check_suiteb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_chain_check_suiteb(int *perror_depth, X509 *x, STACK_OF(X509)
      *chain,\n                            unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crl
    - pk
    - flags
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: X509_CRL_check_suiteb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_cmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: X509_trusted
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_trusted(const X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_CERT_AUX_new
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: aux_get
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - X509_CERT_AUX_new
    linkageType: ''
    returnType: X509_CERT_AUX
    signature: X509_CERT_AUX *aux_get(X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:56,1
    - Dst: aux_get
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:60,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:62,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - x
    - name
    - len
    argTypes:
    - X509*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: X509_alias_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached:
    - aux_get
    - ASN1_UTF8STRING_free
    - ASN1_UTF8STRING_new
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int X509_alias_set1(X509 *x, const unsigned char *name, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:73,1
    - Dst: aux_get
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:77,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:80,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - x
    - id
    - len
    argTypes:
    - X509*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: X509_keyid_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_new
    - aux_get
    - ASN1_OCTET_STRING_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int X509_keyid_set1(X509 *x, const unsigned char *id, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - X509*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: X509_alias_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *X509_alias_get0(X509 *x, int *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - X509*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: X509_keyid_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *X509_keyid_get0(X509 *x, int *len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:108,1
    - Dst: aux_get
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:112,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:115,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:117,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - x
    - obj
    argTypes:
    - X509*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: X509_add1_trust_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_new_null
    - aux_get
    - sk_ASN1_OBJECT_push
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:130,1
    - Dst: aux_get
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:132,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:135,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:137,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - x
    - obj
    argTypes:
    - X509*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 144
    functionName: X509_add1_reject_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_new_null
    - aux_get
    - sk_ASN1_OBJECT_push
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: X509_trust_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_trust_clear(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509a.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: X509_reject_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509a.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_reject_clear(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:20,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:23,1
    - Dst: X509_LOOKUP_METHOD*::new_item
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:28,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 33
    functionName: X509_LOOKUP_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_LOOKUP_METHOD*::new_item
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_LOOKUP
    signature: X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: X509_LOOKUP_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_LOOKUP_free(X509_LOOKUP *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: X509_STORE_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int X509_STORE_lock(X509_STORE *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: X509_STORE_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int X509_STORE_unlock(X509_STORE *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::init
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: X509_LOOKUP_init
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::init
    linkageType: ''
    returnType: int
    signature: int X509_LOOKUP_init(X509_LOOKUP *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::shutdown
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: X509_LOOKUP_shutdown
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::shutdown
    linkageType: ''
    returnType: int
    signature: int X509_LOOKUP_shutdown(X509_LOOKUP *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::ctrl_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:80,1
    - Dst: X509_LOOKUP*::method::ctrl
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 7
    argNames:
    - ctx
    - cmd
    - argc
    - argl
    - ret
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: X509_LOOKUP_ctrl_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::ctrl
    - X509_LOOKUP*::method::ctrl_ex
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argc,
      long argl,\n                        char **ret, OSSL_LIB_CTX *libctx, const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP_ctrl_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argc
    - argl
    - ret
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: X509_LOOKUP_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_ctrl_ex
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
      long argl,\n                     char **ret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_subject_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:102,1
    - Dst: X509_LOOKUP*::method::get_by_subject
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - type
    - name
    - ret
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: X509_LOOKUP_by_subject_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_subject
    - X509_LOOKUP*::method::get_by_subject_ex
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                             const X509_NAME *name, X509_OBJECT *ret,\n                              OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP_by_subject_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: X509_LOOKUP_by_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_by_subject_ex
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                          const X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_issuer_serial
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:121,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: X509_LOOKUP_by_issuer_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_issuer_serial
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE
      type,\n                                 const X509_NAME *name,\n                                 const
      ASN1_INTEGER *serial,\n                                 X509_OBJECT *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_fingerprint
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:130,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: X509_LOOKUP_by_fingerprint
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_fingerprint
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE
      type,\n                               const unsigned char *bytes, int len,\n
      \                              X509_OBJECT *ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_LOOKUP*::method::get_by_alias
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:138,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: X509_LOOKUP_by_alias
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP*::method::get_by_alias
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,\n
      \                        const char *str, int len, X509_OBJECT *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - X509_LOOKUP*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: X509_LOOKUP_set_method_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: X509_LOOKUP_get_method_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: X509_LOOKUP_get_store
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_subject_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:168,1
    - Dst: X509_CRL_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_OBJECT**
    - X509_OBJECT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: x509_object_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_CRL_cmp
    - X509_subject_name_cmp
    linkageType: ''
    returnType: int
    signature: "int x509_object_cmp(const X509_OBJECT *const *a,\n                           const
      X509_OBJECT *const *b)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:185,1
    - Dst: sk_X509_OBJECT_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:189,1
    - Dst: sk_X509_LOOKUP_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:194,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:199,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:202,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:203,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:209,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:216,1
    - Dst: sk_X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:217,1
    - Dst: sk_X509_LOOKUP_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:218,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 221
    functionName: X509_STORE_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 3
    functionsReached:
    - sk_X509_OBJECT_new
    - sk_X509_LOOKUP_free
    - X509_VERIFY_PARAM_new
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - sk_X509_LOOKUP_new_null
    - CRYPTO_THREAD_lock_new
    - X509_VERIFY_PARAM_free
    - sk_X509_OBJECT_free
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_STORE_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:226,1
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:231,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:232,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:235,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:238,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:239,1
    - Dst: X509_LOOKUP_shutdown
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:240,1
    - Dst: X509_LOOKUP_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:241,1
    - Dst: sk_X509_LOOKUP_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:243,1
    - Dst: sk_X509_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:244,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:246,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:247,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 250
    functionName: X509_STORE_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached:
    - CRYPTO_free_ex_data
    - sk_X509_OBJECT_pop_free
    - sk_X509_LOOKUP_free
    - CRYPTO_DOWN_REF
    - sk_X509_LOOKUP_num
    - X509_VERIFY_PARAM_free
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - STACK_OF
    - X509_LOOKUP_free
    - sk_X509_LOOKUP_value
    - X509_LOOKUP_shutdown
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_free(X509_STORE *vfy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:256,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:259,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: X509_STORE_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int X509_STORE_up_ref(X509_STORE *vfy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:267,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:271,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:272,1
    - Dst: X509_LOOKUP_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:278,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:280,1
    - Dst: sk_X509_LOOKUP_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:285,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:288,1
    - Dst: X509_LOOKUP_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - v
    - m
    argTypes:
    - X509_STORE*
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 291
    functionName: X509_STORE_add_lookup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - sk_X509_LOOKUP_num
    - sk_X509_LOOKUP_push
    - X509_LOOKUP_new
    - ERR_raise
    - STACK_OF
    - X509_LOOKUP_free
    - sk_X509_LOOKUP_value
    linkageType: ''
    returnType: X509_LOOKUP
    signature: X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD
      *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:297,1
    - Dst: X509_STORE_CTX_get_by_subject
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:301,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vs
    - type
    - name
    argTypes:
    - X509_STORE_CTX*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: X509_STORE_CTX_get_obj_by_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - X509_STORE_CTX_get_by_subject
    - X509_OBJECT_free
    - X509_OBJECT_new
    linkageType: ''
    returnType: X509_OBJECT
    signature: "X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs,\n
      \                                              X509_LOOKUP_TYPE type,\n                                               const
      X509_NAME *name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_lock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:324,1
    - Dst: X509_OBJECT_retrieve_by_subject
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:327,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:328,1
    - Dst: sk_X509_LOOKUP_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:331,1
    - Dst: sk_X509_LOOKUP_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:332,1
    - Dst: X509_LOOKUP_by_subject_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:333,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - vs
    - type
    - name
    - ret
    argTypes:
    - X509_STORE_CTX*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 351
    functionName: X509_STORE_CTX_get_by_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - X509_OBJECT_up_ref_count
    - sk_X509_LOOKUP_num
    - X509_LOOKUP_by_subject_ex
    - X509_STORE_unlock
    - sk_X509_LOOKUP_value
    - X509_STORE_lock
    - X509_OBJECT_retrieve_by_subject
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs,\n                                  X509_LOOKUP_TYPE
      type,\n                                  const X509_NAME *name, X509_OBJECT
      *ret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:359,1
    - Dst: X509_OBJECT_up_ref_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:370,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:372,1
    - Dst: X509_STORE_lock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:376,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:378,1
    - Dst: X509_OBJECT_retrieve_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:382,1
    - Dst: sk_X509_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:385,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:388,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - store
    - x
    - crl
    argTypes:
    - X509_STORE*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 394
    functionName: x509_store_add
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_up_ref_count
    - X509_OBJECT_new
    - X509_OBJECT_retrieve_match
    - X509_OBJECT_free
    - X509_STORE_unlock
    - X509_STORE_lock
    - sk_X509_OBJECT_push
    linkageType: ''
    returnType: int
    signature: int x509_store_add(X509_STORE *store, void *x, int crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_store_add
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:398,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: X509_STORE_add_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - x509_store_add
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x509_store_add
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:407,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 412
    functionName: X509_STORE_add_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - x509_store_add
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:420,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 425
    functionName: X509_OBJECT_up_ref_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached:
    - X509_CRL_up_ref
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_up_ref_count(X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: X509_OBJECT_get0_X509
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: X509_OBJECT_get0_X509_CRL
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: X509_OBJECT_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_TYPE
    signature: X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:448,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 456
    functionName: X509_OBJECT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 3
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_OBJECT
    signature: X509_OBJECT *X509_OBJECT_new(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:466,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:469,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 472
    functionName: x509_object_free_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_CRL_free
    linkageType: ''
    returnType: void
    signature: void x509_object_free_internal(X509_OBJECT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:476,1
    - Dst: x509_object_free_internal
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - obj
    argTypes:
    - X509_OBJECT*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: X509_OBJECT_set1_X509
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - x509_object_free_internal
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:487,1
    - Dst: x509_object_free_internal
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - obj
    argTypes:
    - X509_OBJECT*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: X509_OBJECT_set1_X509_CRL
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 1
    functionsReached:
    - X509_CRL_up_ref
    - x509_object_free_internal
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509_object_free_internal
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:498,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 500
    functionName: X509_OBJECT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - x509_object_free_internal
    linkageType: ''
    returnType: void
    signature: void X509_OBJECT_free(X509_OBJECT *a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: X509_OBJECT_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:728,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:735,1
    - Dst: X509_STORE_CTX_get_by_subject
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:736,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:738,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:742,1
    - Dst: ossl_x509_check_cert_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:743,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:747,1
    - Dst: X509_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:751,1
    - Dst: X509_STORE_lock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:763,1
    - Dst: x509_object_idx_cnt
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:766,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:770,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:774,1
    - Dst: ossl_x509_check_cert_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:777,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:786,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:786,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:787,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:792,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:796,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - issuer
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 798
    functionName: X509_STORE_CTX_get1_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - X509_OBJECT_new
    - ASN1_TIME_compare
    - x509_object_idx_cnt
    - X509_get0_notAfter
    - X509_STORE_CTX_get_by_subject
    - ossl_x509_check_cert_time
    - sk_X509_OBJECT_value
    - X509_get_issuer_name
    - X509_OBJECT_free
    - X509_STORE_unlock
    - X509_STORE_CTX*::check_issued
    - X509_STORE_lock
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx,
      X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - X509_STORE*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 803
    functionName: X509_STORE_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached:
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 809
    functionName: X509_STORE_set_depth
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_depth(X509_STORE *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - purpose
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: X509_STORE_set_purpose
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 2
    functionsReached:
    - X509_VERIFY_PARAM_set_purpose
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_purpose(X509_STORE *ctx, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - trust
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 819
    functionName: X509_STORE_set_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_trust
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_trust(X509_STORE *ctx, int trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set1
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - param
    argTypes:
    - X509_STORE*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: X509_STORE_set1_param
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set1_param(X509_STORE *ctx, const X509_VERIFY_PARAM
      *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 829
    functionName: X509_STORE_get0_param
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_verify_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 834
    functionName: X509_STORE_set_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn
      verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 839
    functionName: X509_STORE_get_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_fn
    signature: X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify_cb
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_verify_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 845
    functionName: X509_STORE_set_verify_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_verify_cb(X509_STORE *ctx,\n                              X509_STORE_CTX_verify_cb
      verify_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: X509_STORE_get_verify_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_cb
    signature: X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - get_issuer
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_get_issuer_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 856
    functionName: X509_STORE_set_get_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_get_issuer(X509_STORE *ctx,\n                               X509_STORE_CTX_get_issuer_fn
      get_issuer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 861
    functionName: X509_STORE_get_get_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_issuer_fn
    signature: X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_issued
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_issued_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 867
    functionName: X509_STORE_set_check_issued
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_issued(X509_STORE *ctx,\n                                 X509_STORE_CTX_check_issued_fn
      check_issued)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 872
    functionName: X509_STORE_get_check_issued
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_issued_fn
    signature: X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_revocation
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_revocation_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 878
    functionName: X509_STORE_set_check_revocation
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_revocation(X509_STORE *ctx,\n                                     X509_STORE_CTX_check_revocation_fn
      check_revocation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 883
    functionName: X509_STORE_get_check_revocation
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_revocation_fn
    signature: X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(const
      X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - get_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_get_crl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: X509_STORE_set_get_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_get_crl(X509_STORE *ctx,\n                            X509_STORE_CTX_get_crl_fn
      get_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 894
    functionName: X509_STORE_get_get_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_crl_fn
    signature: X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_crl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 900
    functionName: X509_STORE_set_check_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_crl(X509_STORE *ctx,\n                              X509_STORE_CTX_check_crl_fn
      check_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 905
    functionName: X509_STORE_get_check_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_crl_fn
    signature: X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cert_crl
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_cert_crl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 911
    functionName: X509_STORE_set_cert_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_cert_crl(X509_STORE *ctx,\n                             X509_STORE_CTX_cert_crl_fn
      cert_crl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 916
    functionName: X509_STORE_get_cert_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cert_crl_fn
    signature: X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - check_policy
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_check_policy_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 922
    functionName: X509_STORE_set_check_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_check_policy(X509_STORE *ctx,\n                                 X509_STORE_CTX_check_policy_fn
      check_policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 927
    functionName: X509_STORE_get_check_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_policy_fn
    signature: X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - lookup_certs
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_lookup_certs_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: X509_STORE_set_lookup_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_lookup_certs(X509_STORE *ctx,\n                                 X509_STORE_CTX_lookup_certs_fn
      lookup_certs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: X509_STORE_get_lookup_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_certs_fn
    signature: X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - lookup_crls
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_lookup_crls_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 944
    functionName: X509_STORE_set_lookup_crls
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_lookup_crls(X509_STORE *ctx,\n                                X509_STORE_CTX_lookup_crls_fn
      lookup_crls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: X509_STORE_get_lookup_crls
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_crls_fn
    signature: X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ctx_cleanup
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX_cleanup_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 955
    functionName: X509_STORE_set_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_set_cleanup(X509_STORE *ctx,\n                            X509_STORE_CTX_cleanup_fn
      ctx_cleanup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 960
    functionName: X509_STORE_get_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cleanup_fn
    signature: X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - idx
    - data
    argTypes:
    - X509_STORE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 965
    functionName: X509_STORE_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_lu.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - X509_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 970
    functionName: X509_STORE_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *X509_STORE_get_ex_data(const X509_STORE *ctx, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 975
    functionName: X509_STORE_CTX_get0_store
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_meth.c:22,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x509_meth.c:25,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_meth.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_meth.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: X509_LOOKUP_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_meth.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_meth.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: X509_LOOKUP_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: X509_LOOKUP_meth_set_new_item
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method,\n                                  int
      (*new_item) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: "(*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: X509_LOOKUP_meth_set_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_free(\n    X509_LOOKUP_METHOD *method,\n
      \   void (*free_fn) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: "(*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: X509_LOOKUP_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method,\n                              int
      (*init) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: "(*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: X509_LOOKUP_meth_set_shutdown
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_shutdown(\n    X509_LOOKUP_METHOD *method,\n
      \   int (*shutdown) (X509_LOOKUP *ctx))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: "(*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method))\n
      \   (X509_LOOKUP *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - ctrl
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_ctrl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: X509_LOOKUP_meth_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_ctrl(\n    X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_ctrl_fn ctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: X509_LOOKUP_meth_get_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_ctrl_fn
    signature: X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD
      *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_subject
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_subject_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: X509_LOOKUP_meth_set_get_by_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_get_by_subject_fn get_by_subject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: X509_LOOKUP_meth_get_get_by_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_subject_fn
    signature: "X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject(\n
      \   const X509_LOOKUP_METHOD *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_issuer_serial
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_issuer_serial_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: X509_LOOKUP_meth_set_get_by_issuer_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_get_by_issuer_serial_fn get_by_issuer_serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: X509_LOOKUP_meth_get_get_by_issuer_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_issuer_serial_fn
    signature: X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial(const
      X509_LOOKUP_METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_fingerprint
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_fingerprint_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: X509_LOOKUP_meth_set_get_by_fingerprint
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method,\n
      \   X509_LOOKUP_get_by_fingerprint_fn get_by_fingerprint)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: X509_LOOKUP_meth_get_get_by_fingerprint
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_fingerprint_fn
    signature: "X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint(\n
      \   const X509_LOOKUP_METHOD *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - method
    - get_by_alias
    argTypes:
    - X509_LOOKUP_METHOD*
    - X509_LOOKUP_get_by_alias_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: X509_LOOKUP_meth_set_get_by_alias
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method,\n
      \                                     X509_LOOKUP_get_by_alias_fn get_by_alias)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - X509_LOOKUP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: X509_LOOKUP_meth_get_get_by_alias
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_get_by_alias_fn
    signature: "X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias(\n    const
      X509_LOOKUP_METHOD *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: X509V3_conf_add_error_name_value
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509V3_conf_add_error_name_value(val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:35,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - method
    - ia5
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: i2s_ASN1_IA5STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ia5.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING
      *ia5)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:48,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:51,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:53,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:53,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:54,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ia5.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: s2i_ASN1_IA5STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ia5.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_new
    - ebcdic2ascii
    - ERR_raise
    - strlen
    - ASN1_STRING_set
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: ASN1_IA5STRING
    signature: "ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method,\n                                   X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: X509_LOOKUP_file
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_file(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:57,1
    - Dst: X509_get_default_cert_file_env
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:57,1
    - Dst: X509_load_cert_crl_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:59,1
    - Dst: X509_load_cert_crl_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:63,1
    - Dst: X509_get_default_cert_file
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:68,1
    - Dst: X509_load_cert_crl_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:72,1
    - Dst: X509_load_cert_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 7
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - ret
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 81
    functionName: by_file_ctrl_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_file_env
    - X509_load_cert_file_ex
    - ERR_raise
    - X509_get_default_cert_file
    - ossl_safe_getenv
    - X509_load_cert_crl_file_ex
    linkageType: ''
    returnType: int
    signature: "int by_file_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argp,\n
      \                          long argl, char **ret, OSSL_LIB_CTX *libctx,\n                           const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: by_file_ctrl_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - ret
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: by_file_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - by_file_ctrl_ex
    linkageType: ''
    returnType: int
    signature: "int by_file_ctrl(X509_LOOKUP *ctx, int cmd,\n                        const
      char *argp, long argl, char **ret)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:97,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:97,1
    - Dst: BIO_read_filename
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:99,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:105,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:108,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:110,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:116,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:117,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:118,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:118,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:120,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:123,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:127,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:128,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:132,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:137,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:138,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:147,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:149,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:150,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 5
    argNames:
    - ctx
    - file
    - type
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 152
    functionName: X509_load_cert_file_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - X509_free
    - ERR_GET_REASON
    - BIO_free
    - ERR_set_mark
    - ERR_raise
    - BIO_s_file
    - ERR_clear_last_mark
    - ERR_peek_last_error
    - X509_STORE_add_cert
    - ERR_pop_to_mark
    - PEM_read_bio_X509_AUX
    - BIO_read_filename
    - d2i_X509_bio
    - X509_new_ex
    linkageType: ''
    returnType: int
    signature: "int X509_load_cert_file_ex(X509_LOOKUP *ctx, const char *file, int
      type,\n                           OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_load_cert_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: X509_load_cert_file
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - X509_load_cert_file_ex
    linkageType: ''
    returnType: int
    signature: int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:166,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:166,1
    - Dst: BIO_read_filename
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:168,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:169,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:175,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:177,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:177,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:182,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:186,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:190,1
    - Dst: d2i_X509_CRL_bio
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:197,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:209,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:211,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:212,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 214
    functionName: X509_load_crl_file
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - ERR_GET_REASON
    - PEM_read_bio_X509_CRL
    - BIO_free
    - d2i_X509_CRL_bio
    - ERR_clear_error
    - X509_STORE_add_crl
    - ERR_raise
    - BIO_s_file
    - ERR_peek_last_error
    - X509_CRL_free
    - BIO_read_filename
    linkageType: ''
    returnType: int
    signature: int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:219,1
    - Dst: X509_load_cert_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:225,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:228,1
    - Dst: PEM_X509_INFO_read_bio_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:231,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:234,1
    - Dst: sk_X509_INFO_num
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:237,1
    - Dst: sk_X509_INFO_value
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:238,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:240,1
    - Dst: X509_STORE_add_crl
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:245,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:251,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - ctx
    - file
    - type
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 255
    functionName: X509_load_cert_crl_file_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 1
    functionsReached:
    - BIO_free
    - sk_X509_INFO_num
    - X509_load_cert_file_ex
    - sk_X509_INFO_value
    - X509_STORE_add_crl
    - ERR_raise
    - sk_X509_INFO_pop_free
    - X509_STORE_add_cert
    - STACK_OF
    - BIO_new_file
    - PEM_X509_INFO_read_bio_ex
    linkageType: ''
    returnType: int
    signature: "int X509_load_cert_crl_file_ex(X509_LOOKUP *ctx, const char *file,
      int type,\n                               OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_load_cert_crl_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_file.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - file
    - type
    argTypes:
    - X509_LOOKUP*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: X509_load_cert_crl_file
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_file.c
    functionUses: 0
    functionsReached:
    - X509_load_cert_crl_file_ex
    linkageType: ''
    returnType: int
    signature: int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int
      type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:42,1
    - Dst: X509_ATTRIBUTE_new
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:44,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:47,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:49,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:52,1
    - Dst: X509_ATTRIBUTE_free
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:55,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/x509/x_attrib.c:56,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - nid
    - atrtype
    - value
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 58
    functionName: X509_ATTRIBUTE_create
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_attrib.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - X509_ATTRIBUTE_new
    - OBJ_nid2obj
    - sk_ASN1_TYPE_push
    - ASN1_TYPE_set
    - X509_ATTRIBUTE_free
    - ASN1_TYPE_free
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-3.0.15/crypto/x509/v3_enum.c:47,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_enum.c:50,1
    - Dst: i2s_ASN1_ENUMERATED
      Src: /src/openssl-3.0.15/crypto/x509/v3_enum.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - method
    - e
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: i2s_ASN1_ENUMERATED_TABLE
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_enum.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - i2s_ASN1_ENUMERATED
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: char
    signature: "char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method,\n                                const
      ASN1_ENUMERATED *e)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_new_null
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: rinf_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_req.c
    functionUses: 0
    functionsReached:
    - sk_X509_ATTRIBUTE_new_null
    linkageType: ''
    returnType: int
    signature: "int rinf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                  void *exarg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:55,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:62,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:63,1
    - Dst: ossl_x509_req_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:69,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:72,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:77,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:80,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:82,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:85,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 107
    functionName: req_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_req.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    - ASN1_OCTET_STRING_free
    - X509_PUBKEY_get0
    - ERR_raise
    - EVP_PKEY_dup
    - EVP_PKEY_free
    - OPENSSL_free
    - ossl_x509_req_set0_libctx
    linkageType: ''
    returnType: int
    signature: "int req_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - d_id
    argTypes:
    - X509_REQ*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: X509_REQ_set0_distinguishing_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_req.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void X509_REQ_set0_distinguishing_id(X509_REQ *x, ASN1_OCTET_STRING
      *d_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: X509_REQ_get0_distinguishing_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_REQ_get0_distinguishing_id(X509_REQ *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:152,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - x
    - libctx
    - propq
    argTypes:
    - X509_REQ*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: ossl_x509_req_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_req.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int ossl_x509_req_set0_libctx(X509_REQ *x, OSSL_LIB_CTX *libctx,\n
      \                             const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:167,1
    - Dst: X509_REQ_it
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:167,1
    - Dst: ossl_x509_req_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:168,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/crypto/x509/x_req.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: X509_REQ_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_req.c
    functionUses: 0
    functionsReached:
    - X509_REQ_free
    - ASN1_item_new
    - X509_REQ_it
    - ossl_x509_req_set0_libctx
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *X509_REQ_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:27,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:32,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - X509*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: X509_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int X509_set_version(X509 *x, long version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - x
    - serial
    argTypes:
    - X509*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: X509_set_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: X509_set_issuer_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_set_issuer_name(X509 *x, const X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - name
    argTypes:
    - X509*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: X509_set_subject_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: int X509_set_subject_name(X509 *x, const X509_NAME *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:69,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ptm
    - tm
    argTypes:
    - ASN1_TIME**
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: ossl_x509_set1_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 2
    functionsReached:
    - ASN1_TIME_free
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: int ossl_x509_set1_time(ASN1_TIME **ptm, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_set1_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: X509_set1_notBefore
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ossl_x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_set1_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - tm
    argTypes:
    - X509*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: X509_set1_notAfter
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - ossl_x509_set1_time
    linkageType: ''
    returnType: int
    signature: int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: X509_set_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: int X509_set_pubkey(X509 *x, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:103,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:106,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: X509_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 7
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int X509_up_ref(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: X509_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long X509_get_version(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: X509_get0_notBefore
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_get0_notBefore(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: X509_get0_notAfter
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_get0_notAfter(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: X509_getm_notBefore
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_getm_notBefore(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: X509_getm_notAfter
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_getm_notAfter(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:138,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: X509_get_signature_type
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EVP_PKEY_type
    linkageType: ''
    returnType: int
    signature: int X509_get_signature_type(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: X509_get_X509_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: X509_get0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_get0_extensions(const X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - x
    - piuid
    - psuid
    argTypes:
    - X509*
    - ASN1_BIT_STRING**
    - ASN1_BIT_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: X509_get0_uids
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid,\n
      \                   const ASN1_BIT_STRING **psuid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: X509_get0_tbs_sigalg
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - siginf
    - mdnid
    - pknid
    - secbits
    - flags
    argTypes:
    - X509_SIG_INFO*
    - int*
    - int*
    - int*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: X509_SIG_INFO_get
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int
      *pknid,\n                      int *secbits, uint32_t *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - siginf
    - mdnid
    - pknid
    - secbits
    - flags
    argTypes:
    - X509_SIG_INFO*
    - int
    - int
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: X509_SIG_INFO_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid,\n
      \                      int secbits, uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:191,1
    - Dst: X509_SIG_INFO_get
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - x
    - mdnid
    - pknid
    - secbits
    - flags
    argTypes:
    - X509*
    - int*
    - int*
    - int*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: X509_get_signature_info
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - X509_SIG_INFO_get
    - X509_check_purpose
    linkageType: ''
    returnType: int
    signature: "int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits,\n
      \                           uint32_t *flags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:207,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:209,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:218,1
    - Dst: EVP_PKEY_ASN1_METHOD*::siginf_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:220,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:221,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:254,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:255,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:258,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - siginf
    - alg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 270
    functionName: x509_sig_info_init
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - EVP_MD_get_size
    - OBJ_obj2nid
    - EVP_PKEY_asn1_find
    - EVP_PKEY_ASN1_METHOD*::siginf_set
    - ERR_raise
    - EVP_get_digestbynid
    linkageType: ''
    returnType: int
    signature: "int x509_sig_info_init(X509_SIG_INFO *siginf, const X509_ALGOR *alg,\n
      \                             const ASN1_STRING *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x509_sig_info_init
      Src: /src/openssl-3.0.15/crypto/x509/x509_set.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: ossl_x509_init_sig_info
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_set.c
    functionUses: 0
    functionsReached:
    - x509_sig_info_init
    linkageType: ''
    returnType: int
    signature: int ossl_x509_init_sig_info(X509 *x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:44,1
    - Dst: X509_CERT_AUX_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:45,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:46,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:47,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:48,1
    - Dst: ossl_policy_cache_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:49,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:50,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:51,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:53,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:54,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:56,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:80,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:85,1
    - Dst: X509_CERT_AUX_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:86,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:87,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:88,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:89,1
    - Dst: ossl_policy_cache_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:90,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:91,1
    - Dst: NAME_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:92,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:94,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:95,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:98,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:105,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 66
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 130
    functionName: x509_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - AUTHORITY_KEYID_free
    - ossl_x509_set0_libctx
    - ASN1_OCTET_STRING_free
    - sk_IPAddressFamily_pop_free
    - CRYPTO_new_ex_data
    - CRL_DIST_POINTS_free
    - GENERAL_NAMES_free
    - OPENSSL_free
    - ASIdentifiers_free
    - CRYPTO_free_ex_data
    - ossl_policy_cache_free
    - X509_CERT_AUX_free
    - NAME_CONSTRAINTS_free
    linkageType: ''
    returnType: int
    signature: "int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                  void *exarg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:150,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - x
    - libctx
    - propq
    argTypes:
    - X509*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: ossl_x509_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: int ossl_x509_set0_libctx(X509 *x, OSSL_LIB_CTX *libctx, const char
      *propq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:165,1
    - Dst: X509_it
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:165,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:166,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: X509_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 2
    functionsReached:
    - ossl_x509_set0_libctx
    - X509_free
    - X509_it
    - ASN1_item_new_ex
    linkageType: ''
    returnType: X509
    signature: X509 *X509_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - X509*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: X509_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int X509_set_ex_data(X509 *r, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: X509_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *X509_get_ex_data(const X509 *r, int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:201,1
    - Dst: d2i_X509_CERT_AUX
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:207,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - X509**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: d2i_X509_AUX
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 1
    functionsReached:
    - d2i_X509_CERT_AUX
    - d2i_X509
    - X509_free
    linkageType: ''
    returnType: X509
    signature: X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:236,1
    - Dst: i2d_X509_CERT_AUX
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - X509*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: i2d_x509_aux_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CERT_AUX
    - i2d_X509
    linkageType: ''
    returnType: int
    signature: int i2d_x509_aux_internal(const X509 *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d_x509_aux_internal
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:267,1
    - Dst: i2d_x509_aux_internal
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:270,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:276,1
    - Dst: i2d_x509_aux_internal
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:281,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - X509*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: i2d_X509_AUX
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - i2d_x509_aux_internal
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int i2d_X509_AUX(const X509 *a, unsigned char **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_CINF
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - pp
    argTypes:
    - X509*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: i2d_re_X509_tbs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - i2d_X509_CINF
    linkageType: ''
    returnType: int
    signature: int i2d_re_X509_tbs(X509 *x, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - psig
    - palg
    - x
    argTypes:
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: X509_get0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_get0_signature(const ASN1_BIT_STRING **psig,\n                         const
      X509_ALGOR **palg, const X509 *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: X509_get_signature_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_get_signature_nid(const X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_x509.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - d_id
    argTypes:
    - X509*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: X509_set0_distinguishing_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void X509_set0_distinguishing_id(X509 *x, ASN1_OCTET_STRING *d_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: X509_get0_distinguishing_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_x509.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_get0_distinguishing_id(X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: v3_check_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:42,1
    - Dst: v3_check_generic
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:43,1
    - Dst: v3_generic_extension
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:44,1
    - Dst: do_ext_nconf
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:45,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:45,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:48,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - conf
    - ctx
    - section
    - name
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: X509V3_EXT_nconf_int
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - do_ext_nconf
    - v3_generic_extension
    - ERR_raise_data
    - v3_check_critical
    - v3_check_generic
    - OBJ_sn2nid
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509V3_EXT_nconf_int(CONF *conf, X509V3_CTX *ctx,\n
      \                                           const char *section,\n                                            const
      char *name, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_nconf_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - conf
    - ctx
    - name
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: X509V3_EXT_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_nconf_int
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const
      char *name,\n                                 const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: v3_check_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:70,1
    - Dst: v3_check_generic
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:71,1
    - Dst: v3_generic_extension
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:72,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:72,1
    - Dst: do_ext_nconf
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - ext_nid
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: X509V3_EXT_nconf_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - do_ext_nconf
    - v3_generic_extension
    - v3_check_critical
    - OBJ_nid2sn
    - v3_check_generic
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx,
      int ext_nid,\n                                     const char *value)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:88,1
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:92,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:98,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:100,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:101,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:102,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:103,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:105,1
    - Dst: X509V3_EXT_METHOD*::v2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:108,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:110,1
    - Dst: X509V3_EXT_METHOD*::s2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:114,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:118,1
    - Dst: X509V3_EXT_METHOD*::r2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:121,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:124,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:125,1
    - Dst: do_ext_i2d
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:129,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:131,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:131,1
    - Dst: X509V3_EXT_METHOD*::ext_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:133,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 5
    argNames:
    - conf
    - ctx
    - ext_nid
    - crit
    - value
    argTypes:
    - CONF*
    - X509V3_CTX*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 136
    functionName: do_ext_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 2
    functionsReached:
    - X509V3_EXT_get_nid
    - sk_CONF_VALUE_num
    - ASN1_ITEM_ptr
    - X509V3_EXT_METHOD*::ext_free
    - ERR_raise_data
    - ERR_raise
    - sk_CONF_VALUE_pop_free
    - do_ext_i2d
    - NCONF_get_section
    - OBJ_nid2sn
    - STACK_OF
    - X509V3_parse_list
    - X509V3_EXT_METHOD*::v2i
    - X509V3_EXT_METHOD*::s2i
    - ASN1_item_free
    - X509V3_EXT_METHOD*::r2i
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,\n
      \                                   int crit, const char *value)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:150,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:150,1
    - Dst: X509V3_EXT_METHOD*::i2d
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:156,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:159,1
    - Dst: X509V3_EXT_METHOD*::i2d
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:162,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:164,1
    - Dst: X509_EXTENSION_create_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:170,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:179,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:180,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - method
    - ext_nid
    - crit
    - ext_struc
    argTypes:
    - X509V3_EXT_METHOD*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: do_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_free
    - OPENSSL_malloc
    - ASN1_ITEM_ptr
    - ASN1_item_i2d
    - ERR_raise
    - OPENSSL_free
    - ASN1_OCTET_STRING_new
    - X509V3_EXT_METHOD*::i2d
    - X509_EXTENSION_create_by_NID
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method,\n                                  int
      ext_nid, int crit, void *ext_struc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:191,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:192,1
    - Dst: do_ext_i2d
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ext_nid
    - crit
    - ext_struc
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: X509V3_EXT_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_get_nid
    - do_ext_i2d
    - ERR_raise
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:203,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:203,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: v3_check_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 2
    functionsReached:
    - ossl_isspace
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int v3_check_critical(const char **value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:218,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:218,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:221,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:221,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: v3_check_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 2
    functionsReached:
    - ossl_isspace
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int v3_check_generic(const char **value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:244,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:245,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:251,1
    - Dst: generic_asn1
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:253,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:256,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:261,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:262,1
    - Dst: X509_EXTENSION_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:270,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:273,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - ext
    - value
    - crit
    - gen_type
    - ctx
    argTypes:
    - char*
    - char*
    - int
    - int
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 278
    functionName: v3_generic_extension
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 2
    functionsReached:
    - ASN1_OCTET_STRING_free
    - X509_EXTENSION_create_by_OBJ
    - generic_asn1
    - OPENSSL_hexstr2buf
    - ERR_raise_data
    - ERR_raise
    - OPENSSL_free
    - ASN1_OCTET_STRING_new
    - OBJ_txt2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *v3_generic_extension(const char *ext, const char *value,\n
      \                                           int crit, int gen_type,\n                                            X509V3_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_generate_v3
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:286,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:289,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - value
    - ctx
    - ext_len
    argTypes:
    - char*
    - X509V3_CTX*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 292
    functionName: generic_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 1
    functionsReached:
    - ASN1_generate_v3
    - i2d_ASN1_TYPE
    - ASN1_TYPE_free
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *generic_asn1(const char *value, X509V3_CTX *ctx,\n
      \                                  long *ext_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:313,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:317,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:319,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:320,1
    - Dst: X509V3_EXT_nconf_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:321,1
    - Dst: delete_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:326,1
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:327,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:328,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - sk
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 335
    functionName: X509V3_EXT_add_nconf_sk
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_nconf_int
    - X509_EXTENSION_free
    - sk_CONF_VALUE_num
    - NCONF_get_section
    - X509v3_add_ext
    - STACK_OF
    - delete_ext
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char
      *section,\n                            STACK_OF(X509_EXTENSION) **sk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:344,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - cert
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: X509V3_EXT_add_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_add_nconf_sk
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section,\n
      \                        X509 *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:357,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - crl
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: X509V3_EXT_CRL_add_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_add_nconf_sk
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char
      *section,\n                             X509_CRL *crl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:370,1
    - Dst: X509V3_EXT_add_nconf_sk
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:371,1
    - Dst: X509_REQ_add_extensions
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:374,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - conf
    - ctx
    - section
    - req
    argTypes:
    - CONF*
    - X509V3_CTX*
    - char*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: X509V3_EXT_REQ_add_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_add_nconf_sk
    - STACK_OF
    - X509_REQ_add_extensions
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: int
    signature: "int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char
      *section,\n                             X509_REQ *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:384,1
    - Dst: X509V3_CTX*::db_meth::get_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - name
    - section
    argTypes:
    - X509V3_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: X509V3_get_string
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - X509V3_CTX*::db_meth::get_string
    linkageType: ''
    returnType: char
    signature: char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char
      *section)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_CTX*::db_meth::free_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 409
    functionName: X509V3_string_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - X509V3_CTX*::db_meth::free_string
    linkageType: ''
    returnType: void
    signature: void X509V3_string_free(X509V3_CTX *ctx, char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - section
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: nconf_get_string
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    linkageType: ''
    returnType: char
    signature: char *nconf_get_string(void *db, const char *section, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - section
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: nconf_get_section
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *nconf_get_section(void *db, const char *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - conf
    argTypes:
    - X509V3_CTX*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: X509V3_set_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - issuer
    - subj
    - req
    - crl
    - flags
    argTypes:
    - X509V3_CTX*
    - X509*
    - X509*
    - X509_REQ*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 461
    functionName: X509V3_set_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: "void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subj, X509_REQ
      *req,\n                    X509_CRL *crl, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:467,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - X509V3_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 476
    functionName: X509V3_set_issuer_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_get_string
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - section
    - value
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: conf_lhash_get_string
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - CONF_get_string
    linkageType: ''
    returnType: char
    signature: char *conf_lhash_get_string(void *db, const char *section, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_conf.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - section
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: conf_lhash_get_section
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_conf.c
    functionUses: 0
    functionsReached:
    - CONF_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *conf_lhash_get_section(void *db, const char *section)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BASIC_CONSTRAINTS_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:64,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:67,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:68,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:69,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:70,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:72,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:73,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:76,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:77,1
    - Dst: BASIC_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_bcons.c:83,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: v2i_BASIC_CONSTRAINTS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_bcons.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - X509V3_conf_add_error_name_value
    - BASIC_CONSTRAINTS_new
    - ERR_raise
    - X509V3_get_value_bool
    - BASIC_CONSTRAINTS_free
    - X509V3_get_value_int
    - strcmp
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: BASIC_CONSTRAINTS
    signature: "BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,\n
      \                                               X509V3_CTX *ctx,\n                                                STACK_OF(CONF_VALUE)
      *values)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - afi
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: length_from_afi
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int length_from_afi(const unsigned afi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - IPAddressFamily*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: X509v3_addr_get_afi
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int X509v3_addr_get_afi(const IPAddressFamily *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:109,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - addr
    - bs
    - length
    - fill
    argTypes:
    - unsigned char*
    - ASN1_BIT_STRING*
    - int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 120
    functionName: addr_expand
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int addr_expand(unsigned char *addr,\n                       const
      ASN1_BIT_STRING *bs,\n                       const int length, const unsigned
      char fill)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: addr_prefixlen
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addr_prefixlen(bs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:141,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:143,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:151,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:154,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:156,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:160,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:161,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 4
    argNames:
    - out
    - afi
    - fill
    - bs
    argTypes:
    - BIO*
    - unsigned
    - unsigned char
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: i2r_address
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_expand
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "int i2r_address(BIO *out,\n                       const unsigned afi,\n
      \                      const unsigned char fill, const ASN1_BIT_STRING *bs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:176,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:178,1
    - Dst: i2r_address
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:183,1
    - Dst: addr_prefixlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:183,1
    - Dst: i2r_address
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:186,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:188,1
    - Dst: i2r_address
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:189,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - out
    - indent
    - aors
    - afi
    argTypes:
    - BIO*
    - int
    - IPAddressOrRanges*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 196
    functionName: i2r_IPAddressOrRanges
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_prefixlen
    - BIO_puts
    - sk_IPAddressOrRange_value
    - i2r_address
    - sk_IPAddressOrRange_num
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_IPAddressOrRanges(BIO *out,\n                                 const
      int indent,\n                                 const IPAddressOrRanges *aors,\n
      \                                const unsigned afi)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:206,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:207,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:211,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:214,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:217,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:223,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:226,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:229,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:232,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:235,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:238,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:241,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:244,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:247,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:254,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:257,1
    - Dst: i2r_IPAddressOrRanges
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:258,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 4
    argNames:
    - method
    - ext
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 267
    functionName: i2r_IPAddrBlocks
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - X509v3_addr_get_afi
    - sk_IPAddressFamily_num
    - sk_IPAddressFamily_value
    - i2r_IPAddressOrRanges
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_IPAddrBlocks(const X509V3_EXT_METHOD *method,\n                            void
      *ext, BIO *out, int indent)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:288,1
    - Dst: addr_prefixlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:290,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:293,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:301,1
    - Dst: addr_prefixlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:303,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:306,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:312,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - a
    - b
    - length
    argTypes:
    - IPAddressOrRange*
    - IPAddressOrRange*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 316
    functionName: IPAddressOrRange_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_expand
    - addr_prefixlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int IPAddressOrRange_cmp(const IPAddressOrRange *a,\n                                const
      IPAddressOrRange *b, const int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddressOrRange**
    - IPAddressOrRange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: v4IPAddressOrRange_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_cmp
    linkageType: ''
    returnType: int
    signature: "int v4IPAddressOrRange_cmp(const IPAddressOrRange *const *a,\n                                  const
      IPAddressOrRange *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IPAddressOrRange_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddressOrRange**
    - IPAddressOrRange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: v6IPAddressOrRange_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_cmp
    linkageType: ''
    returnType: int
    signature: "int v6IPAddressOrRange_cmp(const IPAddressOrRange *const *a,\n                                  const
      IPAddressOrRange *const *b)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:353,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:353,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - min
    - max
    - length
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts:
    - condition: (memcmp(min, max, length) <= 0)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    constantsTouched: []
    func_position:
      end: 391
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 391
    functionName: range_should_be_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int range_should_be_prefix(const unsigned char *min,\n                                  const
      unsigned char *max, const int length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prefixlen < 0 || prefixlen >
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:402,1
    - Dst: IPAddressOrRange_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:404,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:408,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:410,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - result
    - addr
    - prefixlen
    - afilen
    argTypes:
    - IPAddressOrRange**
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 425
    functionName: make_addressPrefix
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_set
    - IPAddressOrRange_free
    - prefixlen < 0 || prefixlen >
    - ASN1_BIT_STRING_new
    - IPAddressOrRange_new
    linkageType: ''
    returnType: int
    signature: "int make_addressPrefix(IPAddressOrRange **result, unsigned char *addr,\n
      \                             const int prefixlen, const int afilen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:439,1
    - Dst: range_should_be_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:442,1
    - Dst: make_addressPrefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:443,1
    - Dst: IPAddressOrRange_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:445,1
    - Dst: IPAddressRange_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:448,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:451,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:454,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:458,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:471,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:487,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 4
    argNames:
    - result
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange**
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 489
    functionName: make_addressRange
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_set
    - IPAddressRange_new
    - IPAddressOrRange_free
    - make_addressPrefix
    - memcmp
    - ASN1_BIT_STRING_new
    - range_should_be_prefix
    - IPAddressOrRange_new
    linkageType: ''
    returnType: int
    signature: "int make_addressRange(IPAddressOrRange **result,\n                             unsigned
      char *min,\n                             unsigned char *max, const int length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:512,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:513,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:515,1
    - Dst: IPAddressFamily_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:519,1
    - Dst: IPAddressChoice_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:522,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:525,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:527,1
    - Dst: sk_IPAddressFamily_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:529,1
    - Dst: IPAddressFamily_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:535,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 537
    functionName: make_IPAddressFamily
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - IPAddressFamily_new
    - sk_IPAddressFamily_num
    - ASN1_OCTET_STRING_new
    - sk_IPAddressFamily_push
    - sk_IPAddressFamily_value
    - memcmp
    - IPAddressFamily_free
    - IPAddressChoice_new
    linkageType: ''
    returnType: IPAddressFamily
    signature: "IPAddressFamily *make_IPAddressFamily(IPAddrBlocks *addr,\n                                             const
      unsigned afi,\n                                             const unsigned *safi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_IPAddressFamily
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:545,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:555,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 559
    functionName: X509v3_addr_add_inherit
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    - make_IPAddressFamily
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_add_inherit(IPAddrBlocks *addr,\n                            const
      unsigned afi, const unsigned *safi)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_IPAddressFamily
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:568,1
    - Dst: sk_IPAddressOrRange_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:580,1
    - Dst: sk_IPAddressOrRange_set_cmp_func
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:584,1
    - Dst: sk_IPAddressOrRange_set_cmp_func
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:587,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - addr
    - afi
    - safi
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 593
    functionName: make_prefix_or_range
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressOrRange_new_null
    - sk_IPAddressOrRange_set_cmp_func
    - make_IPAddressFamily
    linkageType: ''
    returnType: IPAddressOrRanges
    signature: "IPAddressOrRanges *make_prefix_or_range(IPAddrBlocks *addr,\n                                               const
      unsigned afi,\n                                               const unsigned
      *safi)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_prefix_or_range
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:603,1
    - Dst: make_addressPrefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:607,1
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:607,1
    - Dst: sk_IPAddressOrRange_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:609,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - addr
    - afi
    - safi
    - a
    - prefixlen
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 613
    functionName: X509v3_addr_add_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_free
    - make_addressPrefix
    - sk_IPAddressOrRange_push
    - make_prefix_or_range
    - length_from_afi
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_add_prefix(IPAddrBlocks *addr,\n                           const
      unsigned afi,\n                           const unsigned *safi,\n                           unsigned
      char *a, const int prefixlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_prefix_or_range
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:623,1
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:625,1
    - Dst: make_addressRange
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:628,1
    - Dst: sk_IPAddressOrRange_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:630,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - addr
    - afi
    - safi
    - min
    - max
    argTypes:
    - IPAddrBlocks*
    - unsigned
    - unsigned*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 634
    functionName: X509v3_addr_add_range
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - IPAddressOrRange_free
    - sk_IPAddressOrRange_push
    - make_prefix_or_range
    - length_from_afi
    - make_addressRange
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_add_range(IPAddrBlocks *addr,\n                          const
      unsigned afi,\n                          const unsigned *safi,\n                          unsigned
      char *min, unsigned char *max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:646,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:647,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:649,1
    - Dst: addr_expand
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - aor
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 653
    functionName: extract_min_max
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - addr_expand
    linkageType: ''
    returnType: int
    signature: "int extract_min_max(IPAddressOrRange *aor,\n                           unsigned
      char *min, unsigned char *max, int length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:663,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 5
    argNames:
    - aor
    - afi
    - min
    - max
    - length
    argTypes:
    - IPAddressOrRange*
    - unsigned
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 672
    functionName: X509v3_addr_get_range
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - length_from_afi
    linkageType: ''
    returnType: int
    signature: "int X509v3_addr_get_range(IPAddressOrRange *aor,\n                          const
      unsigned afi,\n                          unsigned char *min,\n                          unsigned
      char *max, const int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - IPAddressFamily**
    - IPAddressFamily**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: IPAddressFamily_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int IPAddressFamily_cmp(const IPAddressFamily *const *a_,\n                               const
      IPAddressFamily *const *b_)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - IPAddressFamily*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 700
    functionName: IPAddressFamily_check_len
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int IPAddressFamily_check_len(const IPAddressFamily *f)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:721,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:722,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:723,1
    - Dst: IPAddressFamily_check_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:725,1
    - Dst: IPAddressFamily_check_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:725,1
    - Dst: IPAddressFamily_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:728,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:735,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:736,1
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:737,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:737,1
    - Dst: IPAddressFamily_check_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:754,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:761,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:763,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:764,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:765,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:767,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:768,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:774,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:775,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:776,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:784,1
    - Dst: range_should_be_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:791,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:799,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:801,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:803,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:805,1
    - Dst: range_should_be_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:806,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 47
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 816
    functionName: X509v3_addr_is_canonical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - X509v3_addr_get_afi
    - sk_IPAddressOrRange_value
    - IPAddressFamily_check_len
    - sk_IPAddressFamily_num
    - memcmp
    - sk_IPAddressFamily_value
    - sk_IPAddressOrRange_num
    - IPAddressFamily_cmp
    - length_from_afi
    - range_should_be_prefix
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_is_canonical(IPAddrBlocks *addr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:824,1
    - Dst: sk_IPAddressOrRange_sort
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:829,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:834,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:835,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:836,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:840,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:841,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:847,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:848,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:854,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:862,1
    - Dst: make_addressRange
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:864,1
    - Dst: sk_IPAddressOrRange_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:866,1
    - Dst: sk_IPAddressOrRange_delete
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:867,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:868,1
    - Dst: IPAddressOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:869,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:878,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:880,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:883,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:885,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - aors
    - afi
    argTypes:
    - IPAddressOrRanges*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 891
    functionName: IPAddressOrRanges_canonize
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - sk_IPAddressOrRange_delete
    - sk_IPAddressOrRange_value
    - sk_IPAddressOrRange_set
    - IPAddressOrRange_free
    - memcmp
    - make_addressRange
    - sk_IPAddressOrRange_num
    - length_from_afi
    - sk_IPAddressOrRange_sort
    linkageType: ''
    returnType: int
    signature: "int IPAddressOrRanges_canonize(IPAddressOrRanges *aors,\n                                      const
      unsigned afi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:899,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:900,1
    - Dst: IPAddressFamily_check_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:902,1
    - Dst: IPAddressOrRanges_canonize
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:906,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:908,1
    - Dst: sk_IPAddressFamily_set_cmp_func
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:911,1
    - Dst: sk_IPAddressFamily_sort
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:912,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:913,1
    - Dst: X509v3_addr_is_canonical
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:913,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 896
    functionDepth: 4
    functionLinenumber: 896
    functionLinenumberEnd: 916
    functionName: X509v3_addr_canonize
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_sort
    - sk_IPAddressFamily_set_cmp_func
    - X509v3_addr_get_afi
    - IPAddressFamily_check_len
    - sk_IPAddressFamily_num
    - IPAddressOrRanges_canonize
    - sk_IPAddressFamily_value
    - X509v3_addr_is_canonical
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_canonize(IPAddrBlocks *addr)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:931,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:932,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:936,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:937,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:943,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:945,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:947,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:950,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:954,1
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:968,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:976,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:979,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:980,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:982,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:983,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:986,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:987,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:989,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:992,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1000,1
    - Dst: X509v3_addr_add_inherit
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1001,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1002,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1003,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1006,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1011,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1012,1
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1016,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1017,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1018,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1024,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1029,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1030,1
    - Dst: X509v3_addr_add_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1033,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1034,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1039,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1040,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1042,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1043,1
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1046,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1047,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1048,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1051,1
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1051,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1052,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1053,1
    - Dst: X509v3_addr_add_range
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1056,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1057,1
    - Dst: X509v3_addr_add_prefix
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1062,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1063,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1068,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1069,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1073,1
    - Dst: X509v3_addr_canonize
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1080,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1085,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1086,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 145
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - struct v3_ext_method*
    - struct v3_ext_ctx*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 921
    functionDepth: 5
    functionLinenumber: 921
    functionLinenumberEnd: 1088
    functionName: v2i_IPAddrBlocks
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - length_from_afi
    - X509v3_addr_add_inherit
    - X509v3_addr_add_range
    - ossl_a2i_ipadd
    - ERR_raise_data
    - sk_IPAddressFamily_pop_free
    - X509v3_addr_canonize
    - strspn
    - strtoul
    - memcmp
    - OPENSSL_strdup
    - ossl_v3_name_cmp
    - sk_IPAddressFamily_new
    - X509V3_conf_add_error_name_value
    - ERR_raise
    - OPENSSL_free
    - strcmp
    - X509v3_addr_add_prefix
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_num
    linkageType: ''
    returnType: void
    signature: "void *v2i_IPAddrBlocks(const struct v3_ext_method *method,\n                              struct
      v3_ext_ctx *ctx,\n                              STACK_OF(CONF_VALUE) *values)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1115,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1121
    functionName: X509v3_addr_inherits
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_num
    - sk_IPAddressFamily_value
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_inherits(IPAddrBlocks *addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1139,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1140,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1140,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1144,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1146,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1146,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1149,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - parent
    - child
    - length
    argTypes:
    - IPAddressOrRanges*
    - IPAddressOrRanges*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1158
    functionName: addr_contains
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - memcmp
    - sk_IPAddressOrRange_value
    - sk_IPAddressOrRange_num
    linkageType: ''
    returnType: int
    signature: "int addr_contains(IPAddressOrRanges *parent,\n                         IPAddressOrRanges
      *child, int length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_addr_inherits
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1168,1
    - Dst: X509v3_addr_inherits
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1168,1
    - Dst: sk_IPAddressFamily_set_cmp_func
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1170,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1171,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1172,1
    - Dst: sk_IPAddressFamily_find
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1173,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1174,1
    - Dst: IPAddressFamily_check_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1178,1
    - Dst: IPAddressFamily_check_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1178,1
    - Dst: addr_contains
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1180,1
    - Dst: length_from_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1182,1
    - Dst: X509v3_addr_get_afi
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - IPAddrBlocks*
    - IPAddrBlocks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1186
    functionName: X509v3_addr_subset
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_set_cmp_func
    - X509v3_addr_get_afi
    - IPAddressFamily_check_len
    - sk_IPAddressFamily_num
    - addr_contains
    - X509v3_addr_inherits
    - sk_IPAddressFamily_value
    - length_from_afi
    - sk_IPAddressFamily_find
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _err_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1204
    functionName: validation_err
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validation_err(_err_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1337,1
    - Dst: addr_validate_path_internal
      Src: /src/openssl-3.0.15/crypto/x509/v3_addr.c:1342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1343
    functionName: X509v3_addr_validate_path
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_addr.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - addr_validate_path_internal
    linkageType: ''
    returnType: int
    signature: int X509v3_addr_validate_path(X509_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/x509/v3err.c:143,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/x509/v3err.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: ossl_err_load_X509V3_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_X509V3_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:36,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:40,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:42,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:43,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:44,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:46,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:47,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - channel
    - lev
    - node
    - indent
    argTypes:
    - BIO*
    - X509_POLICY_LEVEL*
    - X509_POLICY_NODE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: expected_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - sk_ASN1_OBJECT_value
    - STACK_OF
    - sk_ASN1_OBJECT_num
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: void
    signature: "void expected_print(BIO *channel,\n                           X509_POLICY_LEVEL
      *lev, X509_POLICY_NODE *node,\n                           int indent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:65,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:70,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:72,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:74,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:76,1
    - Dst: expected_print
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:78,1
    - Dst: X509_POLICY_NODE_print
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - channel
    - str
    - tree
    - curr
    argTypes:
    - BIO*
    - char*
    - X509_POLICY_TREE*
    - X509_POLICY_LEVEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 83
    functionName: tree_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - X509_POLICY_NODE_print
    - sk_X509_POLICY_NODE_num
    - BIO_printf
    - sk_X509_POLICY_NODE_value
    - expected_print
    linkageType: ''
    returnType: void
    signature: "void tree_print(BIO *channel,\n                       char *str, X509_POLICY_TREE
      *tree,\n                       X509_POLICY_LEVEL *curr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - tree
    - ','
    - curr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: TREE_PRINT
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE_PRINT(str, tree, curr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:265,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:266,1
    - Dst: ossl_policy_node_match
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:268,1
    - Dst: ossl_policy_level_add_node
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:269,1
    - Dst: ossl_policy_level_add_node
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - curr
    - data
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_DATA*
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 279
    functionName: tree_link_matching_nodes
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    - sk_X509_POLICY_NODE_value
    - ossl_policy_node_match
    - ossl_policy_level_add_node
    linkageType: ''
    returnType: int
    signature: "int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,\n                                    X509_POLICY_DATA
      *data,\n                                    X509_POLICY_TREE *tree)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_DATA_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:293,1
    - Dst: sk_X509_POLICY_DATA_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:294,1
    - Dst: tree_link_matching_nodes
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - curr
    - cache
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: tree_link_nodes
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_DATA_value
    - sk_X509_POLICY_DATA_num
    - tree_link_matching_nodes
    linkageType: ''
    returnType: int
    signature: "int tree_link_nodes(X509_POLICY_LEVEL *curr,\n                           const
      X509_POLICY_CACHE *cache,\n                           X509_POLICY_TREE *tree)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_policy_data_new
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:322,1
    - Dst: node_critical
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:322,1
    - Dst: ossl_policy_level_add_node
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:328,1
    - Dst: ossl_policy_data_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:329,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 333
    functionName: tree_add_unmatched
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - node_critical
    - ossl_policy_data_new
    - ossl_policy_data_free
    - ossl_policy_level_add_node
    linkageType: ''
    returnType: int
    signature: "int 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: tree_add_unmatched
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:350,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:355,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:356,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:359,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:360,1
    - Dst: ossl_policy_level_find_node
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:361,1
    - Dst: tree_add_unmatched
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:363,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 369
    functionName: tree_link_unmatched
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - ossl_policy_level_find_node
    - sk_ASN1_OBJECT_value
    - STACK_OF
    - sk_ASN1_OBJECT_num
    - tree_add_unmatched
    linkageType: ''
    returnType: int
    signature: "int tree_link_unmatched(X509_POLICY_LEVEL *curr,\n                               const
      X509_POLICY_CACHE *cache,\n                               X509_POLICY_NODE *node,
      X509_POLICY_TREE *tree)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:382,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:383,1
    - Dst: tree_link_unmatched
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:385,1
    - Dst: ossl_policy_level_add_node
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - curr
    - cache
    - tree
    argTypes:
    - X509_POLICY_LEVEL*
    - X509_POLICY_CACHE*
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 394
    functionName: tree_link_any
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - sk_X509_POLICY_NODE_num
    - sk_X509_POLICY_NODE_value
    - tree_link_unmatched
    - ossl_policy_level_add_node
    linkageType: ''
    returnType: int
    signature: "int tree_link_any(X509_POLICY_LEVEL *curr,\n                         const
      X509_POLICY_CACHE *cache,\n                         X509_POLICY_TREE *tree)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:408,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:413,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:414,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:418,1
    - Dst: sk_X509_POLICY_NODE_delete
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:419,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:427,1
    - Dst: sk_X509_POLICY_NODE_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:428,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:431,1
    - Dst: sk_X509_POLICY_NODE_delete
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:438,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - tree
    - curr
    argTypes:
    - X509_POLICY_TREE*
    - X509_POLICY_LEVEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 449
    functionName: tree_prune
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_X509_POLICY_NODE_num
    - STACK_OF
    - sk_X509_POLICY_NODE_value
    - sk_X509_POLICY_NODE_delete
    linkageType: ''
    returnType: int
    signature: int tree_prune(X509_POLICY_TREE *tree, X509_POLICY_LEVEL *curr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_policy_cache_set
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:608,1
    - Dst: tree_link_nodes
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:609,1
    - Dst: tree_link_any
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:613,1
    - Dst: TREE_PRINT
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:615,1
    - Dst: tree_prune
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 601
    functionDepth: 5
    functionLinenumber: 601
    functionLinenumberEnd: 621
    functionName: tree_evaluate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - tree_prune
    - tree_link_any
    - ossl_policy_cache_set
    - TREE_PRINT
    - tree_link_nodes
    linkageType: ''
    returnType: int
    signature: int tree_evaluate(X509_POLICY_TREE *tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - X509_POLICY_NODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: exnode_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void exnode_free(X509_POLICY_NODE *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_POLICY_NODE_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:637,1
    - Dst: sk_X509_POLICY_NODE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:638,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:641,1
    - Dst: sk_X509_POLICY_NODE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:642,1
    - Dst: ossl_policy_node_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:643,1
    - Dst: sk_X509_POLICY_DATA_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:646,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:647,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - tree
    argTypes:
    - X509_POLICY_TREE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 650
    functionName: X509_policy_tree_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - X509_free
    - sk_X509_POLICY_NODE_pop_free
    - sk_X509_POLICY_DATA_pop_free
    - sk_X509_POLICY_NODE_free
    - OPENSSL_free
    - ossl_policy_node_free
    linkageType: ''
    returnType: void
    signature: void X509_policy_tree_free(X509_POLICY_TREE *tree)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:668,1
    - Dst: tree_init
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:672,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:679,1
    - Dst: tree_evaluate
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:689,1
    - Dst: TREE_PRINT
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:690,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:695,1
    - Dst: tree_calculate_authority_set
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:703,1
    - Dst: tree_calculate_user_set
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:705,1
    - Dst: sk_X509_POLICY_NODE_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:707,1
    - Dst: X509_policy_tree_get0_user_policies
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:714,1
    - Dst: sk_X509_POLICY_NODE_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:715,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_tree.c:721,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - ptree
    - pexplicit_policy
    - certs
    - policy_oids
    - flags
    argTypes:
    - X509_POLICY_TREE**
    - int*
    - STACK_OF*
    - STACK_OF*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 660
    functionDepth: 6
    functionLinenumber: 660
    functionLinenumberEnd: 723
    functionName: X509_policy_check
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_tree.c
    functionUses: 0
    functionsReached:
    - tree_init
    - tree_calculate_user_set
    - X509_policy_tree_get0_user_policies
    - tree_evaluate
    - TREE_PRINT
    - tree_calculate_authority_set
    - sk_X509_POLICY_NODE_free
    - STACK_OF
    - sk_X509_POLICY_NODE_num
    - X509_policy_tree_free
    linkageType: ''
    returnType: int
    signature: "int 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:52,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - x
    - libctx
    - propq
    argTypes:
    - X509_PUBKEY*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: x509_pubkey_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int x509_pubkey_set0_libctx(X509_PUBKEY *x, OSSL_LIB_CTX *libctx,\n
      \                                  const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:71,1
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:75,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pp
    - len
    - libctx
    argTypes:
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: ossl_d2i_X509_PUBKEY_INTERNAL
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_ex
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_PUBKEY
    signature: "X509_PUBKEY *ossl_d2i_X509_PUBKEY_INTERNAL(const unsigned char **pp,\n
      \                                          long len, OSSL_LIB_CTX *libctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:82,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xpub
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: ossl_X509_PUBKEY_INTERNAL_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_free
    linkageType: ''
    returnType: void
    signature: void ossl_X509_PUBKEY_INTERNAL_free(X509_PUBKEY *xpub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:90,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:91,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:93,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: x509_pubkey_ex_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ASN1_BIT_STRING_free
    - OPENSSL_free
    - X509_ALGOR_free
    linkageType: ''
    returnType: void
    signature: void x509_pubkey_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:104,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: x509_pubkey_ex_populate
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_new
    - X509_ALGOR_new
    linkageType: ''
    returnType: int
    signature: int x509_pubkey_ex_populate(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:115,1
    - Dst: x509_pubkey_ex_populate
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:116,1
    - Dst: x509_pubkey_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:117,1
    - Dst: x509_pubkey_ex_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:118,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - pval
    - it
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: x509_pubkey_ex_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - x509_pubkey_ex_populate
    - ERR_raise
    - OPENSSL_zalloc
    - x509_pubkey_ex_free
    - x509_pubkey_set0_libctx
    linkageType: ''
    returnType: int
    signature: "int x509_pubkey_ex_new_ex(ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                                OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: x509_pubkey_ex_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:141,1
    - Dst: x509_pubkey_ex_populate
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:144,1
    - Dst: ASN1_item_ex_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:149,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:150,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:156,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:161,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:169,1
    - Dst: x509_pubkey_decode
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:175,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:177,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:192,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:194,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:202,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:204,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:208,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:217,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:223,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:224,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:230,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:234,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 10
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 128
    functionDepth: 13
    functionLinenumber: 128
    functionLinenumberEnd: 236
    functionName: x509_pubkey_ex_d2i_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - x509_pubkey_ex_populate
    - OBJ_obj2txt
    - x509_pubkey_ex_new_ex
    - ASN1_ITEM_rptr
    - OSSL_DECODER_CTX_new_for_pkey
    - ERR_set_mark
    - ERR_raise
    - OSSL_DECODER_from_data
    - EVP_PKEY_free
    - OPENSSL_free
    - x509_pubkey_decode
    - ERR_pop_to_mark
    - OPENSSL_memdup
    - OSSL_DECODER_CTX_free
    - ERR_clear_last_mark
    - ossl_assert
    - ASN1_item_ex_d2i
    linkageType: ''
    returnType: int
    signature: "int x509_pubkey_ex_d2i_ex(ASN1_VALUE **pval,\n                                 const
      unsigned char **in, long len,\n                                 const ASN1_ITEM
      *it, int tag, int aclass,\n                                 char opt, ASN1_TLC
      *ctx, OSSL_LIB_CTX *libctx,\n                                 const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:241,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: x509_pubkey_ex_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_ex_i2d
    linkageType: ''
    returnType: int
    signature: "int x509_pubkey_ex_i2d(const ASN1_VALUE **pval, unsigned char **out,\n
      \                             const ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_print
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:248,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - pval
    - indent
    - fname
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: x509_pubkey_ex_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_print
    linkageType: ''
    returnType: int
    signature: "int x509_pubkey_ex_print(BIO *out, const ASN1_VALUE **pval, int indent,\n
      \                               const char *fname, const ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:271,1
    - Dst: X509_PUBKEY_it
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:271,1
    - Dst: x509_pubkey_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:272,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: X509_PUBKEY_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_it
    - X509_PUBKEY_free
    - x509_pubkey_set0_libctx
    - ASN1_item_new_ex
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *X509_PUBKEY_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:285,1
    - Dst: x509_pubkey_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:288,1
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:289,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:290,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:291,1
    - Dst: x509_pubkey_ex_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:294,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:295,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:296,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:301,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:302,1
    - Dst: x509_pubkey_decode
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:305,1
    - Dst: x509_pubkey_ex_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:306,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:307,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:308,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 283
    functionDepth: 6
    functionLinenumber: 283
    functionLinenumberEnd: 315
    functionName: X509_PUBKEY_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_dup
    - ASN1_BIT_STRING_set
    - ASN1_ITEM_rptr
    - ERR_set_mark
    - OPENSSL_zalloc
    - ERR_raise
    - EVP_PKEY_dup
    - x509_pubkey_decode
    - ERR_pop_to_mark
    - x509_pubkey_ex_free
    - ASN1_BIT_STRING_new
    - ERR_clear_last_mark
    - x509_pubkey_set0_libctx
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *X509_PUBKEY_dup(const X509_PUBKEY *a)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:322,1
    - Dst: X509_PUBKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:327,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:328,1
    - Dst: EVP_PKEY*::ameth::pub_encode
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:332,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:337,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:340,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:344,1
    - Dst: OSSL_ENCODER_to_data
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:348,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:351,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:355,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:359,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:363,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:364,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:365,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:381,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:387,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - X509_PUBKEY**
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 317
    functionDepth: 12
    functionLinenumber: 317
    functionLinenumberEnd: 389
    functionName: X509_PUBKEY_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY*::ameth::pub_encode
    - X509_PUBKEY_free
    - EVP_PKEY_up_ref
    - evp_pkey_is_provided
    - d2i_X509_PUBKEY
    - ERR_raise
    - OSSL_ENCODER_CTX_free
    - EVP_PKEY_free
    - OPENSSL_free
    - OSSL_ENCODER_to_data
    - OSSL_ENCODER_CTX_new_for_pkey
    - X509_PUBKEY_new
    linkageType: ''
    returnType: int
    signature: int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:403,1
    - Dst: ENGINE_get_pkey_meth_engine
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:408,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:411,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:417,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:419,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:423,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:424,1
    - Dst: EVP_PKEY*::ameth::pub_decode
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:434,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:437,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:445,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - ppkey
    - key
    argTypes:
    - EVP_PKEY**
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 447
    functionName: x509_pubkey_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 2
    functionsReached:
    - ENGINE_get_pkey_meth_engine
    - OBJ_obj2nid
    - ENGINE_finish
    - EVP_PKEY_set_type
    - ERR_raise
    - EVP_PKEY*::ameth::pub_decode
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: int
    signature: int x509_pubkey_decode(EVP_PKEY **ppkey, const X509_PUBKEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:452,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 463
    functionName: X509_PUBKEY_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:467,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:469,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 474
    functionName: X509_PUBKEY_get
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_up_ref
    - X509_PUBKEY_get0
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:501,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:503,1
    - Dst: x509_pubkey_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:506,1
    - Dst: d2i_x509_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:511,1
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:514,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:515,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:521,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 7
    argNames:
    - a
    - pp
    - length
    - libctx
    - propq
    - force_legacy
    - "(*d2i_x509_pubkey)(X509_PUBKEY **a,\n                                                   const
      unsigned char **in,\n                                                   long
      len)"
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    - unsigned int
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 480
    functionDepth: 4
    functionLinenumber: 480
    functionLinenumberEnd: 527
    functionName: d2i_PUBKEY_int
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    - d2i_x509_pubkey
    - X509_PUBKEY_free
    - ERR_raise
    - OPENSSL_zalloc
    - EVP_PKEY_free
    - x509_pubkey_set0_libctx
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PUBKEY_int(EVP_PKEY **a,\n                                const
      unsigned char **pp, long length,\n                                OSSL_LIB_CTX
      *libctx, const char *propq,\n                                unsigned int force_legacy,\n
      \                               X509_PUBKEY *\n                                (*d2i_x509_pubkey)(X509_PUBKEY
      **a,\n                                                   const unsigned char
      **in,\n                                                   long len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY_int
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: ossl_d2i_PUBKEY_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - d2i_PUBKEY_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ossl_d2i_PUBKEY_legacy(EVP_PKEY **a, const unsigned char
      **pp,\n                                 long length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY_int
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - pp
    - length
    - libctx
    - propq
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 5
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: d2i_PUBKEY_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - d2i_PUBKEY_int
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PUBKEY_ex(EVP_PKEY **a, const unsigned char **pp, long
      length,\n                        OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 6
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: d2i_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached:
    - d2i_PUBKEY_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:556,1
    - Dst: EVP_PKEY*::ameth::pub_encode
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:560,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:562,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:565,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:568,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:571,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:571,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:574,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:576,1
    - Dst: BIO_get_mem_ptr
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:577,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:586,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:591,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:592,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 547
    functionDepth: 12
    functionLinenumber: 547
    functionLinenumberEnd: 596
    functionName: i2d_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY*::ameth::pub_encode
    - i2d_X509_PUBKEY
    - BIO_new
    - BIO_get_mem_ptr
    - memcpy
    - X509_PUBKEY_free
    - BIO_free
    - OSSL_ENCODER_CTX_free
    - OSSL_ENCODER_CTX_new_for_pkey
    - OSSL_ENCODER_to_bio
    - OSSL_ENCODER_CTX_get_num_encoders
    - X509_PUBKEY_new
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int i2d_PUBKEY(const EVP_PKEY *a, unsigned char **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:608,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:611,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:612,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - RSA**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 601
    functionDepth: 9
    functionLinenumber: 601
    functionLinenumberEnd: 621
    functionName: d2i_RSA_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_RSA
    - ossl_d2i_PUBKEY_legacy
    - RSA_free
    linkageType: ''
    returnType: RSA
    signature: RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:629,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:631,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:634,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:635,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - RSA*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 13
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: i2d_RSA_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_assign_RSA
    - EVP_PKEY_new
    linkageType: ''
    returnType: int
    signature: int i2d_RSA_PUBKEY(const RSA *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:649,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:652,1
    - Dst: EVP_PKEY_get1_DH
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:653,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:654,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DH**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 642
    functionDepth: 6
    functionLinenumber: 642
    functionLinenumberEnd: 663
    functionName: ossl_d2i_DH_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ossl_d2i_PUBKEY_legacy
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    - DH_free
    - EVP_PKEY_get1_DH
    linkageType: ''
    returnType: DH
    signature: DH *ossl_d2i_DH_PUBKEY(DH **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:671,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:673,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:676,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:677,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - DH*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 665
    functionDepth: 13
    functionLinenumber: 665
    functionLinenumberEnd: 681
    functionName: ossl_i2d_DH_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DH
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: int
    signature: int ossl_i2d_DH_PUBKEY(const DH *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:690,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:693,1
    - Dst: EVP_PKEY_get1_DH
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:694,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:695,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DH**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 704
    functionName: ossl_d2i_DHx_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ossl_d2i_PUBKEY_legacy
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    - DH_free
    - EVP_PKEY_get1_DH
    linkageType: ''
    returnType: DH
    signature: DH *ossl_d2i_DHx_PUBKEY(DH **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:712,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:714,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:717,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:718,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - DH*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 706
    functionDepth: 13
    functionLinenumber: 706
    functionLinenumberEnd: 722
    functionName: ossl_i2d_DHx_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int ossl_i2d_DHx_PUBKEY(const DH *a, unsigned char **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:733,1
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:736,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:737,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DSA**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 726
    functionDepth: 6
    functionLinenumber: 726
    functionLinenumberEnd: 746
    functionName: d2i_DSA_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_get1_DSA
    - DSA_free
    - ossl_d2i_PUBKEY_legacy
    linkageType: ''
    returnType: DSA
    signature: DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSA_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:756,1
    - Dst: DSA_get0_pqg
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:759,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:761,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:766,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DSA**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 749
    functionDepth: 7
    functionLinenumber: 749
    functionLinenumberEnd: 770
    functionName: ossl_d2i_DSA_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - d2i_DSA_PUBKEY
    - DSA_free
    - DSA_get0_pqg
    linkageType: ''
    returnType: DSA
    signature: DSA *ossl_d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:778,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:780,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:783,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:784,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - DSA*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 772
    functionDepth: 13
    functionLinenumber: 772
    functionLinenumberEnd: 788
    functionName: i2d_DSA_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_assign_DSA
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_PUBKEY(const DSA *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:800,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:803,1
    - Dst: EVP_PKEY_get1_EC_KEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:805,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:806,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 792
    functionDepth: 9
    functionLinenumber: 792
    functionLinenumberEnd: 815
    functionName: d2i_EC_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ossl_d2i_PUBKEY_legacy
    - EC_KEY_free
    - EVP_PKEY_get1_EC_KEY
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:824,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:825,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:828,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:829,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 817
    functionDepth: 13
    functionLinenumber: 817
    functionLinenumberEnd: 833
    functionName: i2d_EC_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - EVP_PKEY_assign_EC_KEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: int
    signature: int i2d_EC_PUBKEY(const EC_KEY *a, unsigned char **pp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:843,1
    - Dst: ossl_evp_pkey_get1_ED25519
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:846,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:847,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ECX_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 835
    functionDepth: 6
    functionLinenumber: 835
    functionLinenumberEnd: 856
    functionName: ossl_d2i_ED25519_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ossl_ecx_key_free
    - ossl_d2i_PUBKEY_legacy
    - ossl_evp_pkey_get1_ED25519
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_d2i_ED25519_PUBKEY(ECX_KEY **a,\n                                 const
      unsigned char **pp, long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:865,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:866,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:869,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:870,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ECX_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 858
    functionDepth: 13
    functionLinenumber: 858
    functionLinenumberEnd: 874
    functionName: ossl_i2d_ED25519_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int ossl_i2d_ED25519_PUBKEY(const ECX_KEY *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:884,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:887,1
    - Dst: ossl_evp_pkey_get1_ED448
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:888,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:889,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:894,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ECX_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 876
    functionDepth: 6
    functionLinenumber: 876
    functionLinenumberEnd: 898
    functionName: ossl_d2i_ED448_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ossl_d2i_PUBKEY_legacy
    - ossl_ecx_key_free
    - ossl_evp_pkey_get1_ED448
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_d2i_ED448_PUBKEY(ECX_KEY **a,\n                               const
      unsigned char **pp, long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:907,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:908,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:911,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:912,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ECX_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 900
    functionDepth: 13
    functionLinenumber: 900
    functionLinenumberEnd: 916
    functionName: ossl_i2d_ED448_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int ossl_i2d_ED448_PUBKEY(const ECX_KEY *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:926,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:929,1
    - Dst: ossl_evp_pkey_get1_X25519
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:930,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:931,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ECX_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 918
    functionDepth: 6
    functionLinenumber: 918
    functionLinenumberEnd: 940
    functionName: ossl_d2i_X25519_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_free
    - ossl_d2i_PUBKEY_legacy
    - EVP_PKEY_get_id
    - ossl_evp_pkey_get1_X25519
    - EVP_PKEY_free
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_d2i_X25519_PUBKEY(ECX_KEY **a,\n                                const
      unsigned char **pp, long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:949,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:950,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:953,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:954,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ECX_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 942
    functionDepth: 13
    functionLinenumber: 942
    functionLinenumberEnd: 958
    functionName: ossl_i2d_X25519_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int ossl_i2d_X25519_PUBKEY(const ECX_KEY *a, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_d2i_PUBKEY_legacy
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:968,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:971,1
    - Dst: ossl_evp_pkey_get1_X448
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:972,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:973,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ECX_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 960
    functionDepth: 6
    functionLinenumber: 960
    functionLinenumberEnd: 982
    functionName: ossl_d2i_X448_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - ossl_evp_pkey_get1_X448
    - ossl_ecx_key_free
    - ossl_d2i_PUBKEY_legacy
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_d2i_X448_PUBKEY(ECX_KEY **a,\n                              const
      unsigned char **pp, long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:991,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:992,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:995,1
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:996,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ECX_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 984
    functionDepth: 13
    functionLinenumber: 984
    functionLinenumberEnd: 1000
    functionName: ossl_i2d_X448_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int ossl_i2d_X448_PUBKEY(const ECX_KEY *a, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1008,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1011,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1019
    functionName: X509_PUBKEY_set0_param
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_ALGOR_set0
    linkageType: ''
    returnType: int
    signature: "int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj,\n
      \                          int ptype, void *pval,\n                           unsigned
      char *penc, int penclen)"
  - BBCount: 4
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1034
    functionName: X509_PUBKEY_get0_param
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg,\n                           const
      unsigned char **pk, int *ppklen,\n                           X509_ALGOR **pa,
      const X509_PUBKEY *pub)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1041
    functionName: X509_get0_pubkey_bitstr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1053,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1054,1
    - Dst: X509_ALGOR_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1056,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1058,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1059,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/crypto/x509/x_pubkey.c:1061,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_PUBKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1044
    functionDepth: 3
    functionLinenumber: 1044
    functionLinenumberEnd: 1062
    functionName: X509_PUBKEY_eq
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_eq
    - X509_PUBKEY_get0
    - X509_ALGOR_cmp
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int X509_PUBKEY_eq(const X509_PUBKEY *a, const X509_PUBKEY *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - plibctx
    - ppropq
    - key
    argTypes:
    - OSSL_LIB_CTX**
    - char**
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1072
    functionName: ossl_x509_PUBKEY_get0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_pubkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_x509_PUBKEY_get0_libctx(OSSL_LIB_CTX **plibctx, const char
      **ppropq,\n                                 const X509_PUBKEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: X509_LOOKUP_hash_dir
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_LOOKUP_METHOD
    signature: X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:91,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:91,1
    - Dst: add_cert_dir
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:94,1
    - Dst: add_cert_dir
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:96,1
    - Dst: X509_get_default_cert_dir
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:99,1
    - Dst: add_cert_dir
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - cmd
    - argp
    - argl
    - retp
    argTypes:
    - X509_LOOKUP*
    - int
    - char*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 106
    functionName: dir_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - X509_get_default_cert_dir_env
    - ossl_safe_getenv
    - ERR_raise
    - X509_get_default_cert_dir
    - add_cert_dir
    linkageType: ''
    returnType: int
    signature: "int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,\n
      \                   char **retp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:113,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:117,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:118,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:122,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:125,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - lu
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 134
    functionName: new_dir
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - BUF_MEM_new
    - ERR_raise
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: int new_dir(X509_LOOKUP *lu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - BY_DIR_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: by_dir_hash_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void by_dir_hash_free(BY_DIR_HASH *hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BY_DIR_HASH**
    - BY_DIR_HASH**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: by_dir_hash_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int by_dir_hash_cmp(const BY_DIR_HASH *const *a,\n                           const
      BY_DIR_HASH *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:153,1
    - Dst: sk_BY_DIR_HASH_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ent
    argTypes:
    - BY_DIR_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: by_dir_entry_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_BY_DIR_HASH_pop_free
    linkageType: ''
    returnType: void
    signature: void by_dir_entry_free(BY_DIR_ENTRY *ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_BY_DIR_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:162,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:163,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:164,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lu
    argTypes:
    - X509_LOOKUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: free_dir
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    - sk_BY_DIR_ENTRY_pop_free
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void free_dir(X509_LOOKUP *lu)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:175,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:190,1
    - Dst: sk_BY_DIR_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:191,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:192,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:192,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:195,1
    - Dst: sk_BY_DIR_ENTRY_new_null
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:200,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:204,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:206,1
    - Dst: sk_BY_DIR_HASH_new
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:210,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:211,1
    - Dst: by_dir_entry_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:213,1
    - Dst: sk_BY_DIR_ENTRY_push
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:216,1
    - Dst: by_dir_entry_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:218,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 3
    argNames:
    - ctx
    - dir
    - type
    argTypes:
    - BY_DIR*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 224
    functionName: add_cert_dir
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 1
    functionsReached:
    - by_dir_entry_free
    - OPENSSL_malloc
    - sk_BY_DIR_ENTRY_value
    - ERR_raise
    - sk_BY_DIR_HASH_new
    - sk_BY_DIR_ENTRY_push
    - OPENSSL_strndup
    - strlen
    - strncmp
    - sk_BY_DIR_ENTRY_new_null
    - sk_BY_DIR_ENTRY_num
    linkageType: ''
    returnType: int
    signature: int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:254,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:259,1
    - Dst: X509_NAME_hash_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:264,1
    - Dst: sk_BY_DIR_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:267,1
    - Dst: sk_BY_DIR_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:272,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:273,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:275,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:280,1
    - Dst: sk_BY_DIR_HASH_find
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:282,1
    - Dst: sk_BY_DIR_HASH_value
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:284,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:290,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:299,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:317,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:322,1
    - Dst: stat
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:331,1
    - Dst: X509_load_cert_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:337,1
    - Dst: X509_load_crl_file
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:341,1
    - Dst: X509_STORE_lock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:351,1
    - Dst: sk_X509_OBJECT_find
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:353,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:354,1
    - Dst: X509_STORE_unlock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:355,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:364,1
    - Dst: sk_BY_DIR_HASH_find
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:372,1
    - Dst: sk_BY_DIR_HASH_value
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:373,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:376,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:378,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:379,1
    - Dst: sk_BY_DIR_HASH_push
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:385,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:386,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:387,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:388,1
    - Dst: sk_BY_DIR_HASH_sort
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:397,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:402,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:409,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:415,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:421,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 132
    argCount: 6
    argNames:
    - xl
    - type
    - name
    - ret
    - libctx
    - propq
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 226
    functionDepth: 12
    functionLinenumber: 226
    functionLinenumberEnd: 423
    functionName: get_cert_by_subject_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_snprintf
    - sk_BY_DIR_ENTRY_value
    - strlen
    - sk_X509_OBJECT_value
    - CRYPTO_THREAD_read_lock
    - BUF_MEM_grow
    - X509_load_cert_file_ex
    - X509_NAME_hash_ex
    - CRYPTO_THREAD_unlock
    - ERR_clear_error
    - ERR_raise
    - OPENSSL_free
    - X509_STORE_unlock
    - X509_load_crl_file
    - BUF_MEM_free
    - X509_STORE_lock
    - CRYPTO_THREAD_write_lock
    - sk_BY_DIR_HASH_push
    - sk_X509_OBJECT_find
    - OPENSSL_malloc
    - BUF_MEM_new
    - stat
    - sk_BY_DIR_HASH_find
    - sk_BY_DIR_HASH_sort
    - sk_BY_DIR_HASH_value
    - sk_BY_DIR_ENTRY_num
    linkageType: ''
    returnType: int
    signature: "int get_cert_by_subject_ex(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,\n
      \                                 const X509_NAME *name, X509_OBJECT *ret,\n
      \                                 OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_by_subject_ex
      Src: /src/openssl-3.0.15/crypto/x509/by_dir.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xl
    - type
    - name
    - ret
    argTypes:
    - X509_LOOKUP*
    - X509_LOOKUP_TYPE
    - X509_NAME*
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 13
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: get_cert_by_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/by_dir.c
    functionUses: 0
    functionsReached:
    - get_cert_by_subject_ex
    linkageType: ''
    returnType: int
    signature: "int get_cert_by_subject(X509_LOOKUP *xl, X509_LOOKUP_TYPE type,\n
      \                              const X509_NAME *name, X509_OBJECT *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: str_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *str_copy(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: str_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void str_free(char *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:46,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:48,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:54,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:60,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:66,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:71,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:72,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 80
    functionName: int_x509_param_set_hosts
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_push
    - memchr
    - sk_OPENSSL_STRING_new_null
    - sk_OPENSSL_STRING_num
    - OPENSSL_free
    - OPENSSL_strndup
    - strlen
    - sk_OPENSSL_STRING_free
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: int
    signature: "int int_x509_param_set_hosts(X509_VERIFY_PARAM *vpm, int mode,\n                                    const
      char *name, size_t namelen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: X509_VERIFY_PARAM_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:102,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:104,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: X509_VERIFY_PARAM_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - sk_ASN1_OBJECT_pop_free
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: test_x509_verify_param_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_x509_verify_param_copy(field, def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: x509_verify_param_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x509_verify_param_copy(field, def)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:172,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:173,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:174,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:175,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:190,1
    - Dst: X509_VERIFY_PARAM_set1_policies
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:191,1
    - Dst: x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:195,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:197,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:198,1
    - Dst: sk_OPENSSL_STRING_deep_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:202,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:208,1
    - Dst: X509_VERIFY_PARAM_set1_email
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:209,1
    - Dst: test_x509_verify_param_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:213,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:214,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 219
    functionName: X509_VERIFY_PARAM_inherit
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set1_ip
    - sk_OPENSSL_STRING_deep_copy
    - X509_VERIFY_PARAM_set1_policies
    - X509_VERIFY_PARAM_set1_email
    - test_x509_verify_param_copy
    - x509_verify_param_copy
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *dest,\n                              const
      X509_VERIFY_PARAM *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:228,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 236
    functionName: X509_VERIFY_PARAM_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - X509_VERIFY_PARAM_inherit
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,\n                           const
      X509_VERIFY_PARAM *from)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:245,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:247,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:250,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - pdest
    - pdestlen
    - src
    - srclen
    argTypes:
    - char**
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 261
    functionName: int_x509_param_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int int_x509_param_set1(char **pdest, size_t *pdestlen,\n                               const
      char *src, size_t srclen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:265,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - param
    - name
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: X509_VERIFY_PARAM_set1_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: X509_VERIFY_PARAM_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned
      long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: X509_VERIFY_PARAM_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,\n                                  unsigned
      long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: X509_VERIFY_PARAM_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: X509_VERIFY_PARAM_get_inh_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: X509_VERIFY_PARAM_set_inh_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, uint32_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - purpose
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: X509_VERIFY_PARAM_set_purpose
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_set
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_TRUST_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - trust
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: X509_VERIFY_PARAM_set_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - X509_TRUST_set
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - depth
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: X509_VERIFY_PARAM_set_depth
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - auth_level
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: X509_VERIFY_PARAM_set_auth_level
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int
      auth_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: X509_VERIFY_PARAM_get_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - param
    - t
    argTypes:
    - X509_VERIFY_PARAM*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: X509_VERIFY_PARAM_set_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:336,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - param
    - policy
    argTypes:
    - X509_VERIFY_PARAM*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: X509_VERIFY_PARAM_add0_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_OBJECT_push
    - sk_ASN1_OBJECT_new_null
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,\n                                  ASN1_OBJECT
      *policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - idx
    argTypes:
    - X509_VERIFY_PARAM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: X509_VERIFY_PARAM_get0_host
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_value
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set_hosts
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: X509_VERIFY_PARAM_set1_host
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - int_x509_param_set_hosts
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,\n                                const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set_hosts
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - name
    - namelen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: X509_VERIFY_PARAM_add1_host
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - int_x509_param_set_hosts
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,\n                                const
      char *name, size_t namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - param
    - flags
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: X509_VERIFY_PARAM_set_hostflags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,\n                                     unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: X509_VERIFY_PARAM_get_hostflags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM
      *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: X509_VERIFY_PARAM_get0_peername
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 430
    functionName: X509_VERIFY_PARAM_move_peername
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *to,\n                                     X509_VERIFY_PARAM
      *from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: X509_VERIFY_PARAM_get0_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_x509_param_set1
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - param
    - email
    - emaillen
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: X509_VERIFY_PARAM_set1_email
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - int_x509_param_set1
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,\n                                 const
      char *email, size_t emaillen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - param
    - plen
    argTypes:
    - X509_VERIFY_PARAM*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: int_X509_VERIFY_PARAM_get0_ip
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *int_X509_VERIFY_PARAM_get0_ip(X509_VERIFY_PARAM *param,
      size_t *plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_X509_VERIFY_PARAM_get0_ip
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:459,1
    - Dst: ossl_ipaddr_to_asc
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: X509_VERIFY_PARAM_get1_ip_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - ossl_ipaddr_to_asc
    - int_X509_VERIFY_PARAM_get0_ip
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:468,1
    - Dst: int_x509_param_set1
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - param
    - ip
    - iplen
    argTypes:
    - X509_VERIFY_PARAM*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: X509_VERIFY_PARAM_set1_ip
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 1
    functionsReached:
    - int_x509_param_set1
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,\n                              const
      unsigned char *ip, size_t iplen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_a2i_ipadd
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:478,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - param
    - ipasc
    argTypes:
    - X509_VERIFY_PARAM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 483
    functionName: X509_VERIFY_PARAM_set1_ip_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - ossl_a2i_ipadd
    - X509_VERIFY_PARAM_set1_ip
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char
      *ipasc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: X509_VERIFY_PARAM_get_depth
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: X509_VERIFY_PARAM_get_auth_level
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: X509_VERIFY_PARAM_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_VERIFY_PARAM*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: table_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int table_cmp(const X509_VERIFY_PARAM *a, const X509_VERIFY_PARAM *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_VERIFY_PARAM**
    - X509_VERIFY_PARAM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: param_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int param_cmp(const X509_VERIFY_PARAM *const *a,\n                     const
      X509_VERIFY_PARAM *const *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:588,1
    - Dst: sk_X509_VERIFY_PARAM_find
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:592,1
    - Dst: sk_X509_VERIFY_PARAM_delete
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:594,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:595,1
    - Dst: sk_X509_VERIFY_PARAM_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - param
    argTypes:
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 602
    functionName: X509_VERIFY_PARAM_add0_table
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_push
    - sk_X509_VERIFY_PARAM_delete
    - X509_VERIFY_PARAM_free
    - sk_X509_VERIFY_PARAM_find
    - sk_X509_VERIFY_PARAM_new
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:606,1
    - Dst: sk_X509_VERIFY_PARAM_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: X509_VERIFY_PARAM_get_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_num
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int X509_VERIFY_PARAM_get_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:615,1
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: X509_VERIFY_PARAM_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_value
    - OSSL_NELEM
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_find
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:629,1
    - Dst: sk_X509_VERIFY_PARAM_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:631,1
    - Dst: OBJ_bsearch_table
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:633,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 634
    functionName: X509_VERIFY_PARAM_lookup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_find
    - OSSL_NELEM
    - OBJ_bsearch_table
    - sk_X509_VERIFY_PARAM_value
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_VERIFY_PARAM_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vpm.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: X509_VERIFY_PARAM_table_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vpm.c
    functionUses: 0
    functionsReached:
    - sk_X509_VERIFY_PARAM_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_VERIFY_PARAM_table_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_print_ex_fp
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: X509_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_print_ex_fp
    linkageType: ''
    returnType: int
    signature: int X509_print_fp(FILE *fp, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:32,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:33,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:36,1
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:37,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - x
    - nmflag
    - cflag
    argTypes:
    - FILE*
    - X509*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: X509_print_ex_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - X509_print_ex
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: "int X509_print_ex_fp(FILE *fp, X509 *x, unsigned long nmflag,\n                     unsigned
      long cflag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: X509_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_print_ex
    linkageType: ''
    returnType: int
    signature: int X509_print(BIO *bp, X509 *x)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:67,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:69,1
    - Dst: X509_get_version
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:78,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:83,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:85,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:89,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:90,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:91,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:104,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:108,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:112,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:121,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:123,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:130,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:132,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:132,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:135,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:139,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:141,1
    - Dst: ossl_asn1_time_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:143,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:143,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:145,1
    - Dst: ossl_asn1_time_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:147,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:147,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:149,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:153,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:155,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:156,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:158,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:162,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:164,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:167,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:169,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:171,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:174,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:176,1
    - Dst: ERR_print_errors
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:177,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:179,1
    - Dst: X509_get0_uids
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:185,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:187,1
    - Dst: X509_signature_dump
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:193,1
    - Dst: X509_signature_dump
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:195,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:201,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:202,1
    - Dst: X509_get0_signature
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:208,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:209,1
    - Dst: X509_aux_print
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:218,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 171
    argCount: 4
    argNames:
    - bp
    - x
    - nmflags
    - cflag
    argTypes:
    - BIO*
    - X509*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 220
    functionName: X509_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 3
    functionsReached:
    - X509V3_extensions_print
    - BIO_puts
    - X509_get0_notBefore
    - X509_get0_tbs_sigalg
    - ERR_print_errors
    - BIO_printf
    - ossl_asn1_time_print_ex
    - i2a_ASN1_OBJECT
    - X509_PUBKEY_get0_param
    - X509_signature_print
    - X509_get0_pubkey
    - ASN1_INTEGER_get
    - X509_get_issuer_name
    - X509_get_version
    - EVP_PKEY_print_public
    - X509_get0_signature
    - X509_signature_dump
    - OPENSSL_free
    - X509_NAME_print_ex
    - X509_aux_print
    - X509_get0_extensions
    - X509_get_X509_PUBKEY
    - ERR_set_mark
    - X509_get0_notAfter
    - ERR_pop_to_mark
    - X509_get0_uids
    - X509_get0_serialNumber
    - BIO_write
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags,\n                  unsigned
      long cflag)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:238,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:240,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:241,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:244,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:246,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:248,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:254,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:257,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:263,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:266,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:271,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:271,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:272,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:275,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:278,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:279,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:283,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:284,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 52
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 222
    functionDepth: 11
    functionLinenumber: 222
    functionLinenumberEnd: 286
    functionName: X509_ocspid_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - OPENSSL_malloc
    - EVP_MD_free
    - OPENSSL_free
    - X509_get_subject_name
    - i2d_X509_NAME
    - X509_get0_pubkey_bitstr
    - BIO_printf
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int X509_ocspid_print(BIO *bp, X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:297,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:299,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:302,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - sig
    - indent
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: X509_signature_dump
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - BIO_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:316,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:321,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:323,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:327,1
    - Dst: EVP_PKEY_asn1_find
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:328,1
    - Dst: EVP_PKEY_ASN1_METHOD*::sig_print
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:330,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:333,1
    - Dst: X509_signature_dump
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:336,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - bp
    - sigalg
    - sig
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 338
    functionName: X509_signature_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - OBJ_find_sigid_algs
    - EVP_PKEY_ASN1_METHOD*::sig_print
    - OBJ_obj2nid
    - EVP_PKEY_asn1_find
    - X509_signature_dump
    - BIO_write
    - BIO_printf
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int X509_signature_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:343,1
    - Dst: X509_trusted
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:347,1
    - Dst: X509_get0_trust_objects
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:349,1
    - Dst: X509_get0_reject_objects
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:350,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:353,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:354,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:356,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:359,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:360,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:361,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:363,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:365,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:368,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:369,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:371,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:374,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:375,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:376,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:378,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:380,1
    - Dst: X509_alias_get0
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:381,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:383,1
    - Dst: X509_keyid_get0
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:384,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:386,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:388,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - out
    - x
    - indent
    argTypes:
    - BIO*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 392
    functionName: X509_aux_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 1
    functionsReached:
    - X509_keyid_get0
    - X509_get0_trust_objects
    - X509_trusted
    - OBJ_obj2txt
    - BIO_puts
    - sk_ASN1_OBJECT_num
    - sk_ASN1_OBJECT_value
    - STACK_OF
    - BIO_write
    - BIO_printf
    - X509_get0_reject_objects
    - X509_alias_get0
    linkageType: ''
    returnType: int
    signature: int X509_aux_print(BIO *out, X509 *x, int indent)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:404,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:405,1
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:406,1
    - Dst: X509_check_issued
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:408,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:409,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:412,1
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:413,1
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:416,1
    - Dst: X509_cmp_current_time
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:419,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:419,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:420,1
    - Dst: X509_cmp_current_time
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:422,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:422,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:423,1
    - Dst: X509_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:425,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - bio
    - cert
    - neg_cflags
    argTypes:
    - BIO*
    - X509*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 398
    functionDepth: 6
    functionLinenumber: 398
    functionLinenumberEnd: 427
    functionName: ossl_x509_print_ex_brief
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_check_issued
    - X509_print_ex
    - X509_get0_notBefore
    - X509_get0_notAfter
    - BIO_printf
    - X509_cmp_current_time
    linkageType: ''
    returnType: int
    signature: int ossl_x509_print_ex_brief(BIO *bio, X509 *cert, unsigned long neg_cflags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:433,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:434,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:436,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:437,1
    - Dst: ossl_x509_print_ex_brief
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:440,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:442,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - bio
    - certs
    argTypes:
    - BIO*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: print_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509V3_extensions_print
    - sk_X509_value
    - ossl_x509_print_ex_brief
    - sk_X509_num
    - BIO_printf
    - X509_get0_extensions
    linkageType: ''
    returnType: int
    signature: int print_certs(BIO *bio, const STACK_OF(X509) *certs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:454,1
    - Dst: X509_STORE_get1_all_certs
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:454,1
    - Dst: print_certs
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:455,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:457,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bio
    - store
    argTypes:
    - BIO*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 8
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: print_store_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - sk_X509_pop_free
    - print_certs
    - STACK_OF
    - BIO_printf
    - X509_STORE_get1_all_certs
    linkageType: ''
    returnType: int
    signature: int print_store_certs(BIO *bio, X509_STORE *store)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:468,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:469,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:469,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:471,1
    - Dst: X509_STORE_CTX_get0_parent_ctx
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:472,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:475,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:476,1
    - Dst: X509_STORE_CTX_get0_store
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:478,1
    - Dst: X509_STORE_get0_param
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:479,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:485,1
    - Dst: X509_VERIFY_PARAM_get0_host
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:486,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:487,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:488,1
    - Dst: X509_VERIFY_PARAM_get0_email
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:491,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:493,1
    - Dst: X509_VERIFY_PARAM_get1_ip_asc
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:496,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:498,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:499,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:506,1
    - Dst: ossl_x509_print_ex_brief
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:507,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:507,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:516,1
    - Dst: print_certs
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:517,1
    - Dst: X509_STORE_CTX_get0_untrusted
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:517,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:518,1
    - Dst: print_store_certs
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:519,1
    - Dst: X509_STORE_CTX_get0_store
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:519,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:521,1
    - Dst: ERR_add_error_mem_bio
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:522,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/t_x509.c:523,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 465
    functionDepth: 9
    functionLinenumber: 465
    functionLinenumberEnd: 527
    functionName: X509_STORE_CTX_print_verify_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_x509.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get0_host
    - X509_STORE_CTX_get_error
    - BIO_printf
    - BIO_s_mem
    - BIO_new
    - X509_VERIFY_PARAM_get0_email
    - print_certs
    - print_store_certs
    - X509_STORE_get0_param
    - X509_STORE_CTX_get_current_cert
    - ERR_add_error_mem_bio
    - X509_verify_cert_error_string
    - X509_VERIFY_PARAM_get1_ip_asc
    - ossl_x509_print_ex_brief
    - ERR_raise
    - OPENSSL_free
    - X509_STORE_CTX_get_error_depth
    - X509_STORE_CTX_get0_untrusted
    - BIO_free
    - X509_STORE_CTX_get0_parent_ctx
    - X509_STORE_CTX_get0_store
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_print_verify_cb(int ok, X509_STORE_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_INTEGER_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:98,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:99,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:103,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:104,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:110,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:111,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:113,1
    - Dst: strtol
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:119,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:120,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:125,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:126,1
    - Dst: sk_ASN1_INTEGER_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:128,1
    - Dst: sk_ASN1_INTEGER_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:137,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c:138,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 140
    functionName: v2i_TLS_FEATURE
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_tlsf.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - sk_ASN1_INTEGER_pop_free
    - OPENSSL_strcasecmp
    - sk_CONF_VALUE_num
    - X509V3_conf_add_error_name_value
    - strtol
    - ERR_raise
    - sk_ASN1_INTEGER_push
    - ASN1_INTEGER_new
    - sk_ASN1_INTEGER_new_null
    - ASN1_INTEGER_free
    - sk_CONF_VALUE_value
    - OSSL_NELEM
    linkageType: ''
    returnType: TLS_FEATURE
    signature: "TLS_FEATURE *v2i_TLS_FEATURE(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: POLICY_CONSTRAINTS_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:64,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:67,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:68,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:69,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:70,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:72,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:73,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:83,1
    - Dst: POLICY_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pcons.c:89,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: v2i_POLICY_CONSTRAINTS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_pcons.c
    functionUses: 0
    functionsReached:
    - POLICY_CONSTRAINTS_free
    - sk_CONF_VALUE_num
    - ERR_raise_data
    - ERR_raise
    - POLICY_CONSTRAINTS_new
    - X509V3_get_value_int
    - strcmp
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: void
    signature: "void *v2i_POLICY_CONSTRAINTS(const X509V3_EXT_METHOD *method,\n                                    X509V3_CTX
      *ctx,\n                                    STACK_OF(CONF_VALUE) *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - oct
    argTypes:
    - X509V3_EXT_METHOD*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: i2s_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_skid.c
    functionUses: 0
    functionsReached:
    - OPENSSL_buf2hexstr
    linkageType: ''
    returnType: char
    signature: "char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,\n                            const
      ASN1_OCTET_STRING *oct)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:40,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:44,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: s2i_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_skid.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    - OPENSSL_hexstr2buf
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,\n
      \                                        X509V3_CTX *ctx, const char *str)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:67,1
    - Dst: ossl_x509_PUBKEY_get0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:70,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:72,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:74,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:75,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:79,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:80,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:81,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:82,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:86,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - pubkey
    argTypes:
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 55
    functionDepth: 11
    functionLinenumber: 55
    functionLinenumberEnd: 89
    functionName: ossl_x509_pubkey_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_skid.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - ERR_raise
    - ASN1_OCTET_STRING_new
    - ossl_x509_PUBKEY_get0_libctx
    - X509_PUBKEY_get0_param
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *ossl_x509_pubkey_hash(X509_PUBKEY *pubkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:94,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:95,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:97,1
    - Dst: s2i_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:98,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:104,1
    - Dst: ossl_x509_pubkey_hash
      Src: /src/openssl-3.0.15/crypto/x509/v3_skid.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - method
    - ctx
    - str
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 12
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: s2i_skey_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_skid.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - ASN1_OCTET_STRING_new
    - strcmp
    - s2i_ASN1_OCTET_STRING
    - ossl_x509_pubkey_hash
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,\n                                      X509V3_CTX
      *ctx, char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ok
    - e
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: null_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_callback(int ok, X509_STORE_CTX *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:98,1
    - Dst: ossl_x509v3_cache_extensions
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:101,1
    - Dst: X509_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - cert
    - verify_signature
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: X509_self_signed
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - ossl_x509v3_cache_extensions
    - X509_verify
    - ERR_raise
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int X509_self_signed(X509 *cert, int verify_signature)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:116,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:122,1
    - Dst: X509_STORE_CTX*::lookup_certs
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:123,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:123,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:124,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:128,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:129,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:130,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:136,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - result
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 143
    functionName: lookup_cert_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - X509_up_ref
    - sk_X509_pop_free
    - ERR_set_mark
    - sk_X509_num
    - STACK_OF
    - ERR_pop_to_mark
    - X509_cmp
    - X509_STORE_CTX*::lookup_certs
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int lookup_cert_match(X509 **result, X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:160,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - x
    - depth
    - err
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: verify_cb_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::verify_cb
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int verify_cb_cert(X509_STORE_CTX *ctx, X509 *x, int depth, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cond
    - ','
    - ctx
    - ','
    - cert
    - ','
    - depth
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: CB_FAIL_IF
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CB_FAIL_IF(cond, ctx, cert, depth, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: verify_cb_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::verify_cb
    linkageType: ''
    returnType: int
    signature: int verify_cb_crl(X509_STORE_CTX *ctx, int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:186,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:192,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:198,1
    - Dst: check_key_level
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:198,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:204,1
    - Dst: check_sig_level
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: check_auth_level
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - check_key_level
    - sk_X509_value
    - sk_X509_num
    - check_sig_level
    - CB_FAIL_IF
    linkageType: ''
    returnType: int
    signature: int check_auth_level(X509_STORE_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: build_chain
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:216,1
    - Dst: check_extensions
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:217,1
    - Dst: check_auth_level
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:218,1
    - Dst: check_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:219,1
    - Dst: X509_get_pubkey_parameters
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:220,1
    - Dst: X509_STORE_CTX*::check_revocation
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:221,1
    - Dst: X509_chain_check_suiteb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:224,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:226,1
    - Dst: X509_STORE_CTX*::verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:229,1
    - Dst: internal_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:229,1
    - Dst: check_name_constraints
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:233,1
    - Dst: X509v3_asid_validate_path
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:238,1
    - Dst: X509v3_addr_validate_path
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:240,1
    - Dst: X509_STORE_CTX*::check_policy
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:246,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 211
    functionDepth: 7
    functionLinenumber: 211
    functionLinenumberEnd: 248
    functionName: verify_chain
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX*::check_policy
    - X509_STORE_CTX*::verify
    - internal_verify
    - X509v3_addr_validate_path
    - X509v3_asid_validate_path
    - check_extensions
    - X509_get_pubkey_parameters
    - check_auth_level
    - X509_chain_check_suiteb
    - check_id
    - CB_FAIL_IF
    - build_chain
    - check_name_constraints
    - X509_STORE_CTX*::check_revocation
    linkageType: ''
    returnType: int
    signature: int verify_chain(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:253,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:256,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:257,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: X509_STORE_CTX_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - sk_X509_value
    - X509_verify_cert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_verify(X509_STORE_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:280,1
    - Dst: ossl_x509_add_cert_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:285,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:292,1
    - Dst: check_key_level
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:292,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:295,1
    - Dst: dane_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:295,1
    - Dst: verify_chain
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 261
    functionDepth: 8
    functionLinenumber: 261
    functionLinenumberEnd: 305
    functionName: X509_verify_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - check_key_level
    - ERR_raise
    - DANETLS_ENABLED
    - CB_FAIL_IF
    - verify_chain
    - dane_verify
    - ossl_x509_add_cert_new
    linkageType: ''
    returnType: int
    signature: int X509_verify_cert(X509_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:328,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:329,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:330,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:331,1
    - Dst: sk_X509_contains
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:332,1
    - Dst: ossl_x509_check_cert_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:333,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:335,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:335,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - sk
    - x
    argTypes:
    - X509_STORE_CTX*
    - STACK_OF*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 341
    functionName: find_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_contains
    - sk_X509_value
    - ASN1_TIME_compare
    - X509_get0_notAfter
    - sk_X509_num
    - ossl_x509_check_cert_time
    - X509_STORE_CTX*::check_issued
    linkageType: ''
    returnType: X509
    signature: X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_likely_issued
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - X509_STORE_CTX *ctx
    - x
    - issuer
    argTypes:
    - ossl_unused
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: check_issued
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - ossl_x509_likely_issued
    linkageType: ''
    returnType: int
    signature: int check_issued(ossl_unused X509_STORE_CTX *ctx, X509 *x, X509 *issuer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:363,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - issuer
    - ctx
    - x
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: get_issuer_sk
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - find_issuer
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int get_issuer_sk(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:376,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:376,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:382,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:383,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:384,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:384,1
    - Dst: X509_add_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:385,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - nm
    argTypes:
    - X509_STORE_CTX*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: lookup_certs_sk
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - sk_X509_pop_free
    - X509_add_cert
    - sk_X509_num
    - sk_X509_new_null
    - STACK_OF
    - X509_NAME_cmp
    - X509_get_subject_name
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *lookup_certs_sk(X509_STORE_CTX *ctx,\n                                       const
      X509_NAME *nm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:424,1
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:432,1
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:444,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 445
    functionName: check_purpose
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 5
    functionsReached:
    - verify_cb_cert
    - X509_check_purpose
    - X509_check_trust
    linkageType: ''
    returnType: int
    signature: "int check_purpose(X509_STORE_CTX *ctx, X509 *x, int purpose, int depth,\n
      \                        int must_be_ca)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:456,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:480,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:481,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:484,1
    - Dst: X509_check_ca
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:486,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:489,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:494,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:498,1
    - Dst: check_curve
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:506,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:507,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:508,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:523,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:525,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:528,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:534,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:537,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:541,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:541,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:541,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:544,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:547,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:547,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:549,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:549,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:549,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:554,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:555,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:558,1
    - Dst: X509_ALGOR_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:558,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:560,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:563,1
    - Dst: X509_get_version
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:566,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:568,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:575,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:578,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:578,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:578,1
    - Dst: check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:584,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:587,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:611,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 72
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 622
    functionName: check_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - X509_get0_extensions
    - sk_X509_num
    - X509_NAME_entry_count
    - X509_get_issuer_name
    - CB_FAIL_IF
    - sk_GENERAL_NAME_num
    - check_curve
    - sk_X509_EXTENSION_num
    - check_purpose
    - X509_get_version
    - X509_ALGOR_cmp
    - X509_check_ca
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int check_extensions(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:628,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:633,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:634,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - x
    - gtype
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 643
    functionName: has_san_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_num
    - GENERAL_NAMES_free
    - sk_GENERAL_NAME_value
    - X509_get_ext_d2i
    linkageType: ''
    returnType: int
    signature: int has_san_id(X509 *x, int gtype)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:651,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:652,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:666,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:667,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:671,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:683,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:684,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:693,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:693,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:694,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:694,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:704,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:706,1
    - Dst: X509_NAME_delete_entry
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:711,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:712,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:712,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:715,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:719,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:720,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:723,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:732,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:733,1
    - Dst: NAME_CONSTRAINTS_check
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:736,1
    - Dst: has_san_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:745,1
    - Dst: NAME_CONSTRAINTS_check_CN
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:746,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:756,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 763
    functionName: check_name_constraints
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - OBJ_obj2nid
    - X509_NAME_ENTRY_set
    - NAME_CONSTRAINTS_check
    - X509_NAME_ENTRY_get_object
    - X509_NAME_free
    - has_san_id
    - X509_NAME_dup
    - X509_get_issuer_name
    - X509_NAME_entry_count
    - CB_FAIL_IF
    - X509_NAME_cmp
    - ERR_raise
    - sk_X509_num
    - X509_NAME_get_entry
    - NAME_CONSTRAINTS_check_CN
    - X509_NAME_delete_entry
    - X509_NAME_ENTRY_free
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int check_name_constraints(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - errcode
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: check_id_error
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - verify_cb_cert
    linkageType: ''
    returnType: int
    signature: int check_id_error(X509_STORE_CTX *ctx, int errcode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:773,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:777,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:781,1
    - Dst: X509_check_host
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - x
    - vpm
    argTypes:
    - X509*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 770
    functionDepth: 4
    functionLinenumber: 770
    functionLinenumberEnd: 786
    functionName: check_hosts
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_OPENSSL_STRING_value
    - X509_check_host
    - sk_OPENSSL_STRING_num
    linkageType: ''
    returnType: int
    signature: int check_hosts(X509 *x, X509_VERIFY_PARAM *vpm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_hosts
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:793,1
    - Dst: check_id_error
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:794,1
    - Dst: X509_check_email
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:798,1
    - Dst: check_id_error
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:799,1
    - Dst: X509_check_ip
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:802,1
    - Dst: check_id_error
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:803,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 807
    functionName: check_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_check_ip
    - check_id_error
    - check_hosts
    - X509_check_email
    linkageType: ''
    returnType: int
    signature: int check_id(X509_STORE_CTX *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:816,1
    - Dst: DANETLS_HAS_TA
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:823,1
    - Dst: check_dane_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:824,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:836,1
    - Dst: X509_check_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:837,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:862,1
    - Dst: lookup_cert_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:863,1
    - Dst: X509_check_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:873,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:875,1
    - Dst: sk_X509_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:880,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:881,1
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:893,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:897,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 2
    argNames:
    - ctx
    - num_untrusted
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 905
    functionName: check_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - sk_X509_value
    - X509_free
    - verify_cb_cert
    - DANETLS_HAS_TA
    - X509_check_trust
    - sk_X509_set
    - sk_X509_num
    - DANETLS_ENABLED
    - lookup_cert_match
    - check_dane_issuer
    linkageType: ''
    returnType: int
    signature: int check_trust(X509_STORE_CTX *ctx, int num_untrusted)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:915,1
    - Dst: check_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 929
    functionName: check_revocation
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_num
    - check_cert
    linkageType: ''
    returnType: int
    signature: int check_revocation(X509_STORE_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:937,1
    - Dst: X509_STORE_CTX*::get_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:952,1
    - Dst: get_crl_delta
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:954,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:957,1
    - Dst: X509_STORE_CTX*::check_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:961,1
    - Dst: X509_STORE_CTX*::check_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:966,1
    - Dst: X509_STORE_CTX*::cert_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:969,1
    - Dst: X509_STORE_CTX*::cert_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:978,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:983,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:984,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:992,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:997,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:998,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 1002
    functionName: check_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - verify_cb_crl
    - X509_STORE_CTX*::cert_crl
    - X509_STORE_CTX*::check_crl
    - X509_CRL_free
    - X509_STORE_CTX*::get_crl
    - get_crl_delta
    linkageType: ''
    returnType: int
    signature: int check_cert(X509_STORE_CTX *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1019,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1019,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1023,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1030,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1034,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1035,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1035,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1040,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1045,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - crl
    - notify
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1054
    functionName: check_crl_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_cmp_time
    - X509_CRL_get0_nextUpdate
    - verify_cb_crl
    - X509_CRL_get0_lastUpdate
    linkageType: ''
    returnType: int
    signature: int check_crl_time(X509_STORE_CTX *ctx, X509_CRL *crl, int notify)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1066,1
    - Dst: sk_X509_CRL_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1067,1
    - Dst: get_crl_score
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1069,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1076,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1076,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1077,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1093,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1098,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1099,1
    - Dst: get_delta_sk
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1101,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1108
    functionName: get_crl_sk
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - get_delta_sk
    - sk_X509_CRL_num
    - sk_X509_CRL_value
    - X509_CRL_up_ref
    - get_crl_score
    - X509_CRL_free
    - ASN1_TIME_diff
    - X509_CRL_get0_lastUpdate
    linkageType: ''
    returnType: int
    signature: "int 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1117,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1121,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1123,1
    - Dst: X509_CRL_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1123,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1126,1
    - Dst: X509_CRL_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1128,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1130,1
    - Dst: X509_CRL_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1130,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1139,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - a
    - b
    - nid
    argTypes:
    - X509_CRL*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1140
    functionName: crl_extension_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - X509_EXTENSION_get_data
    - X509_CRL_get_ext_by_NID
    - X509_CRL_get_ext
    linkageType: ''
    returnType: int
    signature: int crl_extension_match(X509_CRL *a, X509_CRL *b, int nid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1152,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1152,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1153,1
    - Dst: crl_extension_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1156,1
    - Dst: crl_extension_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1158,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1161,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - delta
    - base
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1165
    functionName: check_delta_base
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - crl_extension_match
    - X509_NAME_cmp
    - ASN1_INTEGER_cmp
    - X509_CRL_get_issuer
    linkageType: ''
    returnType: int
    signature: int check_delta_base(X509_CRL *delta, X509_CRL *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1181,1
    - Dst: sk_X509_CRL_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1182,1
    - Dst: check_delta_base
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1183,1
    - Dst: check_crl_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1184,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1186,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1171
    functionDepth: 4
    functionLinenumber: 1171
    functionLinenumberEnd: 1192
    functionName: get_delta_sk
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_CRL_num
    - sk_X509_CRL_value
    - X509_CRL_up_ref
    - check_crl_time
    - check_delta_base
    linkageType: ''
    returnType: void
    signature: "void get_delta_sk(X509_STORE_CTX *ctx, X509_CRL **dcrl, int *pscore,\n
      \                        X509_CRL *base, STACK_OF(X509_CRL) *crls)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1225,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1225,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1225,1
    - Dst: check_crl_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1236,1
    - Dst: crl_akid_check
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1240,1
    - Dst: crl_crldp_check
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1247,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 5
    argNames:
    - ctx
    - pissuer
    - preasons
    - crl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509**
    - unsigned int*
    - X509_CRL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1201
    functionDepth: 2
    functionLinenumber: 1201
    functionLinenumberEnd: 1259
    functionName: get_crl_score
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - crl_akid_check
    - X509_get_issuer_name
    - check_crl_time
    - X509_NAME_cmp
    - crl_crldp_check
    - X509_CRL_get_issuer
    linkageType: ''
    returnType: int
    signature: "int get_crl_score(X509_STORE_CTX *ctx, X509 **pissuer,\n                         unsigned
      int *preasons, X509_CRL *crl, X509 *x)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1265,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1269,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1272,1
    - Dst: X509_check_akid
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1274,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1282,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1283,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1284,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1284,1
    - Dst: X509_check_akid
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1286,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1301,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1302,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1303,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1303,1
    - Dst: X509_check_akid
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1305,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - crl
    - pissuer
    - pcrl_score
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - X509**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1311
    functionName: crl_akid_check
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - sk_X509_num
    - X509_check_akid
    - X509_NAME_cmp
    - X509_CRL_get_issuer
    - X509_get_subject_name
    linkageType: ''
    returnType: void
    signature: "void crl_akid_check(X509_STORE_CTX *ctx, X509_CRL *crl,\n                           X509
      **pissuer, int *pcrl_score)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1327,1
    - Dst: X509_STORE_CTX_set0_param
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1332,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1338,1
    - Dst: check_crl_chain
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1343,1
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1319
    functionDepth: 9
    functionLinenumber: 1319
    functionLinenumberEnd: 1347
    functionName: check_crl_path
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_set0_param
    - X509_verify_cert
    - X509_STORE_CTX_init
    - check_crl_chain
    - X509_STORE_CTX_cleanup
    linkageType: ''
    returnType: int
    signature: int check_crl_path(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1390,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1405,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1406,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1409,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1417,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1418,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1419,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1420,1
    - Dst: GENERAL_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1421,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - DIST_POINT_NAME*
    - DIST_POINT_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1374
    functionDepth: 3
    functionLinenumber: 1374
    functionLinenumberEnd: 1428
    functionName: idp_check_dp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_cmp
    - X509_NAME_cmp
    - sk_GENERAL_NAME_value
    - sk_GENERAL_NAME_num
    linkageType: ''
    returnType: int
    signature: int idp_check_dp(DIST_POINT_NAME *a, DIST_POINT_NAME *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1433,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1438,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1439,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - dp
    - crl
    - crl_score
    argTypes:
    - DIST_POINT*
    - X509_CRL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1447
    functionName: crldp_check_crlissuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    - X509_CRL_get_issuer
    linkageType: ''
    returnType: int
    signature: int crldp_check_crlissuer(DIST_POINT *dp, X509_CRL *crl, int crl_score)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1465,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1466,1
    - Dst: crldp_check_crlissuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1468,1
    - Dst: idp_check_dp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1470,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - x
    - crl
    - crl_score
    - preasons
    argTypes:
    - X509*
    - X509_CRL*
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1450
    functionDepth: 4
    functionLinenumber: 1450
    functionLinenumberEnd: 1478
    functionName: crl_crldp_check
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - idp_check_dp
    - sk_DIST_POINT_num
    - crldp_check_crlissuer
    - sk_DIST_POINT_value
    linkageType: ''
    returnType: int
    signature: "int crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score,\n                           unsigned
      int *preasons)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1492,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1493,1
    - Dst: get_crl_sk
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1496,1
    - Dst: X509_STORE_CTX*::lookup_crls
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1502,1
    - Dst: get_crl_sk
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1508,1
    - Dst: sk_X509_CRL_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - pcrl
    - pdcrl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL**
    - X509_CRL**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1484
    functionDepth: 3
    functionLinenumber: 1484
    functionLinenumberEnd: 1523
    functionName: get_crl_delta
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - get_crl_sk
    - sk_X509_CRL_pop_free
    - X509_get_issuer_name
    - STACK_OF
    - X509_STORE_CTX*::lookup_crls
    linkageType: ''
    returnType: int
    signature: "int get_crl_delta(X509_STORE_CTX *ctx,\n                         X509_CRL
      **pcrl, X509_CRL **pdcrl, X509 *x)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1531,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1541,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1543,1
    - Dst: X509_STORE_CTX*::check_issued
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1545,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1546,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1560,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1564,1
    - Dst: check_crl_path
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1568,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1569,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1573,1
    - Dst: check_crl_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1578,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1582,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1584,1
    - Dst: X509_CRL_check_suiteb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1588,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1590,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1593,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1594,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - crl
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1526
    functionDepth: 10
    functionLinenumber: 1526
    functionLinenumberEnd: 1598
    functionName: check_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - check_crl_path
    - sk_X509_value
    - verify_cb_crl
    - X509_CRL_verify
    - sk_X509_num
    - check_crl_time
    - X509_STORE_CTX*::check_issued
    - X509_CRL_check_suiteb
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int check_crl(X509_STORE_CTX *ctx, X509_CRL *crl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1613,1
    - Dst: X509_CRL_get0_by_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1619,1
    - Dst: verify_cb_crl
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - crl
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509_CRL*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1627
    functionName: cert_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get0_by_cert
    - verify_cb_crl
    linkageType: ''
    returnType: int
    signature: int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1646,1
    - Dst: X509_policy_check
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1648,1
    - Dst: sk_X509_pop
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1651,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1660,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1661,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1665,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1670,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1679,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1682,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1694,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1701,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1629
    functionDepth: 7
    functionLinenumber: 1629
    functionLinenumberEnd: 1704
    functionName: check_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - sk_X509_pop
    - X509_policy_check
    - sk_X509_push
    - ERR_raise
    - sk_X509_num
    - X509_STORE_CTX*::verify_cb
    - CB_FAIL_IF
    linkageType: ''
    returnType: int
    signature: int check_policy(X509_STORE_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1725,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1725,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1728,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1729,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1731,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1731,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1734,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1735,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - x
    - depth
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1737
    functionName: ossl_x509_check_cert_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_cmp_time
    - X509_get0_notBefore
    - CB_FAIL_IF
    - X509_get0_notAfter
    linkageType: ''
    returnType: int
    signature: int ossl_x509_check_cert_time(X509_STORE_CTX *ctx, X509 *x, int depth)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1745,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1746,1
    - Dst: ossl_x509_likely_issued
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1757,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1763,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1765,1
    - Dst: ossl_x509_signing_allowed
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1816,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1818,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1819,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1820,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1823,1
    - Dst: X509_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1823,1
    - Dst: ossl_x509_check_cert_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1830,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1840,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1845,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1743
    functionDepth: 2
    functionLinenumber: 1743
    functionLinenumberEnd: 1849
    functionName: internal_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - sk_X509_value
    - ossl_x509_signing_allowed
    - X509_verify
    - sk_X509_num
    - ossl_x509_likely_issued
    - ossl_x509_check_cert_time
    - X509_STORE_CTX*::verify_cb
    - CB_FAIL_IF
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int internal_verify(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctm
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1854
    functionName: X509_cmp_current_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: int X509_cmp_current_time(const ASN1_TIME *ctm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1898,1
    - Dst: X509_time_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1909,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1912,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1922,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - ctm
    - cmp_time
    argTypes:
    - ASN1_TIME*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1856
    functionDepth: 2
    functionLinenumber: 1856
    functionLinenumberEnd: 1924
    functionName: X509_cmp_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached:
    - ASN1_TIME_diff
    - ossl_ascii_isdigit
    - X509_time_adj
    - ASN1_TIME_free
    linkageType: ''
    returnType: int
    signature: int X509_cmp_time(const ASN1_TIME *ctm, time_t *cmp_time)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1935,1
    - Dst: X509_VERIFY_PARAM_get_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1938,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1944,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1946,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - vpm
    - start
    - end
    argTypes:
    - X509_VERIFY_PARAM*
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1930
    functionDepth: 3
    functionLinenumber: 1930
    functionLinenumberEnd: 1949
    functionName: X509_cmp_timeframe
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_flags
    - X509_cmp_time
    - X509_VERIFY_PARAM_get_time
    linkageType: ''
    returnType: int
    signature: "int X509_cmp_timeframe(const X509_VERIFY_PARAM *vpm,\n                       const
      ASN1_TIME *start, const ASN1_TIME *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_time_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - adj
    argTypes:
    - ASN1_TIME*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1951
    functionDepth: 1
    functionLinenumber: 1951
    functionLinenumberEnd: 1954
    functionName: X509_gmtime_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_time_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_time_adj_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - offset_sec
    - in_tm
    argTypes:
    - ASN1_TIME*
    - long
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 1959
    functionName: X509_time_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_time_adj_ex
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec, time_t *in_tm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1969,1
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1973,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1975,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:1977,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - s
    - offset_day
    - offset_sec
    - in_tm
    argTypes:
    - ASN1_TIME*
    - int
    - long
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1961
    functionDepth: 1
    functionLinenumber: 1961
    functionLinenumberEnd: 1978
    functionName: X509_time_adj_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - time
    - ASN1_TIME_adj
    - ASN1_GENERALIZEDTIME_adj
    - ASN1_UTCTIME_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: "ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s,\n                            int
      offset_day, long offset_sec, time_t *in_tm)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2026,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2029,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2034,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2038,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2038,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2039,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2040,1
    - Dst: crl_extension_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2044,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2045,1
    - Dst: crl_extension_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2048,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2049,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2053,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2054,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2058,1
    - Dst: X509_CRL_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2059,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2060,1
    - Dst: X509_CRL_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2064,1
    - Dst: X509_CRL_set_version
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2065,1
    - Dst: X509_CRL_set_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2068,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2068,1
    - Dst: X509_CRL_set1_lastUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2071,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2071,1
    - Dst: X509_CRL_set1_nextUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2073,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2073,1
    - Dst: X509_CRL_add1_ext_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2077,1
    - Dst: X509_CRL_get_ext_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2084,1
    - Dst: X509_CRL_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2085,1
    - Dst: X509_CRL_add_ext
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2087,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2092,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2094,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2097,1
    - Dst: X509_CRL_get0_by_serial
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2103,1
    - Dst: X509_REVOKED_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2104,1
    - Dst: X509_CRL_add0_revoked
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2107,1
    - Dst: X509_REVOKED_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2108,1
    - Dst: X509_CRL_sign
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2114,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2120,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2121,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 5
    argNames:
    - base
    - newer
    - skey
    - md
    - flags
    argTypes:
    - X509_CRL*
    - X509_CRL*
    - EVP_PKEY*
    - EVP_MD*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2020
    functionDepth: 3
    functionLinenumber: 2020
    functionLinenumberEnd: 2123
    functionName: X509_CRL_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - crl_extension_match
    - X509_CRL_add1_ext_i2d
    - X509_REVOKED_free
    - X509_CRL_set_issuer_name
    - X509_CRL_sign
    - X509_CRL_get0_nextUpdate
    - X509_REVOKED_dup
    - X509_CRL_verify
    - ASN1_INTEGER_cmp
    - X509_CRL_set_version
    - X509_CRL_free
    - X509_NAME_cmp
    - X509_CRL_new_ex
    - X509_CRL_add_ext
    - X509_CRL_set1_lastUpdate
    - ERR_raise
    - X509_CRL_get0_by_serial
    - sk_X509_REVOKED_num
    - STACK_OF
    - X509_CRL_get_ext
    - sk_X509_REVOKED_value
    - X509_CRL_set1_nextUpdate
    - X509_CRL_add0_revoked
    - X509_CRL_get_REVOKED
    - X509_CRL_get_ext_count
    - X509_CRL_get_issuer
    - X509_CRL_get0_lastUpdate
    linkageType: ''
    returnType: X509_CRL
    signature: "X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer,\n                        EVP_PKEY
      *skey, const EVP_MD *md, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - idx
    - data
    argTypes:
    - X509_STORE_CTX*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2125
    functionDepth: 2
    functionLinenumber: 2125
    functionLinenumberEnd: 2128
    functionName: X509_STORE_CTX_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2130
    functionDepth: 2
    functionLinenumber: 2130
    functionLinenumberEnd: 2133
    functionName: X509_STORE_CTX_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *X509_STORE_CTX_get_ex_data(const X509_STORE_CTX *ctx, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2135
    functionDepth: 0
    functionLinenumber: 2135
    functionLinenumberEnd: 2138
    functionName: X509_STORE_CTX_get_error
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_error(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2140
    functionDepth: 0
    functionLinenumber: 2140
    functionLinenumberEnd: 2143
    functionName: X509_STORE_CTX_set_error
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2145
    functionDepth: 0
    functionLinenumber: 2145
    functionLinenumberEnd: 2148
    functionName: X509_STORE_CTX_get_error_depth
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2153
    functionName: X509_STORE_CTX_set_error_depth
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2158
    functionName: X509_STORE_CTX_get_current_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get_current_cert(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2163
    functionName: X509_STORE_CTX_set_current_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2180
    functionName: X509_STORE_CTX_get0_current_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2182
    functionDepth: 0
    functionLinenumber: 2182
    functionLinenumberEnd: 2185
    functionName: X509_STORE_CTX_get0_current_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2190
    functionName: X509_STORE_CTX_get0_parent_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2192
    functionDepth: 0
    functionLinenumber: 2192
    functionLinenumberEnd: 2195
    functionName: X509_STORE_CTX_set_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_purpose_inherit
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - purpose
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2210
    functionName: X509_STORE_CTX_set_purpose
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_purpose_inherit
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_purpose_inherit
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - trust
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2212
    functionDepth: 1
    functionLinenumber: 2212
    functionLinenumberEnd: 2219
    functionName: X509_STORE_CTX_set_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_CTX_purpose_inherit
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2251,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2254,1
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2256,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2258,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2261,1
    - Dst: X509_TRUST_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2268,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - ctx
    - def_purpose
    - purpose
    - trust
    argTypes:
    - X509_STORE_CTX*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2231
    functionDepth: 2
    functionLinenumber: 2231
    functionLinenumberEnd: 2280
    functionName: X509_STORE_CTX_purpose_inherit
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_PURPOSE_get0
    - X509_PURPOSE_get_by_id
    - X509_TRUST_get_by_id
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,\n
      \                                  int purpose, int trust)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2284,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2287,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2293,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2295,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2282
    functionDepth: 1
    functionLinenumber: 2282
    functionLinenumberEnd: 2302
    functionName: X509_STORE_CTX_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char
      *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2304
    functionDepth: 2
    functionLinenumber: 2304
    functionLinenumberEnd: 2307
    functionName: X509_STORE_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_STORE_CTX_new_ex
    linkageType: ''
    returnType: X509_STORE_CTX
    signature: X509_STORE_CTX *X509_STORE_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2314,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2317,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2309
    functionDepth: 1
    functionLinenumber: 2309
    functionLinenumberEnd: 2319
    functionName: X509_STORE_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - X509_STORE_CTX_cleanup
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_free(X509_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX*::cleanup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2476,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2481,1
    - Dst: X509_policy_tree_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2484,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2486,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2488,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2466
    functionDepth: 3
    functionLinenumber: 2466
    functionLinenumberEnd: 2490
    functionName: X509_STORE_CTX_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - sk_X509_pop_free
    - X509_VERIFY_PARAM_free
    - CRYPTO_free_ex_data
    - memset
    - X509_STORE_CTX*::cleanup
    - X509_policy_tree_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_depth
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2492
    functionDepth: 1
    functionLinenumber: 2492
    functionLinenumberEnd: 2495
    functionName: X509_STORE_CTX_set_depth
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_depth
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - X509_STORE_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2497
    functionDepth: 1
    functionLinenumber: 2497
    functionLinenumberEnd: 2500
    functionName: X509_STORE_CTX_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - flags
    - t
    argTypes:
    - X509_STORE_CTX*
    - unsigned long
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2502
    functionDepth: 1
    functionLinenumber: 2502
    functionLinenumberEnd: 2506
    functionName: X509_STORE_CTX_set_time
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_time
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,\n
      \                            time_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2508
    functionDepth: 0
    functionLinenumber: 2508
    functionLinenumberEnd: 2511
    functionName: X509_STORE_CTX_get0_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify_cb
    argTypes:
    - X509_STORE_CTX*
    - X509_STORE_CTX_verify_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2529
    functionDepth: 0
    functionLinenumber: 2529
    functionLinenumberEnd: 2533
    functionName: X509_STORE_CTX_set_verify_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,\n                                  X509_STORE_CTX_verify_cb
      verify_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2535
    functionDepth: 0
    functionLinenumber: 2535
    functionLinenumberEnd: 2538
    functionName: X509_STORE_CTX_get_verify_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_cb
    signature: X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - verify
    argTypes:
    - X509_STORE_CTX*
    - X509_STORE_CTX_verify_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2540
    functionDepth: 0
    functionLinenumber: 2540
    functionLinenumberEnd: 2544
    functionName: X509_STORE_CTX_set_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,\n                               X509_STORE_CTX_verify_fn
      verify)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2546
    functionDepth: 0
    functionLinenumber: 2546
    functionLinenumberEnd: 2549
    functionName: X509_STORE_CTX_get_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_verify_fn
    signature: X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2551
    functionDepth: 0
    functionLinenumber: 2551
    functionLinenumberEnd: 2555
    functionName: X509_STORE_CTX_get_get_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_issuer_fn
    signature: X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2557
    functionDepth: 0
    functionLinenumber: 2557
    functionLinenumberEnd: 2561
    functionName: X509_STORE_CTX_get_check_issued
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_issued_fn
    signature: X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const
      X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2563
    functionDepth: 0
    functionLinenumber: 2563
    functionLinenumberEnd: 2567
    functionName: X509_STORE_CTX_get_check_revocation
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_revocation_fn
    signature: X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const
      X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2572
    functionName: X509_STORE_CTX_get_get_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_get_crl_fn
    signature: X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2574
    functionDepth: 0
    functionLinenumber: 2574
    functionLinenumberEnd: 2578
    functionName: X509_STORE_CTX_get_check_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_crl_fn
    signature: X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2580
    functionDepth: 0
    functionLinenumber: 2580
    functionLinenumberEnd: 2584
    functionName: X509_STORE_CTX_get_cert_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cert_crl_fn
    signature: X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2586
    functionDepth: 0
    functionLinenumber: 2586
    functionLinenumberEnd: 2590
    functionName: X509_STORE_CTX_get_check_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_check_policy_fn
    signature: X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(const
      X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2596
    functionName: X509_STORE_CTX_get_lookup_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_certs_fn
    signature: X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(const
      X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2598
    functionDepth: 0
    functionLinenumber: 2598
    functionLinenumberEnd: 2602
    functionName: X509_STORE_CTX_get_lookup_crls
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_lookup_crls_fn
    signature: X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(const
      X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2604
    functionDepth: 0
    functionLinenumber: 2604
    functionLinenumberEnd: 2607
    functionName: X509_STORE_CTX_get_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE_CTX_cleanup_fn
    signature: X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2609
    functionDepth: 0
    functionLinenumber: 2609
    functionLinenumberEnd: 2612
    functionName: X509_STORE_CTX_get0_policy_tree
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_POLICY_TREE
    signature: X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2617
    functionName: X509_STORE_CTX_get_explicit_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2619
    functionDepth: 0
    functionLinenumber: 2619
    functionLinenumberEnd: 2622
    functionName: X509_STORE_CTX_get_num_untrusted
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2628,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2630,1
    - Dst: X509_VERIFY_PARAM_inherit
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - X509_STORE_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2624
    functionDepth: 2
    functionLinenumber: 2624
    functionLinenumberEnd: 2634
    functionName: X509_STORE_CTX_set_default
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_inherit
    - ERR_raise_data
    - X509_VERIFY_PARAM_lookup
    linkageType: ''
    returnType: int
    signature: int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2639
    functionName: X509_STORE_CTX_get0_param
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_VERIFY_PARAM
    signature: X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - param
    argTypes:
    - X509_STORE_CTX*
    - X509_VERIFY_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2641
    functionDepth: 2
    functionLinenumber: 2641
    functionLinenumberEnd: 2645
    functionName: X509_STORE_CTX_set0_param
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_VERIFY_PARAM_free
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM
      *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - dane
    argTypes:
    - X509_STORE_CTX*
    - SSL_DANE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2647
    functionDepth: 0
    functionLinenumber: 2647
    functionLinenumberEnd: 2650
    functionName: X509_STORE_CTX_set0_dane
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2663,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2666,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2666,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2669,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cert
    - selector
    - i2dlen
    argTypes:
    - X509*
    - uint8_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2680
      start: 2652
    functionDepth: 1
    functionLinenumber: 2652
    functionLinenumberEnd: 2680
    functionName: dane_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - i2d_X509_PUBKEY
    - X509_get_X509_PUBKEY
    - ERR_raise
    - i2d_X509
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *dane_i2d(X509 *cert, uint8_t selector,\n                               unsigned
      int *i2dlen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_danetls_record_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2745,1
    - Dst: sk_danetls_record_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2747,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2748,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2761,1
    - Dst: dane_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2762,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2795,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2808,1
    - Dst: DANETLS_USAGE_BIT
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2809,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2814,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2816,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2823,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - ctx
    - cert
    - depth
    argTypes:
    - X509_STORE_CTX*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2685
    functionDepth: 9
    functionLinenumber: 2685
    functionLinenumberEnd: 2825
    functionName: dane_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - OPENSSL_free
    - DANETLS_USAGE_BIT
    - sk_danetls_record_value
    - memcmp
    - EVP_Digest
    - dane_i2d
    - sk_danetls_record_num
    linkageType: ''
    returnType: int
    signature: int dane_match(X509_STORE_CTX *ctx, X509 *cert, int depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DANETLS_HAS_TA
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2834,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2842,1
    - Dst: dane_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - depth
    argTypes:
    - X509_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2828
    functionDepth: 10
    functionLinenumber: 2828
    functionLinenumberEnd: 2851
    functionName: check_dane_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - DANETLS_HAS_TA
    - dane_match
    - sk_X509_value
    linkageType: ''
    returnType: int
    signature: int check_dane_issuer(X509_STORE_CTX *ctx, int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2858,1
    - Dst: sk_danetls_record_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2859,1
    - Dst: sk_danetls_record_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2863,1
    - Dst: X509_verify
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2867,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2871,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2880,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2882,1
    - Dst: sk_X509_pop
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2882,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2853
    functionDepth: 2
    functionLinenumber: 2853
    functionLinenumberEnd: 2888
    functionName: check_dane_pkeys
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - X509_free
    - X509_verify
    - sk_X509_pop
    - sk_X509_num
    - sk_danetls_record_value
    - sk_danetls_record_num
    linkageType: ''
    returnType: int
    signature: int check_dane_pkeys(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dane
    argTypes:
    - SSL_DANE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2890
    functionDepth: 0
    functionLinenumber: 2890
    functionLinenumberEnd: 2898
    functionName: dane_reset
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: void dane_reset(SSL_DANE *dane)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_chain_check_suiteb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2902,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2900
    functionDepth: 7
    functionLinenumber: 2900
    functionLinenumberEnd: 2906
    functionName: check_leaf_suiteb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - CB_FAIL_IF
    - X509_chain_check_suiteb
    linkageType: ''
    returnType: int
    signature: int check_leaf_suiteb(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dane_reset
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2916,1
    - Dst: dane_match
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2930,1
    - Dst: DANETLS_HAS_TA
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2931,1
    - Dst: X509_get_pubkey_parameters
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2933,1
    - Dst: check_leaf_suiteb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2938,1
    - Dst: check_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2942,1
    - Dst: X509_STORE_CTX*::verify_cb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2947,1
    - Dst: check_leaf_suiteb
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2959,1
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2961,1
    - Dst: verify_chain
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2968,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2969
      start: 2909
    functionDepth: 10
    functionLinenumber: 2909
    functionLinenumberEnd: 2969
    functionName: dane_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - verify_cb_cert
    - DANETLS_HAS_TA
    - dane_match
    - check_leaf_suiteb
    - X509_get_pubkey_parameters
    - X509_STORE_CTX*::verify_cb
    - check_id
    - verify_chain
    - dane_reset
    linkageType: ''
    returnType: int
    signature: int dane_verify(X509_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2977,1
    - Dst: X509_STORE_CTX*::get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - issuer
    - ctx
    - cert
    argTypes:
    - X509**
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2975
    functionDepth: 1
    functionLinenumber: 2975
    functionLinenumberEnd: 2985
    functionName: get1_trusted_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - X509_STORE_CTX*::get_issuer
    linkageType: ''
    returnType: int
    signature: int get1_trusted_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2991,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:2992,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3003,1
    - Dst: DANETLS_HAS_PKIX
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3018,1
    - Dst: DANETLS_HAS_DANE
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3018,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3027,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3034,1
    - Dst: X509_add_certs
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3035,1
    - Dst: X509_add_certs
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3043,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3063,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3099,1
    - Dst: get1_trusted_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3102,1
    - Dst: X509_self_signed
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3111,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3114,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3132,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3133,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3138,1
    - Dst: sk_X509_pop
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3138,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3141,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3144,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3147,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3157,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3158,1
    - Dst: X509_self_signed
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3161,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3170,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3172,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3175,1
    - Dst: sk_X509_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3177,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3195,1
    - Dst: check_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3198,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3230,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3231,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3233,1
    - Dst: X509_self_signed
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3234,1
    - Dst: find_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3235,1
    - Dst: sk_X509_delete_ptr
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3249,1
    - Dst: X509_add_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3251,1
    - Dst: check_dane_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3257,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3262,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3271,1
    - Dst: DANETLS_HAS_DANE_TA
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3273,1
    - Dst: check_dane_pkeys
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3274,1
    - Dst: check_trust
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3276,1
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3294,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3298,1
    - Dst: CB_FAIL_IF
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3300,1
    - Dst: DANETLS_ENABLED
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3300,1
    - Dst: DANETLS_HAS_PKIX
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3301,1
    - Dst: X509_self_signed
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3303,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3303,1
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3304,1
    - Dst: verify_cb_cert
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3308,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3315,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3317,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3321,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3323,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 173
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 2988
    functionDepth: 11
    functionLinenumber: 2988
    functionLinenumberEnd: 3325
    functionName: build_chain
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - get1_trusted_issuer
    - sk_X509_value
    - X509_free
    - sk_X509_push
    - find_issuer
    - DANETLS_ENABLED
    - X509_self_signed
    - ossl_assert
    - DANETLS_HAS_PKIX
    - check_dane_issuer
    - check_trust
    - CB_FAIL_IF
    - X509_add_cert
    - sk_X509_free
    - DANETLS_HAS_DANE
    - sk_X509_delete_ptr
    - sk_X509_set
    - ERR_raise
    - sk_X509_num
    - STACK_OF
    - DANETLS_HAS_DANE_TA
    - check_dane_pkeys
    - sk_X509_pop
    - verify_cb_cert
    - X509_add_certs
    - sk_X509_new_null
    - X509_cmp
    linkageType: ''
    returnType: int
    signature: int build_chain(X509_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3382,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3380
    functionDepth: 2
    functionLinenumber: 3380
    functionLinenumberEnd: 3402
    functionName: check_key_level
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_get_security_bits
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int check_key_level(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3412,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3418,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3428
      start: 3410
    functionDepth: 3
    functionLinenumber: 3410
    functionLinenumberEnd: 3428
    functionName: check_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_get_int_param
    - EVP_PKEY_get_id
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int check_curve(X509 *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_signature_info
      Src: /src/openssl-3.0.15/crypto/x509/x509_vfy.c:3447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - X509_STORE_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3437
    functionDepth: 2
    functionLinenumber: 3437
    functionLinenumberEnd: 3451
    functionName: check_sig_level
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_vfy.c
    functionUses: 1
    functionsReached:
    - X509_get_signature_info
    linkageType: ''
    returnType: int
    signature: int check_sig_level(X509_STORE_CTX *ctx, X509 *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_PURPOSE**
    - X509_PURPOSE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: xp_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xp_cmp(const X509_PURPOSE *const *a, const X509_PURPOSE *const
      *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509v3_cache_extensions
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:86,1
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:91,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:94,1
    - Dst: X509_PURPOSE*::check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - x
    - id
    - require_ca
    argTypes:
    - X509*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: X509_check_purpose
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 5
    functionsReached:
    - X509_PURPOSE_get0
    - X509_PURPOSE_get_by_id
    - X509_PURPOSE*::check_purpose
    - ossl_x509v3_cache_extensions
    linkageType: ''
    returnType: int
    signature: int X509_check_purpose(X509 *x, int id, int require_ca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - purpose
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: X509_PURPOSE_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 1
    functionsReached:
    - X509_PURPOSE_get_by_id
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_set(int *p, int purpose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: X509_PURPOSE_get_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_num
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: X509_PURPOSE_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 2
    functionsReached:
    - sk_X509_PURPOSE_value
    linkageType: ''
    returnType: X509_PURPOSE
    signature: X509_PURPOSE *X509_PURPOSE_get0(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_count
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:128,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:129,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: X509_PURPOSE_get_by_sname
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_PURPOSE_get0
    - X509_PURPOSE_get_count
    - strcmp
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_by_sname(const char *sname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_find
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - purpose
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: X509_PURPOSE_get_by_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 3
    functionsReached:
    - sk_X509_PURPOSE_find
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_by_id(int purpose)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: X509_PURPOSE_get_by_id
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:165,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:168,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:169,1
    - Dst: X509_PURPOSE_get0
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:179,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:182,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:185,1
    - Dst: sk_X509_PURPOSE_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:202,1
    - Dst: sk_X509_PURPOSE_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:206,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:215,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 6
    argNames:
    - id
    - trust
    - flags
    - name
    - sname
    - arg
    argTypes:
    - int
    - int
    - int
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 218
    functionName: X509_PURPOSE_add
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - X509_PURPOSE_get0
    - sk_X509_PURPOSE_push
    - ERR_raise
    - X509_PURPOSE_get_by_id
    - OPENSSL_free
    - sk_X509_PURPOSE_new
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:226,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:227,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: xptable_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void xptable_free(X509_PURPOSE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_PURPOSE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: X509_PURPOSE_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_X509_PURPOSE_pop_free
    linkageType: ''
    returnType: void
    signature: void X509_PURPOSE_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: X509_PURPOSE_get_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_id(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: X509_PURPOSE_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: X509_PURPOSE_get0_sname
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xp
    argTypes:
    - X509_PURPOSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: X509_PURPOSE_get_trust
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_PURPOSE_get_trust(const X509_PURPOSE *xp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: nid_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nid_cmp(const int *a, const int *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:296,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:296,1
    - Dst: OBJ_bsearch_nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:301,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 304
    functionName: X509_supported_extension
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_nid
    - OBJ_obj2nid
    - X509_EXTENSION_get_object
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int X509_supported_extension(X509_EXTENSION *ex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:312,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:313,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:335,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:336,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:344,1
    - Dst: DIST_POINT_set_dpname
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:345,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - x
    - dp
    argTypes:
    - X509*
    - DIST_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 346
    functionName: setup_dp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - ERR_raise
    - DIST_POINT_set_dpname
    - X509_get_issuer_name
    - sk_GENERAL_NAME_num
    linkageType: ''
    returnType: int
    signature: int setup_dp(const X509 *x, DIST_POINT *dp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:353,1
    - Dst: sk_DIST_POINT_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:357,1
    - Dst: setup_dp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:358,1
    - Dst: sk_DIST_POINT_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: setup_crldp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - sk_DIST_POINT_num
    - sk_DIST_POINT_value
    - setup_dp
    - X509_get_ext_d2i
    linkageType: ''
    returnType: int
    signature: int setup_crldp(X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:373,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:373,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:376,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:376,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - issuer_key
    - subject
    argTypes:
    - EVP_PKEY*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: check_sig_alg_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - OBJ_nid2sn
    - OBJ_obj2nid
    - EVP_PKEY_is_a
    linkageType: ''
    returnType: int
    signature: int check_sig_alg_match(const EVP_PKEY *issuer_key, const X509 *subject)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: ku_reject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ku_reject(x, usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: xku_reject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xku_reject(x, usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: ns_reject
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ns_reject(x, usage)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: tsan_ld_acq
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:409,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:413,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:416,1
    - Dst: X509_digest
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:421,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:421,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:424,1
    - Dst: X509_get_version
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:427,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:432,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:441,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:444,1
    - Dst: BASIC_CONSTRAINTS_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:447,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:454,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:456,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:457,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:461,1
    - Dst: PROXY_CERT_INFO_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:464,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:471,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:479,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:482,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:491,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:493,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:494,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:494,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:528,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:534,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:540,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:546,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:550,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:555,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:555,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:555,1
    - Dst: X509_check_akid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:557,1
    - Dst: check_sig_alg_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:559,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:559,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:565,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:568,1
    - Dst: setup_crldp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:573,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:580,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:583,1
    - Dst: X509_get_ext_count
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:587,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:588,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:589,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:589,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:593,1
    - Dst: X509_supported_extension
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:595,1
    - Dst: ossl_x509_init_sig_info
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:618,1
    - Dst: tsan_st_rel
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:622,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:629,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:631,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:635,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:640,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 184
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 397
    functionDepth: 11
    functionLinenumber: 397
    functionLinenumberEnd: 642
    functionName: ossl_x509v3_cache_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 2
    functionsReached:
    - ASN1_BIT_STRING_free
    - X509_get_ext
    - OBJ_obj2nid
    - BASIC_CONSTRAINTS_free
    - setup_crldp
    - sk_ASN1_OBJECT_pop_free
    - tsan_ld_acq
    - sk_ASN1_OBJECT_num
    - X509_EXTENSION_get_object
    - X509_EXTENSION_get_critical
    - X509_digest
    - PROXY_CERT_INFO_EXTENSION_free
    - X509_get0_pubkey
    - ASN1_INTEGER_get
    - check_sig_alg_match
    - ossl_x509_init_sig_info
    - X509_check_akid
    - X509_get_issuer_name
    - X509_NAME_cmp
    - X509_get_version
    - CRYPTO_THREAD_unlock
    - tsan_st_rel
    - ERR_raise
    - sk_ASN1_OBJECT_value
    - X509_get_ext_count
    - CRYPTO_THREAD_write_lock
    - X509_supported_extension
    - ERR_set_mark
    - ERR_pop_to_mark
    - EVP_sha1
    - X509_get_ext_by_NID
    - X509_get_ext_d2i
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int ossl_x509v3_cache_extensions(X509 *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 679
    functionName: check_ca
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 1
    functionsReached:
    - ku_reject
    linkageType: ''
    returnType: int
    signature: int check_ca(const X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:683,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    functionName: X509_set_proxy_flag
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void X509_set_proxy_flag(X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - l
    argTypes:
    - X509*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: X509_set_proxy_pathlen
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_set_proxy_pathlen(X509 *x, long l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509v3_cache_extensions
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:697,1
    - Dst: check_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 694
    functionDepth: 12
    functionLinenumber: 694
    functionLinenumberEnd: 701
    functionName: X509_check_ca
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 1
    functionsReached:
    - check_ca
    - ossl_x509v3_cache_extensions
    linkageType: ''
    returnType: int
    signature: int X509_check_ca(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 712
    functionName: check_ssl_ca
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    linkageType: ''
    returnType: int
    signature: int check_ssl_ca(const X509 *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:717,1
    - Dst: check_ssl_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:720,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:722,1
    - Dst: ns_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 728
    functionName: check_purpose_ssl_client
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ssl_ca
    - ns_reject
    - xku_reject
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ssl_client(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int require_ca)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:741,1
    - Dst: check_ssl_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:744,1
    - Dst: ns_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:746,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 753
    functionName: check_purpose_ssl_server
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ssl_ca
    - ns_reject
    - xku_reject
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ssl_server(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int require_ca)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_purpose_ssl_server
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:759,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 4
    functionLinenumber: 755
    functionLinenumberEnd: 766
    functionName: check_purpose_ns_ssl_server
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_purpose_ssl_server
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ns_ssl_server(const X509_PURPOSE *xp, const X509
      *x,\n                                       int require_ca)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:771,1
    - Dst: check_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - x
    - require_ca
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 793
    functionName: purpose_smime
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    - xku_reject
    linkageType: ''
    returnType: int
    signature: int purpose_smime(const X509 *x, int require_ca)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: purpose_smime
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:799,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 805
    functionName: check_purpose_smime_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - purpose_smime
    linkageType: ''
    returnType: int
    signature: "int check_purpose_smime_sign(const X509_PURPOSE *xp, const X509 *x,\n
      \                                   int require_ca)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: purpose_smime
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:811,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 817
    functionName: check_purpose_smime_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - purpose_smime
    linkageType: ''
    returnType: int
    signature: "int check_purpose_smime_encrypt(const X509_PURPOSE *xp, const X509
      *x,\n                                       int require_ca)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:824,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 832
    functionName: check_purpose_crl_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - ku_reject
    - check_ca
    linkageType: ''
    returnType: int
    signature: "int check_purpose_crl_sign(const X509_PURPOSE *xp, const X509 *x,\n
      \                                 int require_ca)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: check_purpose_ocsp_helper
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    linkageType: ''
    returnType: int
    signature: "int check_purpose_ocsp_helper(const X509_PURPOSE *xp, const X509 *x,\n
      \                                    int require_ca)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_ca
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:858,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:876,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:878,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:879,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 884
    functionName: check_purpose_timestamp_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - check_ca
    - X509_get_ext
    - X509_get_ext_by_NID
    - X509_EXTENSION_get_critical
    linkageType: ''
    returnType: int
    signature: "int check_purpose_timestamp_sign(const X509_PURPOSE *xp, const X509
      *x,\n                                        int require_ca)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xp
    - x
    - require_ca
    argTypes:
    - X509_PURPOSE*
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: no_check_purpose
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int no_check_purpose(const X509_PURPOSE *xp, const X509 *x,\n                            int
      require_ca)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_likely_issued
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:909,1
    - Dst: ossl_x509_signing_allowed
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - issuer
    - subject
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 912
    functionName: X509_check_issued
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 1
    functionsReached:
    - ossl_x509_likely_issued
    - ossl_x509_signing_allowed
    linkageType: ''
    returnType: int
    signature: int X509_check_issued(X509 *issuer, X509 *subject)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:919,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:919,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:920,1
    - Dst: ossl_x509v3_cache_extensions
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:924,1
    - Dst: ossl_x509v3_cache_extensions
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:925,1
    - Dst: X509_check_akid
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:928,1
    - Dst: check_sig_alg_match
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:933,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - issuer
    - subject
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 915
    functionDepth: 12
    functionLinenumber: 915
    functionLinenumberEnd: 934
    functionName: ossl_x509_likely_issued
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 3
    functionsReached:
    - X509_get0_pubkey
    - X509_check_akid
    - X509_get_issuer_name
    - X509_NAME_cmp
    - ossl_x509v3_cache_extensions
    - check_sig_alg_match
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int ossl_x509_likely_issued(X509 *issuer, X509 *subject)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:946,1
    - Dst: ku_reject
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - issuer
    - subject
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: ossl_x509_signing_allowed
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 2
    functionsReached:
    - ku_reject
    linkageType: ''
    returnType: int
    signature: int ossl_x509_signing_allowed(const X509 *issuer, const X509 *subject)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:960,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:964,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:964,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:978,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:979,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:985,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:985,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - issuer
    - akid
    argTypes:
    - X509*
    - AUTHORITY_KEYID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 989
    functionName: X509_check_akid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 3
    functionsReached:
    - sk_GENERAL_NAME_value
    - ASN1_OCTET_STRING_cmp
    - X509_get_issuer_name
    - sk_GENERAL_NAME_num
    - X509_get0_serialNumber
    - X509_NAME_cmp
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: X509_get_extension_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_get_extension_flags(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 998
    functionDepth: 4
    functionLinenumber: 998
    functionLinenumberEnd: 1006
    functionName: X509_get_key_usage
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_get_key_usage(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1008
    functionDepth: 4
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: X509_get_extended_key_usage
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t X509_get_extended_key_usage(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 4
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: X509_get0_subject_key_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 2
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1026
    functionDepth: 4
    functionLinenumber: 1026
    functionLinenumberEnd: 1032
    functionName: X509_get0_authority_key_id
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1034
    functionDepth: 4
    functionLinenumber: 1034
    functionLinenumberEnd: 1040
    functionName: X509_get0_authority_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: GENERAL_NAMES
    signature: GENERAL_NAMES *X509_get0_authority_issuer(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1042
    functionDepth: 4
    functionLinenumber: 1042
    functionLinenumberEnd: 1048
    functionName: X509_get0_authority_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *X509_get0_authority_serial(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1050
    functionDepth: 4
    functionLinenumber: 1050
    functionLinenumberEnd: 1057
    functionName: X509_get_pathlen
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: long
    signature: long X509_get_pathlen(X509 *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/x509/v3_purp.c:1062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 4
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: X509_get_proxy_pathlen
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_purp.c
    functionUses: 0
    functionsReached:
    - X509_check_purpose
    linkageType: ''
    returnType: long
    signature: long X509_get_proxy_pathlen(X509 *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:70,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:74,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:76,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - method
    - pci
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - PROXY_CERT_INFO_EXTENSION*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: i2r_pci
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_pci.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - i2a_ASN1_OBJECT
    - BIO_puts
    - i2a_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: "int i2r_pci(X509V3_EXT_METHOD *method, PROXY_CERT_INFO_EXTENSION *pci,\n
      \                  BIO *out, int indent)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:93,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:94,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:98,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:99,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:104,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:106,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:110,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:111,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:114,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:119,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:121,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:122,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:127,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:129,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:132,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:136,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:140,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:150,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:153,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:154,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:157,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:158,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:161,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:163,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:164,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:167,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:168,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:179,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:180,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:181,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:186,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:193,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:194,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:197,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:198,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:199,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:215,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:220,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:225,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:226,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 237
    functionName: process_pci_value
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_pci.c
    functionUses: 0
    functionsReached:
    - X509V3_conf_err
    - ASN1_OCTET_STRING_free
    - memcpy
    - BIO_read
    - BIO_free_all
    - OPENSSL_hexstr2buf
    - ERR_raise
    - BIO_should_retry
    - OPENSSL_realloc
    - ASN1_OCTET_STRING_new
    - X509V3_get_value_int
    - OPENSSL_free
    - strcmp
    - strlen
    - BIO_new_file
    - strncmp
    - OBJ_txt2obj
    linkageType: ''
    returnType: int
    signature: "int process_pci_value(CONF_VALUE *val,\n                             ASN1_OBJECT
      **language, ASN1_INTEGER **pathlen,\n                             ASN1_OCTET_STRING
      **policy)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:243,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:249,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:250,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:251,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:254,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:255,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:259,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:264,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:265,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:268,1
    - Dst: process_pci_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:270,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:270,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:273,1
    - Dst: process_pci_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:277,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:278,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:286,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:290,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:292,1
    - Dst: PROXY_CERT_INFO_EXTENSION_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:297,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:299,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:311,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:312,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:314,1
    - Dst: PROXY_CERT_INFO_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:316,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pci.c:319,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 3
    argNames:
    - method
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 239
    functionDepth: 9
    functionLinenumber: 239
    functionLinenumberEnd: 321
    functionName: r2i_pci
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_pci.c
    functionUses: 0
    functionsReached:
    - X509V3_conf_err
    - ASN1_OCTET_STRING_free
    - ASN1_OBJECT_free
    - sk_CONF_VALUE_num
    - OBJ_obj2nid
    - PROXY_CERT_INFO_EXTENSION_free
    - sk_CONF_VALUE_pop_free
    - ERR_raise
    - X509V3_get_section
    - PROXY_CERT_INFO_EXTENSION_new
    - X509V3_parse_list
    - STACK_OF
    - process_pci_value
    - ASN1_INTEGER_free
    - sk_CONF_VALUE_value
    - X509V3_section_free
    linkageType: ''
    returnType: PROXY_CERT_INFO_EXTENSION
    signature: "PROXY_CERT_INFO_EXTENSION *r2i_pci(X509V3_EXT_METHOD *method,\n                                          X509V3_CTX
      *ctx, char *value)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_POLICY_MAPPING_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:29,1
    - Dst: sk_POLICY_MAPPING_num
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:33,1
    - Dst: sk_POLICY_MAPPING_value
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:34,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:36,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:37,1
    - Dst: ossl_policy_cache_find_data
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:43,1
    - Dst: ossl_policy_data_new
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:50,1
    - Dst: sk_X509_POLICY_DATA_push
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:61,1
    - Dst: ossl_policy_data_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:62,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:67,1
    - Dst: sk_POLICY_MAPPING_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/pcy_map.c:76,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - x
    - maps
    argTypes:
    - X509*
    - POLICY_MAPPINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 79
    functionName: ossl_policy_cache_set_mapping
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/pcy_map.c
    functionUses: 1
    functionsReached:
    - sk_POLICY_MAPPING_pop_free
    - ossl_policy_data_free
    - sk_X509_POLICY_DATA_push
    - OBJ_obj2nid
    - sk_POLICY_MAPPING_num
    - sk_ASN1_OBJECT_push
    - ossl_policy_data_new
    - ossl_policy_cache_find_data
    - sk_POLICY_MAPPING_value
    linkageType: ''
    returnType: int
    signature: int ossl_policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_set_cmp_func
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: crl_inf_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_set_cmp_func
    linkageType: ''
    returnType: int
    signature: "int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:87,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:89,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:92,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:93,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:94,1
    - Dst: X509_REVOKED_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:97,1
    - Dst: sk_GENERAL_NAMES_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:107,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:109,1
    - Dst: sk_GENERAL_NAMES_push
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:113,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:114,1
    - Dst: X509_REVOKED_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:120,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:127,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:128,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:136,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:137,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:138,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:139,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 150
    functionName: crl_set_issuers
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - X509_EXTENSION_get_critical
    - ASN1_ENUMERATED_get
    - sk_X509_EXTENSION_value
    - OBJ_obj2nid
    - X509_CRL_get_REVOKED
    - sk_GENERAL_NAMES_new_null
    - ASN1_ENUMERATED_free
    - sk_X509_REVOKED_num
    - STACK_OF
    - sk_X509_REVOKED_value
    - sk_X509_EXTENSION_num
    - GENERAL_NAMES_free
    - X509_REVOKED_get_ext_d2i
    - X509_EXTENSION_get_object
    - sk_GENERAL_NAMES_push
    linkageType: ''
    returnType: int
    signature: int crl_set_issuers(X509_CRL *crl)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:160,1
    - Dst: X509_CRL*::meth::crl_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:167,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:170,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:171,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:172,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:173,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:174,1
    - Dst: X509_CRL_digest
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:191,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:191,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:193,1
    - Dst: setup_idp
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:197,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:204,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:210,1
    - Dst: X509_CRL_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:215,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:233,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:235,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:236,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:236,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:239,1
    - Dst: crl_set_issuers
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:250,1
    - Dst: X509_CRL*::meth::crl_init
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:254,1
    - Dst: X509_CRL*::meth::crl_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:263,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:266,1
    - Dst: ISSUING_DIST_POINT_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:267,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:268,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:269,1
    - Dst: sk_GENERAL_NAMES_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:270,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:271,1
    - Dst: ossl_x509_crl_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:277,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 87
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 156
    functionDepth: 11
    functionLinenumber: 156
    functionLinenumberEnd: 283
    functionName: crl_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - sk_X509_EXTENSION_num
    - ASN1_INTEGER_free
    - X509_EXTENSION_get_object
    - AUTHORITY_KEYID_free
    - X509_EXTENSION_get_critical
    - crl_set_issuers
    - sk_GENERAL_NAMES_pop_free
    - X509_CRL*::meth::crl_init
    - X509_CRL*::meth::crl_free
    - ISSUING_DIST_POINT_free
    - OPENSSL_free
    - STACK_OF
    - ossl_x509_crl_set0_libctx
    - X509_CRL_get_ext_d2i
    - sk_X509_EXTENSION_value
    - X509_CRL_digest
    - setup_idp
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: "int crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DIST_POINT_set_dpname
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:321,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - crl
    - idp
    argTypes:
    - X509_CRL*
    - ISSUING_DIST_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 322
    functionName: setup_idp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_get_issuer
    - DIST_POINT_set_dpname
    linkageType: ''
    returnType: int
    signature: int setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_REVOKED**
    - X509_REVOKED**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: X509_REVOKED_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "int X509_REVOKED_cmp(const X509_REVOKED *const *a,\n                            const
      X509_REVOKED *const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:351,1
    - Dst: X509_CRL_it
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:351,1
    - Dst: ossl_x509_crl_set0_libctx
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:352,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 357
    functionName: X509_CRL_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - ASN1_item_new
    - ossl_x509_crl_set0_libctx
    - X509_CRL_it
    - X509_CRL_free
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *X509_CRL_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_new
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:365,1
    - Dst: sk_X509_REVOKED_push
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:366,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - crl
    - rev
    argTypes:
    - X509_CRL*
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 372
    functionName: X509_CRL_add0_revoked
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - sk_X509_REVOKED_push
    - ERR_raise
    - sk_X509_REVOKED_new
    linkageType: ''
    returnType: int
    signature: int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_verify
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - crl
    - r
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: X509_CRL_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 3
    functionsReached:
    - X509_CRL*::meth::crl_verify
    linkageType: ''
    returnType: int
    signature: int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crl
    - ret
    - serial
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: X509_CRL_get0_by_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 2
    functionsReached:
    - X509_CRL*::meth::crl_lookup
    linkageType: ''
    returnType: int
    signature: "int X509_CRL_get0_by_serial(X509_CRL *crl,\n                            X509_REVOKED
      **ret, const ASN1_INTEGER *serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL*::meth::crl_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:392,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:393,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crl
    - ret
    - x
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: X509_CRL_get0_by_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 1
    functionsReached:
    - X509_get_issuer_name
    - X509_CRL*::meth::crl_lookup
    - X509_get0_serialNumber
    linkageType: ''
    returnType: int
    signature: int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:400,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - r
    argTypes:
    - X509_CRL*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: def_crl_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_verify_ex
    linkageType: ''
    returnType: int
    signature: int def_crl_verify(X509_CRL *crl, EVP_PKEY *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:413,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:413,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:419,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:421,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:422,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - crl
    - nm
    - rev
    argTypes:
    - X509_CRL*
    - X509_NAME*
    - X509_REVOKED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 430
    functionName: crl_revoked_issuer_match
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - sk_GENERAL_NAME_num
    - sk_GENERAL_NAME_value
    - X509_CRL_get_issuer
    linkageType: ''
    returnType: int
    signature: "int crl_revoked_issuer_match(X509_CRL *crl, const X509_NAME *nm,\n
      \                                   X509_REVOKED *rev)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_REVOKED_is_sorted
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:446,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:447,1
    - Dst: sk_X509_REVOKED_sort
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:449,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:450,1
    - Dst: sk_X509_REVOKED_find
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:453,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:457,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:458,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:459,1
    - Dst: crl_revoked_issuer_match
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:461,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - crl
    - ret
    - serial
    - issuer
    argTypes:
    - X509_CRL*
    - X509_REVOKED**
    - ASN1_INTEGER*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 470
    functionName: def_crl_lookup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - sk_X509_REVOKED_is_sorted
    - sk_X509_REVOKED_find
    - crl_revoked_issuer_match
    - sk_X509_REVOKED_num
    - sk_X509_REVOKED_value
    - sk_X509_REVOKED_sort
    - CRYPTO_THREAD_write_lock
    - ASN1_INTEGER_cmp
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int def_crl_lookup(X509_CRL *crl,\n                          X509_REVOKED
      **ret, const ASN1_INTEGER *serial,\n                          const X509_NAME
      *issuer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meth
    argTypes:
    - X509_CRL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: X509_CRL_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_CRL_set_default_method(const X509_CRL_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:489,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 501
    functionName: X509_CRL_METHOD_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    linkageType: ''
    returnType: X509_CRL_METHOD
    signature: "X509_CRL_METHOD *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                                                        const ASN1_INTEGER
      *ser,\n                                                        const X509_NAME
      *issuer),\n                                     int (*crl_verify) (X509_CRL
      *crl,\n                                                        EVP_PKEY *pk))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - X509_CRL_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: X509_CRL_METHOD_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void X509_CRL_METHOD_free(X509_CRL_METHOD *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - dat
    argTypes:
    - X509_CRL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: X509_CRL_set_meth_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_CRL_set_meth_data(X509_CRL *crl, void *dat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: X509_CRL_get_meth_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *X509_CRL_get_meth_data(X509_CRL *crl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:525,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/x_crl.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - x
    - libctx
    - propq
    argTypes:
    - X509_CRL*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 534
    functionName: ossl_x509_crl_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_crl.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int ossl_x509_crl_set0_libctx(X509_CRL *x, OSSL_LIB_CTX *libctx,\n
      \                             const char *propq)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:70,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:73,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:76,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:78,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:81,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:84,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:87,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:90,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:91,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:93,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:94,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - out
    - choice
    - indent
    - msg
    argTypes:
    - BIO*
    - ASIdentifierChoice*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 62
    functionDepth: 7
    functionLinenumber: 62
    functionLinenumberEnd: 105
    functionName: i2r_ASIdentifierChoice
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - sk_ASIdOrRange_num
    - OPENSSL_free
    - sk_ASIdOrRange_value
    - BIO_printf
    - i2s_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: "int i2r_ASIdentifierChoice(BIO *out,\n                                  ASIdentifierChoice
      *choice,\n                                  int indent, const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2r_ASIdentifierChoice
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:114,1
    - Dst: i2r_ASIdentifierChoice
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - method
    - ext
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 8
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: i2r_ASIdentifiers
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - i2r_ASIdentifierChoice
    linkageType: ''
    returnType: int
    signature: "int i2r_ASIdentifiers(const X509V3_EXT_METHOD *method,\n                             void
      *ext, BIO *out, int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:128,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:132,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:137,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:140,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:141,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:146,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 11
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - ASIdOrRange**
    - ASIdOrRange**
    assertStmts:
    - condition: "((a->type == ASIdOrRange_id && a->u.id != NULL) ||\n           (a->type
        == ASIdOrRange_range && a->u.range != NULL &&\n            a->u.range->min
        != NULL && a->u.range->max != NULL))"
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    - condition: "((b->type == ASIdOrRange_id && b->u.id != NULL) ||\n           (b->type
        == ASIdOrRange_range && b->u.range != NULL &&\n            b->u.range->min
        != NULL && b->u.range->max != NULL))"
      pos:
        line_end: 133
        line_start: 131
        source_file: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    constantsTouched: []
    func_position:
      end: 149
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: ASIdOrRange_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_cmp
    - assert
    linkageType: ''
    returnType: int
    signature: "int ASIdOrRange_cmp(const ASIdOrRange *const *a_,\n                           const
      ASIdOrRange *const *b_)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:170,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:172,1
    - Dst: ASIdentifierChoice_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - asid
    - which
    argTypes:
    - ASIdentifiers*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 180
    functionName: X509v3_asid_add_inherit
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_free
    - ASN1_NULL_new
    - ASIdentifierChoice_new
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_add_inherit(ASIdentifiers *asid, int which)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:205,1
    - Dst: sk_ASIdOrRange_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:207,1
    - Dst: ASIdentifierChoice_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:209,1
    - Dst: ASIdOrRange_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:215,1
    - Dst: sk_ASIdOrRange_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:217,1
    - Dst: ASRange_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:224,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:226,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:228,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:232,1
    - Dst: sk_ASIdOrRange_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:232,1
    - Dst: ASIdOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:237,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - asid
    - which
    - min
    - max
    argTypes:
    - ASIdentifiers*
    - int
    - ASN1_INTEGER*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 239
    functionName: X509v3_asid_add_id_or_range
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - sk_ASIdOrRange_reserve
    - ASIdOrRange_new
    - sk_ASIdOrRange_new
    - ASIdOrRange_free
    - sk_ASIdOrRange_push
    - ASRange_new
    - ASIdentifierChoice_free
    - ASN1_INTEGER_free
    - ossl_assert
    - ASIdentifierChoice_new
    linkageType: ''
    returnType: int
    signature: "int X509v3_asid_add_id_or_range(ASIdentifiers *asid,\n                                int
      which, ASN1_INTEGER *min, ASN1_INTEGER *max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - aor
    - min
    - max
    argTypes:
    - ASIdOrRange*
    - ASN1_INTEGER**
    - ASN1_INTEGER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: extract_min_max
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 4
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int extract_min_max(ASIdOrRange *aor,\n                           ASN1_INTEGER
      **min, ASN1_INTEGER **max)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:283,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:289,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:290,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:291,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:295,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:296,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:302,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:303,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:304,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:310,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:311,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:312,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:313,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:320,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:327,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:334,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:336,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:339,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:340,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:348,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:349,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    argCount: 1
    argNames:
    - choice
    argTypes:
    - ASIdentifierChoice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 351
    functionName: ASIdentifierChoice_is_canonical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - BN_new
    - ASN1_INTEGER_to_BN
    - sk_ASIdOrRange_num
    - ERR_raise
    - BN_free
    - BN_to_ASN1_INTEGER
    - sk_ASIdOrRange_value
    - ASN1_INTEGER_free
    - BN_add_word
    - ASN1_INTEGER_cmp
    linkageType: ''
    returnType: int
    signature: int ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:359,1
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: X509v3_asid_is_canonical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_is_canonical
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_is_canonical(ASIdentifiers *asid)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:383,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:384,1
    - Dst: sk_ASIdOrRange_sort
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:391,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:397,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:398,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:399,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:403,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:404,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:410,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:410,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:416,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:417,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:423,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:424,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:431,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:432,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:433,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:434,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:439,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:441,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:448,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:452,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:453,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:462,1
    - Dst: ASIdOrRange_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:474,1
    - Dst: sk_ASIdOrRange_delete
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:475,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:484,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:486,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:489,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:490,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:496,1
    - Dst: ASIdentifierChoice_is_canonical
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:496,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:502,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:503,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 82
    argCount: 1
    argNames:
    - choice
    argTypes:
    - ASIdentifierChoice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 505
    functionName: ASIdentifierChoice_canonize
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - ASIdOrRange_free
    - BN_new
    - ASIdentifierChoice_is_canonical
    - ASN1_INTEGER_to_BN
    - OPENSSL_malloc
    - sk_ASIdOrRange_sort
    - sk_ASIdOrRange_num
    - ERR_raise
    - sk_ASIdOrRange_delete
    - BN_free
    - BN_to_ASN1_INTEGER
    - ASN1_INTEGER_cmp
    - sk_ASIdOrRange_value
    - ASN1_INTEGER_free
    - BN_add_word
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ASIdentifierChoice_canonize(ASIdentifierChoice *choice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifierChoice_canonize
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:513,1
    - Dst: ASIdentifierChoice_canonize
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 7
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: X509v3_asid_canonize
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - ASIdentifierChoice_canonize
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_canonize(ASIdentifiers *asid)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifiers_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:528,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:529,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:533,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:534,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:540,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:542,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:545,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:546,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:551,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:558,1
    - Dst: X509v3_asid_add_inherit
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:559,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:561,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:562,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:569,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:574,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:576,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:577,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:581,1
    - Dst: strspn
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:582,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:584,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:585,1
    - Dst: X509V3_get_value_int
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:594,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:595,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:599,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:601,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:605,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:606,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:607,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:609,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:612,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:613,1
    - Dst: X509v3_asid_add_id_or_range
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:617,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:618,1
    - Dst: X509v3_asid_canonize
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:627,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:632,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:633,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:634,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - struct v3_ext_method*
    - struct v3_ext_ctx*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 520
    functionDepth: 8
    functionLinenumber: 520
    functionLinenumberEnd: 636
    functionName: v2i_ASIdentifiers
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - X509v3_asid_add_inherit
    - sk_CONF_VALUE_num
    - X509V3_conf_add_error_name_value
    - X509v3_asid_canonize
    - OPENSSL_strdup
    - X509v3_asid_add_id_or_range
    - ERR_raise
    - s2i_ASN1_INTEGER
    - OPENSSL_free
    - X509V3_get_value_int
    - ASIdentifiers_free
    - strcmp
    - strspn
    - ASN1_INTEGER_cmp
    - ossl_v3_name_cmp
    - ASN1_INTEGER_free
    - sk_CONF_VALUE_value
    - ASIdentifiers_new
    linkageType: ''
    returnType: void
    signature: "void *v2i_ASIdentifiers(const struct v3_ext_method *method,\n                               struct
      v3_ext_ctx *ctx,\n                               STACK_OF(CONF_VALUE) *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: X509v3_asid_inherits
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_inherits(ASIdentifiers *asid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:681,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:682,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:682,1
    - Dst: sk_ASIdOrRange_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:685,1
    - Dst: extract_min_max
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:687,1
    - Dst: sk_ASIdOrRange_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:687,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:690,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:692,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - ASIdOrRanges*
    - ASIdOrRanges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 699
    functionName: asid_contains
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - extract_min_max
    - sk_ASIdOrRange_num
    - ASN1_INTEGER_cmp
    - sk_ASIdOrRange_value
    linkageType: ''
    returnType: int
    signature: int asid_contains(ASIdOrRanges *parent, ASIdOrRanges *child)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_asid_inherits
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:714,1
    - Dst: X509v3_asid_inherits
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:714,1
    - Dst: asid_contains
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:719,1
    - Dst: asid_contains
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:726,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASIdentifiers*
    - ASIdentifiers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 728
    functionName: X509v3_asid_subset
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached:
    - asid_contains
    - X509v3_asid_inherits
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _err_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 746
    functionName: validation_err
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validation_err(_err_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:886,1
    - Dst: asid_validate_path_internal
      Src: /src/openssl-3.0.15/crypto/x509/v3_asid.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 892
    functionName: X509v3_asid_validate_path
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_asid.c
    functionUses: 1
    functionsReached:
    - sk_X509_num
    - asid_validate_path_internal
    linkageType: ''
    returnType: int
    signature: int X509v3_asid_validate_path(X509_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509V3_EXT_METHOD_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:28,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:29,1
    - Dst: sk_X509V3_EXT_METHOD_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509V3_EXT_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: X509V3_EXT_add
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509V3_EXT_METHOD_new
    - sk_X509V3_EXT_METHOD_push
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_add(X509V3_EXT_METHOD *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509V3_EXT_METHOD**
    - X509V3_EXT_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: ext_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ext_cmp(const X509V3_EXT_METHOD *const *a,\n                   const
      X509V3_EXT_METHOD *const *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:61,1
    - Dst: sk_X509V3_EXT_METHOD_find
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:66,1
    - Dst: sk_X509V3_EXT_METHOD_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: X509V3_EXT_get_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 2
    functionsReached:
    - sk_X509V3_EXT_METHOD_value
    - sk_X509V3_EXT_METHOD_find
    - OBJ_bsearch_ext
    linkageType: ''
    returnType: X509V3_EXT_METHOD
    signature: X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:73,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:73,1
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: X509V3_EXT_get
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 1
    functionsReached:
    - X509V3_EXT_get_nid
    - OBJ_obj2nid
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: X509V3_EXT_METHOD
    signature: X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_add
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extlist
    argTypes:
    - X509V3_EXT_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: X509V3_EXT_add_list
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_add
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get_nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:92,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:96,1
    - Dst: X509V3_EXT_add
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - nid_to
    - nid_from
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: X509V3_EXT_add_alias
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_get_nid
    - X509V3_EXT_add
    - OPENSSL_malloc
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509V3_EXT_add_alias(int nid_to, int nid_from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509V3_EXT_METHOD_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: X509V3_EXT_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509V3_EXT_METHOD_pop_free
    linkageType: ''
    returnType: void
    signature: void X509V3_EXT_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509V3_EXT_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: ext_list_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ext_list_free(X509V3_EXT_METHOD *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: X509V3_add_standard_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509V3_add_standard_extensions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_EXT_get
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:136,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:138,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:139,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:140,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:142,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:142,1
    - Dst: X509V3_EXT_METHOD*::d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ext
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: X509V3_EXT_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 2
    functionsReached:
    - X509V3_EXT_METHOD*::d2i
    - X509_EXTENSION_get_data
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - ASN1_item_d2i
    - ASN1_ITEM_ptr
    - X509V3_EXT_get
    linkageType: ''
    returnType: void
    signature: void *X509V3_EXT_d2i(X509_EXTENSION *ext)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:181,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:182,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:183,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:183,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:200,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_lib.c:201,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - x
    - nid
    - crit
    - idx
    argTypes:
    - STACK_OF*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 210
    functionName: X509V3_get_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_lib.c
    functionUses: 3
    functionsReached:
    - X509_EXTENSION_get_critical
    - sk_X509_EXTENSION_value
    - OBJ_obj2nid
    - X509V3_EXT_d2i
    - sk_X509_EXTENSION_num
    - X509_EXTENSION_get_object
    linkageType: ''
    returnType: void
    signature: "void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int
      *crit,\n                     int *idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/x509/x509_err.c:92,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/x509/x509_err.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ossl_err_load_X509_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_X509_strings(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:84,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:89,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:89,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:91,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:94,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:101,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:103,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:107,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:108,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:109,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 31
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - struct v3_ext_method*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 116
    functionName: i2r_NAMING_AUTHORITY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2txt
    - OBJ_obj2nid
    - BIO_printf
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: "int i2r_NAMING_AUTHORITY(const struct v3_ext_method *method, void
      *in,\n                                BIO *bp, int ind)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:126,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:127,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:128,1
    - Dst: sk_ADMISSIONS_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:132,1
    - Dst: sk_ADMISSIONS_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:139,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:140,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:141,1
    - Dst: i2r_NAMING_AUTHORITY
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:146,1
    - Dst: sk_PROFESSION_INFO_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:150,1
    - Dst: sk_PROFESSION_INFO_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:151,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:153,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:157,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:158,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:159,1
    - Dst: i2r_NAMING_AUTHORITY
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:164,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:170,1
    - Dst: sk_ASN1_STRING_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:172,1
    - Dst: sk_ASN1_STRING_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:173,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:175,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:176,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:183,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:185,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:186,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:187,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:187,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:190,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:191,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 61
    argCount: 4
    argNames:
    - method
    - in
    - bp
    - ind
    argTypes:
    - struct v3_ext_method*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 203
    functionName: i2r_ADMISSION_SYNTAX
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - i2r_NAMING_AUTHORITY
    - sk_ASN1_STRING_num
    - OBJ_nid2ln
    - ASN1_STRING_print
    - sk_ASN1_STRING_value
    - OBJ_obj2txt
    - OBJ_obj2nid
    - sk_PROFESSION_INFO_value
    - sk_ASN1_OBJECT_num
    - sk_ASN1_OBJECT_value
    - sk_PROFESSION_INFO_num
    - sk_ADMISSIONS_value
    - BIO_printf
    - sk_ADMISSIONS_num
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: "int i2r_ADMISSION_SYNTAX(const struct v3_ext_method *method, void
      *in,\n                                BIO *bp, int ind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: NAMING_AUTHORITY_get0_authorityId
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId(const NAMING_AUTHORITY
      *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - id
    argTypes:
    - NAMING_AUTHORITY*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: NAMING_AUTHORITY_set0_authorityId
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, ASN1_OBJECT*
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: NAMING_AUTHORITY_get0_authorityURL
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_IA5STRING
    signature: "ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL(\n    const NAMING_AUTHORITY
      *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - u
    argTypes:
    - NAMING_AUTHORITY*
    - ASN1_IA5STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: NAMING_AUTHORITY_set0_authorityURL
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: void
    signature: void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, ASN1_IA5STRING*
      u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: NAMING_AUTHORITY_get0_authorityText
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_STRING
    signature: "ASN1_STRING *NAMING_AUTHORITY_get0_authorityText(\n    const NAMING_AUTHORITY
      *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - t
    argTypes:
    - NAMING_AUTHORITY*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: NAMING_AUTHORITY_set0_authorityText
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: void
    signature: void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, ASN1_STRING*
      t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - as
    argTypes:
    - ADMISSION_SYNTAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: ADMISSION_SYNTAX_get0_admissionAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority(const ADMISSION_SYNTAX
      *as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - as
    - aa
    argTypes:
    - ADMISSION_SYNTAX*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: ADMISSION_SYNTAX_set0_admissionAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_free
    linkageType: ''
    returnType: void
    signature: "void ADMISSION_SYNTAX_set0_admissionAuthority(ADMISSION_SYNTAX *as,\n
      \                                             GENERAL_NAME *aa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - as
    argTypes:
    - ADMISSION_SYNTAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: ADMISSION_SYNTAX_get0_contentsOfAdmissions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *ADMISSION_SYNTAX_get0_contentsOfAdmissions(const ADMISSION_SYNTAX
      *as)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADMISSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: ADMISSIONS_get0_admissionAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - aa
    argTypes:
    - ADMISSIONS*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: ADMISSIONS_set0_admissionAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_free
    linkageType: ''
    returnType: void
    signature: void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME
      *aa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADMISSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: ADMISSIONS_get0_namingAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMING_AUTHORITY
    signature: NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NAMING_AUTHORITY_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - na
    argTypes:
    - ADMISSIONS*
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: ADMISSIONS_set0_namingAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - NAMING_AUTHORITY_free
    linkageType: ''
    returnType: void
    signature: void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY
      *na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADMISSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: ADMISSIONS_get0_professionInfos
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PROFESSION_INFOS
    signature: PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_PROFESSION_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - pi
    argTypes:
    - ADMISSIONS*
    - PROFESSION_INFOS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: ADMISSIONS_set0_professionInfos
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - sk_PROFESSION_INFO_pop_free
    linkageType: ''
    returnType: void
    signature: void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PROFESSION_INFO_get0_addProfessionInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pi
    - aos
    argTypes:
    - PROFESSION_INFO*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: PROFESSION_INFO_set0_addProfessionInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: "void PROFESSION_INFO_set0_addProfessionInfo(PROFESSION_INFO *pi,\n
      \                                           ASN1_OCTET_STRING *aos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: PROFESSION_INFO_get0_namingAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NAMING_AUTHORITY
    signature: NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NAMING_AUTHORITY_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pi
    - na
    argTypes:
    - PROFESSION_INFO*
    - NAMING_AUTHORITY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: PROFESSION_INFO_set0_namingAuthority
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - NAMING_AUTHORITY_free
    linkageType: ''
    returnType: void
    signature: "void PROFESSION_INFO_set0_namingAuthority(PROFESSION_INFO *pi,\n                                          NAMING_AUTHORITY
      *na)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: PROFESSION_INFO_get0_professionItems
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *PROFESSION_INFO_get0_professionItems(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: PROFESSION_INFO_get0_professionOIDs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *PROFESSION_INFO_get0_professionOIDs(const PROFESSION_INFO
      *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - PROFESSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: PROFESSION_INFO_get0_registrationNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_PRINTABLESTRING
    signature: ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber(const
      PROFESSION_INFO *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRINTABLESTRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_admis.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pi
    - rn
    argTypes:
    - PROFESSION_INFO*
    - ASN1_PRINTABLESTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: PROFESSION_INFO_set0_registrationNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_admis.c
    functionUses: 0
    functionsReached:
    - ASN1_PRINTABLESTRING_free
    linkageType: ''
    returnType: void
    signature: "void PROFESSION_INFO_set0_registrationNumber(PROFESSION_INFO *pi,\n
      \                                            ASN1_PRINTABLESTRING *rn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:26,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:27,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:30,1
    - Dst: X509_REQ_print
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:31,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: X509_REQ_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_req.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - X509_REQ_print
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int X509_REQ_print_fp(FILE *fp, X509_REQ *x)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:43,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:56,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:58,1
    - Dst: X509_REQ_get_version
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:62,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:72,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:74,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:74,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:77,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:83,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:85,1
    - Dst: X509_REQ_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:87,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:88,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:89,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:91,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:94,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:96,1
    - Dst: ERR_print_errors
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:98,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:107,1
    - Dst: X509_REQ_get_attr_count
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:111,1
    - Dst: X509_REQ_get_attr_count
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:114,1
    - Dst: X509_REQ_get_attr
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:121,1
    - Dst: X509_ATTRIBUTE_get0_object
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:122,1
    - Dst: X509_REQ_extension_nid
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:123,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:125,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:127,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:129,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:131,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:135,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:140,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:142,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:150,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:153,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:157,1
    - Dst: X509_REQ_get_extensions
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:167,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:169,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:171,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:175,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:176,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:178,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:179,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:182,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:185,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:186,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:187,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:190,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:193,1
    - Dst: X509_REQ_get0_signature
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:200,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:207,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 170
    argCount: 4
    argNames:
    - bp
    - x
    - nmflags
    - cflag
    argTypes:
    - BIO*
    - X509_REQ*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 209
    functionName: X509_REQ_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_req.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - OBJ_obj2nid
    - ERR_print_errors
    - sk_X509_EXTENSION_num
    - X509_REQ_get_attr_count
    - BIO_printf
    - X509_EXTENSION_get_object
    - i2a_ASN1_OBJECT
    - X509_PUBKEY_get0_param
    - ASN1_STRING_print
    - X509V3_EXT_print
    - X509_REQ_extension_nid
    - X509_EXTENSION_get_critical
    - X509_signature_print
    - X509_REQ_get_version
    - X509_REQ_get_attr
    - X509_ATTRIBUTE_count
    - X509_ATTRIBUTE_get0_type
    - X509_ATTRIBUTE_get0_object
    - EVP_PKEY_print_public
    - X509_REQ_get0_pubkey
    - X509_EXTENSION_get_data
    - ERR_raise
    - X509_REQ_get0_signature
    - STACK_OF
    - X509_NAME_print_ex
    - X509_REQ_get_extensions
    - sk_X509_EXTENSION_pop_free
    - sk_X509_EXTENSION_value
    - X509_REQ_get_X509_PUBKEY
    - X509_REQ_get_subject_name
    - BIO_write
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags,\n
      \                     unsigned long cflag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_req.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: X509_REQ_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_req.c
    functionUses: 1
    functionsReached:
    - X509_REQ_print_ex
    linkageType: ''
    returnType: int
    signature: int X509_REQ_print(BIO *bp, X509_REQ *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:24,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:24,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:25,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:28,1
    - Dst: X509_CRL_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:29,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: X509_CRL_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_crl.c
    functionUses: 0
    functionsReached:
    - X509_CRL_print
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int X509_CRL_print_fp(FILE *fp, X509_CRL *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - x
    argTypes:
    - BIO*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: X509_CRL_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_crl.c
    functionUses: 1
    functionsReached:
    - X509_CRL_print_ex
    linkageType: ''
    returnType: int
    signature: int X509_CRL_print(BIO *out, X509_CRL *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:49,1
    - Dst: X509_CRL_get_version
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:50,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:52,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:54,1
    - Dst: X509_CRL_get0_signature
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:55,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:56,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:57,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:58,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:59,1
    - Dst: X509_CRL_get_issuer
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:59,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:60,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:61,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:62,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:62,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:63,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:64,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:65,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:65,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:68,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:70,1
    - Dst: X509_CRL_get0_extensions
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:71,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:73,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:78,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:80,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:81,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:82,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:83,1
    - Dst: X509_REVOKED_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:83,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:84,1
    - Dst: ASN1_TIME_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:85,1
    - Dst: X509_REVOKED_get0_revocationDate
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:86,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:87,1
    - Dst: X509_REVOKED_get0_extensions
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:88,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/x509/t_crl.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 3
    argNames:
    - out
    - x
    - nmflag
    argTypes:
    - BIO*
    - X509_CRL*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 94
    functionName: X509_CRL_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/t_crl.c
    functionUses: 1
    functionsReached:
    - X509V3_extensions_print
    - BIO_puts
    - ASN1_TIME_print
    - X509_CRL_get0_nextUpdate
    - BIO_printf
    - i2a_ASN1_INTEGER
    - X509_signature_print
    - X509_CRL_get0_signature
    - X509_REVOKED_get0_extensions
    - X509_REVOKED_get0_serialNumber
    - X509_CRL_get0_extensions
    - X509_REVOKED_get0_revocationDate
    - sk_X509_REVOKED_num
    - STACK_OF
    - X509_NAME_print_ex
    - sk_X509_REVOKED_value
    - X509_CRL_get_REVOKED
    - X509_CRL_get_version
    - X509_CRL_get_issuer
    - X509_CRL_get0_lastUpdate
    linkageType: ''
    returnType: int
    signature: int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ISSUER_SIGN_TOOL_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:38,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:42,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:45,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:46,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:51,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:52,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:55,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:56,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:59,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:60,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:63,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:64,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:67,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:68,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:71,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:72,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:75,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:76,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:79,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:84,1
    - Dst: ISSUER_SIGN_TOOL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:91,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 51
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 93
    functionName: v2i_issuer_sign_tool
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ist.c
    functionUses: 0
    functionsReached:
    - ASN1_UTF8STRING_new
    - sk_CONF_VALUE_num
    - ISSUER_SIGN_TOOL_free
    - ERR_raise
    - strlen
    - strcmp
    - ASN1_STRING_set
    - ISSUER_SIGN_TOOL_new
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: ISSUER_SIGN_TOOL
    signature: "ISSUER_SIGN_TOOL *v2i_issuer_sign_tool(X509V3_EXT_METHOD *method,
      X509V3_CTX *ctx,\n                        STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:102,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:107,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:109,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:110,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:115,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:117,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:118,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:123,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:125,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:126,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:131,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:133,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/v3_ist.c:134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - method
    - ist
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - ISSUER_SIGN_TOOL*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 138
    functionName: i2r_issuer_sign_tool
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_ist.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_printf
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int i2r_issuer_sign_tool(X509V3_EXT_METHOD *method,\n                                 ISSUER_SIGN_TOOL
      *ist, BIO *out,\n                                 int indent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: X509v3_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_num
    linkageType: ''
    returnType: int
    signature: int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:35,1
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: X509v3_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - X509v3_get_ext_by_OBJ
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, int nid,\n
      \                         int lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:52,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:54,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - obj
    - lastpos
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: X509v3_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 4
    functionsReached:
    - sk_X509_EXTENSION_num
    - OBJ_cmp
    - sk_X509_EXTENSION_value
    linkageType: ''
    returnType: int
    signature: "int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *sk,\n                          const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:72,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - crit
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: X509v3_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_num
    - sk_X509_EXTENSION_value
    linkageType: ''
    returnType: int
    signature: "int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *sk,
      int crit,\n                               int lastpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:83,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: X509v3_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 3
    functionsReached:
    - sk_X509_EXTENSION_num
    - sk_X509_EXTENSION_value
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int
      loc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:148,1
    - Dst: X509_EXTENSION_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:151,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ex
    - nid
    - crit
    - data
    argTypes:
    - X509_EXTENSION**
    - int
    - int
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: X509_EXTENSION_create_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - ERR_raise
    - X509_EXTENSION_create_by_OBJ
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex,
      int nid,\n                                             int crit,\n                                             ASN1_OCTET_STRING
      *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_EXTENSION_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:164,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:165,1
    - Dst: X509_EXTENSION_set_object
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:171,1
    - Dst: X509_EXTENSION_set_critical
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:173,1
    - Dst: X509_EXTENSION_set_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:175,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 4
    argNames:
    - ex
    - obj
    - crit
    - data
    argTypes:
    - X509_EXTENSION**
    - ASN1_OBJECT*
    - int
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: X509_EXTENSION_create_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 2
    functionsReached:
    - X509_EXTENSION_free
    - X509_EXTENSION_new
    - X509_EXTENSION_set_data
    - ERR_raise
    - X509_EXTENSION_set_object
    - X509_EXTENSION_set_critical
    linkageType: ''
    returnType: X509_EXTENSION
    signature: "X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex,\n
      \                                            const ASN1_OBJECT *obj, int crit,\n
      \                                            ASN1_OCTET_STRING *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:191,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ex
    - obj
    argTypes:
    - X509_EXTENSION*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 194
    functionName: X509_EXTENSION_set_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT
      *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ex
    - crit
    argTypes:
    - X509_EXTENSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: X509_EXTENSION_set_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_v3.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ex
    - data
    argTypes:
    - X509_EXTENSION*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: X509_EXTENSION_set_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_set
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: X509_EXTENSION_get_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: X509_EXTENSION_get_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ex)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ex
    argTypes:
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: X509_EXTENSION_get_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_v3.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_EXTENSION_get_critical(const X509_EXTENSION *ex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - x
    - pkey
    argTypes:
    - NETSCAPE_SPKI*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 13
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: NETSCAPE_SPKI_set_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - NETSCAPE_SPKI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: NETSCAPE_SPKI_get_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:37,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:38,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:39,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:45,1
    - Dst: d2i_NETSCAPE_SPKI
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: NETSCAPE_SPKI_b64_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - EVP_DecodeBlock
    - OPENSSL_free
    - strlen
    - d2i_NETSCAPE_SPKI
    linkageType: ''
    returnType: NETSCAPE_SPKI
    signature: NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_NETSCAPE_SPKI
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:62,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:65,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:66,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:70,1
    - Dst: i2d_NETSCAPE_SPKI
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:74,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509spki.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - spki
    argTypes:
    - NETSCAPE_SPKI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: NETSCAPE_SPKI_b64_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509spki.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - i2d_NETSCAPE_SPKI
    - ERR_raise
    - OPENSSL_free
    - EVP_EncodeBlock
    linkageType: ''
    returnType: char
    signature: char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:72,1
    - Dst: sk_POLICY_MAPPING_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:76,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:81,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:83,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:87,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:88,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:90,1
    - Dst: POLICY_MAPPING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:96,1
    - Dst: sk_POLICY_MAPPING_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:102,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:106,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:107,1
    - Dst: sk_POLICY_MAPPING_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c:108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 110
    functionName: v2i_POLICY_MAPPINGS
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_pmaps.c
    functionUses: 0
    functionsReached:
    - sk_POLICY_MAPPING_pop_free
    - sk_POLICY_MAPPING_new_reserve
    - sk_CONF_VALUE_num
    - ERR_raise_data
    - ERR_raise
    - sk_POLICY_MAPPING_push
    - OBJ_txt2obj
    - POLICY_MAPPING_new
    - sk_CONF_VALUE_value
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: "void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method,\n                                 X509V3_CTX
      *ctx, STACK_OF(CONF_VALUE) *nval)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:92,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:96,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:98,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:105,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - val
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: x509_name_ex_new
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_new_null
    - BUF_MEM_new
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - sk_X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: int x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:121,1
    - Dst: sk_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:123,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: x509_name_ex_free
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    - sk_X509_NAME_ENTRY_pop_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void x509_name_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:157,1
    - Dst: ASN1_item_ex_d2i
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:165,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:166,1
    - Dst: x509_name_ex_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:173,1
    - Dst: x509_name_ex_new
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:174,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:177,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:179,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:182,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:183,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:184,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:185,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:187,1
    - Dst: sk_X509_NAME_ENTRY_set
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:189,1
    - Dst: x509_name_canon
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:192,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:195,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:204,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:207,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 209
    functionName: x509_name_ex_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - sk_X509_NAME_ENTRY_num
    - sk_STACK_OF_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_value
    - X509_NAME_free
    - memcpy
    - sk_X509_NAME_ENTRY_push
    - ASN1_ITEM_rptr
    - BUF_MEM_grow
    - x509_name_canon
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - ERR_raise
    - x509_name_ex_new
    - sk_X509_NAME_ENTRY_set
    - STACK_OF
    - x509_name_ex_free
    - sk_STACK_OF_X509_NAME_ENTRY_num
    - ASN1_item_ex_d2i
    linkageType: ''
    returnType: int
    signature: "int 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: x509_name_encode
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:218,1
    - Dst: x509_name_canon
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:221,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - val
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 231
    functionName: x509_name_ex_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - x509_name_encode
    - memcpy
    - x509_name_canon
    linkageType: ''
    returnType: int
    signature: "int x509_name_ex_i2d(const ASN1_VALUE **val, unsigned char **out,\n
      \                           const ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:243,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:247,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:250,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:251,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:253,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_push
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:256,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:257,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:262,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:265,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:266,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:267,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:270,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:271,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:272,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:277,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 281
    functionName: x509_name_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - sk_X509_NAME_ENTRY_new_null
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_push
    - ASN1_ITEM_rptr
    - BUF_MEM_grow
    - ERR_raise
    - STACK_OF
    - sk_STACK_OF_X509_NAME_ENTRY_push
    - ASN1_item_ex_i2d
    - sk_X509_NAME_ENTRY_num
    - sk_STACK_OF_X509_NAME_ENTRY_new_null
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - sk_X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: int x509_name_encode(X509_NAME *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - indent
    - fname
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: x509_name_ex_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print_ex
    linkageType: ''
    returnType: int
    signature: "int x509_name_ex_print(BIO *out, const ASN1_VALUE **pval,\n                              int
      indent,\n                              const char *fname, const ASN1_PCTX *pctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:307,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:308,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:312,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:315,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:319,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:321,1
    - Dst: sk_X509_NAME_ENTRY_num
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:324,1
    - Dst: sk_X509_NAME_ENTRY_value
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:325,1
    - Dst: sk_X509_NAME_ENTRY_new_null
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:327,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_push
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:330,1
    - Dst: sk_X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:331,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:332,1
    - Dst: X509_NAME_ENTRY_new
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:337,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:339,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:342,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:344,1
    - Dst: asn1_string_canon
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:347,1
    - Dst: sk_X509_NAME_ENTRY_push
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:349,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:350,1
    - Dst: i2d_name_canon
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:357,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:362,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:364,1
    - Dst: i2d_name_canon
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:370,1
    - Dst: X509_NAME_ENTRY_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:375,1
    - Dst: sk_STACK_OF_X509_NAME_ENTRY_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:376,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 1
    argNames:
    - a
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 379
    functionName: x509_name_canon
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 2
    functionsReached:
    - sk_X509_NAME_ENTRY_new_null
    - sk_X509_NAME_ENTRY_value
    - sk_X509_NAME_ENTRY_push
    - OPENSSL_malloc
    - X509_NAME_ENTRY_new
    - ERR_raise
    - i2d_name_canon
    - X509_NAME_ENTRY_free
    - OPENSSL_free
    - STACK_OF
    - asn1_string_canon
    - sk_STACK_OF_X509_NAME_ENTRY_push
    - sk_X509_NAME_ENTRY_num
    - OBJ_dup
    - sk_STACK_OF_X509_NAME_ENTRY_new_null
    - sk_STACK_OF_X509_NAME_ENTRY_pop_free
    - sk_X509_NAME_ENTRY_free
    linkageType: ''
    returnType: int
    signature: int x509_name_canon(X509_NAME *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_tag2bit
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:394,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:395,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:401,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:418,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:426,1
    - Dst: ossl_isascii
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:436,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:441,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:453,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:455,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 465
    functionName: asn1_string_canon
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    - ossl_tolower
    - ASN1_STRING_copy
    - ASN1_tag2bit
    - ossl_isascii
    - ASN1_STRING_to_UTF8
    linkageType: ''
    returnType: int
    signature: int asn1_string_canon(ASN1_STRING *out, const ASN1_STRING *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:472,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:472,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:475,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:476,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:477,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - _intname
    - in
    argTypes:
    - STACK_OF*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 484
    functionName: i2d_name_canon
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_VALUE_value
    - ASN1_ITEM_rptr
    - sk_ASN1_VALUE_num
    - STACK_OF
    - ASN1_item_ex_i2d
    linkageType: ''
    returnType: int
    signature: "int i2d_name_canon(const STACK_OF(STACK_OF_X509_NAME_ENTRY) * _intname,\n
      \                         unsigned char **in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:492,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xn
    - name
    argTypes:
    - X509_NAME**
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 497
    functionName: X509_NAME_set
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 5
    functionsReached:
    - X509_NAME_dup
    - X509_NAME_free
    linkageType: ''
    returnType: int
    signature: int X509_NAME_set(X509_NAME **xn, const X509_NAME *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:504,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:508,1
    - Dst: ossl_isupper
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:516,1
    - Dst: ossl_isupper
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:517,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:521,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:525,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:534,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:537,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:538,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - bp
    - name
    - obase
    argTypes:
    - BIO*
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 540
    functionName: X509_NAME_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - ossl_isupper
    - X509_NAME_oneline
    - ERR_raise
    - OPENSSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/x509/x_name.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - nm
    - pder
    - pderlen
    argTypes:
    - X509_NAME*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 553
    functionName: X509_NAME_get0_der
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x_name.c
    functionUses: 0
    functionsReached:
    - i2d_X509_NAME
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_get0_der(const X509_NAME *nm, const unsigned char **pder,\n
      \                      size_t *pderlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:20,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:20,1
    - Dst: X509_LOOKUP_load_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:23,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:25,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:25,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:28,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:30,1
    - Dst: X509_LOOKUP_store
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:30,1
    - Dst: X509_LOOKUP_add_store_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:33,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - libctx
    - propq
    argTypes:
    - X509_STORE*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: X509_STORE_set_default_paths_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_add_dir
    - ERR_clear_error
    - X509_STORE_add_lookup
    - X509_LOOKUP_load_file_ex
    - X509_LOOKUP_file
    - X509_LOOKUP_add_store_ex
    - X509_LOOKUP_store
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_set_default_paths_ex(X509_STORE *ctx, OSSL_LIB_CTX
      *libctx,\n                                    const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_set_default_paths_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: X509_STORE_set_default_paths
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 1
    functionsReached:
    - X509_STORE_set_default_paths_ex
    linkageType: ''
    returnType: int
    signature: int X509_STORE_set_default_paths(X509_STORE *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:51,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:51,1
    - Dst: X509_LOOKUP_load_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - file
    - libctx
    - propq
    argTypes:
    - X509_STORE*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: X509_STORE_load_file_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_file
    - X509_LOOKUP_load_file_ex
    - X509_STORE_add_lookup
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_load_file_ex(X509_STORE *ctx, const char *file,\n                            OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_load_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - file
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: X509_STORE_load_file
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_STORE_load_file_ex
    linkageType: ''
    returnType: int
    signature: int X509_STORE_load_file(X509_STORE *ctx, const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:69,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:69,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: X509_STORE_load_path
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_add_dir
    - X509_STORE_add_lookup
    linkageType: ''
    returnType: int
    signature: int X509_STORE_load_path(X509_STORE *ctx, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:82,1
    - Dst: X509_LOOKUP_store
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:82,1
    - Dst: X509_LOOKUP_add_store_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - uri
    - libctx
    - propq
    argTypes:
    - X509_STORE*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: X509_STORE_load_store_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_LOOKUP_add_store_ex
    - X509_LOOKUP_store
    - X509_STORE_add_lookup
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_load_store_ex(X509_STORE *ctx, const char *uri,\n                             OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_load_store_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - uri
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: X509_STORE_load_store
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_STORE_load_store_ex
    linkageType: ''
    returnType: int
    signature: int X509_STORE_load_store(X509_STORE *ctx, const char *uri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_load_file_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:100,1
    - Dst: X509_STORE_load_path
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - file
    - path
    - libctx
    - propq
    argTypes:
    - X509_STORE*
    - char*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: X509_STORE_load_locations_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 0
    functionsReached:
    - X509_STORE_load_path
    - X509_STORE_load_file_ex
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_load_locations_ex(X509_STORE *ctx, const char *file,\n
      \                                const char *path, OSSL_LIB_CTX *libctx,\n                                 const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_load_locations_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_d2.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - file
    - path
    argTypes:
    - X509_STORE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: X509_STORE_load_locations
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_d2.c
    functionUses: 3
    functionsReached:
    - X509_STORE_load_locations_ex
    linkageType: ''
    returnType: int
    signature: "int X509_STORE_load_locations(X509_STORE *ctx, const char *file,\n
      \                             const char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: X509at_get_attr_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_X509_ATTRIBUTE_num
    linkageType: ''
    returnType: int
    signature: int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:29,1
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: X509at_get_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 5
    functionsReached:
    - X509at_get_attr_by_OBJ
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int
      nid,\n                           int lastpos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:47,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:49,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sk
    - obj
    - lastpos
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: X509at_get_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 4
    functionsReached:
    - OBJ_cmp
    - sk_X509_ATTRIBUTE_num
    - sk_X509_ATTRIBUTE_value
    linkageType: ''
    returnType: int
    signature: "int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk,\n                           const
      ASN1_OBJECT *obj, int lastpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:58,1
    - Dst: sk_X509_ATTRIBUTE_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: X509at_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 5
    functionsReached:
    - sk_X509_ATTRIBUTE_num
    - sk_X509_ATTRIBUTE_value
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x,
      int loc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:229,1
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:232,1
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:234,1
    - Dst: X509_ATTRIBUTE_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:235,1
    - Dst: X509_ATTRIBUTE_get0_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - x
    - obj
    - lastpos
    - type
    argTypes:
    - STACK_OF*
    - ASN1_OBJECT*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: X509at_get0_data_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 2
    functionsReached:
    - X509at_get_attr_by_OBJ
    - X509_ATTRIBUTE_get0_data
    - X509_ATTRIBUTE_count
    - X509at_get_attr
    linkageType: ''
    returnType: void
    signature: "void *X509at_get0_data_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *x,\n
      \                             const ASN1_OBJECT *obj, int lastpos, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:266,1
    - Dst: X509_ATTRIBUTE_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:269,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - attr
    - nid
    - atrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 273
    functionName: X509_ATTRIBUTE_create_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - X509_ATTRIBUTE_create_by_OBJ
    - ERR_raise
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr,
      int nid,\n                                             int atrtype, const void
      *data,\n                                             int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:283,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:284,1
    - Dst: X509_ATTRIBUTE_set1_object
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:290,1
    - Dst: X509_ATTRIBUTE_set1_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:292,1
    - Dst: X509_ATTRIBUTE_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - attr
    - obj
    - atrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - ASN1_OBJECT*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 302
    functionName: X509_ATTRIBUTE_create_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - X509_ATTRIBUTE_new
    - X509_ATTRIBUTE_set1_data
    - X509_ATTRIBUTE_set1_object
    - X509_ATTRIBUTE_free
    - ERR_raise
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr,\n
      \                                            const ASN1_OBJECT *obj,\n                                             int
      atrtype, const void *data,\n                                             int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:312,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:314,1
    - Dst: X509_ATTRIBUTE_create_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:318,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - attr
    - atrname
    - type
    - bytes
    - len
    argTypes:
    - X509_ATTRIBUTE**
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: X509_ATTRIBUTE_create_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 0
    functionsReached:
    - X509_ATTRIBUTE_create_by_OBJ
    - OBJ_txt2obj
    - ERR_raise_data
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: "X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr,\n
      \                                            const char *atrname, int type,\n
      \                                            const unsigned char *bytes,\n                                             int
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:327,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - attr
    - obj
    argTypes:
    - X509_ATTRIBUTE*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: X509_ATTRIBUTE_set1_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT
      *obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:341,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:342,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:344,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:349,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:351,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:361,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:364,1
    - Dst: ASN1_TYPE_set1
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:367,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:370,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:373,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:377,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:378,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:379,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - attr
    - attrtype
    - data
    - len
    argTypes:
    - X509_ATTRIBUTE*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 381
    functionName: X509_ATTRIBUTE_set1_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_STRING_free
    - ASN1_STRING_set_by_NID
    - ASN1_STRING_type_new
    - ASN1_TYPE_set1
    - OBJ_obj2nid
    - sk_ASN1_TYPE_push
    - ERR_raise
    - ASN1_TYPE_set
    - ASN1_TYPE_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,\n
      \                            const void *data, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: X509_ATTRIBUTE_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_TYPE_num
    linkageType: ''
    returnType: int
    signature: int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - attr
    argTypes:
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: X509_ATTRIBUTE_get0_object
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:401,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:406,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - attr
    - idx
    - atrtype
    - data
    argTypes:
    - X509_ATTRIBUTE*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 411
    functionName: X509_ATTRIBUTE_get0_data
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 1
    functionsReached:
    - X509_ATTRIBUTE_get0_type
    - ASN1_TYPE_get
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: "void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,\n                               int
      atrtype, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_TYPE_value
      Src: /src/openssl-3.0.15/crypto/x509/x509_att.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - attr
    - idx
    argTypes:
    - X509_ATTRIBUTE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: X509_ATTRIBUTE_get0_type
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_att.c
    functionUses: 3
    functionsReached:
    - sk_ASN1_TYPE_value
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_new_ex
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:29,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:31,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:38,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:43,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:43,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:46,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:49,1
    - Dst: X509_REQ_sign
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:54,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 61
    functionName: X509_to_X509_REQ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_REQ_sign
    - OPENSSL_malloc
    - X509_REQ_set_subject_name
    - X509_get0_pubkey
    - X509_REQ_free
    - ERR_raise
    - X509_REQ_set_pubkey
    - X509_REQ_new_ex
    - X509_get_subject_name
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: X509_REQ_get_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_get
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: X509_REQ_get0_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 2
    functionsReached:
    - X509_PUBKEY_get0
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: X509_REQ_get_X509_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_PUBKEY
    signature: X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_get_pubkey
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:87,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:88,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:93,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:99,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - x
    - k
    argTypes:
    - X509_REQ*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: X509_REQ_check_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_eq
    - X509_REQ_get_pubkey
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - req_nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: X509_REQ_extension_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_REQ_extension_nid(int req_nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: X509_REQ_get_extension_nids
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int *X509_REQ_get_extension_nids(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: X509_REQ_set_extension_nids
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X509_REQ_set_extension_nids(int *nids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:178,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:179,1
    - Dst: X509_REQ_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:182,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - req
    - exts
    - nid
    argTypes:
    - X509_REQ*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: X509_REQ_add_extensions_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - OPENSSL_free
    - ASN1_item_i2d
    - X509_REQ_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add_extensions_nid(X509_REQ *req,\n                                const
      STACK_OF(X509_EXTENSION) *exts, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_REQ_add_extensions_nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - exts
    argTypes:
    - X509_REQ*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: X509_REQ_add_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509_REQ_add_extensions_nid
    linkageType: ''
    returnType: int
    signature: int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION)
      *exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_count
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: X509_REQ_get_attr_count
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr_count
    linkageType: ''
    returnType: int
    signature: int X509_REQ_get_attr_count(const X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - nid
    - lastpos
    argTypes:
    - X509_REQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: X509_REQ_get_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_NID
    linkageType: ''
    returnType: int
    signature: int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - req
    - obj
    - lastpos
    argTypes:
    - X509_REQ*
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: X509_REQ_get_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_get_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT
      *obj,\n                             int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - loc
    argTypes:
    - X509_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: X509_REQ_get_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_get_attr
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:221,1
    - Dst: X509at_delete_attr
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - req
    - loc
    argTypes:
    - X509_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: X509_REQ_delete_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_delete_attr
    - ERR_raise
    linkageType: ''
    returnType: X509_ATTRIBUTE
    signature: X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:233,1
    - Dst: X509at_add1_attr
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - req
    - attr
    argTypes:
    - X509_REQ*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: X509_REQ_add1_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:247,1
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - req
    - obj
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 255
    functionName: X509_REQ_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,\n                              const
      ASN1_OBJECT *obj, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:262,1
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - req
    - nid
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: X509_REQ_add1_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - X509at_add1_attr_by_NID
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add1_attr_by_NID(X509_REQ *req,\n                              int
      nid, int type,\n                              const unsigned char *bytes, int
      len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:277,1
    - Dst: X509at_add1_attr_by_txt
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - req
    - attrname
    - type
    - bytes
    - len
    argTypes:
    - X509_REQ*
    - char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 285
    functionName: X509_REQ_add1_attr_by_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_txt
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int X509_REQ_add1_attr_by_txt(X509_REQ *req,\n                              const
      char *attrname, int type,\n                              const unsigned char
      *bytes, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: X509_REQ_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long X509_REQ_get_version(const X509_REQ *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: X509_REQ_get_subject_name
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - req
    - psig
    - palg
    argTypes:
    - X509_REQ*
    - ASN1_BIT_STRING**
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: X509_REQ_get0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING
      **psig,\n                             const X509_ALGOR **palg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - req
    - psig
    argTypes:
    - X509_REQ*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: X509_REQ_set0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_free
    linkageType: ''
    returnType: void
    signature: void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_copy
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - palg
    argTypes:
    - X509_REQ*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: X509_REQ_set1_signature_algo
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_copy
    linkageType: ''
    returnType: int
    signature: int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - X509_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: X509_REQ_get_signature_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int X509_REQ_get_signature_nid(const X509_REQ *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:326,1
    - Dst: i2d_X509_REQ_INFO
      Src: /src/openssl-3.0.15/crypto/x509/x509_req.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - pp
    argTypes:
    - X509_REQ*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 331
    functionName: i2d_re_X509_REQ_tbs
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/x509_req.c
    functionUses: 0
    functionsReached:
    - i2d_X509_REQ_INFO
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:101,1
    - Dst: AUTHORITY_KEYID_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:111,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:116,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:116,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:121,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:122,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:124,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:126,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:128,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:145,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:149,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:151,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:154,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:162,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:163,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:165,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:170,1
    - Dst: ossl_x509_pubkey_hash
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:171,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:172,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:177,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:183,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:183,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:184,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:186,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:192,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:193,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:195,1
    - Dst: sk_GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:211,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:212,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:213,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:214,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:215,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_akid.c:216,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 90
    argCount: 3
    argNames:
    - method
    - ctx
    - values
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 96
    functionDepth: 13
    functionLinenumber: 96
    functionLinenumberEnd: 218
    functionName: v2i_AUTHORITY_KEYID
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_akid.c
    functionUses: 0
    functionsReached:
    - AUTHORITY_KEYID_new
    - X509_get_ext
    - ASN1_STRING_length
    - GENERAL_NAME_free
    - ASN1_INTEGER_free
    - AUTHORITY_KEYID_free
    - X509_NAME_free
    - X509_PUBKEY_free
    - ERR_raise_data
    - X509_NAME_dup
    - X509_get_issuer_name
    - X509_check_private_key
    - X509_PUBKEY_set
    - X509_get_ext_by_NID
    - ERR_raise
    - sk_GENERAL_NAME_push
    - X509V3_EXT_d2i
    - strcmp
    - GENERAL_NAME_new
    - sk_CONF_VALUE_value
    - ASN1_OCTET_STRING_free
    - sk_CONF_VALUE_num
    - sk_GENERAL_NAME_free
    - ERR_set_mark
    - ERR_pop_to_mark
    - X509_get0_serialNumber
    - sk_GENERAL_NAME_new_null
    - ASN1_INTEGER_dup
    - ossl_x509_pubkey_hash
    linkageType: ''
    returnType: AUTHORITY_KEYID
    signature: "AUTHORITY_KEYID *v2i_AUTHORITY_KEYID(X509V3_EXT_METHOD *method,\n
      \                                           X509V3_CTX *ctx,\n                                            STACK_OF(CONF_VALUE)
      *values)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:92,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:96,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:96,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:98,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:102,1
    - Dst: sk_POLICYINFO_new_reserve
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:108,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:114,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:116,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:117,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:121,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:125,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:127,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:129,1
    - Dst: policy_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:133,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:134,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:138,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:139,1
    - Dst: POLICYINFO_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:144,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:147,1
    - Dst: sk_POLICYINFO_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:152,1
    - Dst: POLICYINFO_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:153,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:154,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:158,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:161,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:162,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 3
    argNames:
    - method
    - ctx
    - value
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 164
    functionName: r2i_certpol
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2obj
    - ERR_raise_data
    - sk_POLICYINFO_push
    - X509V3_parse_list
    - ASN1_OBJECT_free
    - X509V3_section_free
    - sk_POLICYINFO_new_reserve
    - policy_section
    - X509V3_conf_add_error_name_value
    - POLICYINFO_free
    - sk_POLICYINFO_pop_free
    - ERR_raise
    - STACK_OF
    - strcmp
    - POLICYINFO_new
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_num
    - sk_CONF_VALUE_pop_free
    - X509V3_get_section
    linkageType: ''
    returnType: STACK_OF
    signature: "STACK_OF *r2i_certpol(X509V3_EXT_METHOD *method,\n                                         X509V3_CTX
      *ctx, const char *value)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: POLICYINFO_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:174,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:176,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:177,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:178,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:182,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:183,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:188,1
    - Dst: sk_POLICYQUALINFO_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:190,1
    - Dst: POLICYQUALINFO_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:191,1
    - Dst: sk_POLICYQUALINFO_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:193,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:196,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:199,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:201,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:202,1
    - Dst: ossl_v3_name_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:204,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:207,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:208,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:213,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:215,1
    - Dst: notice_section
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:218,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:219,1
    - Dst: sk_POLICYQUALINFO_new_null
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:223,1
    - Dst: sk_POLICYQUALINFO_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:227,1
    - Dst: X509V3_conf_err
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:228,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:233,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:240,1
    - Dst: POLICYINFO_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:243,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 3
    argNames:
    - ctx
    - polstrs
    - ia5org
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 245
    functionName: policy_section
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 1
    functionsReached:
    - strlen
    - OBJ_txt2obj
    - sk_POLICYQUALINFO_new_null
    - ossl_v3_name_cmp
    - X509V3_section_free
    - sk_POLICYQUALINFO_push
    - ASN1_IA5STRING_new
    - X509V3_conf_err
    - OBJ_nid2obj
    - POLICYINFO_free
    - ERR_raise
    - STACK_OF
    - notice_section
    - strcmp
    - POLICYQUALINFO_new
    - POLICYINFO_new
    - sk_CONF_VALUE_value
    - sk_CONF_VALUE_num
    - X509V3_get_section
    - ASN1_STRING_set
    linkageType: ''
    returnType: POLICYINFO
    signature: "POLICYINFO *policy_section(X509V3_CTX *ctx,\n                                  STACK_OF(CONF_VALUE)
      *polstrs, int ia5org)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: displaytext_get_tag_len
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int displaytext_get_tag_len(const char *tagstr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: displaytext_get_tag_len
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:259,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:264,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:266,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:268,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:270,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:272,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:274,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - tagstr
    - tag_len
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 278
    functionName: displaytext_str2tag
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 0
    functionsReached:
    - strncmp
    - displaytext_get_tag_len
    linkageType: ''
    returnType: int
    signature: int displaytext_str2tag(const char *tagstr, unsigned int *tag_len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: POLICYQUALINFO_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:290,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:292,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:293,1
    - Dst: USERNOTICE_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:296,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:299,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:300,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:303,1
    - Dst: displaytext_str2tag
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:304,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:305,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:309,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:310,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:312,1
    - Dst: NOTICEREF_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:316,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:325,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:326,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:328,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:331,1
    - Dst: NOTICEREF_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:333,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:338,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:339,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:340,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:341,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:342,1
    - Dst: nref_nos
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:345,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:346,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:350,1
    - Dst: X509V3_conf_add_error_name_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:351,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:358,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:365,1
    - Dst: POLICYQUALINFO_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:368,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 85
    argCount: 3
    argNames:
    - ctx
    - unot
    - ia5org
    argTypes:
    - X509V3_CTX*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 370
    functionName: notice_section
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 1
    functionsReached:
    - POLICYQUALINFO_free
    - NOTICEREF_new
    - displaytext_str2tag
    - ASN1_STRING_type_new
    - OBJ_nid2obj
    - sk_CONF_VALUE_num
    - X509V3_conf_add_error_name_value
    - sk_CONF_VALUE_pop_free
    - ERR_raise
    - ASN1_STRING_set
    - STACK_OF
    - strlen
    - strcmp
    - X509V3_parse_list
    - USERNOTICE_new
    - POLICYQUALINFO_new
    - nref_nos
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: POLICYQUALINFO
    signature: "POLICYQUALINFO *notice_section(X509V3_CTX *ctx,\n                                      STACK_OF(CONF_VALUE)
      *unot, int ia5org)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:454,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:457,1
    - Dst: sk_ASN1_INTEGER_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:458,1
    - Dst: sk_ASN1_INTEGER_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:459,1
    - Dst: sk_ASN1_INTEGER_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:462,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:464,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:466,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:468,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:471,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:472,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:476,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - out
    - notice
    - indent
    argTypes:
    - BIO*
    - USERNOTICE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 448
    functionDepth: 7
    functionLinenumber: 448
    functionLinenumberEnd: 482
    functionName: print_notice
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_INTEGER_value
    - BIO_puts
    - sk_ASN1_INTEGER_num
    - OPENSSL_free
    - BIO_printf
    - i2s_ASN1_INTEGER
    linkageType: ''
    returnType: void
    signature: void print_notice(BIO *out, USERNOTICE *notice, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:488,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:490,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:491,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:492,1
    - Dst: node_data_critical
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:493,1
    - Dst: print_qualifiers
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:495,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:496,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_cpols.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - out
    - node
    - indent
    argTypes:
    - BIO*
    - X509_POLICY_NODE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 500
    functionName: X509_POLICY_NODE_print
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_cpols.c
    functionUses: 1
    functionsReached:
    - BIO_puts
    - print_qualifiers
    - node_data_critical
    - BIO_printf
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: void
    signature: void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:76,1
    - Dst: sk_SXNETID_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:78,1
    - Dst: sk_SXNETID_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:79,1
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:84,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - method
    - sx
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - SXNET*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: sxnet_i2r
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get_int64
    - sk_SXNETID_num
    - OPENSSL_free
    - sk_SXNETID_value
    - BIO_printf
    - i2s_ASN1_INTEGER
    - ASN1_STRING_print
    linkageType: ''
    returnType: int
    signature: "int sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out,\n                     int
      indent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:104,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:105,1
    - Dst: SXNET_add_id_asc
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:106,1
    - Dst: SXNET_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - method
    - ctx
    - nval
    argTypes:
    - X509V3_EXT_METHOD*
    - X509V3_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: sxnet_v2i
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - SXNET_add_id_asc
    - sk_CONF_VALUE_num
    - SXNET_free
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: SXNET
    signature: "SXNET *sxnet_v2i(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,\n                        STACK_OF(CONF_VALUE)
      *nval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:125,1
    - Dst: SXNET_add_id_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:128,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - psx
    - zone
    - user
    - userlen
    argTypes:
    - SXNET**
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: SXNET_add_id_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 1
    functionsReached:
    - s2i_ASN1_INTEGER
    - ASN1_INTEGER_free
    - SXNET_add_id_INTEGER
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user,
      int userlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:142,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:144,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:145,1
    - Dst: SXNET_add_id_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:148,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - psx
    - lzone
    - user
    - userlen
    argTypes:
    - SXNET**
    - unsigned long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 153
    functionName: SXNET_add_id_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - SXNET_add_id_INTEGER
    - ASN1_INTEGER_set
    - ERR_raise
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: "int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char
      *user,\n                       int userlen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:167,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:173,1
    - Dst: SXNET_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:177,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:179,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:184,1
    - Dst: SXNET_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:186,1
    - Dst: SXNETID_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:190,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:193,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:195,1
    - Dst: sk_SXNETID_push
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:197,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:205,1
    - Dst: SXNETID_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:206,1
    - Dst: SXNET_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:208,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 4
    argNames:
    - psx
    - zone
    - user
    - userlen
    argTypes:
    - SXNET**
    - ASN1_INTEGER*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 210
    functionName: SXNET_add_id_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 2
    functionsReached:
    - SXNET_get_id_INTEGER
    - ASN1_INTEGER_set
    - SXNETID_new
    - ASN1_OCTET_STRING_set
    - SXNETID_free
    - SXNET_new
    - ERR_raise
    - sk_SXNETID_push
    - SXNET_free
    - strlen
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: "int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *zone, const char
      *user,\n                         int userlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:218,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:221,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sx
    - zone
    argTypes:
    - SXNET*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 7
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: SXNET_get_id_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - s2i_ASN1_INTEGER
    - ASN1_INTEGER_free
    - SXNET_get_id_INTEGER
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:231,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:233,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:234,1
    - Dst: SXNET_get_id_INTEGER
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:237,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sx
    - lzone
    argTypes:
    - SXNET*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 240
    functionName: SXNET_get_id_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 0
    functionsReached:
    - SXNET_get_id_INTEGER
    - ASN1_INTEGER_set
    - ERR_raise
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SXNETID_num
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:246,1
    - Dst: sk_SXNETID_value
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:247,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sx
    - zone
    argTypes:
    - SXNET*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: SXNET_get_id_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/x509/v3_sxnet.c
    functionUses: 3
    functionsReached:
    - sk_SXNETID_num
    - ASN1_INTEGER_cmp
    - sk_SXNETID_value
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/store/store_err.c:71,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/store/store_err.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: ossl_err_load_OSSL_STORE_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_OSSL_STORE_strings(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_get0_provider
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:91,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:92,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:97,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:100,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:101,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:103,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:105,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:107,1
    - Dst: OSSL_PARAM_get_octet_string_ptr
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:109,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:111,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:113,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:115,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:117,1
    - Dst: OSSL_PARAM_get_octet_string_ptr
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:118,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:121,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:122,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:129,1
    - Dst: try_name
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:130,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:132,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:133,1
    - Dst: try_key
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:134,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:136,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:137,1
    - Dst: try_cert
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:138,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:140,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:141,1
    - Dst: try_crl
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:142,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:144,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:145,1
    - Dst: try_pkcs12
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:146,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:151,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:155,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 52
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 157
    functionName: ossl_store_handle_load_result
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 0
    functionsReached:
    - try_name
    - try_crl
    - OSSL_PARAM_get_utf8_string_ptr
    - ERR_set_mark
    - ERR_raise
    - ossl_provider_libctx
    - OSSL_PARAM_get_octet_string_ptr
    - try_pkcs12
    - ERR_pop_to_mark
    - try_key
    - try_cert
    - OSSL_PARAM_locate_const
    - ERR_clear_last_mark
    - memset
    - OSSL_PARAM_get_int
    - OSSL_STORE_LOADER_get0_provider
    linkageType: ''
    returnType: int
    signature: int ossl_store_handle_load_result(const OSSL_PARAM params[], void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:166,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:168,1
    - Dst: OSSL_STORE_INFO_new_NAME
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:171,1
    - Dst: OSSL_STORE_INFO_set0_NAME_description
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - data
    - v
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: try_name
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - OSSL_STORE_INFO_new_NAME
    - OSSL_STORE_INFO_set0_NAME_description
    linkageType: ''
    returnType: int
    signature: int try_name(struct extracted_param_data_st *data, OSSL_STORE_INFO
      **v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:200,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:201,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:211,1
    - Dst: evp_keymgmt_load
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:214,1
    - Dst: export_object
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:229,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:239,1
    - Dst: evp_keymgmt_fetch_from_prov
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:240,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:243,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:244,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:249,1
    - Dst: evp_keymgmt_util_make_pkey
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:250,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:252,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - data
    - ctx
    - provider
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_CTX*
    - OSSL_PROVIDER*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 186
    functionDepth: 11
    functionLinenumber: 186
    functionLinenumberEnd: 257
    functionName: try_key_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_util_make_pkey
    - evp_keymgmt_load
    - export_object
    - EVP_KEYMGMT_free
    - ERR_set_mark
    - evp_keymgmt_fetch_from_prov
    - ERR_pop_to_mark
    - EVP_KEYMGMT_fetch
    - ERR_clear_last_mark
    - EVP_KEYMGMT_get0_provider
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *try_key_ref(struct extracted_param_data_st *data,\n                             OSSL_STORE_CTX
      *ctx,\n                             const OSSL_PROVIDER *provider,\n                             OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:289,1
    - Dst: OSSL_DECODER_CTX_set_passphrase_cb
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:292,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:295,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - data
    - ctx
    - cb
    - cbarg
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_CTX*
    - OSSL_PASSPHRASE_CALLBACK*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 259
    functionDepth: 13
    functionLinenumber: 259
    functionLinenumberEnd: 300
    functionName: try_key_value
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_CTX_set_passphrase_cb
    - OSSL_DECODER_CTX_free
    - OSSL_DECODER_from_data
    - OSSL_DECODER_CTX_new_for_pkey
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *try_key_value(struct extracted_param_data_st *data,\n                               OSSL_STORE_CTX
      *ctx,\n                               OSSL_PASSPHRASE_CALLBACK *cb, void *cbarg,\n
      \                              OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PUBKEY_ex
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:318,1
    - Dst: d2i_X509_SIG
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:334,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:340,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:341,1
    - Dst: X509_SIG_get0
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:347,1
    - Dst: PKCS12_pbe_crypt
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:353,1
    - Dst: X509_SIG_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:359,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:369,1
    - Dst: EVP_PKCS82PKEY_ex
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:372,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:373,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:380,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 7
    argNames:
    - data
    - store_info_new
    - ctx
    - cb
    - cbarg
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - store_info_new_fn**
    - OSSL_STORE_CTX*
    - OSSL_PASSPHRASE_CALLBACK*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 304
    functionDepth: 7
    functionLinenumber: 304
    functionLinenumberEnd: 384
    functionName: try_key_value_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 0
    functionsReached:
    - d2i_X509_SIG
    - d2i_PKCS8_PRIV_KEY_INFO
    - ERR_raise
    - PKCS12_pbe_crypt
    - d2i_PUBKEY_ex
    - X509_SIG_free
    - X509_SIG_get0
    - PKCS8_PRIV_KEY_INFO_free
    - OPENSSL_free
    - cb
    - EVP_PKCS82PKEY_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *try_key_value_legacy(struct extracted_param_data_st *data,\n
      \                                     store_info_new_fn **store_info_new,\n
      \                                     OSSL_STORE_CTX *ctx,\n                                      OSSL_PASSPHRASE_CALLBACK
      *cb, void *cbarg,\n                                      OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: try_key_ref
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:398,1
    - Dst: try_key_value
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:412,1
    - Dst: try_key_value_legacy
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:422,1
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:438,1
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:440,1
    - Dst: store_info_new
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:446,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 6
    argNames:
    - data
    - v
    - ctx
    - provider
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_INFO**
    - OSSL_STORE_CTX*
    - OSSL_PROVIDER*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 386
    functionDepth: 14
    functionLinenumber: 386
    functionLinenumberEnd: 454
    functionName: try_key
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 1
    functionsReached:
    - try_key_ref
    - evp_keymgmt_util_has
    - EVP_PKEY_free
    - store_info_new
    - try_key_value_legacy
    - try_key_value
    linkageType: ''
    returnType: int
    signature: "int try_key(struct extracted_param_data_st *data, OSSL_STORE_INFO
      **v,\n                   OSSL_STORE_CTX *ctx, const OSSL_PROVIDER *provider,\n
      \                  OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:471,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:478,1
    - Dst: d2i_X509_AUX
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:481,1
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:484,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:486,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:493,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:495,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - data
    - v
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_INFO**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 500
    functionName: try_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 1
    functionsReached:
    - d2i_X509_AUX
    - X509_free
    - OSSL_STORE_INFO_new_CERT
    - d2i_X509
    - X509_new_ex
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: "int try_cert(struct extracted_param_data_st *data, OSSL_STORE_INFO
      **v,\n                    OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509_CRL
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:509,1
    - Dst: ossl_x509_crl_set0_libctx
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:516,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:517,1
    - Dst: OSSL_STORE_INFO_new_CRL
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:522,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - data
    - v
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_INFO**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 528
    functionName: try_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 1
    functionsReached:
    - ossl_x509_crl_set0_libctx
    - OSSL_STORE_INFO_new_CRL
    - d2i_X509_CRL
    - X509_CRL_free
    linkageType: ''
    returnType: int
    signature: "int try_crl(struct extracted_param_data_st *data, OSSL_STORE_INFO
      **v,\n                   OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PKCS12
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:541,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:550,1
    - Dst: PKCS12_mac_present
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:556,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:557,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:559,1
    - Dst: OSSL_PARAM_utf8_string
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:564,1
    - Dst: ossl_pw_get_passphrase
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:570,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:573,1
    - Dst: PKCS12_verify_mac
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:583,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:584,1
    - Dst: PKCS12_parse
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:592,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:593,1
    - Dst: sk_OSSL_STORE_INFO_new_null
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:600,1
    - Dst: OSSL_STORE_INFO_new_PKEY
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:602,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:605,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:611,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:614,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:619,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:620,1
    - Dst: OSSL_STORE_INFO_new_CERT
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:622,1
    - Dst: sk_X509_shift
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:623,1
    - Dst: sk_OSSL_STORE_INFO_push
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:624,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:630,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:631,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:632,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:633,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:634,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:635,1
    - Dst: sk_OSSL_STORE_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:637,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:643,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:644,1
    - Dst: sk_OSSL_STORE_INFO_shift
      Src: /src/openssl-3.0.15/crypto/store/store_result.c:646,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 5
    argNames:
    - data
    - v
    - ctx
    - libctx
    - propq
    argTypes:
    - struct extracted_param_data_st*
    - OSSL_STORE_INFO**
    - OSSL_STORE_CTX*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 650
    functionName: try_pkcs12
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_result.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_INFO_free
    - sk_X509_value
    - X509_free
    - OPENSSL_cleanse
    - sk_OSSL_STORE_INFO_new_null
    - PKCS12_mac_present
    - sk_OSSL_STORE_INFO_pop_free
    - PKCS12_parse
    - OSSL_STORE_INFO_new_CERT
    - ERR_raise_data
    - OSSL_PARAM_utf8_string
    - OSSL_STORE_INFO_new_PKEY
    - PKCS12_free
    - d2i_PKCS12
    - sk_X509_shift
    - PKCS12_verify_mac
    - ERR_raise
    - sk_X509_num
    - STACK_OF
    - ossl_pw_get_passphrase
    - sk_OSSL_STORE_INFO_shift
    - sk_X509_pop_free
    - EVP_PKEY_free
    - sk_OSSL_STORE_INFO_push
    linkageType: ''
    returnType: int
    signature: "int try_pkcs12(struct extracted_param_data_st *data, OSSL_STORE_INFO
      **v,\n                      OSSL_STORE_CTX *ctx,\n                      OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: OSSL_STORE_INFO_type_string
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_strings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_type_string(int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: OSSL_STORE_LOADER_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_LOADER_up_ref(OSSL_STORE_LOADER *loader)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:32,1
    - Dst: ossl_provider_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:35,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: OSSL_STORE_LOADER_free
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - ossl_provider_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:49,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:50,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:51,1
    - Dst: ossl_provider_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: new_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - OPENSSL_zalloc
    - ossl_provider_up_ref
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *new_loader(OSSL_PROVIDER *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: up_ref_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_up_ref
    linkageType: ''
    returnType: int
    signature: int up_ref_loader(void *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: free_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_free
    linkageType: ''
    returnType: void
    signature: void free_loader(void *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vstore
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: loader_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void loader_store_free(void *vstore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: loader_store_new
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *loader_store_new(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_new
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: get_tmp_loader_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_new
    linkageType: ''
    returnType: void
    signature: void *get_tmp_loader_store(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - store
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: dealloc_tmp_loader_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_method_store_free
    linkageType: ''
    returnType: void
    signature: void dealloc_tmp_loader_store(void *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: get_loader_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_METHOD_STORE
    signature: OSSL_METHOD_STORE *get_loader_store(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:135,1
    - Dst: ossl_method_lock_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 7
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: reserve_loader_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - get_loader_store
    - ossl_method_lock_store
    linkageType: ''
    returnType: int
    signature: int reserve_loader_store(void *store, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:146,1
    - Dst: ossl_method_unlock_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - store
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 7
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: unreserve_loader_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - get_loader_store
    - ossl_method_unlock_store
    linkageType: ''
    returnType: int
    signature: int unreserve_loader_store(void *store, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:161,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:163,1
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:167,1
    - Dst: ossl_method_store_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - store
    - prov
    - data
    argTypes:
    - void*
    - OSSL_PROVIDER**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 153
    functionDepth: 8
    functionLinenumber: 153
    functionLinenumberEnd: 173
    functionName: get_loader_from_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_name2num
    - get_loader_store
    - ossl_namemap_stored
    - ossl_method_store_fetch
    linkageType: ''
    returnType: void
    signature: "void *get_loader_from_store(void *store, const OSSL_PROVIDER **prov,\n
      \                                  void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:184,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:185,1
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:188,1
    - Dst: ossl_method_store_add
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 6
    argNames:
    - store
    - method
    - prov
    - scheme
    - propdef
    - data
    argTypes:
    - void*
    - void*
    - OSSL_PROVIDER*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 175
    functionDepth: 8
    functionLinenumber: 175
    functionLinenumberEnd: 193
    functionName: put_loader_in_store
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_name2num
    - get_loader_store
    - ossl_namemap_stored
    - ossl_method_store_add
    linkageType: ''
    returnType: int
    signature: "int put_loader_in_store(void *store, void *method,\n                               const
      OSSL_PROVIDER *prov,\n                               const char *scheme, const
      char *propdef,\n                               void *data)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: new_loader
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:201,1
    - Dst: OSSL_FUNC_store_open
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:211,1
    - Dst: OSSL_FUNC_store_attach
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:215,1
    - Dst: OSSL_FUNC_store_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:220,1
    - Dst: OSSL_FUNC_store_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:224,1
    - Dst: OSSL_FUNC_store_load
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:228,1
    - Dst: OSSL_FUNC_store_eof
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:232,1
    - Dst: OSSL_FUNC_store_close
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:236,1
    - Dst: OSSL_FUNC_store_export_object
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:240,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:250,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:251,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 3
    argNames:
    - scheme_id
    - algodef
    - prov
    argTypes:
    - int
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 255
    functionName: loader_from_algorithm
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_FUNC_store_set_ctx_params
    - OSSL_FUNC_store_eof
    - OSSL_FUNC_store_settable_ctx_params
    - ERR_raise
    - OSSL_FUNC_store_attach
    - OSSL_STORE_LOADER_free
    - OSSL_FUNC_store_load
    - OSSL_FUNC_store_export_object
    - OSSL_FUNC_store_close
    - OSSL_FUNC_store_open
    - new_loader
    linkageType: ''
    returnType: void
    signature: "void *loader_from_algorithm(int scheme_id, const OSSL_ALGORITHM *algodef,\n
      \                                  OSSL_PROVIDER *prov)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:272,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:273,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:275,1
    - Dst: loader_from_algorithm
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - algodef
    - prov
    - data
    argTypes:
    - OSSL_ALGORITHM*
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 262
    functionDepth: 8
    functionLinenumber: 262
    functionLinenumberEnd: 290
    functionName: construct_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_add_name
    - ossl_provider_libctx
    - ossl_namemap_stored
    - loader_from_algorithm
    linkageType: ''
    returnType: void
    signature: "void *construct_loader(const OSSL_ALGORITHM *algodef,\n                              OSSL_PROVIDER
      *prov, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - data
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: destruct_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_free
    linkageType: ''
    returnType: void
    signature: void destruct_loader(void *method, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:303,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:304,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:310,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:319,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:325,1
    - Dst: ossl_method_store_cache_get
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:335,1
    - Dst: ossl_method_construct
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:351,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:360,1
    - Dst: ossl_method_store_cache_set
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:361,1
    - Dst: ossl_namemap_num2name
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:382,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:383,1
    - Dst: ossl_lib_ctx_get_descriptor
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:386,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 4
    argNames:
    - methdata
    - id
    - scheme
    - properties
    argTypes:
    - struct loader_data_st*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 299
    functionDepth: 8
    functionLinenumber: 299
    functionLinenumberEnd: 392
    functionName: inner_loader_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - ossl_method_store_cache_get
    - ossl_lib_ctx_get_descriptor
    - ossl_namemap_num2name
    - get_loader_store
    - ERR_raise_data
    - ERR_raise
    - ossl_namemap_name2num
    - ossl_method_store_cache_set
    - ossl_method_construct
    - ossl_assert
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: "OSSL_STORE_LOADER *\ninner_loader_fetch(struct loader_data_st *methdata,
      int id,\n                   const char *scheme, const char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_loader_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:403,1
    - Dst: dealloc_tmp_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - libctx
    - scheme
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 394
    functionDepth: 9
    functionLinenumber: 394
    functionLinenumberEnd: 406
    functionName: OSSL_STORE_LOADER_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - inner_loader_fetch
    - dealloc_tmp_loader_store
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: "OSSL_STORE_LOADER *OSSL_STORE_LOADER_fetch(OSSL_LIB_CTX *libctx,\n
      \                                          const char *scheme,\n                                           const
      char *properties)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inner_loader_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:417,1
    - Dst: dealloc_tmp_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - libctx
    - scheme_id
    - properties
    argTypes:
    - OSSL_LIB_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 9
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: ossl_store_loader_fetch_by_number
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - inner_loader_fetch
    - dealloc_tmp_loader_store
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: "OSSL_STORE_LOADER *ossl_store_loader_fetch_by_number(OSSL_LIB_CTX
      *libctx,\n                                                     int scheme_id,\n
      \                                                    const char *properties)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:424,1
    - Dst: ossl_method_store_cache_flush_all
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 7
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: ossl_store_loader_store_cache_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 1
    functionsReached:
    - get_loader_store
    - ossl_method_store_cache_flush_all
    linkageType: ''
    returnType: int
    signature: int ossl_store_loader_store_cache_flush(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:433,1
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:434,1
    - Dst: ossl_method_store_remove_all_provided
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 7
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: ossl_store_loader_store_remove_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 1
    functionsReached:
    - get_loader_store
    - ossl_provider_libctx
    - ossl_method_store_remove_all_provided
    linkageType: ''
    returnType: int
    signature: int ossl_store_loader_store_remove_all_provided(const OSSL_PROVIDER
      *prov)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:447,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: OSSL_STORE_LOADER_get0_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_PROVIDER
    signature: OSSL_PROVIDER *OSSL_STORE_LOADER_get0_provider(const OSSL_STORE_LOADER
      *loader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:457,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: OSSL_STORE_LOADER_get0_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_LOADER_get0_properties(const OSSL_STORE_LOADER *loader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:467,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: ossl_store_loader_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_store_loader_get_number(const OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: OSSL_STORE_LOADER_get0_description
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_LOADER_get0_description(const OSSL_STORE_LOADER *loader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:483,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:484,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - loader
    - name
    argTypes:
    - OSSL_STORE_LOADER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 8
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: OSSL_STORE_LOADER_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_name2num
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_LOADER_is_a(const OSSL_STORE_LOADER *loader, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct do_one_data_st*::user_fn
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - method
    - arg
    argTypes:
    - ossl_unused
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: do_one
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - struct do_one_data_st*::user_fn
    linkageType: ''
    returnType: void
    signature: void do_one(ossl_unused int id, void *method, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inner_loader_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:513,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:518,1
    - Dst: ossl_method_store_do_all
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:519,1
    - Dst: get_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:519,1
    - Dst: dealloc_tmp_loader_store
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - libctx
    - user_arg
    argTypes:
    - OSSL_LIB_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 503
    functionDepth: 9
    functionLinenumber: 503
    functionLinenumberEnd: 521
    functionName: OSSL_STORE_LOADER_do_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - inner_loader_fetch
    - ossl_method_store_do_all
    - dealloc_tmp_loader_store
    - get_loader_store
    linkageType: ''
    returnType: void
    signature: "void OSSL_STORE_LOADER_do_all_provided(OSSL_LIB_CTX *libctx,\n                                       void
      (*user_fn)(OSSL_STORE_LOADER *loader,\n                                                       void
      *arg),\n                                       void *user_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:531,1
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:532,1
    - Dst: ossl_namemap_doall_names
      Src: /src/openssl-3.0.15/crypto/store/store_meth.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - loader
    - data
    argTypes:
    - OSSL_STORE_LOADER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 523
    functionDepth: 8
    functionLinenumber: 523
    functionLinenumberEnd: 538
    functionName: OSSL_STORE_LOADER_names_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_meth.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_doall_names
    - ossl_provider_libctx
    - ossl_namemap_stored
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_names_do_all(const OSSL_STORE_LOADER *loader,\n
      \                                  void (*fn)(const char *name, void *data),\n
      \                                  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_registry_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:42,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:46,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - e
    - scheme
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: OSSL_STORE_LOADER_new
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: OSSL_STORE_LOADER_get0_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: OSSL_STORE_LOADER_get0_scheme
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - open_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_open_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: OSSL_STORE_LOADER_set_open
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_open_fn
      open_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - open_ex_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_open_ex_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: OSSL_STORE_LOADER_set_open_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_open_ex\n    (OSSL_STORE_LOADER *loader,\n
      \    OSSL_STORE_open_ex_fn open_ex_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - attach_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_attach_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: OSSL_STORE_LOADER_set_attach
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_attach(OSSL_STORE_LOADER *loader,\n                                 OSSL_STORE_attach_fn
      attach_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - ctrl_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_ctrl_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: OSSL_STORE_LOADER_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_ctrl_fn
      ctrl_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - expect_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_expect_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: OSSL_STORE_LOADER_set_expect
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader,\n                                 OSSL_STORE_expect_fn
      expect_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - find_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_find_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: OSSL_STORE_LOADER_set_find
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_find_fn
      find_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - load_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_load_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: OSSL_STORE_LOADER_set_load
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader,\n                               OSSL_STORE_load_fn
      load_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - eof_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_eof_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: OSSL_STORE_LOADER_set_eof
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader,\n                              OSSL_STORE_eof_fn
      eof_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - error_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_error_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: OSSL_STORE_LOADER_set_error
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader,\n                                OSSL_STORE_error_fn
      error_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - loader
    - close_function
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_close_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: OSSL_STORE_LOADER_set_close
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader,\n                                OSSL_STORE_close_fn
      close_function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: store_loader_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long store_loader_hash(const OSSL_STORE_LOADER *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:149,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_LOADER*
    assertStmts:
    - condition: (a->scheme != NULL && b->scheme != NULL)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/openssl-3.0.15/crypto/store/store_register.c
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: store_loader_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - strcmp
    - assert
    linkageType: ''
    returnType: int
    signature: "int store_loader_cmp(const OSSL_STORE_LOADER *a,\n                            const
      OSSL_STORE_LOADER *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_OSSL_STORE_LOADER_new
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: ossl_store_register_init
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - lh_OSSL_STORE_LOADER_new
    linkageType: ''
    returnType: int
    signature: int ossl_store_register_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isalpha
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:174,1
    - Dst: ossl_isalpha
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:176,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:177,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:178,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:189,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:194,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:197,1
    - Dst: ossl_store_register_init
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:200,1
    - Dst: lh_OSSL_STORE_LOADER_insert
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:201,1
    - Dst: lh_OSSL_STORE_LOADER_error
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:202,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:205,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 22
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 208
    functionName: ossl_store_register_loader_int
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - ossl_isalpha
    - RUN_ONCE
    - ossl_store_register_init
    - lh_OSSL_STORE_LOADER_insert
    - strchr
    - ERR_raise_data
    - ERR_raise
    - lh_OSSL_STORE_LOADER_error
    - ossl_isdigit
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_store_register_loader_int(OSSL_STORE_LOADER *loader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_register_loader_int
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loader
    argTypes:
    - OSSL_STORE_LOADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: OSSL_STORE_register_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached:
    - ossl_store_register_loader_int
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:227,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:230,1
    - Dst: ossl_store_register_init
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:233,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:234,1
    - Dst: lh_OSSL_STORE_LOADER_retrieve
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:235,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:237,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 243
    functionName: ossl_store_get0_loader_int
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - lh_OSSL_STORE_LOADER_retrieve
    - ossl_store_register_init
    - RUN_ONCE
    - ERR_raise_data
    - ERR_raise
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *ossl_store_get0_loader_int(const char *scheme)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:256,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:257,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:260,1
    - Dst: ossl_store_register_init
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:263,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:264,1
    - Dst: lh_OSSL_STORE_LOADER_delete
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:265,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:267,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 273
    functionName: ossl_store_unregister_loader_int
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - ossl_store_register_init
    - ERR_raise_data
    - ERR_raise
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - lh_OSSL_STORE_LOADER_delete
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *ossl_store_unregister_loader_int(const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_unregister_loader_int
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: OSSL_STORE_unregister_loader
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 1
    functionsReached:
    - ossl_store_unregister_loader_int
    linkageType: ''
    returnType: OSSL_STORE_LOADER
    signature: OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:281,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: ossl_store_destroy_loaders_int
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - lh_OSSL_STORE_LOADER_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void ossl_store_destroy_loaders_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_register_init
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:296,1
    - Dst: lh_OSSL_STORE_LOADER_doall_void
      Src: /src/openssl-3.0.15/crypto/store/store_register.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - do_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: OSSL_STORE_do_all_loaders
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_register.c
    functionUses: 0
    functionsReached:
    - lh_OSSL_STORE_LOADER_doall_void
    - ossl_store_register_init
    linkageType: ''
    returnType: int
    signature: "int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER\n
      \                                                  *loader, void *do_arg),\n
      \                             void *do_arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_LOADER*::p_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:40,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:47,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:52,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:54,1
    - Dst: OSSL_STORE_LOADER*::p_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - loader
    - loader_ctx
    - params
    - propq
    argTypes:
    - OSSL_STORE_LOADER*
    - OSSL_STORE_LOADER_CTX*
    - OSSL_PARAM[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: loader_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_locate_const
    - OSSL_STORE_LOADER*::p_set_ctx_params
    linkageType: ''
    returnType: int
    signature: "int loader_set_params(OSSL_STORE_LOADER *loader,\n                             OSSL_STORE_LOADER_CTX
      *loader_ctx,\n                             const OSSL_PARAM params[], const
      char *propq)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:93,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:94,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:96,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:97,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:103,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:115,1
    - Dst: ossl_store_get0_loader_int
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:117,1
    - Dst: OSSL_STORE_LOADER*::open_ex
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:120,1
    - Dst: OSSL_STORE_LOADER*::open
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:123,1
    - Dst: OSSL_STORE_LOADER_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:128,1
    - Dst: OSSL_STORE_LOADER_get0_provider
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:130,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:131,1
    - Dst: OSSL_STORE_LOADER*::p_open
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:134,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:136,1
    - Dst: loader_set_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:138,1
    - Dst: OSSL_STORE_LOADER*::p_close
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:140,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:141,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:155,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:164,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:166,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:168,1
    - Dst: ossl_pw_set_ui_method
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:173,1
    - Dst: ossl_pw_enable_passphrase_caching
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:174,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:175,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:190,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:195,1
    - Dst: ossl_store_close_it
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:212,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:215,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:216,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 8
    argNames:
    - uri
    - libctx
    - propq
    - ui_method
    - ui_data
    - params
    - post_process
    - post_process_data
    argTypes:
    - char*
    - OSSL_LIB_CTX*
    - char*
    - UI_METHOD*
    - void*
    - OSSL_PARAM[]
    - OSSL_STORE_post_process_info_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 62
    functionDepth: 10
    functionLinenumber: 62
    functionLinenumberEnd: 218
    functionName: OSSL_STORE_open_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - ossl_store_close_it
    - OSSL_STORE_LOADER_free
    - ossl_store_get0_loader_int
    - OSSL_STORE_LOADER*::p_close
    - OSSL_STORE_LOADER*::open
    - loader_set_params
    - OPENSSL_strdup
    - OSSL_STORE_LOADER*::p_open
    - OSSL_STORE_LOADER*::open_ex
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strlcpy
    - strncmp
    - OSSL_STORE_LOADER_get0_provider
    - OSSL_TRACE1
    - OPENSSL_strcasecmp
    - ossl_pw_set_ui_method
    - strchr
    - ERR_set_mark
    - OPENSSL_zalloc
    - ERR_pop_to_mark
    - OSSL_PROVIDER_get0_provider_ctx
    - ossl_pw_enable_passphrase_caching
    - OSSL_TRACE2
    - ERR_clear_last_mark
    - OSSL_STORE_LOADER_fetch
    linkageType: ''
    returnType: OSSL_STORE_CTX
    signature: "OSSL_STORE_CTX *\nOSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX
      *libctx, const char *propq,\n                   const UI_METHOD *ui_method,
      void *ui_data,\n                   const OSSL_PARAM params[],\n                   OSSL_STORE_post_process_info_fn
      post_process,\n                   void *post_process_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_open_ex
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - uri
    - ui_method
    - ui_data
    - post_process
    - post_process_data
    argTypes:
    - char*
    - UI_METHOD*
    - void*
    - OSSL_STORE_post_process_info_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 11
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: OSSL_STORE_open
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_open_ex
    linkageType: ''
    returnType: OSSL_STORE_CTX
    signature: "OSSL_STORE_CTX *OSSL_STORE_open(const char *uri,\n                                const
      UI_METHOD *ui_method, void *ui_data,\n                                OSSL_STORE_post_process_info_fn
      post_process,\n                                void *post_process_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:235,1
    - Dst: OSSL_STORE_vctrl
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:236,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cmd
    argTypes:
    - OSSL_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: OSSL_STORE_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_vctrl
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:253,1
    - Dst: OSSL_STORE_CTX*::fetched_loader::p_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:260,1
    - Dst: OSSL_STORE_CTX*::loader::ctrl
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - cmd
    - args
    argTypes:
    - OSSL_STORE_CTX*
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 272
    functionName: OSSL_STORE_vctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_CTX*::fetched_loader::p_set_ctx_params
    - OSSL_PARAM_construct_int
    - OSSL_STORE_CTX*::loader::ctrl
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:281,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:285,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:295,1
    - Dst: OSSL_STORE_CTX*::fetched_loader::p_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:296,1
    - Dst: OSSL_STORE_CTX*::loader::expect
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - expected_type
    argTypes:
    - OSSL_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 305
    functionName: OSSL_STORE_expect
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::fetched_loader::p_set_ctx_params
    - OSSL_PARAM_construct_int
    - OSSL_STORE_CTX*::loader::expect
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:312,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:316,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:330,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:335,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:343,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:345,1
    - Dst: i2d_X509_NAME
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:351,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:353,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:354,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:357,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:362,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:363,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:365,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:372,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:379,1
    - Dst: OSSL_STORE_CTX*::fetched_loader::p_set_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:380,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:382,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:384,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:385,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:386,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:391,1
    - Dst: OSSL_STORE_CTX*::loader::find
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:394,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 2
    argNames:
    - ctx
    - search
    argTypes:
    - OSSL_STORE_CTX*
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 307
    functionDepth: 12
    functionLinenumber: 307
    functionLinenumberEnd: 399
    functionName: OSSL_STORE_find
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_CTX*::fetched_loader::p_set_ctx_params
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - ASN1_INTEGER_to_BN
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - ERR_raise
    - EVP_MD_get0_name
    - OSSL_PARAM_BLD_free
    - OPENSSL_free
    - BN_free
    - OSSL_PARAM_BLD_push_utf8_string
    - i2d_X509_NAME
    - OSSL_STORE_CTX*::loader::find
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_eof
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:407,1
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:411,1
    - Dst: sk_OSSL_STORE_INFO_num
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:414,1
    - Dst: sk_OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:415,1
    - Dst: sk_OSSL_STORE_INFO_shift
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:420,1
    - Dst: OSSL_STORE_CTX*::fetched_loader::p_load
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:429,1
    - Dst: OSSL_STORE_CTX*::loader::load
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:441,1
    - Dst: OSSL_STORE_CTX*::post_process
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:448,1
    - Dst: ossl_pw_clear_passphrase_cache
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:459,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:462,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:466,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:473,1
    - Dst: OSSL_STORE_INFO_type_string
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:474,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:474,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 477
    functionName: OSSL_STORE_load
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - sk_OSSL_STORE_INFO_shift
    - OSSL_STORE_INFO_type_string
    - OSSL_STORE_INFO_free
    - OSSL_STORE_CTX*::post_process
    - ossl_pw_clear_passphrase_cache
    - OSSL_STORE_CTX*::loader::load
    - sk_OSSL_STORE_INFO_free
    - OSSL_STORE_INFO_get_type
    - OSSL_TRACE
    - OSSL_STORE_eof
    - sk_OSSL_STORE_INFO_num
    - OSSL_STORE_CTX*::fetched_loader::p_load
    - OSSL_TRACE1
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::error
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 490
    functionName: OSSL_STORE_error
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::loader::error
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_error(OSSL_STORE_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_CTX*::loader::p_eof
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:497,1
    - Dst: OSSL_STORE_CTX*::loader::eof
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: OSSL_STORE_eof
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_CTX*::loader::p_eof
    - OSSL_STORE_CTX*::loader::eof
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_eof(OSSL_STORE_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:511,1
    - Dst: OSSL_STORE_CTX*::loader::p_close
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:514,1
    - Dst: OSSL_STORE_CTX*::loader::closefn
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:517,1
    - Dst: sk_OSSL_STORE_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:520,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:521,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:522,1
    - Dst: ossl_pw_clear_passphrase_data
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 525
    functionName: ossl_store_close_it
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_CTX*::loader::p_close
    - sk_OSSL_STORE_INFO_pop_free
    - OPENSSL_free
    - OSSL_STORE_LOADER_free
    - ossl_pw_clear_passphrase_data
    - OSSL_STORE_CTX*::loader::closefn
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: int ossl_store_close_it(OSSL_STORE_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_close_it
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:529,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 4
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: OSSL_STORE_close
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - ossl_store_close_it
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_close(OSSL_STORE_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 552
    functionName: OSSL_STORE_INFO_new
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new(int type, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:556,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 567
    functionName: OSSL_STORE_INFO_new_NAME
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 2
    functionsReached:
    - OSSL_STORE_INFO_new
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - info
    - desc
    argTypes:
    - OSSL_STORE_INFO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 579
    functionName: OSSL_STORE_INFO_set0_NAME_description
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char
      *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:582,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 587
    functionName: OSSL_STORE_INFO_new_PARAMS
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_INFO_new
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:591,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 596
    functionName: OSSL_STORE_INFO_new_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OSSL_STORE_INFO_new
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_PUBKEY(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:600,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 605
    functionName: OSSL_STORE_INFO_new_PKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 5
    functionsReached:
    - OSSL_STORE_INFO_new
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:609,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x509
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 614
    functionName: OSSL_STORE_INFO_new_CERT
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 4
    functionsReached:
    - OSSL_STORE_INFO_new
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_INFO_new
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:618,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: OSSL_STORE_INFO_new_CRL
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 2
    functionsReached:
    - OSSL_STORE_INFO_new
    - ERR_raise
    linkageType: ''
    returnType: OSSL_STORE_INFO
    signature: OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: OSSL_STORE_INFO_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - info
    argTypes:
    - int
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    functionName: OSSL_STORE_INFO_get0_data
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *OSSL_STORE_INFO_get0_data(int type, const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: OSSL_STORE_INFO_get0_NAME
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:650,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:653,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 658
    functionName: OSSL_STORE_INFO_get1_NAME
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: OSSL_STORE_INFO_get0_NAME_description
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:670,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:674,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 679
    functionName: OSSL_STORE_INFO_get1_NAME_description
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 686
    functionName: OSSL_STORE_INFO_get0_PARAMS
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:691,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: OSSL_STORE_INFO_get1_PARAMS
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: OSSL_STORE_INFO_get0_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get0_PUBKEY(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:708,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 713
    functionName: OSSL_STORE_INFO_get1_PUBKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get1_PUBKEY(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 720
    functionName: OSSL_STORE_INFO_get0_PKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:725,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 730
    functionName: OSSL_STORE_INFO_get1_PKEY
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_up_ref
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 737
    functionName: OSSL_STORE_INFO_get0_CERT
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:742,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: OSSL_STORE_INFO_get1_CERT
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - ERR_raise
    linkageType: ''
    returnType: X509
    signature: X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: OSSL_STORE_INFO_get0_CRL
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:759,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 764
    functionName: OSSL_STORE_INFO_get1_CRL
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - ERR_raise
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:774,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:775,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:778,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:781,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:784,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:787,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:790,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:793,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - info
    argTypes:
    - OSSL_STORE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 795
    functionName: OSSL_STORE_INFO_free
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    - X509_free
    - X509_CRL_free
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_ctx
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:803,1
    - Dst: OSSL_STORE_LOADER_get0_provider
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:803,1
    - Dst: OSSL_STORE_CTX*::fetched_loader::p_settable_ctx_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:814,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:815,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:816,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:817,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:819,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:820,1
    - Dst: OSSL_STORE_CTX*::loader::find
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:844,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - search_type
    argTypes:
    - OSSL_STORE_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 797
    functionDepth: 12
    functionLinenumber: 797
    functionLinenumberEnd: 848
    functionName: OSSL_STORE_supports_search
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_CTX*::fetched_loader::p_settable_ctx_params
    - OSSL_STORE_CTX*::loader::find
    - OSSL_PARAM_locate_const
    - OSSL_STORE_LOADER_get0_provider
    - ossl_provider_ctx
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:853,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 863
    functionName: OSSL_STORE_SEARCH_by_name
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:868,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - serial
    argTypes:
    - X509_NAME*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 879
    functionName: OSSL_STORE_SEARCH_by_issuer_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: "OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name,\n
      \                                                     const ASN1_INTEGER *serial)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:885,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:888,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:892,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:893,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:896,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:896,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - digest
    - bytes
    - len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 906
    functionName: OSSL_STORE_SEARCH_by_key_fingerprint
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - EVP_MD_get0_name
    - ERR_raise_data
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: "OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD
      *digest,\n                                                        const unsigned
      char\n                                                        *bytes, size_t
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:910,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:913,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 921
    functionName: OSSL_STORE_SEARCH_by_alias
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - strlen
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_STORE_SEARCH
    signature: OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - search
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 927
    functionName: OSSL_STORE_SEARCH_free
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: OSSL_STORE_SEARCH_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: OSSL_STORE_SEARCH_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *OSSL_STORE_SEARCH_get0_name(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 944
    functionName: OSSL_STORE_SEARCH_get0_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH\n
      \                                                 *criterion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - criterion
    - length
    argTypes:
    - OSSL_STORE_SEARCH*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 951
    functionName: OSSL_STORE_SEARCH_get0_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH\n
      \                                                 *criterion, size_t *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: OSSL_STORE_SEARCH_get0_string
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - criterion
    argTypes:
    - OSSL_STORE_SEARCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 961
    functionName: OSSL_STORE_SEARCH_get0_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:978,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:979,1
    - Dst: ossl_store_get0_loader_int
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:981,1
    - Dst: OSSL_STORE_LOADER*::attach
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:982,1
    - Dst: OSSL_STORE_LOADER_fetch
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:987,1
    - Dst: OSSL_STORE_LOADER_get0_provider
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:989,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:990,1
    - Dst: ossl_core_bio_new_from_bio
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:991,1
    - Dst: OSSL_STORE_LOADER*::p_attach
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:994,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:995,1
    - Dst: loader_set_params
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:997,1
    - Dst: OSSL_STORE_LOADER*::p_close
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:999,1
    - Dst: OSSL_STORE_LOADER_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1000,1
    - Dst: ossl_core_bio_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1004,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1008,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1012,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1013,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1014,1
    - Dst: ossl_pw_set_ui_method
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1019,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1020,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1021,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/store/store_lib.c:1036,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 9
    argNames:
    - bp
    - scheme
    - libctx
    - propq
    - ui_method
    - ui_data
    - params
    - post_process
    - post_process_data
    argTypes:
    - BIO*
    - char*
    - OSSL_LIB_CTX*
    - char*
    - UI_METHOD*
    - void*
    - OSSL_PARAM[]
    - OSSL_STORE_post_process_info_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 963
    functionDepth: 10
    functionLinenumber: 963
    functionLinenumberEnd: 1039
    functionName: OSSL_STORE_attach
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_LOADER_free
    - ossl_store_get0_loader_int
    - OSSL_STORE_LOADER*::p_close
    - loader_set_params
    - ossl_core_bio_free
    - OSSL_STORE_LOADER*::attach
    - ERR_raise
    - OPENSSL_free
    - ossl_core_bio_new_from_bio
    - OSSL_STORE_LOADER_get0_provider
    - OSSL_TRACE1
    - ossl_pw_set_ui_method
    - ERR_set_mark
    - OPENSSL_zalloc
    - ERR_pop_to_mark
    - OSSL_PROVIDER_get0_provider_ctx
    - OSSL_STORE_LOADER*::p_attach
    - ERR_clear_last_mark
    - OSSL_STORE_LOADER_fetch
    linkageType: ''
    returnType: OSSL_STORE_CTX
    signature: "OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bp, const char *scheme,\n                                  OSSL_LIB_CTX
      *libctx, const char *propq,\n                                  const UI_METHOD
      *ui_method, void *ui_data,\n                                  const OSSL_PARAM
      params[],\n                                  OSSL_STORE_post_process_info_fn
      post_process,\n                                  void *post_process_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_store_destroy_loaders_int
      Src: /src/openssl-3.0.15/crypto/store/store_init.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: ossl_store_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/store/store_init.c
    functionUses: 1
    functionsReached:
    - ossl_store_destroy_loaders_int
    linkageType: ''
    returnType: void
    signature: void ossl_store_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: init_pstring
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_pstring(char **pstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pint
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: init_pint
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_pint(int *pint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - start
    - end
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: copy_substring
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strndup
    linkageType: ''
    returnType: int
    signature: int copy_substring(char **dest, const char *start, const char *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pstr
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: free_pstring
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void free_pstring(char **pstr)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:60,1
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:61,1
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:62,1
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:63,1
    - Dst: init_pint
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:64,1
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:65,1
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:66,1
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:67,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:70,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:76,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:83,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:88,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:97,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:103,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:105,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:107,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:109,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:111,1
    - Dst: sscanf
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:121,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:133,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:136,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:139,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:149,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:157,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:158,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:159,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:160,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:161,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:162,1
    - Dst: copy_substring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:167,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:172,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:174,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:179,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:182,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:183,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:184,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:185,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:186,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:187,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:188,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 111
    argCount: 9
    argNames:
    - url
    - pscheme
    - puser
    - phost
    - pport
    - pport_num
    - ppath
    - pquery
    - pfrag
    argTypes:
    - char*
    - char**
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 190
    functionName: OSSL_parse_url
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached:
    - init_pstring
    - sscanf
    - OPENSSL_malloc
    - BIO_snprintf
    - strchr
    - strstr
    - ERR_raise_data
    - ERR_raise
    - init_pint
    - strlen
    - copy_substring
    - free_pstring
    linkageType: ''
    returnType: int
    signature: "int OSSL_parse_url(const char *url, char **pscheme, char **puser,
      char **phost,\n                   char **pport, int *pport_num,\n                   char
      **ppath, char **pquery, char **pfrag)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:199,1
    - Dst: OSSL_parse_url
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:202,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:207,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:214,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:217,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:219,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:221,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:223,1
    - Dst: sscanf
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:223,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:228,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:236,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:241,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:242,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:243,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:244,1
    - Dst: free_pstring
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:245,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 9
    argNames:
    - url
    - pssl
    - puser
    - phost
    - pport
    - pport_num
    - ppath
    - pquery
    - pfrag
    argTypes:
    - char*
    - int*
    - char**
    - char**
    - char**
    - int*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 247
    functionName: OSSL_HTTP_parse_url
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached:
    - init_pstring
    - sscanf
    - OSSL_parse_url
    - ERR_raise
    - OPENSSL_free
    - strcmp
    - free_pstring
    - OPENSSL_strdup
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_parse_url(const char *url, int *pssl, char **puser,
      char **phost,\n                        char **pport, int *pport_num,\n                        char
      **ppath, char **pquery, char **pfrag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:255,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:257,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:264,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:266,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:269,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:273,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - no_proxy
    - server
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 275
    functionName: use_proxy
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached:
    - strstr
    - strlen
    - ossl_assert
    - ossl_safe_getenv
    linkageType: ''
    returnType: int
    signature: int use_proxy(const char *no_proxy, const char *server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:286,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:288,1
    - Dst: use_proxy
      Src: /src/openssl-3.0.15/crypto/http/http_lib.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - proxy
    - no_proxy
    - server
    - use_ssl
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: OSSL_HTTP_adapt_proxy
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_lib.c
    functionUses: 0
    functionsReached:
    - use_proxy
    - ossl_safe_getenv
    linkageType: ''
    returnType: char
    signature: "char *OSSL_HTTP_adapt_proxy(const char *proxy, const char *no_proxy,\n
      \                                 const char *server, int use_ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: HAS_PREFIX
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_PREFIX(str, prefix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:95,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:99,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - wbio
    - rbio
    - buf_size
    argTypes:
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: OSSL_HTTP_REQ_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_zalloc
    - OPENSSL_free
    - ERR_raise
    linkageType: ''
    returnType: OSSL_HTTP_REQ_CTX
    signature: OSSL_HTTP_REQ_CTX *OSSL_HTTP_REQ_CTX_new(BIO *wbio, BIO *rbio, int
      buf_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:125,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:127,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:128,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:130,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:131,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:132,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: OSSL_HTTP_REQ_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - BIO_free_all
    - BIO_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OSSL_HTTP_REQ_CTX_free(OSSL_HTTP_REQ_CTX *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: OSSL_HTTP_REQ_CTX_get0_mem_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: BIO
    signature: BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: OSSL_HTTP_REQ_CTX_get_resp_len
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: size_t
    signature: size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rctx
    - len
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: OSSL_HTTP_REQ_CTX_set_max_response_length
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: "void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx,\n
      \                                              unsigned long len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:175,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:178,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:179,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:179,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:183,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:193,1
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:205,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:212,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 5
    argNames:
    - rctx
    - method_POST
    - server
    - port
    - path
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 218
    functionName: OSSL_HTTP_REQ_CTX_set_request_line
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - HAS_PREFIX
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_printf
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int
      method_POST,\n                                       const char *server, const
      char *port,\n                                       const char *path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:228,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:232,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:235,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:237,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - rctx
    - name
    - value
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: OSSL_HTTP_REQ_CTX_add1_header
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_puts
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_REQ_CTX_add1_header(OSSL_HTTP_REQ_CTX *rctx,\n                                  const
      char *name, const char *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:254,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:258,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:261,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - rctx
    - content_type
    - asn1
    - timeout
    - keep_alive
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 271
    functionName: OSSL_HTTP_REQ_CTX_set_expected
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - time
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_REQ_CTX_set_expected(OSSL_HTTP_REQ_CTX *rctx,\n                                   const
      char *content_type, int asn1,\n                                   int timeout,
      int keep_alive)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d_mem_bio
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:344,1
    - Dst: set1_content
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:345,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - rctx
    - content_type
    - it
    - req
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - char*
    - ASN1_ITEM*
    - ASN1_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: OSSL_HTTP_REQ_CTX_set1_req
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - ASN1_item_i2d_mem_bio
    - set1_content
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP_REQ_CTX *rctx, const char
      *content_type,\n                               const ASN1_ITEM *it, const ASN1_VALUE
      *req)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:357,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:358,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:359,1
    - Dst: OSSL_HTTP_REQ_CTX_add1_header
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:361,1
    - Dst: OSSL_HTTP_REQ_CTX_add1_header
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - rctx
    - headers
    - host
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - STACK_OF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: add1_headers
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - OSSL_HTTP_REQ_CTX_add1_header
    - sk_CONF_VALUE_value
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: "int add1_headers(OSSL_HTTP_REQ_CTX *rctx,\n                        const
      STACK_OF(CONF_VALUE) *headers, const char *host)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_REQ_CTX_new
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:378,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:387,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:390,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:393,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:396,1
    - Dst: OSSL_HTTP_REQ_CTX_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:400,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 11
    argNames:
    - free_wbio
    - wbio
    - rbio
    - bio_update_fn
    - arg
    - use_ssl
    - proxy
    - server
    - port
    - buf_size
    - overall_timeout
    argTypes:
    - int
    - BIO*
    - BIO*
    - OSSL_HTTP_bio_cb_t
    - void*
    - int
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 402
    functionName: http_req_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OSSL_HTTP_REQ_CTX_free
    - OSSL_HTTP_REQ_CTX_new
    - time
    - OPENSSL_strdup
    linkageType: ''
    returnType: OSSL_HTTP_REQ_CTX
    signature: "OSSL_HTTP_REQ_CTX *http_req_ctx_new(int free_wbio, BIO *wbio, BIO
      *rbio,\n                                           OSSL_HTTP_bio_cb_t bio_update_fn,\n
      \                                          void *arg, int use_ssl,\n                                           const
      char *proxy,\n                                           const char *server,
      const char *port,\n                                           int buf_size,
      int overall_timeout)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:415,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:418,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:421,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:427,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:433,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:443,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:448,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:458,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:458,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:472,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:474,1
    - Dst: ossl_isprint
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:481,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:484,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 53
    argCount: 2
    argNames:
    - line
    - found_keep_alive
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 486
    functionName: parse_http_line1
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - HAS_PREFIX
    - ossl_isspace
    - ossl_isprint
    - ERR_raise_data
    - strlen
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_http_line1(char *line, int *found_keep_alive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:491,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - rctx
    - len
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 503
    functionName: check_set_resp_len
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    linkageType: ''
    returnType: int
    signature: int check_set_resp_len(OSSL_HTTP_REQ_CTX *rctx, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:507,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - max_time
    - ptimeout
    argTypes:
    - time_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 518
    functionName: may_still_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - time
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int may_still_retry(time_t max_time, int *ptimeout)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:533,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:537,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:546,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:548,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:549,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:551,1
    - Dst: BIO_get_line
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:552,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:554,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:558,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:560,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:565,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:572,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:580,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:590,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:592,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:602,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:605,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:606,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:608,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:610,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:622,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:629,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:649,1
    - Dst: memchr
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:650,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:657,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:660,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:668,1
    - Dst: parse_http_line1
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:675,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:685,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:694,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:697,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:699,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:701,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:707,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:712,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:713,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:714,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:723,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:724,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:726,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:728,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:729,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:731,1
    - Dst: check_set_resp_len
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:736,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:753,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:763,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:769,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:787,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:793,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:808,1
    - Dst: check_set_resp_len
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:821,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:829,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 248
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 836
    functionName: OSSL_HTTP_REQ_CTX_nbio
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - memchr
    - ERR_clear_last_mark
    - check_set_resp_len
    - BIO_gets
    - ERR_raise_data
    - BIO_should_retry
    - BIO_get_line
    - strtoul
    - ossl_isspace
    - BIO_read
    - ERR_raise
    - BIO_get_mem_data
    - parse_http_line1
    - OPENSSL_strcasecmp
    - BIO_eof
    - strchr
    - ERR_set_mark
    - ERR_pop_to_mark
    - BIO_write
    - BIO_reset
    linkageType: ''
    returnType: int
    signature: int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_REQ_CTX_nbio
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:845,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:847,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rctx
    - pval
    - it
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 850
    functionName: OSSL_HTTP_REQ_CTX_nbio_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - ASN1_item_d2i
    - OSSL_HTTP_REQ_CTX_nbio
    - BIO_get_mem_data
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx,\n                               ASN1_VALUE
      **pval, const ASN1_ITEM *it)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:865,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:873,1
    - Dst: BIO_new_connect
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:876,1
    - Dst: BIO_set_conn_port
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - server
    - server_port
    - use_ssl
    - proxy
    - proxy_port
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 884
    functionName: http_new_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - BIO_set_conn_port
    - strchr
    - BIO_new_connect
    - ossl_assert
    linkageType: ''
    returnType: BIO
    signature: "BIO *http_new_bio(const char *server /* optionally includes \":port\"
      */,\n                         const char *server_port /* explicit server port
      */,\n                         int use_ssl,\n                         const char
      *proxy /* optionally includes \":port\" */,\n                         const
      char *proxy_port /* explicit proxy port */)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:893,1
    - Dst: OSSL_HTTP_REQ_CTX_nbio
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:898,1
    - Dst: BIO_wait
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:903,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:910,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 917
    functionName: OSSL_HTTP_REQ_CTX_exchange
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OSSL_HTTP_REQ_CTX_nbio
    - BIO_wait
    - ERR_raise
    linkageType: ''
    returnType: BIO
    signature: BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rctx
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: OSSL_HTTP_is_alive
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OSSL_HTTP_is_alive(const OSSL_HTTP_REQ_CTX *rctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:937,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:941,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:948,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:956,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:961,1
    - Dst: OSSL_HTTP_adapt_proxy
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:963,1
    - Dst: OSSL_HTTP_parse_url
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:965,1
    - Dst: http_new_bio
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:969,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:970,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:971,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:975,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:980,1
    - Dst: BIO_do_connect_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:981,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:983,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:996,1
    - Dst: http_req_ctx_new
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1001,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1008,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1010,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 11
    argNames:
    - server
    - port
    - proxy
    - no_proxy
    - use_ssl
    - bio
    - rbio
    - bio_update_fn
    - arg
    - buf_size
    - overall_timeout
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    - BIO*
    - BIO*
    - OSSL_HTTP_bio_cb_t
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 927
    functionDepth: 4
    functionLinenumber: 927
    functionLinenumberEnd: 1013
    functionName: OSSL_HTTP_open
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - http_req_ctx_new
    - http_new_bio
    - OSSL_HTTP_adapt_proxy
    - BIO_free_all
    - strchr
    - OSSL_HTTP_parse_url
    - ERR_set_mark
    - ERR_raise
    - OPENSSL_free
    - BIO_do_connect_retry
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    linkageType: ''
    returnType: OSSL_HTTP_REQ_CTX
    signature: "OSSL_HTTP_REQ_CTX *OSSL_HTTP_open(const char *server, const char *port,\n
      \                                 const char *proxy, const char *no_proxy,\n
      \                                 int use_ssl, BIO *bio, BIO *rbio,\n                                  OSSL_HTTP_bio_cb_t
      bio_update_fn, void *arg,\n                                  int buf_size, int
      overall_timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1024,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1029,1
    - Dst: OSSL_HTTP_REQ_CTX_set_request_line
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1034,1
    - Dst: add1_headers
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1037,1
    - Dst: OSSL_HTTP_REQ_CTX_set_expected
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1038,1
    - Dst: set1_content
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1040,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 10
    argNames:
    - rctx
    - path
    - headers
    - content_type
    - req
    - expected_content_type
    - expect_asn1
    - max_resp_len
    - timeout
    - keep_alive
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - char*
    - STACK_OF*
    - char*
    - BIO*
    - char*
    - int
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1015
    functionDepth: 4
    functionLinenumber: 1015
    functionLinenumberEnd: 1041
    functionName: OSSL_HTTP_set1_request
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OSSL_HTTP_REQ_CTX_set_expected
    - add1_headers
    - OSSL_HTTP_REQ_CTX_set_request_line
    - ERR_raise
    - set1_content
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_set1_request(OSSL_HTTP_REQ_CTX *rctx, const char *path,\n
      \                          const STACK_OF(CONF_VALUE) *headers,\n                           const
      char *content_type, BIO *req,\n                           const char *expected_content_type,
      int expect_asn1,\n                           size_t max_resp_len, int timeout,
      int keep_alive)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1053,1
    - Dst: OSSL_HTTP_REQ_CTX_exchange
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1060,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1064,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1067,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1070,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1071,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1072,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1083,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1087,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1090,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1092,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1095,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1101,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 2
    argNames:
    - rctx
    - redirection_url
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1048
    functionDepth: 5
    functionLinenumber: 1048
    functionLinenumberEnd: 1104
    functionName: OSSL_HTTP_exchange
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - BIO_snprintf
    - ERR_peek_error
    - OPENSSL_strdup
    - ERR_GET_LIB
    - ERR_raise
    - ERR_add_error_data
    - BIO_up_ref
    - OSSL_HTTP_REQ_CTX_exchange
    linkageType: ''
    returnType: BIO
    signature: BIO *OSSL_HTTP_exchange(OSSL_HTTP_REQ_CTX *rctx, char **redirection_url)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1109,1
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1114,1
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - n_redir
    - old_url
    - new_url
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1120
    functionName: redirection_ok
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - HAS_PREFIX
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int redirection_ok(int n_redir, const char *old_url, const char *new_url)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1141,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1144,1
    - Dst: OSSL_HTTP_parse_url
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1148,1
    - Dst: OSSL_HTTP_open
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1152,1
    - Dst: OSSL_HTTP_set1_request
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1157,1
    - Dst: OSSL_HTTP_REQ_CTX_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1163,1
    - Dst: OSSL_HTTP_exchange
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1166,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1169,1
    - Dst: redirection_ok
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1171,1
    - Dst: may_still_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1172,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1173,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1174,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1177,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1179,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1180,1
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1181,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1189,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1190,1
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1191,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1196,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1199,1
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1200,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1207,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 13
    argNames:
    - url
    - proxy
    - no_proxy
    - bio
    - rbio
    - bio_update_fn
    - arg
    - buf_size
    - headers
    - expected_ct
    - expect_asn1
    - max_resp_len
    - timeout
    argTypes:
    - char*
    - char*
    - char*
    - BIO*
    - BIO*
    - OSSL_HTTP_bio_cb_t
    - void*
    - int
    - STACK_OF*
    - char*
    - int
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1123
    functionDepth: 6
    functionLinenumber: 1123
    functionLinenumberEnd: 1209
    functionName: OSSL_HTTP_get
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 1
    functionsReached:
    - OSSL_HTTP_exchange
    - redirection_ok
    - may_still_retry
    - time
    - BIO_free
    - OSSL_HTTP_parse_url
    - ERR_raise
    - OSSL_HTTP_REQ_CTX_free
    - OPENSSL_free
    - OSSL_HTTP_close
    - BIO_reset
    - OPENSSL_strdup
    - OSSL_HTTP_open
    - OSSL_HTTP_set1_request
    linkageType: ''
    returnType: BIO
    signature: "BIO *OSSL_HTTP_get(const char *url, const char *proxy, const char
      *no_proxy,\n                   BIO *bio, BIO *rbio,\n                   OSSL_HTTP_bio_cb_t
      bio_update_fn, void *arg,\n                   int buf_size, const STACK_OF(CONF_VALUE)
      *headers,\n                   const char *expected_ct, int expect_asn1,\n                   size_t
      max_resp_len, int timeout)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_open
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1227,1
    - Dst: OSSL_HTTP_set1_request
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1233,1
    - Dst: OSSL_HTTP_exchange
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1236,1
    - Dst: OSSL_HTTP_is_alive
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1237,1
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1238,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 20
    argNames:
    - prctx
    - server
    - port
    - path
    - use_ssl
    - proxy
    - no_proxy
    - bio
    - rbio
    - bio_update_fn
    - arg
    - buf_size
    - headers
    - content_type
    - req
    - expected_ct
    - expect_asn1
    - max_resp_len
    - timeout
    - keep_alive
    argTypes:
    - OSSL_HTTP_REQ_CTX**
    - char*
    - char*
    - char*
    - int
    - char*
    - char*
    - BIO*
    - BIO*
    - OSSL_HTTP_bio_cb_t
    - void*
    - int
    - STACK_OF*
    - char*
    - BIO*
    - char*
    - int
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1212
    functionDepth: 6
    functionLinenumber: 1212
    functionLinenumberEnd: 1248
    functionName: OSSL_HTTP_transfer
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OSSL_HTTP_is_alive
    - BIO_free
    - OSSL_HTTP_close
    - OSSL_HTTP_set1_request
    - OSSL_HTTP_open
    - OSSL_HTTP_exchange
    linkageType: ''
    returnType: BIO
    signature: "BIO *OSSL_HTTP_transfer(OSSL_HTTP_REQ_CTX **prctx,\n                        const
      char *server, const char *port,\n                        const char *path, int
      use_ssl,\n                        const char *proxy, const char *no_proxy,\n
      \                       BIO *bio, BIO *rbio,\n                        OSSL_HTTP_bio_cb_t
      bio_update_fn, void *arg,\n                        int buf_size, const STACK_OF(CONF_VALUE)
      *headers,\n                        const char *content_type, BIO *req,\n                        const
      char *expected_ct, int expect_asn1,\n                        size_t max_resp_len,
      int timeout, int keep_alive)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_REQ_CTX_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - rctx
    - ok
    argTypes:
    - OSSL_HTTP_REQ_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1265
    functionName: OSSL_HTTP_close
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 2
    functionsReached:
    - OSSL_HTTP_REQ_CTX_free
    linkageType: ''
    returnType: int
    signature: int OSSL_HTTP_close(OSSL_HTTP_REQ_CTX *rctx, int ok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1279,1
    - Dst: EVP_EncodeBlock
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1283,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1284,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1268
    functionDepth: 3
    functionLinenumber: 1268
    functionLinenumberEnd: 1289
    functionName: base64encode
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EVP_EncodeBlock
    - OPENSSL_free
    - ossl_assert
    linkageType: ''
    returnType: char
    signature: char *base64encode(const void *buf, size_t len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1302,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1306,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1306,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1308,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1312,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1319,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1322,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1324,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1330,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1334,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1338,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1339,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1342,1
    - Dst: base64encode
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1345,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1347,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1348,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1348,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1351,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1357,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1360,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1363,1
    - Dst: BIO_wait
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1369,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1371,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1381,1
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1387,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1388,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1389,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1394,1
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1395,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1396,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1397,1
    - Dst: HAS_PREFIX
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1405,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1407,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1410,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1412,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1426,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1431,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1432,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1433,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/http/http_client.c:1435,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 93
    argCount: 8
    argNames:
    - bio
    - server
    - port
    - proxyuser
    - proxypass
    - timeout
    - bio_err
    - prog
    argTypes:
    - BIO*
    - char*
    - char*
    - char*
    - char*
    - int
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1296
    functionDepth: 4
    functionLinenumber: 1296
    functionLinenumberEnd: 1438
    functionName: OSSL_HTTP_proxy_connect
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_client.c
    functionUses: 0
    functionsReached:
    - HAS_PREFIX
    - BIO_flush
    - BIO_snprintf
    - time
    - strlen
    - BIO_gets
    - BIO_f_buffer
    - BIO_printf
    - BIO_new
    - ERR_raise_data
    - BIO_should_retry
    - OPENSSL_clear_free
    - BIO_push
    - ossl_isspace
    - base64encode
    - ERR_raise
    - OPENSSL_free
    - BIO_pop
    - OPENSSL_malloc
    - BIO_free
    - BIO_wait
    linkageType: ''
    returnType: int
    signature: "int OSSL_HTTP_proxy_connect(BIO *bio, const char *server, const char
      *port,\n                            const char *proxyuser, const char *proxypass,\n
      \                           int timeout, BIO *bio_err, const char *prog)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/http/http_err.c:78,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/http/http_err.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: ossl_err_load_HTTP_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/http/http_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_HTTP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: rotl32
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotl32(v, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: rotr32
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr32(v, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: bswap32
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: GET_U8_BE
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_U8_BE(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: GET_U32_BE
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_U32_BE(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DEST
    - ','
    - IDX
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: PUT_U32_BE
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_U32_BE(DEST, IDX, VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - V0
    - ','
    - V1
    - ','
    - V2
    - ','
    - V3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: MAKE_U32
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_U32(V0, V1, V2, V3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RK
    - ','
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: ARIA_ADD_ROUND_KEY
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_ADD_ROUND_KEY(RK, T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 377
    functionName: ARIA_SBOX_LAYER1_WITH_PRE_DIFF
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SBOX_LAYER1_WITH_PRE_DIFF(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 402
    functionName: ARIA_SBOX_LAYER2_WITH_PRE_DIFF
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SBOX_LAYER2_WITH_PRE_DIFF(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: ARIA_DIFF_WORD
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_DIFF_WORD(T0,T1,T2,T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: ARIA_DIFF_BYTE
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_DIFF_BYTE(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 431
    functionName: ARIA_SUBST_DIFF_ODD
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SUBST_DIFF_ODD(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - T2
    - ','
    - T3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: ARIA_SUBST_DIFF_EVEN
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_SUBST_DIFF_EVEN(T0, T1, T2, T3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - RK
    - ','
    - X
    - ','
    - Y
    - ','
    - Q
    - ','
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 461
    functionName: _ARIA_GSRK
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ARIA_GSRK(RK, X, Y, Q, R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - RK
    - ','
    - X
    - ','
    - Y
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: ARIA_GSRK
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_GSRK(RK, X, Y, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - TMP
    - ','
    - TMP2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: ARIA_DEC_DIFF_BYTE
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARIA_DEC_DIFF_BYTE(X, Y, TMP, TMP2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:489,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:490,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:491,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:492,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:494,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:497,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:498,1
    - Dst: ARIA_SUBST_DIFF_EVEN
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:502,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:503,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:506,1
    - Dst: ARIA_ADD_ROUND_KEY
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:507,1
    - Dst: MAKE_U32
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:511,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:512,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:513,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:514,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:515,1
    - Dst: MAKE_U32
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:516,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:517,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:518,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:519,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:520,1
    - Dst: MAKE_U32
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:521,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:522,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:523,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:524,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:525,1
    - Dst: MAKE_U32
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:526,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:527,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:528,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:529,1
    - Dst: GET_U8_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:530,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:532,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:533,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:534,1
    - Dst: PUT_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:535,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 536
    functionName: ossl_aria_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - MAKE_U32
    - ARIA_ADD_ROUND_KEY
    - GET_U32_BE
    - ARIA_SUBST_DIFF_ODD
    - PUT_U32_BE
    - ARIA_SUBST_DIFF_EVEN
    - GET_U8_BE
    linkageType: ''
    returnType: void
    signature: "void ossl_aria_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      const ARIA_KEY *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:559,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:560,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:561,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:562,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:569,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:572,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:573,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:575,1
    - Dst: GET_U32_BE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:576,1
    - Dst: ARIA_SUBST_DIFF_EVEN
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:601,1
    - Dst: ARIA_SUBST_DIFF_ODD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:618,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:625,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:627,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:629,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:631,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:634,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:636,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:638,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:640,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:643,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:645,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:647,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:649,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:652,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:655,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:657,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:661,1
    - Dst: ARIA_GSRK
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 99
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 668
    functionName: ossl_aria_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 3
    functionsReached:
    - ARIA_SUBST_DIFF_EVEN
    - GET_U32_BE
    - ARIA_GSRK
    - ARIA_SUBST_DIFF_ODD
    linkageType: ''
    returnType: int
    signature: "int ossl_aria_set_encrypt_key(const unsigned char *userKey, const
      int bits,\n                              ARIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_aria_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:679,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:693,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:704,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:705,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:706,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:707,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:709,1
    - Dst: ARIA_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:710,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:711,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:718,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:719,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:720,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:721,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:723,1
    - Dst: ARIA_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:724,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:725,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:737,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:738,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:739,1
    - Dst: ARIA_DEC_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:740,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:742,1
    - Dst: ARIA_DIFF_BYTE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:743,1
    - Dst: ARIA_DIFF_WORD
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 752
    functionName: ossl_aria_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - ARIA_DIFF_BYTE
    - memcpy
    - ossl_aria_set_encrypt_key
    - ARIA_DEC_DIFF_BYTE
    - ARIA_DIFF_WORD
    linkageType: ''
    returnType: int
    signature: "int ossl_aria_set_decrypt_key(const unsigned char *userKey, const
      int bits,\n                              ARIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - o
    - x
    - y
    argTypes:
    - ARIA_c128
    - ARIA_c128
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: xor128
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor128(ARIA_c128 o, const ARIA_c128 x, const ARIA_u128 *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - n
    - o
    - xor
    - z
    argTypes:
    - unsigned int
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 940
    functionName: rotnr
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline rotnr(unsigned int n, ARIA_u128 *o,\n                              const
      ARIA_u128 *xor, const ARIA_u128 *z)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: rot19r
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot19r(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: rot31r
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot31r(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: rot61l
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot61l(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 976
    functionName: rot31l
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot31l(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rotnr
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - o
    - xor
    - z
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 985
    functionName: rot19l
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - rotnr
    linkageType: ''
    returnType: void
    signature: void rot19l(ARIA_u128 *o, const ARIA_u128 *xor, const ARIA_u128 *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - o
    - x
    - y
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 1000
    functionName: sl1
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sl1(ARIA_u128 *o, const ARIA_u128 *x, const ARIA_u128 *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - o
    - x
    - y
    argTypes:
    - ARIA_c128
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1015
    functionName: sl2
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sl2(ARIA_c128 o, const ARIA_u128 *x, const ARIA_u128 *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - y
    - x
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1055
    functionName: a
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 1191
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void a(ARIA_u128 *y, const ARIA_u128 *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sl1
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1067,1
    - Dst: a
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - d
    - rk
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1069
    functionName: FO
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 81
    functionsReached:
    - sl1
    - a
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline FO(ARIA_u128 *o, const ARIA_u128 *d,\n                           const
      ARIA_u128 *rk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sl2
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1081,1
    - Dst: a
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - d
    - rk
    argTypes:
    - ARIA_u128*
    - ARIA_u128*
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1083
    functionName: FE
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 0
    functionsReached:
    - a
    - sl2
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline FE(ARIA_u128 *o, const ARIA_u128 *d,\n                           const
      ARIA_u128 *rk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1095,1
    - Dst: FO
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1097,1
    - Dst: FE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1098,1
    - Dst: FO
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1100,1
    - Dst: sl2
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1101,1
    - Dst: xor128
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - o
    - pin
    - rounds
    - keys
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - ARIA_u128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1103
    functionName: do_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 2
    functionsReached:
    - memcpy
    - xor128
    - FE
    - FO
    - sl2
    linkageType: ''
    returnType: void
    signature: "void do_encrypt(unsigned char *o, const unsigned char *pin,\n                       unsigned
      int rounds, const ARIA_u128 *keys)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1112,1
    - Dst: do_encrypt
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - ARIA_KEY*
    assertStmts:
    - condition: (in != NULL && out != NULL && key != NULL)
      pos:
        line_end: 1111
        line_start: 1111
        source_file: /src/openssl-3.0.15/crypto/aria/aria.c
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: ossl_aria_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - do_encrypt
    - assert
    linkageType: ''
    returnType: void
    signature: "void ossl_aria_encrypt(const unsigned char *in, unsigned char *out,\n
      \                      const ARIA_KEY *key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1130,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1139,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1147,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1148,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1156,1
    - Dst: FO
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1160,1
    - Dst: xor128
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1160,1
    - Dst: FE
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1161,1
    - Dst: xor128
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1161,1
    - Dst: FO
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1162,1
    - Dst: xor128
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1162,1
    - Dst: rot19r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1164,1
    - Dst: rot19r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1165,1
    - Dst: rot19r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1166,1
    - Dst: rot19r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1167,1
    - Dst: rot31r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1169,1
    - Dst: rot31r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1170,1
    - Dst: rot31r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1171,1
    - Dst: rot31r
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1172,1
    - Dst: rot61l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1174,1
    - Dst: rot61l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1175,1
    - Dst: rot61l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1176,1
    - Dst: rot61l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1177,1
    - Dst: rot31l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1179,1
    - Dst: rot31l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1181,1
    - Dst: rot31l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1182,1
    - Dst: rot31l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1185,1
    - Dst: rot19l
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1190
    functionName: ossl_aria_set_encrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 4
    functionsReached:
    - rot61l
    - memcpy
    - rot19l
    - xor128
    - FE
    - rot19r
    - rot31l
    - rot31r
    - FO
    - memset
    linkageType: ''
    returnType: int
    signature: "int ossl_aria_set_encrypt_key(const unsigned char *userKey, const
      int bits,\n                              ARIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_aria_set_encrypt_key
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1199,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1204,1
    - Dst: a
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1206,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/aria/aria.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - ARIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1210
    functionName: ossl_aria_set_decrypt_key
    functionSourceFile: /src/openssl-3.0.15/crypto/aria/aria.c
    functionUses: 1
    functionsReached:
    - a
    - memcpy
    - ossl_aria_set_encrypt_key
    linkageType: ''
    returnType: int
    signature: "int ossl_aria_set_decrypt_key(const unsigned char *userKey, const
      int bits,\n                              ARIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/property/property_err.c:42,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/property/property_err.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: ossl_err_load_PROP_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_PROP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: skip_space
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    linkageType: ''
    returnType: char
    signature: char *skip_space(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - m
    argTypes:
    - char*[]
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: match_ch
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - skip_space
    linkageType: ''
    returnType: int
    signature: int match_ch(const char *t[], char m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MATCH
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MATCH(s, m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:49,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - t
    - m
    - m_len
    argTypes:
    - char*[]
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: match
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 35
    functionsReached:
    - OPENSSL_strncasecmp
    - skip_space
    linkageType: ''
    returnType: int
    signature: int match(const char *t[], const char m[], size_t m_len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isalpha
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:66,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:67,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:73,1
    - Dst: ossl_isalnum
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:76,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:88,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:91,1
    - Dst: ossl_property_name
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - ctx
    - t
    - create
    - idx
    argTypes:
    - OSSL_LIB_CTX*
    - char*[]
    - int
    - OSSL_PROPERTY_IDX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 94
    functionName: parse_name
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 2
    functionsReached:
    - ossl_isalpha
    - ossl_tolower
    - ERR_raise_data
    - ossl_isalnum
    - skip_space
    - ossl_property_name
    linkageType: ''
    returnType: int
    signature: "int parse_name(OSSL_LIB_CTX *ctx, const char *t[], int create,\n                      OSSL_PROPERTY_IDX
      *idx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:102,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:103,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:109,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:114,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:115,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:116,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - t
    - res
    argTypes:
    - char*[]
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 124
    functionName: parse_number
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - ossl_isdigit
    - skip_space
    - ERR_raise_data
    linkageType: ''
    returnType: int
    signature: int parse_number(const char *t[], OSSL_PROPERTY_DEFINITION *res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:133,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:135,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:136,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:138,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:144,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:151,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:152,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:153,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - t
    - res
    argTypes:
    - char*[]
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 161
    functionName: parse_hex
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - ossl_isxdigit
    - ossl_tolower
    - ERR_raise_data
    - skip_space
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int parse_hex(const char *t[], OSSL_PROPERTY_DEFINITION *res)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:169,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:170,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:175,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:181,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:182,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:183,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:187,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - t
    - res
    argTypes:
    - char*[]
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 191
    functionName: parse_oct
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - ossl_isdigit
    - skip_space
    - ERR_raise_data
    linkageType: ''
    returnType: int
    signature: int parse_oct(const char *t[], OSSL_PROPERTY_DEFINITION *res)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:209,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:215,1
    - Dst: ossl_property_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:217,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - t
    - delim
    - res
    - create
    argTypes:
    - OSSL_LIB_CTX*
    - char*[]
    - char
    - OSSL_PROPERTY_DEFINITION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 222
    functionName: parse_string
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_property_value
    - skip_space
    - ERR_raise_data
    linkageType: ''
    returnType: int
    signature: "int parse_string(OSSL_LIB_CTX *ctx, const char *t[], char delim,\n
      \                       OSSL_PROPERTY_DEFINITION *res, const int create)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isprint
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:234,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:234,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:236,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:241,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:242,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:248,1
    - Dst: ossl_property_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:249,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - t
    - res
    - create
    argTypes:
    - OSSL_LIB_CTX*
    - char*[]
    - OSSL_PROPERTY_DEFINITION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 254
    functionName: parse_unquoted
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - ossl_isprint
    - ossl_property_value
    - ossl_tolower
    - ERR_raise_data
    - skip_space
    linkageType: ''
    returnType: int
    signature: "int parse_unquoted(OSSL_LIB_CTX *ctx, const char *t[],\n                          OSSL_PROPERTY_DEFINITION
      *res, const int create)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_string
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:264,1
    - Dst: parse_number
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:267,1
    - Dst: parse_number
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:270,1
    - Dst: parse_hex
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:274,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:275,1
    - Dst: parse_oct
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:277,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:278,1
    - Dst: parse_number
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:279,1
    - Dst: ossl_isalpha
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:280,1
    - Dst: parse_unquoted
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - t
    - res
    - create
    argTypes:
    - OSSL_LIB_CTX*
    - char*[]
    - OSSL_PROPERTY_DEFINITION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 285
    functionName: parse_value
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 12
    functionsReached:
    - ossl_isalpha
    - parse_string
    - parse_hex
    - parse_number
    - parse_unquoted
    - parse_oct
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: "int parse_value(OSSL_LIB_CTX *ctx, const char *t[],\n                       OSSL_PROPERTY_DEFINITION
      *res, int create)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - OSSL_PROPERTY_DEFINITION**
    - OSSL_PROPERTY_DEFINITION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: pd_compare
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pd_compare(const OSSL_PROPERTY_DEFINITION *const *p1,\n                      const
      OSSL_PROPERTY_DEFINITION *const *p2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pd
    argTypes:
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: pd_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pd_free(OSSL_PROPERTY_DEFINITION *pd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_PROPERTY_DEFINITION_num
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:315,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:320,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_sort
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:323,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:327,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:332,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:333,1
    - Dst: ossl_property_name_str
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - sk
    argTypes:
    - OSSL_LIB_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 343
    functionName: stack_to_property_list
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_property_name_str
    - OPENSSL_malloc
    - sk_OSSL_PROPERTY_DEFINITION_value
    - sk_OSSL_PROPERTY_DEFINITION_num
    - ERR_raise_data
    - sk_OSSL_PROPERTY_DEFINITION_sort
    - OPENSSL_free
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: "OSSL_PROPERTY_LIST *\nstack_to_property_list(OSSL_LIB_CTX *ctx,\n
      \                      STACK_OF(OSSL_PROPERTY_DEFINITION) *sk)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:349,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_new
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:353,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:356,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:361,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:364,1
    - Dst: parse_name
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:366,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:370,1
    - Dst: match_ch
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:374,1
    - Dst: parse_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:375,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:376,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_push
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:386,1
    - Dst: match_ch
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:389,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:392,1
    - Dst: stack_to_property_list
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:396,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:399,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_pop_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:400,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - ctx
    - defn
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 402
    functionName: ossl_parse_property
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 2
    functionsReached:
    - match_ch
    - OPENSSL_malloc
    - stack_to_property_list
    - parse_name
    - ERR_raise_data
    - sk_OSSL_PROPERTY_DEFINITION_pop_free
    - OPENSSL_free
    - STACK_OF
    - skip_space
    - sk_OSSL_PROPERTY_DEFINITION_push
    - sk_OSSL_PROPERTY_DEFINITION_new
    - memset
    - parse_value
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: OSSL_PROPERTY_LIST *ossl_parse_property(OSSL_LIB_CTX *ctx, const char
      *defn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:407,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_new
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:412,1
    - Dst: skip_space
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:415,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:418,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:421,1
    - Dst: match_ch
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:423,1
    - Dst: parse_name
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:426,1
    - Dst: match_ch
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:430,1
    - Dst: parse_name
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:431,1
    - Dst: match_ch
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:434,1
    - Dst: MATCH
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:436,1
    - Dst: parse_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:445,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_push
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:449,1
    - Dst: match_ch
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:452,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:455,1
    - Dst: stack_to_property_list
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:459,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:462,1
    - Dst: sk_OSSL_PROPERTY_DEFINITION_pop_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:463,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - ctx
    - s
    - create_values
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 465
    functionName: ossl_parse_query
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 2
    functionsReached:
    - MATCH
    - match_ch
    - OPENSSL_malloc
    - stack_to_property_list
    - parse_name
    - ERR_raise_data
    - sk_OSSL_PROPERTY_DEFINITION_pop_free
    - OPENSSL_free
    - STACK_OF
    - skip_space
    - sk_OSSL_PROPERTY_DEFINITION_push
    - sk_OSSL_PROPERTY_DEFINITION_new
    - memset
    - parse_value
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: "OSSL_PROPERTY_LIST *ossl_parse_query(OSSL_LIB_CTX *ctx, const char
      *s,\n                                     int create_values)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:491,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 2
    argNames:
    - query
    - defn
    argTypes:
    - OSSL_PROPERTY_LIST*
    - OSSL_PROPERTY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 527
    functionName: ossl_property_match_count
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ossl_property_match_count(const OSSL_PROPERTY_LIST *query,\n                              const
      OSSL_PROPERTY_LIST *defn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - OSSL_PROPERTY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: ossl_property_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ossl_property_free(OSSL_PROPERTY_LIST *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:548,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:566,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:571,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OSSL_PROPERTY_LIST*
    - OSSL_PROPERTY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 573
    functionName: ossl_property_merge
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_realloc
    - memcpy
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: "OSSL_PROPERTY_LIST *ossl_property_merge(const OSSL_PROPERTY_LIST *a,\n
      \                                       const OSSL_PROPERTY_LIST *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:587,1
    - Dst: ossl_property_name
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:588,1
    - Dst: ossl_property_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:596,1
    - Dst: ossl_property_value
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 603
    functionName: ossl_property_parse_init
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 1
    functionsReached:
    - ossl_property_value
    - ossl_property_name
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_property_parse_init(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ch
    - buf
    - remain
    - needed
    argTypes:
    - char
    - char**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 618
    functionName: put_char
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_char(char ch, char **buf, size_t *remain, size_t *needed)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:626,1
    - Dst: ossl_isalnum
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:635,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:651,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:657,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:663,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - str
    - buf
    - remain
    - needed
    argTypes:
    - char*
    - char**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 670
    functionName: put_str
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - ossl_isalnum
    - put_char
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void put_str(const char *str, char **buf, size_t *remain, size_t *needed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - val
    - buf
    - remain
    - needed
    argTypes:
    - int64_t
    - char**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 696
    functionName: put_num
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    linkageType: ''
    returnType: void
    signature: void put_num(int64_t val, char **buf, size_t *remain, size_t *needed)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:720,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:723,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:725,1
    - Dst: ossl_property_name_str
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:727,1
    - Dst: put_str
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:730,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:734,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:737,1
    - Dst: ossl_property_value_str
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:741,1
    - Dst: put_str
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:744,1
    - Dst: put_num
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:748,1
    - Dst: put_char
      Src: /src/openssl-3.0.15/crypto/property/property_parse.c:761,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - list
    - buf
    - bufsize
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_PROPERTY_LIST*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 763
    functionName: ossl_property_list_to_string
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_parse.c
    functionUses: 2
    functionsReached:
    - ossl_property_value_str
    - ossl_property_name_str
    - put_num
    - put_str
    - put_char
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_property_list_to_string(OSSL_LIB_CTX *ctx,\n                                    const
      OSSL_PROPERTY_LIST *list, char *buf,\n                                    size_t
      bufsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PROPERTY_DEFN_ELEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: property_defn_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long property_defn_hash(const PROPERTY_DEFN_ELEM *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PROPERTY_DEFN_ELEM*
    - PROPERTY_DEFN_ELEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: property_defn_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int property_defn_cmp(const PROPERTY_DEFN_ELEM *a,\n                             const
      PROPERTY_DEFN_ELEM *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elem
    argTypes:
    - PROPERTY_DEFN_ELEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: property_defn_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_property_free
    linkageType: ''
    returnType: void
    signature: void property_defn_free(PROPERTY_DEFN_ELEM *elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:52,1
    - Dst: lh_PROPERTY_DEFN_ELEM_doall
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:55,1
    - Dst: lh_PROPERTY_DEFN_ELEM_free
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vproperty_defns
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: property_defns_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - LHASH_OF
    - lh_PROPERTY_DEFN_ELEM_doall
    - lh_PROPERTY_DEFN_ELEM_free
    linkageType: ''
    returnType: void
    signature: void property_defns_free(void *vproperty_defns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_PROPERTY_DEFN_ELEM_new
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: property_defns_new
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - lh_PROPERTY_DEFN_ELEM_new
    linkageType: ''
    returnType: void
    signature: void *property_defns_new(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:74,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:76,1
    - Dst: ossl_lib_ctx_read_lock
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:79,1
    - Dst: lh_PROPERTY_DEFN_ELEM_retrieve
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:83,1
    - Dst: ossl_lib_ctx_unlock
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:84,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - prop
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: ossl_prop_defn_get
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_read_lock
    - LHASH_OF
    - lh_PROPERTY_DEFN_ELEM_retrieve
    - ossl_lib_ctx_unlock
    - ossl_lib_ctx_get_data
    - ossl_assert
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: OSSL_PROPERTY_LIST *ossl_prop_defn_get(OSSL_LIB_CTX *ctx, const char
      *prop)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:100,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:103,1
    - Dst: ossl_lib_ctx_write_lock
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:112,1
    - Dst: lh_PROPERTY_DEFN_ELEM_delete
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:116,1
    - Dst: lh_PROPERTY_DEFN_ELEM_retrieve
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:120,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:121,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:125,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:126,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:130,1
    - Dst: lh_PROPERTY_DEFN_ELEM_insert
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:131,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:132,1
    - Dst: lh_PROPERTY_DEFN_ELEM_error
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:138,1
    - Dst: ossl_lib_ctx_unlock
      Src: /src/openssl-3.0.15/crypto/property/defn_cache.c:141,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - prop
    - pl
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - OSSL_PROPERTY_LIST**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 143
    functionName: ossl_prop_defn_set
    functionSourceFile: /src/openssl-3.0.15/crypto/property/defn_cache.c
    functionUses: 0
    functionsReached:
    - ossl_property_free
    - memcpy
    - ossl_lib_ctx_write_lock
    - LHASH_OF
    - OPENSSL_malloc
    - lh_PROPERTY_DEFN_ELEM_retrieve
    - lh_PROPERTY_DEFN_ELEM_error
    - OPENSSL_free
    - strlen
    - lh_PROPERTY_DEFN_ELEM_insert
    - lh_PROPERTY_DEFN_ELEM_delete
    - ossl_lib_ctx_unlock
    - ossl_lib_ctx_get_data
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_prop_defn_set(OSSL_LIB_CTX *ctx, const char *prop,\n                       OSSL_PROPERTY_LIST
      **pl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyp
    - compare
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: property_idx_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int property_idx_cmp(const void *keyp, const void *compare)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_name
      Src: /src/openssl-3.0.15/crypto/property/property_query.c:30,1
    - Dst: ossl_bsearch
      Src: /src/openssl-3.0.15/crypto/property/property_query.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - list
    - libctx
    - name
    argTypes:
    - OSSL_PROPERTY_LIST*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: ossl_property_find_property
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 2
    functionsReached:
    - ossl_bsearch
    - ossl_property_name
    linkageType: ''
    returnType: OSSL_PROPERTY_DEFINITION
    signature: "OSSL_PROPERTY_DEFINITION *\nossl_property_find_property(const OSSL_PROPERTY_LIST
      *list,\n                            OSSL_LIB_CTX *libctx, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prop
    argTypes:
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ossl_property_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PROPERTY_TYPE
    signature: OSSL_PROPERTY_TYPE ossl_property_get_type(const OSSL_PROPERTY_DEFINITION
      *prop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_value_str
      Src: /src/openssl-3.0.15/crypto/property/property_query.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - libctx
    - prop
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: ossl_property_get_string_value
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 2
    functionsReached:
    - ossl_property_value_str
    linkageType: ''
    returnType: char
    signature: "char *ossl_property_get_string_value(OSSL_LIB_CTX *libctx,\n                                           const
      OSSL_PROPERTY_DEFINITION *prop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - prop
    argTypes:
    - OSSL_PROPERTY_DEFINITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: ossl_property_get_number_value
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t ossl_property_get_number_value(const OSSL_PROPERTY_DEFINITION
      *prop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - query
    argTypes:
    - OSSL_PROPERTY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ossl_property_has_optional
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_property_has_optional(const OSSL_PROPERTY_LIST *query)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_find_property
      Src: /src/openssl-3.0.15/crypto/property/property_query.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - property_name
    - prop_list
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - OSSL_PROPERTY_LIST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: ossl_property_is_enabled
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_query.c
    functionUses: 1
    functionsReached:
    - ossl_property_find_property
    linkageType: ''
    returnType: int
    signature: "int ossl_property_is_enabled(OSSL_LIB_CTX *ctx,  const char *property_name,\n
      \                            const OSSL_PROPERTY_LIST *prop_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vglobp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: ossl_ctx_global_properties_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_property_free
    linkageType: ''
    returnType: void
    signature: void ossl_ctx_global_properties_free(void *vglobp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/property/property.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: ossl_ctx_global_properties_new
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *ossl_ctx_global_properties_new(OSSL_LIB_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/property/property.c:139,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/property.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: ossl_ctx_global_properties
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - OPENSSL_init_crypto
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_PROPERTY_LIST
    signature: "OSSL_PROPERTY_LIST **ossl_ctx_global_properties(OSSL_LIB_CTX *libctx,\n
      \                                               ossl_unused int loadconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/property.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 6
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: ossl_global_properties_no_mirrored
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 1
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_global_properties_no_mirrored(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/property.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: ossl_global_properties_stop_mirroring
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 1
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: void
    signature: void ossl_global_properties_stop_mirroring(OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: ossl_method_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_method_up_ref(METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: ossl_method_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_method_free(METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: ossl_property_read_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: __owur
    signature: __owur ossl_property_read_lock(OSSL_METHOD_STORE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: ossl_property_write_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: __owur
    signature: __owur ossl_property_write_lock(OSSL_METHOD_STORE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: ossl_property_unlock
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_property_unlock(OSSL_METHOD_STORE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/property/property.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - QUERY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: query_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long query_hash(const QUERY *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/property/property.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - QUERY*
    - QUERY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: query_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int query_cmp(const QUERY *a, const QUERY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - impl
    argTypes:
    - IMPLEMENTATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: impl_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - ossl_method_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void impl_free(IMPLEMENTATION *impl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - elem
    argTypes:
    - QUERY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: impl_cache_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - ossl_method_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void impl_cache_free(QUERY *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_QUERY_doall
      Src: /src/openssl-3.0.15/crypto/property/property.c:228,1
    - Dst: lh_QUERY_flush
      Src: /src/openssl-3.0.15/crypto/property/property.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - alg
    argTypes:
    - ossl_uintmax_t
    - ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: impl_cache_flush_alg
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - lh_QUERY_flush
    - lh_QUERY_doall
    linkageType: ''
    returnType: void
    signature: void impl_cache_flush_alg(ossl_uintmax_t idx, ALGORITHM *alg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_IMPLEMENTATION_pop_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:237,1
    - Dst: lh_QUERY_doall
      Src: /src/openssl-3.0.15/crypto/property/property.c:238,1
    - Dst: lh_QUERY_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:240,1
    - Dst: ossl_sa_ALGORITHM_set
      Src: /src/openssl-3.0.15/crypto/property/property.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - idx
    - a
    - arg
    argTypes:
    - ossl_uintmax_t
    - ALGORITHM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: alg_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - ossl_sa_ALGORITHM_set
    - lh_QUERY_free
    - OPENSSL_free
    - lh_QUERY_doall
    - sk_IMPLEMENTATION_pop_free
    linkageType: ''
    returnType: void
    signature: void alg_cleanup(ossl_uintmax_t idx, ALGORITHM *a, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/property/property.c:254,1
    - Dst: ossl_sa_ALGORITHM_new
      Src: /src/openssl-3.0.15/crypto/property/property.c:257,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/property/property.c:258,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/property/property.c:259,1
    - Dst: ossl_method_store_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: ossl_method_store_new
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 8
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - ossl_sa_ALGORITHM_new
    - ossl_method_store_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_METHOD_STORE
    signature: OSSL_METHOD_STORE *ossl_method_store_new(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sa_ALGORITHM_doall_arg
      Src: /src/openssl-3.0.15/crypto/property/property.c:271,1
    - Dst: ossl_sa_ALGORITHM_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:272,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:273,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:274,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - store
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: ossl_method_store_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 9
    functionsReached:
    - OPENSSL_free
    - ossl_sa_ALGORITHM_free
    - ossl_sa_ALGORITHM_doall_arg
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void ossl_method_store_free(OSSL_METHOD_STORE *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - store
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: ossl_method_lock_store
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    linkageType: ''
    returnType: int
    signature: int ossl_method_lock_store(OSSL_METHOD_STORE *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - store
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: ossl_method_unlock_store
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_method_unlock_store(OSSL_METHOD_STORE *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sa_ALGORITHM_get
      Src: /src/openssl-3.0.15/crypto/property/property.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store
    - nid
    argTypes:
    - OSSL_METHOD_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: ossl_method_store_retrieve
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - ossl_sa_ALGORITHM_get
    linkageType: ''
    returnType: ALGORITHM
    signature: ALGORITHM *ossl_method_store_retrieve(OSSL_METHOD_STORE *store, int
      nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sa_ALGORITHM_set
      Src: /src/openssl-3.0.15/crypto/property/property.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - store
    - alg
    argTypes:
    - OSSL_METHOD_STORE*
    - ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: ossl_method_store_insert
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - ossl_sa_ALGORITHM_set
    linkageType: ''
    returnType: int
    signature: int ossl_method_store_insert(OSSL_METHOD_STORE *store, ALGORITHM *alg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/property/property.c:314,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property.c:318,1
    - Dst: ossl_method_up_ref
      Src: /src/openssl-3.0.15/crypto/property/property.c:324,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:325,1
    - Dst: ossl_property_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:331,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:332,1
    - Dst: ossl_method_cache_flush
      Src: /src/openssl-3.0.15/crypto/property/property.c:335,1
    - Dst: ossl_prop_defn_get
      Src: /src/openssl-3.0.15/crypto/property/property.c:336,1
    - Dst: ossl_parse_property
      Src: /src/openssl-3.0.15/crypto/property/property.c:337,1
    - Dst: ossl_prop_defn_set
      Src: /src/openssl-3.0.15/crypto/property/property.c:340,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:341,1
    - Dst: ossl_method_store_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:347,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/property/property.c:349,1
    - Dst: sk_IMPLEMENTATION_new_null
      Src: /src/openssl-3.0.15/crypto/property/property.c:350,1
    - Dst: lh_QUERY_new
      Src: /src/openssl-3.0.15/crypto/property/property.c:351,1
    - Dst: ossl_method_store_insert
      Src: /src/openssl-3.0.15/crypto/property/property.c:354,1
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:359,1
    - Dst: sk_IMPLEMENTATION_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:360,1
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:366,1
    - Dst: sk_IMPLEMENTATION_push
      Src: /src/openssl-3.0.15/crypto/property/property.c:367,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:369,1
    - Dst: impl_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:371,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:375,1
    - Dst: alg_cleanup
      Src: /src/openssl-3.0.15/crypto/property/property.c:376,1
    - Dst: impl_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:377,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 5
    argNames:
    - store
    - prov
    - nid
    - properties
    - method
    argTypes:
    - OSSL_METHOD_STORE*
    - OSSL_PROVIDER*
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 379
    functionName: ossl_method_store_add
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - ossl_prop_defn_get
    - ossl_property_free
    - ossl_method_cache_flush
    - lh_QUERY_new
    - ossl_method_store_retrieve
    - sk_IMPLEMENTATION_push
    - ossl_assert
    - ossl_method_store_insert
    - ossl_prop_defn_set
    - sk_IMPLEMENTATION_value
    - impl_free
    - sk_IMPLEMENTATION_num
    - ossl_property_unlock
    - sk_IMPLEMENTATION_new_null
    - OPENSSL_free
    - ossl_method_up_ref
    - ossl_parse_property
    - alg_cleanup
    - OPENSSL_malloc
    - OPENSSL_zalloc
    - ossl_property_write_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_method_store_add(OSSL_METHOD_STORE *store, const OSSL_PROVIDER
      *prov,\n                          int nid, const char *properties, void *method,\n
      \                         int (*method_up_ref)(void *),\n                          void
      (*method_destruct)(void *))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:390,1
    - Dst: ossl_method_cache_flush
      Src: /src/openssl-3.0.15/crypto/property/property.c:392,1
    - Dst: ossl_method_store_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:393,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:395,1
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:404,1
    - Dst: sk_IMPLEMENTATION_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:405,1
    - Dst: impl_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:408,1
    - Dst: sk_IMPLEMENTATION_delete
      Src: /src/openssl-3.0.15/crypto/property/property.c:409,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:410,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - store
    - nid
    - method
    argTypes:
    - OSSL_METHOD_STORE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 416
    functionName: ossl_method_store_remove
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - sk_IMPLEMENTATION_value
    - ossl_method_cache_flush
    - impl_free
    - sk_IMPLEMENTATION_num
    - ossl_method_store_retrieve
    - ossl_property_unlock
    - sk_IMPLEMENTATION_delete
    - ossl_property_write_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_method_store_remove(OSSL_METHOD_STORE *store, int nid,\n
      \                            const void *method)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:433,1
    - Dst: sk_IMPLEMENTATION_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:434,1
    - Dst: impl_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:437,1
    - Dst: sk_IMPLEMENTATION_delete
      Src: /src/openssl-3.0.15/crypto/property/property.c:438,1
    - Dst: ossl_method_cache_flush_alg
      Src: /src/openssl-3.0.15/crypto/property/property.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - idx
    - alg
    - arg
    argTypes:
    - ossl_uintmax_t
    - ALGORITHM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 451
    functionName: alg_cleanup_by_provider
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - ossl_method_cache_flush_alg
    - sk_IMPLEMENTATION_value
    - impl_free
    - sk_IMPLEMENTATION_num
    - sk_IMPLEMENTATION_delete
    linkageType: ''
    returnType: void
    signature: void alg_cleanup_by_provider(ossl_uintmax_t idx, ALGORITHM *alg, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:458,1
    - Dst: ossl_sa_ALGORITHM_doall_arg
      Src: /src/openssl-3.0.15/crypto/property/property.c:462,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - store
    - prov
    argTypes:
    - OSSL_METHOD_STORE*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 465
    functionName: ossl_method_store_remove_all_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - ossl_property_write_lock
    - ossl_property_unlock
    - ossl_sa_ALGORITHM_doall_arg
    linkageType: ''
    returnType: int
    signature: "int ossl_method_store_remove_all_provided(OSSL_METHOD_STORE *store,\n
      \                                         const OSSL_PROVIDER *prov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/property/property.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - alg
    - impl
    - fnarg
    argTypes:
    - ALGORITHM*
    - IMPLEMENTATION*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: alg_do_one
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: void
    signature: "void alg_do_one(ALGORITHM *alg, IMPLEMENTATION *impl,\n                       void
      (*fn)(int id, void *method, void *fnarg),\n                       void *fnarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/property/property.c:476,1
    - Dst: sk_ALGORITHM_push
      Src: /src/openssl-3.0.15/crypto/property/property.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - idx
    - alg
    - arg
    argTypes:
    - ossl_uintmax_t
    - ALGORITHM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: alg_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - STACK_OF
    - sk_ALGORITHM_push
    linkageType: ''
    returnType: void
    signature: void alg_copy(ossl_uintmax_t idx, ALGORITHM *alg, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/property/property.c:487,1
    - Dst: ossl_property_read_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:492,1
    - Dst: sk_ALGORITHM_new_reserve
      Src: /src/openssl-3.0.15/crypto/property/property.c:495,1
    - Dst: ossl_sa_ALGORITHM_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:496,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:498,1
    - Dst: ossl_sa_ALGORITHM_doall_arg
      Src: /src/openssl-3.0.15/crypto/property/property.c:502,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:503,1
    - Dst: sk_ALGORITHM_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:504,1
    - Dst: sk_ALGORITHM_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:506,1
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:507,1
    - Dst: alg_do_one
      Src: /src/openssl-3.0.15/crypto/property/property.c:509,1
    - Dst: sk_IMPLEMENTATION_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:509,1
    - Dst: sk_ALGORITHM_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - store
    - fnarg
    argTypes:
    - OSSL_METHOD_STORE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 513
    functionName: ossl_method_store_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - alg_do_one
    - sk_ALGORITHM_value
    - sk_IMPLEMENTATION_value
    - ossl_sa_ALGORITHM_num
    - ossl_sa_ALGORITHM_doall_arg
    - sk_IMPLEMENTATION_num
    - sk_ALGORITHM_free
    - STACK_OF
    - ossl_property_unlock
    - ossl_property_read_lock
    - sk_ALGORITHM_num
    - sk_ALGORITHM_new_reserve
    linkageType: ''
    returnType: void
    signature: "void ossl_method_store_do_all(OSSL_METHOD_STORE *store,\n                              void
      (*fn)(int id, void *method, void *fnarg),\n                              void
      *fnarg)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_is_default
      Src: /src/openssl-3.0.15/crypto/property/property.c:531,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/property/property.c:532,1
    - Dst: ossl_property_read_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:537,1
    - Dst: ossl_method_store_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:539,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:541,1
    - Dst: ossl_parse_query
      Src: /src/openssl-3.0.15/crypto/property/property.c:546,1
    - Dst: ossl_ctx_global_properties
      Src: /src/openssl-3.0.15/crypto/property/property.c:547,1
    - Dst: ossl_property_merge
      Src: /src/openssl-3.0.15/crypto/property/property.c:552,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:553,1
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:561,1
    - Dst: sk_IMPLEMENTATION_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:562,1
    - Dst: ossl_property_has_optional
      Src: /src/openssl-3.0.15/crypto/property/property.c:571,1
    - Dst: sk_IMPLEMENTATION_num
      Src: /src/openssl-3.0.15/crypto/property/property.c:572,1
    - Dst: sk_IMPLEMENTATION_value
      Src: /src/openssl-3.0.15/crypto/property/property.c:573,1
    - Dst: ossl_property_match_count
      Src: /src/openssl-3.0.15/crypto/property/property.c:575,1
    - Dst: ossl_method_up_ref
      Src: /src/openssl-3.0.15/crypto/property/property.c:586,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:593,1
    - Dst: ossl_property_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:594,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 5
    argNames:
    - store
    - nid
    - prop_query
    - prov_rw
    - method
    argTypes:
    - OSSL_METHOD_STORE*
    - int
    - char*
    - OSSL_PROVIDER**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 515
    functionDepth: 7
    functionLinenumber: 515
    functionLinenumberEnd: 596
    functionName: ossl_method_store_fetch
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - ossl_property_free
    - ossl_property_match_count
    - sk_IMPLEMENTATION_value
    - ossl_lib_ctx_is_default
    - ossl_ctx_global_properties
    - sk_IMPLEMENTATION_num
    - OPENSSL_init_crypto
    - ossl_parse_query
    - ossl_method_store_retrieve
    - ossl_property_unlock
    - ossl_property_merge
    - ossl_method_up_ref
    - ossl_property_has_optional
    - ossl_property_read_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_method_store_fetch(OSSL_METHOD_STORE *store,\n                            int
      nid, const char *prop_query,\n                            const OSSL_PROVIDER
      **prov_rw, void **method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_QUERY_num_items
      Src: /src/openssl-3.0.15/crypto/property/property.c:601,1
    - Dst: impl_cache_flush_alg
      Src: /src/openssl-3.0.15/crypto/property/property.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - store
    - alg
    argTypes:
    - OSSL_METHOD_STORE*
    - ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: ossl_method_cache_flush_alg
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 1
    functionsReached:
    - lh_QUERY_num_items
    - impl_cache_flush_alg
    linkageType: ''
    returnType: void
    signature: "void ossl_method_cache_flush_alg(OSSL_METHOD_STORE *store,\n                                        ALGORITHM
      *alg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_method_store_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:607,1
    - Dst: ossl_method_cache_flush_alg
      Src: /src/openssl-3.0.15/crypto/property/property.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - store
    - nid
    argTypes:
    - OSSL_METHOD_STORE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: ossl_method_cache_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 2
    functionsReached:
    - ossl_method_cache_flush_alg
    - ossl_method_store_retrieve
    linkageType: ''
    returnType: void
    signature: void ossl_method_cache_flush(OSSL_METHOD_STORE *store, int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:615,1
    - Dst: ossl_sa_ALGORITHM_doall
      Src: /src/openssl-3.0.15/crypto/property/property.c:617,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - store
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: ossl_method_store_cache_flush_all
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 5
    functionsReached:
    - ossl_sa_ALGORITHM_doall
    - ossl_property_write_lock
    - ossl_property_unlock
    linkageType: ''
    returnType: int
    signature: int ossl_method_store_cache_flush_all(OSSL_METHOD_STORE *store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: impl_cache_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:659,1
    - Dst: lh_QUERY_delete
      Src: /src/openssl-3.0.15/crypto/property/property.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - state
    argTypes:
    - QUERY*
    - IMPL_CACHE_FLUSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 662
    functionName: impl_cache_flush_cache
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - lh_QUERY_delete
    - impl_cache_free
    linkageType: ''
    returnType: void
    signature: void impl_cache_flush_cache(QUERY *c, IMPL_CACHE_FLUSH *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_QUERY_get_down_load
      Src: /src/openssl-3.0.15/crypto/property/property.c:668,1
    - Dst: lh_QUERY_set_down_load
      Src: /src/openssl-3.0.15/crypto/property/property.c:671,1
    - Dst: lh_QUERY_doall_IMPL_CACHE_FLUSH
      Src: /src/openssl-3.0.15/crypto/property/property.c:672,1
    - Dst: lh_QUERY_set_down_load
      Src: /src/openssl-3.0.15/crypto/property/property.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - idx
    - alg
    - v
    argTypes:
    - ossl_uintmax_t
    - ALGORITHM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 675
    functionName: impl_cache_flush_one_alg
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - lh_QUERY_doall_IMPL_CACHE_FLUSH
    - lh_QUERY_set_down_load
    - lh_QUERY_get_down_load
    linkageType: ''
    returnType: void
    signature: "void impl_cache_flush_one_alg(ossl_uintmax_t idx, ALGORITHM *alg,\n
      \                                    void *v)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_rdtsc
      Src: /src/openssl-3.0.15/crypto/property/property.c:684,1
    - Dst: tsan_load
      Src: /src/openssl-3.0.15/crypto/property/property.c:687,1
    - Dst: ossl_sa_ALGORITHM_doall_arg
      Src: /src/openssl-3.0.15/crypto/property/property.c:690,1
    - Dst: tsan_store
      Src: /src/openssl-3.0.15/crypto/property/property.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - store
    argTypes:
    - OSSL_METHOD_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: ossl_method_cache_flush_some
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 0
    functionsReached:
    - OPENSSL_rdtsc
    - tsan_store
    - tsan_load
    - ossl_sa_ALGORITHM_doall_arg
    linkageType: ''
    returnType: void
    signature: void ossl_method_cache_flush_some(OSSL_METHOD_STORE *store)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_read_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:707,1
    - Dst: ossl_method_store_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:709,1
    - Dst: lh_QUERY_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:715,1
    - Dst: ossl_method_up_ref
      Src: /src/openssl-3.0.15/crypto/property/property.c:718,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:723,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - store
    - prov
    - nid
    - prop_query
    - method
    argTypes:
    - OSSL_METHOD_STORE*
    - OSSL_PROVIDER*
    - int
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 725
    functionName: ossl_method_store_cache_get
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - lh_QUERY_retrieve
    - ossl_method_store_retrieve
    - ossl_property_unlock
    - ossl_method_up_ref
    - ossl_property_read_lock
    linkageType: ''
    returnType: int
    signature: "int ossl_method_store_cache_get(OSSL_METHOD_STORE *store, OSSL_PROVIDER
      *prov,\n                                int nid, const char *prop_query, void
      **method)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/property/property.c:740,1
    - Dst: ossl_property_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property.c:743,1
    - Dst: ossl_method_cache_flush_some
      Src: /src/openssl-3.0.15/crypto/property/property.c:746,1
    - Dst: ossl_method_store_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property.c:747,1
    - Dst: lh_QUERY_delete
      Src: /src/openssl-3.0.15/crypto/property/property.c:754,1
    - Dst: impl_cache_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:755,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property.c:760,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/property/property.c:760,1
    - Dst: ossl_method_up_ref
      Src: /src/openssl-3.0.15/crypto/property/property.c:767,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/property/property.c:769,1
    - Dst: lh_QUERY_insert
      Src: /src/openssl-3.0.15/crypto/property/property.c:770,1
    - Dst: impl_cache_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:771,1
    - Dst: lh_QUERY_error
      Src: /src/openssl-3.0.15/crypto/property/property.c:774,1
    - Dst: ossl_method_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:779,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property.c:783,1
    - Dst: ossl_property_unlock
      Src: /src/openssl-3.0.15/crypto/property/property.c:785,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - store
    - prov
    - nid
    - prop_query
    - method
    argTypes:
    - OSSL_METHOD_STORE*
    - OSSL_PROVIDER*
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 787
    functionName: ossl_method_store_cache_set
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property.c
    functionUses: 4
    functionsReached:
    - memcpy
    - impl_cache_free
    - OPENSSL_malloc
    - lh_QUERY_insert
    - lh_QUERY_error
    - OPENSSL_free
    - ossl_method_store_retrieve
    - strlen
    - ossl_method_cache_flush_some
    - lh_QUERY_delete
    - ossl_method_up_ref
    - ossl_method_free
    - ossl_property_unlock
    - ossl_property_write_lock
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_method_store_cache_set(OSSL_METHOD_STORE *store, OSSL_PROVIDER
      *prov,\n                                int nid, const char *prop_query, void
      *method,\n                                int (*method_up_ref)(void *),\n                                void
      (*method_destruct)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PROPERTY_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: property_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long property_hash(const PROPERTY_STRING *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PROPERTY_STRING*
    - PROPERTY_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: property_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int property_cmp(const PROPERTY_STRING *a, const PROPERTY_STRING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ps
    argTypes:
    - PROPERTY_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: property_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 10
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void property_free(PROPERTY_STRING *ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_PROPERTY_STRING_doall
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:65,1
    - Dst: lh_PROPERTY_STRING_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pt
    argTypes:
    - PROP_TABLE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: property_table_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - lh_PROPERTY_STRING_doall
    - lh_PROPERTY_STRING_free
    linkageType: ''
    returnType: void
    signature: void property_table_free(PROP_TABLE **pt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:78,1
    - Dst: property_table_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:79,1
    - Dst: property_table_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vpropdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: property_string_data_free
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - property_table_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void property_string_data_free(void *vpropdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:87,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:92,1
    - Dst: lh_PROPERTY_STRING_new
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:96,1
    - Dst: lh_PROPERTY_STRING_new
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:101,1
    - Dst: property_string_data_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: property_string_data_new
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - lh_PROPERTY_STRING_new
    - OPENSSL_zalloc
    - property_string_data_free
    linkageType: ''
    returnType: void
    signature: void *property_string_data_new(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:122,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:123,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - pidx
    argTypes:
    - char*
    - OSSL_PROPERTY_IDX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: new_property_string
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - strlen
    - memcpy
    linkageType: ''
    returnType: PROPERTY_STRING
    signature: "PROPERTY_STRING *new_property_string(const char *s,\n                                            OSSL_PROPERTY_IDX
      *pidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:146,1
    - Dst: lh_PROPERTY_STRING_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:149,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:151,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:152,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:153,1
    - Dst: lh_PROPERTY_STRING_retrieve
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:156,1
    - Dst: new_property_string
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:157,1
    - Dst: lh_PROPERTY_STRING_insert
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:158,1
    - Dst: lh_PROPERTY_STRING_error
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:159,1
    - Dst: property_free
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:160,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:161,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - lock
    - t
    - pidx
    - s
    argTypes:
    - CRYPTO_RWLOCK*
    - PROP_TABLE*
    - OSSL_PROPERTY_IDX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 169
    functionName: ossl_property_string
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - new_property_string
    - property_free
    - ERR_raise
    - lh_PROPERTY_STRING_insert
    - lh_PROPERTY_STRING_retrieve
    - lh_PROPERTY_STRING_error
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: OSSL_PROPERTY_IDX
    signature: "OSSL_PROPERTY_IDX ossl_property_string(CRYPTO_RWLOCK *lock,\n                                              PROP_TABLE
      *t,\n                                              OSSL_PROPERTY_IDX *pidx,\n
      \                                             const char *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - prop
    - vfindstr
    argTypes:
    - PROPERTY_STRING*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: find_str_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void find_str_fn(PROPERTY_STRING *prop, void *vfindstr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:189,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:199,1
    - Dst: lh_PROPERTY_STRING_doall_arg
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:202,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - name
    - ctx
    - idx
    argTypes:
    - int
    - OSSL_LIB_CTX*
    - OSSL_PROPERTY_IDX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 208
    functionName: ossl_property_str
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 0
    functionsReached:
    - lh_PROPERTY_STRING_doall_arg
    - CRYPTO_THREAD_unlock
    - ERR_raise
    - ossl_lib_ctx_get_data
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: char
    signature: "char *ossl_property_str(int name, OSSL_LIB_CTX *ctx,\n                                     OSSL_PROPERTY_IDX
      idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:214,1
    - Dst: ossl_property_string
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - s
    - create
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 6
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: ossl_property_name
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 3
    functionsReached:
    - ossl_property_string
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_PROPERTY_IDX
    signature: "OSSL_PROPERTY_IDX ossl_property_name(OSSL_LIB_CTX *ctx, const char
      *s,\n                                     int create)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_str
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_PROPERTY_IDX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: ossl_property_name_str
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 2
    functionsReached:
    - ossl_property_str
    linkageType: ''
    returnType: char
    signature: char *ossl_property_name_str(OSSL_LIB_CTX *ctx, OSSL_PROPERTY_IDX idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:233,1
    - Dst: ossl_property_string
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - s
    - create
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 229
    functionDepth: 6
    functionLinenumber: 229
    functionLinenumberEnd: 241
    functionName: ossl_property_value
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 3
    functionsReached:
    - ossl_property_string
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: OSSL_PROPERTY_IDX
    signature: "OSSL_PROPERTY_IDX ossl_property_value(OSSL_LIB_CTX *ctx, const char
      *s,\n                                      int create)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_property_str
      Src: /src/openssl-3.0.15/crypto/property/property_string.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - idx
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_PROPERTY_IDX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 7
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ossl_property_value_str
    functionSourceFile: /src/openssl-3.0.15/crypto/property/property_string.c
    functionUses: 2
    functionsReached:
    - ossl_property_str
    linkageType: ''
    returnType: char
    signature: char *ossl_property_value_str(OSSL_LIB_CTX *ctx, OSSL_PROPERTY_IDX
      idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_err.c:67,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_err.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: ossl_err_load_CRMF_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_CRMF_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - atyp
    - ','
    - valt
    - ','
    - ctrlinf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 82
    functionName: IMPLEMENT_CRMF_CTRL_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_CRMF_CTRL_FUNC(atyp, valt, ctrlinf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:95,1
    - Dst: sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:100,1
    - Dst: sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:105,1
    - Dst: sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - crm
    - ctrl
    argTypes:
    - OSSL_CRMF_MSG*
    - OSSL_CRMF_ATTRIBUTETYPEANDVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: OSSL_CRMF_MSG_push0_regCtrl
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push
    - sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null
    - sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_push0_regCtrl(OSSL_CRMF_MSG *crm,\n                                       OSSL_CRMF_ATTRIBUTETYPEANDVALUE
      *ctrl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:130,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:134,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - spi
    - method
    - nm
    argTypes:
    - OSSL_CRMF_SINGLEPUBINFO*
    - int
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: OSSL_CRMF_MSG_set0_SinglePubInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_free
    - ASN1_INTEGER_set
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_set0_SinglePubInfo(OSSL_CRMF_SINGLEPUBINFO *spi,\n
      \                                    int method, GENERAL_NAME *nm)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:146,1
    - Dst: sk_OSSL_CRMF_SINGLEPUBINFO_new_null
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:150,1
    - Dst: sk_OSSL_CRMF_SINGLEPUBINFO_push
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pi
    - spi
    argTypes:
    - OSSL_CRMF_PKIPUBLICATIONINFO*
    - OSSL_CRMF_SINGLEPUBINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CRMF_SINGLEPUBINFO_push
    - sk_OSSL_CRMF_SINGLEPUBINFO_new_null
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo(OSSL_CRMF_PKIPUBLICATIONINFO
      *pi,\n                                                     OSSL_CRMF_SINGLEPUBINFO
      *spi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:163,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pi
    - action
    argTypes:
    - OSSL_CRMF_PKIPUBLICATIONINFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: OSSL_CRMF_MSG_set_PKIPublicationInfo_action
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_set_PKIPublicationInfo_action(OSSL_CRMF_PKIPUBLICATIONINFO
      *pi,\n                                                int action)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:183,1
    - Dst: OSSL_CRMF_CERTID_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:187,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:190,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:194,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:195,1
    - Dst: OSSL_CRMF_CERTID_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - issuer
    - serial
    argTypes:
    - X509_NAME*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 203
    functionName: OSSL_CRMF_CERTID_gen
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_CRMF_CERTID_free
    - OSSL_CRMF_CERTID_new
    - ERR_raise
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - X509_NAME_set
    linkageType: ''
    returnType: OSSL_CRMF_CERTID
    signature: "OSSL_CRMF_CERTID *OSSL_CRMF_CERTID_gen(const X509_NAME *issuer,\n
      \                                      const ASN1_INTEGER *serial)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:218,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:221,1
    - Dst: sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:226,1
    - Dst: sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:229,1
    - Dst: sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - crm
    - ri
    argTypes:
    - OSSL_CRMF_MSG*
    - OSSL_CRMF_ATTRIBUTETYPEANDVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: OSSL_CRMF_MSG_push0_regInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_new_null
    - ERR_raise
    - sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free
    - STACK_OF
    - sk_OSSL_CRMF_ATTRIBUTETYPEANDVALUE_push
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_push0_regInfo(OSSL_CRMF_MSG *crm,\n                                       OSSL_CRMF_ATTRIBUTETYPEANDVALUE
      *ri)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - crm
    argTypes:
    - OSSL_CRMF_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: OSSL_CRMF_MSG_get0_tmpl
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CRMF_CERTTEMPLATE
    signature: OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG
      *crm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CRMF_MSG_get0_tmpl
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:265,1
    - Dst: OSSL_CRMF_OPTIONALVALIDITY_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - crm
    - notBefore
    - notAfter
    argTypes:
    - OSSL_CRMF_MSG*
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 275
    functionName: OSSL_CRMF_MSG_set0_validity
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_CRMF_MSG_get0_tmpl
    - OSSL_CRMF_OPTIONALVALIDITY_new
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_set0_validity(OSSL_CRMF_MSG *crm,\n                                ASN1_TIME
      *notBefore, ASN1_TIME *notAfter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:281,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - crm
    - rid
    argTypes:
    - OSSL_CRMF_MSG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: OSSL_CRMF_MSG_set_certReqId
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CRMF_MSG_set_certReqId(OSSL_CRMF_MSG *crm, int rid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:293,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:294,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:298,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: crmf_asn1_get_int
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get_int64
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int crmf_asn1_get_int(const ASN1_INTEGER *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:311,1
    - Dst: crmf_asn1_get_int
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - crm
    argTypes:
    - OSSL_CRMF_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: OSSL_CRMF_MSG_get_certReqId
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - crmf_asn1_get_int
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CRMF_MSG_get0_tmpl
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:321,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:324,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:328,1
    - Dst: sk_X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:329,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - crm
    - exts
    argTypes:
    - OSSL_CRMF_MSG*
    - X509_EXTENSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: OSSL_CRMF_MSG_set0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_CRMF_MSG_get0_tmpl
    - ERR_raise
    - sk_X509_EXTENSION_num
    - sk_X509_EXTENSION_free
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_set0_extensions(OSSL_CRMF_MSG *crm,\n                                  X509_EXTENSIONS
      *exts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CRMF_MSG_get0_tmpl
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:343,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:346,1
    - Dst: sk_X509_EXTENSION_new_null
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:351,1
    - Dst: sk_X509_EXTENSION_push
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:356,1
    - Dst: sk_X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - crm
    - ext
    argTypes:
    - OSSL_CRMF_MSG*
    - X509_EXTENSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 365
    functionName: OSSL_CRMF_MSG_push0_extension
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_new_null
    - OSSL_CRMF_MSG_get0_tmpl
    - ERR_raise
    - sk_X509_EXTENSION_push
    - sk_X509_EXTENSION_free
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_push0_extension(OSSL_CRMF_MSG *crm,\n                                  X509_EXTENSION
      *ext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:375,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:380,1
    - Dst: EVP_PKEY_get_default_digest_name
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:384,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:385,1
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:388,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 6
    argNames:
    - ps
    - cr
    - pkey
    - digest
    - libctx
    - propq
    argTypes:
    - OSSL_CRMF_POPOSIGNINGKEY*
    - OSSL_CRMF_CERTREQUEST*
    - EVP_PKEY*
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 12
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: create_popo_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_sign_ex
    - ERR_raise
    - EVP_PKEY_get_default_digest_name
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int create_popo_signature(OSSL_CRMF_POPOSIGNINGKEY *ps,\n                                 const
      OSSL_CRMF_CERTREQUEST *cr,\n                                 EVP_PKEY *pkey,
      const EVP_MD *digest,\n                                 OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:402,1
    - Dst: OSSL_CRMF_POPO_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:408,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:414,1
    - Dst: OSSL_CRMF_POPOSIGNINGKEY_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:420,1
    - Dst: create_popo_signature
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:424,1
    - Dst: OSSL_CRMF_POPOSIGNINGKEY_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:426,1
    - Dst: OSSL_CRMF_POPOPRIVKEY_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:434,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:436,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:441,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:446,1
    - Dst: OSSL_CRMF_POPO_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:451,1
    - Dst: OSSL_CRMF_POPO_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:456,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 6
    argNames:
    - meth
    - crm
    - pkey
    - digest
    - libctx
    - propq
    argTypes:
    - int
    - OSSL_CRMF_MSG*
    - EVP_PKEY*
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 394
    functionDepth: 13
    functionLinenumber: 394
    functionLinenumberEnd: 458
    functionName: OSSL_CRMF_MSG_create_popo
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - ASN1_NULL_new
    - OSSL_CRMF_POPOSIGNINGKEY_new
    - OSSL_CRMF_POPOPRIVKEY_new
    - ERR_raise
    - ASN1_INTEGER_new
    - OSSL_CRMF_POPOSIGNINGKEY_free
    - OSSL_CRMF_POPO_free
    - create_popo_signature
    - OSSL_CRMF_POPO_new
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSG_create_popo(int meth, OSSL_CRMF_MSG *crm,\n                              EVP_PKEY
      *pkey, const EVP_MD *digest,\n                              OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sk_OSSL_CRMF_MSG_value
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:471,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:472,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:477,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:484,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:491,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:502,1
    - Dst: X509_PUBKEY_eq
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:505,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:506,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:509,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:513,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:516,1
    - Dst: ASN1_item_verify_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:519,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:520,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:527,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - reqs
    - rid
    - acceptRAVerified
    - libctx
    - propq
    argTypes:
    - OSSL_CRMF_MSGS*
    - int
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 461
    functionDepth: 4
    functionLinenumber: 461
    functionLinenumberEnd: 531
    functionName: OSSL_CRMF_MSGS_verify_popo
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_item_verify_ex
    - ASN1_ITEM_rptr
    - X509_PUBKEY_get0
    - ERR_raise
    - X509_PUBKEY_eq
    - sk_OSSL_CRMF_MSG_value
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs,\n                               int
      rid, int acceptRAVerified,\n                               OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - OSSL_CRMF_CERTTEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: OSSL_CRMF_CERTTEMPLATE_get0_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE
      *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - OSSL_CRMF_CERTTEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: OSSL_CRMF_CERTTEMPLATE_get0_subject
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE
      *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - OSSL_CRMF_CERTTEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: OSSL_CRMF_CERTTEMPLATE_get0_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE
      *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tmpl
    argTypes:
    - OSSL_CRMF_CERTTEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 557
    functionName: OSSL_CRMF_CERTTEMPLATE_get0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_EXTENSIONS
    signature: X509_EXTENSIONS *OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE
      *tmpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - OSSL_CRMF_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: OSSL_CRMF_CERTID_get0_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_NAME
    signature: X509_NAME *OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - OSSL_CRMF_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: OSSL_CRMF_CERTID_get0_serialNumber
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID
      *cid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:583,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:586,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:588,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:591,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:592,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:595,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - tmpl
    - pubkey
    - subject
    - issuer
    - serial
    argTypes:
    - OSSL_CRMF_CERTTEMPLATE*
    - EVP_PKEY*
    - X509_NAME*
    - X509_NAME*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 576
    functionDepth: 13
    functionLinenumber: 576
    functionLinenumberEnd: 598
    functionName: OSSL_CRMF_CERTTEMPLATE_fill
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    - ERR_raise
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - X509_NAME_set
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl,\n                                EVP_PKEY
      *pubkey,\n                                const X509_NAME *subject,\n                                const
      X509_NAME *issuer,\n                                const ASN1_INTEGER *serial)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:628,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:633,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:635,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:636,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:639,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:642,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:643,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:646,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:648,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:650,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:651,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:656,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:658,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:660,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:662,1
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:663,1
    - Dst: constant_time_msb
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:663,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:664,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:665,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:667,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:673,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:673,1
    - Dst: ASN1_TYPE_get_octetstring
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:675,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:676,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:677,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:678,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:686,1
    - Dst: EVP_CIPHER_get_block_size
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:687,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:688,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:690,1
    - Dst: EVP_DecryptInit
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:692,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:693,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:696,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:697,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:703,1
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:705,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:706,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:708,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:709,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:710,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:711,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:712,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c:713,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 4
    argNames:
    - ecert
    - libctx
    - propq
    - pkey
    argTypes:
    - OSSL_CRMF_ENCRYPTEDVALUE*
    - OSSL_LIB_CTX*
    - char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 608
    functionDepth: 6
    functionLinenumber: 608
    functionLinenumberEnd: 715
    functionName: OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_lib.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get_key_length
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - constant_time_eq_s
    - d2i_X509
    - EVP_PKEY_CTX_free
    - constant_time_msb
    - EVP_CIPHER_CTX_free
    - OPENSSL_clear_free
    - EVP_CIPHER_CTX_set_padding
    - EVP_CIPHER_get_iv_length
    - EVP_CIPHER_get_block_size
    - ASN1_TYPE_get_octetstring
    - OBJ_obj2txt
    - EVP_CIPHER_free
    - ERR_clear_error
    - ERR_raise
    - EVP_DecryptFinal
    - EVP_DecryptInit
    - EVP_CIPHER_CTX_new
    - OPENSSL_free
    - constant_time_is_zero
    - EVP_CIPHER_fetch
    - EVP_DecryptUpdate
    - constant_time_is_zero_s
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - EVP_get_cipherbyname
    - ERR_set_mark
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - X509_new_ex
    linkageType: ''
    returnType: X509
    signature: "X509 *OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE
      *ecert,\n                                       OSSL_LIB_CTX *libctx, const
      char *propq,\n                                       EVP_PKEY *pkey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CRMF_PBMPARAMETER_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:48,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:56,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:59,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:62,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:70,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:90,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:95,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:104,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:105,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:112,1
    - Dst: OSSL_CRMF_PBMPARAMETER_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:113,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - libctx
    - slen
    - owfnid
    - itercnt
    - macnid
    argTypes:
    - OSSL_LIB_CTX*
    - size_t
    - int
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 115
    functionName: OSSL_CRMF_pbmp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - ASN1_INTEGER_set
    - X509_ALGOR_set0
    - OSSL_CRMF_PBMPARAMETER_free
    - OPENSSL_malloc
    - ASN1_OCTET_STRING_set
    - OBJ_nid2obj
    - ERR_raise
    - OSSL_CRMF_PBMPARAMETER_new
    - OPENSSL_free
    linkageType: ''
    returnType: OSSL_CRMF_PBMPARAMETER
    signature: "OSSL_CRMF_PBMPARAMETER *OSSL_CRMF_pbmp_new(OSSL_LIB_CTX *libctx, size_t
      slen,\n                                           int owfnid, size_t itercnt,\n
      \                                          int macnid)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:147,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:150,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:158,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:160,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:164,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:168,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:171,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:174,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:176,1
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:181,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:187,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:189,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:191,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:200,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:202,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:203,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:204,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:205,1
    - Dst: EVP_Q_mac
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:208,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:215,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:216,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:217,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:224,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:229,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c:230,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 71
    argCount: 9
    argNames:
    - libctx
    - propq
    - pbmp
    - msg
    - msglen
    - sec
    - seclen
    - out
    - outlen
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - OSSL_CRMF_PBMPARAMETER*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 128
    functionDepth: 11
    functionLinenumber: 128
    functionLinenumberEnd: 233
    functionName: OSSL_CRMF_pbm_new
    functionSourceFile: /src/openssl-3.0.15/crypto/crmf/crmf_pbm.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - ASN1_INTEGER_get_int64
    - EVP_Q_mac
    - OBJ_obj2txt
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    - OBJ_obj2nid
    - EVP_MD_CTX_new
    - OBJ_nid2obj
    - OPENSSL_cleanse
    - ERR_raise
    - OPENSSL_free
    - ERR_add_error_data
    - EVP_PBE_find
    - EVP_DigestFinal_ex
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int OSSL_CRMF_pbm_new(OSSL_LIB_CTX *libctx, const char *propq,\n                      const
      OSSL_CRMF_PBMPARAMETER *pbmp,\n                      const unsigned char *msg,
      size_t msglen,\n                      const unsigned char *sec, size_t seclen,\n
      \                     unsigned char **out, size_t *outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256_block_p8
      Src: /src/openssl-3.0.15/crypto/sha/sha_ppc.c:22,1
    - Dst: sha256_block_ppc
      Src: /src/openssl-3.0.15/crypto/sha/sha_ppc.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: sha256_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_ppc.c
    functionUses: 2
    functionsReached:
    - sha256_block_p8
    - sha256_block_ppc
    linkageType: ''
    returnType: void
    signature: void sha256_block_data_order(void *ctx, const void *inp, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_block_p8
      Src: /src/openssl-3.0.15/crypto/sha/sha_ppc.c:31,1
    - Dst: sha512_block_ppc
      Src: /src/openssl-3.0.15/crypto/sha/sha_ppc.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - inp
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_ppc.c
    functionUses: 0
    functionsReached:
    - sha512_block_p8
    - sha512_block_ppc
    linkageType: ''
    returnType: void
    signature: void sha512_block_data_order(void *ctx, const void *inp, size_t len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:47,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:51,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:53,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:56,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:61,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:64,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:68,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:70,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:73,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/sha/sha1dgst.c:77,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - sha1
    - cmd
    - mslen
    - ms
    argTypes:
    - SHA_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 80
    functionName: ossl_sha1_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1dgst.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - SHA1_Update
    - SHA1_Init
    - memset
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: int ossl_sha1_ctrl(SHA_CTX *sha1, int cmd, int mslen, void *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: U64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:80,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:81,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:82,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:83,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:84,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:85,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:86,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: sha512_224_init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int sha512_224_init(SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:98,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:99,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:100,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:101,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:102,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:103,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:104,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: sha512_256_init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int sha512_256_init(SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:116,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:117,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:118,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:119,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:120,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:121,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:122,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: SHA384_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int SHA384_Init(SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:134,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:135,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:136,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:137,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:138,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:139,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:140,1
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: SHA512_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - U64
    linkageType: ''
    returnType: int
    signature: int SHA512_Init(SHA512_CTX *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:163,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:165,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:168,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:191,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 88
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 272
    functionName: SHA512_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - memset
    - sha512_block_data_order
    linkageType: ''
    returnType: int
    signature: int SHA512_Final(unsigned char *md, SHA512_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Final
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA512_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: SHA384_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Final
    linkageType: ''
    returnType: int
    signature: int SHA384_Final(unsigned char *md, SHA512_CTX *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: U64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:288,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:299,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:302,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:304,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:312,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:313,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:317,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - c
    - _data
    - len
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 325
    functionName: SHA512_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - sha512_block_data_order
    - U64
    - memcpy
    linkageType: ''
    returnType: int
    signature: int SHA512_Update(SHA512_CTX *c, const void *_data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: SHA384_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Update
    linkageType: ''
    returnType: int
    signature: int SHA384_Update(SHA512_CTX *c, const void *data, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:336,1
    - Dst: sha512_block_data_order
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - SHA512_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: SHA512_Transform
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached:
    - sha512_block_data_order
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA512_Transform(SHA512_CTX *c, const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: ROTR
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: PULL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: PULL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: PULL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: ROTR
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: ROTR
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: PULL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: ROTR
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: __pull64be
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SHA_LONG64
    signature: SHA_LONG64 __pull64be(const void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: __pull64be
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SHA_LONG64
    signature: SHA_LONG64 __pull64be(const void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: PULL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: B
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(x,j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: PULL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    functionName: ROTR
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR(x,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: Sigma0
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: Sigma1
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: sigma0
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: sigma1
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: Ch
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: Maj
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:512,1
    - Dst: Sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:517,1
    - Dst: Ch
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:517,1
    - Dst: Sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:519,1
    - Dst: Maj
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:519,1
    - Dst: sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:523,1
    - Dst: sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:524,1
    - Dst: Sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:530,1
    - Dst: Ch
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:530,1
    - Dst: Sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:532,1
    - Dst: Maj
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 546
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - sigma0
    - sigma1
    - Ch
    - PULL64
    - Sigma0
    - Maj
    - Sigma1
    linkageType: ''
    returnType: void
    signature: "void sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:573,1
    - Dst: Sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:575,1
    - Dst: Ch
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:575,1
    - Dst: Sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:576,1
    - Dst: Maj
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:576,1
    - Dst: sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:589,1
    - Dst: sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:591,1
    - Dst: Sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:594,1
    - Dst: Ch
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:594,1
    - Dst: Sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:595,1
    - Dst: Maj
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 617
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - sigma0
    - sigma1
    - Ch
    - PULL64
    - Sigma0
    - Maj
    - Sigma1
    linkageType: ''
    returnType: void
    signature: "void sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: ROUND_00_15
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_00_15(i,a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - j
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: ROUND_16_80
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_16_80(i,j,a,b,c,d,e,f,g,h,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:652,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:654,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:656,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:658,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:660,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:662,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:664,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:666,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:668,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:670,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:672,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:674,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:676,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:678,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:680,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:682,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:684,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:685,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:686,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:687,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:688,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:689,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:690,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:691,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:692,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:693,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:694,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:695,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:696,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:697,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:698,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:699,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:700,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:701,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:702,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:703,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:704,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:705,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:706,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:707,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:708,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:709,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:710,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:711,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:712,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:713,1
    - Dst: PULL64
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:714,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:715,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:719,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:720,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:721,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:722,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:723,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:724,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:725,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:726,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:727,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:728,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:729,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:730,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:731,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:732,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:733,1
    - Dst: ROUND_16_80
      Src: /src/openssl-3.0.15/crypto/sha/sha512.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 102
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA512_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 748
    functionName: sha512_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha512.c
    functionUses: 3
    functionsReached:
    - PULL64
    - ROUND_00_15
    - ROUND_16_80
    linkageType: ''
    returnType: void
    signature: "void sha512_block_data_order(SHA512_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - ix
    - ','
    - ia
    - ','
    - ib
    - ','
    - ic
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: Xupdate
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Xupdate(a,ix,ia,ib,ic,id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: HASH_INIT
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int HASH_INIT(SHA_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: F_00_19
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_00_19(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: F_20_39
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_20_39(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: F_40_59
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_40_59(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: F_60_79
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_60_79(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: BODY_00_15
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_00_15(i,a,b,c,d,e,f,xi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xi
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: BODY_16_19
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_16_19(i,a,b,c,d,e,f,xi,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xi
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: BODY_20_31
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_20_31(i,a,b,c,d,e,f,xi,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: BODY_32_39
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_32_39(i,a,b,c,d,e,f,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: BODY_40_59
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_40_59(i,a,b,c,d,e,f,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: BODY_60_79
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_60_79(i,a,b,c,d,e,f,xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 101
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 101
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:161,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:162,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:163,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:163,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:164,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:165,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:165,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:166,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:167,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:167,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:168,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:169,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:169,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:170,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:171,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:171,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:172,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:173,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:173,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:174,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:175,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:175,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:176,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:177,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:177,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:178,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:179,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:179,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:180,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:181,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:181,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:182,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:183,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:183,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:184,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:185,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:185,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:186,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:187,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:187,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:188,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:189,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:189,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:190,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:191,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:191,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:192,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:192,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:196,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:197,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:198,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:199,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:200,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:200,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:201,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:202,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:203,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:203,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:204,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:205,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:206,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:206,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:207,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:208,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:209,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:209,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:210,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:211,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:212,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:212,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:213,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:214,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:215,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:215,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:216,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:217,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:218,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:218,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:219,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:220,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:221,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:221,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:222,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:223,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:224,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:224,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:225,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:226,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:227,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:227,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:228,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:229,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:230,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:230,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:231,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:232,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:233,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:233,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:234,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:235,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:236,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:236,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:237,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:238,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:239,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:239,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:240,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:241,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:242,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:242,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:243,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:243,1
    - Dst: BODY_16_19
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:246,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:246,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:246,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:246,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:246,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:246,1
    - Dst: BODY_16_19
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:247,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:247,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:247,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:247,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:247,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:247,1
    - Dst: BODY_16_19
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:248,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:248,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:248,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:248,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:248,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:248,1
    - Dst: BODY_16_19
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:249,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:249,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:249,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:249,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:249,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:249,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:251,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:251,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:252,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:252,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:253,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:253,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:254,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:254,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:254,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:254,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:254,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:254,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:255,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:255,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:256,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:256,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:257,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:257,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:258,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:258,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:259,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:259,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:260,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:260,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:261,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:261,1
    - Dst: BODY_20_31
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:262,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:262,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:264,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:264,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:265,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:265,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:266,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:266,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:267,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:267,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:267,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:267,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:267,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:268,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:268,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:269,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:269,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:270,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:270,1
    - Dst: BODY_32_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:271,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:271,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:273,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:273,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:274,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:274,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:275,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:275,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:276,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:276,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:276,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:276,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:276,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:277,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:277,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:278,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:278,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:279,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:279,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:280,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:280,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:281,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:281,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:282,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:282,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:283,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:283,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:284,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:284,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:285,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:285,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:286,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:286,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:287,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:287,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:288,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:288,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:289,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:289,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:290,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:290,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:291,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:291,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:292,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:292,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:294,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:294,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:295,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:295,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:296,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:296,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:297,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:297,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:297,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:297,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:297,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:298,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:298,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:299,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:299,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:300,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:300,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:301,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:301,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:302,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:302,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:303,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:303,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:304,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:304,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:305,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:305,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:306,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:306,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:307,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:307,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:308,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:308,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:309,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:309,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:310,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:310,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:311,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:311,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:312,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:312,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:313,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 169
    argCount: 3
    argNames:
    - c
    - p
    - num
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 331
    functionName: HASH_BLOCK_DATA_ORDER
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached:
    - BODY_16_19
    - HOST_c2l
    - BODY_00_15
    - BODY_20_31
    - BODY_40_59
    - BODY_60_79
    - X
    - BODY_32_39
    linkageType: ''
    returnType: void
    signature: void HASH_BLOCK_DATA_ORDER(SHA_CTX *c, const void *p, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: BODY_00_15
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_00_15(xi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: BODY_16_19
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_16_19(xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: BODY_20_39
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_20_39(xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: BODY_40_59
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_40_59(xa,xb,xc,xd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xa
    - ','
    - xb
    - ','
    - xc
    - ','
    - xd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: BODY_60_79
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BODY_60_79(xa,xb,xc,xd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:381,1
    - Dst: BODY_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:383,1
    - Dst: BODY_16_19
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:386,1
    - Dst: BODY_20_39
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:389,1
    - Dst: BODY_40_59
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:393,1
    - Dst: BODY_60_79
      Src: /src/openssl-3.0.15/crypto/sha/sha_local.h:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - c
    - p
    - num
    argTypes:
    - SHA_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 417
    functionName: HASH_BLOCK_DATA_ORDER
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha_local.h
    functionUses: 0
    functionsReached:
    - BODY_16_19
    - HOST_c2l
    - BODY_00_15
    - BODY_40_59
    - BODY_20_39
    - BODY_60_79
    linkageType: ''
    returnType: void
    signature: void HASH_BLOCK_DATA_ORDER(SHA_CTX *c, const void *p, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: ROL32
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL32(a, offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROL32
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:67,1
    - Dst: ROL32
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:68,1
    - Dst: ROL32
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:71,1
    - Dst: ROL32
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - val
    - offset
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: ROL64
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL32
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ROL64(uint64_t val, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:143,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:144,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:145,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:146,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: Theta
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    linkageType: ''
    returnType: void
    signature: void Theta(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:163,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:164,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:165,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:166,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: Rho
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    linkageType: ''
    returnType: void
    signature: void Rho(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 210
    functionName: Pi
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Pi(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: Chi
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Chi(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: Iota
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void Iota(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Theta
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:243,1
    - Dst: Rho
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:244,1
    - Dst: Pi
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:245,1
    - Dst: Chi
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:246,1
    - Dst: Iota
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Rho
    - Chi
    - Pi
    - Theta
    - Iota
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:267,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:276,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:277,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:278,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:279,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:280,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:288,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:289,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:291,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:292,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:294,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:295,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:296,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:297,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:298,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:307,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:308,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:309,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:310,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:324,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:325,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:326,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:327,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:328,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:336,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:337,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:338,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:339,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:340,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:348,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:349,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:350,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:351,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:352,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:360,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:361,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:362,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:363,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 371
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 371
    functionName: Round
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void Round(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Round
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Round
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:394,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:402,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:403,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:404,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:405,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:406,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:443,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:444,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:445,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:446,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:448,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:449,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:450,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:451,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:453,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:454,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:455,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:456,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:458,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:459,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:460,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:461,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:463,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:464,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:465,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:466,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:468,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:469,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:470,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 514
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 514
    functionName: Round
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 1
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void Round(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Round
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 523
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Round
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:539,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:547,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:548,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:549,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:550,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:551,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:554,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:555,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:556,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:557,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:573,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:574,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:575,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:576,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:577,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:593,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:594,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:595,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:596,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:597,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:613,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:614,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:615,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:616,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:617,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:633,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:634,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:635,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:636,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 3
    argNames:
    - R
    - A
    - i
    argTypes:
    - uint64_t[][]
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i < (sizeof(iotas) / sizeof(iotas[0])))
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 652
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 652
    functionName: Round
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 2
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void Round(uint64_t R[5][5], uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Round
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:669,1
    - Dst: Round
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 681
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - Round
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:697,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:706,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:707,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:708,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:709,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:710,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:713,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:714,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:715,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:716,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:724,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:725,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:726,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:727,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:728,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:736,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:737,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:738,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:739,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:740,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:748,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:749,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:750,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:751,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:752,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:760,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:761,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:762,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:763,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:764,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:773,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:774,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:775,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:776,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:777,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:780,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:781,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:782,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:783,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:791,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:792,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:793,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:794,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:795,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:803,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:804,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:805,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:806,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:807,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:815,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:816,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:817,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:818,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:819,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:827,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:828,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:829,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:830,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:831,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:840,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:841,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:842,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:843,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:844,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:847,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:848,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:849,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:850,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:858,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:859,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:860,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:861,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:862,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:870,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:871,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:872,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:873,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:874,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:882,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:883,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:884,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:885,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:886,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:894,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:895,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:896,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:897,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:898,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:907,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:908,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:909,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:910,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:911,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:914,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:915,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:916,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:917,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:925,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:926,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:927,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:928,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:929,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:937,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:938,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:939,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:940,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:941,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:949,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:950,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:951,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:952,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:953,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:961,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:962,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:963,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:964,1
    - Dst: ROL64
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 227
    argCount: 2
    argNames:
    - A
    - i
    argTypes:
    - uint64_t[][]
    - size_t
    assertStmts:
    - condition: (i <= (sizeof(iotas) / sizeof(iotas[0]) - 4))
      pos:
        line_end: 696
        line_start: 696
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 972
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 972
    functionName: FourRounds
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - ROL64
    - assert
    linkageType: ''
    returnType: void
    signature: void FourRounds(uint64_t A[5][5], size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FourRounds
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - A
    argTypes:
    - uint64_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 974
    functionDepth: 3
    functionLinenumber: 974
    functionLinenumberEnd: 981
    functionName: KeccakF1600
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - FourRounds
    linkageType: ''
    returnType: void
    signature: void KeccakF1600(uint64_t A[5][5])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - Ai
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1019
    functionName: BitInterleave
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BitInterleave(uint64_t Ai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - Ai
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1055
    functionName: BitDeinterleave
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BitDeinterleave(uint64_t Ai)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1073,1
    - Dst: BitInterleave
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1083,1
    - Dst: KeccakF1600
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - A
    - inp
    - len
    - r
    argTypes:
    - uint64_t[][]
    - unsigned char*
    - size_t
    - size_t
    assertStmts:
    - condition: (r < (25 * sizeof(A[0][0])) && (r % 8) == 0)
      pos:
        line_end: 1072
        line_start: 1072
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 1090
      start: 1067
    functionDepth: 4
    functionLinenumber: 1067
    functionLinenumberEnd: 1090
    functionName: SHA3_absorb
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - KeccakF1600
    - assert
    - BitInterleave
    linkageType: ''
    returnType: size_t
    signature: "size_t SHA3_absorb(uint64_t A[5][5], const unsigned char *inp, size_t
      len,\n                   size_t r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1101,1
    - Dst: BitDeinterleave
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1105,1
    - Dst: KeccakF1600
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - A
    - out
    - len
    - r
    argTypes:
    - uint64_t[][]
    - unsigned char*
    - size_t
    - size_t
    assertStmts:
    - condition: (r < (25 * sizeof(A[0][0])) && (r % 8) == 0)
      pos:
        line_end: 1100
        line_start: 1100
        source_file: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    constantsTouched: []
    func_position:
      end: 1129
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1129
    functionName: SHA3_squeeze
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - BitDeinterleave
    - KeccakF1600
    - assert
    linkageType: ''
    returnType: void
    signature: void SHA3_squeeze(uint64_t A[5][5], unsigned char *out, size_t len,
      size_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1149,1
    - Dst: SHA3_absorb
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1150,1
    - Dst: SHA3_squeeze
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - inp
    - len
    - out
    - d
    - r
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1144
    functionDepth: 5
    functionLinenumber: 1144
    functionLinenumberEnd: 1152
    functionName: SHA3_sponge
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 0
    functionsReached:
    - SHA3_absorb
    - memset
    - SHA3_squeeze
    linkageType: ''
    returnType: void
    signature: "void SHA3_sponge(const unsigned char *inp, size_t len,\n                 unsigned
      char *out, size_t d, size_t r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_sponge
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1232,1
    - Dst: printf
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1241,1
    - Dst: printf
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1242,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1245,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1246,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/sha/keccak1600.c:1249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1156
    functionDepth: 6
    functionLinenumber: 1156
    functionLinenumberEnd: 1252
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/keccak1600.c
    functionUses: 6
    functionsReached:
    - printf
    - fprintf
    - SHA3_sponge
    - memcmp
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:30,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:32,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:33,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: ossl_sha1
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1_one.c
    functionUses: 2
    functionsReached:
    - SHA1_Final
    - SHA1_Update
    - SHA1_Init
    - OPENSSL_cleanse
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ossl_sha1(const unsigned char *d, size_t n, unsigned
      char *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Q_digest
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 10
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: SHA1
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1_one.c
    functionUses: 2
    functionsReached:
    - EVP_Q_digest
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Q_digest
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 10
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: SHA224
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1_one.c
    functionUses: 0
    functionsReached:
    - EVP_Q_digest
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Q_digest
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 10
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: SHA256
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1_one.c
    functionUses: 0
    functionsReached:
    - EVP_Q_digest
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Q_digest
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 10
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: SHA384
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1_one.c
    functionUses: 0
    functionsReached:
    - EVP_Q_digest
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_Q_digest
      Src: /src/openssl-3.0.15/crypto/sha/sha1_one.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 10
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: SHA512
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha1_one.c
    functionUses: 0
    functionsReached:
    - EVP_Q_digest
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: SHA224_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int SHA224_Init(SHA256_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 54
    functionName: SHA256_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int SHA256_Init(SHA256_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Update
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: SHA224_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Update
    linkageType: ''
    returnType: int
    signature: int SHA224_Update(SHA256_CTX *c, const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Final
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - SHA256_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: SHA224_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 0
    functionsReached:
    - SHA256_Final
    linkageType: ''
    returnType: int
    signature: int SHA224_Final(unsigned char *md, SHA256_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: Sigma0
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: Sigma1
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: sigma0
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: sigma1
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: Ch
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: Maj
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:167,1
    - Dst: Sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:169,1
    - Dst: Ch
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:169,1
    - Dst: Sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:170,1
    - Dst: Maj
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:170,1
    - Dst: sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:183,1
    - Dst: sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:185,1
    - Dst: Sigma1
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:188,1
    - Dst: Ch
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:188,1
    - Dst: Sigma0
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:189,1
    - Dst: Maj
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 210
    functionName: sha256_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - HOST_c2l
    - sigma0
    - sigma1
    - Ch
    - Sigma0
    - Maj
    - Sigma1
    linkageType: ''
    returnType: void
    signature: "void sha256_block_data_order(SHA256_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: ROUND_00_15
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_00_15(i,a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: ROUND_16_63
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_16_63(i,a,b,c,d,e,f,g,h,X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:250,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:252,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:254,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:256,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:258,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:260,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:262,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:264,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:266,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:268,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:270,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:272,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:274,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:276,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:278,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:280,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:286,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:288,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:289,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:291,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:292,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:294,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:295,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:297,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:298,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:300,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:301,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:303,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:304,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:306,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:307,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:309,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:310,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:312,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:313,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:315,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:316,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:318,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:319,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:321,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:322,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:324,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:325,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:327,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:328,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:330,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:331,1
    - Dst: ROUND_00_15
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:333,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:337,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:338,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:339,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:340,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:341,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:342,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:343,1
    - Dst: ROUND_16_63
      Src: /src/openssl-3.0.15/crypto/sha/sha256.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 114
    argCount: 3
    argNames:
    - ctx
    - in
    - num
    argTypes:
    - SHA256_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 357
    functionName: sha256_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha256.c
    functionUses: 2
    functionsReached:
    - ROUND_16_63
    - ROUND_00_15
    - HOST_c2l
    linkageType: ''
    returnType: void
    signature: "void sha256_block_data_order(SHA256_CTX *ctx, const void *in,\n                                    size_t
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - KECCAK1600_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: ossl_sha3_reset
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ossl_sha3_reset(KECCAK1600_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_BLOCKSIZE
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:23,1
    - Dst: ossl_sha3_reset
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - pad
    - bitlen
    argTypes:
    - KECCAK1600_CTX*
    - unsigned char
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: ossl_sha3_init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_BLOCKSIZE
    - ossl_sha3_reset
    linkageType: ''
    returnType: int
    signature: int ossl_sha3_init(KECCAK1600_CTX *ctx, unsigned char pad, size_t bitlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sha3_init
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - pad
    - bitlen
    argTypes:
    - KECCAK1600_CTX*
    - unsigned char
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: ossl_keccak_kmac_init
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha3.c
    functionUses: 0
    functionsReached:
    - ossl_sha3_init
    linkageType: ''
    returnType: int
    signature: int ossl_keccak_kmac_init(KECCAK1600_CTX *ctx, unsigned char pad, size_t
      bitlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:58,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:67,1
    - Dst: SHA3_absorb
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:69,1
    - Dst: SHA3_absorb
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:75,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - _inp
    - len
    argTypes:
    - KECCAK1600_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 85
    functionName: ossl_sha3_update
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_absorb
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ossl_sha3_update(KECCAK1600_CTX *ctx, const void *_inp, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:100,1
    - Dst: SHA3_absorb
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:104,1
    - Dst: SHA3_squeeze
      Src: /src/openssl-3.0.15/crypto/sha/sha3.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - md
    - ctx
    argTypes:
    - unsigned char*
    - KECCAK1600_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: ossl_sha3_final
    functionSourceFile: /src/openssl-3.0.15/crypto/sha/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_absorb
    - memset
    - SHA3_squeeze
    linkageType: ''
    returnType: int
    signature: int ossl_sha3_final(unsigned char *md, KECCAK1600_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEED_encrypt
      Src: /src/openssl-3.0.15/crypto/seed/seed_ecb.c:22,1
    - Dst: SEED_decrypt
      Src: /src/openssl-3.0.15/crypto/seed/seed_ecb.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - SEED_KEY_SCHEDULE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: SEED_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_ecb.c
    functionUses: 0
    functionsReached:
    - SEED_decrypt
    - SEED_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     const SEED_KEY_SCHEDULE *ks, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/seed/seed_ofb.c:23,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: SEED_ofb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/seed/seed_cfb.c:24,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: SEED_cfb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: G_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_FUNC(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 418
    functionName: G_FUNC
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int G_FUNC(unsigned int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:452,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:453,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:454,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:455,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:459,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:460,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:461,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:464,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:465,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:466,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:467,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:468,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:469,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:470,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:471,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:472,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:473,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:474,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:475,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:476,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:477,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:478,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:479,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:480,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:481,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:482,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:483,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:484,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:485,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:486,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:487,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:488,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:489,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:490,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:491,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:496,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:497,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:498,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 2
    argNames:
    - rawkey
    - ks
    argTypes:
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 503
    functionName: SEED_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - char2word
    - KEYUPDATE_TEMP
    - KEYSCHEDULE_UPDATE1
    - KEYSCHEDULE_UPDATE0
    linkageType: ''
    returnType: void
    signature: "void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH],\n                  SEED_KEY_SCHEDULE
      *ks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:512,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:513,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:514,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:515,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:518,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:519,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:520,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:521,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:522,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:523,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:524,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:525,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:526,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:527,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:528,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:529,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:530,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:531,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:532,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:533,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:538,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:539,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:544,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:545,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:546,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 548
    functionName: SEED_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - char2word
    - E_SEED
    - word2char
    linkageType: ''
    returnType: void
    signature: "void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE],\n                  unsigned
      char d[SEED_BLOCK_SIZE],\n                  const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:557,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:558,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:559,1
    - Dst: char2word
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:560,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:563,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:564,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:565,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:566,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:567,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:568,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:569,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:570,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:571,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:572,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:573,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:574,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:575,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:576,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:577,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:578,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:583,1
    - Dst: E_SEED
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:584,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:590,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:591,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:592,1
    - Dst: word2char
      Src: /src/openssl-3.0.15/crypto/seed/seed.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 594
    functionName: SEED_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed.c
    functionUses: 1
    functionsReached:
    - char2word
    - E_SEED
    - word2char
    linkageType: ''
    returnType: void
    signature: "void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE],\n                  unsigned
      char d[SEED_BLOCK_SIZE],\n                  const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/seed/seed_cbc.c:24,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/seed/seed_cbc.c:27,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: SEED_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: char2word
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char2word(c, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: word2char
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word2char(l, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - KC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: KEYSCHEDULE_UPDATE0
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSCHEDULE_UPDATE0(T0, T1, X1, X2, X3, X4, KC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - KC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: KEYSCHEDULE_UPDATE1
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSCHEDULE_UPDATE1(T0, T1, X1, X2, X3, X4, KC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: KEYUPDATE_TEMP
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYUPDATE_TEMP(T0, T1, K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: XOR_SEEDBLOCK
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XOR_SEEDBLOCK(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: MOV_SEEDBLOCK
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOV_SEEDBLOCK(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: CHAR2WORD
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR2WORD(C, I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: WORD2CHAR
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD2CHAR(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - rbase
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: E_SEED
    functionSourceFile: /src/openssl-3.0.15/crypto/seed/seed_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_SEED(T0, T1, X1, X2, X3, X4, rbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(v, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: U32TO8_LITTLE
    functionSourceFile: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U32TO8_LITTLE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: QUARTERROUND
    functionSourceFile: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUARTERROUND(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:49,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:52,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:53,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:54,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:55,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:56,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:57,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:58,1
    - Dst: QUARTERROUND
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:59,1
    - Dst: U32TO8_LITTLE
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - chacha_buf*
    - u32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: chacha20_core
    functionSourceFile: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c
    functionUses: 0
    functionsReached:
    - U32TO8_LITTLE
    - QUARTERROUND
    - memcpy
    linkageType: ''
    returnType: void
    signature: void chacha20_core(chacha_buf *output, const u32 input[16])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:80,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:80,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:81,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:82,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:83,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:83,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:84,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:85,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:86,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:86,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:87,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:88,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:89,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:89,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:90,1
    - Dst: ossl_toascii
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:91,1
    - Dst: chacha20_core
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c:112,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[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 128
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/openssl-3.0.15/crypto/chacha/chacha_enc.c
    functionUses: 3
    functionsReached:
    - ossl_toascii
    - chacha20_core
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20_ctr32_vsx
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_ppc.c:31,1
    - Dst: ChaCha20_ctr32_vmx
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_ppc.c:33,1
    - Dst: ChaCha20_ctr32_int
      Src: /src/openssl-3.0.15/crypto/chacha/chacha_ppc.c:34,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[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: ChaCha20_ctr32
    functionSourceFile: /src/openssl-3.0.15/crypto/chacha/chacha_ppc.c
    functionUses: 3
    functionsReached:
    - ChaCha20_ctr32_vmx
    - ChaCha20_ctr32_vsx
    - ChaCha20_ctr32_int
    linkageType: ''
    returnType: void
    signature: "void 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:29,1
    - Dst: ossl_ffc_named_group_set
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:34,1
    - Dst: ossl_ffc_named_group_get_uid
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - libctx
    - group
    argTypes:
    - OSSL_LIB_CTX*
    - DH_NAMED_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: dh_param_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_group_params.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_named_group_set
    - ossl_dh_new_ex
    - ossl_ffc_named_group_get_uid
    linkageType: ''
    returnType: DH
    signature: DH *dh_param_init(OSSL_LIB_CTX *libctx, const DH_NAMED_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_uid_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:44,1
    - Dst: dh_param_init
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - libctx
    - nid
    argTypes:
    - OSSL_LIB_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: ossl_dh_new_by_nid_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_group_params.c
    functionUses: 0
    functionsReached:
    - dh_param_init
    - ERR_raise
    - ossl_ffc_uid_to_dh_named_group
    linkageType: ''
    returnType: DH
    signature: DH *ossl_dh_new_by_nid_ex(OSSL_LIB_CTX *libctx, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_new_by_nid_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: DH_new_by_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_group_params.c
    functionUses: 0
    functionsReached:
    - ossl_dh_new_by_nid_ex
    linkageType: ''
    returnType: DH
    signature: DH *DH_new_by_nid(int nid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_numbers_to_dh_named_group
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:70,1
    - Dst: ossl_ffc_named_group_get_q
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:74,1
    - Dst: ossl_ffc_named_group_get_uid
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:76,1
    - Dst: ossl_ffc_named_group_get_keylength
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:77,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: ossl_dh_cache_named_group
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_group_params.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_named_group_get_keylength
    - ossl_ffc_numbers_to_dh_named_group
    - ossl_ffc_named_group_get_q
    - ossl_ffc_named_group_get_uid
    linkageType: ''
    returnType: void
    signature: void ossl_dh_cache_named_group(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_group_params.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: ossl_dh_is_named_safe_prime_group
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_group_params.c
    functionUses: 1
    functionsReached:
    - DH_get_nid
    linkageType: ''
    returnType: int
    signature: int ossl_dh_is_named_safe_prime_group(const DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: DH_get_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_group_params.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_get_nid(const DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DHxparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:41,1
    - Dst: d2i_DHparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkey
    - pp
    - length
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: d2i_dhp
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_DHxparams
    - d2i_DHparams
    linkageType: ''
    returnType: DH
    signature: "DH *d2i_dhp(const EVP_PKEY *pkey, const unsigned char **pp,\n                   long
      length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DHxparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:51,1
    - Dst: i2d_DHparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pkey
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - DH*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: i2d_dhp
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DHparams
    - i2d_DHxparams
    linkageType: ''
    returnType: int
    signature: int i2d_dhp(const EVP_PKEY *pkey, const DH *a, unsigned char **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: int_dh_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: void int_dh_free(EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:72,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:77,1
    - Dst: d2i_dhp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:86,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:91,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:97,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:101,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:102,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:106,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 109
    functionName: dh_pub_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_INTEGER
    - ASN1_INTEGER_to_BN
    - DH_free
    - ERR_raise
    - d2i_dhp
    - X509_ALGOR_get0
    - ASN1_INTEGER_free
    - EVP_PKEY_assign
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int dh_pub_decode(EVP_PKEY *pkey, const X509_PUBKEY *pubkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:124,1
    - Dst: i2d_dhp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:129,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:134,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:138,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:140,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:143,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:147,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:152,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 156
    functionName: dh_pub_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - OBJ_nid2obj
    - ERR_raise
    - ASN1_STRING_new
    - X509_PUBKEY_set0_param
    - i2d_dhp
    - OPENSSL_free
    - BN_to_ASN1_INTEGER
    - ASN1_INTEGER_free
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_key_from_pkcs8
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:167,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: dh_priv_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_dh_key_from_pkcs8
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int dh_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:187,1
    - Dst: i2d_dhp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:191,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:193,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:202,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:206,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:208,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:211,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:215,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:215,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:217,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:223,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 225
    functionName: dh_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_set0
    - ASN1_STRING_free
    - OBJ_nid2obj
    - ERR_raise
    - ASN1_STRING_new
    - ASN1_STRING_clear_free
    - OPENSSL_clear_free
    - i2d_dhp
    - BN_to_ASN1_INTEGER
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_dhp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:232,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: dh_param_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - d2i_dhp
    linkageType: ''
    returnType: int
    signature: "int dh_param_decode(EVP_PKEY *pkey,\n                           const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_dhp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: dh_param_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_dhp
    linkageType: ''
    returnType: int
    signature: int dh_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:273,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:274,1
    - Dst: DH_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:274,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:278,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:280,1
    - Dst: ossl_ffc_params_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:283,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:287,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:288,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:296,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 4
    argNames:
    - bp
    - x
    - indent
    - ptype
    argTypes:
    - BIO*
    - DH*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 298
    functionName: do_dh_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_bits
    - ASN1_bn_print
    - ossl_ffc_params_print
    - ERR_raise
    - BIO_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int do_dh_print(BIO *bp, const DH *x, int indent, int ptype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_size
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: int_dh_size
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_size
    linkageType: ''
    returnType: int
    signature: int int_dh_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: dh_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_bits
    linkageType: ''
    returnType: int
    signature: int dh_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_security_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: dh_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_security_bits
    linkageType: ''
    returnType: int
    signature: int dh_security_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: dh_cmp_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_cmp
    linkageType: ''
    returnType: int
    signature: int dh_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - to
    - from
    - is_x942
    argTypes:
    - DH*
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: int_dh_param_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_copy
    linkageType: ''
    returnType: int
    signature: int int_dh_param_copy(DH *to, const DH *from, int is_x942)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:336,1
    - Dst: int_dh_param_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:339,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: DHparams_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - DH_free
    - int_dh_param_copy
    linkageType: ''
    returnType: DH
    signature: DH *DHparams_dup(const DH *dh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:349,1
    - Dst: int_dh_param_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: dh_copy_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - int_dh_param_copy
    linkageType: ''
    returnType: int
    signature: int dh_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: dh_missing_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dh_missing_parameters(const EVP_PKEY *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dh_cmp_parameters
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:366,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: dh_pub_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - dh_cmp_parameters
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int dh_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: dh_param_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "int dh_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: dh_public_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "int dh_public_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: dh_private_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: "int dh_private_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n
      \                           ASN1_PCTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: DHparams_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - do_dh_print
    linkageType: ''
    returnType: int
    signature: int DHparams_print(BIO *bp, const DH *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:403,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:403,1
    - Dst: evp_pkey_get0_DH_int
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:405,1
    - Dst: ossl_dh_buf2key
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:408,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:410,1
    - Dst: ossl_dh_key2buf
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 417
    functionName: dh_pkey_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - evp_pkey_is_legacy
    - ossl_dh_buf2key
    - evp_pkey_get0_DH_int
    - EVP_PKEY_get0_DH
    - ossl_dh_key2buf
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int dh_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: dhx_pkey_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dhx_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:433,1
    - Dst: DH_check_pub_key_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 438
    functionName: dh_pkey_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_check_pub_key_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int dh_pkey_public_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: dh_pkey_param_check
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_check_ex
    linkageType: ''
    returnType: int
    signature: int dh_pkey_param_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: dh_pkey_dirty_cnt
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dh_pkey_dirty_cnt(const EVP_PKEY *pkey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DH_get0_p
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:458,1
    - Dst: DH_get0_g
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:458,1
    - Dst: DH_get0_q
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:458,1
    - Dst: DH_get_length
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:459,1
    - Dst: DH_get0_pub_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:460,1
    - Dst: DH_get0_priv_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:461,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:469,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:472,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:473,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:476,1
    - Dst: OSSL_PARAM_BLD_push_long
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:481,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:486,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:491,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:497,1
    - Dst: importer
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:501,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:503,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:505,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 5
    argNames:
    - from
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 507
    functionName: dh_pkey_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - DH_get0_p
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - DH_get_length
    - OSSL_PARAM_BLD_free
    - DH_get0_priv_key
    - DH_get0_pub_key
    - importer
    - DH_get0_q
    - DH_get0_g
    - OSSL_PARAM_BLD_push_long
    linkageType: ''
    returnType: int
    signature: "int dh_pkey_export_to(const EVP_PKEY *from, void *to_keydata,\n                             OSSL_FUNC_keymgmt_import_fn
      *importer,\n                             OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:513,1
    - Dst: ossl_dh_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:514,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:517,1
    - Dst: DH_clear_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:520,1
    - Dst: DH_set_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:521,1
    - Dst: ossl_dh_params_fromdata
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:523,1
    - Dst: ossl_dh_key_fromdata
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:524,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:525,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - params
    - vpctx
    - type
    argTypes:
    - OSSL_PARAM[]
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 530
    functionName: dh_pkey_import_from_type
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_dh_params_fromdata
    - ossl_dh_key_fromdata
    - ERR_raise
    - DH_clear_flags
    - ossl_dh_new_ex
    - DH_set_flags
    - DH_free
    - EVP_PKEY_assign
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: "int dh_pkey_import_from_type(const OSSL_PARAM params[], void *vpctx,\n
      \                                   int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dh_pkey_import_from_type
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 4
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: dh_pkey_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - dh_pkey_import_from_type
    linkageType: ''
    returnType: int
    signature: int dh_pkey_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dh_pkey_import_from_type
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: dhx_pkey_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - dh_pkey_import_from_type
    linkageType: ''
    returnType: int
    signature: int dhx_pkey_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_dup
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:549,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:554,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_ameth.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 558
    functionName: dh_pkey_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - DH_free
    - ossl_dh_dup
    linkageType: ''
    returnType: int
    signature: int dh_pkey_copy(EVP_PKEY *to, EVP_PKEY *from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:22,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: DH_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_meth_new(const char *name, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: DH_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void DH_meth_free(DH_METHOD *dhm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:48,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:51,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: DH_meth_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_meth_dup(const DH_METHOD *dhm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: DH_meth_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DH_meth_get0_name(const DH_METHOD *dhm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_meth.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dhm
    - name
    argTypes:
    - DH_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: DH_meth_set1_name
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DH_meth_set1_name(DH_METHOD *dhm, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: DH_meth_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_get_flags(const DH_METHOD *dhm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhm
    - flags
    argTypes:
    - DH_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: DH_meth_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_flags(DH_METHOD *dhm, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: DH_meth_get0_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *DH_meth_get0_app_data(const DH_METHOD *dhm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dhm
    - app_data
    argTypes:
    - DH_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: DH_meth_set0_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: DH_meth_set_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: "(*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned
      char *key, const BIGNUM *pub_key, DH *dh)"
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DH_meth_get_compute_key(const DH_METHOD *dhm))\n        (unsigned
      char *key, const BIGNUM *pub_key, DH *dh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: DH_meth_set_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DH_meth_set_compute_key(DH_METHOD *dhm,\n        int (*compute_key)
      (unsigned char *key, const BIGNUM *pub_key, DH *dh))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    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/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: DH_meth_set_bn_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: DH_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: DH_meth_set_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "(*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH
      *, int, int, BN_GENCB *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DH_meth_get_generate_params(const DH_METHOD *dhm))\n        (DH
      *, int, int, BN_GENCB *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dhm
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: DH_meth_set_generate_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DH_meth_set_generate_params(DH_METHOD *dhm,\n        int (*generate_params)
      (DH *, int, int, BN_GENCB *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: make_dh
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_rfc5114.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_dh(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:39,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:41,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:44,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:48,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:50,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:53,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:55,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:57,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:58,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:60,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 10
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - cek_alg
    - ukm
    - ukmlen
    - md
    - libctx
    - propq
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - char*
    - unsigned char*
    - size_t
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 63
    functionName: ossl_dh_kdf_X9_42_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - EVP_KDF_fetch
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_free
    - EVP_MD_get0_name
    - EVP_KDF_CTX_free
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: int
    signature: "int ossl_dh_kdf_X9_42_asn1(unsigned char *out, size_t outlen,\n                           const
      unsigned char *Z, size_t Zlen,\n                           const char *cek_alg,\n
      \                          const unsigned char *ukm, size_t ukmlen,\n                           const
      EVP_MD *md,\n                           OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:72,1
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:73,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:75,1
    - Dst: ossl_dh_kdf_X9_42_asn1
      Src: /src/openssl-3.0.15/crypto/dh/dh_kdf.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: DH_KDF_X9_42
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_kdf.c
    functionUses: 0
    functionsReached:
    - ossl_dh_kdf_X9_42_asn1
    - ossl_provider_libctx
    - OBJ_obj2txt
    - EVP_MD_get0_provider
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_FIPS186_2_generate
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:45,1
    - Dst: ossl_ffc_params_FIPS186_4_generate
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - dh
    - type
    - pbits
    - qbits
    - cb
    argTypes:
    - DH*
    - int
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: ossl_dh_generate_ffc_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_gen.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_FIPS186_4_generate
    - ossl_ffc_params_FIPS186_2_generate
    linkageType: ''
    returnType: int
    signature: "int ossl_dh_generate_ffc_parameters(DH *dh, int type, int pbits, int
      qbits,\n                                    BN_GENCB *cb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - pbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: ossl_dh_get_named_group_uid_from_size
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_gen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_dh_get_named_group_uid_from_size(int pbits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_get_named_group_uid_from_size
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:98,1
    - Dst: ossl_dh_new_by_nid_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:103,1
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:105,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - libctx
    - ret
    - prime_len
    argTypes:
    - OSSL_LIB_CTX*
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: dh_gen_named_group
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_gen.c
    functionUses: 0
    functionsReached:
    - ossl_dh_get_named_group_uid_from_size
    - ossl_ffc_params_copy
    - ossl_dh_new_by_nid_ex
    - DH_free
    linkageType: ''
    returnType: int
    signature: int dh_gen_named_group(OSSL_LIB_CTX *libctx, DH *ret, int prime_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dh_gen_named_group
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:120,1
    - Dst: DH*::meth::generate_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:123,1
    - Dst: dh_builtin_genparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ret
    - prime_len
    - generator
    - cb
    argTypes:
    - DH*
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: DH_generate_parameters_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_gen.c
    functionUses: 0
    functionsReached:
    - dh_builtin_genparams
    - DH*::meth::generate_params
    - dh_gen_named_group
    linkageType: ''
    returnType: int
    signature: "int DH_generate_parameters_ex(DH *ret, int prime_len, int generator,\n
      \                             BN_GENCB *cb)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:168,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:172,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:175,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:176,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:177,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:182,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:188,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:192,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:194,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:198,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:200,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:209,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:211,1
    - Dst: BN_generate_prime_ex2
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:216,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:218,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:220,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:226,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:230,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_gen.c:231,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 76
    argCount: 4
    argNames:
    - ret
    - prime_len
    - generator
    - cb
    argTypes:
    - DH*
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 233
    functionName: dh_builtin_genparams
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_gen.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_generate_prime_ex2
    - BN_CTX_free
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_GENCB_call
    - BN_CTX_new_ex
    - BN_set_word
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int dh_builtin_genparams(DH *ret, int prime_len, int generator,\n
      \                               BN_GENCB *cb)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:47,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:48,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:54,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:59,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:63,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:67,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:73,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:78,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:80,1
    - Dst: DH*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:88,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:93,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:94,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:95,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:95,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:97,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:102,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:102,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:104,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:105,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:106,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 108
    functionName: ossl_dh_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_set_flags
    - BN_copy
    - BN_cmp
    - BN_value_one
    - BN_num_bytes
    - BN_bn2binpad
    - BN_clear
    - BN_CTX_get
    - DH*::meth::bn_mod_exp
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: int ossl_dh_compute_key(unsigned char *key, const BIGNUM *pub_key,
      DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_compute_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:121,1
    - Dst: DH*::meth::compute_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:123,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:137,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 142
    functionName: DH_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - DH*::meth::compute_key
    - memmove
    - ossl_dh_compute_key
    - memset
    linkageType: ''
    returnType: int
    signature: int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_compute_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:150,1
    - Dst: DH*::meth::compute_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:152,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:156,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:159,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - key
    - pub_key
    - dh
    argTypes:
    - unsigned char*
    - BIGNUM*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 9
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: DH_compute_key_padded
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - DH*::meth::compute_key
    - memmove
    - ossl_dh_compute_key
    - BN_num_bytes
    - memset
    linkageType: ''
    returnType: int
    signature: int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key,
      DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: DH_OpenSSL
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: DH_get_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *DH_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:193,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: dh_bn_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp_mont
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: dh_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dh_init(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: dh_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int dh_finish(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: DH_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_set_default_method(const DH_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:219,1
    - Dst: DH*::meth::generate_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: DH_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - DH*::meth::generate_key
    - generate_key
    linkageType: ''
    returnType: int
    signature: int DH_generate_key(DH *dh)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:229,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:245,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:249,1
    - Dst: DH*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:252,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - dh
    - priv_key
    - pub_key
    argTypes:
    - BN_CTX*
    - DH*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 225
    functionDepth: 8
    functionLinenumber: 225
    functionLinenumberEnd: 259
    functionName: ossl_dh_generate_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_clear_free
    - BN_with_flags
    - DH*::meth::bn_mod_exp
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: "int ossl_dh_generate_public_key(BN_CTX *ctx, const DH *dh,\n                                const
      BIGNUM *priv_key, BIGNUM *pub_key)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:272,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:277,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:278,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:282,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:283,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:287,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:292,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:301,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:309,1
    - Dst: ossl_ifc_ffc_compute_security_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:311,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:311,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:314,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:317,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:328,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:330,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:331,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:338,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:339,1
    - Dst: BN_clear_bit
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:341,1
    - Dst: ossl_ffc_params_simple_validate
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:348,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:356,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:357,1
    - Dst: ossl_dh_generate_public_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:365,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:374,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:377,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:379,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:380,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 86
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 261
    functionDepth: 9
    functionLinenumber: 261
    functionLinenumberEnd: 382
    functionName: generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 2
    functionsReached:
    - BN_is_word
    - BN_new
    - BN_num_bits
    - ossl_dh_generate_public_key
    - ERR_raise
    - BN_free
    - BN_CTX_new_ex
    - ossl_ifc_ffc_compute_security_bits
    - BN_is_bit_set
    - DH_get_nid
    - BN_secure_new
    - ossl_ffc_params_simple_validate
    - BN_priv_rand_ex
    - BN_CTX_free
    - ossl_ffc_generate_private_key
    - BN_clear_bit
    linkageType: ''
    returnType: int
    signature: int generate_key(DH *dh)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:391,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:393,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:394,1
    - Dst: ossl_dh_check_pub_key_partial
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:399,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:403,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:407,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - dh
    - buf
    - len
    argTypes:
    - DH*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 410
    functionName: ossl_dh_buf2key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 1
    functionsReached:
    - ossl_dh_check_pub_key_partial
    - BN_bin2bn
    - DH_set0_key
    - ERR_raise
    - BN_free
    - BN_num_bytes
    - DH_get0_pqg
    linkageType: ''
    returnType: int
    signature: int ossl_dh_buf2key(DH *dh, const unsigned char *buf, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DH_get0_pqg
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:420,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:421,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:423,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:424,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:425,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:433,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:437,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:444,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:446,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_key.c:447,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - dh
    - pbuf_out
    - size
    - alloc
    argTypes:
    - DH*
    - unsigned char**
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 453
    functionName: ossl_dh_key2buf
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_key.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - DH_get0_key
    - BN_num_bytes
    - BN_bn2binpad
    - DH_get0_pqg
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_dh_key2buf(const DH *dh, unsigned char **pbuf_out, size_t
      size,\n                       int alloc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: pkey_dh_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_dh_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:79,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:80,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: pkey_dh_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void pkey_dh_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pkey_dh_init
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:90,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:103,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 115
    functionName: pkey_dh_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    - pkey_dh_init
    - OPENSSL_memdup
    linkageType: ''
    returnType: int
    signature: int pkey_dh_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:197,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:210,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 222
    functionName: pkey_dh_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int pkey_dh_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:227,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:229,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:230,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:232,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:236,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:242,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:247,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:253,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:255,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:256,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:258,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:260,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_subprime_len
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:261,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:263,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:265,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_type
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:266,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:268,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:270,1
    - Dst: EVP_PKEY_CTX_set_dh_pad
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:271,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 224
    functionDepth: 5
    functionLinenumber: 224
    functionLinenumberEnd: 274
    functionName: pkey_dh_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - EVP_PKEY_CTX_set_dh_pad
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - ERR_raise
    - EVP_PKEY_CTX_set_dh_paramgen_type
    - EVP_PKEY_CTX_set_dh_paramgen_subprime_len
    - strcmp
    - atoi
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: "int pkey_dh_ctrl_str(EVP_PKEY_CTX *ctx,\n                            const
      char *type, const char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:287,1
    - Dst: ossl_ffc_set_digest
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:299,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:299,1
    - Dst: ossl_ffc_params_FIPS186_2_generate
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:303,1
    - Dst: ossl_ffc_params_FIPS186_4_generate
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:311,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - libctx
    - dctx
    - pcb
    argTypes:
    - OSSL_LIB_CTX*
    - DH_PKEY_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 276
    functionDepth: 5
    functionLinenumber: 276
    functionLinenumberEnd: 320
    functionName: ffc_params_generate
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - ossl_ffc_set_digest
    - ossl_ffc_params_FIPS186_2_generate
    - EVP_MD_get0_name
    - ossl_ffc_params_FIPS186_4_generate
    - DH_free
    linkageType: ''
    returnType: DH
    signature: "DH *ffc_params_generate(OSSL_LIB_CTX *libctx, DH_PKEY_CTX *dctx,\n
      \                              BN_GENCB *pcb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:338,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:340,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:345,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:348,1
    - Dst: ffc_params_generate
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:354,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:355,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:358,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:361,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:363,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:366,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:368,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:370,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:372,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 322
    functionDepth: 7
    functionLinenumber: 322
    functionLinenumberEnd: 374
    functionName: pkey_dh_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - ffc_params_generate
    - EVP_PKEY_assign_DH
    - DH_generate_parameters_ex
    - DH_new_by_nid
    - BN_GENCB_free
    - BN_GENCB_new
    - DH_free
    - EVP_PKEY_assign
    - evp_pkey_set_cb_translate
    linkageType: ''
    returnType: int
    signature: "int pkey_dh_paramgen(EVP_PKEY_CTX *ctx,\n                            EVP_PKEY
      *pkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:382,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:386,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:388,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:391,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:393,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:395,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 376
    functionDepth: 6
    functionLinenumber: 376
    functionLinenumberEnd: 396
    functionName: pkey_dh_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - DH_new
    - EVP_PKEY_copy_parameters
    - DH_generate_key
    - DH_new_by_nid
    - ERR_raise
    - EVP_PKEY_get0_DH
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int pkey_dh_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:408,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:411,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:412,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:414,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:420,1
    - Dst: DH_compute_key_padded
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:424,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:426,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:446,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:448,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:449,1
    - Dst: DH_compute_key_padded
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:452,1
    - Dst: DH_KDF_X9_42
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:454,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c:460,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 398
    functionDepth: 10
    functionLinenumber: 398
    functionLinenumberEnd: 464
    functionName: pkey_dh_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - DH_compute_key
    - ERR_raise
    - DH_KDF_X9_42
    - DH_compute_key_padded
    - OPENSSL_clear_free
    - DH_size
    - EVP_PKEY_get0_DH
    linkageType: ''
    returnType: int
    signature: "int pkey_dh_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                          size_t
      *keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: ossl_dh_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_dh_pkey_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: ossl_dhx_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_dhx_pkey_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/dh/dh_err.c:69,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/dh/dh_err.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: ossl_err_load_DH_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_DH_strings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:31,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:33,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:35,1
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:39,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:41,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:42,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:45,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_depr.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - prime_len
    - generator
    - cb_arg
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: DH_generate_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_depr.c
    functionUses: 0
    functionsReached:
    - DH_new
    - BN_GENCB_set_old
    - DH_generate_parameters_ex
    - BN_GENCB_free
    - BN_GENCB_new
    - DH_free
    linkageType: ''
    returnType: DH
    signature: "DH *DH_generate_parameters(int prime_len, int generator,\n                           void
      (*callback) (int, int, void *), void *cb_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_METHOD*::finish
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:41,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:43,1
    - Dst: DH_METHOD*::init
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dh
    - meth
    argTypes:
    - DH*
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: DH_set_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - DH_METHOD*::finish
    - DH_METHOD*::init
    linkageType: ''
    returnType: int
    signature: int DH_set_method(DH *dh, const DH_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ossl_dh_get_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *ossl_dh_get_method(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dh_new_intern
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: DH_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 6
    functionsReached:
    - dh_new_intern
    linkageType: ''
    returnType: DH
    signature: DH *DH_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dh_new_intern
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: DH_new_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - dh_new_intern
    linkageType: ''
    returnType: DH
    signature: DH *DH_new_method(ENGINE *engine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dh_new_intern
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: ossl_dh_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - dh_new_intern
    linkageType: ''
    returnType: DH
    signature: DH *ossl_dh_new_ex(OSSL_LIB_CTX *libctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:79,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:87,1
    - Dst: DH_get_default_method
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:92,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:97,1
    - Dst: ENGINE_get_default_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:102,1
    - Dst: ENGINE_get_DH
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:106,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:115,1
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:119,1
    - Dst: DH*::meth::init
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:122,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - engine
    - libctx
    argTypes:
    - ENGINE*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 131
    functionName: dh_new_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 3
    functionsReached:
    - ENGINE_init
    - DH_get_default_method
    - ENGINE_get_default_DH
    - ossl_ffc_params_init
    - ERR_raise
    - OPENSSL_zalloc
    - ENGINE_get_DH
    - OPENSSL_free
    - CRYPTO_new_ex_data
    - DH*::meth::init
    - CRYPTO_THREAD_lock_new
    - DH_free
    linkageType: ''
    returnType: DH
    signature: DH *dh_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:140,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:141,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:144,1
    - Dst: DH*::meth::finish
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:147,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:150,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:152,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:155,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:157,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:158,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:159,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: DH_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 12
    functionsReached:
    - CRYPTO_DOWN_REF
    - ENGINE_finish
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - BN_clear_free
    - ossl_ffc_params_cleanup
    - CRYPTO_free_ex_data
    - DH*::meth::finish
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void DH_free(DH *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:167,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:170,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: DH_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int DH_up_ref(DH *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - libctx
    argTypes:
    - DH*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: ossl_dh_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_dh_set0_libctx(DH *d, OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - idx
    - arg
    argTypes:
    - DH*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: DH_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int DH_set_ex_data(DH *d, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: DH_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *DH_get_ex_data(const DH *d, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: DH_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int DH_bits(const DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: DH_size
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: int DH_size(const DH *dh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:211,1
    - Dst: BN_security_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:217,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: DH_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: int DH_security_bits(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_get0_pqg
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: DH_get0_pqg
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached:
    - ossl_ffc_params_get0_pqg
    linkageType: ''
    returnType: void
    signature: "void DH_get0_pqg(const DH *dh,\n                 const BIGNUM **p,
      const BIGNUM **q, const BIGNUM **g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:237,1
    - Dst: ossl_dh_cache_named_group
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - dh
    - p
    - q
    - g
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: DH_set0_pqg
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_set0_pqg
    - ossl_dh_cache_named_group
    linkageType: ''
    returnType: int
    signature: int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: DH_get_length
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long DH_get_length(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dh
    - length
    argTypes:
    - DH*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: DH_set_length
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_set_length(DH *dh, long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dh
    - pub_key
    - priv_key
    argTypes:
    - DH*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: DH_get0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM
      **priv_key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:266,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_lib.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - dh
    - pub_key
    - priv_key
    argTypes:
    - DH*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: DH_set0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: DH_get0_p
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_p(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: DH_get0_q
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_q(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: DH_get0_g
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_g(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: DH_get0_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_priv_key(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: DH_get0_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DH_get0_pub_key(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: DH_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_clear_flags(DH *dh, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: DH_test_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DH_test_flags(const DH *dh, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dh
    - flags
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: DH_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_set_flags(DH *dh, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: DH_get0_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *DH_get0_engine(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: ossl_dh_get0_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFC_PARAMS
    signature: FFC_PARAMS *ossl_dh_get0_params(DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: ossl_dh_get0_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_dh_get0_nid(const DH *dh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:38,1
    - Dst: ossl_ffc_params_fromdata
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:42,1
    - Dst: ossl_dh_cache_named_group
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dh
    - params
    argTypes:
    - DH*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 46
    functionName: dh_ffc_params_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 0
    functionsReached:
    - ossl_dh_cache_named_group
    - ossl_ffc_params_fromdata
    - ossl_dh_get0_params
    linkageType: ''
    returnType: int
    signature: int dh_ffc_params_fromdata(DH *dh, const OSSL_PARAM params[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dh_ffc_params_fromdata
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:53,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:57,1
    - Dst: OSSL_PARAM_get_long
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:59,1
    - Dst: DH_set_length
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - dh
    - params
    argTypes:
    - DH*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 7
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: ossl_dh_params_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 1
    functionsReached:
    - DH_set_length
    - dh_ffc_params_fromdata
    - OSSL_PARAM_get_long
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int ossl_dh_params_fromdata(DH *dh, const OSSL_PARAM params[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:74,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:75,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:79,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:83,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:86,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:92,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - dh
    - params
    - include_private
    argTypes:
    - DH*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 95
    functionName: ossl_dh_key_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_get_BN
    - DH_set0_key
    - BN_free
    - OSSL_PARAM_locate_const
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int ossl_dh_key_fromdata(DH *dh, const OSSL_PARAM params[], int include_private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_length
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:99,1
    - Dst: ossl_ffc_params_todata
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:101,1
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:101,1
    - Dst: ossl_param_build_set_long
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dh
    - bld
    - params
    argTypes:
    - DH*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 7
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: ossl_dh_params_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_todata
    - ossl_param_build_set_long
    - DH_get_length
    - ossl_dh_get0_params
    linkageType: ''
    returnType: int
    signature: int ossl_dh_params_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:117,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:120,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - dh
    - bld
    - params
    - include_private
    argTypes:
    - DH*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: ossl_dh_key_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 0
    functionsReached:
    - ossl_param_build_set_bn
    - DH_get0_key
    linkageType: ''
    returnType: int
    signature: "int ossl_dh_key_todata(DH *dh, OSSL_PARAM_BLD *bld, OSSL_PARAM params[],\n
      \                      int include_private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_get_method
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:132,1
    - Dst: DH_OpenSSL
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: ossl_dh_is_foreign
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 1
    functionsReached:
    - ossl_dh_get_method
    - DH_OpenSSL
    linkageType: ''
    returnType: int
    signature: int ossl_dh_is_foreign(const DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - BIGNUM**
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: dh_bn_dup_check
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 0
    functionsReached:
    - BN_dup
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline dh_bn_dup_check(BIGNUM **out, const BIGNUM *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dh_is_foreign
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:150,1
    - Dst: ossl_dh_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:153,1
    - Dst: DH_get_length
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:156,1
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:158,1
    - Dst: dh_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:165,1
    - Dst: dh_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:170,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:174,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:182,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 2
    argNames:
    - dh
    - selection
    argTypes:
    - DH*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 184
    functionName: ossl_dh_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 1
    functionsReached:
    - CRYPTO_dup_ex_data
    - dh_bn_dup_check
    - ossl_dh_is_foreign
    - DH_get_length
    - ossl_ffc_params_copy
    - ossl_dh_new_ex
    - DH_free
    linkageType: ''
    returnType: DH
    signature: DH *ossl_dh_dup(const DH *dh, int selection)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:200,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:203,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:207,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:213,1
    - Dst: d2i_DHparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:215,1
    - Dst: d2i_DHxparams
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:218,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:227,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:228,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:229,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:230,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:233,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:236,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:242,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:244,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_backend.c:247,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - p8inf
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 249
    functionName: ossl_dh_key_from_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_backend.c
    functionUses: 1
    functionsReached:
    - d2i_ASN1_INTEGER
    - ASN1_INTEGER_to_BN
    - OBJ_obj2nid
    - DH_generate_key
    - d2i_DHxparams
    - ERR_raise
    - d2i_DHparams
    - DH_set0_key
    - ASN1_STRING_clear_free
    - X509_ALGOR_get0
    - PKCS8_pkey_get0
    - BN_secure_new
    - BN_clear_free
    - DH_free
    linkageType: ''
    returnType: DH
    signature: "DH *ossl_dh_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,\n                           OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:29,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:34,1
    - Dst: DH_clear_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:40,1
    - Dst: DH_set_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:41,1
    - Dst: ossl_dh_cache_named_group
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: dh_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_asn1.c
    functionUses: 0
    functionsReached:
    - DH_new
    - ossl_dh_cache_named_group
    - DH_clear_flags
    - DH_set_flags
    - DH_free
    linkageType: ''
    returnType: int
    signature: "int dh_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:99,1
    - Dst: d2i_int_dhx
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:102,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:104,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:109,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:114,1
    - Dst: ossl_ffc_params_set0_j
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:115,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:119,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:120,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:123,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:125,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:129,1
    - Dst: DH_clear_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:130,1
    - Dst: DH_set_flags
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - DH**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 133
    functionName: d2i_DHxparams
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_asn1.c
    functionUses: 3
    functionsReached:
    - DH_new
    - d2i_int_dhx
    - ASN1_BIT_STRING_free
    - BN_get_word
    - ossl_ffc_params_set_validate_params
    - ossl_ffc_params_set0_j
    - BN_free
    - OPENSSL_free
    - DH_clear_flags
    - DH_set_flags
    - DH_set0_pqg
    - DH_free
    linkageType: ''
    returnType: DH
    signature: DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_get0_pqg
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:145,1
    - Dst: ossl_ffc_params_get_validate_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:148,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:154,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:157,1
    - Dst: i2d_int_dhx
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:163,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_asn1.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - dh
    - pp
    argTypes:
    - DH*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 167
    functionName: i2d_DHxparams
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_asn1.c
    functionUses: 1
    functionsReached:
    - ossl_ffc_params_get0_pqg
    - BN_new
    - ossl_ffc_params_get_validate_params
    - BN_free
    - BN_set_word
    - i2d_int_dhx
    linkageType: ''
    returnType: int
    signature: int i2d_DHxparams(const DH *dh, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_prn.c:27,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/dh/dh_prn.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_prn.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/dh/dh_prn.c:31,1
    - Dst: DHparams_print
      Src: /src/openssl-3.0.15/crypto/dh/dh_prn.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_prn.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: DHparams_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - DHparams_print
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int DHparams_print_fp(FILE *fp, const DH *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:38,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:40,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: DH_check_params_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 0
    functionsReached:
    - DH_check_params
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DH_check_params_ex(const DH *dh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:57,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: DH_check_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - ossl_ffc_params_FIPS186_4_validate
    - DH_get_nid
    linkageType: ''
    returnType: int
    signature: int DH_check_params(const DH *dh, int *ret)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:76,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:79,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:80,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:84,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:86,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:87,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:88,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:90,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:90,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:92,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:94,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:96,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:101,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:102,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 104
    functionName: DH_check_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - BN_sub_word
    - BN_is_one
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_copy
    - BN_is_negative
    - BN_CTX_get
    - BN_cmp
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int DH_check_params(const DH *dh, int *ret)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DH_check
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:119,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:125,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:129,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:133,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 138
    functionName: DH_check_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - DH_check
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DH_check_ex(const DH *dh)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:144,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:149,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:156,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:157,1
    - Dst: DH_check_params
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:162,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:165,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:168,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:169,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:170,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:175,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:182,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:182,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:184,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:188,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:190,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:193,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:199,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:201,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:204,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:208,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:214,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:216,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:224,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:225,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 75
    argCount: 2
    argNames:
    - dh
    - ret
    argTypes:
    - DH*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 228
    functionName: DH_check
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - BN_div
    - BN_is_one
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_ucmp
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_value_one
    - DH_get_nid
    - BN_rshift1
    - DH_check_params
    - BN_mod_exp
    - BN_CTX_get
    - BN_cmp
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int DH_check(const DH *dh, int *ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DH_check_pub_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:240,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dh
    - pub_key
    argTypes:
    - DH*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: DH_check_pub_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - DH_check_pub_key
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:253,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:254,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:259,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dh
    - pub_key
    - ret
    argTypes:
    - DH*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: DH_check_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - BN_ucmp
    - BN_num_bits
    - ERR_raise
    - ossl_ffc_validate_public_key
    linkageType: ''
    returnType: int
    signature: int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_validate_public_key_partial
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - dh
    - pub_key
    - ret
    argTypes:
    - DH*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: ossl_dh_check_pub_key_partial
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 1
    functionsReached:
    - ossl_ffc_validate_public_key_partial
    linkageType: ''
    returnType: int
    signature: int ossl_dh_check_pub_key_partial(const DH *dh, const BIGNUM *pub_key,
      int *ret)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:284,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:299,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:300,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:301,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:303,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:313,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:314,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:314,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:316,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:319,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:324,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - dh
    - priv_key
    - ret
    argTypes:
    - DH*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 326
    functionName: ossl_dh_check_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_lshift
    - ossl_ffc_validate_private_key
    - BN_num_bits
    - BN_free
    - BN_value_one
    - DH_get_nid
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int
      *ret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:344,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:347,1
    - Dst: ossl_dh_generate_public_key
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:352,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:355,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:357,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dh/dh_check.c:358,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - dh
    argTypes:
    - DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 332
    functionDepth: 9
    functionLinenumber: 332
    functionLinenumberEnd: 360
    functionName: ossl_dh_check_pairwise
    functionSourceFile: /src/openssl-3.0.15/crypto/dh/dh_check.c
    functionUses: 0
    functionsReached:
    - BN_new
    - ossl_dh_generate_public_key
    - BN_free
    - BN_CTX_new_ex
    - BN_CTX_free
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_dh_check_pairwise(const DH *dh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_ppc.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - res
    - in
    argTypes:
    - unsigned long[]
    - unsigned long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: ecp_nistz256_to_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_ppc.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    linkageType: ''
    returnType: void
    signature: void ecp_nistz256_to_mont(unsigned long res[4], const unsigned long
      in[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_ppc.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - res
    - in
    argTypes:
    - unsigned long[]
    - unsigned long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ecp_nistz256_from_mont
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_ppc.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    linkageType: ''
    returnType: void
    signature: void ecp_nistz256_from_mont(unsigned long res[4], const unsigned long
      in[4])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:51,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: pkey_ec_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_ec_init(EVP_PKEY_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ec_init
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:65,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:70,1
    - Dst: EC_KEY_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:77,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 92
    functionName: pkey_ec_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_dup
    - pkey_ec_init
    - OPENSSL_memdup
    - EC_KEY_dup
    linkageType: ''
    returnType: int
    signature: int pkey_ec_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:98,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:100,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: pkey_ec_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    - OPENSSL_free
    - EC_GROUP_free
    linkageType: ''
    returnType: void
    signature: void pkey_ec_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:117,1
    - Dst: ECDSA_size
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:118,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:130,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:134,1
    - Dst: ECDSA_sign
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:136,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 106
    functionDepth: 9
    functionLinenumber: 106
    functionLinenumberEnd: 142
    functionName: pkey_ec_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - ECDSA_size
    - EVP_MD_get_type
    - EVP_PKEY_get0_EC_KEY
    - ECDSA_sign
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\n
      \                       const unsigned char *tbs, size_t tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:155,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:158,1
    - Dst: ECDSA_verify
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:162,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 9
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: pkey_ec_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - ECDSA_verify
    - EVP_MD_get_type
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_verify(EVP_PKEY_CTX *ctx,\n                          const
      unsigned char *sig, size_t siglen,\n                          const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:178,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:183,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:188,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:192,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:196,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:199,1
    - Dst: ECDH_compute_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 213
    functionName: pkey_ec_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_public_key
    - EC_GROUP_get_degree
    - ERR_raise
    - ECDH_compute_key
    - EVP_PKEY_get0_EC_KEY
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ec_derive
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:223,1
    - Dst: pkey_ec_derive
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:230,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:233,1
    - Dst: pkey_ec_derive
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:236,1
    - Dst: ossl_ecdh_kdf_X9_63
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:239,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: pkey_ec_kdf_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - pkey_ec_derive
    - ERR_raise
    - OPENSSL_clear_free
    - ossl_ecdh_kdf_X9_63
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_kdf_derive(EVP_PKEY_CTX *ctx,\n                              unsigned
      char *key, size_t *keylen)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:259,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:268,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:271,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:280,1
    - Dst: EC_KEY_get_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:281,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:287,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:293,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:294,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:300,1
    - Dst: EC_KEY_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:303,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:308,1
    - Dst: EC_KEY_clear_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:310,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:312,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:345,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:358,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:359,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:360,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:361,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:362,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:363,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:364,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:365,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:366,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:367,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:368,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:369,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 99
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 251
    functionDepth: 9
    functionLinenumber: 251
    functionLinenumberEnd: 390
    functionName: pkey_ec_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_dup
    - BN_is_one
    - EC_GROUP_free
    - EC_KEY_free
    - evp_pkey_is_provided
    - EC_KEY_clear_flags
    - EC_GROUP_set_asn1_flag
    - ERR_raise
    - EVP_MD_get_type
    - OPENSSL_free
    - EC_KEY_set_flags
    - EC_KEY_get_flags
    - EVP_PKEY_get0_EC_KEY
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:395,1
    - Dst: EC_curve_nist2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:397,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:399,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:401,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:403,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:406,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:407,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:409,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:411,1
    - Dst: EVP_PKEY_CTX_set_ec_param_enc
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:415,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:416,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:418,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:419,1
    - Dst: EVP_PKEY_CTX_set_ecdh_kdf_md
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:422,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:423,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:425,1
    - Dst: EVP_PKEY_CTX_set_ecdh_cofactor_mode
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:426,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 430
    functionName: pkey_ec_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - ERR_raise
    - EVP_PKEY_CTX_set_ecdh_kdf_md
    - EC_curve_nist2nid
    - strcmp
    - OBJ_ln2nid
    - atoi
    - EVP_PKEY_CTX_set_ecdh_cofactor_mode
    - EVP_PKEY_CTX_set_ec_param_enc
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: "int pkey_ec_ctrl_str(EVP_PKEY_CTX *ctx,\n                            const
      char *type, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:439,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:442,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:445,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:446,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:446,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 449
    functionName: pkey_ec_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_group
    - EC_KEY_new
    - EC_KEY_free
    - EVP_PKEY_assign_EC_KEY
    - ERR_raise
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int pkey_ec_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:458,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:461,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:464,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:464,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:465,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:470,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:472,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c:474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 475
    functionName: pkey_ec_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_group
    - EVP_PKEY_copy_parameters
    - EC_KEY_new
    - EC_KEY_free
    - EVP_PKEY_assign_EC_KEY
    - ERR_raise
    - EC_KEY_generate_key
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int pkey_ec_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: ossl_ec_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_ec_pkey_method(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:196,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:197,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:199,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:202,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:208,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:213,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:219,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:225,1
    - Dst: X9_62_CHARACTERISTIC_TWO_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:233,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:237,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:241,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:246,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:250,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:251,1
    - Dst: EC_GROUP_get_trinomial_basis
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:258,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:261,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:263,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:267,1
    - Dst: EC_GROUP_get_pentanomial_basis
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:273,1
    - Dst: X9_62_PENTANOMIAL_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:278,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:289,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:298,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 2
    argNames:
    - group
    - field
    argTypes:
    - EC_GROUP*
    - X9_62_FIELDID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 300
    functionName: ec_asn1_group2fieldid
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    - EC_GROUP_get_pentanomial_basis
    - EC_GROUP_get_trinomial_basis
    - EC_GROUP_get_field_type
    - BN_new
    - ASN1_INTEGER_set
    - EC_GROUP_get_degree
    - OBJ_nid2obj
    - X9_62_PENTANOMIAL_new
    - ASN1_NULL_new
    - ERR_raise
    - ASN1_INTEGER_new
    - BN_to_ASN1_INTEGER
    - EC_GROUP_get_basis_type
    - ASN1_TYPE_free
    - X9_62_CHARACTERISTIC_TWO_new
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int ec_asn1_group2fieldid(const EC_GROUP *group, X9_62_FIELDID *field)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:319,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:319,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:320,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:325,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:326,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:335,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:336,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:337,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:338,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:341,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:342,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:343,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:348,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:349,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:350,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:357,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:358,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:363,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:365,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:369,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:376,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:377,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:378,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:379,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 2
    argNames:
    - group
    - curve
    argTypes:
    - EC_GROUP*
    - X9_62_CURVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 381
    functionName: ec_asn1_group2curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_free
    - EC_GROUP_get_curve
    - ASN1_BIT_STRING_set
    - BN_new
    - EC_GROUP_get_degree
    - OPENSSL_malloc
    - ASN1_OCTET_STRING_set
    - ASN1_BIT_STRING_new
    - ERR_raise
    - BN_free
    - OPENSSL_free
    - BN_bn2binpad
    linkageType: ''
    returnType: int
    signature: int ec_asn1_group2curve(const EC_GROUP *group, X9_62_CURVE *curve)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ECPARAMETERS_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:395,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:396,1
    - Dst: ec_asn1_group2fieldid
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:406,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:407,1
    - Dst: ec_asn1_group2curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:412,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:413,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:418,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:419,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:423,1
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:425,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:427,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:430,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:431,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:432,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:435,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:438,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:440,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:443,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:446,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:451,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:453,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:456,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:465,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - ECPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 467
    functionName: EC_GROUP_get_ecparameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_generator
    - ec_asn1_group2curve
    - ec_asn1_group2fieldid
    - ECPARAMETERS_new
    - EC_GROUP_get_point_conversion_form
    - EC_GROUP_get0_cofactor
    - EC_POINT_point2buf
    - ERR_raise
    - ECPARAMETERS_free
    - OPENSSL_free
    - ASN1_OCTET_STRING_new
    - BN_to_ASN1_INTEGER
    - EC_GROUP_get0_order
    - ASN1_STRING_set0
    linkageType: ''
    returnType: ECPARAMETERS
    signature: "ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group,\n                                        ECPARAMETERS
      *params)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ECPKPARAMETERS_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:476,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:477,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:482,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:485,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:488,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:492,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:494,1
    - Dst: OBJ_length
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:496,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:497,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:498,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:511,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:516,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - ECPKPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 520
    functionName: EC_GROUP_get_ecpkparameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ECPKPARAMETERS_free
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_get_curve_name
    - OBJ_nid2obj
    - ECPARAMETERS_free
    - ERR_raise
    - ECPKPARAMETERS_new
    - EC_GROUP_get_ecparameters
    - OBJ_length
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: ECPKPARAMETERS
    signature: "ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group,\n
      \                                           ECPKPARAMETERS *params)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:535,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:548,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:551,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:553,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:556,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:558,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:563,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:567,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:578,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:582,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:583,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:588,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:594,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:598,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:601,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:606,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:608,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:610,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:617,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:624,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:629,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:631,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:633,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:635,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:637,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:640,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:644,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:649,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:656,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:659,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:661,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:665,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:665,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:666,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:670,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:672,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:677,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:679,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 131
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 681
    functionName: EC_GROUP_new_from_ecparameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_bin2bn
    - ASN1_INTEGER_to_BN
    - OBJ_obj2nid
    - BN_num_bits
    - ASN1_INTEGER_get
    - ERR_raise
    - EC_GROUP_new_curve_GF2m
    - EC_GROUP_new_curve_GFp
    - BN_is_negative
    - BN_set_bit
    - BN_is_zero
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:856,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:862,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:863,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:864,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:867,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:870,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:872,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:875,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECPKPARAMETERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 850
    functionDepth: 5
    functionLinenumber: 850
    functionLinenumberEnd: 885
    functionName: EC_GROUP_new_from_ecpkparameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - EC_GROUP_new_from_ecparameters
    - EC_GROUP_set_asn1_flag
    - ERR_raise
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECPKPARAMETERS
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:895,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:896,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:900,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:901,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:909,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_GROUP**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 889
    functionDepth: 6
    functionLinenumber: 889
    functionLinenumberEnd: 916
    functionName: d2i_ECPKParameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_GROUP_new_from_ecpkparameters
    - d2i_ECPKPARAMETERS
    - ECPKPARAMETERS_free
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *d2i_ECPKParameters(EC_GROUP **a, const unsigned char **in,
      long len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:921,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:923,1
    - Dst: i2d_ECPKPARAMETERS
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:926,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:927,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:928,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_GROUP*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 918
    functionDepth: 6
    functionLinenumber: 918
    functionLinenumberEnd: 933
    functionName: i2d_ECPKParameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_ecpkparameters
    - i2d_ECPKPARAMETERS
    - ERR_raise
    - ECPKPARAMETERS_free
    linkageType: ''
    returnType: int
    signature: int i2d_ECPKParameters(const EC_GROUP *a, unsigned char **out)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: d2i_EC_PRIVATEKEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:943,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:947,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:948,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:955,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:956,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:963,1
    - Dst: EC_KEY_oct2priv
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:971,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:971,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:972,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:975,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:979,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:980,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:982,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:983,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:985,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:993,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:994,1
    - Dst: EC_KEY_oct2key
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:995,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:996,1
    - Dst: EC_KEY*::group::meth::keygenpub
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1001,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1009,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1016,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1017,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 937
    functionDepth: 6
    functionLinenumber: 937
    functionLinenumberEnd: 1019
    functionName: d2i_ECPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - d2i_EC_PRIVATEKEY
    - ASN1_STRING_length
    - EC_KEY_new
    - EC_PRIVATEKEY_free
    - EC_GROUP_free
    - EC_KEY_free
    - EC_GROUP_get_curve_name
    - EC_KEY_oct2key
    - EC_POINT_new
    - ERR_raise
    - EC_POINT_clear_free
    - EC_KEY_set_flags
    - EC_GROUP_new_from_ecpkparameters
    - EC_KEY_oct2priv
    - EC_KEY*::group::meth::keygenpub
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const unsigned char **in, long
      len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1031,1
    - Dst: EC_PRIVATEKEY_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1035,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1036,1
    - Dst: EC_KEY_priv2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1042,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1045,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1049,1
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1054,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1056,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1062,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1064,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1068,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1071,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1077,1
    - Dst: i2d_EC_PRIVATEKEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1081,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1082,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1087,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1088,1
    - Dst: EC_PRIVATEKEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1089,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1021
    functionDepth: 6
    functionLinenumber: 1021
    functionLinenumberEnd: 1091
    functionName: i2d_ECPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_KEY_priv2buf
    - EC_PRIVATEKEY_free
    - EC_GROUP_get_ecpkparameters
    - EC_KEY_key2buf
    - EC_PRIVATEKEY_new
    - ERR_raise
    - OPENSSL_clear_free
    - OPENSSL_free
    - ASN1_BIT_STRING_new
    - i2d_EC_PRIVATEKEY
    - ASN1_STRING_set0
    linkageType: ''
    returnType: int
    signature: int i2d_ECPrivateKey(const EC_KEY *a, unsigned char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1096,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1093
    functionDepth: 7
    functionLinenumber: 1093
    functionLinenumberEnd: 1100
    functionName: i2d_ECParameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - i2d_ECPKParameters
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int i2d_ECParameters(const EC_KEY *a, unsigned char **out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1107,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1113,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1119,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1121,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1127,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1102
    functionDepth: 7
    functionLinenumber: 1102
    functionLinenumberEnd: 1136
    functionName: d2i_ECParameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EC_KEY_free
    - EC_GROUP_get_curve_name
    - ERR_raise
    - EC_KEY_set_flags
    - d2i_ECPKParameters
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *d2i_ECParameters(EC_KEY **a, const unsigned char **in, long
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1146,1
    - Dst: EC_KEY_oct2key
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - EC_KEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1157
    functionName: o2i_ECPublicKey
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - EC_KEY_oct2key
    - ERR_raise
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *o2i_ECPublicKey(EC_KEY **a, const unsigned char **in, long
      len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1165,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1169,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1178,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1185,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1187,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1195
    functionName: i2o_ECPublicKey
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ERR_raise
    - EC_POINT_point2oct
    linkageType: ''
    returnType: int
    signature: int i2o_ECPublicKey(const EC_KEY *a, unsigned char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1204,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1208
    functionName: ECDSA_SIG_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *ECDSA_SIG_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1214,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1215,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1217
    functionName: ECDSA_SIG_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - BN_clear_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ECDSA_SIG_free(ECDSA_SIG *sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1228,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1233,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1235,1
    - Dst: ossl_decode_der_dsa_sig
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1237,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - psig
    - ppin
    - len
    argTypes:
    - ECDSA_SIG**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1219
    functionDepth: 4
    functionLinenumber: 1219
    functionLinenumberEnd: 1245
    functionName: d2i_ECDSA_SIG
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached:
    - ECDSA_SIG_free
    - BN_new
    - ossl_decode_der_dsa_sig
    - ECDSA_SIG_new
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **psig, const unsigned char **ppin,
      long len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_init_null
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1254,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1257,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1258,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1259,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1263,1
    - Dst: ossl_encode_der_dsa_sig
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1267,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1268,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1269,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1270,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1271,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1279,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - sig
    - ppout
    argTypes:
    - ECDSA_SIG*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1247
    functionDepth: 6
    functionLinenumber: 1247
    functionLinenumberEnd: 1286
    functionName: i2d_ECDSA_SIG
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 2
    functionsReached:
    - WPACKET_finish
    - WPACKET_init_static_len
    - BUF_MEM_new
    - WPACKET_init_null
    - WPACKET_get_total_written
    - WPACKET_init_len
    - BUF_MEM_free
    - WPACKET_cleanup
    - ossl_encode_der_dsa_sig
    linkageType: ''
    returnType: int
    signature: int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **ppout)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - ECDSA_SIG*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1294
    functionName: ECDSA_SIG_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const
      BIGNUM **ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1299
    functionName: ECDSA_SIG_get0_r
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1304
    functionName: ECDSA_SIG_get0_s
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1310,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - ECDSA_SIG*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1306
    functionDepth: 3
    functionLinenumber: 1306
    functionLinenumberEnd: 1315
    functionName: ECDSA_SIG_set0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1326,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1330,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/ec/ec_asn1.c:1335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ec
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1317
    functionDepth: 7
    functionLinenumber: 1317
    functionLinenumberEnd: 1340
    functionName: ECDSA_size
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_asn1.c
    functionUses: 1
    functionsReached:
    - EC_KEY_get0_group
    - i2d_ECDSA_SIG
    - EC_GROUP_get0_order
    linkageType: ''
    returnType: int
    signature: int ECDSA_size(const EC_KEY *ec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:49,1
    - Dst: BN_nist_mod_func
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:51,1
    - Dst: EC_GFp_nist_method
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:52,1
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:54,1
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:57,1
    - Dst: ossl_bn_get_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:57,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:61,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - p
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 67
    functionName: EC_GROUP_new_curve_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_cvt.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_free
    - ossl_bn_get_libctx
    - EC_GFp_nist_method
    - EC_GROUP_set_curve
    - BN_nist_mod_func
    - ossl_ec_group_new_ex
    - EC_GFp_mont_method
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,\n
      \                                const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GF2m_simple_method
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:76,1
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:78,1
    - Dst: ossl_bn_get_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:78,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:82,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_cvt.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - a
    - b
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: EC_GROUP_new_curve_GF2m
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_cvt.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_free
    - ossl_bn_get_libctx
    - EC_GROUP_set_curve
    - ossl_ec_group_new_ex
    - EC_GF2m_simple_method
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a,\n
      \                                 const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_key_new_method_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: EC_KEY_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 4
    functionsReached:
    - ossl_ec_key_new_method_int
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_key_new_method_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: EC_KEY_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_new_method_int
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new_ex(OSSL_LIB_CTX *ctx, const char *propq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:47,1
    - Dst: EC_GROUP_new_by_curve_name_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:50,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:52,1
    - Dst: EC_KEY*::meth::set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:56,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - propq
    - nid
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: EC_KEY_new_by_curve_name_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::meth::set_group
    - EC_GROUP_new_by_curve_name_ex
    - EC_KEY_new_ex
    - EC_KEY_free
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *EC_KEY_new_by_curve_name_ex(OSSL_LIB_CTX *ctx, const char
      *propq,\n                                    int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: EC_KEY_new_by_curve_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new_by_curve_name_ex
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new_by_curve_name(int nid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:77,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:78,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:81,1
    - Dst: EC_KEY*::meth::finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:84,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:87,1
    - Dst: EC_KEY*::group::meth::keyfinish
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:91,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:94,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:96,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:97,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:98,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:100,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 103
    functionName: EC_KEY_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 10
    functionsReached:
    - CRYPTO_DOWN_REF
    - EC_GROUP_free
    - ENGINE_finish
    - EC_KEY*::group::meth::keyfinish
    - REF_ASSERT_ISNT
    - CRYPTO_THREAD_lock_free
    - OPENSSL_free
    - REF_PRINT_COUNT
    - BN_clear_free
    - OPENSSL_clear_free
    - CRYPTO_free_ex_data
    - EC_POINT_free
    - EC_KEY*::meth::finish
    linkageType: ''
    returnType: void
    signature: void EC_KEY_free(EC_KEY *r)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:108,1
    - Dst: EC_KEY*::meth::finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:113,1
    - Dst: EC_KEY*::group::meth::keyfinish
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:115,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:117,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:126,1
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:127,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:131,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:136,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:137,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:140,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:146,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:150,1
    - Dst: EC_KEY*::group::meth::keycopy
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:153,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:165,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:172,1
    - Dst: EC_KEY*::meth::copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:179,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_KEY*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 185
    functionName: EC_KEY_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - CRYPTO_dup_ex_data
    - EC_KEY*::meth::copy
    - BN_new
    - EC_GROUP_free
    - ENGINE_finish
    - EC_GROUP_copy
    - EC_POINT_new
    - ERR_raise
    - BN_copy
    - EC_KEY*::group::meth::keycopy
    - EC_POINT_copy
    - ossl_ec_group_new_ex
    - EC_KEY*::meth::finish
    - EC_POINT_free
    - EC_KEY*::group::meth::keyfinish
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_key_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ec_key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: EC_KEY_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - ossl_ec_key_dup
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_dup(const EC_KEY *ec_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:196,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:199,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: EC_KEY_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int EC_KEY_up_ref(EC_KEY *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: EC_KEY_get0_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:212,1
    - Dst: EC_KEY*::meth::keygen
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:218,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: EC_KEY_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::keygen
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_KEY_generate_key(EC_KEY *eckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::group::meth::keygen
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: ossl_ec_key_gen
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::keygen
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_gen(EC_KEY *eckey)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:259,1
    - Dst: EC_KEY_get_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:260,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:266,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:278,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:293,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:294,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:294,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:297,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:303,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:305,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:308,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:315,1
    - Dst: OSSL_SELF_TEST_get_callback
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:334,1
    - Dst: ecdsa_keygen_pairwise_test
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:335,1
    - Dst: ossl_set_error_state
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:340,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:341,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:343,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:346,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:347,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:348,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:349,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 2
    argNames:
    - eckey
    - pairwise_test
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 351
    functionName: ec_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_CTX_secure_new_ex
    - EC_POINT_new
    - EC_GROUP_get0_order
    - OSSL_SELF_TEST_get_callback
    - EC_POINT_set_to_infinity
    - BN_secure_new
    - BN_clear_free
    - EC_POINT_free
    - ecdsa_keygen_pairwise_test
    - BN_sub
    - BN_new
    - BN_free
    - BN_value_one
    - EC_KEY_get_flags
    - EC_POINT_mul
    - BN_clear
    - ossl_set_error_state
    - BN_priv_rand_range_ex
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ec_generate_key(EC_KEY *eckey, int pairwise_test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_generate_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 8
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: ossl_ec_key_simple_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ec_generate_key
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_simple_generate_key(EC_KEY *eckey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:361,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:370,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 378
    functionName: ossl_ec_key_simple_generate_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new_ex
    - BN_CTX_free
    - EC_POINT_mul
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_simple_generate_public_key(EC_KEY *eckey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:383,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:388,1
    - Dst: EC_KEY*::group::meth::keycheck
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: EC_KEY_check_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::keycheck
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_KEY_check_key(const EC_KEY *eckey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:409,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:410,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:411,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:415,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:418,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:419,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:420,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:421,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:422,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:426,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:427,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:427,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:433,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - BN_CTX*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 435
    functionName: ec_key_public_range_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_field_type
    - EC_GROUP_get_degree
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_is_negative
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ec_key_public_range_check(BN_CTX *ctx, const EC_KEY *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:444,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:449,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:450,1
    - Dst: ec_key_public_range_check
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:455,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:456,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:461,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - eckey
    - ctx
    argTypes:
    - EC_KEY*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: ossl_ec_key_public_check_quick
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - ERR_raise
    - ec_key_public_range_check
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_public_check_quick(const EC_KEY *eckey, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_key_public_check_quick
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:478,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:481,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:486,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:487,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:491,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:492,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:495,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:496,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - eckey
    - ctx
    argTypes:
    - EC_KEY*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 503
    functionName: ossl_ec_key_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - EC_POINT_new
    - ERR_raise
    - EC_POINT_mul
    - ossl_ec_key_public_check_quick
    - EC_POINT_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_public_check(const EC_KEY *eckey, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:513,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:516,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:516,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:517,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: ossl_ec_key_private_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_cmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_private_check(const EC_KEY *eckey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:538,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:542,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:547,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:548,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:551,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:552,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - eckey
    - ctx
    argTypes:
    - EC_KEY*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: ossl_ec_key_pairwise_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_new
    - ERR_raise
    - EC_POINT_cmp
    - EC_POINT_mul
    - EC_POINT_free
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_pairwise_check(const EC_KEY *eckey, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:578,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:581,1
    - Dst: ossl_ec_key_public_check
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:584,1
    - Dst: ossl_ec_key_private_check
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:588,1
    - Dst: ossl_ec_key_pairwise_check
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:589,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 572
    functionDepth: 6
    functionLinenumber: 572
    functionLinenumberEnd: 596
    functionName: ossl_ec_key_simple_check_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_pairwise_check
    - ERR_raise
    - ossl_ec_key_public_check
    - BN_CTX_new_ex
    - ossl_ec_key_private_check
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_simple_check_key(const EC_KEY *eckey)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:607,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:610,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:614,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:615,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:620,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:621,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:625,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:627,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:634,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:634,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:635,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:640,1
    - Dst: EC_KEY_check_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:643,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:649,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:650,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:651,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 3
    argNames:
    - key
    - x
    - y
    argTypes:
    - EC_KEY*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 654
    functionName: EC_KEY_set_public_key_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - BN_CTX_free
    - EC_POINT_set_affine_coordinates
    - EC_POINT_new
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - EC_KEY_set_public_key
    - EC_KEY_check_key
    - BN_CTX_new_ex
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x,\n
      \                                            BIGNUM *y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 659
    functionName: ossl_ec_key_get_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_ec_key_get_libctx(const EC_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 664
    functionName: ossl_ec_key_get0_propq
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_ec_key_get0_propq(const EC_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - libctx
    argTypes:
    - EC_KEY*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: ossl_ec_key_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_ec_key_set0_libctx(EC_KEY *key, OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 675
    functionName: EC_KEY_get0_group
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_KEY_get0_group(const EC_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:679,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:681,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:682,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:683,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - key
    - group
    argTypes:
    - EC_KEY*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 688
    functionName: EC_KEY_set_group
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_KEY*::meth::set_group
    - EC_GROUP_dup
    - EC_GROUP_free
    - EC_GROUP_get_curve_name
    - EC_KEY_set_flags
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: EC_KEY_get0_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:712,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:713,1
    - Dst: EC_KEY*::group::meth::set_private
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:717,1
    - Dst: EC_KEY*::meth::set_private
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:720,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:728,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:771,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:775,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:777,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:778,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:779,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:783,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - key
    - priv_key
    argTypes:
    - EC_KEY*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 788
    functionName: EC_KEY_set_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - bn_wexpand
    - BN_clear_free
    - BN_set_flags
    - bn_get_top
    - EC_KEY*::group::meth::set_private
    - EC_KEY*::meth::set_private
    - EC_GROUP_get0_order
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: EC_KEY_get0_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::set_public
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:798,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:800,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key
    - pub_key
    argTypes:
    - EC_KEY*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 804
    functionName: EC_KEY_set_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_POINT_dup
    - EC_POINT_free
    - EC_KEY*::meth::set_public
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 809
    functionName: EC_KEY_get_enc_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int EC_KEY_get_enc_flags(const EC_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: EC_KEY_set_enc_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_enc_flags(EC_KEY *key, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 819
    functionName: EC_KEY_get_conv_form
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: point_conversion_form_t
    signature: point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - cform
    argTypes:
    - EC_KEY*
    - point_conversion_form_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: EC_KEY_set_conv_form
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_point_conversion_form
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_conv_form(EC_KEY *key, point_conversion_form_t cform)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - flag
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: EC_KEY_set_asn1_flag
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_asn1_flag
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_asn1_flag(EC_KEY *key, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - ctx
    argTypes:
    - EC_KEY*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 840
    functionName: EC_KEY_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_precompute_mult
    linkageType: ''
    returnType: int
    signature: int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: EC_KEY_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_KEY_get_flags(const EC_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 852
    functionName: EC_KEY_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_flags(EC_KEY *key, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 858
    functionName: EC_KEY_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_clear_flags(EC_KEY *key, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 865
    functionName: EC_KEY_decoded_from_explicit_params
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_KEY_decoded_from_explicit_params(const EC_KEY *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:872,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 873
    functionName: EC_KEY_key2buf
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_POINT_point2buf
    linkageType: ''
    returnType: size_t
    signature: "size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form,\n
      \                       unsigned char **pbuf, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:881,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - key
    - buf
    - len
    - ctx
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 897
    functionName: EC_KEY_oct2key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 2
    functionsReached:
    - EC_POINT_new
    - EC_POINT_oct2point
    linkageType: ''
    returnType: int
    signature: "int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len,\n
      \                  BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:905,1
    - Dst: EC_KEY*::group::meth::priv2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 910
    functionName: EC_KEY_priv2oct
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::priv2oct
    - ERR_raise
    linkageType: ''
    returnType: size_t
    signature: "size_t EC_KEY_priv2oct(const EC_KEY *eckey,\n                       unsigned
      char *buf, size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:917,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:927,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 912
    functionDepth: 3
    functionLinenumber: 912
    functionLinenumberEnd: 933
    functionName: ossl_ec_key_simple_priv2oct
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_bn2binpad
    - EC_GROUP_order_bits
    - ERR_raise
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_ec_key_simple_priv2oct(const EC_KEY *eckey,\n                                   unsigned
      char *buf, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:942,1
    - Dst: EC_KEY*::group::meth::oct2priv
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:945,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 949
    functionName: EC_KEY_oct2priv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::group::meth::oct2priv
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_KEY_oct2priv(EC_KEY *eckey, const unsigned char *buf, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:955,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:957,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:960,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - eckey
    - buf
    - len
    argTypes:
    - EC_KEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 966
    functionName: ossl_ec_key_simple_oct2priv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - ERR_raise
    - BN_secure_new
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_key_simple_oct2priv(EC_KEY *eckey, const unsigned char
      *buf,\n                                size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_priv2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:973,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:976,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:977,1
    - Dst: EC_KEY_priv2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:980,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - eckey
    - pbuf
    argTypes:
    - EC_KEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 987
    functionName: EC_KEY_priv2buf
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ERR_raise
    - EC_KEY_priv2oct
    linkageType: ''
    returnType: size_t
    signature: size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - eckey
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 995
    functionName: EC_KEY_can_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_KEY_can_sign(const EC_KEY *eckey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_SELF_TEST_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1015,1
    - Dst: OSSL_SELF_TEST_onbegin
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1019,1
    - Dst: ECDSA_do_sign
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1022,1
    - Dst: OSSL_SELF_TEST_oncorrupt_byte
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1026,1
    - Dst: ECDSA_do_verify
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1028,1
    - Dst: OSSL_SELF_TEST_onend
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1033,1
    - Dst: OSSL_SELF_TEST_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1034,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_key.c:1035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - eckey
    - cb
    - cbarg
    argTypes:
    - EC_KEY*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1037
    functionName: ecdsa_keygen_pairwise_test
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_key.c
    functionUses: 1
    functionsReached:
    - OSSL_SELF_TEST_free
    - ECDSA_SIG_free
    - OSSL_SELF_TEST_new
    - OSSL_SELF_TEST_onbegin
    - ECDSA_do_sign
    - OSSL_SELF_TEST_oncorrupt_byte
    - OSSL_SELF_TEST_onend
    - ECDSA_do_verify
    linkageType: ''
    returnType: int
    signature: "int ecdsa_keygen_pairwise_test(EC_KEY *eckey, OSSL_CALLBACK *cb,\n
      \                                     void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:36,1
    - Dst: EC_KEY*::group::meth::ecdsa_sign_setup
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: ossl_ecdsa_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::ecdsa_sign_setup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n
      \                         BIGNUM **rp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:48,1
    - Dst: EC_KEY*::group::meth::ecdsa_sign_sig
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - dgst
    - dgst_len
    - in_kinv
    - in_r
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: ossl_ecdsa_sign_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::ecdsa_sign_sig
    - ERR_raise
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:60,1
    - Dst: EC_KEY*::group::meth::ecdsa_verify_sig
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: ossl_ecdsa_verify_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::group::meth::ecdsa_verify_sig
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len,\n
      \                         const ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:74,1
    - Dst: ECDSA_do_sign_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:78,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:83,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 8
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - kinv
    - r
    - eckey
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 67
    functionDepth: 8
    functionLinenumber: 67
    functionLinenumberEnd: 86
    functionName: ossl_ecdsa_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_free
    - ECDSA_do_sign_ex
    - i2d_ECDSA_SIG
    - ECDSA_size
    linkageType: ''
    returnType: int
    signature: "int 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: 19
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:102,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:105,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:106,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:111,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:117,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:122,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:123,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:126,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:129,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:130,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:134,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:135,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:140,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:143,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:144,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:145,1
    - Dst: ossl_bn_gen_dsa_nonce_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:152,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:154,1
    - Dst: ossl_bn_priv_rand_range_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:159,1
    - Dst: ossl_bn_is_word_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:163,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:167,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:172,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:177,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:180,1
    - Dst: ossl_ec_group_do_inverse_ord
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:184,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:189,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:190,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:197,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:198,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:201,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:202,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:203,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 94
    argCount: 6
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    - dgst
    - dlen
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 88
    functionDepth: 12
    functionLinenumber: 88
    functionLinenumberEnd: 205
    functionName: ecdsa_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 1
    functionsReached:
    - ossl_ec_group_do_inverse_ord
    - EC_KEY_get0_private_key
    - EC_POINT_new
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - ossl_bn_priv_rand_range_fixed_top
    - BN_secure_new
    - BN_clear_free
    - EC_POINT_free
    - BN_set_bit
    - BN_new
    - BN_num_bits
    - ossl_bn_is_word_fixed_top
    - ERR_raise
    - EC_POINT_mul
    - BN_nnmod
    - EC_KEY_can_sign
    - EC_POINT_get_affine_coordinates
    - ossl_bn_gen_dsa_nonce_fixed_top
    - BN_CTX_new_ex
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,\n                            BIGNUM
      **kinvp, BIGNUM **rp,\n                            const unsigned char *dgst,
      int dlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecdsa_sign_setup
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 13
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: ossl_ecdsa_simple_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - ecdsa_sign_setup
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_simple_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM
      **kinvp,\n                                 BIGNUM **rp)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:226,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:230,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:234,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:239,1
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:245,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:248,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:251,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:256,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:258,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:263,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:267,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:273,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:274,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:278,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:279,1
    - Dst: ecdsa_sign_setup
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:284,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:285,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:292,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:304,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:305,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:306,1
    - Dst: bn_mod_add_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:309,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:310,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:317,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:319,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:323,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:329,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:334,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:346,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:349,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:350,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:351,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 108
    argCount: 5
    argNames:
    - dgst
    - dgst_len
    - in_kinv
    - in_r
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 213
    functionDepth: 13
    functionLinenumber: 213
    functionLinenumberEnd: 353
    functionName: ossl_ecdsa_simple_sign_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_private_key
    - bn_mod_add_fixed_top
    - ECDSA_SIG_free
    - ecdsa_sign_setup
    - bn_mul_mont_fixed_top
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - BN_rshift
    - bn_to_mont_fixed_top
    - BN_clear_free
    - BN_new
    - BN_num_bits
    - ERR_raise
    - EC_KEY_can_sign
    - BN_mod_mul_montgomery
    - ECDSA_SIG_new
    - BN_bin2bn
    - BN_CTX_new_ex
    - BN_copy
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *ossl_ecdsa_simple_sign_sig(const unsigned char *dgst, int
      dgst_len,\n                                      const BIGNUM *in_kinv, const
      BIGNUM *in_r,\n                                      EC_KEY *eckey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:370,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:373,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:376,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:377,1
    - Dst: ECDSA_do_verify
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:379,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:381,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:382,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 361
    functionDepth: 7
    functionLinenumber: 361
    functionLinenumberEnd: 384
    functionName: ossl_ecdsa_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - d2i_ECDSA_SIG
    - ECDSA_SIG_new
    - i2d_ECDSA_SIG
    - ECDSA_SIG_free
    - OPENSSL_free
    - memcmp
    - ECDSA_do_verify
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \                     const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:398,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:399,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:400,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:404,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:405,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:409,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:411,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:414,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:415,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:416,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:417,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:418,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:420,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:424,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:426,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:430,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:430,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:431,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:431,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:432,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:432,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:433,1
    - Dst: ossl_ec_group_do_inverse_ord
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:438,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:439,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:443,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:449,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:450,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:454,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:455,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:459,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:460,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:464,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:465,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:469,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:470,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:473,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:474,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:478,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:479,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:483,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:484,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:488,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:490,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:491,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c:492,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 91
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 494
    functionName: ossl_ecdsa_simple_verify_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_ossl.c
    functionUses: 0
    functionsReached:
    - ossl_ec_group_do_inverse_ord
    - EC_POINT_new
    - BN_CTX_start
    - BN_ucmp
    - BN_is_negative
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - BN_CTX_get
    - BN_mod_mul
    - BN_rshift
    - EC_POINT_free
    - BN_num_bits
    - ERR_raise
    - EC_POINT_mul
    - BN_nnmod
    - EC_KEY_can_sign
    - EC_POINT_get_affine_coordinates
    - EC_KEY_get0_public_key
    - BN_bin2bn
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdsa_simple_verify_sig(const unsigned char *dgst, int dgst_len,\n
      \                                const ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 306
    functionName: EC_GFp_nistp224_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistp224_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: bin28_to_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bin28_to_felem(felem out, const u8 in[28])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: felem_to_bin28
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_to_bin28(u8 out[28], const felem in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:336,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:337,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:340,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:342,1
    - Dst: bin28_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 347
    functionName: BN_to_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - BN_is_negative
    - BN_bn2lebinpad
    - bin28_to_felem
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_to_bin28
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:353,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: felem_to_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    - felem_to_bin28
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *felem_to_BN(BIGNUM *out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: felem_one
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_one(felem out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: felem_assign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_assign(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: felem_sum
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_sum(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 412
    functionName: felem_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - widefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 440
    functionName: widefelem_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void widefelem_diff(widefelem out, const widefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 463
    functionName: felem_diff_128_64
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff_128_64(widefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: felem_scalar
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar(felem out, const limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - widefelem
    - widelimb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 490
    functionName: widefelem_scalar
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void widefelem_scalar(widefelem out, const widelimb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - widefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 506
    functionName: felem_square
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_square(widefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - widefelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 521
    functionName: felem_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_mul(widefelem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - widefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 589
    functionName: felem_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_reduce(felem out, const widefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:594,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 596
    functionName: felem_square_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_square_reduce(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:601,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: felem_mul_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_mul_reduce(felem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 659
    functionName: felem_contract
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_contract(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:670,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:671,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 673
    functionName: felem_neg
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - memset
    - felem_reduce
    - felem_diff_128_64
    linkageType: ''
    returnType: void
    signature: void felem_neg(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 693
    functionName: felem_is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: limb felem_is_zero(const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: felem_is_zero_int
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    linkageType: ''
    returnType: int
    signature: int felem_is_zero_int(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:708,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:709,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:710,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:711,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:712,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:713,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:714,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:715,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:716,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:717,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:718,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:719,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:720,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:721,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:722,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:723,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:724,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:725,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:727,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:728,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:730,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:731,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:732,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:733,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:735,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:736,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:738,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:739,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:740,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:741,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:743,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:744,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:746,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:747,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:748,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:749,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:751,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:752,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:754,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:755,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:756,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:757,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:759,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:760,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:762,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:763,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:765,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:766,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:768,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:769,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:770,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:771,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:772,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:773,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:775,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:776,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:778,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:779,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 780
    functionName: felem_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_inv(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - icopy
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 797
    functionName: copy_conditional
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_conditional(felem out, const felem in, limb icopy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:825,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:826,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:829,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:830,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:833,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:834,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:837,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:838,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:841,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:843,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:845,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:847,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:849,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:852,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:854,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:855,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:857,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:859,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:862,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:864,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:865,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:867,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:869,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:871,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:874,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:876,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:878,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:880,1
    - Dst: widefelem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:882,1
    - Dst: widefelem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:884,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:886,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 887
    functionName: point_double
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - widefelem_diff
    - felem_scalar
    - felem_reduce
    - felem_mul
    - felem_diff
    - felem_assign
    - felem_sum
    - felem_diff_128_64
    - felem_square
    - widefelem_scalar
    linkageType: ''
    returnType: void
    signature: "void 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:919,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:920,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:923,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:924,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:927,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:928,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:931,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:932,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:939,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:942,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:946,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:947,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:950,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:951,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:954,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:958,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:960,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:963,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:967,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:969,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:979,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:980,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:986,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:987,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1007,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1013,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1014,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1017,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1021,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1022,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1025,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1026,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1027,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1030,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1031,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1034,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1035,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1038,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1042,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1046,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1050,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1051,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1058,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1060,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1063,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1069,1
    - Dst: widefelem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1076,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1078,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1088,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1089,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1090,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1091,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1092,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1093,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1094,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1095,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 68
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 1097
    functionName: point_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    - widefelem_diff
    - felem_scalar
    - felem_reduce
    - felem_mul
    - felem_diff
    - felem_assign
    - copy_conditional
    - felem_diff_128_64
    - felem_square
    - point_double
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - u64
    - unsigned int
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1122
    functionName: select_point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void select_point(const u64 idx, unsigned int size,\n                         const
      felem pre_comp[][3], felem out[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1130
    functionName: get_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char get_bit(const felem_bytearray in, unsigned i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1153,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1165,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1170,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1171,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1172,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1173,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1175,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1179,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1182,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1187,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1188,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1189,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1190,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1192,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1193,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1202,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1203,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1204,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1205,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1206,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1207,1
    - Dst: ossl_ec_GFp_nistp_recode_scalar_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1208,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1211,1
    - Dst: felem_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1212,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1214,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1217,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1221,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1227,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1228,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1229,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[][][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1230
    functionName: batch_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_neg
    - memcpy
    - copy_conditional
    - felem_assign
    - get_bit
    - select_point
    - point_add
    - ossl_ec_GFp_nistp_recode_scalar_bits
    - memset
    - point_double
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1242,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1250,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1255
    functionName: nistp224_pre_comp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP224_PRE_COMP
    signature: NISTP224_PRE_COMP *nistp224_pre_comp_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP224_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1263
    functionName: EC_nistp224_pre_comp_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTP224_PRE_COMP
    signature: NISTP224_PRE_COMP *EC_nistp224_pre_comp_dup(NISTP224_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1272,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1273,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1276,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1278,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP224_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1280
    functionName: EC_nistp224_pre_comp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void EC_nistp224_pre_comp_free(NISTP224_PRE_COMP *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_simple_group_init
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1293
    functionName: ossl_ec_GFp_nistp224_group_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp224_group_init(EC_GROUP *group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1305,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1310,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1311,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1312,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1313,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1316,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1317,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1318,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1319,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1319,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1319,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1320,1
    - Dst: ossl_ec_GFp_simple_group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1324,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1326,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1295
    functionDepth: 4
    functionLinenumber: 1295
    functionLinenumberEnd: 1331
    functionName: ossl_ec_GFp_nistp224_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_bin2bn
    - BN_CTX_new
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_get
    - BN_cmp
    - ossl_ec_GFp_simple_group_set_curve
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_nistp224_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                         const BIGNUM *a, const BIGNUM
      *b,\n                                         BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1345,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1346,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1349,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1349,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1350,1
    - Dst: felem_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1352,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1353,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1354,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1355,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1356,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1357,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1359,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1360,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1364,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1365,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1366,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1367,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1368,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1370,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1376
    functionName: ossl_ec_GFp_nistp224_point_get_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - felem_reduce
    - felem_mul
    - felem_inv
    - ERR_raise
    - felem_to_BN
    - BN_to_felem
    - felem_contract
    - felem_square
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_nistp_points_make_affine_internal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_felems
    argTypes:
    - size_t
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1405
    functionName: make_points_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "void make_points_affine(size_t num, felem points[ /* num */ ][3],\n
      \                              felem tmp_felems[ /* num+1 */ ])"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1423,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1435,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1436,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1437,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1438,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1439,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1451,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1455,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1456,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1457,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1458,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1461,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1465,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1484,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1485,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1488,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1491,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1502,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1511,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1512,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1517,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1518,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1521,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1524,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1528,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1532,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1533,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1534,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1536,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1537,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1538,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1541,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1548,1
    - Dst: make_points_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1557,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1562,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1564,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1564,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1569,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1570,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1573,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1575,1
    - Dst: batch_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1578,1
    - Dst: batch_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1584,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1589,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1590,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1591,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1592,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1592,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1593,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1594,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1597,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1601,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1602,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1603,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1604,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1605,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 119
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1411
    functionDepth: 3
    functionLinenumber: 1411
    functionLinenumberEnd: 1607
    functionName: ossl_ec_GFp_nistp224_points_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - felem_assign
    - EC_POINT_new
    - BN_CTX_start
    - point_add
    - BN_is_negative
    - point_double
    - BN_CTX_get
    - felem_to_BN
    - BN_to_felem
    - memset
    - EC_POINT_free
    - ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
    - EC_GROUP_get0_generator
    - felem
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - BN_nnmod
    - batch_mul
    - OPENSSL_malloc
    - BN_bn2lebinpad
    - OPENSSL_zalloc
    - BN_CTX_end
    - EC_POINT_cmp
    - make_points_affine
    - felem_contract
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1622,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1626,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1631,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1632,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1633,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1639,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1642,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1643,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1644,1
    - Dst: nistp224_pre_comp_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1646,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1651,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1652,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1655,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1656,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1657,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1664,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1668,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1674,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1679,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1689,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1692,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1698,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1704,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1712,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1719,1
    - Dst: make_points_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1729,1
    - Dst: SETPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1732,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1736,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1737,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1739,1
    - Dst: EC_nistp224_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1741,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1609
    functionDepth: 4
    functionLinenumber: 1609
    functionLinenumberEnd: 1743
    functionName: ossl_ec_GFp_nistp224_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EC_POINT_new
    - BN_CTX_start
    - point_add
    - point_double
    - BN_CTX_get
    - BN_CTX_new
    - BN_to_felem
    - EC_pre_comp_free
    - EC_POINT_free
    - memset
    - SETPRECOMP
    - EC_nistp224_pre_comp_free
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - BN_CTX_end
    - EC_POINT_cmp
    - make_points_affine
    - BN_CTX_free
    - nistp224_pre_comp_new
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp224_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1748
    functionName: ossl_ec_GFp_nistp224_have_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp224.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp224_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:26,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:27,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:30,1
    - Dst: ECPKParameters_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:31,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: ECPKParameters_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - ECPKParameters_print
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:41,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:41,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:42,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:45,1
    - Dst: EC_KEY_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:46,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: EC_KEY_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - EC_KEY_print
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int EC_KEY_print_fp(FILE *fp, const EC_KEY *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:56,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:56,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:57,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:60,1
    - Dst: ECParameters_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:61,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ECParameters_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/eck_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - ECParameters_print
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int ECParameters_print_fp(FILE *fp, const EC_KEY *x)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:90,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:96,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:101,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:104,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:107,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:107,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:109,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:111,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:113,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:115,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:123,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:128,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:128,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:129,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:134,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:139,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:143,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:144,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:150,1
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:152,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:158,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:159,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:161,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:165,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:165,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:171,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:175,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:178,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:179,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:183,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:187,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:190,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:192,1
    - Dst: print_bin
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:202,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:205,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:207,1
    - Dst: print_bin
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:210,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:216,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:217,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:218,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:219,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:220,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:221,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 128
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 223
    functionName: ECPKParameters_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/eck_prn.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_get0_order
    - BIO_printf
    - EC_GROUP_get_curve
    - print_bin
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_get0_cofactor
    - BN_CTX_new
    - EC_curve_nid2nist
    - OBJ_nid2sn
    - OPENSSL_clear_free
    - BIO_indent
    - EC_GROUP_get0_generator
    - BN_new
    - EC_GROUP_get_point_conversion_form
    - EC_GROUP_get_seed_len
    - ASN1_bn_print
    - ERR_raise
    - BN_free
    - EC_GROUP_get0_seed
    - EC_GROUP_get_field_type
    - EC_GROUP_get_curve_name
    - EC_POINT_point2buf
    - EC_GROUP_get_basis_type
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:236,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:237,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:243,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:249,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:250,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:253,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ec/eck_prn.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - fp
    - name
    - buf
    - len
    - 'off'
    argTypes:
    - BIO*
    - char*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 261
    functionName: print_bin
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/eck_prn.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - memset
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int print_bin(BIO *fp, const char *name, const unsigned char *buf,\n
      \                    size_t len, int off)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x25519_public_from_private
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:32,1
    - Dst: ossl_ed25519_public_from_private
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:37,1
    - Dst: ossl_x448_public_from_private
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:42,1
    - Dst: ossl_ed448_public_from_private
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECX_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 53
    functionName: ossl_ecx_public_from_private
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - ossl_x448_public_from_private
    - ossl_x25519_public_from_private
    - ossl_ed25519_public_from_private
    - ossl_ed448_public_from_private
    linkageType: ''
    returnType: int
    signature: int ossl_ecx_public_from_private(ECX_KEY *key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:65,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:68,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:74,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:84,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:93,1
    - Dst: ossl_ecx_public_from_private
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:101,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - ecx
    - params
    - include_private
    argTypes:
    - ECX_KEY*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 107
    functionName: ossl_ecx_key_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_public_from_private
    - OPENSSL_secure_clear_free
    - OSSL_PARAM_get_octet_string
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: "int ossl_ecx_key_fromdata(ECX_KEY *ecx, const OSSL_PARAM params[],\n
      \                         int include_private)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:111,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:114,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:120,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:131,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:138,1
    - Dst: ossl_ecx_key_allocate_privkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:144,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:146,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:152,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:153,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - key
    - selection
    argTypes:
    - ECX_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 155
    functionName: ossl_ecx_key_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_allocate_privkey
    - ossl_ecx_key_free
    - memcpy
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - OPENSSL_strdup
    linkageType: ''
    returnType: ECX_KEY
    signature: ECX_KEY *ossl_ecx_key_dup(const ECX_KEY *key, int selection)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:173,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:177,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:179,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:185,1
    - Dst: ossl_ecx_key_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:190,1
    - Dst: KEYNID2TYPE
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:192,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:198,1
    - Dst: ossl_ecx_key_allocate_privkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:202,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:207,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:207,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:219,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:219,1
    - Dst: ossl_ecx_public_from_private
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:222,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:229,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 7
    argNames:
    - palg
    - p
    - plen
    - id
    - op
    - libctx
    - propq
    argTypes:
    - X509_ALGOR*
    - unsigned char*
    - int
    - int
    - ecx_key_op_t
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 231
    functionName: ossl_ecx_key_op
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_public_from_private
    - ossl_ecx_key_allocate_privkey
    - ossl_ecx_key_free
    - memcpy
    - OBJ_obj2nid
    - KEYNID2TYPE
    - RAND_priv_bytes_ex
    - ERR_raise
    - ossl_ecx_key_new
    - X509_ALGOR_get0
    - KEYLENID
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_ecx_key_op(const X509_ALGOR *palg,\n                         const
      unsigned char *p, int plen,\n                         int id, ecx_key_op_t op,\n
      \                        OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:242,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:245,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:250,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:251,1
    - Dst: ossl_ecx_key_op
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:258,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_backend.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - p8inf
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 262
    functionName: ossl_ecx_key_from_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - ASN1_OCTET_STRING_free
    - ossl_ecx_key_op
    - d2i_ASN1_OCTET_STRING
    - PKCS8_pkey_get0
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_ecx_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,\n
      \                                OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: load_8
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_8(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_8
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:73,1
    - Dst: load_8
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:74,1
    - Dst: load_8
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:75,1
    - Dst: load_8
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe64
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: fe64_frombytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_8
    linkageType: ''
    returnType: void
    signature: void fe64_frombytes(fe64 h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: fe64_0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_0(fe64 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: fe64_1
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_1(fe64 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe64
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: fe64_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_copy(fe64 h, const fe64 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe64
    - fe64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: fe64_cswap
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe64_cswap(fe64 f, fe64 g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:130,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:133,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:134,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:137,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:139,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:142,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:145,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:148,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:150,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:153,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:158,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:160,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:162,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:165,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:167,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:169,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:173,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:176,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:179,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:181,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:183,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:186,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:188,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:190,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:194,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:197,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:201,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe64
    - fe64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 205
    functionName: fe64_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe64_mul
    - fe64_sqr
    linkageType: ''
    returnType: void
    signature: void fe64_invert(fe64 out, const fe64 z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:219,1
    - Dst: fe64_frombytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:223,1
    - Dst: fe64_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:224,1
    - Dst: fe64_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:225,1
    - Dst: fe64_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:226,1
    - Dst: fe64_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:227,1
    - Dst: fe64_cswap
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:233,1
    - Dst: fe64_cswap
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:234,1
    - Dst: fe64_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:236,1
    - Dst: fe64_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:237,1
    - Dst: fe64_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:238,1
    - Dst: fe64_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:239,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:240,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:241,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:242,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:243,1
    - Dst: fe64_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:244,1
    - Dst: fe64_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:245,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:246,1
    - Dst: fe64_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:247,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:248,1
    - Dst: fe64_mul121666
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:249,1
    - Dst: fe64_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:250,1
    - Dst: fe64_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:251,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:252,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:253,1
    - Dst: fe64_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:256,1
    - Dst: fe64_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:257,1
    - Dst: fe64_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:258,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 261
    functionName: x25519_scalar_mulx
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe64_frombytes
    - fe64_mul
    - fe64_copy
    - fe64_sqr
    - fe64_invert
    - memcpy
    - fe64_1
    - OPENSSL_cleanse
    - fe64_add
    - fe64_cswap
    - fe64_0
    - fe64_mul121666
    - fe64_tobytes
    - fe64_sub
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mulx(uint8_t out[32], const uint8_t scalar[32],\n
      \                              const uint8_t point[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: load_7
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_7(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: load_6
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_6(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_7
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:312,1
    - Dst: load_6
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:313,1
    - Dst: load_7
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:314,1
    - Dst: load_6
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:315,1
    - Dst: load_6
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe51
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 328
    functionName: fe51_frombytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_6
    - load_7
    linkageType: ''
    returnType: void
    signature: void fe51_frombytes(fe51 h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 387
    functionName: fe51_tobytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_tobytes(uint8_t *s, const fe51 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe51
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 456
    functionName: fe51_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_mul(fe51 h, const fe51 f, const fe51 g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 510
    functionName: fe51_sq
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe51_mul
    linkageType: ''
    returnType: void
    signature: void fe51_sq(fe51 h, const fe51 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 536
    functionName: fe51_mul121666
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_mul121666(fe51 h, fe51 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe51
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: fe51_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_add(fe51 h, const fe51 f, const fe51 g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe51
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 559
    functionName: fe51_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_sub(fe51 h, const fe51 f, const fe51 g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 568
    functionName: fe51_0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_0(fe51 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 577
    functionName: fe51_1
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_1(fe51 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 586
    functionName: fe51_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_copy(fe51 h, const fe51 f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe51
    - fe51
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: fe51_cswap
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe51_cswap(fe51 f, fe51 g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:615,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:618,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:619,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:622,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:624,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:627,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:630,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:633,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:635,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:638,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:643,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:645,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:647,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:650,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:652,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:654,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:658,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:661,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:664,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:666,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:668,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:671,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:673,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:675,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:679,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:682,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:686,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:689,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe51
    - fe51
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 690
    functionName: fe51_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe51_mul
    - fe51_sq
    linkageType: ''
    returnType: void
    signature: void fe51_invert(fe51 out, const fe51 z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x25519_fe64_eligible
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:705,1
    - Dst: x25519_scalar_mulx
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:706,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:711,1
    - Dst: fe51_frombytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:715,1
    - Dst: fe51_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:716,1
    - Dst: fe51_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:717,1
    - Dst: fe51_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:718,1
    - Dst: fe51_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:719,1
    - Dst: fe51_cswap
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:725,1
    - Dst: fe51_cswap
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:726,1
    - Dst: fe51_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:728,1
    - Dst: fe51_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:729,1
    - Dst: fe51_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:730,1
    - Dst: fe51_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:731,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:732,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:733,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:734,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:735,1
    - Dst: fe51_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:736,1
    - Dst: fe51_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:737,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:738,1
    - Dst: fe51_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:739,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:740,1
    - Dst: fe51_mul121666
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:741,1
    - Dst: fe51_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:742,1
    - Dst: fe51_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:743,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:744,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:745,1
    - Dst: fe51_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:748,1
    - Dst: fe51_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:749,1
    - Dst: fe51_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:750,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 753
    functionName: x25519_scalar_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe51_cswap
    - memcpy
    - fe51_invert
    - fe51_sq
    - OPENSSL_cleanse
    - x25519_scalar_mulx
    - fe51_frombytes
    - x25519_fe64_eligible
    - fe51_add
    - fe51_mul
    - fe51_mul121666
    - fe51_1
    - fe51_sub
    - fe51_copy
    - fe51_0
    - fe51_tobytes
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32],\n
      \                              const uint8_t point[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 787
    functionName: load_3
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_3(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 798
    functionName: load_4
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_4(const uint8_t *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:803,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:804,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:805,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:806,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:807,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:808,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:809,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:810,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:811,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 846
    functionName: fe_frombytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_4
    - load_3
    linkageType: ''
    returnType: void
    signature: void fe_frombytes(fe h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 952
    functionName: fe_tobytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_tobytes(uint8_t *s, const fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: fe_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void fe_copy(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 964
    functionName: fe_0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fe_0(fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: fe_1
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fe_1(fe h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: fe_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_add(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1013
    functionName: fe_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sub(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1260
    functionName: fe_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_mul(fe h, const fe f, const fe g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1405
    functionName: fe_sq
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sq(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1421,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1424,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1425,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1428,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1430,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1433,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1436,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1439,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1441,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1445,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1450,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1452,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1454,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1457,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1459,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1461,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1465,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1468,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1471,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1473,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1475,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1478,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1480,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1482,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1485,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1487,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1491,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1494,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1496,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1500,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1501
    functionName: fe_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_invert(fe out, const fe z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1519
    functionName: fe_neg
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_neg(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1537
    functionName: fe_cmov
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_cmov(fe f, const fe g, unsigned b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1551,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1554
    functionName: fe_isnonzero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - fe_tobytes
    linkageType: ''
    returnType: int
    signature: int fe_isnonzero(const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1569
    functionName: fe_isnegative
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_tobytes
    linkageType: ''
    returnType: int
    signature: int fe_isnegative(const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1725
    functionName: fe_sq2
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sq2(fe h, const fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1734,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1735,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1737,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1739,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1740,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1741,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1742,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1743,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1745,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1747,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1748,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1750,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1752,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1753,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1755,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1757,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1758,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1760,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1762,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1763,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1765,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1767,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1768,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1770,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1772,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1773,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1775,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1777,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1778,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1780,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1783
    functionName: fe_pow22523
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_pow22523(fe out, const fe z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1837,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1838,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1839,1
    - Dst: fe_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1840,1
    - Dst: fe_isnegative
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1831
    functionDepth: 2
    functionLinenumber: 1831
    functionLinenumberEnd: 1842
    functionName: ge_tobytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_isnegative
    - fe_mul
    - fe_tobytes
    - fe_invert
    linkageType: ''
    returnType: void
    signature: void ge_tobytes(uint8_t *s, const ge_p2 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1850,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1851,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1852,1
    - Dst: fe_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1853,1
    - Dst: fe_isnegative
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - h
    argTypes:
    - uint8_t*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1844
    functionDepth: 2
    functionLinenumber: 1844
    functionLinenumberEnd: 1855
    functionName: ge_p3_tobytes
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_isnegative
    - fe_mul
    - fe_tobytes
    - fe_invert
    linkageType: ''
    returnType: void
    signature: void ge_p3_tobytes(uint8_t *s, const ge_p3 *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fe_frombytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1875,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1876,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1877,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1878,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1879,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1880,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1882,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1883,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1884,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1885,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1886,1
    - Dst: fe_pow22523
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1888,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1889,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1890,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1892,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1893,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1894,1
    - Dst: fe_isnonzero
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1895,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1896,1
    - Dst: fe_isnonzero
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1897,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1900,1
    - Dst: fe_isnegative
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1903,1
    - Dst: fe_neg
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1904,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1907,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - ge_p3*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1867
    functionDepth: 2
    functionLinenumber: 1867
    functionLinenumberEnd: 1909
    functionName: ge_frombytes_vartime
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_frombytes
    - fe_isnonzero
    - fe_isnegative
    - fe_add
    - fe_mul
    - fe_pow22523
    - fe_neg
    - fe_1
    - fe_sub
    linkageType: ''
    returnType: int
    signature: int ge_frombytes_vartime(ge_p3 *h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1913,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1914,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 1916
    functionName: ge_p2_0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_p2_0(ge_p2 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1920,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1921,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1922,1
    - Dst: fe_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 1924
    functionName: ge_p3_0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_p3_0(ge_p3 *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1928,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1929,1
    - Dst: fe_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1931
    functionName: ge_precomp_0
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_1
    linkageType: ''
    returnType: void
    signature: void ge_precomp_0(ge_precomp *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1936,1
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1937,1
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1934
    functionDepth: 1
    functionLinenumber: 1934
    functionLinenumberEnd: 1939
    functionName: ge_p3_to_p2
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_copy
    linkageType: ''
    returnType: void
    signature: void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1949,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1950,1
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1951,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_cached*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1947
    functionDepth: 1
    functionLinenumber: 1947
    functionLinenumberEnd: 1953
    functionName: ge_p3_to_cached
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    - fe_copy
    linkageType: ''
    returnType: void
    signature: void ge_p3_to_cached(ge_cached *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1958,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1959,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p2*
    - ge_p1p1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 1961
    functionName: ge_p1p1_to_p2
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1966,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1967,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1968,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p3*
    - ge_p1p1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1970
    functionName: ge_p1p1_to_p3
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1977,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1978,1
    - Dst: fe_sq2
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1979,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1980,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1981,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1982,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1983,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1984,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1973
    functionDepth: 1
    functionLinenumber: 1973
    functionLinenumberEnd: 1986
    functionName: ge_p2_dbl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sq
    - fe_add
    - fe_sub
    - fe_sq2
    linkageType: ''
    returnType: void
    signature: void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_to_p2
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1992,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - ge_p1p1*
    - ge_p3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1989
    functionDepth: 2
    functionLinenumber: 1989
    functionLinenumberEnd: 1994
    functionName: ge_p3_dbl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p3_to_p2
    - ge_p2_dbl
    linkageType: ''
    returnType: void
    signature: void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2001,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2002,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2003,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2004,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2005,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2006,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2007,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2008,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2009,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1997
    functionDepth: 1
    functionLinenumber: 1997
    functionLinenumberEnd: 2011
    functionName: ge_madd
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2018,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2019,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2020,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2021,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2022,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2023,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2024,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2025,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2026,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_precomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2028
    functionName: ge_msub
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2035,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2036,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2037,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2038,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2039,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2040,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2041,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2042,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2043,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2044,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_cached*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2046
    functionName: ge_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2053,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2054,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2055,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2056,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2057,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2058,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2059,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2060,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2061,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2062,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - ge_p1p1*
    - ge_p3*
    - ge_cached*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2064
    functionName: ge_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_sub
    - fe_mul
    - fe_add
    linkageType: ''
    returnType: void
    signature: void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - signed char
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2075
    functionName: equal
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t equal(signed char b, signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2079,1
    - Dst: fe_cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2080,1
    - Dst: fe_cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:2081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - u
    - b
    argTypes:
    - ge_precomp*
    - ge_precomp*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2077
    functionDepth: 1
    functionLinenumber: 2077
    functionLinenumberEnd: 2082
    functionName: cmov
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 1
    functionsReached:
    - fe_cmov
    linkageType: ''
    returnType: void
    signature: void cmov(ge_precomp *t, const ge_precomp *u, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4200
    functionDepth: 0
    functionLinenumber: 4200
    functionLinenumberEnd: 4206
    functionName: negative
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t negative(signed char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: negative
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4211,1
    - Dst: ge_precomp_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4214,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4215,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4215,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4216,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4216,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4217,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4217,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4218,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4218,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4219,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4219,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4220,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4220,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4221,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4221,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4222,1
    - Dst: equal
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4222,1
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4223,1
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4224,1
    - Dst: fe_neg
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4225,1
    - Dst: cmov
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - t
    - pos
    - b
    argTypes:
    - ge_precomp*
    - int
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4227
      start: 4208
    functionDepth: 2
    functionLinenumber: 4208
    functionLinenumberEnd: 4227
    functionName: table_select
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_precomp_0
    - cmov
    - negative
    - fe_neg
    - fe_copy
    - equal
    linkageType: ''
    returnType: void
    signature: void table_select(ge_precomp *t, int pos, signed char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ge_p3_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4264,1
    - Dst: table_select
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4266,1
    - Dst: ge_madd
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4267,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4268,1
    - Dst: ge_p3_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4271,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4272,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4273,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4274,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4275,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4276,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4277,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4278,1
    - Dst: table_select
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4281,1
    - Dst: ge_madd
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4282,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4283,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - h
    - a
    argTypes:
    - ge_p3*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4238
    functionDepth: 3
    functionLinenumber: 4238
    functionLinenumberEnd: 4287
    functionName: ge_scalarmult_base
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p1p1_to_p2
    - ge_p3_dbl
    - OPENSSL_cleanse
    - ge_p1p1_to_p3
    - ge_madd
    - ge_p3_0
    - ge_p2_dbl
    - table_select
    linkageType: ''
    returnType: void
    signature: void ge_scalarmult_base(ge_p3 *h, const uint8_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe
    - fe
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4307
      start: 4296
    functionDepth: 0
    functionLinenumber: 4296
    functionLinenumberEnd: 4307
    functionName: fe_cswap
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_cswap(fe f, fe g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe
    - fe
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4320
    functionDepth: 0
    functionLinenumber: 4320
    functionLinenumberEnd: 4375
    functionName: fe_mul121666
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_mul121666(fe h, fe f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4385,1
    - Dst: fe_frombytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4389,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4390,1
    - Dst: fe_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4391,1
    - Dst: fe_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4392,1
    - Dst: fe_1
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4393,1
    - Dst: fe_cswap
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4398,1
    - Dst: fe_cswap
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4399,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4401,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4402,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4403,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4404,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4405,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4406,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4407,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4408,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4409,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4410,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4411,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4412,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4413,1
    - Dst: fe_mul121666
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4414,1
    - Dst: fe_sq
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4415,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4416,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4417,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4418,1
    - Dst: fe_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4421,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4422,1
    - Dst: fe_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4423,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4426
      start: 4377
    functionDepth: 2
    functionLinenumber: 4377
    functionLinenumberEnd: 4426
    functionName: x25519_scalar_mult_generic
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - fe_0
    - fe_frombytes
    - fe_sq
    - memcpy
    - fe_cswap
    - OPENSSL_cleanse
    - fe_add
    - fe_invert
    - fe_mul
    - fe_mul121666
    - fe_copy
    - fe_1
    - fe_tobytes
    - fe_sub
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mult_generic(uint8_t out[32],\n                                       const
      uint8_t scalar[32],\n                                       const uint8_t point[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x25519_scalar_mult_generic
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4431
      start: 4428
    functionDepth: 3
    functionLinenumber: 4428
    functionLinenumberEnd: 4431
    functionName: x25519_scalar_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - x25519_scalar_mult_generic
    linkageType: ''
    returnType: void
    signature: "void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32],\n
      \                              const uint8_t point[32])"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - signed char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4467
      start: 4434
    functionDepth: 0
    functionLinenumber: 4434
    functionLinenumberEnd: 4467
    functionName: slide
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void slide(signed char *r, const uint8_t *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: slide
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4554,1
    - Dst: slide
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4555,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4557,1
    - Dst: ge_p3_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4558,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4559,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4560,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4561,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4562,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4563,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4564,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4565,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4566,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4567,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4568,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4569,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4570,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4571,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4572,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4573,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4574,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4575,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4576,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4577,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4578,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4579,1
    - Dst: ge_p3_to_cached
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4580,1
    - Dst: ge_p2_0
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4582,1
    - Dst: ge_p2_dbl
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4591,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4594,1
    - Dst: ge_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4595,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4597,1
    - Dst: ge_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4598,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4602,1
    - Dst: ge_madd
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4603,1
    - Dst: ge_p1p1_to_p3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4605,1
    - Dst: ge_msub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4606,1
    - Dst: ge_p1p1_to_p2
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4609,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 4
    argNames:
    - r
    - a
    - A
    - b
    argTypes:
    - ge_p2*
    - uint8_t*
    - ge_p3*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4611
      start: 4543
    functionDepth: 3
    functionLinenumber: 4543
    functionLinenumberEnd: 4611
    functionName: ge_double_scalarmult_vartime
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - ge_p1p1_to_p2
    - ge_p3_dbl
    - ge_p1p1_to_p3
    - ge_p2_0
    - ge_p3_to_cached
    - ge_msub
    - ge_sub
    - ge_add
    - ge_madd
    - ge_p2_dbl
    - slide
    linkageType: ''
    returnType: void
    signature: "void ge_double_scalarmult_vartime(ge_p2 *r, const uint8_t *a,\n                                         const
      ge_p3 *A, const uint8_t *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4627,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4628,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4629,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4630,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4631,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4632,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4633,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4634,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4635,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4636,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4637,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4638,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4639,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4640,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4641,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4642,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4643,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4644,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4645,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4646,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4647,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4648,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4649,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 269
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4957
      start: 4625
    functionDepth: 1
    functionLinenumber: 4625
    functionLinenumberEnd: 4957
    functionName: x25519_sc_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_4
    - load_3
    linkageType: ''
    returnType: void
    signature: void x25519_sc_reduce(uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4972,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4973,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4974,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4975,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4976,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4977,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4978,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4979,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4980,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4981,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4982,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4983,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4984,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4985,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4986,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4987,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4988,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4989,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4990,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4991,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4992,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4993,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4994,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4995,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4996,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4997,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4998,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:4999,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5000,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5001,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5002,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5003,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5004,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5005,1
    - Dst: load_3
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5006,1
    - Dst: load_4
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 362
    argCount: 4
    argNames:
    - s
    - a
    - b
    - c
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5440
      start: 4969
    functionDepth: 1
    functionLinenumber: 4969
    functionLinenumberEnd: 5440
    functionName: sc_muladd
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - load_4
    - load_3
    linkageType: ''
    returnType: void
    signature: "void sc_muladd(uint8_t *s, const uint8_t *a, const uint8_t *b,\n                      const
      uint8_t *c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5451,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5452,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5459,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5460,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5461,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5468,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5469,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5470,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5471,1
    - Dst: x25519_sc_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5474,1
    - Dst: ge_scalarmult_base
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5475,1
    - Dst: ge_p3_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5476,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5478,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5479,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5480,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5481,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5482,1
    - Dst: x25519_sc_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5485,1
    - Dst: sc_muladd
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5486,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5490,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5491,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5492,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5493,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 29
    argCount: 7
    argNames:
    - out_sig
    - message
    - message_len
    - public_key
    - private_key
    - libctx
    - propq
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5495
      start: 5442
    functionDepth: 11
    functionLinenumber: 5442
    functionLinenumberEnd: 5495
    functionName: ossl_ed25519_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - OPENSSL_cleanse
    - ge_p3_tobytes
    - x25519_sc_reduce
    - ge_scalarmult_base
    - EVP_DigestFinal_ex
    - EVP_MD_free
    - sc_muladd
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_ed25519_sign(uint8_t *out_sig, const uint8_t *message, size_t
      message_len,\n                  const uint8_t public_key[32], const uint8_t
      private_key[32],\n                  OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5538,1
    - Dst: ge_frombytes_vartime
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5550,1
    - Dst: fe_neg
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5554,1
    - Dst: fe_neg
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5555,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5557,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5560,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5564,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5565,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5566,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5567,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5568,1
    - Dst: x25519_sc_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5571,1
    - Dst: ge_double_scalarmult_vartime
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5573,1
    - Dst: ge_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5575,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5577,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5579,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5580,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 6
    argNames:
    - message
    - message_len
    - signature
    - public_key
    - libctx
    - propq
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5582
      start: 5499
    functionDepth: 11
    functionLinenumber: 5499
    functionLinenumberEnd: 5582
    functionName: ossl_ed25519_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - ge_tobytes
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - ge_double_scalarmult_vartime
    - EVP_MD_free
    - x25519_sc_reduce
    - CRYPTO_memcmp
    - fe_neg
    - EVP_DigestFinal_ex
    - memcmp
    - ge_frombytes_vartime
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_ed25519_verify(const uint8_t *message, size_t message_len,\n
      \                   const uint8_t signature[64], const uint8_t public_key[32],\n
      \                   OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5594,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5597,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5598,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5600,1
    - Dst: ge_scalarmult_base
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5608,1
    - Dst: ge_p3_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5609,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - out_public_key
    - private_key
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5613
      start: 5584
    functionDepth: 11
    functionLinenumber: 5584
    functionLinenumberEnd: 5613
    functionName: ossl_ed25519_public_from_private
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - ge_p3_tobytes
    - ge_scalarmult_base
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_ed25519_public_from_private(OSSL_LIB_CTX *ctx, uint8_t out_public_key[32],\n
      \                                const uint8_t private_key[32],\n                                 const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x25519_scalar_mult
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5620,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5622,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[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5623
      start: 5615
    functionDepth: 4
    functionLinenumber: 5615
    functionLinenumberEnd: 5623
    functionName: ossl_x25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 0
    functionsReached:
    - x25519_scalar_mult
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: "int ossl_x25519(uint8_t out_shared_key[32], const uint8_t private_key[32],\n
      \           const uint8_t peer_public_value[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5633,1
    - Dst: ge_scalarmult_base
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5638,1
    - Dst: fe_add
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5645,1
    - Dst: fe_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5646,1
    - Dst: fe_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5647,1
    - Dst: fe_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5648,1
    - Dst: fe_tobytes
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5649,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve25519.c:5651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - out_public_value
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5652
      start: 5625
    functionDepth: 4
    functionLinenumber: 5625
    functionLinenumberEnd: 5652
    functionName: ossl_x25519_public_from_private
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve25519.c
    functionUses: 1
    functionsReached:
    - memcpy
    - OPENSSL_cleanse
    - fe_add
    - fe_invert
    - fe_mul
    - ge_scalarmult_base
    - fe_tobytes
    - fe_sub
    linkageType: ''
    returnType: void
    signature: "void ossl_x25519_public_from_private(uint8_t out_public_value[32],\n
      \                               const uint8_t private_key[32])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: S390X_OFF_RES_X
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_RES_X(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: S390X_OFF_RES_Y
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_RES_Y(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: S390X_OFF_SRC_X
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_SRC_X(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: S390X_OFF_SRC_Y
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_SRC_Y(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: S390X_OFF_SCALAR
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_SCALAR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: S390X_OFF_R
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_R(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: S390X_OFF_S
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_S(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: S390X_OFF_H
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_H(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: S390X_OFF_K
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_K(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: S390X_OFF_X
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_X(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: S390X_OFF_RN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_RN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: S390X_OFF_Y
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S390X_OFF_Y(n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:61,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:66,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:68,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:69,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:80,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:81,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:84,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:91,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:92,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:93,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:97,1
    - Dst: EC_GROUP*::meth::point_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:99,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:101,1
    - Dst: S390X_OFF_SRC_X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:101,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:102,1
    - Dst: S390X_OFF_SRC_Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:102,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:103,1
    - Dst: S390X_OFF_SCALAR
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:104,1
    - Dst: s390x_pcc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:105,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:106,1
    - Dst: S390X_OFF_RES_X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:106,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:107,1
    - Dst: S390X_OFF_RES_Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:107,1
    - Dst: EC_GROUP*::meth::point_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:108,1
    - Dst: ossl_ec_wNAF_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:118,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:119,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:120,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:121,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 41
    argCount: 9
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    - fc
    - len
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 123
    functionName: ec_GFp_s390x_nistp_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    - BN_CTX_start
    - EC_GROUP*::meth::point_set_affine_coordinates
    - BN_is_negative
    - S390X_OFF_SRC_Y
    - BN_CTX_get
    - EC_POINT_set_to_infinity
    - S390X_OFF_SCALAR
    - EC_GROUP*::meth::point_get_affine_coordinates
    - BN_bn2binpad
    - memset
    - EC_GROUP_get0_generator
    - EC_POINT_is_at_infinity
    - S390X_OFF_RES_Y
    - S390X_OFF_SRC_X
    - ossl_ec_wNAF_mul
    - S390X_OFF_RES_X
    - BN_bin2bn
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_CTX_free
    - s390x_pcc
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GFp_s390x_nistp_mul(const EC_GROUP *group, EC_POINT *r,\n                                  const
      BIGNUM *scalar,\n                                  size_t num, const EC_POINT
      *points[],\n                                  const BIGNUM *scalars[],\n                                  BN_CTX
      *ctx, unsigned int fc, int len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:140,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:143,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:148,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:152,1
    - Dst: ECDSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:153,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:155,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:159,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:162,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:166,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:168,1
    - Dst: S390X_OFF_H
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:168,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:170,1
    - Dst: S390X_OFF_K
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:170,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:177,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:186,1
    - Dst: S390X_OFF_RN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:186,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:188,1
    - Dst: ossl_ec_group_do_inverse_ord
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:193,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:194,1
    - Dst: S390X_OFF_RN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:195,1
    - Dst: s390x_kdsa
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:202,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:203,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:207,1
    - Dst: S390X_OFF_R
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:207,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:208,1
    - Dst: S390X_OFF_S
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:208,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:209,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:215,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:217,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:220,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 72
    argCount: 7
    argNames:
    - dgst
    - dgstlen
    - kinv
    - r
    - eckey
    - fc
    - len
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 222
    functionName: ecdsa_s390x_nistp_sign_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - S390X_OFF_H
    - EC_KEY_get0_private_key
    - ossl_ec_group_do_inverse_ord
    - OPENSSL_cleanse
    - ECDSA_SIG_free
    - s390x_kdsa
    - EC_KEY_get0_group
    - S390X_OFF_K
    - S390X_OFF_RN
    - BN_secure_new
    - BN_bn2binpad
    - BN_clear_free
    - memset
    - BN_new
    - ERR_raise
    - EC_KEY_can_sign
    - ECDSA_SIG_new
    - BN_bin2bn
    - RAND_priv_bytes_ex
    - S390X_OFF_R
    - S390X_OFF_S
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *ecdsa_s390x_nistp_sign_sig(const unsigned char *dgst,\n
      \                                            int dgstlen,\n                                             const
      BIGNUM *kinv,\n                                             const BIGNUM *r,\n
      \                                            EC_KEY *eckey,\n                                             unsigned
      int fc, int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:236,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:237,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:239,1
    - Dst: EC_KEY_can_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:244,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:250,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:254,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:256,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:259,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:263,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:265,1
    - Dst: S390X_OFF_H
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:265,1
    - Dst: EC_GROUP*::meth::point_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:267,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:269,1
    - Dst: S390X_OFF_R
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:269,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:270,1
    - Dst: S390X_OFF_S
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:270,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:271,1
    - Dst: S390X_OFF_X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:271,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:272,1
    - Dst: S390X_OFF_Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:272,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:273,1
    - Dst: s390x_kdsa
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:277,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:279,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c:280,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 6
    argNames:
    - dgst
    - dgstlen
    - sig
    - eckey
    - fc
    - len
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 282
    functionName: ecdsa_s390x_nistp_verify_sig
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_s390x_nistp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - S390X_OFF_H
    - BN_CTX_start
    - s390x_kdsa
    - EC_KEY_get0_group
    - BN_CTX_get
    - S390X_OFF_Y
    - EC_GROUP*::meth::point_get_affine_coordinates
    - BN_bn2binpad
    - memset
    - S390X_OFF_X
    - ERR_raise
    - EC_KEY_can_sign
    - EC_KEY_get0_public_key
    - BN_CTX_end
    - S390X_OFF_R
    - BN_CTX_new_ex
    - S390X_OFF_S
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ecdsa_s390x_nistp_verify_sig(const unsigned char *dgst, int dgstlen,\n
      \                                       const ECDSA_SIG *sig, EC_KEY *eckey,\n
      \                                       unsigned int fc, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - g
    - ','
    - type
    - ','
    - pre
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SETPRECOMP
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETPRECOMP(g, type, pre)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - g
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: HAVEPRECOMP
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVEPRECOMP(g, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - point
    - group
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: ec_point_is_compat
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_is_compat(const EC_POINT *point,\n                                          const
      EC_GROUP *group)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::ladder_pre
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:741,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:743,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 748
    functionName: ec_point_ladder_pre
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::ladder_pre
    - EC_POINT_dbl
    - EC_POINT_copy
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_ladder_pre(const EC_GROUP *group,\n                                           EC_POINT
      *r, EC_POINT *s,\n                                           EC_POINT *p, BN_CTX
      *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::ladder_step
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:755,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:757,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 763
    functionName: ec_point_ladder_step
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::ladder_step
    - EC_POINT_dbl
    - EC_POINT_add
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_ladder_step(const EC_GROUP *group,\n                                            EC_POINT
      *r, EC_POINT *s,\n                                            EC_POINT *p, BN_CTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::ladder_post
      Src: /src/openssl-3.0.15/crypto/ec/ec_local.h:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 773
    functionName: ec_point_ladder_post
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_local.h
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::ladder_post
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_ladder_post(const EC_GROUP *group,\n                                            EC_POINT
      *r, EC_POINT *s,\n                                            EC_POINT *p, BN_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: EC_KEY_OpenSSL
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: EC_KEY_get_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_get_default_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: EC_KEY_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_KEY_set_default_method(const EC_KEY_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: EC_KEY_get_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:68,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:71,1
    - Dst: EC_KEY_METHOD*::init
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - key
    - meth
    argTypes:
    - EC_KEY*
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: EC_KEY_set_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - finish
    - EC_KEY_METHOD*::init
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:87,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:93,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:95,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:103,1
    - Dst: EC_KEY_get_default_method
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:107,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:111,1
    - Dst: ENGINE_get_default_EC
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:116,1
    - Dst: ENGINE_get_EC
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:118,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:120,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:131,1
    - Dst: EC_KEY*::meth::init
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:136,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:137,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:143,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - libctx
    - propq
    - engine
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 145
    functionName: ossl_ec_key_new_method_int
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 2
    functionsReached:
    - ENGINE_init
    - EC_KEY*::meth::init
    - EC_KEY_free
    - ENGINE_get_default_EC
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - ENGINE_get_EC
    - CRYPTO_THREAD_lock_new
    - EC_KEY_get_default_method
    - OPENSSL_strdup
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *ossl_ec_key_new_method_int(OSSL_LIB_CTX *libctx, const char
      *propq,\n                                   ENGINE *engine)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_key_new_method_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: EC_KEY_new_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_new_method_int
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *EC_KEY_new_method(ENGINE *engine)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:166,1
    - Dst: EC_KEY*::meth::compute_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:169,1
    - Dst: KDF
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:172,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:176,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:178,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 180
    functionName: ECDH_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 1
    functionsReached:
    - memcpy
    - EC_KEY*::meth::compute_key
    - ERR_raise
    - OPENSSL_clear_free
    - KDF
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: EC_KEY_METHOD_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: EC_KEY_METHOD_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EC_KEY_METHOD_free(EC_KEY_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 216
    functionName: EC_KEY_METHOD_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: EC_KEY_METHOD_set_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth,\n                              int
      (*keygen)(EC_KEY *key))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: EC_KEY_METHOD_set_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: EC_KEY_METHOD_set_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 264
    functionName: EC_KEY_METHOD_set_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 289
    functionName: EC_KEY_METHOD_get_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_init(const 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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: EC_KEY_METHOD_get_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth,\n                              int
      (**pkeygen)(EC_KEY *key))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: EC_KEY_METHOD_get_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_compute_key(const 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: 4
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 328
    functionName: EC_KEY_METHOD_get_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_sign(const 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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: EC_KEY_METHOD_get_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_kmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_KEY_METHOD_get_verify(const 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_err.c:129,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_err.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: ossl_err_load_EC_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_EC_strings(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:29,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:33,1
    - Dst: ossl_ec_GFp_simple_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:38,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:43,1
    - Dst: ossl_ec_GF2m_simple_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:47,1
    - Dst: EC_GROUP*::meth::point_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:51,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 53
    functionName: EC_POINT_set_compressed_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_oct.c
    functionUses: 1
    functionsReached:
    - ossl_ec_GF2m_simple_set_compressed_coordinates
    - ossl_ec_GFp_simple_set_compressed_coordinates
    - ERR_raise
    - ec_point_is_compat
    - EC_GROUP*::meth::point_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT
      *point,\n                                        const BIGNUM *x, int y_bit,
      BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: EC_POINT_set_compressed_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: EC_POINT_set_compressed_coordinates_GF2m
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_oct.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_compressed_coordinates
    linkageType: ''
    returnType: int
    signature: "int 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:79,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:83,1
    - Dst: ossl_ec_GFp_simple_point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:88,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:93,1
    - Dst: ossl_ec_GF2m_simple_point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:97,1
    - Dst: EC_GROUP*::meth::point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:102,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: EC_POINT_point2oct
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_oct.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::point2oct
    - ossl_ec_GF2m_simple_point2oct
    - ERR_raise
    - ossl_ec_GFp_simple_point2oct
    - ec_point_is_compat
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:110,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:113,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:114,1
    - Dst: ossl_ec_GFp_simple_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:119,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:123,1
    - Dst: ossl_ec_GF2m_simple_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:127,1
    - Dst: EC_GROUP*::meth::oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:130,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: EC_POINT_oct2point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_oct.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::oct2point
    - ERR_raise
    - ossl_ec_GF2m_simple_oct2point
    - ossl_ec_GFp_simple_oct2point
    - ec_point_is_compat
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *point,\n                       const
      unsigned char *buf, size_t len, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:140,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:144,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_oct.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - group
    - point
    - form
    - pbuf
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - unsigned char**
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 154
    functionName: EC_POINT_point2buf
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_oct.c
    functionUses: 4
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ERR_raise
    - EC_POINT_point2oct
    linkageType: ''
    returnType: size_t
    signature: "size_t 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:29,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:34,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:36,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: EC_POINT_point2bn
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - OPENSSL_free
    - EC_POINT_point2buf
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *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: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:48,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:50,1
    - Dst: ECerr
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:51,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:56,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:61,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:62,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:68,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - group
    - bn
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 77
    functionName: EC_POINT_bn2point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_deprecated.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EC_POINT_new
    - ECerr
    - OPENSSL_free
    - EC_POINT_clear_free
    - EC_POINT_oct2point
    - BN_num_bytes
    - BN_bn2binpad
    linkageType: ''
    returnType: EC_POINT
    signature: "EC_POINT *EC_POINT_bn2point(const EC_GROUP *group,\n                            const
      BIGNUM *bn, EC_POINT *point, BN_CTX *ctx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:50,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:58,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:59,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:60,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:61,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:62,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:66,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:68,1
    - Dst: BN_GF2m_mod_sqrt_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:69,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:72,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:74,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:76,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:78,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:80,1
    - Dst: BN_GF2m_mod_solve_quad_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:81,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:83,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:85,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:86,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:88,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:92,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:93,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:97,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:98,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:99,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:102,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:107,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:113,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:115,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 67
    argCount: 5
    argNames:
    - group
    - point
    - x_
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 39
    functionDepth: 8
    functionLinenumber: 39
    functionLinenumberEnd: 118
    functionName: ossl_ec_GF2m_simple_set_compressed_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - ERR_GET_REASON
    - BN_CTX_start
    - ERR_GET_LIB
    - BN_GF2m_mod_sqrt_arr
    - BN_CTX_get
    - BN_GF2m_add
    - BN_CTX_new
    - BN_GF2m_mod_solve_quad_arr
    - ERR_peek_last_error
    - BN_GF2m_mod_arr
    - EC_GROUP*::meth::field_div
    - ERR_raise
    - BN_is_odd
    - EC_POINT_set_affine_coordinates
    - ERR_set_mark
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 21
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:141,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:149,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:166,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:172,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:178,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:180,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:181,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:182,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:186,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:190,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:191,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:193,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:201,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:208,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:211,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:219,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:231,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:237,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:239,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:245,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:247,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 250
    functionName: ossl_ec_GF2m_simple_point2oct
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - EC_GROUP_get_degree
    - EC_GROUP*::meth::field_div
    - BN_bn2bin
    - BN_CTX_start
    - BN_CTX_new
    - ERR_raise
    - BN_CTX_end
    - BN_num_bytes
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_ec_GF2m_simple_point2oct(const EC_GROUP *group,\n                                     const
      EC_POINT *point,\n                                     point_conversion_form_t
      form,\n                                     unsigned char *buf, size_t len,
      BN_CTX *ctx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:295,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:302,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:306,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:309,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:316,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:322,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:328,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:329,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:330,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:331,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:335,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:337,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:338,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:343,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:346,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:348,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:349,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:358,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:360,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:364,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:366,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:367,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:377,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:384,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_oct.c:386,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 5
    argNames:
    - group
    - point
    - buf
    - len
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - unsigned char*
    - size_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 389
    functionName: ossl_ec_GF2m_simple_oct2point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - BN_CTX_free
    - EC_GROUP_get_degree
    - BN_bin2bn
    - EC_GROUP*::meth::field_div
    - EC_POINT_set_to_infinity
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_new
    - ERR_raise
    - EC_POINT_set_compressed_coordinates
    - EC_POINT_set_affine_coordinates
    - BN_CTX_end
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT
      *point,\n                                  const unsigned char *buf, size_t
      len,\n                                  BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: bin32_to_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bin32_to_felem(felem out, const u8 in[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: smallfelem_to_bin32
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_to_bin32(u8 out[32], const smallfelem in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:156,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:161,1
    - Dst: bin32_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: BN_to_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 3
    functionsReached:
    - BN_is_negative
    - BN_bn2lebinpad
    - bin32_to_felem
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_to_bin32
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:172,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: smallfelem_to_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - BN_lebin2bn
    - smallfelem_to_bin32
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *smallfelem_to_BN(BIGNUM *out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: smallfelem_one
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_one(smallfelem out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: smallfelem_assign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_assign(smallfelem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: felem_assign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_assign(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: felem_sum
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_sum(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: felem_small_sum
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_small_sum(felem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: felem_scalar
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar(felem out, const u64 scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - longfelem
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: longfelem_scalar
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longfelem_scalar(longfelem out, const u64 scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - small
    argTypes:
    - felem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: smallfelem_neg
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_neg(felem out, const smallfelem small)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: felem_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: felem_diff_zero107
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff_zero107(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - longfelem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 359
    functionName: longfelem_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longfelem_diff(longfelem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 467
    functionName: felem_shrink
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_shrink(smallfelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: smallfelem_expand
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_expand(felem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 2
    argNames:
    - out
    - small
    argTypes:
    - longfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 555
    functionName: smallfelem_square
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void smallfelem_square(longfelem out, const smallfelem small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:567,1
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - longfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: felem_square
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached:
    - felem_shrink
    - smallfelem_square
    linkageType: ''
    returnType: void
    signature: void felem_square(longfelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 3
    argNames:
    - out
    - small1
    - small2
    argTypes:
    - longfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 680
    functionName: smallfelem_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void smallfelem_mul(longfelem out, const smallfelem small1,\n                           const
      smallfelem small2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:693,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:694,1
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - longfelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 696
    functionName: felem_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 6
    functionsReached:
    - felem_shrink
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: void felem_mul(longfelem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:710,1
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - small1
    - in2
    argTypes:
    - longfelem
    - smallfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: felem_small_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: "void felem_small_mul(longfelem out, const smallfelem small1,\n                            const
      felem in2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 767
    functionName: felem_reduce_
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_reduce_(felem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 798
    functionName: felem_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 7
    functionsReached:
    - felem_reduce_
    linkageType: ''
    returnType: void
    signature: void felem_reduce(felem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_reduce_
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - longfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: felem_reduce_zero105
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_reduce_
    linkageType: ''
    returnType: void
    signature: void felem_reduce_zero105(felem out, const longfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - carry
    - v
    argTypes:
    - u64*
    - u64*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 839
    functionName: subtract_u64
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void subtract_u64(u64 *result, u64 *carry, u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:850,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:893,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:894,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:895,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:896,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:898,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:899,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:900,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:902,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:903,1
    - Dst: subtract_u64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 906
    functionName: felem_contract
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - felem_shrink
    - subtract_u64
    linkageType: ''
    returnType: void
    signature: void felem_contract(smallfelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:913,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:914,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 916
    functionName: smallfelem_square_contract
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - smallfelem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void smallfelem_square_contract(smallfelem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:924,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:925,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - smallfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: smallfelem_mul_contract
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - felem_reduce
    - smallfelem_mul
    linkageType: ''
    returnType: void
    signature: "void smallfelem_mul_contract(smallfelem out, const smallfelem in1,\n
      \                                   const smallfelem in2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - small
    argTypes:
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 967
    functionName: smallfelem_is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: limb
    signature: limb smallfelem_is_zero(const smallfelem small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - small
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: smallfelem_is_zero_int
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - smallfelem_is_zero
    linkageType: ''
    returnType: int
    signature: int smallfelem_is_zero_int(const void *small)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:990,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:991,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:992,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:993,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:994,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:995,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:996,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:997,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:998,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:999,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1000,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1001,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1002,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1003,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1004,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1005,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1006,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1007,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1008,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1009,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1010,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1011,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1012,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1014,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1015,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1017,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1018,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1019,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1021,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1022,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1024,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1025,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1026,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1028,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1029,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1031,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1032,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1033,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1035,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1036,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1039,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1040,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1042,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1043,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1045,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1046,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1048,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1049,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1051,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1052,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1054,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1055,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1057,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1058,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1059,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1060,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1061,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1062,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1063,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1064,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1065,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1066,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1067,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1068,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1069,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1070,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1072,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1073,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 83
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 1074
    functionName: felem_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - felem_mul
    - felem_square
    - felem_reduce
    - felem_assign
    linkageType: ''
    returnType: void
    signature: void felem_inv(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1080,1
    - Dst: felem_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1081,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1083
    functionName: smallfelem_inv_contract
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_contract
    - smallfelem_expand
    - felem_inv
    linkageType: ''
    returnType: void
    signature: void smallfelem_inv_contract(smallfelem out, const smallfelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1111,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1113,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1117,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1118,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1122,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1123,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1125,1
    - Dst: felem_small_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1128,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1129,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1133,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1135,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1137,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1139,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1140,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1142,1
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1145,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1146,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1147,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1148,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1150,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1154,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1156,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1157,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1159,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1160,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1161,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1165,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1167,1
    - Dst: felem_small_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1169,1
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1171,1
    - Dst: longfelem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1173,1
    - Dst: longfelem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1175,1
    - Dst: felem_reduce_zero105
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1177,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1179
    functionName: point_double
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 4
    functionsReached:
    - felem_scalar
    - felem_reduce
    - felem_mul
    - felem_diff
    - felem_assign
    - felem_small_mul
    - felem_reduce_zero105
    - felem_diff_zero107
    - felem_shrink
    - felem_sum
    - felem_square
    - smallfelem_square
    - longfelem_diff
    - longfelem_scalar
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1193,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1194,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1195,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1196,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1198,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1199,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1200,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1201
    functionName: point_double_small
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - point_double
    - smallfelem_expand
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1211
    functionName: copy_conditional
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - smallfelem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: copy_small_conditional
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_small_conditional(felem out, const smallfelem in, limb mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1246,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1248,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1249,1
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1252,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1253,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1255,1
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1259,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1260,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1262,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1264,1
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1267,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1268,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1272,1
    - Dst: felem_small_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1273,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1277,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1278,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1280,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1282,1
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1286,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1287,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1290,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1291,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1299,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1303,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1304,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1308,1
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1313,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1314,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1317,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1319,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1321,1
    - Dst: felem_small_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1324,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1325,1
    - Dst: smallfelem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1329,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1330,1
    - Dst: felem_small_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1333,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1334,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1337,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1339,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1341,1
    - Dst: smallfelem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1342,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1364,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1369,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1370,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1372,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1373,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1376,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1377,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1380,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1381,1
    - Dst: smallfelem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1384,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1385,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1386,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1387,1
    - Dst: felem_sum
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1388,1
    - Dst: felem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1390,1
    - Dst: felem_diff_zero107
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1394,1
    - Dst: felem_small_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1396,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1397,1
    - Dst: longfelem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1398,1
    - Dst: longfelem_diff
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1400,1
    - Dst: felem_reduce_zero105
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1402,1
    - Dst: copy_small_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1405,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1406,1
    - Dst: copy_small_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1407,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1408,1
    - Dst: copy_small_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1409,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1410,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1411,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1412,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 79
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - smallfelem
    - smallfelem
    - smallfelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1414
    functionName: point_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 3
    functionsReached:
    - felem_mul
    - felem_assign
    - felem_small_mul
    - felem_shrink
    - felem_small_sum
    - copy_small_conditional
    - felem_square
    - smallfelem_square
    - point_double
    - felem_scalar
    - copy_conditional
    - smallfelem_is_zero
    - felem_reduce
    - smallfelem_mul
    - felem_diff
    - felem_reduce_zero105
    - felem_diff_zero107
    - felem_sum
    - longfelem_diff
    - longfelem_scalar
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1426,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1427,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1428,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1429,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1431,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1432,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1433,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1420
    functionDepth: 1
    functionLinenumber: 1420
    functionLinenumberEnd: 1434
    functionName: point_add_small
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - felem_shrink
    - smallfelem_expand
    - point_add
    linkageType: ''
    returnType: void
    signature: "void point_add_small(smallfelem x3, smallfelem y3, smallfelem z3,\n
      \                           smallfelem x1, smallfelem y1, smallfelem z1,\n                            smallfelem
      x2, smallfelem y2, smallfelem z2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - u64
    - unsigned int
    - smallfelem[][]
    - smallfelem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1655
    functionName: select_point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void select_point(const u64 idx, unsigned int size,\n                         const
      smallfelem pre_comp[16][3], smallfelem out[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1663
    functionName: get_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char get_bit(const felem_bytearray in, int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1686,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1698,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1703,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1704,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1705,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1706,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1708,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1712,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1715,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1716,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1717,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1722,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1723,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1724,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1725,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1727,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1729,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1737,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1738,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1739,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1740,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1741,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1742,1
    - Dst: ossl_ec_GFp_nistp_recode_scalar_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1743,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1748,1
    - Dst: smallfelem_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1749,1
    - Dst: copy_small_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1751,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1752,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1755,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1759,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1760,1
    - Dst: smallfelem_expand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1761,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1767,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1768,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1769,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[][][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1672
    functionDepth: 1
    functionLinenumber: 1672
    functionLinenumberEnd: 1770
    functionName: batch_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 1
    functionsReached:
    - felem_contract
    - smallfelem_expand
    - felem_assign
    - get_bit
    - select_point
    - point_add
    - smallfelem_neg
    - copy_small_conditional
    - ossl_ec_GFp_nistp_recode_scalar_bits
    - memset
    - point_double
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1779
    functionDepth: 0
    functionLinenumber: 1779
    functionLinenumberEnd: 1841
    functionName: EC_GFp_nistp256_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistp256_method(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1850,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1853,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1859,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1861,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1866
    functionName: nistp256_pre_comp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP256_PRE_COMP
    signature: NISTP256_PRE_COMP *nistp256_pre_comp_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1874
    functionName: EC_nistp256_pre_comp_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTP256_PRE_COMP
    signature: NISTP256_PRE_COMP *EC_nistp256_pre_comp_dup(NISTP256_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1883,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1884,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1887,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1889,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pre
    argTypes:
    - NISTP256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1891
    functionName: EC_nistp256_pre_comp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void EC_nistp256_pre_comp_free(NISTP256_PRE_COMP *pre)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_simple_group_init
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1904
    functionName: ossl_ec_GFp_nistp256_group_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp256_group_init(EC_GROUP *group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1916,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1921,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1922,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1923,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1924,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1927,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1928,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1929,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1930,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1930,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1930,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1931,1
    - Dst: ossl_ec_GFp_simple_group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1935,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1937,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1939,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1906
    functionDepth: 4
    functionLinenumber: 1906
    functionLinenumberEnd: 1942
    functionName: ossl_ec_GFp_nistp256_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_bin2bn
    - BN_CTX_new
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_get
    - BN_cmp
    - ossl_ec_GFp_simple_group_set_curve
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_nistp256_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                         const BIGNUM *a, const BIGNUM
      *b,\n                                         BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1957,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1958,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1961,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1961,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1962,1
    - Dst: felem_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1964,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1965,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1966,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1967,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1968,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1969,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1971,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1972,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1976,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1977,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1978,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1979,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1980,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1982,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1983,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1948
    functionDepth: 5
    functionLinenumber: 1948
    functionLinenumberEnd: 1988
    functionName: ossl_ec_GFp_nistp256_point_get_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - felem_reduce
    - felem_mul
    - felem_inv
    - ERR_raise
    - smallfelem_to_BN
    - BN_to_felem
    - felem_contract
    - felem_square
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_nistp_points_make_affine_internal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_smallfelems
    argTypes:
    - size_t
    - smallfelem[][]
    - smallfelem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 2017
    functionName: make_points_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 2
    functionsReached:
    - ossl_ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "void make_points_affine(size_t num, smallfelem points[][3],\n                               smallfelem
      tmp_smallfelems[])"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: smallfelem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2034,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2048,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2049,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2050,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2051,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2052,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2064,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2068,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2069,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2070,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2071,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2074,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2078,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2096,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2097,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2103,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2111,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2112,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2119,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2128,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2129,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2134,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2135,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2138,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2141,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2145,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2149,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2150,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2151,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2153,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2154,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2155,1
    - Dst: point_add_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2158,1
    - Dst: point_double_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2165,1
    - Dst: make_points_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2176,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2181,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2183,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2183,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2189,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2192,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2194,1
    - Dst: batch_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2197,1
    - Dst: batch_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2203,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2208,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2209,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2210,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2211,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2211,1
    - Dst: smallfelem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2213,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2216,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2220,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2221,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2222,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2223,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2224,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 121
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2023
    functionDepth: 5
    functionLinenumber: 2023
    functionLinenumberEnd: 2226
    functionName: ossl_ec_GFp_nistp256_points_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - EC_POINT_new
    - BN_CTX_start
    - smallfelem_to_BN
    - felem_shrink
    - BN_is_negative
    - BN_CTX_get
    - BN_to_felem
    - memset
    - EC_POINT_free
    - point_add_small
    - point_double_small
    - ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
    - EC_GROUP_get0_generator
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - BN_nnmod
    - smallfelem
    - OPENSSL_malloc
    - BN_bn2lebinpad
    - batch_mul
    - BN_CTX_end
    - EC_POINT_cmp
    - make_points_affine
    - felem_contract
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2242,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2246,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2251,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2252,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2253,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2259,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2262,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2263,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2264,1
    - Dst: nistp256_pre_comp_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2266,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2271,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2272,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2275,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2276,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2277,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2279,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2280,1
    - Dst: felem_shrink
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2281,1
    - Dst: point_double_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2287,1
    - Dst: point_double_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2292,1
    - Dst: point_double_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2301,1
    - Dst: point_double_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2307,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2317,1
    - Dst: point_add_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2320,1
    - Dst: point_add_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2326,1
    - Dst: point_add_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2332,1
    - Dst: point_add_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2340,1
    - Dst: point_add_small
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2347,1
    - Dst: make_points_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2358,1
    - Dst: SETPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2361,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2366,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2367,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2369,1
    - Dst: EC_nistp256_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2371,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2228
    functionDepth: 4
    functionLinenumber: 2228
    functionLinenumberEnd: 2373
    functionName: ossl_ec_GFp_nistp256_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EC_POINT_new
    - BN_CTX_start
    - felem_shrink
    - BN_CTX_get
    - BN_CTX_new
    - BN_to_felem
    - EC_pre_comp_free
    - EC_POINT_free
    - memset
    - point_add_small
    - point_double_small
    - SETPRECOMP
    - nistp256_pre_comp_new
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - EC_nistp256_pre_comp_free
    - BN_CTX_end
    - EC_POINT_cmp
    - make_points_affine
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp256_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c:2377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2378
    functionName: ossl_ec_GFp_nistp256_have_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp256.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp256_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 83
    functionName: EC_GFp_nist_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nist.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nist_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_simple_group_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: ossl_ec_GFp_nist_group_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_simple_group_copy
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:100,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:103,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:105,1
    - Dst: BN_get0_nist_prime_192
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:105,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:107,1
    - Dst: BN_get0_nist_prime_224
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:107,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:109,1
    - Dst: BN_get0_nist_prime_256
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:109,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:111,1
    - Dst: BN_get0_nist_prime_384
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:111,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:113,1
    - Dst: BN_get0_nist_prime_521
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:113,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:116,1
    - Dst: ossl_ec_GFp_simple_group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:120,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:123,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 126
    functionName: ossl_ec_GFp_nist_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - BN_get0_nist_prime_256
    - BN_CTX_start
    - BN_get0_nist_prime_521
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_get0_nist_prime_224
    - BN_ucmp
    - BN_get0_nist_prime_384
    - BN_get0_nist_prime_192
    - BN_CTX_free
    - ossl_ec_GFp_simple_group_set_curve
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                     const BIGNUM *a, const BIGNUM *b,\n
      \                                    BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:135,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:139,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:142,1
    - Dst: EC_GROUP*::field_mod_func
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:144,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 151
    functionName: ossl_ec_GFp_nist_field_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::field_mod_func
    - BN_CTX_free
    - ERR_raise
    - BN_CTX_new_ex
    - BN_mul
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_nist_field_mul(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                               const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:160,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:164,1
    - Dst: BN_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:167,1
    - Dst: EC_GROUP*::field_mod_func
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:169,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nist.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: ossl_ec_GFp_nist_field_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nist.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::field_mod_func
    - ERR_raise
    - BN_CTX_new_ex
    - BN_CTX_free
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_nist_field_sqr(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                               BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 82
    functionName: EC_GFp_simple_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_simple_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:100,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:101,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:102,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:104,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:105,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: ossl_ec_GFp_simple_group_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 2
    functionsReached:
    - BN_free
    - BN_new
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_simple_group_init(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:115,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:116,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: ossl_ec_GFp_simple_group_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GFp_simple_group_finish(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:122,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:123,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: ossl_ec_GFp_simple_group_clear_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GFp_simple_group_clear_finish(EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:129,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:131,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: ossl_ec_GFp_simple_group_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 1
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_simple_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:150,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:150,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:151,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:156,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:161,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:162,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:167,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:169,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:172,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:175,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:177,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:181,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:184,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:188,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:190,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:195,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:196,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 141
    functionDepth: 5
    functionLinenumber: 141
    functionLinenumberEnd: 198
    functionName: ossl_ec_GFp_simple_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 3
    functionsReached:
    - BN_is_odd
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_copy
    - BN_nnmod
    - BN_add_word
    - EC_GROUP*::meth::field_encode
    - BN_set_negative
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_group_set_curve(EC_GROUP *group,\n                                       const
      BIGNUM *p, const BIGNUM *a,\n                                       const BIGNUM
      *b, BN_CTX *ctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:207,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:214,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:219,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:223,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:228,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:232,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:241,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 243
    functionName: ossl_ec_GFp_simple_group_get_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new_ex
    - BN_copy
    - BN_CTX_free
    - EC_GROUP*::meth::field_decode
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_group_get_curve(const EC_GROUP *group, BIGNUM
      *p,\n                                       BIGNUM *a, BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: ossl_ec_GFp_simple_group_get_degree
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_simple_group_get_degree(const EC_GROUP *group)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:259,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:261,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:265,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:266,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:267,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:268,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:269,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:270,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:275,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:277,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:280,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:282,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:291,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:292,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:294,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:295,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:297,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:299,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:303,1
    - Dst: BN_mul_word
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:305,1
    - Dst: BN_mod_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:309,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:311,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:317,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:318,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 320
    functionName: ossl_ec_GFp_simple_group_check_discriminant
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mul_word
    - BN_mod_mul
    - BN_lshift
    - BN_CTX_free
    - BN_mod_sqr
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_copy
    - BN_mod_add
    - BN_CTX_get
    - EC_GROUP*::meth::field_decode
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_group_check_discriminant(const EC_GROUP *group,\n
      \                                               BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:324,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:325,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:326,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:330,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:331,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 336
    functionName: ossl_ec_GFp_simple_point_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_new
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_simple_point_init(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:340,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:341,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: ossl_ec_GFp_simple_point_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GFp_simple_point_finish(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:347,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:348,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: ossl_ec_GFp_simple_point_clear_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GFp_simple_point_clear_finish(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:355,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:357,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: ossl_ec_GFp_simple_point_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_simple_point_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: ossl_ec_GFp_simple_point_set_to_infinity
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_point_set_to_infinity(const EC_GROUP *group,\n
      \                                            EC_POINT *point)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:386,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:392,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:395,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:401,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:404,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:412,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:414,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:417,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:420,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:431,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 433
    functionName: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 2
    functionsReached:
    - BN_is_one
    - BN_CTX_new_ex
    - BN_nnmod
    - EC_GROUP*::meth::field_encode
    - BN_CTX_free
    - EC_GROUP*::meth::field_set_to_one
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 16
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:445,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:451,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:455,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:459,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:464,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:468,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:472,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:480,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 482
    functionName: ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new_ex
    - BN_copy
    - EC_GROUP*::meth::field_decode
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:493,1
    - Dst: EC_POINT_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:497,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: ossl_ec_GFp_simple_point_set_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - ERR_raise
    - EC_POINT_set_Jprojective_coordinates_GFp
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 28
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:511,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:512,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:517,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:522,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:523,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:524,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:525,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:526,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:533,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:540,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:543,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:547,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:552,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:556,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:561,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:562,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:568,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:571,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:580,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:589,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:592,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:600,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:608,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:609,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 91
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 611
    functionName: ossl_ec_GFp_simple_point_get_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_inv
    - EC_POINT_is_at_infinity
    - EC_GROUP*::meth::field_sqr
    - BN_mod_mul
    - BN_is_one
    - BN_CTX_free
    - BN_mod_sqr
    - BN_CTX_start
    - ERR_raise
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_copy
    - BN_CTX_get
    - EC_GROUP*::meth::field_decode
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 48
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:625,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:626,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:627,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:628,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:629,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:636,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:641,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:642,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:643,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:644,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:645,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:646,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:647,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:648,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:660,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:662,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:667,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:669,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:673,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:675,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:682,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:684,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:689,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:691,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:695,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:697,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:703,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:705,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:710,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:711,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:713,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:714,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:719,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:727,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:729,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:736,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:740,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:743,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:746,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:749,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:756,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:758,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:760,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:762,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:767,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:769,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:774,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:776,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:778,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:780,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:782,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:783,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:786,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:793,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:794,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 162
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 613
    functionDepth: 6
    functionLinenumber: 613
    functionLinenumberEnd: 796
    functionName: ossl_ec_GFp_simple_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - field_sqr
    - BN_CTX_start
    - BN_mod_add_quick
    - BN_CTX_get
    - BN_mod_sub_quick
    - EC_POINT_dbl
    - EC_POINT_is_at_infinity
    - BN_add
    - BN_is_odd
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_copy
    - field_mul
    - BN_zero
    - BN_rshift1
    - BN_mod_lshift1_quick
    - EC_POINT_copy
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_add(const EC_GROUP *group, EC_POINT *r, const
      EC_POINT *a,\n                           const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:809,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:810,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:820,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:825,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:826,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:827,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:828,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:829,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:841,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:843,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:845,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:847,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:851,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:853,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:855,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:857,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:859,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:861,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:868,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:870,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:872,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:874,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:876,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:878,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:880,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:887,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:890,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:893,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:899,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:901,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:903,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:908,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:910,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:912,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:917,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:919,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:924,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:926,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:928,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:935,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:936,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 130
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 798
    functionDepth: 6
    functionLinenumber: 798
    functionLinenumberEnd: 938
    functionName: ossl_ec_GFp_simple_dbl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - field_sqr
    - BN_CTX_free
    - BN_mod_sub_quick
    - BN_CTX_start
    - BN_CTX_end
    - BN_mod_lshift_quick
    - BN_CTX_new_ex
    - BN_zero
    - BN_mod_add_quick
    - field_mul
    - BN_copy
    - BN_mod_lshift1_quick
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_dbl(const EC_GROUP *group, EC_POINT *r, const
      EC_POINT *a,\n                           BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:943,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:943,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 940
    functionDepth: 5
    functionLinenumber: 940
    functionLinenumberEnd: 948
    functionName: ossl_ec_GFp_simple_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_usub
    - EC_POINT_is_at_infinity
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_invert(const EC_GROUP *group, EC_POINT *point,\n
      \                             BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: ossl_ec_GFp_simple_is_at_infinity
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_is_at_infinity(const EC_GROUP *group,\n                                      const
      EC_POINT *point)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:967,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:975,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:980,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:981,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:982,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:983,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:984,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:999,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1003,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1005,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1007,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1012,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1014,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1016,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1018,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1021,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1023,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1025,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1030,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1032,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1038,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1040,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1043,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1048,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1051,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1054,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1055,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 82
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 956
    functionDepth: 6
    functionLinenumber: 956
    functionLinenumberEnd: 1057
    functionName: ossl_ec_GFp_simple_is_on_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - field_sqr
    - BN_CTX_free
    - BN_mod_sub_quick
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_new_ex
    - field_mul
    - BN_mod_add_quick
    - BN_ucmp
    - BN_mod_lshift1_quick
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT
      *point,\n                                   BN_CTX *ctx)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1077,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1078,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1081,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1085,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1085,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1092,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1097,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1098,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1099,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1100,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1101,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1113,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1115,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1121,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1123,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1130,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1136,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1138,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1144,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1146,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1153,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1162,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1163,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 78
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1165
    functionName: ossl_ec_GFp_simple_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - field_sqr
    - BN_CTX_free
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_new_ex
    - field_mul
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_cmp(const EC_GROUP *group, const EC_POINT *a,\n
      \                          const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1174,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1178,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1183,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1184,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1185,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1189,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1191,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1194,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1201,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1202,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1204
    functionName: ossl_ec_GFp_simple_make_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - EC_POINT_set_affine_coordinates
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_make_affine(const EC_GROUP *group, EC_POINT
      *point,\n                                   BN_CTX *ctx)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1219,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1224,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1225,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1226,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1230,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1234,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1244,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1245,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1249,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1252,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1258,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1259,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1264,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1275,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1284,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1286,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1295,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1300,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1306,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1309,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1314,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1316,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1325,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1328,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1330,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1333,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1335,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1339,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1342,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1352,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1353,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1358,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1360,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 121
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1363
    functionName: ossl_ec_GFp_simple_points_make_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_one
    - EC_GROUP*::meth::field_inv
    - EC_GROUP*::meth::field_sqr
    - BN_new
    - BN_CTX_free
    - OPENSSL_malloc
    - BN_CTX_start
    - EC_GROUP*::meth::field_mul
    - ERR_raise
    - BN_CTX_end
    - OPENSSL_free
    - BN_CTX_new_ex
    - BN_copy
    - BN_clear_free
    - EC_GROUP*::meth::field_encode
    - BN_CTX_get
    - EC_GROUP*::meth::field_set_to_one
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_points_make_affine(const EC_GROUP *group, size_t
      num,\n                                          EC_POINT *points[], BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    functionName: ossl_ec_GFp_simple_field_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_field_mul(const EC_GROUP *group, BIGNUM *r,
      const BIGNUM *a,\n                                 const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1371
    functionDepth: 2
    functionLinenumber: 1371
    functionLinenumberEnd: 1375
    functionName: ossl_ec_GFp_simple_field_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_mod_sqr
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_field_sqr(const EC_GROUP *group, BIGNUM *r,
      const BIGNUM *a,\n                                 BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1391,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1394,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1395,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1399,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1401,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1404,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1407,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1408,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1412,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1418,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1419,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1383
    functionDepth: 7
    functionLinenumber: 1383
    functionLinenumberEnd: 1421
    functionName: ossl_ec_GFp_simple_field_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mod_inverse
    - BN_CTX_secure_new_ex
    - BN_CTX_start
    - EC_GROUP*::meth::field_mul
    - ERR_raise
    - BN_CTX_end
    - BN_priv_rand_range_ex
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_field_inv(const EC_GROUP *group, BIGNUM *r,\n
      \                                const BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1437,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1438,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1439,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1441,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1451,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1452,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1453,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1458,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1462,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1463,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1464,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1465,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1466,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1467,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1474,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - group
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1430
    functionDepth: 7
    functionLinenumber: 1430
    functionLinenumberEnd: 1476
    functionName: ossl_ec_GFp_simple_blind_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - ERR_set_mark
    - BN_CTX_start
    - ERR_raise
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_priv_rand_range_ex
    - ERR_pop_to_mark
    - EC_GROUP*::meth::field_encode
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT
      *p,\n                                         BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1506,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1507,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1508,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1509,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1510,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1512,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1513,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1514,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1515,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1517,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1522,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1524,1
    - Dst: BN_priv_rand_range_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1528,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1530,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1534,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1535,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1539,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1540,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1541,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 23
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1493
    functionDepth: 7
    functionLinenumber: 1493
    functionLinenumberEnd: 1548
    functionName: ossl_ec_GFp_simple_ladder_pre
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - BN_mod_sub_quick
    - EC_GROUP*::meth::field_mul
    - BN_mod_lshift_quick
    - BN_mod_add_quick
    - BN_priv_rand_range_ex
    - EC_GROUP*::meth::field_encode
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_ladder_pre(const EC_GROUP *group,\n                                  EC_POINT
      *r, EC_POINT *s,\n                                  EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1570,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1571,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1572,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1573,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1574,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1575,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1576,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1577,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1580,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1581,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1582,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1583,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1584,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1585,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1586,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1587,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1588,1
    - Dst: BN_mod_lshift_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1589,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1590,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1591,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1592,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1594,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1595,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1596,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1598,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1599,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1600,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1601,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1602,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1603,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1604,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1605,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1606,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1607,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1608,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1609,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1611,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1612,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1613,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1614,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1615,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1616,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1618,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1624,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 17
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1563
    functionDepth: 6
    functionLinenumber: 1563
    functionLinenumberEnd: 1626
    functionName: ossl_ec_GFp_simple_ladder_step
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - BN_mod_sub_quick
    - BN_CTX_start
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_mod_lshift_quick
    - BN_mod_add_quick
    - BN_mod_lshift1_quick
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_ladder_step(const EC_GROUP *group,\n                                   EC_POINT
      *r, EC_POINT *s,\n                                   EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1658,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1659,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1661,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1662,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1663,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1668,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1669,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1670,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1671,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1672,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1673,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1674,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1675,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1678,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1679,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1680,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1681,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1682,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1683,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1684,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1685,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1686,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1687,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1688,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1689,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1690,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1691,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1692,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1693,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1694,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1695,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1696,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1697,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1698,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1699,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1701,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1702,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1704,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1705,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1706,1
    - Dst: EC_GROUP*::meth::field_set_to_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1710,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1713,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c:1721,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 34
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1651
    functionDepth: 6
    functionLinenumber: 1651
    functionLinenumberEnd: 1723
    functionName: ossl_ec_GFp_simple_ladder_post
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_inv
    - BN_one
    - EC_GROUP*::meth::field_sqr
    - EC_GROUP*::meth::field_set_to_one
    - EC_POINT_set_to_infinity
    - BN_mod_sub_quick
    - BN_CTX_start
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_mod_add_quick
    - EC_GROUP*::meth::field_encode
    - BN_mod_lshift1_quick
    - EC_POINT_copy
    - EC_POINT_invert
    - BN_CTX_get
    - EC_GROUP*::meth::field_decode
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_ladder_post(const EC_GROUP *group,\n                                   EC_POINT
      *r, EC_POINT *s,\n                                   EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_do_sign_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - eckey
    argTypes:
    - unsigned char*
    - int
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: ECDSA_do_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - ECDSA_do_sign_ex
    linkageType: ''
    returnType: ECDSA_SIG
    signature: ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dlen, EC_KEY
      *eckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign_sig
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - dgst
    - dlen
    - kinv
    - rp
    - eckey
    argTypes:
    - unsigned char*
    - int
    - BIGNUM*
    - BIGNUM*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: ECDSA_do_sign_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c
    functionUses: 2
    functionsReached:
    - EC_KEY*::meth::sign_sig
    - ERR_raise
    linkageType: ''
    returnType: ECDSA_SIG
    signature: "ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dlen,\n
      \                           const BIGNUM *kinv, const BIGNUM *rp,\n                            EC_KEY
      *eckey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_sign_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:38,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: ECDSA_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - ECDSA_sign_ex
    linkageType: ''
    returnType: int
    signature: "int ECDSA_sign(int type, const unsigned char *dgst, int dlen, unsigned
      char\n               *sig, unsigned int *siglen, EC_KEY *eckey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:46,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:47,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: ECDSA_sign_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::sign
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::sign_setup
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - eckey
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - EC_KEY*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: ECDSA_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_sign.c
    functionUses: 0
    functionsReached:
    - EC_KEY*::meth::sign_setup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,\n
      \                    BIGNUM **rp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:60,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:69,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: ec_pre_comp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EC_PRE_COMP
    signature: EC_PRE_COMP *ec_pre_comp_new(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pre
    argTypes:
    - EC_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: EC_ec_pre_comp_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: EC_PRE_COMP
    signature: EC_PRE_COMP *EC_ec_pre_comp_dup(EC_PRE_COMP *pre)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:93,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:94,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:97,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:104,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:106,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pre
    argTypes:
    - EC_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: EC_ec_pre_comp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - EC_POINT_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void EC_ec_pre_comp_free(EC_PRE_COMP *pre)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: EC_POINT_BN_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_POINT_BN_set_flags(P, flags)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:158,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:159,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:161,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:162,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:165,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:166,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:170,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:172,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:174,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:180,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:185,1
    - Dst: EC_POINT_BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:190,1
    - Dst: EC_POINT_BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:191,1
    - Dst: EC_POINT_BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:192,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:194,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:195,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:196,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:198,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:202,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:203,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:213,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:214,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:215,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:217,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:222,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:226,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:228,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:228,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:233,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:234,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:240,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:243,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:245,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:252,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:253,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:255,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:256,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:257,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:258,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:259,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:260,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:261,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:262,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:263,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:265,1
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:272,1
    - Dst: ec_point_ladder_pre
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:277,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:278,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:353,1
    - Dst: EC_POINT_CSWAP
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:354,1
    - Dst: ec_point_ladder_step
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:357,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:358,1
    - Dst: EC_POINT_CSWAP
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:368,1
    - Dst: ec_point_ladder_post
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:372,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:373,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:380,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:381,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:382,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 119
    argCount: 5
    argNames:
    - group
    - r
    - scalar
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 385
    functionName: ossl_ec_scalar_mul_ladder
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - ec_point_ladder_pre
    - bn_wexpand
    - ec_point_ladder_post
    - ec_point_ladder_step
    - EC_GROUP*::meth::make_affine
    - EC_POINT_new
    - BN_CTX_start
    - BN_is_bit_set
    - BN_set_flags
    - BN_is_negative
    - EC_POINT_BN_set_flags
    - BN_CTX_get
    - EC_POINT_CSWAP
    - EC_POINT_set_to_infinity
    - EC_POINT_free
    - BN_mul
    - EC_POINT_is_at_infinity
    - BN_num_bits
    - ERR_raise
    - BN_consttime_swap
    - BN_nnmod
    - BN_add
    - BN_CTX_end
    - EC_POINT_clear_free
    - BN_copy
    - bn_get_top
    - EC_POINT_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_scalar_mul_ladder(const EC_GROUP *group, EC_POINT *r,\n
      \                             const BIGNUM *scalar, const EC_POINT *point,\n
      \                             BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - c
    - ','
    - a
    - ','
    - b
    - ','
    - w
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: EC_POINT_CSWAP
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_POINT_CSWAP(c, a, b, w, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: EC_window_bits_for_scalar_size
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EC_window_bits_for_scalar_size(b)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:438,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:438,1
    - Dst: ossl_ec_scalar_mul_ladder
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:453,1
    - Dst: ossl_ec_scalar_mul_ladder
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:463,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:469,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:471,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:479,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:487,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:499,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:513,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:514,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:516,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:517,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:524,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:536,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:536,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:537,1
    - Dst: bn_compute_wNAF
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:541,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:554,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:563,1
    - Dst: bn_compute_wNAF
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:571,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:606,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:607,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:621,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:622,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:634,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:636,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:637,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:640,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:645,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:646,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:653,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:663,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:665,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:675,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:682,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:686,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:698,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:701,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:706,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:709,1
    - Dst: EC_GROUP*::meth::points_make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:717,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:724,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:741,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:750,1
    - Dst: ossl_ec_point_blind_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:761,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:762,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:768,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:778,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:782,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:789,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:790,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:791,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:796,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:798,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:802,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:804,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:806,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 252
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 808
    functionName: ossl_ec_wNAF_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 1
    functionsReached:
    - memcpy
    - EC_POINT_new
    - ossl_ec_point_blind_coordinates
    - EC_POINT_add
    - EC_GROUP*::meth::points_make_affine
    - bn_compute_wNAF
    - EC_POINT_set_to_infinity
    - ossl_ec_scalar_mul_ladder
    - EC_POINT_dbl
    - EC_POINT_free
    - EC_GROUP_get0_generator
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - EC_POINT_invert
    - OPENSSL_malloc
    - EC_window_bits_for_scalar_size
    - EC_POINT_clear_free
    - EC_POINT_cmp
    - EC_POINT_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_wNAF_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: 22
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:845,1
    - Dst: ec_pre_comp_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:846,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:849,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:851,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:857,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:862,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:865,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:868,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:869,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:873,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:882,1
    - Dst: EC_window_bits_for_scalar_size
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:884,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:895,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:897,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:904,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:905,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:910,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:911,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:912,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:916,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:923,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:926,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:933,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:944,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:948,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:951,1
    - Dst: EC_GROUP*::meth::points_make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:958,1
    - Dst: SETPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:968,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:974,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:976,1
    - Dst: EC_ec_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:978,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:983,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:984,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:986,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:987,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 113
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 989
    functionName: ossl_ec_wNAF_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - EC_POINT_new
    - BN_CTX_start
    - EC_ec_pre_comp_free
    - EC_POINT_add
    - EC_GROUP_get0_order
    - EC_GROUP*::meth::points_make_affine
    - BN_CTX_new
    - EC_POINT_dbl
    - EC_pre_comp_free
    - EC_POINT_free
    - EC_GROUP_get0_generator
    - BN_num_bits
    - ERR_raise
    - ec_pre_comp_new
    - OPENSSL_free
    - SETPRECOMP
    - OPENSSL_malloc
    - EC_window_bits_for_scalar_size
    - BN_CTX_end
    - EC_POINT_copy
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ossl_ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ec_mult.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 994
    functionName: ossl_ec_wNAF_have_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_mult.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ossl_ec_wNAF_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:32,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:39,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:40,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:41,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:43,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:54,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:58,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:60,1
    - Dst: BN_mod_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:63,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:65,1
    - Dst: BN_mod_lshift1_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:71,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:73,1
    - Dst: BN_mod_sub_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:75,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:79,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:81,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:85,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:89,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:95,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:97,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:100,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:104,1
    - Dst: BN_mod_sqrt
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:105,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:107,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:109,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:110,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:111,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:112,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:117,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:121,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:123,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:124,1
    - Dst: BN_kronecker
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:132,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:137,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:140,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:144,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:148,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:154,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:155,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 115
    argCount: 5
    argNames:
    - group
    - point
    - x_
    - y_bit
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 22
    functionDepth: 7
    functionLinenumber: 22
    functionLinenumberEnd: 157
    functionName: ossl_ec_GFp_simple_set_compressed_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::field_sqr
    - ERR_GET_REASON
    - BN_mod_sqr
    - BN_CTX_start
    - ERR_GET_LIB
    - ERR_clear_last_mark
    - BN_mod_add_quick
    - BN_CTX_get
    - BN_mod_mul
    - BN_mod_sub_quick
    - ERR_peek_last_error
    - BN_usub
    - ERR_raise
    - BN_nnmod
    - EC_GROUP*::meth::field_decode
    - BN_is_odd
    - BN_mod_sqrt
    - EC_POINT_set_affine_coordinates
    - ERR_set_mark
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_kronecker
    - BN_CTX_new_ex
    - ERR_pop_to_mark
    - BN_mod_lshift1_quick
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:172,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:180,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:189,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:197,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:202,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:207,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:209,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:210,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:214,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:218,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:225,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:227,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:237,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:245,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:252,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:257,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:263,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:264,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:269,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 272
    functionName: ossl_ec_GFp_simple_point2oct
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_bn2bin
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_num_bytes
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_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: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:286,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:295,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:299,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:305,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:309,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:312,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:318,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:323,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:328,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:329,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:330,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:334,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:336,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:337,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:342,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:345,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:347,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:348,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:352,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:353,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:362,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_oct.c:369,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 372
    functionName: ossl_ec_GFp_simple_oct2point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_oct.c
    functionUses: 1
    functionsReached:
    - BN_is_odd
    - BN_CTX_free
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - EC_POINT_set_to_infinity
    - EC_POINT_set_compressed_coordinates
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_num_bytes
    - BN_ucmp
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_simple_oct2point(const EC_GROUP *group, EC_POINT *point,\n
      \                                const unsigned char *buf, size_t len,\n                                 BN_CTX
      *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:56,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: ossl_ec_encoding_name2id
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_ec_encoding_name2id(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: ec_param_encoding_id2name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *ec_param_encoding_id2name(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: ossl_ec_check_group_type_id2name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *ossl_ec_check_group_type_id2name(int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:93,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: ec_check_group_type_name2id
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ec_check_group_type_name2id(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_check_group_type_name2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:102,1
    - Dst: EC_KEY_clear_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:106,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ec
    - name
    argTypes:
    - EC_KEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: ossl_ec_set_check_group_type_from_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ec_check_group_type_name2id
    - EC_KEY_set_flags
    - EC_KEY_clear_flags
    linkageType: ''
    returnType: int
    signature: int ossl_ec_set_check_group_type_from_name(EC_KEY *ec, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:122,1
    - Dst: ossl_ec_set_check_group_type_from_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ec
    - p
    argTypes:
    - EC_KEY*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: ec_set_check_group_type_from_param
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ec_set_check_group_type_from_name
    - OSSL_PARAM_get_utf8_ptr
    linkageType: ''
    returnType: int
    signature: int ec_set_check_group_type_from_param(EC_KEY *ec, const OSSL_PARAM
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:138,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: ossl_ec_pt_format_name2id
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_ec_pt_format_name2id(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: ossl_ec_pt_format_id2name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *ossl_ec_pt_format_id2name(int id)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:179,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:183,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:184,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:185,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:188,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:193,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:197,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:198,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:201,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:202,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:204,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:209,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:214,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:219,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:224,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:229,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:234,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:237,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:241,1
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:246,1
    - Dst: ossl_param_build_set_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:252,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:257,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:259,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:264,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:269,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:271,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:272,1
    - Dst: ossl_param_build_set_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:279,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 94
    argCount: 5
    argNames:
    - group
    - tmpl
    - params
    - bnctx
    - genbuf
    argTypes:
    - EC_GROUP*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    - BN_CTX*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 286
    functionName: ec_group_explicit_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ossl_param_build_set_octet_string
    - EC_GROUP_get0_seed
    - EC_GROUP_get_curve
    - ossl_param_build_set_utf8_string
    - ossl_param_build_set_bn
    - EC_GROUP_get_field_type
    - EC_GROUP_get0_generator
    - EC_GROUP_get_point_conversion_form
    - EC_GROUP_get0_cofactor
    - EC_POINT_point2buf
    - ERR_raise
    - EC_GROUP_get_seed_len
    - OSSL_PARAM_locate_const
    - EC_GROUP_get0_order
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ec_group_explicit_todata(const EC_GROUP *group, OSSL_PARAM_BLD
      *tmpl,\n                                    OSSL_PARAM params[], BN_CTX *bnctx,\n
      \                                   unsigned char **genbuf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:298,1
    - Dst: EC_GROUP_get_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:302,1
    - Dst: ossl_ec_pt_format_id2name
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:303,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:305,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:308,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:311,1
    - Dst: ec_param_encoding_id2name
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:312,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:314,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:317,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:321,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:326,1
    - Dst: ec_group_explicit_todata
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:334,1
    - Dst: OSSL_EC_curve_nid2name
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:339,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:342,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:345,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 7
    argNames:
    - group
    - tmpl
    - params
    - libctx
    - propq
    - bnctx
    - genbuf
    argTypes:
    - EC_GROUP*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    - OSSL_LIB_CTX*
    - char*
    - BN_CTX*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 352
    functionName: ossl_ec_group_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ossl_param_build_set_utf8_string
    - ec_param_encoding_id2name
    - EC_GROUP_get_asn1_flag
    - ossl_ec_pt_format_id2name
    - EC_GROUP_get_point_conversion_form
    - EC_GROUP_get_curve_name
    - ERR_raise
    - ossl_param_build_set_int
    - ec_group_explicit_todata
    - OSSL_EC_curve_nid2name
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_group_todata(const EC_GROUP *group, OSSL_PARAM_BLD *tmpl,\n
      \                        OSSL_PARAM params[], OSSL_LIB_CTX *libctx,\n                         const
      char *propq,\n                         BN_CTX *bnctx, unsigned char **genbuf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:361,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:373,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:377,1
    - Dst: EC_KEY_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:381,1
    - Dst: EC_KEY_clear_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ec
    - mode
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 386
    functionName: ossl_ec_set_ecdh_cofactor_mode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - BN_is_one
    - EC_GROUP_get0_cofactor
    - EC_KEY_clear_flags
    - EC_KEY_set_flags
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ossl_ec_set_ecdh_cofactor_mode(EC_KEY *ec, int mode)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:407,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:412,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:415,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:417,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:417,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:422,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:424,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:425,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:465,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:466,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:469,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:471,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:473,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:475,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:477,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:482,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:486,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:492,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:493,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:494,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:495,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 3
    argNames:
    - ec
    - params
    - include_private
    argTypes:
    - EC_KEY*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 396
    functionDepth: 5
    functionLinenumber: 396
    functionLinenumberEnd: 497
    functionName: ossl_ec_key_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - bn_wexpand
    - EC_POINT_new
    - BN_set_flags
    - EC_POINT_oct2point
    - ossl_ec_key_get_libctx
    - EC_GROUP_get0_order
    - EC_KEY_get0_group
    - EC_KEY_set_public_key
    - BN_secure_new
    - OSSL_PARAM_locate_const
    - BN_clear_free
    - EC_POINT_free
    - OSSL_PARAM_get_BN
    - OPENSSL_free
    - EC_KEY_set_private_key
    - OSSL_PARAM_get_octet_string
    - BN_CTX_new_ex
    - bn_get_top
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_fromdata(EC_KEY *ec, const OSSL_PARAM params[], int
      include_private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_from_params
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:507,1
    - Dst: ossl_ec_key_get_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:507,1
    - Dst: ossl_ec_key_get0_propq
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:508,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:510,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ec
    - params
    argTypes:
    - EC_KEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 516
    functionName: ossl_ec_group_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_group
    - EC_GROUP_new_from_params
    - EC_GROUP_free
    - ossl_ec_key_get0_propq
    - ossl_ec_key_get_libctx
    linkageType: ''
    returnType: int
    signature: int ossl_ec_group_fromdata(EC_KEY *ec, const OSSL_PARAM params[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:523,1
    - Dst: ossl_ec_pt_format_param2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:525,1
    - Dst: ECerr
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:526,1
    - Dst: EC_KEY_set_conv_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ec
    - params
    argTypes:
    - EC_KEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: ec_key_point_format_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ECerr
    - EC_KEY_set_conv_form
    - ossl_ec_pt_format_param2id
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int ec_key_point_format_fromdata(EC_KEY *ec, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:538,1
    - Dst: ec_set_check_group_type_from_param
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ec
    - params
    argTypes:
    - EC_KEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 534
    functionDepth: 6
    functionLinenumber: 534
    functionLinenumberEnd: 542
    functionName: ec_key_group_check_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ec_set_check_group_type_from_param
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int ec_key_group_check_fromdata(EC_KEY *ec, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get_enc_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:546,1
    - Dst: EC_KEY_set_enc_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ec
    - include
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 554
    functionName: ec_set_include_public
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_enc_flags
    - EC_KEY_get_enc_flags
    linkageType: ''
    returnType: int
    signature: int ec_set_include_public(EC_KEY *ec, int include)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:563,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:567,1
    - Dst: ossl_ec_set_ecdh_cofactor_mode
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:568,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:572,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:576,1
    - Dst: ec_set_include_public
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:577,1
    - Dst: ec_key_point_format_fromdata
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:580,1
    - Dst: ec_key_group_check_fromdata
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:582,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - ec
    - params
    argTypes:
    - EC_KEY*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 556
    functionDepth: 7
    functionLinenumber: 556
    functionLinenumberEnd: 585
    functionName: ossl_ec_key_otherparams_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ec_key_point_format_fromdata
    - ossl_ec_set_ecdh_cofactor_mode
    - ec_key_group_check_fromdata
    - OSSL_PARAM_locate_const
    - OSSL_PARAM_get_int
    - ec_set_include_public
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_otherparams_fromdata(EC_KEY *ec, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get_method
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:590,1
    - Dst: EC_KEY_OpenSSL
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ec
    argTypes:
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 595
    functionName: ossl_ec_key_is_foreign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 1
    functionsReached:
    - EC_KEY_get_method
    - EC_KEY_OpenSSL
    linkageType: ''
    returnType: int
    signature: int ossl_ec_key_is_foreign(const EC_KEY *ec)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:602,1
    - Dst: ossl_ec_key_new_method_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:606,1
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:613,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:616,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:621,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:635,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:637,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:647,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:648,1
    - Dst: EC_KEY*::group::meth::keycopy
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:651,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:665,1
    - Dst: EC_KEY*::meth::copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:674,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:680,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 63
    argCount: 2
    argNames:
    - src
    - selection
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 597
    functionDepth: 5
    functionLinenumber: 597
    functionLinenumberEnd: 682
    functionName: ossl_ec_key_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 1
    functionsReached:
    - ENGINE_init
    - CRYPTO_dup_ex_data
    - EC_KEY*::meth::copy
    - BN_new
    - EC_KEY_free
    - ossl_ec_key_new_method_int
    - EC_GROUP_copy
    - EC_POINT_new
    - ERR_raise
    - BN_copy
    - EC_KEY*::group::meth::keycopy
    - ossl_ec_group_new_ex
    - EC_POINT_copy
    linkageType: ''
    returnType: EC_KEY
    signature: EC_KEY *ossl_ec_key_dup(const EC_KEY *src, int selection)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:696,1
    - Dst: ossl_ec_encoding_name2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - id
    argTypes:
    - OSSL_PARAM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 684
    functionDepth: 4
    functionLinenumber: 684
    functionLinenumberEnd: 708
    functionName: ossl_ec_encoding_param2id
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ec_encoding_name2id
    - OSSL_PARAM_get_utf8_ptr
    linkageType: ''
    returnType: int
    signature: int ossl_ec_encoding_param2id(const OSSL_PARAM *p, int *id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:722,1
    - Dst: ossl_ec_pt_format_name2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - id
    argTypes:
    - OSSL_PARAM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 710
    functionDepth: 4
    functionLinenumber: 710
    functionLinenumberEnd: 734
    functionName: ossl_ec_pt_format_param2id
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 1
    functionsReached:
    - ossl_ec_pt_format_name2id
    - OSSL_PARAM_get_utf8_ptr
    linkageType: ''
    returnType: int
    signature: int ossl_ec_pt_format_param2id(const OSSL_PARAM *p, int *id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:742,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:745,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:754,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:757,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - palg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 737
    functionDepth: 7
    functionLinenumber: 737
    functionLinenumberEnd: 764
    functionName: ossl_x509_algor_is_sm2
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_GROUP_get_curve_name
    - OBJ_obj2nid
    - X509_ALGOR_get0
    - d2i_ECPKParameters
    linkageType: ''
    returnType: int
    signature: int ossl_x509_algor_is_sm2(const X509_ALGOR *palg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:774,1
    - Dst: EC_KEY_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:775,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:776,1
    - Dst: d2i_ECParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:786,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:787,1
    - Dst: EC_GROUP_new_by_curve_name_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:797,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:797,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:800,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:801,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:803,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:805,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:812,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:813,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - palg
    - libctx
    - propq
    argTypes:
    - X509_ALGOR*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 766
    functionDepth: 8
    functionLinenumber: 766
    functionLinenumberEnd: 815
    functionName: ossl_ec_key_param_from_x509_algor
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_group
    - EC_GROUP_free
    - EC_KEY_free
    - d2i_ECParameters
    - OBJ_obj2nid
    - ERR_raise
    - EC_GROUP_set_asn1_flag
    - X509_ALGOR_get0
    - EC_KEY_new_ex
    - EC_GROUP_new_by_curve_name_ex
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *ossl_ec_key_param_from_x509_algor(const X509_ALGOR *palg,\n
      \                                    OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:825,1
    - Dst: ossl_ec_key_param_from_x509_algor
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:827,1
    - Dst: d2i_ECPrivateKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:832,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:833,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_backend.c:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p8inf
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 817
    functionDepth: 9
    functionLinenumber: 817
    functionLinenumberEnd: 841
    functionName: ossl_ec_key_from_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_backend.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_param_from_x509_algor
    - EC_KEY_free
    - ERR_raise
    - PKCS8_pkey_get0
    - d2i_ECPrivateKey
    linkageType: ''
    returnType: EC_KEY
    signature: "EC_KEY *ossl_ec_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,\n
      \                              OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 81
    functionName: EC_GFp_mont_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_mont_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_simple_group_init
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: ossl_ec_GFp_mont_group_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_mont_group_init(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:95,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:97,1
    - Dst: ossl_ec_GFp_simple_group_finish
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: ossl_ec_GFp_mont_group_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_MONT_CTX_free
    - ossl_ec_GFp_simple_group_finish
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GFp_mont_group_finish(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:104,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:106,1
    - Dst: ossl_ec_GFp_simple_group_clear_finish
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: ossl_ec_GFp_mont_group_clear_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    - BN_MONT_CTX_free
    - ossl_ec_GFp_simple_group_clear_finish
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GFp_mont_group_clear_finish(EC_GROUP *group)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:113,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:115,1
    - Dst: ossl_ec_GFp_simple_group_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:118,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:122,1
    - Dst: BN_MONT_CTX_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:125,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:129,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 140
    functionName: ossl_ec_GFp_mont_group_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_MONT_CTX_new
    - BN_MONT_CTX_copy
    - BN_MONT_CTX_free
    - BN_clear_free
    - ossl_ec_GFp_simple_group_copy
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_mont_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:151,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:153,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:157,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:162,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:165,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:166,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:169,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:172,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:172,1
    - Dst: ossl_ec_GFp_simple_group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:180,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:183,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:185,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:190,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:191,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 194
    functionName: ossl_ec_GFp_mont_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - ERR_raise
    - BN_free
    - BN_CTX_new_ex
    - BN_MONT_CTX_free
    - BN_value_one
    - BN_to_montgomery
    - BN_CTX_free
    - ossl_ec_GFp_simple_group_set_curve
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                     const BIGNUM *a, const BIGNUM *b,\n
      \                                    BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:200,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: ossl_ec_GFp_mont_field_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_field_mul(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                               const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:211,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: ossl_ec_GFp_mont_field_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul_montgomery
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_field_sqr(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                               BN_CTX *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:234,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:237,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:238,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:242,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:244,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:250,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:254,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:255,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:262,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 265
    functionName: ossl_ec_GFp_mont_field_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mod_exp_mont
    - BN_CTX_secure_new_ex
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_set_word
    - BN_CTX_get
    - BN_sub
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_field_inv(const EC_GROUP *group, BIGNUM *r, const
      BIGNUM *a,\n                               BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:271,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: ossl_ec_GFp_mont_field_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - BN_to_montgomery
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_field_encode(const EC_GROUP *group, BIGNUM *r,\n
      \                                 const BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:282,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: ossl_ec_GFp_mont_field_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_from_montgomery
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_field_decode(const EC_GROUP *group, BIGNUM *r,\n
      \                                 const BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:293,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_mont.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - group
    - r
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: ossl_ec_GFp_mont_field_set_to_one
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_mont.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_mont_field_set_to_one(const EC_GROUP *group, BIGNUM
      *r,\n                                      BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:17,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:42,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:47,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:53,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - libctx
    - type
    - haspubkey
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - ECX_KEY_TYPE
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 55
    functionName: ossl_ecx_key_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_key.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - OPENSSL_strdup
    linkageType: ''
    returnType: ECX_KEY
    signature: "ECX_KEY *ossl_ecx_key_new(OSSL_LIB_CTX *libctx, ECX_KEY_TYPE type,
      int haspubkey,\n                          const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:64,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:65,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:68,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:70,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:71,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECX_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: ossl_ecx_key_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_key.c
    functionUses: 6
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - OPENSSL_secure_clear_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void ossl_ecx_key_free(ECX_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - libctx
    argTypes:
    - ECX_KEY*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: ossl_ecx_key_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_ecx_key_set0_libctx(ECX_KEY *key, OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:85,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:88,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECX_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: ossl_ecx_key_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_key.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int ossl_ecx_key_up_ref(ECX_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_key.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECX_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: ossl_ecx_key_allocate_privkey
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_key.c
    functionUses: 2
    functionsReached:
    - OPENSSL_secure_zalloc
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ossl_ecx_key_allocate_privkey(ECX_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:25,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:30,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:32,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:44,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 47
    functionName: EC_POINT_point2hex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - EC_POINT_point2buf
    linkageType: ''
    returnType: char
    signature: "char *EC_POINT_point2hex(const EC_GROUP *group,\n                         const
      EC_POINT *point,\n                         point_conversion_form_t form, BN_CTX
      *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:61,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:68,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:69,1
    - Dst: OPENSSL_hexstr2buf_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:73,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:74,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:78,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_print.c:81,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - group
    - hex
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - char*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 85
    functionName: EC_POINT_hex2point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_print.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - EC_POINT_new
    - OPENSSL_hexstr2buf_ex
    - OPENSSL_clear_free
    - EC_POINT_clear_free
    - strlen
    - EC_POINT_oct2point
    linkageType: ''
    returnType: EC_POINT
    signature: "EC_POINT *EC_POINT_hex2point(const EC_GROUP *group,\n                             const
      char *hex, EC_POINT *point, BN_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:26,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:33,1
    - Dst: ossl_ec_curve_nid_from_params
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:38,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:39,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - group
    - nist_only
    - ctx
    argTypes:
    - EC_GROUP*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: EC_GROUP_check_named_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_check.c
    functionUses: 0
    functionsReached:
    - ossl_ec_curve_nid_from_params
    - ERR_raise
    - EC_curve_nid2nist
    - BN_CTX_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_check_named_curve(const EC_GROUP *group, int nist_only,\n
      \                              BN_CTX *ctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:61,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:72,1
    - Dst: EC_GROUP_check_discriminant
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:78,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:85,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:88,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:89,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:94,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:96,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:99,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:100,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:104,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:107,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:114,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_check.c:115,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 118
    functionName: EC_GROUP_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_check.c
    functionUses: 1
    functionsReached:
    - EC_POINT_is_on_curve
    - EC_GROUP_check_named_curve
    - EC_POINT_is_at_infinity
    - EC_POINT_free
    - EC_POINT_new
    - BN_CTX_new
    - ERR_raise
    - EC_POINT_mul
    - EC_GROUP_check_discriminant
    - EC_GROUP_get0_order
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3119
    functionDepth: 0
    functionLinenumber: 3119
    functionLinenumberEnd: 3131
    functionName: ec_curve_nid2curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec_list_element
    signature: ec_list_element *ec_curve_nid2curve(int nid)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3150,1
    - Dst: ec_list_element::meth
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3151,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3153,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3154,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3164,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3165,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3167,1
    - Dst: ec_list_element::meth
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3172,1
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3173,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3174,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3175,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3180,1
    - Dst: if
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3188,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3188,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3189,1
    - Dst: EC_GROUP_set_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3195,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3197,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3198,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3202,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3204,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3208,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3211,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3213,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3217,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3221,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3222,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3228,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3241,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3244,1
    - Dst: OBJ_length
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3247,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3248,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3250,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3266,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3269,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3270,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3271,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3272,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3273,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3274,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3275,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3276,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 3
    argNames:
    - libctx
    - propq
    - curve
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - ec_list_element
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3133
    functionDepth: 4
    functionLinenumber: 3133
    functionLinenumberEnd: 3278
    functionName: ec_group_new_from_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_free
    - EC_POINT_new
    - EC_GROUP*::meth::group_set_curve
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_set_generator
    - EC_GROUP_set_asn1_flag
    - BN_set_word
    - EC_POINT_free
    - ASN1_OBJECT_free
    - OBJ_nid2obj
    - ERR_raise
    - EC_GROUP_new_curve_GF2m
    - BN_free
    - EC_GROUP_set_curve_name
    - OBJ_length
    - if
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - ec_list_element::meth
    - EC_GROUP_new_curve_GFp
    - EC_GROUP_set_seed
    - BN_CTX_new_ex
    - ossl_ec_group_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *ec_group_new_from_data(OSSL_LIB_CTX *libctx,\n                                        const
      char *propq,\n                                        const ec_list_element
      curve)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_curve_nid2curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3286,1
    - Dst: ec_group_new_from_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3287,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3289,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3290,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - libctx
    - propq
    - nid
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3298
      start: 3280
    functionDepth: 1
    functionLinenumber: 3280
    functionLinenumberEnd: 3298
    functionName: EC_GROUP_new_by_curve_name_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 2
    functionsReached:
    - ec_curve_nid2curve
    - ERR_raise_data
    - ERR_raise
    - OBJ_nid2sn
    - ec_group_new_from_data
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *EC_GROUP_new_by_curve_name_ex(OSSL_LIB_CTX *libctx, const
      char *propq,\n                                        int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new_by_curve_name_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3301
    functionDepth: 2
    functionLinenumber: 3301
    functionLinenumberEnd: 3304
    functionName: EC_GROUP_new_by_curve_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 4
    functionsReached:
    - EC_GROUP_new_by_curve_name_ex
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new_by_curve_name(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - r
    - nitems
    argTypes:
    - EC_builtin_curve*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3307
    functionDepth: 0
    functionLinenumber: 3307
    functionLinenumberEnd: 3322
    functionName: EC_get_builtin_curves
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_curve_nid2nist_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3327
      start: 3324
    functionDepth: 2
    functionLinenumber: 3324
    functionLinenumberEnd: 3327
    functionName: EC_curve_nid2nist
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 2
    functionsReached:
    - ossl_ec_curve_nid2nist_int
    linkageType: ''
    returnType: char
    signature: char *EC_curve_nid2nist(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_curve_nist2nid_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3332
      start: 3329
    functionDepth: 2
    functionLinenumber: 3329
    functionLinenumberEnd: 3332
    functionName: EC_curve_nist2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached:
    - ossl_ec_curve_nist2nid_int
    linkageType: ''
    returnType: int
    signature: int EC_curve_nist2nid(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3356,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3357,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3358,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3359,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3360,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3362,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3370,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3371,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3376,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3382,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3390,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3391,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3393,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3395,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3404,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3421,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3422,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3426,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3428,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3437,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_curve.c:3438,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 44
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3343
    functionDepth: 3
    functionLinenumber: 3343
    functionLinenumberEnd: 3440
    functionName: ossl_ec_curve_nid_from_params
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_curve.c
    functionUses: 1
    functionsReached:
    - BN_CTX_start
    - EC_GROUP_get_order
    - BN_num_bytes
    - BN_CTX_get
    - EC_GROUP_get_curve
    - EC_GROUP_get0_cofactor
    - memcmp
    - BN_bn2binpad
    - EC_GROUP_get0_generator
    - EC_GROUP_get_seed_len
    - OPENSSL_free
    - EC_POINT_get_affine_coordinates
    - EC_GROUP_get0_seed
    - BN_is_word
    - EC_GROUP_get_field_type
    - OPENSSL_malloc
    - EC_GROUP_get_curve_name
    - BN_CTX_end
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int ossl_ec_curve_nid_from_params(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:86,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:86,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:87,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:87,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:87,1
    - Dst: felem_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:89,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:89,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:91,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:91,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:92,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:92,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:92,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:92,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:94,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:94,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:94,1
    - Dst: felem_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:101,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:101,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:101,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:109,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:109,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:109,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:109,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:111,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:111,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:111,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:113,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:113,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:118,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:118,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:118,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:118,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:123,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:123,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:123,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:124,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:124,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:124,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:124,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:125,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:125,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:125,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:125,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:126,1
    - Dst: Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:126,1
    - Dst: Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:126,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:126,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:127,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:127,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:127,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:128,1
    - Dst: Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:128,1
    - Dst: Y
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:128,1
    - Dst: felem_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:129,1
    - Dst: Z
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:129,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:135,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:135,1
    - Dst: tmp_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - num
    - point_array
    - felem_size
    - tmp_felems
    argTypes:
    - size_t
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 138
    functionName: ossl_ec_GFp_nistp_points_make_affine_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c
    functionUses: 2
    functionsReached:
    - felem_is_zero
    - felem_mul
    - felem_one
    - felem_assign
    - felem_inv
    - Y
    - tmp_felem
    - X
    - felem_contract
    - felem_square
    - Z
    linkageType: ''
    returnType: void
    signature: "void ossl_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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: tmp_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tmp_felem(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c
    functionUses: 105
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: Y
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c
    functionUses: 411
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Y(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: Z
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Z(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - sign
    - digit
    - in
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 226
    functionName: ossl_ec_GFp_nistp_recode_scalar_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistputil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_ec_GFp_nistp_recode_scalar_bits(unsigned char *sign,\n                                          unsigned
      char *digit, unsigned char in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:37,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:41,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:41,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:43,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:47,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:47,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:49,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: ecx_pub_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - ERR_raise
    - OPENSSL_free
    - KEYLEN
    - OPENSSL_memdup
    - X509_PUBKEY_set0_param
    linkageType: ''
    returnType: int
    signature: int ecx_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:64,1
    - Dst: ossl_ecx_key_op
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:66,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: ecx_pub_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_op
    - EVP_PKEY_assign
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int ecx_pub_decode(EVP_PKEY *pkey, const X509_PUBKEY *pubkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:83,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: ecx_pub_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLEN
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: int ecx_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_from_pkcs8
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:90,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pkey
    - p8
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: ecx_priv_decode_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ossl_ecx_key_from_pkcs8
    linkageType: ''
    returnType: int
    signature: "int ecx_priv_decode_ex(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8,\n
      \                             OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:108,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:113,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:118,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:122,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:122,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: ecx_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_set0
    - i2d_ASN1_OCTET_STRING
    - OBJ_nid2obj
    - ERR_raise
    - OPENSSL_clear_free
    - KEYLEN
    linkageType: ''
    returnType: int
    signature: int ecx_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: ecx_size
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLEN
    linkageType: ''
    returnType: int
    signature: int ecx_size(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS25519
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:139,1
    - Dst: ISX448
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: ecx_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - IS25519
    - ISX448
    linkageType: ''
    returnType: int
    signature: int ecx_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS25519
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: ecx_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - IS25519
    linkageType: ''
    returnType: int
    signature: int ecx_security_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: ecx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_free
    linkageType: ''
    returnType: void
    signature: void ecx_free(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ecx_cmp_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecx_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:172,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:176,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:180,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:182,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:184,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:193,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:196,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:199,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:199,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 203
    functionName: ecx_key_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - ASN1_buf_print
    - KEYLEN
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int ecx_key_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx, ecx_key_op_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_print
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: ecx_priv_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_print
    linkageType: ''
    returnType: int
    signature: "int ecx_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_key_print
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: ecx_pub_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_key_print
    linkageType: ''
    returnType: int
    signature: "int ecx_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_op
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:222,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:226,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:235,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:235,1
    - Dst: KEYLEN
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 245
    functionName: ecx_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLEN
    - EVP_PKEY_assign
    - OPENSSL_memdup
    - ossl_ecx_key_op
    linkageType: ''
    returnType: int
    signature: int ecx_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: ecd_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecd_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:268,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:268,1
    - Dst: ossl_ecx_key_op
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:270,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 278
    functionName: ecx_set_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ossl_provider_libctx
    - EVP_KEYMGMT_get0_provider
    - ossl_ecx_key_op
    linkageType: ''
    returnType: int
    signature: "int ecx_set_priv_key(EVP_PKEY *pkey, const unsigned char *priv,\n
      \                           size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_provider_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:286,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:286,1
    - Dst: ossl_ecx_key_op
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:288,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pkey
    - pub
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 296
    functionName: ecx_set_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ossl_provider_libctx
    - EVP_KEYMGMT_get0_provider
    - ossl_ecx_key_op
    linkageType: ''
    returnType: int
    signature: int ecx_set_pub_key(EVP_PKEY *pkey, const unsigned char *pub, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:304,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:310,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:313,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - priv
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 317
    functionName: ecx_get_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLENID
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ecx_get_priv_key(const EVP_PKEY *pkey, unsigned char *priv,\n
      \                           size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:325,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:330,1
    - Dst: KEYLENID
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:333,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pkey
    - pub
    - len
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 337
    functionName: ecx_get_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - KEYLENID
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ecx_get_pub_key(const EVP_PKEY *pkey, unsigned char *pub,\n                           size_t
      *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: ecx_pkey_dirty_cnt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ecx_pkey_dirty_cnt(const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:353,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:362,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:368,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:375,1
    - Dst: importer
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:378,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:381,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - from
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 384
    functionName: ecx_pkey_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - importer
    linkageType: ''
    returnType: int
    signature: "int ecx_pkey_export_to(const EVP_PKEY *from, void *to_keydata,\n                              OSSL_FUNC_keymgmt_import_fn
      *importer,\n                              OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:390,1
    - Dst: ossl_ecx_key_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:391,1
    - Dst: KEYNID2TYPE
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:391,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:395,1
    - Dst: ossl_ecx_key_fromdata
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:399,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:400,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - params
    - vpctx
    - keytype
    argTypes:
    - OSSL_PARAM[]
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 405
    functionName: ecx_generic_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_free
    - KEYNID2TYPE
    - ERR_raise
    - ossl_ecx_key_fromdata
    - ossl_ecx_key_new
    - EVP_PKEY_assign
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: "int ecx_generic_import_from(const OSSL_PARAM params[], void *vpctx,\n
      \                                  int keytype)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_dup
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:413,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:418,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: ecx_pkey_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_dup
    - EVP_PKEY_assign
    - ossl_ecx_key_free
    linkageType: ''
    returnType: int
    signature: int ecx_pkey_copy(EVP_PKEY *to, EVP_PKEY *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_generic_import_from
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 5
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: x25519_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_generic_import_from
    linkageType: ''
    returnType: int
    signature: int x25519_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_generic_import_from
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: x448_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_generic_import_from
    linkageType: ''
    returnType: int
    signature: int x448_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: ecd_size25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecd_size25519(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: ecd_size448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ecd_size448(const EVP_PKEY *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:551,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:552,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:554,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - sigalg
    - str
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 562
    functionName: ecd_item_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_get0
    - EVP_DigestVerifyInit
    - ERR_raise
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: "int ecd_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it,\n                           const
      void *asn, const X509_ALGOR *sigalg,\n                           const ASN1_BIT_STRING
      *str, EVP_PKEY *pkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:570,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:570,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:572,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - str
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: ecd_item_sign25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - X509_ALGOR_set0
    linkageType: ''
    returnType: int
    signature: "int ecd_item_sign25519(EVP_MD_CTX *ctx, const ASN1_ITEM *it,\n                              const
      void *asn,\n                              X509_ALGOR *alg1, X509_ALGOR *alg2,\n
      \                             ASN1_BIT_STRING *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_INFO_set
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - siginf
    - alg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: ecd_sig_info_set25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_SIG_INFO_set
    linkageType: ''
    returnType: int
    signature: "int ecd_sig_info_set25519(X509_SIG_INFO *siginf, const X509_ALGOR
      *alg,\n                                 const ASN1_STRING *sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:591,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:591,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:593,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - str
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 596
    functionName: ecd_item_sign448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - X509_ALGOR_set0
    linkageType: ''
    returnType: int
    signature: "int ecd_item_sign448(EVP_MD_CTX *ctx, const ASN1_ITEM *it,\n                            const
      void *asn,\n                            X509_ALGOR *alg1, X509_ALGOR *alg2,\n
      \                           ASN1_BIT_STRING *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_SIG_INFO_set
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - siginf
    - alg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: ecd_sig_info_set448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - X509_SIG_INFO_set
    linkageType: ''
    returnType: int
    signature: "int ecd_sig_info_set448(X509_SIG_INFO *siginf, const X509_ALGOR *alg,\n
      \                              const ASN1_STRING *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_generic_import_from
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 5
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: ed25519_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_generic_import_from
    linkageType: ''
    returnType: int
    signature: int ed25519_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecx_generic_import_from
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: ed448_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ecx_generic_import_from
    linkageType: ''
    returnType: int
    signature: int ed448_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_op
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:714,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 722
    functionName: pkey_ecx_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ossl_ecx_key_op
    linkageType: ''
    returnType: int
    signature: int pkey_ecx_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:732,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:735,1
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:736,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:738,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:742,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - ctx
    - key
    - keylen
    - privkey
    - pubkey
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char**
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 724
    functionDepth: 7
    functionLinenumber: 724
    functionLinenumberEnd: 749
    functionName: validate_ecx_derive
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - evp_pkey_get_legacy
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int validate_ecx_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                                          size_t
      *keylen,\n                                          const unsigned char **privkey,\n
      \                                         const unsigned char **pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_ecx_derive
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:756,1
    - Dst: ossl_x25519
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 751
    functionDepth: 8
    functionLinenumber: 751
    functionLinenumberEnd: 762
    functionName: pkey_ecx_derive25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_x25519
    - validate_ecx_derive
    linkageType: ''
    returnType: int
    signature: "int pkey_ecx_derive25519(EVP_PKEY_CTX *ctx, unsigned char *key,\n
      \                               size_t *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_ecx_derive
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:769,1
    - Dst: ossl_x448
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 764
    functionDepth: 8
    functionLinenumber: 764
    functionLinenumberEnd: 775
    functionName: pkey_ecx_derive448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_x448
    - validate_ecx_derive
    linkageType: ''
    returnType: int
    signature: "int pkey_ecx_derive448(EVP_PKEY_CTX *ctx, unsigned char *key,\n                              size_t
      *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 783
    functionName: pkey_ecx_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_ecx_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:809,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:809,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:812,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:821,1
    - Dst: ossl_ed25519_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 805
    functionDepth: 12
    functionLinenumber: 805
    functionLinenumberEnd: 830
    functionName: pkey_ecd_digestsign25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ed25519_sign
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestsign25519(EVP_MD_CTX *ctx, unsigned char *sig,\n
      \                                   size_t *siglen, const unsigned char *tbs,\n
      \                                   size_t tbslen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:836,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:836,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:839,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:848,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:852,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 832
    functionDepth: 7
    functionLinenumber: 832
    functionLinenumberEnd: 857
    functionName: pkey_ecd_digestsign448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ed448_sign
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestsign448(EVP_MD_CTX *ctx, unsigned char *sig,\n
      \                                 size_t *siglen, const unsigned char *tbs,\n
      \                                 size_t tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:863,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:863,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:866,1
    - Dst: ossl_ed25519_verify
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 859
    functionDepth: 12
    functionLinenumber: 859
    functionLinenumberEnd: 875
    functionName: pkey_ecd_digestverify25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ed25519_verify
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestverify25519(EVP_MD_CTX *ctx, const unsigned char
      *sig,\n                                      size_t siglen, const unsigned char
      *tbs,\n                                      size_t tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:881,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:881,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:884,1
    - Dst: ossl_ed448_verify
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 877
    functionDepth: 7
    functionLinenumber: 877
    functionLinenumberEnd: 893
    functionName: pkey_ecd_digestverify448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ed448_verify
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int pkey_ecd_digestverify448(EVP_MD_CTX *ctx, const unsigned char
      *sig,\n                                    size_t siglen, const unsigned char
      *tbs,\n                                    size_t tbslen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_md_null
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:900,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 909
    functionName: pkey_ecd_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - EVP_md_null
    linkageType: ''
    returnType: int
    signature: int pkey_ecd_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:943,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:948,1
    - Dst: ossl_ecx_key_allocate_privkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:954,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:956,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:960,1
    - Dst: s390x_x25519_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:967,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:970,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:973,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 975
    functionName: s390x_pkey_ecx_keygen25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_allocate_privkey
    - ossl_ecx_key_free
    - s390x_x25519_mul
    - RAND_priv_bytes_ex
    - ERR_raise
    - ossl_ecx_key_new
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int s390x_pkey_ecx_keygen25519(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:986,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:991,1
    - Dst: ossl_ecx_key_allocate_privkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:997,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:999,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1003,1
    - Dst: s390x_x448_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1009,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1012,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1015,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 1017
    functionName: s390x_pkey_ecx_keygen448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - ossl_ecx_key_allocate_privkey
    - ossl_ecx_key_free
    - RAND_priv_bytes_ex
    - ERR_raise
    - ossl_ecx_key_new
    - s390x_x448_mul
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int s390x_pkey_ecx_keygen448(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1032,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1040,1
    - Dst: ossl_ecx_key_allocate_privkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1046,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1048,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1052,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1055,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1059,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1060,1
    - Dst: s390x_ed25519_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1068,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1074,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1077,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1019
    functionDepth: 11
    functionLinenumber: 1019
    functionLinenumberEnd: 1079
    functionName: s390x_pkey_ecd_keygen25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ossl_ecx_key_allocate_privkey
    - ossl_ecx_key_free
    - RAND_priv_bytes_ex
    - ERR_raise
    - ossl_ecx_key_new
    - s390x_ed25519_mul
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int s390x_pkey_ecd_keygen25519(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecx_key_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1098,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1106,1
    - Dst: ossl_ecx_key_allocate_privkey
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1114,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1118,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1121,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1125,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1129,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1130,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1134,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1136,1
    - Dst: s390x_ed448_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1143,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1149,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1150,1
    - Dst: ossl_ecx_key_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1153,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1154,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1081
    functionDepth: 11
    functionLinenumber: 1081
    functionLinenumberEnd: 1156
    functionName: s390x_pkey_ecd_keygen448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - ossl_ecx_key_allocate_privkey
    - ossl_ecx_key_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - RAND_priv_bytes_ex
    - ERR_raise
    - ossl_ecx_key_new
    - EVP_DigestFinalXOF
    - s390x_ed448_mul
    - EVP_MD_free
    - EVP_PKEY_assign
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int s390x_pkey_ecd_keygen448(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_ecx_derive
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1163,1
    - Dst: s390x_x25519_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1158
    functionDepth: 8
    functionLinenumber: 1158
    functionLinenumberEnd: 1169
    functionName: s390x_pkey_ecx_derive25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - s390x_x25519_mul
    - validate_ecx_derive
    linkageType: ''
    returnType: int
    signature: "int s390x_pkey_ecx_derive25519(EVP_PKEY_CTX *ctx, unsigned char *key,\n
      \                                     size_t *keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_ecx_derive
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1176,1
    - Dst: s390x_x448_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1171
    functionDepth: 8
    functionLinenumber: 1171
    functionLinenumberEnd: 1182
    functionName: s390x_pkey_ecx_derive448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - s390x_x448_mul
    - validate_ecx_derive
    linkageType: ''
    returnType: int
    signature: "int s390x_pkey_ecx_derive448(EVP_PKEY_CTX *ctx, unsigned char *key,\n
      \                                     size_t *keylen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1196,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1196,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1210,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1214,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1215,1
    - Dst: s390x_kdsa
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1217,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1218,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1222,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1184
    functionDepth: 7
    functionLinenumber: 1184
    functionLinenumberEnd: 1227
    functionName: s390x_pkey_ecd_digestsign25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - s390x_flip_endian32
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - OPENSSL_cleanse
    - ERR_raise
    - s390x_kdsa
    - memset
    linkageType: ''
    returnType: int
    signature: "int s390x_pkey_ecd_digestsign25519(EVP_MD_CTX *ctx,\n                                          unsigned
      char *sig, size_t *siglen,\n                                          const
      unsigned char *tbs,\n                                          size_t tbslen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1241,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1241,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1245,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1255,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1259,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1260,1
    - Dst: s390x_kdsa
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1262,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1263,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1267,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1268,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1269,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1229
    functionDepth: 7
    functionLinenumber: 1229
    functionLinenumberEnd: 1274
    functionName: s390x_pkey_ecd_digestsign448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - OPENSSL_cleanse
    - ERR_raise
    - s390x_kdsa
    - memset
    - s390x_flip_endian64
    linkageType: ''
    returnType: int
    signature: "int s390x_pkey_ecd_digestsign448(EVP_MD_CTX *ctx,\n                                        unsigned
      char *sig, size_t *siglen,\n                                        const unsigned
      char *tbs,\n                                        size_t tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1289,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1289,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1292,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1299,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1300,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1301,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1302,1
    - Dst: s390x_kdsa
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1276
    functionDepth: 7
    functionLinenumber: 1276
    functionLinenumberEnd: 1306
    functionName: s390x_pkey_ecd_digestverify25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - s390x_flip_endian32
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    - s390x_kdsa
    - memset
    linkageType: ''
    returnType: int
    signature: "int s390x_pkey_ecd_digestverify25519(EVP_MD_CTX *ctx,\n                                            const
      unsigned char *sig,\n                                            size_t siglen,\n
      \                                           const unsigned char *tbs,\n                                            size_t
      tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_get_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1321,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1321,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1324,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1331,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1332,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1333,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1334,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1335,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1336,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1337,1
    - Dst: s390x_kdsa
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1308
    functionDepth: 7
    functionLinenumber: 1308
    functionLinenumberEnd: 1341
    functionName: s390x_pkey_ecd_digestverify448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - evp_pkey_get_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    - s390x_kdsa
    - memset
    - s390x_flip_endian64
    linkageType: ''
    returnType: int
    signature: "int s390x_pkey_ecd_digestverify448(EVP_MD_CTX *ctx,\n                                          const
      unsigned char *sig,\n                                          size_t siglen,\n
      \                                         const unsigned char *tbs,\n                                          size_t
      tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1392
    functionName: ossl_ecx25519_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - S390X_CAPBIT
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_ecx25519_pkey_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1401
    functionName: ossl_ecx448_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - S390X_CAPBIT
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_ecx448_pkey_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1406,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1407,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1403
    functionDepth: 1
    functionLinenumber: 1403
    functionLinenumberEnd: 1413
    functionName: ossl_ed25519_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - S390X_CAPBIT
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_ed25519_pkey_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1418,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1419,1
    - Dst: S390X_CAPBIT
      Src: /src/openssl-3.0.15/crypto/ec/ecx_meth.c:1420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1424
    functionName: ossl_ed448_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_meth.c
    functionUses: 0
    functionsReached:
    - S390X_CAPBIT
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_ed448_pkey_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:27,1
    - Dst: constant_time_cond_swap_buff
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - u
    argTypes:
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: s390x_x25519_mod_p
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c
    functionUses: 0
    functionsReached:
    - constant_time_cond_swap_buff
    - memcpy
    linkageType: ''
    returnType: void
    signature: void s390x_x25519_mod_p(unsigned char u[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:51,1
    - Dst: constant_time_cond_swap_buff
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - u
    argTypes:
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: s390x_x448_mod_p
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c
    functionUses: 0
    functionsReached:
    - constant_time_cond_swap_buff
    - memcpy
    linkageType: ''
    returnType: void
    signature: void s390x_x448_mod_p(unsigned char u[56])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:91,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:93,1
    - Dst: s390x_x25519_mod_p
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:95,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:97,1
    - Dst: s390x_pcc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:102,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:104,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - u_dst
    - u_src
    - d_src
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 108
    functionName: s390x_x25519_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c
    functionUses: 2
    functionsReached:
    - s390x_flip_endian32
    - OPENSSL_cleanse
    - s390x_x25519_mod_p
    - memset
    - s390x_pcc
    linkageType: ''
    returnType: int
    signature: "int s390x_x25519_mul(unsigned char u_dst[32],\n                     const
      unsigned char u_src[32],\n                     const unsigned char d_src[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:124,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:126,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:127,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:129,1
    - Dst: s390x_x448_mod_p
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:130,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:132,1
    - Dst: s390x_pcc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:136,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:138,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:139,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - u_dst
    - u_src
    - d_src
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 144
    functionName: s390x_x448_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c
    functionUses: 2
    functionsReached:
    - s390x_x448_mod_p
    - memcpy
    - OPENSSL_cleanse
    - memset
    - s390x_pcc
    - s390x_flip_endian64
    linkageType: ''
    returnType: int
    signature: "int s390x_x448_mul(unsigned char u_dst[56],\n                   const
      unsigned char u_src[56],\n                   const unsigned char d_src[56])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:164,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:166,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:167,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:168,1
    - Dst: s390x_pcc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:170,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:172,1
    - Dst: s390x_flip_endian32
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:173,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - x_dst
    - y_dst
    - x_src
    - y_src
    - d_src
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 178
    functionName: s390x_ed25519_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c
    functionUses: 1
    functionsReached:
    - s390x_flip_endian32
    - memset
    - OPENSSL_cleanse
    - s390x_pcc
    linkageType: ''
    returnType: int
    signature: "int s390x_ed25519_mul(unsigned char x_dst[32],\n                      unsigned
      char y_dst[32],\n                      const unsigned char x_src[32],\n                      const
      unsigned char y_src[32],\n                      const unsigned char d_src[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:198,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:200,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:201,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:202,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:203,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:204,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:205,1
    - Dst: s390x_pcc
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:207,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:209,1
    - Dst: s390x_flip_endian64
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:210,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:211,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:212,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 5
    argNames:
    - x_dst
    - y_dst
    - x_src
    - y_src
    - d_src
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 217
    functionName: s390x_ed448_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_s390x.c
    functionUses: 1
    functionsReached:
    - memcpy
    - OPENSSL_cleanse
    - memset
    - s390x_pcc
    - s390x_flip_endian64
    linkageType: ''
    returnType: int
    signature: "int s390x_ed448_mul(unsigned char x_dst[57],\n                    unsigned
      char y_dst[57],\n                    const unsigned char x_src[57],\n                    const
      unsigned char y_src[57],\n                    const unsigned char d_src[57])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: bin66_to_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bin66_to_felem(felem out, const u8 in[66])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - u8[]
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: felem_to_bin66
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void felem_to_bin66(u8 out[66], const felem in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:180,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:181,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:186,1
    - Dst: bin66_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - bn
    argTypes:
    - felem
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: BN_to_felem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 6
    functionsReached:
    - BN_is_negative
    - BN_bn2lebinpad
    - bin66_to_felem
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BN_to_felem(felem out, const BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_to_bin66
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:197,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM*
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: felem_to_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - BN_lebin2bn
    - felem_to_bin66
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *felem_to_BN(BIGNUM *out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 217
    functionName: felem_one
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_one(felem out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: felem_assign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_assign(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: felem_sum64
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_sum64(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out
    - in
    - scalar
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: felem_scalar
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar(felem out, const felem in, limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: felem_scalar64
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar64(felem out, limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - largefelem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: felem_scalar128
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_scalar128(largefelem out, limb scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 310
    functionName: felem_neg
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_neg(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 336
    functionName: felem_diff64
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff64(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 367
    functionName: felem_diff_128_64
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff_128_64(largefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - largefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 395
    functionName: felem_diff128
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_diff128(largefelem out, const largefelem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:407,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 478
    functionName: felem_square_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_scalar
    linkageType: ''
    returnType: void
    signature: void felem_square_ref(largefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - largefelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 592
    functionName: felem_mul_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_scalar
    linkageType: ''
    returnType: void
    signature: void felem_mul_ref(largefelem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - largefelem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 676
    functionName: felem_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_reduce(felem out, const largefelem in)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 708
    functionName: felem_select
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void felem_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_select
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:712,1
    - Dst: felem_square_p
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - largefelem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 714
    functionName: felem_square_wrapper
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_square_p
    - felem_select
    linkageType: ''
    returnType: void
    signature: void felem_square_wrapper(largefelem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_select
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:718,1
    - Dst: felem_mul_p
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - largefelem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: felem_mul_wrapper
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_mul_p
    - felem_select
    linkageType: ''
    returnType: void
    signature: void felem_mul_wrapper(largefelem out, const felem in1, const felem
      in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:732,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 734
    functionName: felem_square_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_square
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_square_reduce(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:739,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 741
    functionName: felem_mul_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_mul
    - felem_reduce
    linkageType: ''
    returnType: void
    signature: void felem_mul_reduce(felem out, const felem in1, const felem in2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:757,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:758,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:759,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:760,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:761,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:762,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:763,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:764,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:765,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:766,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:767,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:769,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:770,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:771,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:772,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:773,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:774,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:776,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:777,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:778,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:779,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:780,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:781,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:782,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:783,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:784,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:785,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:786,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:787,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:788,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:789,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:790,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:791,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:792,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:795,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:796,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:798,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:799,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:800,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:803,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:804,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:806,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:807,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:808,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:811,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:812,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:814,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:815,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:816,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:819,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:820,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:822,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:823,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:824,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:827,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:828,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:830,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:831,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:832,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:835,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:836,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:838,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:839,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:842,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:843,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:845,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:846,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:847,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:848,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 84
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 849
    functionName: felem_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - felem_mul
    - felem_square
    - felem_reduce
    - felem_assign
    linkageType: ''
    returnType: void
    signature: void felem_inv(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 1
    argNames:
    - in
    argTypes:
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 930
    functionName: felem_is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached:
    - felem_assign
    linkageType: ''
    returnType: limb
    signature: limb felem_is_zero(const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 935
    functionName: felem_is_zero_int
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - felem_is_zero
    linkageType: ''
    returnType: int
    signature: int felem_is_zero_int(const void *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 1069
    functionName: felem_contract
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 9
    functionsReached:
    - felem_assign
    linkageType: ''
    returnType: void
    signature: void felem_contract(felem out, const felem in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1094,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1095,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1098,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1099,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1102,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1103,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1106,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1107,1
    - Dst: felem_diff64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1110,1
    - Dst: felem_sum64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1112,1
    - Dst: felem_scalar64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1114,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1116,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1124,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1127,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1131,1
    - Dst: felem_scalar64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1132,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1134,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1136,1
    - Dst: felem_sum64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1139,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1141,1
    - Dst: felem_sum64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1142,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1144,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1148,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1150,1
    - Dst: felem_scalar64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1153,1
    - Dst: felem_diff64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1155,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1157,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1164,1
    - Dst: felem_scalar128
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1169,1
    - Dst: felem_diff128
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1175,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1182,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1183
    functionName: point_double
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 7
    functionsReached:
    - felem_reduce
    - felem_sum64
    - felem_mul
    - felem_scalar64
    - felem_assign
    - felem_diff64
    - felem_diff128
    - felem_diff_128_64
    - felem_scalar128
    - felem_square
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - in
    - mask
    argTypes:
    - felem
    - felem
    - limb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1193
    functionName: copy_conditional
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_conditional(felem out, const felem in, limb mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1216,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1217,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1220,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1221,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1225,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1226,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1229,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1230,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1233,1
    - Dst: felem_sum64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1234,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1238,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1240,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1242,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1244,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1247,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1248,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1251,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1252,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1259,1
    - Dst: felem_scalar
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1262,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1265,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1269,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1273,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1275,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1277,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1280,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1281,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1284,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1285,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1288,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1292,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1294,1
    - Dst: felem_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1295,1
    - Dst: felem_scalar64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1296,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1333,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1338,1
    - Dst: felem_scalar64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1339,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1341,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1343,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1346,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1347,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1350,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1351,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1354,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1356,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1358,1
    - Dst: felem_scalar64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1359,1
    - Dst: felem_diff_128_64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1361,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1363,1
    - Dst: felem_diff64
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1366,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1370,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1372,1
    - Dst: felem_scalar128
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1374,1
    - Dst: felem_diff128
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1376,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1382,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1384,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1385,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1386,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1387,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1388,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1389,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1390,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1391,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 72
    argCount: 10
    argNames:
    - x3
    - y3
    - z3
    - x1
    - y1
    - z1
    - mixed
    - x2
    - y2
    - z2
    argTypes:
    - felem
    - felem
    - felem
    - felem
    - felem
    - felem
    - int
    - felem
    - felem
    - felem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1393
    functionName: point_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 5
    functionsReached:
    - felem_is_zero
    - felem_scalar
    - felem_reduce
    - felem_sum64
    - felem_mul
    - felem_scalar64
    - felem_assign
    - felem_diff64
    - copy_conditional
    - felem_diff128
    - felem_diff_128_64
    - felem_scalar128
    - felem_square
    - point_double
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - idx
    - size
    - pre_comp
    - out
    argTypes:
    - limb
    - unsigned int
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1565
    functionName: select_point
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void select_point(const limb idx, unsigned int size,\n                         const
      felem pre_comp[][3], felem out[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - i
    argTypes:
    - felem_bytearray
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1573
    functionName: get_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char get_bit(const felem_bytearray in, int i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1595,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1607,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1611,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1613,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1614,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1615,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1618,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1621,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1624,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1633,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1634,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1635,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1636,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1637,1
    - Dst: get_bit
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1638,1
    - Dst: ossl_ec_GFp_nistp_recode_scalar_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1639,1
    - Dst: select_point
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1644,1
    - Dst: felem_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1645,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1647,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1650,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1654,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1660,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1661,1
    - Dst: felem_assign
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1662,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[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1663
    functionName: batch_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 2
    functionsReached:
    - felem_neg
    - memcpy
    - copy_conditional
    - felem_assign
    - get_bit
    - select_point
    - point_add
    - ossl_ec_GFp_nistp_recode_scalar_bits
    - memset
    - point_double
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1672
    functionDepth: 0
    functionLinenumber: 1672
    functionLinenumberEnd: 1734
    functionName: EC_GFp_nistp521_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistp521_method(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1743,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1746,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1752,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1754,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1759
    functionName: nistp521_pre_comp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTP521_PRE_COMP
    signature: NISTP521_PRE_COMP *nistp521_pre_comp_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP521_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1767
    functionName: EC_nistp521_pre_comp_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTP521_PRE_COMP
    signature: NISTP521_PRE_COMP *EC_nistp521_pre_comp_dup(NISTP521_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1776,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1777,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1780,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1782,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTP521_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1784
    functionName: EC_nistp521_pre_comp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void EC_nistp521_pre_comp_free(NISTP521_PRE_COMP *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_simple_group_init
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1791
    functionDepth: 4
    functionLinenumber: 1791
    functionLinenumberEnd: 1797
    functionName: ossl_ec_GFp_nistp521_group_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_simple_group_init
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp521_group_init(EC_GROUP *group)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1809,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1814,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1815,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1816,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1817,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1820,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1821,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1822,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1823,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1823,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1823,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1824,1
    - Dst: ossl_ec_GFp_simple_group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1828,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1830,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1832,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1799
    functionDepth: 6
    functionLinenumber: 1799
    functionLinenumberEnd: 1835
    functionName: ossl_ec_GFp_nistp521_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_bin2bn
    - BN_CTX_new
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_get
    - BN_cmp
    - ossl_ec_GFp_simple_group_set_curve
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GFp_nistp521_group_set_curve(EC_GROUP *group, const BIGNUM
      *p,\n                                         const BIGNUM *a, const BIGNUM
      *b,\n                                         BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1849,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1850,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1853,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1853,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1854,1
    - Dst: felem_inv
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1856,1
    - Dst: felem_square
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1857,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1858,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1859,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1860,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1861,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1863,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1864,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1868,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1869,1
    - Dst: felem_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1870,1
    - Dst: felem_reduce
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1871,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1872,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1874,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1880
    functionName: ossl_ec_GFp_nistp521_point_get_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - felem_reduce
    - felem_mul
    - felem_inv
    - ERR_raise
    - felem_to_BN
    - BN_to_felem
    - felem_contract
    - felem_square
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GFp_nistp_points_make_affine_internal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - num
    - points
    - tmp_felems
    argTypes:
    - size_t
    - felem[][]
    - felem[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1883
    functionDepth: 2
    functionLinenumber: 1883
    functionLinenumberEnd: 1910
    functionName: make_points_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 4
    functionsReached:
    - ossl_ec_GFp_nistp_points_make_affine_internal
    linkageType: ''
    returnType: void
    signature: "void make_points_affine(size_t num, felem points[][3],\n                               felem
      tmp_felems[])"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1927,1
    - Dst: felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1935,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1940,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1941,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1942,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1943,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1944,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1956,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1960,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1961,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1962,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1963,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1966,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1970,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1989,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1990,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1993,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:1996,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2010,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2019,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2020,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2025,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2026,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2029,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2032,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2036,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2040,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2041,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2042,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2044,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2045,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2046,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2049,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2056,1
    - Dst: make_points_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2065,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2070,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2072,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2072,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2077,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2078,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2081,1
    - Dst: BN_bn2lebinpad
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2083,1
    - Dst: batch_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2086,1
    - Dst: batch_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2093,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2098,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2099,1
    - Dst: felem_contract
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2100,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2101,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2101,1
    - Dst: felem_to_BN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2103,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2106,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2110,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2112,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2114,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 120
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 1916
    functionDepth: 3
    functionLinenumber: 1916
    functionLinenumberEnd: 2116
    functionName: ossl_ec_GFp_nistp521_points_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EC_POINT_new
    - BN_CTX_start
    - point_add
    - BN_is_negative
    - point_double
    - BN_CTX_get
    - felem_to_BN
    - BN_to_felem
    - memset
    - EC_POINT_free
    - ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
    - EC_GROUP_get0_generator
    - felem
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - BN_nnmod
    - batch_mul
    - OPENSSL_malloc
    - BN_bn2lebinpad
    - OPENSSL_zalloc
    - BN_CTX_end
    - EC_POINT_cmp
    - make_points_affine
    - felem_contract
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 10
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2131,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2135,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2140,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2141,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2142,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2148,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2151,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2152,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2153,1
    - Dst: nistp521_pre_comp_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2155,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2160,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2161,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2164,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2165,1
    - Dst: BN_to_felem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2166,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2170,1
    - Dst: point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2174,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2183,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2186,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2192,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2198,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2204,1
    - Dst: point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2211,1
    - Dst: make_points_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2218,1
    - Dst: SETPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2221,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2225,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2226,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2228,1
    - Dst: EC_nistp521_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2230,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2118
    functionDepth: 4
    functionLinenumber: 2118
    functionLinenumberEnd: 2232
    functionName: ossl_ec_GFp_nistp521_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - memcpy
    - EC_POINT_new
    - BN_CTX_start
    - point_add
    - point_double
    - BN_CTX_get
    - BN_CTX_new
    - BN_to_felem
    - EC_pre_comp_free
    - EC_POINT_free
    - memset
    - nistp521_pre_comp_new
    - SETPRECOMP
    - EC_nistp521_pre_comp_free
    - BN_bin2bn
    - EC_POINT_set_affine_coordinates
    - BN_CTX_end
    - EC_POINT_cmp
    - make_points_affine
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp521_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HAVEPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2237
    functionName: ossl_ec_GFp_nistp521_have_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistp521.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GFp_nistp521_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::verify_sig
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_vrf.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_vrf.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - eckey
    argTypes:
    - unsigned char*
    - int
    - ECDSA_SIG*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: ECDSA_do_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_vrf.c
    functionUses: 2
    functionsReached:
    - EC_KEY*::meth::verify_sig
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,\n                    const
      ECDSA_SIG *sig, EC_KEY *eckey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY*::meth::verify
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_vrf.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdsa_vrf.c:47,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: ECDSA_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdsa_vrf.c
    functionUses: 1
    functionsReached:
    - EC_KEY*::meth::verify
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ECDSA_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \                const unsigned char *sigbuf, int sig_len, EC_KEY *eckey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: TOBN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOBN(hi,lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: TOBN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOBN(hi,lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ALIGNPTR
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNPTR(p,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: _booth_recode_w5
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _booth_recode_w5(unsigned int in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: _booth_recode_w7
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _booth_recode_w7(unsigned int in)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - src
    - move
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: copy_conditional
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void copy_conditional(BN_ULONG dst[P256_LIMBS],\n                             const
      BN_ULONG src[P256_LIMBS], BN_ULONG move)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - BN_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG is_zero(BN_ULONG in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 220
    functionName: is_equal
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_zero
    linkageType: ''
    returnType: BN_ULONG
    signature: "BN_ULONG is_equal(const BN_ULONG a[P256_LIMBS],\n                         const
      BN_ULONG b[P256_LIMBS])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:225,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:227,1
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - z
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: is_one
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 16
    functionsReached:
    - is_zero
    - bn_get_words
    - bn_get_top
    linkageType: ''
    returnType: BN_ULONG
    signature: BN_ULONG is_one(const BIGNUM *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:281,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:283,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:285,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:287,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:288,1
    - Dst: ecp_nistz256_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:290,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:291,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:293,1
    - Dst: ecp_nistz256_div_by_2
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:294,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:296,1
    - Dst: ecp_nistz256_mul_by_3
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:297,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:299,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:300,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:302,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:304,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:305,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:307,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - P256_POINT*
    - P256_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 309
    functionName: ecp_nistz256_point_double
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_by_3
    - ecp_nistz256_div_by_2
    - ecp_nistz256_sub
    - ecp_nistz256_add
    - ecp_nistz256_mul_mont
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mul_by_2
    linkageType: ''
    returnType: void
    signature: void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:349,1
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:350,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:352,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:353,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:355,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:356,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:358,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:359,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:360,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:362,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:363,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:364,1
    - Dst: is_equal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:400,1
    - Dst: is_equal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:400,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:406,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:410,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:411,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:412,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:413,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:414,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:416,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:417,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:419,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:420,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:422,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:424,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:425,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:426,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:428,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:429,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:430,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:432,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:433,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:434,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:436,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:437,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - P256_POINT*
    - P256_POINT*
    - P256_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 439
    functionName: ecp_nistz256_point_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_zero
    - ecp_nistz256_sub
    - memcpy
    - copy_conditional
    - ecp_nistz256_point_double
    - ecp_nistz256_mul_mont
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mul_by_2
    - is_equal
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_point_add(P256_POINT *r,\n                                   const
      P256_POINT *a, const P256_POINT *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:483,1
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:484,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:486,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:488,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:489,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:491,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:493,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:495,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:496,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:498,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:499,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:500,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:502,1
    - Dst: ecp_nistz256_mul_by_2
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:503,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:505,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:506,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:507,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:509,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:510,1
    - Dst: ecp_nistz256_sub
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:511,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:513,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:514,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:516,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:517,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:519,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:520,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:522,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:523,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - P256_POINT*
    - P256_POINT*
    - P256_POINT_AFFINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 525
    functionName: ecp_nistz256_point_add_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_zero
    - ecp_nistz256_sub
    - memcpy
    - copy_conditional
    - ecp_nistz256_mul_mont
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_mul_by_2
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_point_add_affine(P256_POINT *r,\n                                          const
      P256_POINT *a,\n                                          const P256_POINT_AFFINE
      *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:544,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:545,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:547,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:548,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:549,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:551,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:552,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:553,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:554,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:555,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:557,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:559,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:560,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:562,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:564,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:565,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:567,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:569,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:570,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:573,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:574,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:577,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:578,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:581,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:582,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:585,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:586,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:588,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:589,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:590,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:591,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:592,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:594,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:595,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:596,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:598,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:599,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:600,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - r
    - in
    argTypes:
    - BN_ULONG[]
    - BN_ULONG[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 603
    functionName: ecp_nistz256_mod_inverse
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_mul_mont
    - ecp_nistz256_sqr_mont
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ecp_nistz256_mod_inverse(BN_ULONG r[P256_LIMBS],\n                                     const
      BN_ULONG in[P256_LIMBS])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_copy_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BN_ULONG[]
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: ecp_nistz256_bignum_to_field_elem
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_copy_words
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_bignum_to_field_elem(BN_ULONG out[P256_LIMBS],\n
      \                                                   const BIGNUM *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: P256_POINT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:631,1
    - Dst: OPENSSL_MALLOC_MAX_NELEMS
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:634,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:636,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:638,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:639,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:640,1
    - Dst: ALIGNPTR
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:644,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:651,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:651,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:654,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:656,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:657,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:664,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:665,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:682,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:683,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:684,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:685,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:695,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:696,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:697,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:698,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:699,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:700,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:701,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:702,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:703,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:704,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:705,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:706,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:707,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:708,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:709,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:710,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:711,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:712,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:713,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:714,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:715,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:716,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:717,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:718,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:719,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:720,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:721,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:722,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:723,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:724,1
    - Dst: ecp_nistz256_scatter_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:725,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:737,1
    - Dst: _booth_recode_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:737,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:738,1
    - Dst: _booth_recode_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:747,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:749,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:751,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:752,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:754,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:759,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:760,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:761,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:762,1
    - Dst: ecp_nistz256_point_double
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:763,1
    - Dst: _booth_recode_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:771,1
    - Dst: ecp_nistz256_gather_w5
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:773,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:775,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:776,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:778,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:783,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:784,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:785,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 787
    functionName: ecp_nistz256_windowed_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_MALLOC_MAX_NELEMS
    - ALIGNPTR
    - ecp_nistz256_gather_w5
    - BN_is_negative
    - BN_CTX_get
    - P256_POINT
    - copy_conditional
    - ecp_nistz256_point_add
    - bn_get_words
    - ecp_nistz256_scatter_w5
    - ecp_nistz256_neg
    - BN_num_bits
    - ERR_raise
    - OPENSSL_free
    - BN_nnmod
    - OPENSSL_malloc
    - _booth_recode_w5
    - ecp_nistz256_point_double
    - ecp_nistz256_bignum_to_field_elem
    - bn_get_top
    linkageType: ''
    returnType: __owur
    signature: "__owur 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:806,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:807,1
    - Dst: is_equal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:808,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:808,1
    - Dst: is_equal
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:809,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:809,1
    - Dst: is_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - generator
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 811
    functionName: ecp_nistz256_is_affine_G
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - is_equal
    - bn_get_words
    - is_one
    - bn_get_top
    linkageType: ''
    returnType: int
    signature: int ecp_nistz256_is_affine_G(const EC_POINT *generator)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:833,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:834,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:836,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:840,1
    - Dst: ecp_nistz256_pre_comp_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:848,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:852,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:857,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:859,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:863,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:864,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:871,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:872,1
    - Dst: ALIGNPTR
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:876,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:878,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:879,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:887,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:891,1
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:900,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:902,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:903,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:904,1
    - Dst: ecp_nistz256_scatter_w7
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:907,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:909,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:913,1
    - Dst: SETPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:922,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:927,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:928,1
    - Dst: EC_nistz256_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:930,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:931,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:932,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:933,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 84
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 935
    functionName: ecp_nistz256_mult_precompute
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::make_affine
    - EC_POINT_new
    - BN_CTX_start
    - ALIGNPTR
    - EC_POINT_add
    - EC_GROUP_get0_order
    - ecp_nistz256_scatter_w7
    - EC_POINT_dbl
    - EC_pre_comp_free
    - EC_POINT_free
    - EC_GROUP_get0_generator
    - ERR_raise
    - ecp_nistz256_is_affine_G
    - OPENSSL_free
    - SETPRECOMP
    - OPENSSL_malloc
    - EC_nistz256_pre_comp_free
    - BN_CTX_end
    - BN_CTX_new_ex
    - ecp_nistz256_pre_comp_new
    - ecp_nistz256_bignum_to_field_elem
    - EC_POINT_copy
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: __owur
    signature: __owur ecp_nistz256_mult_precompute(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:943,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:944,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - out
    - group
    - in
    - ctx
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    - P256_POINT_AFFINE*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: ecp_nistz256_set_from_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_set_words
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_set_from_affine(EC_POINT *out, const EC_GROUP
      *group,\n                                               const P256_POINT_AFFINE
      *in,\n                                               BN_CTX *ctx)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_MALLOC_MAX_NELEMS
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:976,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:977,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:981,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:982,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:985,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:987,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:999,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1003,1
    - Dst: ecp_nistz256_set_from_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1004,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1006,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1010,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1013,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1016,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1029,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1030,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1031,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1034,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1035,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1041,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1042,1
    - Dst: _booth_recode_w7
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1064,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1066,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1069,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1070,1
    - Dst: is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1083,1
    - Dst: _booth_recode_w7
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1103,1
    - Dst: ecp_nistz256_gather_w7
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1105,1
    - Dst: ecp_nistz256_neg
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1108,1
    - Dst: copy_conditional
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1109,1
    - Dst: ecp_nistz256_point_add_affine
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1111,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1125,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1127,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1133,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1137,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1139,1
    - Dst: ecp_nistz256_windowed_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1152,1
    - Dst: ecp_nistz256_point_add
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1156,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1160,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1161,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1162,1
    - Dst: is_one
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1165,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1172,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 140
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 952
    functionDepth: 6
    functionLinenumber: 952
    functionLinenumberEnd: 1174
    functionName: ecp_nistz256_points_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - ecp_nistz256_windowed_mul
    - memcpy
    - OPENSSL_MALLOC_MAX_NELEMS
    - EC_POINT_new
    - BN_CTX_start
    - BN_is_negative
    - BN_CTX_get
    - bn_set_words
    - copy_conditional
    - ecp_nistz256_point_add
    - bn_get_words
    - EC_POINT_free
    - memset
    - EC_GROUP_get0_generator
    - ecp_nistz256_neg
    - BN_num_bits
    - ERR_raise
    - ecp_nistz256_is_affine_G
    - ecp_nistz256_set_from_affine
    - is_one
    - OPENSSL_free
    - BN_nnmod
    - ecp_nistz256_point_add_affine
    - is_zero
    - ecp_nistz256_gather_w7
    - OPENSSL_malloc
    - BN_CTX_end
    - EC_POINT_cmp
    - _booth_recode_w7
    - bn_get_top
    linkageType: ''
    returnType: __owur
    signature: "__owur 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: union
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALIGN32
    signature: ALIGN32 union
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1187,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1188,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1192,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1193,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1195,1
    - Dst: ecp_nistz256_mod_inverse
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1199,1
    - Dst: ecp_nistz256_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1200,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1201,1
    - Dst: ecp_nistz256_from_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1204,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1205,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1210,1
    - Dst: ecp_nistz256_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1211,1
    - Dst: ecp_nistz256_from_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1212,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1176
    functionDepth: 5
    functionLinenumber: 1176
    functionLinenumberEnd: 1218
    functionName: ecp_nistz256_get_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - bn_set_words
    - ERR_raise
    - ecp_nistz256_mul_mont
    - ecp_nistz256_sqr_mont
    - ecp_nistz256_bignum_to_field_elem
    - ecp_nistz256_from_mont
    - ecp_nistz256_mod_inverse
    linkageType: ''
    returnType: __owur
    signature: "__owur ecp_nistz256_get_affine(const EC_GROUP *group,\n                                          const
      EC_POINT *point,\n                                          BIGNUM *x, BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1230,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1240,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1245
    functionName: ecp_nistz256_pre_comp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - OPENSSL_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: NISTZ256_PRE_COMP
    signature: NISTZ256_PRE_COMP *ecp_nistz256_pre_comp_new(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - NISTZ256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1253
    functionName: EC_nistz256_pre_comp_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: NISTZ256_PRE_COMP
    signature: NISTZ256_PRE_COMP *EC_nistz256_pre_comp_dup(NISTZ256_PRE_COMP *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1262,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1263,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1266,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1268,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1269,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pre
    argTypes:
    - NISTZ256_PRE_COMP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1271
    functionName: EC_nistz256_pre_comp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 1
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void EC_nistz256_pre_comp_free(NISTZ256_PRE_COMP *pre)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1277,1
    - Dst: ecp_nistz256_is_affine_G
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1279,1
    - Dst: HAVEPRECOMP
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1285
    functionName: ecp_nistz256_window_have_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - HAVEPRECOMP
    - EC_GROUP_get0_generator
    - ecp_nistz256_is_affine_G
    linkageType: ''
    returnType: int
    signature: int ecp_nistz256_window_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1306,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1306,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1307,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1307,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1311,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1311,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1311,1
    - Dst: TOBN
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1311,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1328,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1329,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1333,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1333,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1336,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1337,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1338,1
    - Dst: ecp_nistz256_bignum_to_field_elem
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1344,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1345,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1349,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1355,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1356,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1363,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1364,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1366,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1367,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1369,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1370,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1372,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1373,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1375,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1376,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1389,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1391,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1403,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1405,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1407,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1409,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1411,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1413,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1415,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1416,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1418,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1420,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1422,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1424,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1425,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1427,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1428,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1430,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1431,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1434,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1435,1
    - Dst: ecp_nistz256_ord_sqr_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1450,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1451,1
    - Dst: ecp_nistz256_ord_mul_mont
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1454,1
    - Dst: bn_set_words
      Src: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c:1459,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 4
    argNames:
    - group
    - r
    - x
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1301
    functionDepth: 5
    functionLinenumber: 1301
    functionLinenumberEnd: 1465
    functionName: ecp_nistz256_inv_mod_ord
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached:
    - bn_set_words
    - bn_wexpand
    - BN_num_bits
    - ERR_raise
    - BN_nnmod
    - ecp_nistz256_ord_mul_mont
    - ecp_nistz256_bignum_to_field_elem
    - BN_is_negative
    - TOBN
    - BN_CTX_get
    - ecp_nistz256_ord_sqr_mont
    linkageType: ''
    returnType: int
    signature: "int ecp_nistz256_inv_mod_ord(const EC_GROUP *group, BIGNUM *r,\n                                    const
      BIGNUM *x, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1530
    functionName: EC_GFp_nistz256_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecp_nistz256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GFp_nistz256_method(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:38,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:44,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:52,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:58,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:61,1
    - Dst: EC_METHOD*::group_init
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:67,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:72,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:75,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - libctx
    - propq
    - meth
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - EC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 77
    functionName: ossl_ec_group_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - BN_new
    - OPENSSL_zalloc
    - ERR_raise
    - BN_free
    - OPENSSL_free
    - EC_METHOD*::group_init
    - OPENSSL_strdup
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *ossl_ec_group_new_ex(OSSL_LIB_CTX *libctx, const char *propq,\n
      \                              const EC_METHOD *meth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: EC_GROUP_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ossl_ec_group_new_ex
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_new(const EC_METHOD *meth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EC_nistz256_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:95,1
    - Dst: EC_nistp224_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:100,1
    - Dst: EC_nistp256_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:103,1
    - Dst: EC_nistp521_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:106,1
    - Dst: EC_ec_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 119
    functionName: EC_pre_comp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - EC_nistp521_pre_comp_free
    - EC_nistz256_pre_comp_free
    - EC_ec_pre_comp_free
    - EC_nistp224_pre_comp_free
    - EC_nistp256_pre_comp_free
    linkageType: ''
    returnType: void
    signature: void EC_pre_comp_free(EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:127,1
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:129,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:130,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:131,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:132,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:133,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:134,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: EC_GROUP_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 18
    functionsReached:
    - BN_free
    - OPENSSL_free
    - BN_MONT_CTX_free
    - EC_pre_comp_free
    - EC_POINT_free
    - EC_GROUP*::meth::group_finish
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_free(EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_clear_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:146,1
    - Dst: EC_GROUP*::meth::group_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:148,1
    - Dst: EC_pre_comp_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:150,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:151,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:152,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:153,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:154,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:155,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: EC_GROUP_clear_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_clear_free
    - OPENSSL_clear_free
    - BN_MONT_CTX_free
    - EC_pre_comp_free
    - BN_clear_free
    - EC_GROUP*::meth::group_clear_finish
    - EC_GROUP*::meth::group_finish
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_clear_free(EC_GROUP *group)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:167,1
    - Dst: EC_nistz256_pre_comp_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:184,1
    - Dst: EC_nistp224_pre_comp_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:189,1
    - Dst: EC_nistp256_pre_comp_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:192,1
    - Dst: EC_nistp521_pre_comp_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:195,1
    - Dst: EC_ec_pre_comp_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:204,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:210,1
    - Dst: BN_MONT_CTX_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:214,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:218,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:224,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:228,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:232,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:237,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:248,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:250,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:253,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:257,1
    - Dst: EC_GROUP*::meth::group_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:262,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 86
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 263
    functionName: EC_GROUP_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - EC_nistp521_pre_comp_dup
    - memcpy
    - EC_nistp256_pre_comp_dup
    - OPENSSL_malloc
    - BN_MONT_CTX_new
    - EC_POINT_new
    - ERR_raise
    - EC_ec_pre_comp_dup
    - EC_POINT_clear_free
    - BN_copy
    - BN_MONT_CTX_copy
    - BN_MONT_CTX_free
    - OPENSSL_free
    - EC_GROUP*::meth::group_copy
    - EC_nistp224_pre_comp_dup
    - EC_POINT_copy
    - EC_nistz256_pre_comp_dup
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_group_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:273,1
    - Dst: EC_GROUP_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:275,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 286
    functionName: EC_GROUP_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_free
    - EC_GROUP_copy
    - ossl_ec_group_new_ex
    linkageType: ''
    returnType: EC_GROUP
    signature: EC_GROUP *EC_GROUP_dup(const EC_GROUP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: EC_GROUP_method_of
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - EC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: EC_METHOD_get_field_type
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_METHOD_get_field_type(const EC_METHOD *meth)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:324,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:324,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:326,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:331,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:334,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:335,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:340,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:341,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:341,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:344,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:349,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:350,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:352,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:352,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:354,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:358,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:359,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 361
    functionName: ec_guess_cofactor
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_zero
    - BN_copy
    - BN_add
    - BN_value_one
    - BN_rshift1
    - BN_CTX_get
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: int ec_guess_cofactor(EC_GROUP *group)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:367,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:372,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:373,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:374,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:383,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:383,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:384,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:384,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:385,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:394,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:395,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:400,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:404,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:407,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:411,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:412,1
    - Dst: ec_guess_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:414,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:415,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:424,1
    - Dst: ec_precompute_mont_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:425,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:428,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - group
    - generator
    - order
    - cofactor
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 431
    functionName: EC_GROUP_set_generator
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - BN_is_odd
    - ec_guess_cofactor
    - EC_POINT_new
    - BN_num_bits
    - ERR_raise
    - ec_precompute_mont_data
    - BN_copy
    - BN_zero
    - BN_MONT_CTX_free
    - BN_is_negative
    - EC_POINT_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,\n
      \                          const BIGNUM *order, const BIGNUM *cofactor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: EC_GROUP_get0_generator
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: EC_GROUP_get_mont_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BN_MONT_CTX
    signature: BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:447,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - group
    - order
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 451
    functionName: EC_GROUP_get_order
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - BN_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: EC_GROUP_get0_order
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::group_order_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: EC_GROUP_order_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::group_order_bits
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_order_bits(const EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:469,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - group
    - cofactor
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 473
    functionName: EC_GROUP_get_cofactor
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_copy
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,\n
      \                         BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: EC_GROUP_get0_cofactor
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - group
    - nid
    argTypes:
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: EC_GROUP_set_curve_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_set_curve_name(EC_GROUP *group, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: EC_GROUP_get_curve_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_curve_name(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: EC_GROUP_get0_field
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *EC_GROUP_get0_field(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: EC_GROUP_get_field_type
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_field_type(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - flag
    argTypes:
    - EC_GROUP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: EC_GROUP_set_asn1_flag
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: EC_GROUP_get_asn1_flag
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_asn1_flag(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - form
    argTypes:
    - EC_GROUP*
    - point_conversion_form_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: EC_GROUP_set_point_conversion_form
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EC_GROUP_set_point_conversion_form(EC_GROUP *group,\n                                        point_conversion_form_t
      form)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: EC_GROUP_get_point_conversion_form
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: point_conversion_form_t
    signature: "point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP\n
      \                                                          *group)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:528,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:535,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:536,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - group
    - p
    - len
    argTypes:
    - EC_GROUP*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 543
    functionName: EC_GROUP_set_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t EC_GROUP_set_seed(EC_GROUP *group, const unsigned char *p, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: EC_GROUP_get0_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *EC_GROUP_get0_seed(const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: EC_GROUP_get_seed_len
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t EC_GROUP_get_seed_len(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:559,1
    - Dst: EC_GROUP*::meth::group_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 563
    functionName: EC_GROUP_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP*::meth::group_set_curve
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM
      *a,\n                       const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:569,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 573
    functionName: EC_GROUP_get_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached:
    - EC_GROUP*::meth::group_get_curve
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
      BIGNUM *b,\n                       BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: EC_GROUP_set_curve_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_set_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const
      BIGNUM *a,\n                           const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 586
    functionName: EC_GROUP_get_curve_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM
      *a,\n                           BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 593
    functionName: EC_GROUP_set_curve_GF2m
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_set_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const
      BIGNUM *a,\n                            const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 599
    functionName: EC_GROUP_get_curve_GF2m
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get_curve
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM
      *a,\n                            BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:606,1
    - Dst: EC_GROUP*::meth::group_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: EC_GROUP_get_degree
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached:
    - ERR_raise
    - EC_GROUP*::meth::group_get_degree
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_degree(const EC_GROUP *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:615,1
    - Dst: EC_GROUP*::meth::group_check_discriminant
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: EC_GROUP_check_discriminant
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::group_check_discriminant
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:630,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:630,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:633,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:633,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:634,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:634,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:641,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:646,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:647,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:648,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:649,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:650,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:651,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:652,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:654,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:656,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:665,1
    - Dst: EC_GROUP*::meth::group_get_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:666,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:670,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:670,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:670,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:675,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:675,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:676,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:682,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:683,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:689,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:698,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:699,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:701,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:701,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:701,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:706,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:708,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 3
    argNames:
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 711
    functionName: EC_GROUP_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::group_get_curve
    - EC_GROUP_get0_generator
    - EC_GROUP_get_field_type
    - BN_CTX_free
    - EC_GROUP_get_curve_name
    - EC_GROUP_get0_cofactor
    - BN_CTX_start
    - BN_CTX_new
    - BN_CTX_end
    - EC_POINT_cmp
    - EC_GROUP_get0_order
    - BN_CTX_get
    - BN_cmp
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:720,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:724,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:728,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:730,1
    - Dst: EC_POINT*::meth::point_init
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:737,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 743
    functionName: EC_POINT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 40
    functionsReached:
    - OPENSSL_zalloc
    - EC_POINT*::meth::point_init
    - OPENSSL_free
    - ERR_raise
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_POINT_new(const EC_GROUP *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT*::meth::point_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:751,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 753
    functionName: EC_POINT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 34
    functionsReached:
    - EC_POINT*::meth::point_finish
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EC_POINT_free(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT*::meth::point_clear_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:761,1
    - Dst: EC_POINT*::meth::point_finish
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:763,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 765
    functionName: EC_POINT_clear_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 9
    functionsReached:
    - EC_POINT*::meth::point_finish
    - EC_POINT*::meth::point_clear_finish
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: void EC_POINT_clear_free(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:770,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:777,1
    - Dst: EC_POINT*::meth::point_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:782,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 783
    functionName: EC_POINT_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 13
    functionsReached:
    - EC_POINT*::meth::point_copy
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_POINT_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:793,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:796,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - group
    argTypes:
    - EC_POINT*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 802
    functionName: EC_POINT_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_POINT_copy
    - EC_POINT_new
    - EC_POINT_free
    linkageType: ''
    returnType: EC_POINT
    signature: EC_POINT *EC_POINT_dup(const EC_POINT *a, const EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: EC_POINT_method_of
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_POINT_method_of(const EC_POINT *point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:814,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:818,1
    - Dst: EC_GROUP*::meth::point_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 822
    functionName: EC_POINT_set_to_infinity
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 7
    functionsReached:
    - ERR_raise
    - EC_GROUP*::meth::point_set_to_infinity
    linkageType: ''
    returnType: int
    signature: int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:831,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:834,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:835,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:838,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 840
    functionName: EC_POINT_set_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:848,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:851,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:852,1
    - Dst: ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:855,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 857
    functionName: EC_POINT_get_Jprojective_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:865,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:868,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:869,1
    - Dst: EC_GROUP*::meth::point_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:872,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:875,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 880
    functionName: EC_POINT_set_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 14
    functionsReached:
    - EC_POINT_is_on_curve
    - ec_point_is_compat
    - EC_GROUP*::meth::point_set_affine_coordinates
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT
      *point,\n                                    const BIGNUM *x, const BIGNUM *y,\n
      \                                   BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 888
    functionName: EC_POINT_set_affine_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_POINT_set_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 896
    functionName: EC_POINT_set_affine_coordinates_GF2m
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_set_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:905,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:908,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:909,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:912,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:913,1
    - Dst: EC_GROUP*::meth::point_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 917
    functionName: EC_POINT_get_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 18
    functionsReached:
    - EC_POINT_is_at_infinity
    - ec_point_is_compat
    - ERR_raise
    - EC_GROUP*::meth::point_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_affine_coordinates(const EC_GROUP *group,\n                                    const
      EC_POINT *point, BIGNUM *x, BIGNUM *y,\n                                    BN_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 925
    functionName: EC_POINT_get_affine_coordinates_GFp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,\n                                        const
      EC_POINT *point, BIGNUM *x,\n                                        BIGNUM
      *y, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 933
    functionName: EC_POINT_get_affine_coordinates_GF2m
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_POINT_get_affine_coordinates
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group,\n
      \                                        const EC_POINT *point, BIGNUM *x,\n
      \                                        BIGNUM *y, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:941,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:944,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:944,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:945,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:946,1
    - Dst: EC_GROUP*::meth::add
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:949,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 950
    functionName: EC_POINT_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 6
    functionsReached:
    - EC_GROUP*::meth::add
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                 const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:956,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:959,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:959,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:960,1
    - Dst: EC_GROUP*::meth::dbl
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 964
    functionName: EC_POINT_dbl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 8
    functionsReached:
    - EC_GROUP*::meth::dbl
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT
      *a,\n                 BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:969,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:972,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:973,1
    - Dst: EC_GROUP*::meth::invert
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 977
    functionName: EC_POINT_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - EC_GROUP*::meth::invert
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:982,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:985,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:986,1
    - Dst: EC_GROUP*::meth::is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 990
    functionName: EC_POINT_is_at_infinity
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 22
    functionsReached:
    - EC_GROUP*::meth::is_at_infinity
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *point)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1003,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1006,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1007,1
    - Dst: EC_GROUP*::meth::is_on_curve
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1011
    functionName: EC_POINT_is_on_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 5
    functionsReached:
    - EC_GROUP*::meth::is_on_curve
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,\n
      \                        BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1017,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1020,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1020,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1021,1
    - Dst: EC_GROUP*::meth::point_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1025
    functionName: EC_POINT_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 14
    functionsReached:
    - ec_point_is_compat
    - ERR_raise
    - EC_GROUP*::meth::point_cmp
    linkageType: ''
    returnType: int
    signature: "int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT
      *b,\n                 BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1031,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1034,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1035,1
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    functionName: EC_POINT_make_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::make_affine
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1047,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1051,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1052,1
    - Dst: EC_GROUP*::meth::points_make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1057
    functionName: EC_POINTs_make_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::points_make_affine
    - ec_point_is_compat
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,\n                          EC_POINT
      *points[], BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1077,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1078,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1083,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1086,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1087,1
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1094,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1097,1
    - Dst: EC_GROUP*::meth::mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1102,1
    - Dst: ossl_ec_wNAF_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1105,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1067
    functionDepth: 6
    functionLinenumber: 1067
    functionLinenumberEnd: 1111
    functionName: EC_POINTs_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_CTX_secure_new
    - ossl_ec_wNAF_mul
    - EC_POINT_set_to_infinity
    - ERR_raise
    - EC_GROUP*::meth::mul
    - ec_point_is_compat
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int 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: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1123,1
    - Dst: ec_point_is_compat
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1125,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1130,1
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1134,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1137,1
    - Dst: EC_GROUP*::meth::mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1143,1
    - Dst: ossl_ec_wNAF_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1146,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 6
    argNames:
    - group
    - r
    - g_scalar
    - point
    - p_scalar
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - EC_POINT*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1114
    functionDepth: 6
    functionLinenumber: 1114
    functionLinenumberEnd: 1152
    functionName: EC_POINT_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 16
    functionsReached:
    - BN_CTX_secure_new
    - ossl_ec_wNAF_mul
    - EC_POINT_set_to_infinity
    - ERR_raise
    - EC_GROUP*::meth::mul
    - ec_point_is_compat
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_wNAF_precompute_mult
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1159,1
    - Dst: EC_GROUP*::meth::precompute_mult
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1165
    functionName: EC_GROUP_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 3
    functionsReached:
    - ossl_ec_wNAF_precompute_mult
    - EC_GROUP*::meth::precompute_mult
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_wNAF_have_precompute_mult
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1171,1
    - Dst: EC_GROUP*::meth::have_precompute_mult
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1178
    functionName: EC_GROUP_have_precompute_mult
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - ossl_ec_wNAF_have_precompute_mult
    - EC_GROUP*::meth::have_precompute_mult
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_have_precompute_mult(const EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1187,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1190,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1196,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1200,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1201,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1185
    functionDepth: 7
    functionLinenumber: 1185
    functionLinenumberEnd: 1212
    functionName: ec_precompute_mont_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_CTX_new_ex
    - BN_MONT_CTX_free
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int ec_precompute_mont_data(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - idx
    - arg
    argTypes:
    - EC_KEY*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1215
    functionDepth: 2
    functionLinenumber: 1215
    functionLinenumberEnd: 1218
    functionName: EC_KEY_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1223
    functionName: EC_KEY_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *EC_KEY_get_ex_data(const EC_KEY *key, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1226
    functionDepth: 3
    functionLinenumber: 1226
    functionLinenumberEnd: 1231
    functionName: ossl_ec_group_simple_order_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int ossl_ec_group_simple_order_bits(const EC_GROUP *group)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1247,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1252,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1253,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1260,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1262,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1268,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1274,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1276,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - group
    - r
    - x
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1233
    functionDepth: 5
    functionLinenumber: 1233
    functionLinenumberEnd: 1279
    functionName: ec_field_inverse_mod_ord
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - BN_CTX_secure_new
    - BN_CTX_free
    - BN_mod_exp_mont
    - BN_CTX_start
    - BN_CTX_end
    - BN_set_word
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int ec_field_inverse_mod_ord(const EC_GROUP *group, BIGNUM *r,\n                                    const
      BIGNUM *x, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::field_inverse_mod_ord
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1298,1
    - Dst: ec_field_inverse_mod_ord
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - group
    - res
    - x
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1294
    functionDepth: 6
    functionLinenumber: 1294
    functionLinenumberEnd: 1301
    functionName: ossl_ec_group_do_inverse_ord
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 4
    functionsReached:
    - EC_GROUP*::meth::field_inverse_mod_ord
    - ec_field_inverse_mod_ord
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_group_do_inverse_ord(const EC_GROUP *group, BIGNUM *res,\n
      \                                const BIGNUM *x, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::blind_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - group
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1320
    functionName: ossl_ec_point_blind_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP*::meth::blind_coordinates
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_point_blind_coordinates(const EC_GROUP *group, EC_POINT
      *p,\n                                    BN_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1326,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1343
    functionName: EC_GROUP_get_basis_type
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 2
    functionsReached:
    - EC_GROUP_get_field_type
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_basis_type(const EC_GROUP *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1351,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - group
    - k
    argTypes:
    - EC_GROUP*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1362
    functionName: EC_GROUP_get_trinomial_basis
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_get_field_type
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int EC_GROUP_get_trinomial_basis(const EC_GROUP *group, unsigned int
      *k)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1370,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1374,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 4
    argNames:
    - group
    - k1
    - k2
    - k3
    argTypes:
    - EC_GROUP*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1386
    functionName: EC_GROUP_get_pentanomial_basis
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_get_field_type
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int EC_GROUP_get_pentanomial_basis(const EC_GROUP *group, unsigned
      int *k1,\n                                   unsigned int *k2, unsigned int
      *k3)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1409,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1410,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1411,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1413,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1414,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1415,1
    - Dst: ossl_ec_curve_nid_from_params
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1417,1
    - Dst: EC_GROUP_new_by_curve_name_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1437,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1445,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1457,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1463,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1466,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1467,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - group
    - libctx
    - propq
    - ctx
    argTypes:
    - EC_GROUP*
    - OSSL_LIB_CTX*
    - char*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1401
    functionDepth: 6
    functionLinenumber: 1401
    functionLinenumberEnd: 1469
    functionName: ec_group_explicit_to_named
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_seed
    - EC_GROUP_dup
    - EC_GROUP_get0_generator
    - EC_GROUP_free
    - EC_GROUP_set_generator
    - ossl_ec_curve_nid_from_params
    - EC_GROUP_set_seed
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_get0_order
    - EC_GROUP_new_by_curve_name_ex
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *ec_group_explicit_to_named(const EC_GROUP *group,\n                                            OSSL_LIB_CTX
      *libctx,\n                                            const char *propq,\n                                            BN_CTX
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1485,1
    - Dst: ossl_ec_curve_name2nid
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1490,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1492,1
    - Dst: EC_GROUP_new_by_curve_name_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - p
    - libctx
    - propq
    argTypes:
    - OSSL_PARAM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1472
    functionDepth: 4
    functionLinenumber: 1472
    functionLinenumberEnd: 1499
    functionName: group_new_from_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_new_by_curve_name_ex
    - ossl_ec_curve_name2nid
    - ERR_raise
    - OSSL_PARAM_get_utf8_ptr
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *group_new_from_name(const OSSL_PARAM *p,\n                                     OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1507,1
    - Dst: ossl_ec_pt_format_param2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1509,1
    - Dst: ECerr
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1510,1
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1513,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1516,1
    - Dst: ossl_ec_encoding_param2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1518,1
    - Dst: ECerr
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1519,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1522,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1525,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1529,1
    - Dst: ECerr
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - group
    - params
    argTypes:
    - EC_GROUP*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1502
    functionDepth: 5
    functionLinenumber: 1502
    functionLinenumberEnd: 1535
    functionName: ossl_ec_group_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 0
    functionsReached:
    - ossl_ec_pt_format_param2id
    - EC_GROUP_set_point_conversion_form
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_set_seed
    - ECerr
    - OSSL_PARAM_locate_const
    - ossl_ec_encoding_param2id
    linkageType: ''
    returnType: int
    signature: int ossl_ec_group_set_params(EC_GROUP *group, const OSSL_PARAM params[])
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1557,1
    - Dst: group_new_from_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1561,1
    - Dst: ossl_ec_group_set_params
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1563,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1564,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1568,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1570,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1571,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1572,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1579,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1583,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1585,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1588,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1590,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1591,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1592,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1593,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1595,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1599,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1601,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1604,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1606,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1611,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1615,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1616,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1617,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1620,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1621,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1622,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1627,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1628,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1629,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1634,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1634,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1635,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1638,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1640,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1645,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1648,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1652,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1654,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1656,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1664,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1669,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1672,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1675,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1680,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1683,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1687,1
    - Dst: EC_GROUP_set_point_conversion_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1689,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1691,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1692,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1697,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1698,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1699,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1699,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1700,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1701,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1706,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1708,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1709,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1710,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1716,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1717,1
    - Dst: ec_group_explicit_to_named
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1721,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1723,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1731,1
    - Dst: ossl_ec_encoding_param2id
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1733,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1734,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1738,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1741,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1743,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1751,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1754,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1755,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_lib.c:1756,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 183
    argCount: 3
    argNames:
    - params
    - libctx
    - propq
    argTypes:
    - OSSL_PARAM[]
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1537
    functionDepth: 7
    functionLinenumber: 1537
    functionLinenumberEnd: 1760
    functionName: EC_GROUP_new_from_params
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_lib.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_free
    - EC_POINT_new
    - BN_CTX_start
    - EC_POINT_oct2point
    - BN_is_negative
    - BN_CTX_get
    - OSSL_PARAM_get_int
    - EC_GROUP_set_generator
    - EC_GROUP_set_asn1_flag
    - ec_group_explicit_to_named
    - OSSL_PARAM_locate_const
    - EC_POINT_free
    - OSSL_PARAM_get_BN
    - BN_num_bits
    - ossl_ec_group_set_params
    - ERR_raise
    - EC_GROUP_new_curve_GF2m
    - ossl_ec_encoding_param2id
    - OPENSSL_strcasecmp
    - EC_GROUP_set_point_conversion_form
    - EC_GROUP_get_degree
    - EC_GROUP_new_curve_GFp
    - EC_GROUP_set_seed
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_CTX_free
    - group_new_from_name
    - BN_is_zero
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],\n                                   OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: ISX448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISX448(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: IS25519
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS25519(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: KEYLENID
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYLENID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: KEYNID2TYPE
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYNID2TYPE(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: KEYLEN
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecx_backend.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYLEN(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:32,1
    - Dst: EC_KEY*::group::meth::ecdh_compute_key
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - psec
    - pseclen
    - pub_key
    - ecdh
    argTypes:
    - unsigned char**
    - size_t*
    - EC_POINT*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: ossl_ecdh_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - EC_KEY*::group::meth::ecdh_compute_key
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdh_compute_key(unsigned char **psec, size_t *pseclen,\n
      \                         const EC_POINT *pub_key, const EC_KEY *ecdh)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:61,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:63,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:66,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:72,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:76,1
    - Dst: EC_KEY_get_flags
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:82,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:83,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:85,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:92,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:97,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:107,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:115,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:118,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:122,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:126,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:127,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:128,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:140,1
    - Dst: EC_POINT_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:141,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:142,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c:144,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 4
    argNames:
    - pout
    - poutlen
    - pub_key
    - ecdh
    argTypes:
    - unsigned char**
    - size_t*
    - EC_POINT*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 146
    functionName: ossl_ecdh_simple_compute_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdh_ossl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_private_key
    - EC_POINT_new
    - BN_CTX_start
    - BN_num_bytes
    - EC_KEY_get0_group
    - BN_CTX_get
    - memset
    - BN_mul
    - EC_GROUP_get_cofactor
    - BN_bn2bin
    - ERR_raise
    - OPENSSL_free
    - EC_KEY_get_flags
    - EC_POINT_mul
    - BN_clear
    - EC_POINT_get_affine_coordinates
    - EC_GROUP_get_degree
    - OPENSSL_malloc
    - BN_CTX_end
    - EC_POINT_clear_free
    - BN_CTX_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdh_simple_compute_key(unsigned char **pout, size_t *poutlen,\n
      \                                const EC_POINT *pub_key, const EC_KEY *ecdh)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:35,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:38,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:39,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:42,1
    - Dst: OBJ_length
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:44,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:45,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:53,1
    - Dst: i2d_ECParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:56,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:59,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - pptype
    - ppval
    - ec_key
    argTypes:
    - int*
    - void**
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 66
    functionName: eckey_param2type
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_get_curve_name
    - OBJ_nid2obj
    - ERR_raise
    - ASN1_STRING_new
    - i2d_ECParameters
    - OBJ_length
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int eckey_param2type(int *pptype, void **ppval, const EC_KEY *ec_key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eckey_param2type
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:77,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:80,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:83,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:87,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:90,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:90,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 98
    functionName: eckey_pub_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - i2o_ECPublicKey
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ERR_raise
    - OPENSSL_free
    - X509_PUBKEY_set0_param
    - eckey_param2type
    linkageType: ''
    returnType: int
    signature: int eckey_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_PUBKEY_get0_libctx
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:109,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:110,1
    - Dst: ossl_ec_key_param_from_x509_algor
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:112,1
    - Dst: o2i_ECPublicKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:118,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:119,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:123,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 100
    functionDepth: 9
    functionLinenumber: 100
    functionLinenumberEnd: 129
    functionName: eckey_pub_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_param_from_x509_algor
    - EC_KEY_free
    - o2i_ECPublicKey
    - ERR_raise
    - EVP_PKEY_assign_EC_KEY
    - ossl_x509_PUBKEY_get0_libctx
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int eckey_pub_decode(EVP_PKEY *pkey, const X509_PUBKEY *pubkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:134,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:135,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:136,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 146
    functionName: eckey_pub_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    - EC_KEY_get0_public_key
    - EC_POINT_cmp
    linkageType: ''
    returnType: int
    signature: int eckey_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_key_from_pkcs8
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:152,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pkey
    - p8
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 10
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: eckey_priv_decode_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_from_pkcs8
    - EVP_PKEY_assign_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int eckey_priv_decode_ex(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO
      *p8,\n                                OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eckey_param2type
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:170,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:171,1
    - Dst: EC_KEY_get_enc_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:181,1
    - Dst: EC_KEY_set_enc_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:182,1
    - Dst: i2d_ECPrivateKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:186,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:190,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:192,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:193,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 162
    functionDepth: 9
    functionLinenumber: 162
    functionLinenumberEnd: 203
    functionName: eckey_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_set0
    - ASN1_STRING_free
    - OBJ_nid2obj
    - i2d_ECPrivateKey
    - ERR_raise
    - OPENSSL_clear_free
    - EC_KEY_set_enc_flags
    - EC_KEY_get_enc_flags
    - eckey_param2type
    linkageType: ''
    returnType: int
    signature: int eckey_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_size
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 8
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: int_ec_size
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ECDSA_size
    linkageType: ''
    returnType: int
    signature: int int_ec_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:212,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: ec_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_order_bits
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ec_bits(const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: ec_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ec_bits
    linkageType: ''
    returnType: int
    signature: int ec_security_bits(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: ec_missing_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ec_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:241,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:241,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:246,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:250,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:252,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 257
    functionName: ec_copy_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_dup
    - EC_KEY_set_group
    - EC_KEY_new
    - EC_GROUP_free
    - EC_KEY_get0_group
    linkageType: ''
    returnType: int
    signature: int ec_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:261,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:262,1
    - Dst: EC_GROUP_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: ec_cmp_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_group
    - EC_GROUP_cmp
    linkageType: ''
    returnType: int
    signature: int ec_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: int_ec_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void int_ec_free(EVP_PKEY *pkey)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:292,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:296,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:297,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:297,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:302,1
    - Dst: EC_KEY_priv2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:303,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:315,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:317,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:322,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:324,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:329,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:331,1
    - Dst: ECPKParameters_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:335,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:340,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:342,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 55
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - ktype
    argTypes:
    - BIO*
    - EC_KEY*
    - int
    - ec_print_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 344
    functionName: do_EC_KEY_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get_conv_form
    - EC_KEY_get0_public_key
    - EC_KEY_priv2buf
    - EC_KEY_key2buf
    - ASN1_buf_print
    - EC_KEY_get0_private_key
    - ERR_raise
    - EC_GROUP_order_bits
    - OPENSSL_clear_free
    - OPENSSL_free
    - ECPKParameters_print
    - BIO_indent
    - EC_KEY_get0_group
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, ec_print_t ktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:351,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 8
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: eckey_param_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ECParameters
    - EVP_PKEY_assign_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int eckey_param_decode(EVP_PKEY *pkey,\n                              const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ECParameters
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 8
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: eckey_param_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_ECParameters
    linkageType: ''
    returnType: int
    signature: int eckey_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: eckey_param_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "int eckey_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n
      \                            ASN1_PCTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: eckey_pub_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "int eckey_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: eckey_priv_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: "int eckey_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n
      \                           ASN1_PCTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECPrivateKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:385,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 7
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: old_ec_priv_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ECPrivateKey
    - EVP_PKEY_assign_EC_KEY
    linkageType: ''
    returnType: int
    signature: "int old_ec_priv_decode(EVP_PKEY *pkey,\n                              const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ECPrivateKey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 7
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: old_ec_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_ECPrivateKey
    linkageType: ''
    returnType: int
    signature: int old_ec_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:400,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:410,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:410,1
    - Dst: EC_KEY_oct2key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:412,1
    - Dst: evp_pkey_get0_EC_KEY_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:412,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:415,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 396
    functionDepth: 9
    functionLinenumber: 396
    functionLinenumberEnd: 421
    functionName: ec_pkey_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_oct2key
    - EC_KEY_key2buf
    - evp_pkey_is_legacy
    - EVP_PKEY_get_id
    - EVP_PKEY_get0_EC_KEY
    - evp_pkey_get0_EC_KEY_int
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ec_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:429,1
    - Dst: EC_KEY_check_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: ec_pkey_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_check_key
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ec_pkey_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_check_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 450
    functionName: ec_pkey_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_check_key
    linkageType: ''
    returnType: int
    signature: int ec_pkey_public_check(const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:458,1
    - Dst: EC_GROUP_check
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 463
    functionName: ec_pkey_param_check
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_check
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ec_pkey_param_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: ec_pkey_dirty_cnt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ec_pkey_dirty_cnt(const EVP_PKEY *pkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:490,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:493,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:501,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:504,1
    - Dst: ossl_ec_group_todata
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:507,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:511,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:512,1
    - Dst: EC_KEY_get_conv_form
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:516,1
    - Dst: EC_POINT_point2buf
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:518,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:521,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:567,1
    - Dst: OSSL_PARAM_BLD_push_BN_pad
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:572,1
    - Dst: EC_KEY_get_flags
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:584,1
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:587,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:594,1
    - Dst: importer
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:597,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:600,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:601,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:602,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:603,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:604,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:605,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 5
    argNames:
    - from
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 471
    functionDepth: 7
    functionLinenumber: 471
    functionLinenumberEnd: 607
    functionName: ec_pkey_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get_conv_form
    - OSSL_PARAM_BLD_push_int
    - OSSL_PARAM_BLD_push_octet_string
    - EC_KEY_get0_private_key
    - BN_CTX_start
    - EC_KEY_get0_group
    - ossl_ec_group_todata
    - OSSL_PARAM_free
    - EC_GROUP_order_bits
    - importer
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_BLD_push_BN_pad
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - OPENSSL_free
    - EC_KEY_get_flags
    - EC_KEY_get0_public_key
    - EC_POINT_point2buf
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ec_pkey_export_to(const EVP_PKEY *from, void *to_keydata,\n                      OSSL_FUNC_keymgmt_import_fn
      *importer,\n                      OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:612,1
    - Dst: EC_KEY_new_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:613,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:616,1
    - Dst: ossl_ec_group_fromdata
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:620,1
    - Dst: ossl_ec_key_otherparams_fromdata
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:621,1
    - Dst: ossl_ec_key_fromdata
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:622,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:623,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 609
    functionDepth: 8
    functionLinenumber: 609
    functionLinenumberEnd: 628
    functionName: ec_pkey_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ec_key_otherparams_fromdata
    - ossl_ec_group_fromdata
    - ossl_ec_key_fromdata
    - EC_KEY_free
    - ERR_raise
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_new_ex
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: int ec_pkey_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_dup
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:637,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:642,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:645,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 649
    functionName: ec_pkey_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_set_type
    - EC_KEY_dup
    - EVP_PKEY_assign_EC_KEY
    - EC_KEY_free
    linkageType: ''
    returnType: int
    signature: int ec_pkey_copy(EVP_PKEY *to, EVP_PKEY *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:712,1
    - Dst: do_EC_KEY_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - EC_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 5
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: EC_KEY_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 5
    functionsReached:
    - EC_KEY_get0_private_key
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: int EC_KEY_print(BIO *bp, const EC_KEY *x, int off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_EC_KEY_print
      Src: /src/openssl-3.0.15/crypto/ec/ec_ameth.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 718
    functionDepth: 5
    functionLinenumber: 718
    functionLinenumberEnd: 721
    functionName: ECParameters_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec_ameth.c
    functionUses: 1
    functionsReached:
    - do_EC_KEY_print
    linkageType: ''
    returnType: int
    signature: int ECParameters_print(BIO *bp, const EC_KEY *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:30,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:31,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:32,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:35,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:36,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: ossl_ec_GF2m_simple_group_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_new
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GF2m_simple_group_init(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:49,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:50,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: ossl_ec_GF2m_simple_group_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GF2m_simple_group_finish(EC_GROUP *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:60,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:61,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: ossl_ec_GF2m_simple_group_clear_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GF2m_simple_group_clear_finish(EC_GROUP *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:77,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:79,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:81,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:89,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:92,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:95,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_GROUP*
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: ossl_ec_GF2m_simple_group_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    - bn_set_all_zero
    - bn_wexpand
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GF2m_simple_group_copy(EC_GROUP *dest, const EC_GROUP *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:108,1
    - Dst: BN_GF2m_poly2arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:112,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:117,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:119,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:122,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:125,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:127,1
    - Dst: bn_set_all_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 135
    functionName: ossl_ec_GF2m_simple_group_set_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - bn_wexpand
    - bn_set_all_zero
    - BN_GF2m_poly2arr
    - ERR_raise
    - BN_copy
    - BN_GF2m_mod_arr
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_group_set_curve(EC_GROUP *group,\n                                        const
      BIGNUM *p, const BIGNUM *a,\n                                        const BIGNUM
      *b, BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:147,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:152,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - group
    - p
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 165
    functionName: ossl_ec_GF2m_simple_group_get_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_group_get_curve(const EC_GROUP *group, BIGNUM
      *p,\n                                        BIGNUM *a, BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: ossl_ec_GF2m_simple_group_get_degree
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GF2m_simple_group_get_degree(const EC_GROUP *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:189,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:191,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:196,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:197,1
    - Dst: BN_GF2m_mod_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:201,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:208,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:214,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 219
    functionName: ossl_ec_GF2m_simple_group_check_discriminant
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_CTX_start
    - BN_CTX_new
    - ERR_raise
    - BN_CTX_end
    - BN_GF2m_mod_arr
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_group_check_discriminant(const EC_GROUP *group,\n
      \                                                BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:224,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:225,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:226,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:229,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:230,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 235
    functionName: ossl_ec_GF2m_simple_point_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_new
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GF2m_simple_point_init(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:240,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:241,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: ossl_ec_GF2m_simple_point_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GF2m_simple_point_finish(EC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:248,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:249,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - point
    argTypes:
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: ossl_ec_GF2m_simple_point_clear_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: void
    signature: void ossl_ec_GF2m_simple_point_clear_finish(EC_POINT *point)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:260,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:262,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - EC_POINT*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: ossl_ec_GF2m_simple_point_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_copy
    linkageType: ''
    returnType: int
    signature: int ossl_ec_GF2m_simple_point_copy(EC_POINT *dest, const EC_POINT *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: ossl_ec_GF2m_simple_point_set_to_infinity
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_point_set_to_infinity(const EC_GROUP *group,\n
      \                                             EC_POINT *point)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:296,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:300,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:302,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:303,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:305,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:306,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:306,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:308,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 314
    functionName: ossl_ec_GF2m_simple_point_set_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_set_negative
    - BN_copy
    - BN_value_one
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_point_set_affine_coordinates(const EC_GROUP
      *group,\n                                                     EC_POINT *point,\n
      \                                                    const BIGNUM *x,\n                                                     const
      BIGNUM *y,\n                                                     BN_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:327,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:328,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:332,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:332,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:333,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:337,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:339,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:342,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - group
    - point
    - x
    - y
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 350
    functionName: ossl_ec_GF2m_simple_point_get_affine_coordinates
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - ERR_raise
    - BN_copy
    - BN_value_one
    - BN_set_negative
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 36
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:365,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:366,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:371,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:372,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:379,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:385,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:386,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:387,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:388,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:389,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:390,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:391,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:392,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:393,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:398,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:400,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:403,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:407,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:409,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:412,1
    - Dst: BN_GF2m_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:416,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:417,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:419,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:421,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:423,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:425,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:427,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:429,1
    - Dst: BN_GF2m_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:432,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:432,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:433,1
    - Dst: EC_GROUP*::meth::field_div
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:438,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:440,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:443,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:445,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:447,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:451,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:453,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:455,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:457,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:460,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:466,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:468,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 471
    functionName: ossl_ec_GF2m_simple_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_cmp
    - EC_POINT_is_at_infinity
    - EC_GROUP*::meth::field_sqr
    - EC_POINT_get_affine_coordinates
    - BN_CTX_free
    - EC_POINT_set_affine_coordinates
    - BN_GF2m_add
    - EC_GROUP*::meth::field_div
    - EC_POINT_set_to_infinity
    - BN_CTX_start
    - BN_CTX_new
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_copy
    - EC_POINT_copy
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r,\n
      \                           const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ec_GF2m_simple_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 477
    functionDepth: 6
    functionLinenumber: 477
    functionLinenumberEnd: 481
    functionName: ossl_ec_GF2m_simple_dbl
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ossl_ec_GF2m_simple_add
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_dbl(const EC_GROUP *group, EC_POINT *r,\n
      \                           const EC_POINT *a, BN_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:486,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:486,1
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:491,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: ossl_ec_GF2m_simple_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_add
    - EC_POINT_is_at_infinity
    - EC_GROUP*::meth::make_affine
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_invert(const EC_GROUP *group, EC_POINT *point,\n
      \                              BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - point
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: ossl_ec_GF2m_simple_is_at_infinity
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_is_at_infinity(const EC_GROUP *group,\n                                       const
      EC_POINT *point)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:520,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:532,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:538,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:539,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:540,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:550,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:552,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:554,1
    - Dst: field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:556,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:558,1
    - Dst: field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:560,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:562,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:564,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:567,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:569,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 572
    functionName: ossl_ec_GF2m_simple_is_on_curve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - field_sqr
    - BN_CTX_free
    - BN_GF2m_add
    - BN_CTX_new
    - BN_CTX_start
    - BN_CTX_end
    - field_mul
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT
      *point,\n                                    BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:590,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:591,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:594,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:598,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:598,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:603,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:609,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:610,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:611,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:612,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:613,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:617,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:619,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:621,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:621,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:624,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:626,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - group
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 629
    functionName: ossl_ec_GF2m_simple_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_start
    - BN_CTX_new
    - BN_CTX_end
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT
      *a,\n                            const EC_POINT *b, BN_CTX *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:641,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:646,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:652,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:653,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:654,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:658,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:660,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:662,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:664,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:671,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:673,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - group
    - point
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 676
    functionName: ossl_ec_GF2m_simple_make_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_one
    - EC_POINT_is_at_infinity
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - EC_POINT_get_affine_coordinates
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_make_affine(const EC_GROUP *group, EC_POINT
      *point,\n                                    BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::make_affine
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - group
    - num
    - points
    - ctx
    argTypes:
    - EC_GROUP*
    - size_t
    - EC_POINT*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 692
    functionName: ossl_ec_GF2m_simple_points_make_affine
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::make_affine
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_points_make_affine(const EC_GROUP *group,
      size_t num,\n                                           EC_POINT *points[],
      BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_mul_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 6
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: ossl_ec_GF2m_simple_field_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_mul_arr
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_field_mul(const EC_GROUP *group, BIGNUM *r,\n
      \                                 const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_sqr_arr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 706
    functionName: ossl_ec_GF2m_simple_field_sqr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_sqr_arr
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_field_sqr(const EC_GROUP *group, BIGNUM *r,\n
      \                                 const BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - group
    - r
    - a
    - b
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 9
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: ossl_ec_GF2m_simple_field_div
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_div
    linkageType: ''
    returnType: int
    signature: "int ossl_ec_GF2m_simple_field_div(const EC_GROUP *group, BIGNUM *r,\n
      \                                 const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:732,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:732,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:734,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:737,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:741,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:742,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:747,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:747,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:749,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:752,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:755,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:756,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:757,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:758,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:759,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:760,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 767
    functionName: ec_GF2m_simple_ladder_pre
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_encode
    - EC_GROUP*::meth::field_sqr
    - BN_GF2m_add
    - BN_num_bits
    - ERR_raise
    - EC_GROUP*::meth::field_mul
    - BN_priv_rand_ex
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_ladder_pre(const EC_GROUP *group,\n                              EC_POINT
      *r, EC_POINT *s,\n                              EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:779,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:780,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:781,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:782,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:783,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:784,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:785,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:786,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:787,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:788,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:789,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:790,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:791,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:792,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 796
    functionName: ec_GF2m_simple_ladder_step
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_add
    - EC_GROUP*::meth::field_sqr
    - EC_GROUP*::meth::field_mul
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_ladder_step(const EC_GROUP *group,\n                               EC_POINT
      *r, EC_POINT *s,\n                               EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:812,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:813,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:815,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:816,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:817,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:818,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:824,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:825,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:826,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:827,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:829,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:833,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:834,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:835,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:836,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:837,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:838,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:839,1
    - Dst: EC_GROUP*::meth::field_sqr
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:840,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:841,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:842,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:843,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:844,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:845,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:846,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:847,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:848,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:849,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:850,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:851,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:857,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:858,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:863,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 30
    argCount: 5
    argNames:
    - group
    - r
    - s
    - p
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - EC_POINT*
    - EC_POINT*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 804
    functionDepth: 5
    functionLinenumber: 804
    functionLinenumberEnd: 865
    functionName: ec_GF2m_simple_ladder_post
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - EC_GROUP*::meth::field_inv
    - BN_one
    - EC_GROUP*::meth::field_sqr
    - BN_GF2m_add
    - EC_POINT_set_to_infinity
    - BN_CTX_start
    - ERR_raise
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_set_negative
    - EC_POINT_copy
    - EC_POINT_invert
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_ladder_post(const EC_GROUP *group,\n                               EC_POINT
      *r, EC_POINT *s,\n                               EC_POINT *p, BN_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:891,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:891,1
    - Dst: ossl_ec_wNAF_mul
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:892,1
    - Dst: ossl_ec_scalar_mul_ladder
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:896,1
    - Dst: ossl_ec_scalar_mul_ladder
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:900,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:907,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:908,1
    - Dst: ossl_ec_scalar_mul_ladder
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:912,1
    - Dst: ossl_ec_scalar_mul_ladder
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:913,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:914,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:920,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 7
    argNames:
    - group
    - r
    - scalar
    - num
    - points
    - scalars
    - ctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - BIGNUM*
    - size_t
    - EC_POINT*[]
    - BIGNUM*[]
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 867
    functionDepth: 6
    functionLinenumber: 867
    functionLinenumberEnd: 922
    functionName: ec_GF2m_simple_points_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ossl_ec_wNAF_mul
    - EC_POINT_new
    - ERR_raise
    - ossl_ec_scalar_mul_ladder
    - EC_POINT_add
    - EC_POINT_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_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[],\n
      \                             BN_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:934,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - group
    - r
    - a
    - ctx
    argTypes:
    - EC_GROUP*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 8
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: ec_GF2m_simple_field_inv
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - BN_GF2m_mod_inv
    linkageType: ''
    returnType: int
    signature: "int ec_GF2m_simple_field_inv(const EC_GROUP *group, BIGNUM *r,\n                                    const
      BIGNUM *a, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 1001
    functionName: EC_GF2m_simple_method
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ec2_smpl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_METHOD
    signature: EC_METHOD *EC_GF2m_simple_method(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:33,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:34,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:36,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:37,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:39,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:41,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:43,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:45,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:46,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 9
    argNames:
    - out
    - outlen
    - Z
    - Zlen
    - sinfo
    - sinfolen
    - md
    - libctx
    - propq
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: ossl_ecdh_kdf_X9_63
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c
    functionUses: 3
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - EVP_KDF_fetch
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_free
    - EVP_MD_get0_name
    - EVP_KDF_CTX_free
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: int
    signature: "int ossl_ecdh_kdf_X9_63(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,\n                        OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ecdh_kdf_X9_63
      Src: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: ECDH_KDF_X9_62
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/ecdh_kdf.c
    functionUses: 0
    functionsReached:
    - ossl_ecdh_kdf_X9_63
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: SC_LIMB
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SC_LIMB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SC_LIMB
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SC_LIMB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: c448_bool_t::mask_to_bool
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline c448_bool_t mask_to_bool(mask_t m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/word.h:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - c448_bool_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: bool_to_mask
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/word.h
    functionUses: 0
    functionsReached:
    - word_is_zero
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline bool_to_mask(c448_bool_t m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:28,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:29,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:31,1
    - Dst: gf_hibit
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:31,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:35,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:36,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - serial
    - x
    - with_hibit
    argTypes:
    - uint8_t*
    - gf
    - int
    assertStmts:
    - condition: (gf_hibit(red) == 0)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: gf_serialize
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_hibit
    - LIMBPERM
    - assert
    - gf_strong_reduce
    - LIMB_PLACE_VALUE
    - gf_copy
    linkageType: ''
    returnType: void
    signature: void gf_serialize(uint8_t *serial, const gf x, int with_hibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:50,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: gf_hibit
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 1
    functionsReached:
    - gf_add
    - gf_strong_reduce
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_hibit(const gf x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:60,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: gf_lobit
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - gf_strong_reduce
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_lobit(const gf x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:77,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:77,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:87,1
    - Dst: LIMB_MASK
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:88,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:88,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:89,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:89,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:90,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:90,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:92,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:93,1
    - Dst: gf_hibit
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:95,1
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:96,1
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - x
    - serial
    - with_hibit
    - hi_nmask
    argTypes:
    - gf
    - uint8_t[]
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: gf_deserialize
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_hibit
    - LIMBPERM
    - LIMB_PLACE_VALUE
    - word_is_zero
    - LIMB_MASK
    linkageType: ''
    returnType: mask_t
    signature: "mask_t gf_deserialize(gf x, const uint8_t serial[SER_BYTES], int with_hibit,\n
      \                     uint8_t hi_nmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:108,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:115,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:115,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:116,1
    - Dst: LIMB_MASK
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:116,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:116,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:117,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:117,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:125,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:132,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:133,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:134,1
    - Dst: LIMB_MASK
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:134,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:134,1
    - Dst: LIMB_PLACE_VALUE
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:135,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:135,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf
    assertStmts:
    - condition: (scarry == 0 || scarry == -1)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    - condition: (carry < 2 && ((word_t)carry + scarry_0) == 0)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    constantsTouched: []
    func_position:
      end: 139
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 139
    functionName: gf_strong_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 3
    functionsReached:
    - LIMBPERM
    - assert
    - LIMB_PLACE_VALUE
    - gf_weak_reduce
    - LIMB_MASK
    linkageType: ''
    returnType: void
    signature: void gf_strong_reduce(gf a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_RAW
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:144,1
    - Dst: gf_bias
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:145,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - d
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: gf_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_weak_reduce
    - gf_sub_RAW
    - gf_bias
    linkageType: ''
    returnType: void
    signature: void gf_sub(gf d, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add_RAW
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:152,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: gf_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 1
    functionsReached:
    - gf_add_RAW
    - gf_weak_reduce
    linkageType: ''
    returnType: void
    signature: void gf_add(gf d, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:163,1
    - Dst: gf_strong_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:164,1
    - Dst: LIMBPERM
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:167,1
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: gf_eq
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - word_is_zero
    - LIMBPERM
    - gf_strong_reduce
    - gf_sub
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_eq(const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:176,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:177,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:178,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:179,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:180,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:181,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:182,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:183,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:184,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:185,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:186,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:187,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:188,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:189,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:190,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:191,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:192,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:193,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:194,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:195,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:196,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:197,1
    - Dst: gf_sqrn
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:198,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:199,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:200,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:201,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:202,1
    - Dst: gf_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - a
    - x
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: gf_isr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/f_generic.c
    functionUses: 0
    functionsReached:
    - gf_eq
    - gf_mul
    - gf_copy
    - gf_sqr
    - gf_sqrn
    linkageType: ''
    returnType: mask_t
    signature: mask_t gf_isr(gf a, const gf x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:27,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:34,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:38,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:39,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:40,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:45,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:46,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 11
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: oneshot_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - EVP_DigestFinalXOF
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t oneshot_hash(OSSL_LIB_CTX *ctx, uint8_t *out, size_t
      outlen,\n                                 const uint8_t *in, size_t inlen,\n
      \                                const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - secret_scalar_ser
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: clamp
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clamp(uint8_t secret_scalar_ser[EDDSA_448_PRIVATE_BYTES])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:80,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:84,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:85,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:85,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:86,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:87,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:88,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 7
    argNames:
    - ctx
    - hashctx
    - prehashed
    - for_prehash
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - EVP_MD_CTX*
    - uint8_t
    - uint8_t
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 57
    functionDepth: 11
    functionLinenumber: 57
    functionLinenumberEnd: 94
    functionName: hash_init_with_dom
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_DigestInit_ex
    - strlen
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t hash_init_with_dom(OSSL_LIB_CTX *ctx, EVP_MD_CTX *hashctx,\n
      \                                      uint8_t prehashed,\n                                       uint8_t
      for_prehash,\n                                       const uint8_t *context,\n
      \                                      size_t context_len,\n                                       const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: oneshot_hash
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - x
    - ed
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 12
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: ossl_c448_ed448_convert_private_key_to_x448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - oneshot_hash
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_c448_ed448_convert_private_key_to_x448(\n                            OSSL_LIB_CTX
      *ctx,\n                            uint8_t x[X448_PRIVATE_BYTES],\n                            const
      uint8_t ed [EDDSA_448_PRIVATE_BYTES],\n                            const char
      *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: oneshot_hash
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:123,1
    - Dst: clamp
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:129,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:131,1
    - Dst: ossl_curve448_scalar_halve
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:143,1
    - Dst: ossl_curve448_precomputed_scalarmul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:145,1
    - Dst: ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:148,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:151,1
    - Dst: ossl_curve448_point_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:152,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - pubkey
    - privkey
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 110
    functionDepth: 12
    functionLinenumber: 110
    functionLinenumberEnd: 156
    functionName: ossl_c448_ed448_derive_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - ossl_curve448_precomputed_scalarmul
    - clamp
    - ossl_curve448_scalar_decode_long
    - ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa
    - oneshot_hash
    - OPENSSL_cleanse
    - ossl_curve448_point_destroy
    - ossl_curve448_scalar_destroy
    - ossl_curve448_scalar_halve
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_c448_ed448_derive_public_key(\n                        OSSL_LIB_CTX
      *ctx,\n                        uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n                        const
      uint8_t privkey[EDDSA_448_PRIVATE_BYTES],\n                        const char
      *propq)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:168,1
    - Dst: oneshot_hash
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:185,1
    - Dst: clamp
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:188,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:189,1
    - Dst: hash_init_with_dom
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:193,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:195,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:198,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:199,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:202,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:209,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:211,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:212,1
    - Dst: ossl_curve448_scalar_halve
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:220,1
    - Dst: ossl_curve448_scalar_halve
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:222,1
    - Dst: ossl_curve448_precomputed_scalarmul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:224,1
    - Dst: ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:226,1
    - Dst: ossl_curve448_point_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:227,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:228,1
    - Dst: hash_init_with_dom
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:235,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:237,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:238,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:239,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:240,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:243,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:245,1
    - Dst: ossl_curve448_scalar_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:248,1
    - Dst: ossl_curve448_scalar_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:249,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:251,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:252,1
    - Dst: ossl_curve448_scalar_encode
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:253,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:256,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:257,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:258,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:262,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 10
    argNames:
    - ctx
    - signature
    - privkey
    - pubkey
    - message
    - message_len
    - prehashed
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 158
    functionDepth: 12
    functionLinenumber: 158
    functionLinenumberEnd: 264
    functionName: ossl_c448_ed448_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - ossl_curve448_precomputed_scalarmul
    - EVP_MD_CTX_free
    - hash_init_with_dom
    - clamp
    - ossl_curve448_scalar_decode_long
    - oneshot_hash
    - ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa
    - ossl_curve448_scalar_mul
    - memcpy
    - EVP_MD_CTX_new
    - OPENSSL_cleanse
    - ossl_curve448_scalar_encode
    - EVP_DigestFinalXOF
    - ossl_curve448_scalar_add
    - ossl_curve448_point_destroy
    - ossl_curve448_scalar_destroy
    - ossl_curve448_scalar_halve
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_c448_ed448_sign(OSSL_LIB_CTX *ctx,\n                     uint8_t
      signature[EDDSA_448_SIGNATURE_BYTES],\n                     const uint8_t privkey[EDDSA_448_PRIVATE_BYTES],\n
      \                    const uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n                     const
      uint8_t *message, size_t message_len,\n                     uint8_t prehashed,
      const uint8_t *context,\n                     size_t context_len, const char
      *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_sign
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - signature
    - privkey
    - pubkey
    - hash
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 13
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: ossl_c448_ed448_sign_prehash
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - ossl_c448_ed448_sign
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_c448_ed448_sign_prehash(\n                        OSSL_LIB_CTX
      *ctx,\n                        uint8_t signature[EDDSA_448_SIGNATURE_BYTES],\n
      \                       const uint8_t privkey[EDDSA_448_PRIVATE_BYTES],\n                        const
      uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n                        const uint8_t
      hash[64], const uint8_t *context,\n                        size_t context_len,
      const char *propq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:318,1
    - Dst: ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:324,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:330,1
    - Dst: hash_init_with_dom
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:334,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:336,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:337,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:338,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:339,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:340,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:344,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:345,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:347,1
    - Dst: ossl_curve448_scalar_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:349,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:352,1
    - Dst: ossl_curve448_base_double_scalarmul_non_secret
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:357,1
    - Dst: c448_succeed_if
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:360,1
    - Dst: ossl_curve448_point_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:360,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 9
    argNames:
    - ctx
    - signature
    - pubkey
    - message
    - message_len
    - prehashed
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t
    - uint8_t*
    - uint8_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 279
    functionDepth: 12
    functionLinenumber: 279
    functionLinenumberEnd: 361
    functionName: ossl_c448_ed448_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - hash_init_with_dom
    - ossl_curve448_scalar_decode_long
    - ossl_curve448_base_double_scalarmul_non_secret
    - EVP_MD_CTX_new
    - OPENSSL_cleanse
    - ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio
    - ossl_curve448_point_eq
    - c448_succeed_if
    - EVP_DigestFinalXOF
    - ossl_curve448_scalar_sub
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_c448_ed448_verify(\n                    OSSL_LIB_CTX
      *ctx,\n                    const uint8_t signature[EDDSA_448_SIGNATURE_BYTES],\n
      \                   const uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n                    const
      uint8_t *message, size_t message_len,\n                    uint8_t prehashed,
      const uint8_t *context,\n                    uint8_t context_len, const char
      *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_verify
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - signature
    - pubkey
    - hash
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - uint8_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 13
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: ossl_c448_ed448_verify_prehash
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - ossl_c448_ed448_verify
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_c448_ed448_verify_prehash(\n                    OSSL_LIB_CTX
      *ctx,\n                    const uint8_t signature[EDDSA_448_SIGNATURE_BYTES],\n
      \                   const uint8_t pubkey[EDDSA_448_PUBLIC_BYTES],\n                    const
      uint8_t hash[64], const uint8_t *context,\n                    uint8_t context_len,
      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_sign
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - ctx
    - out_sig
    - message
    - message_len
    - public_key
    - private_key
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 375
    functionDepth: 13
    functionLinenumber: 375
    functionLinenumberEnd: 384
    functionName: ossl_ed448_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 1
    functionsReached:
    - ossl_c448_ed448_sign
    linkageType: ''
    returnType: int
    signature: "int ossl_ed448_sign(OSSL_LIB_CTX *ctx, uint8_t *out_sig, const uint8_t
      *message,\n                size_t message_len, const uint8_t public_key[57],\n
      \               const uint8_t private_key[57], const uint8_t *context,\n                size_t
      context_len, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_verify
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - message
    - message_len
    - signature
    - public_key
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 13
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: ossl_ed448_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 1
    functionsReached:
    - ossl_c448_ed448_verify
    linkageType: ''
    returnType: int
    signature: "int ossl_ed448_verify(OSSL_LIB_CTX *ctx, const uint8_t *message, size_t
      message_len,\n                  const uint8_t signature[114], const uint8_t
      public_key[57],\n                  const uint8_t *context, size_t context_len,
      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_sign_prehash
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - out_sig
    - hash
    - public_key
    - private_key
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 14
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: ossl_ed448ph_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - ossl_c448_ed448_sign_prehash
    linkageType: ''
    returnType: int
    signature: "int ossl_ed448ph_sign(OSSL_LIB_CTX *ctx, uint8_t *out_sig, const uint8_t
      hash[64],\n                  const uint8_t public_key[57], const uint8_t private_key[57],\n
      \                 const uint8_t *context, size_t context_len, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_verify_prehash
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - hash
    - signature
    - public_key
    - context
    - context_len
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 14
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: ossl_ed448ph_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 0
    functionsReached:
    - ossl_c448_ed448_verify_prehash
    linkageType: ''
    returnType: int
    signature: "int ossl_ed448ph_verify(OSSL_LIB_CTX *ctx, const uint8_t hash[64],\n
      \                   const uint8_t signature[114], const uint8_t public_key[57],\n
      \                   const uint8_t *context, size_t context_len,\n                    const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_c448_ed448_derive_public_key
      Src: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - out_public_key
    - private_key
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - uint8_t[]
    - uint8_t[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 13
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: ossl_ed448_public_from_private
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/eddsa.c
    functionUses: 1
    functionsReached:
    - ossl_c448_ed448_derive_public_key
    linkageType: ''
    returnType: int
    signature: "int ossl_ed448_public_from_private(OSSL_LIB_CTX *ctx, uint8_t out_public_key[57],\n
      \                              const uint8_t private_key[57], const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - out
    - accum
    - sub
    - p
    - extra
    argTypes:
    - curve448_scalar_t
    - c448_word_t[]
    - curve448_scalar_t
    - curve448_scalar_t
    - c448_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: sc_subx
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sc_subx(curve448_scalar_t out,\n                    const c448_word_t
      accum[C448_SCALAR_LIMBS],\n                    const curve448_scalar_t sub,\n
      \                   const curve448_scalar_t p, c448_word_t extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_subx
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 107
    functionName: sc_montmul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached:
    - sc_subx
    linkageType: ''
    returnType: void
    signature: "void sc_montmul(curve448_scalar_t out, const curve448_scalar_t a,\n
      \                      const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_montmul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:112,1
    - Dst: sc_montmul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: ossl_curve448_scalar_mul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached:
    - sc_montmul
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_scalar_mul(curve448_scalar_t out, const curve448_scalar_t
      a,\n                              const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_subx
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: ossl_curve448_scalar_sub
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached:
    - sc_subx
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_scalar_sub(curve448_scalar_t out, const curve448_scalar_t
      a,\n                         const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_subx
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: ossl_curve448_scalar_add
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached:
    - sc_subx
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_scalar_add(curve448_scalar_t out, const curve448_scalar_t
      a,\n                         const curve448_scalar_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - s
    - ser
    - nbytes
    argTypes:
    - curve448_scalar_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: scalar_decode_short
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline scalar_decode_short(curve448_scalar_t s,\n                                            const
      unsigned char *ser,\n                                            size_t nbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scalar_decode_short
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:160,1
    - Dst: ossl_curve448_scalar_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:165,1
    - Dst: c448_succeed_if
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:167,1
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - ser
    argTypes:
    - curve448_scalar_t
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: ossl_curve448_scalar_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 0
    functionsReached:
    - c448_succeed_if
    - scalar_decode_short
    - word_is_zero
    - ossl_curve448_scalar_mul
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_curve448_scalar_decode(curve448_scalar_t s,\n                            const
      unsigned char ser[C448_SCALAR_BYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: ossl_curve448_scalar_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 2
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ossl_curve448_scalar_destroy(curve448_scalar_t scalar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: curve448_scalar_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:183,1
    - Dst: scalar_decode_short
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:191,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:194,1
    - Dst: ossl_curve448_scalar_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:196,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:197,1
    - Dst: sc_montmul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:203,1
    - Dst: ossl_curve448_scalar_decode
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:204,1
    - Dst: ossl_curve448_scalar_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:205,1
    - Dst: curve448_scalar_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:208,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:209,1
    - Dst: ossl_curve448_scalar_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - s
    - ser
    - ser_len
    argTypes:
    - curve448_scalar_t
    - unsigned char*
    - size_t
    assertStmts:
    - condition: (i == 0)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    constantsTouched: []
    func_position:
      end: 211
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 211
    functionName: ossl_curve448_scalar_decode_long
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 3
    functionsReached:
    - curve448_scalar_copy
    - assert
    - ossl_curve448_scalar_mul
    - ossl_curve448_scalar_decode
    - ossl_curve448_scalar_add
    - sc_montmul
    - ossl_curve448_scalar_destroy
    - scalar_decode_short
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_scalar_decode_long(curve448_scalar_t s,\n                                 const
      unsigned char *ser, size_t ser_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ser
    - s
    argTypes:
    - unsigned char[]
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: ossl_curve448_scalar_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_scalar_encode(unsigned char ser[C448_SCALAR_BYTES],\n
      \                           const curve448_scalar_t s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: ossl_curve448_scalar_halve
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/scalar.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_curve448_scalar_halve(curve448_scalar_t out, const curve448_scalar_t
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: gf_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: INLINE_UNUSED
    signature: INLINE_UNUSED gf_copy(gf out, const gf a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: LIMBPERM
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMBPERM(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: LIMB_MASK
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB_MASK(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: LIMB_MASK
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB_MASK(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_RAW
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:106,1
    - Dst: gf_bias
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:107,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: gf_sub_nr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_weak_reduce
    - gf_sub_RAW
    - gf_bias
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_sub_nr(gf c, const gf a, const gf b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_RAW
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:115,1
    - Dst: gf_bias
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:116,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - c
    - a
    - b
    - amt
    argTypes:
    - gf
    - gf
    - gf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: gf_subx_nr
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_weak_reduce
    - gf_sub_RAW
    - gf_bias
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_subx_nr(gf c, const gf a, const gf b, int amt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_mulw_unsigned
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:125,1
    - Dst: gf_mulw_unsigned
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:127,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - c
    - a
    - w
    argTypes:
    - gf
    - gf
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: gf_mulw
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_mulw_unsigned
    - gf_sub
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_mulw(gf c, const gf a, int32_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select_32
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:139,1
    - Dst: constant_time_select_64
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - x
    - y
    - z
    - is_z
    argTypes:
    - gf
    - gf
    - gf
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: gf_cond_sel
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - constant_time_select_32
    - constant_time_select_64
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_cond_sel(gf x, const gf y, const gf z, mask_t is_z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:154,1
    - Dst: gf_cond_sel
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - neg
    argTypes:
    - gf
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: gf_cond_neg
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - gf_cond_sel
    - gf_sub
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_cond_neg(gf x, mask_t neg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_cond_swap_32
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:165,1
    - Dst: constant_time_cond_swap_64
      Src: /src/openssl-3.0.15/crypto/ec/curve448/field.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - x
    - RESTRICT
    - swap
    argTypes:
    - gf
    - gf_s*
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: gf_cond_swap
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/field.h
    functionUses: 0
    functionsReached:
    - constant_time_cond_swap_64
    - constant_time_cond_swap_32
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline gf_cond_swap(gf x, gf_s * RESTRICT y, mask_t swap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:47,1
    - Dst: gf_isr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:48,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:51,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:52,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:53,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - y
    - x
    - assert_nonzero
    argTypes:
    - gf
    - gf
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: gf_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - assert
    - gf_sqr
    - gf_mul
    - gf_copy
    - gf_isr
    linkageType: ''
    returnType: void
    signature: void gf_invert(gf y, const gf x, int assert_nonzero)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:66,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:67,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:68,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:69,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:70,1
    - Dst: gf_subx_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:71,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:72,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:73,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:74,1
    - Dst: gf_subx_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:75,1
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:77,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:78,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:79,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:80,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - p
    - q
    - before_double
    argTypes:
    - curve448_point_t
    - curve448_point_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 83
    functionName: point_double_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_subx_nr
    - gf_weak_reduce
    - gf_sub_nr
    - gf_mul
    - gf_sqr
    - gf_add_nr
    linkageType: ''
    returnType: void
    signature: "void point_double_internal(curve448_point_t p, const curve448_point_t
      q,\n                                  int before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_double_internal
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - curve448_point_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ossl_curve448_point_double
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - point_double_internal
    linkageType: ''
    returnType: void
    signature: void ossl_curve448_point_double(curve448_point_t p, const curve448_point_t
      q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_cond_swap
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:93,1
    - Dst: gf_cond_neg
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - neg
    argTypes:
    - niels_t
    - mask_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: cond_neg_niels
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_cond_swap
    - gf_cond_neg
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline cond_neg_niels(niels_t n, mask_t neg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:99,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:100,1
    - Dst: gf_mulw
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:101,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - b
    - a
    argTypes:
    - pniels_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: pt_to_pniels
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_add
    - gf_mulw
    - gf_sub
    linkageType: ''
    returnType: void
    signature: void pt_to_pniels(pniels_t b, const curve448_point_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:109,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:110,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:111,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:112,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:113,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - e
    - d
    argTypes:
    - curve448_point_t
    - pniels_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: pniels_to_pt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_add
    - gf_sqr
    - gf_sub
    - gf_mul
    linkageType: ''
    returnType: void
    signature: void pniels_to_pt(curve448_point_t e, const pniels_t d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:119,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:120,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:121,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - e
    - n
    argTypes:
    - curve448_point_t
    - niels_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: niels_to_pt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - gf_add
    - gf_sub
    - gf_mul
    linkageType: ''
    returnType: void
    signature: void niels_to_pt(curve448_point_t e, const niels_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:130,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:131,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:132,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:133,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:134,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:135,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:136,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:137,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:138,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:139,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:140,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:141,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - d
    - e
    - before_double
    argTypes:
    - curve448_point_t
    - niels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: add_niels_to_pt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_mul
    - gf_add_nr
    - gf_sub_nr
    linkageType: ''
    returnType: void
    signature: "void add_niels_to_pt(curve448_point_t d, const niels_t e,\n                            int
      before_double)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:151,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:152,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:153,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:154,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:155,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:156,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:157,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:158,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:159,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:160,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:161,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:162,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - d
    - e
    - before_double
    argTypes:
    - curve448_point_t
    - niels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: sub_niels_from_pt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_mul
    - gf_add_nr
    - gf_sub_nr
    linkageType: ''
    returnType: void
    signature: "void sub_niels_from_pt(curve448_point_t d, const niels_t e,\n                              int
      before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:172,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:173,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pn
    - before_double
    argTypes:
    - curve448_point_t
    - pniels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: add_pniels_to_pt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - add_niels_to_pt
    - gf_mul
    linkageType: ''
    returnType: void
    signature: "void add_pniels_to_pt(curve448_point_t p, const pniels_t pn,\n                             int
      before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:182,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:183,1
    - Dst: sub_niels_from_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pn
    - before_double
    argTypes:
    - curve448_point_t
    - pniels_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: sub_pniels_from_pt
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_copy
    - sub_niels_from_pt
    - gf_mul
    linkageType: ''
    returnType: void
    signature: "void sub_pniels_from_pt(curve448_point_t p, const pniels_t pn,\n                               int
      before_double)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:195,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:196,1
    - Dst: gf_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:197,1
    - Dst: mask_to_bool
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - curve448_point_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: ossl_curve448_point_eq
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - mask_to_bool
    - gf_eq
    - gf_mul
    linkageType: ''
    returnType: c448_bool_t
    signature: "c448_bool_t ossl_curve448_point_eq(const curve448_point_t p,\n                       const
      curve448_point_t q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:208,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:209,1
    - Dst: gf_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:210,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:211,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:212,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:213,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:214,1
    - Dst: gf_mulw
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:215,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:216,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:217,1
    - Dst: gf_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:218,1
    - Dst: gf_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:219,1
    - Dst: mask_to_bool
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: ossl_curve448_point_valid
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_mulw
    - mask_to_bool
    - gf_eq
    - gf_add
    - gf_mul
    - gf_sqr
    - gf_sub
    linkageType: ''
    returnType: c448_bool_t
    signature: c448_bool_t ossl_curve448_point_valid(const curve448_point_t p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_curve448_scalar_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:240,1
    - Dst: ossl_curve448_scalar_halve
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:241,1
    - Dst: point_double_internal
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:245,1
    - Dst: constant_time_lookup_niels
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:263,1
    - Dst: cond_neg_niels
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:266,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:268,1
    - Dst: niels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:270,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:274,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - out
    - table
    - scalar
    argTypes:
    - curve448_point_t
    - curve448_precomputed_s*
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 276
    functionName: ossl_curve448_precomputed_scalarmul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 2
    functionsReached:
    - constant_time_lookup_niels
    - point_double_internal
    - add_niels_to_pt
    - OPENSSL_cleanse
    - niels_to_pt
    - cond_neg_niels
    - ossl_curve448_scalar_add
    - ossl_curve448_scalar_halve
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_precomputed_scalarmul(curve448_point_t out,\n                                    const
      curve448_precomputed_s * table,\n                                    const curve448_scalar_t
      scalar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve448_point_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:287,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:293,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:294,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:295,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:296,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:297,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:298,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:299,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:300,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:301,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:302,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:303,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:304,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:305,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:306,1
    - Dst: gf_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:310,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:311,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:312,1
    - Dst: gf_serialize
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:316,1
    - Dst: gf_lobit
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:317,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:319,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:320,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:321,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:322,1
    - Dst: ossl_curve448_point_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - uint8_t[]
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 324
    functionName: ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 2
    functionsReached:
    - gf_add
    - OPENSSL_cleanse
    - gf_invert
    - curve448_point_copy
    - gf_lobit
    - gf_mul
    - ossl_curve448_point_destroy
    - gf_serialize
    - gf_sqr
    - gf_sub
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa(\n                                    uint8_t
      enc[EDDSA_448_PUBLIC_BYTES],\n                                    const curve448_point_t
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:335,1
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:337,1
    - Dst: gf_deserialize
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:340,1
    - Dst: word_is_zero
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:341,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:343,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:344,1
    - Dst: gf_mulw
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:345,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:346,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:348,1
    - Dst: gf_isr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:349,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:351,1
    - Dst: gf_cond_neg
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:352,1
    - Dst: gf_lobit
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:352,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:353,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:359,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:360,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:361,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:362,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:363,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:364,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:365,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:366,1
    - Dst: gf_add
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:367,1
    - Dst: gf_sub
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:368,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:369,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:370,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:371,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:372,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:373,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:374,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:375,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:376,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:379,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:380,1
    - Dst: ossl_curve448_point_valid
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:380,1
    - Dst: c448_succeed_if
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:382,1
    - Dst: mask_to_bool
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - p
    - enc
    argTypes:
    - curve448_point_t
    - uint8_t[]
    assertStmts:
    - condition: (ossl_curve448_point_valid(p) || ~succ)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 383
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 383
    functionName: ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - gf_mulw
    - memcpy
    - assert
    - mask_to_bool
    - gf_isr
    - gf_add
    - gf_deserialize
    - OPENSSL_cleanse
    - ossl_curve448_point_valid
    - c448_succeed_if
    - gf_cond_neg
    - gf_lobit
    - gf_mul
    - gf_copy
    - gf_sqr
    - word_is_zero
    - gf_sub
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio(\n
      \                               curve448_point_t p,\n                                const
      uint8_t enc[EDDSA_448_PUBLIC_BYTES])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gf_deserialize
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:395,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:396,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:397,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:398,1
    - Dst: gf_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:399,1
    - Dst: gf_cond_swap
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:415,1
    - Dst: gf_cond_swap
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:416,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:424,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:425,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:426,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:427,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:428,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:429,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:430,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:431,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:432,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:433,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:434,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:436,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:437,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:438,1
    - Dst: gf_sub_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:439,1
    - Dst: gf_mulw
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:441,1
    - Dst: gf_add_nr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:442,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:443,1
    - Dst: gf_cond_swap
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:447,1
    - Dst: gf_cond_swap
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:448,1
    - Dst: gf_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:449,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:450,1
    - Dst: gf_serialize
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:451,1
    - Dst: gf_eq
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:452,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:454,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:455,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:456,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:457,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:458,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:459,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:460,1
    - Dst: c448_succeed_if
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:462,1
    - Dst: mask_to_bool
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 3
    argNames:
    - out
    - base
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 385
    functionDepth: 5
    functionLinenumber: 385
    functionLinenumberEnd: 463
    functionName: ossl_x448_int
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_serialize
    - gf_mulw
    - mask_to_bool
    - gf_eq
    - OPENSSL_cleanse
    - gf_deserialize
    - gf_invert
    - c448_succeed_if
    - gf_cond_swap
    - gf_sub_nr
    - gf_copy
    - gf_mul
    - gf_sqr
    - gf_add_nr
    linkageType: ''
    returnType: c448_error_t
    signature: "c448_error_t ossl_x448_int(uint8_t out[X_PUBLIC_BYTES],\n              const
      uint8_t base[X_PUBLIC_BYTES],\n              const uint8_t scalar[X_PRIVATE_BYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: curve448_point_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:472,1
    - Dst: gf_invert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:473,1
    - Dst: gf_mul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:474,1
    - Dst: gf_sqr
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:475,1
    - Dst: gf_serialize
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:476,1
    - Dst: ossl_curve448_point_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - p
    argTypes:
    - uint8_t[]
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 465
    functionDepth: 5
    functionLinenumber: 465
    functionLinenumberEnd: 478
    functionName: ossl_curve448_point_mul_by_ratio_and_encode_like_x448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - gf_invert
    - curve448_point_copy
    - gf_mul
    - ossl_curve448_point_destroy
    - gf_serialize
    - gf_sqr
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_point_mul_by_ratio_and_encode_like_x448(uint8_t\n
      \                                                     out[X_PUBLIC_BYTES],\n
      \                                                     const curve448_point_t
      p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:489,1
    - Dst: ossl_curve448_scalar_decode_long
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:495,1
    - Dst: ossl_curve448_scalar_halve
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:499,1
    - Dst: ossl_curve448_precomputed_scalarmul
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:501,1
    - Dst: ossl_curve448_point_mul_by_ratio_and_encode_like_x448
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:503,1
    - Dst: ossl_curve448_point_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 505
    functionName: ossl_x448_derive_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - ossl_curve448_precomputed_scalarmul
    - ossl_curve448_point_mul_by_ratio_and_encode_like_x448
    - ossl_curve448_scalar_decode_long
    - memcpy
    - ossl_curve448_point_destroy
    - ossl_curve448_scalar_halve
    linkageType: ''
    returnType: void
    signature: "void ossl_x448_derive_public_key(uint8_t out[X_PUBLIC_BYTES],\n                                 const
      uint8_t scalar[X_PRIVATE_BYTES])"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 549
    functionName: numtrailingzeros
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t numtrailingzeros(uint32_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NUMTRAILINGZEROS
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:584,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:588,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:589,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - control
    - scalar
    - table_bits
    argTypes:
    - struct smvt_control*
    - curve448_scalar_t
    - unsigned int
    assertStmts:
    - condition: (position >= 0)
      pos:
        line_end: 587
        line_start: 587
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    - condition: (pos < 32)
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    - condition: (current == 0)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 607
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 607
    functionName: recode_wnaf
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - NUMTRAILINGZEROS
    - assert
    linkageType: ''
    returnType: int
    signature: "int recode_wnaf(struct smvt_control *control,\n                       /*
      [nbits/(table_bits + 1) + 3] */\n                       const curve448_scalar_t
      scalar,\n                       unsigned int table_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_to_pniels
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:617,1
    - Dst: ossl_curve448_point_double
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:622,1
    - Dst: pt_to_pniels
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:623,1
    - Dst: add_pniels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:625,1
    - Dst: pt_to_pniels
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:626,1
    - Dst: add_pniels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:629,1
    - Dst: pt_to_pniels
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:630,1
    - Dst: ossl_curve448_point_destroy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:633,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - output
    - working
    - tbits
    argTypes:
    - pniels_t*
    - curve448_point_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 635
    functionName: prepare_wnaf_table
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 0
    functionsReached:
    - ossl_curve448_point_double
    - pt_to_pniels
    - OPENSSL_cleanse
    - add_pniels_to_pt
    - ossl_curve448_point_destroy
    linkageType: ''
    returnType: void
    signature: "void prepare_wnaf_table(pniels_t * output,\n                               const
      curve448_point_t working,\n                               unsigned int tbits)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: recode_wnaf
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:649,1
    - Dst: recode_wnaf
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:650,1
    - Dst: prepare_wnaf_table
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:654,1
    - Dst: curve448_point_copy
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:658,1
    - Dst: pniels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:662,1
    - Dst: pniels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:665,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:666,1
    - Dst: niels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:673,1
    - Dst: point_double_internal
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:681,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:684,1
    - Dst: add_pniels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:687,1
    - Dst: sub_pniels_from_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:691,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:698,1
    - Dst: add_niels_to_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:701,1
    - Dst: sub_niels_from_pt
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:705,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:713,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:714,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:715,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:717,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:719,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - combo
    - scalar1
    - base2
    - scalar2
    argTypes:
    - curve448_point_t
    - curve448_scalar_t
    - curve448_point_t
    - curve448_scalar_t
    assertStmts:
    - condition: (control_pre[contp].addend)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    - condition: (control_var[contv].addend)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    - condition: (contv == ncb_var)
      pos:
        line_end: 716
        line_start: 716
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    - condition: (contp == ncb_pre)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    constantsTouched: []
    func_position:
      end: 721
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 721
    functionName: ossl_curve448_base_double_scalarmul_non_secret
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - assert
    - point_double_internal
    - add_niels_to_pt
    - OPENSSL_cleanse
    - add_pniels_to_pt
    - curve448_point_copy
    - pniels_to_pt
    - niels_to_pt
    - recode_wnaf
    - sub_niels_from_pt
    - prepare_wnaf_table
    - sub_pniels_from_pt
    linkageType: ''
    returnType: void
    signature: "void ossl_curve448_base_double_scalarmul_non_secret(curve448_point_t
      combo,\n                                               const curve448_scalar_t
      scalar1,\n                                               const curve448_point_t
      base2,\n                                               const curve448_scalar_t
      scalar2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: ossl_curve448_point_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 6
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ossl_curve448_point_destroy(curve448_point_t point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x448_int
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out_shared_key
    - private_key
    - peer_public_value
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 728
    functionDepth: 6
    functionLinenumber: 728
    functionLinenumberEnd: 733
    functionName: ossl_x448
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - ossl_x448_int
    linkageType: ''
    returnType: int
    signature: "int ossl_x448(uint8_t out_shared_key[56], const uint8_t private_key[56],\n
      \             const uint8_t peer_public_value[56])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x448_derive_public_key
      Src: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out_public_value
    - private_key
    argTypes:
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 7
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: ossl_x448_public_from_private
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448.c
    functionUses: 1
    functionsReached:
    - ossl_x448_derive_public_key
    linkageType: ''
    returnType: void
    signature: "void ossl_x448_public_from_private(uint8_t out_public_value[56],\n
      \                                  const uint8_t private_key[56])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - c448_bool_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: c448_error_t::c448_succeed_if
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/curve448utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline c448_error_t c448_succeed_if(c448_bool_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - curve448_scalar_t
    - curve448_scalar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: curve448_scalar_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/point_448.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline curve448_scalar_copy(curve448_scalar_t out,\n                                             const
      curve448_scalar_t a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - curve448_point_t
    - curve448_point_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: curve448_point_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/point_448.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline curve448_point_copy(curve448_point_t a,\n                                            const
      curve448_point_t b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: word_is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/arch_intrinsics.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word_is_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: widemul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/arch_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline widemul(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: LIMB
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: FIELD_LITERAL
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_LITERAL(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: LIMB_PLACE_VALUE
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB_PLACE_VALUE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: gf_add_RAW
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_add_RAW(gf out, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: gf_sub_RAW
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_sub_RAW(gf out, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - amt
    argTypes:
    - gf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: gf_bias
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_bias(gf a, int amt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: gf_weak_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_32/f_impl.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_weak_reduce(gf a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: word_is_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/arch_intrinsics.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word_is_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: widemul
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/arch_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline widemul(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: FIELD_LITERAL
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_LITERAL(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: LIMB_PLACE_VALUE
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIMB_PLACE_VALUE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: gf_add_RAW
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h
    functionUses: 1
    functionsReached:
    - gf_weak_reduce
    linkageType: ''
    returnType: void
    signature: void gf_add_RAW(gf out, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_weak_reduce
      Src: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - gf
    - gf
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: gf_sub_RAW
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h
    functionUses: 3
    functionsReached:
    - gf_weak_reduce
    linkageType: ''
    returnType: void
    signature: void gf_sub_RAW(gf out, const gf a, const gf b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - a
    - amt
    argTypes:
    - gf
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: gf_bias
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_bias(gf a, int amt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: gf_weak_reduce
    functionSourceFile: /src/openssl-3.0.15/crypto/ec/curve448/arch_64/f_impl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gf_weak_reduce(gf a)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:115,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:117,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:119,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:123,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:125,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:127,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:131,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:133,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: i2r_ocsp_crlid
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - ASN1_STRING_print
    - BIO_write
    - BIO_printf
    - i2a_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_crlid(const X509V3_EXT_METHOD *method, void *in, BIO
      *bp,\n                          int ind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:146,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: i2r_ocsp_acutoff
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *cutoff,\n
      \                           BIO *bp, int ind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:156,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: i2r_object
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int i2r_object(const X509V3_EXT_METHOD *method, void *oid, BIO *bp,\n
      \                     int ind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ocsp_nonce_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: void
    signature: void *ocsp_nonce_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - void*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: i2d_ocsp_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int i2d_ocsp_nonce(const void *a, unsigned char **pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:188,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:194,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - void*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: d2i_ocsp_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *d2i_ocsp_nonce(void *a, const unsigned char **pp, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: ocsp_nonce_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void ocsp_nonce_free(void *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:218,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: i2r_ocsp_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_STRING
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_nonce(const X509V3_EXT_METHOD *method, void *nonce,\n
      \                         BIO *out, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - method
    - nocheck
    - out
    - indent
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: i2r_ocsp_nocheck
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_nocheck(const X509V3_EXT_METHOD *method, void *nocheck,\n
      \                           BIO *out, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: s2i_ocsp_nocheck
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    linkageType: ''
    returnType: void
    signature: "void *s2i_ocsp_nocheck(const X509V3_EXT_METHOD *method,\n                              X509V3_CTX
      *ctx, const char *str)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:246,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:248,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:250,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:251,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:252,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:254,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c:256,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 264
    functionName: i2r_ocsp_serviceloc
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/v3_ocsp.c
    functionUses: 0
    functionsReached:
    - sk_ACCESS_DESCRIPTION_value
    - BIO_puts
    - X509_NAME_print_ex
    - GENERAL_NAME_print
    - BIO_printf
    - sk_ACCESS_DESCRIPTION_num
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int i2r_ocsp_serviceloc(const X509V3_EXT_METHOD *method, void *in,\n
      \                              BIO *bp, int ind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: OCSP_REQUEST_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: OCSP_REQUEST_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: OCSP_REQUEST_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT
      *obj,\n                                int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_REQUEST*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: OCSP_REQUEST_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: OCSP_REQUEST_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: OCSP_REQUEST_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: OCSP_REQUEST_get1_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit,
      int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: OCSP_REQUEST_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value,
      int crit,\n                              unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: OCSP_REQUEST_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_ONEREQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: OCSP_ONEREQ_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: OCSP_ONEREQ_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: OCSP_ONEREQ_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj,\n
      \                              int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_ONEREQ*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: OCSP_ONEREQ_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: OCSP_ONEREQ_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_ONEREQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: OCSP_ONEREQ_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: OCSP_ONEREQ_get1_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit,
      int *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: OCSP_ONEREQ_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value,
      int crit,\n                             unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: OCSP_ONEREQ_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: OCSP_BASICRESP_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: OCSP_BASICRESP_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: OCSP_BASICRESP_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT
      *obj,\n                                  int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_BASICRESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: OCSP_BASICRESP_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: "int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit,\n
      \                                      int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: OCSP_BASICRESP_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_BASICRESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: OCSP_BASICRESP_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: OCSP_BASICRESP_get1_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: "void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int
      *crit,\n                                  int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: OCSP_BASICRESP_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value,\n
      \                               int crit, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: OCSP_BASICRESP_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - OCSP_SINGLERESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: OCSP_SINGLERESP_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - nid
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: OCSP_SINGLERESP_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int
      lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: OCSP_SINGLERESP_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT
      *obj,\n                                   int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - crit
    - lastpos
    argTypes:
    - OCSP_SINGLERESP*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: OCSP_SINGLERESP_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: "int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit,\n
      \                                       int lastpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: OCSP_SINGLERESP_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - loc
    argTypes:
    - OCSP_SINGLERESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: OCSP_SINGLERESP_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int
      loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: OCSP_SINGLERESP_get1_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: "void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int
      *crit,\n                                   int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_add1_i2d
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: OCSP_SINGLERESP_add1_ext_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_add1_i2d
    linkageType: ''
    returnType: int
    signature: "int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void
      *value,\n                                 int crit, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: OCSP_SINGLERESP_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex,
      int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_add1_nonce
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: OCSP_request_add1_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 1
    functionsReached:
    - ocsp_add1_nonce
    linkageType: ''
    returnType: int
    signature: int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val,
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_add1_nonce
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: OCSP_basic_add1_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ocsp_add1_nonce
    linkageType: ''
    returnType: int
    signature: int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val,
      int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQUEST_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:321,1
    - Dst: OCSP_BASICRESP_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:322,1
    - Dst: OCSP_REQUEST_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:335,1
    - Dst: OCSP_BASICRESP_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:336,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:337,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:337,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - req
    - bs
    argTypes:
    - OCSP_REQUEST*
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: OCSP_check_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 1
    functionsReached:
    - OCSP_BASICRESP_get_ext_by_NID
    - X509_EXTENSION_get_data
    - OCSP_BASICRESP_get_ext
    - ASN1_OCTET_STRING_cmp
    - OCSP_REQUEST_get_ext_by_NID
    - OCSP_REQUEST_get_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_REQUEST_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:352,1
    - Dst: OCSP_REQUEST_get_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:356,1
    - Dst: OCSP_BASICRESP_add_ext
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - resp
    - req
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: OCSP_copy_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - OCSP_REQUEST_get_ext_by_NID
    - OCSP_BASICRESP_add_ext
    - OCSP_REQUEST_get_ext
    linkageType: ''
    returnType: int
    signature: int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_CRLID_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:365,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:368,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:370,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:374,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:376,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:380,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:382,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:385,1
    - Dst: OCSP_CRLID_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:387,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - url
    - n
    - tim
    argTypes:
    - char*
    - long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 389
    functionName: OCSP_crlID_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_new
    - ASN1_INTEGER_set
    - ASN1_GENERALIZEDTIME_set_string
    - OCSP_CRLID_new
    - ASN1_INTEGER_new
    - ASN1_GENERALIZEDTIME_new
    - OCSP_CRLID_free
    - X509V3_EXT_i2d
    - ASN1_STRING_set
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:395,1
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:399,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:402,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:402,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:403,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:406,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - oids
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: OCSP_accept_responses_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2nid
    - OBJ_nid2obj
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_pop_free
    - STACK_OF
    - X509V3_EXT_i2d
    - sk_ASN1_OBJECT_push
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_accept_responses_new(char **oids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:418,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:420,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:422,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tim
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 426
    functionName: OCSP_archive_cutoff_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_i2d
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_free
    - ASN1_GENERALIZEDTIME_set_string
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_archive_cutoff_new(char *tim)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_SERVICELOC_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:440,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:442,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:443,1
    - Dst: sk_ACCESS_DESCRIPTION_new_null
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:446,1
    - Dst: ACCESS_DESCRIPTION_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:449,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:451,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:453,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:455,1
    - Dst: sk_ACCESS_DESCRIPTION_push
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:461,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:466,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:468,1
    - Dst: ACCESS_DESCRIPTION_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:469,1
    - Dst: OCSP_SERVICELOC_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c:470,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 2
    argNames:
    - issuer
    - urls
    argTypes:
    - X509_NAME*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 472
    functionName: OCSP_url_svcloc_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_ext.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_new
    - OCSP_SERVICELOC_new
    - X509_NAME_free
    - ACCESS_DESCRIPTION_free
    - OBJ_nid2obj
    - OCSP_SERVICELOC_free
    - X509_NAME_dup
    - sk_ACCESS_DESCRIPTION_new_null
    - sk_ACCESS_DESCRIPTION_push
    - X509V3_EXT_i2d
    - ASN1_STRING_set
    - ACCESS_DESCRIPTION_new
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *OCSP_url_svcloc_new(const X509_NAME *issuer, const
      char **urls)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:39,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:43,1
    - Dst: X509_STORE_CTX_get0_param
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:46,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:49,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:51,1
    - Dst: X509_VERIFY_PARAM_clear_flags
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:56,1
    - Dst: X509_STORE_CTX_set_purpose
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:57,1
    - Dst: X509_STORE_CTX_set_trust
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:58,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:60,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:62,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:64,1
    - Dst: X509_verify_cert_error_string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:65,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:69,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:72,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - signer
    - response
    - st
    - flags
    - untrusted
    - chain
    argTypes:
    - X509*
    - int
    - X509_STORE*
    - unsigned long
    - STACK_OF*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 30
    functionDepth: 9
    functionLinenumber: 30
    functionLinenumberEnd: 74
    functionName: ocsp_verify_signer
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - X509_verify_cert_error_string
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - X509_VERIFY_PARAM_clear_flags
    - X509_STORE_CTX_set_trust
    - X509_STORE_CTX_get1_chain
    - X509_STORE_CTX_get0_param
    - ERR_raise
    - X509_STORE_CTX_new
    - ERR_raise_data
    - X509_STORE_CTX_get_error
    - X509_get_ext_by_NID
    - X509_VERIFY_PARAM_set_flags
    - X509_STORE_CTX_set_purpose
    linkageType: ''
    returnType: int
    signature: "int ocsp_verify_signer(X509 *signer, int response,\n                              X509_STORE
      *st, unsigned long flags,\n                              STACK_OF(X509) *untrusted,
      STACK_OF(X509) **chain)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:83,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:84,1
    - Dst: OCSP_REQUEST_verify
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:88,1
    - Dst: OCSP_BASICRESP_verify
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - req
    - bs
    - signer
    - flags
    argTypes:
    - OCSP_REQUEST*
    - OCSP_BASICRESP*
    - X509*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: ocsp_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - OCSP_BASICRESP_verify
    - OCSP_REQUEST_verify
    - ERR_raise
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: "int ocsp_verify(OCSP_REQUEST *req, OCSP_BASICRESP *bs,\n                       X509
      *signer, unsigned long flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_find_by_subject
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:198,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:207,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:208,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:209,1
    - Dst: X509_pubkey_digest
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:211,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:212,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - certs
    - id
    argTypes:
    - STACK_OF*
    - OCSP_RESPID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 189
    functionDepth: 11
    functionLinenumber: 189
    functionLinenumberEnd: 220
    functionName: ocsp_find_signer_sk
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - X509_pubkey_digest
    - X509_find_by_subject
    - sk_X509_num
    - memcmp
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: X509
    signature: X509 *ocsp_find_signer_sk(STACK_OF(X509) *certs, OCSP_RESPID *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_extension_flags
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:373,1
    - Dst: X509_get_extended_key_usage
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:374,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: ocsp_check_delegated
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_get_extension_flags
    - ERR_raise
    - X509_get_extended_key_usage
    linkageType: ''
    returnType: int
    signature: int ocsp_check_delegated(X509 *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_find_by_subject
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:428,1
    - Dst: X509_find_by_subject
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - psigner
    - req
    - nm
    - certs
    - flags
    argTypes:
    - X509**
    - OCSP_REQUEST*
    - X509_NAME*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 440
    functionName: ocsp_req_find_signer
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_find_by_subject
    linkageType: ''
    returnType: int
    signature: "int ocsp_req_find_signer(X509 **psigner, OCSP_REQUEST *req,\n                                const
      X509_NAME *nm, STACK_OF(X509) *certs,\n                                unsigned
      long flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_REQ_CTX_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:18,1
    - Dst: OSSL_HTTP_REQ_CTX_set_request_line
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:31,1
    - Dst: OSSL_HTTP_REQ_CTX_set_expected
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:35,1
    - Dst: OSSL_HTTP_REQ_CTX_set1_req
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:40,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:41,1
    - Dst: OSSL_HTTP_REQ_CTX_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:47,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - io
    - path
    - req
    - buf_size
    argTypes:
    - BIO*
    - char*
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 49
    functionName: OCSP_sendreq_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c
    functionUses: 1
    functionsReached:
    - OSSL_HTTP_REQ_CTX_set_expected
    - ASN1_ITEM_rptr
    - OSSL_HTTP_REQ_CTX_new
    - OSSL_HTTP_REQ_CTX_set_request_line
    - OSSL_HTTP_REQ_CTX_free
    - OSSL_HTTP_REQ_CTX_set1_req
    linkageType: ''
    returnType: OSSL_HTTP_REQ_CTX
    signature: "OSSL_HTTP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path,\n                                    const
      OCSP_REQUEST *req, int buf_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_sendreq_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:57,1
    - Dst: OSSL_HTTP_REQ_CTX_exchange
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:60,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:62,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:62,1
    - Dst: OSSL_HTTP_REQ_CTX_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - b
    - path
    - req
    argTypes:
    - BIO*
    - char*
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: OCSP_sendreq_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_http.c
    functionUses: 0
    functionsReached:
    - OCSP_sendreq_new
    - ASN1_item_d2i_bio
    - ASN1_ITEM_rptr
    - OSSL_HTTP_REQ_CTX_free
    - OSSL_HTTP_REQ_CTX_exchange
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_ONEREQ_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: OCSP_request_onereq_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_num
    linkageType: ''
    returnType: int
    signature: int OCSP_request_onereq_count(OCSP_REQUEST *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_ONEREQ_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - i
    argTypes:
    - OCSP_REQUEST*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: OCSP_request_onereq_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_ONEREQ_value
    linkageType: ''
    returnType: OCSP_ONEREQ
    signature: OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - one
    argTypes:
    - OCSP_ONEREQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: OCSP_onereq_get0_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one)
  - BBCount: 6
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: OCSP_id_get0_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT
      **pmd,\n                      ASN1_OCTET_STRING **pikeyHash,\n                      ASN1_INTEGER
      **pserial, OCSP_CERTID *cid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - OCSP_REQUEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: OCSP_request_is_signed
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OCSP_request_is_signed(OCSP_REQUEST *req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_RESPONSE_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:67,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:69,1
    - Dst: OCSP_RESPBYTES_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:73,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:75,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:76,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:77,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:81,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - status
    - bs
    argTypes:
    - int
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: OCSP_response_create
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_set
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - ASN1_item_pack
    - OCSP_RESPBYTES_new
    - OCSP_RESPONSE_new
    - OCSP_RESPONSE_free
    linkageType: ''
    returnType: OCSP_RESPONSE
    signature: OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_new_null
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:98,1
    - Dst: OCSP_SINGLERESP_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:101,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:104,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:107,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:110,1
    - Dst: OCSP_CERTID_dup
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:119,1
    - Dst: OCSP_REVOKEDINFO_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:122,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:124,1
    - Dst: ASN1_ENUMERATED_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:127,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:129,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:135,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:140,1
    - Dst: sk_OCSP_SINGLERESP_push
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:148,1
    - Dst: OCSP_SINGLERESP_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:152,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 154
    functionName: OCSP_basic_add1_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_set
    - ASN1_ENUMERATED_new
    - ASN1_NULL_new
    - ERR_raise
    - OCSP_CERTID_dup
    - OCSP_REVOKEDINFO_new
    - OCSP_SINGLERESP_free
    - sk_OCSP_SINGLERESP_new_null
    - sk_OCSP_SINGLERESP_push
    - OCSP_CERTID_free
    - OCSP_SINGLERESP_new
    - ASN1_TIME_to_generalizedtime
    linkageType: ''
    returnType: OCSP_SINGLERESP
    signature: "OCSP_SINGLERESP *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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_x509_add_cert_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - resp
    - cert
    argTypes:
    - OCSP_BASICRESP*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: OCSP_basic_add1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ossl_x509_add_cert_new
    linkageType: ''
    returnType: int
    signature: int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:219,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:226,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:226,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:228,1
    - Dst: OCSP_basic_sign_ctx
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:231,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - brsp
    - signer
    - key
    - dgst
    - certs
    - flags
    argTypes:
    - OCSP_BASICRESP*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 8
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: OCSP_basic_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - EVP_MD_get0_name
    - EVP_DigestSignInit_ex
    - OCSP_basic_sign_ctx
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:238,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: OCSP_RESPID_set_by_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - X509_NAME_set
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:251,1
    - Dst: X509_pubkey_digest
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:258,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:261,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:265,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:266,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - respid
    - cert
    - libctx
    - propq
    argTypes:
    - OCSP_RESPID*
    - X509*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 246
    functionDepth: 11
    functionLinenumber: 246
    functionLinenumberEnd: 277
    functionName: OCSP_RESPID_set_by_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - X509_pubkey_digest
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int OCSP_RESPID_set_by_key_ex(OCSP_RESPID *respid, X509 *cert,\n                              OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_RESPID_set_by_key_ex
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 12
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: OCSP_RESPID_set_by_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - OCSP_RESPID_set_by_key_ex
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:295,1
    - Dst: X509_pubkey_digest
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:303,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:306,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:307,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:307,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:313,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:314,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:318,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - respid
    - cert
    - libctx
    - propq
    argTypes:
    - OCSP_RESPID*
    - X509*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 286
    functionDepth: 11
    functionLinenumber: 286
    functionLinenumberEnd: 320
    functionName: OCSP_RESPID_match_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - X509_pubkey_digest
    - X509_get_subject_name
    - memcmp
    - X509_NAME_cmp
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int OCSP_RESPID_match_ex(OCSP_RESPID *respid, X509 *cert, OSSL_LIB_CTX
      *libctx,\n                         const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_RESPID_match_ex
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - respid
    - cert
    argTypes:
    - OCSP_RESPID*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 12
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: OCSP_RESPID_match
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_srv.c
    functionUses: 0
    functionsReached:
    - OCSP_RESPID_match_ex
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:30,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:32,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:33,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:35,1
    - Dst: X509_get0_pubkey_bitstr
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:38,1
    - Dst: OCSP_cert_id_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dgst
    - subject
    - issuer
    argTypes:
    - EVP_MD*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 40
    functionName: OCSP_cert_to_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c
    functionUses: 1
    functionsReached:
    - OCSP_cert_id_new
    - X509_get_issuer_name
    - EVP_sha1
    - X509_get0_serialNumber
    - X509_get0_pubkey_bitstr
    - X509_get_subject_name
    linkageType: ''
    returnType: OCSP_CERTID
    signature: "OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject,\n
      \                            const X509 *issuer)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_CERTID_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:53,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:57,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:59,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:62,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:64,1
    - Dst: X509_NAME_digest
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:68,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:70,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:74,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:77,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:86,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:88,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 4
    argNames:
    - dgst
    - issuerName
    - issuerKey
    - serialNumber
    argTypes:
    - EVP_MD*
    - X509_NAME*
    - ASN1_BIT_STRING*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 42
    functionDepth: 9
    functionLinenumber: 42
    functionLinenumberEnd: 90
    functionName: OCSP_cert_id_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - OCSP_CERTID_free
    - OBJ_nid2obj
    - ASN1_OCTET_STRING_set
    - X509_NAME_digest
    - ERR_raise
    - OCSP_CERTID_new
    - ASN1_STRING_copy
    - EVP_MD_get_type
    - EVP_Digest
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: OCSP_CERTID
    signature: "OCSP_CERTID *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: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:95,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:98,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OCSP_CERTID*
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: OCSP_id_issuer_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_cmp
    - OBJ_cmp
    linkageType: ''
    returnType: int
    signature: int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_id_issuer_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:107,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OCSP_CERTID*
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: OCSP_id_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_cmp
    - OCSP_id_issuer_cmp
    linkageType: ''
    returnType: int
    signature: int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:19,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:21,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:22,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:23,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:24,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:25,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:26,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:27,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:28,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - bp
    - a
    - indent
    argTypes:
    - BIO*
    - OCSP_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: ocsp_certid_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_STRING
    - BIO_printf
    - i2a_ASN1_INTEGER
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: int ocsp_certid_print(BIO *bp, OCSP_CERTID *a, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - ts
    - len
    argTypes:
    - long
    - OCSP_TBLSTR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: do_table2string
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *do_table2string(long s, const OCSP_TBLSTR *ts, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - tbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: table2string
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: table2string(s, tbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: OCSP_response_status_str
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 1
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: char *OCSP_response_status_str(long s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: OCSP_cert_status_str
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 1
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: char *OCSP_cert_status_str(long s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: table2string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: OCSP_crl_reason_str
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 1
    functionsReached:
    - table2string
    linkageType: ''
    returnType: char
    signature: char *OCSP_crl_reason_str(long s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:96,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:98,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:99,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:102,1
    - Dst: GENERAL_NAME_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:104,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:106,1
    - Dst: sk_OCSP_ONEREQ_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:108,1
    - Dst: sk_OCSP_ONEREQ_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:109,1
    - Dst: ocsp_certid_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:111,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:112,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:117,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:121,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:122,1
    - Dst: X509_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:123,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:123,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:124,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 130
    functionName: OCSP_REQUEST_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - X509V3_extensions_print
    - sk_X509_value
    - X509_signature_print
    - PEM_write_bio_X509
    - ASN1_INTEGER_get
    - sk_OCSP_ONEREQ_value
    - sk_X509_num
    - ocsp_certid_print
    - BIO_write
    - BIO_printf
    - X509_print
    - sk_OCSP_ONEREQ_num
    - GENERAL_NAME_print
    linkageType: ''
    returnType: int
    signature: int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *o, unsigned long flags)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:145,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:147,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:148,1
    - Dst: OCSP_response_status_str
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:149,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:153,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:155,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:157,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:158,1
    - Dst: OCSP_response_get1_basic
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:162,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:165,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:166,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:168,1
    - Dst: X509_NAME_print_ex
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:174,1
    - Dst: i2a_ASN1_STRING
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:181,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:183,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:185,1
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:187,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:188,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:190,1
    - Dst: ocsp_certid_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:192,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:195,1
    - Dst: OCSP_cert_status_str
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:196,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:200,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:202,1
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:205,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:206,1
    - Dst: OCSP_crl_reason_str
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:208,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:212,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:214,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:217,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:219,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:222,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:224,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:228,1
    - Dst: X509V3_extensions_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:231,1
    - Dst: X509_signature_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:234,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:237,1
    - Dst: X509_print
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:238,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:238,1
    - Dst: PEM_write_bio_X509
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:239,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c:239,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 246
    functionName: OCSP_RESPONSE_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_prn.c
    functionUses: 0
    functionsReached:
    - X509V3_extensions_print
    - sk_X509_value
    - PEM_write_bio_X509
    - BIO_puts
    - OBJ_obj2nid
    - BIO_printf
    - sk_OCSP_SINGLERESP_value
    - i2a_ASN1_OBJECT
    - ASN1_ENUMERATED_get
    - X509_signature_print
    - ASN1_INTEGER_get
    - ocsp_certid_print
    - OCSP_BASICRESP_free
    - X509_print
    - OCSP_response_status_str
    - ASN1_GENERALIZEDTIME_print
    - OCSP_response_get1_basic
    - sk_X509_num
    - X509_NAME_print_ex
    - sk_OCSP_SINGLERESP_num
    - i2a_ASN1_STRING
    - OCSP_crl_reason_str
    - OCSP_cert_status_str
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_ONEREQ_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:34,1
    - Dst: OCSP_CERTID_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:36,1
    - Dst: sk_OCSP_ONEREQ_push
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:38,1
    - Dst: OCSP_ONEREQ_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - req
    - cid
    argTypes:
    - OCSP_REQUEST*
    - OCSP_CERTID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: OCSP_request_add0_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 1
    functionsReached:
    - sk_OCSP_ONEREQ_push
    - OCSP_ONEREQ_new
    - OCSP_ONEREQ_free
    - OCSP_CERTID_free
    linkageType: ''
    returnType: OCSP_ONEREQ
    signature: OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:49,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:53,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:54,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - req
    - nm
    argTypes:
    - OCSP_REQUEST*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: OCSP_request_set1_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_free
    - X509_NAME_set
    - GENERAL_NAME_new
    linkageType: ''
    returnType: int
    signature: int OCSP_request_set1_name(OCSP_REQUEST *req, const X509_NAME *nm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_SIGNATURE_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:67,1
    - Dst: ossl_x509_add_cert_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - req
    - cert
    argTypes:
    - OCSP_REQUEST*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: OCSP_request_add1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - OCSP_SIGNATURE_new
    - ossl_x509_add_cert_new
    linkageType: ''
    returnType: int
    signature: int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_request_set1_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:86,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:86,1
    - Dst: OCSP_SIGNATURE_new
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:89,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:92,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:93,1
    - Dst: OCSP_REQUEST_sign
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:97,1
    - Dst: OCSP_request_add1_cert
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:102,1
    - Dst: X509_add_certs
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:103,1
    - Dst: OCSP_SIGNATURE_free
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 6
    argNames:
    - req
    - signer
    - key
    - dgst
    - certs
    - flags
    argTypes:
    - OCSP_REQUEST*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - STACK_OF*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 113
    functionName: OCSP_request_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - OCSP_request_add1_cert
    - ERR_raise
    - OCSP_request_set1_name
    - X509_add_certs
    - OCSP_SIGNATURE_free
    - OCSP_SIGNATURE_new
    - OCSP_REQUEST_sign
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - resp
    argTypes:
    - OCSP_RESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: OCSP_response_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 1
    functionsReached:
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: int
    signature: int OCSP_response_status(OCSP_RESPONSE *resp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:130,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:133,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:134,1
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:138,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - resp
    argTypes:
    - OCSP_RESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: OCSP_response_get1_basic
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 2
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_item_unpack
    - ERR_raise
    linkageType: ''
    returnType: OCSP_BASICRESP
    signature: OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: OCSP_resp_get0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: OCSP_resp_get0_tbs_sigalg
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: OCSP_resp_get0_respdata
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_RESPDATA
    signature: OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: OCSP_resp_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_num
    linkageType: ''
    returnType: int
    signature: int OCSP_resp_count(OCSP_BASICRESP *bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bs
    - idx
    argTypes:
    - OCSP_BASICRESP*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: OCSP_resp_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_value
    linkageType: ''
    returnType: OCSP_SINGLERESP
    signature: OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: OCSP_resp_get0_produced_at
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP
      *bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bs
    argTypes:
    - OCSP_BASICRESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: OCSP_resp_get0_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bs
    - pid
    - pname
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 199
    functionName: OCSP_resp_get0_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OCSP_resp_get0_id(const OCSP_BASICRESP *bs,\n                      const
      ASN1_OCTET_STRING **pid,\n                      const X509_NAME **pname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:208,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - bs
    - pid
    - pname
    argTypes:
    - OCSP_BASICRESP*
    - ASN1_OCTET_STRING**
    - X509_NAME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 219
    functionName: OCSP_resp_get1_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_dup
    - ASN1_OCTET_STRING_dup
    linkageType: ''
    returnType: int
    signature: "int OCSP_resp_get1_id(const OCSP_BASICRESP *bs,\n                      ASN1_OCTET_STRING
      **pid,\n                      X509_NAME **pname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:225,1
    - Dst: sk_OCSP_SINGLERESP_num
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:235,1
    - Dst: sk_OCSP_SINGLERESP_value
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:236,1
    - Dst: OCSP_id_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - bs
    - id
    - last
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 241
    functionName: OCSP_resp_find
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_SINGLERESP_num
    - STACK_OF
    - sk_OCSP_SINGLERESP_value
    - OCSP_id_cmp
    linkageType: ''
    returnType: int
    signature: int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:267,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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: OCSP_single_get0_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_get
    linkageType: ''
    returnType: int
    signature: "int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason,\n
      \                           ASN1_GENERALIZEDTIME **revtime,\n                            ASN1_GENERALIZEDTIME
      **thisupd,\n                            ASN1_GENERALIZEDTIME **nextupd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_resp_find
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:289,1
    - Dst: OCSP_resp_get0
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:295,1
    - Dst: OCSP_single_get0_status
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - bs
    - id
    - status
    - reason
    - revtime
    - thisupd
    - nextupd
    argTypes:
    - OCSP_BASICRESP*
    - OCSP_CERTID*
    - int*
    - int*
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    - ASN1_GENERALIZEDTIME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: OCSP_resp_find_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 1
    functionsReached:
    - OCSP_resp_get0
    - OCSP_single_get0_status
    - OCSP_resp_find
    linkageType: ''
    returnType: int
    signature: "int 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:316,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:319,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:323,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:324,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:335,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:345,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:346,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:350,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:351,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:357,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - thisupd
    - nextupd
    - nsec
    - maxsec
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - ASN1_GENERALIZEDTIME*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 363
    functionName: OCSP_check_validity
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_cmp
    - ASN1_GENERALIZEDTIME_check
    - time
    - ERR_raise
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: "int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd,\n                        ASN1_GENERALIZEDTIME
      *nextupd, long nsec, long maxsec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - single
    argTypes:
    - OCSP_SINGLERESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: OCSP_SINGLERESP_get0_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_cl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OCSP_CERTID
    signature: OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_err.c:68,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/ocsp/ocsp_err.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: ossl_err_load_OCSP_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_OCSP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - o
    - ','
    - pkey
    - ','
    - md
    - ','
    - libctx
    - ','
    - propq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: OCSP_REQUEST_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_REQUEST_sign(o, pkey, md, libctx, propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - o
    - ','
    - pkey
    - ','
    - md
    - ','
    - d
    - ','
    - libctx
    - ','
    - propq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: OCSP_BASICRESP_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_BASICRESP_sign(o, pkey, md, d, libctx, propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - o
    - ','
    - ctx
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: OCSP_BASICRESP_sign_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_BASICRESP_sign_ctx(o, ctx, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - r
    - ','
    - libctx
    - ','
    - propq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: OCSP_REQUEST_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_REQUEST_verify(a, r, libctx, propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - r
    - ','
    - libctx
    - ','
    - propq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: OCSP_BASICRESP_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ocsp/ocsp_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_BASICRESP_verify(a, r, libctx, propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: F
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 480
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: G
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 1009
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: H
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: R0
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: R1
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: R2
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(a,b,c,d,k,s,t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD4_Init
      Src: /src/openssl-3.0.15/crypto/md4/md4_one.c:32,1
    - Dst: MD4_Update
      Src: /src/openssl-3.0.15/crypto/md4/md4_one.c:35,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/md4/md4_one.c:43,1
    - Dst: MD4_Update
      Src: /src/openssl-3.0.15/crypto/md4/md4_one.c:44,1
    - Dst: MD4_Final
      Src: /src/openssl-3.0.15/crypto/md4/md4_one.c:50,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md4/md4_one.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: MD4
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_one.c
    functionUses: 0
    functionsReached:
    - ebcdic2ascii
    - OPENSSL_cleanse
    - MD4_Final
    - MD4_Update
    - MD4_Init
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MD4(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD4_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: MD4_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_dgst.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MD4_Init(MD4_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:63,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:64,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:65,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:66,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:68,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:68,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:69,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:70,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:71,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:71,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:72,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:73,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:74,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:74,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:75,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:76,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:77,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:77,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:78,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:79,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:80,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:80,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:81,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:82,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:83,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:83,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:84,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:85,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:86,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:86,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:87,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:88,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:89,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:89,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:90,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:91,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:92,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:92,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:93,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:94,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:95,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:95,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:96,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:97,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:98,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:98,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:99,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:100,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:101,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:101,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:102,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:103,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:104,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:104,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:105,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:106,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:107,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:107,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:108,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:109,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:110,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:110,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:111,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:111,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:113,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:113,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:114,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:114,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:115,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:115,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:116,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:116,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:117,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:117,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:118,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:118,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:119,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:119,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:120,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:120,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:121,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:121,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:122,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:122,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:123,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:123,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:124,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:124,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:125,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:125,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:126,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:126,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:127,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:127,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:128,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:128,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:130,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:130,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:131,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:131,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:132,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:132,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:133,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:133,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:134,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:134,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:135,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:135,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:136,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:136,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:137,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:137,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:138,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:138,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:139,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:139,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:140,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:140,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:141,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:141,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:142,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:142,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:143,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:143,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:144,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:144,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:145,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md4/md4_dgst.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 91
    argCount: 3
    argNames:
    - c
    - data_
    - num
    argTypes:
    - MD4_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 152
    functionName: md4_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_dgst.c
    functionUses: 0
    functionsReached:
    - HOST_c2l
    - R0
    - R2
    - R1
    - X
    linkageType: ''
    returnType: void
    signature: void md4_block_data_order(MD4_CTX *c, const void *data_, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_dgst.c
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/md4/md4_dgst.c
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:28,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:31,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: OPENSSL_LH_stats
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - BIO_s_file
    - OPENSSL_LH_stats_bio
    - BIO_set_fp
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:40,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:40,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:43,1
    - Dst: OPENSSL_LH_node_stats_bio
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:44,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: OPENSSL_LH_node_stats
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_node_stats_bio
    - BIO_new
    - BIO_free
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:52,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:52,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:55,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:56,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lh
    - fp
    argTypes:
    - OPENSSL_LHASH*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: OPENSSL_LH_node_usage_stats
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lh_stats.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - BIO_s_file
    - OPENSSL_LH_node_usage_stats_bio
    - BIO_set_fp
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:65,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:66,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:67,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:68,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:69,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:70,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:74,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: OPENSSL_LH_stats_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: OPENSSL_LH_node_stats_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/lhash/lh_stats.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - lh
    - out
    argTypes:
    - OPENSSL_LHASH*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 117
    functionName: OPENSSL_LH_node_usage_stats_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lh_stats.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:51,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - h
    - c
    argTypes:
    - OPENSSL_LH_HASHFUNC
    - OPENSSL_LH_COMPFUNC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: OPENSSL_LH_new
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OPENSSL_LHASH
    signature: OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_flush
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: OPENSSL_LH_free
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_LH_flush
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_free(OPENSSL_LHASH *lh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: OPENSSL_LH_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_flush(OPENSSL_LHASH *lh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expand
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:114,1
    - Dst: getrn
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:117,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: OPENSSL_LH_insert
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - getrn
    - expand
    - OPENSSL_malloc
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrn
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:152,1
    - Dst: contract
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 161
    functionName: OPENSSL_LH_delete
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - getrn
    - OPENSSL_free
    - contract
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getrn
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lh
    - data
    argTypes:
    - OPENSSL_LHASH*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: OPENSSL_LH_retrieve
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - getrn
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: func_arg
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:195,1
    - Dst: func
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:197,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 201
    functionName: doall_util_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - func
    - func_arg
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: doall_util_fn
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lh
    - func
    argTypes:
    - OPENSSL_LHASH*
    - OPENSSL_LH_DOALL_FUNC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: OPENSSL_LH_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - doall_util_fn
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doall_util_fn
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lh
    - func
    - arg
    argTypes:
    - OPENSSL_LHASH*
    - OPENSSL_LH_DOALL_FUNCARG
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: OPENSSL_LH_doall_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached:
    - doall_util_fn
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG
      func, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:224,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 255
    functionName: expand
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 89
    functionsReached:
    - OPENSSL_realloc
    - memset
    linkageType: ''
    returnType: int
    signature: int expand(OPENSSL_LHASH *lh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 288
    functionName: contract
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 12
    functionsReached:
    - OPENSSL_realloc
    linkageType: ''
    returnType: void
    signature: void contract(OPENSSL_LHASH *lh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cf
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 316
    functionName: getrn
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 3
    functionsReached:
    - cf
    linkageType: ''
    returnType: OPENSSL_LH_NODE
    signature: "OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh,\n                               const
      void *data, unsigned long *rhash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 345
    functionName: OPENSSL_LH_strhash
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OPENSSL_LH_strhash(const char *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/lhash/lhash.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 367
    functionName: ossl_lh_strcasehash
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 1
    functionsReached:
    - ossl_tolower
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ossl_lh_strcasehash(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: OPENSSL_LH_num_items
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: OPENSSL_LH_get_down_load
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lh
    - down_load
    argTypes:
    - OPENSSL_LHASH*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: OPENSSL_LH_set_down_load
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lh
    argTypes:
    - OPENSSL_LHASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: OPENSSL_LH_error
    functionSourceFile: /src/openssl-3.0.15/crypto/lhash/lhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_LH_error(OPENSSL_LHASH *lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: DSA_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_set_default_method(const DSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: DSA_get_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: DSA_OpenSSL
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_OpenSSL(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:94,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:97,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:98,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:102,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:105,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:106,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:107,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:108,1
    - Dst: dsa_sign_setup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:113,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:116,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:122,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:123,1
    - Dst: BN_priv_rand_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:141,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:141,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:144,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:145,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:146,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:147,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:150,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:152,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:156,1
    - Dst: BN_mod_add_quick
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:160,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:164,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:168,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:170,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:179,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:189,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:190,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:193,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:194,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 90
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 196
    functionName: ossl_dsa_do_sign_int
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - dsa_sign_setup
    - BN_new
    - DSA_SIG_new
    - BN_mod_mul
    - BN_bin2bn
    - BN_CTX_free
    - BN_mod_inverse
    - BN_num_bits
    - ERR_raise
    - BN_CTX_new_ex
    - BN_set_flags
    - BN_mod_add_quick
    - DSA_SIG_free
    - BN_clear_free
    - BN_num_bytes
    - BN_priv_rand_ex
    - BN_CTX_get
    - BN_is_zero
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *ossl_dsa_do_sign_int(const unsigned char *dgst, int dlen,
      DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dsa_do_sign_int
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: dsa_do_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - ossl_dsa_do_sign_int
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsa_sign_setup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: dsa_sign_setup_no_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - dsa_sign_setup
    linkageType: ''
    returnType: int
    signature: "int dsa_sign_setup_no_digest(DSA *dsa, BN_CTX *ctx_in,\n                                    BIGNUM
      **kinvp, BIGNUM **rp)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:220,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:225,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:226,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:227,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:228,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:229,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:230,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:231,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:235,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:238,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:239,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:245,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:251,1
    - Dst: bn_get_top
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:252,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:254,1
    - Dst: bn_wexpand
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:255,1
    - Dst: ossl_bn_gen_dsa_nonce_fixed_top
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:265,1
    - Dst: ossl_bn_priv_rand_range_fixed_top
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:269,1
    - Dst: ossl_bn_is_word_fixed_top
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:271,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:273,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:274,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:277,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:297,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:298,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:301,1
    - Dst: BN_is_bit_set
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:301,1
    - Dst: DSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:304,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:308,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:313,1
    - Dst: dsa_mod_inverse_fermat
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:317,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:320,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:326,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:328,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:329,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:330,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 78
    argCount: 6
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    - dgst
    - dlen
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 209
    functionDepth: 12
    functionLinenumber: 209
    functionLinenumberEnd: 332
    functionName: dsa_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 5
    functionsReached:
    - bn_wexpand
    - BN_is_bit_set
    - BN_set_flags
    - BN_is_negative
    - ossl_bn_priv_rand_range_fixed_top
    - dsa_mod_inverse_fermat
    - BN_clear_free
    - BN_new
    - BN_num_bits
    - ossl_bn_is_word_fixed_top
    - ERR_raise
    - BN_consttime_swap
    - BN_add
    - BN_mod
    - DSA*::meth::bn_mod_exp
    - BN_MONT_CTX_set_locked
    - ossl_bn_gen_dsa_nonce_fixed_top
    - BN_mod_exp_mont
    - BN_CTX_new_ex
    - bn_get_top
    - BN_CTX_free
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,\n                          BIGNUM
      **kinvp, BIGNUM **rp,\n                          const unsigned char *dgst,
      int dlen)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:346,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:350,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:353,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:357,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:358,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:361,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:362,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:363,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:364,1
    - Dst: DSA_SIG_get0
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:368,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:370,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:370,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:371,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:375,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:375,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:376,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:384,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:395,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:399,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:403,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:407,1
    - Dst: DSA*::meth::dsa_mod_exp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:414,1
    - Dst: BN_mod_exp2_mont
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:418,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:424,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:430,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:434,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:435,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:436,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:437,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:438,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 74
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 334
    functionDepth: 8
    functionLinenumber: 334
    functionLinenumberEnd: 440
    functionName: dsa_do_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_mod_exp
    - BN_new
    - BN_mod_mul
    - BN_bin2bn
    - BN_is_negative
    - BN_mod_inverse
    - BN_num_bits
    - BN_ucmp
    - ERR_raise
    - BN_free
    - BN_CTX_new_ex
    - BN_mod
    - DSA_SIG_get0
    - BN_CTX_free
    - BN_mod_exp2_mont
    - BN_MONT_CTX_set_locked
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int dsa_do_verify(const unsigned char *dgst, int dgst_len,\n                         DSA_SIG
      *sig, DSA *dsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    functionName: dsa_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dsa_init(DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 4
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: dsa_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int dsa_finish(DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:468,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:471,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:472,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:473,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:474,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:475,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:478,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - k
    - q
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 462
    functionDepth: 5
    functionLinenumber: 462
    functionLinenumberEnd: 481
    functionName: dsa_mod_inverse_fermat
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ossl.c
    functionUses: 1
    functionsReached:
    - BN_new
    - BN_mod_exp_mont
    - BN_CTX_start
    - BN_CTX_end
    - BN_free
    - BN_set_word
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *dsa_mod_inverse_fermat(const BIGNUM *k, const BIGNUM *q,\n
      \                                     BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - idx
    - arg
    argTypes:
    - DSA*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: DSA_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int DSA_set_ex_data(DSA *d, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: DSA_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *DSA_get_ex_data(const DSA *d, int idx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DH_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:53,1
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:57,1
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:57,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:61,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:65,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:69,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:79,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:80,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:81,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 83
    functionName: DSA_dup_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - DH_new
    - BN_dup
    - DH_set0_key
    - ossl_dh_get0_params
    - BN_free
    - ossl_ffc_params_copy
    - DH_free
    linkageType: ''
    returnType: DH
    signature: DH *DSA_dup_DH(const DSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: DSA_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_clear_flags(DSA *d, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: DSA_test_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_test_flags(const DSA *d, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: DSA_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_set_flags(DSA *d, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: DSA_get0_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *DSA_get0_engine(DSA *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSA_METHOD*::finish
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:115,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:117,1
    - Dst: DSA_METHOD*::init
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dsa
    - meth
    argTypes:
    - DSA*
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 124
    functionName: DSA_set_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - DSA_METHOD*::finish
    - DSA_METHOD*::init
    linkageType: ''
    returnType: int
    signature: int DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: DSA_get_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_get_method(DSA *d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:138,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:146,1
    - Dst: DSA_get_default_method
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:151,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:156,1
    - Dst: ENGINE_get_default_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:161,1
    - Dst: ENGINE_get_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:165,1
    - Dst: ossl_crypto_new_ex_data_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:174,1
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:179,1
    - Dst: DSA*::meth::init
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:181,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:182,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:189,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - engine
    - libctx
    argTypes:
    - ENGINE*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 191
    functionName: dsa_new_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - DSA_get_default_method
    - ENGINE_init
    - ossl_crypto_new_ex_data_ex
    - ENGINE_get_DSA
    - ossl_ffc_params_init
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - ENGINE_get_default_DSA
    - DSA_free
    - DSA*::meth::init
    linkageType: ''
    returnType: DSA
    signature: DSA *dsa_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsa_new_intern
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: DSA_new_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached:
    - dsa_new_intern
    linkageType: ''
    returnType: DSA
    signature: DSA *DSA_new_method(ENGINE *engine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsa_new_intern
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: ossl_dsa_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - dsa_new_intern
    linkageType: ''
    returnType: DSA
    signature: DSA *ossl_dsa_new(OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsa_new_intern
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: DSA_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached:
    - dsa_new_intern
    linkageType: ''
    returnType: DSA
    signature: DSA *DSA_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:217,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:218,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:221,1
    - Dst: DSA*::meth::finish
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:224,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:226,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:230,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:233,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:235,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:236,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:237,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 239
    functionName: DSA_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 7
    functionsReached:
    - CRYPTO_DOWN_REF
    - ENGINE_finish
    - REF_ASSERT_ISNT
    - OPENSSL_free
    - REF_PRINT_COUNT
    - BN_clear_free
    - ossl_ffc_params_cleanup
    - CRYPTO_free_ex_data
    - DSA*::meth::finish
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void DSA_free(DSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:245,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:248,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: DSA_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int DSA_up_ref(DSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - libctx
    argTypes:
    - DSA*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ossl_dsa_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_dsa_set0_libctx(DSA *d, OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_get0_pqg
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - DSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: DSA_get0_pqg
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 3
    functionsReached:
    - ossl_ffc_params_get0_pqg
    linkageType: ''
    returnType: void
    signature: "void DSA_get0_pqg(const DSA *d,\n                  const BIGNUM **p,
      const BIGNUM **q, const BIGNUM **g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 4
    argNames:
    - d
    - p
    - q
    - g
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: DSA_set0_pqg
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - ossl_ffc_params_set0_pqg
    linkageType: ''
    returnType: int
    signature: int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: DSA_get0_p
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_p(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: DSA_get0_q
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_q(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: DSA_get0_g
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_g(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: DSA_get0_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_pub_key(const DSA *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: DSA_get0_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *DSA_get0_priv_key(const DSA *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - d
    - pub_key
    - priv_key
    argTypes:
    - DSA*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: DSA_get0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void DSA_get0_key(const DSA *d,\n                  const BIGNUM **pub_key,
      const BIGNUM **priv_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:317,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - d
    - pub_key
    - priv_key
    argTypes:
    - DSA*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: DSA_set0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_security_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:332,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:332,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: DSA_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - BN_security_bits
    linkageType: ''
    returnType: int
    signature: int DSA_security_bits(const DSA *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: DSA_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int DSA_bits(const DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: ossl_dsa_get0_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFC_PARAMS
    signature: FFC_PARAMS *ossl_dsa_get0_params(DSA *dsa)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dsa_get0_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:356,1
    - Dst: ossl_ffc_params_fromdata
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dsa
    - params
    argTypes:
    - DSA*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 349
    functionDepth: 6
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: ossl_dsa_ffc_params_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_lib.c
    functionUses: 0
    functionsReached:
    - ossl_dsa_get0_params
    - ossl_ffc_params_fromdata
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_ffc_params_fromdata(DSA *dsa, const OSSL_PARAM params[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:41,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:43,1
    - Dst: d2i_DSAparams
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:51,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:56,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:61,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:66,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:71,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:76,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:77,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:81,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:82,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 85
    functionName: dsa_pub_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - d2i_ASN1_INTEGER
    - ASN1_INTEGER_to_BN
    - ERR_raise
    - X509_ALGOR_get0
    - DSA_new
    - EVP_PKEY_assign_DSA
    - DSA_free
    - ASN1_INTEGER_free
    - d2i_DSAparams
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int dsa_pub_decode(EVP_PKEY *pkey, const X509_PUBKEY *pubkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:104,1
    - Dst: i2d_DSAparams
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:109,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:119,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:123,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:127,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:131,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:135,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:139,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 143
    functionName: dsa_pub_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - OBJ_nid2obj
    - ERR_raise
    - ASN1_STRING_new
    - X509_PUBKEY_set0_param
    - OPENSSL_free
    - BN_to_ASN1_INTEGER
    - i2d_DSAparams
    - ASN1_INTEGER_free
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dsa_key_from_pkcs8
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:153,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: dsa_priv_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_dsa_key_from_pkcs8
    - EVP_PKEY_assign_DSA
    linkageType: ''
    returnType: int
    signature: int dsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:171,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:175,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:178,1
    - Dst: i2d_DSAparams
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:184,1
    - Dst: BN_to_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:193,1
    - Dst: i2d_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:197,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:202,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:206,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:206,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:208,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:214,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 216
    functionName: dsa_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_set0
    - ASN1_STRING_free
    - OBJ_nid2obj
    - ERR_raise
    - ASN1_STRING_new
    - ASN1_STRING_clear_free
    - OPENSSL_clear_free
    - BN_to_ASN1_INTEGER
    - i2d_DSAparams
    - i2d_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_size
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: int_dsa_size
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_size
    linkageType: ''
    returnType: int
    signature: int int_dsa_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: dsa_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_bits
    linkageType: ''
    returnType: int
    signature: int dsa_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_security_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: dsa_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_security_bits
    linkageType: ''
    returnType: int
    signature: int dsa_security_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: dsa_missing_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dsa_missing_parameters(const EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:246,1
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: dsa_copy_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_copy
    - DSA_new
    linkageType: ''
    returnType: int
    signature: int dsa_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_cmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: dsa_cmp_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_cmp
    linkageType: ''
    returnType: int
    signature: int dsa_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: dsa_pub_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int dsa_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 4
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: int_dsa_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void int_dsa_free(EVP_PKEY *pkey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: DSA_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:280,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:300,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:302,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:305,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:309,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:311,1
    - Dst: ossl_ffc_params_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:313,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 4
    argNames:
    - bp
    - x
    - 'off'
    - ptype
    argTypes:
    - BIO*
    - DSA*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 318
    functionName: do_dsa_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_bn_print
    - ossl_ffc_params_print
    - BIO_indent
    - BIO_printf
    - DSA_bits
    linkageType: ''
    returnType: int
    signature: int do_dsa_print(BIO *bp, const DSA *x, int off, int ptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSAparams
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:325,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: dsa_param_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - d2i_DSAparams
    linkageType: ''
    returnType: int
    signature: "int dsa_param_decode(EVP_PKEY *pkey,\n                            const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSAparams
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: dsa_param_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DSAparams
    linkageType: ''
    returnType: int
    signature: int dsa_param_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: dsa_param_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "int dsa_param_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                           ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 5
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: dsa_pub_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "int dsa_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dsa_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 5
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: dsa_priv_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - do_dsa_print
    linkageType: ''
    returnType: int
    signature: "int dsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:361,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:362,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: old_dsa_priv_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_DSA
    - ERR_raise
    - d2i_DSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "int old_dsa_priv_decode(EVP_PKEY *pkey,\n                               const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: old_dsa_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_DSAPrivateKey
    linkageType: ''
    returnType: int
    signature: int old_dsa_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:382,1
    - Dst: d2i_DSA_SIG
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:388,1
    - Dst: DSA_SIG_get0
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:393,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:395,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:398,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:400,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:404,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:407,1
    - Dst: X509_signature_dump
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:409,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - bp
    - sigalg
    - sig
    - indent
    - pctx
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 410
    functionName: dsa_sig_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - BIO_write
    - ASN1_bn_print
    - X509_signature_dump
    - d2i_DSA_SIG
    - DSA_SIG_free
    - DSA_SIG_get0
    linkageType: ''
    returnType: int
    signature: "int dsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig, int indent, ASN1_PCTX *pctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 422
    functionName: dsa_pkey_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: dsa_pkey_dirty_cnt
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dsa_pkey_dirty_cnt(const EVP_PKEY *pkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get0_p
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:435,1
    - Dst: DSA_get0_g
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:435,1
    - Dst: DSA_get0_q
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:436,1
    - Dst: DSA_get0_pub_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:436,1
    - Dst: DSA_get0_priv_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:437,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:445,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:449,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:450,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:451,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:455,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:461,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:467,1
    - Dst: importer
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:471,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:473,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:475,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 5
    argNames:
    - from
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 477
    functionName: dsa_pkey_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - DSA_get0_p
    - importer
    - DSA_get0_g
    - DSA_get0_priv_key
    - DSA_get0_pub_key
    - DSA_get0_q
    linkageType: ''
    returnType: int
    signature: "int dsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata,\n                              OSSL_FUNC_keymgmt_import_fn
      *importer,\n                              OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:482,1
    - Dst: ossl_dsa_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:483,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:486,1
    - Dst: ossl_dsa_ffc_params_fromdata
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:490,1
    - Dst: ossl_dsa_key_fromdata
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:491,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:492,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 479
    functionDepth: 7
    functionLinenumber: 479
    functionLinenumberEnd: 497
    functionName: dsa_pkey_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - ossl_dsa_new
    - ossl_dsa_ffc_params_fromdata
    - EVP_PKEY_assign_DSA
    - DSA_free
    - ossl_dsa_key_fromdata
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: int dsa_pkey_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dsa_dup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:506,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:511,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 515
    functionName: dsa_pkey_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_dsa_dup
    - DSA_free
    - EVP_PKEY_assign_DSA
    linkageType: ''
    returnType: int
    signature: int dsa_pkey_copy(EVP_PKEY *to, EVP_PKEY *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_do_verify
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_vrf.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dgst
    - dgst_len
    - sig
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA_SIG*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 9
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: DSA_do_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_vrf.c
    functionUses: 2
    functionsReached:
    - DSA*::meth::dsa_do_verify
    linkageType: ''
    returnType: int
    signature: "int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG
      *sig,\n                  DSA *dsa)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:27,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:31,1
    - Dst: DSA_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: DSA_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - DSA_print
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int DSA_print_fp(FILE *fp, const DSA *x, int off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:42,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:43,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:46,1
    - Dst: DSAparams_print
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:47,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fp
    - x
    argTypes:
    - FILE*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: DSAparams_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - DSAparams_print
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int DSAparams_print_fp(FILE *fp, const DSA *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:57,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:60,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:62,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: DSA_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_set1_DSA
    - EVP_PKEY_print_private
    linkageType: ''
    returnType: int
    signature: int DSA_print(BIO *bp, const DSA *x, int off)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:71,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:74,1
    - Dst: EVP_PKEY_print_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:76,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bp
    - x
    argTypes:
    - BIO*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: DSAparams_print
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_print_params
    - EVP_PKEY_new
    - EVP_PKEY_set1_DSA
    linkageType: ''
    returnType: int
    signature: int DSAparams_print(BIO *bp, const DSA *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_do_sign
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dgst
    - dlen
    - dsa
    argTypes:
    - unsigned char*
    - int
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 8
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: DSA_do_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 1
    functionsReached:
    - DSA*::meth::dsa_do_sign
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_sign_setup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dsa
    - ctx_in
    - kinvp
    - rp
    argTypes:
    - DSA*
    - BN_CTX*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 13
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: DSA_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_sign_setup
    linkageType: ''
    returnType: int
    signature: int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM
      **rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: DSA_SIG_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 8
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *DSA_SIG_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:46,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: DSA_SIG_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 10
    functionsReached:
    - BN_clear_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void DSA_SIG_free(DSA_SIG *sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:60,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:65,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:67,1
    - Dst: ossl_decode_der_dsa_sig
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:69,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:71,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 3
    argNames:
    - psig
    - ppin
    - len
    argTypes:
    - DSA_SIG**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: d2i_DSA_SIG
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 1
    functionsReached:
    - ossl_decode_der_dsa_sig
    - BN_new
    - DSA_SIG_new
    - DSA_SIG_free
    linkageType: ''
    returnType: DSA_SIG
    signature: DSA_SIG *d2i_DSA_SIG(DSA_SIG **psig, const unsigned char **ppin, long
      len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_init_null
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:86,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:89,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:90,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:91,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:95,1
    - Dst: ossl_encode_der_dsa_sig
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:99,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:100,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:101,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:102,1
    - Dst: WPACKET_cleanup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:103,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:111,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - sig
    - ppout
    argTypes:
    - DSA_SIG*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 118
    functionName: i2d_DSA_SIG
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 0
    functionsReached:
    - WPACKET_finish
    - WPACKET_init_static_len
    - BUF_MEM_new
    - WPACKET_init_null
    - WPACKET_get_total_written
    - WPACKET_init_len
    - BUF_MEM_free
    - WPACKET_cleanup
    - ossl_encode_der_dsa_sig
    linkageType: ''
    returnType: int
    signature: int i2d_DSA_SIG(const DSA_SIG *sig, unsigned char **ppout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_DSA_SIG
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: DSA_size
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 4
    functionsReached:
    - i2d_DSA_SIG
    linkageType: ''
    returnType: int
    signature: int DSA_size(const DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - pr
    - ps
    argTypes:
    - DSA_SIG*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: DSA_SIG_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM
      **ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:147,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - DSA_SIG*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: DSA_SIG_set0
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 2
    functionsReached:
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_size
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:160,1
    - Dst: DSA_get_default_method
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:165,1
    - Dst: DSA_do_sign
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:166,1
    - Dst: ossl_dsa_do_sign_int
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:168,1
    - Dst: i2d_DSA_SIG
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:173,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - dsa
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 176
    functionName: ossl_dsa_sign_int
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 0
    functionsReached:
    - DSA_get_default_method
    - i2d_DSA_SIG
    - DSA_size
    - DSA_SIG_free
    - DSA_do_sign
    - ossl_dsa_do_sign_int
    linkageType: ''
    returnType: int
    signature: "int ossl_dsa_sign_int(int type, const unsigned char *dgst, int dlen,\n
      \                     unsigned char *sig, unsigned int *siglen, DSA *dsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dsa_sign_int
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - type
    - dgst
    - dlen
    - sig
    - siglen
    - dsa
    argTypes:
    - int
    - unsigned char*
    - int
    - unsigned char*
    - unsigned int*
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 10
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: DSA_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 1
    functionsReached:
    - ossl_dsa_sign_int
    linkageType: ''
    returnType: int
    signature: "int DSA_sign(int type, const unsigned char *dgst, int dlen,\n             unsigned
      char *sig, unsigned int *siglen, DSA *dsa)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:200,1
    - Dst: d2i_DSA_SIG
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:203,1
    - Dst: i2d_DSA_SIG
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:206,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:207,1
    - Dst: DSA_do_verify
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:209,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:211,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c:212,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 191
    functionDepth: 10
    functionLinenumber: 191
    functionLinenumberEnd: 214
    functionName: DSA_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_sign.c
    functionUses: 1
    functionsReached:
    - i2d_DSA_SIG
    - DSA_SIG_new
    - d2i_DSA_SIG
    - OPENSSL_clear_free
    - DSA_do_verify
    - DSA_SIG_free
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int DSA_verify(int type, const unsigned char *dgst, int dgst_len,\n
      \              const unsigned char *sigbuf, int siglen, DSA *dsa)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:41,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:44,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:50,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:52,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:55,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:61,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:62,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - dsa
    - params
    - include_private
    argTypes:
    - DSA*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: ossl_dsa_key_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c
    functionUses: 1
    functionsReached:
    - DSA_set0_key
    - OSSL_PARAM_get_BN
    - BN_free
    - OSSL_PARAM_locate_const
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: "int ossl_dsa_key_fromdata(DSA *dsa, const OSSL_PARAM params[],\n                          int
      include_private)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA_get_method
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:69,1
    - Dst: DSA_OpenSSL
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: ossl_dsa_is_foreign
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c
    functionUses: 1
    functionsReached:
    - DSA_OpenSSL
    - DSA_get_method
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_is_foreign(const DSA *dsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - BIGNUM**
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: dsa_bn_dup_check
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c
    functionUses: 0
    functionsReached:
    - BN_dup
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline dsa_bn_dup_check(BIGNUM **out, const BIGNUM *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_dsa_is_foreign
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:87,1
    - Dst: ossl_dsa_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:90,1
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:94,1
    - Dst: dsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:101,1
    - Dst: dsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:106,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:110,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:118,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - dsa
    - selection
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 120
    functionName: ossl_dsa_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c
    functionUses: 1
    functionsReached:
    - CRYPTO_dup_ex_data
    - dsa_bn_dup_check
    - ossl_dsa_new
    - ossl_ffc_params_copy
    - DSA_free
    - ossl_dsa_is_foreign
    linkageType: ''
    returnType: DSA
    signature: DSA *ossl_dsa_dup(const DSA *dsa, int selection)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:139,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:141,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:143,1
    - Dst: d2i_DSAparams
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:151,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:154,1
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:156,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:161,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:164,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:165,1
    - Dst: DSA_get0_p
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:169,1
    - Dst: DSA_get0_g
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:170,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:171,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:172,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:173,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:184,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:186,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:187,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:188,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:191,1
    - Dst: ASN1_STRING_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c:192,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 3
    argNames:
    - p8inf
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 194
    functionName: ossl_dsa_key_from_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_backend.c
    functionUses: 1
    functionsReached:
    - DSA_get0_p
    - BN_new
    - d2i_ASN1_INTEGER
    - ASN1_INTEGER_to_BN
    - DSA_set0_key
    - BN_CTX_new
    - ERR_raise
    - ASN1_STRING_clear_free
    - BN_free
    - X509_ALGOR_get0
    - BN_set_flags
    - PKCS8_pkey_get0
    - BN_secure_new
    - BN_mod_exp
    - DSA_free
    - BN_CTX_free
    - DSA_get0_g
    - d2i_DSAparams
    linkageType: ''
    returnType: DSA
    signature: "DSA *ossl_dsa_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,\n                             OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_err.c:48,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_err.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ossl_err_load_DSA_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_DSA_strings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:40,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:42,1
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:46,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:48,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:50,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:53,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c:55,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: DSA_generate_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_depr.c
    functionUses: 0
    functionsReached:
    - BN_GENCB_set_old
    - BN_GENCB_free
    - BN_GENCB_new
    - DSA_free
    - DSA_new
    - DSA_generate_parameters_ex
    linkageType: ''
    returnType: DSA
    signature: "DSA *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: 4
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_asn1.c:29,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_asn1.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: dsa_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_asn1.c
    functionUses: 0
    functionsReached:
    - DSA_free
    - DSA_new
    linkageType: ''
    returnType: int
    signature: "int dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_asn1.c:71,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_asn1.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: DSAparams_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: DSA
    signature: DSA *DSAparams_dup(const DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:23,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:28,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: DSA_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_meth_new(const char *name, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: DSA_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void DSA_meth_free(DSA_METHOD *dsam)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:49,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:52,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: DSA_meth_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: DSA_meth_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *DSA_meth_get0_name(const DSA_METHOD *dsam)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:72,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:75,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dsam
    - name
    argTypes:
    - DSA_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: DSA_meth_set1_name
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: DSA_meth_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_get_flags(const DSA_METHOD *dsam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - flags
    argTypes:
    - DSA_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: DSA_meth_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_flags(DSA_METHOD *dsam, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: DSA_meth_get0_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *DSA_meth_get0_app_data(const DSA_METHOD *dsam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - app_data
    argTypes:
    - DSA_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: DSA_meth_set0_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: "*(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const unsigned
      char *, int, DSA *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DSA_SIG
    signature: "DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int, DSA *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dsam
    - (*sign) (const unsigned char *, int, DSA *)
    argTypes:
    - DSA_METHOD*
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: DSA_meth_set_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_sign(DSA_METHOD *dsam,\n                       DSA_SIG
      *(*sign) (const unsigned char *, int, DSA *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: "(*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA
      *, BN_CTX *, BIGNUM **, BIGNUM **)"
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam))\n        (DSA
      *, BN_CTX *, BIGNUM **, BIGNUM **)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: DSA_meth_set_sign_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_sign_setup(DSA_METHOD *dsam,\n        int (*sign_setup)
      (DSA *, BN_CTX *, BIGNUM **, BIGNUM **))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: "(*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int, DSA_SIG *, DSA *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_verify(const DSA_METHOD *dsam))\n        (const
      unsigned char *, int, DSA_SIG *, DSA *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: DSA_meth_set_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_verify(DSA_METHOD *dsam,\n    int (*verify) (const
      unsigned char *, int, DSA_SIG *, DSA *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    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/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: DSA_meth_set_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    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/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: DSA_meth_set_bn_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: DSA_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: DSA_meth_set_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: "(*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA
      *, int, const unsigned char *, int, int *, unsigned long *,\n         BN_GENCB
      *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam))\n        (DSA
      *, int, const unsigned char *, int, int *, unsigned long *,\n         BN_GENCB
      *)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: DSA_meth_set_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int DSA_meth_set_paramgen(DSA_METHOD *dsam,\n        int (*paramgen)
      (DSA *, int, const unsigned char *, int, int *,\n                         unsigned
      long *, BN_GENCB *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dsam
    argTypes:
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: DSA_meth_set_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_FIPS186_2_generate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c:33,1
    - Dst: ossl_ffc_params_FIPS186_4_generate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - dsa
    - type
    - pbits
    - qbits
    - cb
    argTypes:
    - DSA*
    - int
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: ossl_dsa_generate_ffc_parameters
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_FIPS186_4_generate
    - ossl_ffc_params_FIPS186_2_generate
    linkageType: ''
    returnType: int
    signature: "int ossl_dsa_generate_ffc_parameters(DSA *dsa, int type, int pbits,
      int qbits,\n                                     BN_GENCB *cb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_paramgen
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c:53,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c:56,1
    - Dst: ossl_dsa_generate_ffc_parameters
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c:62,1
    - Dst: ossl_dsa_generate_ffc_parameters
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 7
    argNames:
    - dsa
    - bits
    - seed_in
    - seed_len
    - counter_ret
    - h_ret
    - cb
    argTypes:
    - DSA*
    - int
    - unsigned char*
    - int
    - int*
    - unsigned long*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: DSA_generate_parameters_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_gen.c
    functionUses: 1
    functionsReached:
    - DSA*::meth::dsa_paramgen
    - ossl_ffc_params_set_validate_params
    - ossl_dsa_generate_ffc_parameters
    linkageType: ''
    returnType: int
    signature: "int DSA_generate_parameters_ex(DSA *dsa, int bits,\n                               const
      unsigned char *seed_in, int seed_len,\n                               int *counter_ret,
      unsigned long *h_ret,\n                               BN_GENCB *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:25,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:31,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:36,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dsa
    - ret
    argTypes:
    - DSA*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: dsa_precheck_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_check.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int dsa_precheck_params(const DSA *dsa, int *ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dsa_precheck_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:47,1
    - Dst: ossl_ffc_params_simple_validate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:51,1
    - Dst: ossl_ffc_params_full_validate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dsa
    - checktype
    - ret
    argTypes:
    - DSA*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: ossl_dsa_check_params
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_check.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_full_validate
    - dsa_precheck_params
    - ossl_ffc_params_simple_validate
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_check_params(const DSA *dsa, int checktype, int *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_precheck_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:68,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dsa
    - pub_key
    - ret
    argTypes:
    - DSA*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: ossl_dsa_check_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_check.c
    functionUses: 0
    functionsReached:
    - dsa_precheck_params
    - ossl_ffc_validate_public_key
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_check_pub_key(const DSA *dsa, const BIGNUM *pub_key, int
      *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_precheck_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:82,1
    - Dst: ossl_ffc_validate_public_key_partial
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dsa
    - pub_key
    - ret
    argTypes:
    - DSA*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: ossl_dsa_check_pub_key_partial
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_check.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_validate_public_key_partial
    - dsa_precheck_params
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_check_pub_key_partial(const DSA *dsa, const BIGNUM *pub_key,
      int *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsa_precheck_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:93,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dsa
    - priv_key
    - ret
    argTypes:
    - DSA*
    - BIGNUM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: ossl_dsa_check_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_check.c
    functionUses: 0
    functionsReached:
    - dsa_precheck_params
    - ossl_ffc_validate_private_key
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_check_priv_key(const DSA *dsa, const BIGNUM *priv_key,
      int *ret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dsa_precheck_params
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:109,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:117,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:120,1
    - Dst: ossl_dsa_generate_public_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:125,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:128,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:130,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_check.c:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: ossl_dsa_check_pairwise
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_check.c
    functionUses: 0
    functionsReached:
    - BN_new
    - dsa_precheck_params
    - BN_free
    - BN_CTX_new_ex
    - ossl_dsa_generate_public_key
    - BN_CTX_free
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_dsa_check_pairwise(const DSA *dsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA*::meth::dsa_keygen
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:38,1
    - Dst: dsa_keygen
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dsa
    argTypes:
    - DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: DSA_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_key.c
    functionUses: 0
    functionsReached:
    - DSA*::meth::dsa_keygen
    - dsa_keygen
    linkageType: ''
    returnType: int
    signature: int DSA_generate_key(DSA *dsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:47,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:51,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:54,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - dsa
    - priv_key
    - pub_key
    argTypes:
    - BN_CTX*
    - DSA*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: ossl_dsa_generate_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_key.c
    functionUses: 1
    functionsReached:
    - BN_with_flags
    - BN_mod_exp
    - BN_clear_free
    - BN_new
    linkageType: ''
    returnType: int
    signature: "int ossl_dsa_generate_public_key(BN_CTX *ctx, const DSA *dsa,\n                                 const
      BIGNUM *priv_key, BIGNUM *pub_key)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:68,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:72,1
    - Dst: ossl_ffc_params_simple_validate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:79,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:88,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:89,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:94,1
    - Dst: ossl_dsa_generate_public_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:100,1
    - Dst: OSSL_SELF_TEST_get_callback
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:115,1
    - Dst: dsa_keygen_pairwise_test
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:116,1
    - Dst: ossl_set_error_state
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:118,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:119,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:120,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:123,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:131,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:133,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:134,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 2
    argNames:
    - dsa
    - pairwise_test
    argTypes:
    - DSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 137
    functionName: dsa_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_key.c
    functionUses: 1
    functionsReached:
    - BN_new
    - dsa_keygen_pairwise_test
    - OSSL_SELF_TEST_get_callback
    - BN_num_bits
    - BN_free
    - BN_CTX_new_ex
    - BN_clear_free
    - ossl_dsa_generate_public_key
    - ossl_ffc_params_simple_validate
    - BN_secure_new
    - ossl_set_error_state
    - BN_CTX_free
    - ossl_ffc_generate_private_key
    linkageType: ''
    returnType: int
    signature: int dsa_keygen(DSA *dsa, int pairwise_test)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_SELF_TEST_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:151,1
    - Dst: OSSL_SELF_TEST_onbegin
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:155,1
    - Dst: DSA_do_sign
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:158,1
    - Dst: OSSL_SELF_TEST_oncorrupt_byte
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:162,1
    - Dst: DSA_do_verify
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:164,1
    - Dst: OSSL_SELF_TEST_onend
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:169,1
    - Dst: OSSL_SELF_TEST_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:170,1
    - Dst: DSA_SIG_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_key.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - dsa
    - cb
    - cbarg
    argTypes:
    - DSA*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 143
    functionDepth: 10
    functionLinenumber: 143
    functionLinenumberEnd: 173
    functionName: dsa_keygen_pairwise_test
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_key.c
    functionUses: 2
    functionsReached:
    - OSSL_SELF_TEST_free
    - OSSL_SELF_TEST_new
    - OSSL_SELF_TEST_onbegin
    - DSA_do_verify
    - DSA_SIG_free
    - DSA_do_sign
    - OSSL_SELF_TEST_oncorrupt_byte
    - OSSL_SELF_TEST_onend
    linkageType: ''
    returnType: int
    signature: int dsa_keygen_pairwise_test(DSA *dsa, OSSL_CALLBACK *cb, void *cbarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: pkey_dsa_init
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkey_dsa_init
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: pkey_dsa_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_dsa_init
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: pkey_dsa_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pkey_dsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:89,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:91,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 11
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: pkey_dsa_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - DSA_sign
    - EVP_PKEY_get0_DSA
    linkageType: ''
    returnType: int
    signature: "int pkey_dsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                         size_t
      *siglen, const unsigned char *tbs,\n                         size_t tbslen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:113,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:115,1
    - Dst: DSA_verify
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 102
    functionDepth: 11
    functionLinenumber: 102
    functionLinenumberEnd: 121
    functionName: pkey_dsa_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - EVP_PKEY_get0_DSA
    - DSA_verify
    linkageType: ''
    returnType: int
    signature: "int pkey_dsa_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:141,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:142,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:144,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:151,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:152,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:153,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:154,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:155,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:156,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:157,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:158,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:159,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:160,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:161,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:178,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 184
    functionName: pkey_dsa_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:189,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:191,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:192,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:194,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:195,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:196,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:198,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:202,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_md
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: pkey_dsa_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - ERR_raise
    - strcmp
    - EVP_PKEY_CTX_set_dsa_paramgen_md
    - atoi
    linkageType: ''
    returnType: int
    signature: "int pkey_dsa_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:218,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:221,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:224,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:226,1
    - Dst: ossl_ffc_set_digest
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:230,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:230,1
    - Dst: ossl_ffc_params_FIPS186_4_generate
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:232,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:235,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:237,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: pkey_dsa_paramgen
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_set_digest
    - BN_GENCB_free
    - EVP_MD_get0_name
    - BN_GENCB_new
    - ossl_ffc_params_FIPS186_4_generate
    - DSA_new
    - EVP_PKEY_assign_DSA
    - DSA_free
    - evp_pkey_set_cb_translate
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:248,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:251,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:254,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:256,1
    - Dst: DSA_generate_key
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:258,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: pkey_dsa_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_get0_DSA
    - ERR_raise
    - DSA_generate_key
    - DSA_new
    - EVP_PKEY_assign_DSA
    linkageType: ''
    returnType: int
    signature: int pkey_dsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: ossl_dsa_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/dsa/dsa_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_dsa_pkey_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_cfb.c:30,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: Camellia_cfb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_1_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_cfb.c:39,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Camellia_cfb1_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_1_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cfb128_8_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_cfb.c:47,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: Camellia_cfb8_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_cfb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cfb128_8_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: RightRotate
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RightRotate(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: LeftRotate
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LeftRotate(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: GETU32
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: PUTU32
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _s0
    - ','
    - _s1
    - ','
    - _s2
    - ','
    - _s3
    - ','
    - _key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 272
    functionName: Camellia_Feistel
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Camellia_Feistel(_s0,_s1,_s2,_s3,_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _s0
    - ','
    - _s1
    - ','
    - _s2
    - ','
    - _s3
    - ','
    - _n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: RotLeft128
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RotLeft128(_s0,_s1,_s2,_s3,_n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:290,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:291,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:292,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:293,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:296,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:297,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:302,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:303,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:309,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:310,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:313,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:314,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:319,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:321,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:323,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:325,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:327,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:329,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:333,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:335,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:337,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:339,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:341,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:343,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:350,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:351,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:354,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:356,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:358,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:362,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:364,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:366,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:368,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:372,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:374,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:378,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:382,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:384,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:386,1
    - Dst: RotLeft128
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 90
    argCount: 3
    argNames:
    - keyBitLength
    - rawKey
    - k
    argTypes:
    - int
    - u8*
    - KEY_TABLE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 401
    functionName: Camellia_Ekeygen
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - RotLeft128
    - GETU32
    - Camellia_Feistel
    linkageType: ''
    returnType: int
    signature: int Camellia_Ekeygen(int keyBitLength, const u8 *rawKey, KEY_TABLE_TYPE
      k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:410,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:411,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:412,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:413,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:418,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:419,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:420,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:421,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:422,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:423,1
    - Dst: LeftRotate
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:434,1
    - Dst: LeftRotate
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:437,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:443,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:444,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:445,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - grandRounds
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 447
    functionName: Camellia_EncryptBlock_Rounds
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - LeftRotate
    - PUTU32
    - GETU32
    - Camellia_Feistel
    linkageType: ''
    returnType: void
    signature: "void Camellia_EncryptBlock_Rounds(int grandRounds, const u8 plaintext[],\n
      \                                 const KEY_TABLE_TYPE keyTable,\n                                  u8
      ciphertext[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_EncryptBlock_Rounds
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyBitLength
    - plaintext
    - keyTable
    - ciphertext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: Camellia_EncryptBlock
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - Camellia_EncryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_EncryptBlock(int keyBitLength, const u8 plaintext[],\n
      \                          const KEY_TABLE_TYPE keyTable, u8 ciphertext[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:463,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:464,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:465,1
    - Dst: GETU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:466,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:471,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:472,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:473,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:474,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:475,1
    - Dst: Camellia_Feistel
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:476,1
    - Dst: LeftRotate
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:487,1
    - Dst: LeftRotate
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:490,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:496,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:497,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:498,1
    - Dst: PUTU32
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - grandRounds
    - ciphertext
    - keyTable
    - plaintext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 500
    functionName: Camellia_DecryptBlock_Rounds
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - LeftRotate
    - PUTU32
    - GETU32
    - Camellia_Feistel
    linkageType: ''
    returnType: void
    signature: "void Camellia_DecryptBlock_Rounds(int grandRounds, const u8 ciphertext[],\n
      \                                 const KEY_TABLE_TYPE keyTable,\n                                  u8
      plaintext[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_DecryptBlock_Rounds
      Src: /src/openssl-3.0.15/crypto/camellia/camellia.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyBitLength
    - ciphertext
    - keyTable
    - plaintext
    argTypes:
    - int
    - u8[]
    - KEY_TABLE_TYPE
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: Camellia_DecryptBlock
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/camellia.c
    functionUses: 0
    functionsReached:
    - Camellia_DecryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_DecryptBlock(int keyBitLength, const u8 ciphertext[],\n
      \                          const KEY_TABLE_TYPE keyTable, u8 plaintext[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ofb128_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_ofb.c:28,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: Camellia_ofb128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_ofb.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ofb128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_ctr128_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_ctr.c:26,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: Camellia_ctr128_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_ctr.c
    functionUses: 0
    functionsReached:
    - CRYPTO_ctr128_encrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_Ekeygen
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_misc.c:27,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - userKey
    - bits
    - key
    argTypes:
    - unsigned char*
    - int
    - CAMELLIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Camellia_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_misc.c
    functionUses: 1
    functionsReached:
    - Camellia_Ekeygen
    linkageType: ''
    returnType: int
    signature: "int Camellia_set_key(const unsigned char *userKey, const int bits,\n
      \                    CAMELLIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_EncryptBlock_Rounds
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Camellia_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_misc.c
    functionUses: 0
    functionsReached:
    - Camellia_EncryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     const CAMELLIA_KEY *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_DecryptBlock_Rounds
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_misc.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: Camellia_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_misc.c
    functionUses: 0
    functionsReached:
    - Camellia_DecryptBlock_Rounds
    linkageType: ''
    returnType: void
    signature: "void Camellia_decrypt(const unsigned char *in, unsigned char *out,\n
      \                     const CAMELLIA_KEY *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_ecb.c:23,1
    - Dst: Camellia_decrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_ecb.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - out
    - key
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAMELLIA_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: Camellia_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_ecb.c
    functionUses: 0
    functionsReached:
    - Camellia_decrypt
    - Camellia_encrypt
    linkageType: ''
    returnType: void
    signature: "void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                         const CAMELLIA_KEY *key, const int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_cbc128_encrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_cbc.c:25,1
    - Dst: CRYPTO_cbc128_decrypt
      Src: /src/openssl-3.0.15/crypto/camellia/cmll_cbc.c:28,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: Camellia_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/camellia/cmll_cbc.c
    functionUses: 0
    functionsReached:
    - CRYPTO_cbc128_encrypt
    - CRYPTO_cbc128_decrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD5_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: MD5_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_dgst.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MD5_Init(MD5_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:63,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:64,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:65,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:66,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:68,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:68,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:69,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:70,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:71,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:71,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:72,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:73,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:74,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:74,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:75,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:76,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:77,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:77,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:78,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:79,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:80,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:80,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:81,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:82,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:83,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:83,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:84,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:85,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:86,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:86,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:87,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:88,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:89,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:89,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:90,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:91,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:92,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:92,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:93,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:94,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:95,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:95,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:96,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:97,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:98,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:98,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:99,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:100,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:101,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:101,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:102,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:103,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:104,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:104,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:105,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:106,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:107,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:107,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:108,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:109,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:110,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:110,1
    - Dst: R0
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:111,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:111,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:113,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:113,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:114,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:114,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:115,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:115,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:116,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:116,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:117,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:117,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:118,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:118,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:119,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:119,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:120,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:120,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:121,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:121,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:122,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:122,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:123,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:123,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:124,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:124,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:125,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:125,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:126,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:126,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:127,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:127,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:128,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:128,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:130,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:130,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:131,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:131,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:132,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:132,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:133,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:133,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:134,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:134,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:135,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:135,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:136,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:136,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:137,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:137,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:138,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:138,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:139,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:139,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:140,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:140,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:141,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:141,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:142,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:142,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:143,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:143,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:144,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:144,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:145,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:145,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:147,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:147,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:148,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:148,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:149,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:149,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:150,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:150,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:151,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:151,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:152,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:152,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:153,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:153,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:154,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:154,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:155,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:155,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:156,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:156,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:157,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:157,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:158,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:158,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:159,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:159,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:160,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:160,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:161,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:161,1
    - Dst: R3
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:162,1
    - Dst: X
      Src: /src/openssl-3.0.15/crypto/md5/md5_dgst.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 107
    argCount: 3
    argNames:
    - c
    - data_
    - num
    argTypes:
    - MD5_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 169
    functionName: md5_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_dgst.c
    functionUses: 0
    functionsReached:
    - HOST_c2l
    - R0
    - R2
    - R1
    - X
    - R3
    linkageType: ''
    returnType: void
    signature: void md5_block_data_order(MD5_CTX *c, const void *data_, size_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_dgst.c
    functionUses: 107
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: X
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_dgst.c
    functionUses: 107
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openssl-3.0.15/crypto/md5/md5_one.c:32,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_one.c:35,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/md5/md5_one.c:43,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_one.c:44,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/md5/md5_one.c:50,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md5/md5_one.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: MD5
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_one.c
    functionUses: 0
    functionsReached:
    - ebcdic2ascii
    - OPENSSL_cleanse
    - MD5_Init
    - MD5_Update
    - MD5_Final
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MD5(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Init
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:22,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mctx
    argTypes:
    - MD5_SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: ossl_md5_sha1_init
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_sha1.c
    functionUses: 0
    functionsReached:
    - MD5_Init
    - SHA1_Init
    linkageType: ''
    returnType: int
    signature: int ossl_md5_sha1_init(MD5_SHA1_CTX *mctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:29,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mctx
    - data
    - count
    argTypes:
    - MD5_SHA1_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: ossl_md5_sha1_update
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_sha1.c
    functionUses: 0
    functionsReached:
    - SHA1_Update
    - MD5_Update
    linkageType: ''
    returnType: int
    signature: int ossl_md5_sha1_update(MD5_SHA1_CTX *mctx, const void *data, size_t
      count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:36,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - mctx
    argTypes:
    - unsigned char*
    - MD5_SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ossl_md5_sha1_final
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_sha1.c
    functionUses: 0
    functionsReached:
    - MD5_Final
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: int ossl_md5_sha1_final(unsigned char *md, MD5_SHA1_CTX *mctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ossl_md5_sha1_update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:61,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:65,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:67,1
    - Dst: MD5_Final
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:70,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:73,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:76,1
    - Dst: ossl_md5_sha1_init
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:81,1
    - Dst: ossl_md5_sha1_update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:84,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:88,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:90,1
    - Dst: MD5_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:93,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:96,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:99,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:104,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md5/md5_sha1.c:105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - mctx
    - cmd
    - mslen
    - ms
    argTypes:
    - MD5_SHA1_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 108
    functionName: ossl_md5_sha1_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_sha1.c
    functionUses: 1
    functionsReached:
    - ossl_md5_sha1_init
    - OPENSSL_cleanse
    - SHA1_Update
    - MD5_Update
    - ossl_md5_sha1_update
    - memset
    - SHA1_Final
    - MD5_Final
    linkageType: ''
    returnType: int
    signature: int ossl_md5_sha1_ctrl(MD5_SHA1_CTX *mctx, int cmd, int mslen, void
      *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: F
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 482
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: G
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 1013
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: H
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: I
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: R0
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: R1
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: R2
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - k
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: R3
    functionSourceFile: /src/openssl-3.0.15/crypto/md5/md5_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(a,b,c,d,k,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: char_to_int
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char_to_int(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: OSSL_MAX
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_MAX(p,q)
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:119,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:151,1
    - Dst: char_to_int
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:152,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:155,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:169,1
    - Dst: char_to_int
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:172,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:175,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:219,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:222,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:225,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:228,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:231,1
    - Dst: fmtint
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:234,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:247,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:250,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:253,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:256,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:259,1
    - Dst: fmtint
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:262,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:270,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:272,1
    - Dst: fmtfp
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:273,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:282,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:284,1
    - Dst: fmtfp
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:285,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:294,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:296,1
    - Dst: fmtfp
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:297,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:308,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:312,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:313,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:317,1
    - Dst: fmtstr
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:324,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:329,1
    - Dst: fmtint
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:330,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:337,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:342,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:373,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 244
    argCount: 7
    argNames:
    - sbuffer
    - buffer
    - maxlen
    - retlen
    - truncated
    - format
    - args
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 377
    functionName: _dopr
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 0
    functionsReached:
    - va_arg
    - char_to_int
    - fmtfp
    - ERR_raise
    - fmtint
    - fmtstr
    - doapr_outch
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: "int _dopr(char **sbuffer,\n      char **buffer,\n      size_t *maxlen,\n
      \     size_t *retlen, int *truncated, const char *format, va_list args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:392,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:411,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:417,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:423,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 429
    functionName: fmtstr
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 1
    functionsReached:
    - doapr_outch
    - OPENSSL_strnlen
    linkageType: ''
    returnType: int
    signature: "int fmtstr(char **sbuffer,\n       char **buffer,\n       size_t *currlen,\n
      \      size_t *maxlen, const char *value, int flags, int min, int max)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:440,1
    - Dst: OSSL_MAX
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:477,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:477,1
    - Dst: OSSL_MAX
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:483,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:491,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:498,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:503,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:511,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:518,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:524,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*
    - int64_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 529
    functionName: fmtint
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 1
    functionsReached:
    - doapr_outch
    - OSSL_MAX
    - strlen
    - DECIMAL_SIZE
    linkageType: ''
    returnType: int
    signature: "int fmtint(char **sbuffer,\n       char **buffer,\n       size_t *currlen,\n
      \      size_t *maxlen, int64_t value, int base, int min, int max, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: abs_val
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: LDOUBLE abs_val(LDOUBLE value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in_exp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 549
    functionName: pow_10
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LDOUBLE
    signature: LDOUBLE pow_10(int in_exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - LDOUBLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: roundv
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long roundv(LDOUBLE value)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: pow_10
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:605,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:641,1
    - Dst: abs_val
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:656,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:663,1
    - Dst: roundv
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:679,1
    - Dst: pow_10
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:679,1
    - Dst: roundv
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:680,1
    - Dst: pow_10
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:680,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:728,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:754,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:760,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:766,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:770,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:774,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:783,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:787,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:793,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:804,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:807,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:810,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:814,1
    - Dst: doapr_outch
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:821,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 173
    argCount: 9
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - fvalue
    - min
    - max
    - flags
    - style
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - LDOUBLE
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 826
    functionName: fmtfp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 1
    functionsReached:
    - pow_10
    - abs_val
    - doapr_outch
    - roundv
    linkageType: ''
    returnType: int
    signature: "int 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: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:837,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:841,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:850,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:851,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:855,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:857,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:863,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:865,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 5
    argNames:
    - sbuffer
    - buffer
    - currlen
    - maxlen
    - c
    argTypes:
    - char**
    - char**
    - size_t*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 880
    functionName: doapr_outch
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 4
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_realloc
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int doapr_outch(char **sbuffer,\n            char **buffer, size_t
      *currlen, size_t *maxlen, int c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:889,1
    - Dst: BIO_vprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:891,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bio
    - format
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 895
    functionName: BIO_printf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 115
    functionsReached:
    - va_end
    - va_start
    - BIO_vprintf
    linkageType: ''
    returnType: int
    signature: int BIO_printf(BIO *bio, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dopr
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:910,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:912,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:916,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:917,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - bio
    - format
    - args
    argTypes:
    - BIO*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 922
    functionName: BIO_vprintf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 2
    functionsReached:
    - _dopr
    - OPENSSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int BIO_vprintf(BIO *bio, const char *format, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:935,1
    - Dst: BIO_vsnprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:937,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - n
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 941
    functionName: BIO_snprintf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 21
    functionsReached:
    - BIO_vsnprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int BIO_snprintf(char *buf, size_t n, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _dopr
      Src: /src/openssl-3.0.15/crypto/bio/bio_print.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - buf
    - n
    - format
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 960
    functionName: BIO_vsnprintf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_print.c
    functionUses: 1
    functionsReached:
    - _dopr
    linkageType: ''
    returnType: int
    signature: int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: BIO_s_log
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xopenlog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: slg_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xopenlog
    linkageType: ''
    returnType: int
    signature: int slg_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcloselog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: slg_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xcloselog
    linkageType: ''
    returnType: int
    signature: int slg_free(BIO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:201,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:204,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:208,1
    - Dst: xsyslog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:213,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 217
    functionName: slg_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - xsyslog
    - ERR_raise
    - OPENSSL_free
    - strncmp
    linkageType: ''
    returnType: int
    signature: int slg_write(BIO *b, const char *in, int inl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcloselog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:223,1
    - Dst: xopenlog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: slg_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - xcloselog
    - xopenlog
    linkageType: ''
    returnType: long
    signature: long slg_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:236,1
    - Dst: slg_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: slg_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached:
    - slg_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int slg_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_winnt
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:245,1
    - Dst: RegisterEventSourceA
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: xopenlog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - RegisterEventSourceA
    - check_winnt
    linkageType: ''
    returnType: void
    signature: void xopenlog(BIO *bp, char *name, int level)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:255,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:284,1
    - Dst: GetCurrentProcessId
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:284,1
    - Dst: ReportEventA
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 289
    functionName: xsyslog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - ReportEventA
    - GetCurrentProcessId
    - DECIMAL_SIZE
    - sprintf
    linkageType: ''
    returnType: void
    signature: void xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeregisterEventSource
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: xcloselog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - DeregisterEventSource
    linkageType: ''
    returnType: void
    signature: void xcloselog(BIO *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: xopenlog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xopenlog(BIO *bp, char *name, int level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: $DESCRIPTOR
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:331,1
    - Dst: lib$sys_fao
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:366,1
    - Dst: OPCDEF_MALLOC
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:369,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:371,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:373,1
    - Dst: sys$sndopr
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:380,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:382,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 383
    functionName: xsyslog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - $DESCRIPTOR
    - memcpy
    - lib$sys_fao
    - OPENSSL_free
    - sys$sndopr
    - OPCDEF_MALLOC
    linkageType: ''
    returnType: void
    signature: void xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: xcloselog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xcloselog(BIO *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:394,1
    - Dst: openlog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bp
    - name
    - level
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: xopenlog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - openlog
    linkageType: ''
    returnType: void
    signature: void xopenlog(BIO *bp, char *name, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - priority
    - string
    argTypes:
    - BIO*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: xsyslog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 1
    functionsReached:
    - syslog
    linkageType: ''
    returnType: void
    signature: void xsyslog(BIO *bp, int priority, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closelog
      Src: /src/openssl-3.0.15/crypto/bio/bss_log.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: xcloselog
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 2
    functionsReached:
    - closelog
    linkageType: ''
    returnType: void
    signature: void xcloselog(BIO *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: BIO_s_log
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_log(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: BIO_new_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_fd(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: BIO_fd_non_fatal_error
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_fd_non_fatal_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: BIO_fd_should_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_fd_should_retry(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: BIO_s_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: BIO_s_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_fd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:83,1
    - Dst: BIO_s_fd
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:83,1
    - Dst: BIO_set_fd
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: BIO_new_fd
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - BIO_set_fd
    - BIO_new
    - BIO_s_fd
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_fd(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: fd_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fd_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UP_close
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: fd_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - UP_close
    linkageType: ''
    returnType: int
    signature: int fd_free(BIO *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:118,1
    - Dst: UP_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:119,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:120,1
    - Dst: BIO_fd_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:122,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: fd_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - UP_read
    - BIO_fd_should_retry
    - BIO_clear_retry_flags
    - clear_sys_error
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int fd_read(BIO *b, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:134,1
    - Dst: UP_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:135,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:136,1
    - Dst: BIO_fd_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:138,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: fd_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - UP_write
    - BIO_set_retry_write
    - BIO_fd_should_retry
    - BIO_clear_retry_flags
    - clear_sys_error
    linkageType: ''
    returnType: int
    signature: int fd_write(BIO *b, const char *in, int inl)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UP_lseek
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:154,1
    - Dst: UP_lseek
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:158,1
    - Dst: fd_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:161,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 197
    functionName: fd_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - fd_free
    - UP_lseek
    linkageType: ''
    returnType: long
    signature: long fd_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:203,1
    - Dst: fd_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: fd_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - strlen
    - fd_write
    linkageType: ''
    returnType: int
    signature: int fd_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fd_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:214,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: fd_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 0
    functionsReached:
    - strlen
    - fd_read
    linkageType: ''
    returnType: int
    signature: int fd_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:231,1
    - Dst: BIO_fd_non_fatal_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_fd.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: BIO_fd_should_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 2
    functionsReached:
    - BIO_fd_non_fatal_error
    - get_last_sys_error
    linkageType: ''
    returnType: int
    signature: int BIO_fd_should_retry(int i)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 282
    functionName: BIO_fd_non_fatal_error
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_fd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_fd_non_fatal_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: BIO_s_null
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_null.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: null_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_read(BIO *b, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: null_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_write(BIO *b, const char *in, int inl)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: null_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long null_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: null_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int null_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_null.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: null_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_null.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int null_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: BIO_s_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_socket(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:62,1
    - Dst: BIO_s_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:62,1
    - Dst: BIO_set_fd
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:65,1
    - Dst: ktls_enable
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: BIO_new_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_s_socket
    - BIO_set_fd
    - BIO_new
    - ktls_enable
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_socket(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sock_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sock_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: sock_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_closesocket
    linkageType: ''
    returnType: int
    signature: int sock_free(BIO *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:108,1
    - Dst: BIO_get_ktls_recv
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:110,1
    - Dst: ktls_read_record
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:111,1
    - Dst: readsocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:114,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:115,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:117,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 124
    functionName: sock_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - ktls_read_record
    - BIO_get_ktls_recv
    - BIO_clear_retry_flags
    - clear_socket_error
    - BIO_set_retry_read
    - readsocket
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int sock_read(BIO *b, char *out, int outl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:130,1
    - Dst: BIO_should_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:132,1
    - Dst: ktls_send_ctrl_message
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:134,1
    - Dst: BIO_clear_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:137,1
    - Dst: writesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:141,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:142,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:144,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 148
    functionName: sock_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIO_clear_ktls_ctrl_msg_flag
    - BIO_should_ktls_ctrl_msg_flag
    - ktls_send_ctrl_message
    - writesocket
    - clear_socket_error
    - BIO_clear_retry_flags
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int sock_write(BIO *b, const char *in, int inl)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sock_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:160,1
    - Dst: ktls_start
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:187,1
    - Dst: BIO_set_ktls_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:189,1
    - Dst: BIO_should_ktls_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:192,1
    - Dst: BIO_should_ktls_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:194,1
    - Dst: BIO_set_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:196,1
    - Dst: BIO_clear_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:201,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 213
    functionName: sock_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - sock_free
    - BIO_clear_ktls_ctrl_msg_flag
    - ktls_start
    - BIO_set_ktls_flag
    - BIO_should_ktls_flag
    - BIO_set_ktls_ctrl_msg_flag
    linkageType: ''
    returnType: long
    signature: long sock_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:219,1
    - Dst: sock_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: sock_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 0
    functionsReached:
    - sock_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int sock_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:229,1
    - Dst: BIO_sock_non_fatal_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_sock.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: BIO_sock_should_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 2
    functionsReached:
    - BIO_sock_non_fatal_error
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_sock_should_retry(int i)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 285
    functionName: BIO_sock_non_fatal_error
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_sock.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_sock_non_fatal_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: BIO_f_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_prefix(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:54,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:62,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: prefix_create
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int prefix_create(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:69,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: prefix_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int prefix_destroy(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:78,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - in
    - size
    - numread
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: prefix_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_read_ex
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int prefix_read(BIO *b, char *in, size_t size, size_t *numread)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:84,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:101,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:101,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:118,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:118,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:118,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:121,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:121,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:135,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:135,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 4
    argNames:
    - b
    - out
    - outl
    - numwritten
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 149
    functionName: prefix_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_write_ex
    - BIO_get_data
    - strlen
    - BIO_printf
    - BIO_next
    linkageType: ''
    returnType: int
    signature: "int prefix_write(BIO *b, const char *out, size_t outl,\n                        size_t
      *numwritten)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:161,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:166,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:187,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:188,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 192
    functionName: prefix_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_ctrl
    - OPENSSL_free
    - OPENSSL_strdup
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long prefix_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:196,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: prefix_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long prefix_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:201,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: prefix_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int prefix_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:206,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bf_prefix.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: prefix_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_prefix.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int prefix_puts(BIO *b, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: DUMP_WIDTH_LESS_INDENT
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_WIDTH_LESS_INDENT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - pos
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: SPACE
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPACE(buf, pos, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - u
    - s
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: BIO_dump_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: "int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u),\n
      \               void *u, const void *s, int len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DUMP_WIDTH_LESS_INDENT
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:43,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:48,1
    - Dst: SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:51,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:53,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:56,1
    - Dst: SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:62,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:63,1
    - Dst: SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:69,1
    - Dst: SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:81,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:89,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - u
    - v
    - len
    - indent
    argTypes:
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: BIO_dump_indent_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 1
    functionsReached:
    - BIO_snprintf
    - SPACE
    - cb
    - strcpy
    - DUMP_WIDTH_LESS_INDENT
    linkageType: ''
    returnType: int
    signature: "int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void
      *u),\n                       void *u, const void *v, int len, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UP_fwrite
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - fp
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: write_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 0
    functionsReached:
    - UP_fwrite
    linkageType: ''
    returnType: int
    signature: int write_fp(const void *data, size_t len, void *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_cb
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - s
    - len
    argTypes:
    - FILE*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: BIO_dump_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump_fp(FILE *fp, const void *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fp
    - s
    - len
    - indent
    argTypes:
    - FILE*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: BIO_dump_indent_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 0
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump_indent_fp(FILE *fp, const void *s, int len, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - bp
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: write_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 6
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int write_bio(const void *data, size_t len, void *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_cb
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - s
    - len
    argTypes:
    - BIO*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: BIO_dump
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 2
    functionsReached:
    - BIO_dump_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump(BIO *bp, const void *s, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_dump_indent_cb
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - s
    - len
    - indent
    argTypes:
    - BIO*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: BIO_dump_indent
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 1
    functionsReached:
    - BIO_dump_indent_cb
    linkageType: ''
    returnType: int
    signature: int BIO_dump_indent(BIO *bp, const void *s, int len, int indent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:140,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:146,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:150,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/bio/bio_dump.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - out
    - indent
    - width
    - data
    - datalen
    argTypes:
    - BIO*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 153
    functionName: BIO_hex_string
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_dump.c
    functionUses: 5
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int BIO_hex_string(BIO *out, int indent, int width, const void *data,\n
      \                  int datalen)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:123,1
    - Dst: BIO_lookup
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:126,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:132,1
    - Dst: BIO_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:140,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:140,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:141,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:142,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:144,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:147,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:155,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:156,1
    - Dst: BIO_connect
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:157,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:157,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:161,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:162,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:165,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:166,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:171,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:173,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:176,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:177,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:177,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:185,1
    - Dst: BIO_socket_wait
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:192,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:192,1
    - Dst: BIO_sock_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:194,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:196,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:197,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:201,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:208,1
    - Dst: ktls_enable
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:220,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:226,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:239,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:247,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 135
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - BIO*
    - BIO_CONNECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 250
    functionName: conn_state
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - time
    - BIO_ADDRINFO_protocol
    - BIO_connect
    - BIO_sock_error
    - BIO_socket
    - BIO_set_retry_special
    - ktls_enable
    - ERR_raise_data
    - BIO_socket_wait
    - get_last_socket_error
    - ERR_raise
    - BIO_ADDRINFO_socktype
    - BIO_lookup
    - BIO_sock_should_retry
    - BIO_closesocket
    - BIO_ADDRINFO_address
    - ERR_set_mark
    - BIO_ADDRINFO_next
    - BIO_clear_retry_flags
    - ERR_pop_to_mark
    - BIO_ADDRINFO_family
    - cb
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: int conn_state(BIO *b, BIO_CONNECT *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:256,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: BIO_CONNECT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_CONNECT
    signature: BIO_CONNECT *BIO_CONNECT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:269,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:270,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:271,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO_CONNECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: BIO_CONNECT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: void
    signature: void BIO_CONNECT_free(BIO_CONNECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: BIO_s_connect
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_connect(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_CONNECT_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: conn_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_CONNECT_new
    linkageType: ''
    returnType: int
    signature: int conn_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:299,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 303
    functionName: conn_close_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_closesocket
    - shutdown
    linkageType: ''
    returnType: void
    signature: void conn_close_socket(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_close_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:314,1
    - Dst: BIO_CONNECT_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 321
    functionName: conn_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - conn_close_socket
    - BIO_CONNECT_free
    linkageType: ''
    returnType: int
    signature: int conn_free(BIO *a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: conn_state
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:330,1
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:336,1
    - Dst: BIO_get_ktls_recv
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:338,1
    - Dst: ktls_read_record
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:339,1
    - Dst: readsocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:342,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:343,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:345,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 352
    functionName: conn_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - ktls_read_record
    - BIO_get_ktls_recv
    - clear_socket_error
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - readsocket
    - conn_state
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int conn_read(BIO *b, char *out, int outl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: conn_state
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:361,1
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:366,1
    - Dst: BIO_should_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:368,1
    - Dst: ktls_send_ctrl_message
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:369,1
    - Dst: BIO_clear_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:372,1
    - Dst: writesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:376,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:377,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:379,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 383
    functionName: conn_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIO_clear_ktls_ctrl_msg_flag
    - BIO_should_ktls_ctrl_msg_flag
    - ktls_send_ctrl_message
    - writesocket
    - clear_socket_error
    - BIO_clear_retry_flags
    - conn_state
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int conn_write(BIO *b, const char *in, int inl)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: conn_close_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:402,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:403,1
    - Dst: conn_state
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:410,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:422,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:424,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:457,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:459,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:464,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:466,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:467,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:471,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:472,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:476,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:478,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:480,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:484,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:485,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:528,1
    - Dst: BIO_set_conn_port
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:530,1
    - Dst: BIO_set_conn_ip_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:531,1
    - Dst: BIO_set_conn_mode
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:532,1
    - Dst: BIO_set_info_callback
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:537,1
    - Dst: ktls_start
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:557,1
    - Dst: BIO_set_ktls_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:559,1
    - Dst: BIO_should_ktls_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:562,1
    - Dst: BIO_should_ktls_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:564,1
    - Dst: BIO_set_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:566,1
    - Dst: BIO_clear_ktls_ctrl_msg_flag
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:571,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 162
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 580
    functionName: conn_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_hostname_string
    - BIO_set_conn_hostname
    - conn_close_socket
    - BIO_set_conn_mode
    - BIO_ADDRINFO_free
    - BIO_set_conn_ip_family
    - BIO_clear_ktls_ctrl_msg_flag
    - BIO_parse_hostserv
    - OPENSSL_strdup
    - BIO_should_ktls_flag
    - OPENSSL_free
    - BIO_ADDR_service_string
    - BIO_set_info_callback
    - BIO_set_conn_port
    - conn_state
    - BIO_set_ktls_ctrl_msg_flag
    - BIO_ADDRINFO_address
    - ktls_start
    - BIO_ADDRINFO_family
    - BIO_set_ktls_flag
    linkageType: ''
    returnType: long
    signature: long conn_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 600
    functionName: conn_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long conn_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:606,1
    - Dst: conn_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: conn_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 0
    functionsReached:
    - conn_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int conn_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:615,1
    - Dst: BIO_s_connect
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:615,1
    - Dst: BIO_set_conn_hostname
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:618,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_conn.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: BIO_new_connect
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_conn.c
    functionUses: 2
    functionsReached:
    - BIO_free
    - BIO_new
    - BIO_s_connect
    - BIO_set_conn_hostname
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_connect(const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:51,1
    - Dst: BIO_lookup
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:54,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:58,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:59,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:59,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:64,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:65,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:65,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:67,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - str
    - ip
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: BIO_get_host_ip
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_address
    - BIO_sock_init
    - ossl_assert
    - ERR_raise
    - BIO_lookup
    - ERR_add_error_data
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    - BIO_ADDR_rawaddress
    linkageType: ''
    returnType: int
    signature: int BIO_get_host_ip(const char *str, unsigned char *ip)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:81,1
    - Dst: BIO_sock_init
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:85,1
    - Dst: BIO_lookup
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:88,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:89,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:90,1
    - Dst: ntohs
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:92,1
    - Dst: BIO_ADDR_rawport
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:92,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:92,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:95,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - str
    - port_ptr
    argTypes:
    - char*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 101
    functionName: BIO_get_port
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - BIO_ADDRINFO_address
    - BIO_sock_init
    - ERR_raise
    - ntohs
    - BIO_lookup
    - BIO_ADDR_rawport
    - ERR_add_error_data
    - BIO_ADDRINFO_family
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: int
    signature: int BIO_get_port(const char *str, unsigned short *port_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:115,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: BIO_sock_error
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 1
    functionsReached:
    - getsockopt
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_sock_error(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gethostbyname
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: BIO_gethostbyname
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - gethostbyname
    linkageType: ''
    returnType: struct hostent
    signature: struct hostent *BIO_gethostbyname(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:140,1
    - Dst: WSAStartup
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:147,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:148,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:150,1
    - Dst: sock_init
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 163
    functionName: BIO_sock_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 2
    functionsReached:
    - get_last_socket_error
    - ERR_raise_data
    - ERR_raise
    - WSAStartup
    - sock_init
    - memset
    linkageType: ''
    returnType: int
    signature: int BIO_sock_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: bio_sock_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: void bio_sock_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:180,1
    - Dst: ioctlsocket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:206,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:209,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - type
    - arg
    argTypes:
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: BIO_socket_ioctl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    - ioctlsocket
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_socket_ioctl(int fd, long type, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:221,1
    - Dst: BIO_sock_init
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:224,1
    - Dst: BIO_lookup
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:227,1
    - Dst: BIO_socket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:230,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:230,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:230,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:231,1
    - Dst: BIO_listen
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:236,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:236,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:238,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:243,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:244,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - host
    - bind_mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: BIO_get_accept_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - BIO_socket
    - BIO_closesocket
    - BIO_ADDRINFO_protocol
    - BIO_ADDRINFO_address
    - BIO_sock_init
    - BIO_ADDRINFO_socktype
    - BIO_lookup
    - OPENSSL_free
    - BIO_ADDRINFO_family
    - BIO_parse_hostserv
    - BIO_listen
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: int
    signature: int BIO_get_accept_socket(char *host, int bind_mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_accept_ex
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:255,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:257,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:261,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:261,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:263,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:268,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:269,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:271,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:271,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:276,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:277,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:280,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:281,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:284,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:285,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - sock
    - ip_port
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 290
    functionName: BIO_accept
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - BIO_closesocket
    - BIO_ADDR_hostname_string
    - BIO_accept_ex
    - get_last_socket_error
    - ERR_raise_data
    - ERR_raise
    - OPENSSL_zalloc
    - BIO_ADDR_service_string
    - OPENSSL_free
    - strlen
    - strcpy
    - strcat
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int BIO_accept(int sock, char **ip_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - 'on'
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: BIO_set_tcp_ndelay
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int BIO_set_tcp_ndelay(int s, int on)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_socket_ioctl
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:321,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:325,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:327,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:327,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:343,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:346,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:346,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 356
    functionName: BIO_socket_nbio
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - BIO_socket_ioctl
    - get_last_sys_error
    - ERR_raise_data
    - ERR_raise
    - fcntl
    linkageType: ''
    returnType: int
    signature: int BIO_socket_nbio(int s, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:367,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:367,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:370,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:370,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:372,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:376,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:382,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 386
    functionName: BIO_sock_info
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr_noconst
    - get_last_socket_error
    - ERR_raise_data
    - ERR_raise
    - getsockname
    linkageType: ''
    returnType: int
    signature: "int BIO_sock_info(int sock,\n                  enum BIO_sock_info_type
      type, union BIO_sock_info_u *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:408,1
    - Dst: FD_ZERO
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:412,1
    - Dst: openssl_fdset
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:413,1
    - Dst: select
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - for_read
    - max_time
    argTypes:
    - int
    - int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 418
    functionName: BIO_socket_wait
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock.c
    functionUses: 1
    functionsReached:
    - openssl_fdset
    - time
    - select
    - FD_ZERO
    linkageType: ''
    returnType: int
    signature: int BIO_socket_wait(int fd, int for_read, time_t max_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: BIO_f_buffer
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_buffer(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:47,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:54,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: buffer_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int buffer_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:78,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: buffer_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int buffer_free(BIO *a)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:99,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:107,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:125,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:127,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:143,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:145,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 156
    functionName: buffer_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_read
    - memcpy
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int buffer_read(BIO *b, char *out, int outl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:169,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:174,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:182,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:190,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:193,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:214,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:216,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 233
    functionName: buffer_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 2
    functionsReached:
    - BIO_write
    - BIO_copy_next_retry
    - memcpy
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int buffer_write(BIO *b, const char *in, int inl)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:254,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:259,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:277,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:285,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:292,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:295,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:300,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:323,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:328,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:331,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:336,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:343,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:353,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:354,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:355,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:362,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:367,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:369,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:371,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:382,1
    - Dst: BIO_set_read_buffer_size
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:386,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:387,1
    - Dst: buffer_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:394,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:398,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:404,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:409,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 163
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 411
    functionName: buffer_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_ctrl
    - OPENSSL_malloc
    - buffer_read
    - BIO_copy_next_retry
    - ERR_raise
    - BIO_clear_retry_flags
    - BIO_set_read_buffer_size
    - OPENSSL_free
    - BIO_set_write_buffer_size
    - BIO_write
    linkageType: ''
    returnType: long
    signature: long buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: buffer_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long buffer_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:428,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:452,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:454,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 465
    functionName: buffer_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int buffer_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: buffer_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:469,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bf_buff.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: buffer_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_buff.c
    functionUses: 0
    functionsReached:
    - strlen
    - buffer_write
    linkageType: ''
    returnType: int
    signature: int buffer_puts(BIO *b, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: BIO_s_mem
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_mem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: BIO_s_secmem
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_secmem(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:90,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:93,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:94,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: BIO_new_mem_buf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 3
    functionsReached:
    - BIO_s_mem
    - strlen
    - BIO_new
    - ERR_raise
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_mem_buf(const void *buf, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:111,1
    - Dst: BUF_MEM_new_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:115,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:116,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:119,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - bi
    - flags
    argTypes:
    - BIO*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: mem_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    - OPENSSL_free
    - BUF_MEM_new_ex
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int mem_init(BIO *bi, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_init
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: mem_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_init
    linkageType: ''
    returnType: int
    signature: int mem_new(BIO *bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_init
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: secmem_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_init
    linkageType: ''
    returnType: int
    signature: int secmem_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mem_buf_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:150,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: mem_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_buf_free
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int mem_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 171
    functionName: mem_buf_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_free
    linkageType: ''
    returnType: int
    signature: int mem_buf_free(BIO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: mem_buf_sync
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: int mem_buf_sync(BIO *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:199,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:202,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 212
    functionName: mem_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    - memcpy
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int mem_read(BIO *b, char *out, int outl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:221,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:228,1
    - Dst: mem_buf_sync
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:232,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:233,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 240
    functionName: mem_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_grow_clean
    - mem_buf_sync
    - memcpy
    - ERR_raise
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int mem_write(BIO *b, const char *in, int inl)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:266,1
    - Dst: mem_buf_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:302,1
    - Dst: mem_buf_sync
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:310,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 339
    functionName: mem_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 1
    functionsReached:
    - mem_buf_free
    - memset
    - mem_buf_sync
    linkageType: ''
    returnType: long
    signature: long mem_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:351,1
    - Dst: mem_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 377
    functionName: mem_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - mem_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int mem_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:383,1
    - Dst: mem_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_mem.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: mem_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_mem.c
    functionUses: 0
    functionsReached:
    - strlen
    - mem_write
    linkageType: ''
    returnType: int
    signature: int mem_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: HAS_LEN_OPER
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_LEN_OPER(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: HAS_CALLBACK
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_CALLBACK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: HAS_CALLBACK
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_CALLBACK(b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO*::callback_ex
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:47,1
    - Dst: HAS_LEN_OPER
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:57,1
    - Dst: BIO*::callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 8
    argNames:
    - b
    - oper
    - argp
    - len
    - argi
    - argl
    - inret
    - processed
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - int
    - long
    - long
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 79
    functionName: bio_call_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - HAS_LEN_OPER
    - BIO*::callback
    - BIO*::callback_ex
    linkageType: ''
    returnType: long
    signature: "long bio_call_callback(BIO *b, int oper, const char *argp, size_t
      len,\n                              int argi, long argl, long inret,\n                              size_t
      *processed)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:83,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:86,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:95,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:98,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:100,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:101,1
    - Dst: BIO_METHOD*::create
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:105,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:106,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:107,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - libctx
    - method
    argTypes:
    - OSSL_LIB_CTX*
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 119
    functionName: BIO_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_METHOD*::create
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - CRYPTO_free_ex_data
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_ex
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - method
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: BIO_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 52
    functionsReached:
    - BIO_new_ex
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new(const BIO_METHOD *method)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:133,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:136,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:139,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:141,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:142,1
    - Dst: BIO*::method::destroy
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:148,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:150,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 157
    functionName: BIO_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 69
    functionsReached:
    - CRYPTO_DOWN_REF
    - HAS_CALLBACK
    - REF_ASSERT_ISNT
    - bio_call_callback
    - OPENSSL_free
    - REF_PRINT_COUNT
    - BIO*::method::destroy
    - CRYPTO_free_ex_data
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: int BIO_free(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ptr
    argTypes:
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: BIO_set_data
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_data(BIO *a, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: BIO_get_data
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *BIO_get_data(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - init
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: BIO_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_init(BIO *a, int init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: BIO_get_init
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_get_init(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - shut
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: BIO_set_shutdown
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_shutdown(BIO *a, int shut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: BIO_get_shutdown
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_get_shutdown(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: BIO_vfree
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void BIO_vfree(BIO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:198,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:201,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: BIO_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int BIO_up_ref(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: BIO_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_clear_flags(BIO *b, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: BIO_test_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_test_flags(const BIO *b, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - flags
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: BIO_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_flags(BIO *b, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: BIO_get_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_callback_fn
    signature: BIO_callback_fn BIO_get_callback(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - cb
    argTypes:
    - BIO*
    - BIO_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: BIO_set_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_callback(BIO *b, BIO_callback_fn cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: BIO_get_callback_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_callback_fn_ex
    signature: BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - cb
    argTypes:
    - BIO*
    - BIO_callback_fn_ex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: BIO_set_callback_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - arg
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: BIO_set_callback_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_callback_arg(BIO *b, char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: BIO_get_callback_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BIO_get_callback_arg(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: BIO_method_name
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BIO_method_name(const BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: BIO_method_type
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_method_type(const BIO *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:278,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:282,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:283,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:288,1
    - Dst: BIO*::method::bread
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:292,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:297,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:298,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - readbytes
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 308
    functionName: bio_read_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - HAS_CALLBACK
    - BIO*::method::bread
    - bio_call_callback
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int bio_read_intern(BIO *b, void *data, size_t dlen, size_t *readbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bio_read_intern
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - b
    - data
    - dlen
    argTypes:
    - BIO*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 326
    functionName: BIO_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 14
    functionsReached:
    - bio_read_intern
    linkageType: ''
    returnType: int
    signature: int BIO_read(BIO *b, void *data, int dlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_read_intern
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - readbytes
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: BIO_read_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - bio_read_intern
    linkageType: ''
    returnType: int
    signature: int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:349,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:353,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:354,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:359,1
    - Dst: BIO*::method::bwrite
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:363,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:368,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - written
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 375
    functionName: bio_write_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - HAS_CALLBACK
    - BIO*::method::bwrite
    - bio_call_callback
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int bio_write_intern(BIO *b, const void *data, size_t dlen,\n                            size_t
      *written)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bio_write_intern
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - b
    - data
    - dlen
    argTypes:
    - BIO*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: BIO_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 34
    functionsReached:
    - bio_write_intern
    linkageType: ''
    returnType: int
    signature: int BIO_write(BIO *b, const void *data, int dlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_write_intern
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - b
    - data
    - dlen
    - written
    argTypes:
    - BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: BIO_write_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - bio_write_intern
    linkageType: ''
    returnType: int
    signature: int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:407,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:411,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:415,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:416,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:422,1
    - Dst: BIO*::method::bputs
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:426,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:434,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:435,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:440,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - b
    - buf
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 448
    functionName: BIO_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 24
    functionsReached:
    - HAS_CALLBACK
    - BIO*::method::bputs
    - bio_call_callback
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_puts(BIO *b, const char *buf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:456,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:460,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:465,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:469,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:470,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:476,1
    - Dst: BIO*::method::bgets
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:480,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:487,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:488,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 500
    functionName: BIO_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached:
    - HAS_CALLBACK
    - bio_call_callback
    - ERR_raise
    - BIO*::method::bgets
    linkageType: ''
    returnType: int
    signature: int BIO_gets(BIO *b, char *buf, int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:508,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:512,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:518,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:522,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:526,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 531
    functionName: BIO_get_line
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - BIO_eof
    - BIO_read
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_get_line(BIO *bio, char *buf, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - indent
    - max
    argTypes:
    - BIO*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 543
    functionName: BIO_indent
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 7
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int BIO_indent(BIO *b, int indent, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - b
    - cmd
    - larg
    - iarg
    argTypes:
    - BIO*
    - int
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: BIO_int_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - larg
    argTypes:
    - BIO*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 561
    functionName: BIO_ptr_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: void
    signature: void *BIO_ptr_ctrl(BIO *b, int cmd, long larg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:570,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:574,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:575,1
    - Dst: BIO*::method::ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:580,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:582,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - b
    - cmd
    - larg
    - parg
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 587
    functionName: BIO_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 10
    functionsReached:
    - HAS_CALLBACK
    - BIO*::method::ctrl
    - bio_call_callback
    - ERR_raise
    linkageType: ''
    returnType: long
    signature: long BIO_ctrl(BIO *b, int cmd, long larg, void *parg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:597,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:601,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:602,1
    - Dst: BIO*::method::callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:608,1
    - Dst: HAS_CALLBACK
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:610,1
    - Dst: bio_call_callback
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 615
    functionName: BIO_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached:
    - HAS_CALLBACK
    - BIO*::method::callback_ctrl
    - bio_call_callback
    - ERR_raise
    linkageType: ''
    returnType: long
    signature: long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 633
    functionName: BIO_ctrl_pending
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_pending(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 646
    functionName: BIO_ctrl_wpending
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_wpending(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - b
    - bio
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 664
    functionName: BIO_push
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 7
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_push(BIO *b, BIO *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 685
    functionName: BIO_pop
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 6
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_pop(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - bio
    - reason
    argTypes:
    - BIO*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 703
    functionName: BIO_get_retry_BIO
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_should_retry
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_get_retry_BIO(BIO *bio, int *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: BIO_get_retry_reason
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_get_retry_reason(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - reason
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 713
    functionName: BIO_set_retry_reason
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_retry_reason(BIO *bio, int reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - bio
    - type
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 738
    functionName: BIO_find_type
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 3
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_find_type(BIO *bio, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 745
    functionName: BIO_next
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_next(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - next
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 750
    functionName: BIO_set_next
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BIO_set_next(BIO *b, BIO *next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 752
    functionDepth: 4
    functionLinenumber: 752
    functionLinenumberEnd: 766
    functionName: BIO_free_all
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 10
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void BIO_free_all(BIO *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:773,1
    - Dst: BIO_dup_state
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:787,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:788,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:793,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:795,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:803,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:809,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 768
    functionDepth: 6
    functionLinenumber: 768
    functionLinenumberEnd: 812
    functionName: BIO_dup_chain
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_dup_ex_data
    - BIO_new
    - BIO_dup_state
    - BIO_free_all
    - BIO_free
    - BIO_push
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_dup_chain(BIO *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_flags
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:816,1
    - Dst: BIO_get_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: BIO_copy_next_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 16
    functionsReached:
    - BIO_set_flags
    - BIO_get_retry_flags
    linkageType: ''
    returnType: void
    signature: void BIO_copy_next_retry(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - idx
    - data
    argTypes:
    - BIO*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 820
    functionDepth: 2
    functionLinenumber: 820
    functionLinenumberEnd: 823
    functionName: BIO_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int BIO_set_ex_data(BIO *bio, int idx, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - idx
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 828
    functionName: BIO_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *BIO_get_ex_data(const BIO *bio, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: BIO_number_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BIO_number_read(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: BIO_number_written
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t BIO_number_written(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 847
    functionName: bio_free_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_free_ex_data
    linkageType: ''
    returnType: void
    signature: void bio_free_ex_data(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_sock_cleanup_int
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:852,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:853,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 858
    functionName: bio_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - bio_sock_cleanup_int
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void bio_cleanup(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_fd
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:872,1
    - Dst: BIO_socket_wait
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:873,1
    - Dst: BIO_should_read
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:873,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:881,1
    - Dst: ossl_sleep
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:893,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - bio
    - max_time
    - nap_milliseconds
    argTypes:
    - BIO*
    - time_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 895
    functionName: bio_wait
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 0
    functionsReached:
    - BIO_should_read
    - time
    - BIO_socket_wait
    - ossl_sleep
    - BIO_get_fd
    linkageType: ''
    returnType: int
    signature: int bio_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bio_wait
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:907,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - max_time
    - nap_milliseconds
    argTypes:
    - BIO*
    - time_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 913
    functionName: BIO_wait
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 2
    functionsReached:
    - bio_wait
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:926,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:930,1
    - Dst: BIO_set_nbio
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:936,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:939,1
    - Dst: BIO_do_connect
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:940,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:943,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:944,1
    - Dst: BIO_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:945,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:947,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:959,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:967,1
    - Dst: bio_wait
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:969,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:972,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:975,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:979,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/bio/bio_lib.c:982,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - bio
    - timeout
    - nap_milliseconds
    argTypes:
    - BIO*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 986
    functionName: BIO_do_connect_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_lib.c
    functionUses: 1
    functionsReached:
    - BIO_set_nbio
    - ERR_GET_REASON
    - bio_wait
    - time
    - ERR_set_mark
    - ERR_raise
    - BIO_should_retry
    - ERR_GET_LIB
    - ERR_clear_last_mark
    - ERR_peek_last_error
    - ERR_pop_to_mark
    - BIO_do_connect
    - BIO_reset
    linkageType: ''
    returnType: int
    signature: int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: openssl_fopen
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:60,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:63,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:67,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:67,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:77,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:80,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:80,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:81,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:86,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 89
    functionName: BIO_new_file
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 6
    functionsReached:
    - BIO_clear_flags
    - BIO_new
    - strchr
    - get_last_sys_error
    - ERR_raise_data
    - ERR_raise
    - BIO_s_file
    - openssl_fopen
    - BIO_set_fp
    - fclose
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_file(const char *filename, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:95,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:95,1
    - Dst: BIO_set_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:99,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stream
    - close_flag
    argTypes:
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: BIO_new_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 8
    functionsReached:
    - BIO_set_flags
    - BIO_new
    - BIO_set_fp
    - BIO_s_file
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_fp(FILE *stream, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: BIO_s_file
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: file_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_new(BIO *bi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UP_fclose
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:125,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: file_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - UP_fclose
    - fclose
    linkageType: ''
    returnType: int
    signature: int file_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UP_fread
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:142,1
    - Dst: fread
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:144,1
    - Dst: UP_ferror
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:147,1
    - Dst: ferror
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:147,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:148,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:148,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: file_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 6
    functionsReached:
    - ferror
    - get_last_sys_error
    - ERR_raise_data
    - ERR_raise
    - fread
    - UP_fread
    - UP_ferror
    linkageType: ''
    returnType: int
    signature: int file_read(BIO *b, char *out, int outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UP_fwrite
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:163,1
    - Dst: fwrite
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: file_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - fwrite
    - UP_fwrite
    linkageType: ''
    returnType: int
    signature: int file_write(BIO *b, const char *in, int inl)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: UP_fseek
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:190,1
    - Dst: fseek
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:192,1
    - Dst: UP_feof
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:196,1
    - Dst: feof
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:198,1
    - Dst: UP_ftell
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:203,1
    - Dst: ftell
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:205,1
    - Dst: file_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:208,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:219,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:223,1
    - Dst: UP_fsetmod
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:228,1
    - Dst: _fileno
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:233,1
    - Dst: _setmode
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:235,1
    - Dst: _setmode
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:237,1
    - Dst: setvbuf
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:246,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:248,1
    - Dst: _setmode
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:251,1
    - Dst: isatty
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:255,1
    - Dst: _setmode
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:256,1
    - Dst: _setmode
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:258,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:261,1
    - Dst: setmode
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:263,1
    - Dst: file_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:268,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:272,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:274,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:276,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:278,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:280,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:282,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:288,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:290,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:293,1
    - Dst: openssl_fopen
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:295,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:297,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:297,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:300,1
    - Dst: BIO_clear_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:307,1
    - Dst: UP_fflush
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:324,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:324,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:326,1
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:326,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:328,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 113
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 345
    functionName: file_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - get_last_sys_error
    - setvbuf
    - fflush
    - fileno
    - BIO_clear_flags
    - isatty
    - ERR_raise_data
    - _fileno
    - openssl_fopen
    - UP_fseek
    - OPENSSL_strlcat
    - fseek
    - ERR_raise
    - setmode
    - file_free
    - UP_ftell
    - _setmode
    - UP_fflush
    - OPENSSL_strlcpy
    - feof
    - ftell
    - UP_fsetmod
    - UP_feof
    linkageType: ''
    returnType: long
    signature: long file_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UP_fgets
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:353,1
    - Dst: fgets
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:356,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 363
    functionName: file_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - UP_fgets
    - strlen
    - fgets
    linkageType: ''
    returnType: int
    signature: int file_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:369,1
    - Dst: file_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_file.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 372
    functionName: file_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached:
    - strlen
    - file_write
    linkageType: ''
    returnType: int
    signature: int file_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: file_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_write(BIO *b, const char *in, int inl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: file_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_read(BIO *b, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: file_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 391
    functionName: file_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_gets(BIO *bp, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: file_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long file_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: file_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_new(BIO *bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: file_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_free(BIO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: BIO_s_file
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: BIO_new_file
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_file.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_file(const char *filename, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: BIO_ADDR_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_ADDR
    signature: BIO_ADDR *BIO_ADDR_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: BIO_ADDR_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BIO_ADDR_free(BIO_ADDR *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: BIO_ADDR_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void BIO_ADDR_clear(BIO_ADDR *ap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:83,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:88,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ap
    - sa
    argTypes:
    - BIO_ADDR*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: BIO_ADDR_make
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int BIO_ADDR_make(BIO_ADDR *ap, const struct sockaddr *sa)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:110,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:112,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:119,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - ap
    - family
    - where
    - wherelen
    - port
    argTypes:
    - BIO_ADDR*
    - int
    - void*
    - size_t
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 138
    functionName: BIO_ADDR_rawmake
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - memset
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int BIO_ADDR_rawmake(BIO_ADDR *ap, int family,\n                     const
      void *where, size_t wherelen,\n                     unsigned short port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: BIO_ADDR_family
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDR_family(const BIO_ADDR *ap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:162,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ap
    - p
    - l
    argTypes:
    - BIO_ADDR*
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 177
    functionName: BIO_ADDR_rawaddress
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 1
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: BIO_ADDR_rawport
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr_strings
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - numeric
    argTypes:
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: BIO_ADDR_hostname_string
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 2
    functionsReached:
    - addr_strings
    linkageType: ''
    returnType: char
    signature: char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addr_strings
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - numeric
    argTypes:
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 295
    functionName: BIO_ADDR_service_string
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 2
    functionsReached:
    - addr_strings
    linkageType: ''
    returnType: char
    signature: char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: BIO_ADDR_path_string
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *BIO_ADDR_path_string(const BIO_ADDR *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: BIO_ADDR_sockaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *BIO_ADDR_sockaddr(const BIO_ADDR *ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: BIO_ADDR_sockaddr_noconst
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *BIO_ADDR_sockaddr_noconst(BIO_ADDR *ap)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ap
    argTypes:
    - BIO_ADDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: BIO_ADDR_sockaddr_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t BIO_ADDR_sockaddr_size(const BIO_ADDR *ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: BIO_ADDRINFO_next
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_ADDRINFO
    signature: BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: BIO_ADDRINFO_family
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: BIO_ADDRINFO_socktype
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 396
    functionName: BIO_ADDRINFO_protocol
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: BIO_ADDRINFO_sockaddr_size
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: socklen_t
    signature: socklen_t BIO_ADDRINFO_sockaddr_size(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: BIO_ADDRINFO_sockaddr
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sockaddr
    signature: struct sockaddr *BIO_ADDRINFO_sockaddr(const BIO_ADDRINFO *bai)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: BIO_ADDRINFO_address
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: BIO_ADDR
    signature: BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: freeaddrinfo
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:439,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:449,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - bai
    argTypes:
    - BIO_ADDRINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 453
    functionName: BIO_ADDRINFO_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    - freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void BIO_ADDRINFO_free(BIO_ADDRINFO *bai)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:487,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:498,1
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:501,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:502,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:521,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:524,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:527,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:531,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:539,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:549,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:557,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:560,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:563,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - hostserv
    - host
    - service
    - hostserv_prio
    argTypes:
    - char*
    - char**
    - char**
    - enum BIO_hostserv_priorities
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 565
    functionName: BIO_parse_hostserv
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 2
    functionsReached:
    - strrchr
    - strchr
    - ERR_raise
    - OPENSSL_strndup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int BIO_parse_hostserv(const char *hostserv, char **host, char **service,\n
      \                      enum BIO_hostserv_priorities hostserv_prio)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:581,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:582,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:602,1
    - Dst: BIO_ADDR_rawmake
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:604,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:605,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:610,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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 615
    functionName: addrinfo_wrap
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr_noconst
    - ERR_raise
    - OPENSSL_zalloc
    - BIO_ADDR_rawmake
    - BIO_ADDRINFO_free
    - BIO_ADDR_new
    linkageType: ''
    returnType: int
    signature: "int addrinfo_wrap(int family, int socktype,\n                         const
      void *where, size_t wherelen,\n                         unsigned short port,\n
      \                        BIO_ADDRINFO **bai)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_bio_lookup_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_lookup_ex
      Src: /src/openssl-3.0.15/crypto/bio/bio_addr.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - host
    - service
    - lookup_type
    - family
    - socktype
    - res
    argTypes:
    - char*
    - char*
    - enum BIO_lookup_type
    - int
    - int
    - BIO_ADDRINFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 628
    functionName: BIO_lookup
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_addr.c
    functionUses: 4
    functionsReached:
    - BIO_lookup_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_lookup(const char *host, const char *service,\n               enum
      BIO_lookup_type lookup_type,\n               int family, int socktype, BIO_ADDRINFO
      **res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: IN6_IS_ADDR_V4MAPPED
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN6_IS_ADDR_V4MAPPED(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: BIO_s_datagram
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_datagram(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:148,1
    - Dst: BIO_s_datagram
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:148,1
    - Dst: BIO_set_fd
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: BIO_new_dgram
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_set_fd
    - BIO_s_datagram
    - BIO_new
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_dgram(int fd, int close_flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: dgram_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int dgram_new(BIO *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:171,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: dgram_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_clear
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int dgram_free(BIO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: dgram_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - BIO_closesocket
    linkageType: ''
    returnType: int
    signature: int dgram_clear(BIO *a)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:208,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:210,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:217,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:219,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:221,1
    - Dst: get_current_time
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:225,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:228,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:253,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:255,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:258,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:260,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 266
    functionName: dgram_adjust_rcv_timeout
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - memcpy
    - getsockopt
    - get_current_time
    - perror
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void dgram_adjust_rcv_timeout(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:278,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:280,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:283,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 291
    functionName: dgram_reset_rcv_timeout
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - perror
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void dgram_reset_rcv_timeout(BIO *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:303,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:304,1
    - Dst: dgram_adjust_rcv_timeout
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:305,1
    - Dst: recvfrom
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:308,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:309,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:312,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:314,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:316,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:317,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:318,1
    - Dst: dgram_reset_rcv_timeout
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 325
    functionName: dgram_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr_noconst
    - BIO_dgram_should_retry
    - get_last_socket_error
    - BIO_ctrl
    - clear_socket_error
    - recvfrom
    - BIO_clear_retry_flags
    - dgram_reset_rcv_timeout
    - dgram_adjust_rcv_timeout
    - memset
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int dgram_read(BIO *b, char *out, int outl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:331,1
    - Dst: writesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:334,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:336,1
    - Dst: sendto
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:338,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:339,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:342,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:344,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:345,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 350
    functionName: dgram_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIO_ADDR_sockaddr_size
    - sendto
    - BIO_dgram_should_retry
    - get_last_socket_error
    - writesocket
    - BIO_ADDR_sockaddr
    - clear_socket_error
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int dgram_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ADDR_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:356,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:368,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - bio_dgram_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 389
    functionName: dgram_get_mtu_overhead
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - IN6_IS_ADDR_V4MAPPED
    - BIO_ADDR_family
    - BIO_ADDR_rawaddress
    linkageType: ''
    returnType: long
    signature: long dgram_get_mtu_overhead(bio_dgram_data *data)
  - BBCount: 71
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:416,1
    - Dst: BIO_ADDR_make
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:445,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:445,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:451,1
    - Dst: getsockname
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:452,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:459,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:461,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:466,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:468,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:482,1
    - Dst: getsockname
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:483,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:491,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:506,1
    - Dst: dgram_get_mtu_overhead
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:529,1
    - Dst: BIO_ADDR_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:530,1
    - Dst: BIO_ADDR_rawaddress
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:539,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:540,1
    - Dst: BIO_ADDR_make
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:562,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:562,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:565,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:569,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:574,1
    - Dst: BIO_ADDR_make
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:577,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:577,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:580,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:588,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:590,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:595,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:597,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:610,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:612,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:621,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:623,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:626,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:639,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:641,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:646,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:648,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:661,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:663,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:672,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:674,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:677,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:713,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:715,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:720,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:722,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:726,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:729,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:739,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:742,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:747,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:749,1
    - Dst: dgram_get_mtu_overhead
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:763,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 264
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 782
    functionName: dgram_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_clear
    - BIO_ADDR_make
    - BIO_ADDR_sockaddr_size
    - memcpy
    - OPENSSL_assert
    - getsockopt
    - IN6_IS_ADDR_V4MAPPED
    - BIO_ADDR_sockaddr
    - getsockname
    - perror
    - memset
    - BIO_ADDR_rawaddress
    - dgram_get_mtu_overhead
    - BIO_ADDR_family
    - setsockopt
    linkageType: ''
    returnType: long
    signature: long dgram_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:788,1
    - Dst: dgram_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 791
    functionName: dgram_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - strlen
    - dgram_write
    linkageType: ''
    returnType: int
    signature: int dgram_puts(BIO *bp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 797
    functionName: BIO_s_datagram_sctp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_datagram_sctp(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:816,1
    - Dst: BIO_s_datagram_sctp
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:816,1
    - Dst: BIO_set_fd
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:819,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:824,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:827,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:828,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:834,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:837,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:838,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:850,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:852,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:855,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:858,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:859,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:872,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:875,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:876,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:884,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:889,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:892,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:897,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:899,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:906,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:909,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:920,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:923,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 2
    argNames:
    - fd
    - close_flag
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 799
    functionDepth: 6
    functionLinenumber: 799
    functionLinenumberEnd: 928
    functionName: BIO_new_dgram_sctp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - getsockopt
    - BIO_s_datagram_sctp
    - ERR_raise_data
    - OPENSSL_zalloc
    - memset
    - OPENSSL_free
    - BIO_set_fd
    - BIO_vfree
    - setsockopt
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_dgram_sctp(int fd, int close_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_method_type
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: BIO_dgram_is_sctp
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_method_type
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_is_sctp(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:941,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 952
    functionName: dgram_sctp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dgram_clear
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:960,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 968
    functionName: dgram_sctp_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_clear
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_free(BIO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - snp
    argTypes:
    - BIO*
    - union sctp_notification*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 985
    functionName: dgram_sctp_handle_auth_free_key_event
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: void
    signature: "void dgram_sctp_handle_auth_free_key_event(BIO *b,\n                                           union
      sctp_notification *snp)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:999,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1002,1
    - Dst: recvmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1012,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1021,1
    - Dst: CMSG_NXTHDR
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1022,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1029,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1044,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1060,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1071,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1075,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1083,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1092,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1102,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1106,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1109,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1110,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1133,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1135,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1143,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1146,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1151,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1157,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1158,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1162,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1164,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1165,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1166,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1180,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1183,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1197,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1200,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 129
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1208
    functionName: dgram_sctp_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_assert
    - CMSG_DATA
    - bio_dgram_sctp_data*::handle_notifications
    - getsockopt
    - memset
    - get_last_socket_error
    - dgram_sctp_handle_auth_free_key_event
    - ERR_raise
    - recvmsg
    - clear_socket_error
    - OPENSSL_free
    - CMSG_NXTHDR
    - BIO_dgram_should_retry
    - OPENSSL_malloc
    - BIO_clear_retry_flags
    - CMSG_FIRSTHDR
    - BIO_set_retry_read
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_read(BIO *b, char *out, int outl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1229,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1230,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1234,1
    - Dst: clear_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1238,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1245,1
    - Dst: BIO_dgram_sctp_wait_for_dry
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1254,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1258,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1259,1
    - Dst: CMSG_LEN
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1277,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1278,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1279,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1284,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1287,1
    - Dst: CMSG_LEN
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1290,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1291,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1292,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1295,1
    - Dst: CMSG_LEN
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1300,1
    - Dst: CMSG_DATA
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1301,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1302,1
    - Dst: CMSG_SPACE
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1311,1
    - Dst: sendmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1314,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1316,1
    - Dst: BIO_dgram_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1318,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1319,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 68
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1324
    functionName: dgram_sctp_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIO_dgram_should_retry
    - CMSG_LEN
    - get_last_socket_error
    - CMSG_DATA
    - sendmsg
    - BIO_clear_retry_flags
    - CMSG_SPACE
    - clear_socket_error
    - memset
    - BIO_dgram_sctp_wait_for_dry
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_write(BIO *b, const char *in, int inl)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1376,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1387,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1394,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1399,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1408,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1411,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1413,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1419,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1431,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1438,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1467,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1479,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1487,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1503,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1511,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1518,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1527,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1534,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1542,1
    - Dst: dgram_sctp_wait_for_dry
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1552,1
    - Dst: dgram_sctp_msg_waiting
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1554,1
    - Dst: dgram_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1560,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 130
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1326
    functionDepth: 4
    functionLinenumber: 1326
    functionLinenumberEnd: 1564
    functionName: dgram_sctp_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - dgram_sctp_wait_for_dry
    - memcpy
    - getsockopt
    - OPENSSL_malloc
    - OPENSSL_free
    - dgram_ctrl
    - memset
    - dgram_sctp_msg_waiting
    - setsockopt
    linkageType: ''
    returnType: long
    signature: long dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - b
    - handle_notifications
    - context
    argTypes:
    - BIO*
    - BIO_dgram_sctp_notification_handler_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1579
    functionName: BIO_dgram_sctp_notification_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_dgram_sctp_notification_cb(BIO *b,\n                BIO_dgram_sctp_notification_handler_fn
      handle_notifications,\n                void *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1594
    functionDepth: 3
    functionLinenumber: 1594
    functionLinenumberEnd: 1597
    functionName: BIO_dgram_sctp_wait_for_dry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_sctp_wait_for_dry(BIO *b)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1617,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1622,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1626,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1633,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1640,1
    - Dst: recvmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1651,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1653,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1654,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1662,1
    - Dst: recvmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1673,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1675,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1676,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1687,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1692,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1697,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1705,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1713,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1717,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1721,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1734,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1735,1
    - Dst: recvmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1738,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1741,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1745,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1746,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1755
    functionName: dgram_sctp_wait_for_dry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 2
    functionsReached:
    - get_last_socket_error
    - getsockopt
    - fcntl
    - dgram_sctp_handle_auth_free_key_event
    - recvmsg
    - bio_dgram_sctp_data*::handle_notifications
    - memset
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_wait_for_dry(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1757
    functionDepth: 3
    functionLinenumber: 1757
    functionLinenumberEnd: 1760
    functionName: BIO_dgram_sctp_msg_waiting
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_sctp_msg_waiting(BIO *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1772,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1783,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1784,1
    - Dst: recvmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1785,1
    - Dst: fcntl
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1786,1
    - Dst: dgram_sctp_handle_auth_free_key_event
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1792,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1795,1
    - Dst: recvmsg
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1805,1
    - Dst: bio_dgram_sctp_data*::handle_notifications
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1808,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1819
    functionName: dgram_sctp_msg_waiting
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - dgram_sctp_handle_auth_free_key_event
    - recvmsg
    - bio_dgram_sctp_data*::handle_notifications
    - memset
    - fcntl
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_msg_waiting(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1825,1
    - Dst: dgram_sctp_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1821
    functionDepth: 2
    functionLinenumber: 1821
    functionLinenumberEnd: 1828
    functionName: dgram_sctp_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 0
    functionsReached:
    - strlen
    - dgram_sctp_write
    linkageType: ''
    returnType: int
    signature: int dgram_sctp_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1836,1
    - Dst: BIO_dgram_non_fatal_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1849
    functionName: BIO_dgram_should_retry
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 4
    functionsReached:
    - BIO_dgram_non_fatal_error
    - get_last_socket_error
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_should_retry(int i)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1851
    functionDepth: 0
    functionLinenumber: 1851
    functionLinenumberEnd: 1897
    functionName: BIO_dgram_non_fatal_error
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_dgram_non_fatal_error(int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTime
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1906,1
    - Dst: SystemTimeToFileTime
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1907,1
    - Dst: gettimeofday
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1917,1
    - Dst: perror
      Src: /src/openssl-3.0.15/crypto/bio/bss_dgram.c:1918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1899
    functionDepth: 0
    functionLinenumber: 1899
    functionLinenumberEnd: 1920
    functionName: get_current_time
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_dgram.c
    functionUses: 1
    functionsReached:
    - GetSystemTime
    - SystemTimeToFileTime
    - perror
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void get_current_time(struct timeval *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbcg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: bio_core_globals_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void bio_core_globals_free(void *vbcg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: bio_core_globals_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *bio_core_globals_new(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: BIO_CORE_GLOBALS *get_globals(OSSL_LIB_CTX *libctx)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline BIO_CORE_GLOBALS *get_globals(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:49,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_read_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:53,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - data
    - data_len
    - bytes_read
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: bio_core_read_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - get_globals
    - BIO_CORE_GLOBALS*::c_bio_read_ex
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: "int bio_core_read_ex(BIO *bio, char *data, size_t data_len,\n                            size_t
      *bytes_read)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:59,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_write_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:63,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - data
    - data_len
    - written
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: bio_core_write_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_CORE_GLOBALS*::c_bio_write_ex
    - get_globals
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: "int bio_core_write_ex(BIO *bio, const char *data, size_t data_len,\n
      \                            size_t *written)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:68,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:72,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: bio_core_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_CORE_GLOBALS*::c_bio_ctrl
    - get_globals
    - BIO_get_data
    linkageType: ''
    returnType: long
    signature: long bio_core_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:77,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_gets
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:81,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: bio_core_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_CORE_GLOBALS*::c_bio_gets
    - get_globals
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int bio_core_gets(BIO *bio, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:86,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_puts
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:90,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: bio_core_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_CORE_GLOBALS*::c_bio_puts
    - get_globals
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int bio_core_puts(BIO *bio, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: bio_core_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int bio_core_new(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:102,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:107,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:108,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: bio_core_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_CORE_GLOBALS*::c_bio_free
    - get_globals
    - BIO_set_init
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int bio_core_free(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: BIO_s_core
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_core(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:136,1
    - Dst: BIO_new_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:142,1
    - Dst: BIO_s_core
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:142,1
    - Dst: BIO_CORE_GLOBALS*::c_bio_up_ref
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:145,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:146,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - libctx
    - corebio
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_CORE_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: BIO_new_from_core_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 0
    functionsReached:
    - BIO_s_core
    - BIO_free
    - BIO_CORE_GLOBALS*::c_bio_up_ref
    - BIO_set_data
    - BIO_new_ex
    - get_globals
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_from_core_bio(OSSL_LIB_CTX *libctx, OSSL_CORE_BIO *corebio)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:155,1
    - Dst: OSSL_FUNC_BIO_read_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:164,1
    - Dst: OSSL_FUNC_BIO_write_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:168,1
    - Dst: OSSL_FUNC_BIO_gets
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:172,1
    - Dst: OSSL_FUNC_BIO_puts
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:176,1
    - Dst: OSSL_FUNC_BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:180,1
    - Dst: OSSL_FUNC_BIO_up_ref
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:184,1
    - Dst: OSSL_FUNC_BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_core.c:188,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - libctx
    - fns
    argTypes:
    - OSSL_LIB_CTX*
    - OSSL_DISPATCH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 194
    functionName: ossl_bio_init_core
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_core.c
    functionUses: 1
    functionsReached:
    - OSSL_FUNC_BIO_up_ref
    - OSSL_FUNC_BIO_write_ex
    - OSSL_FUNC_BIO_free
    - get_globals
    - OSSL_FUNC_BIO_read_ex
    - OSSL_FUNC_BIO_puts
    - OSSL_FUNC_BIO_ctrl
    - OSSL_FUNC_BIO_gets
    linkageType: ''
    returnType: int
    signature: int ossl_bio_init_core(OSSL_LIB_CTX *libctx, const OSSL_DISPATCH *fns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: BIO_f_null
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_null(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:53,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:54,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: nullf_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int nullf_read(BIO *b, char *out, int outl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:67,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:68,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: nullf_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int nullf_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:81,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:82,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:83,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: nullf_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: long
    signature: long nullf_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: nullf_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long nullf_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: nullf_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int nullf_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/bio/bf_null.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: nullf_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_null.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int nullf_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_sock_init
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:45,1
    - Dst: socket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:48,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:50,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - domain
    - socktype
    - protocol
    - options
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: BIO_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock2.c
    functionUses: 2
    functionsReached:
    - get_last_socket_error
    - BIO_sock_init
    - socket
    - ERR_raise_data
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_socket(int domain, int socktype, int protocol, int options)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:84,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:88,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:92,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:94,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:96,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:102,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:104,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:106,1
    - Dst: connect
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:111,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:111,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:112,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:113,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:114,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:114,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:116,1
    - Dst: ktls_enable
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 130
    functionName: BIO_connect
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock2.c
    functionUses: 1
    functionsReached:
    - BIO_ADDR_sockaddr_size
    - get_last_socket_error
    - connect
    - ktls_enable
    - ERR_raise_data
    - ERR_raise
    - BIO_socket_nbio
    - BIO_ADDR_sockaddr
    - BIO_sock_should_retry
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int BIO_connect(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:155,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:165,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:167,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:169,1
    - Dst: bind
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:175,1
    - Dst: BIO_ADDR_sockaddr
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:175,1
    - Dst: BIO_ADDR_sockaddr_size
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:175,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:176,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: BIO_bind
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock2.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_sockaddr_size
    - get_last_socket_error
    - ERR_raise_data
    - ERR_raise
    - BIO_ADDR_sockaddr
    - bind
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int BIO_bind(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:229,1
    - Dst: getsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:233,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:236,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:236,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:238,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:242,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:246,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:248,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:250,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:256,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:258,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:260,1
    - Dst: BIO_ADDR_family
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:267,1
    - Dst: setsockopt
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:273,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:275,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:275,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:277,1
    - Dst: BIO_bind
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:283,1
    - Dst: listen
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:286,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:287,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:287,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:289,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - sock
    - addr
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 294
    functionName: BIO_listen
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock2.c
    functionUses: 1
    functionsReached:
    - listen
    - get_last_socket_error
    - getsockopt
    - ERR_raise_data
    - ERR_raise
    - BIO_socket_nbio
    - BIO_bind
    - BIO_ADDR_family
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int BIO_listen(int sock, const BIO_ADDR *addr, int options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:311,1
    - Dst: BIO_ADDR_sockaddr_noconst
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:312,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:314,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:315,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:315,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:317,1
    - Dst: BIO_socket_nbio
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:322,1
    - Dst: closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - accept_sock
    - addr_
    - options
    argTypes:
    - int
    - BIO_ADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 328
    functionName: BIO_accept_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock2.c
    functionUses: 1
    functionsReached:
    - BIO_ADDR_sockaddr_noconst
    - get_last_socket_error
    - ERR_raise_data
    - ERR_raise
    - BIO_socket_nbio
    - accept
    - closesocket
    - BIO_sock_should_retry
    linkageType: ''
    returnType: int
    signature: int BIO_accept_ex(int accept_sock, BIO_ADDR *addr_, int options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bio_sock2.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: BIO_closesocket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_sock2.c
    functionUses: 6
    functionsReached:
    - closesocket
    linkageType: ''
    returnType: int
    signature: int BIO_closesocket(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: BIO_s_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_bio(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: bio_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int bio_new(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:98,1
    - Dst: bio_destroy_pair
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: bio_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    - bio_destroy_pair
    - assert
    linkageType: ''
    returnType: int
    signature: int bio_free(BIO *bio)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:115,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:121,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:122,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:124,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:125,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:136,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:156,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:160,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:166,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:168,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:173,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:179,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - bio
    - buf
    - size_
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b != NULL)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b->buf != NULL)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (rest > 0)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (rest <= peer_b->len)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b->offset + chunk <= peer_b->size)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (chunk == rest)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b->offset <= peer_b->size)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 187
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 187
    functionName: bio_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 7
    functionsReached:
    - memcpy
    - BIO_set_retry_read
    - assert
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int bio_read(BIO *bio, char *buf, int size_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:205,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:211,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:212,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:214,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:215,1
    - Dst: bio_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:223,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b->buf != NULL)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b != NULL)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (num > 0)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 235
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 235
    functionName: bio_nread0
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_read
    - assert
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nread0(BIO *bio, char **buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bio_nread0
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:247,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:259,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char**
    - size_t
    assertStmts:
    - condition: (peer_b->offset <= peer_b->size)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 266
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 266
    functionName: bio_nread
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nread0
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nread(BIO *bio, char **buf, size_t num_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:274,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:280,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:281,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:282,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:287,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:291,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:294,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:306,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:311,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:324,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts:
    - condition: (b->buf != NULL)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b != NULL)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->peer != NULL)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (rest > 0)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->len + rest <= b->size)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 336
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 336
    functionName: bio_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 8
    functionsReached:
    - BIO_set_retry_write
    - memcpy
    - assert
    - ERR_raise
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int bio_write(BIO *bio, const char *buf, int num_)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:351,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:357,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:358,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:359,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:363,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:367,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:370,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts:
    - condition: (b->peer != NULL)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->buf != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b != NULL)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->len <= b->size)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (write_offset + num <= b->size)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 391
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 391
    functionName: bio_nwrite0
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - ERR_raise
    - assert
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nwrite0(BIO *bio, char **buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bio_nwrite0
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:403,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:409,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - bio
    - buf
    - num_
    argTypes:
    - BIO*
    - char**
    - size_t
    assertStmts:
    - condition: (b->len <= b->size)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b != NULL)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 414
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 414
    functionName: bio_nwrite
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - bio_nwrite0
    - assert
    linkageType: ''
    returnType: ossl_ssize_t
    signature: ossl_ssize_t bio_nwrite(BIO *bio, char **buf, size_t num_)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:421,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:428,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:431,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:437,1
    - Dst: bio_make_pair
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:453,1
    - Dst: bio_destroy_pair
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:465,1
    - Dst: bio_nread0
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:507,1
    - Dst: bio_nread
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:512,1
    - Dst: bio_nwrite0
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:517,1
    - Dst: bio_nwrite
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:522,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:566,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:568,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:570,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (other_b != NULL)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (other_b->buf == NULL)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (other_bio != NULL)
      pos:
        line_end: 565
        line_start: 565
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 599
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 599
    functionName: bio_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 1
    functionsReached:
    - bio_destroy_pair
    - assert
    - bio_nread
    - bio_nwrite
    - bio_nwrite0
    - ERR_raise
    - OPENSSL_free
    - bio_make_pair
    - bio_nread0
    linkageType: ''
    returnType: long
    signature: long bio_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:603,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: bio_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 1
    functionsReached:
    - strlen
    - bio_write
    linkageType: ''
    returnType: int
    signature: int bio_puts(BIO *bio, const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:610,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:611,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:617,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:622,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:624,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:632,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - bio1
    - bio2
    argTypes:
    - BIO*
    - BIO*
    assertStmts:
    - condition: (bio1 != NULL)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (bio2 != NULL)
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 652
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 652
    functionName: bio_make_pair
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - assert
    linkageType: ''
    returnType: int
    signature: int bio_make_pair(BIO *bio1, BIO *bio2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:664,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:665,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:669,1
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts:
    - condition: (peer_b != NULL)
      pos:
        line_end: 663
        line_start: 663
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b->peer == bio)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (peer_b->buf != NULL)
      pos:
        line_end: 668
        line_start: 668
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    - condition: (b->buf != NULL)
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    constantsTouched: []
    func_position:
      end: 680
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 680
    functionName: bio_destroy_pair
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void bio_destroy_pair(BIO *bio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:690,1
    - Dst: BIO_s_bio
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:690,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:693,1
    - Dst: BIO_s_bio
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:693,1
    - Dst: BIO_set_write_buf_size
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:698,1
    - Dst: BIO_set_write_buf_size
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:703,1
    - Dst: BIO_make_bio_pair
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:708,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:715,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:717,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - bio1_p
    - writebuf1
    - bio2_p
    - writebuf2
    argTypes:
    - BIO**
    - size_t
    - BIO**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 683
    functionDepth: 6
    functionLinenumber: 683
    functionLinenumberEnd: 724
    functionName: BIO_new_bio_pair
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_s_bio
    - BIO_free
    - BIO_make_bio_pair
    - BIO_set_write_buf_size
    linkageType: ''
    returnType: int
    signature: "int BIO_new_bio_pair(BIO **bio1_p, size_t writebuf1,\n                     BIO
      **bio2_p, size_t writebuf2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 729
    functionName: BIO_ctrl_get_write_guarantee
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_get_write_guarantee(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 734
    functionName: BIO_ctrl_get_read_request
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: size_t
    signature: size_t BIO_ctrl_get_read_request(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: BIO_ctrl_reset_read_request
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: int BIO_ctrl_reset_read_request(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:751,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 760
    functionName: BIO_nread0
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_nread0(BIO *bio, char **buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:767,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - num
    argTypes:
    - BIO*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 775
    functionName: BIO_nread
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_nread(BIO *bio, char **buf, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:782,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bio
    - buf
    argTypes:
    - BIO*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 791
    functionName: BIO_nwrite0
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_nwrite0(BIO *bio, char **buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:798,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_bio.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - buf
    - num
    argTypes:
    - BIO*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 806
    functionName: BIO_nwrite
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int BIO_nwrite(BIO *bio, char **buf, int num)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:31,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:41,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:45,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:49,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:54,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:58,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:62,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:65,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:69,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:73,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:76,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:79,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:82,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:85,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:88,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:94,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:94,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 8
    argNames:
    - bio
    - cmd
    - argp
    - len
    - argi
    - argl
    - ret
    - processed
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - int
    - long
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 100
    functionName: BIO_debug_callback_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_cb.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - BIO_snprintf
    - strlen
    linkageType: ''
    returnType: long
    signature: "long BIO_debug_callback_ex(BIO *bio, int cmd, const char *argp, size_t
      len,\n                           int argi, long argl, int ret, size_t *processed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_debug_callback_ex
      Src: /src/openssl-3.0.15/crypto/bio/bio_cb.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - bio
    - cmd
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: BIO_debug_callback
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_cb.c
    functionUses: 0
    functionsReached:
    - BIO_debug_callback_ex
    linkageType: ''
    returnType: long
    signature: "long BIO_debug_callback(BIO *bio, int cmd, const char *argp,\n                        int
      argi, long argl, long ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_bio_type_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:28,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: BIO_get_new_index
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 2
    functionsReached:
    - RUN_ONCE
    - ERR_raise
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int BIO_get_new_index(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:38,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: BIO_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_meth_new(int type, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: BIO_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void BIO_meth_free(BIO_METHOD *biom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char
      *, int)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char
      *, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: "(*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const
      char *, size_t,\n                                                size_t *)"
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const
      char *, size_t,\n                                                size_t *)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO*::method::bwrite_old
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio
    - data
    - datal
    - written
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: bwrite_conv
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - BIO*::method::bwrite_old
    linkageType: ''
    returnType: int
    signature: int bwrite_conv(BIO *bio, const char *data, size_t datal, size_t *written)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: BIO_meth_set_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_write(BIO_METHOD *biom,\n                       int
      (*bwrite) (BIO *, const char *, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: BIO_meth_set_write_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_write_ex(BIO_METHOD *biom,\n                       int
      (*bwrite) (BIO *, const char *, size_t, size_t *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *,
      size_t, size_t *)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *,
      size_t, size_t *)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO*::method::bread_old
      Src: /src/openssl-3.0.15/crypto/bio/bio_meth.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bio
    - data
    - datal
    - readbytes
    argTypes:
    - BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: bread_conv
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached:
    - BIO*::method::bread_old
    linkageType: ''
    returnType: int
    signature: int bread_conv(BIO *bio, char *data, size_t datal, size_t *readbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: BIO_meth_set_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_read(BIO_METHOD *biom,\n                      int
      (*bread) (BIO *, char *, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: BIO_meth_set_read_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_read_ex(BIO_METHOD *biom,\n                         int
      (*bread) (BIO *, char *, size_t, size_t *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char
      *)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char
      *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_puts(BIO_METHOD *biom,\n                      int
      (*bputs) (BIO *, const char *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: BIO_meth_set_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_gets(BIO_METHOD *biom,\n                      int
      (*bgets) (BIO *, char *, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long,
      void *)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long,
      void *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_ctrl(BIO_METHOD *biom,\n                      long
      (*ctrl) (BIO *, int, long, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: (*BIO_meth_get_create(const BIO_METHOD *biom)) (BIO *)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_create(const BIO_METHOD *biom)) (BIO *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: BIO_meth_set_create
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: BIO_meth_set_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *, int,
      BIO_info_cb *)
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) (BIO *,
      int, BIO_info_cb *)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - biom
    argTypes:
    - BIO_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: BIO_meth_set_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,\n                               long
      (*callback_ctrl) (BIO *, int,\n                                                      BIO_info_cb
      *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: BIO_f_readbuffer
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_readbuffer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:55,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 70
    functionName: readbuffer_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int readbuffer_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: readbuffer_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int readbuffer_free(BIO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - sz
    argTypes:
    - BIO_F_BUFFER_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: readbuffer_resize
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    linkageType: ''
    returnType: int
    signature: int readbuffer_resize(BIO_F_BUFFER_CTX *ctx, int sz)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:117,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:125,1
    - Dst: readbuffer_resize
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:137,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:141,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 151
    functionName: readbuffer_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - readbuffer_resize
    - memcpy
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int readbuffer_read(BIO *b, char *out, int outl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: readbuffer_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int readbuffer_write(BIO *b, const char *in, int inl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: readbuffer_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int readbuffer_puts(BIO *b, const char *str)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:175,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 209
    functionName: readbuffer_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long readbuffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: readbuffer_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long readbuffer_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:232,1
    - Dst: readbuffer_resize
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:263,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:276,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c:278,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 291
    functionName: readbuffer_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_readbuff.c
    functionUses: 0
    functionsReached:
    - readbuffer_resize
    - BIO_copy_next_retry
    - BIO_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int readbuffer_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: BIO_f_linebuffer
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_linebuffer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:60,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:61,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: linebuffer_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int linebuffer_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: linebuffer_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int linebuffer_free(BIO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:102,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:103,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: linebuffer_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_copy_next_retry
    - BIO_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int linebuffer_read(BIO *b, char *out, int outl)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:119,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:143,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:149,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:156,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:159,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:167,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:176,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:178,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:196,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 201
    functionName: linebuffer_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int linebuffer_write(BIO *b, const char *in, int inl)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:219,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:229,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:238,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:246,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:247,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:255,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:256,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:257,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:264,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:269,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:271,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:272,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:276,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:283,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:287,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:293,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:298,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 300
    functionName: linebuffer_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BIO_ctrl
    - OPENSSL_malloc
    - memmove
    - BIO_copy_next_retry
    - ERR_raise
    - BIO_clear_retry_flags
    - OPENSSL_free
    - BIO_set_write_buffer_size
    - BIO_write
    linkageType: ''
    returnType: long
    signature: long linebuffer_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: linebuffer_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long linebuffer_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: linebuffer_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int linebuffer_gets(BIO *b, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: linebuffer_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:318,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: linebuffer_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_lbuf.c
    functionUses: 0
    functionsReached:
    - strlen
    - linebuffer_write
    linkageType: ''
    returnType: int
    signature: int linebuffer_puts(BIO *b, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/bio/bio_err.c:82,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/bio/bio_err.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: ossl_err_load_BIO_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bio_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_BIO_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: BIO_s_accept
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_s_accept(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ACCEPT_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: acpt_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ACCEPT_new
    linkageType: ''
    returnType: int
    signature: int acpt_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: BIO_ACCEPT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: BIO_ACCEPT
    signature: BIO_ACCEPT *BIO_ACCEPT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:108,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:109,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:110,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:112,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:114,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:115,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO_ACCEPT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: BIO_ACCEPT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_ADDRINFO_free
    - BIO_free
    linkageType: ''
    returnType: void
    signature: void BIO_ACCEPT_free(BIO_ACCEPT *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:125,1
    - Dst: closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: acpt_close_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - closesocket
    - shutdown
    linkageType: ''
    returnType: void
    signature: void acpt_close_socket(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpt_close_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:141,1
    - Dst: BIO_ACCEPT_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: acpt_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ACCEPT_free
    - acpt_close_socket
    linkageType: ''
    returnType: int
    signature: int acpt_free(BIO *a)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:159,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:174,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:206,1
    - Dst: BIO_lookup
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:209,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:214,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:222,1
    - Dst: BIO_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:223,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:223,1
    - Dst: BIO_ADDRINFO_socktype
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:224,1
    - Dst: BIO_ADDRINFO_protocol
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:225,1
    - Dst: BIO_ADDRINFO_next
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:227,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:231,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:234,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:235,1
    - Dst: get_last_socket_error
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:238,1
    - Dst: BIO_listen
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:249,1
    - Dst: BIO_ADDRINFO_address
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:250,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:252,1
    - Dst: BIO_sock_info
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:261,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:263,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:269,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:271,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:285,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:287,1
    - Dst: BIO_accept_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:290,1
    - Dst: BIO_sock_should_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:297,1
    - Dst: BIO_set_retry_special
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:298,1
    - Dst: BIO_new_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:310,1
    - Dst: BIO_set_callback_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:314,1
    - Dst: BIO_get_callback_ex
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:314,1
    - Dst: BIO_set_callback
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:316,1
    - Dst: BIO_get_callback
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:316,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:318,1
    - Dst: BIO_get_callback_arg
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:318,1
    - Dst: BIO_dup_chain
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:324,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:326,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:330,1
    - Dst: BIO_ADDR_hostname_string
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:334,1
    - Dst: BIO_ADDR_service_string
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:336,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:358,1
    - Dst: BIO_closesocket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:360,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 167
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - BIO*
    - BIO_ACCEPT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 363
    functionName: acpt_state
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ADDR_hostname_string
    - BIO_set_callback
    - BIO_accept_ex
    - BIO_sock_info
    - BIO_ADDRINFO_protocol
    - BIO_socket
    - BIO_set_retry_special
    - ERR_raise_data
    - BIO_new_socket
    - BIO_set_callback_ex
    - BIO_listen
    - BIO_push
    - get_last_socket_error
    - BIO_dup_chain
    - ERR_raise
    - BIO_ADDRINFO_socktype
    - BIO_get_callback_ex
    - BIO_lookup
    - OPENSSL_free
    - BIO_ADDR_service_string
    - BIO_get_callback_arg
    - BIO_sock_should_retry
    - BIO_closesocket
    - BIO_ADDRINFO_address
    - BIO_free
    - ERR_set_mark
    - BIO_ADDRINFO_next
    - BIO_clear_retry_flags
    - BIO_get_callback
    - ERR_pop_to_mark
    - BIO_ADDRINFO_family
    - BIO_set_callback_arg
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: int acpt_state(BIO *b, BIO_ACCEPT *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:370,1
    - Dst: acpt_state
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:374,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:379,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 365
    functionDepth: 8
    functionLinenumber: 365
    functionLinenumberEnd: 382
    functionName: acpt_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - acpt_state
    - BIO_copy_next_retry
    - BIO_read
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int acpt_read(BIO *b, char *out, int outl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:389,1
    - Dst: acpt_state
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:393,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:398,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 384
    functionDepth: 8
    functionLinenumber: 384
    functionLinenumberEnd: 401
    functionName: acpt_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - acpt_state
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: int acpt_write(BIO *b, const char *in, int inl)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: acpt_close_socket
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:416,1
    - Dst: BIO_ADDRINFO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:417,1
    - Dst: acpt_state
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:423,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:433,1
    - Dst: BIO_parse_hostserv
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:435,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:440,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:443,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:444,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:451,1
    - Dst: BIO_ADDRINFO_family
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:499,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:544,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 135
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 403
    functionDepth: 8
    functionLinenumber: 403
    functionLinenumberEnd: 551
    functionName: acpt_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_free
    - OPENSSL_free
    - acpt_state
    - BIO_ADDRINFO_family
    - acpt_close_socket
    - BIO_parse_hostserv
    - OPENSSL_strdup
    - BIO_ADDRINFO_free
    linkageType: ''
    returnType: long
    signature: long acpt_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:557,1
    - Dst: acpt_write
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 553
    functionDepth: 9
    functionLinenumber: 553
    functionLinenumberEnd: 560
    functionName: acpt_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - strlen
    - acpt_write
    linkageType: ''
    returnType: int
    signature: int acpt_puts(BIO *bp, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:566,1
    - Dst: BIO_s_accept
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:566,1
    - Dst: BIO_set_accept_name
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:569,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/bss_acpt.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 6
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: BIO_new_accept
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bss_acpt.c
    functionUses: 0
    functionsReached:
    - BIO_set_accept_name
    - BIO_new
    - BIO_free
    - BIO_s_accept
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_accept(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: BIO_f_nbio_test
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_nbio_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: nbiof_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int nbiof_new(BIO *bi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: nbiof_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int nbiof_free(BIO *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:91,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:92,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:101,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:103,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: nbiof_read
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_copy_next_retry
    - RAND_priv_bytes
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    linkageType: ''
    returnType: int
    signature: int nbiof_read(BIO *b, char *out, int outl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:123,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:129,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:139,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:141,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 148
    functionName: nbiof_write
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - BIO_copy_next_retry
    - RAND_priv_bytes
    - BIO_clear_retry_flags
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int nbiof_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:158,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:159,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:160,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 170
    functionName: nbiof_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: long
    signature: long nbiof_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: nbiof_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    linkageType: ''
    returnType: long
    signature: long nbiof_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bp
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: nbiof_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int nbiof_gets(BIO *bp, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/bio/bf_nbio.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: nbiof_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/bf_nbio.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int nbiof_puts(BIO *bp, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:26,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:28,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: core_bio_new
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: OSSL_CORE_BIO
    signature: OSSL_CORE_BIO *core_bio_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - OSSL_CORE_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: ossl_core_bio_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int ossl_core_bio_up_ref(OSSL_CORE_BIO *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:48,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:50,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cb
    argTypes:
    - OSSL_CORE_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: ossl_core_bio_free
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 3
    functionsReached:
    - BIO_free
    - OPENSSL_free
    - CRYPTO_THREAD_lock_free
    - CRYPTO_DOWN_REF
    linkageType: ''
    returnType: int
    signature: int ossl_core_bio_free(OSSL_CORE_BIO *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: core_bio_new
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:60,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:62,1
    - Dst: ossl_core_bio_free
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: ossl_core_bio_new_from_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 3
    functionsReached:
    - ossl_core_bio_free
    - core_bio_new
    - BIO_up_ref
    linkageType: ''
    returnType: OSSL_CORE_BIO
    signature: OSSL_CORE_BIO *ossl_core_bio_new_from_bio(BIO *bio)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: core_bio_new
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:76,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: core_bio_new_from_new_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - core_bio_new
    linkageType: ''
    returnType: OSSL_CORE_BIO
    signature: OSSL_CORE_BIO *core_bio_new_from_new_bio(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_bio_new_from_new_bio
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:86,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ossl_core_bio_new_file
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - core_bio_new_from_new_bio
    - BIO_new_file
    linkageType: ''
    returnType: OSSL_CORE_BIO
    signature: OSSL_CORE_BIO *ossl_core_bio_new_file(const char *filename, const char
      *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_bio_new_from_new_bio
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:91,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: ossl_core_bio_new_mem_buf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - core_bio_new_from_new_bio
    - BIO_new_mem_buf
    linkageType: ''
    returnType: OSSL_CORE_BIO
    signature: OSSL_CORE_BIO *ossl_core_bio_new_mem_buf(const void *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cb
    - data
    - dlen
    - readbytes
    argTypes:
    - OSSL_CORE_BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: ossl_core_bio_read_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_read_ex
    linkageType: ''
    returnType: int
    signature: "int ossl_core_bio_read_ex(OSSL_CORE_BIO *cb, void *data, size_t dlen,\n
      \                         size_t *readbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cb
    - data
    - dlen
    - written
    argTypes:
    - OSSL_CORE_BIO*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: ossl_core_bio_write_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_write_ex
    linkageType: ''
    returnType: int
    signature: "int ossl_core_bio_write_ex(OSSL_CORE_BIO *cb, const void *data, size_t
      dlen,\n                           size_t *written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cb
    - buf
    - size
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: ossl_core_bio_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int ossl_core_bio_gets(OSSL_CORE_BIO *cb, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cb
    - buf
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: ossl_core_bio_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int ossl_core_bio_puts(OSSL_CORE_BIO *cb, const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cb
    - cmd
    - larg
    - parg
    argTypes:
    - OSSL_CORE_BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: ossl_core_bio_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long ossl_core_bio_ctrl(OSSL_CORE_BIO *cb, int cmd, long larg, void
      *parg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_vprintf
      Src: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cb
    - format
    - args
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: ossl_core_bio_vprintf
    functionSourceFile: /src/openssl-3.0.15/crypto/bio/ossl_core_bio.c
    functionUses: 0
    functionsReached:
    - BIO_vprintf
    linkageType: ''
    returnType: int
    signature: int ossl_core_bio_vprintf(OSSL_CORE_BIO *cb, const char *format, va_list
      args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_err.c:103,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/rand/rand_err.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: ossl_err_load_RAND_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_RAND_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:17,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - buf
    - num
    - randomness
    argTypes:
    - void*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: drbg_add
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_meth.c
    functionUses: 0
    functionsReached:
    - RAND_get0_primary
    - EVP_RAND_reseed
    linkageType: ''
    returnType: int
    signature: int drbg_add(const void *buf, int num, double randomness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: drbg_add
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: drbg_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_meth.c
    functionUses: 0
    functionsReached:
    - drbg_add
    linkageType: ''
    returnType: int
    signature: int drbg_seed(const void *buf, int num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:34,1
    - Dst: EVP_RAND_get_state
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: drbg_status
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_meth.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_get_state
    - RAND_get0_primary
    linkageType: ''
    returnType: int
    signature: int drbg_status(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get0_public
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:45,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/crypto/rand/rand_meth.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - count
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: drbg_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_meth.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_generate
    - RAND_get0_public
    linkageType: ''
    returnType: int
    signature: int drbg_bytes(unsigned char *out, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: RAND_OpenSSL
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *RAND_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - buf
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: RAND_query_egd_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_query_egd_bytes(const char *path, unsigned char *buf, int
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: RAND_egd
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_egd(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - bytes
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: RAND_egd_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RAND_egd_bytes(const char *path, int bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _arg_present
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:81,1
    - Dst: socket
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:82,1
    - Dst: socket_transport_name_get
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:84,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:86,1
    - Dst: socket
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:87,1
    - Dst: socket_transport_name_set
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:90,1
    - Dst: socket
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:93,1
    - Dst: socket_transport_name_set
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - transport
    argTypes:
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: hpns_socket
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - _arg_present
    - socket_transport_name_set
    - socket
    - strcmp
    - socket_transport_name_get
    linkageType: ''
    returnType: _variable
    signature: "_variable hpns_socket(int family,\n                int type,\n                int
      protocol,\n                char* transport)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:120,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:122,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:124,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:125,1
    - Dst: hpns_socket
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:127,1
    - Dst: socket
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:129,1
    - Dst: fdopen
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:131,1
    - Dst: setbuf
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:133,1
    - Dst: connect
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:137,1
    - Dst: close
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:162,1
    - Dst: hpns_socket
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:163,1
    - Dst: fwrite
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:179,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:179,1
    - Dst: fread
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:181,1
    - Dst: fread
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:191,1
    - Dst: RAND_add
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:196,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:200,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 3
    argNames:
    - path
    - buf
    - bytes
    argTypes:
    - char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 202
    functionName: RAND_query_egd_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - setbuf
    - fwrite
    - connect
    - socket
    - hpns_socket
    - fflush
    - fdopen
    - strlen
    - fread
    - close
    - strcpy
    - memset
    - RAND_add
    - fclose
    linkageType: ''
    returnType: int
    signature: int RAND_query_egd_bytes(const char *path, unsigned char *buf, int
      bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_query_egd_bytes
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:208,1
    - Dst: RAND_status
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - path
    - bytes
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: RAND_egd_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - RAND_query_egd_bytes
    - RAND_status
    linkageType: ''
    returnType: int
    signature: int RAND_egd_bytes(const char *path, int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_egd_bytes
      Src: /src/openssl-3.0.15/crypto/rand/rand_egd.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: RAND_egd
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_egd.c
    functionUses: 0
    functionsReached:
    - RAND_egd_bytes
    linkageType: ''
    returnType: int
    signature: int RAND_egd(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: S_ISREG
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/randfile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fname
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: openssl_fopen
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/randfile.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: openssl_fopen(fname, mode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: openssl_fopen
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:106,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:107,1
    - Dst: fstat
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:113,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:113,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:114,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:116,1
    - Dst: S_ISREG
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:121,1
    - Dst: setbuf
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:143,1
    - Dst: fread
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:153,1
    - Dst: ferror
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:155,1
    - Dst: clearerr
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:156,1
    - Dst: RAND_add
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:164,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:172,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:173,1
    - Dst: RAND_status
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:174,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 2
    argNames:
    - file
    - bytes
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 180
    functionName: RAND_load_file
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - setbuf
    - fstat
    - ferror
    - RAND_status
    - OPENSSL_cleanse
    - ERR_raise_data
    - S_ISREG
    - fread
    - openssl_fopen
    - clearerr
    - fileno
    - RAND_add
    - fclose
    linkageType: ''
    returnType: int
    signature: int RAND_load_file(const char *file, long bytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:190,1
    - Dst: S_ISREG
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:190,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:191,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:198,1
    - Dst: open
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:211,1
    - Dst: fdopen
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:214,1
    - Dst: close
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:216,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:217,1
    - Dst: openssl_fopen
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:243,1
    - Dst: openssl_fopen
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:247,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:249,1
    - Dst: chmod
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:258,1
    - Dst: fwrite
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:261,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:262,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:263,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 265
    functionName: RAND_write_file
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - fwrite
    - open
    - stat
    - chmod
    - RAND_priv_bytes
    - ERR_raise_data
    - OPENSSL_cleanse
    - fdopen
    - S_ISREG
    - close
    - openssl_fopen
    - fclose
    linkageType: ''
    returnType: int
    signature: int RAND_write_file(const char *file)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:278,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:280,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:281,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:283,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:289,1
    - Dst: GetEnvironmentVariableW
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:291,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:292,1
    - Dst: _alloca
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:294,1
    - Dst: WideCharToMultiByte
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:295,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:301,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:303,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:314,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:318,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:320,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:322,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:324,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/rand/randfile.c:326,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 330
    functionName: RAND_file_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/randfile.c
    functionUses: 0
    functionsReached:
    - GetEnvironmentVariableW
    - _alloca
    - WideCharToMultiByte
    - strlen
    - ossl_safe_getenv
    - strcpy
    - strcat
    linkageType: ''
    returnType: char
    signature: char *RAND_file_name(char *buf, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:25,1
    - Dst: RAND_POOL_MIN_ALLOCATION
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:29,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:41,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:43,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - entropy_requested
    - secure
    - min_len
    - max_len
    argTypes:
    - int
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 57
    functionName: ossl_rand_pool_new
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - RAND_POOL_MIN_ALLOCATION
    - OPENSSL_secure_zalloc
    linkageType: ''
    returnType: RAND_POOL
    signature: "RAND_POOL *ossl_rand_pool_new(int entropy_requested, int secure,\n
      \                             size_t min_len, size_t max_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - buffer
    - len
    - entropy
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 89
    functionName: ossl_rand_pool_attach
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: RAND_POOL
    signature: "RAND_POOL *ossl_rand_pool_attach(const unsigned char *buffer, size_t
      len,\n                                 size_t entropy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:107,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: ossl_rand_pool_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void ossl_rand_pool_free(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: ossl_rand_pool_buffer
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ossl_rand_pool_buffer(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: ossl_rand_pool_entropy
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_rand_pool_entropy(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: ossl_rand_pool_length
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_rand_pool_length(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: ossl_rand_pool_detach
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ossl_rand_pool_detach(RAND_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - buffer
    argTypes:
    - RAND_POOL*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: ossl_rand_pool_reattach
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ossl_rand_pool_reattach(RAND_POOL *pool, unsigned char *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bits
    - ','
    - entropy_factor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: ENTROPY_TO_BYTES
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTROPY_TO_BYTES(bits, entropy_factor)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: ossl_rand_pool_entropy_available
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_rand_pool_entropy_available(RAND_POOL *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: ossl_rand_pool_entropy_needed
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_rand_pool_entropy_needed(RAND_POOL *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:213,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:222,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:226,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:229,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:231,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - RAND_POOL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 238
    functionName: rand_pool_grow
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_clear_free
    - OPENSSL_secure_clear_free
    - OPENSSL_secure_zalloc
    linkageType: ''
    returnType: int
    signature: int rand_pool_grow(RAND_POOL *pool, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rand_pool_entropy_needed
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:252,1
    - Dst: ENTROPY_TO_BYTES
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:256,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:260,1
    - Dst: rand_pool_grow
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pool
    - entropy_factor
    argTypes:
    - RAND_POOL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 288
    functionName: ossl_rand_pool_bytes_needed
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - ossl_rand_pool_entropy_needed
    - rand_pool_grow
    - ERR_raise
    - ENTROPY_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_rand_pool_bytes_needed(RAND_POOL *pool, unsigned int entropy_factor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - RAND_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: ossl_rand_pool_bytes_remaining
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ossl_rand_pool_bytes_remaining(RAND_POOL *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:309,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:314,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:328,1
    - Dst: rand_pool_grow
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:338,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - pool
    - buffer
    - len
    - entropy
    argTypes:
    - RAND_POOL*
    - unsigned char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 346
    functionName: ossl_rand_pool_add
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - rand_pool_grow
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_rand_pool_add(RAND_POOL *pool,\n                  const unsigned
      char *buffer, size_t len, size_t entropy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:366,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:371,1
    - Dst: rand_pool_grow
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pool
    - len
    argTypes:
    - RAND_POOL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 388
    functionName: ossl_rand_pool_add_begin
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - rand_pool_grow
    - ERR_raise
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ossl_rand_pool_add_begin(RAND_POOL *pool, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_pool.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pool
    - len
    - entropy
    argTypes:
    - RAND_POOL*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 412
    functionName: ossl_rand_pool_add_end
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_pool.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_rand_pool_add_end(RAND_POOL *pool, size_t len, size_t entropy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:49,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:55,1
    - Dst: ossl_rand_pool_init
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:60,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 76
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_lock_new
    - ossl_rand_pool_init
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_rand_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_METHOD*::cleanup
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:87,1
    - Dst: RAND_set_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:88,1
    - Dst: ossl_rand_pool_cleanup
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:90,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:92,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:96,1
    - Dst: ossl_release_default_drbg_ctx
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: ossl_rand_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - ossl_release_default_drbg_ctx
    - ossl_rand_pool_cleanup
    - RAND_METHOD*::cleanup
    - RAND_set_rand_method
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void ossl_rand_cleanup_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:110,1
    - Dst: ossl_rand_pool_keep_random_devices_open
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - keep
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: RAND_keep_random_devices_open
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - ossl_rand_pool_keep_random_devices_open
    linkageType: ''
    returnType: void
    signature: void RAND_keep_random_devices_open(int keep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:126,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:127,1
    - Dst: ossl_rand_pool_new
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:134,1
    - Dst: ossl_pool_acquire_entropy
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:141,1
    - Dst: RAND_METHOD*::add
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:145,1
    - Dst: ossl_rand_pool_buffer
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:145,1
    - Dst: ossl_rand_pool_length
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:146,1
    - Dst: ossl_rand_pool_entropy
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:147,1
    - Dst: ossl_rand_pool_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:152,1
    - Dst: RAND_seed
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 159
    functionName: RAND_poll
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RAND_METHOD*::add
    - RAND_OpenSSL
    - ossl_rand_pool_entropy
    - ossl_pool_acquire_entropy
    - RAND_seed
    - ossl_rand_pool_new
    - RAND_get_rand_method
    - ossl_rand_pool_length
    - ossl_rand_pool_buffer
    - ossl_rand_pool_free
    linkageType: ''
    returnType: int
    signature: int RAND_poll(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:165,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:168,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:171,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - meth
    - e
    argTypes:
    - RAND_METHOD*
    - ossl_unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: rand_set_rand_method_internal
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int rand_set_rand_method_internal(const RAND_METHOD *meth,\n                                         ossl_unused
      ENGINE *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand_set_rand_method_internal
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RAND_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: RAND_set_rand_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - rand_set_rand_method_internal
    linkageType: ''
    returnType: int
    signature: int RAND_set_rand_method(const RAND_METHOD *meth)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:188,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:191,1
    - Dst: ENGINE_get_default_RAND
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:198,1
    - Dst: ENGINE_get_RAND
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:199,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:203,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 213
    functionName: RAND_get_rand_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - RUN_ONCE
    - ENGINE_get_default_RAND
    - ENGINE_finish
    - ENGINE_get_RAND
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *RAND_get_rand_method(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:220,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:224,1
    - Dst: ENGINE_get_RAND
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:226,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:228,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:232,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:233,1
    - Dst: rand_set_rand_method_internal
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:238,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 241
    functionName: RAND_set_rand_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - RUN_ONCE
    - ENGINE_finish
    - ENGINE_get_RAND
    - rand_set_rand_method_internal
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int RAND_set_rand_engine(ENGINE *engine)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:249,1
    - Dst: RAND_METHOD*::seed
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:252,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:257,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: RAND_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 2
    functionsReached:
    - RAND_METHOD*::seed
    - RAND_get0_primary
    - RAND_get_rand_method
    - EVP_RAND_reseed
    linkageType: ''
    returnType: void
    signature: void RAND_seed(const void *buf, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:266,1
    - Dst: RAND_METHOD*::add
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:269,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:273,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:277,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - num
    - randomness
    argTypes:
    - void*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: RAND_add
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 3
    functionsReached:
    - RAND_METHOD*::add
    - RAND_get0_primary
    - RAND_get_rand_method
    - EVP_RAND_reseed
    linkageType: ''
    returnType: void
    signature: void RAND_add(const void *buf, int num, double randomness)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:287,1
    - Dst: RAND_METHOD*::pseudorand
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:290,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 293
    functionName: RAND_pseudo_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - RAND_METHOD*::pseudorand
    - RAND_get_rand_method
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int RAND_pseudo_bytes(unsigned char *buf, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:300,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:302,1
    - Dst: RAND_METHOD*::status
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:303,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:306,1
    - Dst: EVP_RAND_get_state
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 309
    functionName: RAND_status
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 2
    functionsReached:
    - RAND_OpenSSL
    - RAND_get_rand_method
    - EVP_RAND_get_state
    - RAND_get0_primary
    - RAND_METHOD*::status
    linkageType: ''
    returnType: int
    signature: int RAND_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: RAND_get_rand_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *RAND_get_rand_method(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:330,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:332,1
    - Dst: RAND_METHOD*::bytes
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:334,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:335,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:340,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - buf
    - num
    - strength
    argTypes:
    - OSSL_LIB_CTX*
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 345
    functionName: RAND_priv_bytes_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 10
    functionsReached:
    - RAND_OpenSSL
    - EVP_RAND_generate
    - RAND_get_rand_method
    - ERR_raise
    - RAND_get0_private
    - RAND_METHOD*::bytes
    linkageType: ''
    returnType: int
    signature: "int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t
      num,\n                       unsigned int strength)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: RAND_priv_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 6
    functionsReached:
    - RAND_priv_bytes_ex
    linkageType: ''
    returnType: int
    signature: int RAND_priv_bytes(unsigned char *buf, int num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:359,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:361,1
    - Dst: RAND_METHOD*::bytes
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:363,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:364,1
    - Dst: RAND_get0_public
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:369,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - buf
    - num
    - strength
    argTypes:
    - OSSL_LIB_CTX*
    - unsigned char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 374
    functionName: RAND_bytes_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 12
    functionsReached:
    - RAND_get0_public
    - RAND_OpenSSL
    - EVP_RAND_generate
    - RAND_get_rand_method
    - ERR_raise
    - RAND_METHOD*::bytes
    linkageType: ''
    returnType: int
    signature: "int RAND_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num,\n
      \                 unsigned int strength)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: RAND_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 10
    functionsReached:
    - RAND_bytes_ex
    linkageType: ''
    returnType: int
    signature: int RAND_bytes(unsigned char *buf, int num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:446,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:456,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:459,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:463,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:466,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:472,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:474,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 477
    functionName: rand_ossl_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    - OPENSSL_zalloc
    - OPENSSL_init_crypto
    - OPENSSL_free
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void *rand_ossl_ctx_new(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:486,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:487,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:488,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:489,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:490,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:491,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:492,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:493,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:494,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:495,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:496,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - vdgbl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 499
    functionName: ossl_rand_ctx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_lock_free
    - EVP_RAND_CTX_free
    linkageType: ''
    returnType: void
    signature: void ossl_rand_ctx_free(void *vdgbl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 6
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: rand_get_global
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: RAND_GLOBAL
    signature: RAND_GLOBAL *rand_get_global(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:516,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:522,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:523,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:524,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:526,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:527,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 513
    functionDepth: 7
    functionLinenumber: 513
    functionLinenumberEnd: 529
    functionName: rand_delete_thread_state
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    - EVP_RAND_CTX_free
    - rand_get_global
    linkageType: ''
    returnType: void
    signature: void rand_delete_thread_state(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:535,1
    - Dst: EVP_RAND_fetch
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:542,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:544,1
    - Dst: EVP_RAND_CTX_new
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:547,1
    - Dst: EVP_RAND_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:548,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:550,1
    - Dst: EVP_RAND_instantiate
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:553,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:554,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 532
    functionDepth: 11
    functionLinenumber: 532
    functionLinenumberEnd: 559
    functionName: rand_new_seed
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_free
    - EVP_RAND_CTX_new
    - rand_get_global
    - EVP_RAND_instantiate
    - ERR_raise
    - EVP_RAND_CTX_free
    - EVP_RAND_fetch
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: EVP_RAND_CTX *rand_new_seed(OSSL_LIB_CTX *libctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:567,1
    - Dst: EVP_RAND_fetch
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:575,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:577,1
    - Dst: EVP_RAND_CTX_new
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:580,1
    - Dst: EVP_RAND_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:581,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:583,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:592,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:595,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:598,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:600,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:601,1
    - Dst: OSSL_PARAM_construct_time_t
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:603,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:605,1
    - Dst: EVP_RAND_instantiate
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:606,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:607,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:608,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - libctx
    - parent
    - reseed_interval
    - reseed_time_interval
    argTypes:
    - OSSL_LIB_CTX*
    - EVP_RAND_CTX*
    - unsigned int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 562
    functionDepth: 11
    functionLinenumber: 562
    functionLinenumberEnd: 612
    functionName: rand_new_drbg
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_free
    - OSSL_PARAM_construct_uint
    - OSSL_PARAM_construct_time_t
    - EVP_RAND_CTX_new
    - rand_get_global
    - EVP_RAND_instantiate
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - OSSL_PARAM_construct_end
    - EVP_RAND_CTX_free
    - EVP_RAND_fetch
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: "EVP_RAND_CTX *rand_new_drbg(OSSL_LIB_CTX *libctx, EVP_RAND_CTX *parent,\n
      \                                  unsigned int reseed_interval,\n                                   time_t
      reseed_time_interval)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:621,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:627,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:631,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:636,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:641,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:647,1
    - Dst: rand_new_seed
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:648,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:649,1
    - Dst: rand_new_drbg
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:653,1
    - Dst: EVP_RAND_enable_locking
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:660,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:661,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:662,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 619
    functionDepth: 12
    functionLinenumber: 619
    functionLinenumberEnd: 668
    functionName: RAND_get0_primary
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 5
    functionsReached:
    - rand_new_drbg
    - rand_get_global
    - rand_new_seed
    - ERR_set_mark
    - ERR_raise
    - ERR_pop_to_mark
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_write_lock
    - EVP_RAND_CTX_free
    - CRYPTO_THREAD_unlock
    - EVP_RAND_enable_locking
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: EVP_RAND_CTX *RAND_get0_primary(OSSL_LIB_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:676,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:682,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:684,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:688,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:693,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:694,1
    - Dst: rand_new_drbg
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:696,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 674
    functionDepth: 13
    functionLinenumber: 674
    functionLinenumberEnd: 701
    functionName: RAND_get0_public
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 2
    functionsReached:
    - rand_new_drbg
    - CRYPTO_THREAD_set_local
    - rand_get_global
    - CRYPTO_THREAD_get_local
    - ossl_init_thread_start
    - ossl_lib_ctx_get_concrete
    - RAND_get0_primary
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: EVP_RAND_CTX *RAND_get0_public(OSSL_LIB_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:709,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:715,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:717,1
    - Dst: ossl_lib_ctx_get_concrete
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:721,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:726,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:727,1
    - Dst: rand_new_drbg
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:729,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 707
    functionDepth: 13
    functionLinenumber: 707
    functionLinenumberEnd: 734
    functionName: RAND_get0_private
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 1
    functionsReached:
    - rand_new_drbg
    - CRYPTO_THREAD_set_local
    - rand_get_global
    - CRYPTO_THREAD_get_local
    - ossl_init_thread_start
    - ossl_lib_ctx_get_concrete
    - RAND_get0_primary
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: EVP_RAND_CTX *RAND_get0_private(OSSL_LIB_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:742,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:744,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 751
    functionName: random_set_string
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int random_set_string(char **p, const char *s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:758,1
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:760,1
    - Dst: NCONF_get0_libctx
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:760,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:763,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:764,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:767,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:767,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:769,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:776,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:777,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:778,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:779,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:781,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:782,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:784,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:785,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:787,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:788,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:790,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:791,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:793,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:794,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:797,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 756
    functionDepth: 7
    functionLinenumber: 756
    functionLinenumberEnd: 804
    functionName: random_conf_init
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    - rand_get_global
    - NCONF_get0_libctx
    - sk_CONF_VALUE_num
    - ERR_raise_data
    - ERR_raise
    - random_set_string
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - sk_CONF_VALUE_value
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: int random_conf_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: random_conf_deinit
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void random_conf_deinit(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:814,1
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 816
    functionName: ossl_random_add_conf_module
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    - OSSL_TRACE
    linkageType: ''
    returnType: void
    signature: void ossl_random_add_conf_module(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:821,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:826,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:829,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:830,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:831,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:832,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - drbg
    - propq
    - cipher
    - digest
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 818
    functionDepth: 7
    functionLinenumber: 818
    functionLinenumberEnd: 833
    functionName: RAND_set_DRBG_type
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - random_set_string
    - ERR_raise
    - rand_get_global
    linkageType: ''
    returnType: int
    signature: "int RAND_set_DRBG_type(OSSL_LIB_CTX *ctx, const char *drbg, const
      char *propq,\n                       const char *cipher, const char *digest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rand_get_global
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:838,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:843,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:846,1
    - Dst: random_set_string
      Src: /src/openssl-3.0.15/crypto/rand/rand_lib.c:847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - seed
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 835
    functionDepth: 7
    functionLinenumber: 835
    functionLinenumberEnd: 848
    functionName: RAND_set_seed_source_type
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_lib.c
    functionUses: 0
    functionsReached:
    - random_set_string
    - ERR_raise
    - rand_get_global
    linkageType: ''
    returnType: int
    signature: "int RAND_set_seed_source_type(OSSL_LIB_CTX *ctx, const char *seed,\n
      \                             const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rand_pool_new
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:23,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:25,1
    - Dst: ossl_pool_acquire_entropy
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:30,1
    - Dst: ossl_rand_pool_length
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:33,1
    - Dst: ossl_rand_pool_detach
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:34,1
    - Dst: ossl_rand_pool_free
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - OSSL_CORE_HANDLE *handle
    - pout
    - entropy
    - min_len
    - max_len
    argTypes:
    - ossl_unused
    - unsigned char**
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: ossl_rand_get_entropy
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/prov_seed.c
    functionUses: 0
    functionsReached:
    - ossl_pool_acquire_entropy
    - ossl_rand_pool_detach
    - ossl_rand_pool_new
    - ERR_raise
    - ossl_rand_pool_length
    - ossl_rand_pool_free
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_rand_get_entropy(ossl_unused const OSSL_CORE_HANDLE *handle,\n
      \                            unsigned char **pout, int entropy,\n                             size_t
      min_len, size_t max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - OSSL_CORE_HANDLE *handle
    - buf
    - len
    argTypes:
    - ossl_unused
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: ossl_rand_cleanup_entropy
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/prov_seed.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: "void ossl_rand_cleanup_entropy(ossl_unused const OSSL_CORE_HANDLE
      *handle,\n                               unsigned char *buf, size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rand_pool_new
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:56,1
    - Dst: ossl_pool_add_nonce_data
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:60,1
    - Dst: ossl_rand_pool_add
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:63,1
    - Dst: ossl_rand_pool_length
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:65,1
    - Dst: ossl_rand_pool_detach
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:66,1
    - Dst: ossl_rand_pool_free
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - OSSL_CORE_HANDLE *handle
    - pout
    - min_len
    - max_len
    - salt
    - salt_len
    argTypes:
    - ossl_unused
    - unsigned char**
    - size_t
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: ossl_rand_get_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/prov_seed.c
    functionUses: 0
    functionsReached:
    - ossl_rand_pool_detach
    - ossl_rand_pool_new
    - ERR_raise
    - ossl_rand_pool_length
    - ossl_rand_pool_free
    - ossl_rand_pool_add
    - ossl_pool_add_nonce_data
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_rand_get_nonce(ossl_unused const OSSL_CORE_HANDLE *handle,\n
      \                          unsigned char **pout, size_t min_len, size_t max_len,\n
      \                          const void *salt, size_t salt_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rand/prov_seed.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - OSSL_CORE_HANDLE *handle
    - buf
    - len
    argTypes:
    - ossl_unused
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ossl_rand_cleanup_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/prov_seed.c
    functionUses: 0
    functionsReached:
    - OPENSSL_clear_free
    linkageType: ''
    returnType: void
    signature: "void ossl_rand_cleanup_nonce(ossl_unused const OSSL_CORE_HANDLE *handle,\n
      \                            unsigned char *buf, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_poll
      Src: /src/openssl-3.0.15/crypto/rand/rand_deprecated.c:22,1
    - Dst: RAND_status
      Src: /src/openssl-3.0.15/crypto/rand/rand_deprecated.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iMsg
    - wParam
    - lParam
    argTypes:
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: RAND_event
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_deprecated.c
    functionUses: 0
    functionsReached:
    - RAND_poll
    - RAND_status
    linkageType: ''
    returnType: int
    signature: int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_poll
      Src: /src/openssl-3.0.15/crypto/rand/rand_deprecated.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: RAND_screen
    functionSourceFile: /src/openssl-3.0.15/crypto/rand/rand_deprecated.c
    functionUses: 0
    functionsReached:
    - RAND_poll
    linkageType: ''
    returnType: void
    signature: void RAND_screen(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: ERR_load_KDF_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/kdf/kdf_err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ERR_load_KDF_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: ASN1_SCTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_SCTX
    signature: ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ASN1_SCTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_SCTX_free(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: ASN1_SCTX_get_item
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_ITEM
    signature: ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_SCTX_get_template
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TEMPLATE
    signature: ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_SCTX_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - data
    argTypes:
    - ASN1_SCTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ASN1_SCTX_set_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_SCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ASN1_SCTX_get_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_scn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ASN1_SCTX_get_app_data(ASN1_SCTX *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:67,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:70,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:71,1
    - Dst: BIO_f_asn1
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:71,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:76,1
    - Dst: BIO_asn1_set_prefix
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:81,1
    - Dst: BIO_asn1_set_suffix
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:82,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:83,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:99,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:123,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:125,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - out
    - val
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 127
    functionName: BIO_new_NDEF
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c
    functionUses: 1
    functionsReached:
    - BIO_asn1_set_suffix
    - BIO_new
    - BIO_ctrl
    - BIO_free
    - BIO_asn1_set_prefix
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_free
    - ASN1_AUX*::asn1_cb
    - BIO_f_asn1
    - BIO_pop
    - BIO_push
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:140,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:144,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: ndef_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - ASN1_item_ndef_i2d
    linkageType: ''
    returnType: int
    signature: int ndef_prefix(BIO *b, unsigned char **pbuf, int *plen, void *parg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: ndef_prefix_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int ndef_prefix_free(BIO *b, unsigned char **pbuf, int *plen,\n                            void
      *parg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ndef_prefix_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: ndef_suffix_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - ndef_prefix_free
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int ndef_suffix_free(BIO *b, unsigned char **pbuf, int *plen,\n                            void
      *parg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:211,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:215,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:218,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:219,1
    - Dst: ASN1_item_ndef_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - b
    - pbuf
    - plen
    - parg
    argTypes:
    - BIO*
    - unsigned char**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 233
    functionName: ndef_suffix
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_ndef.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ASN1_AUX*::asn1_cb
    - ERR_raise
    - ASN1_item_ndef_i2d
    linkageType: ''
    returnType: int
    signature: int ndef_suffix(BIO *b, unsigned char **pbuf, int *plen, void *parg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:20,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:24,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:25,1
    - Dst: X509_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: X509_PKEY_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_pkey.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - ASN1_OCTET_STRING_new
    - X509_PKEY_free
    - X509_ALGOR_new
    linkageType: ''
    returnType: X509_PKEY
    signature: X509_PKEY *X509_PKEY_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:41,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:42,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:45,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_pkey.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: X509_PKEY_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_pkey.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    - ASN1_OCTET_STRING_free
    - X509_ALGOR_free
    linkageType: ''
    returnType: void
    signature: void X509_PKEY_free(X509_PKEY *x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:24,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:29,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:29,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:33,1
    - Dst: EVP_PKEY*::ameth::param_decode
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:37,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:45,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: d2i_KeyParams
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_param.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_set_type
    - EVP_PKEY_get_id
    - ERR_raise
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY*::ameth::param_decode
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_KeyParams(int type, EVP_PKEY **a, const unsigned char
      **pp,\n                        long length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:56,1
    - Dst: d2i_KeyParams
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:61,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_param.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - a
    - in
    argTypes:
    - int
    - EVP_PKEY**
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: d2i_KeyParams_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_param.c
    functionUses: 0
    functionsReached:
    - BUF_MEM_free
    - asn1_d2i_read_bio
    - d2i_KeyParams
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *d2i_KeyParams_bio(int type, EVP_PKEY **a, BIO *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:36,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:40,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:44,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:47,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - i2d
    - type
    - data
    - md
    - len
    argTypes:
    - i2d_of_void*
    - EVP_MD*
    - char*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 28
    functionDepth: 9
    functionLinenumber: 28
    functionLinenumberEnd: 52
    functionName: ASN1_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_digest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - i2d
    - OPENSSL_free
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,\n
      \               unsigned char *md, unsigned int *len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:64,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:68,1
    - Dst: ENGINE_get_digest_engine
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:70,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:70,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:73,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:76,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:76,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:83,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 7
    argNames:
    - it
    - md
    - asn
    - data
    - len
    - libctx
    - propq
    argTypes:
    - ASN1_ITEM*
    - EVP_MD*
    - void*
    - unsigned char*
    - unsigned int*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 56
    functionDepth: 11
    functionLinenumber: 56
    functionLinenumberEnd: 87
    functionName: ossl_asn1_item_digest_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_digest.c
    functionUses: 4
    functionsReached:
    - ENGINE_get_digest_engine
    - EVP_MD_get0_provider
    - ENGINE_finish
    - ASN1_item_i2d
    - EVP_MD_get0_name
    - OPENSSL_free
    - EVP_MD_get_type
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_item_digest_ex(const ASN1_ITEM *it, const EVP_MD *md,
      void *asn,\n                             unsigned char *data, unsigned int *len,\n
      \                            OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_item_digest_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_digest.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - it
    - md
    - asn
    - data
    - len
    argTypes:
    - ASN1_ITEM*
    - EVP_MD*
    - void*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 12
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: ASN1_item_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_digest.c
    functionUses: 2
    functionsReached:
    - ossl_asn1_item_digest_ex
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *md, void *asn,\n
      \                    unsigned char *data, unsigned int *len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:53,1
    - Dst: OSSL_ENCODER_to_data
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:59,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - a
    - selection
    - output_info
    - pp
    argTypes:
    - EVP_PKEY*
    - int
    - struct type_and_structure_st*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 12
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: i2d_provided
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OSSL_ENCODER_to_data
    - OSSL_ENCODER_CTX_free
    - OSSL_ENCODER_CTX_new_for_pkey
    linkageType: ''
    returnType: int
    signature: "int i2d_provided(const EVP_PKEY *a, int selection,\n                        const
      struct type_and_structure_st *output_info,\n                        unsigned
      char **pp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:76,1
    - Dst: i2d_provided
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:82,1
    - Dst: EVP_PKEY*::ameth::param_encode
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 13
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: i2d_KeyParams
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - evp_pkey_is_provided
    - i2d_provided
    - EVP_PKEY*::ameth::param_encode
    linkageType: ''
    returnType: int
    signature: int i2d_KeyParams(const EVP_PKEY *a, unsigned char **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - pkey
    argTypes:
    - BIO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: i2d_KeyParams_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_KeyParams_bio(BIO *bp, const EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:97,1
    - Dst: i2d_provided
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:104,1
    - Dst: EVP_PKEY*::ameth::old_priv_encode
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:107,1
    - Dst: EVP_PKEY2PKCS8
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:110,1
    - Dst: i2d_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:114,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 13
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: i2d_PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY2PKCS8
    - i2d_provided
    - evp_pkey_is_provided
    - ERR_raise
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY*::ameth::old_priv_encode
    - i2d_PKCS8_PRIV_KEY_INFO
    linkageType: ''
    returnType: int
    signature: int i2d_PrivateKey(const EVP_PKEY *a, unsigned char **pp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:125,1
    - Dst: i2d_provided
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:132,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:134,1
    - Dst: i2d_RSAPublicKey
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:136,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:136,1
    - Dst: i2d_DSAPublicKey
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:139,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:139,1
    - Dst: i2o_ECPublicKey
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:143,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:143,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 123
    functionDepth: 13
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: i2d_PublicKey
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/i2d_evp.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_DSA
    - i2d_provided
    - i2o_ECPublicKey
    - evp_pkey_is_provided
    - ERR_raise
    - EVP_PKEY_get_base_id
    - i2d_DSAPublicKey
    - EVP_PKEY_get0_RSA
    - i2d_RSAPublicKey
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: int
    signature: int i2d_PublicKey(const EVP_PKEY *a, unsigned char **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: offset2ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offset2ptr(addr, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ossl_asn1_get_choice_selector
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: int
    signature: int ossl_asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM
      *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: ossl_asn1_get_choice_selector_const
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_get_choice_selector_const(const ASN1_VALUE **pval,\n
      \                                       const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pval
    - value
    - it
    argTypes:
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: ossl_asn1_set_choice_selector
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_set_choice_selector(ASN1_VALUE **pval, int value,\n
      \                                 const ASN1_ITEM *it)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:81,1
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:82,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:89,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:94,1
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:98,1
    - Dst: REF_PRINT_EX
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:100,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:101,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:103,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - pval
    - op
    - it
    argTypes:
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 110
    functionName: ossl_asn1_do_lock
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - ERR_raise
    - REF_PRINT_EX
    - CRYPTO_THREAD_lock_new
    - CRYPTO_UP_REF
    - offset2ptr
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: int
    signature: int ossl_asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: asn1_get_enc_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_ENCODING
    signature: ASN1_ENCODING *asn1_get_enc_ptr(ASN1_VALUE **pval, const ASN1_ITEM
      *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: asn1_get_const_enc_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_ENCODING
    signature: "ASN1_ENCODING *asn1_get_const_enc_ptr(const ASN1_VALUE **pval,\n                                                   const
      ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: ossl_asn1_enc_init
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: void
    signature: void ossl_asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:150,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: ossl_asn1_enc_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: void
    signature: void ossl_asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_enc_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:163,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:168,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:172,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pval
    - in
    - inlen
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: ossl_asn1_enc_save
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - asn1_get_enc_ptr
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in,
      int inlen,\n                       const ASN1_ITEM *it)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_const_enc_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:185,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - len
    - out
    - pval
    - it
    argTypes:
    - int*
    - unsigned char**
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: ossl_asn1_enc_restore
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - asn1_get_const_enc_ptr
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_enc_restore(int *len, unsigned char **out, const ASN1_VALUE
      **pval,\n                          const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: ossl_asn1_get_field_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE **ossl_asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE
      *tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: ossl_asn1_get_const_field_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - offset2ptr
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE **ossl_asn1_get_const_field_ptr(const ASN1_VALUE **pval,\n
      \                                                const ASN1_TEMPLATE *tt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ADB_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:236,1
    - Dst: offset2ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:239,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:253,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:255,1
    - Dst: ASN1_ADB*::adb_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:259,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c:284,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - val
    - tt
    - nullerr
    argTypes:
    - ASN1_VALUE*
    - ASN1_TEMPLATE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 286
    functionName: ossl_asn1_do_adb
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_utl.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ASN1_ADB_ptr
    - ASN1_ADB*::adb_cb
    - ASN1_INTEGER_get
    - ERR_raise
    - offset2ptr
    linkageType: ''
    returnType: ASN1_TEMPLATE
    signature: "ASN1_TEMPLATE *ossl_asn1_do_adb(const ASN1_VALUE *val,\n                                      const
      ASN1_TEMPLATE *tt,\n                                      int nullerr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:38,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:53,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:57,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:58,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:62,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:69,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:76,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:80,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:81,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:85,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:90,1
    - Dst: EVP_SignInit_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:91,1
    - Dst: EVP_SignUpdate
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:92,1
    - Dst: EVP_SignFinal
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:93,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:96,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:99,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:110,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:111,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:112,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 114
    functionName: ASN1_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - EVP_MD_CTX_free
    - EVP_SignUpdate
    - OPENSSL_malloc
    - OBJ_nid2obj
    - EVP_PKEY_get_size
    - EVP_MD_CTX_new
    - EVP_SignFinal
    - ERR_raise
    - i2d
    - EVP_SignInit_ex
    - OPENSSL_free
    - OPENSSL_clear_free
    - ASN1_TYPE_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - data
    - pkey
    - md
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: ASN1_item_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_item_sign_ex
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR
      *algor2,\n                   ASN1_BIT_STRING *signature, const void *data,\n
      \                  EVP_PKEY *pkey, const EVP_MD *md)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_ctx_new_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:133,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:136,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:140,1
    - Dst: ASN1_item_sign_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:143,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:146,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:146,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 10
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - data
    - id
    - pkey
    - md
    - libctx
    - propq
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - ASN1_OCTET_STRING*
    - EVP_PKEY*
    - EVP_MD*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 149
    functionName: ASN1_item_sign_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_sign.c
    functionUses: 6
    functionsReached:
    - EVP_MD_CTX_free
    - evp_md_ctx_new_ex
    - EVP_DigestSignInit
    - EVP_MD_CTX_get_pkey_ctx
    - ERR_raise
    - EVP_PKEY_CTX_free
    - ASN1_item_sign_ctx
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_sign_ex(const ASN1_ITEM *it, X509_ALGOR *algor1,\n                      X509_ALGOR
      *algor2, ASN1_BIT_STRING *signature,\n                      const void *data,
      const ASN1_OCTET_STRING *id,\n                      EVP_PKEY *pkey, const EVP_MD
      *md, OSSL_LIB_CTX *libctx,\n                      const char *propq)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:162,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:163,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:163,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:166,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:171,1
    - Dst: EVP_PKEY_CTX_IS_SIGNATURE_OP
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:178,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:183,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:185,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:187,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:191,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:199,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:208,1
    - Dst: EVP_PKEY*::ameth::item_sign
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:215,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:235,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:241,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:245,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:245,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:246,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:256,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:256,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:258,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:258,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:265,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:269,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:271,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:275,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:278,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:282,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:284,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:287,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:298,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_sign.c:299,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 111
    argCount: 6
    argNames:
    - it
    - algor1
    - algor2
    - signature
    - data
    - ctx
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 301
    functionName: ASN1_item_sign_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_sign.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY*::ameth::item_sign
    - EVP_MD_CTX_get_pkey_ctx
    - ASN1_item_i2d
    - OSSL_PARAM_construct_octet_string
    - EVP_MD_CTX_get0_md
    - X509_ALGOR_set0
    - EVP_PKEY_get_id
    - OPENSSL_clear_free
    - EVP_DigestSign
    - OBJ_nid2obj
    - EVP_MD_nid
    - ERR_raise
    - OPENSSL_free
    - EVP_PKEY_CTX_IS_SIGNATURE_OP
    - OBJ_find_sigid_by_algs
    - d2i_X509_ALGOR
    - EVP_PKEY_CTX_get0_pkey
    - OPENSSL_malloc
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_get_params
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1,\n
      \                      X509_ALGOR *algor2, ASN1_BIT_STRING *signature,\n                       const
      void *data, EVP_MD_CTX *ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PBEPARAM_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:37,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:43,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:51,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:53,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:57,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:58,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:61,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:64,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:64,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:65,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:69,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:72,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:76,1
    - Dst: PBEPARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:77,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:78,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 6
    argNames:
    - algor
    - alg
    - iter
    - salt
    - saltlen
    - ctx
    argTypes:
    - X509_ALGOR*
    - int
    - int
    - unsigned char*
    - int
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 80
    functionName: PKCS5_pbe_set0_algor_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - ASN1_STRING_free
    - ASN1_INTEGER_set
    - X509_ALGOR_set0
    - memcpy
    - OPENSSL_malloc
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - ERR_raise
    - PBEPARAM_new
    - OPENSSL_free
    - PBEPARAM_free
    - ASN1_item_pack
    - ASN1_STRING_set0
    linkageType: ''
    returnType: int
    signature: "int PKCS5_pbe_set0_algor_ex(X509_ALGOR *algor, int alg, int iter,\n
      \                           const unsigned char *salt, int saltlen,\n                            OSSL_LIB_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe_set0_algor_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - algor
    - alg
    - iter
    - salt
    - saltlen
    argTypes:
    - X509_ALGOR*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: PKCS5_pbe_set0_algor
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c
    functionUses: 0
    functionsReached:
    - PKCS5_pbe_set0_algor_ex
    linkageType: ''
    returnType: int
    signature: "int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter,\n                         const
      unsigned char *salt, int saltlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:97,1
    - Dst: PKCS5_pbe_set0_algor_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:101,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - alg
    - iter
    - salt
    - saltlen
    - ctx
    argTypes:
    - int
    - int
    - unsigned char*
    - int
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: PKCS5_pbe_set_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c
    functionUses: 2
    functionsReached:
    - PKCS5_pbe_set0_algor_ex
    - X509_ALGOR_free
    - ERR_raise
    - X509_ALGOR_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe_set_ex(int alg, int iter,\n                             const
      unsigned char *salt, int saltlen,\n                             OSSL_LIB_CTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe_set_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - alg
    - iter
    - salt
    - saltlen
    argTypes:
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: PKCS5_pbe_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbe.c
    functionUses: 0
    functionsReached:
    - PKCS5_pbe_set_ex
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe_set(int alg, int iter,\n                          const
      unsigned char *salt, int saltlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:29,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:35,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:42,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_OBJECT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 51
    functionName: i2d_ASN1_OBJECT
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - ASN1_put_object
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:73,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:78,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:87,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:99,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:100,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:106,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:107,1
    - Dst: BN_mul_word
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:111,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:119,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:123,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:131,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:135,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:137,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:139,1
    - Dst: BN_div_word
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:171,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:176,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:177,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 123
    argCount: 4
    argNames:
    - out
    - olen
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 179
    functionName: a2d_ASN1_OBJECT
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - BN_new
    - OPENSSL_malloc
    - BN_num_bits
    - BN_div_word
    - ERR_raise
    - BN_free
    - OPENSSL_free
    - BN_add_word
    - strlen
    - BN_set_word
    - ossl_isdigit
    - BN_mul_word
    linkageType: ''
    returnType: int
    signature: int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf,
      int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - buf_len
    - a
    argTypes:
    - char*
    - int
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: i2t_ASN1_OBJECT
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 3
    functionsReached:
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:192,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:196,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:200,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:203,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:206,1
    - Dst: BIO_dump
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:207,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:210,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: i2a_ASN1_OBJECT
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 14
    functionsReached:
    - OPENSSL_malloc
    - i2t_ASN1_OBJECT
    - ERR_raise
    - OPENSSL_free
    - BIO_write
    - BIO_dump
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:225,1
    - Dst: ossl_c2i_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 242
    functionName: d2i_ASN1_OBJECT
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - ASN1_get_object
    - ERR_raise
    - ossl_c2i_ASN1_OBJECT
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char
      **pp,\n                             long length)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:259,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:272,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:279,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:281,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:289,1
    - Dst: ASN1_OBJECT_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:296,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:309,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:310,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:317,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:320,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:321,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:337,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:339,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_OBJECT**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 341
    functionName: ossl_c2i_ASN1_OBJECT
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 1
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - OBJ_nid2obj
    - OBJ_obj2nid
    - ERR_raise
    - OPENSSL_free
    - ASN1_OBJECT_new
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "ASN1_OBJECT *ossl_c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned
      char **pp,\n                                  long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:347,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: ASN1_OBJECT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *ASN1_OBJECT_new(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:366,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:367,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:372,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 378
    functionName: ASN1_OBJECT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 31
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_OBJECT_free(ASN1_OBJECT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/asn1/a_object.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - nid
    - data
    - len
    - sn
    - ln
    argTypes:
    - int
    - unsigned char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: ASN1_OBJECT_create
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_object.c
    functionUses: 0
    functionsReached:
    - OBJ_dup
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: "ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int
      len,\n                                const char *sn, const char *ln)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_type2name
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:39,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:44,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:49,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:57,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:58,1
    - Dst: evp_keymgmt_util_has
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:61,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:73,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 6
    argNames:
    - keytype
    - a
    - pp
    - length
    - libctx
    - propq
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 13
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: d2i_PrivateKey_decoder
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 0
    functionsReached:
    - evp_keymgmt_util_has
    - OSSL_DECODER_CTX_new_for_pkey
    - OSSL_DECODER_from_data
    - EVP_PKEY_free
    - evp_pkey_type2name
    - OSSL_DECODER_CTX_free
    - OSSL_NELEM
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *\nd2i_PrivateKey_decoder(int keytype, EVP_PKEY **a, const
      unsigned char **pp,\n                       long length, OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:86,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:92,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:98,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:102,1
    - Dst: EVP_PKEY*::ameth::old_priv_decode
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:104,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:109,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:111,1
    - Dst: evp_pkcs82pkey_legacy
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:114,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:115,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:117,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:120,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:122,1
    - Dst: EVP_PKEY_type
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:123,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:123,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:126,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:127,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:131,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:139,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 6
    argNames:
    - keytype
    - a
    - pp
    - length
    - libctx
    - propq
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 141
    functionName: ossl_d2i_PrivateKey_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 1
    functionsReached:
    - evp_pkcs82pkey_legacy
    - EVP_PKEY_type
    - ENGINE_finish
    - EVP_PKEY*::ameth::old_priv_decode
    - EVP_PKEY_set_type
    - ERR_set_mark
    - ERR_raise
    - d2i_PKCS8_PRIV_KEY_INFO
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_get_base_id
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *\nossl_d2i_PrivateKey_legacy(int keytype, EVP_PKEY **a,
      const unsigned char **pp,\n                           long length, OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey_decoder
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:149,1
    - Dst: ossl_d2i_PrivateKey_legacy
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - keytype
    - a
    - pp
    - length
    - libctx
    - propq
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 14
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: d2i_PrivateKey_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 1
    functionsReached:
    - d2i_PrivateKey_decoder
    - ossl_d2i_PrivateKey_legacy
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PrivateKey_ex(int keytype, EVP_PKEY **a, const unsigned
      char **pp,\n                            long length, OSSL_LIB_CTX *libctx,\n
      \                           const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 15
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: d2i_PrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 0
    functionsReached:
    - d2i_PrivateKey_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char
      **pp,\n                         long length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:168,1
    - Dst: d2i_ASN1_SEQUENCE_ANY
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:178,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:184,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:186,1
    - Dst: sk_ASN1_TYPE_num
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:188,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:190,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:195,1
    - Dst: evp_pkcs82pkey_legacy
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:198,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:199,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:210,1
    - Dst: ossl_d2i_PrivateKey_legacy
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - a
    - pp
    - length
    - libctx
    - propq
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 212
    functionName: d2i_AutoPrivateKey_legacy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 0
    functionsReached:
    - evp_pkcs82pkey_legacy
    - sk_ASN1_TYPE_num
    - d2i_PKCS8_PRIV_KEY_INFO
    - ERR_raise
    - PKCS8_PRIV_KEY_INFO_free
    - STACK_OF
    - ossl_d2i_PrivateKey_legacy
    - sk_ASN1_TYPE_pop_free
    - d2i_ASN1_SEQUENCE_ANY
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_AutoPrivateKey_legacy(EVP_PKEY **a,\n                                           const
      unsigned char **pp,\n                                           long length,\n
      \                                          OSSL_LIB_CTX *libctx,\n                                           const
      char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_PrivateKey_decoder
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:224,1
    - Dst: d2i_AutoPrivateKey_legacy
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - a
    - pp
    - length
    - libctx
    - propq
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 14
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: d2i_AutoPrivateKey_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 1
    functionsReached:
    - d2i_PrivateKey_decoder
    - d2i_AutoPrivateKey_legacy
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_AutoPrivateKey_ex(EVP_PKEY **a, const unsigned char
      **pp,\n                                long length, OSSL_LIB_CTX *libctx,\n
      \                               const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 15
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: d2i_AutoPrivateKey
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pr.c
    functionUses: 0
    functionsReached:
    - d2i_AutoPrivateKey_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,\n
      \                            long length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: is_utc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_utc(const int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: leap_year
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int leap_year(const int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: leap_year
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 74
    functionName: determine_days
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - leap_year
    linkageType: ''
    returnType: void
    signature: void determine_days(struct tm *tm)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:118,1
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:133,1
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:140,1
    - Dst: leap_year
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:169,1
    - Dst: determine_days
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:176,1
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:201,1
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:232,1
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:236,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:251,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 146
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 265
    functionName: ossl_asn1_time_to_tm
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - determine_days
    - ossl_ascii_isdigit
    - OPENSSL_gmtime_adj
    - leap_year
    - memset
    linkageType: ''
    returnType: int
    signature: int ossl_asn1_time_to_tm(struct tm *tm, const ASN1_TIME *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_utc
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:274,1
    - Dst: is_utc
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:279,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:286,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:292,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:299,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:304,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:310,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - s
    - ts
    - type
    argTypes:
    - ASN1_TIME*
    - struct tm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 317
    functionName: ossl_asn1_time_from_tm
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - BIO_snprintf
    - is_utc
    - ebcdic2ascii
    - ASN1_STRING_new
    - ASN1_STRING_set
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *ossl_asn1_time_from_tm(ASN1_TIME *s, struct tm *ts, int
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_TIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: ASN1_TIME_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_adj
    linkageType: ''
    returnType: ASN1_TIME
    signature: ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:330,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:332,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:336,1
    - Dst: ossl_asn1_time_from_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_TIME*
    - time_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: ASN1_TIME_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - ossl_asn1_time_from_tm
    - OPENSSL_gmtime_adj
    - ERR_raise
    linkageType: ''
    returnType: ASN1_TIME
    signature: "ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,\n                         int
      offset_day, long offset_sec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:345,1
    - Dst: ASN1_UTCTIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: ASN1_TIME_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_check
    - ASN1_UTCTIME_check
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_check(const ASN1_TIME *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:358,1
    - Dst: ossl_asn1_time_from_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - t
    - out
    argTypes:
    - ASN1_TIME*
    - ASN1_GENERALIZEDTIME**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 370
    functionName: ASN1_TIME_to_generalizedtime
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_to_tm
    - ossl_asn1_time_from_tm
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME
      *t,\n                                                   ASN1_GENERALIZEDTIME
      **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_set_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:375,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_TIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: ASN1_TIME_set_string
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_UTCTIME_set_string
    - ASN1_GENERALIZEDTIME_set_string
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_set_string(ASN1_TIME *s, const char *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:386,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:392,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:394,1
    - Dst: ossl_asn1_time_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:413,1
    - Dst: is_utc
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:415,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:422,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:424,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:427,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:436,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_TIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 439
    functionName: ASN1_TIME_set_string_X509
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ossl_asn1_time_to_tm
    - ASN1_TIME_check
    - is_utc
    - ASN1_STRING_copy
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:446,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:447,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:448,1
    - Dst: ossl_asn1_time_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - tm
    argTypes:
    - ASN1_TIME*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: ASN1_TIME_to_tm
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - memset
    - ossl_asn1_time_to_tm
    - time
    - OPENSSL_gmtime
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:461,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:463,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - pday
    - psec
    - from
    - to
    argTypes:
    - int*
    - int*
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 466
    functionName: ASN1_TIME_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime_diff
    - ASN1_TIME_to_tm
    linkageType: ''
    returnType: int
    signature: "int ASN1_TIME_diff(int *pday, int *psec,\n                   const
      ASN1_TIME *from, const ASN1_TIME *to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_print_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: ASN1_TIME_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_print_ex
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_time_print_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bp
    - tm
    - flags
    argTypes:
    - BIO*
    - ASN1_TIME*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: ASN1_TIME_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 1
    functionsReached:
    - ossl_asn1_time_print_ex
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long
      flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_time_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:496,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:497,1
    - Dst: ossl_ascii_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:515,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:520,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:527,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:534,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:541,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - bp
    - tm
    - flags
    argTypes:
    - BIO*
    - ASN1_TIME*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 547
    functionName: ossl_asn1_time_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - BIO_write
    - ossl_asn1_time_to_tm
    - BIO_printf
    - ossl_ascii_isdigit
    linkageType: ''
    returnType: int
    signature: int ossl_asn1_time_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned
      long flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:554,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:557,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_TIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 568
    functionName: ASN1_TIME_cmp_time_t
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime_diff
    - ASN1_TIME_to_tm
    - OPENSSL_gmtime
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:574,1
    - Dst: ossl_asn1_time_from_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 4
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: ASN1_TIME_normalize
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_to_tm
    - ossl_asn1_time_from_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_normalize(ASN1_TIME *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/crypto/asn1/a_time.c:584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 5
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: ASN1_TIME_compare
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_time.c
    functionUses: 2
    functionsReached:
    - ASN1_TIME_diff
    linkageType: ''
    returnType: int
    signature: int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:27,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:31,1
    - Dst: ASN1_d2i_bio
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: ASN1_d2i_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - BIO_free
    - ASN1_d2i_bio
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    linkageType: ''
    returnType: void
    signature: void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in,
      void **x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:45,1
    - Dst: d2i
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:50,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: ASN1_d2i_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_free
    - asn1_d2i_read_bio
    - d2i
    linkageType: ''
    returnType: void
    signature: void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in,
      void **x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_d2i_read_bio
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:68,1
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:73,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - it
    - in
    - x
    - libctx
    - propq
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: ASN1_item_d2i_bio_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 3
    functionsReached:
    - BUF_MEM_free
    - asn1_d2i_read_bio
    - ASN1_item_d2i_ex
    linkageType: ''
    returnType: void
    signature: "void *ASN1_item_d2i_bio_ex(const ASN1_ITEM *it, BIO *in, void *x,\n
      \                          OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - it
    - in
    - x
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ASN1_item_d2i_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 7
    functionsReached:
    - ASN1_item_d2i_bio_ex
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:91,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:92,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:95,1
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:96,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - it
    - in
    - x
    - libctx
    - propq
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: ASN1_item_d2i_fp_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - ASN1_item_d2i_bio_ex
    - BIO_set_fp
    linkageType: ''
    returnType: void
    signature: "void *ASN1_item_d2i_fp_ex(const ASN1_ITEM *it, FILE *in, void *x,\n
      \                         OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_fp_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - it
    - in
    - x
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 7
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: ASN1_item_d2i_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 6
    functionsReached:
    - ASN1_item_d2i_fp_ex
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:126,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:130,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:136,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:137,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:140,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:142,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:147,1
    - Dst: ASN1_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:163,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:167,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:167,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:170,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:199,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:212,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:219,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:234,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:246,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:253,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c:254,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 117
    argCount: 2
    argNames:
    - in
    - pb
    argTypes:
    - BIO*
    - BUF_MEM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 256
    functionName: asn1_d2i_read_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_d2i_fp.c
    functionUses: 5
    functionsReached:
    - BUF_MEM_grow_clean
    - BIO_read
    - ERR_GET_REASON
    - BUF_MEM_new
    - ERR_set_mark
    - ERR_raise
    - ERR_peek_last_error
    - ASN1_get_object
    - ERR_pop_to_mark
    - BUF_MEM_free
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ASN1_STRING_set_default_mask
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_set_default_mask(unsigned long mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ASN1_STRING_get_default_mask
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_STRING_get_default_mask(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:53,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:56,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:59,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:61,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:63,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:65,1
    - Dst: ASN1_STRING_set_default_mask
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: ASN1_STRING_set_default_mask_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_set_default_mask
    - strncmp
    - strcmp
    - strtoul
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_set_default_mask_asc(const char *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:90,1
    - Dst: ASN1_mbstring_ncopy
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:95,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - out
    - in
    - inlen
    - inform
    - nid
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 104
    functionName: ASN1_STRING_set_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 2
    functionsReached:
    - ASN1_mbstring_ncopy
    - ASN1_mbstring_copy
    - ASN1_STRING_TABLE_get
    linkageType: ''
    returnType: ASN1_STRING
    signature: "ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,\n                                    const
      unsigned char *in, int inlen,\n                                    int inform,
      int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING_TABLE**
    - ASN1_STRING_TABLE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: sk_table_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sk_table_cmp(const ASN1_STRING_TABLE *const *a,\n                        const
      ASN1_STRING_TABLE *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING_TABLE*
    - ASN1_STRING_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: table_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int table_cmp(const ASN1_STRING_TABLE *a, const ASN1_STRING_TABLE *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:134,1
    - Dst: sk_ASN1_STRING_TABLE_find
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:139,1
    - Dst: sk_ASN1_STRING_TABLE_value
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:141,1
    - Dst: OBJ_bsearch_table
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:143,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: ASN1_STRING_TABLE_get
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_STRING_TABLE_value
    - OPENSSL_init_crypto
    - sk_ASN1_STRING_TABLE_find
    - OBJ_bsearch_table
    - OSSL_NELEM
    linkageType: ''
    returnType: ASN1_STRING_TABLE
    signature: ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_STRING_TABLE_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:157,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:161,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:164,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:165,1
    - Dst: sk_ASN1_STRING_TABLE_push
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:168,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: stable_get
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_STRING_TABLE_push
    - OPENSSL_zalloc
    - ERR_raise
    - OPENSSL_free
    - ASN1_STRING_TABLE_get
    - sk_ASN1_STRING_TABLE_new
    linkageType: ''
    returnType: ASN1_STRING_TABLE
    signature: ASN1_STRING_TABLE *stable_get(int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stable_get
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - nid
    - minsize
    - maxsize
    - mask
    - flags
    argTypes:
    - int
    - long
    - long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 207
    functionName: ASN1_STRING_TABLE_add
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - stable_get
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ASN1_STRING_TABLE_add(int nid,\n                          long
      minsize, long maxsize, unsigned long mask,\n                          unsigned
      long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:211,1
    - Dst: sk_ASN1_STRING_TABLE_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: ASN1_STRING_TABLE_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_STRING_TABLE_pop_free
    - STACK_OF
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_TABLE_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_strnid.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - tbl
    argTypes:
    - ASN1_STRING_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: st_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strnid.c
    functionUses: 187
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void st_free(ASN1_STRING_TABLE *tbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: ASN1_tag2bit
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_tag2bit(int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: asn1_tlc_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asn1_tlc_clear(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: asn1_tlc_clear_nc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asn1_tlc_clear_nc(c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:115,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:118,1
    - Dst: ASN1_item_ex_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 10
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: asn1_item_ex_d2i_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 0
    functionsReached:
    - asn1_item_embed_d2i
    - ERR_raise
    - ASN1_item_ex_free
    linkageType: ''
    returnType: int
    signature: "int asn1_item_ex_d2i_intern(ASN1_VALUE **pval, const unsigned char
      **in,\n                                   long len, const ASN1_ITEM *it, int
      tag,\n                                   int aclass, char opt, ASN1_TLC *ctx,\n
      \                                  OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_ex_d2i_intern
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: ASN1_item_ex_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 2
    functionsReached:
    - asn1_item_ex_d2i_intern
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_tlc_clear_nc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:143,1
    - Dst: asn1_item_ex_d2i_intern
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - pval
    - in
    - len
    - it
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: ASN1_item_d2i_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 3
    functionsReached:
    - asn1_tlc_clear_nc
    - asn1_item_ex_d2i_intern
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *ASN1_item_d2i_ex(ASN1_VALUE **pval,\n                             const
      unsigned char **in, long len,\n                             const ASN1_ITEM
      *it, OSSL_LIB_CTX *libctx,\n                             const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pval
    - in
    - len
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: ASN1_item_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 4
    functionsReached:
    - ASN1_item_d2i_ex
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **pval,\n                          const
      unsigned char **in, long len,\n                          const ASN1_ITEM *it)"
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:186,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:196,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:210,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:214,1
    - Dst: asn1_d2i_ex_primitive
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:226,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:244,1
    - Dst: ASN1_tag2bit
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:253,1
    - Dst: asn1_d2i_ex_primitive
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:256,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_d2i_ex
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:262,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:272,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:276,1
    - Dst: ossl_asn1_get_choice_selector
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:280,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:283,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:284,1
    - Dst: ossl_asn1_set_choice_selector
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:285,1
    - Dst: ossl_asn1_item_ex_new_intern
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:287,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:288,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:294,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:298,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:310,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:312,1
    - Dst: ASN1_item_ex_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:321,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:324,1
    - Dst: ossl_asn1_set_choice_selector
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:328,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:330,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:346,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:349,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:361,1
    - Dst: ossl_asn1_item_ex_new_intern
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:366,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:367,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:371,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:379,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:382,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:383,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:391,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:394,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:399,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:401,1
    - Dst: asn1_template_ex_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:422,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:431,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:439,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:440,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:445,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:456,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:461,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:462,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:465,1
    - Dst: ossl_asn1_enc_save
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:470,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:472,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:481,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:484,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:487,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 236
    argCount: 11
    argNames:
    - pval
    - in
    - len
    - it
    - tag
    - aclass
    - opt
    - ctx
    - depth
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_ITEM*
    - int
    - int
    - char
    - ASN1_TLC*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 489
    functionName: asn1_item_embed_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - ossl_asn1_get_choice_selector
    - ossl_asn1_set_choice_selector
    - ossl_asn1_do_adb
    - asn1_template_ex_d2i
    - asn1_check_eoc
    - ossl_asn1_enc_save
    - asn1_check_tlen
    - asn1_cb
    - asn1_d2i_ex_primitive
    - ASN1_tag2bit
    - ERR_raise
    - ASN1_item_ex_free
    - ERR_add_error_data
    - ASN1_EXTERN_FUNCS*::asn1_ex_d2i
    - ossl_asn1_template_free
    - ossl_asn1_item_ex_new_intern
    - ossl_asn1_get_field_ptr
    - ASN1_EXTERN_FUNCS*::asn1_ex_d2i_ex
    linkageType: ''
    returnType: int
    signature: "int 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,\n                               int
      depth, OSSL_LIB_CTX *libctx,\n                               const char *propq)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:521,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:525,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:530,1
    - Dst: asn1_template_noexp_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:534,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:537,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:544,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:545,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:553,1
    - Dst: asn1_template_noexp_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:558,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 9
    argNames:
    - val
    - in
    - inlen
    - tt
    - opt
    - ctx
    - depth
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_TEMPLATE*
    - char
    - ASN1_TLC*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 566
    functionName: asn1_template_ex_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_check_tlen
    - asn1_template_noexp_d2i
    - asn1_check_eoc
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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, int depth,\n
      \                               OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:610,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:613,1
    - Dst: sk_ASN1_VALUE_new_null
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:618,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:623,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:623,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:625,1
    - Dst: sk_ASN1_VALUE_pop
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:626,1
    - Dst: ASN1_item_ex_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:627,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:627,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:632,1
    - Dst: asn1_check_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:641,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:643,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:651,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:652,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:654,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:656,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:656,1
    - Dst: sk_ASN1_VALUE_push
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:660,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:660,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:661,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:662,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:662,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:667,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:672,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:673,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:676,1
    - Dst: asn1_item_embed_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:682,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:682,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:685,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 9
    argNames:
    - val
    - in
    - len
    - tt
    - opt
    - ctx
    - depth
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - long
    - ASN1_TEMPLATE*
    - char
    - ASN1_TLC*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 696
    functionName: asn1_template_noexp_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_d2i
    - sk_ASN1_VALUE_push
    - asn1_check_eoc
    - ASN1_ITEM_ptr
    - sk_ASN1_VALUE_num
    - asn1_check_tlen
    - ERR_raise
    - ASN1_item_ex_free
    - sk_ASN1_VALUE_pop
    - STACK_OF
    - sk_ASN1_VALUE_new_null
    - ASN1_item_free
    linkageType: ''
    returnType: int
    signature: "int 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, int depth,\n
      \                                  OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:712,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:726,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:730,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:734,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:737,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:749,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:752,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:765,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:769,1
    - Dst: asn1_find_end
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:776,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:787,1
    - Dst: asn1_collect
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:799,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:804,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:805,1
    - Dst: asn1_ex_c2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:818,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:825,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 827
    functionName: asn1_d2i_ex_primitive
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_tlc_clear
    - BUF_MEM_grow_clean
    - asn1_find_end
    - asn1_collect
    - asn1_check_tlen
    - asn1_ex_c2i
    - ERR_raise
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: "int 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: 44
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_c2i
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:843,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:847,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:855,1
    - Dst: ossl_c2i_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:861,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:867,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:875,1
    - Dst: ossl_c2i_ASN1_BIT_STRING
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:885,1
    - Dst: ossl_c2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:892,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:917,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:921,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:926,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:928,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:938,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:943,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:944,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:945,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:959,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 964
    functionName: asn1_ex_c2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_STRING_free
    - ASN1_STRING_type_new
    - ASN1_PRIMITIVE_FUNCS*::prim_c2i
    - ERR_raise
    - ASN1_TYPE_set
    - ossl_c2i_ASN1_BIT_STRING
    - ossl_c2i_ASN1_INTEGER
    - OPENSSL_free
    - ASN1_TYPE_free
    - ASN1_STRING_set
    - ossl_c2i_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int
      len,\n                       int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:991,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1000,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1002,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1007,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1017,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - in
    - len
    - inf
    argTypes:
    - unsigned char**
    - long
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1022
    functionName: asn1_find_end
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - asn1_check_tlen
    - asn1_check_eoc
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int asn1_find_end(const unsigned char **in, long len, char inf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asn1_check_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1059,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1064,1
    - Dst: asn1_check_tlen
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1071,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1073,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1080,1
    - Dst: asn1_collect
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1083,1
    - Dst: collect_data
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1085,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1090,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1095
    functionName: asn1_collect
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 2
    functionsReached:
    - asn1_check_eoc
    - collect_data
    - asn1_collect
    - asn1_check_tlen
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int asn1_collect(BUF_MEM *buf, const unsigned char **in, long len,\n
      \                       char inf, int tag, int aclass, int depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1103,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - p
    - plen
    argTypes:
    - BUF_MEM*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1097
    functionDepth: 3
    functionLinenumber: 1097
    functionLinenumberEnd: 1110
    functionName: collect_data
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_grow_clean
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: int collect_data(BUF_MEM *buf, const unsigned char **p, long plen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - in
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1126
    functionName: asn1_check_eoc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int asn1_check_eoc(const unsigned char **in, long len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1148,1
    - Dst: ASN1_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1188,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1195,1
    - Dst: asn1_tlc_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c:1220,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1222
    functionName: asn1_check_tlen
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_dec.c
    functionUses: 6
    functionsReached:
    - asn1_tlc_clear
    - ASN1_get_object
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_item_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - it
    argTypes:
    - ASN1_VALUE*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASN1_item_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c
    functionUses: 5
    functionsReached:
    - ossl_asn1_item_embed_free
    linkageType: ''
    returnType: void
    signature: void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_item_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: ASN1_item_ex_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c
    functionUses: 3
    functionsReached:
    - ossl_asn1_item_embed_free
    linkageType: ''
    returnType: void
    signature: void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:49,1
    - Dst: ossl_asn1_primitive_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:51,1
    - Dst: ossl_asn1_primitive_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:55,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:60,1
    - Dst: ossl_asn1_get_choice_selector
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:64,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:69,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:70,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:75,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:83,1
    - Dst: ossl_asn1_do_lock
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:88,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:90,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:95,1
    - Dst: ossl_asn1_enc_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:99,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:110,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:113,1
    - Dst: ossl_asn1_template_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:114,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:119,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 124
    functionName: ossl_asn1_item_embed_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - ossl_asn1_get_choice_selector
    - ossl_asn1_do_adb
    - OPENSSL_assert
    - asn1_cb
    - OPENSSL_free
    - ossl_asn1_template_free
    - ossl_asn1_primitive_free
    - ASN1_EXTERN_FUNCS*::asn1_ex_free
    - ossl_asn1_get_field_ptr
    - ossl_asn1_do_lock
    - ossl_asn1_enc_free
    linkageType: ''
    returnType: void
    signature: void ossl_asn1_item_embed_free(ASN1_VALUE **pval, const ASN1_ITEM *it,
      int embed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:135,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:135,1
    - Dst: sk_ASN1_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:138,1
    - Dst: sk_ASN1_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:139,1
    - Dst: ossl_asn1_item_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:141,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:141,1
    - Dst: sk_ASN1_VALUE_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:143,1
    - Dst: ossl_asn1_item_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:146,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 148
    functionName: ossl_asn1_template_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - ossl_asn1_item_embed_free
    - sk_ASN1_VALUE_value
    - ASN1_ITEM_ptr
    - sk_ASN1_VALUE_num
    - STACK_OF
    - sk_ASN1_VALUE_free
    linkageType: ''
    returnType: void
    signature: void ossl_asn1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE
      *tt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:160,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:164,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:189,1
    - Dst: ossl_asn1_primitive_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:204,1
    - Dst: ossl_asn1_string_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c:208,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 212
    functionName: ossl_asn1_primitive_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_fre.c
    functionUses: 2
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_free
    - ossl_asn1_string_embed_free
    - OPENSSL_free
    - ossl_asn1_primitive_free
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void ossl_asn1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it,
      int embed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:20,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:22,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:23,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: ASN1_TYPE_set_octetstring
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - ASN1_OCTET_STRING_free
    - ASN1_TYPE_set
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:40,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:43,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:44,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - a
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: ASN1_TYPE_get_octetstring
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 2
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data,
      int max_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - oct
    - data
    - len
    argTypes:
    - ASN1_OCTET_STRING*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: asn1_type_init_oct
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline asn1_type_init_oct(ASN1_OCTET_STRING *oct,\n                                           unsigned
      char *data, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:66,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:77,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - oct
    - anum
    - num
    - data
    - max_len
    argTypes:
    - ASN1_OCTET_STRING*
    - int32_t
    - long*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: asn1_type_get_int_oct
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int asn1_type_get_int_oct(ASN1_OCTET_STRING *oct, int32_t anum,\n
      \                                long *num, unsigned char *data, int max_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_type_init_oct
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:102,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:104,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - a
    - num
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - long
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: ASN1_TYPE_set_int_octetstring
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    - asn1_type_init_oct
    linkageType: ''
    returnType: int
    signature: "int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned
      char *data,\n                                  int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:119,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:119,1
    - Dst: asn1_type_get_int_oct
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:128,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - a
    - num
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - long*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: ASN1_TYPE_get_int_octetstring
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ERR_raise
    - M_ASN1_free_of
    - ASN1_TYPE_unpack_sequence
    - asn1_type_get_int_oct
    linkageType: ''
    returnType: int
    signature: "int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num,\n
      \                                 unsigned char *data, int max_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_type_init_oct
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:158,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:160,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - a
    - num
    - data
    - len
    argTypes:
    - ASN1_TYPE*
    - long
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: ossl_asn1_type_set_octetstring_int
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    - asn1_type_init_oct
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_type_set_octetstring_int(ASN1_TYPE *a, long num,\n                                       unsigned
      char *data, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:174,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:174,1
    - Dst: asn1_type_get_int_oct
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:183,1
    - Dst: M_ASN1_free_of
      Src: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - a
    - num
    - data
    - max_len
    argTypes:
    - ASN1_TYPE*
    - long*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 187
    functionName: ossl_asn1_type_get_octetstring_int
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/evp_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ERR_raise
    - M_ASN1_free_of
    - ASN1_TYPE_unpack_sequence
    - asn1_type_get_int_oct
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_type_get_octetstring_int(const ASN1_TYPE *a, long *num,\n
      \                                      unsigned char *data, int max_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:26,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:32,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:38,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - bp
    - a
    - type
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 46
    functionName: i2a_ASN1_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/f_string.c
    functionUses: 3
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:55,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:94,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:95,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:103,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:111,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:113,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:114,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:132,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_string.c:133,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_STRING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 135
    functionName: a2i_ASN1_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/f_string.c
    functionUses: 0
    functionsReached:
    - ossl_isxdigit
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_realloc
    - OPENSSL_hexchar2int
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:20,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: X509_INFO_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_info.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: X509_INFO
    signature: X509_INFO *X509_INFO_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:34,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:35,1
    - Dst: X509_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:37,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_info.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: X509_INFO_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_info.c
    functionUses: 0
    functionsReached:
    - X509_PKEY_free
    - OPENSSL_free
    - X509_free
    - X509_CRL_free
    linkageType: ''
    returnType: void
    signature: void X509_INFO_free(X509_INFO *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: ASN1_TYPE_get
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_type.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_get(const ASN1_TYPE *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_primitive_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - ASN1_TYPE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: ASN1_TYPE_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_type.c
    functionUses: 6
    functionsReached:
    - ossl_asn1_primitive_free
    linkageType: ''
    returnType: void
    signature: void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:45,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:48,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:51,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:54,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - a
    - type
    - value
    argTypes:
    - ASN1_TYPE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: ASN1_TYPE_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_type.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - ASN1_TYPE_set
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:72,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_TYPE*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 107
    functionName: ASN1_TYPE_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_type.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:114,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:121,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:123,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - it
    - s
    - t
    argTypes:
    - ASN1_ITEM*
    - void*
    - ASN1_TYPE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: ASN1_TYPE_pack_sequence
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_type.c
    functionUses: 2
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - ASN1_OCTET_STRING_free
    - ASN1_item_pack
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE
      **t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_unpack
      Src: /src/openssl-3.0.15/crypto/asn1/a_type.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - it
    - t
    argTypes:
    - ASN1_ITEM*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: ASN1_TYPE_unpack_sequence
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_type.c
    functionUses: 9
    functionsReached:
    - ASN1_item_unpack
    linkageType: ''
    returnType: void
    signature: void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE
      *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ASN1_item_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 2
    functionsReached:
    - ASN1_item_ex_new
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - it
    - libctx
    - propq
    argTypes:
    - ASN1_ITEM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: ASN1_item_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 3
    functionsReached:
    - asn1_item_embed_new
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *ASN1_item_new_ex(const ASN1_ITEM *it, OSSL_LIB_CTX *libctx,\n
      \                            const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pval
    - it
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: ossl_asn1_item_ex_new_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_new
    linkageType: ''
    returnType: int
    signature: "int ossl_asn1_item_ex_new_intern(ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                                 OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_embed_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: ASN1_item_ex_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_new
    linkageType: ''
    returnType: int
    signature: int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_new_ex
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:80,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:83,1
    - Dst: asn1_template_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:91,1
    - Dst: asn1_primitive_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:93,1
    - Dst: asn1_primitive_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:98,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:104,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:112,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:114,1
    - Dst: ossl_asn1_set_choice_selector
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:118,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:119,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:126,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:134,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:136,1
    - Dst: ossl_asn1_do_lock
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:143,1
    - Dst: ossl_asn1_enc_init
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:148,1
    - Dst: ossl_asn1_get_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:150,1
    - Dst: asn1_template_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:151,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:154,1
    - Dst: ossl_asn1_item_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:161,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:163,1
    - Dst: ossl_asn1_item_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:169,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 112
    argCount: 5
    argNames:
    - pval
    - it
    - embed
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 172
    functionName: asn1_item_embed_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 3
    functionsReached:
    - ossl_asn1_set_choice_selector
    - ossl_asn1_item_embed_free
    - asn1_cb
    - asn1_primitive_new
    - ASN1_EXTERN_FUNCS*::asn1_ex_new_ex
    - OPENSSL_zalloc
    - ASN1_EXTERN_FUNCS*::asn1_ex_new
    - OPENSSL_free
    - ossl_asn1_enc_init
    - ERR_raise
    - ossl_asn1_get_field_ptr
    - ossl_asn1_do_lock
    - memset
    - asn1_template_new
    linkageType: ''
    returnType: int
    signature: "int asn1_item_embed_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int
      embed,\n                        OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:183,1
    - Dst: asn1_template_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:190,1
    - Dst: asn1_primitive_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:192,1
    - Dst: asn1_primitive_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 205
    functionName: asn1_item_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 0
    functionsReached:
    - ASN1_EXTERN_FUNCS*::asn1_ex_clear
    - asn1_primitive_clear
    - asn1_template_clear
    linkageType: ''
    returnType: void
    signature: void asn1_item_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:210,1
    - Dst: asn1_template_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:219,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:230,1
    - Dst: sk_ASN1_VALUE_new_null
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:231,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:233,1
    - Dst: asn1_item_embed_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - pval
    - tt
    - libctx
    - propq
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 245
    functionName: asn1_template_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - asn1_item_embed_new
    - asn1_template_clear
    - ASN1_ITEM_ptr
    - ERR_raise
    - STACK_OF
    - sk_ASN1_VALUE_new_null
    linkageType: ''
    returnType: int
    signature: "int asn1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,\n
      \                            OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:253,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pval
    - tt
    argTypes:
    - ASN1_VALUE**
    - ASN1_TEMPLATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: asn1_template_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 2
    functionsReached:
    - ASN1_ITEM_ptr
    - asn1_item_clear
    linkageType: ''
    returnType: void
    signature: void asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:275,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:279,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:289,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:301,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:302,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:313,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:317,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - pval
    - it
    - embed
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 327
    functionName: asn1_primitive_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_new
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ASN1_STRING_type_new
    - ERR_raise
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    - memset
    linkageType: ''
    returnType: int
    signature: "int asn1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it,\n                              int
      embed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_clear
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_new.c:335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 348
    functionName: asn1_primitive_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_new.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_clear
    linkageType: ''
    returnType: void
    signature: void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:38,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:43,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:49,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - alg
    - aobj
    - ptype
    - pval
    argTypes:
    - X509_ALGOR*
    - ASN1_OBJECT*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: X509_ALGOR_set0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 14
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_set
    - ASN1_OBJECT_free
    - ASN1_TYPE_free
    linkageType: ''
    returnType: int
    signature: int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype,
      void *pval)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - paobj
    - pptype
    - ppval
    - algor
    argTypes:
    - ASN1_OBJECT**
    - int*
    - void**
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: X509_ALGOR_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype,\n                     const
      void **ppval, const X509_ALGOR *algor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:83,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:83,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - alg
    - md
    argTypes:
    - X509_ALGOR*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: X509_ALGOR_set_md
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 3
    functionsReached:
    - OBJ_nid2obj
    - X509_ALGOR_set0
    - EVP_MD_get_type
    linkageType: ''
    returnType: void
    signature: void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:90,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: X509_ALGOR_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 3
    functionsReached:
    - OBJ_cmp
    - ASN1_TYPE_cmp
    linkageType: ''
    returnType: int
    signature: int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:104,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:108,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:112,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:116,1
    - Dst: ASN1_TYPE_set1
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - X509_ALGOR*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 5
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: X509_ALGOR_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TYPE_set1
    - ASN1_TYPE_free
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:135,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:137,1
    - Dst: X509_ALGOR_set_md
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - palg
    - md
    argTypes:
    - X509_ALGOR**
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 10
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: ossl_x509_algor_new_from_md
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - X509_ALGOR_new
    - X509_ALGOR_set_md
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: int ossl_x509_algor_new_from_md(X509_ALGOR **palg, const EVP_MD *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:150,1
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:151,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: ossl_x509_algor_get_md
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - EVP_get_digestbyobj
    - EVP_sha1
    - ERR_raise
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ossl_x509_algor_get_md(X509_ALGOR *alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:159,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:161,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: ossl_x509_algor_mgf1_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_TYPE_unpack_sequence
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *ossl_x509_algor_mgf1_decode(X509_ALGOR *alg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:172,1
    - Dst: ossl_x509_algor_new_from_md
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:175,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:177,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:177,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:179,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:182,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:182,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:183,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:189,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_algor.c:190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - palg
    - mgf1md
    argTypes:
    - X509_ALGOR**
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 11
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: ossl_x509_algor_md_to_mgf1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_algor.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_free
    - X509_ALGOR_set0
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - EVP_MD_is_a
    - X509_ALGOR_free
    - ossl_x509_algor_new_from_md
    - ASN1_item_pack
    - X509_ALGOR_new
    linkageType: ''
    returnType: int
    signature: int ossl_x509_algor_md_to_mgf1(X509_ALGOR **palg, const EVP_MD *mgf1md)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:26,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:32,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:36,1
    - Dst: d2i
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - i2d
    - d2i
    - x
    argTypes:
    - i2d_of_void*
    - d2i_of_void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 41
    functionName: ASN1_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_dup.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - i2d
    - OPENSSL_free
    - d2i
    linkageType: ''
    returnType: void
    signature: void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, const void *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:73,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:74,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:75,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:81,1
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:85,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:86,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:89,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/a_dup.c:95,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: ASN1_item_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_dup.c
    functionUses: 1
    functionsReached:
    - asn1_cb
    - ASN1_item_d2i_ex
    - ASN1_item_i2d
    - ERR_raise
    - ERR_raise_data
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_dup(const ASN1_ITEM *it, const void *x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_print.c:25,1
    - Dst: ossl_isasn1print
      Src: /src/openssl-3.0.15/crypto/asn1/a_print.c:29,1
    - Dst: ossl_isascii
      Src: /src/openssl-3.0.15/crypto/asn1/a_print.c:31,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: ASN1_PRINTABLE_type
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_print.c
    functionUses: 1
    functionsReached:
    - strlen
    - ossl_isasn1print
    - ossl_isascii
    linkageType: ''
    returnType: int
    signature: int ASN1_PRINTABLE_type(const unsigned char *s, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRINTABLE_type
      Src: /src/openssl-3.0.15/crypto/asn1/a_print.c:65,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - ASN1_UNIVERSALSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: ASN1_UNIVERSALSTRING_to_string
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_print.c
    functionUses: 0
    functionsReached:
    - ASN1_PRINTABLE_type
    linkageType: ''
    returnType: int
    signature: int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_print.c:87,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_print.c:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - bp
    - v
    argTypes:
    - BIO*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 96
    functionName: ASN1_STRING_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_print.c
    functionUses: 7
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:55,1
    - Dst: PBE2PARAM_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:59,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:64,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:65,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:69,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:72,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:73,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:77,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:82,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:85,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:92,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:94,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:97,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:98,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:104,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:110,1
    - Dst: PKCS5_pbkdf2_set_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:112,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:120,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:123,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:127,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:127,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:137,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:140,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:141,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:143,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 7
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    - aiv
    - prf_nid
    - libctx
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 146
    functionName: PKCS5_pbe2_set_iv_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_get_key_length
    - memcpy
    - EVP_CIPHER_get_type
    - EVP_CIPHER_CTX_ctrl
    - X509_ALGOR_new
    - PBE2PARAM_free
    - EVP_CIPHER_CTX_free
    - PBE2PARAM_new
    - X509_ALGOR_free
    - EVP_CipherInit_ex
    - EVP_CIPHER_get_iv_length
    - PKCS5_pbkdf2_set_ex
    - EVP_CIPHER_param_to_asn1
    - RAND_bytes_ex
    - OBJ_nid2obj
    - ERR_raise
    - EVP_CIPHER_CTX_new
    - ASN1_TYPE_new
    - ASN1_ITEM_rptr
    - ERR_set_mark
    - ASN1_TYPE_pack_sequence
    - ERR_pop_to_mark
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe2_set_iv_ex(const EVP_CIPHER *cipher, int iter,\n
      \                                unsigned char *salt, int saltlen,\n                                 unsigned
      char *aiv, int prf_nid,\n                                 OSSL_LIB_CTX *libctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe2_set_iv_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    - aiv
    - prf_nid
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: PKCS5_pbe2_set_iv
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c
    functionUses: 0
    functionsReached:
    - PKCS5_pbe2_set_iv_ex
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter,\n
      \                             unsigned char *salt, int saltlen,\n                              unsigned
      char *aiv, int prf_nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbe2_set_iv_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cipher
    - iter
    - salt
    - saltlen
    argTypes:
    - EVP_CIPHER*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 6
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: PKCS5_pbe2_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c
    functionUses: 0
    functionsReached:
    - PKCS5_pbe2_set_iv_ex
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,\n                           unsigned
      char *salt, int saltlen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PBKDF2PARAM_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:172,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:174,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:184,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:190,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:191,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:197,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:203,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:205,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:211,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:214,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:214,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:219,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:223,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:227,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:227,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:231,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:235,1
    - Dst: PBKDF2PARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:236,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:237,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 59
    argCount: 6
    argNames:
    - iter
    - salt
    - saltlen
    - prf_nid
    - keylen
    - libctx
    argTypes:
    - int
    - unsigned char*
    - int
    - int
    - int
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 239
    functionName: PKCS5_pbkdf2_set_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - ASN1_INTEGER_set
    - X509_ALGOR_set0
    - memcpy
    - OPENSSL_malloc
    - OBJ_nid2obj
    - ASN1_ITEM_rptr
    - PBKDF2PARAM_free
    - ERR_raise
    - X509_ALGOR_free
    - PBKDF2PARAM_new
    - ASN1_OCTET_STRING_new
    - ASN1_INTEGER_new
    - ASN1_TYPE_pack_sequence
    - X509_ALGOR_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int
      saltlen,\n                                int prf_nid, int keylen,\n                                OSSL_LIB_CTX
      *libctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_pbkdf2_set_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - iter
    - salt
    - saltlen
    - prf_nid
    - keylen
    argTypes:
    - int
    - unsigned char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: PKCS5_pbkdf2_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_pbev2.c
    functionUses: 1
    functionsReached:
    - PKCS5_pbkdf2_set_ex
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen,\n
      \                            int prf_nid, int keylen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: is_unicode_surrogate
      Src: /src/openssl-3.0.15/crypto/asn1/a_utf8.c:62,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - str
    - len
    - val
    argTypes:
    - unsigned char*
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 83
    functionName: UTF8_getc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utf8.c
    functionUses: 1
    functionsReached:
    - is_unicode_surrogate
    linkageType: ''
    returnType: int
    signature: int UTF8_getc(const unsigned char *str, int len, unsigned long *val)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_unicode_surrogate
      Src: /src/openssl-3.0.15/crypto/asn1/a_utf8.c:114,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - str
    - len
    - value
    argTypes:
    - unsigned char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 137
    functionName: UTF8_putc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utf8.c
    functionUses: 1
    functionsReached:
    - is_unicode_surrogate
    linkageType: ''
    returnType: int
    signature: int UTF8_putc(unsigned char *str, int len, unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: ASN1_PCTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_PCTX
    signature: ASN1_PCTX *ASN1_PCTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_PCTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_free(ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_PCTX_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: ASN1_PCTX_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ASN1_PCTX_get_nm_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: ASN1_PCTX_set_nm_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: ASN1_PCTX_get_cert_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ASN1_PCTX_set_cert_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: ASN1_PCTX_get_oid_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: ASN1_PCTX_set_oid_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: ASN1_PCTX_get_str_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - ASN1_PCTX*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: ASN1_PCTX_set_str_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_print_ctx
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: ASN1_item_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - asn1_item_print_ctx
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_print(BIO *out, const ASN1_VALUE *ifld, int indent,\n
      \                   const ASN1_ITEM *it, const ASN1_PCTX *pctx)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: asn1_print_fsname
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:157,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:159,1
    - Dst: asn1_template_print_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:168,1
    - Dst: asn1_primitive_print
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:175,1
    - Dst: asn1_print_fsname
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:180,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_print
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:185,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:188,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:192,1
    - Dst: ossl_asn1_get_choice_selector_const
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:201,1
    - Dst: ossl_asn1_get_const_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:206,1
    - Dst: asn1_template_print_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:207,1
    - Dst: asn1_print_fsname
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:213,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:217,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:220,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:226,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:236,1
    - Dst: ossl_asn1_get_const_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:239,1
    - Dst: asn1_template_print_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:240,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:245,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:250,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:257,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 97
    argCount: 8
    argNames:
    - out
    - fld
    - indent
    - it
    - fname
    - sname
    - nohdr
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - ASN1_ITEM*
    - char*
    - char*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 262
    functionName: asn1_item_print_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - ossl_asn1_do_adb
    - asn1_template_print_ctx
    - BIO_puts
    - ossl_asn1_get_choice_selector_const
    - asn1_cb
    - asn1_primitive_print
    - asn1_print_fsname
    - ASN1_EXTERN_FUNCS*::asn1_ex_print
    - BIO_printf
    - ossl_asn1_get_const_field_ptr
    linkageType: ''
    returnType: int
    signature: "int asn1_item_print_ctx(BIO *out, const 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: 15
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:272,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:292,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:301,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:304,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:307,1
    - Dst: sk_const_ASN1_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:308,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:309,1
    - Dst: sk_const_ASN1_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:312,1
    - Dst: asn1_item_print_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:313,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:314,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:322,1
    - Dst: asn1_item_print_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:327,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 5
    argNames:
    - out
    - fld
    - indent
    - tt
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - int
    - ASN1_TEMPLATE*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 329
    functionName: asn1_template_print_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - sk_const_ASN1_VALUE_value
    - BIO_puts
    - ASN1_ITEM_ptr
    - asn1_item_print_ctx
    - sk_const_ASN1_VALUE_num
    - STACK_OF
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int asn1_template_print_ctx(BIO *out, const ASN1_VALUE **fld, int
      indent,\n                            const ASN1_TEMPLATE *tt, const ASN1_PCTX
      *pctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:339,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:343,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:352,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:357,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:360,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:364,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 5
    argNames:
    - out
    - indent
    - fname
    - sname
    - pctx
    argTypes:
    - BIO*
    - int
    - char*
    - char*
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 367
    functionName: asn1_print_fsname
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "int asn1_print_fsname(BIO *out, int indent,\n                             const
      char *fname, const char *sname,\n                             const ASN1_PCTX
      *pctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - boolval
    argTypes:
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 391
    functionName: asn1_print_boolean
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int asn1_print_boolean(BIO *out, int boolval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2s_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:397,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:400,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 404
    functionName: asn1_print_integer
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_puts
    - i2s_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int asn1_print_integer(BIO *out, const ASN1_INTEGER *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:410,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:410,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:413,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - oid
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: asn1_print_oid
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2nid
    - BIO_printf
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: int asn1_print_oid(BIO *out, const ASN1_OBJECT *oid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:422,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:424,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - out
    - str
    - indent
    argTypes:
    - BIO*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: asn1_print_obstring
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - BIO_dump_indent
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int asn1_print_obstring(BIO *out, const ASN1_STRING *str, int indent)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: asn1_print_fsname
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:444,1
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_print
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:447,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:466,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:469,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:475,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:481,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:483,1
    - Dst: asn1_print_boolean
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:493,1
    - Dst: asn1_print_integer
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:499,1
    - Dst: ASN1_UTCTIME_print
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:503,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:507,1
    - Dst: asn1_print_oid
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:511,1
    - Dst: asn1_print_obstring
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:516,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:523,1
    - Dst: ASN1_parse_dump
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:525,1
    - Dst: ASN1_STRING_print_ex
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:531,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c:536,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 433
    functionDepth: 8
    functionLinenumber: 433
    functionLinenumberEnd: 539
    functionName: asn1_primitive_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_prn.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - ASN1_UTCTIME_print
    - BIO_puts
    - ASN1_PRIMITIVE_FUNCS*::prim_print
    - asn1_print_obstring
    - ASN1_parse_dump
    - ASN1_STRING_print_ex
    - asn1_print_fsname
    - asn1_print_integer
    - asn1_print_oid
    - asn1_print_boolean
    - ASN1_tag2str
    linkageType: ''
    returnType: int
    signature: "int asn1_primitive_print(BIO *out, const ASN1_VALUE **fld,\n                                const
      ASN1_ITEM *it, int indent,\n                                const char *fname,
      const char *sname,\n                                const ASN1_PCTX *pctx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:37,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:41,1
    - Dst: BIO_set_prefix
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:46,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:47,1
    - Dst: BIO_f_prefix
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:47,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:48,1
    - Dst: BIO_get_indent
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:52,1
    - Dst: BIO_set_prefix
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:53,1
    - Dst: BIO_set_indent
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:53,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:63,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:65,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:67,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:69,1
    - Dst: ASN1_tag2str
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:73,1
    - Dst: BIO_set_indent
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:76,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:78,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:79,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 9
    argNames:
    - bp
    - offset
    - depth
    - hl
    - len
    - tag
    - xclass
    - constructed
    - indent
    argTypes:
    - BIO*
    - long
    - int
    - int
    - long
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 81
    functionName: asn1_print_info
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c
    functionUses: 0
    functionsReached:
    - BIO_f_prefix
    - BIO_new
    - BIO_set_indent
    - BIO_set_prefix
    - BIO_snprintf
    - BIO_free
    - ASN1_tag2str
    - BIO_printf
    - BIO_pop
    - BIO_get_indent
    - BIO_push
    linkageType: ''
    returnType: int
    signature: "int asn1_print_info(BIO *bp, long offset, int depth, int hl, long
      len,\n                           int tag, int xclass, int constructed, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse2
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pp
    - len
    - indent
    argTypes:
    - BIO*
    - unsigned char*
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: ASN1_parse
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c
    functionUses: 0
    functionsReached:
    - asn1_parse2
    linkageType: ''
    returnType: int
    signature: int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse2
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bp
    - pp
    - len
    - indent
    - dump
    argTypes:
    - BIO*
    - unsigned char*
    - long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: ASN1_parse_dump
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c
    functionUses: 2
    functionsReached:
    - asn1_parse2
    linkageType: ''
    returnType: int
    signature: "int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int
      indent,\n                    int dump)"
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:109,1
    - Dst: ASN1_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:118,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:120,1
    - Dst: asn1_print_info
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:128,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:135,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:138,1
    - Dst: asn1_parse2
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:143,1
    - Dst: asn1_parse2
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:158,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:168,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:179,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:181,1
    - Dst: d2i_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:186,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:187,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:189,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:191,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:197,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:202,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:209,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:227,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:229,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:236,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:239,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:246,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:249,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:259,1
    - Dst: d2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:265,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:267,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:270,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:273,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:277,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:281,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:285,1
    - Dst: d2i_ASN1_ENUMERATED
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:291,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:293,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:296,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:299,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:303,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:307,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:311,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:315,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:318,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:327,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:330,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:333,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:339,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:352,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:353,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:354,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c:355,1
    CyclomaticComplexity: 129
    EdgeCount: 129
    ICount: 245
    argCount: 7
    argNames:
    - bp
    - pp
    - length
    - offset
    - depth
    - indent
    - dump
    argTypes:
    - BIO*
    - unsigned char**
    - long
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 94
    functionDepth: 7
    functionLinenumber: 94
    functionLinenumberEnd: 358
    functionName: asn1_parse2
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c
    functionUses: 3
    functionsReached:
    - asn1_print_info
    - i2a_ASN1_OBJECT
    - ASN1_OCTET_STRING_free
    - BIO_puts
    - d2i_ASN1_INTEGER
    - d2i_ASN1_ENUMERATED
    - d2i_ASN1_OCTET_STRING
    - ASN1_ENUMERATED_free
    - asn1_parse2
    - ASN1_get_object
    - BIO_write
    - ASN1_INTEGER_free
    - BIO_printf
    - BIO_dump_indent
    - ASN1_OBJECT_free
    - d2i_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int asn1_parse2(BIO *bp, const unsigned char **pp, long length,\n
      \                      int offset, int depth, int indent, int dump)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 387
    functionName: ASN1_tag2str
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_parse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ASN1_tag2str(int tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c:31,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c:32,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: ASN1_ITEM_lookup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_ptr
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: ASN1_ITEM
    signature: ASN1_ITEM *ASN1_ITEM_lookup(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c:42,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: ASN1_ITEM_get
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_item_list.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_ptr
    - OSSL_NELEM
    linkageType: ''
    returnType: ASN1_ITEM
    signature: ASN1_ITEM *ASN1_ITEM_get(size_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: send_bio_chars
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int send_bio_chars(void *arg, const void *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: send_fp_chars
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: int
    signature: int send_fp_chars(void *arg, const void *buf, int len)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HEX_SIZE
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:72,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:77,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:78,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:83,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:84,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:98,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:102,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:104,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:111,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:112,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:121,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:125,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 5
    argNames:
    - c
    - flags
    - do_quotes
    - io_ch
    - arg
    argTypes:
    - unsigned long
    - unsigned short
    - char*
    - char_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 128
    functionName: do_esc_char
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - io_ch
    - HEX_SIZE
    linkageType: ''
    returnType: int
    signature: "int do_esc_char(unsigned long c, unsigned short flags, char *do_quotes,\n
      \                      char_io *io_ch, void *arg)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:156,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:162,1
    - Dst: UTF8_getc
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:194,1
    - Dst: UTF8_putc
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:208,1
    - Dst: do_esc_char
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:216,1
    - Dst: do_esc_char
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:223,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 7
    argNames:
    - buf
    - buflen
    - type
    - flags
    - quotes
    - io_ch
    - arg
    argTypes:
    - unsigned char*
    - int
    - int
    - unsigned short
    - char*
    - char_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 231
    functionName: do_buf
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - UTF8_getc
    - do_esc_char
    - ERR_raise
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: "int do_buf(unsigned char *buf, int buflen,\n                  int
      type, unsigned short flags, char *quotes, char_io *io_ch,\n                  void
      *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - io_ch
    - arg
    - buf
    - buflen
    argTypes:
    - char_io*
    - void*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: do_hex_dump
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    linkageType: ''
    returnType: int
    signature: "int do_hex_dump(char_io *io_ch, void *arg, unsigned char *buf,\n                       int
      buflen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:272,1
    - Dst: do_hex_dump
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:276,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:283,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:286,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:287,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:291,1
    - Dst: do_hex_dump
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:292,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - lflags
    - io_ch
    - arg
    - str
    argTypes:
    - unsigned long
    - char_io*
    - void*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 297
    functionName: do_dump
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - io_ch
    - OPENSSL_free
    - do_hex_dump
    - i2d_ASN1_TYPE
    linkageType: ''
    returnType: int
    signature: "int do_dump(unsigned long lflags, char_io *io_ch, void *arg,\n                   const
      ASN1_STRING *str)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_tag2str
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:350,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:352,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:353,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:353,1
    - Dst: do_dump
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:377,1
    - Dst: do_buf
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:396,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:404,1
    - Dst: do_buf
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:406,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:408,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 4
    argNames:
    - io_ch
    - arg
    - lflags
    - str
    argTypes:
    - char_io*
    - void*
    - unsigned long
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 411
    functionName: do_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_dump
    - io_ch
    - strlen
    - do_buf
    - ASN1_tag2str
    linkageType: ''
    returnType: int
    signature: "int do_print_ex(char_io *io_ch, void *arg, unsigned long lflags,\n
      \                      const ASN1_STRING *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - io_ch
    - arg
    - indent
    argTypes:
    - char_io*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: do_indent
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - io_ch
    linkageType: ''
    returnType: int
    signature: int do_indent(char_io *io_ch, void *arg, int indent)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: do_indent
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:443,1
    - Dst: X509_NAME_entry_count
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:491,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:494,1
    - Dst: X509_NAME_get_entry
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:496,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:498,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:499,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:503,1
    - Dst: do_indent
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:506,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:511,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:512,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:513,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:514,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:518,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:524,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:527,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:533,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:534,1
    - Dst: do_indent
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:537,1
    - Dst: io_ch
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:541,1
    - Dst: do_print_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:555,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 561
    functionName: do_name_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2txt
    - OBJ_obj2nid
    - do_indent
    - X509_NAME_ENTRY_set
    - do_print_ex
    - io_ch
    - X509_NAME_ENTRY_get_data
    - OBJ_nid2sn
    - X509_NAME_entry_count
    - strlen
    - X509_NAME_get_entry
    - X509_NAME_ENTRY_get_object
    linkageType: ''
    returnType: int
    signature: "int do_name_ex(char_io *io_ch, void *arg, const X509_NAME *n,\n                      int
      indent, unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_print
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:569,1
    - Dst: do_name_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - nm
    - indent
    - flags
    argTypes:
    - BIO*
    - X509_NAME*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 571
    functionName: X509_NAME_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 10
    functionsReached:
    - do_name_ex
    - X509_NAME_print
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,\n
      \                      unsigned long flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:580,1
    - Dst: X509_NAME_print
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:583,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:584,1
    - Dst: do_name_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - fp
    - nm
    - indent
    - flags
    argTypes:
    - FILE*
    - X509_NAME*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 574
    functionDepth: 7
    functionLinenumber: 574
    functionLinenumberEnd: 588
    functionName: X509_NAME_print_ex_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - X509_NAME_print
    - do_name_ex
    linkageType: ''
    returnType: int
    signature: "int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent,\n
      \                         unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - str
    - flags
    argTypes:
    - BIO*
    - ASN1_STRING*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 591
    functionDepth: 4
    functionLinenumber: 591
    functionLinenumberEnd: 594
    functionName: ASN1_STRING_print_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 1
    functionsReached:
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned
      long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - str
    - flags
    argTypes:
    - FILE*
    - ASN1_STRING*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 600
    functionName: ASN1_STRING_print_ex_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 0
    functionsReached:
    - do_print_ex
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned
      long flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-3.0.15/crypto/asn1/a_strex.c:625,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - unsigned char**
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 631
    functionName: ASN1_STRING_to_UTF8
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_strex.c
    functionUses: 4
    functionsReached:
    - ASN1_mbstring_copy
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: pkey_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: "int pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                  void *exarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c:43,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c:46,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: PKCS8_pkey_set0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 4
    functionsReached:
    - ASN1_STRING_set0
    - ASN1_INTEGER_set
    - X509_ALGOR_set0
    linkageType: ''
    returnType: int
    signature: "int 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c:60,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: PKCS8_pkey_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p8
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: PKCS8_pkey_get0_attrs
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_NID
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: PKCS8_pkey_add1_attr_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 1
    functionsReached:
    - X509at_add1_attr_by_NID
    linkageType: ''
    returnType: int
    signature: "int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid,
      int type,\n                                const unsigned char *bytes, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr_by_OBJ
      Src: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p8
    - obj
    - type
    - bytes
    - len
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - ASN1_OBJECT*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: PKCS8_pkey_add1_attr_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr_by_OBJ
    linkageType: ''
    returnType: int
    signature: "int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT
      *obj, int type,\n                                const unsigned char *bytes,
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_add1_attr
      Src: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p8
    - attr
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - X509_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: PKCS8_pkey_add1_attr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p8_pkey.c
    functionUses: 0
    functionsReached:
    - X509at_add1_attr
    linkageType: ''
    returnType: int
    signature: int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:54,1
    - Dst: EVP_PBE_scrypt
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:59,1
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:65,1
    - Dst: PBE2PARAM_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:69,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:76,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:77,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:82,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:84,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:84,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:85,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:85,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:89,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:94,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:97,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:100,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:106,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:110,1
    - Dst: pkcs5_scrypt_set
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:112,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:119,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:123,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:127,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:127,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:137,1
    - Dst: PBE2PARAM_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:140,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:141,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:142,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 145
    functionName: PKCS5_pbe2_set_scrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get_key_length
    - memcpy
    - EVP_CIPHER_get_type
    - X509_ALGOR_new
    - PBE2PARAM_free
    - EVP_CIPHER_CTX_free
    - EVP_PBE_scrypt
    - PBE2PARAM_new
    - X509_ALGOR_free
    - EVP_CipherInit_ex
    - EVP_CIPHER_get_iv_length
    - EVP_CIPHER_param_to_asn1
    - OBJ_nid2obj
    - ERR_raise
    - EVP_CIPHER_CTX_new
    - RAND_bytes
    - ASN1_TYPE_new
    - pkcs5_scrypt_set
    - ASN1_ITEM_rptr
    - ASN1_TYPE_pack_sequence
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *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: 13
    BranchProfiles: []
    Callsites:
    - Dst: SCRYPT_PARAMS_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:152,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:161,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:164,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:167,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:170,1
    - Dst: ASN1_INTEGER_set_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:173,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:179,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:182,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:188,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:192,1
    - Dst: ASN1_TYPE_pack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:196,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:196,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:204,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:206,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:207,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 209
    functionName: pkcs5_scrypt_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set_uint64
    - SCRYPT_PARAMS_free
    - ASN1_ITEM_rptr
    - OBJ_nid2obj
    - ASN1_INTEGER_set_int64
    - ERR_raise
    - X509_ALGOR_free
    - ASN1_INTEGER_new
    - ASN1_TYPE_pack_sequence
    - SCRYPT_PARAMS_new
    - RAND_bytes
    - ASN1_STRING_set
    - X509_ALGOR_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: "X509_ALGOR *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: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get0_cipher
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:223,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:224,1
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:230,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:230,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:233,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:237,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:239,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:248,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:250,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:255,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:256,1
    - Dst: ASN1_INTEGER_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:257,1
    - Dst: EVP_PBE_scrypt_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:260,1
    - Dst: EVP_PBE_scrypt_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:268,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:271,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:274,1
    - Dst: SCRYPT_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:275,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 9
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    - libctx
    - propq
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 211
    functionDepth: 6
    functionLinenumber: 211
    functionLinenumberEnd: 277
    functionName: PKCS5_v2_scrypt_keyivgen_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - SCRYPT_PARAMS_free
    - EVP_CIPHER_CTX_get0_cipher
    - ASN1_ITEM_rptr
    - OPENSSL_cleanse
    - ERR_raise
    - EVP_CIPHER_CTX_get_key_length
    - ASN1_INTEGER_get_uint64
    - EVP_CipherInit_ex
    - ASN1_TYPE_unpack_sequence
    - EVP_PBE_scrypt_ex
    linkageType: ''
    returnType: int
    signature: "int PKCS5_v2_scrypt_keyivgen_ex(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,\n                                OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS5_v2_scrypt_keyivgen_ex
      Src: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - pass
    - passlen
    - param
    - c
    - md
    - en_de
    argTypes:
    - EVP_CIPHER_CTX*
    - char*
    - int
    - ASN1_TYPE*
    - EVP_CIPHER*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 7
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: PKCS5_v2_scrypt_keyivgen
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/p5_scrypt.c
    functionUses: 0
    functionsReached:
    - PKCS5_v2_scrypt_keyivgen_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:36,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:43,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:44,1
    - Dst: evp_pkey_copy_downgraded
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:45,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:51,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:53,1
    - Dst: EVP_PKEY_get_base_id
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:57,1
    - Dst: d2i_RSAPublicKey
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:59,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:60,1
    - Dst: d2i_DSAPublicKey
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:66,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:67,1
    - Dst: o2i_ECPublicKey
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:86,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:91,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:95,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c:96,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 4
    argNames:
    - type
    - a
    - pp
    - length
    argTypes:
    - int
    - EVP_PKEY**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: d2i_PublicKey
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/d2i_pu.c
    functionUses: 0
    functionsReached:
    - o2i_ECPublicKey
    - evp_pkey_is_provided
    - EVP_PKEY_get_id
    - EVP_PKEY_set_type
    - ERR_raise
    - EVP_PKEY_get_base_id
    - d2i_RSAPublicKey
    - evp_pkey_copy_downgraded
    - EVP_PKEY_new
    - d2i_DSAPublicKey
    - EVP_PKEY_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char
      **pp,\n                        long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - palg
    - pdigest
    argTypes:
    - X509_SIG*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: X509_SIG_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_sig.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg,\n
      \                  const ASN1_OCTET_STRING **pdigest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - palg
    - pdigest
    argTypes:
    - X509_SIG*
    - X509_ALGOR**
    - ASN1_OCTET_STRING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: X509_SIG_getm
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_sig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg,\n                   ASN1_OCTET_STRING
      **pdigest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_time_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_UTCTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: ossl_asn1_utctime_to_tm
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - ossl_asn1_time_to_tm
    linkageType: ''
    returnType: int
    signature: int ossl_asn1_utctime_to_tm(struct tm *tm, const ASN1_UTCTIME *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_utctime_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_UTCTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ASN1_UTCTIME_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - ossl_asn1_utctime_to_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_check(const ASN1_UTCTIME *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:39,1
    - Dst: ASN1_UTCTIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:43,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_UTCTIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: ASN1_UTCTIME_set_string
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - ASN1_UTCTIME_check
    - strlen
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTCTIME_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: ASN1_UTCTIME_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - ASN1_UTCTIME_adj
    linkageType: ''
    returnType: ASN1_UTCTIME
    signature: ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:63,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:68,1
    - Dst: ossl_asn1_time_from_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: ASN1_UTCTIME_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - ossl_asn1_time_from_tm
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: ASN1_UTCTIME
    signature: "ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,\n                               int
      offset_day, long offset_sec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_utctime_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:80,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:83,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_UTCTIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 94
    functionName: ASN1_UTCTIME_cmp_time_t
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 0
    functionsReached:
    - OPENSSL_gmtime_diff
    - OPENSSL_gmtime
    - ossl_asn1_utctime_to_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_print
      Src: /src/openssl-3.0.15/crypto/asn1/a_utctm.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_UTCTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: ASN1_UTCTIME_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_utctm.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_print
    linkageType: ''
    returnType: int
    signature: int ASN1_UTCTIME_print(BIO *bp, const ASN1_UTCTIME *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: COPY_SIZE
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_SIZE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:51,1
    - Dst: COPY_SIZE
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: long_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - COPY_SIZE
    - memcpy
    linkageType: ''
    returnType: int
    signature: int long_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:57,1
    - Dst: COPY_SIZE
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: long_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - COPY_SIZE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void long_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: num_bits_ulong
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_bits_ulong(unsigned long value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:92,1
    - Dst: COPY_SIZE
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:92,1
    - Dst: num_bits_ulong
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 126
    functionName: long_i2c
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - num_bits_ulong
    - COPY_SIZE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int long_i2c(const ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                   const ASN1_ITEM *it)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:176,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:182,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:185,1
    - Dst: COPY_SIZE
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 187
    functionName: long_c2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - COPY_SIZE
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                   int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:194,1
    - Dst: COPY_SIZE
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:194,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/x_long.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: long_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_long.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - COPY_SIZE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int long_print(BIO *out, const ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                      int indent, const ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: uint64_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int uint64_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: uint64_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void uint64_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: uint64_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uint64_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:58,1
    - Dst: ossl_i2c_uint64_int
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: uint64_i2c
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - ossl_i2c_uint64_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int uint64_i2c(const ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                     const ASN1_ITEM *it)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: uint64_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:80,1
    - Dst: ossl_c2i_uint64_int
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:102,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 112
    functionName: uint64_c2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ossl_c2i_uint64_int
    - ERR_raise
    - uint64_new
    linkageType: ''
    returnType: int
    signature: "int uint64_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                     int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:118,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: uint64_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int uint64_print(BIO *out, const ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                        int indent, const ASN1_PCTX *pctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:126,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: uint32_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int uint32_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: uint32_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void uint32_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: uint32_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uint32_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:153,1
    - Dst: ossl_i2c_uint64_int
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - pval
    - cont
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 166
    functionName: uint32_i2c
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - ossl_i2c_uint64_int
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int uint32_i2c(const ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                     const ASN1_ITEM *it)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uint64_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:183,1
    - Dst: ossl_c2i_uint64_int
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:197,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:200,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:212,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 6
    argNames:
    - pval
    - cont
    - len
    - utype
    - free_cont
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int
    - int
    - char*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 221
    functionName: uint32_c2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ossl_c2i_uint64_int
    - ERR_raise
    - uint64_new
    linkageType: ''
    returnType: int
    signature: "int uint32_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                     int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:227,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/x_int64.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: uint32_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_int64.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int uint32_print(BIO *out, const ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                        int indent, const ASN1_PCTX *pctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY_ASN1_METHOD**
    - EVP_PKEY_ASN1_METHOD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ameth_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ameth_cmp(const EVP_PKEY_ASN1_METHOD *const *a,\n                     const
      EVP_PKEY_ASN1_METHOD *const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:40,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_num
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: EVP_PKEY_asn1_get_count
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 3
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_num
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_asn1_get_count(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:48,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_value
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: EVP_PKEY_asn1_get0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 3
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_value
    - OSSL_NELEM
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_PKEY_ASN1_METHOD_find
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:65,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_value
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:67,1
    - Dst: OBJ_bsearch_ameth
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:69,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: pkey_asn1_find
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - sk_EVP_PKEY_ASN1_METHOD_find
    - OBJ_bsearch_ameth
    - sk_EVP_PKEY_ASN1_METHOD_value
    - OSSL_NELEM
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *pkey_asn1_find(int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pkey_asn1_find
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:86,1
    - Dst: ENGINE_get_pkey_asn1_meth_engine
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:95,1
    - Dst: ENGINE_get_pkey_asn1_meth
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - pe
    - type
    argTypes:
    - ENGINE**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: EVP_PKEY_asn1_find
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 6
    functionsReached:
    - pkey_asn1_find
    - ENGINE_get_pkey_asn1_meth
    - ENGINE_get_pkey_asn1_meth_engine
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:113,1
    - Dst: ENGINE_pkey_asn1_find_str
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:117,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:122,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:124,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:131,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:132,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:135,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - pe
    - str
    - len
    argTypes:
    - ENGINE**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 140
    functionName: EVP_PKEY_asn1_find_str
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 6
    functionsReached:
    - ENGINE_init
    - EVP_PKEY_asn1_get_count
    - ENGINE_pkey_asn1_find_str
    - EVP_PKEY_asn1_get0
    - ENGINE_free
    - OPENSSL_strncasecmp
    - strlen
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe,\n                                                   const
      char *str, int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:158,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_new
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:163,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_find
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:169,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:170,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_push
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:175,1
    - Dst: sk_EVP_PKEY_ASN1_METHOD_sort
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 179
    functionName: EVP_PKEY_asn1_add0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - sk_EVP_PKEY_ASN1_METHOD_new
    - sk_EVP_PKEY_ASN1_METHOD_push
    - sk_EVP_PKEY_ASN1_METHOD_sort
    - sk_EVP_PKEY_ASN1_METHOD_find
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_new
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:184,1
    - Dst: EVP_PKEY_asn1_add0
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:188,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: EVP_PKEY_asn1_add_alias
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_asn1_new
    - EVP_PKEY_asn1_add0
    - EVP_PKEY_asn1_free
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_asn1_add_alias(int to, int from)
  - BBCount: 7
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: EVP_PKEY_asn1_get0_info
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: EVP_PKEY_get0_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:223,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:226,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:235,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:241,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - id
    - flags
    - pem_str
    - info
    argTypes:
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 252
    functionName: EVP_PKEY_asn1_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_strdup
    - EVP_PKEY_asn1_free
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags,\n                                        const
      char *pem_str, const char *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: EVP_PKEY_asn1_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,\n                        const
      EVP_PKEY_ASN1_METHOD *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:276,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:277,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: EVP_PKEY_asn1_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 301
    functionName: EVP_PKEY_asn1_set_public
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,\n                              int
      (*pub_decode) (EVP_PKEY *pk,\n                                                 const
      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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: EVP_PKEY_asn1_set_private
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: EVP_PKEY_asn1_set_param
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: EVP_PKEY_asn1_set_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth,\n                            void
      (*pkey_free) (EVP_PKEY *pkey))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: EVP_PKEY_asn1_set_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: EVP_PKEY_asn1_set_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                    int (*pkey_security_bits) (const EVP_PKEY\n
      \                                                               *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: EVP_PKEY_asn1_set_item
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth,\n                            int
      (*item_verify) (EVP_MD_CTX *ctx,\n                                                const
      ASN1_ITEM *it,\n                                                const void *data,\n
      \                                               const X509_ALGOR *a,\n                                                const
      ASN1_BIT_STRING *sig,\n                                                EVP_PKEY
      *pkey),\n                            int (*item_sign) (EVP_MD_CTX *ctx,\n                                              const
      ASN1_ITEM *it,\n                                              const void *data,\n
      \                                             X509_ALGOR *alg1,\n                                              X509_ALGOR
      *alg2,\n                                              ASN1_BIT_STRING *sig))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 386
    functionName: EVP_PKEY_asn1_set_siginf
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth,\n                              int
      (*siginf_set) (X509_SIG_INFO *siginf,\n                                                 const
      X509_ALGOR *alg,\n                                                 const ASN1_STRING
      *sig))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: EVP_PKEY_asn1_set_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth,\n                             int
      (*pkey_check) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: EVP_PKEY_asn1_set_public_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                   int (*pkey_pub_check) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: EVP_PKEY_asn1_set_param_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                  int (*pkey_param_check) (const EVP_PKEY *pk))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: EVP_PKEY_asn1_set_set_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                   int (*set_priv_key) (EVP_PKEY *pk,\n                                                         const
      unsigned char\n                                                            *priv,\n
      \                                                        size_t len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: EVP_PKEY_asn1_set_set_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                  int (*set_pub_key) (EVP_PKEY *pk,\n                                                       const
      unsigned char *pub,\n                                                       size_t
      len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 429
    functionName: EVP_PKEY_asn1_set_get_priv_key
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                   int (*get_priv_key) (const EVP_PKEY *pk,\n
      \                                                        unsigned char *priv,\n
      \                                                        size_t *len))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ameth
    argTypes:
    - EVP_PKEY_ASN1_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: EVP_PKEY_asn1_set_get_pub_key
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/ameth_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth,\n
      \                                  int (*get_pub_key) (const EVP_PKEY *pk,\n
      \                                                      unsigned char *pub,\n
      \                                                      size_t *len))"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:26,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:32,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:38,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:44,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 52
    functionName: i2a_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/f_int.c
    functionUses: 4
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:63,1
    - Dst: ossl_isxdigit
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:104,1
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:112,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:120,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:122,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:139,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:140,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 142
    functionName: a2i_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - ossl_isxdigit
    - OPENSSL_clear_realloc
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_hexchar2int
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: i2a_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - i2a_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: a2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/f_int.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bp
    - bs
    - buf
    - size
    argTypes:
    - BIO*
    - ASN1_ENUMERATED*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: a2i_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/f_int.c
    functionUses: 0
    functionsReached:
    - a2i_ASN1_INTEGER
    linkageType: ''
    returnType: int
    signature: int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int
      size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:27,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:29,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:36,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: ASN1_buf_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/t_pkey.c
    functionUses: 2
    functionsReached:
    - BIO_write
    - BIO_indent
    - BIO_printf
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen,
      int indent)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:55,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:56,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:58,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:59,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:64,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:65,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:66,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:67,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:72,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:77,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:80,1
    - Dst: ASN1_buf_print
      Src: /src/openssl-3.0.15/crypto/asn1/t_pkey.c:87,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 93
    functionName: ASN1_bn_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/t_pkey.c
    functionUses: 5
    functionsReached:
    - OPENSSL_malloc
    - ASN1_buf_print
    - BN_bn2bin
    - OPENSSL_clear_free
    - bn_get_words
    - BN_num_bytes
    - BN_is_negative
    - BIO_indent
    - BIO_printf
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num,\n
      \                 unsigned char *ign, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: ASN1_GEN_STR
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_GEN_STR(str,val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_generate_v3
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:83,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:85,1
    - Dst: ASN1_generate_v3
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - nconf
    argTypes:
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: ASN1_generate_nconf
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - ASN1_generate_v3
    - X509V3_set_nconf
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_v3
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:92,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - cnf
    argTypes:
    - char*
    - X509V3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ASN1_generate_v3
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 3
    functionsReached:
    - ERR_raise
    - generate_v3
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:120,1
    - Dst: asn1_multi
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:135,1
    - Dst: asn1_str2type
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:137,1
    - Dst: i2d_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:147,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:148,1
    - Dst: ASN1_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:157,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:178,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:190,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:195,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:207,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:220,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:225,1
    - Dst: d2i_ASN1_TYPE
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:230,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 238
    functionName: generate_v3
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 4
    functionsReached:
    - ASN1_put_object
    - memcpy
    - OPENSSL_malloc
    - d2i_ASN1_TYPE
    - ASN1_object_size
    - CONF_parse_list
    - OPENSSL_free
    - asn1_multi
    - ASN1_get_object
    - ASN1_TYPE_free
    - i2d_ASN1_TYPE
    - asn1_str2type
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *generate_v3(const char *str, X509V3_CTX *cnf, int depth,\n
      \                             int *perr)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: asn1_str2tag
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:263,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:287,1
    - Dst: parse_tagging
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:290,1
    - Dst: parse_tagging
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:296,1
    - Dst: append_exp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:298,1
    - Dst: append_exp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:303,1
    - Dst: append_exp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:308,1
    - Dst: append_exp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:313,1
    - Dst: append_exp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:324,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:327,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:329,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:331,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:336,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 3
    argNames:
    - elem
    - len
    - bitstr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 345
    functionName: asn1_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 7
    functionsReached:
    - ERR_raise_data
    - ERR_raise
    - asn1_str2tag
    - append_exp
    - parse_tagging
    - strncmp
    linkageType: ''
    returnType: int
    signature: int asn1_cb(const char *elem, int len, void *bitstr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:353,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:358,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:387,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - vstart
    - vlen
    - ptag
    - pclass
    argTypes:
    - char*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 397
    functionName: parse_tagging
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ERR_raise_data
    - ERR_raise
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_tagging(const char *vstart, int vlen, int *ptag, int *pclass)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:405,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:406,1
    - Dst: sk_ASN1_TYPE_new_null
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:410,1
    - Dst: X509V3_get_section
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:416,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:419,1
    - Dst: generate_v3
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:421,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:421,1
    - Dst: sk_ASN1_TYPE_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:425,1
    - Dst: i2d_ASN1_SET_ANY
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:435,1
    - Dst: i2d_ASN1_SEQUENCE_ANY
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:437,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:441,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:443,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:454,1
    - Dst: sk_ASN1_TYPE_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:456,1
    - Dst: X509V3_section_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:457,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 5
    argNames:
    - utype
    - section
    - cnf
    - depth
    - perr
    argTypes:
    - int
    - char*
    - X509V3_CTX*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 460
    functionName: asn1_multi
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - i2d_ASN1_SEQUENCE_ANY
    - generate_v3
    - ASN1_STRING_type_new
    - sk_CONF_VALUE_num
    - sk_ASN1_TYPE_push
    - sk_ASN1_TYPE_new_null
    - X509V3_get_section
    - STACK_OF
    - OPENSSL_free
    - sk_ASN1_TYPE_pop_free
    - i2d_ASN1_SET_ANY
    - sk_CONF_VALUE_value
    - X509V3_section_free
    linkageType: ''
    returnType: ASN1_TYPE
    signature: "ASN1_TYPE *asn1_multi(int utype, const char *section, X509V3_CTX *cnf,\n
      \                            int depth, int *perr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:468,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:473,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 496
    functionName: append_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int append_exp(tag_exp_arg *arg, int exp_tag, int exp_class,\n                      int
      exp_constructed, int exp_pad, int imp_ok)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:502,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:503,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:504,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:505,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:506,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:507,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:508,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:509,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:510,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:511,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:512,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:513,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:514,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:515,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:516,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:517,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:518,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:519,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:520,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:521,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:522,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:523,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:524,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:525,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:526,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:527,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:528,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:529,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:530,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:531,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:532,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:533,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:534,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:535,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:536,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:537,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:540,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:541,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:542,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:545,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:546,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:548,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:549,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:551,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:553,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:555,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:557,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:558,1
    - Dst: ASN1_GEN_STR
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:559,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:563,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:566,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - tagstr
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 573
    functionName: asn1_str2tag
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1_GEN_STR
    - OPENSSL_strncasecmp
    - strlen
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int asn1_str2tag(const char *tagstr, int len)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:583,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:584,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:595,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:602,1
    - Dst: X509V3_get_value_bool
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:608,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:609,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:617,1
    - Dst: s2i_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:621,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:622,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:629,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:632,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:633,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:641,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:644,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:645,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:648,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:649,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:653,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:654,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:674,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:678,1
    - Dst: ASN1_tag2bit
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:679,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:680,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:688,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:689,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:694,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:695,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:702,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:703,1
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:708,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:710,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:716,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:729,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:737,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:740,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 157
    argCount: 3
    argNames:
    - str
    - format
    - utype
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 575
    functionDepth: 7
    functionLinenumber: 575
    functionLinenumberEnd: 743
    functionName: asn1_str2type
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_TIME_check
    - OPENSSL_hexstr2buf
    - ERR_raise
    - X509V3_get_value_bool
    - ASN1_STRING_new
    - s2i_ASN1_INTEGER
    - ASN1_STRING_set
    - ASN1_mbstring_copy
    - ASN1_tag2bit
    - CONF_parse_list
    - ERR_add_error_data
    - ASN1_TYPE_free
    - OBJ_txt2obj
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *asn1_str2type(const char *str, int format, int utype)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:751,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:755,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:758,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - elem
    - len
    - bitstr
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: bitstr_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - strtoul
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: int bitstr_cb(const char *elem, int len, void *bitstr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:771,1
    - Dst: asn1_str2tag
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:775,1
    - Dst: ASN1_tag2bit
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - elem
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 765
    functionDepth: 4
    functionLinenumber: 765
    functionLinenumberEnd: 783
    functionName: mask_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - strncmp
    - asn1_str2tag
    - ASN1_tag2bit
    linkageType: ''
    returnType: int
    signature: int mask_cb(const char *elem, int len, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - pmask
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: ASN1_str2mask
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_gen.c
    functionUses: 0
    functionsReached:
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int ASN1_str2mask(const char *str, unsigned long *pmask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: bn_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_new
    linkageType: ''
    returnType: int
    signature: int bn_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: bn_secure_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_secure_new
    linkageType: ''
    returnType: int
    signature: int bn_secure_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:88,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pval
    - it
    argTypes:
    - ASN1_VALUE**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: bn_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    - BN_free
    linkageType: ''
    returnType: void
    signature: void bn_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:103,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:110,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: bn_i2c
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    - BN_num_bits
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: "int bn_i2c(const ASN1_VALUE **pval, unsigned char *cont, int *putype,\n
      \                 const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:120,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:123,1
    - Dst: bn_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: bn_c2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - bn_free
    - bn_new
    linkageType: ''
    returnType: int
    signature: "int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,\n
      \                 int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_secure_new
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:136,1
    - Dst: bn_c2i
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:139,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:145,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: bn_secure_c2i
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 0
    functionsReached:
    - BN_set_flags
    - bn_secure_new
    - bn_c2i
    linkageType: ''
    returnType: int
    signature: "int bn_secure_c2i(ASN1_VALUE **pval, const unsigned char *cont, int
      len,\n                         int utype, char *free_cont, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_print
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:152,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/x_bignum.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - out
    - pval
    - it
    - indent
    - pctx
    argTypes:
    - BIO*
    - ASN1_VALUE**
    - ASN1_ITEM*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: bn_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/x_bignum.c
    functionUses: 5
    functionsReached:
    - BN_print
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "int bn_print(BIO *out, const ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                   int indent, const ASN1_PCTX *pctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_mbstring_ncopy
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - in
    - len
    - inform
    - mask
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: ASN1_mbstring_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 3
    functionsReached:
    - ASN1_mbstring_ncopy
    linkageType: ''
    returnType: int
    signature: "int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in,
      int len,\n                       int inform, unsigned long mask)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:66,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:74,1
    - Dst: traverse_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:83,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:95,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:100,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:106,1
    - Dst: traverse_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:113,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:142,1
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:148,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:155,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:160,1
    - Dst: traverse_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:189,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:191,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:194,1
    - Dst: traverse_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:200,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 128
    argCount: 7
    argNames:
    - out
    - in
    - len
    - inform
    - mask
    - minsize
    - maxsize
    argTypes:
    - ASN1_STRING**
    - unsigned char*
    - int
    - int
    - unsigned long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 202
    functionName: ASN1_mbstring_ncopy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 2
    functionsReached:
    - ASN1_STRING_free
    - ASN1_STRING_type_new
    - OPENSSL_malloc
    - ERR_raise_data
    - ERR_raise
    - ASN1_STRING_set
    - traverse_string
    - strlen
    - ASN1_STRING_set0
    linkageType: ''
    returnType: int
    signature: "int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in,
      int len,\n                        int inform, unsigned long mask,\n                        long
      minsize, long maxsize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_getc
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:230,1
    - Dst: rfunc
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 243
    functionName: traverse_string
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - UTF8_getc
    - rfunc
    linkageType: ''
    returnType: int
    signature: "int traverse_string(const unsigned char *p, int len, int inform,\n
      \                          int (*rfunc) (unsigned long value, void *in),\n                           void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_unicode_valid
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: in_utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - is_unicode_valid
    linkageType: ''
    returnType: int
    signature: int in_utf8(unsigned long value, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: out_utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: int out_utf8(unsigned long value, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_fromascii
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:282,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:284,1
    - Dst: ossl_isasn1print
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:287,1
    - Dst: ossl_isascii
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:289,1
    - Dst: is_unicode_valid
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:295,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 301
    functionName: type_str
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 1
    functionsReached:
    - ossl_fromascii
    - ossl_isascii
    - is_unicode_valid
    - ossl_isasn1print
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int type_str(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: cpy_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpy_asc(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: cpy_bmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpy_bmp(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: cpy_univ
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpy_univ(unsigned long value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_putc
      Src: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - value
    - arg
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: cpy_utf8
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_mbstr.c
    functionUses: 0
    functionsReached:
    - UTF8_putc
    linkageType: ''
    returnType: int
    signature: int cpy_utf8(unsigned long value, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_time_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tm
    - d
    argTypes:
    - struct tm*
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: asn1_generalizedtime_to_tm
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_gentm.c
    functionUses: 0
    functionsReached:
    - ossl_asn1_time_to_tm
    linkageType: ''
    returnType: int
    signature: "int asn1_generalizedtime_to_tm(struct tm *tm,\n                                      const
      ASN1_GENERALIZEDTIME *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_generalizedtime_to_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ASN1_GENERALIZEDTIME_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_gentm.c
    functionUses: 2
    functionsReached:
    - asn1_generalizedtime_to_tm
    linkageType: ''
    returnType: int
    signature: int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:43,1
    - Dst: ASN1_GENERALIZEDTIME_check
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:47,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - str
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: ASN1_GENERALIZEDTIME_set_string
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_gentm.c
    functionUses: 3
    functionsReached:
    - ASN1_GENERALIZEDTIME_check
    - strlen
    - ASN1_STRING_copy
    linkageType: ''
    returnType: int
    signature: int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const
      char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: ASN1_GENERALIZEDTIME_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_gentm.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_adj
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME
      *s,\n                                               time_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:69,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:74,1
    - Dst: ossl_asn1_time_from_tm
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - s
    - t
    - offset_day
    - offset_sec
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - time_t
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: ASN1_GENERALIZEDTIME_adj
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_gentm.c
    functionUses: 2
    functionsReached:
    - OPENSSL_gmtime
    - ossl_asn1_time_from_tm
    - OPENSSL_gmtime_adj
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME
      *s,\n                                               time_t t, int offset_day,\n
      \                                              long offset_sec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_print
      Src: /src/openssl-3.0.15/crypto/asn1/a_gentm.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bp
    - tm
    argTypes:
    - BIO*
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: ASN1_GENERALIZEDTIME_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_gentm.c
    functionUses: 6
    functionsReached:
    - ASN1_TIME_print
    linkageType: ''
    returnType: int
    signature: int ASN1_GENERALIZEDTIME_print(BIO *bp, const ASN1_GENERALIZEDTIME
      *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:23,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:23,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:24,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:27,1
    - Dst: ASN1_i2d_bio
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:28,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: ASN1_i2d_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - ASN1_i2d_bio
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, const void *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:40,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:44,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:46,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:51,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:64,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - i2d
    - out
    - x
    argTypes:
    - i2d_of_void*
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: ASN1_i2d_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - i2d
    - OPENSSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, const void *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:76,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:77,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:80,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:81,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - it
    - out
    - x
    argTypes:
    - ASN1_ITEM*
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: ASN1_item_i2d_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c
    functionUses: 7
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - ASN1_item_i2d_bio
    - BIO_set_fp
    linkageType: ''
    returnType: int
    signature: int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, const void *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:92,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:94,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - it
    - out
    - x
    argTypes:
    - ASN1_ITEM*
    - BIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 111
    functionName: ASN1_item_i2d_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c
    functionUses: 9
    functionsReached:
    - BIO_write
    - OPENSSL_free
    - ASN1_item_i2d
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:118,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:122,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:122,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:124,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - it
    - val
    argTypes:
    - ASN1_ITEM*
    - ASN1_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: ASN1_item_i2d_mem_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_i2d_fp.c
    functionUses: 1
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - ASN1_item_i2d_bio
    - BIO_s_mem
    linkageType: ''
    returnType: BIO
    signature: BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: BIO_f_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_asn1(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:104,1
    - Dst: asn1_bio_init
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:107,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:108,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:111,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 115
    functionName: asn1_bio_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_init
    - ERR_raise
    - OPENSSL_zalloc
    - BIO_set_data
    - OPENSSL_free
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int asn1_bio_new(BIO *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:119,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - BIO_ASN1_BUF_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: asn1_bio_init
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int asn1_bio_init(BIO_ASN1_BUF_CTX *ctx, int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:137,1
    - Dst: BIO_ASN1_BUF_CTX*::prefix_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:142,1
    - Dst: BIO_ASN1_BUF_CTX*::suffix_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:147,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:148,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: asn1_bio_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ASN1_BUF_CTX*::suffix_free
    - BIO_ASN1_BUF_CTX*::prefix_free
    - BIO_get_data
    - BIO_set_data
    - OPENSSL_free
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int asn1_bio_free(BIO *b)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:161,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:162,1
    - Dst: asn1_bio_setup_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:173,1
    - Dst: asn1_bio_flush_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:181,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:190,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:191,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:194,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:201,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:221,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:239,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:247,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:248,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 252
    functionName: asn1_bio_write
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_put_object
    - BIO_get_data
    - ossl_assert
    - asn1_bio_setup_ex
    - BIO_copy_next_retry
    - asn1_bio_flush_ex
    - BIO_clear_retry_flags
    - BIO_write
    - ASN1_object_size
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int asn1_bio_write(BIO *b, const char *in, int inl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:262,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:262,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:270,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 277
    functionName: asn1_bio_flush_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - BIO_write
    - cleanup
    - BIO_next
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_flush_ex(BIO *b, BIO_ASN1_BUF_CTX *ctx,\n                             asn1_ps_func
      *cleanup, asn1_bio_state_t next)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:284,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:285,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 293
    functionName: asn1_bio_setup_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - setup
    - BIO_clear_retry_flags
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:297,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: asn1_bio_read
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int asn1_bio_read(BIO *b, char *in, int inl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_write
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:305,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: asn1_bio_puts
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int asn1_bio_puts(BIO *b, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:310,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - str
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: asn1_bio_gets
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int asn1_bio_gets(BIO *b, char *str, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:318,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: asn1_bio_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long asn1_bio_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:331,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:334,1
    - Dst: asn1_bio_setup_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:375,1
    - Dst: asn1_bio_flush_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:381,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:388,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:390,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:397,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - b
    - cmd
    - arg1
    - arg2
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 324
    functionDepth: 5
    functionLinenumber: 324
    functionLinenumberEnd: 402
    functionName: asn1_bio_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_ctrl
    - asn1_bio_setup_ex
    - asn1_bio_flush_ex
    - BIO_clear_retry_flags
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long asn1_bio_ctrl(BIO *b, int cmd, long arg1, void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:410,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: asn1_bio_set_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_set_ex(BIO *b, int cmd,\n                           asn1_ps_func
      *ex_func, asn1_ps_func *ex_free_func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:419,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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: asn1_bio_get_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: int
    signature: "int asn1_bio_get_ex(BIO *b, int cmd,\n                           asn1_ps_func
      **ex_func,\n                           asn1_ps_func **ex_free_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_set_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - prefix
    - prefix_free
    argTypes:
    - BIO*
    - asn1_ps_func*
    - asn1_ps_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: BIO_asn1_set_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - asn1_bio_set_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix,\n                        asn1_ps_func
      *prefix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_get_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - pprefix
    - pprefix_free
    argTypes:
    - BIO*
    - asn1_ps_func**
    - asn1_ps_func**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: BIO_asn1_get_prefix
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_get_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix,\n                        asn1_ps_func
      **pprefix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_set_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - suffix
    - suffix_free
    argTypes:
    - BIO*
    - asn1_ps_func*
    - asn1_ps_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: BIO_asn1_set_suffix
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 1
    functionsReached:
    - asn1_bio_set_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,\n                        asn1_ps_func
      *suffix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_bio_get_ex
      Src: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - psuffix
    - psuffix_free
    argTypes:
    - BIO*
    - asn1_ps_func**
    - asn1_ps_func**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: BIO_asn1_get_suffix
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/bio_asn1.c
    functionUses: 0
    functionsReached:
    - asn1_bio_get_ex
    linkageType: ''
    returnType: int
    signature: "int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,\n                        asn1_ps_func
      **psuffix_free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: ASN1_BROKEN_SEQUENCE
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/n_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASN1_BROKEN_SEQUENCE(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: static_ASN1_BROKEN_SEQUENCE_END
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/n_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_ASN1_BROKEN_SEQUENCE_END(stname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:20,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:22,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:24,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:25,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: ASN1_BIT_STRING_name_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/t_bitst.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - ASN1_BIT_STRING_get_bit
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: "int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs,\n                               BIT_STRING_BITNAME
      *tbl, int indent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_num_asc
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:37,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: ASN1_BIT_STRING_set_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/t_bitst.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_num_asc
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: "int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name,
      int value,\n                            BIT_STRING_BITNAME *tbl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:51,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/t_bitst.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - name
    - tbl
    argTypes:
    - char*
    - BIT_STRING_BITNAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: ASN1_BIT_STRING_num_asc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/t_bitst.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:27,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:28,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:29,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:30,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:31,1
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:32,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:34,1
    - Dst: EVP_PKEY_print_public
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:36,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:37,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:41,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:43,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:44,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:50,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:51,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/t_spki.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - out
    - spki
    argTypes:
    - BIO*
    - NETSCAPE_SPKI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 56
    functionName: NETSCAPE_SPKI_print
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/t_spki.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - X509_PUBKEY_get
    - OBJ_obj2nid
    - EVP_PKEY_print_public
    - EVP_PKEY_free
    - BIO_write
    - BIO_printf
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:30,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:36,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:39,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:40,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:40,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:47,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:51,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:53,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:56,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:58,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:63,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:64,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:65,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:67,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:70,1
    - Dst: EVP_VerifyFinal
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:77,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:83,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 5
    argNames:
    - i2d
    - a
    - signature
    - data
    - pkey
    argTypes:
    - i2d_of_void*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 85
    functionName: ASN1_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_verify.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_get_digestbyname
    - EVP_VerifyInit_ex
    - OPENSSL_malloc
    - EVP_VerifyFinal
    - OBJ_obj2nid
    - EVP_MD_CTX_new
    - ERR_raise
    - i2d
    - OBJ_nid2sn
    - OPENSSL_clear_free
    - EVP_VerifyUpdate
    linkageType: ''
    returnType: int
    signature: "int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature,\n
      \               char *data, EVP_PKEY *pkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_verify_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - it
    - alg
    - signature
    - data
    - pkey
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: ASN1_item_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_verify.c
    functionUses: 1
    functionsReached:
    - ASN1_item_verify_ex
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_verify(const ASN1_ITEM *it, const X509_ALGOR *alg,\n
      \                    const ASN1_BIT_STRING *signature, const void *data,\n                     EVP_PKEY
      *pkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evp_md_ctx_new_ex
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:104,1
    - Dst: ASN1_item_verify_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:105,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:106,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:106,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - it
    - alg
    - signature
    - data
    - id
    - pkey
    - libctx
    - propq
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - ASN1_OCTET_STRING*
    - EVP_PKEY*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 8
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: ASN1_item_verify_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_verify.c
    functionUses: 5
    functionsReached:
    - EVP_MD_CTX_free
    - ASN1_item_verify_ctx
    - evp_md_ctx_new_ex
    - EVP_MD_CTX_get_pkey_ctx
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_verify_ex(const ASN1_ITEM *it, const X509_ALGOR *alg,\n
      \                       const ASN1_BIT_STRING *signature, const void *data,\n
      \                       const ASN1_OCTET_STRING *id, EVP_PKEY *pkey,\n                        OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:122,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:122,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:125,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:130,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:135,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:136,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:140,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:142,1
    - Dst: EVP_PKEY*::ameth::item_verify
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:153,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:166,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:167,1
    - Dst: ossl_rsa_pss_to_ctx
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:171,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:172,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:177,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:178,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:183,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:185,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:196,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:210,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:219,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_verify.c:224,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 5
    argNames:
    - it
    - alg
    - signature
    - data
    - ctx
    argTypes:
    - ASN1_ITEM*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    - void*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 226
    functionName: ASN1_item_verify_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_verify.c
    functionUses: 1
    functionsReached:
    - OBJ_find_sigid_algs
    - EVP_DigestVerifyInit
    - OBJ_obj2nid
    - evp_pkey_is_legacy
    - EVP_MD_CTX_get_pkey_ctx
    - ASN1_item_i2d
    - ERR_raise
    - OBJ_nid2sn
    - EVP_get_digestbynid
    - OPENSSL_clear_free
    - ossl_rsa_pss_to_ctx
    - EVP_DigestVerify
    - EVP_PKEY_is_a
    - EVP_PKEY*::ameth::item_verify
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg,\n
      \                        const ASN1_BIT_STRING *signature, const void *data,\n
      \                        EVP_MD_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:24,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:27,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:28,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:29,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:32,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:33,1
    - Dst: do_tcreate
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 40
    functionName: stbl_module_init
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - ERR_raise
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - do_tcreate
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int stbl_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_cleanup
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: stbl_module_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_TABLE_cleanup
    linkageType: ''
    returnType: void
    signature: void stbl_module_finish(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ASN1_add_stable_module
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ASN1_add_stable_module(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:63,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:65,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:67,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:70,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:73,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:74,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:77,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:78,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:81,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:82,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:85,1
    - Dst: ASN1_str2mask
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:86,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:88,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:89,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:91,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:102,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:107,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:113,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c:115,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 2
    argNames:
    - value
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 117
    functionName: do_tcreate
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mstbl.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_num
    - ERR_raise_data
    - ERR_raise
    - ASN1_STRING_TABLE_add
    - sk_CONF_VALUE_pop_free
    - X509V3_parse_list
    - STACK_OF
    - strcmp
    - OBJ_ln2nid
    - strtoul
    - ASN1_str2mask
    - sk_CONF_VALUE_value
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: int do_tcreate(const char *value, const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:21,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:22,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:29,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:37,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 49
    functionName: ASN1_item_pack
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_pack.c
    functionUses: 8
    functionsReached:
    - ASN1_STRING_free
    - ASN1_item_i2d
    - ERR_raise
    - ASN1_STRING_new
    - OPENSSL_free
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING
      **oct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:59,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_pack.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - oct
    - it
    argTypes:
    - ASN1_STRING*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: ASN1_item_unpack
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_pack.c
    functionUses: 8
    functionsReached:
    - ASN1_item_d2i
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:27,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:30,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:32,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:35,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:36,1
    - Dst: do_create
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:37,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: oid_module_init
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - do_create
    - ERR_raise
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int oid_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: oid_module_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void oid_module_finish(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ASN1_add_oid_module
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_moid.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ASN1_add_oid_module(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:66,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:79,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:81,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:84,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:91,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:94,1
    - Dst: OBJ_create
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:99,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_moid.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - value
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 104
    functionName: do_create
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_moid.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    - memcpy
    - OPENSSL_malloc
    - strrchr
    - OBJ_create
    - ERR_raise
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int do_create(const char *value, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: nsseq_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/nsseq.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: "int nsseq_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                   void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_flags_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - out
    - it
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: ASN1_item_ndef_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - asn1_item_flags_i2d
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_ndef_i2d(const ASN1_VALUE *val, unsigned char **out,\n
      \                      const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_item_flags_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - out
    - it
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ASN1_item_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 13
    functionsReached:
    - asn1_item_flags_i2d
    linkageType: ''
    returnType: int
    signature: int ASN1_item_i2d(const ASN1_VALUE *val, unsigned char **out, const
      ASN1_ITEM *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:62,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:66,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:70,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - val
    - out
    - it
    - flags
    argTypes:
    - ASN1_VALUE*
    - unsigned char**
    - ASN1_ITEM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: asn1_item_flags_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 2
    functionsReached:
    - OPENSSL_malloc
    - ASN1_item_ex_i2d
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int asn1_item_flags_i2d(const ASN1_VALUE *val, unsigned char **out,\n
      \                              const ASN1_ITEM *it, int flags)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:104,1
    - Dst: asn1_i2d_ex_primitive
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:114,1
    - Dst: asn1_i2d_ex_primitive
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:117,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:125,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:128,1
    - Dst: ossl_asn1_get_choice_selector_const
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:130,1
    - Dst: ossl_asn1_get_const_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:135,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:136,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:139,1
    - Dst: ASN1_EXTERN_FUNCS*::asn1_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:146,1
    - Dst: ossl_asn1_enc_restore
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:155,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:171,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:178,1
    - Dst: ossl_asn1_get_const_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:181,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:182,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:188,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:192,1
    - Dst: ossl_asn1_do_adb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:196,1
    - Dst: ossl_asn1_get_const_field_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:199,1
    - Dst: asn1_template_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:201,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:204,1
    - Dst: asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:205,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 214
    functionName: ASN1_item_ex_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 4
    functionsReached:
    - ASN1_EXTERN_FUNCS*::asn1_ex_i2d
    - ossl_asn1_do_adb
    - ASN1_put_object
    - ossl_asn1_get_choice_selector_const
    - asn1_cb
    - ASN1_object_size
    - ERR_raise
    - ossl_asn1_enc_restore
    - ASN1_put_eoc
    - asn1_i2d_ex_primitive
    - asn1_template_ex_i2d
    - ossl_asn1_get_const_field_ptr
    linkageType: ''
    returnType: int
    signature: "int ASN1_item_ex_i2d(const ASN1_VALUE **pval, unsigned char **out,\n
      \                    const ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:272,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:272,1
    - Dst: sk_const_ASN1_VALUE_num
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:305,1
    - Dst: sk_const_ASN1_VALUE_value
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:306,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:307,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:307,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:312,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:317,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:322,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:332,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:334,1
    - Dst: asn1_set_seq_out
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:336,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:336,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:339,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:341,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:350,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:350,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:353,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:359,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:362,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:363,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:363,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:365,1
    - Dst: ASN1_item_ex_i2d
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:371,1
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:371,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:374,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 5
    argNames:
    - pval
    - out
    - tt
    - tag
    - iclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_TEMPLATE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 378
    functionName: asn1_template_ex_i2d
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - sk_const_ASN1_VALUE_value
    - ASN1_put_object
    - asn1_set_seq_out
    - ASN1_ITEM_ptr
    - ERR_raise
    - sk_const_ASN1_VALUE_num
    - STACK_OF
    - ASN1_put_eoc
    - ASN1_item_ex_i2d
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: "int asn1_template_ex_i2d(const ASN1_VALUE **pval, unsigned char **out,\n
      \                               const ASN1_TEMPLATE *tt, int tag, int iclass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: der_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int der_cmp(const void *a, const void *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asn1_ex_i2c
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:482,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:513,1
    - Dst: asn1_ex_i2c
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:514,1
    - Dst: ASN1_put_eoc
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:516,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - pval
    - out
    - it
    - tag
    - aclass
    argTypes:
    - ASN1_VALUE**
    - unsigned char**
    - ASN1_ITEM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 524
    functionName: asn1_i2d_ex_primitive
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - asn1_ex_i2c
    - ASN1_put_object
    - ASN1_put_eoc
    - ASN1_object_size
    linkageType: ''
    returnType: int
    signature: "int asn1_i2d_ex_primitive(const ASN1_VALUE **pval, unsigned char **out,\n
      \                                const ASN1_ITEM *it, int tag, int aclass)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_PRIMITIVE_FUNCS*::prim_i2c
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:541,1
    - Dst: ossl_i2c_ASN1_BIT_STRING
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:598,1
    - Dst: ossl_i2c_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:606,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c:644,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 4
    argNames:
    - pval
    - cout
    - putype
    - it
    argTypes:
    - ASN1_VALUE**
    - unsigned char*
    - int*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 646
    functionName: asn1_ex_i2c
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_enc.c
    functionUses: 1
    functionsReached:
    - ASN1_PRIMITIVE_FUNCS*::prim_i2c
    - ossl_i2c_ASN1_BIT_STRING
    - ossl_i2c_ASN1_INTEGER
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int asn1_ex_i2c(const ASN1_VALUE **pval, unsigned char *cout, int
      *putype,\n                       const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/asn1/a_octet.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: ASN1_OCTET_STRING_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_octet.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_dup
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: ASN1_OCTET_STRING_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_octet.c
    functionUses: 7
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a,\n                          const
      ASN1_OCTET_STRING *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: ASN1_OCTET_STRING_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_octet.c
    functionUses: 21
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *x, const unsigned char
      *d,\n                          int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: _asn1_check_infinite_end
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _asn1_check_infinite_end(const unsigned char **p, long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asn1_check_infinite_end
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: ASN1_check_infinite_end
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - _asn1_check_infinite_end
    linkageType: ''
    returnType: int
    signature: int ASN1_check_infinite_end(unsigned char **p, long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asn1_check_infinite_end
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - len
    argTypes:
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: ASN1_const_check_infinite_end
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - _asn1_check_infinite_end
    linkageType: ''
    returnType: int
    signature: int ASN1_const_check_infinite_end(const unsigned char **p, long len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:56,1
    - Dst: asn1_get_length
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:88,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:105,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - pp
    - plength
    - ptag
    - pclass
    - omax
    argTypes:
    - unsigned char**
    - long*
    - int*
    - int*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 107
    functionName: ASN1_get_object
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 5
    functionsReached:
    - asn1_get_length
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag,\n
      \                   int *pclass, long omax)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - pp
    - inf
    - rl
    - max
    argTypes:
    - unsigned char**
    - int*
    - long*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 155
    functionName: asn1_get_length
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int asn1_get_length(const unsigned char **pp, int *inf, long *rl,\n
      \                          long max)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_length
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - pp
    - constructed
    - length
    - tag
    - xclass
    argTypes:
    - unsigned char**
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 188
    functionName: ASN1_put_object
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - asn1_put_length
    linkageType: ''
    returnType: void
    signature: "void ASN1_put_object(unsigned char **pp, int constructed, int length,
      int tag,\n                     int xclass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: ASN1_put_eoc
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_put_eoc(unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pp
    - length
    argTypes:
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 220
    functionName: asn1_put_length
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void asn1_put_length(unsigned char **pp, int length)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - constructed
    - length
    - tag
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 249
    functionName: ASN1_object_size
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_object_size(int constructed, int length, int tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - str
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 262
    functionName: ASN1_STRING_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 8
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:270,1
    - Dst: ASN1_STRING_copy
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:273,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: ASN1_STRING_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 6
    functionsReached:
    - ASN1_STRING_free
    - ASN1_STRING_copy
    - ASN1_STRING_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:289,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:299,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:306,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:308,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:311,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - str
    - _data
    - len_in
    argTypes:
    - ASN1_STRING*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 332
    functionName: ASN1_STRING_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 23
    functionsReached:
    - OPENSSL_realloc
    - strlen
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_set(ASN1_STRING *str, const void *_data, int len_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - str
    - data
    - len
    argTypes:
    - ASN1_STRING*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: ASN1_STRING_set0
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 15
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: ASN1_STRING_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 13
    functionsReached:
    - ASN1_STRING_type_new
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_STRING_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:350,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: ASN1_STRING_type_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 7
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ASN1_STRING_type_new(int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:364,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - embed
    argTypes:
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: ossl_asn1_string_embed_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ossl_asn1_string_embed_free(ASN1_STRING *a, int embed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_asn1_string_embed_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: ASN1_STRING_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 19
    functionsReached:
    - ossl_asn1_string_embed_free
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_free(ASN1_STRING *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:381,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: ASN1_STRING_clear_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 4
    functionsReached:
    - OPENSSL_cleanse
    - ASN1_STRING_free
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_clear_free(ASN1_STRING *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_STRING*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: ASN1_STRING_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 7
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: ASN1_STRING_length
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_length(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: ASN1_STRING_length_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ASN1_STRING_length_set(ASN1_STRING *x, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: ASN1_STRING_type
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_STRING_type(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: ASN1_STRING_get0_data
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: ASN1_STRING_data
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ASN1_STRING_data(ASN1_STRING *x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:443,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:445,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:446,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:449,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:453,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:457,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:458,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:459,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:461,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:464,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c:464,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - text
    - sep
    - max_len
    argTypes:
    - STACK_OF*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 470
    functionName: ossl_sk_ASN1_UTF8STRING2text
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - sk_ASN1_UTF8STRING_value
    - OPENSSL_malloc
    - sk_ASN1_UTF8STRING_num
    - strlen
    - strncpy
    linkageType: ''
    returnType: char
    signature: "char *ossl_sk_ASN1_UTF8STRING2text(STACK_OF(ASN1_UTF8STRING) *text,\n
      \                                  const char *sep, size_t max_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:79,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:82,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:86,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:89,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:90,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - out
    - val
    - in
    - flags
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 101
    functionName: i2d_ASN1_bio_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_flush
    - BIO_free
    - SMIME_crlf_copy
    - ERR_raise
    - BIO_new_NDEF
    - ASN1_item_i2d_bio
    - BIO_pop
    linkageType: ''
    returnType: int
    signature: "int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,\n
      \                       const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:110,1
    - Dst: BIO_f_base64
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:110,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:112,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:118,1
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:119,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:120,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:121,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - out
    - val
    - in
    - flags
    - it
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 8
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: B64_write_ASN1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_flush
    - BIO_free
    - BIO_f_base64
    - ERR_raise
    - i2d_ASN1_bio_stream
    - BIO_pop
    - BIO_push
    linkageType: ''
    returnType: int
    signature: "int B64_write_ASN1(BIO *out, ASN1_VALUE *val, BIO *in, int flags,\n
      \                         const ASN1_ITEM *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:132,1
    - Dst: B64_write_ASN1
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:134,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 9
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: PEM_write_bio_ASN1_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - B64_write_ASN1
    linkageType: ''
    returnType: int
    signature: "int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in,
      int flags,\n                              const char *hdr, const ASN1_ITEM *it)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:144,1
    - Dst: BIO_f_base64
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:144,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:145,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:148,1
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:149,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:151,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:152,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:153,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - bio
    - it
    - x
    - libctx
    - propq
    argTypes:
    - BIO*
    - ASN1_ITEM*
    - ASN1_VALUE**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: b64_read_asn1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_flush
    - BIO_free
    - BIO_f_base64
    - ERR_raise
    - ASN1_item_d2i_bio_ex
    - BIO_pop
    - BIO_push
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *b64_read_asn1(BIO *bio, const ASN1_ITEM *it, ASN1_VALUE
      **x,\n                                 OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:260,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:271,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:272,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:273,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:274,1
    - Dst: asn1_write_micalg
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:275,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:276,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:278,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:281,1
    - Dst: asn1_output_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:282,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:284,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:288,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:289,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:290,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:291,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:292,1
    - Dst: B64_write_ASN1
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:293,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:294,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:306,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:315,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:316,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:317,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:320,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:321,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:322,1
    - Dst: B64_write_ASN1
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:324,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 10
    argNames:
    - bio
    - val
    - data
    - flags
    - ctype_nid
    - econt_nid
    - mdalgs
    - it
    - libctx
    - propq
    argTypes:
    - BIO*
    - ASN1_VALUE*
    - BIO*
    - int
    - int
    - int
    - STACK_OF*
    - ASN1_ITEM*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 238
    functionDepth: 9
    functionLinenumber: 238
    functionLinenumberEnd: 328
    functionName: SMIME_write_ASN1_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - BIO_puts
    - asn1_output_data
    - asn1_write_micalg
    - sk_X509_ALGOR_num
    - BIO_printf
    - B64_write_ASN1
    linkageType: ''
    returnType: int
    signature: "int SMIME_write_ASN1_ex(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,\n                        OSSL_LIB_CTX *libctx,
      const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_write_ASN1_ex
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 10
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: SMIME_write_ASN1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - SMIME_write_ASN1_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 6
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:354,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:358,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:368,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:372,1
    - Dst: ASN1_AUX*::asn1_cb
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:376,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:382,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - out
    - data
    - val
    - flags
    - it
    argTypes:
    - BIO*
    - BIO*
    - ASN1_VALUE*
    - int
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 389
    functionName: asn1_output_data
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_free
    - SMIME_crlf_copy
    - ERR_raise
    - ASN1_AUX*::asn1_cb
    - BIO_pop
    linkageType: ''
    returnType: int
    signature: "int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,\n
      \                           const ASN1_ITEM *it)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:402,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:403,1
    - Dst: mime_parse_hdr
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:412,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:413,1
    - Dst: mime_hdr_find
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:417,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:419,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:420,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:426,1
    - Dst: mime_param_find
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:428,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:430,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:431,1
    - Dst: multi_split
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:434,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:435,1
    - Dst: sk_BIO_num
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:436,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:437,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:438,1
    - Dst: sk_BIO_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:443,1
    - Dst: mime_parse_hdr
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:445,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:446,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:447,1
    - Dst: mime_hdr_find
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:453,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:455,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:456,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:457,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:461,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:462,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:463,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:465,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:466,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:469,1
    - Dst: b64_read_asn1
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:471,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:472,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:473,1
    - Dst: sk_BIO_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:478,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:479,1
    - Dst: sk_BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:480,1
    - Dst: sk_BIO_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:482,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:489,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:490,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:491,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:493,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:497,1
    - Dst: b64_read_asn1
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:499,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:500,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 7
    argNames:
    - bio
    - flags
    - bcont
    - it
    - x
    - libctx
    - propq
    argTypes:
    - BIO*
    - int
    - BIO**
    - ASN1_ITEM*
    - ASN1_VALUE**
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 397
    functionDepth: 7
    functionLinenumber: 397
    functionLinenumberEnd: 504
    functionName: SMIME_read_ASN1_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_BIO_value
    - sk_MIME_HEADER_pop_free
    - BIO_free
    - mime_hdr_find
    - mime_parse_hdr
    - mime_param_find
    - ERR_raise_data
    - ERR_raise
    - sk_BIO_num
    - sk_BIO_pop_free
    - STACK_OF
    - b64_read_asn1
    - strcmp
    - multi_split
    - sk_BIO_free
    linkageType: ''
    returnType: ASN1_VALUE
    signature: "ASN1_VALUE *SMIME_read_ASN1_ex(BIO *bio, int flags, BIO **bcont,\n
      \                              const ASN1_ITEM *it, ASN1_VALUE **x,\n                               OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_ASN1_ex
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - bcont
    - it
    argTypes:
    - BIO*
    - BIO**
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: SMIME_read_ASN1
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - SMIME_read_ASN1_ex
    linkageType: ''
    returnType: ASN1_VALUE
    signature: ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM
      *it)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:521,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:529,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:529,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:531,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:534,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:536,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:537,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:541,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:542,1
    - Dst: strip_eol
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:543,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:549,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:552,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:554,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:558,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:562,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:563,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - in
    - out
    - flags
    argTypes:
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 512
    functionDepth: 6
    functionLinenumber: 512
    functionLinenumberEnd: 569
    functionName: SMIME_crlf_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 3
    functionsReached:
    - BIO_new
    - BIO_flush
    - BIO_read
    - BIO_gets
    - BIO_write
    - BIO_free
    - ERR_raise
    - strip_eol
    - BIO_f_buffer
    - BIO_printf
    - BIO_pop
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int SMIME_crlf_copy(BIO *in, BIO *out, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:576,1
    - Dst: mime_parse_hdr
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:579,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:580,1
    - Dst: mime_hdr_find
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:583,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:585,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:586,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:589,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:590,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:592,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:595,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:596,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 601
    functionName: SMIME_text
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_read
    - sk_MIME_HEADER_pop_free
    - mime_hdr_find
    - mime_parse_hdr
    - ERR_raise_data
    - ERR_raise
    - STACK_OF
    - strcmp
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int SMIME_text(BIO *in, BIO *out)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:614,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:617,1
    - Dst: sk_BIO_new_null
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:621,1
    - Dst: BIO_get_line
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:625,1
    - Dst: mime_bound_check
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:626,1
    - Dst: sk_BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:631,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:632,1
    - Dst: strip_eol
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:638,1
    - Dst: sk_BIO_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:642,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:643,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:646,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:646,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:649,1
    - Dst: OPENSSL_NO_CMS
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:652,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:658,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:660,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:664,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:667,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - bio
    - flags
    - bound
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 608
    functionDepth: 6
    functionLinenumber: 608
    functionLinenumberEnd: 669
    functionName: multi_split
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - BIO_set_mem_eof_return
    - BIO_new
    - sk_BIO_push
    - BIO_free
    - strip_eol
    - STACK_OF
    - strlen
    - OPENSSL_NO_CMS
    - mime_bound_check
    - BIO_get_line
    - BIO_write
    - sk_BIO_new_null
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int multi_split(BIO *bio, int flags, const char *bound, STACK_OF(BIO)
      **ret)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:687,1
    - Dst: sk_MIME_HEADER_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:690,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:693,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:695,1
    - Dst: strip_ends
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:714,1
    - Dst: mime_debug
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:721,1
    - Dst: mime_hdr_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:723,1
    - Dst: strip_ends
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:723,1
    - Dst: sk_MIME_HEADER_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:726,1
    - Dst: strip_ends
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:749,1
    - Dst: mime_hdr_addparam
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:758,1
    - Dst: strip_ends
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:758,1
    - Dst: mime_debug
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:762,1
    - Dst: mime_debug
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:772,1
    - Dst: mime_hdr_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:780,1
    - Dst: strip_ends
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:780,1
    - Dst: sk_MIME_HEADER_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:783,1
    - Dst: mime_hdr_addparam
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:788,1
    - Dst: strip_ends
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:788,1
    - Dst: mime_hdr_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:797,1
    - Dst: sk_MIME_HEADER_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:798,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 103
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 800
    functionName: mime_parse_hdr
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached:
    - ossl_isspace
    - sk_MIME_HEADER_new
    - sk_MIME_HEADER_pop_free
    - mime_debug
    - mime_hdr_new
    - mime_hdr_addparam
    - STACK_OF
    - strip_ends
    - BIO_gets
    - sk_MIME_HEADER_push
    - mime_hdr_free
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *mime_parse_hdr(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strip_end
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:804,1
    - Dst: strip_start
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: strip_ends
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strip_start
    - strip_end
    linkageType: ''
    returnType: char
    signature: char *strip_ends(char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:820,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 824
    functionName: strip_start
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    linkageType: ''
    returnType: char
    signature: char *strip_start(char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:833,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:841,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 847
    functionName: strip_end
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - ossl_isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strip_end(char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:855,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:858,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:861,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:864,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:866,1
    - Dst: sk_MIME_PARAM_new
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:871,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:876,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:877,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:878,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 880
    functionName: mime_hdr_new
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - ossl_tolower
    - OPENSSL_free
    - sk_MIME_PARAM_new
    - OPENSSL_strdup
    linkageType: ''
    returnType: MIME_HEADER
    signature: MIME_HEADER *mime_hdr_new(const char *name, const char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:888,1
    - Dst: ossl_tolower
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:892,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:895,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:900,1
    - Dst: sk_MIME_PARAM_push
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:905,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:909,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:910,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:911,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - mhdr
    - name
    - value
    argTypes:
    - MIME_HEADER*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 882
    functionDepth: 2
    functionLinenumber: 882
    functionLinenumberEnd: 913
    functionName: mime_hdr_addparam
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - sk_MIME_PARAM_push
    - ossl_tolower
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: int mime_hdr_addparam(MIME_HEADER *mhdr, const char *name, const char
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MIME_HEADER**
    - MIME_HEADER**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 922
    functionName: mime_hdr_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int mime_hdr_cmp(const MIME_HEADER *const *a,\n                        const
      MIME_HEADER *const *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - MIME_PARAM**
    - MIME_PARAM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 930
    functionName: mime_param_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int mime_param_cmp(const MIME_PARAM *const *a,\n                          const
      MIME_PARAM *const *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_MIME_HEADER_find
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:943,1
    - Dst: sk_MIME_HEADER_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hdrs
    - name
    argTypes:
    - STACK_OF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 945
    functionName: mime_hdr_find
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached:
    - sk_MIME_HEADER_value
    - sk_MIME_HEADER_find
    linkageType: ''
    returnType: MIME_HEADER
    signature: MIME_HEADER *mime_hdr_find(STACK_OF(MIME_HEADER) *hdrs, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_MIME_PARAM_find
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:954,1
    - Dst: sk_MIME_PARAM_value
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hdr
    - name
    argTypes:
    - MIME_HEADER*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 956
    functionName: mime_param_find
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - sk_MIME_PARAM_find
    - sk_MIME_PARAM_value
    linkageType: ''
    returnType: MIME_PARAM
    signature: MIME_PARAM *mime_param_find(MIME_HEADER *hdr, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:962,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:963,1
    - Dst: sk_MIME_PARAM_pop_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:965,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - MIME_HEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 967
    functionName: mime_hdr_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - sk_MIME_PARAM_pop_free
    linkageType: ''
    returnType: void
    signature: void mime_hdr_free(MIME_HEADER *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:971,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:972,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - param
    argTypes:
    - MIME_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 974
    functionName: mime_param_free
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void mime_param_free(MIME_PARAM *param)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:985,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:987,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:992,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:993,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/asn1/asn_mime.c:994,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - line
    - linelen
    - bound
    - blen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1000
    functionName: mime_bound_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int mime_bound_check(char *line, int linelen, const char *bound, int
      blen)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 3
    argNames:
    - linebuf
    - plen
    - flags
    argTypes:
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1036
    functionName: strip_eol
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn_mime.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strip_eol(char *linebuf, int *plen, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: IMPLEMENT_ASN1_STRING_FUNCTIONS
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/tasn_typ.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_ASN1_STRING_FUNCTIONS(sname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - d
    - len
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: ASN1_BIT_STRING_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c
    functionUses: 4
    functionsReached:
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_set(ASN1_BIT_STRING *x, unsigned char *d, int len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:71,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 77
    functionName: ossl_i2c_ASN1_BIT_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ossl_i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:98,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:117,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:129,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:137,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_BIT_STRING**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 141
    functionName: ossl_c2i_ASN1_BIT_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c
    functionUses: 1
    functionsReached:
    - ASN1_BIT_STRING_free
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - ASN1_BIT_STRING_new
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: "ASN1_BIT_STRING *ossl_c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,\n                                          const
      unsigned char **pp, long len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_clear_realloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:168,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:170,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - a
    - n
    - value
    argTypes:
    - ASN1_BIT_STRING*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 182
    functionName: ASN1_BIT_STRING_set_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c
    functionUses: 3
    functionsReached:
    - OPENSSL_clear_realloc
    - memset
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - ASN1_BIT_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: ASN1_BIT_STRING_get_bit
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - a
    - flags
    - flags_len
    argTypes:
    - ASN1_BIT_STRING*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: ASN1_BIT_STRING_check
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_bitstr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a,\n                          const
      unsigned char *flags, int flags_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_err.c:208,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/asn1/asn1_err.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: ossl_err_load_ASN1_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/asn1_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_ASN1_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ASN1_INTEGER_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 5
    functionsReached:
    - ASN1_STRING_dup
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - ASN1_INTEGER*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: ASN1_INTEGER_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 15
    functionsReached:
    - ASN1_STRING_cmp
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - src
    - len
    - pad
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: twos_complement
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void twos_complement(unsigned char *dst, const unsigned char *src,\n
      \                           size_t len, unsigned char pad)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: twos_complement
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - b
    - blen
    - neg
    - pp
    argTypes:
    - unsigned char*
    - size_t
    - int
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 146
    functionName: i2c_ibuf
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - twos_complement
    linkageType: ''
    returnType: size_t
    signature: "size_t i2c_ibuf(const unsigned char *b, size_t blen, int neg,\n                       unsigned
      char **pp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:193,1
    - Dst: twos_complement
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:202,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - b
    - pneg
    - p
    - plen
    argTypes:
    - unsigned char*
    - int*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 205
    functionName: c2i_ibuf
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - twos_complement
    linkageType: ''
    returnType: size_t
    signature: "size_t c2i_ibuf(unsigned char *b, int *pneg,\n                       const
      unsigned char *p, size_t plen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2c_ibuf
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - ASN1_INTEGER*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: ossl_i2c_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - i2c_ibuf
    linkageType: ''
    returnType: int
    signature: int ossl_i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pr
    - b
    - blen
    argTypes:
    - uint64_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 230
    functionName: asn1_get_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int asn1_get_uint64(uint64_t *pr, const unsigned char *b, size_t blen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - unsigned char[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: asn1_put_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t asn1_put_uint64(unsigned char b[sizeof(uint64_t)], uint64_t
      r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asn1_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:259,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:271,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pr
    - b
    - blen
    - neg
    argTypes:
    - int64_t*
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 283
    functionName: asn1_get_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_uint64
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int asn1_get_int64(int64_t *pr, const unsigned char *b, size_t blen,\n
      \                         int neg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: c2i_ibuf
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:293,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:299,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:306,1
    - Dst: c2i_ibuf
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:309,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:321,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - a
    - pp
    - len
    argTypes:
    - ASN1_INTEGER**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 325
    functionName: ossl_c2i_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - c2i_ibuf
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *ossl_c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned
      char **pp,\n                                    long len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:330,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:334,1
    - Dst: asn1_get_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pr
    - a
    - itype
    argTypes:
    - int64_t*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: asn1_string_get_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_int64
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int asn1_string_get_int64(int64_t *pr, const ASN1_STRING *a, int itype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:352,1
    - Dst: asn1_put_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:355,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - a
    - r
    - itype
    argTypes:
    - ASN1_STRING*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: asn1_string_set_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_put_uint64
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int asn1_string_set_int64(ASN1_STRING *a, int64_t r, int itype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:365,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:369,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:373,1
    - Dst: asn1_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pr
    - a
    - itype
    argTypes:
    - uint64_t*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 377
    functionName: asn1_string_get_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_get_uint64
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int asn1_string_get_uint64(uint64_t *pr, const ASN1_STRING *a,\n                                  int
      itype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:385,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - r
    - itype
    argTypes:
    - ASN1_STRING*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: asn1_string_set_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_put_uint64
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: int asn1_string_set_uint64(ASN1_STRING *a, uint64_t r, int itype)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:406,1
    - Dst: ASN1_get_object
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:413,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:432,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:443,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:447,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:455,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:457,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - a
    - pp
    - length
    argTypes:
    - ASN1_INTEGER**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 459
    functionName: d2i_ASN1_UINTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - ASN1_INTEGER_new
    - OPENSSL_free
    - ASN1_get_object
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: "ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char
      **pp,\n                                long length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_type_new
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:468,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:475,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:479,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:479,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:482,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:487,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:488,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:493,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:496,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - bn
    - ai
    - atype
    argTypes:
    - BIGNUM*
    - ASN1_STRING*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 503
    functionName: bn_to_asn1_string
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_type_new
    - BN_bn2bin
    - ERR_raise
    - BN_num_bytes
    - BN_is_negative
    - ASN1_INTEGER_free
    - ASN1_STRING_set
    - BN_is_zero
    linkageType: ''
    returnType: ASN1_STRING
    signature: "ASN1_STRING *bn_to_asn1_string(const BIGNUM *bn, ASN1_STRING *ai,\n
      \                                     int atype)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:511,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:515,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:517,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ai
    - bn
    - itype
    argTypes:
    - ASN1_INTEGER*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 523
    functionName: asn1_string_to_bn
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_set_negative
    - ERR_raise
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *asn1_string_to_bn(const ASN1_INTEGER *ai, BIGNUM *bn,\n                                 int
      itype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - int64_t*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: ASN1_INTEGER_get_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 3
    functionsReached:
    - asn1_string_get_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_INTEGER*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: ASN1_INTEGER_set_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - uint64_t*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: ASN1_INTEGER_get_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 3
    functionsReached:
    - asn1_string_get_uint64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_INTEGER*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: ASN1_INTEGER_set_uint64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_set_uint64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - ASN1_INTEGER*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: ASN1_INTEGER_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 20
    functionsReached:
    - ASN1_INTEGER_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 550
    functionDepth: 5
    functionLinenumber: 550
    functionLinenumberEnd: 562
    functionName: ASN1_INTEGER_get
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 15
    functionsReached:
    - ASN1_INTEGER_get_int64
    linkageType: ''
    returnType: long
    signature: long ASN1_INTEGER_get(const ASN1_INTEGER *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_asn1_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 4
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: BN_to_ASN1_INTEGER
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 10
    functionsReached:
    - bn_to_asn1_string
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_to_bn
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ai
    - bn
    argTypes:
    - ASN1_INTEGER*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 569
    functionDepth: 5
    functionLinenumber: 569
    functionLinenumberEnd: 572
    functionName: ASN1_INTEGER_to_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 11
    functionsReached:
    - asn1_string_to_bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_get_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - a
    argTypes:
    - int64_t*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: ASN1_ENUMERATED_get_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_get_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_set_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - r
    argTypes:
    - ASN1_ENUMERATED*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 582
    functionName: ASN1_ENUMERATED_set_int64
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - asn1_string_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_set_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - ASN1_ENUMERATED*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: ASN1_ENUMERATED_set
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - ASN1_ENUMERATED_set_int64
    linkageType: ''
    returnType: int
    signature: int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_get_int64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 5
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: ASN1_ENUMERATED_get
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 5
    functionsReached:
    - ASN1_ENUMERATED_get_int64
    linkageType: ''
    returnType: long
    signature: long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_asn1_string
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - ai
    argTypes:
    - BIGNUM*
    - ASN1_ENUMERATED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: BN_to_ASN1_ENUMERATED
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 0
    functionsReached:
    - bn_to_asn1_string
    linkageType: ''
    returnType: ASN1_ENUMERATED
    signature: ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED
      *ai)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_string_to_bn
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ai
    - bn
    argTypes:
    - ASN1_ENUMERATED*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 5
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: ASN1_ENUMERATED_to_BN
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 1
    functionsReached:
    - asn1_string_to_bn
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2i_ibuf
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:624,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:628,1
    - Dst: c2i_ibuf
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:631,1
    - Dst: asn1_get_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ret
    - neg
    - pp
    - len
    argTypes:
    - uint64_t*
    - int*
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 633
    functionName: ossl_c2i_uint64_int
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - c2i_ibuf
    - asn1_get_uint64
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_c2i_uint64_int(uint64_t *ret, int *neg,\n                        const
      unsigned char **pp, long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asn1_put_uint64
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:640,1
    - Dst: i2c_ibuf
      Src: /src/openssl-3.0.15/crypto/asn1/a_int.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - r
    - neg
    argTypes:
    - unsigned char*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: ossl_i2c_uint64_int
    functionSourceFile: /src/openssl-3.0.15/crypto/asn1/a_int.c
    functionUses: 2
    functionsReached:
    - asn1_put_uint64
    - i2c_ibuf
    linkageType: ''
    returnType: int
    signature: int ossl_i2c_uint64_int(unsigned char *p, uint64_t r, int neg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:39,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:41,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:43,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:46,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:48,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:59,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:61,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:63,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:66,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c:68,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: BF_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_cfb64.c
    functionUses: 0
    functionsReached:
    - BF_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: n2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: l2nn
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: n2l
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: l2n
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - LL
    - ','
    - R
    - ','
    - S
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: BF_ENC
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF_ENC(LL,R,S,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: BF_options
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_ecb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *BF_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_ecb.c:36,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_ecb.c:38,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_ecb.c:41,1
    - Dst: BF_decrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_ecb.c:43,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ecb.c:45,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ecb.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - key
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - BF_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: BF_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_ecb.c
    functionUses: 0
    functionsReached:
    - l2n
    - BF_encrypt
    - BF_decrypt
    - n2l
    linkageType: ''
    returnType: void
    signature: "void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                   const BF_KEY *key, int encrypt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/bf/bf_skey.c:28,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_skey.c:62,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_skey.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - BF_KEY*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 73
    functionName: BF_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_skey.c
    functionUses: 1
    functionsReached:
    - BF_encrypt
    - memcpy
    linkageType: ''
    returnType: void
    signature: void BF_set_key(BF_KEY *key, int len, const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:41,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:42,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:43,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:44,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:45,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:46,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:47,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:48,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:49,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:50,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:51,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:52,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:53,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:54,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:55,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:56,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:58,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:59,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:60,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - BF_LONG*
    - BF_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: BF_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_enc.c
    functionUses: 3
    functionsReached:
    - BF_ENC
    linkageType: ''
    returnType: void
    signature: void BF_encrypt(BF_LONG *data, const BF_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:81,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:82,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:83,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:84,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:86,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:87,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:88,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:89,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:90,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:91,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:92,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:93,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:94,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:95,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:96,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:97,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:98,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:99,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:100,1
    - Dst: BF_ENC
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - data
    - key
    argTypes:
    - BF_LONG*
    - BF_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 106
    functionName: BF_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_enc.c
    functionUses: 1
    functionsReached:
    - BF_ENC
    linkageType: ''
    returnType: void
    signature: void BF_decrypt(BF_LONG *data, const BF_KEY *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:117,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:118,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:121,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:122,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:127,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:130,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:131,1
    - Dst: n2ln
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:134,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:139,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:142,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:143,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:145,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:146,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:148,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:149,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:152,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:153,1
    - Dst: BF_decrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:156,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:159,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:160,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:165,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:166,1
    - Dst: BF_decrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:169,1
    - Dst: l2nn
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:172,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:176,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_enc.c:177,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 181
    functionName: BF_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_enc.c
    functionUses: 0
    functionsReached:
    - n2ln
    - n2l
    - l2n
    - l2nn
    - BF_decrypt
    - BF_encrypt
    linkageType: ''
    returnType: void
    signature: "void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long
      length,\n                    const BF_KEY *schedule, unsigned char *ivec, int
      encrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:38,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:39,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:43,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:44,1
    - Dst: BF_encrypt
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:47,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:50,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:52,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:62,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c:63,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 67
    functionName: BF_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/bf/bf_ofb64.c
    functionUses: 0
    functionsReached:
    - BF_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, const BF_KEY *schedule,\n                      unsigned
      char *ivec, int *num)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:33,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:36,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:36,1
    - Dst: X509_get_key_usage
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:40,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:41,1
    - Dst: X509_get_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:45,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:47,1
    - Dst: ASN1_item_verify_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:54,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:54,1
    - Dst: ossl_x509_print_ex_brief
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:64,1
    - Dst: ERR_add_error_mem_bio
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:66,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:70,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - cmp_ctx
    - msg
    - cert
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 25
    functionDepth: 9
    functionLinenumber: 25
    functionLinenumberEnd: 74
    functionName: verify_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - ASN1_item_verify_ex
    - BIO_new
    - ASN1_ITEM_rptr
    - BIO_free
    - ossl_x509_print_ex_brief
    - ERR_add_error_mem_bio
    - X509_get_key_usage
    - ERR_raise
    - EVP_PKEY_free
    - ossl_assert
    - BIO_s_mem
    - X509_get_pubkey
    linkageType: ''
    returnType: int
    signature: "int verify_signature(const OSSL_CMP_CTX *cmp_ctx,\n                            const
      OSSL_CMP_MSG *msg, X509 *cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_calc_protection
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:83,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:89,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: verify_PBMAC
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_calc_protection
    - ASN1_BIT_STRING_free
    - CRYPTO_memcmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int verify_PBMAC(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:113,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:118,1
    - Dst: X509_STORE_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:122,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:123,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:127,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:130,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:132,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:136,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - trusted_store
    - cert
    argTypes:
    - OSSL_CMP_CTX*
    - X509_STORE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 105
    functionDepth: 9
    functionLinenumber: 105
    functionLinenumberEnd: 139
    functionName: OSSL_CMP_validate_cert_path
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - X509_STORE_CTX_init
    - ERR_GET_REASON
    - X509_STORE_CTX_free
    - ERR_raise
    - ERR_peek_last_error
    - OSSL_CMP_CTX_print_errors
    - X509_STORE_CTX_new_ex
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx,\n                                X509_STORE
      *trusted_store, X509 *cert)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:153,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:156,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:157,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:159,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:161,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:166,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:167,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:168,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:169,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - ctx
    - log_success
    - actual_desc
    - actual_name
    - expect_desc
    - expect_name
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - char*
    - X509_NAME*
    - char*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 172
    functionName: check_name
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 1
    functionsReached:
    - X509_NAME_oneline
    - ossl_cmp_log1
    - OPENSSL_free
    - X509_NAME_cmp
    - ossl_cmp_log2
    linkageType: ''
    returnType: int
    signature: "int check_name(const OSSL_CMP_CTX *ctx, int log_success,\n                      const
      char *actual_desc, const X509_NAME *actual_name,\n                      const
      char *expect_desc, const X509_NAME *expect_name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:186,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:189,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:190,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:192,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:193,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:199,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:200,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - ckid
    - skid
    argTypes:
    - OSSL_CMP_CTX*
    - ASN1_OCTET_STRING*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 204
    functionName: check_kid
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_log1
    - OPENSSL_free
    - ASN1_OCTET_STRING_cmp
    - OPENSSL_buf2hexstr
    - ossl_cmp_warn
    linkageType: ''
    returnType: int
    signature: "int check_kid(const OSSL_CMP_CTX *ctx,\n                     const
      ASN1_OCTET_STRING *ckid,\n                     const ASN1_OCTET_STRING *skid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:211,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:212,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cert
    - already_checked
    argTypes:
    - X509*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: already_checked
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_num
    - sk_X509_value
    - X509_cmp
    linkageType: ''
    returnType: int
    signature: "int already_checked(const X509 *cert,\n                           const
      STACK_OF(X509) *already_checked)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_issued
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:232,1
    - Dst: X509_STORE_get0_param
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:234,1
    - Dst: ossl_cmp_log3
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:237,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:239,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:239,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:241,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:243,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:243,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:245,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:246,1
    - Dst: already_checked
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:249,1
    - Dst: already_checked
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:250,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:251,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:255,1
    - Dst: X509_get0_notBefore
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:255,1
    - Dst: X509_get0_notAfter
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:256,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:258,1
    - Dst: check_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:263,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:264,1
    - Dst: check_kid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:268,1
    - Dst: X509_get0_subject_key_id
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:268,1
    - Dst: ossl_x509v3_cache_extensions
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:271,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:272,1
    - Dst: verify_signature
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:275,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:276,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 7
    argNames:
    - ctx
    - desc1
    - desc2
    - cert
    - already_checked1
    - already_checked2
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - char*
    - char*
    - X509*
    - STACK_OF*
    - STACK_OF*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 225
    functionDepth: 12
    functionLinenumber: 225
    functionLinenumberEnd: 282
    functionName: cert_acceptable
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_get0_notBefore
    - ossl_cmp_log1
    - check_name
    - X509_check_issued
    - already_checked
    - X509_get0_subject_key_id
    - X509_NAME_oneline
    - X509_get_issuer_name
    - X509_STORE_get0_param
    - ossl_x509v3_cache_extensions
    - X509_cmp_timeframe
    - verify_signature
    - OPENSSL_free
    - check_kid
    - ossl_cmp_info
    - ossl_cmp_log3
    - X509_get0_notAfter
    - ossl_cmp_warn
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int cert_acceptable(const OSSL_CMP_CTX *ctx,\n                           const
      char *desc1, const char *desc2, X509 *cert,\n                           const
      STACK_OF(X509) *already_checked1,\n                           const STACK_OF(X509)
      *already_checked2,\n                           const OSSL_CMP_MSG *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_validate_cert_path
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:287,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - store
    - scrt
    argTypes:
    - OSSL_CMP_CTX*
    - X509_STORE*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 10
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: check_cert_path
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_validate_cert_path
    - ossl_cmp_warn
    linkageType: ''
    returnType: int
    signature: "int check_cert_path(const OSSL_CMP_CTX *ctx, X509_STORE *store,\n
      \                          X509 *scrt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:311,1
    - Dst: ossl_cmp_X509_STORE_add1_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:312,1
    - Dst: OSSL_CMP_validate_cert_path
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:317,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:319,1
    - Dst: ossl_cmp_certrepmessage_get0_certresponse
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:327,1
    - Dst: ossl_cmp_certresponse_get1_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:329,1
    - Dst: OSSL_CMP_validate_cert_path
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:335,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:336,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - msg
    - scrt
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 302
    functionDepth: 10
    functionLinenumber: 302
    functionLinenumberEnd: 342
    functionName: check_cert_path_3gpp
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_STORE_new
    - X509_free
    - ossl_cmp_certrepmessage_get0_certresponse
    - ossl_cmp_X509_STORE_add1_certs
    - OSSL_CMP_validate_cert_path
    - ossl_cmp_certresponse_get1_cert
    - ossl_cmp_warn
    linkageType: ''
    returnType: int
    signature: "int check_cert_path_3gpp(const OSSL_CMP_CTX *ctx,\n                                const
      OSSL_CMP_MSG *msg, X509 *scrt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_acceptable
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:347,1
    - Dst: check_cert_path
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:349,1
    - Dst: check_cert_path_3gpp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - cert
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 13
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: check_msg_given_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - check_cert_path_3gpp
    - check_cert_path
    - cert_acceptable
    linkageType: ''
    returnType: int
    signature: "int check_msg_given_cert(const OSSL_CMP_CTX *ctx, X509 *cert,\n                                const
      OSSL_CMP_MSG *msg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:368,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:369,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:373,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:374,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:376,1
    - Dst: cert_acceptable
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:378,1
    - Dst: check_cert_path_3gpp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:382,1
    - Dst: check_cert_path
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:383,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:385,1
    - Dst: ossl_cmp_ctx_set0_validatedSrvCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:387,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:388,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:395,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 7
    argNames:
    - ctx
    - certs
    - desc
    - already_checked1
    - already_checked2
    - msg
    - mode_3gpp
    argTypes:
    - OSSL_CMP_CTX*
    - STACK_OF*
    - char*
    - STACK_OF*
    - STACK_OF*
    - OSSL_CMP_MSG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 358
    functionDepth: 13
    functionLinenumber: 358
    functionLinenumberEnd: 397
    functionName: check_msg_with_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_value
    - X509_up_ref
    - X509_free
    - check_cert_path_3gpp
    - cert_acceptable
    - ossl_cmp_log1
    - sk_X509_num
    - ossl_cmp_ctx_set0_validatedSrvCert
    - check_cert_path
    - ossl_cmp_warn
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int check_msg_with_certs(OSSL_CMP_CTX *ctx, const STACK_OF(X509) *certs,\n
      \                               const char *desc,\n                                const
      STACK_OF(X509) *already_checked1,\n                                const STACK_OF(X509)
      *already_checked2,\n                                const OSSL_CMP_MSG *msg,
      int mode_3gpp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:411,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:414,1
    - Dst: check_msg_with_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:417,1
    - Dst: check_msg_with_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:420,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:425,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:428,1
    - Dst: X509_STORE_get1_all_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:428,1
    - Dst: check_msg_with_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:429,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - msg
    - mode_3gpp
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 404
    functionDepth: 14
    functionLinenumber: 404
    functionLinenumberEnd: 437
    functionName: check_msg_all_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - sk_X509_pop_free
    - check_msg_with_certs
    - STACK_OF
    - ossl_cmp_info
    - OSSL_CMP_MSG_get_bodytype
    - ossl_cmp_warn
    - X509_STORE_get1_all_certs
    linkageType: ''
    returnType: int
    signature: "int check_msg_all_certs(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg,\n
      \                              int mode_3gpp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - func
    - file
    - line
    - level
    - msg
    argTypes:
    - char*
    - char*
    - int
    - OSSL_CMP_severity
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: no_log_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int no_log_cb(const char *func, const char *file, int line,\n                     OSSL_CMP_severity
      level, const char *msg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:462,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:467,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:470,1
    - Dst: check_msg_given_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:478,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:480,1
    - Dst: ossl_cmp_ctx_set0_validatedSrvCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:484,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:486,1
    - Dst: check_msg_given_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:488,1
    - Dst: check_msg_all_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:491,1
    - Dst: check_msg_all_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:492,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:496,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:500,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:502,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:504,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:506,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:508,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:510,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:512,1
    - Dst: check_msg_all_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:514,1
    - Dst: check_msg_all_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:515,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:518,1
    - Dst: ERR_add_error_txt
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:520,1
    - Dst: ERR_add_error_txt
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:521,1
    - Dst: ERR_add_error_txt
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:524,1
    - Dst: ERR_add_error_txt
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:525,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:529,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:530,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 449
    functionDepth: 15
    functionLinenumber: 449
    functionLinenumberEnd: 532
    functionName: check_msg_find_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_NAME_oneline
    - ERR_set_mark
    - ERR_raise
    - ossl_cmp_ctx_set0_validatedSrvCert
    - ossl_cmp_log1
    - OPENSSL_free
    - ERR_pop_to_mark
    - check_msg_given_cert
    - OSSL_CMP_CTX_print_errors
    - ossl_cmp_info
    - OPENSSL_buf2hexstr
    - ERR_clear_last_mark
    - ERR_add_error_txt
    - check_msg_all_certs
    linkageType: ''
    returnType: int
    signature: int check_msg_find_cert(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:554,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:557,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:563,1
    - Dst: ossl_cmp_hdr_get_protection_nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:567,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:571,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:572,1
    - Dst: verify_PBMAC
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:575,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:582,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:590,1
    - Dst: ossl_cmp_X509_STORE_add1_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:593,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:601,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:605,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:613,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:623,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:624,1
    - Dst: check_msg_find_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:627,1
    - Dst: verify_signature
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:631,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:632,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:637,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:638,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 550
    functionDepth: 16
    functionLinenumber: 550
    functionLinenumberEnd: 643
    functionName: OSSL_CMP_validate_msg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - verify_PBMAC
    - ossl_cmp_debug
    - check_msg_find_cert
    - ossl_cmp_X509_STORE_add1_certs
    - verify_signature
    - ERR_raise
    - STACK_OF
    - ossl_cmp_info
    - OSSL_CMP_MSG_get_bodytype
    - ossl_cmp_warn
    - ossl_cmp_hdr_get_protection_nid
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:671,1
    - Dst: OSSL_CMP_MSG_get0_header
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:673,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:677,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:687,1
    - Dst: check_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:688,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:693,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:694,1
    - Dst: X509_add_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:704,1
    - Dst: OSSL_CMP_validate_msg
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:713,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:716,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:724,1
    - Dst: ossl_cmp_hdr_get_pvno
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:731,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:733,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:738,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:740,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:748,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:751,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:759,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:762,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:769,1
    - Dst: ossl_cmp_ctx_set1_recipNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:777,1
    - Dst: X509_add_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:786,1
    - Dst: ossl_cmp_hdr_get_protection_nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:792,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:799,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:805,1
    - Dst: ossl_cmp_X509_STORE_add1_certs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:808,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 67
    argCount: 4
    argNames:
    - ctx
    - msg
    - cb
    - cb_arg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - ossl_cmp_allow_unprotected_cb_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 665
    functionDepth: 17
    functionLinenumber: 665
    functionLinenumberEnd: 818
    functionName: ossl_cmp_msg_check_update
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_set1_transactionID
    - ossl_cmp_ctx_set1_recipNonce
    - ossl_cmp_X509_STORE_add1_certs
    - ERR_raise
    - X509_add_certs
    - OSSL_CMP_MSG_get0_header
    - sk_X509_num
    - check_name
    - OSSL_CMP_validate_msg
    - ossl_cmp_hdr_get_pvno
    - ASN1_OCTET_STRING_cmp
    - STACK_OF
    - ossl_cmp_warn
    - OSSL_CMP_MSG_get_bodytype
    - ossl_assert
    - ossl_cmp_hdr_get_protection_nid
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_msg_check_update(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG
      *msg,\n                              ossl_cmp_allow_unprotected_cb_t cb, int
      cb_arg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:823,1
    - Dst: X509_REQ_verify_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:830,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:830,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:833,1
    - Dst: OSSL_CRMF_MSGS_verify_popo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:842,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - msg
    - acceptRAVerified
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 855
    functionName: ossl_cmp_verify_popo
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_vfy.c
    functionUses: 0
    functionsReached:
    - X509_REQ_verify_ex
    - X509_REQ_get0_pubkey
    - OSSL_CRMF_MSGS_verify_popo
    - ERR_raise
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_verify_popo(const OSSL_CMP_CTX *ctx,\n                         const
      OSSL_CMP_MSG *msg, int acceptRAVerified)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:47,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:50,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:67,1
    - Dst: i2d_OSSL_CMP_PROTECTEDPART
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:73,1
    - Dst: d2i_OSSL_CRMF_PBMPARAMETER
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:82,1
    - Dst: OSSL_CRMF_pbm_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:86,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:92,1
    - Dst: ASN1_BIT_STRING_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:97,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:98,1
    - Dst: OSSL_CRMF_PBMPARAMETER_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:102,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:111,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:115,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:115,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:117,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:121,1
    - Dst: ASN1_item_sign_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:123,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:123,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:127,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 30
    functionDepth: 12
    functionLinenumber: 30
    functionLinenumberEnd: 130
    functionName: ossl_cmp_calc_protection
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c
    functionUses: 1
    functionsReached:
    - OBJ_find_sigid_algs
    - d2i_OSSL_CRMF_PBMPARAMETER
    - ASN1_BIT_STRING_free
    - ASN1_BIT_STRING_set
    - OSSL_CRMF_PBMPARAMETER_free
    - i2d_OSSL_CMP_PROTECTEDPART
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ASN1_item_sign_ex
    - ERR_raise
    - OSSL_CRMF_pbm_new
    - OPENSSL_free
    - X509_ALGOR_get0
    - EVP_get_digestbynid
    - ASN1_BIT_STRING_new
    - ossl_assert
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: "ASN1_BIT_STRING *ossl_cmp_calc_protection(const OSSL_CMP_CTX *ctx,\n
      \                                         const OSSL_CMP_MSG *msg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:135,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:146,1
    - Dst: X509_build_chain
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:148,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:151,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:155,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:156,1
    - Dst: ossl_x509_add_certs_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:161,1
    - Dst: ossl_x509_add_cert_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:165,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:167,1
    - Dst: ossl_x509_add_certs_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:172,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:177,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:178,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 182
    functionName: ossl_cmp_msg_add_extraCerts
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c
    functionUses: 0
    functionsReached:
    - ossl_x509_add_certs_new
    - ossl_cmp_debug
    - ossl_assert
    - X509_build_chain
    - sk_X509_num
    - OSSL_CMP_CTX_print_errors
    - ossl_cmp_warn
    - sk_X509_free
    - ossl_x509_add_cert_new
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_msg_add_extraCerts(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:195,1
    - Dst: OSSL_CRMF_pbmp_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:198,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:199,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:201,1
    - Dst: i2d_OSSL_CRMF_PBMPARAMETER
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:205,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:208,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:210,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:212,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:214,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:214,1
    - Dst: OSSL_CRMF_PBMPARAMETER_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:216,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:220,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:221,1
    - Dst: OSSL_CRMF_PBMPARAMETER_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:222,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - alg
    argTypes:
    - OSSL_CMP_CTX*
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: set_pbmac_algor
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c
    functionUses: 0
    functionsReached:
    - OSSL_CRMF_pbmp_new
    - ASN1_STRING_free
    - OSSL_CRMF_PBMPARAMETER_free
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - ASN1_STRING_new
    - i2d_OSSL_CRMF_PBMPARAMETER
    - OPENSSL_free
    - EVP_MD_get_type
    - ASN1_STRING_set
    - ossl_assert
    - X509_ALGOR_new
    linkageType: ''
    returnType: int
    signature: int set_pbmac_algor(const OSSL_CMP_CTX *ctx, X509_ALGOR **alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:231,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:231,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:232,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:233,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:236,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:238,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:241,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - alg
    argTypes:
    - OSSL_CMP_CTX*
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: set_sig_algor
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - EVP_PKEY_get_id
    - ERR_raise
    - EVP_MD_get_type
    - OBJ_find_sigid_by_algs
    - ASN1_OBJECT_free
    - X509_ALGOR_new
    linkageType: ''
    returnType: int
    signature: int set_sig_algor(const OSSL_CMP_CTX *ctx, X509_ALGOR **alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_hdr_set1_senderKID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - msg
    - id
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: set_senderKID
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_hdr_set1_senderKID
    linkageType: ''
    returnType: int
    signature: "int set_senderKID(const OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg,\n                         const
      ASN1_OCTET_STRING *id)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:258,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:264,1
    - Dst: ASN1_BIT_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:266,1
    - Dst: set_senderKID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:270,1
    - Dst: set_pbmac_algor
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:274,1
    - Dst: set_senderKID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:276,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:288,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:289,1
    - Dst: set_sig_algor
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:293,1
    - Dst: set_senderKID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:296,1
    - Dst: X509_get0_subject_key_id
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:296,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:304,1
    - Dst: ossl_cmp_calc_protection
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:309,1
    - Dst: ossl_cmp_msg_add_extraCerts
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:318,1
    - Dst: ossl_cmp_general_name_is_NULL_DN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:326,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:329,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c:332,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 50
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 256
    functionDepth: 13
    functionLinenumber: 256
    functionLinenumberEnd: 334
    functionName: ossl_cmp_msg_protect
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_protect.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_free
    - X509_check_private_key
    - X509_get0_subject_key_id
    - ERR_raise
    - X509_ALGOR_free
    - set_senderKID
    - set_sig_algor
    - set_pbmac_algor
    - ossl_cmp_calc_protection
    - ossl_cmp_general_name_is_NULL_DN
    - ossl_assert
    - ossl_cmp_msg_add_extraCerts
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_msg_protect(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: IS_NULL_DN
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NULL_DN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - txt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: ossl_cmp_add_error_data
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_add_error_data(txt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - txt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: ossl_cmp_add_error_line
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_add_error_line(txt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - level
    - ','
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: ossl_cmp_log
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_log(level, ctx, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - level
    - ','
    - ctx
    - ','
    - fmt
    - ','
    - arg1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 763
    functionName: ossl_cmp_log1
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_log1(level, ctx, fmt, arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - level
    - ','
    - ctx
    - ','
    - fmt
    - ','
    - arg1
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: ossl_cmp_log2
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_log2(level, ctx, fmt, arg1, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - level
    - ','
    - ctx
    - ','
    - fmt
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 769
    functionName: ossl_cmp_log3
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_log3(level, ctx, fmt, arg1, arg2, arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - level
    - ','
    - ctx
    - ','
    - fmt
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: ossl_cmp_log4
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_log4(level, ctx, fmt, arg1, arg2, arg3, arg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 775
    functionName: ossl_cmp_alert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_alert(ctx, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 776
    functionName: ossl_cmp_err
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_err(ctx, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: ossl_cmp_warn
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_warn(ctx, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 778
    functionName: ossl_cmp_info
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_info(ctx, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 779
    functionName: ossl_cmp_debug
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_debug(ctx, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 780
    functionName: ossl_cmp_trace
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ossl_cmp_trace(ctx, msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:27,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:27,1
    - Dst: ossl_cmp_msg_set0_libctx
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:29,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: OSSL_CMP_MSG_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ossl_cmp_msg_set0_libctx
    - OSSL_CMP_MSG_free
    - ASN1_item_new_ex
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *OSSL_CMP_MSG_new(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:38,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: OSSL_CMP_MSG_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_free
    linkageType: ''
    returnType: void
    signature: void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:51,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - msg
    - libctx
    - propq
    argTypes:
    - OSSL_CMP_MSG*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: ossl_cmp_msg_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_msg_set0_libctx(OSSL_CMP_MSG *msg, OSSL_LIB_CTX *libctx,\n
      \                            const char *propq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: OSSL_CMP_MSG_get0_header
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CMP_PKIHEADER
    signature: OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: ossl_cmp_bodytype_to_string
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_cmp_bodytype_to_string(int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - type
    argTypes:
    - OSSL_CMP_MSG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: ossl_cmp_msg_set_bodytype
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_msg_set_bodytype(OSSL_CMP_MSG *msg, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: OSSL_CMP_MSG_get_bodytype
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 3
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:110,1
    - Dst: X509V3_EXT_i2d
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:113,1
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:116,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pexts
    - nid
    - crit
    - ex
    argTypes:
    - X509_EXTENSIONS**
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: add1_extension
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_i2d
    - X509v3_add_ext
    - ossl_assert
    - X509_EXTENSION_free
    linkageType: ''
    returnType: int
    signature: int add1_extension(X509_EXTENSIONS **pexts, int nid, int crit, void
      *ex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ENUMERATED_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:152,1
    - Dst: ASN1_ENUMERATED_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:155,1
    - Dst: add1_extension
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:156,1
    - Dst: ASN1_ENUMERATED_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pexts
    - reason_code
    argTypes:
    - X509_EXTENSIONS**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: add_crl_reason_extension
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_ENUMERATED_set
    - ASN1_ENUMERATED_new
    - add1_extension
    - ASN1_ENUMERATED_free
    linkageType: ''
    returnType: int
    signature: int add_crl_reason_extension(X509_EXTENSIONS **pexts, int reason_code)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:165,1
    - Dst: OSSL_CMP_MSG_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:168,1
    - Dst: ossl_cmp_hdr_init
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:170,1
    - Dst: ossl_cmp_msg_set_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:171,1
    - Dst: ossl_cmp_hdr_generalInfo_push1_items
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:174,1
    - Dst: OSSL_CRMF_MSGS_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:182,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:188,1
    - Dst: X509_REQ_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:191,1
    - Dst: OSSL_CMP_CERTREPMESSAGE_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:198,1
    - Dst: sk_OSSL_CMP_REVDETAILS_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:203,1
    - Dst: OSSL_CMP_REVREPCONTENT_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:207,1
    - Dst: sk_OSSL_CMP_CERTSTATUS_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:213,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:217,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:219,1
    - Dst: sk_OSSL_CMP_POLLREQ_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:223,1
    - Dst: sk_OSSL_CMP_POLLREP_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:227,1
    - Dst: sk_OSSL_CMP_ITAV_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:233,1
    - Dst: OSSL_CMP_ERRORMSGCONTENT_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:243,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:248,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 87
    argCount: 2
    argNames:
    - ctx
    - bodytype
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 250
    functionName: ossl_cmp_msg_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - X509_REQ_dup
    - OSSL_CMP_MSG_free
    - OSSL_CRMF_MSGS_new
    - sk_OSSL_CMP_ITAV_new_null
    - ossl_cmp_hdr_init
    - sk_OSSL_CMP_REVDETAILS_new_null
    - ASN1_TYPE_set
    - ossl_cmp_msg_set_bodytype
    - ossl_cmp_hdr_generalInfo_push1_items
    - ossl_assert
    - OSSL_CMP_REVREPCONTENT_new
    - sk_OSSL_CMP_CERTSTATUS_new_null
    - OSSL_CMP_MSG_new
    - sk_OSSL_CMP_POLLREQ_new_null
    - OSSL_CMP_ERRORMSGCONTENT_new
    - OSSL_CMP_CERTREPMESSAGE_new
    - ERR_raise
    - sk_OSSL_CMP_POLLREP_new_null
    - ASN1_TYPE_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *ossl_cmp_msg_create(OSSL_CMP_CTX *ctx, int bodytype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: HAS_SAN
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_SAN(ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_NULL_DN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:260,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:262,1
    - Dst: HAS_SAN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - for_KUR
    - ref_subj
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: determine_subj
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - HAS_SAN
    - IS_NULL_DN
    - X509_REQ_get_subject_name
    linkageType: ''
    returnType: X509_NAME
    signature: "X509_NAME *determine_subj(OSSL_CMP_CTX *ctx, int for_KUR,\n                                       const
      X509_NAME *ref_subj)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_ctx_get0_newPubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:277,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:278,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:280,1
    - Dst: determine_subj
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:281,1
    - Dst: IS_NULL_DN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:283,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:284,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:296,1
    - Dst: OSSL_CRMF_MSG_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:299,1
    - Dst: OSSL_CRMF_MSG_set_certReqId
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:301,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_fill
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:307,1
    - Dst: OSSL_CRMF_MSG_get0_tmpl
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:307,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:311,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:312,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:313,1
    - Dst: OSSL_CRMF_MSG_set0_validity
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:317,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:318,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:319,1
    - Dst: X509_REQ_get_extensions
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:326,1
    - Dst: HAS_SAN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:328,1
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:329,1
    - Dst: X509_get0_extensions
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:329,1
    - Dst: add1_extension
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:332,1
    - Dst: add_extensions
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:335,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:337,1
    - Dst: add1_extension
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:338,1
    - Dst: add1_extension
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:342,1
    - Dst: OSSL_CRMF_MSG_set0_extensions
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:345,1
    - Dst: OSSL_CRMF_CERTID_gen
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:353,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:353,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:354,1
    - Dst: OSSL_CRMF_MSG_set1_regCtrl_oldCertID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:359,1
    - Dst: OSSL_CRMF_CERTID_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:360,1
    - Dst: OSSL_CRMF_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:368,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:372,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:373,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 63
    argCount: 3
    argNames:
    - ctx
    - for_KUR
    - rid
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 272
    functionDepth: 14
    functionLinenumber: 272
    functionLinenumberEnd: 375
    functionName: OSSL_CMP_CTX_setup_CRM
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CRMF_CERTID_free
    - time
    - ASN1_TIME_adj
    - HAS_SAN
    - OSSL_CRMF_MSG_set1_regCtrl_oldCertID
    - OSSL_CRMF_MSG_free
    - ASN1_TIME_free
    - OSSL_CRMF_MSG_get0_tmpl
    - OSSL_CRMF_MSG_set_certReqId
    - IS_NULL_DN
    - determine_subj
    - X509_get_issuer_name
    - OSSL_CRMF_CERTTEMPLATE_fill
    - X509_get_subject_name
    - add_extensions
    - ossl_cmp_ctx_get0_newPubkey
    - ERR_raise
    - STACK_OF
    - OSSL_CRMF_MSG_set0_extensions
    - X509_REQ_get_extensions
    - X509_get0_extensions
    - sk_X509_EXTENSION_pop_free
    - add1_extension
    - OSSL_CRMF_MSG_new
    - X509V3_get_d2i
    - OSSL_CRMF_CERTID_gen
    - sk_GENERAL_NAME_pop_free
    - sk_GENERAL_NAME_num
    - X509_get0_serialNumber
    - OSSL_CRMF_MSG_set0_validity
    linkageType: ''
    returnType: OSSL_CRMF_MSG
    signature: OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR,
      int rid)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:383,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:388,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:392,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:396,1
    - Dst: ossl_cmp_hdr_set_implicitConfirm
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:400,1
    - Dst: OSSL_CMP_CTX_get0_newPkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:406,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:410,1
    - Dst: OSSL_CMP_CTX_setup_CRM
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:414,1
    - Dst: OSSL_CRMF_MSG_create_popo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:418,1
    - Dst: OSSL_CRMF_MSG_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:423,1
    - Dst: sk_OSSL_CRMF_MSG_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:428,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:433,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:439,1
    - Dst: OSSL_CRMF_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:440,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:441,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 3
    argNames:
    - ctx
    - type
    - crm
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - OSSL_CRMF_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 377
    functionDepth: 15
    functionLinenumber: 377
    functionLinenumberEnd: 443
    functionName: ossl_cmp_certreq_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CRMF_MSG_create_popo
    - OSSL_CRMF_MSG_dup
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - sk_OSSL_CRMF_MSG_push
    - ERR_raise
    - ossl_cmp_msg_protect
    - OSSL_CRMF_MSG_free
    - OSSL_CMP_CTX_get0_newPkey
    - OSSL_CMP_CTX_setup_CRM
    - ossl_assert
    - ossl_cmp_hdr_set_implicitConfirm
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_certreq_new(OSSL_CMP_CTX *ctx, int type,\n
      \                                  const OSSL_CRMF_MSG *crm)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:456,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:459,1
    - Dst: ossl_cmp_hdr_set_implicitConfirm
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:464,1
    - Dst: OSSL_CMP_CERTRESPONSE_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:468,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:470,1
    - Dst: OSSL_CMP_PKISI_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:471,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:472,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:475,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:479,1
    - Dst: OSSL_CMP_CERTIFIEDKEYPAIR_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:483,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:488,1
    - Dst: sk_OSSL_CMP_CERTRESPONSE_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:493,1
    - Dst: X509_chain_up_ref
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:498,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:500,1
    - Dst: ossl_x509_add_certs_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:501,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:506,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:507,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:513,1
    - Dst: OSSL_CMP_CERTRESPONSE_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:514,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:515,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 54
    argCount: 9
    argNames:
    - ctx
    - bodytype
    - certReqId
    - si
    - cert
    - encryption_recip
    - chain
    - caPubs
    - unprotectedErrors
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    - OSSL_CMP_PKISI*
    - X509*
    - X509*
    - STACK_OF*
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 445
    functionDepth: 14
    functionLinenumber: 445
    functionLinenumberEnd: 517
    functionName: ossl_cmp_certrep_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - OSSL_CMP_PKISI_dup
    - X509_up_ref
    - ossl_cmp_pkisi_get_status
    - ossl_x509_add_certs_new
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ERR_raise
    - OSSL_CMP_PKISI_free
    - sk_X509_num
    - ossl_cmp_msg_protect
    - sk_OSSL_CMP_CERTRESPONSE_push
    - OSSL_CMP_CERTIFIEDKEYPAIR_new
    - OSSL_CMP_CERTRESPONSE_free
    - X509_chain_up_ref
    - OSSL_CMP_CERTRESPONSE_new
    - ossl_assert
    - ossl_cmp_hdr_set_implicitConfirm
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_certrep_new(OSSL_CMP_CTX *ctx, int bodytype,\n
      \                                  int certReqId, const OSSL_CMP_PKISI *si,\n
      \                                  X509 *cert, const X509 *encryption_recip,\n
      \                                  STACK_OF(X509) *chain, STACK_OF(X509) *caPubs,\n
      \                                  int unprotectedErrors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:525,1
    - Dst: OSSL_CMP_REVDETAILS_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:529,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_fill
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:534,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:537,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:538,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_fill
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:539,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:540,1
    - Dst: X509_REQ_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:541,1
    - Dst: add_crl_reason_extension
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:548,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:552,1
    - Dst: sk_OSSL_CMP_REVDETAILS_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:555,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:560,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:566,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:567,1
    - Dst: OSSL_CMP_REVDETAILS_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:568,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 519
    functionDepth: 14
    functionLinenumber: 519
    functionLinenumberEnd: 570
    functionName: ossl_cmp_rr_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - X509_REQ_get0_pubkey
    - sk_OSSL_CMP_REVDETAILS_push
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ERR_raise
    - ossl_cmp_msg_protect
    - X509_get_issuer_name
    - OSSL_CRMF_CERTTEMPLATE_fill
    - X509_get0_serialNumber
    - X509_REQ_get_subject_name
    - OSSL_CMP_REVDETAILS_new
    - OSSL_CMP_REVDETAILS_free
    - add_crl_reason_extension
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *ossl_cmp_rr_new(OSSL_CMP_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:580,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:583,1
    - Dst: OSSL_CMP_PKISI_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:587,1
    - Dst: sk_OSSL_CMP_PKISI_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:590,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:591,1
    - Dst: sk_OSSL_CRMF_CERTID_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:595,1
    - Dst: OSSL_CRMF_CERTID_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:598,1
    - Dst: sk_OSSL_CRMF_CERTID_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:600,1
    - Dst: OSSL_CRMF_CERTID_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:601,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:607,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:608,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:614,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:615,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 4
    argNames:
    - ctx
    - si
    - cid
    - unprotectedErrors
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_PKISI*
    - OSSL_CRMF_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 572
    functionDepth: 14
    functionLinenumber: 572
    functionLinenumberEnd: 617
    functionName: ossl_cmp_rp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CMP_PKISI_push
    - OSSL_CRMF_CERTID_dup
    - OSSL_CRMF_CERTID_free
    - ossl_cmp_pkisi_get_status
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ERR_raise
    - sk_OSSL_CRMF_CERTID_push
    - OSSL_CMP_PKISI_free
    - ossl_cmp_msg_protect
    - ossl_assert
    - OSSL_CMP_PKISI_dup
    - sk_OSSL_CRMF_CERTID_new_null
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_rp_new(OSSL_CMP_CTX *ctx, const OSSL_CMP_PKISI
      *si,\n                              const OSSL_CRMF_CERTID *cid, int unprotectedErrors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:623,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:626,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:628,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:632,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 619
    functionDepth: 14
    functionLinenumber: 619
    functionLinenumberEnd: 635
    functionName: ossl_cmp_pkiconf_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ERR_raise
    - ossl_cmp_msg_protect
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *ossl_cmp_pkiconf_new(OSSL_CMP_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:641,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:644,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:647,1
    - Dst: OSSL_CMP_ITAV_push0_stack_item
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - itav
    argTypes:
    - OSSL_CMP_MSG*
    - OSSL_CMP_ITAV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 653
    functionName: ossl_cmp_msg_gen_push0_ITAV
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAV_push0_stack_item
    - OSSL_CMP_MSG_get_bodytype
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_msg_gen_push0_ITAV(OSSL_CMP_MSG *msg, OSSL_CMP_ITAV *itav)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:661,1
    - Dst: sk_OSSL_CMP_ITAV_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:664,1
    - Dst: OSSL_CMP_ITAV_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:665,1
    - Dst: sk_OSSL_CMP_ITAV_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:665,1
    - Dst: ossl_cmp_msg_gen_push0_ITAV
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:667,1
    - Dst: OSSL_CMP_ITAV_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - itavs
    argTypes:
    - OSSL_CMP_MSG*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: ossl_cmp_msg_gen_push1_ITAVs
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_msg_gen_push0_ITAV
    - sk_OSSL_CMP_ITAV_value
    - sk_OSSL_CMP_ITAV_num
    - OSSL_CMP_ITAV_free
    - OSSL_CMP_ITAV_dup
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_msg_gen_push1_ITAVs(OSSL_CMP_MSG *msg,\n                                 const
      STACK_OF(OSSL_CMP_ITAV) *itavs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:685,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:688,1
    - Dst: ossl_cmp_msg_gen_push1_ITAVs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:691,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:694,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:700,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - itavs
    - body_type
    - err_code
    argTypes:
    - OSSL_CMP_CTX*
    - STACK_OF*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 679
    functionDepth: 14
    functionLinenumber: 679
    functionLinenumberEnd: 703
    functionName: gen_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ERR_raise
    - ossl_cmp_msg_gen_push1_ITAVs
    - ossl_cmp_msg_protect
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *gen_new(OSSL_CMP_CTX *ctx,\n                             const
      STACK_OF(OSSL_CMP_ITAV) *itavs,\n                             int body_type,
      int err_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 705
    functionDepth: 15
    functionLinenumber: 705
    functionLinenumberEnd: 709
    functionName: ossl_cmp_genm_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - gen_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *ossl_cmp_genm_new(OSSL_CMP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - itavs
    argTypes:
    - OSSL_CMP_CTX*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 15
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: ossl_cmp_genp_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - gen_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_genp_new(OSSL_CMP_CTX *ctx,\n                                const
      STACK_OF(OSSL_CMP_ITAV) *itavs)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:726,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:729,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:732,1
    - Dst: OSSL_CMP_PKISI_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:733,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:736,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:738,1
    - Dst: ERR_lib_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:742,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:743,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:746,1
    - Dst: ossl_cmp_sk_ASN1_UTF8STRING_push_str
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:750,1
    - Dst: ossl_cmp_sk_ASN1_UTF8STRING_push_str
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:753,1
    - Dst: ossl_cmp_sk_ASN1_UTF8STRING_push_str
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:756,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:760,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:765,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:766,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 44
    argCount: 5
    argNames:
    - ctx
    - si
    - errorCode
    - details
    - unprotected
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_PKISI*
    - int64_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 718
    functionDepth: 14
    functionLinenumber: 718
    functionLinenumberEnd: 768
    functionName: ossl_cmp_error_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ERR_lib_error_string
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ASN1_INTEGER_set_int64
    - ERR_raise
    - OSSL_CMP_PKISI_free
    - ASN1_INTEGER_new
    - ossl_cmp_msg_protect
    - ERR_reason_error_string
    - ossl_cmp_sk_ASN1_UTF8STRING_push_str
    - sk_ASN1_UTF8STRING_new_null
    - ossl_assert
    - OSSL_CMP_PKISI_dup
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_error_new(OSSL_CMP_CTX *ctx, const OSSL_CMP_PKISI
      *si,\n                                 int64_t errorCode, const char *details,\n
      \                                int unprotected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:778,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - certStatus
    - hash
    argTypes:
    - OSSL_CMP_CERTSTATUS*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 783
    functionName: ossl_cmp_certstatus_set0_certHash
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_certstatus_set0_certHash(OSSL_CMP_CERTSTATUS *certStatus,\n
      \                                     ASN1_OCTET_STRING *hash)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:793,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:799,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:803,1
    - Dst: OSSL_CMP_CERTSTATUS_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:806,1
    - Dst: sk_OSSL_CMP_CERTSTATUS_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:809,1
    - Dst: OSSL_CMP_CERTSTATUS_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:810,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:815,1
    - Dst: X509_digest_sig
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:822,1
    - Dst: ossl_cmp_certstatus_set0_certHash
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:825,1
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:836,1
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:837,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:842,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:848,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:849,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:850,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - certReqId
    - fail_info
    - text
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 785
    functionDepth: 14
    functionLinenumber: 785
    functionLinenumberEnd: 852
    functionName: ossl_cmp_certConf_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CERTSTATUS_new
    - ASN1_INTEGER_set
    - ASN1_OCTET_STRING_free
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - X509_digest_sig
    - ERR_raise
    - ossl_cmp_certstatus_set0_certHash
    - OSSL_CMP_CERTSTATUS_free
    - sk_OSSL_CMP_CERTSTATUS_push
    - OSSL_CMP_STATUSINFO_new
    - ossl_cmp_msg_protect
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_certConf_new(OSSL_CMP_CTX *ctx, int certReqId,\n
      \                                   int fail_info, const char *text)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:859,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:862,1
    - Dst: OSSL_CMP_POLLREQ_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:865,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:866,1
    - Dst: sk_OSSL_CMP_POLLREQ_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:867,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:871,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:877,1
    - Dst: OSSL_CMP_POLLREQ_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:878,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:879,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - crid
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 854
    functionDepth: 14
    functionLinenumber: 854
    functionLinenumberEnd: 881
    functionName: ossl_cmp_pollReq_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_POLLREQ_new
    - ASN1_INTEGER_set
    - OSSL_CMP_POLLREQ_free
    - sk_OSSL_CMP_POLLREQ_push
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ERR_raise
    - ossl_cmp_msg_protect
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *ossl_cmp_pollReq_new(OSSL_CMP_CTX *ctx, int crid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:889,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:892,1
    - Dst: OSSL_CMP_POLLREP_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:894,1
    - Dst: sk_OSSL_CMP_POLLREP_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:896,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:898,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:900,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:903,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:908,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:909,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - crid
    - poll_after
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 883
    functionDepth: 14
    functionLinenumber: 883
    functionLinenumberEnd: 911
    functionName: ossl_cmp_pollRep_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - OSSL_CMP_POLLREP_new
    - OSSL_CMP_MSG_free
    - ossl_cmp_msg_create
    - ASN1_INTEGER_set_int64
    - ERR_raise
    - sk_OSSL_CMP_POLLREP_push
    - ossl_cmp_msg_protect
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *ossl_cmp_pollRep_new(OSSL_CMP_CTX *ctx, int crid,\n
      \                                  int64_t poll_after)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:925,1
    - Dst: sk_OSSL_CMP_PKISI_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:928,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rrep
    - rsid
    argTypes:
    - OSSL_CMP_REVREPCONTENT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 933
    functionName: ossl_cmp_revrepcontent_get_pkisi
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CMP_PKISI_value
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CMP_PKISI
    signature: 'OSSL_CMP_PKISI *

      ossl_cmp_revrepcontent_get_pkisi(OSSL_CMP_REVREPCONTENT *rrep, int rsid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:947,1
    - Dst: sk_OSSL_CRMF_CERTID_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:950,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rrep
    - rsid
    argTypes:
    - OSSL_CMP_REVREPCONTENT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 955
    functionName: ossl_cmp_revrepcontent_get_CertId
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CRMF_CERTID_value
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CRMF_CERTID
    signature: 'OSSL_CRMF_CERTID *

      ossl_cmp_revrepcontent_get_CertId(OSSL_CMP_REVREPCONTENT *rrep, int rsid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:964,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - certReqId
    - rid
    argTypes:
    - ASN1_INTEGER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 971
    functionName: suitable_rid
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_asn1_get_int
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int suitable_rid(const ASN1_INTEGER *certReqId, int rid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:985,1
    - Dst: sk_OSSL_CMP_POLLREP_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:988,1
    - Dst: sk_OSSL_CMP_POLLREP_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:989,1
    - Dst: suitable_rid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:990,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - prc
    - rid
    argTypes:
    - OSSL_CMP_POLLREPCONTENT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 997
    functionName: ossl_cmp_pollrepcontent_get0_pollrep
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - sk_OSSL_CMP_POLLREP_num
    - ERR_raise_data
    - suitable_rid
    - sk_OSSL_CMP_POLLREP_value
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_POLLREP
    signature: "OSSL_CMP_POLLREP *\nossl_cmp_pollrepcontent_get0_pollrep(const OSSL_CMP_POLLREPCONTENT
      *prc,\n                                     int rid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1011,1
    - Dst: sk_OSSL_CMP_CERTRESPONSE_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1014,1
    - Dst: sk_OSSL_CMP_CERTRESPONSE_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1015,1
    - Dst: suitable_rid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1016,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - crm
    - rid
    argTypes:
    - OSSL_CMP_CERTREPMESSAGE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1023
    functionName: ossl_cmp_certrepmessage_get0_certresponse
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - ossl_assert
    - ERR_raise_data
    - suitable_rid
    - sk_OSSL_CMP_CERTRESPONSE_value
    - sk_OSSL_CMP_CERTRESPONSE_num
    linkageType: ''
    returnType: OSSL_CMP_CERTRESPONSE
    signature: "OSSL_CMP_CERTRESPONSE *\nossl_cmp_certrepmessage_get0_certresponse(const
      OSSL_CMP_CERTREPMESSAGE *crm,\n                                          int
      rid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1037,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1044,1
    - Dst: OSSL_CMP_CTX_get0_newPkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1048,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1051,1
    - Dst: OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1055,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1060,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1065,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1067,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - crep
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_CERTRESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1030
    functionDepth: 7
    functionLinenumber: 1030
    functionLinenumberEnd: 1069
    functionName: ossl_cmp_certresponse_get1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - ossl_x509_set0_libctx
    - OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert
    - ossl_assert
    - ERR_raise
    - OSSL_CMP_CTX_get0_newPkey
    - X509_dup
    linkageType: ''
    returnType: X509
    signature: "X509 *ossl_cmp_certresponse_get1_cert(const OSSL_CMP_CTX *ctx,\n                                      const
      OSSL_CMP_CERTRESPONSE *crep)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1074,1
    - Dst: ossl_cmp_hdr_set_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1077,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1071
    functionDepth: 14
    functionLinenumber: 1071
    functionLinenumberEnd: 1081
    functionName: OSSL_CMP_MSG_update_transactionID
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_msg_protect
    - ERR_raise
    - ossl_cmp_hdr_set_transactionID
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG
      *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1086,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1091,1
    - Dst: ossl_cmp_msg_protect
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1094,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1083
    functionDepth: 14
    functionLinenumber: 1083
    functionLinenumberEnd: 1095
    functionName: OSSL_CMP_MSG_update_recipNonce
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - ossl_cmp_msg_protect
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG
      *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1104,1
    - Dst: OSSL_CMP_MSG_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1108,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1110,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1114,1
    - Dst: d2i_OSSL_CMP_MSG_bio
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1115,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1116,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - file
    - libctx
    - propq
    argTypes:
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1097
    functionDepth: 4
    functionLinenumber: 1097
    functionLinenumberEnd: 1121
    functionName: OSSL_CMP_MSG_read
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_new
    - OSSL_CMP_MSG_free
    - BIO_free
    - d2i_OSSL_CMP_MSG_bio
    - ERR_raise
    - BIO_new_file
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx,\n
      \                               const char *propq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1129,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1133,1
    - Dst: i2d_OSSL_CMP_MSG_bio
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1136,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - file
    - msg
    argTypes:
    - char*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1123
    functionDepth: 4
    functionLinenumber: 1123
    functionLinenumberEnd: 1139
    functionName: OSSL_CMP_MSG_write
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - i2d_OSSL_CMP_MSG_bio
    - BIO_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1152,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - in
    - len
    argTypes:
    - OSSL_CMP_MSG**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1155
    functionName: d2i_OSSL_CMP_MSG
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_ex
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *d2i_OSSL_CMP_MSG(OSSL_CMP_MSG **msg, const unsigned
      char **in,\n                               long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1159,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - out
    argTypes:
    - OSSL_CMP_MSG*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1161
    functionName: i2d_OSSL_CMP_MSG
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_i2d
    linkageType: ''
    returnType: int
    signature: int i2d_OSSL_CMP_MSG(const OSSL_CMP_MSG *msg, unsigned char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_bio_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1173,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bio
    - msg
    argTypes:
    - BIO*
    - OSSL_CMP_MSG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1175
    functionName: d2i_OSSL_CMP_MSG_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_d2i_bio_ex
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - msg
    argTypes:
    - BIO*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1180
    functionName: i2d_OSSL_CMP_MSG_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_msg.c
    functionUses: 1
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:35,1
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - si
    argTypes:
    - OSSL_CMP_PKISI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: ossl_cmp_pkisi_get_status
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 2
    functionsReached:
    - ossl_cmp_asn1_get_int
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_pkisi_get_status(const OSSL_CMP_PKISI *si)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: ossl_cmp_PKIStatus_to_string
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    linkageType: ''
    returnType: char
    signature: char *ossl_cmp_PKIStatus_to_string(int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - si
    argTypes:
    - OSSL_CMP_PKISI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: ossl_cmp_pkisi_get0_statusString
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: OSSL_CMP_PKIFREETEXT
    signature: OSSL_CMP_PKIFREETEXT *ossl_cmp_pkisi_get0_statusString(const OSSL_CMP_PKISI
      *si)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:77,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - si
    argTypes:
    - OSSL_CMP_PKISI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: ossl_cmp_pkisi_get_pkifailureinfo
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_get_bit
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_pkisi_get_pkifailureinfo(const OSSL_CMP_PKISI *si)
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 1
    argNames:
    - number
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 150
    functionName: CMP_PKIFAILUREINFO_to_string
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CMP_PKIFAILUREINFO_to_string(int number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:154,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:157,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - si
    - bit_index
    argTypes:
    - OSSL_CMP_PKISI*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: ossl_cmp_pkisi_check_pkifailureinfo
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_get_bit
    - ossl_assert
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_pkisi_check_pkifailureinfo(const OSSL_CMP_PKISI *si, int
      bit_index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_PKIStatus_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:184,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:193,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:201,1
    - Dst: CMP_PKIFAILUREINFO_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:205,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:207,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:218,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:223,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:225,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:229,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:230,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:231,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:232,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 5
    argNames:
    - status
    - fail_info
    - status_strings
    - buf
    - bufsize
    argTypes:
    - int
    - int
    - OSSL_CMP_PKIFREETEXT*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 239
    functionName: snprint_PKIStatusInfo_parts
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_get0_data
    - sk_ASN1_UTF8STRING_value
    - ASN1_STRING_length
    - CMP_PKIFAILUREINFO_to_string
    - BIO_snprintf
    - sk_ASN1_UTF8STRING_num
    - ossl_cmp_PKIStatus_to_string
    linkageType: ''
    returnType: char
    signature: "char *snprint_PKIStatusInfo_parts(int status, int fail_info,\n                                  const
      OSSL_CMP_PKIFREETEXT *status_strings,\n                                  char
      *buf, size_t bufsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:247,1
    - Dst: ossl_cmp_pkisi_get_pkifailureinfo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:251,1
    - Dst: snprint_PKIStatusInfo_parts
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:253,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - statusInfo
    - buf
    - bufsize
    argTypes:
    - OSSL_CMP_PKISI*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: OSSL_CMP_snprint_PKIStatusInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - snprint_PKIStatusInfo_parts
    - ASN1_INTEGER_get
    - ossl_cmp_pkisi_get_pkifailureinfo
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: "char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo,\n
      \                                    char *buf, size_t bufsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:262,1
    - Dst: snprint_PKIStatusInfo_parts
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:266,1
    - Dst: OSSL_CMP_CTX_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:266,1
    - Dst: OSSL_CMP_CTX_get_failInfoCode
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:267,1
    - Dst: OSSL_CMP_CTX_get0_statusString
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - bufsize
    argTypes:
    - OSSL_CMP_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: OSSL_CMP_CTX_snprint_PKIStatus
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_get_failInfoCode
    - OSSL_CMP_CTX_get0_statusString
    - ERR_raise
    - snprint_PKIStatusInfo_parts
    - OSSL_CMP_CTX_get_status
    linkageType: ''
    returnType: char
    signature: "char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char
      *buf,\n                                     size_t bufsize)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_PKISI_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:281,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:287,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:291,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:292,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:294,1
    - Dst: sk_ASN1_UTF8STRING_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:296,1
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:305,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:307,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:314,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_status.c:315,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 3
    argNames:
    - status
    - fail_info
    - text
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 317
    functionName: OSSL_CMP_STATUSINFO_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_status.c
    functionUses: 1
    functionsReached:
    - OSSL_CMP_PKISI_new
    - ASN1_INTEGER_set
    - ASN1_UTF8STRING_new
    - ASN1_BIT_STRING_new
    - OSSL_CMP_PKISI_free
    - sk_ASN1_UTF8STRING_new_null
    - ASN1_STRING_set
    - ASN1_UTF8STRING_free
    - sk_ASN1_UTF8STRING_push
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: OSSL_CMP_PKISI
    signature: "OSSL_CMP_PKISI *OSSL_CMP_STATUSINFO_new(int status, int fail_info,\n
      \                                       const char *text)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_err.c:174,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_err.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: ossl_err_load_CMP_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_CMP_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:29,1
    - Dst: OSSL_trace_set_channel
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:31,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: OSSL_CMP_log_open
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - OSSL_trace_set_channel
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_log_open(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_trace_set_channel
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: OSSL_CMP_log_close
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 1
    functionsReached:
    - OSSL_trace_set_channel
    linkageType: ''
    returnType: void
    signature: void OSSL_CMP_log_close(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:49,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:56,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:57,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:58,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:62,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:64,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:65,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:66,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:67,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:68,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:69,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:70,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 73
    functionName: parse_level
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    - strcmp
    - OPENSSL_strlcpy
    - strncmp
    linkageType: ''
    returnType: OSSL_CMP_severity
    signature: OSSL_CMP_severity parse_level(const char *level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:80,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:90,1
    - Dst: parse_level
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:92,1
    - Dst: strtol
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:95,1
    - Dst: parse_level
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:99,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:100,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:101,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - buf
    - level
    - func
    - file
    - line
    argTypes:
    - char*
    - OSSL_CMP_severity*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 112
    functionName: ossl_cmp_log_parse_metadata
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - parse_level
    - strchr
    - strtol
    - OPENSSL_strndup
    linkageType: ''
    returnType: char
    signature: "char *ossl_cmp_log_parse_metadata(const char *buf,\n                                        OSSL_CMP_severity
      *level,\n                                        char **func, char **file, int
      *line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - func
    - fallback
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: improve_location_name
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *improve_location_name(const char *func, const char *fallback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:142,1
    - Dst: improve_location_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - bio
    - component
    - file
    - line
    - level
    - msg
    argTypes:
    - BIO*
    - char*
    - char*
    - int
    - OSSL_CMP_severity
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: OSSL_CMP_print_to_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - improve_location_name
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_print_to_bio(BIO *bio, const char *component, const char
      *file,\n                          int line, OSSL_CMP_severity level, const char
      *msg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error_all
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:159,1
    - Dst: improve_location_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:161,1
    - Dst: ERR_lib_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:161,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:162,1
    - Dst: ERR_SYSTEM_ERROR
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:167,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:168,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:171,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:175,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:179,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:181,1
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:185,1
    - Dst: OSSL_CMP_print_to_bio
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:188,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:190,1
    - Dst: log_fn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - log_fn
    argTypes:
    - OSSL_CMP_log_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 200
    functionName: OSSL_CMP_print_errors_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_print_to_bio
    - ERR_GET_REASON
    - ERR_lib_error_string
    - ERR_get_error_all
    - improve_location_name
    - BIO_snprintf
    - BIO_free
    - ERR_reason_error_string
    - BIO_new_fp
    - log_fn
    - openssl_strerror_r
    - ERR_SYSTEM_ERROR
    linkageType: ''
    returnType: void
    signature: void OSSL_CMP_print_errors_cb(OSSL_CMP_log_cb_t log_fn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:248,1
    - Dst: ASN1_OCTET_STRING_dup::ASN1_OCTET_STRING_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:255,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - tgt
    - src
    argTypes:
    - ASN1_OCTET_STRING**
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: ossl_cmp_asn1_octet_string_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_dup::ASN1_OCTET_STRING_dup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_asn1_octet_string_set1(ASN1_OCTET_STRING **tgt,\n                                    const
      ASN1_OCTET_STRING *src)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:272,1
    - Dst: ASN1_OCTET_STRING_new::ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:276,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_util.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - tgt
    - bytes
    - len
    argTypes:
    - ASN1_OCTET_STRING**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 286
    functionName: ossl_cmp_asn1_octet_string_set1_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_util.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ERR_raise
    - ASN1_OCTET_STRING_new::ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_asn1_octet_string_set1_bytes(ASN1_OCTET_STRING **tgt,\n
      \                                         const unsigned char *bytes, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: OSSL_CMP_CTX_get0_trustedStore
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:43,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - store
    argTypes:
    - OSSL_CMP_CTX*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: OSSL_CMP_CTX_set0_trustedStore
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:86,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:90,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - pmd
    - nid
    argTypes:
    - OSSL_CMP_CTX*
    - EVP_MD**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 11
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: cmp_ctx_set_md
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2sn
    - EVP_MD_free
    - ERR_raise
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int cmp_ctx_set_md(OSSL_CMP_CTX *ctx, EVP_MD **pmd, int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:104,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:110,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:121,1
    - Dst: cmp_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:125,1
    - Dst: cmp_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:130,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:139,1
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:141,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 102
    functionDepth: 12
    functionLinenumber: 102
    functionLinenumberEnd: 143
    functionName: OSSL_CMP_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_free
    - ERR_raise
    - OPENSSL_zalloc
    - cmp_ctx_set_md
    - sk_X509_new_null
    - OPENSSL_strdup
    linkageType: ''
    returnType: OSSL_CMP_CTX
    signature: OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - itavs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: OSSL_CMP_ITAVs_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_CMP_ITAVs_free(itavs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exts
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: X509_EXTENSIONS_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_EXTENSIONS_free(exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - text
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: OSSL_CMP_PKIFREETEXT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_CMP_PKIFREETEXT_free(text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:156,1
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:161,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:162,1
    - Dst: OSSL_CMP_ITAVs_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:168,1
    - Dst: ossl_cmp_ctx_set0_statusString
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:171,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:172,1
    - Dst: ossl_cmp_ctx_set1_newChain
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:173,1
    - Dst: ossl_cmp_ctx_set1_caPubs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:174,1
    - Dst: ossl_cmp_ctx_set1_extraCertsIn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:175,1
    - Dst: ossl_cmp_ctx_set0_validatedSrvCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:176,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:177,1
    - Dst: OSSL_CMP_CTX_set1_senderNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:178,1
    - Dst: ossl_cmp_ctx_set1_recipNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:179,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 180
    functionName: OSSL_CMP_CTX_reinit
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAVs_free
    - ossl_cmp_ctx_set1_recipNonce
    - ossl_cmp_debug
    - ossl_cmp_ctx_set1_newChain
    - ERR_raise
    - ossl_cmp_ctx_set0_validatedSrvCert
    - ossl_cmp_ctx_set1_caPubs
    - OSSL_CMP_CTX_set1_senderNonce
    - OSSL_HTTP_close
    - ossl_cmp_ctx_set0_statusString
    - ossl_cmp_ctx_set0_newCert
    - ossl_cmp_ctx_set1_extraCertsIn
    - OSSL_CMP_CTX_set1_transactionID
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:189,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:190,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:192,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:193,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:195,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:196,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:198,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:199,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:200,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:201,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:202,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:204,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:205,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:206,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:207,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:209,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:210,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:211,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:213,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:214,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:215,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:216,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:217,1
    - Dst: sk_OSSL_CMP_ITAV_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:218,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:219,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:221,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:222,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:223,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:224,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:225,1
    - Dst: sk_POLICYINFO_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:226,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:227,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:228,1
    - Dst: sk_OSSL_CMP_ITAV_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:230,1
    - Dst: sk_ASN1_UTF8STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:232,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:233,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:234,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:235,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:236,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 239
    functionName: OSSL_CMP_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - X509_NAME_free
    - X509_free
    - sk_X509_pop_free
    - ossl_cmp_debug
    - ASN1_OCTET_STRING_free
    - sk_OSSL_CMP_ITAV_pop_free
    - OPENSSL_cleanse
    - sk_POLICYINFO_pop_free
    - X509_REQ_free
    - EVP_PKEY_free
    - OPENSSL_free
    - sk_GENERAL_NAME_pop_free
    - OSSL_HTTP_close
    - sk_ASN1_UTF8STRING_pop_free
    - EVP_MD_free
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - status
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: ossl_cmp_ctx_set_status
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_ctx_set_status(OSSL_CMP_CTX *ctx, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: OSSL_CMP_CTX_get_status
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: OSSL_CMP_CTX_get0_statusString
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CMP_PKIFREETEXT
    signature: OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:278,1
    - Dst: sk_ASN1_UTF8STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - text
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_PKIFREETEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: ossl_cmp_ctx_set0_statusString
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_UTF8STRING_pop_free
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_ctx_set0_statusString(OSSL_CMP_CTX *ctx,\n                                   OSSL_CMP_PKIFREETEXT
      *text)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:287,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: ossl_cmp_ctx_set0_validatedSrvCert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 3
    functionsReached:
    - X509_free
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_ctx_set0_validatedSrvCert(OSSL_CMP_CTX *ctx, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_certConf_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: OSSL_CMP_CTX_set_certConf_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - OSSL_CMP_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: OSSL_CMP_CTX_set_certConf_cb_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: OSSL_CMP_CTX_get_certConf_cb_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_log_parse_metadata
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:349,1
    - Dst: OSSL_CMP_CTX*::log_cb
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:354,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:360,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 5
    argNames:
    - buf
    - cnt
    - category
    - cmd
    - vdata
    argTypes:
    - char*
    - size_t
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 363
    functionName: ossl_cmp_log_trace_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_log_parse_metadata
    - OSSL_CMP_CTX*::log_cb
    - OPENSSL_free
    linkageType: ''
    returnType: size_t
    signature: "size_t ossl_cmp_log_trace_cb(const char *buf, size_t cnt,\n                                    int
      category, int cmd, void *vdata)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:384,1
    - Dst: OSSL_TRACE_ENABLED
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:394,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:397,1
    - Dst: BIO_vsnprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:401,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:403,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:405,1
    - Dst: BIO_vsnprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:409,1
    - Dst: OSSL_CMP_CTX*::log_cb
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:410,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:413,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 7
    argNames:
    - level
    - ctx
    - func
    - file
    - line
    - level_str
    - format
    argTypes:
    - OSSL_CMP_severity
    - OSSL_CMP_CTX*
    - char*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 415
    functionName: ossl_cmp_print_log
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - va_end
    - BIO_puts
    - va_start
    - BIO_snprintf
    - OSSL_CMP_CTX*::log_cb
    - OSSL_TRACE_ENABLED
    - BIO_vsnprintf
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_print_log(OSSL_CMP_severity level, const OSSL_CMP_CTX
      *ctx,\n                       const char *func, const char *file, int line,\n
      \                      const char *level_str, const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:397,1
    - Dst: BIO_vsnprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:401,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 405
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - BIO_puts
    - BIO_vsnprintf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(CMP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:421,1
    - Dst: OSSL_trace_set_callback
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_log_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 434
    functionName: OSSL_CMP_CTX_set_log_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_trace_set_callback
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_print_errors_cb
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 8
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: OSSL_CMP_CTX_print_errors
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 3
    functionsReached:
    - OSSL_CMP_print_errors_cb
    linkageType: ''
    returnType: void
    signature: void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:452,1
    - Dst: ossl_cmp_asn1_octet_string_set1_bytes
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - ref
    - len
    argTypes:
    - OSSL_CMP_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: OSSL_CMP_CTX_set1_referenceValue
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1_bytes
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx,\n                                     const
      unsigned char *ref, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:465,1
    - Dst: ossl_cmp_asn1_octet_string_set1_bytes
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:468,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:471,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - sec
    - len
    argTypes:
    - OSSL_CMP_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 476
    functionName: OSSL_CMP_CTX_set1_secretValue
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - ossl_cmp_asn1_octet_string_set1_bytes
    - OPENSSL_cleanse
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx,\n                                  const
      unsigned char *sec, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:554,1
    - Dst: CERTIFICATEPOLICIES_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:559,1
    - Dst: sk_POLICYINFO_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pinfo
    argTypes:
    - OSSL_CMP_CTX*
    - POLICYINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 563
    functionName: OSSL_CMP_CTX_push0_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - sk_POLICYINFO_push
    - CERTIFICATEPOLICIES_new
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:569,1
    - Dst: OSSL_CMP_ITAV_push0_stack_item
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - itav
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_ITAV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 573
    functionName: OSSL_CMP_CTX_push0_geninfo_ITAV
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAV_push0_stack_item
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV
      *itav)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:578,1
    - Dst: OSSL_CMP_ITAVs_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 584
    functionName: OSSL_CMP_CTX_reset_geninfo_ITAVs
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAVs_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:590,1
    - Dst: OSSL_CMP_ITAV_push0_stack_item
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - itav
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_ITAV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 594
    functionName: OSSL_CMP_CTX_push0_genm_ITAV
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAV_push0_stack_item
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FIELD
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 642
    functionName: DEFINE_OSSL_CMP_CTX_set1
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_OSSL_CMP_CTX_set1(FIELD, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cert
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 644
    functionName: X509_invalid
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_invalid(cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 645
    functionName: EVP_PKEY_invalid
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVP_PKEY_invalid(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FIELD
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: DEFINE_OSSL_CMP_CTX_set1_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_OSSL_CMP_CTX_set1_up_ref(FIELD, TYPE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:691,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:695,1
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:696,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:697,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - exts
    argTypes:
    - OSSL_CMP_CTX*
    - X509_EXTENSIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 703
    functionName: OSSL_CMP_CTX_set0_reqExtensions
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_num
    - X509v3_get_ext_by_NID
    - ERR_raise
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS
      *exts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:709,1
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 716
    functionName: OSSL_CMP_CTX_reqExtensions_have_SAN
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:728,1
    - Dst: OSSL_CMP_CTX_reqExtensions_have_SAN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:732,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:733,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:738,1
    - Dst: GENERAL_NAME_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:740,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:742,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - name
    argTypes:
    - OSSL_CMP_CTX*
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 747
    functionName: OSSL_CMP_CTX_push1_subjectAltName
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - GENERAL_NAME_dup
    - GENERAL_NAME_free
    - ERR_raise
    - sk_GENERAL_NAME_push
    - sk_GENERAL_NAME_new_null
    - OSSL_CMP_CTX_reqExtensions_have_SAN
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx,\n                                      const
      GENERAL_NAME *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:798,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 804
    functionName: ossl_cmp_ctx_set0_newCert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - X509_free
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_ctx_set0_newCert(OSSL_CMP_CTX *ctx, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 817
    functionName: OSSL_CMP_CTX_get0_newCert
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: X509
    signature: X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:826,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - priv
    - pkey
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 823
    functionDepth: 4
    functionLinenumber: 823
    functionLinenumberEnd: 834
    functionName: OSSL_CMP_CTX_set0_newPkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY
      *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:841,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - priv
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 850
    functionName: OSSL_CMP_CTX_get0_newPkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 2
    functionsReached:
    - X509_REQ_get0_pubkey
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:854,1
    - Dst: X509_REQ_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:859,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:861,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:863,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 865
    functionName: ossl_cmp_ctx_get0_newPubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - X509_REQ_get0_pubkey
    - ossl_assert
    - X509_get0_pubkey
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *ossl_cmp_ctx_get0_newPubkey(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:872,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - OSSL_CMP_CTX*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 876
    functionName: OSSL_CMP_CTX_set1_transactionID
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 2
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx,\n                                    const
      ASN1_OCTET_STRING *id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:882,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - nonce
    argTypes:
    - OSSL_CMP_CTX*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 885
    functionName: ossl_cmp_ctx_set1_recipNonce
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 2
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_ctx_set1_recipNonce(OSSL_CMP_CTX *ctx,\n                                 const
      ASN1_OCTET_STRING *nonce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:892,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - nonce
    argTypes:
    - OSSL_CMP_CTX*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 896
    functionName: OSSL_CMP_CTX_set1_senderNonce
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx,\n                                  const
      ASN1_OCTET_STRING *nonce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_HTTP_bio_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 916
    functionName: OSSL_CMP_CTX_set_http_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - OSSL_CMP_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 927
    functionName: OSSL_CMP_CTX_set_http_cb_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 940
    functionName: OSSL_CMP_CTX_get_http_cb_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - cb
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_transfer_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: OSSL_CMP_CTX_set_transfer_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - OSSL_CMP_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 962
    functionName: OSSL_CMP_CTX_set_transfer_cb_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 975
    functionName: OSSL_CMP_CTX_get_transfer_cb_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - port
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 986
    functionName: OSSL_CMP_CTX_set_serverPort
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - fail_info
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 998
    functionName: ossl_cmp_ctx_set_failInfoCode
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_ctx_set_failInfoCode(OSSL_CMP_CTX *ctx, int fail_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1011
    functionName: OSSL_CMP_CTX_get_failInfoCode
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1019,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1035,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1042,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1076,1
    - Dst: cmp_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1082,1
    - Dst: cmp_ctx_set_md
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1086,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1112,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 97
    argCount: 3
    argNames:
    - ctx
    - opt
    - val
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1014
    functionDepth: 12
    functionLinenumber: 1014
    functionLinenumberEnd: 1117
    functionName: OSSL_CMP_CTX_set_option
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - cmp_ctx_set_md
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1126,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1154,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1156,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c:1170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - opt
    argTypes:
    - OSSL_CMP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1173
    functionName: OSSL_CMP_CTX_get_option
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: IS_CREP
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CREP(t)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:37,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:40,1
    - Dst: ossl_cmp_revrepcontent_get_pkisi
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:53,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:58,1
    - Dst: IS_CREP
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:66,1
    - Dst: ossl_cmp_certrepmessage_get0_certresponse
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:70,1
    - Dst: sk_OSSL_CMP_CERTRESPONSE_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:72,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:76,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:83,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - rep
    - invalid_protection
    - expected_type
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 86
    functionName: unprotected_exception
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_certrepmessage_get0_certresponse
    - ossl_cmp_pkisi_get_status
    - IS_CREP
    - sk_OSSL_CMP_CERTRESPONSE_num
    - ossl_cmp_revrepcontent_get_pkisi
    - OSSL_CMP_MSG_get_bodytype
    - ossl_assert
    - ossl_cmp_log2
    linkageType: ''
    returnType: int
    signature: "int unprotected_exception(const OSSL_CMP_CTX *ctx,\n                                 const
      OSSL_CMP_MSG *rep,\n                                 int invalid_protection,\n
      \                                int expected_type /* ignored here */)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:94,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:97,1
    - Dst: ossl_cmp_pkisi_get_pkifailureinfo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:101,1
    - Dst: ossl_cmp_ctx_set0_statusString
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:103,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:103,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:108,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:109,1
    - Dst: sk_ASN1_UTF8STRING_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:111,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - si
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_PKISI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: save_statusInfo
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_UTF8STRING_push
    - sk_ASN1_UTF8STRING_value
    - ossl_cmp_pkisi_get_status
    - ASN1_STRING_dup
    - sk_ASN1_UTF8STRING_num
    - ossl_cmp_ctx_set0_statusString
    - sk_ASN1_UTF8STRING_new_null
    - ossl_cmp_pkisi_get_pkifailureinfo
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int save_statusInfo(OSSL_CMP_CTX *ctx, OSSL_CMP_PKISI *si)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_bodytype_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:130,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:130,1
    - Dst: ossl_cmp_bodytype_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:131,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:134,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:146,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:149,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:151,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:160,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:162,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:168,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:169,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:176,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:182,1
    - Dst: ossl_cmp_bodytype_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:182,1
    - Dst: ossl_cmp_ctx_set1_extraCertsIn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:186,1
    - Dst: ossl_cmp_msg_check_update
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:189,1
    - Dst: IS_CREP
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:199,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:203,1
    - Dst: ossl_cmp_bodytype_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:204,1
    - Dst: save_statusInfo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:210,1
    - Dst: OSSL_CMP_CTX_snprint_PKIStatus
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:211,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:213,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:215,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:216,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:217,1
    - Dst: ossl_sk_ASN1_UTF8STRING2text
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:219,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:227,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 4
    argNames:
    - ctx
    - req
    - rep
    - expected_type
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - OSSL_CMP_MSG**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 123
    functionDepth: 18
    functionLinenumber: 123
    functionLinenumberEnd: 233
    functionName: send_receive_check
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_msg_check_update
    - ossl_cmp_bodytype_to_string
    - BIO_snprintf
    - time
    - save_statusInfo
    - ERR_raise_data
    - ERR_raise
    - ossl_cmp_log1
    - OSSL_CMP_CTX_snprint_PKIStatus
    - IS_CREP
    - ERR_add_error_data
    - ASN1_INTEGER_get
    - OSSL_CMP_CTX_print_errors
    - OPENSSL_free
    - ossl_cmp_ctx_set1_extraCertsIn
    - OSSL_CMP_MSG_get_bodytype
    - ossl_assert
    - ossl_sk_ASN1_UTF8STRING2text
    linkageType: ''
    returnType: int
    signature: "int send_receive_check(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *req,\n
      \                             OSSL_CMP_MSG **rep, int expected_type)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:256,1
    - Dst: ossl_cmp_pollReq_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:260,1
    - Dst: send_receive_check
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:263,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:267,1
    - Dst: sk_OSSL_CMP_POLLREP_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:275,1
    - Dst: ossl_cmp_pollrepcontent_get0_pollrep
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:278,1
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:282,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:283,1
    - Dst: "check_after < 0 || (uint64_t)check_after\n                >"
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:286,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:288,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:289,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:291,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:296,1
    - Dst: ossl_sk_ASN1_UTF8STRING2text
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:300,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:304,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:307,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:309,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:315,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:318,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:326,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:328,1
    - Dst: ossl_sleep
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:331,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:338,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:346,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:351,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:352,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 5
    argNames:
    - ctx
    - sleep
    - rid
    - rep
    - checkAfter
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    - OSSL_CMP_MSG**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 250
    functionDepth: 19
    functionLinenumber: 250
    functionLinenumberEnd: 354
    functionName: poll_for_response
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - "check_after < 0 || (uint64_t)check_after\n                >"
    - sk_OSSL_CMP_POLLREP_num
    - ASN1_INTEGER_get_int64
    - OSSL_CMP_MSG_free
    - BIO_snprintf
    - ossl_cmp_pollrepcontent_get0_pollrep
    - time
    - ERR_raise
    - ossl_sleep
    - OPENSSL_free
    - ossl_cmp_pollReq_new
    - send_receive_check
    - ERR_add_error_data
    - ossl_cmp_info
    - OSSL_CMP_MSG_get_bodytype
    - ossl_cmp_log2
    - ossl_sk_ASN1_UTF8STRING2text
    linkageType: ''
    returnType: int
    signature: "int poll_for_response(OSSL_CMP_CTX *ctx, int sleep, int rid,\n                             OSSL_CMP_MSG
      **rep, int *checkAfter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_certConf_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:368,1
    - Dst: send_receive_check
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:372,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:375,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - certReqId
    - fail_info
    - txt
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 360
    functionDepth: 19
    functionLinenumber: 360
    functionLinenumberEnd: 378
    functionName: ossl_cmp_exchange_certConf
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - ossl_cmp_certConf_new
    - send_receive_check
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_exchange_certConf(OSSL_CMP_CTX *ctx, int certReqId,\n
      \                              int fail_info, const char *txt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:390,1
    - Dst: ossl_cmp_error_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:393,1
    - Dst: send_receive_check
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:396,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:399,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:400,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - ctx
    - status
    - fail_info
    - txt
    - errorCode
    - details
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 381
    functionDepth: 19
    functionLinenumber: 381
    functionLinenumberEnd: 403
    functionName: ossl_cmp_exchange_error
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_error_new
    - OSSL_CMP_MSG_free
    - OSSL_CMP_PKISI_free
    - send_receive_check
    - OSSL_CMP_STATUSINFO_new
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_exchange_error(OSSL_CMP_CTX *ctx, int status, int fail_info,\n
      \                           const char *txt, int errorCode, const char *details)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:416,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:419,1
    - Dst: ossl_cmp_err
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:421,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:423,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:426,1
    - Dst: ossl_cmp_err
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:432,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:433,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:436,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:440,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:445,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:450,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:453,1
    - Dst: ossl_cmp_certresponse_get1_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:456,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:458,1
    - Dst: OSSL_CMP_CTX_snprint_PKIStatus
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:463,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:464,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - ctx
    - bodytype
    - crep
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - OSSL_CMP_CERTRESPONSE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 410
    functionDepth: 8
    functionLinenumber: 410
    functionLinenumberEnd: 466
    functionName: get1_cert_status
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_err
    - ossl_cmp_pkisi_get_status
    - ossl_assert
    - ossl_cmp_certresponse_get1_cert
    - ERR_raise
    - ossl_cmp_log1
    - OSSL_CMP_CTX_snprint_PKIStatus
    - ERR_add_error_data
    - ossl_cmp_warn
    linkageType: ''
    returnType: X509
    signature: "X509 *get1_cert_status(OSSL_CMP_CTX *ctx, int bodytype,\n                              OSSL_CMP_CERTRESPONSE
      *crep)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_get_certConf_cb_arg
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:488,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:489,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:496,1
    - Dst: X509_build_chain
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:497,1
    - Dst: X509_STORE_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:500,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:502,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:505,1
    - Dst: X509_VERIFY_PARAM_clear_flags
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:508,1
    - Dst: X509_STORE_CTX_get0_param
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:508,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:513,1
    - Dst: ossl_x509_add_certs_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:516,1
    - Dst: X509_STORE_CTX_get0_chain
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:516,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:519,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:523,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:526,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:527,1
    - Dst: sk_X509_shift
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:527,1
    - Dst: ossl_cmp_err
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:530,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:533,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:537,1
    - Dst: OSSL_CMP_CTX_get1_extraCertsIn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:538,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:540,1
    - Dst: ossl_cmp_ctx_set1_newChain
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:543,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:544,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - cert
    - fail_info
    - text
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 485
    functionDepth: 9
    functionLinenumber: 485
    functionLinenumberEnd: 547
    functionName: OSSL_CMP_certConf_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - ossl_cmp_err
    - X509_free
    - X509_STORE_CTX_init
    - OSSL_CMP_CTX_get1_extraCertsIn
    - X509_STORE_CTX_free
    - OSSL_CMP_CTX_get_certConf_cb_arg
    - X509_VERIFY_PARAM_clear_flags
    - X509_STORE_CTX_new_ex
    - sk_X509_free
    - ossl_cmp_debug
    - X509_build_chain
    - X509_STORE_CTX_get0_param
    - sk_X509_shift
    - ossl_cmp_ctx_set1_newChain
    - sk_X509_num
    - STACK_OF
    - ossl_x509_add_certs_new
    - sk_X509_pop_free
    - X509_STORE_CTX_get0_chain
    - ossl_cmp_warn
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info,\n
      \                        const char **text)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_ctx_get0_newPubkey
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:561,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:571,1
    - Dst: sk_OSSL_CMP_CERTRESPONSE_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:576,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:577,1
    - Dst: ossl_cmp_certrepmessage_get0_certresponse
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:580,1
    - Dst: save_statusInfo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:583,1
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:586,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:588,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:593,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:594,1
    - Dst: poll_for_response
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:596,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:601,1
    - Dst: get1_cert_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:606,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:608,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:611,1
    - Dst: ossl_cmp_ctx_set1_caPubs
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:619,1
    - Dst: X509_NAME_oneline
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:622,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:622,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:625,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:643,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:647,1
    - Dst: ossl_cmp_hdr_has_implicitConfirm
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:650,1
    - Dst: ossl_cmp_exchange_certConf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:651,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:657,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:663,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 7
    argNames:
    - ctx
    - sleep
    - rid
    - resp
    - checkAfter
    - req_type
    - expected_type
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - int
    - OSSL_CMP_MSG**
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 557
    functionDepth: 20
    functionLinenumber: 557
    functionLinenumberEnd: 665
    functionName: cert_response
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_pkisi_get_status
    - OSSL_CMP_MSG_free
    - ossl_cmp_log1
    - ossl_cmp_certrepmessage_get0_certresponse
    - ossl_assert
    - get1_cert_status
    - sk_OSSL_CMP_CERTRESPONSE_num
    - ossl_cmp_hdr_has_implicitConfirm
    - X509_NAME_oneline
    - save_statusInfo
    - ossl_cmp_exchange_certConf
    - ERR_raise_data
    - X509_check_private_key
    - ossl_cmp_ctx_get0_newPubkey
    - ERR_raise
    - ossl_cmp_ctx_set1_caPubs
    - OPENSSL_free
    - ERR_add_error_data
    - ossl_cmp_asn1_get_int
    - ossl_cmp_ctx_set0_newCert
    - cb
    - poll_for_response
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: "int cert_response(OSSL_CMP_CTX *ctx, int sleep, int rid,\n                         OSSL_CMP_MSG
      **resp, int *checkAfter,\n                         int req_type, int expected_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:675,1
    - Dst: ossl_cmp_certreq_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:679,1
    - Dst: send_receive_check
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:683,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - req_type
    - crm
    - p_rep
    - rep_type
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - OSSL_CRMF_MSG*
    - OSSL_CMP_MSG**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 667
    functionDepth: 19
    functionLinenumber: 667
    functionLinenumberEnd: 686
    functionName: initial_certreq
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - send_receive_check
    - ossl_cmp_certreq_new
    - ossl_cmp_ctx_set0_newCert
    linkageType: ''
    returnType: int
    signature: "int initial_certreq(OSSL_CMP_CTX *ctx,\n                           int
      req_type, const OSSL_CRMF_MSG *crm,\n                           OSSL_CMP_MSG
      **p_rep, int rep_type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:698,1
    - Dst: initial_certreq
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:703,1
    - Dst: ossl_cmp_exchange_error
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:707,1
    - Dst: poll_for_response
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:710,1
    - Dst: cert_response
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:714,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:718,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - req_type
    - crm
    - checkAfter
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - OSSL_CRMF_MSG*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 688
    functionDepth: 21
    functionLinenumber: 688
    functionLinenumberEnd: 720
    functionName: OSSL_CMP_try_certreq
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - ossl_cmp_exchange_error
    - ERR_raise
    - initial_certreq
    - poll_for_response
    - cert_response
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type,\n                         const
      OSSL_CRMF_MSG *crm, int *checkAfter)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:740,1
    - Dst: initial_certreq
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:744,1
    - Dst: cert_response
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:747,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - req_type
    - crm
    argTypes:
    - OSSL_CMP_CTX*
    - int
    - OSSL_CRMF_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 729
    functionDepth: 21
    functionLinenumber: 729
    functionLinenumberEnd: 755
    functionName: OSSL_CMP_exec_certreq
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - cert_response
    - initial_certreq
    - OSSL_CMP_MSG_free
    - ERR_raise
    linkageType: ''
    returnType: X509
    signature: "X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type,\n                            const
      OSSL_CRMF_MSG *crm)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:769,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:774,1
    - Dst: ossl_cmp_rr_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:779,1
    - Dst: send_receive_check
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:783,1
    - Dst: sk_OSSL_CMP_PKISI_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:788,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:789,1
    - Dst: sk_OSSL_CMP_PKISI_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:793,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:794,1
    - Dst: ossl_cmp_revrepcontent_get_pkisi
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:800,1
    - Dst: save_statusInfo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:801,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:803,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:805,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:809,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:813,1
    - Dst: ossl_cmp_info
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:816,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:821,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:827,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:830,1
    - Dst: sk_OSSL_CRMF_CERTID_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:835,1
    - Dst: sk_OSSL_CMP_REVDETAILS_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:838,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_get0_issuer
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:839,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:840,1
    - Dst: sk_OSSL_CRMF_CERTID_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:842,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:843,1
    - Dst: ossl_cmp_revrepcontent_get_CertId
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:847,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:848,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:852,1
    - Dst: OSSL_CRMF_CERTID_get0_issuer
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:852,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:854,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:859,1
    - Dst: OSSL_CRMF_CERTID_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:860,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:862,1
    - Dst: sk_X509_CRL_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:870,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:871,1
    - Dst: OSSL_CMP_CTX_snprint_PKIStatus
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:878,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:879,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:882,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_client.c:883,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 104
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_CMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 757
    functionDepth: 19
    functionLinenumber: 757
    functionLinenumberEnd: 885
    functionName: OSSL_CMP_exec_RR_ses
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_client.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_revrepcontent_get_CertId
    - OSSL_CRMF_CERTID_get0_serialNumber
    - sk_OSSL_CMP_PKISI_num
    - ossl_cmp_pkisi_get_status
    - OSSL_CMP_MSG_free
    - ossl_cmp_revrepcontent_get_pkisi
    - save_statusInfo
    - ASN1_INTEGER_cmp
    - ossl_cmp_rr_new
    - X509_NAME_cmp
    - OSSL_CRMF_CERTTEMPLATE_get0_serialNumber
    - ossl_cmp_warn
    - sk_X509_CRL_num
    - ERR_raise
    - send_receive_check
    - ERR_add_error_data
    - ossl_cmp_info
    - OSSL_CRMF_CERTTEMPLATE_get0_issuer
    - OSSL_CMP_CTX_snprint_PKIStatus
    - sk_OSSL_CRMF_CERTID_num
    - OSSL_CRMF_CERTID_get0_issuer
    - sk_OSSL_CMP_REVDETAILS_value
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_ITAV_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:137,1
    - Dst: OSSL_CMP_ITAV_set0
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - ASN1_OBJECT*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: OSSL_CMP_ITAV_create
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAV_set0
    - OSSL_CMP_ITAV_new
    linkageType: ''
    returnType: OSSL_CMP_ITAV
    signature: OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - itav
    - type
    - value
    argTypes:
    - OSSL_CMP_ITAV*
    - ASN1_OBJECT*
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: OSSL_CMP_ITAV_set0
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type,\n
      \                       ASN1_TYPE *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - itav
    argTypes:
    - OSSL_CMP_ITAV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: OSSL_CMP_ITAV_get0_type
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - itav
    argTypes:
    - OSSL_CMP_ITAV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: OSSL_CMP_ITAV_get0_value
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:196,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:197,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 209
    functionName: ossl_cmp_asn1_get_int
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c
    functionUses: 3
    functionsReached:
    - ASN1_INTEGER_get_int64
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_asn1_get_int(const ASN1_INTEGER *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:218,1
    - Dst: ossl_cmp_msg_set0_libctx
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 248
    functionName: ossl_cmp_msg_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_asn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ossl_cmp_msg_set0_libctx
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_msg_cb(int operation, ASN1_VALUE **pval,\n                           const
      ASN1_ITEM *it, void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:25,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - pvno
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: ossl_cmp_hdr_set_pvno
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_set_pvno(OSSL_CMP_PKIHEADER *hdr, int pvno)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:34,1
    - Dst: ASN1_INTEGER_get_int64
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: ossl_cmp_hdr_get_pvno
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get_int64
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_get_pvno(const OSSL_CMP_PKIHEADER *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:43,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: ossl_cmp_hdr_get_protection_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_get_protection_nid(const OSSL_CMP_PKIHEADER *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: OSSL_CMP_HDR_get0_transactionID
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: "ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const\n                                                   OSSL_CMP_PKIHEADER
      *hdr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: ossl_cmp_hdr_get0_senderNonce
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *ossl_cmp_hdr_get0_senderNonce(const OSSL_CMP_PKIHEADER
      *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: OSSL_CMP_HDR_get0_recipNonce
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER
      *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_NULL_DN
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - GENERAL_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: ossl_cmp_general_name_is_NULL_DN
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - IS_NULL_DN
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_general_name_is_NULL_DN(GENERAL_NAME *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:87,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:89,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:94,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:96,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:100,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - tgt
    - src
    argTypes:
    - GENERAL_NAME**
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: set1_general_name
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - GENERAL_NAME_free
    - X509_NAME_set
    - GENERAL_NAME_new
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int set1_general_name(GENERAL_NAME **tgt, const X509_NAME *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:117,1
    - Dst: set1_general_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - nm
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: ossl_cmp_hdr_set1_sender
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - set1_general_name
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_set1_sender(OSSL_CMP_PKIHEADER *hdr, const X509_NAME
      *nm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:124,1
    - Dst: set1_general_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - nm
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: ossl_cmp_hdr_set1_recipient
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - set1_general_name
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_set1_recipient(OSSL_CMP_PKIHEADER *hdr, const X509_NAME
      *nm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:131,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:134,1
    - Dst: ASN1_GENERALIZEDTIME_set
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:136,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: ossl_cmp_hdr_update_messageTime
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_set
    - ASN1_GENERALIZEDTIME_new
    - time
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_update_messageTime(OSSL_CMP_PKIHEADER *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:142,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:146,1
    - Dst: ossl_cmp_asn1_octet_string_set1_bytes
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tgt
    - ctx
    - len
    argTypes:
    - ASN1_OCTET_STRING**
    - OSSL_CMP_CTX*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: set_random
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - ossl_cmp_asn1_octet_string_set1_bytes
    linkageType: ''
    returnType: int
    signature: int set_random(ASN1_OCTET_STRING **tgt, OSSL_CMP_CTX *ctx, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:156,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - senderKID
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - ASN1_OCTET_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: ossl_cmp_hdr_set1_senderKID
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_hdr_set1_senderKID(OSSL_CMP_PKIHEADER *hdr,\n                                const
      ASN1_OCTET_STRING *senderKID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:164,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:168,1
    - Dst: sk_ASN1_UTF8STRING_push
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - hdr
    - text
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - ASN1_UTF8STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: ossl_cmp_hdr_push0_freeText
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_UTF8STRING_new_null
    - sk_ASN1_UTF8STRING_push
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_push0_freeText(OSSL_CMP_PKIHEADER *hdr, ASN1_UTF8STRING
      *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:176,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:180,1
    - Dst: ossl_cmp_sk_ASN1_UTF8STRING_push_str
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - hdr
    - text
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - ASN1_UTF8STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: ossl_cmp_hdr_push1_freeText
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_UTF8STRING_new_null
    - ossl_assert
    - ossl_cmp_sk_ASN1_UTF8STRING_push_str
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_push1_freeText(OSSL_CMP_PKIHEADER *hdr, ASN1_UTF8STRING
      *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:191,1
    - Dst: OSSL_CMP_ITAV_push0_stack_item
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - hdr
    - itav
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - OSSL_CMP_ITAV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: ossl_cmp_hdr_generalInfo_push0_item
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAV_push0_stack_item
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_hdr_generalInfo_push0_item(OSSL_CMP_PKIHEADER *hdr,\n
      \                                       OSSL_CMP_ITAV *itav)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:202,1
    - Dst: sk_OSSL_CMP_ITAV_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:205,1
    - Dst: OSSL_CMP_ITAV_dup
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:206,1
    - Dst: sk_OSSL_CMP_ITAV_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:206,1
    - Dst: ossl_cmp_hdr_generalInfo_push0_item
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:210,1
    - Dst: OSSL_CMP_ITAV_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - hdr
    - itavs
    argTypes:
    - OSSL_CMP_PKIHEADER*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 216
    functionName: ossl_cmp_hdr_generalInfo_push1_items
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - ossl_cmp_hdr_generalInfo_push0_item
    - sk_OSSL_CMP_ITAV_value
    - sk_OSSL_CMP_ITAV_num
    - OSSL_CMP_ITAV_free
    - OSSL_CMP_ITAV_dup
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_cmp_hdr_generalInfo_push1_items(OSSL_CMP_PKIHEADER *hdr,\n
      \                                        const STACK_OF(OSSL_CMP_ITAV) *itavs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:223,1
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:225,1
    - Dst: OSSL_CMP_ITAV_create
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:228,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:228,1
    - Dst: ossl_cmp_hdr_generalInfo_push0_item
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:231,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:236,1
    - Dst: OSSL_CMP_ITAV_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: ossl_cmp_hdr_set_implicitConfirm
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 2
    functionsReached:
    - ossl_cmp_hdr_generalInfo_push0_item
    - OBJ_nid2obj
    - OSSL_CMP_ITAV_free
    - ASN1_NULL_new
    - ASN1_TYPE_free
    - OSSL_CMP_ITAV_create
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_set_implicitConfirm(OSSL_CMP_PKIHEADER *hdr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:248,1
    - Dst: sk_OSSL_CMP_ITAV_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:251,1
    - Dst: sk_OSSL_CMP_ITAV_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:253,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 260
    functionName: ossl_cmp_hdr_has_implicitConfirm
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - sk_OSSL_CMP_ITAV_value
    - sk_OSSL_CMP_ITAV_num
    - OBJ_obj2nid
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_has_implicitConfirm(const OSSL_CMP_PKIHEADER *hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_random
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:276,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:279,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:284,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - hdr
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 289
    functionName: ossl_cmp_hdr_set_transactionID
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - set_random
    - ossl_cmp_log1
    - OPENSSL_free
    - OPENSSL_buf2hexstr
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_set_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_PKIHEADER
      *hdr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:297,1
    - Dst: ossl_cmp_hdr_set_pvno
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:301,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:308,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:309,1
    - Dst: ossl_cmp_hdr_set1_sender
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:311,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:318,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:322,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:324,1
    - Dst: ossl_cmp_hdr_set1_recipient
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:325,1
    - Dst: ossl_cmp_hdr_update_messageTime
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:329,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:333,1
    - Dst: ossl_cmp_hdr_set_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:337,1
    - Dst: set_random
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:352,1
    - Dst: OSSL_CMP_CTX_set1_senderNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:356,1
    - Dst: ossl_cmp_hdr_push1_freeText
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c:365,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - hdr
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_PKIHEADER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 369
    functionName: ossl_cmp_hdr_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_hdr.c
    functionUses: 1
    functionsReached:
    - ossl_cmp_asn1_octet_string_set1
    - ossl_cmp_hdr_set_pvno
    - ossl_cmp_hdr_set_transactionID
    - ossl_cmp_hdr_set1_sender
    - set_random
    - ossl_cmp_hdr_set1_recipient
    - OSSL_CMP_CTX_set1_senderNonce
    - ossl_cmp_hdr_update_messageTime
    - X509_get_issuer_name
    - ossl_cmp_hdr_push1_freeText
    - ossl_assert
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int ossl_cmp_hdr_init(OSSL_CMP_CTX *ctx, OSSL_CMP_PKIHEADER *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 2
    argNames:
    - keep_alive
    - body_type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: keep_alive
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int keep_alive(int keep_alive, int body_type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:55,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:63,1
    - Dst: X509V3_add_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:67,1
    - Dst: ASN1_item_i2d_mem_bio
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:69,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:73,1
    - Dst: OSSL_CMP_CTX_get_http_cb_arg
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:74,1
    - Dst: ossl_cmp_log3
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:76,1
    - Dst: OSSL_HTTP_transfer
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:79,1
    - Dst: OSSL_CMP_CTX_get_http_cb_arg
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:83,1
    - Dst: keep_alive
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:89,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:90,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:91,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:92,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:95,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:102,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_http.c:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - req
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 51
    functionDepth: 7
    functionLinenumber: 51
    functionLinenumberEnd: 106
    functionName: OSSL_CMP_MSG_http_perform
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_http.c
    functionUses: 0
    functionsReached:
    - X509V3_add_value
    - ASN1_item_i2d_mem_bio
    - ASN1_item_d2i_bio
    - ASN1_ITEM_rptr
    - BIO_snprintf
    - ossl_cmp_log3
    - BIO_free
    - ossl_cmp_debug
    - sk_CONF_VALUE_pop_free
    - ERR_raise
    - STACK_OF
    - OSSL_CMP_CTX_get_http_cb_arg
    - keep_alive
    - OSSL_HTTP_transfer
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx,\n                                        const
      OSSL_CMP_MSG *req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:48,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - srv_ctx
    argTypes:
    - OSSL_CMP_SRV_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: OSSL_CMP_SRV_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OSSL_CMP_CTX_free
    linkageType: ''
    returnType: void
    signature: void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:54,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:59,1
    - Dst: OSSL_CMP_SRV_CTX_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 13
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: OSSL_CMP_SRV_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_new
    - OSSL_CMP_SRV_CTX_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_CMP_SRV_CTX
    signature: OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const
      char *propq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - srv_ctx
    - custom_ctx
    - process_cert_request
    - process_rr
    - process_genm
    - process_error
    - process_certConf
    - process_pollReq
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - void*
    - OSSL_CMP_SRV_cert_request_cb_t
    - OSSL_CMP_SRV_rr_cb_t
    - OSSL_CMP_SRV_genm_cb_t
    - OSSL_CMP_SRV_error_cb_t
    - OSSL_CMP_SRV_certConf_cb_t
    - OSSL_CMP_SRV_pollReq_cb_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: OSSL_CMP_SRV_CTX_init
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx,\n
      \                         OSSL_CMP_SRV_cert_request_cb_t process_cert_request,\n
      \                         OSSL_CMP_SRV_rr_cb_t process_rr,\n                          OSSL_CMP_SRV_genm_cb_t
      process_genm,\n                          OSSL_CMP_SRV_error_cb_t process_error,\n
      \                         OSSL_CMP_SRV_certConf_cb_t process_certConf,\n                          OSSL_CMP_SRV_pollReq_cb_t
      process_pollReq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - srv_ctx
    argTypes:
    - OSSL_CMP_SRV_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: OSSL_CMP_SRV_CTX_get0_cmp_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CMP_CTX
    signature: OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX
      *srv_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - srv_ctx
    argTypes:
    - OSSL_CMP_SRV_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: OSSL_CMP_SRV_CTX_get0_custom_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - srv_ctx
    - val
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: OSSL_CMP_SRV_CTX_set_send_unprotected_errors
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX
      *srv_ctx,\n                                                 int val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - srv_ctx
    - val
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: OSSL_CMP_SRV_CTX_set_accept_unprotected
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx,
      int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - srv_ctx
    - val
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: OSSL_CMP_SRV_CTX_set_accept_raverified
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx,
      int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - srv_ctx
    - val
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: OSSL_CMP_SRV_CTX_set_grant_implicit_confirm
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx,\n
      \                                               int val)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:163,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:169,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:172,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:184,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:188,1
    - Dst: sk_OSSL_CRMF_MSG_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:195,1
    - Dst: sk_OSSL_CRMF_MSG_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:200,1
    - Dst: OSSL_CRMF_MSG_get_certReqId
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:205,1
    - Dst: ossl_cmp_verify_popo
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:211,1
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:213,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:215,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:215,1
    - Dst: OSSL_CMP_MSG_get0_header
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:219,1
    - Dst: OSSL_CMP_SRV_CTX*::process_cert_request
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:221,1
    - Dst: OSSL_CMP_CTX_set_option
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:226,1
    - Dst: ossl_cmp_hdr_has_implicitConfirm
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:228,1
    - Dst: ossl_cmp_certrep_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:235,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:239,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:242,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:243,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:244,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:245,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 157
    functionDepth: 15
    functionLinenumber: 157
    functionLinenumberEnd: 247
    functionName: process_cert_request
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 1
    functionsReached:
    - X509_free
    - ossl_cmp_certrep_new
    - OSSL_CMP_SRV_CTX*::process_cert_request
    - OSSL_CRMF_MSG_get_certReqId
    - ossl_assert
    - ossl_cmp_hdr_has_implicitConfirm
    - ERR_peek_error
    - OSSL_CMP_MSG_get0_header
    - ERR_reason_error_string
    - OSSL_CMP_CTX_set_option
    - ossl_cmp_verify_popo
    - ERR_raise
    - OSSL_CMP_PKISI_free
    - STACK_OF
    - sk_OSSL_CRMF_MSG_value
    - sk_OSSL_CRMF_MSG_num
    - OSSL_CMP_MSG_get_bodytype
    - sk_X509_pop_free
    - OSSL_CMP_STATUSINFO_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *process_cert_request(OSSL_CMP_SRV_CTX *srv_ctx,\n                                          const
      OSSL_CMP_MSG *req)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:260,1
    - Dst: sk_OSSL_CMP_REVDETAILS_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:263,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:264,1
    - Dst: sk_OSSL_CMP_REVDETAILS_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:268,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:270,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_get0_issuer
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:275,1
    - Dst: OSSL_CRMF_CERTTEMPLATE_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:276,1
    - Dst: OSSL_CRMF_CERTID_gen
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:278,1
    - Dst: OSSL_CMP_SRV_CTX*::process_rr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:280,1
    - Dst: ossl_cmp_rp_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:283,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:285,1
    - Dst: OSSL_CRMF_CERTID_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:288,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:289,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 249
    functionDepth: 15
    functionLinenumber: 249
    functionLinenumberEnd: 291
    functionName: process_rr
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 1
    functionsReached:
    - OSSL_CRMF_CERTID_free
    - OSSL_CRMF_CERTTEMPLATE_get0_issuer
    - OSSL_CMP_SRV_CTX*::process_rr
    - OSSL_CRMF_CERTID_gen
    - ossl_assert
    - ossl_cmp_rp_new
    - ERR_raise
    - OSSL_CMP_PKISI_free
    - sk_OSSL_CMP_REVDETAILS_num
    - OSSL_CRMF_CERTTEMPLATE_get0_serialNumber
    - sk_OSSL_CMP_REVDETAILS_value
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *process_rr(OSSL_CMP_SRV_CTX *srv_ctx,\n                                const
      OSSL_CMP_MSG *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:303,1
    - Dst: OSSL_CMP_SRV_CTX*::process_genm
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:306,1
    - Dst: ossl_cmp_genp_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:309,1
    - Dst: sk_OSSL_CMP_ITAV_pop_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 16
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: process_genm
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 1
    functionsReached:
    - OSSL_CMP_SRV_CTX*::process_genm
    - sk_OSSL_CMP_ITAV_pop_free
    - ossl_assert
    - ossl_cmp_genp_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *process_genm(OSSL_CMP_SRV_CTX *srv_ctx,\n                                  const
      OSSL_CMP_MSG *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:320,1
    - Dst: OSSL_CMP_SRV_CTX*::process_error
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:323,1
    - Dst: ossl_cmp_pkiconf_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:326,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 314
    functionDepth: 15
    functionLinenumber: 314
    functionLinenumberEnd: 329
    functionName: process_error
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 3
    functionsReached:
    - OSSL_CMP_SRV_CTX*::process_error
    - ERR_raise
    - ossl_assert
    - ossl_cmp_pkiconf_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *process_error(OSSL_CMP_SRV_CTX *srv_ctx,\n                                   const
      OSSL_CMP_MSG *req)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:340,1
    - Dst: sk_OSSL_CMP_CERTSTATUS_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:345,1
    - Dst: OSSL_CMP_CTX_get_option
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:347,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:349,1
    - Dst: ossl_cmp_err
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:354,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:357,1
    - Dst: sk_OSSL_CMP_CERTSTATUS_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:358,1
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:362,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:367,1
    - Dst: OSSL_CMP_SRV_CTX*::process_certConf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:370,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:374,1
    - Dst: ossl_cmp_pkisi_get_status
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:375,1
    - Dst: ossl_cmp_PKIStatus_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:376,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:378,1
    - Dst: ossl_cmp_pkiconf_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:384,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:385,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 331
    functionDepth: 15
    functionLinenumber: 331
    functionLinenumberEnd: 387
    functionName: process_certConf
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 1
    functionsReached:
    - ossl_cmp_err
    - ossl_cmp_pkisi_get_status
    - ERR_raise
    - ossl_cmp_pkiconf_new
    - ossl_cmp_asn1_get_int
    - ossl_cmp_PKIStatus_to_string
    - ossl_cmp_warn
    - sk_OSSL_CMP_CERTSTATUS_value
    - OSSL_CMP_CTX_get_option
    - OSSL_CMP_SRV_CTX*::process_certConf
    - sk_OSSL_CMP_CERTSTATUS_num
    - ossl_assert
    - ossl_cmp_log2
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *process_certConf(OSSL_CMP_SRV_CTX *srv_ctx,\n                                      const
      OSSL_CMP_MSG *req)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:399,1
    - Dst: sk_OSSL_CMP_POLLREQ_num
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:403,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:404,1
    - Dst: sk_OSSL_CMP_POLLREQ_value
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:408,1
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:409,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:411,1
    - Dst: OSSL_CMP_SRV_CTX*::process_pollReq
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:414,1
    - Dst: process_cert_request
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:419,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:420,1
    - Dst: ossl_cmp_pollRep_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:422,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:424,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 389
    functionDepth: 15
    functionLinenumber: 389
    functionLinenumberEnd: 427
    functionName: process_pollReq
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 1
    functionsReached:
    - process_cert_request
    - ossl_cmp_pollRep_new
    - OSSL_CMP_MSG_free
    - OSSL_CMP_SRV_CTX*::process_pollReq
    - ERR_raise
    - ossl_cmp_asn1_get_int
    - sk_OSSL_CMP_POLLREQ_value
    - ossl_assert
    - sk_OSSL_CMP_POLLREQ_num
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *process_pollReq(OSSL_CMP_SRV_CTX *srv_ctx,\n                                     const
      OSSL_CMP_MSG *req)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:438,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:442,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:446,1
    - Dst: OSSL_CMP_CTX_get_option
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:447,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - req
    - invalid_protection
    - accept_unprotected_requests
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 452
    functionName: unprotected_exception
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ossl_assert
    - ossl_cmp_log1
    - OSSL_CMP_CTX_get_option
    - OSSL_CMP_MSG_get_bodytype
    - ossl_cmp_warn
    linkageType: ''
    returnType: int
    signature: "int unprotected_exception(const OSSL_CMP_CTX *ctx,\n                                 const
      OSSL_CMP_MSG *req,\n                                 int invalid_protection,\n
      \                                int accept_unprotected_requests)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_get0_header
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:469,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:470,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:475,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:476,1
    - Dst: ossl_cmp_bodytype_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:477,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:484,1
    - Dst: OSSL_CMP_CTX_set1_recipient
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:487,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:501,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:504,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:507,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:510,1
    - Dst: OSSL_CMP_CTX_set1_senderNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:511,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:518,1
    - Dst: ossl_cmp_msg_check_update
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:524,1
    - Dst: ossl_cmp_hdr_get_protection_nid
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:527,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:538,1
    - Dst: process_cert_request
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:540,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:544,1
    - Dst: process_rr
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:546,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:550,1
    - Dst: process_genm
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:552,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:556,1
    - Dst: process_error
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:558,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:562,1
    - Dst: process_certConf
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:564,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:568,1
    - Dst: process_pollReq
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:570,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:573,1
    - Dst: ERR_peek_error_data
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:582,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:594,1
    - Dst: ossl_cmp_ctx_set1_recipNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:595,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:600,1
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:601,1
    - Dst: ossl_cmp_error_new
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:603,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:605,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:608,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:612,1
    - Dst: ossl_cmp_log1
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:614,1
    - Dst: ossl_cmp_bodytype_to_string
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:615,1
    - Dst: ossl_cmp_log
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:617,1
    - Dst: OSSL_CMP_CTX_get_option
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:625,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:633,1
    - Dst: OSSL_CMP_CTX_set1_senderNonce
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:634,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 126
    argCount: 2
    argNames:
    - srv_ctx
    - req
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 457
    functionDepth: 18
    functionLinenumber: 457
    functionLinenumberEnd: 641
    functionName: OSSL_CMP_SRV_process_request
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_error_new
    - ossl_cmp_log1
    - OSSL_CMP_CTX_print_errors
    - OSSL_CMP_CTX_get_option
    - process_rr
    - ERR_peek_error_data
    - OSSL_CMP_MSG_get0_header
    - ERR_reason_error_string
    - OPENSSL_buf2hexstr
    - ossl_cmp_log
    - process_certConf
    - process_pollReq
    - ossl_cmp_ctx_set1_recipNonce
    - ossl_cmp_msg_check_update
    - ERR_raise
    - OSSL_CMP_CTX_set1_recipient
    - OSSL_CMP_PKISI_free
    - OPENSSL_free
    - OSSL_CMP_MSG_get_bodytype
    - process_error
    - ossl_cmp_hdr_get_protection_nid
    - OSSL_CMP_CTX_set1_senderNonce
    - process_cert_request
    - process_genm
    - OSSL_CMP_CTX_set1_transactionID
    - ossl_cmp_bodytype_to_string
    - OSSL_CMP_STATUSINFO_new
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,\n
      \                                          const OSSL_CMP_MSG *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:655,1
    - Dst: OSSL_CMP_CTX_get_transfer_cb_arg
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:659,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:660,1
    - Dst: OSSL_CMP_SRV_process_request
      Src: /src/openssl-3.0.15/crypto/cmp/cmp_server.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - client_ctx
    - req
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 649
    functionDepth: 19
    functionLinenumber: 649
    functionLinenumberEnd: 665
    functionName: OSSL_CMP_CTX_server_perform
    functionSourceFile: /src/openssl-3.0.15/crypto/cmp/cmp_server.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_SRV_process_request
    - OSSL_CMP_CTX_get_transfer_cb_arg
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx,\n
      \                                         const OSSL_CMP_MSG *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/engine/eng_all.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: ENGINE_load_builtin_engines
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_all.c
    functionUses: 2
    functionsReached:
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: void
    signature: void ENGINE_load_builtin_engines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: ENGINE_setup_bsd_cryptodev
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_all.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENGINE_setup_bsd_cryptodev(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:97,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:98,1
    - Dst: ENGINE_set_destroy_function
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:99,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:101,1
    - Dst: RSA_get_default_method
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:101,1
    - Dst: ENGINE_set_DSA
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:103,1
    - Dst: DSA_get_default_method
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:103,1
    - Dst: ENGINE_set_EC
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:106,1
    - Dst: EC_KEY_OpenSSL
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:106,1
    - Dst: ENGINE_set_DH
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:109,1
    - Dst: DH_get_default_method
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:109,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:111,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:111,1
    - Dst: ENGINE_set_ciphers
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:113,1
    - Dst: ENGINE_set_digests
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:116,1
    - Dst: ENGINE_set_load_privkey_function
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:120,1
    - Dst: ossl_register_hmac_meth
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:123,1
    - Dst: ENGINE_set_pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 134
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 2
    functionsReached:
    - DSA_get_default_method
    - ENGINE_set_DH
    - ENGINE_set_ciphers
    - RAND_OpenSSL
    - EC_KEY_OpenSSL
    - DH_get_default_method
    - ENGINE_set_RSA
    - ENGINE_set_destroy_function
    - ENGINE_set_EC
    - RSA_get_default_method
    - ENGINE_set_DSA
    - ENGINE_set_id
    - ossl_register_hmac_meth
    - ENGINE_set_digests
    - ENGINE_set_name
    - ENGINE_set_load_privkey_function
    - ENGINE_set_RAND
    - ENGINE_set_pkey_meths
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:138,1
    - Dst: bind_helper
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:141,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: engine_openssl
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - bind_helper
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_openssl(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_openssl
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:150,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:154,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:155,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:160,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: engine_load_openssl_int
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_set_mark
    - ERR_pop_to_mark
    - engine_openssl
    linkageType: ''
    returnType: void
    signature: void engine_load_openssl_int(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:176,1
    - Dst: bind_helper
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: bind_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - bind_helper
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bind_fn(ENGINE *e, const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: test
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test(ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:208,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:211,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:215,1
    - Dst: test
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:215,1
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:216,1
    - Dst: test
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:216,1
    - Dst: test
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: test_rc4_init_key
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - RC4_set_key
    - memcpy
    - fprintf
    - EVP_CIPHER_CTX_get_key_length
    - test
    linkageType: ''
    returnType: int
    signature: "int test_rc4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                            const unsigned char *iv, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:224,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:226,1
    - Dst: test
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - out
    - in
    - inl
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: test_rc4_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test
    - RC4
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int test_rc4_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,\n                           const
      unsigned char *in, size_t inl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:236,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:237,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:238,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:239,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:240,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:241,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: test_r4_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *test_r4_cipher(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: test_r4_cipher_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void test_r4_cipher_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:261,1
    - Dst: EVP_CIPHER_meth_set_iv_length
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:262,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:263,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:264,1
    - Dst: EVP_CIPHER_meth_set_do_cipher
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:265,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:266,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 273
    functionName: test_r4_40_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_set_do_cipher
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - EVP_CIPHER_meth_set_impl_ctx_size
    - EVP_CIPHER_meth_set_iv_length
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *test_r4_40_cipher(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: test_r4_40_cipher_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    linkageType: ''
    returnType: void
    signature: void test_r4_40_cipher_destroy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_r4_cipher
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:287,1
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:288,1
    - Dst: test_r4_40_cipher
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:289,1
    - Dst: EVP_CIPHER_get_nid
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: test_cipher_nids
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_r4_cipher
    - EVP_CIPHER_get_nid
    - test_r4_40_cipher
    linkageType: ''
    returnType: int
    signature: int test_cipher_nids(const int **nids)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher_nids
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:303,1
    - Dst: test_r4_cipher
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:307,1
    - Dst: test_r4_40_cipher
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:309,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - e
    - cipher
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_CIPHER**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 319
    functionName: openssl_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - fprintf
    - test_r4_cipher
    - test_cipher_nids
    - test_r4_40_cipher
    linkageType: ''
    returnType: int
    signature: "int openssl_ciphers(ENGINE *e, const EVP_CIPHER **cipher,\n                           const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:329,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:331,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: test_sha1_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_get0_md_data
    - SHA1_Init
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_sha1_init(EVP_MD_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:337,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:339,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: test_sha1_update
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_get0_md_data
    - SHA1_Update
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_sha1_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:345,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:347,1
    - Dst: EVP_MD_CTX_get0_md_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: test_sha1_final
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - SHA1_Final
    - EVP_MD_CTX_get0_md_data
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_sha1_final(EVP_MD_CTX *ctx, unsigned char *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:356,1
    - Dst: EVP_MD_meth_set_result_size
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:357,1
    - Dst: EVP_MD_meth_set_input_blocksize
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:358,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:359,1
    - Dst: EVP_MD_meth_set_flags
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:361,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:362,1
    - Dst: EVP_MD_meth_set_update
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:363,1
    - Dst: EVP_MD_meth_set_final
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:364,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 4
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: test_sha_md
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_set_final
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_result_size
    - EVP_MD_meth_new
    - EVP_MD_meth_set_flags
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - EVP_MD_meth_set_update
    - EVP_MD_meth_set_input_blocksize
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *test_sha_md(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: test_sha_md_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_meth_free
    linkageType: ''
    returnType: void
    signature: void test_sha_md_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_sha_md
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:385,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nids
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 5
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: test_digest_nids
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - test_sha_md
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int test_digest_nids(const int **nids)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_digest_nids
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:399,1
    - Dst: test_sha_md
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:403,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - digest
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_MD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 394
    functionDepth: 6
    functionLinenumber: 394
    functionLinenumberEnd: 413
    functionName: openssl_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_digest_nids
    - test_sha_md
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int openssl_digests(ENGINE *e, const EVP_MD **digest,\n                           const
      int **nids, int nid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:423,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:425,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:428,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - eng
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 6
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: openssl_load_privkey
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - PEM_read_bio_PrivateKey
    - BIO_free
    - fprintf
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *openssl_load_privkey(ENGINE *eng, const char *key_id,\n
      \                                     UI_METHOD *ui_method,\n                                      void
      *callback_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:453,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:454,1
    - Dst: HMAC_CTX_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:458,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:460,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:463,1
    - Dst: EVP_PKEY_CTX_set0_keygen_info
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:464,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 469
    functionName: ossl_hmac_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - ERR_raise
    - OPENSSL_zalloc
    - fprintf
    - OPENSSL_free
    - EVP_PKEY_CTX_set0_keygen_info
    - HMAC_CTX_new
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_init(EVP_PKEY_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_hmac_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:478,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:480,1
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:481,1
    - Dst: HMAC_CTX_copy
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:483,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:486,1
    - Dst: ossl_hmac_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 473
    functionDepth: 9
    functionLinenumber: 473
    functionLinenumberEnd: 495
    functionName: ossl_hmac_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ossl_hmac_init
    - ASN1_OCTET_STRING_set
    - HMAC_CTX_copy
    - ossl_hmac_cleanup
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:499,1
    - Dst: HMAC_CTX_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:502,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:503,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:504,1
    - Dst: EVP_PKEY_CTX_set_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 497
    functionDepth: 9
    functionLinenumber: 497
    functionLinenumberEnd: 507
    functionName: ossl_hmac_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_set_data
    - HMAC_CTX_free
    - OPENSSL_clear_free
    - OPENSSL_free
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: void
    signature: void ossl_hmac_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:512,1
    - Dst: ASN1_OCTET_STRING_dup
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:515,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 521
    functionName: ossl_hmac_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_dup
    - EVP_PKEY_assign
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:525,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:525,1
    - Dst: HMAC_Update
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - count
    argTypes:
    - EVP_MD_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: ossl_int_update
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - HMAC_Update
    - EVP_MD_CTX_get_pkey_ctx
    - EVP_PKEY_CTX_get_data
    linkageType: ''
    returnType: int
    signature: int ossl_int_update(EVP_MD_CTX *ctx, const void *data, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:533,1
    - Dst: EVP_MD_CTX_set_update_fn
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mctx
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: ossl_hmac_signctx_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_MD_CTX_set_update_fn
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:542,1
    - Dst: EVP_MD_CTX_get_size
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:543,1
    - Dst: HMAC_Final
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:551,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 538
    functionDepth: 9
    functionLinenumber: 538
    functionLinenumberEnd: 555
    functionName: ossl_hmac_signctx
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - HMAC_Final
    - EVP_PKEY_CTX_get_data
    - EVP_MD_CTX_get_size
    linkageType: ''
    returnType: int
    signature: "int ossl_hmac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                             size_t
      *siglen, EVP_MD_CTX *mctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:559,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:567,1
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:576,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:577,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:578,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 557
    functionDepth: 9
    functionLinenumber: 557
    functionLinenumberEnd: 587
    functionName: ossl_hmac_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - HMAC_Init_ex
    - ASN1_OCTET_STRING_set
    - EVP_PKEY_get0
    - EVP_PKEY_CTX_get_data
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: int ossl_hmac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:595,1
    - Dst: ossl_hmac_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:597,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:599,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:603,1
    - Dst: ossl_hmac_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:606,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 589
    functionDepth: 10
    functionLinenumber: 589
    functionLinenumberEnd: 611
    functionName: ossl_hmac_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_hexstr2buf
    - strcmp
    - ossl_hmac_ctrl
    linkageType: ''
    returnType: int
    signature: "int ossl_hmac_ctrl_str(EVP_PKEY_CTX *ctx,\n                              const
      char *type, const char *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:618,1
    - Dst: EVP_PKEY_meth_set_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:621,1
    - Dst: EVP_PKEY_meth_set_copy
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:622,1
    - Dst: EVP_PKEY_meth_set_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:623,1
    - Dst: EVP_PKEY_meth_set_keygen
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:625,1
    - Dst: EVP_PKEY_meth_set_signctx
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:627,1
    - Dst: EVP_PKEY_meth_set_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 633
    functionName: ossl_register_hmac_meth
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_meth_set_init
    - EVP_PKEY_meth_set_ctrl
    - EVP_PKEY_meth_set_copy
    - EVP_PKEY_meth_set_cleanup
    - EVP_PKEY_meth_set_signctx
    - EVP_PKEY_meth_new
    - EVP_PKEY_meth_set_keygen
    linkageType: ''
    returnType: int
    signature: int ossl_register_hmac_meth(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - pmeth
    - nids
    - nid
    argTypes:
    - ENGINE*
    - EVP_PKEY_METHOD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 655
    functionName: ossl_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth,\n                           const
      int **nids, int nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_sha_md_destroy
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:661,1
    - Dst: test_r4_cipher_destroy
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:663,1
    - Dst: test_r4_40_cipher_destroy
      Src: /src/openssl-3.0.15/crypto/engine/eng_openssl.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 667
    functionName: openssl_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_openssl.c
    functionUses: 0
    functionsReached:
    - test_r4_cipher_destroy
    - test_sha_md_destroy
    - test_r4_40_cipher_destroy
    linkageType: ''
    returnType: int
    signature: int openssl_destroy(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_ia32_rdrand_bytes
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: get_random_bytes
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached:
    - OPENSSL_ia32_rdrand_bytes
    linkageType: ''
    returnType: int
    signature: int get_random_bytes(unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: random_status
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int random_status(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: rdrand_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rdrand_init(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:62,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:63,1
    - Dst: ENGINE_set_flags
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:64,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:65,1
    - Dst: ENGINE_set_RAND
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: bind_helper
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 4
    functionsReached:
    - ENGINE_set_init_function
    - ENGINE_set_flags
    - ENGINE_set_id
    - ENGINE_set_name
    - ENGINE_set_RAND
    linkageType: ''
    returnType: int
    signature: int bind_helper(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:74,1
    - Dst: bind_helper
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:77,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: ENGINE_rdrand
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - bind_helper
    - ENGINE_new
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_rdrand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_rdrand
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:87,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:90,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:91,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:96,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 104
    functionName: engine_load_rdrand_int
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ENGINE_free
    - ERR_set_mark
    - ERR_pop_to_mark
    - ENGINE_rdrand
    linkageType: ''
    returnType: void
    signature: void engine_load_rdrand_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: engine_load_rdrand_int
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_rdrand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_load_rdrand_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ENGINE_unregister_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_pkey_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: engine_unregister_all_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_pkey_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:32,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: ENGINE_register_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    - ENGINE*::pkey_meths
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_pkey_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:45,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:45,1
    - Dst: ENGINE_register_pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: ENGINE_register_all_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_get_first
    - ENGINE_register_pkey_meths
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_pkey_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:53,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: ENGINE_set_default_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    - ENGINE*::pkey_meths
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_pkey_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: ENGINE_get_pkey_meth_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 2
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_pkey_meth_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:77,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:78,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: ENGINE_get_pkey_meth
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 2
    functionsReached:
    - fn
    - ENGINE_get_pkey_meths
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: ENGINE_get_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_PKEY_METHS_PTR
    signature: ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_PKEY_METHS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: ENGINE_set_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:110,1
    - Dst: ENGINE*::pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:112,1
    - Dst: EVP_PKEY_meth_free
      Src: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: engine_pkey_meths_free
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_pkmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_free
    - ENGINE*::pkey_meths
    linkageType: ''
    returnType: void
    signature: void engine_pkey_meths_free(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: ENGINE_unregister_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_digests(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: engine_unregister_all_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_digests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::digests
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:31,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: ENGINE_register_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    - ENGINE*::digests
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_digests(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:44,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:44,1
    - Dst: ENGINE_register_digests
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: ENGINE_register_all_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_digests
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_digests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::digests
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:52,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: ENGINE_set_default_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    - ENGINE*::digests
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_digests(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: ENGINE_get_digest_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 2
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_digest_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_digests
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:76,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/tb_digest.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: ENGINE_get_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached:
    - ENGINE_get_digests
    - fn
    - ERR_raise
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *ENGINE_get_digest(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ENGINE_get_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_DIGESTS_PTR
    signature: ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_DIGESTS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: ENGINE_set_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_digest.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: DEFINE_RUN_ONCE
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE(do_engine_lock_init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:31,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:32,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:33,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:37,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: ENGINE_new
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 8
    functionsReached:
    - RUN_ONCE
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - ENGINE_REF_PRINT
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: engine_set_all_null
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void engine_set_all_null(ENGINE *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:78,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:81,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:84,1
    - Dst: engine_pkey_meths_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:86,1
    - Dst: engine_pkey_asn1_meths_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:87,1
    - Dst: ENGINE*::destroy
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:93,1
    - Dst: engine_remove_dynamic_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:94,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:95,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - e
    - not_locked
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 98
    functionName: engine_free_util
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - engine_pkey_meths_free
    - CRYPTO_DOWN_REF
    - REF_ASSERT_ISNT
    - ENGINE*::destroy
    - OPENSSL_free
    - CRYPTO_free_ex_data
    - ENGINE_REF_PRINT
    - engine_pkey_asn1_meths_free
    - engine_remove_dynamic_id
    linkageType: ''
    returnType: int
    signature: int engine_free_util(ENGINE *e, int not_locked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_free_util
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: ENGINE_free
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 19
    functionsReached:
    - engine_free_util
    linkageType: ''
    returnType: int
    signature: int ENGINE_free(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_CLEANUP_ITEM_new_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - create
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: int_cleanup_check
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_CLEANUP_ITEM_new_null
    linkageType: ''
    returnType: int
    signature: int int_cleanup_check(int create)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:128,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: int_cleanup_item
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    linkageType: ''
    returnType: ENGINE_CLEANUP_ITEM
    signature: ENGINE_CLEANUP_ITEM *int_cleanup_item(ENGINE_CLEANUP_CB *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:140,1
    - Dst: int_cleanup_item
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:142,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_insert
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: engine_cleanup_add_first
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - int_cleanup_check
    - OPENSSL_free
    - sk_ENGINE_CLEANUP_ITEM_insert
    - int_cleanup_item
    linkageType: ''
    returnType: int
    signature: int engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:155,1
    - Dst: int_cleanup_item
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:157,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_push
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:159,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cb
    argTypes:
    - ENGINE_CLEANUP_CB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: engine_cleanup_add_last
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - int_cleanup_check
    - OPENSSL_free
    - sk_ENGINE_CLEANUP_ITEM_push
    - int_cleanup_item
    linkageType: ''
    returnType: int
    signature: int engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - ENGINE_CLEANUP_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: engine_cleanup_cb_free
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void engine_cleanup_cb_free(ENGINE_CLEANUP_ITEM *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_cleanup_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:175,1
    - Dst: sk_ENGINE_CLEANUP_ITEM_pop_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:176,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: engine_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 1
    functionsReached:
    - int_cleanup_check
    - sk_ENGINE_CLEANUP_ITEM_pop_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void engine_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - idx
    - arg
    argTypes:
    - ENGINE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: ENGINE_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - idx
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: ENGINE_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 6
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *ENGINE_get_ex_data(const ENGINE *e, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - id
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: ENGINE_set_id
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 9
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_id(ENGINE *e, const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_lib.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - e
    - name
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: ENGINE_set_name
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 9
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_name(ENGINE *e, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - destroy_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: ENGINE_set_destroy_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR
      destroy_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - init_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: ENGINE_set_init_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - finish_f
    argTypes:
    - ENGINE*
    - ENGINE_GEN_INT_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: ENGINE_set_finish_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ctrl_f
    argTypes:
    - ENGINE*
    - ENGINE_CTRL_FUNC_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: ENGINE_set_ctrl_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: ENGINE_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_flags(ENGINE *e, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - defns
    argTypes:
    - ENGINE*
    - ENGINE_CMD_DEFN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: ENGINE_set_cmd_defns
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: ENGINE_get_id
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ENGINE_get_id(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: ENGINE_get_name
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ENGINE_get_name(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: ENGINE_get_destroy_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: ENGINE_get_init_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: ENGINE_get_finish_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_GEN_INT_FUNC_PTR
    signature: ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: ENGINE_get_ctrl_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CTRL_FUNC_PTR
    signature: ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: ENGINE_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_get_flags(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: ENGINE_get_cmd_defns
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CMD_DEFN
    signature: ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: ENGINE_get_static_state
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ENGINE_get_static_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ENGINE_unregister_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_DSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: engine_unregister_all_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_DSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: ENGINE_register_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_DSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:41,1
    - Dst: ENGINE_register_DSA
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_DSA
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_DSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ENGINE_set_default_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_DSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_dsa.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ENGINE_get_default_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 1
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_DSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ENGINE_get_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DSA_METHOD
    signature: DSA_METHOD *ENGINE_get_DSA(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - dsa_meth
    argTypes:
    - ENGINE*
    - DSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ENGINE_set_DSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dsa.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - defn
    argTypes:
    - ENGINE_CMD_DEFN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: int_ctrl_cmd_is_null
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_ctrl_cmd_is_null(const ENGINE_CMD_DEFN *defn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:37,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:37,1
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - defn
    - s
    argTypes:
    - ENGINE_CMD_DEFN*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: int_ctrl_cmd_by_name
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - int_ctrl_cmd_is_null
    - strcmp
    linkageType: ''
    returnType: int
    signature: int int_ctrl_cmd_by_name(const ENGINE_CMD_DEFN *defn, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - defn
    - num
    argTypes:
    - ENGINE_CMD_DEFN*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: int_ctrl_cmd_by_num
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - int_ctrl_cmd_is_null
    linkageType: ''
    returnType: int
    signature: int int_ctrl_cmd_by_num(const ENGINE_CMD_DEFN *defn, unsigned int num)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:73,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:82,1
    - Dst: int_ctrl_cmd_by_name
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:89,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:90,1
    - Dst: int_ctrl_cmd_by_num
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:101,1
    - Dst: int_ctrl_cmd_is_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:109,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:111,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:113,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:113,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:115,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:118,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:118,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 126
    functionName: int_ctrl_helper
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - int_ctrl_cmd_by_name
    - ERR_raise
    - strlen
    - int_ctrl_cmd_is_null
    - strcpy
    - int_ctrl_cmd_by_num
    linkageType: ''
    returnType: int
    signature: "int int_ctrl_helper(ENGINE *e, int cmd, long i, void *p,\n                           void
      (*f) (void))"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:132,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:135,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:138,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:141,1
    - Dst: int_ctrl_helper
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:160,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:175,1
    - Dst: ENGINE*::ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 179
    functionName: ENGINE_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 2
    functionsReached:
    - ENGINE*::ctrl
    - ERR_raise
    - int_ctrl_helper
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:185,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - e
    - cmd
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: ENGINE_cmd_is_executable
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - ENGINE_ctrl
    linkageType: ''
    returnType: int
    signature: int ENGINE_cmd_is_executable(ENGINE *e, int cmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:202,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:206,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:217,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:220,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - e
    - cmd_name
    - i
    - p
    - cmd_optional
    argTypes:
    - ENGINE*
    - char*
    - long
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 230
    functionName: ENGINE_ctrl_cmd
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ERR_raise
    - ENGINE_ctrl
    linkageType: ''
    returnType: int
    signature: "int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name,\n                    long
      i, void *p, void (*f) (void), int cmd_optional)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:240,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:244,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:255,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:258,1
    - Dst: ENGINE_cmd_is_executable
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:261,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:262,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:272,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:280,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:289,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:295,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:301,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:312,1
    - Dst: strtol
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:315,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:317,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c:324,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 4
    argNames:
    - e
    - cmd_name
    - arg
    - cmd_optional
    argTypes:
    - ENGINE*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 327
    functionName: ENGINE_ctrl_cmd_string
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_ctrl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - strtol
    - ERR_raise
    - ENGINE_cmd_is_executable
    - ENGINE_ctrl
    linkageType: ''
    returnType: int
    signature: "int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const
      char *arg,\n                           int cmd_optional)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ENGINE_unregister_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_RSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: engine_unregister_all_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_RSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: ENGINE_register_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_RSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:41,1
    - Dst: ENGINE_register_RSA
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_get_first
    - ENGINE_register_RSA
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_RSA(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ENGINE_set_default_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_RSA(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_rsa.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ENGINE_get_default_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_RSA(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ENGINE_get_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *ENGINE_get_RSA(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - rsa_meth
    argTypes:
    - ENGINE*
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ENGINE_set_RSA
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rsa.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: skip_dot
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_cnf.c
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *skip_dot(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:32,1
    - Dst: sk_ENGINE_new_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:35,1
    - Dst: sk_ENGINE_push
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:36,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: int_engine_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - ENGINE_finish
    - sk_ENGINE_push
    - sk_ENGINE_new_null
    linkageType: ''
    returnType: int
    signature: int int_engine_init(ENGINE *e)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:48,1
    - Dst: skip_dot
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:54,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:55,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:60,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:64,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:65,1
    - Dst: skip_dot
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:66,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:68,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:74,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:76,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:79,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:80,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:83,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:85,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:87,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:97,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:99,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:109,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:111,1
    - Dst: NCONF_get_number_e
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:112,1
    - Dst: int_engine_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:118,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:121,1
    - Dst: ENGINE_set_default_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:122,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:124,1
    - Dst: int_engine_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:129,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:137,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:139,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:143,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 85
    argCount: 3
    argNames:
    - name
    - value
    - cnf
    argTypes:
    - char*
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 145
    functionName: int_engine_configure
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - ENGINE_ctrl_cmd_string
    - int_engine_init
    - NCONF_get_number_e
    - sk_CONF_VALUE_num
    - ENGINE_free
    - ENGINE_by_id
    - ERR_clear_error
    - ERR_raise_data
    - ERR_raise
    - NCONF_get_section
    - STACK_OF
    - skip_dot
    - strcmp
    - ENGINE_set_default_string
    - OSSL_TRACE2
    - sk_CONF_VALUE_value
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: int int_engine_configure(const char *name, const char *value, const
      CONF *cnf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:149,1
    - Dst: OSSL_TRACE2
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:152,1
    - Dst: CONF_imodule_get_name
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:153,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:153,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:155,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:158,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:162,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:163,1
    - Dst: int_engine_configure
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 169
    functionName: int_engine_module_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - int_engine_configure
    - ERR_raise
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - CONF_imodule_get_name
    - OSSL_TRACE2
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int int_engine_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_pop
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:175,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:176,1
    - Dst: sk_ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: int_engine_module_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - sk_ENGINE_free
    - sk_ENGINE_pop
    linkageType: ''
    returnType: void
    signature: void int_engine_module_finish(CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/engine/eng_cnf.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: ENGINE_add_conf_module
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_cnf.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ENGINE_add_conf_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - isfunct
    - ','
    - diff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: ENGINE_REF_PRINT
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENGINE_REF_PRINT(e, isfunct, diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: int_free_str
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void int_free_str(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:143,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:145,1
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:146,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:147,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: dynamic_data_ctx_free_func
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - DSO_free
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: "void dynamic_data_ctx_free_func(void *parent, void *ptr,\n                                       CRYPTO_EX_DATA
      *ad, int idx, long argl,\n                                       void *argp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:163,1
    - Dst: sk_OPENSSL_STRING_new_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:168,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:174,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:176,1
    - Dst: ENGINE_set_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:180,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:186,1
    - Dst: sk_OPENSSL_STRING_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:194,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - e
    - ctx
    argTypes:
    - ENGINE*
    - dynamic_data_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 197
    functionName: dynamic_set_data_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_new_null
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - ENGINE_set_ex_data
    - ENGINE_get_ex_data
    - sk_OPENSSL_STRING_free
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int dynamic_set_data_ctx(ENGINE *e, dynamic_data_ctx **ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ex_new_index
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:215,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:218,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:226,1
    - Dst: ENGINE_get_ex_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:232,1
    - Dst: dynamic_set_data_ctx
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 238
    functionName: dynamic_get_data_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - dynamic_set_data_ctx
    - ERR_raise
    - ENGINE_get_ex_data
    - ENGINE_get_ex_new_index
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: dynamic_data_ctx
    signature: dynamic_data_ctx *dynamic_get_data_ctx(ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:242,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:245,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:246,1
    - Dst: ENGINE_set_init_function
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:247,1
    - Dst: ENGINE_set_finish_function
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:248,1
    - Dst: ENGINE_set_ctrl_function
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:249,1
    - Dst: ENGINE_set_flags
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:250,1
    - Dst: ENGINE_set_cmd_defns
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:251,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: engine_dynamic
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_finish_function
    - ENGINE_set_init_function
    - ENGINE_free
    - ENGINE_set_cmd_defns
    - ENGINE_set_flags
    - ENGINE_set_id
    - ENGINE_new
    - ENGINE_set_ctrl_function
    - ENGINE_set_name
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *engine_dynamic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_dynamic
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:260,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:264,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:265,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:270,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: engine_load_dynamic_int
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - engine_dynamic
    - ENGINE_free
    - ERR_set_mark
    - ERR_pop_to_mark
    linkageType: ''
    returnType: void
    signature: void engine_load_dynamic_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: dynamic_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dynamic_init(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: dynamic_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dynamic_finish(ENGINE *e)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_get_data_ctx
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:299,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:303,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:309,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:315,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:317,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:319,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:328,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:330,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:332,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:338,1
    - Dst: dynamic_load
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:344,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:347,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:354,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:355,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:359,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:361,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:364,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:365,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:366,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:374,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 4
    argNames:
    - e
    - cmd
    - i
    - p
    argTypes:
    - ENGINE*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 376
    functionName: dynamic_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_push
    - ERR_raise
    - dynamic_load
    - OPENSSL_free
    - strlen
    - OPENSSL_strdup
    - dynamic_get_data_ctx
    linkageType: ''
    returnType: int
    signature: int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DSO_load
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:382,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:387,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:390,1
    - Dst: DSO_merge
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:391,1
    - Dst: DSO_load
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:394,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:396,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - dynamic_data_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 402
    functionName: int_load
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - DSO_merge
    - sk_OPENSSL_STRING_num
    - DSO_load
    - sk_OPENSSL_STRING_value
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int int_load(dynamic_data_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:417,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:418,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - dynamic_data_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 422
    functionName: using_libcrypto_11
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 0
    functionsReached:
    - ERR_pop_to_mark
    - ERR_set_mark
    - DSO_bind_func
    linkageType: ''
    returnType: int
    signature: int using_libcrypto_11(dynamic_data_ctx *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DSO_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:430,1
    - Dst: DSO_ctrl
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:436,1
    - Dst: DSO_convert_filename
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:439,1
    - Dst: int_load
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:441,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:442,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:443,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:450,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:453,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:455,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:466,1
    - Dst: dynamic_data_ctx*::v_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:469,1
    - Dst: using_libcrypto_11
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:475,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:479,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:481,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:489,1
    - Dst: ENGINE_get_static_state
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:497,1
    - Dst: CRYPTO_get_mem_functions
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:498,1
    - Dst: engine_set_all_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:504,1
    - Dst: engine_add_dynamic_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:507,1
    - Dst: dynamic_data_ctx*::bind_engine
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:508,1
    - Dst: engine_remove_dynamic_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:509,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:512,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:514,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:516,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:521,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:530,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/engine/eng_dyn.c:534,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 2
    argNames:
    - e
    - ctx
    argTypes:
    - ENGINE*
    - dynamic_data_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 538
    functionName: dynamic_load
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_dyn.c
    functionUses: 1
    functionsReached:
    - ENGINE_add
    - ENGINE_get_static_state
    - using_libcrypto_11
    - memcpy
    - dynamic_data_ctx*::bind_engine
    - CRYPTO_get_mem_functions
    - engine_set_all_null
    - ERR_raise
    - dynamic_data_ctx*::v_check
    - ERR_clear_error
    - DSO_free
    - int_load
    - engine_add_dynamic_id
    - DSO_convert_filename
    - DSO_new
    - DSO_ctrl
    - DSO_bind_func
    - engine_remove_dynamic_id
    linkageType: ''
    returnType: int
    signature: int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: ENGINE_get_table_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ENGINE_get_table_flags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ENGINE_set_table_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENGINE_set_table_flags(unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - ENGINE_PILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: engine_pile_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long engine_pile_hash(const ENGINE_PILE *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ENGINE_PILE*
    - ENGINE_PILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: engine_pile_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int engine_pile_cmp(const ENGINE_PILE *a, const ENGINE_PILE *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LHASH_OF
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:67,1
    - Dst: lh_ENGINE_PILE_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - t
    - create
    argTypes:
    - ENGINE_TABLE**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: int_table_check
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - LHASH_OF
    - lh_ENGINE_PILE_new
    linkageType: ''
    returnType: int
    signature: int int_table_check(ENGINE_TABLE **t, int create)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:90,1
    - Dst: int_table_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:94,1
    - Dst: engine_cleanup_add_first
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:97,1
    - Dst: lh_ENGINE_PILE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:98,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:104,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:106,1
    - Dst: sk_ENGINE_new_null
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:113,1
    - Dst: lh_ENGINE_PILE_insert
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:117,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:118,1
    - Dst: sk_ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:120,1
    - Dst: sk_ENGINE_delete_ptr
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:125,1
    - Dst: sk_ENGINE_push
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:129,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:134,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:135,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:139,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:147,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 6
    argNames:
    - table
    - cleanup
    - e
    - nids
    - num_nids
    - setdefault
    argTypes:
    - ENGINE_TABLE**
    - ENGINE_CLEANUP_CB*
    - ENGINE*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 149
    functionName: engine_table_register
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 8
    functionsReached:
    - lh_ENGINE_PILE_insert
    - sk_ENGINE_free
    - sk_ENGINE_delete_ptr
    - OPENSSL_malloc
    - sk_ENGINE_push
    - engine_unlocked_init
    - int_table_check
    - ERR_raise
    - engine_cleanup_add_first
    - OPENSSL_free
    - lh_ENGINE_PILE_free
    - lh_ENGINE_PILE_retrieve
    - engine_unlocked_finish
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - sk_ENGINE_new_null
    linkageType: ''
    returnType: int
    signature: "int engine_table_register(ENGINE_TABLE **table, ENGINE_CLEANUP_CB
      *cleanup,\n                          ENGINE *e, const int *nids, int num_nids,\n
      \                         int setdefault)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_find
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:155,1
    - Dst: sk_ENGINE_delete
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:156,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pile
    - e
    argTypes:
    - ENGINE_PILE*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: int_unregister_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - sk_ENGINE_delete
    - sk_ENGINE_find
    - engine_unlocked_finish
    linkageType: ''
    returnType: void
    signature: void int_unregister_cb(ENGINE_PILE *pile, ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:169,1
    - Dst: int_table_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:172,1
    - Dst: lh_ENGINE_PILE_doall_ENGINE
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:173,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - table
    - e
    argTypes:
    - ENGINE_TABLE**
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: engine_table_unregister
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - lh_ENGINE_PILE_doall_ENGINE
    - int_table_check
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void engine_table_unregister(ENGINE_TABLE **table, ENGINE *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:181,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:183,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - ENGINE_PILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: int_cleanup_cb_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - sk_ENGINE_free
    - engine_unlocked_finish
    linkageType: ''
    returnType: void
    signature: void int_cleanup_cb_doall(ENGINE_PILE *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:189,1
    - Dst: lh_ENGINE_PILE_doall
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:192,1
    - Dst: lh_ENGINE_PILE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:193,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - table
    argTypes:
    - ENGINE_TABLE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 197
    functionName: engine_table_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - lh_ENGINE_PILE_free
    - CRYPTO_THREAD_write_lock
    - lh_ENGINE_PILE_doall
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void engine_table_cleanup(ENGINE_TABLE **table)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:209,1
    - Dst: OSSL_TRACE3
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:213,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:219,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:222,1
    - Dst: int_table_check
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:227,1
    - Dst: lh_ENGINE_PILE_retrieve
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:230,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:233,1
    - Dst: OSSL_TRACE4
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:234,1
    - Dst: sk_ENGINE_value
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:245,1
    - Dst: OSSL_TRACE3
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:247,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:255,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:260,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:263,1
    - Dst: OSSL_TRACE4
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:265,1
    - Dst: OSSL_TRACE4
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:269,1
    - Dst: OSSL_TRACE4
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:283,1
    - Dst: OSSL_TRACE3
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:287,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:290,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:295,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 4
    argNames:
    - table
    - nid
    - f
    - l
    argTypes:
    - ENGINE_TABLE**
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 297
    functionName: ossl_engine_table_select
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 4
    functionsReached:
    - OSSL_TRACE4
    - ERR_set_mark
    - int_table_check
    - engine_unlocked_init
    - OPENSSL_init_crypto
    - sk_ENGINE_value
    - engine_unlocked_finish
    - lh_ENGINE_PILE_retrieve
    - ERR_pop_to_mark
    - OSSL_TRACE3
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ENGINE
    signature: "ENGINE *ossl_engine_table_select(ENGINE_TABLE **table, int nid,\n
      \                                const char *f, int l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_PILE_DOALL*::cb
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pile
    - dall
    argTypes:
    - ENGINE_PILE*
    - ENGINE_PILE_DOALL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: int_dall
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - ENGINE_PILE_DOALL*::cb
    linkageType: ''
    returnType: void
    signature: void int_dall(const ENGINE_PILE *pile, ENGINE_PILE_DOALL *dall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_ENGINE_PILE_doall_ENGINE_PILE_DOALL
      Src: /src/openssl-3.0.15/crypto/engine/eng_table.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - table
    - cb
    - arg
    argTypes:
    - ENGINE_TABLE*
    - engine_table_doall_cb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: engine_table_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_table.c
    functionUses: 0
    functionsReached:
    - lh_ENGINE_PILE_doall_ENGINE_PILE_DOALL
    linkageType: ''
    returnType: void
    signature: "void engine_table_doall(ENGINE_TABLE *table, engine_table_doall_cb
      *cb,\n                        void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: engine_list_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINE_remove
    linkageType: ''
    returnType: void
    signature: void engine_list_cleanup(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:63,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:72,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:78,1
    - Dst: engine_cleanup_add_last
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:93,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 108
    functionName: engine_list_add
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - engine_cleanup_add_last
    - ENGINE_REF_PRINT
    - strcmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int engine_list_add(ENGINE *e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:123,1
    - Dst: engine_free_util
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: engine_list_remove
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - engine_free_util
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int engine_list_remove(ENGINE *e)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:153,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:189,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 3
    argNames:
    - e
    - dynamic_id
    - not_locked
    argTypes:
    - ENGINE*
    - ENGINE_DYNAMIC_ID
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 191
    functionName: engine_add_dynamic_id
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int engine_add_dynamic_id(ENGINE *e, ENGINE_DYNAMIC_ID dynamic_id,\n
      \                         int not_locked)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:199,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:216,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - e
    - not_locked
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 217
    functionName: engine_remove_dynamic_id
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 2
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: void
    signature: void engine_remove_dynamic_id(ENGINE *e, int not_locked)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:225,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:229,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:234,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 238
    functionName: ENGINE_get_first
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 5
    functionsReached:
    - RUN_ONCE
    - ERR_raise
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_first(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:245,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:249,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:254,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 258
    functionName: ENGINE_get_last
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - ERR_raise
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_last(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:265,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:268,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:274,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:276,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 280
    functionName: ENGINE_get_next
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 5
    functionsReached:
    - ENGINE_free
    - ERR_raise
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_next(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:286,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:289,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:295,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:297,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 301
    functionName: ENGINE_get_prev
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - ERR_raise
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_prev(ENGINE *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:308,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:312,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:315,1
    - Dst: engine_list_add
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:317,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:318,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: ENGINE_add
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 10
    functionsReached:
    - engine_list_add
    - CRYPTO_THREAD_write_lock
    - ERR_raise
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_add(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:330,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:333,1
    - Dst: engine_list_remove
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:335,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:336,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 341
    functionName: ENGINE_remove
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 1
    functionsReached:
    - engine_list_remove
    - CRYPTO_THREAD_write_lock
    - ERR_raise
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_remove(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_add_dynamic_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - ENGINE*
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 371
    functionName: engine_cpy
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - engine_add_dynamic_id
    linkageType: ''
    returnType: void
    signature: void engine_cpy(ENGINE *dest, const ENGINE *src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:378,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:381,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:383,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:384,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:388,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:391,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:400,1
    - Dst: engine_cpy
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:404,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:409,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:412,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:418,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:419,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:421,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:422,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:423,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:424,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:426,1
    - Dst: ENGINE_ctrl_cmd_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:427,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:432,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:433,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 436
    functionName: ENGINE_by_id
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 4
    functionsReached:
    - ENGINE_ctrl_cmd_string
    - RUN_ONCE
    - ENGINE_free
    - ENGINE_by_id
    - ERR_raise_data
    - ERR_raise
    - engine_cpy
    - strcmp
    - ENGINE_new
    - ossl_safe_getenv
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    - ENGINE_load_builtin_engines
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_by_id(const char *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:442,1
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/engine/eng_list.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: ENGINE_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_list.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int ENGINE_up_ref(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/engine/eng_err.c:87,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/engine/eng_err.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: ossl_err_load_ENGINE_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_ENGINE_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ENGINE_unregister_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_DH(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: engine_unregister_all_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_DH(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: ENGINE_register_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_DH(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:41,1
    - Dst: ENGINE_register_DH
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_DH
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_DH(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ENGINE_set_default_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 0
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_DH(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_dh.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ENGINE_get_default_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_DH(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ENGINE_get_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DH_METHOD
    signature: DH_METHOD *ENGINE_get_DH(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - dh_meth
    argTypes:
    - ENGINE*
    - DH_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ENGINE_set_DH
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_dh.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_set_default_ciphers
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:19,1
    - Dst: ENGINE_set_default_digests
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:21,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:23,1
    - Dst: ENGINE_set_default_DSA
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:26,1
    - Dst: ENGINE_set_default_DH
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:30,1
    - Dst: ENGINE_set_default_EC
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:34,1
    - Dst: ENGINE_set_default_RAND
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:37,1
    - Dst: ENGINE_set_default_pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:40,1
    - Dst: ENGINE_set_default_pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:43,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - ENGINE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 46
    functionName: ENGINE_set_default
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - ENGINE_set_default_ciphers
    - ENGINE_set_default_EC
    - ENGINE_set_default_RSA
    - ENGINE_set_default_digests
    - ENGINE_set_default_pkey_meths
    - ENGINE_set_default_DH
    - ENGINE_set_default_pkey_asn1_meths
    - ENGINE_set_default_DSA
    - ENGINE_set_default_RAND
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default(ENGINE *e, unsigned int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:55,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:57,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:59,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:61,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:63,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:65,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:67,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:69,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:71,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:73,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:75,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - alg
    - len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: int_def_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int int_def_cb(const char *alg, int len, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:85,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:86,1
    - Dst: ENGINE_set_default
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - e
    - def_list
    argTypes:
    - ENGINE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: ENGINE_set_default_string
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_fat.c
    functionUses: 1
    functionsReached:
    - ENGINE_set_default
    - ERR_raise_data
    - CONF_parse_list
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_string(ENGINE *e, const char *def_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_register_ciphers
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:95,1
    - Dst: ENGINE_register_digests
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:96,1
    - Dst: ENGINE_register_RSA
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:97,1
    - Dst: ENGINE_register_DSA
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:99,1
    - Dst: ENGINE_register_DH
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:102,1
    - Dst: ENGINE_register_EC
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:105,1
    - Dst: ENGINE_register_RAND
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:107,1
    - Dst: ENGINE_register_pkey_meths
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:108,1
    - Dst: ENGINE_register_pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: ENGINE_register_complete
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_fat.c
    functionUses: 0
    functionsReached:
    - ENGINE_register_ciphers
    - ENGINE_register_RAND
    - ENGINE_register_pkey_meths
    - ENGINE_register_digests
    - ENGINE_register_pkey_asn1_meths
    - ENGINE_register_EC
    - ENGINE_register_RSA
    - ENGINE_register_DSA
    - ENGINE_register_DH
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_complete(ENGINE *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:117,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:117,1
    - Dst: ENGINE_register_complete
      Src: /src/openssl-3.0.15/crypto/engine/eng_fat.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: ENGINE_register_all_complete
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_fat.c
    functionUses: 2
    functionsReached:
    - ENGINE_get_next
    - ENGINE_get_first
    - ENGINE_register_complete
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_all_complete(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ENGINE_unregister_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_RAND(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: engine_unregister_all_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_RAND(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: ENGINE_register_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_RAND(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:41,1
    - Dst: ENGINE_register_RAND
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_RAND
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_RAND(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ENGINE_set_default_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_RAND(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_rand.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ENGINE_get_default_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 2
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_RAND(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ENGINE_get_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: RAND_METHOD
    signature: RAND_METHOD *ENGINE_get_RAND(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - rand_meth
    argTypes:
    - ENGINE*
    - RAND_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ENGINE_set_RAND
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadpriv_f
    argTypes:
    - ENGINE*
    - ENGINE_LOAD_KEY_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: ENGINE_set_load_privkey_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ENGINE_set_load_privkey_function(ENGINE *e,\n                                     ENGINE_LOAD_KEY_PTR
      loadpriv_f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadpub_f
    argTypes:
    - ENGINE*
    - ENGINE_LOAD_KEY_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: ENGINE_set_load_pubkey_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR
      loadpub_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - loadssl_f
    argTypes:
    - ENGINE*
    - ENGINE_SSL_CLIENT_CERT_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: ENGINE_set_load_ssl_client_cert_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,\n                                             ENGINE_SSL_CLIENT_CERT_PTR\n
      \                                            loadssl_f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: ENGINE_get_load_privkey_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_LOAD_KEY_PTR
    signature: ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ENGINE_get_load_pubkey_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_LOAD_KEY_PTR
    signature: ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: ENGINE_get_ssl_client_cert_function
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_SSL_CLIENT_CERT_PTR
    signature: "ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const
      ENGINE\n                                                               *e)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:62,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:65,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:69,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:72,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:74,1
    - Dst: ENGINE*::load_privkey
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - e
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 83
    functionName: ENGINE_load_private_key
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached:
    - ENGINE*::load_privkey
    - CRYPTO_THREAD_write_lock
    - ERR_raise
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,\n
      \                                 UI_METHOD *ui_method, void *callback_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:91,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:94,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:98,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:103,1
    - Dst: ENGINE*::load_pubkey
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_pkey.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - e
    - key_id
    - ui_method
    - callback_data
    argTypes:
    - ENGINE*
    - char*
    - UI_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 112
    functionName: ENGINE_load_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_pkey.c
    functionUses: 0
    functionsReached:
    - ENGINE*::load_pubkey
    - CRYPTO_THREAD_write_lock
    - ERR_raise
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,\n
      \                                UI_METHOD *ui_method, void *callback_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: ENGINE_unregister_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_ciphers(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: engine_unregister_all_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_ciphers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::ciphers
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:31,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: ENGINE_register_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 2
    functionsReached:
    - engine_table_register
    - ENGINE*::ciphers
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_ciphers(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:44,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:44,1
    - Dst: ENGINE_register_ciphers
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: ENGINE_register_all_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_ciphers
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_ciphers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::ciphers
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:52,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: ENGINE_set_default_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    - ENGINE*::ciphers
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_ciphers(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: ENGINE_get_cipher_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_cipher_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_ciphers
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:76,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/tb_cipher.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: ENGINE_get_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 0
    functionsReached:
    - fn
    - ERR_raise
    - ENGINE_get_ciphers
    linkageType: ''
    returnType: EVP_CIPHER
    signature: EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ENGINE_get_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_CIPHERS_PTR
    signature: ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_CIPHERS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: ENGINE_set_ciphers
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_cipher.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ENGINE_unregister_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_EC(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: engine_unregister_all_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_EC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: ENGINE_register_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_EC(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:41,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:41,1
    - Dst: ENGINE_register_EC
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: ENGINE_register_all_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_EC
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_EC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ENGINE_set_default_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_EC(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_eckey.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ENGINE_get_default_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_default_EC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ENGINE_get_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EC_KEY_METHOD
    signature: EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - ec_meth
    argTypes:
    - ENGINE*
    - EC_KEY_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ENGINE_set_EC
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_eckey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ec_meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::init
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:29,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:37,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: engine_unlocked_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_init.c
    functionUses: 2
    functionsReached:
    - ENGINE*::init
    - ENGINE_REF_PRINT
    linkageType: ''
    returnType: int
    signature: int engine_unlocked_init(ENGINE *e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:60,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:63,1
    - Dst: ENGINE*::finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:64,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:66,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:71,1
    - Dst: engine_free_util
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:73,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - e
    - unlock_for_handlers
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 78
    functionName: engine_unlocked_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_init.c
    functionUses: 4
    functionsReached:
    - ENGINE*::finish
    - REF_ASSERT_ISNT
    - engine_free_util
    - ERR_raise
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int engine_unlocked_finish(ENGINE *e, int unlock_for_handlers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:85,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:88,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:89,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:92,1
    - Dst: engine_unlocked_init
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:94,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: ENGINE_init
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_init.c
    functionUses: 17
    functionsReached:
    - RUN_ONCE
    - engine_unlocked_init
    - ERR_raise
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ENGINE_init(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:106,1
    - Dst: engine_unlocked_finish
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:108,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/eng_init.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: ENGINE_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/eng_init.c
    functionUses: 28
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - ERR_raise
    - CRYPTO_THREAD_unlock
    - engine_unlocked_finish
    linkageType: ''
    returnType: int
    signature: int ENGINE_finish(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_unregister
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: ENGINE_unregister_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_unregister
    linkageType: ''
    returnType: void
    signature: void ENGINE_unregister_pkey_asn1_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: engine_table_cleanup
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: engine_unregister_all_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - engine_table_cleanup
    linkageType: ''
    returnType: void
    signature: void engine_unregister_all_pkey_asn1_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:42,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: ENGINE_register_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    - ENGINE*::pkey_asn1_meths
    linkageType: ''
    returnType: int
    signature: int ENGINE_register_pkey_asn1_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:55,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:55,1
    - Dst: ENGINE_register_pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 6
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: ENGINE_register_all_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_next
    - ENGINE_register_pkey_asn1_meths
    - ENGINE_get_first
    linkageType: ''
    returnType: void
    signature: void ENGINE_register_all_pkey_asn1_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:63,1
    - Dst: engine_table_register
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: ENGINE_set_default_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_register
    - ENGINE*::pkey_asn1_meths
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_default_pkey_asn1_meths(ENGINE *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_engine_table_select
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: ENGINE_get_pkey_asn1_meth_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ossl_engine_table_select
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:90,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:91,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - e
    - nid
    argTypes:
    - ENGINE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: ENGINE_get_pkey_asn1_meth
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINE_get_pkey_asn1_meths
    - fn
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: ENGINE_get_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ENGINE_PKEY_ASN1_METHS_PTR
    signature: ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE
      *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - f
    argTypes:
    - ENGINE*
    - ENGINE_PKEY_ASN1_METHS_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: ENGINE_set_pkey_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR
      f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:123,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:125,1
    - Dst: EVP_PKEY_asn1_free
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: engine_pkey_asn1_meths_free
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - EVP_PKEY_asn1_free
    linkageType: ''
    returnType: void
    signature: void engine_pkey_asn1_meths_free(ENGINE *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:149,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:150,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:152,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:154,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - e
    - str
    - len
    argTypes:
    - ENGINE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: ENGINE_get_pkey_asn1_meth_str
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strncasecmp
    - strlen
    - ENGINE*::pkey_asn1_meths
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e,\n                                                          const
      char *str,\n                                                          int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_ENGINE_num
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:174,1
    - Dst: sk_ENGINE_value
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:175,1
    - Dst: ENGINE*::pkey_asn1_meths
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:177,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:179,1
    - Dst: OPENSSL_strncasecmp
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - nid
    - sk
    - def
    - arg
    argTypes:
    - int
    - STACK_OF*
    - ENGINE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: look_str_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 0
    functionsReached:
    - ENGINE*::pkey_asn1_meths
    - sk_ENGINE_num
    - sk_ENGINE_value
    - OPENSSL_strncasecmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void look_str_cb(int nid, STACK_OF(ENGINE) *sk, ENGINE *def, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:198,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:199,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:203,1
    - Dst: engine_table_doall
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:205,1
    - Dst: ENGINE_REF_PRINT
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:209,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - pe
    - str
    - len
    argTypes:
    - ENGINE**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 214
    functionName: ENGINE_pkey_asn1_find_str
    functionSourceFile: /src/openssl-3.0.15/crypto/engine/tb_asnmth.c
    functionUses: 1
    functionsReached:
    - engine_table_doall
    - RUN_ONCE
    - ERR_raise
    - ENGINE_REF_PRINT
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: EVP_PKEY_ASN1_METHOD
    signature: "EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,\n                                                      const
      char *str,\n                                                      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:89,1
    - Dst: sk_CONF_MODULE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:92,1
    - Dst: sk_CONF_IMODULE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: module_lists_free
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - sk_CONF_MODULE_free
    - sk_CONF_IMODULE_free
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void module_lists_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_init_module_list_lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_get_number
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cnf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: conf_diagnostics
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - _CONF_get_number
    linkageType: ''
    returnType: int
    signature: int conf_diagnostics(const CONF *cnf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:120,1
    - Dst: conf_diagnostics
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:128,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:134,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:136,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:139,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:142,1
    - Dst: OSSL_TRACE1
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:146,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:147,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:151,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:152,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:156,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:160,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:162,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:163,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:164,1
    - Dst: module_run
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:165,1
    - Dst: OSSL_TRACE3
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:166,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:170,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - cnf
    - appname
    - flags
    argTypes:
    - CONF*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 178
    functionName: CONF_modules_load
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - OSSL_TRACE3
    - ERR_set_mark
    - ERR_raise_data
    - NCONF_get_section
    - conf_diagnostics
    - STACK_OF
    - ERR_pop_to_mark
    - module_run
    - ERR_clear_last_mark
    - NCONF_get_string
    - sk_CONF_VALUE_value
    - OSSL_TRACE1
    linkageType: ''
    returnType: int
    signature: "int CONF_modules_load(const CONF *cnf, const char *appname,\n                      unsigned
      long flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:187,1
    - Dst: CONF_get1_default_config_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:190,1
    - Dst: NCONF_new_ex
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:202,1
    - Dst: NCONF_load
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:206,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:208,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:208,1
    - Dst: CONF_modules_load
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:214,1
    - Dst: conf_diagnostics
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:215,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:219,1
    - Dst: NCONF_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:220,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:226,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - libctx
    - filename
    - appname
    - flags
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 231
    functionName: CONF_modules_load_file_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - CONF_modules_load
    - ERR_GET_REASON
    - NCONF_load
    - CONF_get1_default_config_file
    - NCONF_new_ex
    - ERR_set_mark
    - NCONF_free
    - OPENSSL_free
    - ERR_peek_last_error
    - conf_diagnostics
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    linkageType: ''
    returnType: int
    signature: "int CONF_modules_load_file_ex(OSSL_LIB_CTX *libctx, const char *filename,\n
      \                             const char *appname, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_load_file_ex
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - appname
    - flags
    argTypes:
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: CONF_modules_load_file
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - CONF_modules_load_file_ex
    linkageType: ''
    returnType: int
    signature: "int CONF_modules_load_file(const char *filename,\n                           const
      char *appname, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_load_builtin_modules
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:241,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - ENGINE_load_builtin_engines
    - OPENSSL_load_builtin_modules
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_load_builtin_modules)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:255,1
    - Dst: module_find
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:258,1
    - Dst: module_load_dso
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:262,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:266,1
    - Dst: module_init
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:272,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:276,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - cnf
    - name
    - value
    - flags
    argTypes:
    - CONF*
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 282
    functionName: module_run
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - RUN_ONCE
    - module_load_dso
    - module_find
    - ERR_raise_data
    - module_init
    linkageType: ''
    returnType: int
    signature: "int module_run(const CONF *cnf, const char *name, const char *value,\n
      \                     unsigned long flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:296,1
    - Dst: DSO_load
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:300,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:305,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:310,1
    - Dst: module_add
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:312,1
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:320,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:321,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - cnf
    - name
    - value
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 323
    functionName: module_load_dso
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - ERR_raise_data
    - DSO_load
    - _CONF_get_string
    - module_add
    - DSO_free
    - DSO_bind_func
    linkageType: ''
    returnType: CONF_MODULE
    signature: "CONF_MODULE *module_load_dso(const CONF *cnf,\n                                    const
      char *name, const char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:331,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:334,1
    - Dst: sk_CONF_MODULE_new_null
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:338,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:341,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:342,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:347,1
    - Dst: sk_CONF_MODULE_push
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:353,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:356,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:360,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:362,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:363,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - dso
    - name
    - ifunc
    - ffunc
    argTypes:
    - DSO*
    - char*
    - conf_init_func*
    - conf_finish_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 366
    functionName: module_add
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 7
    functionsReached:
    - sk_CONF_MODULE_push
    - RUN_ONCE
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - sk_CONF_MODULE_new_null
    - OPENSSL_strdup
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: CONF_MODULE
    signature: "CONF_MODULE *module_add(DSO *dso, const char *name,\n                               conf_init_func
      *ifunc, conf_finish_func *ffunc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:379,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:384,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:386,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:389,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:392,1
    - Dst: sk_CONF_MODULE_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:393,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:394,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:395,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 402
    functionName: module_find
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - RUN_ONCE
    - sk_CONF_MODULE_num
    - strrchr
    - CRYPTO_THREAD_unlock
    - strlen
    - sk_CONF_MODULE_value
    - strncmp
    - CRYPTO_THREAD_read_lock
    linkageType: ''
    returnType: CONF_MODULE
    signature: CONF_MODULE *module_find(const char *name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:413,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:418,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:419,1
    - Dst: CONF_MODULE*::init
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:427,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:434,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:437,1
    - Dst: sk_CONF_IMODULE_new_null
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:441,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:443,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:444,1
    - Dst: sk_CONF_IMODULE_push
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:449,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:450,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:451,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:457,1
    - Dst: CONF_MODULE*::finish
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:464,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:468,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:469,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:470,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 4
    argNames:
    - pmod
    - name
    - value
    - cnf
    argTypes:
    - CONF_MODULE*
    - char*
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 475
    functionName: module_init
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 2
    functionsReached:
    - CONF_MODULE*::init
    - sk_CONF_IMODULE_new_null
    - RUN_ONCE
    - OPENSSL_malloc
    - sk_CONF_IMODULE_push
    - CONF_MODULE*::finish
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strdup
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int module_init(CONF_MODULE *pmod, const char *name, const char *value,\n
      \                      const CONF *cnf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: conf_modules_finish_int
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:488,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:491,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:495,1
    - Dst: sk_CONF_MODULE_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:496,1
    - Dst: sk_CONF_MODULE_delete
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:501,1
    - Dst: module_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:502,1
    - Dst: sk_CONF_MODULE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:505,1
    - Dst: sk_CONF_MODULE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:506,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - all
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 511
    functionName: CONF_modules_unload
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - sk_CONF_MODULE_num
    - sk_CONF_MODULE_delete
    - CRYPTO_THREAD_unlock
    - sk_CONF_MODULE_value
    - conf_modules_finish_int
    - CRYPTO_THREAD_write_lock
    - sk_CONF_MODULE_free
    - module_free
    linkageType: ''
    returnType: void
    signature: void CONF_modules_unload(int all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:516,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:517,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_MODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: module_free
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    - DSO_free
    linkageType: ''
    returnType: void
    signature: void module_free(CONF_MODULE *md)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:527,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:532,1
    - Dst: sk_CONF_IMODULE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:535,1
    - Dst: sk_CONF_IMODULE_pop
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:536,1
    - Dst: module_finish
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:537,1
    - Dst: sk_CONF_IMODULE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:539,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 545
    functionName: conf_modules_finish_int
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - module_finish
    - RUN_ONCE
    - sk_CONF_IMODULE_num
    - CRYPTO_THREAD_unlock
    - sk_CONF_IMODULE_free
    - CRYPTO_THREAD_write_lock
    - sk_CONF_IMODULE_pop
    linkageType: ''
    returnType: int
    signature: int conf_modules_finish_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conf_modules_finish_int
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: CONF_modules_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached:
    - conf_modules_finish_int
    linkageType: ''
    returnType: void
    signature: void CONF_modules_finish(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONF_IMODULE*::pmod::finish
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:559,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:561,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:562,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - imod
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: module_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - CONF_IMODULE*::pmod::finish
    linkageType: ''
    returnType: void
    signature: void module_finish(CONF_IMODULE *imod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: module_add
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - ifunc
    - ffunc
    argTypes:
    - char*
    - conf_init_func*
    - conf_finish_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: CONF_module_add
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 6
    functionsReached:
    - module_add
    linkageType: ''
    returnType: int
    signature: "int CONF_module_add(const char *name, conf_init_func *ifunc,\n                    conf_finish_func
      *ffunc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_modules_unload
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:579,1
    - Dst: module_lists_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: ossl_config_modules_free
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - module_lists_free
    - CONF_modules_unload
    linkageType: ''
    returnType: void
    signature: void ossl_config_modules_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: CONF_imodule_get_name
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CONF_imodule_get_name(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    functionName: CONF_imodule_get_value
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CONF_imodule_get_value(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 598
    functionName: CONF_imodule_get_usr_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *CONF_imodule_get_usr_data(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - usr_data
    argTypes:
    - CONF_IMODULE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: CONF_imodule_set_usr_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: CONF_imodule_get_module
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_MODULE
    signature: CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: CONF_imodule_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - flags
    argTypes:
    - CONF_IMODULE*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: CONF_imodule_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmod
    argTypes:
    - CONF_MODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: CONF_module_get_usr_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *CONF_module_get_usr_data(CONF_MODULE *pmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pmod
    - usr_data
    argTypes:
    - CONF_MODULE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: CONF_module_set_usr_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:637,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:638,1
    - Dst: X509_get_default_cert_area
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:640,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:644,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:644,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:644,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:645,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 652
    functionName: CONF_get1_default_config_file
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - BIO_snprintf
    - strlen
    - ossl_safe_getenv
    - OPENSSL_strdup
    - X509_get_default_cert_area
    linkageType: ''
    returnType: char
    signature: char *CONF_get1_default_config_file(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:669,1
    - Dst: isspace
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:676,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:679,1
    - Dst: list_cb
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:681,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:686,1
    - Dst: isspace
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:688,1
    - Dst: list_cb
      Src: /src/openssl-3.0.15/crypto/conf/conf_mod.c:691,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - list_
    - sep
    - nospc
    - arg
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 699
    functionName: CONF_parse_list
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mod.c
    functionUses: 6
    functionsReached:
    - strchr
    - ERR_raise
    - isspace
    - strlen
    - list_cb
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - md
    argTypes:
    - CONF_IMODULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: ssl_module_free
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ssl_module_free(CONF_IMODULE *md)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:66,1
    - Dst: CONF_imodule_get_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:68,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:69,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:70,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:76,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:79,1
    - Dst: ssl_module_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:80,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:81,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:87,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:88,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:88,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:90,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:96,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:100,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:103,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:104,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:110,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:114,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:119,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:120,1
    - Dst: ssl_module_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:129,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - md
    - cnf
    argTypes:
    - CONF_IMODULE*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 131
    functionName: ssl_module_init
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - strchr
    - ERR_raise_data
    - OPENSSL_zalloc
    - ssl_module_free
    - NCONF_get_section
    - STACK_OF
    - CONF_imodule_get_value
    - OPENSSL_strdup
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - idx
    - name
    - cnt
    argTypes:
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: conf_ssl_get
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_CONF_CMD
    signature: SSL_CONF_CMD *conf_ssl_get(size_t idx, const char **name, size_t *cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - name
    - idx
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: conf_ssl_name_find
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int conf_ssl_name_find(const char *name, size_t *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cmd
    - idx
    - cmdstr
    - arg
    argTypes:
    - SSL_CONF_CMD*
    - size_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: conf_ssl_get_cmd
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void conf_ssl_get_cmd(const SSL_CONF_CMD *cmd, size_t idx, char **cmdstr,\n
      \                     char **arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONF_module_add
      Src: /src/openssl-3.0.15/crypto/conf/conf_ssl.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: ossl_config_add_ssl_module
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_ssl.c
    functionUses: 0
    functionsReached:
    - CONF_module_add
    linkageType: ''
    returnType: void
    signature: void ossl_config_add_ssl_module(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: CONF_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CONF_set_default_method(CONF_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:115,1
    - Dst: CONF_set_nconf
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:119,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - conf
    - group
    - name
    argTypes:
    - LHASH_OF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: CONF_get_string
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 5
    functionsReached:
    - NCONF_get_string
    - CONF_set_nconf
    linkageType: ''
    returnType: char
    signature: "char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group,\n
      \                     const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_default
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:187,1
    - Dst: CONF_METHOD*::create
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:189,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - libctx
    - meth
    argTypes:
    - OSSL_LIB_CTX*
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: NCONF_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONF_METHOD*::create
    - NCONF_default
    - ERR_raise
    linkageType: ''
    returnType: CONF
    signature: CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new_ex
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: NCONF_new
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - NCONF_new_ex
    linkageType: ''
    returnType: CONF
    signature: CONF *NCONF_new(CONF_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONF*::meth::destroy
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: NCONF_free
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONF*::meth::destroy
    linkageType: ''
    returnType: void
    signature: void NCONF_free(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONF*::meth::destroy_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: NCONF_free_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - CONF*::meth::destroy_data
    linkageType: ''
    returnType: void
    signature: void NCONF_free_data(CONF *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: NCONF_get0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_CSTRING_push
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - names
    argTypes:
    - CONF_VALUE*
    - SECTION_NAMES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: collect_section_name
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_CSTRING_push
    linkageType: ''
    returnType: void
    signature: void collect_section_name(const CONF_VALUE *v, SECTION_NAMES *names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OPENSSL_CSTRING*
    - OPENSSL_CSTRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: section_name_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 4
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int section_name_cmp(OPENSSL_CSTRING const *a, OPENSSL_CSTRING const
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:253,1
    - Dst: CONF*::meth::load
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conf
    - file
    - eline
    argTypes:
    - CONF*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: NCONF_load
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONF*::meth::load
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int NCONF_load(CONF *conf, const char *file, long *eline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:265,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:266,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:269,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - conf
    - fp
    - eline
    argTypes:
    - CONF*
    - FILE*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 7
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: NCONF_load_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - NCONF_load_bio
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int NCONF_load_fp(CONF *conf, FILE *fp, long *eline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:278,1
    - Dst: CONF*::meth::load_bio
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - conf
    - bp
    - eline
    argTypes:
    - CONF*
    - BIO*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: NCONF_load_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - CONF*::meth::load_bio
    linkageType: ''
    returnType: int
    signature: int NCONF_load_bio(CONF *conf, BIO *bp, long *eline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:312,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - conf
    - group
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 318
    functionName: NCONF_get_string
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 3
    functionsReached:
    - _CONF_get_string
    - ERR_raise_data
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *NCONF_get_string(const CONF *conf, const char *group, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: default_is_number
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int default_is_number(const CONF *conf, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: default_to_int
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int default_to_int(const CONF *conf, char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:339,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:343,1
    - Dst: is_number
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:354,1
    - Dst: to_int
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:355,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - conf
    - group
    - name
    - result
    argTypes:
    - CONF*
    - char*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: NCONF_get_number_e
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - NCONF_get_string
    - is_number
    - to_int
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int NCONF_get_number_e(const CONF *conf, const char *group, const
      char *name,\n                       long *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:374,1
    - Dst: NCONF_get_number_e
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:375,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - conf
    - section
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 378
    functionName: _CONF_get_number
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - ERR_pop_to_mark
    - ERR_set_mark
    - NCONF_get_number_e
    linkageType: ''
    returnType: long
    signature: "long _CONF_get_number(const CONF *conf, const char *section,\n                      const
      char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:385,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:386,1
    - Dst: NCONF_dump_bio
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:389,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 381
    functionDepth: 7
    functionLinenumber: 381
    functionLinenumberEnd: 392
    functionName: NCONF_dump_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - NCONF_dump_bio
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int NCONF_dump_fp(const CONF *conf, FILE *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:398,1
    - Dst: CONF*::meth::dump
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: NCONF_dump_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 1
    functionsReached:
    - CONF*::meth::dump
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int NCONF_dump_bio(const CONF *conf, BIO *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:411,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 420
    functionName: OPENSSL_INIT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    linkageType: ''
    returnType: OPENSSL_INIT_SETTINGS
    signature: OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:430,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - settings
    - filename
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: OPENSSL_INIT_set_config_filename
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,\n
      \                                    const char *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - settings
    - flags
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: OPENSSL_INIT_set_config_file_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings,\n
      \                                       unsigned long flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:453,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - settings
    - appname
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 462
    functionName: OPENSSL_INIT_set_config_appname
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings,\n
      \                                   const char *appname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:470,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:471,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/conf/conf_lib.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - settings
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: OPENSSL_INIT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_lib.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:36,1
    - Dst: strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:38,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:40,1
    - Dst: free
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: OPENSSL_config
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_sap.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - memset
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: void OPENSSL_config(const char *appname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:65,1
    - Dst: CONF_modules_load_file_ex
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:70,1
    - Dst: OSSL_LIB_CTX_get0_global_default
      Src: /src/openssl-3.0.15/crypto/conf/conf_sap.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - settings
    argTypes:
    - OPENSSL_INIT_SETTINGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: ossl_config_int
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_sap.c
    functionUses: 2
    functionsReached:
    - CONF_modules_load_file_ex
    - OSSL_LIB_CTX_get0_global_default
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ossl_config_int(const OPENSSL_INIT_SETTINGS *settings)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ossl_no_config_int
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_sap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_no_config_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_add_oid_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:29,1
    - Dst: ASN1_add_stable_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:30,1
    - Dst: ENGINE_add_conf_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:32,1
    - Dst: EVP_add_alg_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:34,1
    - Dst: ossl_config_add_ssl_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:35,1
    - Dst: ossl_provider_add_conf_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:36,1
    - Dst: ossl_random_add_conf_module
      Src: /src/openssl-3.0.15/crypto/conf/conf_mall.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: OPENSSL_load_builtin_modules
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_mall.c
    functionUses: 1
    functionsReached:
    - ENGINE_add_conf_module
    - ossl_provider_add_conf_module
    - ASN1_add_oid_module
    - ossl_config_add_ssl_module
    - EVP_add_alg_module
    - ossl_random_add_conf_module
    - ASN1_add_stable_module
    linkageType: ''
    returnType: void
    signature: void OPENSSL_load_builtin_modules(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: IS_COMMENT
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_COMMENT(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: IS_FCOMMENT
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_FCOMMENT(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: IS_EOF
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_EOF(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: IS_ESC
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ESC(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: IS_NUMBER
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NUMBER(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: IS_WS
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WS(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: IS_ALNUM
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALNUM(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: IS_ALNUM_PUNCT
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALNUM_PUNCT(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: IS_QUOTE
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_QUOTE(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: IS_DQUOTE
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DQUOTE(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: IS_DOLLAR
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DOLLAR(conf,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: S_ISDIR
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - conf
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: scan_esc
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scan_esc(conf,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: NCONF_default
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CONF_METHOD
    signature: CONF_METHOD *NCONF_default(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: NCONF_WIN32
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONF_METHOD
    signature: CONF_METHOD *NCONF_WIN32(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:115,1
    - Dst: CONF_METHOD*::init
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:117,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - meth
    argTypes:
    - CONF_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: def_create
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - CONF_METHOD*::init
    linkageType: ''
    returnType: CONF
    signature: CONF *def_create(CONF_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: def_init_default
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int def_init_default(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: def_init_WIN32
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int def_init_WIN32(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: def_destroy_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: def_destroy
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - def_destroy_data
    linkageType: ''
    returnType: int
    signature: int def_destroy(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_free_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: def_destroy_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - _CONF_free_data
    linkageType: ''
    returnType: int
    signature: int def_destroy_data(CONF *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:173,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:175,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:178,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:178,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:181,1
    - Dst: def_load_bio
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:185,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conf
    - name
    - line
    argTypes:
    - CONF*
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 189
    functionName: def_load
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - BIO_free
    - def_load_bio
    - ERR_raise
    - ERR_peek_last_error
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int def_load(CONF *conf, const char *name, long *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:195,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:196,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:198,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:199,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pval
    - flag
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: parsebool
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int parsebool(const char *pval, int *flag)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:218,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:224,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:233,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:234,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:240,1
    - Dst: _CONF_new_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:244,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:245,1
    - Dst: _CONF_new_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:251,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:258,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:259,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:265,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:268,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:274,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:275,1
    - Dst: get_next_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:291,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:292,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:296,1
    - Dst: sk_BIO_pop
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:302,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:306,1
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:341,1
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:341,1
    - Dst: clear_comments
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:351,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:352,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:353,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:359,1
    - Dst: eat_alpha_numeric
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:362,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:363,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:369,1
    - Dst: str_copy
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:373,1
    - Dst: _CONF_get_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:375,1
    - Dst: _CONF_new_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:376,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:378,1
    - Dst: eat_alpha_numeric
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:384,1
    - Dst: eat_alpha_numeric
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:390,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:394,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:395,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:401,1
    - Dst: trim_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:403,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:406,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:408,1
    - Dst: trim_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:413,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:414,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:423,1
    - Dst: parsebool
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:424,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:426,1
    - Dst: parsebool
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:427,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:429,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:430,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:431,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:432,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:441,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:445,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:467,1
    - Dst: trim_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:469,1
    - Dst: str_copy
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:470,1
    - Dst: ossl_is_absolute_path
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:473,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:474,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:474,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:476,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:478,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:479,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:483,1
    - Dst: ossl_ends_with_dirsep
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:484,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:485,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:486,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:487,1
    - Dst: ossl_is_absolute_path
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:493,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:494,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:495,1
    - Dst: process_include
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:501,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:504,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:507,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:508,1
    - Dst: sk_BIO_new_null
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:514,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:515,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:516,1
    - Dst: sk_BIO_push
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:520,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:521,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:522,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:530,1
    - Dst: eat_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:536,1
    - Dst: trim_ws
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:537,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:539,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:540,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:543,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:546,1
    - Dst: str_copy
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:549,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:552,1
    - Dst: _CONF_get_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:553,1
    - Dst: _CONF_new_section
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:555,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:557,1
    - Dst: _CONF_add_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:563,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:564,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:570,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:571,1
    - Dst: sk_BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:576,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:580,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:581,1
    - Dst: sk_BIO_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:587,1
    - Dst: sk_BIO_pop
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:588,1
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:589,1
    - Dst: sk_BIO_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:592,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:594,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:596,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:600,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:601,1
    - Dst: CONF_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:603,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:607,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:608,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:609,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 310
    argCount: 3
    argNames:
    - conf
    - in
    - line
    argTypes:
    - CONF*
    - BIO*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 612
    functionName: def_load_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - ossl_is_absolute_path
    - eat_alpha_numeric
    - sk_BIO_push
    - BIO_snprintf
    - sk_BIO_pop
    - IS_ESC
    - strlen
    - _CONF_new_section
    - DECIMAL_SIZE
    - _CONF_get_section
    - BIO_gets
    - str_copy
    - OPENSSL_DIR_end
    - ossl_ends_with_dirsep
    - BUF_MEM_grow
    - memmove
    - eat_ws
    - CONF_free
    - ERR_raise_data
    - process_include
    - memcmp
    - trim_ws
    - ossl_safe_getenv
    - OPENSSL_strdup
    - sk_BIO_new_null
    - clear_comments
    - OPENSSL_strlcat
    - ERR_raise
    - parsebool
    - _CONF_new_data
    - OPENSSL_free
    - ERR_add_error_data
    - STACK_OF
    - strcmp
    - OPENSSL_strlcpy
    - BIO_new_file
    - BIO_vfree
    - strncmp
    - BUF_MEM_free
    - IS_EOF
    - _CONF_add_string
    - OPENSSL_malloc
    - BIO_free
    - BUF_MEM_new
    - strchr
    - get_next_file
    - sk_BIO_num
    - sk_BIO_free
    linkageType: ''
    returnType: int
    signature: int def_load_bio(CONF *conf, BIO *in, long *line)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_FCOMMENT
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:617,1
    - Dst: IS_WS
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:621,1
    - Dst: IS_COMMENT
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:628,1
    - Dst: IS_DQUOTE
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:632,1
    - Dst: scan_dquote
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:633,1
    - Dst: IS_QUOTE
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:636,1
    - Dst: scan_quote
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:637,1
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:640,1
    - Dst: scan_esc
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:641,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:644,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 649
    functionName: clear_comments
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_QUOTE
    - IS_FCOMMENT
    - IS_COMMENT
    - scan_dquote
    - scan_quote
    - IS_ESC
    - IS_WS
    - IS_DQUOTE
    - scan_esc
    - IS_EOF
    linkageType: ''
    returnType: void
    signature: void clear_comments(CONF *conf, char *p)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:657,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:660,1
    - Dst: BUF_MEM_grow
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:661,1
    - Dst: IS_QUOTE
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:665,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:668,1
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:669,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:671,1
    - Dst: IS_DQUOTE
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:678,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:681,1
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:693,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:696,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:707,1
    - Dst: IS_ALNUM
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:729,1
    - Dst: IS_DOLLAR
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:730,1
    - Dst: IS_ALNUM
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:739,1
    - Dst: IS_DOLLAR
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:740,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:748,1
    - Dst: _CONF_get_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:763,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:768,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:771,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:773,1
    - Dst: BUF_MEM_grow_clean
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:776,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:777,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:800,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:802,1
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:805,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 127
    argCount: 4
    argNames:
    - conf
    - section
    - pto
    - from
    argTypes:
    - CONF*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 807
    functionName: str_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - BUF_MEM_grow_clean
    - IS_QUOTE
    - IS_ALNUM
    - BUF_MEM_grow
    - BUF_MEM_new
    - ERR_raise
    - IS_ESC
    - OPENSSL_free
    - _CONF_get_string
    - strlen
    - IS_DQUOTE
    - BUF_MEM_free
    - IS_DOLLAR
    - IS_EOF
    linkageType: ''
    returnType: int
    signature: int str_copy(CONF *conf, char *section, char **pto, char *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:821,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:822,1
    - Dst: S_ISDIR
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:827,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:829,1
    - Dst: get_next_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:834,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - include
    - dirctx
    - dirpath
    argTypes:
    - char*
    - OPENSSL_DIR_CTX**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 841
    functionName: process_include
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 3
    functionsReached:
    - stat
    - S_ISDIR
    - ERR_raise_data
    - get_next_file
    - BIO_new_file
    linkageType: ''
    returnType: BIO
    signature: "BIO *process_include(char *include, OPENSSL_DIR_CTX **dirctx,\n                            char
      **dirpath)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:852,1
    - Dst: OPENSSL_DIR_read
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:853,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:856,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:860,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:862,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:868,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:870,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:882,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:886,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:887,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:889,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:891,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:892,1
    - Dst: OPENSSL_DIR_end
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:898,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - path
    - dirctx
    argTypes:
    - char*
    - OPENSSL_DIR_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 901
    functionName: get_next_file
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 2
    functionsReached:
    - OPENSSL_strlcat
    - OPENSSL_DIR_end
    - OPENSSL_DIR_read
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - strlen
    - OPENSSL_strlcpy
    - BIO_new_file
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: BIO
    signature: BIO *get_next_file(const char *path, OPENSSL_DIR_CTX **dirctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - conf
    - c
    - type
    argTypes:
    - CONF*
    - char
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 926
    functionName: is_keytype
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_keytype(const CONF *conf, char c, unsigned short type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_WS
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:930,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 933
    functionName: eat_ws
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_WS
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: char *eat_ws(CONF *conf, char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:939,1
    - Dst: IS_WS
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - start
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 946
    functionName: trim_ws
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_WS
    - IS_EOF
    linkageType: ''
    returnType: void
    signature: void trim_ws(CONF *conf, char *start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:951,1
    - Dst: scan_esc
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:952,1
    - Dst: IS_ALNUM_PUNCT
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:955,1
    - Dst: IS_DOLLAR
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:956,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 960
    functionName: eat_alpha_numeric
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - scan_esc
    - IS_ESC
    - IS_DOLLAR
    - IS_ALNUM_PUNCT
    linkageType: ''
    returnType: char
    signature: char *eat_alpha_numeric(CONF *conf, char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:967,1
    - Dst: IS_ESC
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:968,1
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 978
    functionName: scan_quote
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_ESC
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: char *scan_quote(CONF *conf, char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_EOF
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:985,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - conf
    - p
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 998
    functionName: scan_dquote
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 1
    functionsReached:
    - IS_EOF
    linkageType: ''
    returnType: char
    signature: char *scan_dquote(CONF *conf, char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:1003,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - CONF_VALUE*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1006
    functionName: dump_value_doall_arg
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void dump_value_doall_arg(const CONF_VALUE *a, BIO *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_doall_BIO
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conf
    - out
    argTypes:
    - CONF*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1014
    functionName: def_dump
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - lh_CONF_VALUE_doall_BIO
    linkageType: ''
    returnType: int
    signature: int def_dump(const CONF *conf, BIO *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_NUMBER
      Src: /src/openssl-3.0.15/crypto/conf/conf_def.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1019
    functionName: def_is_number
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached:
    - IS_NUMBER
    linkageType: ''
    returnType: int
    signature: int def_is_number(const CONF *conf, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conf
    - c
    argTypes:
    - CONF*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1024
    functionName: def_to_int
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_def.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int def_to_int(const CONF *conf, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: _CONF_get_section
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_retrieve
    linkageType: ''
    returnType: CONF_VALUE
    signature: CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:48,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:50,1
    - Dst: sk_CONF_VALUE_push
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:53,1
    - Dst: lh_CONF_VALUE_insert
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:56,1
    - Dst: sk_CONF_VALUE_delete_ptr
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:59,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - conf
    - section
    - value
    argTypes:
    - CONF*
    - CONF_VALUE*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: _CONF_add_string
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - sk_CONF_VALUE_delete_ptr
    - sk_CONF_VALUE_push
    - OPENSSL_free
    - STACK_OF
    - lh_CONF_VALUE_insert
    linkageType: ''
    returnType: int
    signature: int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:75,1
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:81,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:84,1
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:85,1
    - Dst: lh_CONF_VALUE_retrieve
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - conf
    - section
    - name
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 96
    functionName: _CONF_get_string
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 3
    functionsReached:
    - lh_CONF_VALUE_retrieve
    - strcmp
    - ossl_safe_getenv
    linkageType: ''
    returnType: char
    signature: "char *_CONF_get_string(const CONF *conf, const char *section,\n                       const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:100,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: conf_value_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long conf_value_hash(const CONF_VALUE *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:108,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CONF_VALUE*
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: conf_value_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int conf_value_cmp(const CONF_VALUE *a, const CONF_VALUE *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_new
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: _CONF_new_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_new
    linkageType: ''
    returnType: int
    signature: int _CONF_new_data(CONF *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:141,1
    - Dst: lh_CONF_VALUE_set_down_load
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:146,1
    - Dst: lh_CONF_VALUE_doall_LH_CONF_VALUE
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:147,1
    - Dst: lh_CONF_VALUE_doall
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:154,1
    - Dst: lh_CONF_VALUE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: _CONF_free_data
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_doall_LH_CONF_VALUE
    - lh_CONF_VALUE_doall
    - lh_CONF_VALUE_free
    - OPENSSL_free
    - lh_CONF_VALUE_set_down_load
    linkageType: ''
    returnType: void
    signature: void _CONF_free_data(CONF *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_CONF_VALUE_delete
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - conf
    argTypes:
    - CONF_VALUE*
    - LHASH_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: value_free_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - lh_CONF_VALUE_delete
    linkageType: ''
    returnType: void
    signature: void value_free_hash(const CONF_VALUE *a, LHASH_OF(CONF_VALUE) *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:167,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:173,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:174,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:175,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:176,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:177,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:178,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:181,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - CONF_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 183
    functionName: value_free_stack_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_free
    - sk_CONF_VALUE_num
    - OPENSSL_free
    - STACK_OF
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: void
    signature: void value_free_stack_doall(CONF_VALUE *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:187,1
    - Dst: sk_CONF_VALUE_new_null
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:191,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:193,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:195,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:196,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:199,1
    - Dst: lh_CONF_VALUE_insert
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:203,1
    - Dst: lh_CONF_VALUE_error
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:204,1
    - Dst: sk_CONF_VALUE_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:211,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/conf/conf_api.c:212,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 214
    functionName: _CONF_new_section
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_api.c
    functionUses: 1
    functionsReached:
    - lh_CONF_VALUE_error
    - memcpy
    - sk_CONF_VALUE_free
    - OPENSSL_malloc
    - OPENSSL_free
    - STACK_OF
    - strlen
    - lh_CONF_VALUE_insert
    - sk_CONF_VALUE_new_null
    linkageType: ''
    returnType: CONF_VALUE
    signature: CONF_VALUE *_CONF_new_section(CONF *conf, const char *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/conf/conf_err.c:70,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/conf/conf_err.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: ossl_err_load_CONF_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/conf/conf_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_CONF_strings(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD2_Init
      Src: /src/openssl-3.0.15/crypto/md2/md2_one.c:32,1
    - Dst: MD2_Update
      Src: /src/openssl-3.0.15/crypto/md2/md2_one.c:35,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/md2/md2_one.c:43,1
    - Dst: MD2_Update
      Src: /src/openssl-3.0.15/crypto/md2/md2_one.c:44,1
    - Dst: MD2_Final
      Src: /src/openssl-3.0.15/crypto/md2/md2_one.c:50,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md2/md2_one.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - n
    - md
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: MD2
    functionSourceFile: /src/openssl-3.0.15/crypto/md2/md2_one.c
    functionUses: 0
    functionsReached:
    - MD2_Update
    - ebcdic2ascii
    - OPENSSL_cleanse
    - MD2_Init
    - MD2_Final
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *MD2(const unsigned char *d, size_t n, unsigned char
      *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: MD2_options
    functionSourceFile: /src/openssl-3.0.15/crypto/md2/md2_dgst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *MD2_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:80,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:81,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - MD2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: MD2_Init
    functionSourceFile: /src/openssl-3.0.15/crypto/md2/md2_dgst.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int MD2_Init(MD2_CTX *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:96,1
    - Dst: md2_block
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:97,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:103,1
    - Dst: md2_block
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:114,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - data
    - len
    argTypes:
    - MD2_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 121
    functionName: MD2_Update
    functionSourceFile: /src/openssl-3.0.15/crypto/md2/md2_dgst.c
    functionUses: 1
    functionsReached:
    - memcpy
    - md2_block
    linkageType: ''
    returnType: int
    signature: int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:152,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - MD2_CTX*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 154
    functionName: md2_block
    functionSourceFile: /src/openssl-3.0.15/crypto/md2/md2_dgst.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - memcpy
    linkageType: ''
    returnType: void
    signature: void md2_block(MD2_CTX *c, const unsigned char *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md2_block
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:169,1
    - Dst: md2_block
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:173,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/md2/md2_dgst.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - unsigned char*
    - MD2_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 179
    functionName: MD2_Final
    functionSourceFile: /src/openssl-3.0.15/crypto/md2/md2_dgst.c
    functionUses: 1
    functionsReached:
    - OPENSSL_cleanse
    - md2_block
    linkageType: ''
    returnType: int
    signature: int MD2_Final(unsigned char *md, MD2_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: HASH_MAKE_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_MAKE_STRING(c, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: P0
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P0(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: P1
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P1(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: FF0
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF0(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: GG0
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG0(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: FF1
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF1(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: GG1
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG1(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - W0
    - ','
    - W7
    - ','
    - W13
    - ','
    - W3
    - ','
    - W10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: EXPAND
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND(W0,W7,W13,W3,W10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - TJ
    - ','
    - Wi
    - ','
    - Wj
    - ','
    - FF
    - ','
    - GG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: RND
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(A, B, C, D, E, F, G, H, TJ, Wi, Wj, FF, GG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - TJ
    - ','
    - Wi
    - ','
    - Wj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: R1
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(A,B,C,D,E,F,G,H,TJ,Wi,Wj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - ','
    - TJ
    - ','
    - Wi
    - ','
    - Wj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: R2
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(A,B,C,D,E,F,G,H,TJ,Wi,Wj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - SM3_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: ossl_sm3_init
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int ossl_sm3_init(SM3_CTX *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:52,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:53,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:54,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:55,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:56,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:57,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:58,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:59,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:60,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:61,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:62,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:63,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:64,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:65,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:66,1
    - Dst: HOST_c2l
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:67,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:69,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:70,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:71,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:72,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:73,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:74,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:75,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:76,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:77,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:78,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:79,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:80,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:81,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:82,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:83,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:84,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:85,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:86,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:87,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:88,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:89,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:90,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:91,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:92,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:93,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:94,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:95,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:96,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:97,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:98,1
    - Dst: R1
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:99,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:100,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:101,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:102,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:103,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:104,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:105,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:106,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:107,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:108,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:109,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:110,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:111,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:112,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:113,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:114,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:115,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:116,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:117,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:118,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:119,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:120,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:121,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:122,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:123,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:124,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:125,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:126,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:127,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:128,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:129,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:130,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:131,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:132,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:133,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:134,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:135,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:136,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:137,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:138,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:139,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:140,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:141,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:142,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:143,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:144,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:145,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:146,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:147,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:148,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:149,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:150,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:151,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:152,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:153,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:154,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:155,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:156,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:157,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:158,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:159,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:160,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:161,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:162,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:163,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:164,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:165,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:166,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:167,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:168,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:169,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:170,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:171,1
    - Dst: EXPAND
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:172,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:173,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:174,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:175,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:176,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:177,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:178,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:179,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:180,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:181,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:182,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:183,1
    - Dst: R2
      Src: /src/openssl-3.0.15/crypto/sm3/sm3.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 151
    argCount: 3
    argNames:
    - ctx
    - p
    - num
    argTypes:
    - SM3_CTX*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 195
    functionName: ossl_sm3_block_data_order
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/sm3.c
    functionUses: 0
    functionsReached:
    - EXPAND
    - R2
    - HOST_c2l
    - R1
    linkageType: ''
    returnType: void
    signature: void ossl_sm3_block_data_order(SM3_CTX *ctx, const void *p, size_t
      num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: EVP_sm3
    functionSourceFile: /src/openssl-3.0.15/crypto/sm3/legacy_sm3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_MD
    signature: EVP_MD *EVP_sm3(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:26,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:38,1
    - Dst: EVP_DecodeBlock
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:59,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: ct_base64_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - EVP_DecodeBlock
    - OPENSSL_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int ct_base64_decode(const char *in, unsigned char **out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SCT_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:74,1
    - Dst: SCT_set_version
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:83,1
    - Dst: ct_base64_decode
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:89,1
    - Dst: SCT_set0_log_id
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:92,1
    - Dst: ct_base64_decode
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:98,1
    - Dst: SCT_set0_extensions
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:101,1
    - Dst: ct_base64_decode
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:106,1
    - Dst: o2i_SCT_signature
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:111,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:113,1
    - Dst: SCT_set_timestamp
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:116,1
    - Dst: SCT_set_log_entry_type
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:118,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:124,1
    - Dst: SCT_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:125,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 127
    functionName: SCT_new_from_base64
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - o2i_SCT_signature
    - SCT_set0_log_id
    - SCT_free
    - ct_base64_decode
    - SCT_set_timestamp
    - ERR_raise
    - OPENSSL_free
    - SCT_set_version
    - SCT_new
    - SCT_set0_extensions
    - SCT_set_log_entry_type
    linkageType: ''
    returnType: SCT
    signature: "SCT *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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:145,1
    - Dst: ct_base64_decode
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:149,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:151,1
    - Dst: d2i_PUBKEY_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:157,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:159,1
    - Dst: CTLOG_new_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:163,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - ct_log
    - pkey_base64
    - name
    - libctx
    - propq
    argTypes:
    - CTLOG**
    - char*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 170
    functionName: CTLOG_new_from_base64_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - ct_base64_decode
    - CTLOG_new_ex
    - ERR_raise
    - d2i_PUBKEY_ex
    - OPENSSL_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int CTLOG_new_from_base64_ex(CTLOG **ct_log, const char *pkey_base64,\n
      \                            const char *name, OSSL_LIB_CTX *libctx,\n                             const
      char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_new_from_base64_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_b64.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ct_log
    - pkey_base64
    - name
    argTypes:
    - CTLOG**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 7
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: CTLOG_new_from_base64
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_b64.c
    functionUses: 0
    functionsReached:
    - CTLOG_new_from_base64_ex
    linkageType: ''
    returnType: int
    signature: "int CTLOG_new_from_base64(CTLOG **ct_log, const char *pkey_base64,\n
      \                         const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: n2s
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2s(c,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: s2n
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s2n(s,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: l2n3
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n3(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: n2l8
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l8(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: l2n8
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n8(l,c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:25,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:28,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:34,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:36,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: SCT_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SCT_CTX
    signature: SCT_CTX *SCT_CTX_new(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:49,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:50,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:51,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sctx
    argTypes:
    - SCT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: SCT_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_CTX_free(SCT_CTX *sctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:65,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cert
    - nid
    - is_duplicated
    argTypes:
    - X509*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: ct_x509_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int ct_x509_get_ext(X509 *cert, int nid, int *is_duplicated)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ct_x509_get_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:86,1
    - Dst: ct_x509_get_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:88,1
    - Dst: X509_set_issuer_name
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:103,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:103,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:107,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:108,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:114,1
    - Dst: X509_EXTENSION_set_data
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:116,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - cert
    - presigner
    argTypes:
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 120
    functionName: ct_x509_cert_fixup
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_EXTENSION_get_data
    - X509_get_ext
    - X509_set_issuer_name
    - X509_EXTENSION_set_data
    - X509_get_issuer_name
    - ct_x509_get_ext
    linkageType: ''
    returnType: __owur
    signature: __owur ct_x509_cert_fixup(X509 *cert, X509 *presigner)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ct_x509_get_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:129,1
    - Dst: i2d_X509
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:141,1
    - Dst: ct_x509_get_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:147,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:172,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:176,1
    - Dst: X509_delete_ext
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:176,1
    - Dst: ct_x509_cert_fixup
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:178,1
    - Dst: i2d_re_X509_tbs
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:181,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:192,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:199,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:200,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 3
    argNames:
    - sctx
    - cert
    - presigner
    argTypes:
    - SCT_CTX*
    - X509*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 202
    functionName: SCT_CTX_set1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_free
    - X509_EXTENSION_free
    - i2d_re_X509_tbs
    - OPENSSL_free
    - ct_x509_get_ext
    - ct_x509_cert_fixup
    - i2d_X509
    - X509_delete_ext
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_cert(SCT_CTX *sctx, X509 *cert, X509 *presigner)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:211,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:220,1
    - Dst: i2d_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:226,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:230,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:234,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:243,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:244,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - sctx
    - pkey
    - hash
    - hash_len
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 204
    functionDepth: 11
    functionLinenumber: 204
    functionLinenumberEnd: 246
    functionName: ct_public_key_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - i2d_X509_PUBKEY
    - OPENSSL_malloc
    - OPENSSL_free
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: __owur
    signature: "__owur ct_public_key_hash(SCT_CTX *sctx, X509_PUBKEY *pkey,\n                                     unsigned
      char **hash, size_t *hash_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCT_CTX_set1_issuer_pubkey
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:250,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - issuer
    argTypes:
    - SCT_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: SCT_CTX_set1_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - X509_get_X509_PUBKEY
    - SCT_CTX_set1_issuer_pubkey
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_issuer(SCT_CTX *sctx, const X509 *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_public_key_hash
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - pubkey
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 12
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: SCT_CTX_set1_issuer_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 1
    functionsReached:
    - ct_public_key_hash
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_issuer_pubkey(SCT_CTX *sctx, X509_PUBKEY *pubkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:260,1
    - Dst: ct_public_key_hash
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:265,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:266,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sctx
    - pubkey
    argTypes:
    - SCT_CTX*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 258
    functionDepth: 12
    functionLinenumber: 258
    functionLinenumberEnd: 273
    functionName: SCT_CTX_set1_pubkey
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached:
    - ct_public_key_hash
    - EVP_PKEY_free
    - X509_PUBKEY_get
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_set1_pubkey(SCT_CTX *sctx, X509_PUBKEY *pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sctx
    - time_in_ms
    argTypes:
    - SCT_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: SCT_CTX_set_time
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SCT_CTX_set_time(SCT_CTX *sctx, uint64_t time_in_ms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:34,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:40,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:43,1
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 53
    functionName: CT_POLICY_EVAL_CTX_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - time
    - ERR_raise
    - OPENSSL_zalloc
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: CT_POLICY_EVAL_CTX
    signature: "CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx,\n
      \                                             const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT_POLICY_EVAL_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: CT_POLICY_EVAL_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - CT_POLICY_EVAL_CTX_new_ex
    linkageType: ''
    returnType: CT_POLICY_EVAL_CTX
    signature: CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:64,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:65,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:66,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: CT_POLICY_EVAL_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: CT_POLICY_EVAL_CTX_set1_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/ct/ct_policy.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - issuer
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: CT_POLICY_EVAL_CTX_set1_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    linkageType: ''
    returnType: int
    signature: int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - log_store
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX
      *ctx,\n                                               CTLOG_STORE *log_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - time_in_ms
    argTypes:
    - CT_POLICY_EVAL_CTX*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: CT_POLICY_EVAL_CTX_set_time
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t
      time_in_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: CT_POLICY_EVAL_CTX_get0_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 * CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: CT_POLICY_EVAL_CTX_get0_issuer
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 * CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: CT_POLICY_EVAL_CTX_get0_log_store
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CTLOG_STORE
    signature: CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: CT_POLICY_EVAL_CTX_get_time
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: l2n8
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:55,1
    - Dst: s2n
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:56,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:58,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:65,1
    - Dst: l2n3
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:77,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:79,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:81,1
    - Dst: s2n
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:86,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:87,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 94
    functionName: sct_ctx_update
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - l2n8
    - l2n3
    - s2n
    linkageType: ''
    returnType: int
    signature: int sct_ctx_update(EVP_MD_CTX *ctx, const SCT_CTX *sctx, const SCT
      *sct)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SCT_is_complete
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:101,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:108,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:113,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:117,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:121,1
    - Dst: EVP_DigestVerifyInit_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:125,1
    - Dst: sct_ctx_update
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:129,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:133,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:136,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_vfy.c:139,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 2
    argNames:
    - sctx
    - sct
    argTypes:
    - SCT_CTX*
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 96
    functionDepth: 8
    functionLinenumber: 96
    functionLinenumberEnd: 141
    functionName: SCT_CTX_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_vfy.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - sct_ctx_update
    - EVP_DigestVerifyInit_ex
    - EVP_MD_CTX_new
    - ERR_raise
    - SCT_is_complete
    - EVP_DigestVerifyFinal
    - memcmp
    linkageType: ''
    returnType: int
    signature: int SCT_CTX_verify(const SCT_CTX *sctx, const SCT *sct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:21,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:24,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:26,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: SCT_signature_algorithms_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - SCT_get_signature_nid
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void SCT_signature_algorithms_print(const SCT *sct, BIO *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:31,1
    - Dst: ASN1_GENERALIZEDTIME_adj
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:36,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:43,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:44,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:45,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:46,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - timestamp
    - out
    argTypes:
    - uint64_t
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: timestamp_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - ASN1_STRING_get0_data
    - ASN1_GENERALIZEDTIME_set_string
    - BIO_snprintf
    - ASN1_GENERALIZEDTIME_adj
    - ASN1_GENERALIZEDTIME_new
    - ASN1_GENERALIZEDTIME_free
    linkageType: ''
    returnType: void
    signature: void timestamp_print(uint64_t timestamp, BIO *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_validation_status
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: SCT_validation_status_string
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - SCT_get_validation_status
    linkageType: ''
    returnType: char
    signature: char *SCT_validation_status_string(const SCT *sct)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_get0_log_by_id
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:76,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:81,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:84,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:89,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:92,1
    - Dst: CTLOG_get0_name
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:93,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:96,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:97,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:99,1
    - Dst: timestamp_print
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:100,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:104,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:106,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:108,1
    - Dst: SCT_signature_algorithms_print
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:109,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:110,1
    - Dst: BIO_hex_string
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 70
    functionDepth: 7
    functionLinenumber: 70
    functionLinenumberEnd: 112
    functionName: SCT_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - CTLOG_get0_name
    - BIO_hex_string
    - CTLOG_STORE_get0_log_by_id
    - timestamp_print
    - SCT_signature_algorithms_print
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: "void SCT_print(const SCT *sct, BIO *out, int indent,\n               const
      CTLOG_STORE *log_store)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_num
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:117,1
    - Dst: sk_SCT_value
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:121,1
    - Dst: SCT_print
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:123,1
    - Dst: sk_SCT_num
      Src: /src/openssl-3.0.15/crypto/ct/ct_prn.c:124,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 8
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: SCT_LIST_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_prn.c
    functionUses: 0
    functionsReached:
    - sk_SCT_value
    - SCT_print
    - BIO_printf
    - sk_SCT_num
    linkageType: ''
    returnType: void
    signature: "void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent,\n
      \                   const char *separator, const CTLOG_STORE *log_store)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_err.c:54,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/ct/ct_err.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: ossl_err_load_CT_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_err.c
    functionUses: 0
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_CT_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:24,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: SCT_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: SCT
    signature: SCT *SCT_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:43,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:44,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: SCT_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_free(SCT *sct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sct
    - version
    argTypes:
    - SCT*
    - sct_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: SCT_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set_version(SCT *sct, sct_version_t version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sct
    - entry_type
    argTypes:
    - SCT*
    - ct_log_entry_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: SCT_set_log_entry_type
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - sct
    - log_id
    - log_id_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: SCT_set0_log_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:97,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:101,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - sct
    - log_id
    - log_id_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: SCT_set1_log_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, size_t log_id_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - timestamp
    argTypes:
    - SCT*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: SCT_set_timestamp
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SCT_set_timestamp(SCT *sct, uint64_t timestamp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - sct
    - nid
    argTypes:
    - SCT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: SCT_set_signature_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set_signature_nid(SCT *sct, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sct
    - ext
    - ext_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: SCT_set0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:153,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sct
    - ext
    - ext_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: SCT_set1_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set1_extensions(SCT *sct, const unsigned char *ext, size_t
      ext_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - sct
    - sig
    - sig_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: SCT_set0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:179,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:185,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - sct
    - sig
    - sig_len
    argTypes:
    - SCT*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: SCT_set1_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_memdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int SCT_set1_signature(SCT *sct, const unsigned char *sig, size_t sig_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: SCT_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sct_version_t
    signature: sct_version_t SCT_get_version(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: SCT_get_log_entry_type
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ct_log_entry_type_t
    signature: ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - log_id
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: SCT_get0_log_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: SCT_get_timestamp
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t SCT_get_timestamp(const SCT *sct)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: SCT_get_signature_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SCT_get_signature_nid(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - ext
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: SCT_get0_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sct
    - sig
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: SCT_get0_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SCT_get0_signature(const SCT *sct, unsigned char **sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SCT_signature_is_complete
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: SCT_is_complete
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - SCT_signature_is_complete
    linkageType: ''
    returnType: int
    signature: int SCT_is_complete(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCT_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: SCT_signature_is_complete
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached:
    - SCT_get_signature_nid
    linkageType: ''
    returnType: int
    signature: int SCT_signature_is_complete(const SCT *sct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: SCT_get_source
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sct_source_t
    signature: sct_source_t SCT_get_source(const SCT *sct)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SCT_set_log_entry_type
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:275,1
    - Dst: SCT_set_log_entry_type
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sct
    - source
    argTypes:
    - SCT*
    - sct_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 283
    functionName: SCT_set_source
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - SCT_set_log_entry_type
    linkageType: ''
    returnType: int
    signature: int SCT_set_source(SCT *sct, sct_source_t source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sct
    argTypes:
    - SCT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: SCT_get_validation_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sct_validation_status_t
    signature: sct_validation_status_t SCT_get_validation_status(const SCT *sct)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_get0_log_by_id
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:306,1
    - Dst: SCT_CTX_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:315,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:319,1
    - Dst: CTLOG_get0_public_key
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:319,1
    - Dst: SCT_CTX_set1_pubkey
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:321,1
    - Dst: SCT_get_log_entry_type
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:324,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:332,1
    - Dst: X509_PUBKEY_set
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:334,1
    - Dst: SCT_CTX_set1_issuer_pubkey
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:336,1
    - Dst: SCT_CTX_set_time
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:340,1
    - Dst: SCT_CTX_set1_cert
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:360,1
    - Dst: SCT_CTX_verify
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:363,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:369,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:370,1
    - Dst: SCT_CTX_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:371,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - sct
    - ctx
    argTypes:
    - SCT*
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 290
    functionDepth: 13
    functionLinenumber: 290
    functionLinenumberEnd: 374
    functionName: SCT_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_set
    - SCT_CTX_set_time
    - SCT_CTX_set1_cert
    - SCT_CTX_new
    - X509_PUBKEY_free
    - CTLOG_STORE_get0_log_by_id
    - X509_get0_pubkey
    - SCT_CTX_set1_issuer_pubkey
    - SCT_CTX_verify
    - SCT_CTX_free
    - CTLOG_get0_public_key
    - SCT_CTX_set1_pubkey
    - SCT_get_log_entry_type
    linkageType: ''
    returnType: int
    signature: int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_SCT_num
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:379,1
    - Dst: sk_SCT_value
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:384,1
    - Dst: SCT_validate
      Src: /src/openssl-3.0.15/crypto/ct/ct_sct.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - scts
    - ctx
    argTypes:
    - STACK_OF*
    - CT_POLICY_EVAL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 376
    functionDepth: 14
    functionLinenumber: 376
    functionLinenumberEnd: 396
    functionName: SCT_LIST_validate
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_sct.c
    functionUses: 0
    functionsReached:
    - sk_SCT_value
    - sk_SCT_num
    - SCT_validate
    linkageType: ''
    returnType: int
    signature: int SCT_LIST_validate(const STACK_OF(SCT) *scts, CT_POLICY_EVAL_CTX
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:63,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: ctlog_store_load_ctx_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CTLOG_STORE_LOAD_CTX
    signature: CTLOG_STORE_LOAD_CTX *ctlog_store_load_ctx_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CTLOG_STORE_LOAD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: ctlog_store_load_ctx_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ctlog_store_load_ctx_free(CTLOG_STORE_LOAD_CTX* ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_PUBKEY
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:86,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:89,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:91,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:95,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:98,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - log
    - pkey
    argTypes:
    - CTLOG*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 13
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: ct_v1_log_id_from_pkey
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - i2d_PUBKEY
    - ERR_raise
    - OPENSSL_free
    - EVP_MD_free
    - EVP_Digest
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int ct_v1_log_id_from_pkey(CTLOG *log, EVP_PKEY *pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:105,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:108,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:114,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:116,1
    - Dst: sk_CTLOG_new_null
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:123,1
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: CTLOG_STORE_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - CTLOG_STORE_free
    - sk_CTLOG_new_null
    - OPENSSL_strdup
    linkageType: ''
    returnType: CTLOG_STORE
    signature: CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_new_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: CTLOG_STORE_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_new_ex
    linkageType: ''
    returnType: CTLOG_STORE
    signature: CTLOG_STORE *CTLOG_STORE_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:141,1
    - Dst: sk_CTLOG_pop_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:142,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - store
    argTypes:
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: CTLOG_STORE_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - sk_CTLOG_pop_free
    linkageType: ''
    returnType: void
    signature: void CTLOG_STORE_free(CTLOG_STORE *store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:150,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:154,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:160,1
    - Dst: CTLOG_new_from_base64_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - store
    - ct_log
    - conf
    - section
    argTypes:
    - CTLOG_STORE*
    - CTLOG**
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 166
    functionName: ctlog_new_from_conf
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - CTLOG_new_from_base64_ex
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ctlog_new_from_conf(CTLOG_STORE *store, CTLOG **ct_log,\n                               const
      CONF *conf, const char *section)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_safe_getenv
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:170,1
    - Dst: CTLOG_STORE_load_file
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - store
    argTypes:
    - CTLOG_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: CTLOG_STORE_load_default_file
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTLOG_STORE_load_file
    - ossl_safe_getenv
    linkageType: ''
    returnType: int
    signature: int CTLOG_STORE_load_default_file(CTLOG_STORE *store)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:197,1
    - Dst: ctlog_new_from_conf
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:202,1
    - Dst: sk_CTLOG_push
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:214,1
    - Dst: CTLOG_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:220,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - log_name
    - log_name_len
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 184
    functionDepth: 8
    functionLinenumber: 184
    functionLinenumberEnd: 223
    functionName: ctlog_store_load_log
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - sk_CTLOG_push
    - ctlog_new_from_conf
    - ERR_raise
    - CTLOG_free
    - OPENSSL_free
    - OPENSSL_strndup
    linkageType: ''
    returnType: int
    signature: "int ctlog_store_load_log(const char *log_name, int log_name_len,\n
      \                               void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ctlog_store_load_ctx_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:229,1
    - Dst: NCONF_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:234,1
    - Dst: NCONF_load
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:238,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:239,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:243,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:245,1
    - Dst: CONF_parse_list
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:249,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:251,1
    - Dst: NCONF_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:257,1
    - Dst: ctlog_store_load_ctx_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:258,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - store
    - file
    argTypes:
    - CTLOG_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 260
    functionName: CTLOG_STORE_load_file
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - ctlog_store_load_ctx_free
    - NCONF_load
    - ERR_raise
    - CONF_parse_list
    - NCONF_free
    - NCONF_new
    - NCONF_get_string
    - ctlog_store_load_ctx_new
    linkageType: ''
    returnType: int
    signature: int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:270,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:273,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:279,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:281,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:286,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:288,1
    - Dst: ct_v1_log_id_from_pkey
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:292,1
    - Dst: CTLOG_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - public_key
    - name
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - char*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 267
    functionDepth: 14
    functionLinenumber: 267
    functionLinenumberEnd: 300
    functionName: CTLOG_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - ct_v1_log_id_from_pkey
    - CTLOG_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: CTLOG
    signature: "CTLOG *CTLOG_new_ex(EVP_PKEY *public_key, const char *name, OSSL_LIB_CTX
      *libctx,\n                    const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_new_ex
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - public_key
    - name
    argTypes:
    - EVP_PKEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 15
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: CTLOG_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached:
    - CTLOG_new_ex
    linkageType: ''
    returnType: CTLOG
    signature: CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:311,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:312,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:313,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 316
    functionName: CTLOG_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void CTLOG_free(CTLOG *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: CTLOG_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *CTLOG_get0_name(const CTLOG *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - log
    - log_id
    - log_id_len
    argTypes:
    - CTLOG*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: CTLOG_get0_log_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id,\n
      \                      size_t *log_id_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - log
    argTypes:
    - CTLOG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: CTLOG_get0_public_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_CTLOG_num
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:345,1
    - Dst: sk_CTLOG_value
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:346,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ct/ct_log.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - store
    - log_id
    - log_id_len
    argTypes:
    - CTLOG_STORE*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: CTLOG_STORE_get0_log_by_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_log.c
    functionUses: 2
    functionsReached:
    - sk_CTLOG_num
    - sk_CTLOG_value
    - memcmp
    linkageType: ''
    returnType: CTLOG
    signature: "CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store,\n                                        const
      uint8_t *log_id,\n                                        size_t log_id_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:42,1
    - Dst: SCT_get_signature_nid
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:51,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:58,1
    - Dst: SCT_set1_signature
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 68
    functionName: o2i_SCT_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_oct.c
    functionUses: 1
    functionsReached:
    - SCT_get_signature_nid
    - n2s
    - ERR_raise
    - SCT_set1_signature
    linkageType: ''
    returnType: int
    signature: int o2i_SCT_signature(SCT *sct, const unsigned char **in, size_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:76,1
    - Dst: SCT_new
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:80,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:99,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:104,1
    - Dst: n2l8
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:110,1
    - Dst: n2s
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:112,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:114,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:118,1
    - Dst: o2i_SCT_signature
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:126,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:128,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:135,1
    - Dst: SCT_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:143,1
    - Dst: SCT_free
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 151
    functionName: o2i_SCT
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - o2i_SCT_signature
    - n2s
    - SCT_free
    - n2l8
    - ERR_raise
    - OPENSSL_memdup
    - SCT_new
    linkageType: ''
    returnType: SCT
    signature: SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCT_signature_is_complete
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:159,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:164,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:180,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:182,1
    - Dst: s2n
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:190,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:191,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 198
    functionName: i2o_SCT_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - s2n
    - ERR_raise
    - OPENSSL_free
    - SCT_signature_is_complete
    linkageType: ''
    returnType: int
    signature: int i2o_SCT_signature(const SCT *sct, unsigned char **out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SCT_is_complete
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:206,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:229,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:237,1
    - Dst: l2n8
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:239,1
    - Dst: s2n
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:240,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:242,1
    - Dst: i2o_SCT_signature
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:245,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:248,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - sct
    - out
    argTypes:
    - SCT*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 255
    functionName: i2o_SCT
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - i2o_SCT_signature
    - memcpy
    - OPENSSL_malloc
    - s2n
    - ERR_raise
    - OPENSSL_free
    - SCT_is_complete
    - l2n8
    linkageType: ''
    returnType: int
    signature: int i2o_SCT(const SCT *sct, unsigned char **out)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: i2o_SCT_LIST
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:329,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:330,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:334,1
    - Dst: sk_SCT_num
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:343,1
    - Dst: i2o_SCT
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:347,1
    - Dst: sk_SCT_value
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:347,1
    - Dst: s2n
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:349,1
    - Dst: i2o_SCT
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:351,1
    - Dst: sk_SCT_value
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:351,1
    - Dst: s2n
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:362,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:370,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - a
    - pp
    argTypes:
    - STACK_OF*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 374
    functionName: i2o_SCT_LIST
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_oct.c
    functionUses: 1
    functionsReached:
    - i2o_SCT
    - OPENSSL_malloc
    - s2n
    - ERR_raise
    - sk_SCT_value
    - OPENSSL_free
    - i2o_SCT_LIST
    - sk_SCT_num
    linkageType: ''
    returnType: int
    signature: int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2o_SCT_LIST
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:401,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ct/ct_oct.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - STACK_OF*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: i2d_SCT_LIST
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_oct.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - i2d_ASN1_OCTET_STRING
    - i2o_SCT_LIST
    linkageType: ''
    returnType: int
    signature: int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ct/ct_x509v3.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - val
    argTypes:
    - X509V3_EXT_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: i2s_poison
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_x509v3.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *i2s_poison(const X509V3_EXT_METHOD *method, void *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_NULL_new
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: s2i_poison
    functionSourceFile: /src/openssl-3.0.15/crypto/ct/ct_x509v3.c
    functionUses: 0
    functionsReached:
    - ASN1_NULL_new
    linkageType: ''
    returnType: void
    signature: void *s2i_poison(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
      const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_load_ERR_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:52,1
    - Dst: ossl_err_load_BN_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:53,1
    - Dst: ossl_err_load_RSA_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:54,1
    - Dst: ossl_err_load_DH_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:56,1
    - Dst: ossl_err_load_EVP_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:58,1
    - Dst: ossl_err_load_BUF_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:59,1
    - Dst: ossl_err_load_OBJ_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:60,1
    - Dst: ossl_err_load_PEM_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:61,1
    - Dst: ossl_err_load_DSA_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:63,1
    - Dst: ossl_err_load_X509_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:65,1
    - Dst: ossl_err_load_ASN1_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:66,1
    - Dst: ossl_err_load_CONF_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:67,1
    - Dst: ossl_err_load_CRYPTO_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:68,1
    - Dst: ossl_err_load_COMP_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:70,1
    - Dst: ossl_err_load_EC_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:73,1
    - Dst: ossl_err_load_BIO_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:76,1
    - Dst: ossl_err_load_PKCS7_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:77,1
    - Dst: ossl_err_load_X509V3_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:78,1
    - Dst: ossl_err_load_PKCS12_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:79,1
    - Dst: ossl_err_load_RAND_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:80,1
    - Dst: ossl_err_load_DSO_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:81,1
    - Dst: ossl_err_load_TS_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:83,1
    - Dst: ossl_err_load_ENGINE_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:86,1
    - Dst: ossl_err_load_HTTP_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:88,1
    - Dst: ossl_err_load_OCSP_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:90,1
    - Dst: ossl_err_load_UI_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:92,1
    - Dst: ossl_err_load_CMS_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:94,1
    - Dst: ossl_err_load_CRMF_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:97,1
    - Dst: ossl_err_load_CMP_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:98,1
    - Dst: ossl_err_load_CT_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:101,1
    - Dst: ossl_err_load_ESS_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:103,1
    - Dst: ossl_err_load_ASYNC_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:104,1
    - Dst: ossl_err_load_OSSL_STORE_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:105,1
    - Dst: ossl_err_load_PROP_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:106,1
    - Dst: ossl_err_load_PROV_strings
      Src: /src/openssl-3.0.15/crypto/err/err_all.c:107,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 113
    functionName: ossl_err_load_crypto_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_all.c
    functionUses: 1
    functionsReached:
    - ossl_err_load_X509V3_strings
    - ossl_err_load_PROP_strings
    - ossl_err_load_RSA_strings
    - ossl_err_load_DSO_strings
    - ossl_err_load_BIO_strings
    - ossl_err_load_X509_strings
    - ossl_err_load_ERR_strings
    - ossl_err_load_CT_strings
    - ossl_err_load_EVP_strings
    - ossl_err_load_COMP_strings
    - ossl_err_load_BUF_strings
    - ossl_err_load_ASN1_strings
    - ossl_err_load_CMS_strings
    - ossl_err_load_CMP_strings
    - ossl_err_load_CRMF_strings
    - ossl_err_load_ESS_strings
    - ossl_err_load_PKCS7_strings
    - ossl_err_load_OSSL_STORE_strings
    - ossl_err_load_HTTP_strings
    - ossl_err_load_CRYPTO_strings
    - ossl_err_load_RAND_strings
    - ossl_err_load_OBJ_strings
    - ossl_err_load_DSA_strings
    - ossl_err_load_PEM_strings
    - ossl_err_load_PROV_strings
    - ossl_err_load_ASYNC_strings
    - ossl_err_load_PKCS12_strings
    - ossl_err_load_EC_strings
    - ossl_err_load_DH_strings
    - ossl_err_load_OCSP_strings
    - ossl_err_load_TS_strings
    - ossl_err_load_BN_strings
    - ossl_err_load_UI_strings
    - ossl_err_load_CONF_strings
    - ossl_err_load_ENGINE_strings
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_crypto_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:20,1
    - Dst: err_get_slot
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:25,1
    - Dst: err_clear
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: ERR_new
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_blocks.c
    functionUses: 1
    functionsReached:
    - err_clear
    - ossl_err_get_state_int
    - err_get_slot
    linkageType: ''
    returnType: void
    signature: void ERR_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:33,1
    - Dst: err_set_debug
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - file
    - line
    - func
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: ERR_set_debug
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_blocks.c
    functionUses: 6
    functionsReached:
    - err_set_debug
    - ossl_err_get_state_int
    linkageType: ''
    returnType: void
    signature: void ERR_set_debug(const char *file, int line, const char *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:44,1
    - Dst: ERR_vset_error
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:45,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lib
    - reason
    - fmt
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: ERR_set_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_blocks.c
    functionUses: 0
    functionsReached:
    - ERR_vset_error
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void ERR_set_error(int lib, int reason, const char *fmt, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:57,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:84,1
    - Dst: BIO_vsnprintf
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:90,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:103,1
    - Dst: err_clear_data
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:113,1
    - Dst: err_set_error
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:114,1
    - Dst: err_set_data
      Src: /src/openssl-3.0.15/crypto/err/err_blocks.c:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - lib
    - reason
    - fmt
    - args
    argTypes:
    - int
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 117
    functionName: ERR_vset_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_blocks.c
    functionUses: 2
    functionsReached:
    - err_set_data
    - OPENSSL_realloc
    - err_set_error
    - BIO_vsnprintf
    - ossl_err_get_state_int
    - err_clear_data
    linkageType: ''
    returnType: void
    signature: void ERR_vset_error(int lib, int reason, const char *fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/err/err.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: err_string_data_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_GET_LIB
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long err_string_data_hash(const ERR_STRING_DATA *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ERR_STRING_DATA*
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: err_string_data_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int err_string_data_cmp(const ERR_STRING_DATA *a,\n                               const
      ERR_STRING_DATA *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/err/err.c:193,1
    - Dst: lh_ERR_STRING_DATA_retrieve
      Src: /src/openssl-3.0.15/crypto/err/err.c:195,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/err/err.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: int_err_get_item
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - lh_ERR_STRING_DATA_retrieve
    - CRYPTO_THREAD_read_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: ERR_STRING_DATA
    signature: ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_clear
      Src: /src/openssl-3.0.15/crypto/err/err.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - ERR_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: ERR_STATE_free
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - err_clear
    linkageType: ''
    returnType: void
    signature: void ERR_STATE_free(ERR_STATE *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/err/err.c:216,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/err/err.c:218,1
    - Dst: lh_ERR_STRING_DATA_new
      Src: /src/openssl-3.0.15/crypto/err/err.c:222,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ERR_STRING_DATA_new
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(do_err_strings_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:236,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:237,1
    - Dst: lh_ERR_STRING_DATA_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 243
    functionName: err_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - lh_ERR_STRING_DATA_free
    - CRYPTO_THREAD_cleanup_local
    - CRYPTO_THREAD_lock_free
    linkageType: ''
    returnType: void
    signature: void err_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/crypto/err/err.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: err_patch
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_PACK
    linkageType: ''
    returnType: void
    signature: void err_patch(int lib, ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/err/err.c:262,1
    - Dst: lh_ERR_STRING_DATA_insert
      Src: /src/openssl-3.0.15/crypto/err/err.c:265,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/err/err.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 269
    functionName: err_load_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - lh_ERR_STRING_DATA_insert
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int err_load_strings(const ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:275,1
    - Dst: err_load_strings
      Src: /src/openssl-3.0.15/crypto/err/err.c:278,1
    - Dst: err_load_strings
      Src: /src/openssl-3.0.15/crypto/err/err.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: ossl_err_load_ERR_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - err_load_strings
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_ERR_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_load_ERR_strings
      Src: /src/openssl-3.0.15/crypto/err/err.c:287,1
    - Dst: err_patch
      Src: /src/openssl-3.0.15/crypto/err/err.c:290,1
    - Dst: err_load_strings
      Src: /src/openssl-3.0.15/crypto/err/err.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: ERR_load_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 6
    functionsReached:
    - ossl_err_load_ERR_strings
    - err_load_strings
    - err_patch
    linkageType: ''
    returnType: int
    signature: int ERR_load_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_load_ERR_strings
      Src: /src/openssl-3.0.15/crypto/err/err.c:300,1
    - Dst: err_load_strings
      Src: /src/openssl-3.0.15/crypto/err/err.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: ERR_load_strings_const
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 31
    functionsReached:
    - ossl_err_load_ERR_strings
    - err_load_strings
    linkageType: ''
    returnType: int
    signature: int ERR_load_strings_const(const ERR_STRING_DATA *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:311,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/err/err.c:314,1
    - Dst: lh_ERR_STRING_DATA_delete
      Src: /src/openssl-3.0.15/crypto/err/err.c:321,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/err/err.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - lib
    - str
    argTypes:
    - int
    - ERR_STRING_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 326
    functionName: ERR_unload_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 6
    functionsReached:
    - lh_ERR_STRING_DATA_delete
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ERR_unload_strings(int lib, ERR_STRING_DATA *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: err_free_strings_int
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void err_free_strings_int(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:340,1
    - Dst: err_clear
      Src: /src/openssl-3.0.15/crypto/err/err.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 348
    functionName: ERR_clear_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 17
    functionsReached:
    - err_clear
    - ossl_err_get_state_int
    linkageType: ''
    returnType: void
    signature: void ERR_clear_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: ERR_get_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 6
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_get_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - line
    - func
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: ERR_get_error_all
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 3
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_get_error_all(const char **file, int *line,\n                                const
      char **func,\n                                const char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: ERR_get_error_line
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_get_error_line(const char **file, int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: ERR_get_error_line_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_get_error_line_data(const char **file, int *line,\n
      \                                     const char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: ERR_peek_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 7
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: ERR_peek_error_line
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error_line(const char **file, int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: ERR_peek_error_func
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error_func(const char **func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: ERR_peek_error_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_error_data(const char **data, int *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - line
    - func
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: ERR_peek_error_all
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_peek_error_all(const char **file, int *line,\n                                 const
      char **func,\n                                 const char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: ERR_peek_error_line_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_peek_error_line_data(const char **file, int *line,\n
      \                                      const char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: ERR_peek_last_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 13
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_last_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: ERR_peek_last_error_line
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_last_error_line(const char **file, int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: ERR_peek_last_error_func
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_last_error_func(const char **func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: ERR_peek_last_error_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ERR_peek_last_error_data(const char **data, int *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - file
    - line
    - func
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: ERR_peek_last_error_all
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_peek_last_error_all(const char **file, int *line,\n
      \                                     const char **func,\n                                      const
      char **data, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_error_values
      Src: /src/openssl-3.0.15/crypto/err/err.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - file
    - line
    - data
    - flags
    argTypes:
    - char**
    - int*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: ERR_peek_last_error_line_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - get_error_values
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ERR_peek_last_error_line_data(const char **file, int
      *line,\n                                            const char **data, int *flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:454,1
    - Dst: err_clear
      Src: /src/openssl-3.0.15/crypto/err/err.c:464,1
    - Dst: err_clear
      Src: /src/openssl-3.0.15/crypto/err/err.c:471,1
    - Dst: err_clear_data
      Src: /src/openssl-3.0.15/crypto/err/err.c:509,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 6
    argNames:
    - g
    - file
    - line
    - func
    - data
    - flags
    argTypes:
    - ERR_GET_ACTION
    - char**
    - int*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 520
    functionName: get_error_values
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 16
    functionsReached:
    - err_clear
    - ossl_err_get_state_int
    - err_clear_data
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long get_error_values(ERR_GET_ACTION g,\n                                      const
      char **file, int *line,\n                                      const char **func,\n
      \                                     const char **data, int *flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/err/err.c:532,1
    - Dst: ERR_lib_error_string
      Src: /src/openssl-3.0.15/crypto/err/err.c:533,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/err/err.c:535,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/err/err.c:545,1
    - Dst: ERR_SYSTEM_ERROR
      Src: /src/openssl-3.0.15/crypto/err/err.c:547,1
    - Dst: openssl_strerror_r
      Src: /src/openssl-3.0.15/crypto/err/err.c:548,1
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/err/err.c:551,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/err/err.c:555,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/err/err.c:559,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err.c:560,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/err/err.c:562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - e
    - func
    - buf
    - len
    argTypes:
    - unsigned long
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 564
    functionName: ossl_err_string_int
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_lib_error_string
    - ERR_GET_REASON
    - BIO_snprintf
    - ERR_GET_LIB
    - ERR_reason_error_string
    - strlen
    - openssl_strerror_r
    - ERR_SYSTEM_ERROR
    linkageType: ''
    returnType: void
    signature: "void ossl_err_string_int(unsigned long e, const char *func,\n                         char
      *buf, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_string_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - buf
    - len
    argTypes:
    - unsigned long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: ERR_error_string_n
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 4
    functionsReached:
    - ossl_err_string_int
    linkageType: ''
    returnType: void
    signature: void ERR_error_string_n(unsigned long e, char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string_n
      Src: /src/openssl-3.0.15/crypto/err/err.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - e
    - ret
    argTypes:
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 576
    functionDepth: 5
    functionLinenumber: 576
    functionLinenumberEnd: 584
    functionName: ERR_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - ERR_error_string_n
    linkageType: ''
    returnType: char
    signature: char *ERR_error_string(unsigned long e, char *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:592,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/err/err.c:596,1
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/crypto/err/err.c:597,1
    - Dst: int_err_get_item
      Src: /src/openssl-3.0.15/crypto/err/err.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 603
    functionName: ERR_lib_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 3
    functionsReached:
    - ERR_PACK
    - int_err_get_item
    - RUN_ONCE
    - ERR_GET_LIB
    linkageType: ''
    returnType: char
    signature: char *ERR_lib_error_string(unsigned long e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: ERR_func_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ERR_func_error_string(unsigned long e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:618,1
    - Dst: ERR_SYSTEM_ERROR
      Src: /src/openssl-3.0.15/crypto/err/err.c:627,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/err/err.c:630,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/err/err.c:631,1
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/crypto/err/err.c:632,1
    - Dst: int_err_get_item
      Src: /src/openssl-3.0.15/crypto/err/err.c:633,1
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/crypto/err/err.c:635,1
    - Dst: int_err_get_item
      Src: /src/openssl-3.0.15/crypto/err/err.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - e
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 642
    functionName: ERR_reason_error_string
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 36
    functionsReached:
    - ERR_PACK
    - RUN_ONCE
    - ERR_GET_REASON
    - ERR_GET_LIB
    - int_err_get_item
    - ERR_SYSTEM_ERROR
    linkageType: ''
    returnType: char
    signature: char *ERR_reason_error_string(unsigned long e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:646,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:650,1
    - Dst: ERR_STATE_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: err_delete_thread_state
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ERR_STATE_free
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    linkageType: ''
    returnType: void
    signature: void err_delete_thread_state(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: ERR_remove_thread_state
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ERR_remove_thread_state(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pid
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 663
    functionName: ERR_remove_state
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ERR_remove_state(unsigned long pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_init_local
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(err_do_init)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/err/err.c:675,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/err/err.c:677,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:680,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:683,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:688,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/err/err.c:691,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:692,1
    - Dst: ossl_init_thread_start
      Src: /src/openssl-3.0.15/crypto/err/err.c:696,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:697,1
    - Dst: ERR_STATE_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:698,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:699,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/err/err.c:704,1
    - Dst: set_sys_error
      Src: /src/openssl-3.0.15/crypto/err/err.c:707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 672
    functionDepth: 7
    functionLinenumber: 672
    functionLinenumberEnd: 709
    functionName: ossl_err_get_state_int
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 5
    functionsReached:
    - CRYPTO_THREAD_set_local
    - RUN_ONCE
    - CRYPTO_THREAD_get_local
    - get_last_sys_error
    - OPENSSL_zalloc
    - ossl_init_thread_start
    - OPENSSL_init_crypto
    - set_sys_error
    - ERR_STATE_free
    linkageType: ''
    returnType: ERR_STATE
    signature: ERR_STATE *ossl_err_get_state_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 8
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: ERR_get_state
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ossl_err_get_state_int
    linkageType: ''
    returnType: ERR_STATE
    signature: ERR_STATE *ERR_get_state(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_last_sys_error
      Src: /src/openssl-3.0.15/crypto/err/err.c:725,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/err/err.c:739,1
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:742,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:745,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:746,1
    - Dst: set_sys_error
      Src: /src/openssl-3.0.15/crypto/err/err.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 751
    functionName: err_shelve_state
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_set_local
    - RUN_ONCE
    - CRYPTO_THREAD_get_local
    - get_last_sys_error
    - set_sys_error
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: int
    signature: int err_shelve_state(void **state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/crypto/err/err.c:760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 761
    functionName: err_unshelve_state
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - CRYPTO_THREAD_set_local
    linkageType: ''
    returnType: void
    signature: void err_unshelve_state(void* state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/err/err.c:767,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/err/err.c:770,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/err/err.c:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 775
    functionName: ERR_get_next_error_library
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 12
    functionsReached:
    - CRYPTO_THREAD_write_lock
    - RUN_ONCE
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int ERR_get_next_error_library(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:782,1
    - Dst: err_clear_data
      Src: /src/openssl-3.0.15/crypto/err/err.c:786,1
    - Dst: err_set_data
      Src: /src/openssl-3.0.15/crypto/err/err.c:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - size
    - flags
    - deallocate
    argTypes:
    - char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 777
    functionDepth: 8
    functionLinenumber: 777
    functionLinenumberEnd: 790
    functionName: err_set_error_data_int
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - err_set_data
    - ossl_err_get_state_int
    - err_clear_data
    linkageType: ''
    returnType: int
    signature: "int err_set_error_data_int(char *data, size_t size, int flags,\n                                  int
      deallocate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err_set_error_data_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:808,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 792
    functionDepth: 9
    functionLinenumber: 792
    functionLinenumberEnd: 809
    functionName: ERR_set_error_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - strlen
    - err_set_error_data_int
    linkageType: ''
    returnType: void
    signature: void ERR_set_error_data(char *data, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/crypto/err/err.c:814,1
    - Dst: ERR_add_error_vdata
      Src: /src/openssl-3.0.15/crypto/err/err.c:815,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/crypto/err/err.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 817
    functionName: ERR_add_error_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 20
    functionsReached:
    - va_end
    - va_start
    - ERR_add_error_vdata
    linkageType: ''
    returnType: void
    signature: void ERR_add_error_data(int num, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:827,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/err/err.c:849,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err.c:854,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/crypto/err/err.c:857,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err.c:860,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/err/err.c:865,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:867,1
    - Dst: OPENSSL_strlcat
      Src: /src/openssl-3.0.15/crypto/err/err.c:872,1
    - Dst: err_set_error_data_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:874,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err.c:875,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - num
    - args
    argTypes:
    - int
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 819
    functionDepth: 9
    functionLinenumber: 819
    functionLinenumberEnd: 876
    functionName: ERR_add_error_vdata
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 1
    functionsReached:
    - va_arg
    - OPENSSL_strlcat
    - OPENSSL_malloc
    - err_set_error_data_int
    - OPENSSL_realloc
    - OPENSSL_free
    - strlen
    - ossl_err_get_state_int
    linkageType: ''
    returnType: void
    signature: void ERR_add_error_vdata(int num, va_list args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 878
    functionDepth: 8
    functionLinenumber: 878
    functionLinenumberEnd: 890
    functionName: ERR_set_mark
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 76
    functionsReached:
    - ossl_err_get_state_int
    linkageType: ''
    returnType: int
    signature: int ERR_set_mark(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:896,1
    - Dst: err_clear
      Src: /src/openssl-3.0.15/crypto/err/err.c:902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 892
    functionDepth: 8
    functionLinenumber: 892
    functionLinenumberEnd: 910
    functionName: ERR_pop_to_mark
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 76
    functionsReached:
    - err_clear
    - ossl_err_get_state_int
    linkageType: ''
    returnType: int
    signature: int ERR_pop_to_mark(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 912
    functionDepth: 8
    functionLinenumber: 912
    functionLinenumberEnd: 931
    functionName: ERR_clear_last_mark
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 43
    functionsReached:
    - ossl_err_get_state_int
    linkageType: ''
    returnType: int
    signature: int ERR_clear_last_mark(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_err_get_state_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:938,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:948,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/crypto/err/err.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - clear
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 933
    functionDepth: 8
    functionLinenumber: 933
    functionLinenumberEnd: 951
    functionName: err_clear_last_constant_time
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err.c
    functionUses: 0
    functionsReached:
    - ossl_err_get_state_int
    - constant_time_select_int
    - constant_time_eq_int
    linkageType: ''
    returnType: void
    signature: void err_clear_last_constant_time(int clear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_current_id
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:23,1
    - Dst: ERR_get_error_all
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:28,1
    - Dst: ossl_buf2hexstr_sep
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:36,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:37,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:38,1
    - Dst: ossl_err_string_int
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:39,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:40,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:43,1
    - Dst: cb
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:44,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - u
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 47
    functionName: ERR_print_errors_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 1
    functionsReached:
    - ERR_get_error_all
    - BIO_snprintf
    - CRYPTO_THREAD_get_current_id
    - ossl_buf2hexstr_sep
    - ossl_err_string_int
    - OPENSSL_free
    - strlen
    - cb
    linkageType: ''
    returnType: void
    signature: "void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void
      *u),\n                         void *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_new
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:53,1
    - Dst: ERR_set_debug
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:54,1
    - Dst: ERR_set_error
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - lib
    - func
    - reason
    - file
    - line
    argTypes:
    - int
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: put_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 0
    functionsReached:
    - ERR_set_error
    - ERR_set_debug
    - ERR_new
    linkageType: ''
    returnType: void
    signature: "void put_error(int lib, const char *func, int reason,\n                      const
      char *file, int line)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:67,1
    - Dst: put_error
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:72,1
    - Dst: ERR_peek_last_error_all
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:81,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:86,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:90,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:93,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:97,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:109,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:111,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:114,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:123,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:127,1
    - Dst: put_error
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:129,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:129,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:133,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:133,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:137,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:138,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:140,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - separator
    - txt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 145
    functionName: ERR_add_error_txt
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 1
    functionsReached:
    - strstr
    - ERR_GET_LIB
    - ERR_peek_last_error_all
    - OPENSSL_free
    - ERR_peek_last_error
    - put_error
    - strlen
    - OPENSSL_strndup
    - ERR_add_error_data
    linkageType: ''
    returnType: void
    signature: void ERR_add_error_txt(const char *separator, const char *txt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:151,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:155,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:158,1
    - Dst: ERR_add_error_txt
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - separator
    - bio
    argTypes:
    - char*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: ERR_add_error_mem_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 2
    functionsReached:
    - BIO_write
    - ERR_add_error_txt
    - BIO_get_mem_data
    linkageType: ''
    returnType: void
    signature: void ERR_add_error_mem_bio(const char *separator, BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - bp
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 0
    functionsReached:
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int print_bio(const char *str, size_t len, void *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bp
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: ERR_print_errors
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 2
    functionsReached:
    - ERR_print_errors_cb
    linkageType: ''
    returnType: void
    signature: void ERR_print_errors(BIO *bp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:179,1
    - Dst: ERR_print_errors_cb
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:183,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/err/err_prn.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 7
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: ERR_print_errors_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_prn.c
    functionUses: 3
    functionsReached:
    - BIO_new_fp
    - BIO_free
    - ERR_print_errors_cb
    linkageType: ''
    returnType: void
    signature: void ERR_print_errors_fp(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lib
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: IMPLEMENT_LEGACY_ERR_LOAD
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_all_legacy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LEGACY_ERR_LOAD(lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lib
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: IMPLEMENT_LEGACY_ERR_LOAD
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_all_legacy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPLEMENT_LEGACY_ERR_LOAD(lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - es
    argTypes:
    - ERR_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: err_get_slot
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline err_get_slot(ERR_STATE *es)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - es
    - i
    - deall
    argTypes:
    - ERR_STATE*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: err_clear_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_local.h
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline err_clear_data(ERR_STATE *es, size_t i, int deall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - es
    - i
    - lib
    - reason
    argTypes:
    - ERR_STATE*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: err_set_error
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_local.h
    functionUses: 1
    functionsReached:
    - ERR_PACK
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline err_set_error(ERR_STATE *es, size_t i,\n                                      int
      lib, int reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:56,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:60,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:62,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - es
    - i
    - file
    - line
    - fn
    argTypes:
    - ERR_STATE*
    - size_t
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: err_set_debug
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_local.h
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline err_set_debug(ERR_STATE *es, size_t i,\n                                      const
      char *file, int line,\n                                      const char *fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - es
    - i
    - data
    - datasz
    - flags
    argTypes:
    - ERR_STATE*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: err_set_data
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_local.h
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline err_set_data(ERR_STATE *es, size_t i,\n                                     void
      *data, size_t datasz, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err_clear_data
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:86,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/err/err_local.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - es
    - i
    - deall
    argTypes:
    - ERR_STATE*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: err_clear
    functionSourceFile: /src/openssl-3.0.15/crypto/err/err_local.h
    functionUses: 5
    functionsReached:
    - OPENSSL_free
    - err_clear_data
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline err_clear(ERR_STATE *es, size_t i, int deall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:30,1
    - Dst: TS_STATUS_INFO_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:31,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:33,1
    - Dst: TS_TST_INFO_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:35,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: TS_RESP_print_bio
    functionSourceFile: /src/openssl-3.0.15/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: int TS_RESP_print_bio(BIO *bio, TS_RESP *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:75,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:76,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:77,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:80,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:82,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:83,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:85,1
    - Dst: ASN1_STRING_print_ex
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:86,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:86,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:87,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:90,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:92,1
    - Dst: ts_status_map_print
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:94,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:96,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 100
    functionName: TS_STATUS_INFO_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - sk_ASN1_UTF8STRING_value
    - BIO_puts
    - sk_ASN1_UTF8STRING_num
    - ASN1_INTEGER_get
    - ASN1_STRING_print_ex
    - ts_status_map_print
    - BIO_printf
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:108,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:110,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: ts_status_map_print
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - ASN1_BIT_STRING_get_bit
    linkageType: ''
    returnType: int
    signature: "int ts_status_map_print(BIO *bio, const struct status_map_st *a,\n
      \                              const ASN1_BIT_STRING *v)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:125,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:126,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:128,1
    - Dst: TS_OBJ_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:129,1
    - Dst: TS_MSG_IMPRINT_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:131,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:133,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:135,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:137,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:138,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:140,1
    - Dst: ASN1_GENERALIZEDTIME_print
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:141,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:142,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:144,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:146,1
    - Dst: ts_ACCURACY_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:148,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:149,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:151,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:153,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:155,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:157,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:158,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:160,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:162,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:164,1
    - Dst: i2v_GENERAL_NAME
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:165,1
    - Dst: X509V3_EXT_val_prn
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:166,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:167,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:169,1
    - Dst: TS_ext_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 118
    functionDepth: 6
    functionLinenumber: 118
    functionLinenumberEnd: 174
    functionName: TS_TST_INFO_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_print
    - ts_ACCURACY_print_bio
    - i2v_GENERAL_NAME
    - TS_OBJ_print_bio
    - sk_CONF_VALUE_pop_free
    - ASN1_INTEGER_get
    - TS_ASN1_INTEGER_print_bio
    - X509V3_EXT_val_prn
    - STACK_OF
    - TS_MSG_IMPRINT_print_bio
    - BIO_write
    - TS_ext_print_bio
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:179,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:181,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:182,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:184,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:186,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:187,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:189,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: ts_ACCURACY_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_print.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - TS_ASN1_INTEGER_print_bio
    linkageType: ''
    returnType: int
    signature: int ts_ACCURACY_print_bio(BIO *bio, const TS_ACCURACY *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_to_BN
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:25,1
    - Dst: BN_bn2hex
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:28,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:29,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:30,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:30,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:31,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bio
    - num
    argTypes:
    - BIO*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: TS_ASN1_INTEGER_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_lib.c
    functionUses: 2
    functionsReached:
    - ASN1_INTEGER_to_BN
    - BN_free
    - OPENSSL_free
    - strlen
    - BIO_write
    - BN_bn2hex
    linkageType: ''
    returnType: int
    signature: int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:42,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bio
    - obj
    argTypes:
    - BIO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: TS_OBJ_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - BIO_printf
    - OBJ_obj2txt
    linkageType: ''
    returnType: int
    signature: int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:54,1
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:55,1
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:57,1
    - Dst: X509_EXTENSION_get_object
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:58,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:59,1
    - Dst: X509_EXTENSION_get_critical
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:61,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:62,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:63,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:64,1
    - Dst: ASN1_STRING_print
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:65,1
    - Dst: X509_EXTENSION_get_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:65,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - bio
    - extensions
    argTypes:
    - BIO*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: TS_ext_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - X509V3_EXT_print
    - X509_EXTENSION_get_critical
    - ASN1_STRING_print
    - X509_EXTENSION_get_data
    - BIO_write
    - X509v3_get_ext_count
    - X509v3_get_ext
    - BIO_printf
    - X509_EXTENSION_get_object
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:76,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - alg
    argTypes:
    - BIO*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: TS_X509_ALGOR_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - OBJ_obj2nid
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_X509_ALGOR_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:84,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:86,1
    - Dst: BIO_dump_indent
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:88,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:88,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ts/ts_lib.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: TS_MSG_IMPRINT_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - TS_X509_ALGOR_print_bio
    - BIO_printf
    - BIO_dump_indent
    linkageType: ''
    returnType: int
    signature: int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: d2i_TS_MSG_IMPRINT_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bp, TS_MSG_IMPRINT **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: i2d_TS_MSG_IMPRINT_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_MSG_IMPRINT_bio(BIO *bp, const TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_MSG_IMPRINT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: d2i_TS_MSG_IMPRINT_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: i2d_TS_MSG_IMPRINT_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_MSG_IMPRINT_fp(FILE *fp, const TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: d2i_TS_REQ_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_REQ
    signature: TS_REQ *d2i_TS_REQ_bio(BIO *bp, TS_REQ **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: i2d_TS_REQ_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_REQ_bio(BIO *bp, const TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_REQ**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: d2i_TS_REQ_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_REQ
    signature: TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: i2d_TS_REQ_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_REQ_fp(FILE *fp, const TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: d2i_TS_TST_INFO_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bp, TS_TST_INFO **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: i2d_TS_TST_INFO_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_TST_INFO_bio(BIO *bp, const TS_TST_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_TST_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: d2i_TS_TST_INFO_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: i2d_TS_TST_INFO_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_TST_INFO_fp(FILE *fp, const TS_TST_INFO *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:137,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:141,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:144,1
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:145,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 156
    functionName: ts_resp_set_tst_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - TS_TST_INFO_free
    - PKCS7_to_TS_TST_INFO
    - ERR_raise
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: int ts_resp_set_tst_info(TS_RESP *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:165,1
    - Dst: ts_resp_set_tst_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - op
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 7
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: ts_resp_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ts_resp_set_tst_info
    - TS_TST_INFO_free
    linkageType: ''
    returnType: int
    signature: "int ts_resp_cb(int op, ASN1_VALUE **pval, const ASN1_ITEM *it,\n                      void
      *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_RESP**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: d2i_TS_RESP_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_bio_of
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *d2i_TS_RESP_bio(BIO *bp, TS_RESP **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_bio_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bp
    - a
    argTypes:
    - BIO*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: i2d_TS_RESP_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_bio_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_RESP_bio(BIO *bp, const TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_d2i_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_RESP**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: d2i_TS_RESP_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_d2i_fp_of
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_i2d_fp_of
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - a
    argTypes:
    - FILE*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: i2d_TS_RESP_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_i2d_fp_of
    linkageType: ''
    returnType: int
    signature: int i2d_TS_RESP_fp(FILE *fp, const TS_RESP *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:212,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:213,1
    - Dst: PKCS7_get_detached
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:217,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:222,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:223,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:228,1
    - Dst: d2i_TS_TST_INFO
      Src: /src/openssl-3.0.15/crypto/ts/ts_asn1.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - token
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 234
    functionName: PKCS7_to_TS_TST_INFO
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_asn1.c
    functionUses: 1
    functionsReached:
    - PKCS7_type_is_signed
    - d2i_TS_TST_INFO
    - OBJ_obj2nid
    - ERR_raise
    - PKCS7_get_detached
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:53,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:55,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:58,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: TS_CONF_load_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - BIO_free
    - PEM_read_bio_X509_AUX
    - ERR_raise
    linkageType: ''
    returnType: X509
    signature: X509 *TS_CONF_load_cert(const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:101,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:103,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:106,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - file
    - pass
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 6
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: TS_CONF_load_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - PEM_read_bio_PrivateKey
    - BIO_free
    - ERR_raise
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: ts_CONF_lookup_fail
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    linkageType: ''
    returnType: void
    signature: void ts_CONF_lookup_fail(const char *name, const char *tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - tag
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: ts_CONF_invalid
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    linkageType: ''
    returnType: void
    signature: void ts_CONF_invalid(const char *name, const char *tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:126,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conf
    - section
    argTypes:
    - CONF*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: TS_CONF_get_tsa_section
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_lookup_fail
    - NCONF_get_string
    linkageType: ''
    returnType: char
    signature: char *TS_CONF_get_tsa_section(CONF *conf, const char *section)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:137,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:139,1
    - Dst: TS_RESP_CTX_set_serial_cb
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - conf
    - section
    - cb
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_serial_cb
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: TS_CONF_set_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_lookup_fail
    - NCONF_get_string
    - TS_RESP_CTX_set_serial_cb
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb
      cb,\n                       TS_RESP_CTX *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:157,1
    - Dst: TS_CONF_set_default_engine
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:159,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - conf
    - section
    - device
    argTypes:
    - CONF*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: TS_CONF_set_crypto_device
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_CONF_set_default_engine
    - NCONF_get_string
    - ts_CONF_invalid
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_crypto_device(CONF *conf, const char *section,\n                              const
      char *device)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:173,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:176,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:178,1
    - Dst: ENGINE_ctrl
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:179,1
    - Dst: ENGINE_set_default
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:180,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:186,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: TS_CONF_set_default_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 1
    functionsReached:
    - ENGINE_free
    - ENGINE_by_id
    - ERR_raise_data
    - strcmp
    - ENGINE_ctrl
    - ENGINE_set_default
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_default_engine(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:201,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:203,1
    - Dst: TS_CONF_load_cert
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:207,1
    - Dst: TS_RESP_CTX_set_signer_cert
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:209,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - section
    - cert
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 216
    functionName: TS_CONF_set_signer_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_signer_cert
    - X509_free
    - ts_CONF_lookup_fail
    - NCONF_get_string
    - TS_CONF_load_cert
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_signer_cert(CONF *conf, const char *section,\n                            const
      char *cert, TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:222,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:226,1
    - Dst: TS_CONF_load_certs
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:229,1
    - Dst: TS_RESP_CTX_set_certs
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:231,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - section
    - certs
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: TS_CONF_set_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_CONF_load_certs
    - TS_RESP_CTX_set_certs
    - sk_X509_pop_free
    - STACK_OF
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_certs(CONF *conf, const char *section, const char
      *certs,\n                      TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:247,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:249,1
    - Dst: TS_CONF_load_key
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:252,1
    - Dst: TS_RESP_CTX_set_signer_key
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:254,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - conf
    - section
    - key
    - pass
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 7
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: TS_CONF_set_signer_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_signer_key
    - TS_CONF_load_key
    - EVP_PKEY_free
    - ts_CONF_lookup_fail
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_signer_key(CONF *conf, const char *section,\n                           const
      char *key, const char *pass,\n                           TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:269,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:271,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:274,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:276,1
    - Dst: TS_RESP_CTX_set_signer_digest
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conf
    - section
    - md
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 285
    functionName: TS_CONF_set_signer_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - TS_RESP_CTX_set_signer_digest
    - ts_CONF_invalid
    - ts_CONF_lookup_fail
    - NCONF_get_string
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_signer_digest(CONF *conf, const char *section,\n                              const
      char *md, TS_RESP_CTX *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:294,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:296,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:299,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:300,1
    - Dst: TS_RESP_CTX_set_def_policy
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:303,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - conf
    - section
    - policy
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: TS_CONF_set_def_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_invalid
    - ts_CONF_lookup_fail
    - TS_RESP_CTX_set_def_policy
    - NCONF_get_string
    - OBJ_txt2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_def_policy(CONF *conf, const char *section,\n                           const
      char *policy, TS_RESP_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:316,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:317,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:320,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:321,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:324,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:325,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:329,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:330,1
    - Dst: TS_RESP_CTX_add_policy
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:333,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:335,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:340,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 342
    functionName: TS_CONF_set_policies
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - TS_RESP_CTX_add_policy
    - sk_CONF_VALUE_pop_free
    - ts_CONF_invalid
    - X509V3_parse_list
    - STACK_OF
    - NCONF_get_string
    - OBJ_txt2obj
    - sk_CONF_VALUE_value
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:348,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:349,1
    - Dst: ts_CONF_lookup_fail
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:352,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:355,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:356,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:359,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:360,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:363,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:364,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:368,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:369,1
    - Dst: TS_RESP_CTX_add_md
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:372,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 380
    functionName: TS_CONF_set_digests
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - sk_CONF_VALUE_num
    - sk_CONF_VALUE_pop_free
    - ts_CONF_invalid
    - TS_RESP_CTX_add_md
    - ts_CONF_lookup_fail
    - STACK_OF
    - X509V3_parse_list
    - NCONF_get_string
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:387,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:388,1
    - Dst: X509V3_parse_list
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:390,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:391,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:394,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:395,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:396,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:398,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:399,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:401,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:402,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:404,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:406,1
    - Dst: TS_RESP_CTX_set_accuracy
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:410,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:415,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 417
    functionName: TS_CONF_set_accuracy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_accuracy
    - sk_CONF_VALUE_num
    - sk_CONF_VALUE_pop_free
    - ts_CONF_invalid
    - X509V3_parse_list
    - STACK_OF
    - strcmp
    - atoi
    - NCONF_get_string
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _CONF_get_number
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:428,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:430,1
    - Dst: TS_RESP_CTX_set_clock_precision_digits
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 440
    functionName: TS_CONF_set_clock_precision_digits
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_clock_precision_digits
    - _CONF_get_number
    - ts_CONF_invalid
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_clock_precision_digits(const CONF *conf, const char
      *section,\n                                       TS_RESP_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:445,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:448,1
    - Dst: TS_RESP_CTX_add_flags
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:449,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:450,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - conf
    - section
    - field
    - flag
    - ctx
    argTypes:
    - CONF*
    - char*
    - char*
    - int
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 457
    functionName: ts_CONF_add_flag
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - TS_RESP_CTX_add_flags
    - strcmp
    - ts_CONF_invalid
    linkageType: ''
    returnType: int
    signature: "int ts_CONF_add_flag(CONF *conf, const char *section,\n                            const
      char *field, int flag, TS_RESP_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: TS_CONF_set_ordering
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: TS_CONF_set_tsa_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_CONF_add_flag
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: TS_CONF_set_ess_cert_id_chain
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - ts_CONF_add_flag
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section,\n
      \                                 TS_RESP_CTX *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:481,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:486,1
    - Dst: ts_CONF_invalid
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:488,1
    - Dst: TS_RESP_CTX_set_ess_cert_id_digest
      Src: /src/openssl-3.0.15/crypto/ts/ts_conf.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - conf
    - section
    - ctx
    argTypes:
    - CONF*
    - char*
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 498
    functionName: TS_CONF_set_ess_cert_id_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_conf.c
    functionUses: 0
    functionsReached:
    - NCONF_get_string
    - EVP_get_digestbyname
    - ts_CONF_invalid
    - TS_RESP_CTX_set_ess_cert_id_digest
    linkageType: ''
    returnType: int
    signature: "int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section,\n
      \                                  TS_RESP_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:17,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: TS_VERIFY_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: TS_VERIFY_CTX *TS_VERIFY_CTX_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:26,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: TS_VERIFY_CTX_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - memset
    - OPENSSL_assert
    linkageType: ''
    returnType: void
    signature: void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:35,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: TS_VERIFY_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - TS_VERIFY_CTX_cleanup
    linkageType: ''
    returnType: void
    signature: void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - f
    argTypes:
    - TS_VERIFY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: TS_VERIFY_CTX_add_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - f
    argTypes:
    - TS_VERIFY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: TS_VERIFY_CTX_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - b
    argTypes:
    - TS_VERIFY_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: TS_VERIFY_CTX_set_data
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - TS_VERIFY_CTX*
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TS_VERIFY_CTX_set_store
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - hexstr
    - len
    argTypes:
    - TS_VERIFY_CTX*
    - unsigned char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: TS_VERIFY_CTX_set_imprint
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx,\n                                         unsigned
      char *hexstr, long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:84,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:85,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:87,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:89,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:90,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:92,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:94,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:96,1
    - Dst: TS_VERIFY_CTX_init
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: TS_VERIFY_CTX_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 1
    functionsReached:
    - X509_STORE_free
    - TS_VERIFY_CTX_init
    - sk_X509_pop_free
    - BIO_free_all
    - GENERAL_NAME_free
    - X509_ALGOR_free
    - OPENSSL_free
    - ASN1_INTEGER_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:110,1
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:112,1
    - Dst: TS_VERIFY_CTX_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:113,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:119,1
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:126,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:129,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:132,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:134,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:134,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:137,1
    - Dst: TS_VERIFY_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:145,1
    - Dst: TS_VERIFY_CTX_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - req
    - ctx
    argTypes:
    - TS_REQ*
    - TS_VERIFY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 149
    functionName: TS_REQ_to_TS_VERIFY_CTX
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_verify_ctx.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_dup
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - OPENSSL_assert
    - memcpy
    - OPENSSL_malloc
    - TS_VERIFY_CTX_free
    - TS_VERIFY_CTX_cleanup
    - TS_VERIFY_CTX_new
    - ASN1_INTEGER_dup
    - OBJ_dup
    linkageType: ''
    returnType: TS_VERIFY_CTX
    signature: TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:45,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:49,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:54,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:55,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - struct TS_resp_ctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: def_serial_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - TS_RESP_CTX_set_status_info
    - ERR_raise
    - ASN1_INTEGER_new
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *ctx, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:67,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:68,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:69,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - sec
    - usec
    argTypes:
    - struct TS_resp_ctx*
    - void*
    - long*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: def_time_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_add_failure_info
    - TS_RESP_CTX_set_status_info
    - ERR_raise
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: "int def_time_cb(struct TS_resp_ctx *ctx, void *data,\n                       long
      *sec, long *usec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:87,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:88,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - data
    - sec
    - usec
    argTypes:
    - struct TS_resp_ctx*
    - void*
    - long*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: def_time_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_add_failure_info
    - time
    - TS_RESP_CTX_set_status_info
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int def_time_cb(struct TS_resp_ctx *ctx, void *data,\n                       long
      *sec, long *usec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:104,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - ext
    - data
    argTypes:
    - struct TS_resp_ctx*
    - X509_EXTENSION*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: def_extension_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_add_failure_info
    - TS_RESP_CTX_set_status_info
    linkageType: ''
    returnType: int
    signature: "int def_extension_cb(struct TS_resp_ctx *ctx, X509_EXTENSION *ext,\n
      \                           void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:117,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: TS_RESP_CTX_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: TS_RESP_CTX
    signature: TS_RESP_CTX *TS_RESP_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: TS_RESP_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_new_ex
    linkageType: ''
    returnType: TS_RESP_CTX
    signature: TS_RESP_CTX *TS_RESP_CTX_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:147,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:148,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:149,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:150,1
    - Dst: sk_ASN1_OBJECT_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:151,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:152,1
    - Dst: sk_EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:153,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:154,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:155,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:156,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: TS_RESP_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - sk_X509_pop_free
    - X509_free
    - sk_EVP_MD_free
    - EVP_PKEY_free
    - OPENSSL_free
    - sk_ASN1_OBJECT_pop_free
    - ASN1_INTEGER_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_free(TS_RESP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_check_purpose
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:163,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:166,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - signer
    argTypes:
    - TS_RESP_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: TS_RESP_CTX_set_signer_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - X509_up_ref
    - X509_check_purpose
    - X509_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:174,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - TS_RESP_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: TS_RESP_CTX_set_signer_key
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_up_ref
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: TS_RESP_CTX_set_signer_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, const EVP_MD *md)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:189,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - def_policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: TS_RESP_CTX_set_def_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - OBJ_dup
    - ERR_raise
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT
      *def_policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sk_ASN1_OBJECT_new_null
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:211,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:213,1
    - Dst: sk_ASN1_OBJECT_push
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:215,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:220,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: TS_RESP_CTX_add_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - sk_ASN1_OBJECT_new_null
    - sk_ASN1_OBJECT_push
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_EVP_MD_new_null
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:228,1
    - Dst: sk_EVP_MD_push
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:230,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: TS_RESP_CTX_add_md
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_EVP_MD_new_null
    - ERR_raise
    - sk_EVP_MD_push
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: TS_RESP_CTX_accuracy_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TS_RESP_CTX_accuracy_free(ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_CTX_accuracy_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:251,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:253,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:254,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:257,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:258,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:261,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:262,1
    - Dst: TS_RESP_CTX_accuracy_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:267,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:268,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - secs
    - millis
    - micros
    argTypes:
    - TS_RESP_CTX*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 247
    functionDepth: 5
    functionLinenumber: 247
    functionLinenumberEnd: 270
    functionName: TS_RESP_CTX_set_accuracy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_new
    - ASN1_INTEGER_set
    - ERR_raise
    - TS_RESP_CTX_accuracy_free
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx,\n                             int
      secs, int millis, int micros)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - TS_RESP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: TS_RESP_CTX_add_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_serial_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: TS_RESP_CTX_set_serial_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_time_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: TS_RESP_CTX_set_time_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - cb
    - data
    argTypes:
    - TS_RESP_CTX*
    - TS_extension_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: TS_RESP_CTX_set_extension_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx,\n                                  TS_extension_cb
      cb, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TS_STATUS_INFO_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:303,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:305,1
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:308,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:309,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:309,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:312,1
    - Dst: sk_ASN1_UTF8STRING_push
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:314,1
    - Dst: TS_RESP_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:323,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:324,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:325,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - status
    - text
    argTypes:
    - TS_RESP_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 296
    functionDepth: 5
    functionLinenumber: 296
    functionLinenumberEnd: 327
    functionName: TS_RESP_CTX_set_status_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 4
    functionsReached:
    - ASN1_INTEGER_set
    - ASN1_UTF8STRING_new
    - TS_RESP_set_status_info
    - ERR_raise
    - strlen
    - TS_STATUS_INFO_new
    - TS_STATUS_INFO_free
    - sk_ASN1_UTF8STRING_new_null
    - ASN1_STRING_set
    - ASN1_UTF8STRING_free
    - sk_ASN1_UTF8STRING_push
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx,\n                                int
      status, const char *text)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:335,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - status
    - text
    argTypes:
    - TS_RESP_CTX*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 339
    functionName: TS_RESP_CTX_set_status_info_cond
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - TS_RESP_CTX_set_status_info
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx,\n                                     int
      status, const char *text)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:345,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:347,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - failure
    argTypes:
    - TS_RESP_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: TS_RESP_CTX_add_failure_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 3
    functionsReached:
    - ASN1_BIT_STRING_new
    - ERR_raise
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: TS_RESP_CTX_get_request
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_REQ
    signature: TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: TS_RESP_CTX_get_tst_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - precision
    argTypes:
    - TS_RESP_CTX*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 372
    functionName: TS_RESP_CTX_set_clock_precision_digits
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx,\n                                           unsigned
      precision)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ts_RESP_CTX_init
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:381,1
    - Dst: TS_RESP_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:383,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:384,1
    - Dst: d2i_TS_REQ_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:387,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:388,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:390,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:393,1
    - Dst: ts_RESP_check_request
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:395,1
    - Dst: ts_RESP_get_policy
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:397,1
    - Dst: ts_RESP_create_tst_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:399,1
    - Dst: ts_RESP_process_extensions
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:401,1
    - Dst: ts_RESP_sign
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:403,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:409,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:411,1
    - Dst: TS_RESP_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:415,1
    - Dst: ts_RESP_CTX_cleanup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:422,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - ctx
    - req_bio
    argTypes:
    - TS_RESP_CTX*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 375
    functionDepth: 7
    functionLinenumber: 375
    functionLinenumberEnd: 424
    functionName: TS_RESP_create_response
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - d2i_TS_REQ_bio
    - ts_RESP_get_policy
    - ts_RESP_CTX_init
    - TS_RESP_CTX_set_status_info_cond
    - ts_RESP_CTX_cleanup
    - ts_RESP_process_extensions
    - ts_RESP_sign
    - ts_RESP_create_tst_info
    - TS_RESP_CTX_set_status_info
    - ERR_raise
    - TS_RESP_new
    - TS_RESP_free
    - TS_RESP_CTX_add_failure_info
    - ts_RESP_check_request
    linkageType: ''
    returnType: TS_RESP
    signature: TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: ts_RESP_CTX_init
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ts_RESP_CTX_init(TS_RESP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:437,1
    - Dst: TS_RESP_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:439,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: ts_RESP_CTX_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_RESP_free
    - TS_TST_INFO_free
    - TS_REQ_free
    linkageType: ''
    returnType: void
    signature: void ts_RESP_CTX_cleanup(TS_RESP_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_get_version
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:456,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:457,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:459,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:465,1
    - Dst: sk_EVP_MD_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:466,1
    - Dst: sk_EVP_MD_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:467,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:468,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:472,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:475,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:479,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:480,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:483,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:487,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:488,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:490,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 446
    functionDepth: 10
    functionLinenumber: 446
    functionLinenumberEnd: 495
    functionName: ts_RESP_check_request
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - EVP_MD_get_size
    - sk_EVP_MD_value
    - OBJ_obj2txt
    - TS_RESP_CTX_set_status_info
    - TS_REQ_get_version
    - ASN1_TYPE_get
    - sk_EVP_MD_num
    - TS_RESP_CTX_add_failure_info
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: int ts_RESP_check_request(TS_RESP_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:505,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:508,1
    - Dst: sk_ASN1_OBJECT_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:512,1
    - Dst: sk_ASN1_OBJECT_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:513,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:514,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:518,1
    - Dst: TS_RESP_CTX_set_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:519,1
    - Dst: TS_RESP_CTX_add_failure_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 498
    functionDepth: 6
    functionLinenumber: 498
    functionLinenumberEnd: 524
    functionName: ts_RESP_get_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_RESP_CTX_set_status_info
    - ERR_raise
    - sk_ASN1_OBJECT_value
    - OBJ_cmp
    - TS_RESP_CTX_add_failure_info
    - sk_ASN1_OBJECT_num
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *ts_RESP_get_policy(TS_RESP_CTX *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TS_TST_INFO_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:539,1
    - Dst: TS_TST_INFO_set_version
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:541,1
    - Dst: TS_TST_INFO_set_policy_id
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:543,1
    - Dst: TS_TST_INFO_set_msg_imprint
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:545,1
    - Dst: TS_RESP_CTX*::serial_cb
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:547,1
    - Dst: TS_TST_INFO_set_serial
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:548,1
    - Dst: TS_RESP_CTX*::time_cb
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:550,1
    - Dst: TS_RESP_set_genTime_with_precision
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:552,1
    - Dst: TS_TST_INFO_set_time
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:554,1
    - Dst: TS_ACCURACY_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:558,1
    - Dst: TS_ACCURACY_set_seconds
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:560,1
    - Dst: TS_ACCURACY_set_millis
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:562,1
    - Dst: TS_ACCURACY_set_micros
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:564,1
    - Dst: TS_TST_INFO_set_accuracy
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:566,1
    - Dst: TS_TST_INFO_set_ordering
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:570,1
    - Dst: TS_TST_INFO_set_nonce
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:574,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:578,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:582,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:582,1
    - Dst: TS_TST_INFO_set_tsa
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:585,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:592,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:594,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:595,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:599,1
    - Dst: TS_ACCURACY_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:600,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:601,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:602,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 67
    argCount: 2
    argNames:
    - ctx
    - policy
    argTypes:
    - TS_RESP_CTX*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 605
    functionName: ts_RESP_create_tst_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_set_version
    - GENERAL_NAME_free
    - TS_RESP_set_genTime_with_precision
    - TS_ACCURACY_set_seconds
    - ASN1_INTEGER_free
    - TS_ACCURACY_free
    - TS_TST_INFO_set_time
    - X509_NAME_dup
    - TS_TST_INFO_set_policy_id
    - TS_ACCURACY_set_millis
    - TS_TST_INFO_set_nonce
    - TS_TST_INFO_set_serial
    - TS_TST_INFO_set_ordering
    - ERR_raise
    - TS_ACCURACY_set_micros
    - GENERAL_NAME_new
    - ASN1_GENERALIZEDTIME_free
    - TS_TST_INFO_set_msg_imprint
    - TS_TST_INFO_set_accuracy
    - TS_RESP_CTX*::time_cb
    - TS_RESP_CTX_set_status_info_cond
    - TS_ACCURACY_new
    - TS_TST_INFO_new
    - TS_TST_INFO_free
    - TS_RESP_CTX*::serial_cb
    - TS_TST_INFO_set_tsa
    - X509_get_subject_name
    linkageType: ''
    returnType: TS_TST_INFO
    signature: "TS_TST_INFO *ts_RESP_create_tst_info(TS_RESP_CTX *ctx,\n                                            ASN1_OBJECT
      *policy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:610,1
    - Dst: sk_X509_EXTENSION_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:614,1
    - Dst: sk_X509_EXTENSION_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 626
    functionName: ts_RESP_process_extensions
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - sk_X509_EXTENSION_num
    - STACK_OF
    - sk_X509_EXTENSION_value
    linkageType: ''
    returnType: int
    signature: int ts_RESP_process_extensions(TS_RESP_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:633,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:634,1
    - Dst: i2d_ESS_SIGNING_CERT
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:640,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:641,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:641,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:642,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:643,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:647,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ESS_SIGNING_CERT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 650
    functionName: ossl_ess_add1_signing_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - i2d_ESS_SIGNING_CERT
    - PKCS7_add_signed_attribute
    - OPENSSL_malloc
    - ASN1_STRING_new
    - OPENSSL_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ossl_ess_add1_signing_cert(PKCS7_SIGNER_INFO *si,\n                                      const
      ESS_SIGNING_CERT *sc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ESS_SIGNING_CERT_V2
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:656,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:657,1
    - Dst: i2d_ESS_SIGNING_CERT_V2
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:663,1
    - Dst: ASN1_STRING_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:664,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:664,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:665,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:666,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:670,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - si
    - sc
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ESS_SIGNING_CERT_V2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 673
    functionName: ossl_ess_add1_signing_cert_v2
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 0
    functionsReached:
    - i2d_ESS_SIGNING_CERT_V2
    - ASN1_STRING_free
    - PKCS7_add_signed_attribute
    - OPENSSL_malloc
    - ASN1_STRING_new
    - OPENSSL_free
    - ASN1_STRING_set
    linkageType: ''
    returnType: int
    signature: "int ossl_ess_add1_signing_cert_v2(PKCS7_SIGNER_INFO *si,\n                                         const
      ESS_SIGNING_CERT_V2 *sc)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:680,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:688,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:689,1
    - Dst: PKCS7_new_ex
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:693,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:694,1
    - Dst: PKCS7_set_type
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:697,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:699,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:703,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:705,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:706,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:707,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:713,1
    - Dst: EVP_MD_get0_provider
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:714,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:715,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:715,1
    - Dst: PKCS7_add_signature
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:720,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:722,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:726,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:727,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:729,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:735,1
    - Dst: OSSL_ESS_signing_cert_new_init
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:736,1
    - Dst: ossl_ess_add1_signing_cert
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:740,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:741,1
    - Dst: OSSL_ESS_signing_cert_v2_new_init
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:745,1
    - Dst: ossl_ess_add1_signing_cert_v2
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:750,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:751,1
    - Dst: ts_TST_INFO_content_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:756,1
    - Dst: PKCS7_dataInit
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:758,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:759,1
    - Dst: i2d_TS_TST_INFO_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:762,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:763,1
    - Dst: PKCS7_dataFinal
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:766,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:767,1
    - Dst: TS_RESP_set_tst_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:770,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:777,1
    - Dst: TS_RESP_CTX_set_status_info_cond
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:780,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:783,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:784,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:785,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:786,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TS_RESP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 675
    functionDepth: 11
    functionLinenumber: 675
    functionLinenumberEnd: 788
    functionName: ts_RESP_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ESS_SIGNING_CERT_V2_free
    - sk_X509_value
    - PKCS7_new_ex
    - PKCS7_dataFinal
    - PKCS7_set_type
    - PKCS7_dataInit
    - EVP_MD_get0_name
    - PKCS7_free
    - ossl_ess_add1_signing_cert_v2
    - BIO_free_all
    - OSSL_ESS_signing_cert_new_init
    - PKCS7_add_signature
    - i2d_TS_TST_INFO_bio
    - TS_RESP_set_tst_info
    - X509_check_private_key
    - ASN1_INTEGER_set
    - ESS_SIGNING_CERT_free
    - PKCS7_add_signed_attribute
    - OBJ_nid2obj
    - OSSL_ESS_signing_cert_v2_new_init
    - ERR_raise
    - sk_X509_num
    - PKCS7_add_certificate
    - STACK_OF
    - ts_TST_INFO_content_new
    - EVP_MD_is_a
    - ossl_ess_add1_signing_cert
    - EVP_MD_get0_provider
    - TS_RESP_CTX_set_status_info_cond
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int ts_RESP_sign(TS_RESP_CTX *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:796,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:798,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:800,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:801,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:803,1
    - Dst: PKCS7_set_content
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:807,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:812,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:813,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 815
    functionName: ts_TST_INFO_content_new
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_TYPE_new
    - ASN1_OCTET_STRING_free
    - PKCS7_new
    - OBJ_nid2obj
    - ASN1_TYPE_set
    - PKCS7_free
    - ASN1_OCTET_STRING_new
    - PKCS7_set_content
    linkageType: ''
    returnType: int
    signature: int ts_TST_INFO_content_new(PKCS7 *p7)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:830,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:840,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:845,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:846,1
    - Dst: ASN1_GENERALIZEDTIME_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:872,1
    - Dst: ASN1_GENERALIZEDTIME_set_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:874,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:875,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c:881,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - asn1_time
    - sec
    - usec
    - precision
    argTypes:
    - ASN1_GENERALIZEDTIME*
    - long
    - long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 817
    functionDepth: 6
    functionLinenumber: 817
    functionLinenumberEnd: 883
    functionName: TS_RESP_set_genTime_with_precision
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_set_string
    - BIO_snprintf
    - ERR_raise
    - ASN1_GENERALIZEDTIME_new
    - strlen
    - OPENSSL_gmtime
    - ASN1_GENERALIZEDTIME_free
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: "ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision(\n        ASN1_GENERALIZEDTIME
      *asn1_time, long sec, long usec,\n        unsigned precision)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - TS_RESP_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: TS_RESP_CTX_set_ess_cert_id_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_sign.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - version
    argTypes:
    - TS_REQ*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: TS_REQ_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_version(TS_REQ *a, long version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: TS_REQ_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long TS_REQ_get_version(const TS_REQ *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_MSG_IMPRINT_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:33,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:35,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: TS_REQ_set_msg_imprint
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - TS_MSG_IMPRINT_dup
    - TS_MSG_IMPRINT_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: TS_REQ_get_msg_imprint
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:54,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:56,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: TS_MSG_IMPRINT_set_algo
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_dup
    - ERR_raise
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: TS_MSG_IMPRINT_get_algo
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: TS_MSG_IMPRINT_set_msg
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_set
    linkageType: ''
    returnType: int
    signature: int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_MSG_IMPRINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TS_MSG_IMPRINT_get_msg
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:87,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - policy
    argTypes:
    - TS_REQ*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: TS_REQ_set_policy_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_dup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: TS_REQ_get_policy_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:108,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - nonce
    argTypes:
    - TS_REQ*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: TS_REQ_set_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: TS_REQ_get_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - cert_req
    argTypes:
    - TS_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: TS_REQ_set_cert_req
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_REQ_set_cert_req(TS_REQ *a, int cert_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: TS_REQ_get_cert_req
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_cert_req(const TS_REQ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: TS_REQ_ext_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: void TS_REQ_ext_free(TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: TS_REQ_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_count(TS_REQ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: TS_REQ_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: TS_REQ_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: TS_REQ_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: TS_REQ_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_REQ*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: TS_REQ_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: TS_REQ_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: TS_REQ_get_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_utils.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_STATUS_INFO_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:23,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:25,1
    - Dst: TS_STATUS_INFO_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: TS_RESP_set_status_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_STATUS_INFO_dup
    - TS_STATUS_INFO_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *status_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: TS_RESP_get_status_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_STATUS_INFO
    signature: TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:42,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: TS_RESP_set_tst_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_TST_INFO_free
    - PKCS7_free
    linkageType: ''
    returnType: void
    signature: void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: TS_RESP_get_token
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *TS_RESP_get_token(TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: TS_RESP_get_tst_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_TST_INFO
    signature: TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - version
    argTypes:
    - TS_TST_INFO*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: TS_TST_INFO_set_version
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_version(TS_TST_INFO *a, long version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: TS_TST_INFO_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_get
    linkageType: ''
    returnType: long
    signature: long TS_TST_INFO_get_version(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:76,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: TS_TST_INFO_set_policy_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_OBJECT_free
    - OBJ_dup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: TS_TST_INFO_get_policy_id
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_MSG_IMPRINT_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:97,1
    - Dst: TS_MSG_IMPRINT_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: TS_TST_INFO_set_msg_imprint
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_MSG_IMPRINT_dup
    - TS_MSG_IMPRINT_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: TS_TST_INFO_get_msg_imprint
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_MSG_IMPRINT
    signature: TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:116,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:118,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: TS_TST_INFO_set_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: TS_TST_INFO_get_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:137,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:139,1
    - Dst: ASN1_GENERALIZEDTIME_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: TS_TST_INFO_set_time
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_GENERALIZEDTIME_free
    - ERR_raise
    - ASN1_STRING_dup
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME
      *gtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: TS_TST_INFO_get_time
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_GENERALIZEDTIME
    signature: ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TS_ACCURACY_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:160,1
    - Dst: TS_ACCURACY_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: TS_TST_INFO_set_accuracy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - TS_ACCURACY_dup
    - TS_ACCURACY_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: TS_TST_INFO_get_accuracy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TS_ACCURACY
    signature: TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:181,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - a
    - seconds
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: TS_ACCURACY_set_seconds
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: TS_ACCURACY_get_seconds
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:201,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:203,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - millis
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: TS_ACCURACY_set_millis
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: TS_ACCURACY_get_millis
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:224,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:226,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - micros
    argTypes:
    - TS_ACCURACY*
    - ASN1_INTEGER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: TS_ACCURACY_set_micros
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_ACCURACY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: TS_ACCURACY_get_micros
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - ordering
    argTypes:
    - TS_TST_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: TS_TST_INFO_set_ordering
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: TS_TST_INFO_get_ordering
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ordering(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:257,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:259,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: TS_TST_INFO_set_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: TS_TST_INFO_get_nonce
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GENERAL_NAME_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:278,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:280,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: TS_TST_INFO_set_tsa
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 1
    functionsReached:
    - GENERAL_NAME_free
    - GENERAL_NAME_dup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: TS_TST_INFO_get_tsa
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GENERAL_NAME
    signature: GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: TS_TST_INFO_ext_free
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_pop_free
    linkageType: ''
    returnType: void
    signature: void TS_TST_INFO_ext_free(TS_TST_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_count
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: TS_TST_INFO_get_ext_count
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_count
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_count(TS_TST_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_NID
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: TS_TST_INFO_get_ext_by_NID
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_NID
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_OBJ
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: TS_TST_INFO_get_ext_by_OBJ
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_OBJ
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj,
      int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext_by_critical
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: TS_TST_INFO_get_ext_by_critical
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext_by_critical
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_get_ext
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_TST_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 329
    functionName: TS_TST_INFO_get_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_get_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_delete_ext
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - loc
    argTypes:
    - TS_TST_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: TS_TST_INFO_delete_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_delete_ext
    linkageType: ''
    returnType: X509_EXTENSION
    signature: X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509v3_add_ext
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: TS_TST_INFO_add_ext
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509v3_add_ext
    linkageType: ''
    returnType: int
    signature: int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509V3_get_d2i
      Src: /src/openssl-3.0.15/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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: TS_TST_INFO_get_ext_d2i
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - X509V3_get_d2i
    linkageType: ''
    returnType: void
    signature: void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int
      *idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - TS_STATUS_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: TS_STATUS_INFO_set_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    linkageType: ''
    returnType: int
    signature: int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: TS_STATUS_INFO_get0_status
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_INTEGER
    signature: ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: TS_STATUS_INFO_get0_text
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: 'STACK_OF *

      TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - TS_STATUS_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: TS_STATUS_INFO_get0_failure_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ASN1_BIT_STRING
    signature: ASN1_BIT_STRING *TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO
      *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TS_REQ_get_version
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:26,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:27,1
    - Dst: TS_MSG_IMPRINT_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:29,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:31,1
    - Dst: TS_REQ_get_policy_id
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:32,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:34,1
    - Dst: TS_OBJ_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:36,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:38,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:40,1
    - Dst: TS_ASN1_INTEGER_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:42,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:43,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:45,1
    - Dst: TS_ext_print_bio
      Src: /src/openssl-3.0.15/crypto/ts/ts_req_print.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - bio
    - a
    argTypes:
    - BIO*
    - TS_REQ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 18
    functionDepth: 7
    functionLinenumber: 18
    functionLinenumberEnd: 51
    functionName: TS_REQ_print_bio
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_req_print.c
    functionUses: 0
    functionsReached:
    - TS_OBJ_print_bio
    - BIO_write
    - TS_ASN1_INTEGER_print_bio
    - TS_REQ_get_version
    - TS_MSG_IMPRINT_print_bio
    - BIO_printf
    - TS_ext_print_bio
    - TS_REQ_get_policy_id
    linkageType: ''
    returnType: int
    signature: int TS_REQ_print_bio(BIO *bio, TS_REQ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:211,1
    - Dst: d2i_ESS_SIGNING_CERT
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: ossl_ess_get_signing_cert
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - PKCS7_get_signed_attribute
    - d2i_ESS_SIGNING_CERT
    linkageType: ''
    returnType: ESS_SIGNING_CERT
    signature: ESS_SIGNING_CERT *ossl_ess_get_signing_cert(const PKCS7_SIGNER_INFO
      *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:224,1
    - Dst: d2i_ESS_SIGNING_CERT_V2
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: ossl_ess_get_signing_cert_v2
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - PKCS7_get_signed_attribute
    - d2i_ESS_SIGNING_CERT_V2
    linkageType: ''
    returnType: ESS_SIGNING_CERT_V2
    signature: ESS_SIGNING_CERT_V2 *ossl_ess_get_signing_cert_v2(const PKCS7_SIGNER_INFO
      *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ess_get_signing_cert
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:234,1
    - Dst: ossl_ess_get_signing_cert_v2
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:235,1
    - Dst: OSSL_ESS_check_signing_certs
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:236,1
    - Dst: ESS_SIGNING_CERT_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:238,1
    - Dst: ESS_SIGNING_CERT_V2_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - si
    - chain
    argTypes:
    - PKCS7_SIGNER_INFO*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 13
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: ts_check_signing_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - ESS_SIGNING_CERT_V2_free
    - ESS_SIGNING_CERT_free
    - ossl_ess_get_signing_cert
    - OSSL_ESS_check_signing_certs
    - ossl_ess_get_signing_cert_v2
    linkageType: ''
    returnType: int
    signature: "int ts_check_signing_certs(const PKCS7_SIGNER_INFO *si,\n                                  const
      STACK_OF(X509) *chain)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ts_check_status_info
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:255,1
    - Dst: int_ts_RESP_verify_token
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - response
    argTypes:
    - TS_VERIFY_CTX*
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: TS_RESP_verify_response
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - ts_check_status_info
    - int_ts_RESP_verify_token
    linkageType: ''
    returnType: int
    signature: int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_to_TS_TST_INFO
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:271,1
    - Dst: int_ts_RESP_verify_token
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:274,1
    - Dst: TS_TST_INFO_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - token
    argTypes:
    - TS_VERIFY_CTX*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: TS_RESP_verify_token
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 0
    functionsReached:
    - TS_TST_INFO_free
    - int_ts_RESP_verify_token
    - PKCS7_to_TS_TST_INFO
    linkageType: ''
    returnType: int
    signature: int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TS_RESP_verify_signature
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:310,1
    - Dst: TS_TST_INFO_get_version
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:313,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:314,1
    - Dst: ts_check_policy
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:318,1
    - Dst: ts_check_imprints
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:321,1
    - Dst: ts_compute_imprint
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:325,1
    - Dst: ts_check_imprints
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:327,1
    - Dst: ts_check_nonces
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:330,1
    - Dst: ts_check_signer_name
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:333,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:334,1
    - Dst: ts_check_signer_name
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:338,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:339,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:345,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:346,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:347,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - token
    - tst_info
    argTypes:
    - TS_VERIFY_CTX*
    - PKCS7*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 349
    functionName: int_ts_RESP_verify_token
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 2
    functionsReached:
    - TS_RESP_verify_signature
    - ts_compute_imprint
    - X509_free
    - ts_check_signer_name
    - ts_check_policy
    - ERR_raise
    - X509_ALGOR_free
    - OPENSSL_free
    - ts_check_nonces
    - ts_check_imprints
    - TS_TST_INFO_get_version
    linkageType: ''
    returnType: int
    signature: "int int_ts_RESP_verify_token(TS_VERIFY_CTX *ctx,\n                                    PKCS7
      *token, TS_TST_INFO *tst_info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:354,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:363,1
    - Dst: sk_ASN1_UTF8STRING_num
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:368,1
    - Dst: ts_get_status_text
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:369,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:376,1
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:377,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:380,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:383,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:388,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:390,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - response
    argTypes:
    - TS_RESP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 351
    functionDepth: 6
    functionLinenumber: 351
    functionLinenumberEnd: 398
    functionName: ts_check_status_info
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ts_get_status_text
    - sk_ASN1_UTF8STRING_num
    - ASN1_INTEGER_get
    - ERR_raise_data
    - OPENSSL_free
    - strcpy
    - strcat
    - ASN1_BIT_STRING_get_bit
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ts_check_status_info(TS_RESP *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sk_ASN1_UTF8STRING2text
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: ts_get_status_text
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ossl_sk_ASN1_UTF8STRING2text
    linkageType: ''
    returnType: char
    signature: char *ts_get_status_text(STACK_OF(ASN1_UTF8STRING) *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:410,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req_oid
    - tst_info
    argTypes:
    - ASN1_OBJECT*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: ts_check_policy
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - OBJ_cmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int ts_check_policy(const ASN1_OBJECT *req_oid,\n                           const
      TS_TST_INFO *tst_info)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_dup
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:433,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:436,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:438,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:439,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:442,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:445,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:448,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:450,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:454,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:455,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:459,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:461,1
    - Dst: EVP_DigestInit
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:464,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:466,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:468,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:469,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:472,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:474,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:478,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:479,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:480,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:482,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 5
    argNames:
    - data
    - tst_info
    - md_alg
    - imprint
    - imprint_len
    argTypes:
    - BIO*
    - TS_TST_INFO*
    - X509_ALGOR**
    - unsigned char**
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 418
    functionDepth: 11
    functionLinenumber: 418
    functionLinenumberEnd: 486
    functionName: ts_compute_imprint
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestFinal
    - X509_ALGOR_free
    - X509_ALGOR_dup
    - EVP_MD_get_size
    - EVP_DigestInit
    - OBJ_obj2txt
    - BIO_read
    - EVP_MD_CTX_new
    - ERR_raise
    - OPENSSL_free
    - EVP_DigestUpdate
    - EVP_get_digestbyname
    - OPENSSL_malloc
    - ERR_set_mark
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int ts_compute_imprint(BIO *data, TS_TST_INFO *tst_info,\n                              X509_ALGOR
      **md_alg,\n                              unsigned char **imprint, unsigned *imprint_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:497,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:502,1
    - Dst: ASN1_TYPE_get
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:504,1
    - Dst: ASN1_STRING_length
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:508,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:509,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:509,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:512,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 514
    functionName: ts_check_imprints
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - ERR_raise
    - OBJ_cmp
    - ASN1_TYPE_get
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int ts_check_imprints(X509_ALGOR *algor_a,\n                             const
      unsigned char *imprint_a, unsigned len_a,\n                             TS_TST_INFO
      *tst_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:521,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:526,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - tst_info
    argTypes:
    - ASN1_INTEGER*
    - TS_TST_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 532
    functionName: ts_check_nonces
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_cmp
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ts_check_nonces(const ASN1_INTEGER *a, TS_TST_INFO *tst_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:540,1
    - Dst: X509_name_cmp
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:545,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:545,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:547,1
    - Dst: ts_find_name
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:549,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:556,1
    - Dst: X509_get_ext_d2i
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:557,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - tsa_name
    - signer
    argTypes:
    - GENERAL_NAME*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 562
    functionName: ts_check_signer_name
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_rsp_verify.c
    functionUses: 1
    functionsReached:
    - STACK_OF
    - X509_get_subject_name
    - GENERAL_NAMES_free
    - X509_name_cmp
    - X509_get_ext_d2i
    - ts_find_name
    linkageType: ''
    returnType: int
    signature: int ts_check_signer_name(GENERAL_NAME *tsa_name, X509 *signer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/ts/ts_err.c:84,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/ts/ts_err.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: ossl_err_load_TS_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/ts/ts_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_TS_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sk
    - c
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_compfunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: OPENSSL_sk_set_cmp_func
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPENSSL_sk_compfunc
    signature: "OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk,\n                                            OPENSSL_sk_compfunc
      c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:48,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:68,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:75,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - sk
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 78
    functionName: OPENSSL_sk_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_sk_free
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *sk)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:87,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:107,1
    - Dst: copy_func
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:114,1
    - Dst: free_func
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:117,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:124,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:125,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - sk
    - copy_func
    - free_func
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_copyfunc
    - OPENSSL_sk_freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 127
    functionName: OPENSSL_sk_deep_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - copy_func
    - OPENSSL_malloc
    - OPENSSL_sk_free
    - ERR_raise
    - OPENSSL_zalloc
    - free_func
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: "OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *sk,\n                                    OPENSSL_sk_copyfunc
      copy_func,\n                                    OPENSSL_sk_freefunc free_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_new_reserve
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: OPENSSL_sk_new_null
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_new_reserve
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_new_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_new_reserve
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - OPENSSL_sk_compfunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: OPENSSL_sk_new
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_new_reserve
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - target
    - current
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: compute_growth
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline compute_growth(int target, int current)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:180,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:195,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:196,1
    - Dst: compute_growth
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:206,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:208,1
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:215,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - st
    - n
    - exact
    argTypes:
    - OPENSSL_STACK*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 224
    functionName: sk_reserve
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    - compute_growth
    - OPENSSL_realloc
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int sk_reserve(OPENSSL_STACK *st, int n, int exact)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:228,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:231,1
    - Dst: sk_reserve
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:240,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - OPENSSL_sk_compfunc
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: OPENSSL_sk_new_reserve
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 2
    functionsReached:
    - OPENSSL_sk_free
    - sk_reserve
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OPENSSL_STACK
    signature: OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:251,1
    - Dst: sk_reserve
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - st
    - n
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: OPENSSL_sk_reserve
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - sk_reserve
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:263,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:267,1
    - Dst: sk_reserve
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:271,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - st
    - data
    - loc
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: OPENSSL_sk_insert
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memmove
    - sk_reserve
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_insert(OPENSSL_STACK *st, const void *data, int loc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - loc
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: internal_delete
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline *internal_delete(OPENSSL_STACK *st, int loc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - st
    - p
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: OPENSSL_sk_delete_ptr
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - st
    - loc
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: OPENSSL_sk_delete
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:342,1
    - Dst: ossl_bsearch
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:349,1
    - Dst: OPENSSL_STACK*::comp
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:358,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - st
    - data
    - ret_val_options
    - pnum
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 367
    functionName: internal_find
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_STACK*::comp
    - ossl_bsearch
    - qsort
    linkageType: ''
    returnType: int
    signature: "int internal_find(OPENSSL_STACK *st, const void *data,\n                         int
      ret_val_options, int *pnum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: OPENSSL_sk_find
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: OPENSSL_sk_find_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_find
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - data
    - pnum
    argTypes:
    - OPENSSL_STACK*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: OPENSSL_sk_find_all
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_find
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_find_all(OPENSSL_STACK *st, const void *data, int *pnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_insert
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 389
    functionName: OPENSSL_sk_push
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_insert
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_sk_insert
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - data
    argTypes:
    - OPENSSL_STACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: OPENSSL_sk_unshift
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_insert
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: OPENSSL_sk_shift
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_shift(OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: internal_delete
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: OPENSSL_sk_pop
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - internal_delete
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_pop(OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: OPENSSL_sk_zero
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_zero(OPENSSL_STACK *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:426,1
    - Dst: OPENSSL_sk_free
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - st
    - func
    argTypes:
    - OPENSSL_STACK*
    - OPENSSL_sk_freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 428
    functionName: OPENSSL_sk_pop_free
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - OPENSSL_sk_free
    - func
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_pop_free(OPENSSL_STACK *st, OPENSSL_sk_freefunc func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:434,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: OPENSSL_sk_free
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_free(OPENSSL_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: OPENSSL_sk_num
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_num(const OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - st
    - i
    argTypes:
    - OPENSSL_STACK*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: OPENSSL_sk_value
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:453,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - st
    - i
    - data
    argTypes:
    - OPENSSL_STACK*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 464
    functionName: OPENSSL_sk_set
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - ERR_raise_data
    - ERR_raise
    linkageType: ''
    returnType: void
    signature: void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/openssl-3.0.15/crypto/stack/stack.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 473
    functionName: OPENSSL_sk_sort
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void OPENSSL_sk_sort(OPENSSL_STACK *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - OPENSSL_STACK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: OPENSSL_sk_is_sorted
    functionSourceFile: /src/openssl-3.0.15/crypto/stack/stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/comp/comp_err.c:34,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/comp/comp_err.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: ossl_err_load_COMP_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_COMP_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - 'no'
    - size
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: zlib_zalloc
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *zlib_zalloc(void *opaque, unsigned int no, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: zlib_zfree
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void zlib_zfree(void *opaque, void *address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:126,1
    - Dst: inflateInit_
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:136,1
    - Dst: deflateInit_
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:145,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 155
    functionName: zlib_stateful_init
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - deflateInit_
    - inflateInit_
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int zlib_stateful_init(COMP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:160,1
    - Dst: deflateEnd
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:161,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: zlib_stateful_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    - OPENSSL_free
    - inflateEnd
    linkageType: ''
    returnType: void
    signature: void zlib_stateful_finish(COMP_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflate
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: zlib_stateful_compress_block
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflate
    linkageType: ''
    returnType: int
    signature: "int zlib_stateful_compress_block(COMP_CTX *ctx, unsigned char *out,\n
      \                                       unsigned int olen, unsigned char *in,\n
      \                                       unsigned int ilen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflate
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: zlib_stateful_expand_block
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflate
    linkageType: ''
    returnType: int
    signature: "int zlib_stateful_expand_block(COMP_CTX *ctx, unsigned char *out,\n
      \                                     unsigned int olen, unsigned char *in,\n
      \                                     unsigned int ilen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSO_load
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:222,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:224,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:225,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:226,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:227,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:228,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:229,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:230,1
    - Dst: DSO_bind_func
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:231,1
    - Dst: ossl_comp_zlib_cleanup
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:237,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 243
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - DSO_load
    - ossl_comp_zlib_cleanup
    - DSO_bind_func
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(ossl_comp_zlib_init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: COMP_zlib
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: COMP_METHOD
    signature: COMP_METHOD *COMP_zlib(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSO_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: ossl_comp_zlib_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 2
    functionsReached:
    - DSO_free
    linkageType: ''
    returnType: void
    signature: void ossl_comp_zlib_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: BIO_f_zlib
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_f_zlib(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:319,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:323,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:325,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:335,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 339
    functionName: bio_zlib_new
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    - OPENSSL_zalloc
    - ERR_raise
    - BIO_set_data
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int bio_zlib_new(BIO *bi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:347,1
    - Dst: inflateEnd
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:350,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:351,1
    - Dst: deflateEnd
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:355,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:358,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:359,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - bi
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 363
    functionName: bio_zlib_free
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    - BIO_get_data
    - BIO_set_data
    - OPENSSL_free
    - inflateEnd
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int bio_zlib_free(BIO *bi)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:370,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:374,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:376,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:378,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:380,1
    - Dst: inflateInit
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:383,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:384,1
    - Dst: zError
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:385,1
    - Dst: inflate
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:398,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:400,1
    - Dst: zError
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:401,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:413,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:417,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - b
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 425
    functionName: bio_zlib_read
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - inflate
    - BIO_read
    - BIO_get_data
    - OPENSSL_malloc
    - BIO_copy_next_retry
    - ERR_raise_data
    - ERR_raise
    - BIO_clear_retry_flags
    - zError
    - inflateInit
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int bio_zlib_read(BIO *b, char *out, int outl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:432,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:436,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:440,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:442,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:445,1
    - Dst: deflateInit
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:450,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:451,1
    - Dst: zError
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:452,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:464,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:468,1
    - Dst: deflate
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:488,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:490,1
    - Dst: zError
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - b
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 496
    functionName: bio_zlib_write
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - OPENSSL_malloc
    - BIO_copy_next_retry
    - ERR_raise_data
    - ERR_raise
    - BIO_clear_retry_flags
    - deflateInit
    - deflate
    - zError
    - BIO_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int bio_zlib_write(BIO *b, const char *in, int inl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:503,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:505,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:510,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:517,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:519,1
    - Dst: deflate
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:535,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:539,1
    - Dst: zError
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 545
    functionName: bio_zlib_flush
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_copy_next_retry
    - ERR_raise_data
    - BIO_clear_retry_flags
    - deflate
    - zError
    - BIO_write
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int bio_zlib_flush(BIO *b)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:552,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:556,1
    - Dst: bio_zlib_flush
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:566,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:568,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:586,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:592,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:600,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:601,1
    - Dst: BIO_copy_next_retry
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:602,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:618,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:624,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:628,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 634
    functionName: bio_zlib_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - BIO_get_data
    - BIO_ctrl
    - BIO_copy_next_retry
    - BIO_clear_retry_flags
    - OPENSSL_free
    - bio_zlib_flush
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long bio_zlib_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:638,1
    - Dst: BIO_callback_ctrl
      Src: /src/openssl-3.0.15/crypto/comp/c_zlib.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - b
    - cmd
    - fp
    argTypes:
    - BIO*
    - int
    - BIO_info_cb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 643
    functionName: bio_zlib_callback_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/c_zlib.c
    functionUses: 0
    functionsReached:
    - BIO_callback_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long bio_zlib_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:22,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:23,1
    - Dst: COMP_CTX*::meth::init
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: COMP_CTX_new
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - COMP_CTX*::meth::init
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: COMP_CTX
    signature: COMP_CTX *COMP_CTX_new(COMP_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: COMP_CTX_get_method
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: COMP_METHOD
    signature: COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: COMP_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int COMP_get_type(const COMP_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: COMP_get_name
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *COMP_get_name(const COMP_METHOD *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::finish
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:54,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: COMP_CTX_free
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - COMP_CTX*::meth::finish
    linkageType: ''
    returnType: void
    signature: void COMP_CTX_free(COMP_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::compress
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: COMP_compress_block
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::compress
    linkageType: ''
    returnType: int
    signature: "int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,\n
      \                       unsigned char *in, int ilen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COMP_CTX*::meth::expand
      Src: /src/openssl-3.0.15/crypto/comp/comp_lib.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - out
    - olen
    - in
    - ilen
    argTypes:
    - COMP_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: COMP_expand_block
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached:
    - COMP_CTX*::meth::expand
    linkageType: ''
    returnType: int
    signature: "int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,\n
      \                     unsigned char *in, int ilen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comp
    argTypes:
    - COMP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: COMP_CTX_get_type
    functionSourceFile: /src/openssl-3.0.15/crypto/comp/comp_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int COMP_CTX_get_type(const COMP_CTX* comp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:38,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:39,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:43,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:44,1
    - Dst: CAST_encrypt
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:47,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:50,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:52,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:62,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ofb64.c:63,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 67
    functionName: CAST_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/c_ofb64.c
    functionUses: 0
    functionsReached:
    - CAST_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       long length, const CAST_KEY *schedule,\n                        unsigned
      char *ivec, int *num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:39,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:41,1
    - Dst: CAST_encrypt
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:43,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:46,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:48,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:59,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:61,1
    - Dst: CAST_encrypt
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:63,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:66,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_cfb64.c:68,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: CAST_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/c_cfb64.c
    functionUses: 0
    functionsReached:
    - CAST_encrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: c2l
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: c2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: l2c
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: l2cn
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: n2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: l2nn
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: n2l
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: l2n
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: ROTL
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: ROTL
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - n
    - ','
    - key
    - ','
    - L
    - ','
    - R
    - ','
    - OP1
    - ','
    - OP2
    - ','
    - OP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: E_CAST
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_CAST(n,key,L,R,OP1,OP2,OP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - n
    - ','
    - key
    - ','
    - L
    - ','
    - R
    - ','
    - OP1
    - ','
    - OP2
    - ','
    - OP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: E_CAST
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_CAST(n,key,L,R,OP1,OP2,OP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - n
    - ','
    - key
    - ','
    - L
    - ','
    - R
    - ','
    - OP1
    - ','
    - OP2
    - ','
    - OP3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: E_CAST
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/cast_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_CAST(n,key,L,R,OP1,OP2,OP3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - A
    - ','
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: CAST_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/c_skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAST_exp(l,A,a,n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:61,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:63,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:65,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:67,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:75,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:77,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:79,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:81,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:89,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:91,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:93,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:95,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:103,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:105,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:107,1
    - Dst: CAST_exp
      Src: /src/openssl-3.0.15/crypto/cast/c_skey.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 3
    argNames:
    - key
    - len
    - data
    argTypes:
    - CAST_KEY*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 124
    functionName: CAST_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/c_skey.c
    functionUses: 1
    functionsReached:
    - CAST_exp
    linkageType: ''
    returnType: void
    signature: void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_ecb.c:25,1
    - Dst: n2l
      Src: /src/openssl-3.0.15/crypto/cast/c_ecb.c:27,1
    - Dst: CAST_encrypt
      Src: /src/openssl-3.0.15/crypto/cast/c_ecb.c:30,1
    - Dst: CAST_decrypt
      Src: /src/openssl-3.0.15/crypto/cast/c_ecb.c:32,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ecb.c:34,1
    - Dst: l2n
      Src: /src/openssl-3.0.15/crypto/cast/c_ecb.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - CAST_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: CAST_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/cast/c_ecb.c
    functionUses: 0
    functionsReached:
    - CAST_encrypt
    - CAST_decrypt
    - l2n
    - n2l
    linkageType: ''
    returnType: void
    signature: "void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     const CAST_KEY *ks, int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_bio_stream
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:20,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 8
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: i2d_PKCS7_bio_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_bio_stream
    - ASN1_ITEM_rptr
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEM_write_bio_ASN1_stream
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:26,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 10
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: PEM_write_bio_PKCS7_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - PEM_write_bio_ASN1_stream
    linkageType: ''
    returnType: int
    signature: int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:32,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:33,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:34,1
    - Dst: SMIME_write_ASN1_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:46,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:47,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:48,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - bio
    - p7
    - data
    - flags
    argTypes:
    - BIO*
    - PKCS7*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 10
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: SMIME_write_PKCS7
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ossl_pkcs7_ctx_get0_libctx
    - SMIME_write_ASN1_ex
    - ASN1_ITEM_rptr
    - OBJ_obj2nid
    - ossl_pkcs7_ctx_get0_propq
    - STACK_OF
    - ossl_pkcs7_get0_ctx
    linkageType: ''
    returnType: int
    signature: int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_ASN1_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:63,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:63,1
    - Dst: ossl_pkcs7_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - bio
    - bcont
    - p7
    argTypes:
    - BIO*
    - BIO**
    - PKCS7**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 8
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: SMIME_read_PKCS7_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - SMIME_read_ASN1_ex
    - ossl_pkcs7_resolve_libctx
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SMIME_read_PKCS7_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - bcont
    argTypes:
    - BIO*
    - BIO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 9
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: SMIME_read_PKCS7
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_mime.c
    functionUses: 0
    functionsReached:
    - SMIME_read_PKCS7_ex
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_stream
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:42,1
    - Dst: PKCS7_dataInit
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:46,1
    - Dst: PKCS7_dataFinal
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 59
    functionName: pk7_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - PKCS7_stream
    - PKCS7_dataInit
    - PKCS7_dataFinal
    linkageType: ''
    returnType: int
    signature: "int pk7_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_d2i_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:77,1
    - Dst: PKCS7_it
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:77,1
    - Dst: ossl_pkcs7_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - a
    - in
    - len
    argTypes:
    - PKCS7**
    - unsigned char**
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: d2i_PKCS7
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - ossl_pkcs7_resolve_libctx
    - ASN1_item_d2i_ex
    - PKCS7_it
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:86,1
    - Dst: PKCS7_it
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - PKCS7*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: i2d_PKCS7
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d
    - PKCS7_it
    linkageType: ''
    returnType: int
    signature: int i2d_PKCS7(const PKCS7 *a, unsigned char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:91,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: PKCS7_new
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_new
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *PKCS7_new(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_new_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:96,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:96,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:103,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:105,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - libctx
    - propq
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 112
    functionName: PKCS7_new_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 2
    functionsReached:
    - ASN1_ITEM_rptr
    - ERR_raise
    - PKCS7_free
    - OPENSSL_strdup
    - ASN1_item_new_ex
    linkageType: ''
    returnType: PKCS7
    signature: PKCS7 *PKCS7_new_ex(OSSL_LIB_CTX *libctx, const char *propq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:117,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:118,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: PKCS7_free
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 5
    functionsReached:
    - ASN1_ITEM_rptr
    - OPENSSL_free
    - ASN1_item_free
    linkageType: ''
    returnType: void
    signature: void PKCS7_free(PKCS7 *p7)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: si_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: "int si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: ri_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_asn1.c
    functionUses: 0
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: int
    signature: "int ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                void *exarg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 45
    functionName: PKCS7_type_is_other
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    linkageType: ''
    returnType: int
    signature: int PKCS7_type_is_other(PKCS7 *p7)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:49,1
    - Dst: PKCS7_type_is_other
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: PKCS7_get_octet_string
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_other
    - PKCS7_type_is_data
    linkageType: ''
    returnType: ASN1_OCTET_STRING
    signature: ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:65,1
    - Dst: BIO_f_md
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:65,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:66,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:70,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:72,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:73,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:73,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:74,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:78,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:82,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:85,1
    - Dst: BIO_set_md
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:88,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:89,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:92,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:96,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - pbio
    - alg
    - ctx
    argTypes:
    - BIO**
    - X509_ALGOR*
    - PKCS7_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 57
    functionDepth: 11
    functionLinenumber: 57
    functionLinenumberEnd: 106
    functionName: pkcs7_bio_add_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - BIO_push
    - ossl_pkcs7_ctx_get0_libctx
    - BIO_new
    - OBJ_obj2txt
    - EVP_get_digestbyname
    - BIO_free
    - ossl_pkcs7_ctx_get0_propq
    - ERR_set_mark
    - ERR_raise
    - BIO_f_md
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - BIO_set_md
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int pkcs7_bio_add_digest(BIO **pbio, X509_ALGOR *alg,\n                                const
      PKCS7_CTX *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:118,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:122,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:122,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:123,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:127,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:130,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:133,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:136,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:140,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:143,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:150,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - ri
    - key
    - keylen
    argTypes:
    - PKCS7_RECIP_INFO*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 108
    functionDepth: 6
    functionLinenumber: 108
    functionLinenumberEnd: 153
    functionName: pkcs7_encode_rinfo
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - ossl_pkcs7_ctx_get0_libctx
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - EVP_PKEY_encrypt_init
    - ossl_pkcs7_ctx_get0_propq
    - ERR_raise
    - OPENSSL_free
    - EVP_PKEY_CTX_free
    - EVP_PKEY_encrypt
    - ASN1_STRING_set0
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: "int pkcs7_encode_rinfo(PKCS7_RECIP_INFO *ri,\n                              unsigned
      char *key, int keylen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:165,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:165,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:166,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:170,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:173,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:180,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:189,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:195,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:200,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:202,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 5
    argNames:
    - pek
    - peklen
    - ri
    - pkey
    - fixlen
    argTypes:
    - unsigned char**
    - int*
    - PKCS7_RECIP_INFO*
    - EVP_PKEY*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 205
    functionName: pkcs7_decrypt_rinfo
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - ossl_pkcs7_ctx_get0_libctx
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - ossl_pkcs7_ctx_get0_propq
    - ERR_raise
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - OPENSSL_clear_free
    - OPENSSL_free
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: "int pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen,\n                               PKCS7_RECIP_INFO
      *ri, EVP_PKEY *pkey,\n                               size_t fixlen)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:215,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:225,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:228,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:229,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:230,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:243,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:247,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:253,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:261,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:270,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:281,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:285,1
    - Dst: pkcs7_bio_add_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:286,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:286,1
    - Dst: pkcs7_bio_add_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:289,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:298,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:298,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:299,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:302,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:303,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:304,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:305,1
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:305,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:307,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:310,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:311,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:312,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:314,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:320,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:323,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:326,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:328,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:333,1
    - Dst: EVP_CIPHER_param_to_asn1
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:337,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:342,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:343,1
    - Dst: pkcs7_encode_rinfo
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:344,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:347,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:352,1
    - Dst: PKCS7_is_detached
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:357,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:358,1
    - Dst: BIO_s_null
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:358,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:360,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:362,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:362,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:365,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:371,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:377,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:378,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:379,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 141
    argCount: 2
    argNames:
    - p7
    - bio
    argTypes:
    - PKCS7*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 207
    functionDepth: 12
    functionLinenumber: 207
    functionLinenumberEnd: 381
    functionName: PKCS7_dataInit
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_get_key_length
    - PKCS7_is_detached
    - OBJ_obj2nid
    - sk_X509_ALGOR_value
    - OPENSSL_cleanse
    - EVP_CIPHER_get_type
    - sk_PKCS7_RECIP_INFO_num
    - BIO_s_mem
    - ossl_pkcs7_ctx_get0_libctx
    - BIO_new
    - BIO_free_all
    - BIO_f_cipher
    - BIO_s_null
    - EVP_CipherInit_ex
    - EVP_CIPHER_get_iv_length
    - EVP_CIPHER_param_to_asn1
    - pkcs7_encode_rinfo
    - BIO_push
    - RAND_bytes_ex
    - sk_PKCS7_RECIP_INFO_value
    - EVP_CIPHER_free
    - PKCS7_get_octet_string
    - OBJ_nid2obj
    - BIO_get_cipher_ctx
    - ossl_pkcs7_ctx_get0_propq
    - pkcs7_bio_add_digest
    - ERR_raise
    - EVP_CIPHER_get0_name
    - STACK_OF
    - ossl_pkcs7_get0_ctx
    - EVP_CIPHER_fetch
    - EVP_CIPHER_CTX_rand_key
    - ASN1_TYPE_new
    - BIO_set_mem_eof_return
    - BIO_new_mem_buf
    - ERR_set_mark
    - ERR_pop_to_mark
    - sk_X509_ALGOR_num
    linkageType: ''
    returnType: BIO
    signature: BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:386,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:387,1
    - Dst: ASN1_INTEGER_cmp
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:390,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ri
    - pcert
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: pkcs7_cmp_ri
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - X509_get_issuer_name
    - ASN1_INTEGER_cmp
    - X509_get0_serialNumber
    linkageType: ''
    returnType: int
    signature: int pkcs7_cmp_ri(PKCS7_RECIP_INFO *ri, X509 *pcert)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:407,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:408,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:418,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:422,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:423,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:424,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:427,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:431,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:442,1
    - Dst: PKCS7_is_detached
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:443,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:444,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:456,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:458,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:459,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:463,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:466,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:467,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:470,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:477,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:479,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:480,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:484,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:487,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:488,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:491,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:494,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:500,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:506,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:507,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:508,1
    - Dst: BIO_f_md
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:508,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:509,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:513,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:515,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:516,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:520,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:523,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:524,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:527,1
    - Dst: BIO_set_md
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:529,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:530,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:531,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:534,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:538,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:544,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:544,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:545,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:560,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:561,1
    - Dst: pkcs7_cmp_ri
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:562,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:567,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:579,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:580,1
    - Dst: pkcs7_decrypt_rinfo
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:582,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:583,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:585,1
    - Dst: pkcs7_decrypt_rinfo
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:590,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:592,1
    - Dst: BIO_get_cipher_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:596,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:597,1
    - Dst: EVP_CIPHER_asn1_to_param
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:599,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:602,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:606,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:609,1
    - Dst: EVP_CIPHER_CTX_get_key_length
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:617,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:623,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:625,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:632,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:633,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:636,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:638,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:644,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:651,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:653,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:653,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:656,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:661,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:663,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:667,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:668,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:669,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:670,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:671,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:672,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:673,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 217
    argCount: 4
    argNames:
    - p7
    - pkey
    - in_bio
    - pcert
    argTypes:
    - PKCS7*
    - EVP_PKEY*
    - BIO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 395
    functionDepth: 11
    functionLinenumber: 395
    functionLinenumberEnd: 675
    functionName: PKCS7_dataDecode
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CIPHER_get_key_length
    - PKCS7_is_detached
    - OBJ_obj2nid
    - sk_X509_ALGOR_value
    - pkcs7_cmp_ri
    - sk_PKCS7_RECIP_INFO_num
    - BIO_s_mem
    - ossl_pkcs7_ctx_get0_libctx
    - BIO_new
    - BIO_free_all
    - BIO_f_cipher
    - EVP_CIPHER_CTX_get_key_length
    - OPENSSL_clear_free
    - EVP_CipherInit_ex
    - BIO_set_md
    - BIO_push
    - sk_PKCS7_RECIP_INFO_value
    - OBJ_obj2txt
    - pkcs7_decrypt_rinfo
    - EVP_CIPHER_free
    - PKCS7_get_octet_string
    - BIO_get_cipher_ctx
    - ossl_pkcs7_ctx_get0_propq
    - ERR_clear_error
    - ERR_raise
    - STACK_OF
    - ossl_pkcs7_get0_ctx
    - EVP_CIPHER_fetch
    - EVP_CIPHER_CTX_rand_key
    - BIO_set_mem_eof_return
    - EVP_get_digestbyname
    - OPENSSL_malloc
    - EVP_get_cipherbyname
    - BIO_new_mem_buf
    - ERR_set_mark
    - ERR_pop_to_mark
    - BIO_f_md
    - sk_X509_ALGOR_num
    - ERR_clear_last_mark
    - EVP_CIPHER_asn1_to_param
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: BIO
    signature: BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509
      *pcert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_find_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:680,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:682,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:685,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:687,1
    - Dst: EVP_MD_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:690,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pmd
    - bio
    - nid
    argTypes:
    - EVP_MD_CTX**
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: PKCS7_find_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - BIO_find_type
    - EVP_MD_CTX_get_type
    - ERR_raise
    - BIO_get_md_ctx
    - BIO_next
    linkageType: ''
    returnType: BIO
    signature: BIO *PKCS7_find_digest(EVP_MD_CTX **pmd, BIO *bio, int nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:703,1
    - Dst: PKCS7_add0_attrib_signing_time
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:704,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:705,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:711,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:712,1
    - Dst: PKCS7_add1_attrib_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:715,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:716,1
    - Dst: PKCS7_SIGNER_INFO_sign
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - si
    - mctx
    argTypes:
    - PKCS7_SIGNER_INFO*
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 725
    functionName: do_pkcs7_signed_attrib
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - PKCS7_add1_attrib_digest
    - ERR_raise
    - PKCS7_get_signed_attribute
    - EVP_DigestFinal_ex
    - PKCS7_add0_attrib_signing_time
    - PKCS7_SIGNER_INFO_sign
    linkageType: ''
    returnType: int
    signature: int do_pkcs7_signed_attrib(PKCS7_SIGNER_INFO *si, EVP_MD_CTX *mctx)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:734,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:735,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:740,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:744,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:747,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:751,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:753,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:757,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:769,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:771,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:781,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:783,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:791,1
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:793,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:794,1
    - Dst: PKCS7_get_octet_string
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:801,1
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:803,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:804,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:811,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:816,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:817,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:821,1
    - Dst: PKCS7_find_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:825,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:833,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:842,1
    - Dst: do_pkcs7_signed_attrib
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:843,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:848,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:849,1
    - Dst: EVP_SignFinal_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:853,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:854,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:855,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:856,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:857,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:860,1
    - Dst: PKCS7_find_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:866,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:867,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:869,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:871,1
    - Dst: PKCS7_is_detached
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:875,1
    - Dst: BIO_find_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:885,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:887,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:890,1
    - Dst: BIO_set_flags
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:895,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:896,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:897,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:902,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 138
    argCount: 2
    argNames:
    - p7
    - bio
    argTypes:
    - PKCS7*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 727
    functionDepth: 8
    functionLinenumber: 727
    functionLinenumberEnd: 904
    functionName: PKCS7_dataFinal
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - EVP_MD_CTX_free
    - PKCS7_is_detached
    - OBJ_obj2nid
    - ASN1_STRING_set0
    - EVP_SignFinal_ex
    - BIO_find_type
    - ossl_pkcs7_ctx_get0_libctx
    - EVP_MD_CTX_copy_ex
    - sk_PKCS7_SIGNER_INFO_value
    - PKCS7_get_octet_string
    - EVP_PKEY_get_size
    - EVP_MD_CTX_new
    - ossl_pkcs7_ctx_get0_propq
    - ERR_raise
    - PKCS7_type_is_data
    - ASN1_OCTET_STRING_new
    - STACK_OF
    - OPENSSL_free
    - EVP_DigestFinal_ex
    - sk_PKCS7_SIGNER_INFO_num
    - PKCS7_find_digest
    - BIO_get_mem_data
    - ossl_pkcs7_get0_ctx
    - BIO_set_mem_eof_return
    - sk_X509_ATTRIBUTE_num
    - ASN1_OCTET_STRING_free
    - OPENSSL_malloc
    - ASN1_OCTET_STRING_set
    - BIO_set_flags
    - do_pkcs7_signed_attrib
    linkageType: ''
    returnType: int
    signature: int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyobj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:916,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:920,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:922,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:926,1
    - Dst: EVP_MD_get0_name
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:926,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:927,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:928,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:932,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:933,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:936,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:938,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:940,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:942,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:945,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:948,1
    - Dst: ASN1_STRING_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:950,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:955,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:956,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - si
    argTypes:
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 906
    functionDepth: 8
    functionLinenumber: 906
    functionLinenumberEnd: 958
    functionName: PKCS7_SIGNER_INFO_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 1
    functionsReached:
    - EVP_get_digestbyobj
    - EVP_DigestSignFinal
    - EVP_MD_CTX_free
    - ossl_pkcs7_ctx_get0_libctx
    - ASN1_ITEM_rptr
    - OPENSSL_malloc
    - EVP_MD_CTX_new
    - ossl_pkcs7_ctx_get0_propq
    - EVP_MD_get0_name
    - ERR_raise
    - ASN1_item_i2d
    - OPENSSL_free
    - EVP_DigestSignInit_ex
    - ASN1_STRING_set0
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:965,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:969,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:974,1
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:978,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:980,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:983,1
    - Dst: X509_find_by_issuer_and_serial
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:989,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:993,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:998,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:999,1
    - Dst: X509_STORE_CTX_set_purpose
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1002,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1003,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1005,1
    - Dst: PKCS7_signatureVerify
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1009,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 5
    argNames:
    - cert_store
    - ctx
    - bio
    - p7
    - si
    argTypes:
    - X509_STORE*
    - X509_STORE_CTX*
    - BIO*
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 960
    functionDepth: 9
    functionLinenumber: 960
    functionLinenumberEnd: 1012
    functionName: PKCS7_dataVerify
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - PKCS7_type_is_signed
    - X509_find_by_issuer_and_serial
    - PKCS7_signatureVerify
    - X509_STORE_CTX_init
    - PKCS7_type_is_signedAndEnveloped
    - ERR_raise
    - STACK_OF
    - X509_STORE_CTX_set_purpose
    linkageType: ''
    returnType: int
    signature: "int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx,
      BIO *bio,\n                     PKCS7 *p7, PKCS7_SIGNER_INFO *si)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1023,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1026,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1027,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1028,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1030,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1032,1
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1036,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1036,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1037,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1041,1
    - Dst: BIO_find_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1046,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1047,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1050,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1052,1
    - Dst: EVP_MD_CTX_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1055,1
    - Dst: EVP_MD_get_pkey_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1061,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1061,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1063,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1070,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1074,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1080,1
    - Dst: PKCS7_digest_from_attributes
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1082,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1084,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1088,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1089,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1094,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1095,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1095,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1100,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1102,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1103,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1106,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1108,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1109,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1111,1
    - Dst: EVP_VerifyUpdate
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1115,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1118,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1122,1
    - Dst: EVP_VerifyFinal_ex
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1128,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1130,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1136,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1137,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 96
    argCount: 4
    argNames:
    - bio
    - p7
    - si
    - x509
    argTypes:
    - BIO*
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1014
    functionDepth: 11
    functionLinenumber: 1014
    functionLinenumberEnd: 1139
    functionName: PKCS7_signatureVerify
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 1
    functionsReached:
    - EVP_MD_CTX_free
    - PKCS7_type_is_signed
    - EVP_VerifyFinal_ex
    - OBJ_obj2nid
    - ASN1_item_i2d
    - EVP_MD_CTX_get_type
    - EVP_MD_get_pkey_type
    - EVP_MD_CTX_get0_md
    - PKCS7_digest_from_attributes
    - BIO_find_type
    - ossl_pkcs7_ctx_get0_libctx
    - EVP_MD_CTX_copy_ex
    - EVP_VerifyInit_ex
    - X509_get0_pubkey
    - OBJ_nid2sn
    - EVP_MD_fetch
    - memcmp
    - BIO_get_md_ctx
    - PKCS7_type_is_signedAndEnveloped
    - EVP_MD_CTX_new
    - ossl_pkcs7_ctx_get0_propq
    - ERR_raise
    - OPENSSL_free
    - STACK_OF
    - EVP_DigestFinal_ex
    - EVP_VerifyUpdate
    - ossl_pkcs7_get0_ctx
    - sk_X509_ATTRIBUTE_num
    - ASN1_ITEM_rptr
    - ERR_set_mark
    - EVP_get_digestbynid
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - EVP_MD_free
    - BIO_next
    linkageType: ''
    returnType: int
    signature: "int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,\n
      \                         X509 *x509)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1143,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1147,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1155,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p7
    - idx
    argTypes:
    - PKCS7*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1159
    functionName: PKCS7_get_issuer_and_serial
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - sk_PKCS7_RECIP_INFO_value
    - OBJ_obj2nid
    - STACK_OF
    - sk_PKCS7_RECIP_INFO_num
    linkageType: ''
    returnType: PKCS7_ISSUER_AND_SERIAL
    signature: PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int
      idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - nid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1164
    functionName: PKCS7_get_signed_attribute
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 3
    functionsReached:
    - get_attribute
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS7_get_signed_attribute(const PKCS7_SIGNER_INFO *si,
      int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - si
    - nid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1169
    functionName: PKCS7_get_attribute
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - get_attribute
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *PKCS7_get_attribute(const PKCS7_SIGNER_INFO *si, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509at_get_attr_by_NID
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1175,1
    - Dst: X509at_get_attr
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1176,1
    - Dst: X509_ATTRIBUTE_get0_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sk
    - nid
    argTypes:
    - STACK_OF*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1178
    functionName: get_attribute
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 2
    functionsReached:
    - X509_ATTRIBUTE_get0_type
    - X509at_get_attr_by_NID
    - X509at_get_attr
    linkageType: ''
    returnType: ASN1_TYPE
    signature: ASN1_TYPE *get_attribute(const STACK_OF(X509_ATTRIBUTE) *sk, int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p7si
    - nid
    - atrtype
    - value
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1230
    functionName: PKCS7_add_signed_attribute
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 3
    functionsReached:
    - add_attribute
    linkageType: ''
    returnType: int
    signature: "int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int
      atrtype,\n                               void *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c:1235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p7si
    - nid
    - atrtype
    - value
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1236
    functionName: PKCS7_add_attribute
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_doit.c
    functionUses: 0
    functionsReached:
    - add_attribute
    linkageType: ''
    returnType: int
    signature: "int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,\n
      \                       void *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_get_signed_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:92,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:95,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - si
    - coid
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: PKCS7_add_attrib_content_type
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - PKCS7_get_signed_attribute
    - PKCS7_add_signed_attribute
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT
      *coid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_gmtime_adj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:105,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:108,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - si
    - t
    argTypes:
    - PKCS7_SIGNER_INFO*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: PKCS7_add0_attrib_signing_time
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c
    functionUses: 1
    functionsReached:
    - ASN1_TIME_free
    - X509_gmtime_adj
    - ERR_raise
    - PKCS7_add_signed_attribute
    linkageType: ''
    returnType: int
    signature: int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME
      *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:120,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:123,1
    - Dst: PKCS7_add_signed_attribute
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:124,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - si
    - md
    - mdlen
    argTypes:
    - PKCS7_SIGNER_INFO*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: PKCS7_add1_attrib_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_attr.c
    functionUses: 1
    functionsReached:
    - ASN1_OCTET_STRING_new
    - ASN1_STRING_set
    - ASN1_OCTET_STRING_free
    - PKCS7_add_signed_attribute
    linkageType: ''
    returnType: int
    signature: "int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si,\n                             const
      unsigned char *md, int mdlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_dataInit
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:80,1
    - Dst: SMIME_crlf_copy
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:84,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:87,1
    - Dst: PKCS7_dataFinal
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:89,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:90,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - p7
    - data
    - flags
    argTypes:
    - PKCS7*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 13
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: PKCS7_final
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - BIO_flush
    - PKCS7_dataFinal
    - BIO_free_all
    - PKCS7_dataInit
    - SMIME_crlf_copy
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int PKCS7_final(PKCS7 *p7, BIO *data, int flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:122,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:124,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:125,1
    - Dst: PKCS7_add_signature
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:130,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:131,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:135,1
    - Dst: PKCS7_add_certificate
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:137,1
    - Dst: PKCS7_add_attrib_content_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:142,1
    - Dst: sk_X509_ALGOR_new_null
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:146,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:147,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:150,1
    - Dst: add_digest_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:151,1
    - Dst: add_digest_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:152,1
    - Dst: add_digest_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:153,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:154,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:155,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:156,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:157,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:158,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:159,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:160,1
    - Dst: add_cipher_smcap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:161,1
    - Dst: PKCS7_add_attrib_smimecap
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:162,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:164,1
    - Dst: pkcs7_copy_existing_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:168,1
    - Dst: PKCS7_SIGNER_INFO_sign
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:171,1
    - Dst: sk_X509_ALGOR_pop_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:177,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 46
    argCount: 5
    argNames:
    - p7
    - signcert
    - pkey
    - md
    - flags
    argTypes:
    - PKCS7*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 117
    functionDepth: 9
    functionLinenumber: 117
    functionLinenumberEnd: 179
    functionName: PKCS7_sign_add_signer
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - pkcs7_copy_existing_digest
    - X509_check_private_key
    - PKCS7_add_attrib_content_type
    - ERR_raise
    - add_cipher_smcap
    - sk_X509_ALGOR_pop_free
    - sk_X509_ALGOR_new_null
    - PKCS7_add_certificate
    - STACK_OF
    - add_digest_smcap
    - PKCS7_SIGNER_INFO_sign
    - PKCS7_add_signature
    - PKCS7_add_attrib_smimecap
    - ossl_pkcs7_get0_ctx
    linkageType: ''
    returnType: PKCS7_SIGNER_INFO
    signature: "PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert,\n
      \                                        EVP_PKEY *pkey, const EVP_MD *md,\n
      \                                        int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:189,1
    - Dst: PKCS7_get_signer_info
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:192,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:193,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:194,1
    - Dst: sk_X509_ATTRIBUTE_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:197,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:199,1
    - Dst: PKCS7_digest_from_attributes
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:200,1
    - Dst: PKCS7_add1_attrib_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - p7
    - si
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 211
    functionName: pkcs7_copy_existing_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c
    functionUses: 1
    functionsReached:
    - sk_X509_ATTRIBUTE_num
    - PKCS7_add1_attrib_digest
    - ERR_raise
    - OBJ_cmp
    - STACK_OF
    - PKCS7_get_signer_info
    - sk_PKCS7_SIGNER_INFO_value
    - sk_PKCS7_SIGNER_INFO_num
    - PKCS7_digest_from_attributes
    linkageType: ''
    returnType: int
    signature: int pkcs7_copy_existing_digest(PKCS7 *p7, PKCS7_SIGNER_INFO *si)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:502,1
    - Dst: PKCS7_type_is_enveloped
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:506,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:507,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:511,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:512,1
    - Dst: PKCS7_dataDecode
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:517,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:518,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:525,1
    - Dst: BIO_f_buffer
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:525,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:526,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:527,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:530,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:531,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:532,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:533,1
    - Dst: SMIME_text
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:536,1
    - Dst: BIO_method_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:537,1
    - Dst: BIO_get_cipher_status
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:538,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:541,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:544,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:545,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:549,1
    - Dst: BIO_method_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:552,1
    - Dst: BIO_get_cipher_status
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:553,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:559,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:564,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c:565,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 5
    argNames:
    - p7
    - pkey
    - cert
    - data
    - flags
    argTypes:
    - PKCS7*
    - EVP_PKEY*
    - X509*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 495
    functionDepth: 12
    functionLinenumber: 495
    functionLinenumberEnd: 567
    functionName: PKCS7_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_smime.c
    functionUses: 0
    functionsReached:
    - X509_check_private_key
    - BIO_new
    - BIO_read
    - BIO_free_all
    - BIO_method_type
    - OPENSSL_malloc
    - BIO_write
    - ERR_raise
    - PKCS7_type_is_enveloped
    - PKCS7_dataDecode
    - OPENSSL_free
    - BIO_get_cipher_status
    - SMIME_text
    - BIO_f_buffer
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data,
      int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:25,1
    - Dst: PKCS7_type_is_data
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:32,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:35,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:53,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:60,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - p7
    - cmd
    - larg
    - parg
    argTypes:
    - PKCS7*
    - int
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 64
    functionName: PKCS7_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_data
    - OBJ_obj2nid
    - ASN1_OCTET_STRING_free
    - ERR_raise
    linkageType: ''
    returnType: long
    signature: long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:70,1
    - Dst: PKCS7_set_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:72,1
    - Dst: PKCS7_set_content
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:74,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - p7
    - type
    argTypes:
    - PKCS7*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: PKCS7_content_new
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_new
    - PKCS7_set_content
    - PKCS7_set_type
    - PKCS7_free
    linkageType: ''
    returnType: int
    signature: int PKCS7_content_new(PKCS7 *p7, int type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:87,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:90,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - p7
    - p7_data
    argTypes:
    - PKCS7*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: PKCS7_set_content
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - ERR_raise
    - PKCS7_free
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:117,1
    - Dst: PKCS7_SIGNED_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:122,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:124,1
    - Dst: PKCS7_SIGNED_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:125,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:132,1
    - Dst: PKCS7_SIGN_ENVELOPE_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:137,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:140,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:143,1
    - Dst: PKCS7_ENVELOPE_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:147,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:150,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:152,1
    - Dst: PKCS7_ENCRYPT_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:156,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:159,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:161,1
    - Dst: PKCS7_DIGEST_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:166,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:169,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:173,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 2
    argNames:
    - p7
    - type
    argTypes:
    - PKCS7*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 179
    functionName: PKCS7_set_type
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 3
    functionsReached:
    - ASN1_INTEGER_set
    - PKCS7_SIGNED_new
    - OBJ_nid2obj
    - ERR_raise
    - PKCS7_DIGEST_new
    - ASN1_OCTET_STRING_new
    - PKCS7_ENVELOPE_new
    - PKCS7_SIGN_ENVELOPE_new
    - PKCS7_SIGNED_free
    - PKCS7_ENCRYPT_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_type(PKCS7 *p7, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p7
    - type
    - other
    argTypes:
    - PKCS7*
    - int
    - ASN1_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: PKCS7_set0_type_other
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    linkageType: ''
    returnType: int
    signature: int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:193,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:194,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:196,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:207,1
    - Dst: sk_X509_ALGOR_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:214,1
    - Dst: sk_X509_ALGOR_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:215,1
    - Dst: OBJ_cmp
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:216,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:224,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:225,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:226,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:227,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:234,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:235,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:237,1
    - Dst: sk_X509_ALGOR_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:239,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:240,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:245,1
    - Dst: sk_PKCS7_SIGNER_INFO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:246,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - p7
    - psi
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 249
    functionName: PKCS7_add_signer
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - sk_X509_ALGOR_push
    - sk_PKCS7_SIGNER_INFO_push
    - OBJ_nid2obj
    - OBJ_obj2nid
    - sk_X509_ALGOR_value
    - ERR_raise
    - X509_ALGOR_free
    - OBJ_cmp
    - STACK_OF
    - sk_X509_ALGOR_num
    - ossl_pkcs7_get0_ctx
    - OBJ_dup
    - X509_ALGOR_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *psi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:254,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:256,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:265,1
    - Dst: ossl_x509_add_cert_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p7
    - x509
    argTypes:
    - PKCS7*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: PKCS7_add_certificate
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - OBJ_obj2nid
    - STACK_OF
    - ERR_raise
    - ossl_x509_add_cert_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_certificate(PKCS7 *p7, X509 *x509)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:275,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:277,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:286,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:291,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:293,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:297,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:298,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - p7
    - crl
    argTypes:
    - PKCS7*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: PKCS7_add_crl
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - sk_X509_CRL_push
    - OBJ_obj2nid
    - ERR_raise
    - X509_CRL_up_ref
    - STACK_OF
    - sk_X509_CRL_new_null
    - X509_CRL_free
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:313,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:316,1
    - Dst: OBJ_find_sigid_by_algs
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:319,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:319,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:321,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - si
    - verify
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 324
    functionName: pkcs7_ecdsa_or_dsa_sign_verify_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - PKCS7_SIGNER_INFO_get0_algs
    - OBJ_nid2obj
    - OBJ_obj2nid
    - EVP_PKEY_get_id
    - OBJ_find_sigid_by_algs
    linkageType: ''
    returnType: int
    signature: "int pkcs7_ecdsa_or_dsa_sign_verify_setup(PKCS7_SIGNER_INFO *si,\n
      \                                               int verify)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_SIGNER_INFO_get0_algs
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:331,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:333,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - si
    - verify
    argTypes:
    - PKCS7_SIGNER_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 336
    functionName: pkcs7_rsa_sign_verify_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - X509_ALGOR_set0
    - PKCS7_SIGNER_INFO_get0_algs
    linkageType: ''
    returnType: int
    signature: int pkcs7_rsa_sign_verify_setup(PKCS7_SIGNER_INFO *si, int verify)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:344,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:346,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:347,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:354,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:356,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:356,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:360,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:365,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:365,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:365,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:368,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:368,1
    - Dst: pkcs7_ecdsa_or_dsa_sign_verify_setup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:369,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:370,1
    - Dst: pkcs7_rsa_sign_verify_setup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:371,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:374,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:378,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:382,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 4
    argNames:
    - p7i
    - x509
    - pkey
    - dgst
    argTypes:
    - PKCS7_SIGNER_INFO*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 385
    functionName: PKCS7_SIGNER_INFO_set
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - X509_ALGOR_set0
    - EVP_PKEY_up_ref
    - OBJ_nid2obj
    - pkcs7_ecdsa_or_dsa_sign_verify_setup
    - pkcs7_rsa_sign_verify_setup
    - ERR_raise
    - X509_get_issuer_name
    - EVP_PKEY*::ameth::pkey_ctrl
    - X509_get0_serialNumber
    - EVP_MD_get_type
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - X509_NAME_set
    - EVP_PKEY_is_a
    linkageType: ''
    returnType: int
    signature: "int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY
      *pkey,\n                          const EVP_MD *dgst)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:394,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:396,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:398,1
    - Dst: PKCS7_SIGNER_INFO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:403,1
    - Dst: PKCS7_SIGNER_INFO_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:405,1
    - Dst: PKCS7_add_signer
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:407,1
    - Dst: PKCS7_SIGNER_INFO_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:411,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - p7
    - x509
    - pkey
    - dgst
    argTypes:
    - PKCS7*
    - X509*
    - EVP_PKEY*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 387
    functionDepth: 11
    functionLinenumber: 387
    functionLinenumberEnd: 413
    functionName: PKCS7_add_signature
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached:
    - PKCS7_SIGNER_INFO_free
    - PKCS7_SIGNER_INFO_set
    - ERR_raise
    - EVP_PKEY_get_default_digest_nid
    - EVP_get_digestbynid
    - PKCS7_add_signer
    - PKCS7_SIGNER_INFO_new
    linkageType: ''
    returnType: PKCS7_SIGNER_INFO
    signature: "PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, EVP_PKEY
      *pkey,\n                                       const EVP_MD *dgst)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:419,1
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: pkcs7_get_signer_certs
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_signed
    - PKCS7_type_is_signedAndEnveloped
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *pkcs7_get_signer_certs(const PKCS7 *p7)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signedAndEnveloped
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:430,1
    - Dst: PKCS7_type_is_enveloped
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: pkcs7_get_recipient_info
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_signedAndEnveloped
    - PKCS7_type_is_enveloped
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *pkcs7_get_recipient_info(const PKCS7 *p7)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:444,1
    - Dst: ossl_pkcs7_ctx_get0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:445,1
    - Dst: ossl_pkcs7_ctx_get0_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:446,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:447,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:448,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:449,1
    - Dst: pkcs7_get_recipient_info
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:454,1
    - Dst: PKCS7_get_signer_info
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:455,1
    - Dst: pkcs7_get_signer_certs
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:456,1
    - Dst: sk_X509_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:458,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:459,1
    - Dst: sk_X509_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:459,1
    - Dst: sk_PKCS7_RECIP_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:461,1
    - Dst: sk_PKCS7_RECIP_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:462,1
    - Dst: ossl_x509_set0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:464,1
    - Dst: sk_PKCS7_SIGNER_INFO_num
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:467,1
    - Dst: sk_PKCS7_SIGNER_INFO_value
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 473
    functionName: ossl_pkcs7_resolve_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 4
    functionsReached:
    - ossl_x509_set0_libctx
    - ossl_pkcs7_ctx_get0_libctx
    - sk_X509_value
    - sk_PKCS7_RECIP_INFO_value
    - ossl_pkcs7_ctx_get0_propq
    - pkcs7_get_recipient_info
    - sk_X509_num
    - STACK_OF
    - PKCS7_get_signer_info
    - sk_PKCS7_RECIP_INFO_num
    - sk_PKCS7_SIGNER_INFO_value
    - sk_PKCS7_SIGNER_INFO_num
    - pkcs7_get_signer_certs
    - ossl_pkcs7_get0_ctx
    linkageType: ''
    returnType: void
    signature: void ossl_pkcs7_resolve_libctx(PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p7
    argTypes:
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: ossl_pkcs7_get0_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: PKCS7_CTX
    signature: PKCS7_CTX *ossl_pkcs7_get0_ctx(const PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p7
    - ctx
    argTypes:
    - PKCS7*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: ossl_pkcs7_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_pkcs7_set0_libctx(PKCS7 *p7, OSSL_LIB_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:488,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:492,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p7
    - propq
    argTypes:
    - PKCS7*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: ossl_pkcs7_set1_propq
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_pkcs7_set1_propq(PKCS7 *p7, const char *propq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_pkcs7_set0_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:503,1
    - Dst: ossl_pkcs7_set1_propq
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:504,1
    - Dst: ossl_pkcs7_resolve_libctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - PKCS7*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 509
    functionName: ossl_pkcs7_ctx_propagate
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - ossl_pkcs7_set1_propq
    - ossl_pkcs7_resolve_libctx
    - ossl_pkcs7_set0_libctx
    linkageType: ''
    returnType: int
    signature: int ossl_pkcs7_ctx_propagate(const PKCS7 *from, PKCS7 *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - PKCS7_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: ossl_pkcs7_ctx_get0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_pkcs7_ctx_get0_libctx(const PKCS7_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - PKCS7_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: ossl_pkcs7_ctx_get0_propq
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_pkcs7_ctx_get0_propq(const PKCS7_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_digest
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:522,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:523,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:524,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:528,1
    - Dst: EVP_MD_nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:528,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p7
    - md
    argTypes:
    - PKCS7*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 534
    functionName: PKCS7_set_digest
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - ASN1_TYPE_new
    - OBJ_nid2obj
    - EVP_MD_nid
    - ERR_raise
    - PKCS7_type_is_digest
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md)
  - BBCount: 4
    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**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 557
    functionName: PKCS7_SIGNER_INFO_get0_algs
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk,\n
      \                                X509_ALGOR **pdig, X509_ALGOR **psig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ri
    - penc
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509_ALGOR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: PKCS7_RECIP_INFO_get0_alg
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_RECIP_INFO_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:569,1
    - Dst: PKCS7_RECIP_INFO_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:571,1
    - Dst: PKCS7_add_recipient_info
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:573,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:575,1
    - Dst: PKCS7_RECIP_INFO_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - p7
    - x509
    argTypes:
    - PKCS7*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 580
    functionName: PKCS7_add_recipient
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_RECIP_INFO_set
    - PKCS7_RECIP_INFO_new
    - PKCS7_RECIP_INFO_free
    - PKCS7_add_recipient_info
    - ossl_pkcs7_get0_ctx
    linkageType: ''
    returnType: PKCS7_RECIP_INFO
    signature: PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:585,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:587,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:596,1
    - Dst: sk_PKCS7_RECIP_INFO_push
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p7
    - ri
    argTypes:
    - PKCS7*
    - PKCS7_RECIP_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: PKCS7_add_recipient_info
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - STACK_OF
    - sk_PKCS7_RECIP_INFO_push
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_RECIP_INFO_get0_alg
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:610,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:612,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ri
    - decrypt
    argTypes:
    - PKCS7_RECIP_INFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 5
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: pkcs7_rsa_encrypt_decrypt_setup
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - X509_ALGOR_set0
    - PKCS7_RECIP_INFO_get0_alg
    linkageType: ''
    returnType: int
    signature: int pkcs7_rsa_encrypt_decrypt_setup(PKCS7_RECIP_INFO *ri, int decrypt)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:621,1
    - Dst: X509_NAME_set
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:623,1
    - Dst: X509_get_issuer_name
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:624,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:627,1
    - Dst: ASN1_INTEGER_dup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:629,1
    - Dst: X509_get0_serialNumber
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:629,1
    - Dst: X509_get0_pubkey
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:632,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:636,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:638,1
    - Dst: pkcs7_rsa_encrypt_decrypt_setup
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:639,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:645,1
    - Dst: EVP_PKEY*::ameth::pkey_ctrl
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:650,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:652,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:657,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:661,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - p7i
    - x509
    argTypes:
    - PKCS7_RECIP_INFO*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 617
    functionDepth: 6
    functionLinenumber: 617
    functionLinenumberEnd: 668
    functionName: PKCS7_RECIP_INFO_set
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set
    - X509_up_ref
    - pkcs7_rsa_encrypt_decrypt_setup
    - ERR_raise
    - X509_get_issuer_name
    - EVP_PKEY*::ameth::pkey_ctrl
    - X509_get0_serialNumber
    - ASN1_INTEGER_dup
    - ASN1_INTEGER_free
    - X509_NAME_set
    - EVP_PKEY_is_a
    - X509_get0_pubkey
    linkageType: ''
    returnType: int
    signature: int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKCS7_type_is_signed
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:672,1
    - Dst: X509_find_by_issuer_and_serial
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p7
    - si
    argTypes:
    - PKCS7*
    - PKCS7_SIGNER_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 679
    functionName: PKCS7_cert_from_signer_info
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - PKCS7_type_is_signed
    - X509_find_by_issuer_and_serial
    linkageType: ''
    returnType: X509
    signature: X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:686,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:695,1
    - Dst: EVP_CIPHER_get_type
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:700,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:702,1
    - Dst: ossl_pkcs7_get0_ctx
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - p7
    - cipher
    argTypes:
    - PKCS7*
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 709
    functionName: PKCS7_set_cipher
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ossl_pkcs7_get0_ctx
    - ERR_raise
    - EVP_CIPHER_get_type
    linkageType: ''
    returnType: int
    signature: int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:716,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:724,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c:732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - boundary
    - p7
    argTypes:
    - unsigned char***
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 753
    functionName: PKCS7_stream
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pk7_lib.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - ASN1_OCTET_STRING_new
    linkageType: ''
    returnType: int
    signature: int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_NDEF
      Src: /src/openssl-3.0.15/crypto/pkcs7/bio_pk7.c:23,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/pkcs7/bio_pk7.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - p7
    argTypes:
    - BIO*
    - PKCS7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 7
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: BIO_new_PKCS7
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/bio_pk7.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - BIO_new_NDEF
    linkageType: ''
    returnType: BIO
    signature: BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/pkcs7/pkcs7err.c:94,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/pkcs7/pkcs7err.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: ossl_err_load_PKCS7_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/pkcs7/pkcs7err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_PKCS7_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sn_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sn_cmp(const ASN1_OBJECT *const *a, const unsigned int *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ln_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ln_cmp(const ASN1_OBJECT *const *a, const unsigned int *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:71,1
    - Dst: OPENSSL_LH_strhash
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ca
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: added_obj_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OPENSSL_LH_strhash
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long added_obj_hash(const ADDED_OBJ *ca)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:103,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:110,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ca
    - cb
    argTypes:
    - ADDED_OBJ*
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 124
    functionName: added_obj_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - strcmp
    - memcmp
    linkageType: ''
    returnType: int
    signature: int added_obj_cmp(const ADDED_OBJ *ca, const ADDED_OBJ *cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_new
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: init_added
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - lh_ADDED_OBJ_new
    linkageType: ''
    returnType: int
    signature: int init_added(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: cleanup1_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup1_doall(ADDED_OBJ *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: cleanup2_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup2_doall(ADDED_OBJ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - ADDED_OBJ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: cleanup3_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: void
    signature: void cleanup3_doall(ADDED_OBJ *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lh_ADDED_OBJ_set_down_load
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:157,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:158,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:159,1
    - Dst: lh_ADDED_OBJ_doall
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:160,1
    - Dst: lh_ADDED_OBJ_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: ossl_obj_cleanup_int
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached:
    - lh_ADDED_OBJ_free
    - lh_ADDED_OBJ_set_down_load
    - lh_ADDED_OBJ_doall
    linkageType: ''
    returnType: void
    signature: void ossl_obj_cleanup_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: OBJ_new_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int OBJ_new_nid(int num)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_added
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:181,1
    - Dst: OBJ_dup
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:183,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:185,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:188,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:191,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:194,1
    - Dst: lh_ADDED_OBJ_insert
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:215,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:216,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 218
    functionName: OBJ_add_object
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - lh_ADDED_OBJ_insert
    - init_added
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - OBJ_dup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int OBJ_add_object(const ASN1_OBJECT *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:227,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:234,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:242,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: OBJ_nid2obj
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 89
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ADDED_OBJ_retrieve
    - ERR_raise
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OBJ_nid2obj(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:257,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:264,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:272,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 278
    functionName: OBJ_nid2sn
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 37
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ADDED_OBJ_retrieve
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OBJ_nid2sn(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:287,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:294,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 308
    functionName: OBJ_nid2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 14
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ADDED_OBJ_retrieve
    - ERR_raise
    linkageType: ''
    returnType: char
    signature: char *OBJ_nid2ln(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ap
    - bp
    argTypes:
    - ASN1_OBJECT**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 322
    functionName: obj_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int obj_cmp(const ASN1_OBJECT *const *ap, const unsigned int *bp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:340,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:345,1
    - Dst: OBJ_bsearch_obj
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - a
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 353
    functionName: OBJ_obj2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 116
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_obj
    linkageType: ''
    returnType: int
    signature: int OBJ_obj2nid(const ASN1_OBJECT *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:372,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:373,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:374,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:375,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:376,1
    - Dst: a2d_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:382,1
    - Dst: ASN1_object_size
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:391,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:395,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:396,1
    - Dst: ASN1_put_object
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:402,1
    - Dst: a2d_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:404,1
    - Dst: d2i_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:407,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - s
    - no_name
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 410
    functionName: OBJ_txt2obj
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 15
    functionsReached:
    - ASN1_put_object
    - OPENSSL_malloc
    - OBJ_nid2obj
    - a2d_ASN1_OBJECT
    - ERR_raise
    - OPENSSL_free
    - OBJ_ln2nid
    - d2i_ASN1_OBJECT
    - ossl_isdigit
    - ASN1_object_size
    - OBJ_sn2nid
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:418,1
    - Dst: DECIMAL_SIZE
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:418,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:427,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:429,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:431,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:434,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:435,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:474,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:481,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:483,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:488,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:499,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:517,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:520,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:527,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:538,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:540,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:541,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:543,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:557,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:561,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 123
    argCount: 4
    argNames:
    - buf
    - buf_len
    - a
    - no_name
    argTypes:
    - char*
    - int
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 563
    functionName: OBJ_obj2txt
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 30
    functionsReached:
    - OBJ_nid2ln
    - BN_sub_word
    - BN_new
    - BN_lshift
    - BIO_snprintf
    - OBJ_obj2nid
    - BN_free
    - OBJ_nid2sn
    - OPENSSL_free
    - strlen
    - DECIMAL_SIZE
    - OPENSSL_strlcpy
    - BN_bn2dec
    - BN_set_word
    - BN_add_word
    linkageType: ''
    returnType: int
    signature: int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:569,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:570,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 565
    functionDepth: 7
    functionLinenumber: 565
    functionLinenumberEnd: 573
    functionName: OBJ_txt2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 4
    functionsReached:
    - OBJ_obj2nid
    - OBJ_txt2obj
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: int
    signature: int OBJ_txt2nid(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:583,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:589,1
    - Dst: OBJ_bsearch_ln
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 597
    functionName: OBJ_ln2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 5
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_ln
    linkageType: ''
    returnType: int
    signature: int OBJ_ln2nid(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:607,1
    - Dst: lh_ADDED_OBJ_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:613,1
    - Dst: OBJ_bsearch_sn
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 621
    functionName: OBJ_sn2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 8
    functionsReached:
    - OPENSSL_init_crypto
    - lh_ADDED_OBJ_retrieve
    - OBJ_bsearch_sn
    linkageType: ''
    returnType: int
    signature: int OBJ_sn2nid(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_bsearch_ex_
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - base
    - num
    - size
    argTypes:
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: OBJ_bsearch_
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - OBJ_bsearch_ex_
    linkageType: ''
    returnType: void
    signature: "void *OBJ_bsearch_(const void *key, const void *base, int num, int
      size,\n                         int (*cmp) (const void *, const void *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_bsearch
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - key
    - base
    - num
    - size
    - flags
    argTypes:
    - void*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 657
    functionName: OBJ_bsearch_ex_
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached:
    - ossl_bsearch
    linkageType: ''
    returnType: void
    signature: "void *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: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:671,1
    - Dst: ossl_isalnum
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:675,1
    - Dst: ossl_isdigit
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:678,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:682,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:688,1
    - Dst: ossl_isspace
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:692,1
    - Dst: OBJ_create
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:706,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - in
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 710
    functionName: OBJ_create_objects
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 0
    functionsReached:
    - ossl_isspace
    - OBJ_create
    - ossl_isalnum
    - BIO_gets
    - ossl_isdigit
    linkageType: ''
    returnType: int
    signature: int OBJ_create_objects(BIO *in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:718,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:719,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:720,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:725,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:730,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:731,1
    - Dst: OBJ_new_nid
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:735,1
    - Dst: OBJ_add_object
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:742,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_dat.c:748,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - oid
    - sn
    - ln
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 712
    functionDepth: 7
    functionLinenumber: 712
    functionLinenumberEnd: 750
    functionName: OBJ_create
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 3
    functionsReached:
    - OBJ_add_object
    - OBJ_obj2nid
    - OBJ_new_nid
    - ERR_raise
    - OBJ_ln2nid
    - OBJ_txt2obj
    - ASN1_OBJECT_free
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: int OBJ_create(const char *oid, const char *sn, const char *ln)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    functionName: OBJ_length
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OBJ_length(const ASN1_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 764
    functionName: OBJ_get0_data
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_dat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/objects/obj_err.c:30,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/objects/obj_err.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: ossl_err_load_OBJ_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_OBJ_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple*
    - nid_triple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: sig_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sig_cmp(const nid_triple *a, const nid_triple *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple**
    - nid_triple**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: sig_sk_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sig_sk_cmp(const nid_triple *const *a, const nid_triple *const
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nid_triple**
    - nid_triple**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: sigx_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigx_cmp(const nid_triple *const *a, const nid_triple *const *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_find
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:50,1
    - Dst: sk_nid_triple_value
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:51,1
    - Dst: OBJ_bsearch_sig
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:55,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - signid
    - pdig_nid
    - ppkey_nid
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: OBJ_find_sigid_algs
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 10
    functionsReached:
    - OBJ_bsearch_sig
    - sk_nid_triple_value
    - sk_nid_triple_find
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_find
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:77,1
    - Dst: sk_nid_triple_value
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:79,1
    - Dst: OBJ_bsearch_sigx
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:85,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: OBJ_find_sigid_by_algs
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 5
    functionsReached:
    - OBJ_bsearch_sigx
    - sk_nid_triple_value
    - sk_nid_triple_find
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_new
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:99,1
    - Dst: sk_nid_triple_new
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:103,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:107,1
    - Dst: sk_nid_triple_push
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:115,1
    - Dst: sk_nid_triple_push
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:119,1
    - Dst: sk_nid_triple_sort
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:122,1
    - Dst: sk_nid_triple_sort
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - signid
    - dig_id
    - pkey_id
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: OBJ_add_sigid
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 1
    functionsReached:
    - sk_nid_triple_push
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - sk_nid_triple_sort
    - sk_nid_triple_new
    linkageType: ''
    returnType: int
    signature: int OBJ_add_sigid(int signid, int dig_id, int pkey_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tt
    argTypes:
    - nid_triple*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: sid_free
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void sid_free(nid_triple *tt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_nid_triple_pop_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:135,1
    - Dst: sk_nid_triple_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_xref.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: OBJ_sigid_free
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_xref.c
    functionUses: 1
    functionsReached:
    - sk_nid_triple_pop_free
    - sk_nid_triple_free
    linkageType: ''
    returnType: void
    signature: void OBJ_sigid_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:53,1
    - Dst: lh_OBJ_NAME_new
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:55,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: DEFINE_RUN_ONCE_STATIC
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - lh_OBJ_NAME_new
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_lock_new
    linkageType: ''
    returnType: void
    signature: void DEFINE_RUN_ONCE_STATIC(o_names_init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUN_ONCE
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OBJ_NAME_init
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - RUN_ONCE
    linkageType: ''
    returnType: int
    signature: int OBJ_NAME_init(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:75,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:78,1
    - Dst: sk_NAME_FUNCS_new_null
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:82,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:89,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:92,1
    - Dst: sk_NAME_FUNCS_push
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:98,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:102,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:107,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 118
    functionName: OBJ_NAME_new_index
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_push
    - sk_NAME_FUNCS_num
    - sk_NAME_FUNCS_new_null
    - sk_NAME_FUNCS_value
    - OPENSSL_zalloc
    - OBJ_NAME_init
    - ERR_raise
    - OPENSSL_free
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:127,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:128,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - OBJ_NAME*
    - OBJ_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: obj_name_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_value
    - sk_NAME_FUNCS_num
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int obj_name_cmp(const OBJ_NAME *a, const OBJ_NAME *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:141,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:143,1
    - Dst: ossl_lh_strcasehash
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - OBJ_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: obj_name_hash
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - ossl_lh_strcasehash
    - sk_NAME_FUNCS_value
    - sk_NAME_FUNCS_num
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long obj_name_hash(const OBJ_NAME *a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:160,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:162,1
    - Dst: lh_OBJ_NAME_retrieve
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:172,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 187
    functionName: OBJ_NAME_get
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 8
    functionsReached:
    - lh_OBJ_NAME_retrieve
    - CRYPTO_THREAD_unlock
    - CRYPTO_THREAD_read_lock
    - OBJ_NAME_init
    linkageType: ''
    returnType: char
    signature: char *OBJ_NAME_get(const char *name, int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:194,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:200,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:210,1
    - Dst: lh_OBJ_NAME_insert
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:214,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:218,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:227,1
    - Dst: lh_OBJ_NAME_error
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:229,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:231,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - name
    - type
    - data
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 241
    functionName: OBJ_NAME_add
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - sk_NAME_FUNCS_num
    - OPENSSL_malloc
    - sk_NAME_FUNCS_value
    - OBJ_NAME_init
    - OPENSSL_free
    - lh_OBJ_NAME_insert
    - lh_OBJ_NAME_error
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int OBJ_NAME_add(const char *name, int type, const char *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_init
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:248,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:251,1
    - Dst: lh_OBJ_NAME_delete
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:257,1
    - Dst: sk_NAME_FUNCS_num
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:261,1
    - Dst: sk_NAME_FUNCS_value
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:266,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:270,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 276
    functionName: OBJ_NAME_remove
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - sk_NAME_FUNCS_num
    - sk_NAME_FUNCS_value
    - OBJ_NAME_init
    - OPENSSL_free
    - lh_OBJ_NAME_delete
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int OBJ_NAME_remove(const char *name, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_DOALL*::fn
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - name
    - d
    argTypes:
    - OBJ_NAME*
    - OBJ_DOALL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: do_all_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OBJ_DOALL*::fn
    linkageType: ''
    returnType: void
    signature: void do_all_fn(const OBJ_NAME *name, OBJ_DOALL *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_doall_OBJ_DOALL
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: OBJ_NAME_do_all
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 3
    functionsReached:
    - lh_OBJ_NAME_doall_OBJ_DOALL
    linkageType: ''
    returnType: void
    signature: "void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void
      *arg),\n                     void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - d_
    argTypes:
    - OBJ_NAME*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: do_all_sorted_fn
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_all_sorted_fn(const OBJ_NAME *name, void *d_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n1_
    - n2_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: do_all_sorted_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int do_all_sorted_cmp(const void *n1_, const void *n2_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:337,1
    - Dst: lh_OBJ_NAME_num_items
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:337,1
    - Dst: OBJ_NAME_do_all
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:341,1
    - Dst: qsort
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:343,1
    - Dst: fn
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:346,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: OBJ_NAME_do_all_sorted
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 2
    functionsReached:
    - OBJ_NAME_do_all
    - OPENSSL_malloc
    - lh_OBJ_NAME_num_items
    - OPENSSL_free
    - fn
    - qsort
    linkageType: ''
    returnType: void
    signature: "void OBJ_NAME_do_all_sorted(int type,\n                            void
      (*fn) (const OBJ_NAME *, void *arg),\n                            void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_NAME_remove
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - onp
    argTypes:
    - OBJ_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: names_lh_free_doall
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OBJ_NAME_remove
    linkageType: ''
    returnType: void
    signature: void names_lh_free_doall(OBJ_NAME *onp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - NAME_FUNCS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: name_funcs_free
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void name_funcs_free(NAME_FUNCS *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lh_OBJ_NAME_get_down_load
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:376,1
    - Dst: lh_OBJ_NAME_set_down_load
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:377,1
    - Dst: lh_OBJ_NAME_doall
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:379,1
    - Dst: lh_OBJ_NAME_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:381,1
    - Dst: sk_NAME_FUNCS_pop_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:382,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:383,1
    - Dst: lh_OBJ_NAME_set_down_load
      Src: /src/openssl-3.0.15/crypto/objects/o_names.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 389
    functionName: OBJ_NAME_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/o_names.c
    functionUses: 1
    functionsReached:
    - lh_OBJ_NAME_doall
    - sk_NAME_FUNCS_pop_free
    - lh_OBJ_NAME_free
    - CRYPTO_THREAD_lock_free
    - lh_OBJ_NAME_get_down_load
    - lh_OBJ_NAME_set_down_load
    linkageType: ''
    returnType: void
    signature: void OBJ_NAME_cleanup(int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OBJECT_new
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:26,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:28,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:38,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:44,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:47,1
    - Dst: ASN1_OBJECT_free
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:52,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:53,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - o
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 55
    functionName: OBJ_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_lib.c
    functionUses: 19
    functionsReached:
    - ERR_raise
    - ASN1_OBJECT_new
    - OPENSSL_memdup
    - OPENSSL_strdup
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: ASN1_OBJECT
    signature: ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/objects/obj_lib.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ASN1_OBJECT*
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: OBJ_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/objects/obj_lib.c
    functionUses: 18
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_new_intern
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: RSA_new
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - rsa_new_intern
    linkageType: ''
    returnType: RSA
    signature: RSA *RSA_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: RSA_get_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_get_method(const RSA *rsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_METHOD*::finish
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:53,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:55,1
    - Dst: RSA_METHOD*::init
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rsa
    - meth
    argTypes:
    - RSA*
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: RSA_set_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - ENGINE_finish
    - RSA_METHOD*::finish
    - RSA_METHOD*::init
    linkageType: ''
    returnType: int
    signature: int RSA_set_method(RSA *rsa, const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_new_intern
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - ENGINE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: RSA_new_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - rsa_new_intern
    linkageType: ''
    returnType: RSA
    signature: RSA *RSA_new_method(ENGINE *engine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_new_intern
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: ossl_rsa_new_with_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - rsa_new_intern
    linkageType: ''
    returnType: RSA
    signature: RSA *ossl_rsa_new_with_ctx(OSSL_LIB_CTX *libctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:77,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:80,1
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:85,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:87,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:88,1
    - Dst: RSA_get_default_method
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:93,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:97,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:98,1
    - Dst: ENGINE_get_default_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:103,1
    - Dst: ENGINE_get_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:108,1
    - Dst: CRYPTO_new_ex_data
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:116,1
    - Dst: RSA*::meth::init
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:121,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:122,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:129,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - engine
    - libctx
    argTypes:
    - ENGINE*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 131
    functionName: rsa_new_intern
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached:
    - ENGINE_init
    - ENGINE_get_RSA
    - ERR_raise
    - OPENSSL_zalloc
    - CRYPTO_new_ex_data
    - OPENSSL_free
    - RSA_get_default_method
    - ENGINE_get_default_RSA
    - CRYPTO_THREAD_lock_new
    - RSA_free
    - RSA*::meth::init
    linkageType: ''
    returnType: RSA
    signature: RSA *rsa_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_DOWN_REF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:140,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:141,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:144,1
    - Dst: RSA*::meth::finish
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:147,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:149,1
    - Dst: CRYPTO_free_ex_data
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:153,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:156,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:158,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:159,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:160,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:161,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:162,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:163,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:164,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:165,1
    - Dst: ossl_rsa_acvp_test_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:168,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:172,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:173,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:175,1
    - Dst: BN_BLINDING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:176,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 178
    functionName: RSA_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 6
    functionsReached:
    - RSA*::meth::finish
    - CRYPTO_DOWN_REF
    - ENGINE_finish
    - REF_ASSERT_ISNT
    - BN_BLINDING_free
    - BN_free
    - sk_RSA_PRIME_INFO_pop_free
    - REF_PRINT_COUNT
    - BN_clear_free
    - OPENSSL_free
    - CRYPTO_free_ex_data
    - ossl_rsa_acvp_test_free
    - CRYPTO_THREAD_lock_free
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: void
    signature: void RSA_free(RSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_UP_REF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:184,1
    - Dst: REF_PRINT_COUNT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:187,1
    - Dst: REF_ASSERT_ISNT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: RSA_up_ref
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - REF_PRINT_COUNT
    - REF_ASSERT_ISNT
    - CRYPTO_UP_REF
    linkageType: ''
    returnType: int
    signature: int RSA_up_ref(RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: ossl_rsa_get0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_LIB_CTX
    signature: OSSL_LIB_CTX *ossl_rsa_get0_libctx(RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - libctx
    argTypes:
    - RSA*
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: ossl_rsa_set0_libctx
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_rsa_set0_libctx(RSA *r, OSSL_LIB_CTX *libctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_set_ex_data
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - idx
    - arg
    argTypes:
    - RSA*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: RSA_set_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - CRYPTO_set_ex_data
    linkageType: ''
    returnType: int
    signature: int RSA_set_ex_data(RSA *r, int idx, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_get_ex_data
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - idx
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: RSA_get_ex_data
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached:
    - CRYPTO_get_ex_data
    linkageType: ''
    returnType: void
    signature: void *RSA_get_ex_data(const RSA *r, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: mul2
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline mul2(uint64_t a, uint64_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 261
    functionName: icbrt64
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t icbrt64(uint64_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mul2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 294
    functionName: ilog_e
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - mul2
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ilog_e(uint64_t v)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ilog_e
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:365,1
    - Dst: mul2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:366,1
    - Dst: icbrt64
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:366,1
    - Dst: mul2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:366,1
    - Dst: mul2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 372
    functionName: ossl_ifc_ffc_compute_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - mul2
    - icbrt64
    - ilog_e
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ossl_ifc_ffc_compute_security_bits(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:378,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:383,1
    - Dst: ossl_rsa_multip_cap
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:385,1
    - Dst: ossl_ifc_ffc_compute_security_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 390
    functionName: RSA_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - ossl_ifc_ffc_compute_security_bits
    - ossl_rsa_multip_cap
    - BN_num_bits
    - sk_RSA_PRIME_INFO_num
    linkageType: ''
    returnType: int
    signature: int RSA_security_bits(const RSA *rsa)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:403,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:407,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:411,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - r
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 418
    functionName: RSA_set0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - BN_free
    - BN_clear_free
    - BN_set_flags
    linkageType: ''
    returnType: int
    signature: int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:430,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:432,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:435,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:437,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 442
    functionName: RSA_set0_factors
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    - BN_set_flags
    linkageType: ''
    returnType: int
    signature: int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:455,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:457,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:460,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:462,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:465,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:467,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - r
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 472
    functionName: RSA_set0_crt_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    - BN_set_flags
    linkageType: ''
    returnType: int
    signature: int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM
      *iqmp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:482,1
    - Dst: sk_RSA_PRIME_INFO_new_reserve
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:489,1
    - Dst: ossl_rsa_multip_info_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:497,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:501,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:502,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:503,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:507,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:508,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:509,1
    - Dst: ossl_rsa_multip_info_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:511,1
    - Dst: sk_RSA_PRIME_INFO_push
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:514,1
    - Dst: ossl_rsa_multip_calc_product
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:519,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:531,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:540,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 5
    argNames:
    - r
    - primes
    - exps
    - coeffs
    - pnum
    argTypes:
    - RSA*
    - BIGNUM*[]
    - BIGNUM*[]
    - BIGNUM*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 542
    functionName: RSA_set0_multi_prime_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_multip_info_new
    - sk_RSA_PRIME_INFO_pop_free
    - STACK_OF
    - BN_set_flags
    - ossl_rsa_multip_info_free
    - ossl_rsa_multip_calc_product
    - BN_clear_free
    - sk_RSA_PRIME_INFO_new_reserve
    - sk_RSA_PRIME_INFO_push
    linkageType: ''
    returnType: int
    signature: "int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[],\n
      \                               BIGNUM *coeffs[], int pnum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - n
    - e
    - d
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 554
    functionName: RSA_get0_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RSA_get0_key(const RSA *r,\n                  const BIGNUM **n,
      const BIGNUM **e, const BIGNUM **d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - r
    - p
    - q
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: RSA_get0_factors
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM
      **q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 573
    functionName: RSA_get_multi_prime_extra_count
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 3
    functionsReached:
    - sk_RSA_PRIME_INFO_num
    linkageType: ''
    returnType: int
    signature: int RSA_get_multi_prime_extra_count(const RSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:580,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - primes
    argTypes:
    - RSA*
    - BIGNUM*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 593
    functionName: RSA_get0_multi_prime_factors
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - RSA_get_multi_prime_extra_count
    - sk_RSA_PRIME_INFO_value
    linkageType: ''
    returnType: int
    signature: int RSA_get0_multi_prime_factors(const RSA *r, const BIGNUM *primes[])
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - r
    - dmp1
    - dmq1
    - iqmp
    argTypes:
    - RSA*
    - BIGNUM**
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: RSA_get0_crt_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RSA_get0_crt_params(const RSA *r,\n                         const
      BIGNUM **dmp1, const BIGNUM **dmq1,\n                         const BIGNUM **iqmp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_multi_prime_extra_count
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:614,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - r
    - exps
    - coeffs
    argTypes:
    - RSA*
    - BIGNUM*[]
    - BIGNUM*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 633
    functionName: RSA_get0_multi_prime_crt_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - RSA_get_multi_prime_extra_count
    - sk_RSA_PRIME_INFO_value
    linkageType: ''
    returnType: int
    signature: "int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[],\n
      \                                   const BIGNUM *coeffs[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: RSA_get0_n
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_n(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: RSA_get0_e
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_e(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: RSA_get0_d
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_d(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: RSA_get0_p
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_p(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 659
    functionName: RSA_get0_q
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_q(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 664
    functionName: RSA_get0_dmp1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_dmp1(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: RSA_get0_dmq1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_dmq1(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: RSA_get0_iqmp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *RSA_get0_iqmp(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 683
    functionName: RSA_get0_pss_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - pss
    argTypes:
    - RSA*
    - RSA_PSS_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 695
    functionName: ossl_rsa_set0_pss_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_set0_pss_params(RSA *r, RSA_PSS_PARAMS *pss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: ossl_rsa_get0_pss_params_30
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_PSS_PARAMS_30
    signature: RSA_PSS_PARAMS_30 *ossl_rsa_get0_pss_params_30(RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: RSA_clear_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_clear_flags(RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: RSA_test_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_test_flags(const RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - flags
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 716
    functionName: RSA_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_set_flags(RSA *r, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 722
    functionName: RSA_get_version
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_get_version(RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: RSA_get0_engine
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ENGINE
    signature: ENGINE *RSA_get0_engine(const RSA *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - optype
    - cmd
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 738
    functionName: RSA_pkey_ctx_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1,
      void *p2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:748,1
    - Dst: sk_BIGNUM_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:755,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:759,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:759,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:760,1
    - Dst: sk_BIGNUM_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:763,1
    - Dst: sk_BIGNUM_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:764,1
    - Dst: RSA_set0_crt_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:766,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:766,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:767,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:768,1
    - Dst: sk_RSA_PRIME_INFO_new_reserve
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:780,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:785,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:786,1
    - Dst: sk_BIGNUM_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:787,1
    - Dst: ossl_assert
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:790,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:794,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:795,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:802,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:803,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:804,1
    - Dst: sk_RSA_PRIME_INFO_push
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:805,1
    - Dst: ossl_rsa_multip_calc_product
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:810,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:827,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:838,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - r
    - primes
    - exps
    - coeffs
    argTypes:
    - RSA*
    - STACK_OF*
    - STACK_OF*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 743
    functionDepth: 4
    functionLinenumber: 743
    functionLinenumberEnd: 841
    functionName: ossl_rsa_set0_all_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - sk_BIGNUM_value
    - sk_BIGNUM_num
    - sk_RSA_PRIME_INFO_push
    - RSA_set0_factors
    - OPENSSL_zalloc
    - ERR_raise
    - sk_RSA_PRIME_INFO_pop_free
    - STACK_OF
    - BN_set_flags
    - ossl_rsa_multip_calc_product
    - RSA_set0_crt_params
    - sk_RSA_PRIME_INFO_new_reserve
    - ossl_assert
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_set0_all_params(RSA *r, const STACK_OF(BIGNUM) *primes,\n
      \                            const STACK_OF(BIGNUM) *exps,\n                             const
      STACK_OF(BIGNUM) *coeffs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:892,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:900,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:901,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:905,1
    - Dst: evp_pkey_type2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:905,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:911,1
    - Dst: evp_pkey_ctx_is_provided
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:912,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:914,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:916,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:918,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 7
    argNames:
    - ctx
    - keytype
    - optype
    - mdkey
    - mdname
    - propkey
    - mdprops
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 919
    functionName: int_set_rsa_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - evp_pkey_type2name
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - EVP_PKEY_CTX_is_a
    - evp_pkey_ctx_is_provided
    linkageType: ''
    returnType: int
    signature: "int int_set_rsa_md_name(EVP_PKEY_CTX *ctx,\n                               /*
      For checks */\n                               int keytype, int optype,\n                               /*
      For EVP_PKEY_CTX_set_params() */\n                               const char
      *mdkey, const char *mdname,\n                               const char *propkey,
      const char *mdprops)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:932,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:940,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:941,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:945,1
    - Dst: evp_pkey_type2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:945,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:951,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:952,1
    - Dst: evp_pkey_ctx_get_params_strict
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:954,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 6
    argNames:
    - ctx
    - keytype
    - optype
    - mdkey
    - mdname
    - mdnamesize
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 922
    functionDepth: 4
    functionLinenumber: 922
    functionLinenumberEnd: 955
    functionName: int_get_rsa_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - ERR_raise
    - evp_pkey_type2name
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_get_params_strict
    - EVP_PKEY_CTX_is_a
    linkageType: ''
    returnType: int
    signature: "int int_get_rsa_md_name(EVP_PKEY_CTX *ctx,\n                               /*
      For checks */\n                               int keytype, int optype,\n                               /*
      For EVP_PKEY_CTX_get_params() */\n                               const char
      *mdkey,\n                               char *mdname, size_t mdnamesize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pad_mode
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 5
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: EVP_PKEY_CTX_set_rsa_padding
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - RSA_pkey_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pad_mode
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 5
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: EVP_PKEY_CTX_get_rsa_padding
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - RSA_pkey_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_rsa_padding(EVP_PKEY_CTX *ctx, int *pad_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 981
    functionDepth: 4
    functionLinenumber: 981
    functionLinenumberEnd: 985
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_pss_keygen_md(EVP_PKEY_CTX *ctx, const EVP_MD
      *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_set_rsa_md_name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - mdname
    - mdprops
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 5
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - int_set_rsa_md_name
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_rsa_pss_keygen_md_name(EVP_PKEY_CTX *ctx,\n                                            const
      char *mdname,\n                                            const char *mdprops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1003,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1008
    functionName: EVP_PKEY_CTX_set_rsa_oaep_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_CTX_is_a
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_set_rsa_md_name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - mdname
    - mdprops
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1010
    functionDepth: 5
    functionLinenumber: 1010
    functionLinenumberEnd: 1017
    functionName: EVP_PKEY_CTX_set_rsa_oaep_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - int_set_rsa_md_name
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, const char
      *mdname,\n                                      const char *mdprops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_get_rsa_md_name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - name
    - namesize
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1019
    functionDepth: 5
    functionLinenumber: 1019
    functionLinenumberEnd: 1025
    functionName: EVP_PKEY_CTX_get_rsa_oaep_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - int_get_rsa_md_name
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_get_rsa_oaep_md_name(EVP_PKEY_CTX *ctx, char *name,\n
      \                                     size_t namesize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1034,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1039
    functionName: EVP_PKEY_CTX_get_rsa_oaep_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_is_a
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_rsa_oaep_md(EVP_PKEY_CTX *ctx, const EVP_MD **md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1045
    functionDepth: 5
    functionLinenumber: 1045
    functionLinenumberEnd: 1049
    functionName: EVP_PKEY_CTX_set_rsa_mgf1_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - RSA_pkey_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_set_rsa_md_name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - mdname
    - mdprops
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1051
    functionDepth: 5
    functionLinenumber: 1051
    functionLinenumberEnd: 1058
    functionName: EVP_PKEY_CTX_set_rsa_mgf1_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - int_set_rsa_md_name
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, const char
      *mdname,\n                                      const char *mdprops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_get_rsa_md_name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - name
    - namesize
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1060
    functionDepth: 5
    functionLinenumber: 1060
    functionLinenumberEnd: 1066
    functionName: EVP_PKEY_CTX_get_rsa_mgf1_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - int_get_rsa_md_name
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_get_rsa_mgf1_md_name(EVP_PKEY_CTX *ctx, char *name,\n
      \                                     size_t namesize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1072
    functionDepth: 4
    functionLinenumber: 1072
    functionLinenumberEnd: 1076
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(EVP_PKEY_CTX *ctx, const
      EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_set_rsa_md_name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - mdname
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1078
    functionDepth: 5
    functionLinenumber: 1078
    functionLinenumberEnd: 1084
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - int_set_rsa_md_name
    linkageType: ''
    returnType: int
    signature: "int EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md_name(EVP_PKEY_CTX *ctx,\n
      \                                                const char *mdname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - md
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_MD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1090
    functionDepth: 5
    functionLinenumber: 1090
    functionLinenumberEnd: 1094
    functionName: EVP_PKEY_CTX_get_rsa_mgf1_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - RSA_pkey_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1108,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1114,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1122,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1124,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - label
    - llen
    argTypes:
    - EVP_PKEY_CTX*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1133
    functionName: EVP_PKEY_CTX_set0_rsa_oaep_label
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 2
    functionsReached:
    - OSSL_PARAM_construct_octet_string
    - ERR_raise
    - OPENSSL_free
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_PKEY_CTX_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label,
      int llen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1140,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1141,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1147,1
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1150,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1152,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - label
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1162
    functionName: EVP_PKEY_CTX_get0_rsa_oaep_label
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OSSL_PARAM_construct_octet_ptr
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_IS_ASYM_CIPHER_OP
    - EVP_PKEY_CTX_get_params
    - EVP_PKEY_CTX_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx, unsigned char
      **label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - saltlen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1168
    functionDepth: 5
    functionLinenumber: 1168
    functionLinenumberEnd: 1182
    functionName: EVP_PKEY_CTX_set_rsa_pss_saltlen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_pkey_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int saltlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - saltlen
    argTypes:
    - EVP_PKEY_CTX*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1188
    functionDepth: 5
    functionLinenumber: 1188
    functionLinenumberEnd: 1201
    functionName: EVP_PKEY_CTX_get_rsa_pss_saltlen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - RSA_pkey_ctx_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_get_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int *saltlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1207,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1208,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1213,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1216,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1218,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - saltlen
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1203
    functionDepth: 4
    functionLinenumber: 1203
    functionLinenumberEnd: 1221
    functionName: EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - EVP_PKEY_CTX_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(EVP_PKEY_CTX *ctx, int
      saltlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1228,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1229,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1235,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1236,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1239,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1240,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - bits
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1223
    functionDepth: 4
    functionLinenumber: 1223
    functionLinenumberEnd: 1243
    functionName: EVP_PKEY_CTX_set_rsa_keygen_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - EVP_PKEY_CTX_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_pkey_ctx_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1247,1
    - Dst: evp_pkey_ctx_is_provided
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1255,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pubexp
    argTypes:
    - EVP_PKEY_CTX*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1245
    functionDepth: 5
    functionLinenumber: 1245
    functionLinenumberEnd: 1261
    functionName: EVP_PKEY_CTX_set_rsa_keygen_pubexp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_free
    - RSA_pkey_ctx_ctrl
    - evp_pkey_ctx_is_provided
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1271,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1272,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1276,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1278,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - pubexp
    argTypes:
    - EVP_PKEY_CTX*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1263
    functionDepth: 4
    functionLinenumber: 1263
    functionLinenumberEnd: 1281
    functionName: EVP_PKEY_CTX_set1_rsa_keygen_pubexp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - evp_pkey_ctx_is_legacy
    - BN_free
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set1_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_IS_GEN_OP
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1288,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1289,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1295,1
    - Dst: EVP_PKEY_CTX_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1296,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1299,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1300,1
    - Dst: evp_pkey_ctx_set_params_strict
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c:1302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - primes
    argTypes:
    - EVP_PKEY_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1283
    functionDepth: 4
    functionLinenumber: 1283
    functionLinenumberEnd: 1303
    functionName: EVP_PKEY_CTX_set_rsa_keygen_primes
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_lib.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - EVP_PKEY_CTX_IS_GEN_OP
    - ERR_raise
    - OSSL_PARAM_construct_end
    - evp_pkey_ctx_set_params_strict
    - EVP_PKEY_CTX_is_a
    linkageType: ''
    returnType: int
    signature: int EVP_PKEY_CTX_set_rsa_keygen_primes(EVP_PKEY_CTX *ctx, int primes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:37,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:38,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:39,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:41,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:42,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:43,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:50,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:51,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:53,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:54,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:56,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:56,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:57,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:59,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:59,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:60,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:62,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:62,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:63,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:65,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:66,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:68,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:69,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:71,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:72,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:73,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:74,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:75,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:76,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 24
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 78
    functionName: ossl_rsa_check_crt_components
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_mod_mul
    - BN_is_one
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - BN_set_flags
    - BN_value_one
    - BN_clear
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_check_crt_components(const RSA *rsa, BN_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:95,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:98,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:101,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:102,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:107,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:116,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:118,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:121,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:125,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - p
    - nbits
    - ctx
    argTypes:
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 127
    functionName: ossl_rsa_check_prime_factor_range
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_lshift
    - BN_num_bits
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - BN_rshift
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_check_prime_factor_range(const BIGNUM *p, int nbits, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:142,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:144,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:147,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:148,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:149,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:151,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:152,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:159,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:160,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:161,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:162,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:164,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:165,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - p
    - e
    - nbits
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 167
    functionName: ossl_rsa_check_prime_factor
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_is_one
    - BN_CTX_start
    - BN_CTX_end
    - BN_copy
    - BN_set_flags
    - BN_clear
    - BN_gcd
    - BN_CTX_get
    - ossl_rsa_check_prime_factor_range
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_check_prime_factor(BIGNUM *p, BIGNUM *e, int nbits, BN_CTX
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:181,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:184,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:185,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:186,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:187,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:188,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:189,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:190,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:192,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:193,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:194,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:195,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:196,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:197,1
    - Dst: ossl_rsa_get_lcm
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:204,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:207,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:209,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:210,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:212,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:213,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:214,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:215,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:216,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - rsa
    - nbits
    - ctx
    argTypes:
    - RSA*
    - int
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 219
    functionName: ossl_rsa_check_private_exponent
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    - BN_is_one
    - BN_num_bits
    - BN_CTX_start
    - ossl_rsa_get_lcm
    - BN_CTX_end
    - BN_set_flags
    - BN_clear
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_check_private_exponent(const RSA *rsa, int nbits, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:230,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:231,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:234,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:234,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: ossl_rsa_check_public_exponent
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_value_one
    - BN_num_bits
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_check_public_exponent(const BIGNUM *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:247,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:249,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:251,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:254,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - diff
    - p
    - q
    - nbits
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: ossl_rsa_check_pminusq_diff
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_num_bits
    - BN_set_negative
    - BN_sub
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_check_pminusq_diff(BIGNUM *diff, const BIGNUM *p, const
      BIGNUM *q,\n                           int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:269,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:269,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:270,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:270,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:271,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:272,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 8
    argNames:
    - ctx
    - p
    - q
    - lcm
    - gcd
    - p1
    - q1
    - p1q1
    argTypes:
    - BN_CTX*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: ossl_rsa_get_lcm
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 1
    functionsReached:
    - BN_div
    - BN_value_one
    - BN_gcd
    - BN_mul
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_get_lcm(BN_CTX *ctx, const BIGNUM *p, const BIGNUM *q,\n
      \                    BIGNUM *lcm, BIGNUM *gcd, BIGNUM *p1, BIGNUM *q1,\n                     BIGNUM
      *p1q1)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:360,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:360,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: ossl_rsa_sp800_56b_check_private
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - BN_value_one
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_sp800_56b_check_private(const RSA *rsa)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:386,1
    - Dst: ossl_rsa_sp800_56b_validate_strength
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:390,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:396,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:397,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:402,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:404,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:408,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:409,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:413,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:417,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:418,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:419,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:422,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:423,1
    - Dst: ossl_rsa_check_prime_factor
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:428,1
    - Dst: ossl_rsa_check_prime_factor
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:429,1
    - Dst: ossl_rsa_check_pminusq_diff
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:430,1
    - Dst: ossl_rsa_check_private_exponent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:432,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:434,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:436,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:439,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:440,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c:441,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 4
    argNames:
    - rsa
    - efixed
    - strength
    - nbits
    argTypes:
    - RSA*
    - BIGNUM*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 374
    functionDepth: 7
    functionLinenumber: 374
    functionLinenumberEnd: 443
    functionName: ossl_rsa_sp800_56b_check_keypair
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_check.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_prime_factor
    - ossl_rsa_check_pminusq_diff
    - ossl_rsa_check_private_exponent
    - ossl_rsa_check_crt_components
    - ossl_rsa_sp800_56b_validate_strength
    - BN_CTX_free
    - BN_mul
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_clear
    - ossl_rsa_check_public_exponent
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_sp800_56b_check_keypair(const RSA *rsa, const BIGNUM
      *efixed,\n                                     int strength, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: ENCODE_DIGESTINFO_SHA
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_DIGESTINFO_SHA(name, n, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - n
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: ENCODE_DIGESTINFO_MD
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_DIGESTINFO_MD(name, n, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: MD_CASE
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD_CASE(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:158,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:161,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:164,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:167,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:170,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:173,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:174,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:175,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:176,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:177,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:178,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:179,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:180,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:181,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:182,1
    - Dst: MD_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - md_nid
    - len
    argTypes:
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 187
    functionName: ossl_rsa_digestinfo_encoding
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - MD_CASE
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *ossl_rsa_digestinfo_encoding(int md_nid, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: MD_NID_CASE
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MD_NID_CASE(name, sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:198,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:201,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:204,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:207,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:210,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:213,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:214,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:215,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:216,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:217,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:218,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:219,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:220,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:221,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:222,1
    - Dst: MD_NID_CASE
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 227
    functionName: digest_sz_from_nid
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - MD_NID_CASE
    linkageType: ''
    returnType: int
    signature: int digest_sz_from_nid(int nid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:250,1
    - Dst: ossl_rsa_digestinfo_encoding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:253,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:255,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:260,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:262,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:265,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - out
    - out_len
    - type
    - m
    - m_len
    argTypes:
    - unsigned char**
    - size_t*
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 271
    functionName: encode_pkcs1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ossl_rsa_digestinfo_encoding
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int encode_pkcs1(unsigned char **out, size_t *out_len, int type,\n
      \                       const unsigned char *m, size_t m_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_sign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:283,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:294,1
    - Dst: encode_pkcs1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:300,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:305,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:306,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:309,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:318,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigret
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 320
    functionName: RSA_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 2
    functionsReached:
    - encode_pkcs1
    - ERR_raise
    - OPENSSL_clear_free
    - RSA*::meth::rsa_sign
    - RSA_private_encrypt
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int RSA_sign(int type, const unsigned char *m, unsigned int m_len,\n
      \            unsigned char *sigret, unsigned int *siglen, RSA *rsa)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:339,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:340,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:345,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:347,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:351,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:365,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:370,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:374,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:378,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:379,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:390,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:394,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:398,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:399,1
    - Dst: digest_sz_from_nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:412,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:418,1
    - Dst: encode_pkcs1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:425,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:429,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:430,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:436,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:444,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:445,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 447
    functionName: ossl_rsa_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 0
    functionsReached:
    - RSA_public_decrypt
    - memcpy
    - OPENSSL_malloc
    - digest_sz_from_nid
    - encode_pkcs1
    - ERR_raise
    - OPENSSL_clear_free
    - memcmp
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int ossl_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: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_verify
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:454,1
    - Dst: ossl_rsa_verify
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - type
    - m
    - m_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 457
    functionName: RSA_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sign.c
    functionUses: 2
    functionsReached:
    - RSA*::meth::rsa_verify
    - ossl_rsa_verify
    linkageType: ''
    returnType: int
    signature: "int RSA_verify(int type, const unsigned char *m, unsigned int m_len,\n
      \              const unsigned char *sigbuf, unsigned int siglen, RSA *rsa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:18,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - RSA_PRIME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: ossl_rsa_multip_info_free_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ossl_rsa_multip_info_free_ex(RSA_PRIME_INFO *pinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:25,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:26,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:27,1
    - Dst: ossl_rsa_multip_info_free_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pinfo
    argTypes:
    - RSA_PRIME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: ossl_rsa_multip_info_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    - ossl_rsa_multip_info_free_ex
    linkageType: ''
    returnType: void
    signature: void ossl_rsa_multip_info_free(RSA_PRIME_INFO *pinfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:36,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:37,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:40,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:42,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:44,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:46,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:52,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:53,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:54,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: ossl_rsa_multip_info_new
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - OPENSSL_zalloc
    - BN_free
    - OPENSSL_free
    - BN_secure_new
    linkageType: ''
    returnType: RSA_PRIME_INFO
    signature: RSA_PRIME_INFO *ossl_rsa_multip_info_new(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:68,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:73,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:81,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:83,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:87,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 98
    functionName: ossl_rsa_multip_calc_product
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c
    functionUses: 2
    functionsReached:
    - sk_RSA_PRIME_INFO_num
    - BN_CTX_free
    - BN_CTX_new
    - sk_RSA_PRIME_INFO_value
    - BN_secure_new
    - BN_mul
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_multip_calc_product(RSA *rsa)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: ossl_rsa_multip_cap
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_mp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_multip_cap(int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:36,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:48,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 57
    functionName: RSA_padding_add_X931
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached:
    - memset
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_X931(unsigned char *to, int tlen,\n                         const
      unsigned char *from, int flen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:67,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:78,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:86,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:95,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 102
    functionName: RSA_padding_check_X931
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_X931(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen, int num)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: RSA_X931_hash_id
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_x931.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_X931_hash_id(int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:22,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:31,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: RSA_meth_new
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    - OPENSSL_zalloc
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_meth_new(const char *name, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:41,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: RSA_meth_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void RSA_meth_free(RSA_METHOD *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:48,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:51,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:53,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:57,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: RSA_meth_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_free
    - OPENSSL_strdup
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: RSA_meth_get0_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *RSA_meth_get0_name(const RSA_METHOD *meth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:71,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - meth
    - name
    argTypes:
    - RSA_METHOD*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: RSA_meth_set1_name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_strdup
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set1_name(RSA_METHOD *meth, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: RSA_meth_get_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_get_flags(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meth
    - flags
    argTypes:
    - RSA_METHOD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: RSA_meth_set_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set_flags(RSA_METHOD *meth, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: RSA_meth_get0_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *RSA_meth_get0_app_data(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - meth
    - app_data
    argTypes:
    - RSA_METHOD*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: RSA_meth_set0_app_data
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: RSA_meth_set_pub_enc
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: RSA_meth_set_pub_dec
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: RSA_meth_set_priv_enc
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: RSA_meth_set_priv_dec
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r0
    - i
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: "(*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0,
      const BIGNUM *i, RSA *rsa, BN_CTX *ctx)"
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth))\n    (BIGNUM *r0,
      const BIGNUM *i, RSA *rsa, BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: RSA_meth_set_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_mod_exp(RSA_METHOD *meth,\n                         int
      (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa,\n                                         BN_CTX
      *ctx))"
  - BBCount: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: RSA_meth_set_bn_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: RSA_meth_set_init
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set_init(RSA_METHOD *meth, int (*init) (RSA *rsa))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: RSA_meth_set_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish) (RSA *rsa))
  - BBCount: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: RSA_meth_set_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    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/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: RSA_meth_set_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rsa
    - bits
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: "(*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa,
      int bits, BIGNUM *e, BN_GENCB *cb)"
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_keygen(const RSA_METHOD *meth))\n    (RSA *rsa,
      int bits, BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: RSA_meth_set_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_keygen(RSA_METHOD *meth,\n                        int
      (*keygen) (RSA *rsa, int bits, BIGNUM *e,\n                                       BN_GENCB
      *cb))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - bits
    - primes
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: "(*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth))\n    (RSA
      *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb)"
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth))\n    (RSA
      *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: RSA_meth_set_multi_prime_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_meth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth,\n                                    int
      (*keygen) (RSA *rsa, int bits,\n                                                   int
      primes, BIGNUM *e,\n                                                   BN_GENCB
      *cb))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - RSA_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: RSA_set_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_set_default_method(const RSA_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: RSA_get_default_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_get_default_method(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: RSA_PKCS1_OpenSSL
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_PKCS1_OpenSSL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: RSA_null_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RSA_METHOD
    signature: RSA_METHOD *RSA_null_method(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:83,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:88,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:93,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:95,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:100,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:102,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:103,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:104,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:105,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:106,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:108,1
    - Dst: ossl_rsa_padding_add_PKCS1_type_2_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:114,1
    - Dst: ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:118,1
    - Dst: RSA_padding_add_none
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:123,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:126,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:132,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:135,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:137,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:142,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:146,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:154,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:156,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:157,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:158,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 74
    functionDepth: 8
    functionLinenumber: 74
    functionLinenumberEnd: 160
    functionName: rsa_ossl_public_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_none
    - ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
    - OPENSSL_malloc
    - BN_bin2bn
    - BN_CTX_free
    - BN_num_bits
    - BN_CTX_start
    - ERR_raise
    - ossl_rsa_padding_add_PKCS1_type_2_ex
    - BN_CTX_end
    - OPENSSL_clear_free
    - BN_CTX_new_ex
    - RSA*::meth::bn_mod_exp
    - BN_num_bytes
    - BN_ucmp
    - BN_bn2binpad
    - BN_CTX_get
    - BN_MONT_CTX_set_locked
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_public_encrypt(int flen, const unsigned char *from,\n
      \                                 unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:166,1
    - Dst: RSA_setup_blinding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:170,1
    - Dst: BN_BLINDING_is_current_thread
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:177,1
    - Dst: RSA_setup_blinding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:192,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - rsa
    - local
    - ctx
    argTypes:
    - RSA*
    - int*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 200
    functionName: rsa_get_blinding
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_is_current_thread
    - RSA_setup_blinding
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: BN_BLINDING
    signature: BN_BLINDING *rsa_get_blinding(RSA *rsa, int *local, BN_CTX *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:209,1
    - Dst: BN_BLINDING_lock
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:216,1
    - Dst: BN_BLINDING_convert_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:219,1
    - Dst: BN_BLINDING_unlock
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - b
    - f
    - unblind
    - ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 224
    functionName: rsa_blinding_convert
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_lock
    - BN_BLINDING_unlock
    - BN_BLINDING_convert_ex
    linkageType: ''
    returnType: int
    signature: "int rsa_blinding_convert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,\n
      \                               BN_CTX *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:237,1
    - Dst: BN_BLINDING_invert_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - b
    - f
    - unblind
    - ctx
    argTypes:
    - BN_BLINDING*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: rsa_blinding_invert
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_invert_ex
    - BN_set_flags
    linkageType: ''
    returnType: int
    signature: "int rsa_blinding_invert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,\n
      \                              BN_CTX *ctx)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:258,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:260,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:261,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:262,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:263,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:266,1
    - Dst: RSA_padding_add_PKCS1_type_1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:272,1
    - Dst: RSA_padding_add_X931
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:275,1
    - Dst: RSA_padding_add_none
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:278,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:281,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:287,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:290,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:292,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:297,1
    - Dst: rsa_get_blinding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:304,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:310,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:311,1
    - Dst: rsa_blinding_convert
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:314,1
    - Dst: RSA*::meth::rsa_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:323,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:326,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:328,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:332,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:333,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:336,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:338,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:340,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:344,1
    - Dst: rsa_blinding_invert
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:348,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:352,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:354,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:366,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:368,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:369,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:370,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 107
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 242
    functionDepth: 8
    functionLinenumber: 242
    functionLinenumberEnd: 372
    functionName: rsa_ossl_private_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_CTX_start
    - rsa_blinding_invert
    - BN_num_bytes
    - BN_ucmp
    - BN_CTX_get
    - RSA_padding_add_PKCS1_type_1
    - OPENSSL_clear_free
    - BN_with_flags
    - RSA*::meth::bn_mod_exp
    - BN_bn2binpad
    - BN_cmp
    - BN_sub
    - RSA_padding_add_none
    - BN_new
    - RSA_padding_add_X931
    - RSA*::meth::rsa_mod_exp
    - ERR_raise
    - rsa_blinding_convert
    - BN_free
    - BN_MONT_CTX_set_locked
    - OPENSSL_malloc
    - BN_bin2bn
    - BN_CTX_end
    - BN_CTX_new_ex
    - rsa_get_blinding
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_private_encrypt(int flen, const unsigned char *from,\n
      \                                  unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:390,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:392,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:393,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:394,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:395,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:396,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:398,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:407,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:412,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:415,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:416,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:421,1
    - Dst: rsa_get_blinding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:426,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:428,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:434,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:435,1
    - Dst: rsa_blinding_convert
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:438,1
    - Dst: RSA*::meth::rsa_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:448,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:451,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:453,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:457,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:458,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:461,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:462,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:464,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:468,1
    - Dst: rsa_blinding_invert
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:472,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:475,1
    - Dst: RSA_padding_check_PKCS1_type_2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:481,1
    - Dst: RSA_padding_check_PKCS1_OAEP
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:484,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:487,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:490,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:499,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:500,1
    - Dst: constant_time_msb
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:500,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:504,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:505,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:506,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 104
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 374
    functionDepth: 9
    functionLinenumber: 374
    functionLinenumberEnd: 508
    functionName: rsa_ossl_private_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RSA_padding_check_PKCS1_type_2
    - BN_CTX_start
    - rsa_blinding_invert
    - BN_num_bytes
    - BN_ucmp
    - BN_CTX_get
    - constant_time_msb
    - OPENSSL_clear_free
    - BN_with_flags
    - RSA*::meth::bn_mod_exp
    - BN_bn2binpad
    - BN_new
    - RSA*::meth::rsa_mod_exp
    - err_clear_last_constant_time
    - ERR_raise
    - rsa_blinding_convert
    - BN_free
    - BN_MONT_CTX_set_locked
    - RSA_padding_check_PKCS1_OAEP
    - OPENSSL_malloc
    - BN_bin2bn
    - BN_CTX_end
    - BN_CTX_new_ex
    - rsa_get_blinding
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_private_decrypt(int flen, const unsigned char *from,\n
      \                                  unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:519,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:520,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:524,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:525,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:530,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:531,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:532,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:537,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:539,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:540,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:541,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:542,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:543,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:545,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:554,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:558,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:561,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:562,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:567,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:571,1
    - Dst: bn_get_words
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:575,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:576,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:579,1
    - Dst: RSA_padding_check_PKCS1_type_1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:585,1
    - Dst: RSA_padding_check_X931
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:588,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:591,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:594,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:598,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:601,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:602,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:603,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 79
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 511
    functionDepth: 8
    functionLinenumber: 511
    functionLinenumberEnd: 605
    functionName: rsa_ossl_public_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BN_CTX_start
    - BN_num_bytes
    - BN_ucmp
    - BN_CTX_get
    - OPENSSL_clear_free
    - bn_get_words
    - RSA*::meth::bn_mod_exp
    - BN_bn2binpad
    - BN_sub
    - RSA_padding_check_X931
    - BN_num_bits
    - ERR_raise
    - BN_MONT_CTX_set_locked
    - OPENSSL_malloc
    - BN_bin2bn
    - RSA_padding_check_PKCS1_type_1
    - BN_CTX_end
    - BN_CTX_new_ex
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int rsa_ossl_public_decrypt(int flen, const unsigned char *from,\n
      \                                 unsigned char *to, RSA *rsa, int padding)"
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:617,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:619,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:621,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:623,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:624,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:630,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:636,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:645,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:646,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:648,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:649,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:651,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:656,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:657,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:658,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:659,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:667,1
    - Dst: BN_MONT_CTX_set_locked
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:677,1
    - Dst: bn_from_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:690,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:691,1
    - Dst: bn_from_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:693,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:694,1
    - Dst: BN_mod_exp_mont_consttime_x2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:701,1
    - Dst: bn_mod_sub_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:713,1
    - Dst: bn_to_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:716,1
    - Dst: bn_mul_mont_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:717,1
    - Dst: bn_mul_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:720,1
    - Dst: bn_mod_add_fixed_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:721,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:729,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:732,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:734,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:735,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:740,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:742,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:745,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:748,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:750,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:751,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:755,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:759,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:760,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:764,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:768,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:771,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:774,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:776,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:780,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:785,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:785,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:788,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:789,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:795,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:796,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:797,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:801,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:804,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:805,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:807,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:808,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:809,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:813,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:814,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:815,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:820,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:821,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:825,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:831,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:832,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:835,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:839,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:842,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:844,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:845,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:849,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:859,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:860,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:862,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:864,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:870,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:876,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:877,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:878,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:882,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:883,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:887,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:889,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:890,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:894,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:895,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:896,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:899,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:900,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:903,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:904,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:908,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:915,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:919,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:920,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:930,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:932,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:933,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:937,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:939,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:940,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:942,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:949,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:952,1
    - Dst: RSA*::meth::bn_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:954,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:956,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:960,1
    - Dst: bn_correct_top
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:971,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:974,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 239
    argCount: 4
    argNames:
    - r0
    - I
    - rsa
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 607
    functionDepth: 8
    functionLinenumber: 607
    functionLinenumberEnd: 976
    functionName: rsa_ossl_mod_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp_mont_consttime_x2
    - bn_mod_add_fixed_top
    - BN_CTX_start
    - bn_mul_mont_fixed_top
    - bn_mul_fixed_top
    - BN_is_negative
    - bn_mod_sub_fixed_top
    - BN_CTX_get
    - bn_correct_top
    - sk_RSA_PRIME_INFO_num
    - bn_to_mont_fixed_top
    - BN_with_flags
    - RSA*::meth::bn_mod_exp
    - BN_mul
    - BN_sub
    - BN_new
    - bn_from_mont_fixed_top
    - BN_free
    - BN_add
    - BN_mod
    - BN_MONT_CTX_set_locked
    - BN_mod_exp_mont
    - sk_RSA_PRIME_INFO_value
    - BN_CTX_end
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int rsa_ossl_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: rsa_ossl_init
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rsa_ossl_init(RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:990,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:991,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:992,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:996,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:997,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 984
    functionDepth: 4
    functionLinenumber: 984
    functionLinenumberEnd: 1000
    functionName: rsa_ossl_finish
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ossl.c
    functionUses: 0
    functionsReached:
    - sk_RSA_PRIME_INFO_value
    - BN_MONT_CTX_free
    - sk_RSA_PRIME_INFO_num
    linkageType: ''
    returnType: int
    signature: int rsa_ossl_finish(RSA *rsa)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:33,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:34,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:35,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:46,1
    - Dst: BN_GENCB_set_old
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:50,1
    - Dst: RSA_generate_key_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:52,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:53,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:54,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:58,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:59,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c:60,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - bits
    - e_value
    - cb_arg
    argTypes:
    - int
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 62
    functionName: RSA_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_depr.c
    functionUses: 1
    functionsReached:
    - BN_GENCB_set_old
    - BN_new
    - RSA_generate_key_ex
    - RSA_new
    - BN_GENCB_free
    - BN_GENCB_new
    - BN_free
    - RSA_free
    - BN_set_bit
    linkageType: ''
    returnType: RSA
    signature: "RSA *RSA_generate_key(int bits, unsigned long e_value,\n                      void
      (*callback) (int, int, void *), void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:35,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:46,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: RSA_padding_add_PKCS1_type_1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - memset
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:75,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:94,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:102,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:107,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:113,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 119
    functionName: RSA_padding_check_PKCS1_type_1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,\n
      \                                  const unsigned char *from, int flen,\n                                   int
      num)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:129,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:132,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:144,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:149,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - libctx
    - to
    - tlen
    - from
    - flen
    argTypes:
    - OSSL_LIB_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 159
    functionName: ossl_rsa_padding_add_PKCS1_type_2_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_padding_add_PKCS1_type_2_ex(OSSL_LIB_CTX *libctx, unsigned
      char *to,\n                                         int tlen, const unsigned
      char *from,\n                                         int flen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_padding_add_PKCS1_type_2_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: RSA_padding_add_PKCS1_type_2
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_padding_add_PKCS1_type_2_ex
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,\n                                 const
      unsigned char *from, int flen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:186,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:190,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:192,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:202,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:208,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:209,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:214,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:216,1
    - Dst: constant_time_ge
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:226,1
    - Dst: constant_time_ge
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:238,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:250,1
    - Dst: constant_time_lt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:250,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:253,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:255,1
    - Dst: constant_time_lt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:258,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:259,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:262,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:269,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:270,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:273,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 167
    functionDepth: 9
    functionLinenumber: 167
    functionLinenumberEnd: 274
    functionName: RSA_padding_check_PKCS1_type_2
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c
    functionUses: 1
    functionsReached:
    - constant_time_lt
    - constant_time_select_int
    - OPENSSL_malloc
    - constant_time_eq
    - err_clear_last_constant_time
    - ERR_raise
    - OPENSSL_clear_free
    - constant_time_is_zero
    - constant_time_ge
    - constant_time_select_8
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,\n
      \                                  const unsigned char *from, int flen,\n                                   int
      num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:312,1
    - Dst: RAND_priv_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:320,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:322,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:326,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:327,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:331,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:332,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:344,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:347,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:364,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:367,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 7
    argNames:
    - libctx
    - to
    - tlen
    - from
    - flen
    - client_version
    - alt_version
    argTypes:
    - OSSL_LIB_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 396
    functionName: ossl_rsa_padding_check_PKCS1_type_2_TLS
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pk1.c
    functionUses: 0
    functionsReached:
    - constant_time_eq
    - constant_time_is_zero_8
    - RAND_priv_bytes_ex
    - ERR_raise
    - constant_time_is_zero
    - constant_time_select_8
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_padding_check_PKCS1_type_2_TLS(OSSL_LIB_CTX *libctx,\n
      \                                           unsigned char *to, size_t tlen,\n
      \                                           const unsigned char *from,\n                                            size_t
      flen, int client_version,\n                                            int alt_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:27,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:27,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:28,1
    - Dst: BIO_set_fp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:31,1
    - Dst: RSA_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:32,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - x
    - 'off'
    argTypes:
    - FILE*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: RSA_print_fp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_free
    - ERR_raise
    - BIO_s_file
    - BIO_set_fp
    - RSA_print
    linkageType: ''
    returnType: int
    signature: int RSA_print_fp(FILE *fp, const RSA *x, int off)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:42,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:45,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:47,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - x
    - 'off'
    argTypes:
    - BIO*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: RSA_print
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_prn.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_new
    - EVP_PKEY_set1_RSA
    - EVP_PKEY_print_private
    linkageType: ''
    returnType: int
    signature: int RSA_print(BIO *bp, const RSA *x, int off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:43,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: RSA_padding_add_PKCS1_OAEP
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:70,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:72,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:79,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:81,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:87,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:92,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:102,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:105,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:108,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:110,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:114,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:116,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:121,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:128,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:136,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:137,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 9
    argNames:
    - libctx
    - to
    - tlen
    - from
    - flen
    - param
    - plen
    - md
    - mgf1md
    argTypes:
    - OSSL_LIB_CTX*
    - unsigned char*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - EVP_MD*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 139
    functionName: ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c
    functionUses: 2
    functionsReached:
    - RAND_bytes_ex
    - EVP_MD_get_size
    - PKCS1_MGF1
    - memcpy
    - OPENSSL_malloc
    - OPENSSL_cleanse
    - ERR_raise
    - OPENSSL_clear_free
    - EVP_sha1
    - memset
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex(OSSL_LIB_CTX *libctx,\n
      \                                           unsigned char *to, int tlen,\n                                            const
      unsigned char *from, int flen,\n                                            const
      unsigned char *param,\n                                            int plen,
      const EVP_MD *md,\n                                            const EVP_MD
      *mgf1md)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 10
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: RSA_padding_add_PKCS1_OAEP_mgf1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_check_PKCS1_OAEP_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:154,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: RSA_padding_check_PKCS1_OAEP
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - RSA_padding_check_PKCS1_OAEP_mgf1
    linkageType: ''
    returnType: int
    signature: "int 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:177,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:179,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:187,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:200,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:205,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:207,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:213,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:224,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:235,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:240,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:245,1
    - Dst: EVP_Digest
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:250,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:253,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:253,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:260,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:261,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:262,1
    - Dst: constant_time_ge
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:281,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:293,1
    - Dst: constant_time_lt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:293,1
    - Dst: constant_time_eq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:296,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:298,1
    - Dst: constant_time_lt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:301,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:314,1
    - Dst: err_clear_last_constant_time
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:315,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:318,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:319,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:320,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:322,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 158
    functionDepth: 9
    functionLinenumber: 158
    functionLinenumberEnd: 323
    functionName: RSA_padding_check_PKCS1_OAEP_mgf1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c
    functionUses: 1
    functionsReached:
    - EVP_MD_get_size
    - constant_time_lt
    - PKCS1_MGF1
    - constant_time_select_int
    - OPENSSL_malloc
    - constant_time_eq
    - OPENSSL_cleanse
    - err_clear_last_constant_time
    - ERR_raise
    - OPENSSL_clear_free
    - CRYPTO_memcmp
    - EVP_sha1
    - constant_time_is_zero
    - constant_time_ge
    - constant_time_select_8
    - EVP_Digest
    linkageType: ''
    returnType: int
    signature: "int 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: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:337,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:344,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:355,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:356,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:357,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:360,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:364,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:366,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:372,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c:373,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 5
    argNames:
    - mask
    - len
    - seed
    - seedlen
    - dgst
    argTypes:
    - unsigned char*
    - long
    - unsigned char*
    - long
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 332
    functionDepth: 8
    functionLinenumber: 332
    functionLinenumberEnd: 375
    functionName: PKCS1_MGF1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_oaep.c
    functionUses: 2
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - EVP_MD_CTX_free
    - memcpy
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - OPENSSL_cleanse
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: "int PKCS1_MGF1(unsigned char *mask, long len,\n               const
      unsigned char *seed, long seedlen, const EVP_MD *dgst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_verify_PKCS1_PSS_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - mHash
    - Hash
    - EM
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - EVP_MD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: RSA_verify_PKCS1_PSS
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - RSA_verify_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash,\n                         const
      EVP_MD *Hash, const unsigned char *EM,\n                         int sLen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:47,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:56,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:69,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:73,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:76,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:84,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:94,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:99,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:101,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:104,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:112,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:116,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:121,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:122,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:123,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:126,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:129,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:131,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:132,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:139,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:140,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 96
    argCount: 6
    argNames:
    - rsa
    - mHash
    - Hash
    - mgf1Hash
    - EM
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - EVP_MD*
    - EVP_MD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 38
    functionDepth: 9
    functionLinenumber: 38
    functionLinenumberEnd: 144
    functionName: RSA_verify_PKCS1_PSS_mgf1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 1
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_get_size
    - EVP_MD_CTX_free
    - PKCS1_MGF1
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - BN_num_bits
    - ERR_raise_data
    - ERR_raise
    - OPENSSL_free
    - EVP_DigestFinal_ex
    - memcmp
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rsa
    - EM
    - mHash
    - Hash
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - unsigned char*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: RSA_padding_add_PKCS1_PSS
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM,\n                              const
      unsigned char *mHash,\n                              const EVP_MD *Hash, int
      sLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:167,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:182,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:186,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:187,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:193,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:199,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:205,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:208,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:213,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:216,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:217,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:218,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:220,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:222,1
    - Dst: PKCS1_MGF1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:226,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:251,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:252,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 6
    argNames:
    - rsa
    - EM
    - mHash
    - Hash
    - mgf1Hash
    - sLen
    argTypes:
    - RSA*
    - unsigned char*
    - unsigned char*
    - EVP_MD*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 153
    functionDepth: 9
    functionLinenumber: 153
    functionLinenumberEnd: 256
    functionName: RSA_padding_add_PKCS1_PSS_mgf1
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - EVP_MD_get_size
    - EVP_DigestUpdate
    - PKCS1_MGF1
    - EVP_MD_CTX_free
    - OPENSSL_malloc
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - BN_num_bits
    - ERR_raise
    - OPENSSL_clear_free
    - EVP_DigestFinal_ex
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int 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: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: ossl_rsa_pss_params_30_set_defaults
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_set_defaults(RSA_PSS_PARAMS_30 *rsa_pss_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: ossl_rsa_pss_params_30_is_unrestricted
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_is_unrestricted(const RSA_PSS_PARAMS_30
      *rsa_pss_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - RSA_PSS_PARAMS_30*
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: ossl_rsa_pss_params_30_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_copy(RSA_PSS_PARAMS_30 *to,\n                                const
      RSA_PSS_PARAMS_30 *from)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rsa_pss_params
    - hashalg_nid
    argTypes:
    - RSA_PSS_PARAMS_30*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: ossl_rsa_pss_params_30_set_hashalg
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_set_hashalg(RSA_PSS_PARAMS_30 *rsa_pss_params,\n
      \                                      int hashalg_nid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rsa_pss_params
    - maskgenalg_nid
    argTypes:
    - RSA_PSS_PARAMS_30*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: ossl_rsa_pss_params_30_set_maskgenalg
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_set_maskgenalg(RSA_PSS_PARAMS_30 *rsa_pss_params,\n
      \                                         int maskgenalg_nid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rsa_pss_params
    - maskgenhashalg_nid
    argTypes:
    - RSA_PSS_PARAMS_30*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: ossl_rsa_pss_params_30_set_maskgenhashalg
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_set_maskgenhashalg(RSA_PSS_PARAMS_30 *rsa_pss_params,\n
      \                                             int maskgenhashalg_nid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rsa_pss_params
    - saltlen
    argTypes:
    - RSA_PSS_PARAMS_30*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: ossl_rsa_pss_params_30_set_saltlen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_set_saltlen(RSA_PSS_PARAMS_30 *rsa_pss_params,\n
      \                                      int saltlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rsa_pss_params
    - trailerfield
    argTypes:
    - RSA_PSS_PARAMS_30*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: ossl_rsa_pss_params_30_set_trailerfield
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_set_trailerfield(RSA_PSS_PARAMS_30 *rsa_pss_params,\n
      \                                           int trailerfield)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: ossl_rsa_pss_params_30_hashalg
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_hashalg(const RSA_PSS_PARAMS_30 *rsa_pss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: ossl_rsa_pss_params_30_maskgenalg
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_maskgenalg(const RSA_PSS_PARAMS_30 *rsa_pss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: ossl_rsa_pss_params_30_maskgenhashalg
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_maskgenhashalg(const RSA_PSS_PARAMS_30 *rsa_pss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: ossl_rsa_pss_params_30_saltlen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_saltlen(const RSA_PSS_PARAMS_30 *rsa_pss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rsa_pss_params
    argTypes:
    - RSA_PSS_PARAMS_30*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: ossl_rsa_pss_params_30_trailerfield
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_pss_params_30_trailerfield(const RSA_PSS_PARAMS_30 *rsa_pss_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_keygen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:44,1
    - Dst: RSA_generate_multi_prime_key
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - rsa
    - bits
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: RSA_generate_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - RSA_generate_multi_prime_key
    - RSA*::meth::rsa_keygen
    linkageType: ''
    returnType: int
    signature: int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB
      *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_multi_prime_keygen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:56,1
    - Dst: RSA*::meth::rsa_keygen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:66,1
    - Dst: rsa_keygen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - rsa
    - bits
    - primes
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: RSA_generate_multi_prime_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - rsa_keygen
    - RSA*::meth::rsa_keygen
    - RSA*::meth::rsa_multi_prime_keygen
    linkageType: ''
    returnType: int
    signature: "int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes,\n
      \                                BIGNUM *e_value, BN_GENCB *cb)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:90,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:95,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:96,1
    - Dst: ossl_rsa_multip_cap
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:102,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:106,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:109,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:110,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:111,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:112,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:126,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:128,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:130,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:131,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:133,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:135,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:136,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:138,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:139,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:141,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:142,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:144,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:145,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:147,1
    - Dst: sk_RSA_PRIME_INFO_new_reserve
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:152,1
    - Dst: sk_RSA_PRIME_INFO_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:157,1
    - Dst: ossl_rsa_multip_info_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:164,1
    - Dst: sk_RSA_PRIME_INFO_push
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:167,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:171,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:184,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:187,1
    - Dst: BN_generate_prime_ex2
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:191,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:209,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:212,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:217,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:217,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:219,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:220,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:221,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:225,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:226,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:227,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:229,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:233,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:242,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:246,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:250,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:268,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:270,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:285,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:306,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:308,1
    - Dst: BN_GENCB_call
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:310,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:314,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:323,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:323,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:326,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:326,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:329,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:333,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:335,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:335,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:337,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:342,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:347,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:348,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:349,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:353,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:357,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:362,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:365,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:366,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:367,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:373,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:375,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:376,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:382,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:386,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:390,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:393,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:394,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:400,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:401,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:402,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:403,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:409,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:415,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:418,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:419,1
    CyclomaticComplexity: 124
    EdgeCount: 124
    ICount: 267
    argCount: 5
    argNames:
    - rsa
    - bits
    - primes
    - e_value
    - cb
    argTypes:
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 421
    functionName: rsa_multiprime_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - BN_CTX_start
    - ERR_GET_LIB
    - BN_set_flags
    - BN_CTX_get
    - sk_RSA_PRIME_INFO_new_reserve
    - sk_RSA_PRIME_INFO_pop_free
    - ERR_peek_last_error
    - BN_secure_new
    - BN_rshift
    - BN_with_flags
    - ossl_rsa_check_public_exponent
    - BN_mul
    - BN_cmp
    - sk_RSA_PRIME_INFO_push
    - BN_sub
    - ossl_rsa_multip_cap
    - BN_new
    - BN_generate_prime_ex2
    - BN_get_word
    - BN_mod_inverse
    - ERR_raise
    - BN_free
    - BN_value_one
    - STACK_OF
    - BN_mod
    - ossl_rsa_multip_info_new
    - ERR_set_mark
    - sk_RSA_PRIME_INFO_value
    - BN_CTX_end
    - BN_GENCB_call
    - BN_CTX_new_ex
    - BN_copy
    - ERR_pop_to_mark
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: "int rsa_multiprime_keygen(RSA *rsa, int bits, int primes,\n                                 BIGNUM
      *e_value, BN_GENCB *cb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_sp800_56b_generate_key
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:430,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:439,1
    - Dst: ossl_rsa_sp800_56b_generate_key
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:440,1
    - Dst: rsa_multiprime_keygen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:442,1
    - Dst: OSSL_SELF_TEST_get_callback
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:449,1
    - Dst: rsa_keygen_pairwise_test
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:450,1
    - Dst: ossl_set_error_state
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:452,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:454,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:455,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:456,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:457,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:458,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 7
    argNames:
    - libctx
    - rsa
    - bits
    - primes
    - e_value
    - cb
    - pairwise_test
    argTypes:
    - OSSL_LIB_CTX*
    - RSA*
    - int
    - int
    - BIGNUM*
    - BN_GENCB*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 424
    functionDepth: 5
    functionLinenumber: 424
    functionLinenumberEnd: 469
    functionName: rsa_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c
    functionUses: 2
    functionsReached:
    - ossl_rsa_sp800_56b_generate_key
    - rsa_keygen_pairwise_test
    - OSSL_SELF_TEST_get_callback
    - BN_num_bits
    - rsa_multiprime_keygen
    - ossl_set_error_state
    - BN_clear_free
    linkageType: ''
    returnType: int
    signature: "int rsa_keygen(OSSL_LIB_CTX *libctx, RSA *rsa, int bits, int primes,\n
      \                     BIGNUM *e_value, BN_GENCB *cb, int pairwise_test)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_SELF_TEST_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:490,1
    - Dst: OSSL_SELF_TEST_onbegin
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:493,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:496,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:501,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:506,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:511,1
    - Dst: OSSL_SELF_TEST_oncorrupt_byte
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:514,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:516,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:519,1
    - Dst: OSSL_SELF_TEST_onend
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:524,1
    - Dst: OSSL_SELF_TEST_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:525,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c:526,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - rsa
    - cb
    - cbarg
    argTypes:
    - RSA*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 529
    functionName: rsa_keygen_pairwise_test
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_gen.c
    functionUses: 1
    functionsReached:
    - OSSL_SELF_TEST_free
    - OPENSSL_zalloc
    - OPENSSL_free
    - OSSL_SELF_TEST_new
    - OSSL_SELF_TEST_onbegin
    - OSSL_SELF_TEST_onend
    - memcmp
    - RSA_public_encrypt
    - OSSL_SELF_TEST_oncorrupt_byte
    - RSA_private_decrypt
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int rsa_keygen_pairwise_test(RSA *rsa, OSSL_CALLBACK *cb, void *cbarg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA_test_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:36,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:46,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pkey
    - pstr
    - pstrtype
    argTypes:
    - EVP_PKEY*
    - ASN1_STRING**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: rsa_param_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - RSA_test_flags
    - ASN1_item_pack
    linkageType: ''
    returnType: int
    signature: "int rsa_param_encode(const EVP_PKEY *pkey,\n                            ASN1_STRING
      **pstr, int *pstrtype)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_param_encode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:60,1
    - Dst: i2d_RSAPublicKey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:62,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:64,1
    - Dst: X509_PUBKEY_set0_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:67,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:67,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:71,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pk
    - pkey
    argTypes:
    - X509_PUBKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: rsa_pub_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - OBJ_nid2obj
    - OPENSSL_free
    - rsa_param_encode
    - i2d_RSAPublicKey
    - X509_PUBKEY_set0_param
    linkageType: ''
    returnType: int
    signature: int rsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_get0_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:83,1
    - Dst: d2i_RSAPublicKey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:85,1
    - Dst: ossl_rsa_param_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:87,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:88,1
    - Dst: RSA_clear_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:92,1
    - Dst: RSA_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:95,1
    - Dst: RSA_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:98,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:105,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - pkey
    - pubkey
    argTypes:
    - EVP_PKEY*
    - X509_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 76
    functionDepth: 7
    functionLinenumber: 76
    functionLinenumberEnd: 110
    functionName: rsa_pub_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_param_decode
    - RSA_clear_flags
    - d2i_RSAPublicKey
    - RSA_set_flags
    - RSA_free
    - EVP_PKEY_assign
    - X509_PUBKEY_get0_param
    linkageType: ''
    returnType: int
    signature: int rsa_pub_decode(EVP_PKEY *pkey, const X509_PUBKEY *pubkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:118,1
    - Dst: RSA_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:119,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:123,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: rsa_pub_cmp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_flags
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int rsa_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:134,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pkey
    - pder
    - derlen
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: old_rsa_priv_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: "int old_rsa_priv_decode(EVP_PKEY *pkey,\n                               const
      unsigned char **pder, int derlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i2d_RSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkey
    - pder
    argTypes:
    - EVP_PKEY*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: old_rsa_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - i2d_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: int old_rsa_priv_encode(const EVP_PKEY *pkey, unsigned char **pder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_param_encode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:152,1
    - Dst: i2d_RSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:154,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:157,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:158,1
    - Dst: PKCS8_pkey_set0
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:162,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:164,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:165,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - p8
    - pkey
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 171
    functionName: rsa_priv_encode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - PKCS8_pkey_set0
    - ASN1_STRING_free
    - OBJ_nid2obj
    - i2d_RSAPrivateKey
    - ERR_raise
    - OPENSSL_clear_free
    - rsa_param_encode
    linkageType: ''
    returnType: int
    signature: int rsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_key_from_pkcs8
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:176,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pkey
    - p8
    argTypes:
    - EVP_PKEY*
    - PKCS8_PRIV_KEY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: rsa_priv_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_key_from_pkcs8
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: int rsa_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: int_rsa_size
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int int_rsa_size(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: rsa_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int rsa_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_security_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: rsa_security_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_security_bits
    linkageType: ''
    returnType: int
    signature: int rsa_security_bits(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 7
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: int_rsa_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void int_rsa_free(EVP_PKEY *pkey)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:211,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:215,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:219,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:223,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:227,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:231,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:233,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:237,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:239,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:243,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:246,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:249,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:252,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:254,1
    - Dst: ossl_x509_algor_mgf1_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:256,1
    - Dst: i2a_ASN1_OBJECT
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:258,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:260,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:263,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:266,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:268,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:270,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:273,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:275,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:278,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:280,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:282,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:285,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:287,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:290,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:295,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 108
    argCount: 4
    argNames:
    - bp
    - pss_key
    - pss
    - indent
    argTypes:
    - BIO*
    - int
    - RSA_PSS_PARAMS*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 298
    functionName: rsa_pss_param_print
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_x509_algor_mgf1_decode
    - BIO_puts
    - i2a_ASN1_INTEGER
    - X509_ALGOR_free
    - BIO_indent
    - BIO_printf
    - i2a_ASN1_OBJECT
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_param_print(BIO *bp, int pss_key, RSA_PSS_PARAMS *pss,\n
      \                              int indent)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:308,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:309,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:311,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:314,1
    - Dst: pkey_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:314,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:318,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:324,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:329,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:331,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:336,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:338,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:340,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:342,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:344,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:346,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:348,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:354,1
    - Dst: BIO_indent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:356,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:360,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:365,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:370,1
    - Dst: ASN1_bn_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:377,1
    - Dst: pkey_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:382,1
    - Dst: rsa_pss_param_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:382,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 89
    argCount: 4
    argNames:
    - bp
    - pkey
    - 'off'
    - priv
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 300
    functionDepth: 6
    functionLinenumber: 300
    functionLinenumberEnd: 387
    functionName: pkey_rsa_print
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - sk_RSA_PRIME_INFO_num
    - BN_num_bits
    - ASN1_bn_print
    - sk_RSA_PRIME_INFO_value
    - rsa_pss_param_print
    - pkey_is_pss
    - BIO_indent
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_print(BIO *bp, const EVP_PKEY *pkey, int off, int priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 7
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: rsa_pub_print
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - pkey_rsa_print
    linkageType: ''
    returnType: int
    signature: "int rsa_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                         ASN1_PCTX
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bp
    - pkey
    - indent
    - ctx
    argTypes:
    - BIO*
    - EVP_PKEY*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 7
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: rsa_priv_print
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - pkey_rsa_print
    linkageType: ''
    returnType: int
    signature: "int rsa_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,\n                          ASN1_PCTX
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:404,1
    - Dst: ossl_rsa_pss_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:406,1
    - Dst: rsa_pss_param_print
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:408,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:409,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:412,1
    - Dst: X509_signature_dump
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - bp
    - sigalg
    - sig
    - indent
    - pctx
    argTypes:
    - BIO*
    - X509_ALGOR*
    - ASN1_STRING*
    - int
    - ASN1_PCTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 401
    functionDepth: 6
    functionLinenumber: 401
    functionLinenumberEnd: 418
    functionName: rsa_sig_print
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    - OBJ_obj2nid
    - X509_signature_dump
    - ossl_rsa_pss_decode
    - rsa_pss_param_print
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: int
    signature: "int rsa_sig_print(BIO *bp, const X509_ALGOR *sigalg,\n                         const
      ASN1_STRING *sig, int indent, ASN1_PCTX *pctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_pss_get_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:429,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:431,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - pkey
    - op
    - arg1
    - arg2
    argTypes:
    - EVP_PKEY*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 444
    functionName: rsa_pkey_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_pss_get_param
    - ERR_raise
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int rsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:454,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:457,1
    - Dst: EVP_PKEY_CTX_get_rsa_mgf1_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:459,1
    - Dst: EVP_PKEY_CTX_get_rsa_pss_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:461,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:464,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:466,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:466,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:467,1
    - Dst: ossl_rsa_pss_params_create
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:473,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - pkctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 451
    functionDepth: 6
    functionLinenumber: 451
    functionLinenumberEnd: 474
    functionName: rsa_ctx_to_pss
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - EVP_PKEY_CTX_get_rsa_pss_saltlen
    - EVP_PKEY_get_size
    - EVP_PKEY_CTX_get_signature_md
    - EVP_PKEY_get_bits
    - ossl_rsa_pss_params_create
    - EVP_PKEY_CTX_get_rsa_mgf1_md
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: RSA_PSS_PARAMS *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PSS_PARAMS_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:479,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:484,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:487,1
    - Dst: ossl_x509_algor_new_from_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:490,1
    - Dst: ossl_x509_algor_md_to_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:494,1
    - Dst: ossl_x509_algor_new_from_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:496,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:500,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - sigmd
    - mgf1md
    - saltlen
    argTypes:
    - EVP_MD*
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 476
    functionDepth: 12
    functionLinenumber: 476
    functionLinenumberEnd: 502
    functionName: ossl_rsa_pss_params_create
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - ASN1_INTEGER_set
    - RSA_PSS_PARAMS_new
    - ASN1_INTEGER_new
    - ossl_x509_algor_new_from_md
    - ossl_x509_algor_md_to_mgf1
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: "RSA_PSS_PARAMS *ossl_rsa_pss_params_create(const EVP_MD *sigmd,\n
      \                                          const EVP_MD *mgf1md, int saltlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsa_ctx_to_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:506,1
    - Dst: ASN1_item_pack
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:512,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:512,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 504
    functionDepth: 7
    functionLinenumber: 504
    functionLinenumberEnd: 515
    functionName: ossl_rsa_ctx_to_pss_string
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - RSA_PSS_PARAMS_free
    - ASN1_item_pack
    - rsa_ctx_to_pss
    linkageType: ''
    returnType: ASN1_STRING
    signature: ASN1_STRING *ossl_rsa_ctx_to_pss_string(EVP_PKEY_CTX *pkctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:532,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:533,1
    - Dst: ossl_rsa_pss_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:537,1
    - Dst: ossl_rsa_pss_get_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:539,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:540,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:546,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:550,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:552,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:552,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:553,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:558,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:561,1
    - Dst: EVP_PKEY_CTX_set_rsa_mgf1_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:564,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:570,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - ctx
    - pkctx
    - sigalg
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY_CTX*
    - X509_ALGOR*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 572
    functionName: ossl_rsa_pss_to_ctx
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 2
    functionsReached:
    - EVP_DigestVerifyInit
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_PKEY_CTX_set_rsa_padding
    - OBJ_obj2nid
    - ossl_rsa_pss_get_param
    - EVP_PKEY_CTX_get_signature_md
    - ERR_raise
    - ossl_rsa_pss_decode
    - EVP_MD_get_type
    - EVP_PKEY_CTX_set_rsa_mgf1_md
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_to_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pkctx,\n                        const
      X509_ALGOR *sigalg, EVP_PKEY *pkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:578,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - pmd
    - pmgf1md
    - psaltlen
    - ptrailerField
    argTypes:
    - EVP_MD**
    - EVP_MD**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 590
    functionName: rsa_pss_verify_param
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_verify_param(const EVP_MD **pmd, const EVP_MD **pmgf1md,\n
      \                               int *psaltlen, int *ptrailerField)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_pss_get_param_unverified
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:605,1
    - Dst: rsa_pss_verify_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - pss
    - pmd
    - pmgf1md
    - psaltlen
    argTypes:
    - RSA_PSS_PARAMS*
    - EVP_MD**
    - EVP_MD**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 608
    functionName: ossl_rsa_pss_get_param
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 2
    functionsReached:
    - rsa_pss_verify_param
    - ossl_rsa_pss_get_param_unverified
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_get_param(const RSA_PSS_PARAMS *pss, const EVP_MD
      **pmd,\n                           const EVP_MD **pmgf1md, int *psaltlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:620,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:621,1
    - Dst: ossl_rsa_pss_to_ctx
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:624,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 615
    functionDepth: 7
    functionLinenumber: 615
    functionLinenumberEnd: 629
    functionName: rsa_item_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_pss_to_ctx
    - OBJ_obj2nid
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: "int rsa_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it,\n                           const
      void *asn, const X509_ALGOR *sigalg,\n                           const ASN1_BIT_STRING
      *sig, EVP_PKEY *pkey)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:636,1
    - Dst: EVP_PKEY_CTX_get_rsa_padding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:638,1
    - Dst: evp_pkey_ctx_is_legacy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:647,1
    - Dst: ossl_rsa_ctx_to_pss_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:651,1
    - Dst: ASN1_STRING_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:656,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:659,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:662,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:662,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:664,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:665,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:669,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:669,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:671,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:677,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:679,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:681,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:689,1
    - Dst: d2i_X509_ALGOR
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:695,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 6
    argNames:
    - ctx
    - it
    - asn
    - alg1
    - alg2
    - sig
    argTypes:
    - EVP_MD_CTX*
    - ASN1_ITEM*
    - void*
    - X509_ALGOR*
    - X509_ALGOR*
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 631
    functionDepth: 8
    functionLinenumber: 631
    functionLinenumberEnd: 702
    functionName: rsa_item_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - X509_ALGOR_set0
    - ASN1_STRING_dup
    - ossl_rsa_ctx_to_pss_string
    - OBJ_nid2obj
    - EVP_PKEY_CTX_get_rsa_padding
    - EVP_MD_CTX_get_pkey_ctx
    - evp_pkey_ctx_is_legacy
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_get_params
    - d2i_X509_ALGOR
    linkageType: ''
    returnType: int
    signature: "int rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, const void
      *asn,\n                         X509_ALGOR *alg1, X509_ALGOR *alg2,\n                         ASN1_BIT_STRING
      *sig)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:715,1
    - Dst: ossl_rsa_pss_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:718,1
    - Dst: ossl_rsa_pss_get_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:719,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:721,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:727,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:728,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:733,1
    - Dst: X509_SIG_INFO_set
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:750,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:754,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - siginf
    - sigalg
    - sig
    argTypes:
    - X509_SIG_INFO*
    - X509_ALGOR*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 756
    functionName: rsa_sig_info_set
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - OBJ_obj2nid
    - ossl_rsa_pss_get_param
    - ossl_rsa_pss_decode
    - X509_SIG_INFO_set
    - EVP_MD_get_type
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: int
    signature: "int rsa_sig_info_set(X509_SIG_INFO *siginf, const X509_ALGOR *sigalg,\n
      \                           const ASN1_STRING *sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_check_key_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: rsa_pkey_check
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_check_key_ex
    linkageType: ''
    returnType: int
    signature: int rsa_pkey_check(const EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: rsa_pkey_dirty_cnt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rsa_pkey_dirty_cnt(const EVP_PKEY *pkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:778,1
    - Dst: RSA_get0_n
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:786,1
    - Dst: RSA_get0_e
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:786,1
    - Dst: ossl_rsa_todata
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:789,1
    - Dst: RSA_get0_d
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:793,1
    - Dst: ossl_rsa_pss_get_param_unverified
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:801,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:804,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:805,1
    - Dst: ossl_rsa_pss_params_30_set_defaults
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:806,1
    - Dst: ossl_rsa_pss_params_30_set_hashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:807,1
    - Dst: ossl_rsa_pss_params_30_set_maskgenhashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:808,1
    - Dst: ossl_rsa_pss_params_30_set_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:810,1
    - Dst: ossl_rsa_pss_params_30_todata
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:811,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:816,1
    - Dst: importer
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:820,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:823,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:824,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 6
    argNames:
    - from
    - rsa_type
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - int
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 826
    functionName: rsa_int_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_pss_params_30_set_defaults
    - ossl_rsa_pss_params_30_todata
    - ossl_rsa_pss_params_30_set_hashalg
    - OSSL_PARAM_BLD_to_param
    - importer
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - ossl_rsa_pss_get_param_unverified
    - RSA_get0_e
    - ossl_rsa_pss_params_30_set_maskgenhashalg
    - EVP_MD_get_type
    - ossl_rsa_pss_params_30_set_saltlen
    - RSA_get0_n
    - ossl_rsa_todata
    - RSA_get0_d
    linkageType: ''
    returnType: int
    signature: "int rsa_int_export_to(const EVP_PKEY *from, int rsa_type,\n                             void
      *to_keydata,\n                             OSSL_FUNC_keymgmt_import_fn *importer,\n
      \                            OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_get0_pkey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:832,1
    - Dst: ossl_rsa_new_with_ctx
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:833,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:839,1
    - Dst: RSA_clear_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:843,1
    - Dst: RSA_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:844,1
    - Dst: ossl_rsa_pss_params_30_fromdata
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:846,1
    - Dst: ossl_rsa_pss_params_30_is_unrestricted
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:856,1
    - Dst: ossl_rsa_pss_params_30_is_unrestricted
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:864,1
    - Dst: ossl_rsa_pss_params_30_hashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:866,1
    - Dst: ossl_rsa_pss_params_30_maskgenhashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:867,1
    - Dst: ossl_rsa_pss_params_30_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:868,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:869,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:870,1
    - Dst: ossl_rsa_pss_params_create
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:872,1
    - Dst: ossl_rsa_fromdata
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:882,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:887,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:890,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:896,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - params
    - vpctx
    - rsa_type
    argTypes:
    - OSSL_PARAM[]
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 828
    functionDepth: 13
    functionLinenumber: 828
    functionLinenumberEnd: 898
    functionName: rsa_int_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - RSA_clear_flags
    - ossl_rsa_pss_params_create
    - ossl_rsa_pss_params_30_is_unrestricted
    - ossl_rsa_pss_params_30_fromdata
    - ossl_rsa_pss_params_30_maskgenhashalg
    - ossl_rsa_fromdata
    - ERR_raise
    - RSA_set_flags
    - ossl_rsa_pss_params_30_saltlen
    - EVP_get_digestbynid
    - EVP_PKEY_assign_RSA
    - ossl_rsa_pss_params_30_hashalg
    - RSA_free
    - ossl_rsa_new_with_ctx
    - EVP_PKEY_assign
    - EVP_PKEY_CTX_get0_pkey
    linkageType: ''
    returnType: int
    signature: "int rsa_int_import_from(const OSSL_PARAM params[], void *vpctx,\n
      \                              int rsa_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_int_export_to
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - from
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 900
    functionDepth: 4
    functionLinenumber: 900
    functionLinenumberEnd: 906
    functionName: rsa_pkey_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_int_export_to
    linkageType: ''
    returnType: int
    signature: "int rsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata,\n                              OSSL_FUNC_keymgmt_import_fn
      *importer,\n                              OSSL_LIB_CTX *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_int_export_to
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - from
    - to_keydata
    - importer
    - libctx
    - propq
    argTypes:
    - EVP_PKEY*
    - void*
    - OSSL_FUNC_keymgmt_import_fn*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 914
    functionName: rsa_pss_pkey_export_to
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_int_export_to
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_pkey_export_to(const EVP_PKEY *from, void *to_keydata,\n
      \                                 OSSL_FUNC_keymgmt_import_fn *importer,\n                                  OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_int_import_from
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 916
    functionDepth: 14
    functionLinenumber: 916
    functionLinenumberEnd: 919
    functionName: rsa_pkey_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_int_import_from
    linkageType: ''
    returnType: int
    signature: int rsa_pkey_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_int_import_from
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - vpctx
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 921
    functionDepth: 14
    functionLinenumber: 921
    functionLinenumberEnd: 924
    functionName: rsa_pss_pkey_import_from
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - rsa_int_import_from
    linkageType: ''
    returnType: int
    signature: int rsa_pss_pkey_import_from(const OSSL_PARAM params[], void *vpctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:933,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:938,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - EVP_PKEY*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 926
    functionDepth: 7
    functionLinenumber: 926
    functionLinenumberEnd: 942
    functionName: rsa_pkey_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_ameth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign
    - ossl_rsa_dup
    - RSA_free
    linkageType: ''
    returnType: int
    signature: int rsa_pkey_copy(EVP_PKEY *to, EVP_PKEY *from)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:32,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:37,1
    - Dst: ossl_rsa_multip_calc_product
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 48
    functionName: rsa_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_multip_calc_product
    - RSA_new
    - RSA_free
    linkageType: ''
    returnType: int
    signature: "int rsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                 void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: rsa_pss_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: "int rsa_pss_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,\n
      \                     void *exarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - operation
    - pval
    - it
    - exarg
    argTypes:
    - int
    - ASN1_VALUE**
    - ASN1_ITEM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: rsa_oaep_cb
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_free
    linkageType: ''
    returnType: int
    signature: "int rsa_oaep_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM
      *it,\n                       void *exarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:122,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: RSAPublicKey_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: RSA
    signature: RSA *RSAPublicKey_dup(const RSA *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_item_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:127,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: RSAPrivateKey_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_asn1.c
    functionUses: 1
    functionsReached:
    - ASN1_ITEM_rptr
    - ASN1_item_dup
    linkageType: ''
    returnType: RSA
    signature: RSA *RSAPrivateKey_dup(const RSA *rsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_none.c:24,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_none.c:29,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_none.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - to
    - tlen
    - from
    - flen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: RSA_padding_add_none
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_none.c
    functionUses: 2
    functionsReached:
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_add_none(unsigned char *to, int tlen,\n                         const
      unsigned char *from, int flen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_none.c:42,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_none.c:46,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_none.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: RSA_padding_check_none
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_none.c
    functionUses: 0
    functionsReached:
    - memset
    - ERR_raise
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int RSA_padding_check_none(unsigned char *to, int tlen,\n                           const
      unsigned char *from, int flen, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: RSA_bits
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - BN_num_bits
    linkageType: ''
    returnType: int
    signature: int RSA_bits(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: RSA_size
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 11
    functionsReached:
    - BN_num_bytes
    linkageType: ''
    returnType: int
    signature: int RSA_size(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_pub_enc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: RSA_public_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - RSA*::meth::rsa_pub_enc
    linkageType: ''
    returnType: int
    signature: "int RSA_public_encrypt(int flen, const unsigned char *from, unsigned
      char *to,\n                       RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_priv_enc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: RSA_private_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_priv_enc
    linkageType: ''
    returnType: int
    signature: "int RSA_private_encrypt(int flen, const unsigned char *from,\n                        unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_priv_dec
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: RSA_private_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - RSA*::meth::rsa_priv_dec
    linkageType: ''
    returnType: int
    signature: "int RSA_private_decrypt(int flen, const unsigned char *from,\n                        unsigned
      char *to, RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA*::meth::rsa_pub_dec
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - flen
    - from
    - to
    - rsa
    - padding
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: RSA_public_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached:
    - RSA*::meth::rsa_pub_dec
    linkageType: ''
    returnType: int
    signature: "int RSA_public_decrypt(int flen, const unsigned char *from, unsigned
      char *to,\n                       RSA *rsa, int padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: RSA_flags
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSA_flags(const RSA *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_BLINDING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: RSA_blinding_off
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - BN_BLINDING_free
    linkageType: ''
    returnType: void
    signature: void RSA_blinding_off(RSA *rsa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_blinding_off
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:75,1
    - Dst: RSA_setup_blinding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: RSA_blinding_on
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - RSA_setup_blinding
    - RSA_blinding_off
    linkageType: ''
    returnType: int
    signature: int RSA_blinding_on(RSA *rsa, BN_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:96,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:97,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:98,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:99,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:103,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:103,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:105,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:105,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:107,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:110,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - d
    - p
    - q
    - ctx
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: rsa_get_public_exp
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 0
    functionsReached:
    - BN_mod_inverse
    - BN_CTX_start
    - BN_CTX_end
    - BN_value_one
    - BN_mul
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *rsa_get_public_exp(const BIGNUM *d, const BIGNUM *p,\n                                  const
      BIGNUM *q, BN_CTX *ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:123,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:129,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:130,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:132,1
    - Dst: rsa_get_public_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:137,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:139,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:150,1
    - Dst: BN_with_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:153,1
    - Dst: BN_BLINDING_create_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:155,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:161,1
    - Dst: BN_BLINDING_set_current_thread
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:165,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:168,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:170,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c:172,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - rsa
    - in_ctx
    argTypes:
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 175
    functionName: RSA_setup_blinding
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_crpt.c
    functionUses: 2
    functionsReached:
    - BN_BLINDING_create_param
    - BN_new
    - BN_CTX_free
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_free
    - BN_CTX_new_ex
    - BN_with_flags
    - BN_CTX_get
    - BN_BLINDING_set_current_thread
    - rsa_get_public_exp
    linkageType: ''
    returnType: BN_BLINDING
    signature: BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *in_ctx)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:31,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:37,1
    - Dst: ossl_rsa_multip_cap
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:39,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:39,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:40,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:45,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:46,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:47,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:48,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:49,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:50,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:54,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:58,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:60,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:62,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:64,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:68,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:70,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:76,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:81,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:82,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:84,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:89,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:94,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:95,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:100,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:103,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:105,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:109,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:109,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:113,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:113,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:119,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:123,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:127,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:132,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:133,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:133,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:137,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:141,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:145,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:150,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:155,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:157,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:162,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:162,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:166,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:170,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:172,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:176,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:176,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:180,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:184,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:186,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:190,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:194,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:196,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:201,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:203,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:203,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:207,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:213,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:216,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:220,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:222,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:227,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:228,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:229,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:230,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:231,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:232,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 197
    argCount: 2
    argNames:
    - key
    - cb
    argTypes:
    - RSA*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 234
    functionName: rsa_validate_keypair_multiprime
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c
    functionUses: 0
    functionsReached:
    - BN_mod_mul
    - sk_RSA_PRIME_INFO_num
    - BN_mul
    - BN_cmp
    - BN_sub
    - BN_div
    - ossl_rsa_multip_cap
    - BN_new
    - BN_is_one
    - BN_mod_inverse
    - BN_num_bits
    - ERR_raise
    - BN_free
    - BN_value_one
    - BN_mod
    - BN_gcd
    - BN_is_odd
    - sk_RSA_PRIME_INFO_value
    - BN_CTX_new_ex
    - BN_CTX_free
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int rsa_validate_keypair_multiprime(const RSA *key, BN_GENCB *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: ossl_rsa_validate_public
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_sp800_56b_check_public
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_validate_public(const RSA *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_sp800_56b_check_private
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: ossl_rsa_validate_private
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_sp800_56b_check_private
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_validate_private(const RSA *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:250,1
    - Dst: RSA_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:250,1
    - Dst: rsa_validate_keypair_multiprime
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 8
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: ossl_rsa_validate_pairwise
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c
    functionUses: 0
    functionsReached:
    - rsa_validate_keypair_multiprime
    - RSA_bits
    - ossl_rsa_sp800_56b_check_keypair
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_validate_pairwise(const RSA *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_check_key_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: RSA_check_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c
    functionUses: 2
    functionsReached:
    - RSA_check_key_ex
    linkageType: ''
    returnType: int
    signature: int RSA_check_key(const RSA *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_validate_public
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:264,1
    - Dst: ossl_rsa_validate_private
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:265,1
    - Dst: ossl_rsa_validate_pairwise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:266,1
    - Dst: rsa_validate_keypair_multiprime
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - key
    - cb
    argTypes:
    - RSA*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 9
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: RSA_check_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_chk.c
    functionUses: 2
    functionsReached:
    - ossl_rsa_validate_private
    - ossl_rsa_validate_public
    - ossl_rsa_validate_pairwise
    - rsa_validate_keypair_multiprime
    linkageType: ''
    returnType: int
    signature: int RSA_check_key_ex(const RSA *key, BN_GENCB *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:36,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:37,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:39,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:42,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:44,1
    - Dst: i2d_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:48,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:49,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:55,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 57
    functionName: RSA_sign_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c
    functionUses: 0
    functionsReached:
    - i2d_ASN1_OCTET_STRING
    - OPENSSL_malloc
    - ERR_raise
    - OPENSSL_clear_free
    - RSA_private_encrypt
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int 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: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:69,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:70,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:74,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:76,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:79,1
    - Dst: d2i_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:85,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:90,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:91,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:96,1
    - Dst: OPENSSL_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - dtype
    - m
    - m_len
    - sigbuf
    - siglen
    - rsa
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 99
    functionName: RSA_verify_ASN1_OCTET_STRING
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_saos.c
    functionUses: 0
    functionsReached:
    - RSA_public_decrypt
    - ASN1_OCTET_STRING_free
    - OPENSSL_malloc
    - ERR_raise
    - d2i_ASN1_OCTET_STRING
    - OPENSSL_clear_free
    - memcmp
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int 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: 16
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:92,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:96,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:97,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:106,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:107,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:108,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:109,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:112,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:113,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:116,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:118,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:121,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:122,1
    - Dst: ossl_bn_rsa_fips186_4_gen_prob_primes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:125,1
    - Dst: ossl_bn_rsa_fips186_4_gen_prob_primes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:130,1
    - Dst: ossl_rsa_check_pminusq_diff
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:135,1
    - Dst: ossl_rsa_check_pminusq_diff
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:142,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:154,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:156,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:157,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:159,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 6
    argNames:
    - rsa
    - test
    - nbits
    - e
    - ctx
    - cb
    argTypes:
    - RSA*
    - RSA_ACVP_TEST*
    - int
    - BIGNUM*
    - BN_CTX*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 161
    functionName: ossl_rsa_fips186_4_gen_prob_primes
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_pminusq_diff
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_set_flags
    - BN_clear
    - BN_secure_new
    - ossl_bn_rsa_fips186_4_gen_prob_primes
    - ossl_rsa_check_public_exponent
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_fips186_4_gen_prob_primes(RSA *rsa, RSA_ACVP_TEST *test,\n
      \                                      int nbits, const BIGNUM *e, BN_CTX *ctx,\n
      \                                      BN_GENCB *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ifc_ffc_compute_security_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:175,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:179,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nbits
    - strength
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 188
    functionName: ossl_rsa_sp800_56b_validate_strength
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c
    functionUses: 1
    functionsReached:
    - ossl_ifc_ffc_compute_security_bits
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_sp800_56b_validate_strength(int nbits, int strength)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_get_strength
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:203,1
    - Dst: ossl_ifc_ffc_compute_security_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:203,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - rng
    - nbits
    argTypes:
    - EVP_RAND_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: rsa_validate_rng_strength
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c
    functionUses: 0
    functionsReached:
    - ossl_ifc_ffc_compute_security_bits
    - EVP_RAND_get_strength
    - ERR_raise
    linkageType: ''
    returnType: int
    signature: int rsa_validate_rng_strength(EVP_RAND_CTX *rng, int nbits)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:238,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:239,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:240,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:241,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:242,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:243,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:247,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:248,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:249,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:250,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:251,1
    - Dst: ossl_rsa_get_lcm
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:254,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:258,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:259,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:263,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:265,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:268,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:269,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:273,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:280,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:281,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:286,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:289,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:290,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:295,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:298,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:299,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:303,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:304,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:307,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:308,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:315,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:317,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:319,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:321,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:323,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:325,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:328,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:329,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:330,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:331,1
    - Dst: BN_clear
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:332,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:334,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 94
    argCount: 4
    argNames:
    - rsa
    - nbits
    - e
    - ctx
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 336
    functionName: ossl_rsa_sp800_56b_derive_params_from_pq
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_new
    - BN_mul
    - BN_mod_inverse
    - BN_num_bits
    - BN_CTX_start
    - ossl_rsa_get_lcm
    - BN_CTX_end
    - BN_free
    - BN_set_flags
    - BN_clear
    - BN_secure_new
    - BN_mod
    - BN_clear_free
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_sp800_56b_derive_params_from_pq(RSA *rsa, int nbits,\n
      \                                            const BIGNUM *e, BN_CTX *ctx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_sp800_56b_validate_strength
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:371,1
    - Dst: rsa_validate_rng_strength
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:375,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:375,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:378,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:384,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:385,1
    - Dst: ossl_rsa_fips186_4_gen_prob_primes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:394,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:398,1
    - Dst: ossl_rsa_sp800_56b_derive_params_from_pq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:405,1
    - Dst: ossl_rsa_sp800_56b_pairwise_test
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:414,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:417,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:418,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 4
    argNames:
    - rsa
    - nbits
    - efixed
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 356
    functionDepth: 14
    functionLinenumber: 356
    functionLinenumberEnd: 420
    functionName: ossl_rsa_sp800_56b_generate_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c
    functionUses: 1
    functionsReached:
    - BN_new
    - ossl_rsa_sp800_56b_validate_strength
    - ossl_rsa_sp800_56b_derive_params_from_pq
    - rsa_validate_rng_strength
    - RAND_get0_private
    - BN_free
    - BN_CTX_new_ex
    - ossl_rsa_fips186_4_gen_prob_primes
    - ossl_rsa_sp800_56b_pairwise_test
    - BN_set_word
    - BN_CTX_free
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_sp800_56b_generate_key(RSA *rsa, int nbits, const BIGNUM
      *efixed,\n                                    BN_GENCB *cb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:433,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:434,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:435,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:438,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:440,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:441,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:442,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:443,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:445,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c:447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 449
    functionName: ossl_rsa_sp800_56b_pairwise_test
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_sp800_56b_gen.c
    functionUses: 1
    functionsReached:
    - BN_mod_exp
    - BN_CTX_start
    - ERR_raise
    - BN_CTX_end
    - BN_set_flags
    - BN_set_word
    - BN_CTX_get
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_sp800_56b_pairwise_test(RSA *rsa, BN_CTX *ctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:37,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:40,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:42,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:43,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:44,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:45,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:50,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:63,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:67,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:73,1
    - Dst: BN_X931_derive_prime_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:76,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:82,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:83,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:93,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:96,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:100,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:100,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:102,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:102,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:104,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:107,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:110,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:113,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:117,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:122,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:125,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:129,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:132,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:136,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:143,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:144,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:145,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 103
    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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 149
    functionName: RSA_X931_derive_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_div
    - BN_new
    - BN_X931_derive_prime_ex
    - BN_CTX_free
    - BN_mul
    - BN_mod_inverse
    - BN_CTX_new
    - BN_CTX_start
    - BN_CTX_end
    - BN_value_one
    - BN_mod
    - BN_gcd
    - BN_CTX_get
    - BN_sub
    linkageType: ''
    returnType: int
    signature: "int 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:158,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:162,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:163,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:164,1
    - Dst: BN_X931_generate_Xpq
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:167,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:170,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:171,1
    - Dst: BN_X931_generate_prime_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:177,1
    - Dst: BN_X931_generate_prime_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:181,1
    - Dst: RSA_X931_derive_ex
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:190,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:198,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c:199,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - rsa
    - bits
    - e
    - cb
    argTypes:
    - RSA*
    - int
    - BIGNUM*
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 206
    functionName: RSA_X931_generate_key_ex
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_x931g.c
    functionUses: 0
    functionsReached:
    - BN_X931_generate_prime_ex
    - BN_X931_generate_Xpq
    - BN_new
    - BN_CTX_free
    - BN_CTX_new
    - BN_CTX_start
    - RSA_X931_derive_ex
    - BN_CTX_end
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e,\n
      \                            BN_GENCB *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pkey
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: pkey_is_pss
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pkey_is_pss(pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: pkey_ctx_is_pss
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pkey_ctx_is_pss(ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: meth_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - meth
    - items
    - items_n
    argTypes:
    - void*
    - OSSL_ITEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: meth2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c
    functionUses: 0
    functionsReached:
    - meth_is_a
    linkageType: ''
    returnType: int
    signature: "int meth2nid(const void *meth,\n                    int (*meth_is_a)(const
      void *meth, const char *name),\n                    const OSSL_ITEM *items,
      size_t items_n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - meth
    - items
    - items_n
    argTypes:
    - int
    - OSSL_ITEM*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: nid2name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *nid2name(int meth, const OSSL_ITEM *items, size_t items_n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - md
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 10
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: md_is_a
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c
    functionUses: 0
    functionsReached:
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: int md_is_a(const void *md, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: meth2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c:72,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: ossl_rsa_oaeppss_md2nid
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c
    functionUses: 0
    functionsReached:
    - meth2nid
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_oaeppss_md2nid(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nid2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c:78,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: ossl_rsa_oaeppss_nid2name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c
    functionUses: 0
    functionsReached:
    - nid2name
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *ossl_rsa_oaeppss_nid2name(int md)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mgf
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: ossl_rsa_mgf_nid2name
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_schemes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ossl_rsa_mgf_nid2name(int mgf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:68,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:74,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:75,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:77,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:79,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:80,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:81,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:86,1
    - Dst: collect_numbers
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:91,1
    - Dst: sk_BIGNUM_new_null
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:91,1
    - Dst: collect_numbers
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:93,1
    - Dst: sk_BIGNUM_new_null
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:93,1
    - Dst: collect_numbers
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:95,1
    - Dst: sk_BIGNUM_new_null
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:95,1
    - Dst: sk_BIGNUM_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:100,1
    - Dst: ossl_rsa_set0_all_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:101,1
    - Dst: sk_BIGNUM_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:106,1
    - Dst: sk_BIGNUM_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:107,1
    - Dst: sk_BIGNUM_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:108,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:112,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:113,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:114,1
    - Dst: sk_BIGNUM_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:115,1
    - Dst: sk_BIGNUM_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:116,1
    - Dst: sk_BIGNUM_pop_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:117,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 3
    argNames:
    - rsa
    - params
    - include_private
    argTypes:
    - RSA*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 119
    functionName: ossl_rsa_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - sk_BIGNUM_pop_free
    - sk_BIGNUM_num
    - OSSL_PARAM_get_BN
    - ossl_rsa_set0_all_params
    - BN_free
    - STACK_OF
    - sk_BIGNUM_new_null
    - sk_BIGNUM_free
    - OSSL_PARAM_locate_const
    - RSA_set0_key
    - collect_numbers
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_fromdata(RSA *rsa, const OSSL_PARAM params[], int include_private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:128,1
    - Dst: sk_BIGNUM_const_new_null
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:128,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:129,1
    - Dst: sk_BIGNUM_const_new_null
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:129,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:130,1
    - Dst: sk_BIGNUM_const_new_null
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:130,1
    - Dst: RSA_get0_key
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:135,1
    - Dst: ossl_rsa_get0_all_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:136,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:138,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:139,1
    - Dst: ossl_param_build_set_bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:145,1
    - Dst: ossl_param_build_set_multi_key_bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:147,1
    - Dst: ossl_param_build_set_multi_key_bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:150,1
    - Dst: ossl_param_build_set_multi_key_bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:152,1
    - Dst: ossl_rsa_acvp_test_get_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:161,1
    - Dst: sk_BIGNUM_const_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:165,1
    - Dst: sk_BIGNUM_const_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:166,1
    - Dst: sk_BIGNUM_const_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:167,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 4
    argNames:
    - rsa
    - bld
    - params
    - include_private
    argTypes:
    - RSA*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: ossl_rsa_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - ossl_param_build_set_bn
    - ossl_rsa_acvp_test_get_params
    - ossl_param_build_set_multi_key_bn
    - sk_BIGNUM_const_free
    - ossl_rsa_get0_all_params
    - STACK_OF
    - sk_BIGNUM_const_new_null
    - RSA_get0_key
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_todata(RSA *rsa, OSSL_PARAM_BLD *bld, OSSL_PARAM params[],\n
      \                   int include_private)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_pss_params_30_is_unrestricted
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:174,1
    - Dst: ossl_rsa_pss_params_30_hashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:175,1
    - Dst: ossl_rsa_pss_params_30_maskgenalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:176,1
    - Dst: ossl_rsa_pss_params_30_maskgenhashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:177,1
    - Dst: ossl_rsa_pss_params_30_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:178,1
    - Dst: ossl_rsa_pss_params_30_hashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:179,1
    - Dst: ossl_rsa_pss_params_30_maskgenalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:180,1
    - Dst: ossl_rsa_pss_params_30_maskgenhashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:182,1
    - Dst: ossl_rsa_oaeppss_nid2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:185,1
    - Dst: ossl_rsa_oaeppss_nid2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:188,1
    - Dst: ossl_rsa_oaeppss_nid2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:191,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:203,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:205,1
    - Dst: ossl_param_build_set_utf8_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:208,1
    - Dst: ossl_param_build_set_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 3
    argNames:
    - pss
    - bld
    - params
    argTypes:
    - RSA_PSS_PARAMS_30*
    - OSSL_PARAM_BLD*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 171
    functionDepth: 6
    functionLinenumber: 171
    functionLinenumberEnd: 214
    functionName: ossl_rsa_pss_params_30_todata
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - ossl_rsa_oaeppss_nid2name
    - ossl_param_build_set_utf8_string
    - ossl_rsa_pss_params_30_is_unrestricted
    - ossl_rsa_pss_params_30_maskgenalg
    - ossl_rsa_pss_params_30_maskgenhashalg
    - ossl_param_build_set_int
    - ossl_rsa_pss_params_30_hashalg
    - ossl_rsa_pss_params_30_saltlen
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_todata(const RSA_PSS_PARAMS_30 *pss,\n
      \                                 OSSL_PARAM_BLD *bld, OSSL_PARAM params[])"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:231,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:233,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:235,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:237,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:239,1
    - Dst: ossl_rsa_pss_params_30_set_defaults
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:253,1
    - Dst: ossl_rsa_pss_params_30_maskgenalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:259,1
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:264,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:267,1
    - Dst: ossl_rsa_mgf_nid2name
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:268,1
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:282,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:285,1
    - Dst: ossl_rsa_pss_params_30_set_hashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:286,1
    - Dst: ossl_rsa_oaeppss_md2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:287,1
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:296,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:299,1
    - Dst: ossl_rsa_pss_params_30_set_maskgenhashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:300,1
    - Dst: ossl_rsa_oaeppss_md2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:301,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:306,1
    - Dst: ossl_rsa_pss_params_30_set_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:307,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:314,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:315,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 56
    argCount: 4
    argNames:
    - pss_params
    - defaults_set
    - params
    - libctx
    argTypes:
    - RSA_PSS_PARAMS_30*
    - int*
    - OSSL_PARAM[]
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 216
    functionDepth: 11
    functionLinenumber: 216
    functionLinenumberEnd: 317
    functionName: ossl_rsa_pss_params_30_fromdata
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - ossl_rsa_pss_params_30_set_defaults
    - OSSL_PARAM_locate_const
    - ossl_rsa_pss_params_30_maskgenalg
    - ossl_rsa_mgf_nid2name
    - ossl_rsa_pss_params_30_set_hashalg
    - ossl_rsa_oaeppss_md2nid
    - EVP_MD_free
    - EVP_MD_fetch
    - ossl_rsa_pss_params_30_set_maskgenhashalg
    - OSSL_PARAM_get_utf8_ptr
    - ossl_rsa_pss_params_30_set_saltlen
    - OSSL_PARAM_get_int
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_params_30_fromdata(RSA_PSS_PARAMS_30 *pss_params,\n
      \                                   int *defaults_set,\n                                    const
      OSSL_PARAM params[],\n                                    OSSL_LIB_CTX *libctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get_method
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:322,1
    - Dst: RSA_PKCS1_OpenSSL
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: ossl_rsa_is_foreign
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - RSA_get_method
    - RSA_PKCS1_OpenSSL
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_is_foreign(const RSA *rsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - BIGNUM**
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: rsa_bn_dup_check
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 0
    functionsReached:
    - BN_dup
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline rsa_bn_dup_check(BIGNUM **out, const BIGNUM *f)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_is_foreign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:343,1
    - Dst: ossl_rsa_new_with_ctx
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:346,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:351,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:353,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:360,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:364,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:366,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:368,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:370,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:372,1
    - Dst: sk_RSA_PRIME_INFO_num
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:384,1
    - Dst: sk_RSA_PRIME_INFO_new_reserve
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:385,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:392,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:393,1
    - Dst: sk_RSA_PRIME_INFO_push
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:397,1
    - Dst: sk_RSA_PRIME_INFO_value
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:399,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:400,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:402,1
    - Dst: rsa_bn_dup_check
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:404,1
    - Dst: ossl_rsa_multip_calc_product
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:407,1
    - Dst: RSA_PSS_PARAMS_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:412,1
    - Dst: ossl_x509_algor_mgf1_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:415,1
    - Dst: CRYPTO_dup_ex_data
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:420,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:428,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 80
    argCount: 2
    argNames:
    - rsa
    - selection
    argTypes:
    - RSA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 430
    functionName: ossl_rsa_dup
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - CRYPTO_dup_ex_data
    - ossl_x509_algor_mgf1_decode
    - sk_RSA_PRIME_INFO_num
    - ossl_rsa_is_foreign
    - OPENSSL_zalloc
    - ERR_raise
    - sk_RSA_PRIME_INFO_value
    - RSA_PSS_PARAMS_dup
    - ossl_rsa_multip_calc_product
    - RSA_free
    - ossl_rsa_new_with_ctx
    - sk_RSA_PRIME_INFO_new_reserve
    - sk_RSA_PRIME_INFO_push
    - rsa_bn_dup_check
    linkageType: ''
    returnType: RSA
    signature: RSA *ossl_rsa_dup(const RSA *rsa, int selection)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TYPE_unpack_sequence
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:437,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:437,1
    - Dst: ossl_x509_algor_mgf1_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:444,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 452
    functionName: ossl_rsa_pss_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 4
    functionsReached:
    - ASN1_ITEM_rptr
    - ossl_x509_algor_mgf1_decode
    - ASN1_TYPE_unpack_sequence
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: RSA_PSS_PARAMS
    signature: RSA_PSS_PARAMS *ossl_rsa_pss_decode(const X509_ALGOR *alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RSA_get0_pss_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:460,1
    - Dst: ossl_rsa_get0_pss_params_30
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:461,1
    - Dst: ossl_rsa_pss_get_param_unverified
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:475,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:478,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:479,1
    - Dst: ossl_rsa_pss_params_30_set_defaults
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:480,1
    - Dst: ossl_rsa_pss_params_30_set_hashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:481,1
    - Dst: ossl_rsa_pss_params_30_set_maskgenhashalg
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:482,1
    - Dst: ossl_rsa_pss_params_30_set_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:484,1
    - Dst: ossl_rsa_pss_params_30_set_trailerfield
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:485,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - rsa
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 491
    functionName: ossl_rsa_sync_to_pss_params_30
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_get0_pss_params_30
    - ossl_rsa_pss_params_30_set_defaults
    - ossl_rsa_pss_params_30_set_hashalg
    - RSA_get0_pss_params
    - ossl_rsa_pss_get_param_unverified
    - ossl_rsa_pss_params_30_set_maskgenhashalg
    - ossl_rsa_pss_params_30_set_trailerfield
    - EVP_MD_get_type
    - ossl_rsa_pss_params_30_set_saltlen
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_sync_to_pss_params_30(RSA *rsa)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_pss_params_30_set_defaults
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:500,1
    - Dst: ossl_x509_algor_get_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:504,1
    - Dst: ossl_x509_algor_get_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:507,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:511,1
    - Dst: ossl_rsa_pss_params_30_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:513,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:515,1
    - Dst: ossl_rsa_pss_params_30_trailerfield
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pss
    - pmd
    - pmgf1md
    - psaltlen
    - ptrailerField
    argTypes:
    - RSA_PSS_PARAMS*
    - EVP_MD**
    - EVP_MD**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 520
    functionName: ossl_rsa_pss_get_param_unverified
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 4
    functionsReached:
    - ossl_rsa_pss_params_30_set_defaults
    - ASN1_INTEGER_get
    - ossl_x509_algor_get_md
    - ossl_rsa_pss_params_30_trailerfield
    - ossl_rsa_pss_params_30_saltlen
    linkageType: ''
    returnType: int
    signature: "int ossl_rsa_pss_get_param_unverified(const RSA_PSS_PARAMS *pss,\n
      \                                     const EVP_MD **pmd, const EVP_MD **pmgf1md,\n
      \                                     int *psaltlen, int *ptrailerField)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:529,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:530,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:535,1
    - Dst: ossl_rsa_pss_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:538,1
    - Dst: ossl_rsa_set0_pss_params
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:539,1
    - Dst: RSA_PSS_PARAMS_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:540,1
    - Dst: ossl_rsa_sync_to_pss_params_30
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:543,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - rsa
    - alg
    argTypes:
    - RSA*
    - X509_ALGOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 546
    functionName: ossl_rsa_param_decode
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - ossl_rsa_sync_to_pss_params_30
    - OBJ_obj2nid
    - ERR_raise
    - ossl_rsa_pss_decode
    - X509_ALGOR_get0
    - ossl_rsa_set0_pss_params
    - RSA_PSS_PARAMS_free
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_param_decode(RSA *rsa, const X509_ALGOR *alg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKCS8_pkey_get0
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:556,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:558,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:560,1
    - Dst: ossl_rsa_param_decode
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:563,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:564,1
    - Dst: RSA_clear_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:568,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:569,1
    - Dst: RSA_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:571,1
    - Dst: RSA_set_flags
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c:574,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - p8inf
    - libctx
    - propq
    argTypes:
    - PKCS8_PRIV_KEY_INFO*
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 548
    functionDepth: 7
    functionLinenumber: 548
    functionLinenumberEnd: 582
    functionName: ossl_rsa_key_from_pkcs8
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_backend.c
    functionUses: 1
    functionsReached:
    - ossl_rsa_param_decode
    - RSA_clear_flags
    - OBJ_obj2nid
    - ERR_raise
    - RSA_set_flags
    - PKCS8_pkey_get0
    - RSA_free
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: RSA
    signature: "RSA *ossl_rsa_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,\n                             OSSL_LIB_CTX
      *libctx, const char *propq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:23,1
    - Dst: OSSL_PARAM_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:24,1
    - Dst: OSSL_PARAM_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:25,1
    - Dst: OSSL_PARAM_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:26,1
    - Dst: OSSL_PARAM_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:27,1
    - Dst: OSSL_PARAM_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:28,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:33,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:38,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:45,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:49,1
    - Dst: ossl_rsa_acvp_test_gen_params_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:56,1
    - Dst: ossl_rsa_acvp_test_gen_params_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - OSSL_PARAM**
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 63
    functionName: ossl_rsa_acvp_test_gen_params_new
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BN
    - OPENSSL_zalloc
    - OPENSSL_memdup
    - OSSL_PARAM_locate_const
    - ossl_rsa_acvp_test_gen_params_free
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_acvp_test_gen_params_new(OSSL_PARAM **dst, const OSSL_PARAM
      src[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:73,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: ossl_rsa_acvp_test_gen_params_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ossl_rsa_acvp_test_gen_params_free(OSSL_PARAM *dst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_rsa_acvp_test_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:85,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:89,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:94,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:95,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:97,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:98,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:100,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:101,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:103,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:104,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:106,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:107,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:109,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:110,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:114,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:115,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:116,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:117,1
    - Dst: ossl_rsa_acvp_test_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:121,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 2
    argNames:
    - r
    - params
    argTypes:
    - RSA*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 123
    functionName: ossl_rsa_acvp_test_set_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c
    functionUses: 0
    functionsReached:
    - BN_new
    - OSSL_PARAM_get_BN
    - OPENSSL_zalloc
    - OSSL_PARAM_locate_const
    - ossl_rsa_acvp_test_free
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_acvp_test_set_params(RSA *r, const OSSL_PARAM params[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:135,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:136,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:138,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:139,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:141,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:142,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:144,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - r
    - params
    argTypes:
    - RSA*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: ossl_rsa_acvp_test_get_params
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c
    functionUses: 1
    functionsReached:
    - OSSL_PARAM_set_BN
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: int
    signature: int ossl_rsa_acvp_test_get_params(RSA *r, OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:154,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:155,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:156,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:157,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:158,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:159,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:160,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:161,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:162,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:163,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - RSA_ACVP_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: ossl_rsa_acvp_test_free
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_acvp_test_params.c
    functionUses: 2
    functionsReached:
    - BN_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void ossl_rsa_acvp_test_free(RSA_ACVP_TEST *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_reason_error_string
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_err.c:162,1
    - Dst: ERR_load_strings_const
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_err.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: ossl_err_load_RSA_strings
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_err.c
    functionUses: 1
    functionsReached:
    - ERR_load_strings_const
    - ERR_reason_error_string
    linkageType: ''
    returnType: int
    signature: int ossl_err_load_RSA_strings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: rsa_pss_restricted
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsa_pss_restricted(rctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:62,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: pkey_rsa_init
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_ctx_is_pss
    - OPENSSL_zalloc
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_init(EVP_PKEY_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pkey_rsa_init
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:86,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:101,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 108
    functionName: pkey_rsa_copy
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - OPENSSL_free
    - OPENSSL_memdup
    - pkey_rsa_init
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:115,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:115,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:115,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pk
    argTypes:
    - RSA_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: setup_tbuf
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - ERR_raise
    - RSA_size
    - EVP_PKEY_get0_RSA
    linkageType: ''
    returnType: int
    signature: int setup_tbuf(RSA_PKEY_CTX *ctx, EVP_PKEY_CTX *pk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:126,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:127,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:128,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: pkey_rsa_cleanup
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void pkey_rsa_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:144,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:148,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:152,1
    - Dst: RSA_sign_ASN1_OCTET_STRING
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:156,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:163,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:166,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:167,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:170,1
    - Dst: RSA_X931_hash_id
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:171,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:171,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:172,1
    - Dst: RSA_sign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:176,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:176,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:182,1
    - Dst: RSA_padding_add_PKCS1_PSS_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:184,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:189,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:189,1
    - Dst: RSA_private_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:195,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 133
    functionDepth: 10
    functionLinenumber: 133
    functionLinenumberEnd: 201
    functionName: pkey_rsa_sign
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - RSA_sign
    - RSA_X931_hash_id
    - memcpy
    - RSA_sign_ASN1_OCTET_STRING
    - ERR_raise
    - EVP_PKEY_get0_RSA
    - EVP_MD_get_type
    - setup_tbuf
    - RSA_padding_add_PKCS1_PSS_mgf1
    - RSA_private_encrypt
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                         size_t
      *siglen, const unsigned char *tbs,\n                         size_t tbslen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:214,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:218,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:220,1
    - Dst: RSA_X931_hash_id
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:225,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:225,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:226,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:229,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:230,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:234,1
    - Dst: ossl_rsa_verify
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:237,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:237,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - rout
    - routlen
    - sig
    - siglen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 203
    functionDepth: 9
    functionLinenumber: 203
    functionLinenumberEnd: 253
    functionName: pkey_rsa_verifyrecover
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - RSA_X931_hash_id
    - RSA_public_decrypt
    - memcpy
    - ossl_rsa_verify
    - ERR_raise
    - EVP_PKEY_get0_RSA
    - EVP_MD_get_type
    - setup_tbuf
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_verifyrecover(EVP_PKEY_CTX *ctx,\n                                  unsigned
      char *rout, size_t *routlen,\n                                  const unsigned
      char *sig, size_t siglen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:265,1
    - Dst: RSA_verify
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:270,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:270,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:272,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:273,1
    - Dst: pkey_rsa_verifyrecover
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:277,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:281,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:283,1
    - Dst: RSA_verify_PKCS1_PSS_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:287,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:297,1
    - Dst: RSA_public_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:299,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:305,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 255
    functionDepth: 10
    functionLinenumber: 255
    functionLinenumberEnd: 310
    functionName: pkey_rsa_verify
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - RSA_public_decrypt
    - RSA_verify
    - ERR_raise
    - memcmp
    - EVP_PKEY_get0_RSA
    - EVP_MD_get_type
    - setup_tbuf
    - pkey_rsa_verifyrecover
    - RSA_verify_PKCS1_PSS_mgf1
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_verify(EVP_PKEY_CTX *ctx,\n                           const
      unsigned char *sig, size_t siglen,\n                           const unsigned
      char *tbs, size_t tbslen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:323,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:326,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:327,1
    - Dst: RSA_padding_add_PKCS1_OAEP_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:329,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:335,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 312
    functionDepth: 11
    functionLinenumber: 312
    functionLinenumberEnd: 343
    functionName: pkey_rsa_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_padding_add_PKCS1_OAEP_mgf1
    - EVP_PKEY_get0_RSA
    - RSA_public_encrypt
    - setup_tbuf
    - RSA_size
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_encrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:356,1
    - Dst: setup_tbuf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:359,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:361,1
    - Dst: RSA_padding_check_PKCS1_OAEP_mgf1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:364,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:370,1
    - Dst: constant_time_select_s
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:372,1
    - Dst: constant_time_msb_s
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:372,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:373,1
    - Dst: constant_time_msb
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 345
    functionDepth: 10
    functionLinenumber: 345
    functionLinenumberEnd: 375
    functionName: pkey_rsa_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - constant_time_msb_s
    - constant_time_select_int
    - constant_time_msb
    - RSA_padding_check_PKCS1_OAEP_mgf1
    - EVP_PKEY_get0_RSA
    - setup_tbuf
    - RSA_private_decrypt
    - constant_time_select_s
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_decrypt(EVP_PKEY_CTX *ctx,\n                            unsigned
      char *out, size_t *outlen,\n                            const unsigned char
      *in, size_t inlen)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:384,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:387,1
    - Dst: RSA_X931_hash_id
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:392,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:393,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 2
    argNames:
    - md
    - padding
    argTypes:
    - EVP_MD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 426
    functionName: check_padding_md
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - RSA_X931_hash_id
    - ERR_raise
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int check_padding_md(const EVP_MD *md, int padding)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: check_padding_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:435,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:442,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:443,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:450,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:456,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:466,1
    - Dst: rsa_pss_restricted
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:474,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:477,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:481,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:483,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:493,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:500,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:500,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:501,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:504,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:510,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:519,1
    - Dst: check_padding_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:529,1
    - Dst: rsa_pss_restricted
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:531,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:532,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:532,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:534,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:548,1
    - Dst: rsa_pss_restricted
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:557,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:558,1
    - Dst: EVP_MD_get_type
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:558,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:560,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:569,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:572,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:584,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:588,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:607,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:611,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 165
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 618
    functionName: pkey_rsa_ctrl
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - EVP_MD_get_size
    - rsa_pss_restricted
    - BN_is_one
    - pkey_ctx_is_pss
    - ERR_raise
    - BN_free
    - check_padding_md
    - OPENSSL_free
    - EVP_sha1
    - EVP_MD_get_type
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:624,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:627,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:630,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:632,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:634,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:636,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:638,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:640,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:643,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:646,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:649,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:652,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:654,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:656,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:659,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:660,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:663,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:664,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:666,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:669,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:673,1
    - Dst: EVP_PKEY_CTX_set1_rsa_keygen_pubexp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:675,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:676,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:680,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:681,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_primes
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:683,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:686,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:687,1
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:691,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:693,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:694,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:697,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:698,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:701,1
    - Dst: atoi
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:702,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:704,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:708,1
    - Dst: EVP_PKEY_CTX_md
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:709,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:712,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:717,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:720,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:722,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 3
    argNames:
    - ctx
    - type
    - value
    argTypes:
    - EVP_PKEY_CTX*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 620
    functionDepth: 7
    functionLinenumber: 620
    functionLinenumberEnd: 727
    functionName: pkey_rsa_ctrl_str
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_PKEY_CTX_set_rsa_padding
    - pkey_ctx_is_pss
    - EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - ERR_raise
    - OPENSSL_hexstr2buf
    - BN_free
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - OPENSSL_free
    - EVP_PKEY_CTX_set1_rsa_keygen_pubexp
    - strcmp
    - EVP_PKEY_CTX_md
    - atoi
    - EVP_PKEY_CTX_set_rsa_keygen_primes
    - BN_asc2bn
    linkageType: ''
    returnType: int
    signature: "int pkey_rsa_ctrl_str(EVP_PKEY_CTX *ctx,\n                             const
      char *type, const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:734,1
    - Dst: ossl_rsa_pss_params_create
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - rsa
    - ctx
    argTypes:
    - RSA*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 730
    functionDepth: 13
    functionLinenumber: 730
    functionLinenumberEnd: 745
    functionName: rsa_set_pss_param
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - pkey_ctx_is_pss
    - ossl_rsa_pss_params_create
    linkageType: ''
    returnType: int
    signature: int rsa_set_pss_param(RSA *rsa, EVP_PKEY_CTX *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:755,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:756,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:759,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:763,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:765,1
    - Dst: evp_pkey_set_cb_translate
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:768,1
    - Dst: RSA_generate_multi_prime_key
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:772,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:774,1
    - Dst: rsa_set_pss_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:775,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:776,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:780,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 747
    functionDepth: 14
    functionLinenumber: 747
    functionLinenumberEnd: 784
    functionName: pkey_rsa_keygen
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - BN_new
    - rsa_set_pss_param
    - RSA_new
    - BN_GENCB_free
    - BN_GENCB_new
    - RSA_free
    - BN_set_word
    - RSA_generate_multi_prime_key
    - EVP_PKEY_assign
    - evp_pkey_set_cb_translate
    linkageType: ''
    returnType: int
    signature: int pkey_rsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 824
    functionName: ossl_rsa_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_rsa_pkey_method(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pkey_ctx_is_pss
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:840,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:842,1
    - Dst: ossl_rsa_pss_get_param
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:847,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:851,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:851,1
    - Dst: RSA_bits
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:852,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c:855,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 831
    functionDepth: 9
    functionLinenumber: 831
    functionLinenumberEnd: 871
    functionName: pkey_pss_init
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - pkey_ctx_is_pss
    - ossl_rsa_pss_get_param
    - ERR_raise
    - RSA_bits
    - EVP_PKEY_get0_RSA
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int pkey_pss_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 900
    functionName: ossl_rsa_pss_pkey_method
    functionSourceFile: /src/openssl-3.0.15/crypto/rsa/rsa_pmeth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EVP_PKEY_METHOD
    signature: EVP_PKEY_METHOD *ossl_rsa_pss_pkey_method(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:28,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: DES_options
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ecb_enc.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: char
    signature: char *DES_options(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:44,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:46,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:48,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:50,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ecb_enc.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - input
    - output
    - ks
    - enc
    argTypes:
    - const_DES_cblock*
    - DES_cblock*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: DES_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ecb_enc.c
    functionUses: 1
    functionsReached:
    - c2l
    - DES_encrypt1
    - l2c
    linkageType: ''
    returnType: void
    signature: "void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,\n
      \                    DES_key_schedule *ks, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ecb3_enc.c:27,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ecb3_enc.c:28,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/ecb3_enc.c:32,1
    - Dst: DES_decrypt3
      Src: /src/openssl-3.0.15/crypto/des/ecb3_enc.c:34,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ecb3_enc.c:37,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ecb3_enc.c:38,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: DES_ecb3_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ecb3_enc.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    - DES_decrypt3
    linkageType: ''
    returnType: void
    signature: "void 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:38,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:40,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:42,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:45,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:47,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:58,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:60,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:62,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:65,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64enc.c:67,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 79
    functionName: DES_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/cfb64enc.c
    functionUses: 1
    functionsReached:
    - c2l
    - DES_encrypt1
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:28,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:37,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:38,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:46,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:47,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:48,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:49,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:50,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:51,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:52,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:53,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:54,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:55,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:56,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:57,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:58,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:59,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:60,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:61,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:63,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:64,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:65,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:66,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:67,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:68,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:69,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:70,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:71,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:72,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:73,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:74,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:75,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:76,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:77,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:78,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:82,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:83,1
    - Dst: FP
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 3
    argNames:
    - data
    - ks
    - enc
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 89
    functionName: DES_encrypt1
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_enc.c
    functionUses: 3
    functionsReached:
    - IP
    - ROTATE
    - FP
    - D_ENCRYPT
    linkageType: ''
    returnType: void
    signature: void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:106,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:107,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:115,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:116,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:117,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:118,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:119,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:120,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:121,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:122,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:123,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:124,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:125,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:126,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:127,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:128,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:129,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:130,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:132,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:133,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:134,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:135,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:136,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:137,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:138,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:139,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:140,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:141,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:142,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:143,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:144,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:145,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:146,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:147,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:150,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 3
    argNames:
    - data
    - ks
    - enc
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 153
    functionName: DES_encrypt2
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_enc.c
    functionUses: 0
    functionsReached:
    - D_ENCRYPT
    - ROTATE
    linkageType: ''
    returnType: void
    signature: void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:162,1
    - Dst: DES_encrypt2
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:165,1
    - Dst: DES_encrypt2
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:166,1
    - Dst: DES_encrypt2
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:167,1
    - Dst: FP
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:170,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 173
    functionName: DES_encrypt3
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - IP
    - DES_encrypt2
    - FP
    linkageType: ''
    returnType: void
    signature: "void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,\n                  DES_key_schedule
      *ks2, DES_key_schedule *ks3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IP
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:182,1
    - Dst: DES_encrypt2
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:185,1
    - Dst: DES_encrypt2
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:186,1
    - Dst: DES_encrypt2
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:187,1
    - Dst: FP
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:190,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 193
    functionName: DES_decrypt3
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - IP
    - DES_encrypt2
    - FP
    linkageType: ''
    returnType: void
    signature: "void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,\n                  DES_key_schedule
      *ks2, DES_key_schedule *ks3)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:218,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:219,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:221,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:222,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:228,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:232,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:233,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:236,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:242,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:246,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:247,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:250,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:251,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:255,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:256,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:258,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:259,1
    - Dst: DES_decrypt3
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:266,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:272,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:273,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:278,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:279,1
    - Dst: DES_decrypt3
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:286,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:292,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:298,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/des_enc.c:299,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 303
    functionName: DES_ede3_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_enc.c
    functionUses: 1
    functionsReached:
    - l2cn
    - DES_encrypt3
    - c2l
    - c2ln
    - l2c
    - DES_decrypt3
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:28,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:29,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:32,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:33,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:35,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:41,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:46,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cbc_cksm.c:47,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 59
    functionName: DES_cbc_cksum
    functionSourceFile: /src/openssl-3.0.15/crypto/des/cbc_cksm.c
    functionUses: 0
    functionsReached:
    - c2ln
    - c2l
    - DES_encrypt1
    - l2c
    linkageType: ''
    returnType: DES_LONG
    signature: "DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output,\n
      \                      long length, DES_key_schedule *schedule,\n                       const_DES_cblock
      *ivec)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:52,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:53,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:59,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:62,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:66,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:85,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb_enc.c:86,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 88
    functionName: DES_ofb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ofb_enc.c
    functionUses: 0
    functionsReached:
    - l2cn
    - c2ln
    - c2l
    - l2c
    - DES_encrypt1
    linkageType: ''
    returnType: void
    signature: "void DES_ofb_encrypt(const unsigned char *in, unsigned char *out,
      int numbits,\n                     long length, DES_key_schedule *schedule,\n
      \                    DES_cblock *ivec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:34,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:35,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:37,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:38,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:43,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:44,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:46,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:47,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:52,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:54,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:56,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:59,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:64,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:66,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:68,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:71,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:72,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:74,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:75,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:77,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:79,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:81,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:84,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:85,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:90,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:92,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:94,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:97,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:103,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/xcbc_enc.c:104,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 109
    functionName: DES_xcbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/xcbc_enc.c
    functionUses: 1
    functionsReached:
    - l2cn
    - c2ln
    - c2l
    - l2c
    - DES_encrypt1
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: DES_set_odd_parity
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DES_set_odd_parity(DES_cblock *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_eq_8
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - const_DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: DES_check_key_parity
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - constant_time_eq_8
    linkageType: ''
    returnType: int
    signature: int DES_check_key_parity(const_DES_cblock *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:124,1
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:125,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - const_DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: DES_is_weak_key
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - constant_time_is_zero
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int DES_is_weak_key(const_DES_cblock *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: HPERM_OP
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPERM_OP(a,t,n,m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_check_key_parity
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:302,1
    - Dst: DES_is_weak_key
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:304,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: DES_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key_unchecked
    - DES_check_key_parity
    - DES_is_weak_key
    linkageType: ''
    returnType: int
    signature: int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_check_key_parity
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:317,1
    - Dst: DES_is_weak_key
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:319,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: DES_set_key_checked
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key_unchecked
    - DES_check_key_parity
    - DES_is_weak_key
    linkageType: ''
    returnType: int
    signature: int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:335,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:341,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:342,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:348,1
    - Dst: HPERM_OP
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:349,1
    - Dst: HPERM_OP
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:350,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:351,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:352,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:353,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:384,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 389
    functionName: DES_set_key_unchecked
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 7
    functionsReached:
    - memcpy
    - PERM_OP
    - c2l
    - HPERM_OP
    - ROTATE
    linkageType: ''
    returnType: void
    signature: void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule
      *schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key
      Src: /src/openssl-3.0.15/crypto/des/set_key.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - schedule
    argTypes:
    - const_DES_cblock*
    - DES_key_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: DES_key_sched
    functionSourceFile: /src/openssl-3.0.15/crypto/des/set_key.c
    functionUses: 0
    functionsReached:
    - DES_set_key
    linkageType: ''
    returnType: int
    signature: int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:37,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:38,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:42,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:43,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:46,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:49,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:51,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:61,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64enc.c:62,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 66
    functionName: DES_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ofb64enc.c
    functionUses: 1
    functionsReached:
    - c2l
    - DES_encrypt1
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: PERM_OP
    functionSourceFile: /src/openssl-3.0.15/crypto/des/fcrypt_b.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERM_OP(a,b,t,n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: HPERM_OP
    functionSourceFile: /src/openssl-3.0.15/crypto/des/fcrypt_b.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPERM_OP(a,t,n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:47,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:48,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:49,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:50,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:51,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:52,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:53,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:54,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:55,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:56,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:57,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:58,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:59,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:60,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:61,1
    - Dst: D_ENCRYPT
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:62,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:67,1
    - Dst: ROTATE
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:68,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:70,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:71,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:72,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:73,1
    - Dst: PERM_OP
      Src: /src/openssl-3.0.15/crypto/des/fcrypt_b.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 4
    argNames:
    - out
    - ks
    - Eswap0
    - Eswap1
    argTypes:
    - DES_LONG*
    - DES_key_schedule*
    - DES_LONG
    - DES_LONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 78
    functionName: fcrypt_body
    functionSourceFile: /src/openssl-3.0.15/crypto/des/fcrypt_b.c
    functionUses: 0
    functionsReached:
    - D_ENCRYPT
    - PERM_OP
    - ROTATE
    linkageType: ''
    returnType: void
    signature: "void fcrypt_body(DES_LONG *out, DES_key_schedule *ks, DES_LONG Eswap0,\n
      \                DES_LONG Eswap1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: c2l
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: c2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: l2c
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: n2l
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: l2n
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: l2cn
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: ROTATE
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - R
    - ','
    - S
    - ','
    - u
    - ','
    - t
    - ','
    - E0
    - ','
    - E1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: LOAD_DATA_tmp
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA_tmp(R,S,u,t,E0,E1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - R
    - ','
    - S
    - ','
    - u
    - ','
    - t
    - ','
    - E0
    - ','
    - E1
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: LOAD_DATA
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA(R,S,u,t,E0,E1,tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: LOAD_DATA_tmp
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA_tmp(a,b,c,d,e,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - R
    - ','
    - S
    - ','
    - u
    - ','
    - t
    - ','
    - E0
    - ','
    - E1
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: LOAD_DATA
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_DATA(R,S,u,t,E0,E1,tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - LL
    - ','
    - R
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: D_ENCRYPT
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D_ENCRYPT(LL,R,S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - t
    - ','
    - n
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: PERM_OP
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERM_OP(a,b,t,n,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: IP
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IP(l,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: FP
    functionSourceFile: /src/openssl-3.0.15/crypto/des/des_local.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FP(l,r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:38,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:39,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:43,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:44,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:49,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:54,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:55,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:63,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ofb64ede.c:64,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 68
    functionName: DES_ede3_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ofb64ede.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:36,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:37,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:39,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:40,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:45,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:47,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:49,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:52,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:57,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:59,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:61,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:65,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:66,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:69,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:70,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:72,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:74,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:76,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:79,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:80,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:85,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:87,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:89,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:92,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/ncbc_enc.c:100,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 106
    functionName: DES_ncbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/ncbc_enc.c
    functionUses: 1
    functionsReached:
    - l2cn
    - c2ln
    - c2l
    - l2c
    - DES_encrypt1
    linkageType: ''
    returnType: void
    signature: "void DES_ncbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                     long length, DES_key_schedule *_schedule,\n                      DES_cblock
      *ivec, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/crypto/des/rand_key.c:22,1
    - Dst: DES_is_weak_key
      Src: /src/openssl-3.0.15/crypto/des/rand_key.c:24,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/rand_key.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ret
    argTypes:
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: DES_random_key
    functionSourceFile: /src/openssl-3.0.15/crypto/des/rand_key.c
    functionUses: 0
    functionsReached:
    - DES_is_weak_key
    - RAND_priv_bytes
    - DES_set_odd_parity
    linkageType: ''
    returnType: int
    signature: int DES_random_key(DES_cblock *ret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:32,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:33,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:36,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:37,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:39,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:42,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:47,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:48,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:51,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:52,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:54,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:55,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:58,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:62,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:63,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/pcbc_enc.c:65,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 72
    functionName: DES_pcbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/pcbc_enc.c
    functionUses: 0
    functionsReached:
    - l2cn
    - c2ln
    - c2l
    - l2c
    - DES_encrypt1
    linkageType: ''
    returnType: void
    signature: "void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,\n
      \                     long length, DES_key_schedule *schedule,\n                      DES_cblock
      *ivec, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:39,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:40,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:44,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:49,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:50,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:61,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:62,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:66,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:71,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:72,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 84
    functionName: DES_ede3_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/cfb64ede.c
    functionUses: 1
    functionsReached:
    - DES_encrypt3
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:106,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:107,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:113,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:114,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:118,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:132,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:133,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:134,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:135,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:137,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:145,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:146,1
    - Dst: DES_encrypt3
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:154,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:155,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:169,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:170,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:171,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:172,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:174,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:182,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:183,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:187,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:192,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb64ede.c:193,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 195
    functionName: DES_ede3_cfb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/cfb64ede.c
    functionUses: 2
    functionsReached:
    - l2cn
    - DES_encrypt3
    - c2l
    - c2ln
    - memmove
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:47,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:55,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:56,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:62,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:63,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:67,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:82,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:83,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:84,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:85,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:90,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:99,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:100,1
    - Dst: DES_encrypt1
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:109,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:110,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:125,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:126,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:127,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:128,1
    - Dst: memmove
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:133,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:142,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:143,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:148,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:153,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/cfb_enc.c:154,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
    assertStmts:
    - condition: (sizeof(sh[0]) == 4)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/openssl-3.0.15/crypto/des/cfb_enc.c
    constantsTouched: []
    func_position:
      end: 156
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 156
    functionName: DES_cfb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/cfb_enc.c
    functionUses: 2
    functionsReached:
    - assert
    - l2cn
    - c2ln
    - c2l
    - memmove
    - l2c
    - DES_encrypt1
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Q_B0
    functionSourceFile: /src/openssl-3.0.15/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B0(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: Q_B1
    functionSourceFile: /src/openssl-3.0.15/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Q_B2
    functionSourceFile: /src/openssl-3.0.15/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: Q_B3
    functionSourceFile: /src/openssl-3.0.15/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_B3(a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Q_B0
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:47,1
    - Dst: Q_B1
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:47,1
    - Dst: Q_B2
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:47,1
    - Dst: Q_B3
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:48,1
    - Dst: Q_B0
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:49,1
    - Dst: Q_B1
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:49,1
    - Dst: Q_B2
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:49,1
    - Dst: Q_B3
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:50,1
    - Dst: Q_B1
      Src: /src/openssl-3.0.15/crypto/des/qud_cksm.c:58,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 83
    functionName: DES_quad_cksum
    functionSourceFile: /src/openssl-3.0.15/crypto/des/qud_cksm.c
    functionUses: 0
    functionsReached:
    - Q_B2
    - Q_B3
    - Q_B0
    - Q_B1
    linkageType: ''
    returnType: DES_LONG
    signature: "DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],\n
      \                       long length, int out_count, DES_cblock *seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:24,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:25,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:39,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:40,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:41,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:42,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - str
    - key
    argTypes:
    - char*
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: DES_string_to_key
    functionSourceFile: /src/openssl-3.0.15/crypto/des/str2key.c
    functionUses: 0
    functionsReached:
    - DES_set_odd_parity
    - DES_cbc_cksum
    - OPENSSL_cleanse
    - strlen
    - memset
    - DES_set_key_unchecked
    linkageType: ''
    returnType: void
    signature: void DES_string_to_key(const char *str, DES_cblock *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:51,1
    - Dst: memset
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:52,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:53,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:73,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:74,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:75,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:76,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:77,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:78,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:79,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:80,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:81,1
    - Dst: DES_set_odd_parity
      Src: /src/openssl-3.0.15/crypto/des/str2key.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - str
    - key1
    - key2
    argTypes:
    - char*
    - DES_cblock*
    - DES_cblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 83
    functionName: DES_string_to_2keys
    functionSourceFile: /src/openssl-3.0.15/crypto/des/str2key.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DES_set_odd_parity
    - DES_cbc_cksum
    - OPENSSL_cleanse
    - memset
    - strlen
    - DES_set_key_unchecked
    linkageType: ''
    returnType: void
    signature: void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock
      *key2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_fcrypt
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:69,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:82,1
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:85,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:86,1
    - Dst: DES_fcrypt
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:89,1
    - Dst: ascii2ebcdic
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:91,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - salt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: DES_crypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/fcrypt.c
    functionUses: 0
    functionsReached:
    - ebcdic2ascii
    - DES_fcrypt
    - strlen
    - OPENSSL_strlcpy
    - ascii2ebcdic
    linkageType: ''
    returnType: char
    signature: char *DES_crypt(const char *buf, const char *salt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:129,1
    - Dst: fcrypt_body
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:130,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:133,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/des/fcrypt.c:135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - buf
    - salt
    - ret
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 155
    functionName: DES_fcrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/des/fcrypt.c
    functionUses: 1
    functionsReached:
    - DES_set_key_unchecked
    - fcrypt_body
    - l2c
    linkageType: ''
    returnType: char
    signature: char *DES_fcrypt(const char *buf, const char *salt, char *ret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_skey.c:36,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_skey.c:38,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_skey.c:44,1
    - Dst: ROTATE_l32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_skey.c:61,1
    - Dst: ROTATE_l32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_skey.c:64,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - key
    - len
    - data
    - rounds
    argTypes:
    - RC5_32_KEY*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 72
    functionName: RC5_32_set_key
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_skey.c
    functionUses: 1
    functionsReached:
    - c2ln
    - c2l
    - ROTATE_l32
    linkageType: ''
    returnType: int
    signature: "int RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,\n
      \                  int rounds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:30,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:31,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:34,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:35,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:40,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:42,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:44,1
    - Dst: c2ln
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:47,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:52,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:54,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:56,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:58,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:59,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:61,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:62,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:65,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:67,1
    - Dst: RC5_32_decrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:69,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:72,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:73,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:78,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:80,1
    - Dst: RC5_32_decrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:82,1
    - Dst: l2cn
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:85,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:89,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:90,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 94
    functionName: RC5_32_cbc_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c
    functionUses: 0
    functionsReached:
    - RC5_32_encrypt
    - l2cn
    - c2ln
    - c2l
    - l2c
    - RC5_32_decrypt
    linkageType: ''
    returnType: void
    signature: "void 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:104,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:105,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:106,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:107,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:108,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:109,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:110,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:111,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:113,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:114,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:115,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:116,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:119,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:120,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:121,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:122,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:123,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:124,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:125,1
    - Dst: E_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC5_32_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 130
    functionName: RC5_32_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c
    functionUses: 1
    functionsReached:
    - E_RC5_32
    linkageType: ''
    returnType: void
    signature: void RC5_32_encrypt(unsigned long *d, RC5_32_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:141,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:142,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:143,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:144,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:146,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:147,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:148,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:149,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:151,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:152,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:153,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:154,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:156,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:157,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:158,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:159,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:160,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:161,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:162,1
    - Dst: D_RC5_32
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - d
    - key
    argTypes:
    - unsigned long*
    - RC5_32_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 166
    functionName: RC5_32_decrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_enc.c
    functionUses: 1
    functionsReached:
    - D_RC5_32
    linkageType: ''
    returnType: void
    signature: void RC5_32_decrypt(unsigned long *d, RC5_32_KEY *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:38,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:39,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:43,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:44,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:47,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:50,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:52,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:62,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c:63,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*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 67
    functionName: RC5_32_ofb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5ofb64.c
    functionUses: 0
    functionsReached:
    - RC5_32_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c:25,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c:27,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c:30,1
    - Dst: RC5_32_decrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c:32,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c:34,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - in
    - out
    - ks
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - RC5_32_KEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: RC5_32_ecb_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_ecb.c
    functionUses: 0
    functionsReached:
    - RC5_32_encrypt
    - RC5_32_decrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out,\n
      \                       RC5_32_KEY *ks, int encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: c2l
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: c2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: l2c
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2c(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: l2cn
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2cn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c
    - ','
    - l1
    - ','
    - l2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: n2ln
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2ln(c,l1,l2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: l2nn
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2nn(l1,l2,c,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: n2l
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: n2l(c,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: l2n
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2n(l,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: ROTATE_l32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_l32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: ROTATE_r32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE_r32(a,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: E_RC5_32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_RC5_32(a,b,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: D_RC5_32
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5_local.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D_RC5_32(a,b,s,n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:39,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:41,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:43,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:46,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:48,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:59,1
    - Dst: c2l
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:61,1
    - Dst: RC5_32_encrypt
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:63,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:66,1
    - Dst: l2c
      Src: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c:68,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: RC5_32_cfb64_encrypt
    functionSourceFile: /src/openssl-3.0.15/crypto/rc5/rc5cfb64.c
    functionUses: 0
    functionsReached:
    - RC5_32_encrypt
    - c2l
    - l2c
    linkageType: ''
    returnType: void
    signature: "void 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_showfatal
      Src: /src/openssl-3.0.15/ms/uplink.c:30,1
    - Dst: TerminateProcess
      Src: /src/openssl-3.0.15/ms/uplink.c:31,1
    - Dst: GetCurrentProcess
      Src: /src/openssl-3.0.15/ms/uplink.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: unimplemented
    functionSourceFile: /src/openssl-3.0.15/ms/uplink.c
    functionUses: 0
    functionsReached:
    - OPENSSL_showfatal
    - GetCurrentProcess
    - TerminateProcess
    linkageType: ''
    returnType: void
    signature: void unimplemented(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _sntprintf
      Src: /src/openssl-3.0.15/ms/uplink.c:58,1
    - Dst: _T
      Src: /src/openssl-3.0.15/ms/uplink.c:59,1
    - Dst: _tcscpy
      Src: /src/openssl-3.0.15/ms/uplink.c:60,1
    - Dst: _T
      Src: /src/openssl-3.0.15/ms/uplink.c:60,1
    - Dst: GetModuleHandle
      Src: /src/openssl-3.0.15/ms/uplink.c:63,1
    - Dst: _tcscpy
      Src: /src/openssl-3.0.15/ms/uplink.c:65,1
    - Dst: _T
      Src: /src/openssl-3.0.15/ms/uplink.c:65,1
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/ms/uplink.c:76,1
    - Dst: _tcscpy
      Src: /src/openssl-3.0.15/ms/uplink.c:79,1
    - Dst: _T
      Src: /src/openssl-3.0.15/ms/uplink.c:79,1
    - Dst: _tcscpy
      Src: /src/openssl-3.0.15/ms/uplink.c:85,1
    - Dst: _T
      Src: /src/openssl-3.0.15/ms/uplink.c:85,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - table
    - index
    argTypes:
    - void**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: OPENSSL_Uplink
    functionSourceFile: /src/openssl-3.0.15/ms/uplink.c
    functionUses: 0
    functionsReached:
    - _T
    - GetModuleHandle
    - _sntprintf
    - _tcscpy
    - GetProcAddress
    linkageType: ''
    returnType: void
    signature: void OPENSSL_Uplink(volatile void **table, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: LAZY
    functionSourceFile: /src/openssl-3.0.15/ms/uplink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UP_fprintf
      Src: /src/openssl-3.0.15/ms/uplink.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/ms/uplink.c
    functionUses: 6
    functionsReached:
    - UP_fprintf
    linkageType: ''
    returnType: void
    signature: void main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: app_stdin
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *app_stdin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: app_stdout
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *app_stdout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: app_stderr
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *app_stderr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/openssl-3.0.15/ms/applink.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: app_feof
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached:
    - feof
    linkageType: ''
    returnType: int
    signature: int app_feof(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/openssl-3.0.15/ms/applink.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: app_ferror
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: int app_ferror(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clearerr
      Src: /src/openssl-3.0.15/ms/applink.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: app_clearerr
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached:
    - clearerr
    linkageType: ''
    returnType: void
    signature: void app_clearerr(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _fileno
      Src: /src/openssl-3.0.15/ms/applink.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: app_fileno
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached:
    - _fileno
    linkageType: ''
    returnType: int
    signature: int app_fileno(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/openssl-3.0.15/ms/applink.c:84,1
    - Dst: _fileno
      Src: /src/openssl-3.0.15/ms/applink.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - mod
    argTypes:
    - FILE*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: app_fsetmod
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached:
    - _setmode
    - _fileno
    linkageType: ''
    returnType: int
    signature: int app_fsetmod(FILE *fp, char mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 139
    functionName: OPENSSL_Applink
    functionSourceFile: /src/openssl-3.0.15/ms/applink.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OPENSSL_Applink(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:29,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/test/gmdifftest.c:32,1
    - Dst: OPENSSL_gmtime
      Src: /src/openssl-3.0.15/test/gmdifftest.c:33,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/gmdifftest.c:35,1
    - Dst: OPENSSL_gmtime_adj
      Src: /src/openssl-3.0.15/test/gmdifftest.c:35,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:36,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:37,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:38,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:39,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:40,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/gmdifftest.c:42,1
    - Dst: OPENSSL_gmtime_diff
      Src: /src/openssl-3.0.15/test/gmdifftest.c:42,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/gmdifftest.c:45,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - offset
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: check_time
    functionSourceFile: /src/openssl-3.0.15/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - time
    - TEST_long_eq
    - OPENSSL_gmtime_adj
    - OPENSSL_gmtime_diff
    - TEST_true
    - OPENSSL_gmtime
    linkageType: ''
    returnType: int
    signature: int check_time(long offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:52,1
    - Dst: check_time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:53,1
    - Dst: check_time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:54,1
    - Dst: check_time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:55,1
    - Dst: check_time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:56,1
    - Dst: check_time
      Src: /src/openssl-3.0.15/test/gmdifftest.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: test_gmtime
    functionSourceFile: /src/openssl-3.0.15/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - check_time
    linkageType: ''
    returnType: int
    signature: int test_gmtime(int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/gmdifftest.c:63,1
    - Dst: ADD_ALL_TESTS_NOSUBTEST
      Src: /src/openssl-3.0.15/test/gmdifftest.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/gmdifftest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - ADD_ALL_TESTS_NOSUBTEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: nelem
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nelem(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:136,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bioprinttest.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: test_zu
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_zu(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:164,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bioprinttest.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: test_j
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_j(int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nelem
      Src: /src/openssl-3.0.15/test/bioprinttest.c:195,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:199,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:202,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:203,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:207,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:209,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bioprinttest.c:210,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bioprinttest.c:211,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - test
    - sub
    - val
    - width
    - prec
    argTypes:
    - int
    - int
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: dofptest
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - nelem
    - BIO_snprintf
    - TEST_info
    - TEST_str_eq
    - printf
    linkageType: ''
    returnType: int
    signature: int dofptest(int test, int sub, double val, const char *width, int
      prec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:229,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:230,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:231,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:232,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:233,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:233,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:234,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:235,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:235,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:236,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:237,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:237,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bioprinttest.c:238,1
    - Dst: dofptest
      Src: /src/openssl-3.0.15/test/bioprinttest.c:238,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:240,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: test_fp
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - printf
    - TEST_true
    - dofptest
    linkageType: ''
    returnType: int
    signature: int test_fp(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bioprinttest.c:249,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: test_big
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - BIO_snprintf
    linkageType: ''
    returnType: int
    signature: int test_big(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/bioprinttest.c:277,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bioprinttest.c:289,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bioprinttest.c:290,1
    - Dst: nelem
      Src: /src/openssl-3.0.15/test/bioprinttest.c:290,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bioprinttest.c:291,1
    - Dst: nelem
      Src: /src/openssl-3.0.15/test/bioprinttest.c:291,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bioprinttest.c:292,1
    - Dst: nelem
      Src: /src/openssl-3.0.15/test/bioprinttest.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 294
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - nelem
    - opt_next
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: test_open_streams
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_open_streams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: test_adjust_streams_tap_level
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_adjust_streams_tap_level(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: test_close_streams
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_close_streams(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:325,1
    - Dst: vfprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: test_vprintf_stdout
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_stdout(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:330,1
    - Dst: vfprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: test_vprintf_stderr
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_stderr(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/openssl-3.0.15/test/bioprinttest.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: test_flush_stdout
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int test_flush_stdout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/openssl-3.0.15/test/bioprinttest.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: test_flush_stderr
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int test_flush_stderr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:345,1
    - Dst: vfprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: test_vprintf_tapout
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_tapout(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:350,1
    - Dst: vfprintf
      Src: /src/openssl-3.0.15/test/bioprinttest.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: test_vprintf_taperr
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_vprintf_taperr(const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/openssl-3.0.15/test/bioprinttest.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: test_flush_tapout
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int test_flush_tapout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/openssl-3.0.15/test/bioprinttest.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: test_flush_taperr
    functionSourceFile: /src/openssl-3.0.15/test/bioprinttest.c
    functionUses: 0
    functionsReached:
    - fflush
    linkageType: ''
    returnType: int
    signature: int test_flush_taperr(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/provider_test.c:47,1
    - Dst: EVP_set_default_properties
      Src: /src/openssl-3.0.15/test/provider_test.c:57,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:62,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_test.c:62,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:64,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_test.c:64,1
    - Dst: EVP_set_default_properties
      Src: /src/openssl-3.0.15/test/provider_test.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:73,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_test.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:81,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_test.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:82,1
    - Dst: EVP_set_default_properties
      Src: /src/openssl-3.0.15/test/provider_test.c:84,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:85,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_test.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:86,1
    - Dst: EVP_set_default_properties
      Src: /src/openssl-3.0.15/test/provider_test.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:90,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_test.c:90,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:91,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/provider_test.c:92,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/provider_test.c:93,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/provider_test.c:97,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/provider_test.c:98,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/provider_test.c:99,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/provider_test.c:99,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:102,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:107,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_test.c:107,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/provider_test.c:108,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_test.c:116,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_test.c:117,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:119,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/provider_test.c:119,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:121,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:123,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/provider_test.c:124,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/provider_test.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:125,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_test.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:126,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:132,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:132,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:135,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:135,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_test.c:143,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-3.0.15/test/provider_test.c:147,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:150,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:151,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:152,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:154,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_test.c:155,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 71
    argCount: 3
    argNames:
    - libctx
    - name
    - legacy
    argTypes:
    - OSSL_LIB_CTX**
    - char*
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 36
    functionDepth: 11
    functionLinenumber: 36
    functionLinenumberEnd: 158
    functionName: test_provider
    functionSourceFile: /src/openssl-3.0.15/test/provider_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_available
    - ERR_GET_REASON
    - TEST_int_eq
    - BIO_snprintf
    - OSSL_PROVIDER_unload
    - TEST_false
    - OSSL_PROVIDER_get_params
    - OSSL_LIB_CTX_free
    - TEST_size_t_gt
    - ERR_peek_last_error
    - TEST_str_eq
    - TEST_ptr
    - TEST_true
    - ERR_print_errors_fp
    - TEST_int_gt
    - EVP_set_default_properties
    linkageType: ''
    returnType: int
    signature: "int test_provider(OSSL_LIB_CTX **libctx, const char *name,\n                         OSSL_PROVIDER
      *legacy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/provider_test.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:167,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:168,1
    - Dst: OSSL_PROVIDER_add_builtin
      Src: /src/openssl-3.0.15/test/provider_test.c:168,1
    - Dst: test_provider
      Src: /src/openssl-3.0.15/test/provider_test.c:170,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_test.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: test_builtin_provider
    functionSourceFile: /src/openssl-3.0.15/test/provider_test.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - test_provider
    - OSSL_LIB_CTX_new
    - OSSL_PROVIDER_add_builtin
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_builtin_provider(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/provider_test.c:181,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:185,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_test.c:188,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_test.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_test.c:198,1
    - Dst: OSSL_PROVIDER_add_builtin
      Src: /src/openssl-3.0.15/test/provider_test.c:198,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_test.c:200,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_test.c:201,1
    - Dst: test_provider
      Src: /src/openssl-3.0.15/test/provider_test.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 207
    functionName: test_builtin_provider_with_child
    functionSourceFile: /src/openssl-3.0.15/test/provider_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    - test_provider
    - OSSL_LIB_CTX_new
    - OSSL_PROVIDER_add_builtin
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_builtin_provider_with_child(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/provider_test.c:213,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_test.c:216,1
    - Dst: test_provider
      Src: /src/openssl-3.0.15/test/provider_test.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: test_loaded_provider
    functionSourceFile: /src/openssl-3.0.15/test/provider_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - test_provider
    - OSSL_LIB_CTX_new
    linkageType: ''
    returnType: int
    signature: int test_loaded_provider(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/provider_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/provider_test.c:246,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_test.c:259,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_test.c:261,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_test.c:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 270
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/provider_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_next
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PBE_get
      Src: /src/openssl-3.0.15/test/pbelutest.c:23,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbelutest.c:24,1
    - Dst: EVP_PBE_find
      Src: /src/openssl-3.0.15/test/pbelutest.c:24,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/pbelutest.c:25,1
    - Dst: EVP_PBE_get
      Src: /src/openssl-3.0.15/test/pbelutest.c:35,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/pbelutest.c:38,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/pbelutest.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 44
    functionName: test_pbelu
    functionSourceFile: /src/openssl-3.0.15/test/pbelutest.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - OBJ_nid2sn
    - EVP_PBE_find
    - TEST_true
    - EVP_PBE_get
    linkageType: ''
    returnType: int
    signature: int test_pbelu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pbelutest.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pbelutest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_rand.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/x509aux.c:32,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509aux.c:32,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509aux.c:34,1
    - Dst: PEM_read_bio
      Src: /src/openssl-3.0.15/test/x509aux.c:37,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509aux.c:38,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509aux.c:49,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509aux.c:50,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:51,1
    - Dst: d2i
      Src: /src/openssl-3.0.15/test/x509aux.c:55,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:58,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/test/x509aux.c:64,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:66,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/x509aux.c:71,1
    - Dst: TEST_perror
      Src: /src/openssl-3.0.15/test/x509aux.c:72,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/test/x509aux.c:76,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:78,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:85,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/x509aux.c:89,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:90,1
    - Dst: d2i
      Src: /src/openssl-3.0.15/test/x509aux.c:95,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:97,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/test/x509aux.c:101,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/x509aux.c:107,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/test/x509aux.c:111,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:113,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/x509aux.c:118,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/x509aux.c:126,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/test/x509aux.c:130,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:132,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/x509aux.c:137,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:138,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/x509aux.c:148,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/x509aux.c:149,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/x509aux.c:150,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/x509aux.c:151,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/x509aux.c:152,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/x509aux.c:153,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/x509aux.c:155,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/x509aux.c:157,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/x509aux.c:157,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/x509aux.c:160,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 114
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 167
    functionName: test_certs
    functionSourceFile: /src/openssl-3.0.15/test/x509aux.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio
    - X509_free
    - ERR_GET_REASON
    - OPENSSL_malloc
    - BIO_free
    - ERR_clear_error
    - TEST_perror
    - i2d
    - TEST_error
    - OPENSSL_free
    - ERR_peek_last_error
    - d2i
    - strcmp
    - X509_cmp
    - memcmp
    - TEST_ptr
    - BIO_new_file
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int test_certs(int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/x509aux.c:175,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509aux.c:176,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/x509aux.c:180,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509aux.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/x509aux.c
    functionUses: 0
    functionsReached:
    - test_skip_common_options
    - test_get_argument_count
    - ADD_ALL_TESTS
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_conftypes.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_decoder.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_test.c:92,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:94,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vobj
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: cleanup_object
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - BN_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_object(void *vobj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:103,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/params_test.c:103,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:108,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/params_test.c:108,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:110,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/params_test.c:110,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/params_test.c:112,1
    - Dst: cleanup_object
      Src: /src/openssl-3.0.15/test/params_test.c:117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 121
    functionName: init_object
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - cleanup_object
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - BN_hex2bn
    - TEST_ptr
    - strcpy
    - TEST_true
    linkageType: ''
    returnType: void
    signature: void *init_object(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:135,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:137,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:139,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_test.c:140,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:141,1
    - Dst: BN_native2bn
      Src: /src/openssl-3.0.15/test/params_test.c:141,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:144,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:145,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:146,1
    - Dst: OPENSSL_strndup
      Src: /src/openssl-3.0.15/test/params_test.c:146,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:149,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:150,1
    - Dst: OPENSSL_strnlen
      Src: /src/openssl-3.0.15/test/params_test.c:156,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-3.0.15/test/params_test.c:158,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/test/params_test.c:160,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:162,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - vobj
    - params
    argTypes:
    - void*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 169
    functionName: raw_set_params
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_lt
    - BN_free
    - OPENSSL_free
    - OPENSSL_strndup
    - strlen
    - strcmp
    - TEST_ptr
    - strncpy
    - OPENSSL_strnlen
    - BN_native2bn
    linkageType: ''
    returnType: int
    signature: int raw_set_params(void *vobj, const OSSL_PARAM *params)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:176,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:179,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:182,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/test/params_test.c:183,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-3.0.15/test/params_test.c:184,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/test/params_test.c:186,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:187,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:188,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/params_test.c:189,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/params_test.c:191,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:192,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:193,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/params_test.c:194,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/params_test.c:196,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/params_test.c:197,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - vobj
    - params
    argTypes:
    - void*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: raw_get_params
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - BN_bn2nativepad
    - TEST_size_t_ge
    - strlen
    - strcmp
    - BN_num_bytes
    - strcpy
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: int raw_get_params(void *vobj, OSSL_PARAM *params)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/params_test.c:214,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:215,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/params_test.c:215,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/params_test.c:217,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:218,1
    - Dst: OSSL_PARAM_get_double
      Src: /src/openssl-3.0.15/test/params_test.c:218,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/params_test.c:220,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:221,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/params_test.c:221,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/params_test.c:223,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:224,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:227,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/test/params_test.c:227,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/params_test.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:232,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/test/params_test.c:232,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:234,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/params_test.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:237,1
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:237,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:239,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - vobj
    - params
    argTypes:
    - void*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 209
    functionDepth: 5
    functionLinenumber: 209
    functionLinenumberEnd: 243
    functionName: api_set_params
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_utf8_string
    - OSSL_PARAM_get_BN
    - OPENSSL_free
    - OSSL_PARAM_get_double
    - strlen
    - OSSL_PARAM_get_utf8_ptr
    - OSSL_PARAM_locate_const
    - TEST_true
    - OSSL_PARAM_get_int
    linkageType: ''
    returnType: int
    signature: int api_set_params(void *vobj, const OSSL_PARAM *params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:250,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:251,1
    - Dst: OSSL_PARAM_set_int
      Src: /src/openssl-3.0.15/test/params_test.c:251,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:253,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:254,1
    - Dst: OSSL_PARAM_set_double
      Src: /src/openssl-3.0.15/test/params_test.c:254,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:257,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/test/params_test.c:257,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:259,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:260,1
    - Dst: OSSL_PARAM_set_utf8_string
      Src: /src/openssl-3.0.15/test/params_test.c:260,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:262,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:263,1
    - Dst: OSSL_PARAM_set_utf8_string
      Src: /src/openssl-3.0.15/test/params_test.c:263,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:266,1
    - Dst: OSSL_PARAM_set_utf8_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 2
    argNames:
    - vobj
    - params
    argTypes:
    - void*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 270
    functionName: api_get_params
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_utf8_ptr
    - OSSL_PARAM_set_utf8_string
    - OSSL_PARAM_set_BN
    - OSSL_PARAM_set_double
    - OSSL_PARAM_locate
    - TEST_true
    - OSSL_PARAM_set_int
    linkageType: ''
    returnType: int
    signature: int api_get_params(void *vobj, OSSL_PARAM *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_test.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: cleanup_app_variables
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: int
    signature: int cleanup_app_variables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cleanup_app_variables
      Src: /src/openssl-3.0.15/test/params_test.c:333,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/params_test.c:337,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/test/params_test.c:338,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/params_test.c:340,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/params_test.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 329
    functionDepth: 5
    functionLinenumber: 329
    functionLinenumberEnd: 346
    functionName: init_app_variables
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - BN_hex2bn
    - strcpy
    - BN_bn2nativepad
    - cleanup_app_variables
    linkageType: ''
    returnType: int
    signature: int init_app_variables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/params_test.c:386,1
    - Dst: OSSL_PARAM_construct_BN
      Src: /src/openssl-3.0.15/test/params_test.c:387,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/params_test.c:388,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/params_test.c:390,1
    - Dst: OSSL_PARAM_construct_utf8_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:393,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/params_test.c:395,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/params_test.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 399
    functionName: construct_api_params
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_utf8_ptr
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_construct_BN
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *construct_api_params(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:447,1
    - Dst: init_object
      Src: /src/openssl-3.0.15/test/params_test.c:447,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:448,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/params_test.c:448,1
    - Dst: init_app_variables
      Src: /src/openssl-3.0.15/test/params_test.c:457,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:459,1
    - Dst: struct provider_dispatch_st*::get_params
      Src: /src/openssl-3.0.15/test/params_test.c:459,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_test.c:460,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/params_test.c:461,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:462,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:462,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:463,1
    - Dst: BN_native2bn
      Src: /src/openssl-3.0.15/test/params_test.c:463,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/params_test.c:464,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:465,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:466,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:466,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_test.c:467,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:469,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:470,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:470,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_test.c:471,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:473,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/params_test.c:474,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:475,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:475,1
    - Dst: init_app_variables
      Src: /src/openssl-3.0.15/test/params_test.c:482,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:484,1
    - Dst: struct provider_dispatch_st*::set_params
      Src: /src/openssl-3.0.15/test/params_test.c:484,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_test.c:489,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/params_test.c:490,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/params_test.c:491,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:492,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:493,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:494,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_test.c:502,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:505,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/params_test.c:505,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:510,1
    - Dst: struct provider_dispatch_st*::get_params
      Src: /src/openssl-3.0.15/test/params_test.c:510,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_test.c:511,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/params_test.c:512,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:513,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:513,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:514,1
    - Dst: BN_native2bn
      Src: /src/openssl-3.0.15/test/params_test.c:514,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/params_test.c:515,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:516,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:517,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:517,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_test.c:518,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:520,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:521,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:521,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_test.c:522,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_test.c:524,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/params_test.c:525,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_test.c:526,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_test.c:526,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_test.c:530,1
    - Dst: cleanup_app_variables
      Src: /src/openssl-3.0.15/test/params_test.c:532,1
    - Dst: cleanup_object
      Src: /src/openssl-3.0.15/test/params_test.c:533,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 32
    argCount: 2
    argNames:
    - params
    - prov
    argTypes:
    - OSSL_PARAM*
    - struct provider_dispatch_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 437
    functionDepth: 6
    functionLinenumber: 437
    functionLinenumberEnd: 536
    functionName: test_case_variant
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - struct provider_dispatch_st*::get_params
    - cleanup_object
    - TEST_double_eq
    - TEST_char_eq
    - init_object
    - struct provider_dispatch_st*::set_params
    - TEST_int_eq
    - init_app_variables
    - TEST_BN_eq
    - TEST_size_t_eq
    - OSSL_PARAM_locate
    - BN_free
    - BN_hex2bn
    - TEST_str_eq
    - cleanup_app_variables
    - TEST_ptr
    - TEST_true
    - BN_native2bn
    linkageType: ''
    returnType: int
    signature: int test_case_variant(OSSL_PARAM *params, const struct provider_dispatch_st
      *prov)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_test.c:540,1
    - Dst: test_case_variant
      Src: /src/openssl-3.0.15/test/params_test.c:542,1
    - Dst: test_case_variant
      Src: /src/openssl-3.0.15/test/params_test.c:545,1
    - Dst: app::constructed_params
      Src: /src/openssl-3.0.15/test/params_test.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 7
    functionLinenumber: 538
    functionLinenumberEnd: 547
    functionName: test_case
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - test_case_variant
    - app::constructed_params
    linkageType: ''
    returnType: int
    signature: int test_case(int i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_allocate_from_text
      Src: /src/openssl-3.0.15/test/params_test.c:622,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_test.c:625,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:632,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_test.c:633,1
    - Dst: OSSL_PARAM_get_long
      Src: /src/openssl-3.0.15/test/params_test.c:637,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:638,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_test.c:641,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_test.c:646,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_test.c:651,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct int_from_text_test_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 658
    functionName: check_int_from_text
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - TEST_error
    - OSSL_PARAM_get_long
    - OSSL_PARAM_allocate_from_text
    linkageType: ''
    returnType: int
    signature: int check_int_from_text(const struct int_from_text_test_st a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/params_test.c:669,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/params_test.c:672,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_test.c:673,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_test.c:676,1
    - Dst: OSSL_PARAM_allocate_from_text
      Src: /src/openssl-3.0.15/test/params_test.c:676,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_test.c:682,1
    - Dst: OSSL_PARAM_allocate_from_text
      Src: /src/openssl-3.0.15/test/params_test.c:682,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_test.c:687,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_test.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 694
    functionName: check_octetstr_from_hexstr
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_allocate_from_text
    - ERR_clear_error
    - TEST_false
    - memset
    - TEST_error
    - OPENSSL_free
    - strlen
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int check_octetstr_from_hexstr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_int_from_text
      Src: /src/openssl-3.0.15/test/params_test.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: test_allocate_from_text
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - check_int_from_text
    linkageType: ''
    returnType: int
    signature: int test_allocate_from_text(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_octetstr_from_hexstr
      Src: /src/openssl-3.0.15/test/params_test.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: test_more_allocate_from_text
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - check_octetstr_from_hexstr
    linkageType: ''
    returnType: int
    signature: int test_more_allocate_from_text(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_test.c:708,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_test.c:708,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_test.c:709,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_test.c:709,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/params_test.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/params_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/tls-provider.c:180,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/tls-provider.c:182,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/tls-provider.c:188,1
    - Dst: cb
      Src: /src/openssl-3.0.15/test/tls-provider.c:190,1
    - Dst: cb
      Src: /src/openssl-3.0.15/test/tls-provider.c:191,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/tls-provider.c:200,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:203,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/tls-provider.c:207,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/tls-provider.c:210,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/tls-provider.c:215,1
    - Dst: cb
      Src: /src/openssl-3.0.15/test/tls-provider.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - provctx
    - capability
    - cb
    - arg
    argTypes:
    - void*
    - char*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 223
    functionName: tls_prov_get_capabilities
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - memcpy
    - BIO_snprintf
    - OPENSSL_zalloc
    - strlen
    - strcmp
    - cb
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int tls_prov_get_capabilities(void *provctx, const char *capability,\n
      \                                    OSSL_CALLBACK *cb, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/tls-provider.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: xor_newctx
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *xor_newctx(void *provctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - vpxorctx
    - vkey
    - params
    argTypes:
    - void*
    - void*
    - ossl_unused[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: xor_init
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xor_init(void *vpxorctx, void *vkey,\n                    ossl_unused
      const OSSL_PARAM params[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - vpxorctx
    - vpeerkey
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: xor_set_peer
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xor_set_peer(void *vpxorctx, void *vpeerkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - vpxorctx
    - secret
    - secretlen
    - outlen
    argTypes:
    - void*
    - unsigned char*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 289
    functionName: xor_derive
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xor_derive(void *vpxorctx, unsigned char *secret, size_t *secretlen,\n
      \                     size_t outlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pxorctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: xor_freectx
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void xor_freectx(void *pxorctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/tls-provider.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vpxorctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: xor_dupctx
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *xor_dupctx(void *vpxorctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xor_gen_init
      Src: /src/openssl-3.0.15/test/tls-provider.c:364,1
    - Dst: xor_gen
      Src: /src/openssl-3.0.15/test/tls-provider.c:367,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:372,1
    - Dst: xor_newctx
      Src: /src/openssl-3.0.15/test/tls-provider.c:376,1
    - Dst: xor_init
      Src: /src/openssl-3.0.15/test/tls-provider.c:378,1
    - Dst: xor_set_peer
      Src: /src/openssl-3.0.15/test/tls-provider.c:379,1
    - Dst: xor_derive
      Src: /src/openssl-3.0.15/test/tls-provider.c:380,1
    - Dst: xor_gen_cleanup
      Src: /src/openssl-3.0.15/test/tls-provider.c:386,1
    - Dst: xor_freedata
      Src: /src/openssl-3.0.15/test/tls-provider.c:387,1
    - Dst: xor_freectx
      Src: /src/openssl-3.0.15/test/tls-provider.c:388,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 5
    argNames:
    - vpxorctx
    - ct
    - ctlen
    - ss
    - sslen
    argTypes:
    - void*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 390
    functionName: xor_encapsulate
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - xor_freedata
    - memcpy
    - xor_set_peer
    - xor_gen_cleanup
    - xor_freectx
    - xor_init
    - xor_derive
    - xor_gen_init
    - xor_gen
    - xor_newctx
    linkageType: ''
    returnType: int
    signature: "int xor_encapsulate(void *vpxorctx,\n                           unsigned
      char *ct, size_t *ctlen,\n                           unsigned char *ss, size_t
      *sslen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xor_newdata
      Src: /src/openssl-3.0.15/test/tls-provider.c:417,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:420,1
    - Dst: xor_newctx
      Src: /src/openssl-3.0.15/test/tls-provider.c:423,1
    - Dst: xor_init
      Src: /src/openssl-3.0.15/test/tls-provider.c:425,1
    - Dst: xor_set_peer
      Src: /src/openssl-3.0.15/test/tls-provider.c:426,1
    - Dst: xor_derive
      Src: /src/openssl-3.0.15/test/tls-provider.c:427,1
    - Dst: xor_freedata
      Src: /src/openssl-3.0.15/test/tls-provider.c:433,1
    - Dst: xor_freectx
      Src: /src/openssl-3.0.15/test/tls-provider.c:434,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 5
    argNames:
    - vpxorctx
    - ss
    - sslen
    - ct
    - ctlen
    argTypes:
    - void*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 436
    functionName: xor_decapsulate
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - xor_freedata
    - memcpy
    - xor_set_peer
    - xor_newdata
    - xor_freectx
    - xor_init
    - xor_derive
    - xor_newctx
    linkageType: ''
    returnType: int
    signature: "int xor_decapsulate(void *vpxorctx,\n                           unsigned
      char *ss, size_t *sslen,\n                           const unsigned char *ct,
      size_t ctlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/tls-provider.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: xor_newdata
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 1
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *xor_newdata(void *provctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keydata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: xor_freedata
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void xor_freedata(void *keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - vkey
    - selection
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: xor_has
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xor_has(const void *vkey, int selection)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xor_newdata
      Src: /src/openssl-3.0.15/test/tls-provider.c:488,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:497,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:505,1
    - Dst: xor_freedata
      Src: /src/openssl-3.0.15/test/tls-provider.c:513,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - vfromkey
    - selection
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 517
    functionName: xor_dup
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - xor_newdata
    - xor_freedata
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *xor_dup(const void *vfromkey, int selection)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/tls-provider.c:524,1
    - Dst: OSSL_PARAM_set_int
      Src: /src/openssl-3.0.15/test/tls-provider.c:525,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/tls-provider.c:528,1
    - Dst: OSSL_PARAM_set_int
      Src: /src/openssl-3.0.15/test/tls-provider.c:529,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/tls-provider.c:532,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - vkey
    - params
    argTypes:
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 542
    functionName: xor_get_params
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_int
    - memcpy
    - OSSL_PARAM_locate
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline xor_get_params(void *vkey, OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: xor_gettable_params
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *xor_gettable_params(void *provctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/tls-provider.c:561,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - vkey
    - params
    argTypes:
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 571
    functionName: xor_set_params
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int xor_set_params(void *vkey, const OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: xor_settable_params
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *xor_settable_params(void *provctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/tls-provider.c:597,1
    - Dst: xor_gen_set_params
      Src: /src/openssl-3.0.15/test/tls-provider.c:603,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - provctx
    - selection
    - params
    argTypes:
    - void*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 608
    functionName: xor_gen_init
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    - xor_gen_set_params
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: "void *xor_gen_init(void *provctx, int selection,\n                          const
      OSSL_PARAM params[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/tls-provider.c:618,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/tls-provider.c:621,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/tls-provider.c:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - genctx
    - params
    argTypes:
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 627
    functionName: xor_gen_set_params
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 1
    functionsReached:
    - strcmp
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int xor_gen_set_params(void *genctx, const OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_utf8_string
      Src: /src/openssl-3.0.15/test/tls-provider.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - genctx
    - provctx
    argTypes:
    - ossl_unused*
    - ossl_unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 637
    functionName: xor_gen_settable_params
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_utf8_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *xor_gen_settable_params(ossl_unused void *genctx,\n                                                 ossl_unused
      void *provctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/tls-provider.c:642,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/tls-provider.c:649,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - genctx
    - osslcb
    - cbarg
    argTypes:
    - void*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 639
    functionDepth: 5
    functionLinenumber: 639
    functionLinenumberEnd: 660
    functionName: xor_gen
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 1
    functionsReached:
    - RAND_bytes_ex
    - OPENSSL_free
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *xor_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/tls-provider.c:677,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/tls-provider.c:678,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/tls-provider.c:679,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/tls-provider.c:680,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/test/tls-provider.c:683,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/test/tls-provider.c:686,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:691,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls-provider.c:695,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - vkey
    - select
    - params
    argTypes:
    - void*
    - int
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 701
    functionName: xor_import
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - OSSL_PARAM_get_octet_string
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int xor_import(void *vkey, int select, const OSSL_PARAM params[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/tls-provider.c:712,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/tls-provider.c:715,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/tls-provider.c:717,1
    - Dst: param_cb
      Src: /src/openssl-3.0.15/test/tls-provider.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - vkey
    - select
    - param_cb
    - cbarg
    argTypes:
    - void*
    - int
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 720
    functionName: xor_export
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - param_cb
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_construct_end
    linkageType: ''
    returnType: int
    signature: "int xor_export(void *vkey, int select, OSSL_CALLBACK *param_cb,\n
      \                     void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - select
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: xor_import_types
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *xor_import_types(int select)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - select
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: xor_export_types
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *xor_export_types(int select)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - genctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: xor_gen_cleanup
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 1
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void xor_gen_cleanup(void *genctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - provctx
    - operation_id
    - no_cache
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 787
    functionName: tls_prov_query
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_ALGORITHM
    signature: "OSSL_ALGORITHM *tls_prov_query(void *provctx, int operation_id,\n
      \                                           int *no_cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:793,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls-provider.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 789
    functionDepth: 5
    functionLinenumber: 789
    functionLinenumberEnd: 799
    functionName: tls_prov_teardown
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void tls_prov_teardown(void *provctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/tls-provider.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - libctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 809
    functionDepth: 5
    functionLinenumber: 809
    functionLinenumberEnd: 841
    functionName: randomize_tls_group_id
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int randomize_tls_group_id(OSSL_LIB_CTX *libctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/tls-provider.c:848,1
    - Dst: randomize_tls_group_id
      Src: /src/openssl-3.0.15/test/tls-provider.c:859,1
    - Dst: randomize_tls_group_id
      Src: /src/openssl-3.0.15/test/tls-provider.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - handle
    - in
    - out
    - provctx
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    - OSSL_DISPATCH**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 843
    functionDepth: 6
    functionLinenumber: 843
    functionLinenumberEnd: 864
    functionName: tls_provider_init
    functionSourceFile: /src/openssl-3.0.15/test/tls-provider.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_new
    - randomize_tls_group_id
    linkageType: ''
    returnType: int
    signature: "int tls_provider_init(const OSSL_CORE_HANDLE *handle,\n                      const
      OSSL_DISPATCH *in,\n                      const OSSL_DISPATCH **out,\n                      void
      **provctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:248,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:249,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:251,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:252,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:254,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:262,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:263,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:266,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:267,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:270,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - type
    - gen_template_params
    argTypes:
    - char*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 238
    functionDepth: 8
    functionLinenumber: 238
    functionLinenumberEnd: 273
    functionName: make_key
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_keygen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_free
    - EVP_PKEY_generate
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *make_key(const char *type,\n                          const
      OSSL_PARAM *gen_template_params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:279,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: lookup_key
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - strcmp
    - OSSL_NELEM
    linkageType: ''
    returnType: struct key_st
    signature: struct key_st *lookup_key(const char *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:289,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:290,1
    - Dst: TEST_long_ge
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:292,1
    - Dst: TEST_long_ge
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:293,1
    - Dst: TEST_strn2_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - bio_provided
    - bio_legacy
    argTypes:
    - BIO*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: test_membio_str_eq
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - TEST_strn2_eq
    - TEST_long_ge
    - BIO_get_mem_data
    linkageType: ''
    returnType: int
    signature: int test_membio_str_eq(BIO *bio_provided, BIO *bio_legacy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:317,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:317,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:317,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:318,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:318,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:318,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:321,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:322,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:325,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:326,1
    - Dst: pem_write_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:326,1
    - Dst: test_membio_str_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:328,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:334,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:334,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:335,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:336,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:340,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:340,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:341,1
    - Dst: pem_read_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:342,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:343,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:343,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:347,1
    - Dst: evp_pkey_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:347,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:349,1
    - Dst: evp_pkey_print
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:350,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:351,1
    - Dst: evp_pkey_print
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:352,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:357,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:358,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:359,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:360,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:361,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:362,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 10
    argNames:
    - keytype
    - evp_type
    - legacy_key
    - pem_write_bio
    - pem_read_bio
    - evp_pkey_eq
    - evp_pkey_print
    - provided_pkey
    - selection
    - structure
    argTypes:
    - char*
    - int
    - void*
    - PEM_write_bio_of_void_protected*
    - PEM_read_bio_of_void*
    - EVP_PKEY_eq_fn*
    - EVP_PKEY_print_fn*
    - EVP_PKEY*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 298
    functionDepth: 13
    functionLinenumber: 298
    functionLinenumberEnd: 364
    functionName: test_protected_PEM
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - test_membio_str_eq
    - evp_pkey_eq
    - OSSL_DECODER_from_bio
    - OSSL_DECODER_CTX_free
    - TEST_int_gt
    - BIO_s_mem
    - evp_pkey_print
    - BIO_new
    - TEST_true
    - pem_read_bio
    - OSSL_ENCODER_CTX_free
    - pem_write_bio
    - EVP_PKEY_new
    - TEST_info
    - OSSL_ENCODER_CTX_new_for_pkey
    - OSSL_ENCODER_to_bio
    - TEST_ptr
    - OSSL_DECODER_CTX_new_for_pkey
    - BIO_free
    - EVP_PKEY_free
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: "int test_protected_PEM(const char *keytype, int evp_type,\n                              const
      void *legacy_key,\n                              PEM_write_bio_of_void_protected
      *pem_write_bio,\n                              PEM_read_bio_of_void *pem_read_bio,\n
      \                             EVP_PKEY_eq_fn *evp_pkey_eq,\n                              EVP_PKEY_print_fn
      *evp_pkey_print,\n                              EVP_PKEY *provided_pkey, int
      selection,\n                              const char *structure)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:385,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:385,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:385,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:386,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:386,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:386,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:389,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:390,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:393,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:393,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:394,1
    - Dst: pem_write_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:394,1
    - Dst: test_membio_str_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:395,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:401,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:401,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:402,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:403,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:407,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:407,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:408,1
    - Dst: pem_read_bio
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:409,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:410,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:410,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:414,1
    - Dst: evp_pkey_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:414,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:416,1
    - Dst: evp_pkey_print
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:417,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:418,1
    - Dst: evp_pkey_print
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:419,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:424,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:425,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:426,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:427,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:428,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:429,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 10
    argNames:
    - keytype
    - evp_type
    - legacy_key
    - pem_write_bio
    - pem_read_bio
    - evp_pkey_eq
    - evp_pkey_print
    - provided_pkey
    - selection
    - structure
    argTypes:
    - char*
    - int
    - void*
    - PEM_write_bio_of_void_unprotected*
    - PEM_read_bio_of_void*
    - EVP_PKEY_eq_fn*
    - EVP_PKEY_print_fn*
    - EVP_PKEY*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 366
    functionDepth: 13
    functionLinenumber: 366
    functionLinenumberEnd: 431
    functionName: test_unprotected_PEM
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - test_membio_str_eq
    - evp_pkey_eq
    - OSSL_DECODER_from_bio
    - OSSL_DECODER_CTX_free
    - TEST_int_gt
    - BIO_s_mem
    - evp_pkey_print
    - BIO_new
    - TEST_true
    - pem_read_bio
    - OSSL_ENCODER_CTX_free
    - pem_write_bio
    - EVP_PKEY_new
    - TEST_info
    - OSSL_ENCODER_CTX_new_for_pkey
    - OSSL_ENCODER_to_bio
    - TEST_ptr
    - OSSL_DECODER_CTX_new_for_pkey
    - BIO_free
    - EVP_PKEY_free
    - EVP_PKEY_assign
    linkageType: ''
    returnType: int
    signature: "int test_unprotected_PEM(const char *keytype, int evp_type,\n                                const
      void *legacy_key,\n                                PEM_write_bio_of_void_unprotected
      *pem_write_bio,\n                                PEM_read_bio_of_void *pem_read_bio,\n
      \                               EVP_PKEY_eq_fn *evp_pkey_eq,\n                                EVP_PKEY_print_fn
      *evp_pkey_print,\n                                EVP_PKEY *provided_pkey, int
      selection,\n                                const char *structure)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:454,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:455,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:458,1
    - Dst: OSSL_ENCODER_to_data
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:458,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:460,1
    - Dst: i2d
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:460,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:461,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:468,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:468,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:469,1
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:470,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:474,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:476,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:478,1
    - Dst: d2i
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:479,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:481,1
    - Dst: EVP_PKEY_assign
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:481,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:485,1
    - Dst: evp_pkey_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:485,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:487,1
    - Dst: evp_pkey_print
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:488,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:489,1
    - Dst: evp_pkey_print
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:490,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:495,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:496,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:497,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:498,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:499,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:500,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 10
    argNames:
    - keytype
    - evp_type
    - legacy_key
    - i2d
    - d2i
    - evp_pkey_eq
    - evp_pkey_print
    - provided_pkey
    - selection
    - structure
    argTypes:
    - char*
    - int
    - void*
    - i2d_of_void*
    - d2i_of_void*
    - EVP_PKEY_eq_fn*
    - EVP_PKEY_print_fn*
    - EVP_PKEY*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 433
    functionDepth: 13
    functionLinenumber: 433
    functionLinenumberEnd: 502
    functionName: test_DER
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - evp_pkey_eq
    - d2i
    - OSSL_DECODER_CTX_free
    - TEST_int_gt
    - evp_pkey_print
    - i2d
    - TEST_true
    - OSSL_ENCODER_to_data
    - OSSL_ENCODER_CTX_free
    - TEST_info
    - EVP_PKEY_new
    - OPENSSL_free
    - OSSL_ENCODER_CTX_new_for_pkey
    - TEST_ptr
    - OSSL_DECODER_CTX_new_for_pkey
    - OSSL_DECODER_from_data
    - EVP_PKEY_free
    - EVP_PKEY_assign
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: "int test_DER(const char *keytype, int evp_type,\n                    const
      void *legacy_key, i2d_of_void *i2d, d2i_of_void *d2i,\n                    EVP_PKEY_eq_fn
      *evp_pkey_eq,\n                    EVP_PKEY_print_fn *evp_pkey_print,\n                    EVP_PKEY
      *provided_pkey, int selection,\n                    const char *structure)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:514,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:515,1
    - Dst: lookup_key
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:515,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:519,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:520,1
    - Dst: evp_pkey_copy_downgraded
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:520,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:521,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:522,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:522,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:523,1
    - Dst: EVP_PKEY_get0
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:523,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:532,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:535,1
    - Dst: test_protected_PEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:537,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:552,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:555,1
    - Dst: test_unprotected_PEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:557,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:570,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:573,1
    - Dst: test_unprotected_PEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:575,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:592,1
    - Dst: test_unprotected_PEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:594,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:607,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:610,1
    - Dst: test_DER
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:612,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:627,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:630,1
    - Dst: test_DER
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:632,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:645,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:648,1
    - Dst: test_DER
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:650,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:665,1
    - Dst: test_DER
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:667,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:674,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 504
    functionDepth: 14
    functionLinenumber: 504
    functionLinenumberEnd: 676
    functionName: test_key
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - test_protected_PEM
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    - lookup_key
    - evp_pkey_copy_downgraded
    - EVP_PKEY_get0
    - TEST_info
    - TEST_ptr
    - TEST_true
    - test_DER
    - test_unprotected_PEM
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_key(int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:685,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:686,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:689,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:690,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:694,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:696,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:698,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:699,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:700,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:700,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:706,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:707,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:708,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:708,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:713,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:714,1
    - Dst: make_key
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:715,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:719,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:721,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:721,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 723
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - make_key
    - test_get_argument_count
    - ADD_ALL_TESTS
    - TEST_info
    - TEST_error
    - strcmp
    - load_pkey_pem
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:729,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/endecoder_legacy_test.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 725
    functionDepth: 4
    functionLinenumber: 725
    functionLinenumberEnd: 731
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/endecoder_legacy_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - OSSL_NELEM
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/test/threadstest.c:39,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:42,1
    - Dst: CRYPTO_THREAD_read_lock
      Src: /src/openssl-3.0.15/test/threadstest.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:43,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/test/threadstest.c:43,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:44,1
    - Dst: CRYPTO_THREAD_write_lock
      Src: /src/openssl-3.0.15/test/threadstest.c:44,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:45,1
    - Dst: CRYPTO_THREAD_unlock
      Src: /src/openssl-3.0.15/test/threadstest.c:45,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/test/threadstest.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: test_lock
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_lock_new
    - CRYPTO_THREAD_read_lock
    - TEST_true
    - CRYPTO_THREAD_write_lock
    - CRYPTO_THREAD_lock_free
    - CRYPTO_THREAD_unlock
    linkageType: ''
    returnType: int
    signature: int test_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: once_do_run
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void once_do_run(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_run_once
      Src: /src/openssl-3.0.15/test/threadstest.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: once_run_thread_cb
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREAD_run_once
    linkageType: ''
    returnType: void
    signature: void once_run_thread_cb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:69,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:70,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:70,1
    - Dst: CRYPTO_THREAD_run_once
      Src: /src/openssl-3.0.15/test/threadstest.c:71,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: test_once
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - run_thread
    - TEST_int_eq
    - wait_for_thread
    - CRYPTO_THREAD_run_once
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_once(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: thread_local_destructor
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_local_destructor(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/test/threadstest.c:97,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/threadstest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:99,1
    - Dst: CRYPTO_THREAD_set_local
      Src: /src/openssl-3.0.15/test/threadstest.c:99,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/test/threadstest.c:103,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: thread_local_thread_cb
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - CRYPTO_THREAD_set_local
    - CRYPTO_THREAD_get_local
    - TEST_ptr_eq
    - TEST_true
    linkageType: ''
    returnType: void
    signature: void thread_local_thread_cb(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:115,1
    - Dst: CRYPTO_THREAD_init_local
      Src: /src/openssl-3.0.15/test/threadstest.c:115,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/test/threadstest.c:119,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/threadstest.c:120,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:121,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:122,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:122,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:123,1
    - Dst: CRYPTO_THREAD_get_local
      Src: /src/openssl-3.0.15/test/threadstest.c:128,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/threadstest.c:129,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:138,1
    - Dst: CRYPTO_THREAD_cleanup_local
      Src: /src/openssl-3.0.15/test/threadstest.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: test_thread_local
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - CRYPTO_THREAD_init_local
    - run_thread
    - TEST_int_eq
    - CRYPTO_THREAD_get_local
    - wait_for_thread
    - TEST_true
    - CRYPTO_THREAD_cleanup_local
    linkageType: ''
    returnType: int
    signature: int test_thread_local(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREAD_lock_new
      Src: /src/openssl-3.0.15/test/threadstest.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:149,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openssl-3.0.15/test/threadstest.c:152,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:154,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:154,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:158,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:164,1
    - Dst: CRYPTO_atomic_add
      Src: /src/openssl-3.0.15/test/threadstest.c:164,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:166,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:166,1
    - Dst: CRYPTO_atomic_or
      Src: /src/openssl-3.0.15/test/threadstest.c:169,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:171,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:172,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:176,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:183,1
    - Dst: CRYPTO_atomic_or
      Src: /src/openssl-3.0.15/test/threadstest.c:183,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:186,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:187,1
    - Dst: CRYPTO_atomic_load
      Src: /src/openssl-3.0.15/test/threadstest.c:191,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:193,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:194,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:199,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:204,1
    - Dst: CRYPTO_atomic_load
      Src: /src/openssl-3.0.15/test/threadstest.c:204,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:207,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:208,1
    - Dst: CRYPTO_THREAD_lock_free
      Src: /src/openssl-3.0.15/test/threadstest.c:213,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 215
    functionName: test_atomic
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - CRYPTO_atomic_load
    - CRYPTO_atomic_add
    - CRYPTO_atomic_or
    - CRYPTO_THREAD_lock_new
    - TEST_ptr
    - TEST_true
    - CRYPTO_THREAD_lock_free
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_atomic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/threadstest.c:228,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/threadstest.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: multi_intialise
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void multi_intialise(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:237,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:238,1
    - Dst: multi_intialise
      Src: /src/openssl-3.0.15/test/threadstest.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: thead_teardown_libctx
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    - multi_intialise
    linkageType: ''
    returnType: void
    signature: void thead_teardown_libctx(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:246,1
    - Dst: test_get_libctx
      Src: /src/openssl-3.0.15/test/threadstest.c:246,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-3.0.15/test/threadstest.c:252,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:253,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:253,1
    - Dst: thead_teardown_libctx
      Src: /src/openssl-3.0.15/test/threadstest.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - libctx
    - providers
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: thread_setup_libctx
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - TEST_size_t_lt
    - thead_teardown_libctx
    - test_get_libctx
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int thread_setup_libctx(int libctx, const char *providers[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:266,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 269
    functionName: teardown_threads
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - wait_for_thread
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int teardown_threads(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/threadstest.c:275,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:279,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: start_threads
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - run_thread
    - TEST_size_t_le
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int start_threads(size_t n, void (*thread_func)(void))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: multi_intialise
      Src: /src/openssl-3.0.15/test/threadstest.c:291,1
    - Dst: thread_setup_libctx
      Src: /src/openssl-3.0.15/test/threadstest.c:292,1
    - Dst: start_threads
      Src: /src/openssl-3.0.15/test/threadstest.c:293,1
    - Dst: main_func
      Src: /src/openssl-3.0.15/test/threadstest.c:297,1
    - Dst: teardown_threads
      Src: /src/openssl-3.0.15/test/threadstest.c:299,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:300,1
    - Dst: thead_teardown_libctx
      Src: /src/openssl-3.0.15/test/threadstest.c:304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - num_threads
    - libctx
    - providers
    argTypes:
    - size_t
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 285
    functionDepth: 7
    functionLinenumber: 285
    functionLinenumberEnd: 306
    functionName: thread_run_test
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - start_threads
    - main_func
    - thead_teardown_libctx
    - multi_intialise
    - thread_setup_libctx
    - teardown_threads
    - TEST_true
    linkageType: ''
    returnType: int
    signature: "int thread_run_test(void (*main_func)(void),\n                           size_t
      num_threads, void (*thread_func)(void),\n                           int libctx,
      const char *providers[])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/threadstest.c:310,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/threadstest.c:311,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/threadstest.c:312,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/threadstest.c:313,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/threadstest.c:315,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/threadstest.c:332,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:334,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:335,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:336,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:337,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:342,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/threadstest.c:342,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:343,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/threadstest.c:343,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:344,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/test/threadstest.c:344,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:348,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/threadstest.c:348,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:349,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/threadstest.c:349,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:352,1
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-3.0.15/test/threadstest.c:352,1
    - Dst: EVP_PKEY_Q_keygen
      Src: /src/openssl-3.0.15/test/threadstest.c:361,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:362,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:367,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/threadstest.c:368,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:369,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/threadstest.c:370,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/threadstest.c:371,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 308
    functionDepth: 11
    functionLinenumber: 308
    functionLinenumberEnd: 374
    functionName: thread_general_worker
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_EncryptFinal
    - strlen
    - EVP_CIPHER_CTX_free
    - EVP_DigestFinal
    - EVP_PKEY_Q_keygen
    - EVP_EncryptInit_ex
    - TEST_true
    - OSSL_PROVIDER_available
    - EVP_CIPHER_free
    - EVP_MD_CTX_new
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - EVP_CIPHER_fetch
    - EVP_DigestUpdate
    - EVP_EncryptUpdate
    - EVP_DigestInit_ex
    - EVP_PKEY_free
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: void
    signature: void thread_general_worker(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/threadstest.c:378,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/threadstest.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 376
    functionDepth: 11
    functionLinenumber: 376
    functionLinenumberEnd: 384
    functionName: thread_multi_simple_fetch
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: void
    signature: void thread_multi_simple_fetch(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:400,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/threadstest.c:401,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:404,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/threadstest.c:407,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/threadstest.c:407,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/threadstest.c:408,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/test/threadstest.c:408,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/threadstest.c:409,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:413,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/threadstest.c:414,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:416,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/threadstest.c:420,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-3.0.15/test/threadstest.c:420,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/threadstest.c:421,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/test/threadstest.c:421,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:423,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/threadstest.c:423,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:430,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 433
    functionName: thread_shared_evp_pkey
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_ge
    - EVP_PKEY_encrypt_init
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - strlen
    - EVP_PKEY_encrypt
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: void
    signature: void thread_shared_evp_pkey(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/openssl-3.0.15/test/threadstest.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 435
    functionDepth: 9
    functionLinenumber: 435
    functionLinenumberEnd: 448
    functionName: thread_downgrade_shared_evp_pkey
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get0_RSA
    linkageType: ''
    returnType: void
    signature: void thread_downgrade_shared_evp_pkey(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:452,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:454,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:455,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/threadstest.c:455,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 11
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: thread_provider_load_unload
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_available
    - OSSL_PROVIDER_unload
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: void
    signature: void thread_provider_load_unload(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/threadstest.c:480,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/threadstest.c:484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:488,1
    - Dst: test_get_libctx
      Src: /src/openssl-3.0.15/test/threadstest.c:488,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:492,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:493,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:513,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:513,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:515,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/threadstest.c:515,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/threadstest.c:525,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:526,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/threadstest.c:531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:537,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:537,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:538,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:538,1
    - Dst: worker
      Src: /src/openssl-3.0.15/test/threadstest.c:541,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:547,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:547,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:549,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:549,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:551,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/threadstest.c:555,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:556,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:557,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/threadstest.c:558,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/threadstest.c:559,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 470
    functionDepth: 11
    functionLinenumber: 470
    functionLinenumberEnd: 563
    functionName: test_multi
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - run_thread
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    - TEST_error
    - TEST_skip
    - worker
    - wait_for_thread
    - load_pkey_pem
    - EVP_PKEY_free
    - test_get_libctx
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_multi(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:576,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:576,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:577,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 579
    functionName: test_multi_load_worker
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - OSSL_PROVIDER_unload
    - TEST_true
    - OSSL_PROVIDER_load
    linkageType: ''
    returnType: void
    signature: void test_multi_load_worker(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/threadstest.c:589,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:596,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:597,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:600,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:600,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:601,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:601,1
    - Dst: thread_multi_simple_fetch
      Src: /src/openssl-3.0.15/test/threadstest.c:604,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:606,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:606,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:607,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:607,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:608,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:614,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 581
    functionDepth: 12
    functionLinenumber: 581
    functionLinenumberEnd: 616
    functionName: test_multi_default
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - run_thread
    - OSSL_PROVIDER_unload
    - wait_for_thread
    - TEST_skip
    - thread_multi_simple_fetch
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_multi_default(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/threadstest.c:626,1
    - Dst: test_multi_default
      Src: /src/openssl-3.0.15/test/threadstest.c:627,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/threadstest.c:636,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/threadstest.c:638,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/threadstest.c:641,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:645,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:645,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest.c:648,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest.c:648,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 618
    functionDepth: 13
    functionLinenumber: 618
    functionLinenumberEnd: 651
    functionName: test_multi_load
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - run_thread
    - OSSL_PROVIDER_unload
    - TEST_info
    - wait_for_thread
    - TEST_true
    - test_multi_default
    linkageType: ''
    returnType: int
    signature: int test_multi_load(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/threadstest.c:655,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/threadstest.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: test_lib_ctx_load_config_worker
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_LIB_CTX_load_config
    linkageType: ''
    returnType: void
    signature: void test_lib_ctx_load_config_worker(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: thread_run_test
      Src: /src/openssl-3.0.15/test/threadstest.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 659
    functionDepth: 8
    functionLinenumber: 659
    functionLinenumberEnd: 664
    functionName: test_lib_ctx_load_config
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - thread_run_test
    linkageType: ''
    returnType: int
    signature: int test_lib_ctx_load_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 683
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/threadstest.c:690,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/threadstest.c:696,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:705,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/threadstest.c:705,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/threadstest.c:708,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/threadstest.c:709,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:713,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:715,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:716,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:717,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:718,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:719,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/threadstest.c:720,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest.c:721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 723
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - ADD_TEST
    - opt_arg
    - opt_next
    - ADD_ALL_TESTS
    - TEST_ptr
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/threadstest.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:101,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - sz
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: bn_load_new
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - BN_new
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *bn_load_new(const unsigned char *data, int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:113,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:115,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:115,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:116,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:118,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:118,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:119,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:119,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:121,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:122,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:122,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:123,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:124,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:125,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:126,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:126,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:128,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:128,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:129,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:129,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:130,1
    - Dst: ossl_rsa_check_public_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:130,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 133
    functionName: test_check_public_exponent
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_public_exponent
    - BN_new
    - BN_lshift
    - TEST_false
    - BN_free
    - BN_value_one
    - BN_add
    - TEST_ptr
    - BN_set_word
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_check_public_exponent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:151,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:151,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:152,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:153,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:153,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:154,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:154,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:155,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:155,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:156,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:157,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:157,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:158,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:159,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:159,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:160,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:161,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:161,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:162,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:162,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:163,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:164,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:165,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:166,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:166,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:167,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:167,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:168,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:168,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:169,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:170,1
    - Dst: ossl_rsa_check_prime_factor_range
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:170,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:172,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:173,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:174,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:175,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:176,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:177,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 179
    functionName: test_check_prime_factor_range
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_false
    - BN_CTX_new
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_CTX_free
    - ossl_rsa_check_prime_factor_range
    - bn_load_new
    linkageType: ''
    returnType: int
    signature: int test_check_prime_factor_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:193,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:193,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:194,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:194,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:195,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:195,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:196,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:196,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:197,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:197,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:198,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:200,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:200,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:201,1
    - Dst: ossl_rsa_check_prime_factor
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:203,1
    - Dst: ossl_rsa_check_prime_factor
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:205,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:205,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:206,1
    - Dst: ossl_rsa_check_prime_factor
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:206,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:208,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:208,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:209,1
    - Dst: ossl_rsa_check_prime_factor
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:209,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:211,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:212,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:213,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:214,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:215,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:216,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 181
    functionDepth: 7
    functionLinenumber: 181
    functionLinenumberEnd: 218
    functionName: test_check_prime_factor
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_prime_factor
    - BN_new
    - TEST_false
    - BN_CTX_new
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_CTX_free
    - bn_load_new
    linkageType: ''
    returnType: int
    signature: int test_check_prime_factor(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:228,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:228,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:229,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:229,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:230,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:230,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:231,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:233,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:233,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:234,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:235,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:235,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:237,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:238,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:242,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:242,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:243,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:243,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:244,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:244,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:245,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:245,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:246,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:246,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:247,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:248,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:248,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:250,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:251,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:252,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:256,1
    - Dst: ossl_rsa_check_private_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:257,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:259,1
    - Dst: ossl_rsa_check_private_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:259,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:261,1
    - Dst: ossl_rsa_check_private_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:261,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:263,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:263,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:264,1
    - Dst: ossl_rsa_check_private_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:264,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:266,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:266,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:267,1
    - Dst: ossl_rsa_check_private_exponent
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:267,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:269,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:270,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 272
    functionName: test_check_private_exponent
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_private_exponent
    - BN_new
    - RSA_set0_factors
    - TEST_false
    - RSA_new
    - BN_CTX_new
    - BN_free
    - RSA_set0_key
    - RSA_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_check_private_exponent(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:289,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:289,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:290,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:290,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:291,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:291,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:292,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:292,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:293,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:293,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:294,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:294,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:295,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:295,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:296,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:296,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:297,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:297,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:299,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:300,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:303,1
    - Dst: ossl_rsa_sp800_56b_derive_params_from_pq
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:303,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:304,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:305,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:306,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:307,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:308,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:308,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:310,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:310,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:311,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:311,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:312,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:312,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:313,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:313,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:314,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:314,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:316,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:316,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:317,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:318,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:318,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:319,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:319,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:320,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:322,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:322,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:323,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:323,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:324,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:324,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:325,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:326,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:328,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:328,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:329,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:329,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:330,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:332,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:332,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:333,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:333,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:334,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:336,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:336,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:337,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:337,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:338,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:340,1
    - Dst: ossl_rsa_check_crt_components
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:340,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:342,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:343,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:344,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 274
    functionDepth: 7
    functionLinenumber: 274
    functionLinenumberEnd: 346
    functionName: test_check_crt_components
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_crt_components
    - BN_new
    - RSA_set0_factors
    - TEST_false
    - RSA_new
    - BN_CTX_new
    - ossl_rsa_sp800_56b_derive_params_from_pq
    - BN_free
    - TEST_BN_eq_word
    - RSA_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_check_crt_components(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:353,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:353,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:354,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:354,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:355,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:355,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:357,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:357,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:358,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:358,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:359,1
    - Dst: ossl_rsa_check_pminusq_diff
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:359,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:361,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:361,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:362,1
    - Dst: ossl_rsa_check_pminusq_diff
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:362,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:363,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:363,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:364,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:364,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:365,1
    - Dst: ossl_rsa_check_pminusq_diff
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:365,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:366,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:367,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:368,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 370
    functionName: test_pq_diff
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_check_pminusq_diff
    - BN_new
    - TEST_false
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_pq_diff(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:379,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:379,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:380,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:380,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:382,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:382,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:384,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:384,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:385,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:385,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:386,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:386,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:388,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:389,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:393,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:393,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:394,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:394,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:395,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:395,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:396,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:396,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:398,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:399,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:400,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:404,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:404,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:405,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:405,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:406,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:406,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:407,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:407,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:409,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:409,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:409,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:412,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:412,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:413,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:413,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:414,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:414,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:417,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:417,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:418,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:418,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:420,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:420,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:421,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:421,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:422,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:422,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:424,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:424,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:425,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:425,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:426,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:427,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:427,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:428,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:428,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:430,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:430,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:431,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:431,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:432,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:432,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:433,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:433,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:434,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:434,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:436,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:437,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 372
    functionDepth: 8
    functionLinenumber: 372
    functionLinenumberEnd: 439
    functionName: test_invalid_keypair
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_CTX_free
    - BN_mul
    - RSA_set0_factors
    - TEST_false
    - RSA_new
    - BN_CTX_new
    - ossl_rsa_sp800_56b_check_keypair
    - BN_free
    - BN_value_one
    - RSA_free
    - TEST_ptr
    - RSA_set0_key
    - TEST_true
    - BN_add_word
    - bn_load_new
    linkageType: ''
    returnType: int
    signature: int test_invalid_keypair(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:452,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:452,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:453,1
    - Dst: ossl_rsa_sp800_56b_generate_key
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:454,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:454,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:455,1
    - Dst: ossl_rsa_sp800_56b_check_private
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:455,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:456,1
    - Dst: ossl_rsa_sp800_56b_check_keypair
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:456,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 15
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: test_sp80056b_keygen
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_sp800_56b_check_private
    - ossl_rsa_sp800_56b_generate_key
    - RSA_new
    - ossl_rsa_sp800_56b_check_keypair
    - ossl_rsa_sp800_56b_check_public
    - RSA_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_sp80056b_keygen(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:468,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:468,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:470,1
    - Dst: ossl_rsa_sp800_56b_check_private
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:470,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:472,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:472,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:473,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:473,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:474,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:474,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:475,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:475,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:477,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:478,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:479,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:483,1
    - Dst: ossl_rsa_sp800_56b_check_private
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:483,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:485,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:485,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:486,1
    - Dst: ossl_rsa_sp800_56b_check_private
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:486,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:488,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:488,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:489,1
    - Dst: ossl_rsa_sp800_56b_check_private
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:489,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:491,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 462
    functionDepth: 7
    functionLinenumber: 462
    functionLinenumberEnd: 493
    functionName: test_check_private_key
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ossl_rsa_sp800_56b_check_private
    - TEST_false
    - RSA_new
    - BN_free
    - BN_copy
    - BN_set_word
    - RSA_free
    - TEST_ptr
    - RSA_set0_key
    - TEST_true
    - bn_load_new
    linkageType: ''
    returnType: int
    signature: int test_check_private_key(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:501,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:501,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:503,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:503,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:505,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:505,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:506,1
    - Dst: bn_load_new
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:506,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:507,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:507,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:509,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:510,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:514,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:514,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:516,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:516,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:517,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:517,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:518,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:518,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:520,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:520,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:521,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:521,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:522,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:522,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:524,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:524,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:525,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:525,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:526,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:526,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:528,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:528,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:529,1
    - Dst: ossl_rsa_sp800_56b_check_public
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:529,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:531,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 495
    functionDepth: 7
    functionLinenumber: 495
    functionLinenumberEnd: 533
    functionName: test_check_public_key
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - TEST_false
    - RSA_new
    - ossl_rsa_sp800_56b_check_public
    - BN_free
    - BN_lshift1
    - RSA_free
    - BN_rshift1
    - TEST_ptr
    - RSA_set0_key
    - TEST_true
    - BN_add_word
    - bn_load_new
    linkageType: ''
    returnType: int
    signature: int test_check_public_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:537,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:538,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:539,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:540,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:541,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:542,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:543,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:544,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:545,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:546,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 548
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/rsa_sp800_56b_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:317,1
    - Dst: OBJ_create
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:317,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 8
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: get_custom_oid
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - OBJ_create
    - OBJ_txt2nid
    linkageType: ''
    returnType: int
    signature: int get_custom_oid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:329,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:332,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:334,1
    - Dst: add_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:336,1
    - Dst: end_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:338,1
    - Dst: end_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:340,1
    - Dst: start_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:343,1
    - Dst: start_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:345,1
    - Dst: check_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:347,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:349,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:351,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 354
    functionName: test_single_cert_no_attrs
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - end_contentinfo
    - start_contentinfo
    - end_check_pkcs12
    - start_check_contentinfo
    - end_pkcs12
    - end_check_contentinfo
    - new_pkcs12_builder
    - add_certbag
    - start_pkcs12
    - check_certbag
    - start_check_pkcs12
    linkageType: ''
    returnType: int
    signature: int test_single_cert_no_attrs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:361,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:361,1
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:363,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:366,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:368,1
    - Dst: add_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:370,1
    - Dst: end_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:372,1
    - Dst: end_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:374,1
    - Dst: start_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:377,1
    - Dst: start_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:379,1
    - Dst: check_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:381,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:383,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:385,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - enc
    argTypes:
    - PKCS12_ENC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 388
    functionName: test_single_key
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - end_contentinfo
    - add_keybag
    - start_contentinfo
    - check_keybag
    - end_check_pkcs12
    - sprintf
    - start_check_contentinfo
    - end_pkcs12
    - end_check_contentinfo
    - OBJ_nid2sn
    - new_pkcs12_builder
    - start_pkcs12
    - start_check_pkcs12
    linkageType: ''
    returnType: int
    signature: int test_single_key(PKCS12_ENC *enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_single_key
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 402
    functionName: test_single_key_enc_alg
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_key
    linkageType: ''
    returnType: int
    signature: int test_single_key_enc_alg(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_single_key
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: test_single_key_enc_pass
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_key
    linkageType: ''
    returnType: int
    signature: int test_single_key_enc_pass(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_single_key
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: test_single_key_enc_iter
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_key
    linkageType: ''
    returnType: int
    signature: int test_single_key_enc_iter(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:428,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:431,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:433,1
    - Dst: add_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:435,1
    - Dst: end_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:437,1
    - Dst: end_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:439,1
    - Dst: start_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:442,1
    - Dst: start_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:444,1
    - Dst: check_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:446,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:448,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:450,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 453
    functionName: test_single_key_with_attrs
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - end_contentinfo
    - add_keybag
    - start_contentinfo
    - check_keybag
    - end_check_pkcs12
    - start_check_contentinfo
    - end_pkcs12
    - end_check_contentinfo
    - new_pkcs12_builder
    - start_pkcs12
    - start_check_pkcs12
    linkageType: ''
    returnType: int
    signature: int test_single_key_with_attrs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:460,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:460,1
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:462,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:465,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:467,1
    - Dst: add_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:469,1
    - Dst: end_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:471,1
    - Dst: end_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:473,1
    - Dst: start_check_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:476,1
    - Dst: start_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:478,1
    - Dst: check_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:480,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:482,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:484,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - mac
    argTypes:
    - PKCS12_ENC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 487
    functionName: test_single_cert_mac
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - end_contentinfo
    - start_contentinfo
    - end_check_pkcs12
    - sprintf
    - end_pkcs12_with_mac
    - start_check_contentinfo
    - start_check_pkcs12_with_mac
    - end_check_contentinfo
    - OBJ_nid2sn
    - new_pkcs12_builder
    - add_certbag
    - start_pkcs12
    - check_certbag
    linkageType: ''
    returnType: int
    signature: int test_single_cert_mac(PKCS12_ENC *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_single_cert_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 498
    functionName: test_single_cert_mac_alg
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_cert_mac
    linkageType: ''
    returnType: int
    signature: int test_single_cert_mac_alg(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_single_cert_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 509
    functionName: test_single_cert_mac_pass
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_cert_mac
    linkageType: ''
    returnType: int
    signature: int test_single_cert_mac_pass(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_single_cert_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 520
    functionName: test_single_cert_mac_iter
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_cert_mac
    linkageType: ''
    returnType: int
    signature: int test_single_cert_mac_iter(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:524,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:527,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:529,1
    - Dst: add_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:531,1
    - Dst: add_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:532,1
    - Dst: end_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:534,1
    - Dst: end_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:536,1
    - Dst: start_check_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:539,1
    - Dst: start_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:541,1
    - Dst: check_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:543,1
    - Dst: check_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:544,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:546,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:548,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 551
    functionName: test_cert_key_with_attrs_and_mac
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - end_contentinfo
    - add_keybag
    - start_contentinfo
    - check_keybag
    - end_check_pkcs12
    - start_check_contentinfo
    - end_pkcs12_with_mac
    - start_check_pkcs12_with_mac
    - end_check_contentinfo
    - new_pkcs12_builder
    - add_certbag
    - start_pkcs12
    - check_certbag
    linkageType: ''
    returnType: int
    signature: int test_cert_key_with_attrs_and_mac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:555,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:558,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:560,1
    - Dst: add_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:562,1
    - Dst: add_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:563,1
    - Dst: end_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:565,1
    - Dst: end_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:567,1
    - Dst: start_check_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:570,1
    - Dst: start_check_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:572,1
    - Dst: check_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:574,1
    - Dst: check_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:575,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:577,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:579,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: test_cert_key_encrypted_content
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - add_keybag
    - start_contentinfo
    - start_check_contentinfo_encrypted
    - check_keybag
    - end_check_pkcs12
    - end_pkcs12_with_mac
    - start_check_pkcs12_with_mac
    - end_check_contentinfo
    - end_contentinfo_encrypted
    - new_pkcs12_builder
    - add_certbag
    - start_pkcs12
    - check_certbag
    linkageType: ''
    returnType: int
    signature: int test_cert_key_encrypted_content(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:586,1
    - Dst: get_custom_oid
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:587,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:590,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:592,1
    - Dst: add_secretbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:594,1
    - Dst: end_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:596,1
    - Dst: end_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:598,1
    - Dst: start_check_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:601,1
    - Dst: start_check_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:603,1
    - Dst: check_secretbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:605,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:607,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:609,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 584
    functionDepth: 9
    functionLinenumber: 584
    functionLinenumberEnd: 612
    functionName: test_single_secret_encrypted_content
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - start_contentinfo
    - start_check_contentinfo_encrypted
    - end_check_pkcs12
    - add_secretbag
    - end_pkcs12_with_mac
    - start_check_pkcs12_with_mac
    - check_secretbag
    - end_check_contentinfo
    - end_contentinfo_encrypted
    - new_pkcs12_builder
    - get_custom_oid
    - start_pkcs12
    linkageType: ''
    returnType: int
    signature: int test_single_secret_encrypted_content(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:620,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:620,1
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:621,1
    - Dst: get_custom_oid
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:622,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:625,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:627,1
    - Dst: add_secretbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:629,1
    - Dst: end_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:631,1
    - Dst: end_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:633,1
    - Dst: start_check_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:636,1
    - Dst: start_check_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:638,1
    - Dst: check_secretbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:640,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:642,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:644,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - enc
    argTypes:
    - PKCS12_ENC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 614
    functionDepth: 9
    functionLinenumber: 614
    functionLinenumberEnd: 647
    functionName: test_single_secret
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_pkcs12_builder
    - start_contentinfo
    - start_check_contentinfo_encrypted
    - end_check_pkcs12
    - sprintf
    - add_secretbag
    - end_pkcs12_with_mac
    - start_check_pkcs12_with_mac
    - check_secretbag
    - end_check_contentinfo
    - end_contentinfo_encrypted
    - OBJ_nid2sn
    - new_pkcs12_builder
    - get_custom_oid
    - start_pkcs12
    linkageType: ''
    returnType: int
    signature: int test_single_secret(PKCS12_ENC *enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_single_secret
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 649
    functionDepth: 10
    functionLinenumber: 649
    functionLinenumberEnd: 661
    functionName: test_single_secret_enc_alg
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - test_single_secret
    linkageType: ''
    returnType: int
    signature: int test_single_secret_enc_alg(int z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:665,1
    - Dst: get_custom_oid
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:666,1
    - Dst: start_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:669,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:671,1
    - Dst: add_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:673,1
    - Dst: add_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:674,1
    - Dst: add_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:675,1
    - Dst: add_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:676,1
    - Dst: end_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:678,1
    - Dst: start_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:680,1
    - Dst: add_secretbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:682,1
    - Dst: end_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:684,1
    - Dst: end_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:686,1
    - Dst: start_check_pkcs12_with_mac
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:689,1
    - Dst: start_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:691,1
    - Dst: check_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:693,1
    - Dst: check_certbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:694,1
    - Dst: check_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:695,1
    - Dst: check_keybag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:696,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:698,1
    - Dst: start_check_contentinfo_encrypted
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:700,1
    - Dst: check_secretbag
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:702,1
    - Dst: end_check_contentinfo
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:704,1
    - Dst: end_check_pkcs12
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:706,1
    - Dst: end_pkcs12_builder
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 663
    functionDepth: 9
    functionLinenumber: 663
    functionLinenumberEnd: 709
    functionName: test_multiple_contents
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - end_contentinfo
    - start_check_contentinfo
    - start_pkcs12
    - end_pkcs12_builder
    - check_keybag
    - start_check_contentinfo_encrypted
    - new_pkcs12_builder
    - add_keybag
    - end_check_pkcs12
    - start_check_pkcs12_with_mac
    - check_secretbag
    - end_contentinfo_encrypted
    - start_contentinfo
    - add_secretbag
    - end_pkcs12_with_mac
    - end_check_contentinfo
    - add_certbag
    - get_custom_oid
    - check_certbag
    linkageType: ''
    returnType: int
    signature: int test_multiple_contents(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:774,1
    - Dst: d2i_PrivateKey_ex
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:774,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:777,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:777,1
    - Dst: PKCS12_create
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:779,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:782,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:785,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:785,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:789,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:790,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 712
    functionDepth: 15
    functionLinenumber: 712
    functionLinenumberEnd: 792
    functionName: pkcs12_create_test
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - d2i_PrivateKey_ex
    - PKCS12_create
    - TEST_int_eq
    - PKCS12_free
    - ERR_peek_error
    - EVP_PKEY_free
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int pkcs12_create_test(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:809,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:810,1
    - Dst: d2i_AutoPrivateKey
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:812,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:813,1
    - Dst: PKCS12_create
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:815,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:817,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:819,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:819,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:822,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:822,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:823,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:825,1
    - Dst: i2d_PKCS12_bio
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:825,1
    - Dst: PKCS12_init_ex
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:827,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:828,1
    - Dst: d2i_PKCS12_bio
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:830,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:831,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:833,1
    - Dst: PKCS12_parse
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:833,1
    - Dst: PKCS12_create
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:838,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:841,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:843,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:843,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:848,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:849,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:850,1
    - Dst: PKCS12_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:851,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:852,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:853,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:854,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:855,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 795
    functionDepth: 16
    functionLinenumber: 795
    functionLinenumberEnd: 857
    functionName: pkcs12_recreate_test
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - PKCS12_create
    - BIO_new
    - d2i_PKCS12_bio
    - X509_free
    - i2d_PKCS12_bio
    - TEST_int_eq
    - PKCS12_init_ex
    - BIO_free
    - PKCS12_free
    - ERR_peek_error
    - EVP_PKEY_free
    - PKCS12_parse
    - TEST_ptr
    - d2i_X509
    - d2i_AutoPrivateKey
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int pkcs12_recreate_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 878
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:884,1
    - Dst: PKCS12_helper_set_write_files
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:887,1
    - Dst: PKCS12_helper_set_legacy
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:890,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:903,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:904,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:906,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:907,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:911,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:912,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:914,1
    - Dst: PKCS12_helper_set_libctx
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:916,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:923,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:923,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:924,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:924,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:928,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:930,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:930,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:931,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:931,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:933,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:933,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:934,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:934,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:938,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:941,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:942,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:942,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:943,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:943,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:944,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:945,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:945,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:946,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:946,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:947,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:947,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:948,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:949,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:950,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:951,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 880
    functionDepth: 11
    functionLinenumber: 880
    functionLinenumberEnd: 953
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - OSSL_PROVIDER_load
    - opt_next
    - OSSL_PROVIDER_available
    - PKCS12_helper_set_legacy
    - TEST_false
    - ADD_ALL_TESTS
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - PKCS12_helper_set_write_files
    - PKCS12_helper_set_libctx
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:957,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:958,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:959,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/pkcs12_format_test.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 955
    functionDepth: 5
    functionLinenumber: 955
    functionLinenumberEnd: 961
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pkcs12_format_test.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - unsigned char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: swap_copy
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap_copy(unsigned char *out, const void *in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:42,1
    - Dst: swap_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - in
    - len
    argTypes:
    - unsigned char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: le_copy
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - swap_copy
    - memcpy
    linkageType: ''
    returnType: void
    signature: void le_copy(unsigned char *out, const void *in, size_t len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:86,1
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:87,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:91,1
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:92,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:93,1
    - Dst: OSSL_PARAM_get_size_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:93,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_api_test.c:96,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:96,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:101,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:103,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:106,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:108,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:111,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:120,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:120,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:121,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:121,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:122,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:125,1
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:126,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:126,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:130,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:130,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 39
    argCount: 3
    argNames:
    - param
    - cmp
    - width
    argTypes:
    - OSSL_PARAM*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 134
    functionName: test_param_type_extra
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_uint32
    - TEST_mem_eq
    - OSSL_PARAM_get_int32
    - OSSL_PARAM_get_uint64
    - TEST_false
    - TEST_size_t_eq
    - OSSL_PARAM_get_size_t
    - le_copy
    - OSSL_PARAM_set_int32
    - OSSL_PARAM_modified
    - OSSL_PARAM_set_uint32
    - OSSL_PARAM_get_int64
    - TEST_true
    linkageType: ''
    returnType: int
    signature: "int test_param_type_extra(OSSL_PARAM *param, const unsigned char *cmp,\n
      \                                size_t width)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:154,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:156,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:157,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:160,1
    - Dst: OSSL_PARAM_set_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:160,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:162,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:166,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:166,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:168,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:169,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 7
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: test_param_int
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - OSSL_PARAM_int
    - le_copy
    - memset
    - test_param_type_extra
    - TEST_true
    - OSSL_PARAM_get_int
    - OSSL_PARAM_set_int
    linkageType: ''
    returnType: int
    signature: int test_param_int(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_long
      Src: /src/openssl-3.0.15/test/params_api_test.c:181,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:183,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:184,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:187,1
    - Dst: OSSL_PARAM_set_long
      Src: /src/openssl-3.0.15/test/params_api_test.c:187,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:189,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:193,1
    - Dst: OSSL_PARAM_get_long
      Src: /src/openssl-3.0.15/test/params_api_test.c:193,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:195,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:196,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 175
    functionDepth: 7
    functionLinenumber: 175
    functionLinenumberEnd: 200
    functionName: test_param_long
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_long
    - TEST_true
    - TEST_mem_eq
    - memcpy
    - le_copy
    - test_param_type_extra
    - OSSL_PARAM_get_long
    - memset
    - OSSL_PARAM_set_long
    linkageType: ''
    returnType: int
    signature: int test_param_long(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_uint
      Src: /src/openssl-3.0.15/test/params_api_test.c:207,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:209,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:210,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:211,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:213,1
    - Dst: OSSL_PARAM_set_uint
      Src: /src/openssl-3.0.15/test/params_api_test.c:213,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:215,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:216,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:219,1
    - Dst: OSSL_PARAM_get_uint
      Src: /src/openssl-3.0.15/test/params_api_test.c:219,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:221,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:222,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 202
    functionDepth: 7
    functionLinenumber: 202
    functionLinenumberEnd: 226
    functionName: test_param_uint
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_eq
    - OSSL_PARAM_uint
    - OSSL_PARAM_set_uint
    - memcpy
    - le_copy
    - test_param_type_extra
    - memset
    - OSSL_PARAM_get_uint
    linkageType: ''
    returnType: int
    signature: int test_param_uint(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/params_api_test.c:234,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:236,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:237,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:240,1
    - Dst: OSSL_PARAM_set_ulong
      Src: /src/openssl-3.0.15/test/params_api_test.c:240,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:242,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:243,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:246,1
    - Dst: OSSL_PARAM_get_ulong
      Src: /src/openssl-3.0.15/test/params_api_test.c:246,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:248,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:249,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 253
    functionName: test_param_ulong
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_eq
    - OSSL_PARAM_get_ulong
    - memcpy
    - OSSL_PARAM_set_ulong
    - le_copy
    - OSSL_PARAM_ulong
    - test_param_type_extra
    - memset
    linkageType: ''
    returnType: int
    signature: int test_param_ulong(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:261,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:263,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:264,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:267,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:267,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:269,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:270,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:273,1
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:273,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:275,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:276,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 255
    functionDepth: 7
    functionLinenumber: 255
    functionLinenumberEnd: 280
    functionName: test_param_int32
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_eq
    - OSSL_PARAM_get_int32
    - memcpy
    - OSSL_PARAM_int32
    - le_copy
    - OSSL_PARAM_set_int32
    - test_param_type_extra
    - memset
    linkageType: ''
    returnType: int
    signature: int test_param_int32(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:288,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:290,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:291,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:294,1
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:294,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:296,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:300,1
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:300,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:302,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:303,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 307
    functionName: test_param_uint32
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - OSSL_PARAM_get_uint32
    - memcpy
    - le_copy
    - memset
    - OSSL_PARAM_set_uint32
    - test_param_type_extra
    - OSSL_PARAM_uint32
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_param_uint32(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:315,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:317,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:318,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:319,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:321,1
    - Dst: OSSL_PARAM_set_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:321,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:323,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:324,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:327,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:327,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:329,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:330,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 309
    functionDepth: 7
    functionLinenumber: 309
    functionLinenumberEnd: 334
    functionName: test_param_int64
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - le_copy
    - memset
    - test_param_type_extra
    - OSSL_PARAM_get_int64
    - OSSL_PARAM_set_int64
    - TEST_true
    - OSSL_PARAM_int64
    linkageType: ''
    returnType: int
    signature: int test_param_int64(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:342,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:344,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:345,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:346,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:348,1
    - Dst: OSSL_PARAM_set_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:348,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:350,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:354,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:354,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:356,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:357,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 336
    functionDepth: 7
    functionLinenumber: 336
    functionLinenumberEnd: 361
    functionName: test_param_uint64
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - OSSL_PARAM_get_uint64
    - le_copy
    - memset
    - OSSL_PARAM_set_uint64
    - test_param_type_extra
    - TEST_true
    - OSSL_PARAM_uint64
    linkageType: ''
    returnType: int
    signature: int test_param_uint64(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_size_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:369,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:371,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:372,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:373,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:375,1
    - Dst: OSSL_PARAM_set_size_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:375,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:377,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:378,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:381,1
    - Dst: OSSL_PARAM_get_size_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:381,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:383,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:384,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 363
    functionDepth: 7
    functionLinenumber: 363
    functionLinenumberEnd: 388
    functionName: test_param_size_t
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_size_t
    - TEST_mem_eq
    - memcpy
    - le_copy
    - memset
    - OSSL_PARAM_get_size_t
    - test_param_type_extra
    - OSSL_PARAM_size_t
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_param_size_t(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_time_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:396,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_api_test.c:398,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:399,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/params_api_test.c:400,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:402,1
    - Dst: OSSL_PARAM_set_time_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:402,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:404,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:405,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:408,1
    - Dst: OSSL_PARAM_get_time_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:408,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:410,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:411,1
    - Dst: test_param_type_extra
      Src: /src/openssl-3.0.15/test/params_api_test.c:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 390
    functionDepth: 7
    functionLinenumber: 390
    functionLinenumberEnd: 415
    functionName: test_param_time_t
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - OSSL_PARAM_set_time_t
    - memcpy
    - OSSL_PARAM_time_t
    - le_copy
    - memset
    - test_param_type_extra
    - OSSL_PARAM_get_time_t
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_param_time_t(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_DEFN
      Src: /src/openssl-3.0.15/test/params_api_test.c:422,1
    - Dst: le_copy
      Src: /src/openssl-3.0.15/test/params_api_test.c:429,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:430,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/test/params_api_test.c:430,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:433,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/test/params_api_test.c:433,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:434,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:437,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/params_api_test.c:437,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:438,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:443,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 446
    functionName: test_param_bignum
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_set_BN
    - TEST_BN_eq
    - le_copy
    - BN_free
    - BN_lebin2bn
    - TEST_ptr
    - TEST_true
    - OSSL_PARAM_DEFN
    linkageType: ''
    returnType: int
    signature: int test_param_bignum(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_double
      Src: /src/openssl-3.0.15/test/params_api_test.c:451,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:454,1
    - Dst: OSSL_PARAM_set_double
      Src: /src/openssl-3.0.15/test/params_api_test.c:454,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: test_param_real
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_double_eq
    - TEST_true
    - OSSL_PARAM_double
    - OSSL_PARAM_set_double
    linkageType: ''
    returnType: int
    signature: int test_param_real(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:491,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/params_api_test.c:492,1
    - Dst: OSSL_PARAM_construct_long
      Src: /src/openssl-3.0.15/test/params_api_test.c:493,1
    - Dst: OSSL_PARAM_construct_ulong
      Src: /src/openssl-3.0.15/test/params_api_test.c:494,1
    - Dst: OSSL_PARAM_construct_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:495,1
    - Dst: OSSL_PARAM_construct_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:496,1
    - Dst: OSSL_PARAM_construct_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:497,1
    - Dst: OSSL_PARAM_construct_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:498,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/params_api_test.c:499,1
    - Dst: OSSL_PARAM_construct_double
      Src: /src/openssl-3.0.15/test/params_api_test.c:500,1
    - Dst: OSSL_PARAM_construct_BN
      Src: /src/openssl-3.0.15/test/params_api_test.c:501,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:502,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:503,1
    - Dst: OSSL_PARAM_construct_utf8_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:504,1
    - Dst: OSSL_PARAM_construct_octet_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:505,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/params_api_test.c:506,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/params_api_test.c:513,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/params_api_test.c:516,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/params_api_test.c:519,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/params_api_test.c:520,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/params_api_test.c:525,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:525,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:529,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:530,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:530,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:531,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:532,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/params_api_test.c:532,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:533,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:534,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_api_test.c:535,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:540,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:541,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:541,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:542,1
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/test/params_api_test.c:542,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:543,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/params_api_test.c:543,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:544,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:545,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_api_test.c:546,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:551,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:551,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:552,1
    - Dst: OSSL_PARAM_set_double
      Src: /src/openssl-3.0.15/test/params_api_test.c:552,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:553,1
    - Dst: OSSL_PARAM_get_double
      Src: /src/openssl-3.0.15/test/params_api_test.c:553,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:554,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:555,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:556,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:560,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:560,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:561,1
    - Dst: OSSL_PARAM_set_utf8_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:561,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:562,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:563,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:563,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:564,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:565,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:568,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:570,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:570,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:571,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:576,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:576,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:577,1
    - Dst: OSSL_PARAM_set_utf8_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:577,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:578,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:579,1
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:579,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:580,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:581,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:584,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:584,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:585,1
    - Dst: OSSL_PARAM_set_octet_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:585,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:587,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:591,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:591,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:592,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:593,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:597,1
    - Dst: OSSL_PARAM_get_octet_string
      Src: /src/openssl-3.0.15/test/params_api_test.c:597,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:598,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:599,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:604,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:604,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:605,1
    - Dst: OSSL_PARAM_set_octet_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:605,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:606,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:607,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:611,1
    - Dst: OSSL_PARAM_get_octet_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:611,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:612,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:613,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:616,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:616,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:617,1
    - Dst: BN_lebin2bn
      Src: /src/openssl-3.0.15/test/params_api_test.c:617,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:618,1
    - Dst: OSSL_PARAM_set_BN
      Src: /src/openssl-3.0.15/test/params_api_test.c:618,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:623,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/params_api_test.c:623,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:624,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:629,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:630,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:631,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:632,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:633,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 103
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 458
    functionDepth: 5
    functionLinenumber: 458
    functionLinenumberEnd: 635
    functionName: test_param_construct
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_ptr_null
    - OSSL_PARAM_get_octet_ptr
    - OSSL_PARAM_construct_long
    - OSSL_PARAM_set_int32
    - OSSL_PARAM_construct_int
    - BN_lebin2bn
    - OSSL_PARAM_construct_octet_string
    - OSSL_PARAM_merge
    - OSSL_PARAM_construct_int64
    - OSSL_PARAM_construct_uint
    - TEST_note
    - TEST_double_eq
    - OSSL_PARAM_set_utf8_ptr
    - OSSL_PARAM_construct_ulong
    - OSSL_PARAM_set_BN
    - TEST_BN_eq
    - OSSL_PARAM_construct_int32
    - OSSL_PARAM_get_int64
    - OSSL_PARAM_dup
    - TEST_true
    - OSSL_PARAM_construct_BN
    - OSSL_PARAM_construct_octet_ptr
    - OSSL_PARAM_construct_uint64
    - OSSL_PARAM_get_utf8_string
    - OSSL_PARAM_construct_size_t
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_get_uint64
    - TEST_size_t_eq
    - OSSL_PARAM_set_double
    - OSSL_PARAM_locate
    - OSSL_PARAM_set_uint32
    - OSSL_PARAM_construct_double
    - OPENSSL_free
    - OSSL_PARAM_set_octet_string
    - BN_free
    - OSSL_PARAM_get_utf8_ptr
    - TEST_ptr
    - OSSL_PARAM_set_octet_ptr
    - OSSL_NELEM
    - OSSL_PARAM_get_octet_string
    - OSSL_PARAM_construct_utf8_ptr
    - OSSL_PARAM_construct_uint32
    - TEST_ptr_eq
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_get_double
    - TEST_str_eq
    - OSSL_PARAM_set_utf8_string
    linkageType: ''
    returnType: int
    signature: int test_param_construct(int tstid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:639,1
    - Dst: OSSL_PARAM_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:640,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_api_test.c:646,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:646,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:647,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:647,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:648,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:648,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_api_test.c:649,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:649,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:650,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:650,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:651,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:651,1
    - Dst: OSSL_PARAM_set_all_unmodified
      Src: /src/openssl-3.0.15/test/params_api_test.c:653,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_api_test.c:654,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:654,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:655,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:655,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:656,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:656,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_api_test.c:657,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:657,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:658,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_api_test.c:658,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:659,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/params_api_test.c:659,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 637
    functionDepth: 5
    functionLinenumber: 637
    functionLinenumberEnd: 662
    functionName: test_param_modified
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_all_unmodified
    - OSSL_PARAM_int
    - TEST_false
    - OSSL_PARAM_set_int32
    - OSSL_PARAM_modified
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_param_modified(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:671,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:672,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/params_api_test.c:673,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/params_api_test.c:675,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/params_api_test.c:675,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:676,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/params_api_test.c:676,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:677,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:677,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:678,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:678,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:679,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:680,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:680,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:681,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:681,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:682,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:683,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/params_api_test.c:683,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:684,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:684,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:685,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:685,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:686,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_api_test.c:687,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_api_test.c:687,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_api_test.c:688,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/params_api_test.c:688,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/params_api_test.c:689,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/params_api_test.c:690,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/params_api_test.c:690,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:691,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/params_api_test.c:692,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 664
    functionDepth: 5
    functionLinenumber: 664
    functionLinenumberEnd: 694
    functionName: test_param_copy_null
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - TEST_int_eq
    - OSSL_PARAM_free
    - TEST_ptr
    - OSSL_PARAM_locate
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_dup
    - TEST_true
    - OSSL_PARAM_get_int
    - OSSL_PARAM_merge
    linkageType: ''
    returnType: int
    signature: int test_param_copy_null(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:698,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:698,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:699,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:699,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:700,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:700,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:701,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:701,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:702,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:702,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:703,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:703,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:704,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:704,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:705,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:705,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:706,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:706,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:707,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:707,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:708,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/params_api_test.c:708,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/params_api_test.c:709,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_api_test.c:710,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/params_api_test.c:711,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/params_api_test.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 714
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/params_api_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:98,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:103,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:103,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:104,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:105,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:106,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:107,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:108,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 113
    functionName: load_dsa_params
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - DSA_set0_pqg
    - BN_free
    - DSA_new
    - DSA_free
    linkageType: ''
    returnType: DSA
    signature: DSA *load_dsa_params(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:117,1
    - Dst: load_dsa_params
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:117,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:120,1
    - Dst: DSA_generate_key
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: genkeys
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_int_eq
    - load_dsa_params
    - DSA_generate_key
    linkageType: ''
    returnType: int
    signature: int genkeys(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:134,1
    - Dst: DSA_get0_q
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:134,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:137,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:138,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:143,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:144,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:145,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:145,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:148,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:150,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:154,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:154,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:156,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:158,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:158,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:160,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:160,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:163,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:164,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:168,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:168,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:171,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:172,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:177,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:177,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:181,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:182,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:187,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:188,1
    - Dst: DSA_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:193,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:194,1
    - Dst: DSA_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:198,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:199,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:205,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:206,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:208,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:210,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 213
    functionName: sign_and_verify
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TEST_int_eq
    - EVP_PKEY_sign
    - EVP_PKEY_CTX_new
    - BN_num_bytes
    - EVP_PKEY_CTX_free
    - EVP_PKEY_verify
    - TEST_error
    - memset
    - DSA_verify
    - EVP_PKEY_new
    - OPENSSL_free
    - TEST_ptr
    - RAND_bytes
    - DSA_get0_q
    - EVP_PKEY_set1_DSA
    - EVP_PKEY_sign_init
    - OPENSSL_malloc
    - EVP_PKEY_free
    - EVP_PKEY_verify_init
    linkageType: ''
    returnType: int
    signature: int sign_and_verify(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_and_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:221,1
    - Dst: sign_and_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 12
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: dsa_exact_size_test
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - sign_and_verify
    linkageType: ''
    returnType: int
    signature: int dsa_exact_size_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_and_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:225,1
    - Dst: sign_and_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 12
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: dsa_small_digest_test
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - sign_and_verify
    linkageType: ''
    returnType: int
    signature: int dsa_small_digest_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_and_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:229,1
    - Dst: sign_and_verify
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 12
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: dsa_large_digest_test
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - sign_and_verify
    linkageType: ''
    returnType: int
    signature: int dsa_large_digest_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: genkeys
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:242,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:245,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:246,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dsa_no_digest_size_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - genkeys
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:62,1
    - Dst: ossl_sm3_init
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:63,1
    - Dst: ossl_sm3_update
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:64,1
    - Dst: ossl_sm3_final
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:64,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:68,1
    - Dst: ossl_sm3_init
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:69,1
    - Dst: ossl_sm3_update
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:70,1
    - Dst: ossl_sm3_final
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:70,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:71,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 75
    functionName: test_sm3
    functionSourceFile: /src/openssl-3.0.15/test/sm3_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - ossl_sm3_update
    - ossl_sm3_init
    - TEST_true
    - ossl_sm3_final
    linkageType: ''
    returnType: int
    signature: int test_sm3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sm3_internal_test.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sm3_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:119,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:123,1
    - Dst: ASN1_TIME_check
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:123,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:124,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:130,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:130,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:131,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:135,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:135,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:136,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:139,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:140,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:144,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:144,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:145,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:147,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:148,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:149,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:150,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:154,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:154,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:155,1
    - Dst: ASN1_TIME_set
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:159,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:160,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:161,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:165,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:165,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:166,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:170,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:171,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:175,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:176,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:179,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:180,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:181,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:185,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:185,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:186,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:189,1
    - Dst: ASN1_TIME_normalize
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:189,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:190,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:193,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:198,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:198,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:199,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:202,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:202,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:203,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:207,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:208,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:211,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:212,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:213,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:217,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:217,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:222,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:222,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:222,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:222,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:223,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:226,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:226,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:227,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:231,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:232,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:236,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:237,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:238,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:240,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:241,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:244,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:244,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:245,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:248,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:253,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 123
    argCount: 2
    argNames:
    - tbl
    - idx
    argTypes:
    - struct testdata*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 256
    functionName: test_table
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_set
    - ASN1_TIME_free
    - TEST_ptr_null
    - ASN1_TIME_new
    - ASN1_TIME_set_string
    - TEST_int_eq
    - ASN1_TIME_check
    - ASN1_TIME_cmp_time_t
    - TEST_info
    - ASN1_TIME_normalize
    - TEST_error
    - strlen
    - TEST_ptr
    - ASN1_TIME_diff
    - TEST_true
    - ASN1_TIME_to_generalizedtime
    linkageType: ''
    returnType: int
    signature: int test_table(struct testdata *tbl, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: test_table_pos
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_pos(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: test_table_neg
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_neg(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: test_table_pos_64bit
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_pos_64bit(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_table
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: test_table_neg_64bit
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - test_table
    linkageType: ''
    returnType: int
    signature: int test_table_neg_64bit(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:320,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 6
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: test_table_compare
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ASN1_TIME_compare
    linkageType: ''
    returnType: int
    signature: int test_table_compare(int idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:330,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:330,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:332,1
    - Dst: ASN1_TIME_to_generalizedtime
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:336,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:338,1
    - Dst: ASN1_TIME_dup
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:342,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:343,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:344,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:347,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:347,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:348,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:351,1
    - Dst: ASN1_UTCTIME_dup
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:353,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:354,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:355,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:358,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:358,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:359,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:362,1
    - Dst: ASN1_GENERALIZEDTIME_dup
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:364,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:365,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:366,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:369,1
    - Dst: ASN1_TIME_compare
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:369,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:370,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:376,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:377,1
    - Dst: ASN1_STRING_free
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:378,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 380
    functionName: test_time_dup
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_free
    - ASN1_GENERALIZEDTIME_dup
    - ASN1_TIME_compare
    - TEST_int_eq
    - time
    - ASN1_TIME_adj
    - TEST_info
    - TEST_ptr_ne
    - ASN1_UTCTIME_dup
    - ASN1_TIME_dup
    - ASN1_TIME_to_generalizedtime
    linkageType: ''
    returnType: int
    signature: int test_time_dup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:398,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:400,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:400,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:402,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:403,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:403,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:406,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:407,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:407,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:410,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:411,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:411,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:415,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:415,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_time_test.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 418
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asn1_time_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - localtime
    - ADD_ALL_TESTS
    - TEST_info
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_idea.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:57,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/dhtest.c:57,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:58,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dhtest.c:58,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:59,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dhtest.c:59,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:60,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dhtest.c:60,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:61,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dhtest.c:61,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:69,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:70,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:71,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:72,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:76,1
    - Dst: DH_check
      Src: /src/openssl-3.0.15/test/dhtest.c:76,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:79,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:80,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:81,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:82,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:83,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:84,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:85,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:86,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:87,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:88,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:92,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:93,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:94,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:95,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:99,1
    - Dst: DH_get0_p
      Src: /src/openssl-3.0.15/test/dhtest.c:99,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:100,1
    - Dst: DH_get0_q
      Src: /src/openssl-3.0.15/test/dhtest.c:100,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:101,1
    - Dst: DH_get0_g
      Src: /src/openssl-3.0.15/test/dhtest.c:101,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:105,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:106,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:106,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:110,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:111,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:112,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:116,1
    - Dst: DH_get0_pub_key
      Src: /src/openssl-3.0.15/test/dhtest.c:116,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:117,1
    - Dst: DH_get0_priv_key
      Src: /src/openssl-3.0.15/test/dhtest.c:117,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:121,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/test/dhtest.c:121,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/dhtest.c:125,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:127,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/dhtest.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:127,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/dhtest.c:127,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/dhtest.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:130,1
    - Dst: DH_check
      Src: /src/openssl-3.0.15/test/dhtest.c:130,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:132,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:137,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:137,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:138,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/test/dhtest.c:138,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:144,1
    - Dst: DH_check
      Src: /src/openssl-3.0.15/test/dhtest.c:144,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/dhtest.c:148,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:155,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/test/dhtest.c:155,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-3.0.15/test/dhtest.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:158,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/dhtest.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:159,1
    - Dst: DH_generate_parameters_ex
      Src: /src/openssl-3.0.15/test/dhtest.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:164,1
    - Dst: DH_check
      Src: /src/openssl-3.0.15/test/dhtest.c:164,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:166,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:167,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:168,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:169,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:170,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:171,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:172,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:173,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:174,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:175,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:178,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:181,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/dhtest.c:181,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:184,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:184,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:185,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:186,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:186,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/test/dhtest.c:194,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:196,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/test/dhtest.c:198,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:200,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:203,1
    - Dst: DHparams_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:203,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:204,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:205,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:205,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:209,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:210,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:211,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:211,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:214,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:215,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:215,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:216,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:216,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:219,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:220,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:220,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:221,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:224,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:225,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:226,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:234,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:235,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:236,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:239,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:243,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:244,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:245,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:246,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:247,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:248,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:249,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:250,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/test/dhtest.c:251,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:252,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 37
    functionDepth: 10
    functionLinenumber: 37
    functionLinenumberEnd: 255
    functionName: dh_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - DH_check
    - BN_GENCB_set
    - TEST_mem_eq
    - DH_get0_priv_key
    - BN_GENCB_new
    - DH_get0_q
    - DH_new
    - DH_generate_key
    - DH_get0_key
    - DH_set0_pqg
    - BN_set_word
    - TEST_true
    - DH_free
    - DH_get0_g
    - BN_new
    - DH_generate_parameters_ex
    - ERR_clear_error
    - DH_set0_key
    - BN_free
    - OPENSSL_free
    - BN_value_one
    - BN_add
    - TEST_ptr
    - DHparams_dup
    - BN_lshift
    - OPENSSL_malloc
    - DH_compute_key
    - TEST_false
    - BN_GENCB_free
    - TEST_ptr_eq
    - BN_copy
    - DH_get0_pub_key
    - DH_size
    - DH_get0_pqg
    - DH_get0_p
    linkageType: ''
    returnType: int
    signature: int dh_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: cb
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 107
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cb(int p, int n, BN_GENCB *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:269,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:269,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:270,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:270,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:271,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:271,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:272,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/dhtest.c:272,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:273,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:273,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dhtest.c:277,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:277,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:278,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:278,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:279,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dhtest.c:279,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:280,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dhtest.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:283,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:284,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:287,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dhtest.c:287,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dhtest.c:293,1
    - Dst: ossl_dh_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:293,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:296,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/dhtest.c:296,1
    - Dst: DH_get0_p
      Src: /src/openssl-3.0.15/test/dhtest.c:296,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dhtest.c:297,1
    - Dst: ossl_dh_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:300,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/dhtest.c:300,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dhtest.c:301,1
    - Dst: ossl_dh_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:301,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:304,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/dhtest.c:304,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:305,1
    - Dst: ossl_dh_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:305,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:310,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:311,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:312,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:313,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:314,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:315,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:316,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 262
    functionDepth: 9
    functionLinenumber: 262
    functionLinenumberEnd: 318
    functionName: dh_computekey_range_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - TEST_int_eq
    - ossl_dh_compute_key
    - TEST_int_gt
    - DH_new
    - TEST_int_le
    - DH_set0_pqg
    - BN_set_word
    - TEST_true
    - DH_free
    - BN_sub_word
    - BN_new
    - DH_set0_key
    - BN_free
    - OPENSSL_free
    - TEST_ptr
    - OPENSSL_malloc
    - BN_copy
    - DH_size
    - DH_get0_p
    linkageType: ''
    returnType: int
    signature: int dh_computekey_range_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pre
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 570
    functionName: make_rfc5114_td
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_rfc5114_td(pre)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/dhtest.c:589,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:592,1
    - Dst: rfc5114_td*::get_param
      Src: /src/openssl-3.0.15/test/dhtest.c:592,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:593,1
    - Dst: rfc5114_td*::get_param
      Src: /src/openssl-3.0.15/test/dhtest.c:593,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:596,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dhtest.c:596,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:597,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dhtest.c:597,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:598,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:598,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:601,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dhtest.c:601,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:602,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dhtest.c:602,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:603,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:603,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dhtest.c:607,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:607,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dhtest.c:608,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:608,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:609,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:610,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:613,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:613,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:614,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:614,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:620,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/dhtest.c:621,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:621,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:624,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/dhtest.c:625,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:625,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:628,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:629,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:632,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:634,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:636,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:638,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:644,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:645,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:646,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:647,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:648,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:649,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dhtest.c:650,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:654,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:655,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:656,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:657,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dhtest.c:658,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 577
    functionDepth: 10
    functionLinenumber: 577
    functionLinenumberEnd: 660
    functionName: rfc5114_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - rfc5114_td*::get_param
    - BN_bin2bn
    - OPENSSL_malloc
    - TEST_int_ne
    - DH_compute_key
    - TEST_size_t_eq
    - DH_set0_key
    - DH_free
    - BN_free
    - OPENSSL_free
    - TEST_error
    - DH_size
    - DH_get0_key
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int rfc5114_test(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:671,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:671,1
    - Dst: DH_check
      Src: /src/openssl-3.0.15/test/dhtest.c:674,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:676,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:677,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:678,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:679,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dhtest.c:680,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/test/dhtest.c:683,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:685,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:688,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:688,1
    - Dst: DH_generate_key
      Src: /src/openssl-3.0.15/test/dhtest.c:691,1
    - Dst: DH_get0_key
      Src: /src/openssl-3.0.15/test/dhtest.c:693,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:695,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dhtest.c:696,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:696,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:696,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:697,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:697,1
    - Dst: DH_size
      Src: /src/openssl-3.0.15/test/dhtest.c:700,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dhtest.c:701,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:701,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/dhtest.c:701,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:702,1
    - Dst: DH_compute_key
      Src: /src/openssl-3.0.15/test/dhtest.c:702,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:705,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:706,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:712,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dhtest.c:713,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:714,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:715,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 662
    functionDepth: 10
    functionLinenumber: 662
    functionLinenumberEnd: 717
    functionName: rfc7919_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DH_check
    - OPENSSL_malloc
    - DH_generate_key
    - DH_compute_key
    - DH_new_by_nid
    - TEST_false
    - DH_free
    - OPENSSL_free
    - DH_size
    - DH_get0_key
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int rfc7919_test(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:737,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:737,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:739,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:740,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:740,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:740,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:743,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:743,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:747,1
    - Dst: DH_get_length
      Src: /src/openssl-3.0.15/test/dhtest.c:747,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:752,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 731
    functionDepth: 6
    functionLinenumber: 731
    functionLinenumberEnd: 754
    functionName: dh_test_prime_groups
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - DH_new_by_nid
    - DH_get_length
    - DH_get_nid
    - TEST_ptr
    - DH_get0_pqg
    - DH_free
    linkageType: ''
    returnType: int
    signature: int dh_test_prime_groups(int index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/dhtest.c:762,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:763,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:765,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/dhtest.c:765,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:768,1
    - Dst: EVP_PKEY_CTX_set_dhx_rfc5114
      Src: /src/openssl-3.0.15/test/dhtest.c:768,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:771,1
    - Dst: EVP_PKEY_CTX_set_dhx_rfc5114
      Src: /src/openssl-3.0.15/test/dhtest.c:771,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dhtest.c:776,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 778
    functionName: dh_rfc5114_fix_nid_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_paramgen_init
    - TEST_int_eq
    - TEST_ptr
    - EVP_PKEY_CTX_set_dhx_rfc5114
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int dh_rfc5114_fix_nid_test(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/dhtest.c:786,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:787,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:789,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/dhtest.c:789,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:792,1
    - Dst: EVP_PKEY_CTX_set_dh_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:792,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:795,1
    - Dst: EVP_PKEY_CTX_set_dh_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:795,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dhtest.c:800,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 780
    functionDepth: 5
    functionLinenumber: 780
    functionLinenumberEnd: 802
    functionName: dh_set_dh_nid_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_paramgen_init
    - TEST_int_eq
    - EVP_PKEY_CTX_set_dh_nid
    - TEST_ptr
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int dh_set_dh_nid_test(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:809,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/dhtest.c:810,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:812,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:813,1
    - Dst: DH_get0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:817,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:818,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:819,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:820,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:821,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:821,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:822,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:822,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:825,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:825,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:829,1
    - Dst: DH_get0_q
      Src: /src/openssl-3.0.15/test/dhtest.c:829,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:833,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:833,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:837,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:837,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/dhtest.c:837,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:839,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:839,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:842,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:842,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:846,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:846,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:847,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:847,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:848,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dhtest.c:848,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:849,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/dhtest.c:849,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:850,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/dhtest.c:850,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:853,1
    - Dst: DH_get_nid
      Src: /src/openssl-3.0.15/test/dhtest.c:853,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:858,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:859,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dhtest.c:860,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:861,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/dhtest.c:862,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 804
    functionDepth: 6
    functionLinenumber: 804
    functionLinenumberEnd: 864
    functionName: dh_get_nid
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - DH_new
    - BN_dup
    - DH_get0_q
    - TEST_int_eq
    - DH_new_by_nid
    - DH_set0_pqg
    - BN_free
    - BN_value_one
    - DH_get_nid
    - TEST_ptr
    - DH_get0_pqg
    - TEST_true
    - BN_add_word
    - DH_free
    linkageType: ''
    returnType: int
    signature: int dh_get_nid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dhtest.c:926,1
    - Dst: d2i_PUBKEY_ex
      Src: /src/openssl-3.0.15/test/dhtest.c:926,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dhtest.c:928,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/dhtest.c:928,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dhtest.c:930,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/dhtest.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 920
    functionDepth: 6
    functionLinenumber: 920
    functionLinenumberEnd: 934
    functionName: dh_load_pkcs3_namedgroup_privlen_test
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_int_param
    - TEST_int_eq
    - d2i_PUBKEY_ex
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int dh_load_pkcs3_namedgroup_privlen_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/dhtest.c:941,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:943,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:944,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:945,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:946,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/dhtest.c:947,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/dhtest.c:947,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:948,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:949,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:950,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dhtest.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 954
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dhtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_note
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_camellia.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_ctx_new_from_name.c:10,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_ctx_new_from_name.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 6
    functionDepth: 5
    functionLinenumber: 6
    functionLinenumberEnd: 14
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_ctx_new_from_name.c
    functionUses: 6
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-3.0.15/test/asynciotest.c:48,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:50,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-3.0.15/test/asynciotest.c:51,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-3.0.15/test/asynciotest.c:52,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-3.0.15/test/asynciotest.c:53,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-3.0.15/test/asynciotest.c:54,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-3.0.15/test/asynciotest.c:55,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-3.0.15/test/asynciotest.c:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: bio_f_async_filter
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_new
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_destroy
    - BIO_meth_set_create
    - BIO_meth_set_read
    - BIO_meth_set_write
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_f_async_filter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/asynciotest.c:66,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/test/asynciotest.c:70,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/test/asynciotest.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: async_new
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - OPENSSL_zalloc
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int async_new(BIO *bio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/test/asynciotest.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:82,1
    - Dst: BIO_set_data
      Src: /src/openssl-3.0.15/test/asynciotest.c:83,1
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/test/asynciotest.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: async_free
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - BIO_set_data
    - BIO_set_init
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int async_free(BIO *bio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/asynciotest.c:93,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/test/asynciotest.c:100,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/test/asynciotest.c:102,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/asynciotest.c:105,1
    - Dst: BIO_should_read
      Src: /src/openssl-3.0.15/test/asynciotest.c:106,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/test/asynciotest.c:107,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/test/asynciotest.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 115
    functionName: async_read
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_should_read
    - BIO_get_data
    - BIO_read
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int async_read(BIO *bio, char *out, int outl)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/asynciotest.c:129,1
    - Dst: BIO_get_data
      Src: /src/openssl-3.0.15/test/asynciotest.c:136,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/test/asynciotest.c:138,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/asynciotest.c:145,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/asynciotest.c:148,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/asynciotest.c:153,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/asynciotest.c:154,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/asynciotest.c:155,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/asynciotest.c:156,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/asynciotest.c:164,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/asynciotest.c:168,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/asynciotest.c:170,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/asynciotest.c:172,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/asynciotest.c:174,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/asynciotest.c:180,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/asynciotest.c:181,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/asynciotest.c:189,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/asynciotest.c:193,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/asynciotest.c:194,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/asynciotest.c:199,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/asynciotest.c:200,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/asynciotest.c:205,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:222,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:242,1
    - Dst: BIO_should_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:245,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:246,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:251,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 57
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 255
    functionName: async_write
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - PACKET_get_length_prefixed_1
    - BIO_set_retry_write
    - PACKET_buf_init
    - BIO_get_data
    - PACKET_remaining
    - PACKET_forward
    - BIO_clear_retry_flags
    - PACKET_get_net_2
    - BIO_should_write
    - BIO_write
    - PACKET_get_length_prefixed_2
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int async_write(BIO *bio, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/asynciotest.c:260,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/asynciotest.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: async_ctrl
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long async_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: async_gets
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int async_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:284,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/asynciotest.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: async_puts
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - async_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int async_puts(BIO *bio, const char *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asynciotest.c:299,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/asynciotest.c:299,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/asynciotest.c:299,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/asynciotest.c:300,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/asynciotest.c:315,1
    - Dst: bio_f_async_filter
      Src: /src/openssl-3.0.15/test/asynciotest.c:315,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/asynciotest.c:316,1
    - Dst: bio_f_async_filter
      Src: /src/openssl-3.0.15/test/asynciotest.c:316,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asynciotest.c:317,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asynciotest.c:318,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:319,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asynciotest.c:325,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/asynciotest.c:325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asynciotest.c:327,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/asynciotest.c:327,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/asynciotest.c:344,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/asynciotest.c:349,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/asynciotest.c:351,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/asynciotest.c:356,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/asynciotest.c:366,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/asynciotest.c:370,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/asynciotest.c:372,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/asynciotest.c:377,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:382,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:383,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:389,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:390,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:391,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:392,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 395
    functionName: test_asyncio
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TLS_client_method
    - create_ssl_ctx_pair
    - BIO_new
    - SSL_get_error
    - SSL_write
    - BIO_free
    - create_ssl_objects
    - create_ssl_connection
    - TEST_false
    - TEST_size_t_eq
    - SSL_CTX_free
    - bio_f_async_filter
    - SSL_free
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int test_asyncio(int test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/asynciotest.c:401,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asynciotest.c:402,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asynciotest.c:406,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/asynciotest.c:406,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asynciotest.c:407,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/asynciotest.c:407,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/asynciotest.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 412
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-3.0.15/test/asynciotest.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asynciotest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:590,1
    - Dst: EVP_shake256
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:590,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:591,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - hashctx
    - msg
    - msglen
    argTypes:
    - EVP_MD_CTX*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 585
    functionDepth: 6
    functionLinenumber: 585
    functionLinenumberEnd: 596
    functionName: dohash
    functionSourceFile: /src/openssl-3.0.15/test/curve448_internal_test.c
    functionUses: 1
    functionsReached:
    - EVP_DigestInit_ex
    - EVP_DigestFinalXOF
    - EVP_DigestUpdate
    - EVP_shake256
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *dohash(EVP_MD_CTX *hashctx, const uint8_t *msg,\n                             size_t
      msglen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:601,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:603,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:604,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:604,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:606,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:606,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:607,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:607,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:609,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:609,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:610,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:610,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:613,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:613,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:614,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:614,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:616,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:616,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:617,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:617,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:619,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:620,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:620,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:622,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:622,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:623,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:623,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:625,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:625,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:626,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:626,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:628,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:628,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:629,1
    - Dst: ossl_ed448_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:629,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:631,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:631,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:632,1
    - Dst: ossl_ed448ph_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:632,1
    - Dst: dohash
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:633,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:636,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:636,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:637,1
    - Dst: ossl_ed448ph_sign
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:637,1
    - Dst: dohash
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:638,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:642,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:642,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:643,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:647,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 598
    functionDepth: 15
    functionLinenumber: 598
    functionLinenumberEnd: 649
    functionName: test_ed448
    functionSourceFile: /src/openssl-3.0.15/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - TEST_int_eq
    - ossl_ed448_sign
    - EVP_MD_CTX_new
    - ossl_ed448ph_sign
    - memcmp
    - TEST_ptr
    - TEST_true
    - dohash
    linkageType: ''
    returnType: int
    signature: int test_ed448(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:659,1
    - Dst: ossl_x448
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:659,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:660,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:660,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:661,1
    - Dst: ossl_x448
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:661,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:662,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:662,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:665,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:666,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:669,1
    - Dst: fflush
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:670,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:673,1
    - Dst: ossl_x448
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:673,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:678,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:678,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:679,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:683,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 651
    functionDepth: 7
    functionLinenumber: 651
    functionLinenumberEnd: 688
    functionName: test_x448
    functionSourceFile: /src/openssl-3.0.15/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TEST_int_eq
    - ossl_x448
    - TEST_info
    - fflush
    - memcmp
    - printf
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_x448(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 708
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:714,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:734,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/curve448_internal_test.c:735,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 737
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/curve448_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_next
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:45,1
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_VFY_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - OPENSSL_free
    - OSSL_CMP_CTX_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CMP_VFY_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:57,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:57,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:60,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:63,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:63,1
    - Dst: OSSL_CMP_CTX_set0_trustedStore
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:64,1
    - Dst: OSSL_CMP_CTX_set_log_cb
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:65,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:66,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:67,1
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:70,1
    - Dst: X509_STORE_get0_param
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:70,1
    - Dst: X509_STORE_set_verify_cb
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 13
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 1
    functionsReached:
    - OSSL_CMP_CTX_set_log_cb
    - X509_STORE_new
    - OSSL_CMP_CTX_new
    - tear_down
    - X509_STORE_free
    - X509_VERIFY_PARAM_set_time
    - OPENSSL_zalloc
    - X509_STORE_set_verify_cb
    - OSSL_CMP_CTX_set0_trustedStore
    - X509_STORE_get0_param
    - TEST_ptr
    linkageType: ''
    returnType: CMP_VFY_TEST_FIXTURE
    signature: CMP_VFY_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_BIT_STRING_get_bit
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:95,1
    - Dst: ASN1_BIT_STRING_set_bit
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitstr
    argTypes:
    - ASN1_BIT_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: flip_bit
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - ASN1_BIT_STRING_get_bit
    - ASN1_BIT_STRING_set_bit
    linkageType: ''
    returnType: int
    signature: int flip_bit(ASN1_BIT_STRING *bitstr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:102,1
    - Dst: sk_OSSL_CRMF_MSG_value
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:106,1
    - Dst: flip_bit
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:107,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:110,1
    - Dst: ossl_cmp_verify_popo
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_VFY_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 113
    functionName: execute_verify_popo_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - flip_bit
    - TEST_int_eq
    - load_pkimsg
    - sk_OSSL_CRMF_MSG_value
    - ossl_cmp_verify_popo
    linkageType: ''
    returnType: int
    signature: int execute_verify_popo_test(CMP_VFY_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:117,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: test_verify_popo
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_verify_popo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:126,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: test_verify_popo_bad
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_verify_popo_bad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:135,1
    - Dst: ossl_cmp_msg_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_VFY_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 18
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: execute_validate_msg_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_cmp_msg_check_update
    linkageType: ''
    returnType: int
    signature: int execute_validate_msg_test(CMP_VFY_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_get0_trustedStore
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:142,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:143,1
    - Dst: OSSL_CMP_validate_cert_path
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:144,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_VFY_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 10
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: execute_validate_cert_path_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_CMP_CTX_get0_trustedStore
    - OSSL_CMP_CTX_print_errors
    - OSSL_CMP_validate_cert_path
    linkageType: ''
    returnType: int
    signature: int execute_validate_cert_path_test(CMP_VFY_TEST_FIXTURE *fixture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:153,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:156,1
    - Dst: OSSL_CMP_CTX_set0_trustedStore
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:156,1
    - Dst: OSSL_CMP_CTX_set1_secretValue
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:159,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:159,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:160,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - miss
    - wrong
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: test_validate_msg_mac_alg_protection
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - OSSL_CMP_CTX_set1_secretValue
    - load_pkimsg
    - OSSL_CMP_CTX_set0_trustedStore
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_mac_alg_protection(int miss, int wrong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_mac_alg_protection
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 6
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: test_validate_msg_mac_alg_protection_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_mac_alg_protection
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_mac_alg_protection_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_mac_alg_protection
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: test_validate_msg_mac_alg_protection_missing
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_mac_alg_protection
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_mac_alg_protection_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_mac_alg_protection
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 6
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: test_validate_msg_mac_alg_protection_wrong
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_mac_alg_protection
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_mac_alg_protection_wrong(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:193,1
    - Dst: OSSL_CMP_CTX_set1_secretValue
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:193,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:195,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:195,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:196,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: test_validate_msg_mac_alg_protection_bad
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - OSSL_CMP_CTX_set1_secretValue
    - load_pkimsg
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_mac_alg_protection_bad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:206,1
    - Dst: OSSL_CMP_CTX_get0_trustedStore
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: add_trusted
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_get0_trustedStore
    - X509_STORE_add_cert
    linkageType: ''
    returnType: int
    signature: int add_trusted(OSSL_CMP_CTX *ctx, X509 *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_add_cert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:211,1
    - Dst: OSSL_CMP_CTX_get0_untrusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - cert
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: add_untrusted
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - X509_add_cert
    - OSSL_CMP_CTX_get0_untrusted
    linkageType: ''
    returnType: int
    signature: int add_untrusted(OSSL_CMP_CTX *ctx, X509 *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:219,1
    - Dst: OSSL_CMP_CTX_get0_trustedStore
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:221,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:224,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:224,1
    - Dst: add_trusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:225,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:226,1
    - Dst: X509_STORE_get0_param
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:229,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:230,1
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:232,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - expired
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 236
    functionName: test_validate_msg_signature_partial_chain
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - X509_VERIFY_PARAM_set_time
    - tear_down
    - add_trusted
    - load_pkimsg
    - OSSL_CMP_CTX_get0_trustedStore
    - X509_STORE_get0_param
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_partial_chain(int expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_signature_partial_chain
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: test_validate_msg_signature_trusted_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_signature_partial_chain
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_trusted_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_signature_partial_chain
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: test_validate_msg_signature_trusted_expired
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_signature_partial_chain
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_trusted_expired(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:252,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:255,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:256,1
    - Dst: OSSL_CMP_CTX_set1_secretValue
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:256,1
    - Dst: OSSL_CMP_CTX_set1_srvCert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:258,1
    - Dst: flip_bit
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:260,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:261,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - bad_sig
    - miss
    - wrong
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: test_validate_msg_signature_srvcert
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - flip_bit
    - OSSL_CMP_CTX_set1_secretValue
    - load_pkimsg
    - OSSL_CMP_CTX_set1_srvCert
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_srvcert(int bad_sig, int miss, int
      wrong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_signature_srvcert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: test_validate_msg_signature_srvcert_missing
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_signature_srvcert
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_srvcert_missing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_signature_srvcert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 4
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: test_validate_msg_signature_srvcert_wrong
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_signature_srvcert
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_srvcert_wrong(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_signature_srvcert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: test_validate_msg_signature_bad
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_signature_srvcert
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_bad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_msg_signature_srvcert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 4
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: test_validate_msg_signature_sender_cert_srvcert
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_msg_signature_srvcert
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_sender_cert_srvcert(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:292,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:294,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:294,1
    - Dst: add_trusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:295,1
    - Dst: add_untrusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:296,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:297,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 302
    functionName: test_validate_msg_signature_sender_cert_untrusted
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - add_trusted
    - load_pkimsg
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - add_untrusted
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_sender_cert_untrusted(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:306,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:308,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:308,1
    - Dst: add_trusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:309,1
    - Dst: add_trusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:310,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:311,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 316
    functionName: test_validate_msg_signature_sender_cert_trusted
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - add_trusted
    - load_pkimsg
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_sender_cert_trusted(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:320,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:322,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:322,1
    - Dst: add_trusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:323,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:324,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: test_validate_msg_signature_sender_cert_extracert
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - add_trusted
    - load_pkimsg
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_sender_cert_extracert(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:335,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:337,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:337,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:338,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: test_validate_msg_signature_sender_cert_absent
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - load_pkimsg
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_sender_cert_absent(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:348,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:350,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:350,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:351,1
    - Dst: OSSL_CMP_CTX_set1_expected_sender
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:352,1
    - Dst: OSSL_CMP_CTX_set1_srvCert
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:352,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:353,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - name
    - expected
    argTypes:
    - X509_NAME*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: test_validate_with_sender
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_CTX_set1_expected_sender
    - tear_down
    - load_pkimsg
    - OSSL_CMP_CTX_set1_srvCert
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_validate_with_sender(const X509_NAME *name, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_with_sender
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:362,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: test_validate_msg_signature_expected_sender
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_with_sender
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_expected_sender(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_validate_with_sender
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:367,1
    - Dst: X509_get_subject_name
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: test_validate_msg_signature_unexpected_sender
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - test_validate_with_sender
    - X509_get_subject_name
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_signature_unexpected_sender(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:373,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:375,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:375,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:376,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: test_validate_msg_unprotected_request
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - load_pkimsg
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_validate_msg_unprotected_request(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_get0_trustedStore
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:389,1
    - Dst: X509_STORE_get0_param
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:390,1
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:391,1
    - Dst: add_trusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:393,1
    - Dst: add_untrusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:394,1
    - Dst: add_untrusted
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:395,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - fixture
    - wrong
    - expired
    argTypes:
    - CMP_VFY_TEST_FIXTURE**
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 4
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: setup_path
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_time
    - tear_down
    - add_trusted
    - OSSL_CMP_CTX_get0_trustedStore
    - X509_STORE_get0_param
    - add_untrusted
    linkageType: ''
    returnType: void
    signature: void setup_path(CMP_VFY_TEST_FIXTURE **fixture, X509 *wrong, int expired)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:403,1
    - Dst: setup_path
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:404,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: test_validate_cert_path_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - setup_path
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_validate_cert_path_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:411,1
    - Dst: setup_path
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:412,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: test_validate_cert_path_wrong_anchor
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - setup_path
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_validate_cert_path_wrong_anchor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:419,1
    - Dst: setup_path
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:420,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: test_validate_cert_path_expired
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - setup_path
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_validate_cert_path_expired(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_get0_header
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:427,1
    - Dst: OSSL_CMP_HDR_get0_transactionID
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:428,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:430,1
    - Dst: ossl_cmp_msg_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:431,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:440,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:441,1
    - Dst: ossl_cmp_hdr_get0_senderNonce
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:441,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:443,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_VFY_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 425
    functionDepth: 18
    functionLinenumber: 425
    functionLinenumberEnd: 446
    functionName: execute_msg_check_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_msg_check_update
    - TEST_int_eq
    - ossl_cmp_hdr_get0_senderNonce
    - OSSL_CMP_MSG_get0_header
    - ASN1_OCTET_STRING_cmp
    - OSSL_CMP_HDR_get0_transactionID
    linkageType: ''
    returnType: int
    signature: int execute_msg_check_test(CMP_VFY_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - msg
    - invalid_protection
    - allow
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: allow_unprotected
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int allow_unprotected(const OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG
      *msg,\n                             int invalid_protection, int allow)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_dup
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:465,1
    - Dst: ossl_cmp_asn1_octet_string_set1_bytes
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:468,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:470,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:473,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:475,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:477,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:478,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - fixture
    - expected
    - cb
    - arg
    - trid_data
    - nonce_data
    argTypes:
    - CMP_VFY_TEST_FIXTURE**
    - int
    - ossl_cmp_allow_unprotected_cb_t
    - int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 483
    functionName: setup_check_update
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - tear_down
    - ASN1_OCTET_STRING_free
    - ASN1_OCTET_STRING_set
    - OSSL_CMP_MSG_dup
    - ASN1_OCTET_STRING_new
    - ossl_cmp_asn1_octet_string_set1_bytes
    - OSSL_CMP_CTX_set1_transactionID
    linkageType: ''
    returnType: void
    signature: "void setup_check_update(CMP_VFY_TEST_FIXTURE **fixture, int expected,\n
      \                              ossl_cmp_allow_unprotected_cb_t cb, int arg,\n
      \                              const unsigned char *trid_data,\n                               const
      unsigned char *nonce_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:488,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:489,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 5
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: test_msg_check_no_protection_no_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_no_protection_no_cb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:496,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:497,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 5
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: test_msg_check_no_protection_restrictive_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_no_protection_restrictive_cb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:505,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:506,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 503
    functionDepth: 5
    functionLinenumber: 503
    functionLinenumberEnd: 509
    functionName: test_msg_check_no_protection_permissive_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_no_protection_permissive_cb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:519,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:520,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 523
    functionName: test_msg_check_transaction_id
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_transaction_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:528,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:529,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: test_msg_check_transaction_id_bad
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_transaction_id_bad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:543,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:544,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: test_msg_check_recipient_nonce
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_recipient_nonce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:552,1
    - Dst: setup_check_update
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:553,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 5
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: test_msg_check_recipient_nonce_bad
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - setup_check_update
    linkageType: ''
    returnType: int
    signature: int test_msg_check_recipient_nonce_bad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:561,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:562,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:563,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:564,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:565,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:566,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:567,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:568,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:569,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:570,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:571,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:572,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 559
    functionDepth: 5
    functionLinenumber: 559
    functionLinenumberEnd: 575
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_MSG_free
    - OSSL_PROVIDER_unload
    - X509_free
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:596,1
    - Dst: mktime
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:598,1
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:600,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:601,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:605,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:606,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:606,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:607,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:607,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:608,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:608,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:609,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:609,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:610,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:610,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:611,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:611,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:612,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:612,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:613,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:613,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:614,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:614,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:615,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:615,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:616,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:616,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:617,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:617,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:618,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:618,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:619,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:619,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:620,1
    - Dst: test_arg_libctx
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:624,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:628,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:628,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:629,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:629,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:630,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:630,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:631,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:631,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:634,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:634,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:635,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:635,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:639,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:639,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:640,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:640,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:642,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:642,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:644,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:644,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:645,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:645,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:649,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:651,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:653,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:655,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:656,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:658,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:660,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:662,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:663,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:664,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:665,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:667,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:669,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:670,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:672,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:674,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:676,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:677,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:678,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:682,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:683,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:684,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:687,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:688,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:690,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:691,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:693,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:695,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:697,1
    - Dst: cleanup_tests
      Src: /src/openssl-3.0.15/test/cmp_vfy_test.c:703,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 588
    functionDepth: 6
    functionLinenumber: 588
    functionLinenumberEnd: 706
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_vfy_test.c
    functionUses: 0
    functionsReached:
    - load_cert_pem
    - ADD_TEST
    - TEST_int_eq
    - load_pkimsg
    - cleanup_tests
    - test_arg_libctx
    - TEST_error
    - mktime
    - TEST_ptr
    - RAND_bytes
    - test_get_argument
    - test_skip_common_options
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/punycode_test.c:151,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/punycode_test.c:154,1
    - Dst: ossl_punycode_decode
      Src: /src/openssl-3.0.15/test/punycode_test.c:154,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/punycode_test.c:154,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/punycode_test.c:157,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: test_punycode
    functionSourceFile: /src/openssl-3.0.15/test/punycode_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - ossl_punycode_decode
    - strlen
    - TEST_true
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_punycode(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:176,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/test/punycode_test.c:176,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:177,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:178,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/test/punycode_test.c:178,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:182,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/test/punycode_test.c:182,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:183,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:184,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/test/punycode_test.c:184,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:185,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:189,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/test/punycode_test.c:189,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:190,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:191,1
    - Dst: ossl_a2ulabel
      Src: /src/openssl-3.0.15/test/punycode_test.c:191,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 195
    functionName: test_a2ulabel
    functionSourceFile: /src/openssl-3.0.15/test/punycode_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_size_t_eq
    - TEST_str_eq
    - ossl_a2ulabel
    linkageType: ''
    returnType: int
    signature: int test_a2ulabel(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/punycode_test.c:203,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/punycode_test.c:204,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/punycode_test.c:206,1
    - Dst: ossl_punycode_decode
      Src: /src/openssl-3.0.15/test/punycode_test.c:206,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/punycode_test.c:206,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/punycode_test.c:207,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/punycode_test.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 212
    functionName: test_puny_overrun
    functionSourceFile: /src/openssl-3.0.15/test/punycode_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_false
    - ossl_punycode_decode
    - TEST_error
    - strlen
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_puny_overrun(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/punycode_test.c:216,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/punycode_test.c:216,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/punycode_test.c:217,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/punycode_test.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/punycode_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RC2_set_key
      Src: /src/openssl-3.0.15/test/rc2test.c:53,1
    - Dst: RC2_ecb_encrypt
      Src: /src/openssl-3.0.15/test/rc2test.c:55,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc2test.c:56,1
    - Dst: RC2_ecb_encrypt
      Src: /src/openssl-3.0.15/test/rc2test.c:59,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc2test.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: test_rc2
    functionSourceFile: /src/openssl-3.0.15/test/rc2test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - RC2_ecb_encrypt
    - RC2_set_key
    linkageType: ''
    returnType: int
    signature: int test_rc2(const int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rc2test.c:71,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/rc2test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/rc2test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:269,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:274,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - privtag
    - use_octstring
    argTypes:
    - EVP_PKEY*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 278
    functionName: pkey_has_private
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - BN_free
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_get_octet_string_param
    linkageType: ''
    returnType: int
    signature: "int pkey_has_private(EVP_PKEY *key, const char *privtag,\n                            int
      use_octstring)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:286,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:287,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:293,1
    - Dst: EVP_PKEY_todata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:293,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:294,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:294,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:300,1
    - Dst: EVP_PKEY_todata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:300,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:301,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:301,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:308,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:308,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:309,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:309,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:310,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:310,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:312,1
    - Dst: pkey_has_private
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:312,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:318,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:318,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:320,1
    - Dst: pkey_has_private
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:320,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:324,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:325,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:326,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:327,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:328,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 2
    argNames:
    - key
    - keytype
    argTypes:
    - EVP_PKEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 280
    functionDepth: 6
    functionLinenumber: 280
    functionLinenumberEnd: 330
    functionName: do_pkey_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_PKEY_CTX_new_from_name
    - TEST_ptr_null
    - EVP_PKEY_fromdata
    - TEST_int_eq
    - OSSL_PARAM_free
    - TEST_false
    - OSSL_PARAM_locate
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - strcmp
    - TEST_ptr
    - pkey_has_private
    - EVP_PKEY_CTX_free
    - EVP_PKEY_todata
    linkageType: ''
    returnType: int
    signature: int do_pkey_tofrom_data_select(EVP_PKEY *key, const char *keytype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:344,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:345,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:346,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:346,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:347,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:347,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:348,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:348,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:349,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:349,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:350,1
    - Dst: do_pkey_tofrom_data_select
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:350,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:352,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:352,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:353,1
    - Dst: DH_get0_priv_key
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:353,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:354,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:354,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:356,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 333
    functionDepth: 7
    functionLinenumber: 333
    functionLinenumberEnd: 359
    functionName: test_dh_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_construct_utf8_string
    - BN_num_bits
    - DH_get0_priv_key
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_free
    - EVP_PKEY_get0_DH
    - TEST_int_le
    - TEST_ptr
    - EVP_PKEY_CTX_set_params
    - TEST_true
    - do_pkey_tofrom_data_select
    - TEST_int_gt
    - EVP_PKEY_generate
    linkageType: ''
    returnType: int
    signature: int test_dh_tofrom_data_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:369,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:370,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:372,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:374,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:374,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:375,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:375,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:376,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:376,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:377,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:377,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:378,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:380,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:383,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:383,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:384,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:384,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:385,1
    - Dst: EVP_PKEY_param_check_quick
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:385,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:387,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 361
    functionDepth: 9
    functionLinenumber: 361
    functionLinenumberEnd: 390
    functionName: test_dh_paramgen
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_construct_uint
    - EVP_PKEY_param_check_quick
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_param_check
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - EVP_PKEY_CTX_set_params
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_dh_paramgen(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:400,1
    - Dst: EVP_PKEY_Q_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:400,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:401,1
    - Dst: do_pkey_tofrom_data_select
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:401,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 9
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: test_ec_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_Q_keygen
    - TEST_ptr
    - TEST_true
    - do_pkey_tofrom_data_select
    linkageType: ''
    returnType: int
    signature: int test_ec_tofrom_data_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:411,1
    - Dst: EVP_PKEY_Q_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:411,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:412,1
    - Dst: do_pkey_tofrom_data_select
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:412,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 9
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: test_ecx_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_Q_keygen
    - TEST_ptr
    - TEST_true
    - do_pkey_tofrom_data_select
    linkageType: ''
    returnType: int
    signature: int test_ecx_tofrom_data_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:424,1
    - Dst: EVP_PKEY_Q_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:424,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:425,1
    - Dst: do_pkey_tofrom_data_select
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:425,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 9
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: test_sm2_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_Q_keygen
    - TEST_ptr
    - TEST_true
    - do_pkey_tofrom_data_select
    linkageType: ''
    returnType: int
    signature: int test_sm2_tofrom_data_select(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:438,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:438,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:440,1
    - Dst: do_pkey_tofrom_data_select
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:440,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 15
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: test_rsa_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - d2i_AutoPrivateKey_ex
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    - do_pkey_tofrom_data_select
    linkageType: ''
    returnType: int
    signature: int test_rsa_tofrom_data_select(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:460,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:460,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:462,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:463,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:463,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:467,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:467,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:474,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:474,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:480,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:480,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:486,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:486,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:487,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:487,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:494,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:495,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:496,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:497,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 446
    functionDepth: 15
    functionLinenumber: 446
    functionLinenumberEnd: 499
    functionName: test_d2i_AutoPrivateKey_ex
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_get_bn_param
    - TEST_int_eq
    - d2i_AutoPrivateKey_ex
    - EVP_PKEY_get_id
    - EVP_PKEY_get_octet_string_param
    - BN_free
    - TEST_ptr_eq
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_d2i_AutoPrivateKey_ex(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:513,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:513,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:514,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:514,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:514,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:515,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:515,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:517,1
    - Dst: d2i_PrivateKey_ex_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:517,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:518,1
    - Dst: i2d_PKCS8PrivateKey_nid_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:518,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:521,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:521,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:522,1
    - Dst: d2i_PKCS8PrivateKey_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:522,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:524,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:524,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:526,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:527,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:528,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:529,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 532
    functionName: test_pkcs8key_nid_bio
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - d2i_PKCS8PrivateKey_bio
    - OSSL_PROVIDER_load
    - BIO_new
    - i2d_PKCS8PrivateKey_nid_bio
    - BIO_new_mem_buf
    - TEST_int_eq
    - BIO_free
    - OSSL_PROVIDER_unload
    - EVP_PKEY_free
    - BIO_get_mem_data
    - TEST_ptr
    - d2i_PrivateKey_ex_bio
    - TEST_true
    - EVP_PKEY_eq
    - TEST_int_gt
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_pkcs8key_nid_bio(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:545,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:545,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:552,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:552,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:553,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:553,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:555,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:562,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:562,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:563,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:563,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 535
    functionDepth: 11
    functionLinenumber: 535
    functionLinenumberEnd: 570
    functionName: test_alternative_default
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - EVP_MD_free
    - TEST_ptr_eq
    - TEST_ptr
    - OSSL_LIB_CTX_set0_default
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_alternative_default(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:578,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:578,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:579,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:579,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:583,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:585,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:588,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:590,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:598,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:598,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:603,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - testid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 572
    functionDepth: 11
    functionLinenumber: 572
    functionLinenumberEnd: 606
    functionName: test_provider_unload_effective
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - TEST_ptr
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_provider_unload_effective(int testid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:616,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:616,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:618,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:618,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:620,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:620,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:623,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:624,1
    - Dst: BIO_seek
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:624,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:626,1
    - Dst: d2i_PrivateKey_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:626,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:627,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:627,1
    - Dst: test_openssl_errors
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:628,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:631,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:632,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:633,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - testid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 608
    functionDepth: 6
    functionLinenumber: 608
    functionLinenumberEnd: 636
    functionName: test_d2i_PrivateKey_ex
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - PEM_read_bio_PrivateKey
    - OSSL_PROVIDER_load
    - test_openssl_errors
    - BIO_new_mem_buf
    - TEST_int_ge
    - TEST_int_eq
    - BIO_free
    - ERR_clear_error
    - ERR_peek_error
    - OSSL_PROVIDER_unload
    - EVP_PKEY_free
    - TEST_ptr
    - BIO_seek
    - d2i_PrivateKey_bio
    linkageType: ''
    returnType: int
    signature: int test_d2i_PrivateKey_ex(int testid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:645,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:645,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:647,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:648,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:648,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:650,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:650,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:652,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:652,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:654,1
    - Dst: BIO_seek
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:654,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:656,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:657,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:657,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:659,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:659,1
    - Dst: test_openssl_errors
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:665,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:666,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:667,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:668,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - testid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 638
    functionDepth: 6
    functionLinenumber: 638
    functionLinenumberEnd: 671
    functionName: test_PEM_read_bio_negative
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - PEM_read_bio_PrivateKey
    - OSSL_PROVIDER_load
    - test_openssl_errors
    - BIO_new_mem_buf
    - TEST_int_ne
    - TEST_int_ge
    - BIO_free
    - ERR_clear_error
    - ERR_peek_error
    - OSSL_PROVIDER_unload
    - EVP_PKEY_free
    - TEST_ptr
    - BIO_seek
    linkageType: ''
    returnType: int
    signature: int test_PEM_read_bio_negative(int testid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:676,1
    - Dst: EVP_RSA_gen
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:678,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:679,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:679,1
    - Dst: UI_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:683,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:685,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:687,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:689,1
    - Dst: UI_get_default_method
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:691,1
    - Dst: UI_set_default_method
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:692,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:695,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:695,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:695,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:699,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:700,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:701,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:704,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:704,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:704,1
    - Dst: test_openssl_errors
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:709,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:710,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:711,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:712,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:713,1
    - Dst: UI_set_default_method
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:714,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - testid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 673
    functionDepth: 6
    functionLinenumber: 673
    functionLinenumberEnd: 717
    functionName: test_PEM_read_bio_negative_wrong_password
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey
    - TEST_ptr_null
    - ERR_GET_REASON
    - EVP_RSA_gen
    - TEST_int_eq
    - UI_set_default_method
    - BIO_s_mem
    - BIO_new
    - UI_get_default_method
    - ERR_get_error
    - TEST_true
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - ERR_clear_error
    - UI_null
    - TEST_ptr
    - EVP_aes_256_cbc
    - PEM_read_bio_PrivateKey
    - BIO_free
    - EVP_PKEY_free
    - test_openssl_errors
    linkageType: ''
    returnType: int
    signature: int test_PEM_read_bio_negative_wrong_password(int testid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:726,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:726,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:727,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:727,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:728,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:728,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:731,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:731,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:732,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - params
    - expected
    - type
    argTypes:
    - OSSL_PARAM[]
    - EVP_PKEY*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 719
    functionDepth: 6
    functionLinenumber: 719
    functionLinenumberEnd: 735
    functionName: do_fromdata_key_is_equal
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - TEST_int_eq
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - EVP_PKEY_CTX_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_eq
    linkageType: ''
    returnType: int
    signature: "int do_fromdata_key_is_equal(const OSSL_PARAM params[],\n                                    const
      EVP_PKEY *expected, const char *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:894,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:894,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:895,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:895,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:896,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:896,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:898,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:898,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:900,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:900,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:901,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:902,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - key_params
    - expected
    argTypes:
    - OSSL_PARAM[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 888
    functionDepth: 9
    functionLinenumber: 888
    functionLinenumberEnd: 905
    functionName: do_check_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_param_check
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - TEST_ptr
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int do_check_params(OSSL_PARAM key_params[], int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:915,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:915,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:916,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:916,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:917,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:917,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:918,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - params
    - key
    - expected
    - expected_len
    argTypes:
    - OSSL_PARAM[]
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 907
    functionDepth: 3
    functionLinenumber: 907
    functionLinenumberEnd: 921
    functionName: do_check_bn
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BN_bn2binpad
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_locate
    - BN_free
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: "int do_check_bn(OSSL_PARAM params[], const char *key,\n                       const
      unsigned char *expected, size_t expected_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:928,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:928,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:929,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:929,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - params
    - key
    - expected
    argTypes:
    - OSSL_PARAM[]
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 5
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: do_check_int
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_PARAM_locate
    - TEST_ptr
    - TEST_true
    - OSSL_PARAM_get_int
    linkageType: ''
    returnType: int
    signature: int do_check_int(OSSL_PARAM params[], const char *key, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:939,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:939,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:941,1
    - Dst: do_pkey_tofrom_data_select
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:941,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 933
    functionDepth: 15
    functionLinenumber: 933
    functionLinenumberEnd: 945
    functionName: test_dsa_tofrom_data_select
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - d2i_AutoPrivateKey_ex
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    - do_pkey_tofrom_data_select
    linkageType: ''
    returnType: int
    signature: int test_dsa_tofrom_data_select(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:963,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:966,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:968,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:970,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:972,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:972,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:974,1
    - Dst: EVP_PKEY_todata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:974,1
    - Dst: do_check_bn
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:975,1
    - Dst: do_check_bn
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:976,1
    - Dst: do_check_bn
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:977,1
    - Dst: do_check_bn
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:978,1
    - Dst: do_check_bn
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:980,1
    - Dst: do_check_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:982,1
    - Dst: do_check_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:983,1
    - Dst: do_check_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:984,1
    - Dst: do_check_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:985,1
    - Dst: do_check_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:986,1
    - Dst: do_check_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:987,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:988,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:988,1
    - Dst: do_fromdata_key_is_equal
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:991,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:994,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:994,1
    - Dst: do_check_params
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:995,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:997,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:999,1
    - Dst: do_check_params
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1007,1
    - Dst: do_check_params
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1011,1
    - Dst: do_check_params
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1015,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1020,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1021,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1022,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 947
    functionDepth: 15
    functionLinenumber: 947
    functionLinenumberEnd: 1024
    functionName: test_dsa_todata
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - do_fromdata_key_is_equal
    - do_check_params
    - OSSL_PARAM_merge
    - TEST_int_eq
    - d2i_AutoPrivateKey_ex
    - OSSL_PARAM_free
    - do_check_bn
    - OSSL_PARAM_locate
    - EVP_PKEY_free
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - do_check_int
    - EVP_PKEY_todata
    linkageType: ''
    returnType: int
    signature: int test_dsa_todata(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1041,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1042,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1044,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1046,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1048,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1048,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1049,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1049,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1050,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1050,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1053,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1053,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1054,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1054,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1055,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1055,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1060,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1061,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1062,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1063,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1032
    functionDepth: 8
    functionLinenumber: 1032
    functionLinenumberEnd: 1065
    functionName: test_dsa_fromdata_digest_prop
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_construct_uint
    - EVP_PKEY_fromdata
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_dsa_fromdata_digest_prop(int tstid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1075,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1075,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1077,1
    - Dst: EVP_PKEY_todata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1077,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1078,1
    - Dst: EVP_PKEY_todata
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1078,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1068
    functionDepth: 15
    functionLinenumber: 1068
    functionLinenumberEnd: 1081
    functionName: test_pkey_todata_null
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - d2i_AutoPrivateKey_ex
    - EVP_PKEY_free
    - TEST_ptr
    - EVP_PKEY_todata
    linkageType: ''
    returnType: int
    signature: int test_pkey_todata_null(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_fromdata_key_is_equal
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1085
    functionDepth: 7
    functionLinenumber: 1085
    functionLinenumberEnd: 1090
    functionName: test_pkey_export_cb
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - do_fromdata_key_is_equal
    linkageType: ''
    returnType: int
    signature: int test_pkey_export_cb(const OSSL_PARAM params[], void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1098,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1098,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1100,1
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1100,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1102,1
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1102,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1092
    functionDepth: 15
    functionLinenumber: 1092
    functionLinenumberEnd: 1105
    functionName: test_pkey_export_null
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_export
    - TEST_int_eq
    - d2i_AutoPrivateKey_ex
    - EVP_PKEY_free
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_pkey_export_null(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1117,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1117,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1119,1
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1119,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1121,1
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1121,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1124,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1130,1
    - Dst: d2i_RSAPrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1130,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1131,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1131,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1132,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1132,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1133,1
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1133,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1135,1
    - Dst: EVP_PKEY_export
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1135,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1107
    functionDepth: 15
    functionLinenumber: 1107
    functionLinenumberEnd: 1141
    functionName: test_pkey_export
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_export
    - d2i_AutoPrivateKey_ex
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_assign_RSA
    - EVP_PKEY_new
    - TEST_ptr
    - TEST_true
    - d2i_RSAPrivateKey
    linkageType: ''
    returnType: int
    signature: int test_pkey_export(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1156,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1158,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1160,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1162,1
    - Dst: d2i_AutoPrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1162,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1164,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1164,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1165,1
    - Dst: EVP_PKEY_sign_init_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1165,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1166,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1166,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1168,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1169,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1169,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1170,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1170,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1173,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1174,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1143
    functionDepth: 15
    functionLinenumber: 1143
    functionLinenumberEnd: 1178
    functionName: test_rsa_pss_sign
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - d2i_AutoPrivateKey_ex
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_free
    - OPENSSL_free
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_PKEY_sign_init_ex
    - EVP_PKEY_sign
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_rsa_pss_sign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1187,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1187,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1188,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1189,1
    - Dst: EVP_MD_CTX_copy_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1189,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1191,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1180
    functionDepth: 8
    functionLinenumber: 1180
    functionLinenumberEnd: 1194
    functionName: test_evp_md_ctx_copy
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_MD_CTX_copy_ex
    - EVP_MD_CTX_new
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_evp_md_ctx_copy(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1204,1
    - Dst: EVP_PBE_alg_add
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1204,1
    - Dst: EVP_des_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1204,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1208,1
    - Dst: EVP_PBE_find_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1212,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1197
    functionDepth: 3
    functionLinenumber: 1197
    functionLinenumberEnd: 1221
    functionName: test_evp_pbe_alg_add
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - EVP_PBE_alg_add
    - EVP_md5
    - EVP_des_cbc
    - TEST_true
    - EVP_PBE_find_ex
    linkageType: ''
    returnType: int
    signature: int test_evp_pbe_alg_add(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1234,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1234,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1230
    functionDepth: 11
    functionLinenumber: 1230
    functionLinenumberEnd: 1240
    functionName: evp_test_name_parsing
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int evp_test_name_parsing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_libctx
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1244,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1245,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1250,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1251,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1252,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1252,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1254,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1255,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1256,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1258,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1261,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1264,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1265,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1266,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1269,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1270,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1272,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1274,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1275,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1276,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1278,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1280,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1280,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1281,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1282,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1283,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1284,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1242
    functionDepth: 5
    functionLinenumber: 1242
    functionLinenumberEnd: 1289
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_LIB_CTX_free
    - test_get_libctx
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1293,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test2.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1291
    functionDepth: 5
    functionLinenumber: 1291
    functionLinenumberEnd: 1295
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test2.c
    functionUses: 1
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_obj_mac.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:43,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:44,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:45,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:46,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 13
    functionsReached:
    - OSSL_LIB_CTX_free
    - OPENSSL_free
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void tear_down(FIXTURE *fixture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:55,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:56,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:56,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:57,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:57,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:59,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:59,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:60,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:60,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - testcase_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 1
    functionsReached:
    - tear_down
    - OSSL_PROVIDER_load
    - OPENSSL_zalloc
    - OSSL_LIB_CTX_new
    - TEST_ptr
    linkageType: ''
    returnType: FIXTURE
    signature: FIXTURE *set_up(const char *testcase_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:94,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:94,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:95,1
    - Dst: BN_bn2nativepad
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:95,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - goal
    argTypes:
    - OSSL_PARAM*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: get_ulong_via_BN
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_ge
    - OSSL_PARAM_get_BN
    - BN_bn2nativepad
    - BN_free
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int get_ulong_via_BN(const OSSL_PARAM *p, unsigned long *goal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:109,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:109,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:110,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:110,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:111,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:111,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:112,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:112,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:113,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:114,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:114,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:117,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:117,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:118,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:118,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:119,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:119,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:120,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:120,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:121,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:122,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:122,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:125,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:126,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:126,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:127,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:128,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:128,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:129,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:130,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:130,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:133,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:134,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:134,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:135,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:135,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:136,1
    - Dst: get_ulong_via_BN
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:136,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 12
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 140
    functionName: export_cb
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 1
    functionsReached:
    - TEST_ptr
    - TEST_true
    - get_ulong_via_BN
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: int export_cb(const OSSL_PARAM *params, void *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:175,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:177,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:180,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:180,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:181,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:181,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:182,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:183,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:183,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:184,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:185,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:186,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:186,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:189,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:190,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:191,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:191,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:192,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:193,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:193,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:196,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:196,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:197,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:197,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:198,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:199,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:199,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:200,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:201,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:202,1
    - Dst: RSA_set0_crt_params
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:202,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:206,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:206,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:207,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:207,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:208,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:209,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:209,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:210,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:211,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:211,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:212,1
    - Dst: RSA_set0_multi_prime_params
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:212,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:216,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:216,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:217,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:217,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:221,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:221,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:222,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:222,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:223,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:223,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:224,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:231,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:231,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:236,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:238,1
    - Dst: evp_keymgmt_export
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:238,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:248,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:249,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:252,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:257,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:262,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:262,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:265,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:265,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:266,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:273,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:274,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:275,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:276,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:277,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:278,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:279,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:280,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 62
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 283
    functionName: test_pass_rsa
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - TEST_int_eq
    - RSA_set0_factors
    - evp_pkey_export_to_provider
    - EVP_PKEY_assign_RSA
    - TEST_ptr_ne
    - EVP_KEYMGMT_fetch
    - RSA_set0_multi_prime_params
    - EVP_KEYMGMT_free
    - RSA_set0_key
    - BN_set_word
    - TEST_true
    - EVP_PKEY_eq
    - BN_new
    - RSA_new
    - EVP_PKEY_dup
    - evp_keymgmt_export
    - TEST_info
    - EVP_PKEY_new
    - BN_free
    - TEST_ptr
    - OSSL_NELEM
    - EVP_PKEY_free
    - RSA_free
    - RSA_set0_crt_params
    linkageType: ''
    returnType: int
    signature: int test_pass_rsa(FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:291,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: test_pass_key
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_pass_key(int n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:308,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:308,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:309,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:309,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:312,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:313,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:314,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:318,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:319,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:321,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:325,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:326,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:329,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:329,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:333,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:333,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:337,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:339,1
    - Dst: evp_pkey_export_to_provider
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:339,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:346,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:347,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:348,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:349,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 296
    functionDepth: 11
    functionLinenumber: 296
    functionLinenumberEnd: 352
    functionName: test_evp_pkey_export_to_provider
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 0
    functionsReached:
    - X509_get_X509_PUBKEY
    - OSSL_PROVIDER_load
    - X509_free
    - PEM_read_bio_X509
    - BIO_free
    - EVP_KEYMGMT_free
    - X509_PUBKEY_get0
    - OSSL_PROVIDER_unload
    - evp_pkey_export_to_provider
    - OSSL_LIB_CTX_free
    - TEST_error
    - OSSL_LIB_CTX_new
    - TEST_openssl_errors
    - EVP_KEYMGMT_fetch
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_evp_pkey_export_to_provider(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:356,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:356,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:359,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/keymgmt_internal_test.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/keymgmt_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - test_get_argument
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:23,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:24,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:25,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:29,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:30,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:31,1
    - Dst: ASN1_STRING_TABLE_add
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:35,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:36,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:37,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:41,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:42,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:43,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:47,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:48,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:49,1
    - Dst: ASN1_STRING_TABLE_cleanup
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:53,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:56,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:57,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:58,1
    - Dst: ASN1_STRING_TABLE_get
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:62,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:63,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:64,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 71
    functionName: test_string_tbl
    functionSourceFile: /src/openssl-3.0.15/test/asn1_string_table_test.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_TABLE_cleanup
    - TEST_ptr_null
    - ASN1_STRING_TABLE_add
    - TEST_info
    - ASN1_STRING_TABLE_get
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_string_tbl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_string_table_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asn1_string_table_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:29,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/v3ext.c:29,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:30,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/v3ext.c:30,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/v3ext.c:31,1
    - Dst: X509_get_pathlen
      Src: /src/openssl-3.0.15/test/v3ext.c:31,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/v3ext.c:37,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/v3ext.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 40
    functionName: test_pathlen
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - X509_free
    - PEM_read_bio_X509
    - TEST_int_eq
    - X509_get_pathlen
    - BIO_free
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_pathlen(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASIdentifiers_new
      Src: /src/openssl-3.0.15/test/v3ext.c:46,1
    - Dst: ASIdentifiers_new
      Src: /src/openssl-3.0.15/test/v3ext.c:46,1
    - Dst: ASIdentifiers_new
      Src: /src/openssl-3.0.15/test/v3ext.c:47,1
    - Dst: ASIdentifiers_new
      Src: /src/openssl-3.0.15/test/v3ext.c:47,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:50,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:51,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:52,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:55,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/v3ext.c:55,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:56,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/test/v3ext.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:59,1
    - Dst: X509v3_asid_add_id_or_range
      Src: /src/openssl-3.0.15/test/v3ext.c:59,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:63,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/v3ext.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:64,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/test/v3ext.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:67,1
    - Dst: X509v3_asid_add_id_or_range
      Src: /src/openssl-3.0.15/test/v3ext.c:67,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:71,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/v3ext.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:72,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/test/v3ext.c:72,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:73,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/v3ext.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:74,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/test/v3ext.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:81,1
    - Dst: X509v3_asid_add_id_or_range
      Src: /src/openssl-3.0.15/test/v3ext.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:86,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:87,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:88,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:89,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:90,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:91,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:92,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:93,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:93,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:94,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:95,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:95,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:99,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:99,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:100,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:100,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:101,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:101,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:102,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:102,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:103,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:103,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:104,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:104,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:105,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:105,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:106,1
    - Dst: X509v3_asid_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:106,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/test/v3ext.c:111,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/test/v3ext.c:112,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/test/v3ext.c:113,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/test/v3ext.c:114,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/test/v3ext.c:115,1
    - Dst: ASIdentifiers_free
      Src: /src/openssl-3.0.15/test/v3ext.c:116,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 118
    functionName: test_asid
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - X509v3_asid_subset
    - X509v3_asid_add_id_or_range
    - ASN1_INTEGER_set_int64
    - TEST_false
    - ASN1_INTEGER_new
    - ASIdentifiers_free
    - TEST_ptr
    - TEST_true
    - ASN1_INTEGER_free
    - ASIdentifiers_new
    linkageType: ''
    returnType: int
    signature: int test_asid(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/v3ext.c:151,1
    - Dst: sk_IPAddressFamily_num
      Src: /src/openssl-3.0.15/test/v3ext.c:151,1
    - Dst: sk_IPAddressFamily_value
      Src: /src/openssl-3.0.15/test/v3ext.c:154,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:155,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/v3ext.c:158,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/v3ext.c:161,1
    - Dst: sk_IPAddressOrRange_num
      Src: /src/openssl-3.0.15/test/v3ext.c:161,1
    - Dst: sk_IPAddressOrRange_value
      Src: /src/openssl-3.0.15/test/v3ext.c:164,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:165,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/v3ext.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - addr
    - type
    argTypes:
    - IPAddrBlocks*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 172
    functionName: check_addr
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - sk_IPAddressOrRange_value
    - sk_IPAddressFamily_num
    - sk_IPAddressFamily_value
    - sk_IPAddressOrRange_num
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int check_addr(IPAddrBlocks *addr, int type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/v3ext.c:181,1
    - Dst: sk_IPAddressFamily_new_null
      Src: /src/openssl-3.0.15/test/v3ext.c:182,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:189,1
    - Dst: X509v3_addr_canonize
      Src: /src/openssl-3.0.15/test/v3ext.c:189,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/test/v3ext.c:192,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:193,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:195,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/test/v3ext.c:197,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/v3ext.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:202,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/v3ext.c:202,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:205,1
    - Dst: X509v3_addr_add_range
      Src: /src/openssl-3.0.15/test/v3ext.c:205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:208,1
    - Dst: X509v3_addr_is_canonical
      Src: /src/openssl-3.0.15/test/v3ext.c:208,1
    - Dst: check_addr
      Src: /src/openssl-3.0.15/test/v3ext.c:211,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/test/v3ext.c:214,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:216,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:217,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/test/v3ext.c:223,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:224,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:225,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 227
    functionName: test_addr_ranges
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - TEST_int_eq
    - X509v3_addr_add_range
    - sk_IPAddressFamily_pop_free
    - X509v3_addr_canonize
    - check_addr
    - memcmp
    - a2i_IPADDRESS
    - TEST_ptr
    - TEST_true
    - X509v3_addr_is_canonical
    - sk_IPAddressFamily_new_null
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_addr_ranges(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sk_IPAddressFamily_new_null
      Src: /src/openssl-3.0.15/test/v3ext.c:240,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:241,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/test/v3ext.c:243,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:244,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/test/v3ext.c:246,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:249,1
    - Dst: X509v3_addr_add_range
      Src: /src/openssl-3.0.15/test/v3ext.c:249,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:251,1
    - Dst: X509v3_addr_is_canonical
      Src: /src/openssl-3.0.15/test/v3ext.c:251,1
    - Dst: IPAddressFamily_new
      Src: /src/openssl-3.0.15/test/v3ext.c:262,1
    - Dst: IPAddressChoice_new
      Src: /src/openssl-3.0.15/test/v3ext.c:265,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/v3ext.c:268,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/v3ext.c:270,1
    - Dst: sk_IPAddressFamily_push
      Src: /src/openssl-3.0.15/test/v3ext.c:274,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:279,1
    - Dst: X509v3_addr_canonize
      Src: /src/openssl-3.0.15/test/v3ext.c:279,1
    - Dst: IPAddressFamily_free
      Src: /src/openssl-3.0.15/test/v3ext.c:283,1
    - Dst: sk_IPAddressFamily_pop
      Src: /src/openssl-3.0.15/test/v3ext.c:283,1
    - Dst: IPAddressFamily_new
      Src: /src/openssl-3.0.15/test/v3ext.c:290,1
    - Dst: IPAddressChoice_new
      Src: /src/openssl-3.0.15/test/v3ext.c:293,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/v3ext.c:296,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/v3ext.c:298,1
    - Dst: sk_IPAddressFamily_push
      Src: /src/openssl-3.0.15/test/v3ext.c:305,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:310,1
    - Dst: X509v3_addr_canonize
      Src: /src/openssl-3.0.15/test/v3ext.c:310,1
    - Dst: IPAddressFamily_free
      Src: /src/openssl-3.0.15/test/v3ext.c:316,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/test/v3ext.c:317,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:319,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:320,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 322
    functionName: test_addr_fam_len
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - sk_IPAddressFamily_pop
    - ASN1_OCTET_STRING_free
    - X509v3_addr_add_range
    - ASN1_OCTET_STRING_set
    - TEST_false
    - IPAddressFamily_new
    - sk_IPAddressFamily_pop_free
    - ASN1_OCTET_STRING_new
    - X509v3_addr_canonize
    - sk_IPAddressFamily_push
    - IPAddressFamily_free
    - a2i_IPADDRESS
    - TEST_ptr
    - TEST_true
    - IPAddressChoice_new
    - X509v3_addr_is_canonical
    - sk_IPAddressFamily_new_null
    linkageType: ''
    returnType: int
    signature: int test_addr_fam_len(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/v3ext.c:376,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/v3ext.c:378,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/v3ext.c:379,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:383,1
    - Dst: NCONF_new_ex
      Src: /src/openssl-3.0.15/test/v3ext.c:386,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:387,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/v3ext.c:388,1
    - Dst: TEST_long_gt
      Src: /src/openssl-3.0.15/test/v3ext.c:391,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-3.0.15/test/v3ext.c:391,1
    - Dst: X509V3_set_ctx_test
      Src: /src/openssl-3.0.15/test/v3ext.c:394,1
    - Dst: X509V3_set_nconf
      Src: /src/openssl-3.0.15/test/v3ext.c:395,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:398,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-3.0.15/test/v3ext.c:398,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/v3ext.c:400,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/v3ext.c:404,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:405,1
    - Dst: X509V3_EXT_add_nconf
      Src: /src/openssl-3.0.15/test/v3ext.c:405,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/v3ext.c:408,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/v3ext.c:409,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/v3ext.c:411,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/v3ext.c:415,1
    - Dst: NCONF_free
      Src: /src/openssl-3.0.15/test/v3ext.c:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 420
    functionName: test_ext_syntax
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - TEST_long_gt
    - BIO_new_mem_buf
    - BIO_free
    - X509V3_set_nconf
    - NCONF_new_ex
    - X509V3_EXT_add_nconf
    - ERR_set_mark
    - TEST_false
    - NCONF_free
    - TEST_info
    - strlen
    - ERR_pop_to_mark
    - X509V3_set_ctx_test
    - TEST_ptr
    - ERR_clear_last_mark
    - TEST_true
    - NCONF_load_bio
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_ext_syntax(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/v3ext.c:430,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:434,1
    - Dst: sk_IPAddressFamily_new_null
      Src: /src/openssl-3.0.15/test/v3ext.c:434,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:435,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/test/v3ext.c:435,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:436,1
    - Dst: a2i_IPADDRESS
      Src: /src/openssl-3.0.15/test/v3ext.c:436,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:437,1
    - Dst: X509v3_addr_add_range
      Src: /src/openssl-3.0.15/test/v3ext.c:437,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:442,1
    - Dst: sk_IPAddressFamily_new_null
      Src: /src/openssl-3.0.15/test/v3ext.c:442,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:443,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:443,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:444,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:444,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:445,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:445,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:446,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:446,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:447,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:447,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:448,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/v3ext.c:449,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:449,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:450,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:450,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:451,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:451,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:452,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:452,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/v3ext.c:453,1
    - Dst: X509v3_addr_subset
      Src: /src/openssl-3.0.15/test/v3ext.c:453,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/test/v3ext.c:455,1
    - Dst: sk_IPAddressFamily_pop_free
      Src: /src/openssl-3.0.15/test/v3ext.c:457,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:458,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/v3ext.c:459,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 462
    functionName: test_addr_subset
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - X509v3_addr_add_range
    - X509v3_addr_subset
    - TEST_false
    - sk_IPAddressFamily_pop_free
    - a2i_IPADDRESS
    - TEST_ptr
    - TEST_true
    - sk_IPAddressFamily_new_null
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_addr_subset(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/v3ext.c:470,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/v3ext.c:471,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/v3ext.c:475,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/v3ext.c:475,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/v3ext.c:478,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/v3ext.c:480,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/v3ext.c:481,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/v3ext.c:482,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/v3ext.c:483,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/v3ext.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 487
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/v3ext.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: getname
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getname(int id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:110,1
    - Dst: getname
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:110,1
    - Dst: getname
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:111,1
    - Dst: getname
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:111,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:113,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:114,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:114,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:115,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:115,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:116,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:116,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:117,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:117,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:118,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:122,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:122,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:126,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:126,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:127,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:127,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:128,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:128,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:132,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:132,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:133,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:133,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:139,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:140,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:141,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:142,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:143,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:144,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:145,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:146,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 148
    functionName: test_dsa_param_keygen
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - TEST_int_eq
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - TEST_note
    - EVP_PKEY_keygen
    - getname
    - EVP_PKEY_keygen_init
    - DSA_new
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_dup
    - BN_free
    - EVP_PKEY_new
    - TEST_ptr
    - EVP_PKEY_CTX_new_from_pkey
    - DSA_set0_pqg
    - EVP_PKEY_free
    - EVP_PKEY_assign_DSA
    - DSA_free
    linkageType: ''
    returnType: int
    signature: int test_dsa_param_keygen(int tstid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:173,1
    - Dst: getname
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:173,1
    - Dst: getname
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:174,1
    - Dst: getname
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:174,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:176,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:176,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:177,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:178,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:178,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:179,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:179,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:180,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:180,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:181,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:185,1
    - Dst: EVP_PKEY_assign_DH
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:185,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:189,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:189,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:190,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:190,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:191,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:191,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:195,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:195,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:196,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:196,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:202,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:203,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:204,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:205,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:206,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:207,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:208,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:209,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 2
    argNames:
    - tstid
    - bn
    argTypes:
    - int
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 152
    functionDepth: 8
    functionLinenumber: 152
    functionLinenumberEnd: 211
    functionName: do_dh_param_keygen
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - TEST_int_eq
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - DH_new
    - TEST_note
    - EVP_PKEY_keygen
    - getname
    - EVP_PKEY_keygen_init
    - DH_set0_pqg
    - DH_free
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_assign_DH
    - EVP_PKEY_dup
    - BN_free
    - EVP_PKEY_new
    - TEST_ptr
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int do_dh_param_keygen(int tstid, const BIGNUM **bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dh_param_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 9
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: test_dh_safeprime_param_keygen
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - do_dh_param_keygen
    linkageType: ''
    returnType: int
    signature: int test_dh_safeprime_param_keygen(int tstid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:301,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:301,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:302,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:302,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:303,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:303,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:307,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 310
    functionName: dhx_cert_load
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - X509_free
    - BIO_new_mem_buf
    - BIO_free
    - TEST_ptr
    - d2i_X509_bio
    - X509_new_ex
    linkageType: ''
    returnType: int
    signature: int dhx_cert_load(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:341,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:343,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:343,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:346,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:347,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:347,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:351,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:354,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:360,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:361,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:362,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:365,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:367,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:367,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:368,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:368,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:369,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:369,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:370,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:370,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:373,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:373,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:374,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:374,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:380,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:381,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:382,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:385,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:386,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:392,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:393,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 32
    argCount: 1
    argNames:
    - test_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 314
    functionDepth: 10
    functionLinenumber: 314
    functionLinenumberEnd: 395
    functionName: test_cipher_reinit
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_EncryptUpdate
    - TEST_note
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CIPHER_get_mode
    - TEST_int_eq
    - TEST_mem_ne
    - sk_OPENSSL_STRING_value
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_is_a
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_cipher_reinit(int test_id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:432,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:434,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:434,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:437,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:438,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:438,1
    - Dst: EVP_CIPHER_get_block_size
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:441,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:444,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:446,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:447,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:453,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:454,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:454,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:455,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:455,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:456,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:456,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:459,1
    - Dst: EVP_CIPHER_get_mode
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:462,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:463,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:463,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:464,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:464,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:467,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:472,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:473,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 34
    argCount: 1
    argNames:
    - test_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 475
    functionName: test_cipher_reinit_partialupdate
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_EncryptUpdate
    - TEST_note
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CIPHER_get_mode
    - EVP_CIPHER_get_flags
    - sk_OPENSSL_STRING_value
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_get_block_size
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_cipher_reinit_partialupdate(int test_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: name_cmp
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 14
    functionsReached:
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int name_cmp(const char * const *a, const char * const *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:485,1
    - Dst: EVP_CIPHER_get0_name
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:486,1
    - Dst: assert
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:489,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:491,1
    - Dst: sk_OPENSSL_STRING_push
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:492,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - cipher_names_list
    argTypes:
    - EVP_CIPHER*
    - void*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/openssl-3.0.15/test/evp_libctx_test.c
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: collect_cipher_names
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - sk_OPENSSL_STRING_push
    - assert
    - EVP_CIPHER_get0_name
    - OPENSSL_free
    - STACK_OF
    - OPENSSL_strdup
    linkageType: ''
    returnType: void
    signature: void collect_cipher_names(EVP_CIPHER *cipher, void *cipher_names_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:504,1
    - Dst: EVP_PKEY_Q_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:504,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:505,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:506,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:510,1
    - Dst: OSSL_ENCODER_to_data
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:510,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:513,1
    - Dst: d2i_PublicKey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:513,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:517,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - bits
    - pub
    - priv
    argTypes:
    - int
    - EVP_PKEY**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 496
    functionDepth: 12
    functionLinenumber: 496
    functionLinenumberEnd: 520
    functionName: rsa_keygen
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 2
    functionsReached:
    - d2i_PublicKey
    - OSSL_ENCODER_CTX_free
    - EVP_PKEY_Q_keygen
    - OPENSSL_free
    - OSSL_ENCODER_CTX_new_for_pkey
    - TEST_ptr
    - TEST_true
    - OSSL_ENCODER_to_data
    linkageType: ''
    returnType: int
    signature: int rsa_keygen(int bits, EVP_PKEY **pub, EVP_PKEY **priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:534,1
    - Dst: rsa_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:534,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:535,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:535,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:536,1
    - Dst: EVP_PKEY_encapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:536,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:537,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:537,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:538,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:538,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:539,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:539,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:541,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:542,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:543,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:543,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:545,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:545,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:546,1
    - Dst: EVP_PKEY_decapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:546,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:547,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:547,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:548,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:548,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:550,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:550,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:552,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:553,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:554,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:555,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:556,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:557,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 522
    functionDepth: 13
    functionLinenumber: 522
    functionLinenumberEnd: 559
    functionName: kem_rsa_gen_recover
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_PKEY_CTX_set_kem_op
    - EVP_PKEY_CTX_dup
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_encapsulate
    - EVP_PKEY_decapsulate_init
    - EVP_PKEY_decapsulate
    - rsa_keygen
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - EVP_PKEY_encapsulate_init
    linkageType: ''
    returnType: int
    signature: int kem_rsa_gen_recover(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:573,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:573,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:574,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:574,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:575,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:575,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:576,1
    - Dst: EVP_CIPHER_get_flags
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:576,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:577,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:577,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:578,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:578,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:579,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:579,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:581,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:582,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 585
    functionName: test_cipher_tdes_randkey
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - TEST_int_eq
    - TEST_int_ne
    - EVP_CIPHER_CTX_rand_key
    - EVP_CIPHER_get_flags
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_cipher_tdes_randkey(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:598,1
    - Dst: rsa_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:598,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:599,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:599,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:600,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:600,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:602,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:602,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:604,1
    - Dst: EVP_PKEY_encapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:604,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:605,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:605,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:606,1
    - Dst: EVP_PKEY_decapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:606,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:607,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:607,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:609,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:609,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:610,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:610,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:612,1
    - Dst: EVP_PKEY_decapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:612,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:613,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:613,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:614,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:614,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:616,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:618,1
    - Dst: EVP_PKEY_encapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:618,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:619,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:619,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:621,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:621,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:622,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:622,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:623,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:623,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:624,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:624,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:626,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:626,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:627,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:627,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:628,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:628,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:630,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:630,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:631,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:631,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:633,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:633,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:634,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:634,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:635,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:635,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:636,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:636,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:638,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:638,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:640,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:640,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:642,1
    - Dst: EVP_PKEY_decapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:642,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:643,1
    - Dst: EVP_PKEY_CTX_set_kem_op
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:643,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:644,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:644,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:645,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:645,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:646,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:648,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:648,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:649,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:649,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:650,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:650,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:651,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:651,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:653,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:654,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:655,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:656,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 588
    functionDepth: 13
    functionLinenumber: 588
    functionLinenumberEnd: 658
    functionName: kem_rsa_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_set_kem_op
    - EVP_PKEY_encapsulate
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_decapsulate_init
    - TEST_uchar_eq
    - EVP_PKEY_decapsulate
    - rsa_keygen
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - EVP_PKEY_encapsulate_init
    linkageType: ''
    returnType: int
    signature: int kem_rsa_params(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:667,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:668,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:670,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:670,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:671,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:671,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:672,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:672,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:673,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:673,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 661
    functionDepth: 8
    functionLinenumber: 661
    functionLinenumberEnd: 678
    functionName: gen_dh_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - EVP_PKEY_CTX_set_params
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *gen_dh_key(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:687,1
    - Dst: gen_dh_key
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:687,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:690,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:690,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:692,1
    - Dst: EVP_PKEY_encapsulate_init
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:692,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:697,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 681
    functionDepth: 13
    functionLinenumber: 681
    functionLinenumberEnd: 700
    functionName: kem_invalid_keytype
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - gen_dh_key
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_free
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - EVP_PKEY_encapsulate_init
    linkageType: ''
    returnType: int
    signature: int kem_invalid_keytype(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:709,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:712,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:715,1
    - Dst: test_get_libctx
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:725,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:729,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:732,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:733,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:736,1
    - Dst: sk_OPENSSL_STRING_new
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:736,1
    - Dst: EVP_CIPHER_do_all_provided
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:738,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:740,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:740,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:741,1
    - Dst: sk_OPENSSL_STRING_num
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:742,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:743,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:744,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:746,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:749,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 752
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_arg
    - opt_next
    - EVP_CIPHER_do_all_provided
    - ADD_ALL_TESTS
    - sk_OPENSSL_STRING_num
    - sk_OPENSSL_STRING_new
    - test_get_libctx
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: string_free
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void string_free(char *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sk_OPENSSL_STRING_pop_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:762,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:763,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:764,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_libctx_test.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 760
    functionDepth: 5
    functionLinenumber: 760
    functionLinenumberEnd: 766
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_libctx_test.c
    functionUses: 1
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    - sk_OPENSSL_STRING_pop_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:66,1
    - Dst: BIO_vprintf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:67,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: opt_printf_stderr
    functionSourceFile: /src/openssl-3.0.15/test/bio_prefix_text.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - BIO_vprintf
    linkageType: ''
    returnType: int
    signature: int opt_printf_stderr(const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:76,1
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:80,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: run_pipe
    functionSourceFile: /src/openssl-3.0.15/test/bio_prefix_text.c
    functionUses: 0
    functionsReached:
    - BIO_eof
    - BIO_write_ex
    - BIO_read_ex
    linkageType: ''
    returnType: int
    signature: int run_pipe(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:99,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:105,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:108,1
    - Dst: BIO_f_prefix
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:108,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:112,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 124
    functionName: setup_bio_chain
    functionSourceFile: /src/openssl-3.0.15/test/bio_prefix_text.c
    functionUses: 0
    functionsReached:
    - BIO_f_prefix
    - BIO_new
    - BIO_free_all
    - OPENSSL_zalloc
    - OPENSSL_free
    - BIO_up_ref
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int setup_bio_chain(const char *progname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:129,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:130,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:133,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:134,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: cleanup
    functionSourceFile: /src/openssl-3.0.15/test/bio_prefix_text.c
    functionUses: 86
    functionsReached:
    - BIO_free_all
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: opt_getprog
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:145,1
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:147,1
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:148,1
    - Dst: BIO_new_fp
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:149,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:151,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:151,1
    - Dst: BIO_f_linebuffer
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:151,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:152,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:152,1
    - Dst: BIO_f_linebuffer
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:152,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:155,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:156,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:157,1
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:160,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:163,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:164,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:166,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:172,1
    - Dst: setup_bio_chain
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:176,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:177,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:184,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:187,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:188,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:191,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:193,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:204,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:210,1
    - Dst: BIO_set_indent
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:214,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:215,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:222,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:225,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:226,1
    - Dst: strtoul
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:229,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:231,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:241,1
    - Dst: BIO_set_prefix
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:245,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:246,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 257
    functionName: setup
    functionSourceFile: /src/openssl-3.0.15/test/bio_prefix_text.c
    functionUses: 36
    functionsReached:
    - opt_getprog
    - BIO_set_indent
    - BIO_new
    - BIO_f_linebuffer
    - OPENSSL_assert
    - opt_next
    - opt_arg
    - BIO_set_prefix
    - strchr
    - setup_bio_chain
    - strtoul
    - BIO_new_fp
    - BIO_printf
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: opt_init
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:263,1
    - Dst: setup
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:264,1
    - Dst: run_pipe
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:264,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/bio_prefix_text.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/bio_prefix_text.c
    functionUses: 6
    functionsReached:
    - setup
    - cleanup
    - opt_init
    - run_pipe
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_buffer.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:71,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:71,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:71,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:73,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:74,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:76,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:76,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:76,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:77,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:77,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:78,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:78,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:79,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:79,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:80,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:80,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:81,1
    - Dst: X509_STORE_add_cert
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:81,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:82,1
    - Dst: SMIME_read_PKCS7
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:82,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:83,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:83,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:84,1
    - Dst: PKCS7_verify
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:84,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:85,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:85,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:87,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:88,1
    - Dst: PKCS7_free
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:89,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:90,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:91,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:92,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 51
    functionDepth: 10
    functionLinenumber: 51
    functionLinenumberEnd: 94
    functionName: pkcs7_verify_test
    functionSourceFile: /src/openssl-3.0.15/test/pkcs7_test.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_free
    - BIO_puts
    - TEST_int_eq
    - PKCS7_free
    - PKCS7_verify
    - strlen
    - BIO_s_mem
    - BIO_new
    - ERR_peek_error
    - SMIME_read_PKCS7
    - TEST_true
    - d2i_X509_bio
    - X509_STORE_new
    - TEST_ptr
    - OSSL_NELEM
    - BIO_new_mem_buf
    - BIO_free
    - X509_STORE_add_cert
    linkageType: ''
    returnType: int
    signature: int pkcs7_verify_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkcs7_test.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pkcs7_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:35,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:35,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:36,1
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:36,1
    - Dst: TEST_int_lt
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:38,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:40,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:44,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:44,1
    - Dst: BIO_f_readbuffer
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:44,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:45,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:45,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:48,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:51,1
    - Dst: BIO_tell
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:51,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:56,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:59,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:59,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:62,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:65,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:70,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:77,1
    - Dst: BIO_seek
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:77,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:81,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:82,1
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:82,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:84,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:89,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:93,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:94,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:95,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 60
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 97
    functionName: test_readbuffer_file_bio
    functionSourceFile: /src/openssl-3.0.15/test/bio_readbuffer_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_int_lt
    - BIO_eof
    - BIO_new
    - BIO_read_ex
    - TEST_int_eq
    - BIO_free
    - BIO_tell
    - BIO_gets
    - BIO_free_all
    - BIO_f_readbuffer
    - BIO_seek
    - TEST_int_le
    - TEST_ptr
    - BIO_new_file
    - TEST_true
    - TEST_int_gt
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int test_readbuffer_file_bio(int tstid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/bio_readbuffer_test.c
    functionUses: 0
    functionsReached:
    - OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:119,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:127,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_readbuffer_test.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bio_readbuffer_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument
    - opt_next
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:50,1
    - Dst: ossl_cmp_mock_srv_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:51,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:52,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 14
    functionsReached:
    - OPENSSL_free
    - sk_X509_free
    - OSSL_CMP_CTX_free
    - ossl_cmp_mock_srv_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:62,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:62,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:65,1
    - Dst: ossl_cmp_mock_srv_new
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:65,1
    - Dst: OSSL_CMP_SRV_CTX_set_accept_unprotected
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:66,1
    - Dst: ossl_cmp_mock_srv_set1_certOut
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:67,1
    - Dst: OSSL_CMP_SRV_CTX_get0_cmp_ctx
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:69,1
    - Dst: OSSL_CMP_CTX_set1_cert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:70,1
    - Dst: OSSL_CMP_CTX_set1_pkey
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:71,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:73,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:73,1
    - Dst: OSSL_CMP_CTX_set_log_cb
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:74,1
    - Dst: OSSL_CMP_CTX_set_transfer_cb
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:75,1
    - Dst: OSSL_CMP_CTX_set_transfer_cb_arg
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:76,1
    - Dst: OSSL_CMP_CTX_set_option
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:77,1
    - Dst: OSSL_CMP_CTX_set_option
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:78,1
    - Dst: OSSL_CMP_CTX_set1_oldCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:79,1
    - Dst: OSSL_CMP_CTX_set1_pkey
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:80,1
    - Dst: OSSL_CMP_CTX_set1_srvCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:82,1
    - Dst: OSSL_CMP_CTX_set1_referenceValue
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:83,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:89,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 16
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 13
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 1
    functionsReached:
    - OSSL_CMP_CTX_set_log_cb
    - OSSL_CMP_CTX_new
    - tear_down
    - OSSL_CMP_SRV_CTX_set_accept_unprotected
    - ossl_cmp_mock_srv_new
    - OSSL_CMP_CTX_set_transfer_cb_arg
    - ossl_cmp_mock_srv_set1_certOut
    - OSSL_CMP_CTX_set1_srvCert
    - OPENSSL_zalloc
    - OSSL_CMP_CTX_set_transfer_cb
    - OSSL_CMP_SRV_CTX_get0_cmp_ctx
    - OSSL_CMP_CTX_set1_pkey
    - OSSL_CMP_CTX_set1_referenceValue
    - OSSL_CMP_CTX_set1_oldCert
    - TEST_ptr
    - OSSL_CMP_CTX_set_option
    - OSSL_CMP_CTX_set1_cert
    linkageType: ''
    returnType: CMP_SES_TEST_FIXTURE
    signature: CMP_SES_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:95,1
    - Dst: OSSL_CMP_CTX_get_status
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:95,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:97,1
    - Dst: OSSL_CMP_exec_RR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:99,1
    - Dst: OSSL_CMP_CTX_get_status
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fixt
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 20
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: execute_exec_RR_ses_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_CMP_exec_RR_ses
    - OSSL_CMP_CTX_get_status
    linkageType: ''
    returnType: int
    signature: int execute_exec_RR_ses_test(CMP_SES_TEST_FIXTURE *fixt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:105,1
    - Dst: OSSL_CMP_ITAV_create
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:106,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:107,1
    - Dst: OSSL_CMP_CTX_push0_genm_ITAV
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:109,1
    - Dst: OSSL_CMP_exec_GENM_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:110,1
    - Dst: sk_OSSL_CMP_ITAV_pop_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:112,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:113,1
    - Dst: OSSL_CMP_CTX_get_status
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:115,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 7
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: execute_exec_GENM_ses_test_single
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_exec_GENM_ses
    - OSSL_CMP_CTX_push0_genm_ITAV
    - TEST_ptr_null
    - sk_OSSL_CMP_ITAV_pop_free
    - TEST_int_eq
    - STACK_OF
    - OSSL_CMP_ITAV_create
    - TEST_ptr
    - OBJ_txt2obj
    - OSSL_CMP_CTX_get_status
    linkageType: ''
    returnType: int
    signature: int execute_exec_GENM_ses_test_single(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_exec_GENM_ses_test_single
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:120,1
    - Dst: OSSL_CMP_CTX_reinit
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:121,1
    - Dst: execute_exec_GENM_ses_test_single
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: execute_exec_GENM_ses_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - execute_exec_GENM_ses_test_single
    - OSSL_CMP_CTX_reinit
    linkageType: ''
    returnType: int
    signature: int execute_exec_GENM_ses_test(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_exec_certreq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:128,1
    - Dst: OSSL_CMP_CTX_get_status
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:129,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:131,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:132,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:134,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:137,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:139,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:139,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:142,1
    - Dst: OSSL_CMP_CTX_get1_caPubs
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:142,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:143,1
    - Dst: STACK_OF_X509_cmp
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:143,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 22
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: execute_exec_certrequest_ses_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - sk_X509_pop_free
    - OSSL_CMP_exec_certreq
    - TEST_int_eq
    - OSSL_CMP_CTX_get1_caPubs
    - STACK_OF_X509_cmp
    - STACK_OF
    - OSSL_CMP_CTX_print_errors
    - X509_cmp
    - TEST_ptr
    - OSSL_CMP_CTX_get_status
    linkageType: ''
    returnType: int
    signature: int execute_exec_certrequest_ses_test(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:153,1
    - Dst: OSSL_CMP_CTX_set1_oldCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:155,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - request_error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: test_exec_RR_ses
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_CTX_set1_oldCert
    linkageType: ''
    returnType: int
    signature: int test_exec_RR_ses(int request_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_RR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: test_exec_RR_ses_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_RR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_RR_ses_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_RR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: test_exec_RR_ses_request_error
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_RR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_RR_ses_request_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:174,1
    - Dst: ossl_cmp_mock_srv_set_statusInfo
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:175,1
    - Dst: ossl_cmp_mock_srv_set_sendError
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:179,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: test_exec_RR_ses_receive_error
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - ossl_cmp_mock_srv_set_sendError
    - ossl_cmp_mock_srv_set_statusInfo
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_exec_RR_ses_receive_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:187,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:190,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:191,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:192,1
    - Dst: ossl_cmp_mock_srv_set1_caPubsOut
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:193,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: test_exec_IR_ses
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - sk_X509_push
    - sk_X509_new_null
    - ossl_cmp_mock_srv_set1_caPubsOut
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_exec_IR_ses(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:201,1
    - Dst: ossl_cmp_mock_srv_set_checkAfterTime
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:204,1
    - Dst: ossl_cmp_mock_srv_set_pollCount
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:205,1
    - Dst: OSSL_CMP_CTX_set_option
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:206,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - check_after
    - poll_count
    - total_timeout
    - expect
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 13
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: test_exec_IR_ses_poll
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    - ossl_cmp_mock_srv_set_checkAfterTime
    - OSSL_CMP_CTX_set_option
    - ossl_cmp_mock_srv_set_pollCount
    linkageType: ''
    returnType: int
    signature: "int test_exec_IR_ses_poll(int check_after, int poll_count,\n                                 int
      total_timeout, int expect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_IR_ses_poll
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 14
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: test_exec_IR_ses_poll_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_IR_ses_poll
    linkageType: ''
    returnType: int
    signature: int test_exec_IR_ses_poll_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_IR_ses_poll
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 14
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: test_exec_IR_ses_poll_no_timeout
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_IR_ses_poll
    linkageType: ''
    returnType: int
    signature: int test_exec_IR_ses_poll_no_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_IR_ses_poll
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 14
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: test_exec_IR_ses_poll_total_timeout
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_IR_ses_poll
    linkageType: ''
    returnType: int
    signature: int test_exec_IR_ses_poll_total_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:232,1
    - Dst: OSSL_CMP_CTX_set_option
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:234,1
    - Dst: OSSL_CMP_SRV_CTX_set_grant_implicit_confirm
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:236,1
    - Dst: ossl_cmp_mock_srv_set_sendError
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:237,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - implicit_confirm
    - granted
    - reject
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 13
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: test_exec_CR_ses
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - ossl_cmp_mock_srv_set_sendError
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_SRV_CTX_set_grant_implicit_confirm
    - OSSL_CMP_CTX_set_option
    linkageType: ''
    returnType: int
    signature: int test_exec_CR_ses(int implicit_confirm, int granted, int reject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_CR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:247,1
    - Dst: test_exec_CR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 14
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: test_exec_CR_ses_explicit_confirm
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_CR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_CR_ses_explicit_confirm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_CR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:253,1
    - Dst: test_exec_CR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 14
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: test_exec_CR_ses_implicit_confirm
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_CR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_CR_ses_implicit_confirm(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:259,1
    - Dst: OSSL_CMP_CTX_set_transfer_cb_arg
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:264,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:268,1
    - Dst: OSSL_CMP_CTX_set0_newPkey
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:269,1
    - Dst: OSSL_CMP_SRV_CTX_set_accept_raverified
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:270,1
    - Dst: OSSL_CMP_CTX_set_option
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:273,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - transfer_error
    - pubkey
    - raverified
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 257
    functionDepth: 13
    functionLinenumber: 257
    functionLinenumberEnd: 279
    functionName: test_exec_KUR_ses
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_SRV_CTX_set_accept_raverified
    - EVP_PKEY_up_ref
    - OSSL_CMP_CTX_set0_newPkey
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_CTX_set_option
    - OSSL_CMP_CTX_set_transfer_cb_arg
    linkageType: ''
    returnType: int
    signature: int test_exec_KUR_ses(int transfer_error, int pubkey, int raverified)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_KUR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 14
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: test_exec_KUR_ses_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_KUR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_KUR_ses_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_KUR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 14
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: test_exec_KUR_ses_transfer_error
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_KUR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_KUR_ses_transfer_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_KUR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 14
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: test_exec_KUR_ses_wrong_popo
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_KUR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_KUR_ses_wrong_popo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_KUR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 14
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: test_exec_KUR_ses_pub
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_KUR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_KUR_ses_pub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_KUR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 14
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: test_exec_KUR_ses_wrong_pub
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_KUR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_KUR_ses_wrong_pub(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_get_certConf_cb_arg
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - cert
    - fail_info
    - txt
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: test_certConf_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_get_certConf_cb_arg
    linkageType: ''
    returnType: int
    signature: "int test_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info,\n
      \                           const char **txt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:327,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:332,1
    - Dst: load_csr_der
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:332,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:333,1
    - Dst: OSSL_CMP_CTX_set1_p10CSR
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:333,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:334,1
    - Dst: OSSL_CMP_CTX_set_certConf_cb
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:335,1
    - Dst: OSSL_CMP_CTX_set_certConf_cb_arg
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:335,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:336,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:339,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - reject
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 342
    functionName: test_exec_P10CR_ses
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_CTX_set1_p10CSR
    - tear_down
    - X509_REQ_free
    - OSSL_CMP_CTX_set_certConf_cb_arg
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_CTX_set_certConf_cb
    - TEST_ptr
    - TEST_true
    - load_csr_der
    linkageType: ''
    returnType: int
    signature: int test_exec_P10CR_ses(int reject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_P10CR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: test_exec_P10CR_ses_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_P10CR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_P10CR_ses_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_P10CR_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: test_exec_P10CR_ses_reject
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_P10CR_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_P10CR_ses_reject(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_mock_srv_set_pollCount
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:361,1
    - Dst: ossl_cmp_mock_srv_set_checkAfterTime
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:362,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:363,1
    - Dst: OSSL_CMP_try_certreq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:363,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:365,1
    - Dst: OSSL_CMP_CTX_get0_newCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:365,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:366,1
    - Dst: OSSL_CMP_try_certreq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:366,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:368,1
    - Dst: OSSL_CMP_CTX_get0_newCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:368,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:369,1
    - Dst: OSSL_CMP_try_certreq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:370,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:371,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:372,1
    - Dst: OSSL_CMP_CTX_get0_newCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 354
    functionDepth: 22
    functionLinenumber: 354
    functionLinenumberEnd: 373
    functionName: execute_try_certreq_poll_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_CMP_CTX_get0_newCert
    - TEST_ptr_eq
    - X509_cmp
    - ossl_cmp_mock_srv_set_checkAfterTime
    - OSSL_CMP_try_certreq
    - ossl_cmp_mock_srv_set_pollCount
    linkageType: ''
    returnType: int
    signature: int execute_try_certreq_poll_test(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:377,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: test_try_certreq_poll
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_try_certreq_poll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_mock_srv_set_pollCount
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:390,1
    - Dst: ossl_cmp_mock_srv_set_checkAfterTime
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:391,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:392,1
    - Dst: OSSL_CMP_try_certreq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:392,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:394,1
    - Dst: OSSL_CMP_CTX_get0_newCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:394,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:395,1
    - Dst: OSSL_CMP_try_certreq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:396,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:397,1
    - Dst: OSSL_CMP_CTX_get0_newCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 22
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: execute_try_certreq_poll_abort_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_CMP_CTX_get0_newCert
    - TEST_ptr_eq
    - ossl_cmp_mock_srv_set_checkAfterTime
    - OSSL_CMP_try_certreq
    - ossl_cmp_mock_srv_set_pollCount
    linkageType: ''
    returnType: int
    signature: int execute_try_certreq_poll_abort_test(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:402,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: test_try_certreq_poll_abort
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_try_certreq_poll_abort(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:410,1
    - Dst: OSSL_CMP_CTX_set_transfer_cb_arg
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:412,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - transfer_error
    - total_timeout
    - expect
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: test_exec_GENM_ses
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_CTX_set_transfer_cb_arg
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_exec_GENM_ses(int transfer_error, int total_timeout, int expect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_GENM_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: test_exec_GENM_ses_ok
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_GENM_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_GENM_ses_ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_GENM_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: test_exec_GENM_ses_transfer_error
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_GENM_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_GENM_ses_transfer_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_exec_GENM_ses
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: test_exec_GENM_ses_total_timeout
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - test_exec_GENM_ses
    linkageType: ''
    returnType: int
    signature: int test_exec_GENM_ses_total_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_exchange_certConf
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:441,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 438
    functionDepth: 20
    functionLinenumber: 438
    functionLinenumberEnd: 445
    functionName: execute_exchange_certConf_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_cmp_exchange_certConf
    linkageType: ''
    returnType: int
    signature: int execute_exchange_certConf_test(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_exchange_error
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:450,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SES_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 20
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: execute_exchange_error_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_cmp_exchange_error
    linkageType: ''
    returnType: int
    signature: int execute_exchange_error_test(CMP_SES_TEST_FIXTURE *fixture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:460,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:462,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:462,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:463,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 468
    functionName: test_exchange_certConf
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - ossl_cmp_ctx_set0_newCert
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int test_exchange_certConf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:472,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: test_exchange_error
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_exchange_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:480,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:481,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:482,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:483,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:484,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:485,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 488
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_free
    - OSSL_PROVIDER_unload
    - X509_free
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:495,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:496,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:500,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:500,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:501,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:501,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:502,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:502,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:503,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:503,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:504,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:504,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:505,1
    - Dst: test_arg_libctx
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:509,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:512,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:512,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:513,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:513,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:514,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:514,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:515,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:515,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:516,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:516,1
    - Dst: cleanup_tests
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:517,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:521,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:522,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:523,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:524,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:525,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:526,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:527,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:528,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:529,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:530,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:531,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:532,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:533,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:534,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:535,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:536,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:537,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:538,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:539,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:540,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:541,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:542,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:543,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 545
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - load_cert_pem
    - ADD_TEST
    - TEST_int_eq
    - cleanup_tests
    - test_arg_libctx
    - TEST_error
    - load_pkey_pem
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/cmp_client_test.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_client_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:33,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:34,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:35,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:36,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:36,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:38,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:38,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:38,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:39,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:39,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:41,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:41,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:43,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:43,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:45,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:45,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:47,1
    - Dst: EC_GROUP*::meth::field_encode
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:48,1
    - Dst: EC_GROUP*::meth::field_mul
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:48,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:50,1
    - Dst: EC_GROUP*::meth::field_decode
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:50,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:51,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:51,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:55,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:56,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:57,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:57,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:58,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:58,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:58,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:61,1
    - Dst: EC_GROUP*::meth::field_inv
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:61,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:62,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:62,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:63,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:63,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:63,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:67,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:70,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 19
    argCount: 2
    argNames:
    - group
    - ctx
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 72
    functionName: group_field_tests
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - BN_CTX_start
    - ERR_GET_LIB
    - BN_CTX_get
    - EC_GROUP*::meth::field_inv
    - ERR_peek_last_error
    - TEST_true
    - BN_is_one
    - BN_num_bits
    - ERR_clear_error
    - BN_value_one
    - BN_rand
    - TEST_ptr
    - EC_GROUP*::meth::field_decode
    - TEST_false
    - EC_GROUP*::meth::field_mul
    - BN_CTX_end
    - BN_zero
    - EC_GROUP*::meth::field_encode
    linkageType: ''
    returnType: int
    signature: int group_field_tests(const EC_GROUP *group, BN_CTX *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:83,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:83,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:86,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:87,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:88,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:89,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:89,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:90,1
    - Dst: EC_GROUP_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:91,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:92,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:93,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:93,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:94,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:94,1
    - Dst: group_field_tests
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:95,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:100,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:101,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 3
    argNames:
    - meth
    - params
    - len
    argTypes:
    - EC_METHOD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 75
    functionDepth: 7
    functionLinenumber: 75
    functionLinenumberEnd: 105
    functionName: field_tests
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 2
    functionsReached:
    - group_field_tests
    - BN_bin2bn
    - BN_CTX_free
    - EC_GROUP_free
    - BN_CTX_new
    - BN_CTX_start
    - EC_GROUP_set_curve
    - BN_CTX_end
    - EC_GROUP_new
    - TEST_ptr
    - TEST_true
    - BN_CTX_get
    linkageType: ''
    returnType: int
    signature: "int field_tests(const EC_METHOD *meth, const unsigned char *params,\n
      \                      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:144,1
    - Dst: field_tests
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:145,1
    - Dst: EC_GFp_simple_method
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 8
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: field_tests_ecp_simple
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - field_tests
    - EC_GFp_simple_method
    linkageType: ''
    returnType: int
    signature: int field_tests_ecp_simple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:152,1
    - Dst: field_tests
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:153,1
    - Dst: EC_GFp_mont_method
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: field_tests_ecp_mont
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_GFp_mont_method
    - TEST_info
    - field_tests
    linkageType: ''
    returnType: int
    signature: int field_tests_ecp_mont(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:161,1
    - Dst: field_tests
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:162,1
    - Dst: EC_GF2m_simple_method
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 8
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: field_tests_ec2_simple
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - field_tests
    - EC_GF2m_simple_method
    linkageType: ''
    returnType: int
    signature: int field_tests_ec2_simple(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:175,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:175,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:177,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:178,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:178,1
    - Dst: group_field_tests
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:179,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:185,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 189
    functionName: field_tests_default
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - group_field_tests
    - EC_GROUP_free
    - BN_CTX_new
    - TEST_info
    - OBJ_nid2sn
    - TEST_ptr
    - BN_CTX_free
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int field_tests_default(int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:211,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:212,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:215,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:216,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:217,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:218,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:219,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:220,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:221,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:222,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:225,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:226,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:227,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:228,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:229,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:229,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:229,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:229,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:232,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:232,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:233,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:233,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:234,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:234,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:235,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:235,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:236,1
    - Dst: ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:238,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:239,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:239,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:240,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:240,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:241,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:241,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:244,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:244,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:245,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:245,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:251,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:252,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:253,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:254,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:255,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:256,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 196
    functionDepth: 7
    functionLinenumber: 196
    functionLinenumberEnd: 259
    functionName: underflow_test
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - TEST_int_eq
    - EC_POINT_new
    - BN_CTX_start
    - BN_hex2bn
    - BN_CTX_get
    - TEST_int_gt
    - EC_GROUP_new_by_curve_name
    - BN_CTX_new
    - EC_POINT_dbl
    - EC_POINT_free
    - TEST_true
    - BN_cmp
    - ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp
    - EC_POINT_mul
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - BN_CTX_end
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int underflow_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:270,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:271,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:272,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:273,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:274,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:274,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:275,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:275,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:279,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:279,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:283,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:283,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:284,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:290,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:291,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 293
    functionName: set_private_key
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 3
    functionsReached:
    - TEST_ptr_null
    - EC_KEY_free
    - TEST_int_eq
    - EC_KEY_set_private_key
    - EC_KEY_generate_key
    - TEST_ptr
    - EC_KEY_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int set_private_key(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:311,1
    - Dst: EC_GFp_simple_method
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:312,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:313,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:315,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:318,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:319,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:320,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:324,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:324,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:325,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:325,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:326,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:328,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:330,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:334,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:334,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:335,1
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:335,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:336,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:336,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:337,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:338,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:338,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:340,1
    - Dst: EC_KEY_decoded_from_explicit_params
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:340,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:341,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:341,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:343,1
    - Dst: EC_KEY_decoded_from_explicit_params
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:343,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:345,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:347,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:351,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:351,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:352,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:353,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:353,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:354,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:358,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:362,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:363,1
    - Dst: EC_GROUP_get_ecpkparameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:363,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:364,1
    - Dst: EC_GROUP_new_from_ecpkparameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:364,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:365,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:365,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:366,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:368,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:372,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:372,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:373,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:374,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:374,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:375,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:375,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:376,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:377,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:377,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:379,1
    - Dst: EC_KEY_decoded_from_explicit_params
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:379,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:385,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:386,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:387,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:388,1
    - Dst: ECPKPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:389,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:390,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 298
    functionDepth: 7
    functionLinenumber: 298
    functionLinenumberEnd: 393
    functionName: decoded_flag_test
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EC_GROUP_free
    - TEST_int_eq
    - ECPARAMETERS_free
    - d2i_ECPKParameters
    - TEST_int_gt
    - EC_GROUP_new_by_curve_name
    - EC_KEY_set_group
    - EC_GROUP_get_ecpkparameters
    - EC_GROUP_get_asn1_flag
    - EC_GFp_simple_method
    - EC_GROUP_new_from_ecparameters
    - EC_GROUP_set_asn1_flag
    - EC_GROUP_new
    - OPENSSL_free
    - EC_GROUP_new_from_ecpkparameters
    - TEST_ptr
    - ECPKPARAMETERS_free
    - EC_KEY_free
    - i2d_ECPKParameters
    - EC_GROUP_get_ecparameters
    - EC_KEY_decoded_from_explicit_params
    linkageType: ''
    returnType: int
    signature: int decoded_flag_test(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:404,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:404,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:408,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:409,1
    - Dst: i2d_ECPKParameters_fp
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:409,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:413,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:413,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:420,1
    - Dst: fopen
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:420,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:421,1
    - Dst: d2i_ECPKParameters_fp
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:421,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:428,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:430,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:431,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 434
    functionName: ecpkparams_i2d2i_test
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - d2i_ECPKParameters_fp
    - EC_GROUP_free
    - TEST_int_eq
    - i2d_ECPKParameters_fp
    - fclose
    - fopen
    - TEST_ptr
    - TEST_true
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int ecpkparams_i2d2i_test(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:438,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:439,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:439,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:440,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:440,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:443,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:444,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:446,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:448,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:450,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:452,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:453,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - OPENSSL_malloc
    - EC_get_builtin_curves
    - ADD_ALL_TESTS
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ec_internal_test.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ec_internal_test.c
    functionUses: 2
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - provctx
    - operation_id
    - no_cache
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: obj_query
    functionSourceFile: /src/openssl-3.0.15/test/upcallstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_ALGORITHM
    signature: "OSSL_ALGORITHM *obj_query(void *provctx, int operation_id,\n                                       int
      *no_cache)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_FUNC_core_obj_add_sigid
      Src: /src/openssl-3.0.15/test/upcallstest.c:51,1
    - Dst: OSSL_FUNC_core_obj_create
      Src: /src/openssl-3.0.15/test/upcallstest.c:54,1
    - Dst: c_obj_create
      Src: /src/openssl-3.0.15/test/upcallstest.c:63,1
    - Dst: c_obj_create
      Src: /src/openssl-3.0.15/test/upcallstest.c:64,1
    - Dst: c_obj_create
      Src: /src/openssl-3.0.15/test/upcallstest.c:65,1
    - Dst: c_obj_add_sigid
      Src: /src/openssl-3.0.15/test/upcallstest.c:68,1
    - Dst: c_obj_add_sigid
      Src: /src/openssl-3.0.15/test/upcallstest.c:72,1
    - Dst: c_obj_add_sigid
      Src: /src/openssl-3.0.15/test/upcallstest.c:74,1
    - Dst: c_obj_add_sigid
      Src: /src/openssl-3.0.15/test/upcallstest.c:77,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - handle
    - in
    - out
    - provctx
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    - OSSL_DISPATCH**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 81
    functionName: obj_provider_init
    functionSourceFile: /src/openssl-3.0.15/test/upcallstest.c
    functionUses: 0
    functionsReached:
    - c_obj_create
    - OSSL_FUNC_core_obj_create
    - c_obj_add_sigid
    - OSSL_FUNC_core_obj_add_sigid
    linkageType: ''
    returnType: int
    signature: "int obj_provider_init(const OSSL_CORE_HANDLE *handle,\n                             const
      OSSL_DISPATCH *in,\n                             const OSSL_DISPATCH **out,\n
      \                            void **provctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/upcallstest.c:85,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/upcallstest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/upcallstest.c:93,1
    - Dst: OSSL_PROVIDER_add_builtin
      Src: /src/openssl-3.0.15/test/upcallstest.c:93,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/upcallstest.c:95,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/upcallstest.c:95,1
    - Dst: OBJ_txt2nid
      Src: /src/openssl-3.0.15/test/upcallstest.c:99,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/upcallstest.c:100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/upcallstest.c:101,1
    - Dst: OBJ_find_sigid_algs
      Src: /src/openssl-3.0.15/test/upcallstest.c:101,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/upcallstest.c:102,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/upcallstest.c:103,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/upcallstest.c:104,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/test/upcallstest.c:104,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/upcallstest.c:105,1
    - Dst: OBJ_ln2nid
      Src: /src/openssl-3.0.15/test/upcallstest.c:105,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/upcallstest.c:110,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/upcallstest.c:111,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 8
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: obj_create_test
    functionSourceFile: /src/openssl-3.0.15/test/upcallstest.c
    functionUses: 0
    functionsReached:
    - OBJ_find_sigid_algs
    - OSSL_PROVIDER_load
    - OBJ_txt2nid
    - TEST_int_eq
    - TEST_int_ne
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - OSSL_PROVIDER_add_builtin
    - OBJ_ln2nid
    - TEST_ptr
    - TEST_true
    - OBJ_sn2nid
    linkageType: ''
    returnType: int
    signature: int obj_create_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/upcallstest.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/upcallstest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/provider_status_test.c:57,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:60,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:65,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:70,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/provider_status_test.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/provider_status_test.c:76,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/provider_status_test.c:77,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/provider_status_test.c:78,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/provider_status_test.c:79,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/provider_status_test.c:84,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 4
    argNames:
    - params
    - arg
    - title
    - corrupt
    argTypes:
    - OSSL_PARAM[]
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 89
    functionName: self_test_events
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    - strcmp
    - OSSL_PARAM_locate_const
    linkageType: ''
    returnType: int
    signature: "int self_test_events(const OSSL_PARAM params[], void *arg,\n                            const
      char *title, int corrupt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: self_test_events
      Src: /src/openssl-3.0.15/test/provider_status_test.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: self_test_on_demand_fail
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - self_test_events
    linkageType: ''
    returnType: int
    signature: int self_test_on_demand_fail(const OSSL_PARAM params[], void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: self_test_events
      Src: /src/openssl-3.0.15/test/provider_status_test.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: self_test_on_demand
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - self_test_events
    linkageType: ''
    returnType: int
    signature: int self_test_on_demand(const OSSL_PARAM params[], void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: self_test_events
      Src: /src/openssl-3.0.15/test/provider_status_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: self_test_on_load
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - self_test_events
    linkageType: ''
    returnType: int
    signature: int self_test_on_load(const OSSL_PARAM params[], void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:114,1
    - Dst: OSSL_PROVIDER_gettable_params
      Src: /src/openssl-3.0.15/test/provider_status_test.c:114,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:115,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:115,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:116,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:116,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:117,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:117,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:118,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/provider_status_test.c:118,1
    - Dst: OSSL_PARAM_construct_utf8_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:121,1
    - Dst: OSSL_PARAM_construct_utf8_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:122,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/provider_status_test.c:124,1
    - Dst: OSSL_PARAM_construct_utf8_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:125,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/provider_status_test.c:127,1
    - Dst: OSSL_PARAM_set_all_unmodified
      Src: /src/openssl-3.0.15/test/provider_status_test.c:128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:129,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_status_test.c:129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:131,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/provider_status_test.c:131,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:132,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/provider_status_test.c:132,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:133,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/provider_status_test.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:134,1
    - Dst: OSSL_PARAM_modified
      Src: /src/openssl-3.0.15/test/provider_status_test.c:134,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:135,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 1
    argNames:
    - prov
    argTypes:
    - OSSL_PROVIDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 141
    functionName: get_provider_params
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_set_all_unmodified
    - OSSL_PROVIDER_gettable_params
    - OSSL_PARAM_construct_utf8_ptr
    - OSSL_PROVIDER_get_params
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_modified
    - OSSL_PARAM_locate_const
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int get_provider_params(const OSSL_PROVIDER *prov)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:151,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_status_test.c:151,1
    - Dst: get_provider_params
      Src: /src/openssl-3.0.15/test/provider_status_test.c:153,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/provider_status_test.c:157,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/provider_status_test.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:159,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_status_test.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:160,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:162,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/provider_status_test.c:162,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/provider_status_test.c:164,1
    - Dst: OSSL_SELF_TEST_set_callback
      Src: /src/openssl-3.0.15/test/provider_status_test.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:170,1
    - Dst: OSSL_PROVIDER_self_test
      Src: /src/openssl-3.0.15/test/provider_status_test.c:170,1
    - Dst: OSSL_SELF_TEST_set_callback
      Src: /src/openssl-3.0.15/test/provider_status_test.c:175,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/provider_status_test.c:176,1
    - Dst: OSSL_PROVIDER_self_test
      Src: /src/openssl-3.0.15/test/provider_status_test.c:176,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_status_test.c:178,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/provider_status_test.c:178,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/provider_status_test.c:179,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/provider_status_test.c:181,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/provider_status_test.c:181,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/provider_status_test.c:186,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_status_test.c:187,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 143
    functionDepth: 11
    functionLinenumber: 143
    functionLinenumberEnd: 189
    functionName: test_provider_status
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_uint
    - TEST_ptr_null
    - OSSL_PROVIDER_load
    - OSSL_SELF_TEST_set_callback
    - TEST_uint_eq
    - OSSL_PROVIDER_unload
    - TEST_false
    - OSSL_PROVIDER_get_params
    - get_provider_params
    - OSSL_PROVIDER_self_test
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_provider_status(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:196,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_status_test.c:196,1
    - Dst: get_provider_params
      Src: /src/openssl-3.0.15/test/provider_status_test.c:198,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_status_test.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: test_provider_gettable_params
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - get_provider_params
    - OSSL_PROVIDER_unload
    - OSSL_PROVIDER_load
    linkageType: ''
    returnType: int
    signature: int test_provider_gettable_params(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/provider_status_test.c:208,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/provider_status_test.c:211,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/provider_status_test.c:214,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/provider_status_test.c:224,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/provider_status_test.c:228,1
    - Dst: OSSL_SELF_TEST_set_callback
      Src: /src/openssl-3.0.15/test/provider_status_test.c:230,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/provider_status_test.c:231,1
    - Dst: opt_printf_stderr
      Src: /src/openssl-3.0.15/test/provider_status_test.c:232,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_status_test.c:235,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_status_test.c:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 203
    functionDepth: 8
    functionLinenumber: 203
    functionLinenumberEnd: 240
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 0
    functionsReached:
    - opt_printf_stderr
    - ADD_TEST
    - opt_arg
    - opt_next
    - OSSL_LIB_CTX_load_config
    - OSSL_SELF_TEST_set_callback
    - OSSL_LIB_CTX_new
    - strcmp
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_status_test.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/provider_status_test.c
    functionUses: 2
    functionsReached:
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_fips_names.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/igetest.c:157,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:161,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:163,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:164,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:165,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:167,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/igetest.c:168,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:169,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:170,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:171,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:176,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:177,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:178,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:180,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/igetest.c:181,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:182,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:183,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 189
    functionName: test_ige_vectors
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - test_output_memory
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - TEST_info
    - TEST_int_le
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_ige_vectors(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/igetest.c:198,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:202,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:203,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:205,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:206,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:209,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:212,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:213,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:214,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:215,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/igetest.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 221
    functionName: test_bi_ige_vectors
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - test_output_memory
    - AES_set_encrypt_key
    - AES_bi_ige_encrypt
    - TEST_int_le
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_vectors(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:230,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:231,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:232,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:234,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:235,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:236,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: test_ige_enc_dec
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_ige_enc_dec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:248,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:249,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:250,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:252,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:256,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:257,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:258,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 261
    functionName: test_ige_enc_chaining
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_ige_enc_chaining(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:270,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:271,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:272,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:274,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:278,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:279,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:280,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:282,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: test_ige_dec_chaining
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_ige_dec_chaining(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:300,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:301,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:302,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:307,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:308,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:309,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/igetest.c:318,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/igetest.c:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 325
    functionName: test_ige_garble_forwards
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - TEST_size_t_gt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_ige_garble_forwards(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:334,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:335,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:336,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:337,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:340,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:341,1
    - Dst: AES_bi_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:342,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/igetest.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: test_bi_ige_enc_dec
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - AES_set_encrypt_key
    - AES_bi_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_enc_dec(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:357,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:358,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:359,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:360,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:365,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:366,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:367,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/igetest.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 377
    functionName: test_bi_ige_garble1
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_garble1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:388,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:389,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:390,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:391,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:396,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:397,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:398,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/igetest.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 408
    functionName: test_bi_ige_garble2
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_garble2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/igetest.c:419,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:420,1
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:421,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:422,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:427,1
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/igetest.c:428,1
    - Dst: AES_ige_encrypt
      Src: /src/openssl-3.0.15/test/igetest.c:429,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/igetest.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 439
    functionName: test_bi_ige_garble3
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - memcpy
    - AES_set_encrypt_key
    - AES_ige_encrypt
    - AES_set_decrypt_key
    linkageType: ''
    returnType: int
    signature: int test_bi_ige_garble3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/igetest.c:445,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/igetest.c:446,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/igetest.c:447,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/igetest.c:448,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:450,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:451,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:452,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:453,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:454,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:455,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:456,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/igetest.c:457,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/igetest.c:458,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/igetest.c:458,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/igetest.c:459,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/igetest.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 442
    functionDepth: 6
    functionLinenumber: 442
    functionLinenumberEnd: 462
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/igetest.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/time_offset_test.c:75,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/time_offset_test.c:79,1
    - Dst: ASN1_TIME_diff
      Src: /src/openssl-3.0.15/test/time_offset_test.c:79,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/time_offset_test.c:80,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/time_offset_test.c:94,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/time_offset_test.c:95,1
    - Dst: ASN1_TIME_cmp_time_t
      Src: /src/openssl-3.0.15/test/time_offset_test.c:99,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/time_offset_test.c:101,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/time_offset_test.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 107
    functionName: test_offset
    functionSourceFile: /src/openssl-3.0.15/test/time_offset_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ASN1_TIME_cmp_time_t
    - TEST_info
    - strlen
    - ASN1_TIME_diff
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_offset(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/time_offset_test.c:111,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/time_offset_test.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/time_offset_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_conf_api.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/x509_time_test.c:261,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/x509_time_test.c:264,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/test/x509_time_test.c:267,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:268,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/x509_time_test.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 274
    functionName: test_x509_cmp_time
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - X509_cmp_time
    - TEST_info
    - strlen
    - memset
    linkageType: ''
    returnType: int
    signature: int test_x509_cmp_time(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/x509_time_test.c:278,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/test/x509_time_test.c:283,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/test/x509_time_test.c:284,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/test/x509_time_test.c:286,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:287,1
    - Dst: X509_cmp_time
      Src: /src/openssl-3.0.15/test/x509_time_test.c:290,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:291,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:294,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: test_x509_cmp_time_current
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_free
    - TEST_int_eq
    - time
    - ASN1_TIME_adj
    - X509_cmp_time
    linkageType: ''
    returnType: int
    signature: int test_x509_cmp_time_current(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/openssl-3.0.15/test/x509_time_test.c:306,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/openssl-3.0.15/test/x509_time_test.c:307,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:310,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:310,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:311,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:311,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:312,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:312,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:313,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:313,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:314,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:314,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:316,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:316,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:318,1
    - Dst: X509_cmp_timeframe
      Src: /src/openssl-3.0.15/test/x509_time_test.c:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 4
    argNames:
    - vpm
    - asn1_before
    - asn1_mid
    - asn1_after
    argTypes:
    - X509_VERIFY_PARAM*
    - ASN1_TIME*
    - ASN1_TIME*
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 300
    functionDepth: 4
    functionLinenumber: 300
    functionLinenumberEnd: 320
    functionName: test_X509_cmp_timeframe_vpm
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_get_flags
    - TEST_int_eq
    - X509_cmp_timeframe
    linkageType: ''
    returnType: int
    signature: "int test_X509_cmp_timeframe_vpm(const X509_VERIFY_PARAM *vpm,\n                                       ASN1_TIME
      *asn1_before,\n                                       ASN1_TIME *asn1_mid,\n
      \                                      ASN1_TIME *asn1_after)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/x509_time_test.c:324,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/test/x509_time_test.c:325,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/test/x509_time_test.c:327,1
    - Dst: ASN1_TIME_adj
      Src: /src/openssl-3.0.15/test/x509_time_test.c:328,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/openssl-3.0.15/test/x509_time_test.c:329,1
    - Dst: test_X509_cmp_timeframe_vpm
      Src: /src/openssl-3.0.15/test/x509_time_test.c:334,1
    - Dst: test_X509_cmp_timeframe_vpm
      Src: /src/openssl-3.0.15/test/x509_time_test.c:335,1
    - Dst: X509_VERIFY_PARAM_set_time
      Src: /src/openssl-3.0.15/test/x509_time_test.c:337,1
    - Dst: test_X509_cmp_timeframe_vpm
      Src: /src/openssl-3.0.15/test/x509_time_test.c:339,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-3.0.15/test/x509_time_test.c:340,1
    - Dst: test_X509_cmp_timeframe_vpm
      Src: /src/openssl-3.0.15/test/x509_time_test.c:341,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:343,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:345,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:346,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 350
    functionName: test_X509_cmp_timeframe
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - X509_VERIFY_PARAM_set_time
    - ASN1_TIME_free
    - test_X509_cmp_timeframe_vpm
    - time
    - X509_VERIFY_PARAM_new
    - ASN1_TIME_adj
    - X509_VERIFY_PARAM_free
    - X509_VERIFY_PARAM_set_flags
    linkageType: ''
    returnType: int
    signature: int test_X509_cmp_timeframe(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_TIME_new
      Src: /src/openssl-3.0.15/test/x509_time_test.c:359,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/x509_time_test.c:361,1
    - Dst: ASN1_TIME_set_string_X509
      Src: /src/openssl-3.0.15/test/x509_time_test.c:366,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:368,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/x509_time_test.c:369,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:376,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/x509_time_test.c:377,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:385,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/x509_time_test.c:387,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/x509_time_test.c:388,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:398,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 400
    functionName: test_x509_time
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - ASN1_TIME_free
    - ASN1_TIME_set_string_X509
    - TEST_int_eq
    - TEST_info
    - strlen
    - ASN1_TIME_new
    linkageType: ''
    returnType: int
    signature: int test_x509_time(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/x509_time_test.c:465,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_time_test.c:469,1
    - Dst: ASN1_TIME_new
      Src: /src/openssl-3.0.15/test/x509_time_test.c:469,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/x509_time_test.c:472,1
    - Dst: ASN1_TIME_set_string
      Src: /src/openssl-3.0.15/test/x509_time_test.c:472,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/x509_time_test.c:473,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/test/x509_time_test.c:473,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:474,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:475,1
    - Dst: ASN1_TIME_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 479
    functionName: test_days
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - ASN1_TIME_free
    - ASN1_TIME_set_string
    - TEST_int_eq
    - BIO_snprintf
    - ASN1_TIME_to_tm
    - TEST_ptr
    - ASN1_TIME_new
    linkageType: ''
    returnType: int
    signature: int test_days(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: construct_asn1_time
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: construct_asn1_time(s, t, e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_time_test.c:545,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/x509_time_test.c:545,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/x509_time_test.c:545,1
    - Dst: ASN1_TIME_print_ex
      Src: /src/openssl-3.0.15/test/x509_time_test.c:548,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:551,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/x509_time_test.c:555,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/x509_time_test.c:555,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:556,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/x509_time_test.c:556,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:557,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:562,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 538
    functionDepth: 6
    functionLinenumber: 538
    functionLinenumberEnd: 564
    functionName: test_x509_time_print_rfc_822
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - TEST_int_eq
    - ASN1_TIME_print_ex
    - TEST_int_ne
    - BIO_free
    - TEST_strn_eq
    - strlen
    - TEST_str_eq
    - BIO_get_mem_data
    - TEST_ptr
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_x509_time_print_rfc_822(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_time_test.c:573,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/x509_time_test.c:573,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/x509_time_test.c:573,1
    - Dst: ASN1_TIME_print_ex
      Src: /src/openssl-3.0.15/test/x509_time_test.c:576,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:579,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/x509_time_test.c:583,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/x509_time_test.c:583,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:584,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/x509_time_test.c:584,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-3.0.15/test/x509_time_test.c:585,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/x509_time_test.c:590,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 6
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: test_x509_time_print_iso_8601
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - TEST_int_eq
    - ASN1_TIME_print_ex
    - TEST_int_ne
    - BIO_free
    - TEST_strn_eq
    - strlen
    - TEST_str_eq
    - BIO_get_mem_data
    - TEST_ptr
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_x509_time_print_iso_8601(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/x509_time_test.c:596,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/x509_time_test.c:597,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509_time_test.c:598,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/x509_time_test.c:598,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509_time_test.c:599,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/x509_time_test.c:599,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509_time_test.c:600,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/x509_time_test.c:600,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509_time_test.c:601,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/x509_time_test.c:601,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509_time_test.c:602,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/x509_time_test.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 604
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/x509_time_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_modes.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glue_strings
      Src: /src/openssl-3.0.15/test/crltest.c:201,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/crltest.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pem
    - out
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: glue2bio
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - BIO_new_mem_buf
    - glue_strings
    linkageType: ''
    returnType: BIO
    signature: BIO *glue2bio(const char **pem, char **out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: glue2bio
      Src: /src/openssl-3.0.15/test/crltest.c:212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/crltest.c:215,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-3.0.15/test/crltest.c:219,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/crltest.c:221,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/crltest.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 224
    functionName: CRL_from_strings
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - PEM_read_bio_X509_CRL
    - BIO_free
    - glue2bio
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *CRL_from_strings(const char **pem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: glue2bio
      Src: /src/openssl-3.0.15/test/crltest.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/crltest.c:236,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/crltest.c:240,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/crltest.c:242,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/crltest.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pem
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: X509_from_strings
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509
    - OPENSSL_free
    - BIO_free
    - glue2bio
    linkageType: ''
    returnType: X509
    signature: X509 *X509_from_strings(const char **pem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/crltest.c:303,1
    - Dst: sk_X509_CRL_new_null
      Src: /src/openssl-3.0.15/test/crltest.c:303,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-3.0.15/test/crltest.c:305,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/test/crltest.c:306,1
    - Dst: sk_X509_CRL_push
      Src: /src/openssl-3.0.15/test/crltest.c:308,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/test/crltest.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - X509_CRL*
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 312
    functionName: make_CRL_stack
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - X509_CRL_up_ref
    - STACK_OF
    - sk_X509_CRL_push
    - sk_X509_CRL_new_null
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *make_CRL_stack(X509_CRL *x1, X509_CRL *x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:316,1
    - Dst: CRL_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:317,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:320,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:321,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/crltest.c:322,1
    - Dst: verify
      Src: /src/openssl-3.0.15/test/crltest.c:322,1
    - Dst: make_CRL_stack
      Src: /src/openssl-3.0.15/test/crltest.c:323,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/crltest.c:325,1
    - Dst: verify
      Src: /src/openssl-3.0.15/test/crltest.c:325,1
    - Dst: make_CRL_stack
      Src: /src/openssl-3.0.15/test/crltest.c:326,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:328,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 331
    functionName: test_basic_crl
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - CRL_from_strings
    - TEST_int_eq
    - X509_CRL_free
    - TEST_ptr
    - verify
    linkageType: ''
    returnType: int
    signature: int test_basic_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/crltest.c:335,1
    - Dst: verify
      Src: /src/openssl-3.0.15/test/crltest.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: test_no_crl
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - verify
    linkageType: ''
    returnType: int
    signature: int test_no_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:342,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:345,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/crltest.c:346,1
    - Dst: verify
      Src: /src/openssl-3.0.15/test/crltest.c:346,1
    - Dst: make_CRL_stack
      Src: /src/openssl-3.0.15/test/crltest.c:347,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: test_bad_issuer_crl
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - CRL_from_strings
    - TEST_int_eq
    - X509_CRL_free
    - TEST_ptr
    - verify
    linkageType: ''
    returnType: int
    signature: int test_bad_issuer_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:356,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:359,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/crltest.c:360,1
    - Dst: verify
      Src: /src/openssl-3.0.15/test/crltest.c:360,1
    - Dst: make_CRL_stack
      Src: /src/openssl-3.0.15/test/crltest.c:361,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: test_known_critical_crl
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - CRL_from_strings
    - TEST_int_eq
    - X509_CRL_free
    - TEST_ptr
    - verify
    linkageType: ''
    returnType: int
    signature: int test_known_critical_crl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:369,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:372,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/crltest.c:373,1
    - Dst: verify
      Src: /src/openssl-3.0.15/test/crltest.c:373,1
    - Dst: make_CRL_stack
      Src: /src/openssl-3.0.15/test/crltest.c:374,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: test_unknown_critical_crl
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - make_CRL_stack
    - CRL_from_strings
    - TEST_int_eq
    - X509_CRL_free
    - TEST_ptr
    - verify
    linkageType: ''
    returnType: int
    signature: int test_unknown_critical_crl(int n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRL_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:383,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:389,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/crltest.c:393,1
    - Dst: X509_CRL_up_ref
      Src: /src/openssl-3.0.15/test/crltest.c:393,1
    - Dst: glue2bio
      Src: /src/openssl-3.0.15/test/crltest.c:399,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:401,1
    - Dst: PEM_read_bio_X509_CRL
      Src: /src/openssl-3.0.15/test/crltest.c:404,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/crltest.c:408,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/crltest.c:409,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/crltest.c:413,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:414,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:418,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:419,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/crltest.c:420,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/crltest.c:428,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/crltest.c:429,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:430,1
    - Dst: X509_CRL_free
      Src: /src/openssl-3.0.15/test/crltest.c:431,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 433
    functionName: test_reuse_crl
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - CRL_from_strings
    - glue2bio
    - PEM_read_bio_X509_CRL
    - BIO_free
    - TEST_ptr_eq
    - X509_CRL_up_ref
    - OPENSSL_free
    - X509_CRL_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_reuse_crl(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:437,1
    - Dst: X509_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:437,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/crltest.c:438,1
    - Dst: X509_from_strings
      Src: /src/openssl-3.0.15/test/crltest.c:438,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/crltest.c:441,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/crltest.c:442,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/crltest.c:443,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/crltest.c:444,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/crltest.c:445,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/crltest.c:445,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/crltest.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 435
    functionDepth: 5
    functionLinenumber: 435
    functionLinenumberEnd: 448
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - X509_from_strings
    - TEST_ptr
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/crltest.c:452,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/crltest.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/crltest.c
    functionUses: 2
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_core_dispatch.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1517,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1520,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1521,1
    - Dst: Poly1305_Final
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1522,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1524,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1525,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1530,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1531,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1532,1
    - Dst: Poly1305_Final
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1533,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1535,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1536,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1544,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1545,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1546,1
    - Dst: Poly1305_Final
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1547,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1549,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1550,1
    - Dst: Poly1305_Init
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1555,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1556,1
    - Dst: Poly1305_Update
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1557,1
    - Dst: Poly1305_Final
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1558,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1560,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1561,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1506
    functionDepth: 2
    functionLinenumber: 1506
    functionLinenumberEnd: 1569
    functionName: test_poly1305
    functionSourceFile: /src/openssl-3.0.15/test/poly1305_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - Poly1305_Final
    - TEST_size_t_eq
    - TEST_info
    - Poly1305_Update
    - Poly1305_Init
    linkageType: ''
    returnType: int
    signature: int test_poly1305(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1573,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/poly1305_internal_test.c:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1575
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/poly1305_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:40,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:41,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:42,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 17
    functionsReached:
    - OSSL_CMP_MSG_free
    - OPENSSL_free
    - OSSL_CMP_CTX_free
    - OSSL_CMP_PKISI_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: SET_OPT_UNPROTECTED_SEND
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_OPT_UNPROTECTED_SEND(ctx, val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:52,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:52,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:56,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:57,1
    - Dst: SET_OPT_UNPROTECTED_SEND
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:58,1
    - Dst: OSSL_CMP_CTX_set1_referenceValue
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:58,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 13
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 1
    functionsReached:
    - SET_OPT_UNPROTECTED_SEND
    - OSSL_CMP_CTX_new
    - tear_down
    - OPENSSL_zalloc
    - OSSL_CMP_CTX_set1_referenceValue
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: CMP_MSG_TEST_FIXTURE
    signature: CMP_MSG_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: EXECUTE_MSG_CREATION_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_MSG_CREATION_TEST(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:90,1
    - Dst: ossl_cmp_certreq_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 16
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: execute_certreq_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_MSG_CREATION_TEST
    - ossl_cmp_certreq_new
    linkageType: ''
    returnType: int
    signature: int execute_certreq_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:97,1
    - Dst: ossl_cmp_error_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 15
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: execute_errormsg_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_error_new
    - EXECUTE_MSG_CREATION_TEST
    linkageType: ''
    returnType: int
    signature: int execute_errormsg_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:104,1
    - Dst: ossl_cmp_rr_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 15
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: execute_rr_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_rr_new
    - EXECUTE_MSG_CREATION_TEST
    linkageType: ''
    returnType: int
    signature: int execute_rr_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:109,1
    - Dst: ossl_cmp_certConf_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 15
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: execute_certconf_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_certConf_new
    - EXECUTE_MSG_CREATION_TEST
    linkageType: ''
    returnType: int
    signature: int execute_certconf_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:116,1
    - Dst: ossl_cmp_genm_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 16
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: execute_genm_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_genm_new
    - EXECUTE_MSG_CREATION_TEST
    linkageType: ''
    returnType: int
    signature: int execute_genm_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:121,1
    - Dst: ossl_cmp_pollReq_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 15
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: execute_pollreq_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_pollReq_new
    - EXECUTE_MSG_CREATION_TEST
    linkageType: ''
    returnType: int
    signature: int execute_pollreq_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXECUTE_MSG_CREATION_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:126,1
    - Dst: ossl_cmp_msg_create
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: execute_pkimessage_create_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_msg_create
    - EXECUTE_MSG_CREATION_TEST
    linkageType: ''
    returnType: int
    signature: int execute_pkimessage_create_test(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:132,1
    - Dst: OSSL_CMP_CTX_set0_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:135,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - OSSL_CMP_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: set1_newPkey
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_up_ref
    - OSSL_CMP_CTX_set0_newPkey
    linkageType: ''
    returnType: int
    signature: int set1_newPkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:147,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:153,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:153,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:154,1
    - Dst: SET_OPT_UNPROTECTED_SEND
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:154,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:155,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:156,1
    - Dst: OSSL_CMP_CTX_set1_secretValue
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:156,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:158,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: test_cmp_create_ir_protection_set
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - SET_OPT_UNPROTECTED_SEND
    - EXECUTE_TEST
    - tear_down
    - TEST_int_eq
    - OSSL_CMP_CTX_set1_secretValue
    - SETUP_TEST_FIXTURE
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_ir_protection_set(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:167,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:171,1
    - Dst: OSSL_CMP_CTX_set1_pkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:171,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:172,1
    - Dst: SET_OPT_UNPROTECTED_SEND
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:172,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:174,1
    - Dst: OSSL_CMP_CTX_set1_cert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:174,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:175,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: test_cmp_create_ir_protection_fails
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SET_OPT_UNPROTECTED_SEND
    - tear_down
    - OSSL_CMP_CTX_set1_pkey
    - SETUP_TEST_FIXTURE
    - TEST_true
    - OSSL_CMP_CTX_set1_cert
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_ir_protection_fails(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:184,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: test_cmp_create_cr_without_key
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_cr_without_key(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:198,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:198,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:199,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: test_cmp_create_cr
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_cr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:212,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:212,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:213,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: test_cmp_create_certreq_with_invalid_bodytype
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_certreq_with_invalid_bodytype(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:225,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:230,1
    - Dst: load_csr_der
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:231,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:232,1
    - Dst: OSSL_CMP_CTX_set1_p10CSR
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:232,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:233,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:236,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: test_cmp_create_p10cr
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_CTX_set1_p10CSR
    - tear_down
    - X509_REQ_free
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - set1_newPkey
    - TEST_true
    - load_csr_der
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_p10cr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:243,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:247,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:247,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:248,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: test_cmp_create_p10cr_null
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_p10cr_null(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:261,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:261,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:262,1
    - Dst: OSSL_CMP_CTX_set1_oldCert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:262,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:263,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 6
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: test_cmp_create_kur
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_CTX_set1_oldCert
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_kur(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:272,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:276,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:276,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:277,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 270
    functionDepth: 6
    functionLinenumber: 270
    functionLinenumberEnd: 282
    functionName: test_cmp_create_kur_without_oldcert
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_kur_without_oldcert(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:286,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:289,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:289,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:290,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:291,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: test_cmp_create_certconf
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - ossl_cmp_ctx_set0_newCert
    - TEST_true
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_certconf(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:300,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:303,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:303,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:304,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:305,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 310
    functionName: test_cmp_create_certconf_badAlg
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - ossl_cmp_ctx_set0_newCert
    - TEST_true
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_certconf_badAlg(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:314,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:317,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:317,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:318,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:319,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 324
    functionName: test_cmp_create_certconf_fail_info_max
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - ossl_cmp_ctx_set0_newCert
    - TEST_true
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_certconf_fail_info_max(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:328,1
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:329,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:334,1
    - Dst: set1_newPkey
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:334,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:335,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 6
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: test_cmp_create_error_msg
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_STATUSINFO_new
    - set1_newPkey
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_error_msg(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:345,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: test_cmp_create_pollreq
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_pollreq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:353,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:355,1
    - Dst: OSSL_CMP_CTX_set1_oldCert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:355,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:356,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: test_cmp_create_rr
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_CTX_set1_oldCert
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_rr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:367,1
    - Dst: OSSL_CMP_ITAV_create
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:369,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:369,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:370,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:371,1
    - Dst: OSSL_CMP_CTX_push0_genm_ITAV
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:371,1
    - Dst: OSSL_CMP_ITAV_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:372,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:373,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 379
    functionName: test_cmp_create_genm
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_CTX_push0_genm_ITAV
    - tear_down
    - OBJ_nid2obj
    - OSSL_CMP_ITAV_free
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_ITAV_create
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_genm(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CERTREPMESSAGE_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:384,1
    - Dst: OSSL_CMP_CERTRESPONSE_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:385,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:391,1
    - Dst: OSSL_CMP_CERTIFIEDKEYPAIR_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:393,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:398,1
    - Dst: sk_OSSL_CMP_CERTRESPONSE_push
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:399,1
    - Dst: ossl_cmp_certrepmessage_get0_certresponse
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:402,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:403,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:405,1
    - Dst: ossl_cmp_certrepmessage_get0_certresponse
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:405,1
    - Dst: ossl_cmp_certresponse_get1_cert
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:407,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:408,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:408,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:413,1
    - Dst: OSSL_CMP_CERTRESPONSE_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:414,1
    - Dst: OSSL_CMP_CERTREPMESSAGE_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:415,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 381
    functionDepth: 8
    functionLinenumber: 381
    functionLinenumberEnd: 417
    functionName: execute_certrep_create
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - ASN1_INTEGER_set
    - X509_free
    - ossl_cmp_certrepmessage_get0_certresponse
    - TEST_int_eq
    - ossl_cmp_certresponse_get1_cert
    - OSSL_CMP_CERTREPMESSAGE_new
    - OSSL_CMP_CERTREPMESSAGE_free
    - sk_OSSL_CMP_CERTRESPONSE_push
    - X509_cmp
    - OSSL_CMP_CERTIFIEDKEYPAIR_new
    - OSSL_CMP_CERTRESPONSE_free
    - TEST_ptr
    - OSSL_CMP_CERTRESPONSE_new
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int execute_certrep_create(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:421,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: test_cmp_create_certrep
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_certrep(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_STATUSINFO_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:429,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:430,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:431,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:439,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:441,1
    - Dst: OSSL_CRMF_CERTID_gen
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:442,1
    - Dst: ossl_cmp_rp_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:443,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:446,1
    - Dst: ossl_cmp_revrepcontent_get_CertId
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:446,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:449,1
    - Dst: ossl_cmp_revrepcontent_get_pkisi
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:449,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:454,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:455,1
    - Dst: OSSL_CRMF_CERTID_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:456,1
    - Dst: OSSL_CMP_PKISI_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:457,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:458,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 427
    functionDepth: 15
    functionLinenumber: 427
    functionLinenumberEnd: 460
    functionName: execute_rp_create
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - OSSL_CRMF_CERTID_free
    - ossl_cmp_revrepcontent_get_CertId
    - ASN1_INTEGER_set
    - X509_NAME_free
    - X509_NAME_add_entry_by_txt
    - OSSL_CMP_MSG_free
    - OSSL_CRMF_CERTID_gen
    - ossl_cmp_rp_new
    - OSSL_CMP_PKISI_free
    - ASN1_INTEGER_new
    - OSSL_CMP_STATUSINFO_new
    - TEST_ptr
    - ASN1_INTEGER_free
    - ossl_cmp_revrepcontent_get_pkisi
    linkageType: ''
    returnType: int
    signature: int execute_rp_create(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:464,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: test_cmp_create_rp
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_rp(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_cmp_pollRep_new
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:474,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:475,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:477,1
    - Dst: ossl_cmp_pollrepcontent_get0_pollrep
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:477,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:480,1
    - Dst: ossl_cmp_pollrepcontent_get0_pollrep
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:480,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:486,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_MSG_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 469
    functionDepth: 15
    functionLinenumber: 469
    functionLinenumberEnd: 488
    functionName: execute_pollrep_create
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_pollRep_new
    - TEST_ptr_null
    - OSSL_CMP_MSG_free
    - ossl_cmp_pollrepcontent_get0_pollrep
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int execute_pollrep_create(CMP_MSG_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:492,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: test_cmp_create_pollrep
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_create_pollrep(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:501,1
    - Dst: load_csr_der
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:506,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:507,1
    - Dst: OSSL_CMP_CTX_set1_p10CSR
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:507,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:508,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:511,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - bodytype
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 537
    functionName: test_cmp_pkimessage_create
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - OSSL_CMP_CTX_set1_p10CSR
    - tear_down
    - X509_REQ_free
    - SETUP_TEST_FIXTURE
    - TEST_true
    - load_csr_der
    linkageType: ''
    returnType: int
    signature: int test_cmp_pkimessage_create(int bodytype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:541,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:542,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:543,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:544,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 2
    functionsReached:
    - EVP_PKEY_free
    - OSSL_PROVIDER_unload
    - X509_free
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:553,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:554,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:558,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:558,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:559,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:559,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:560,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:560,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:561,1
    - Dst: test_arg_libctx
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:565,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:568,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:568,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:569,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:569,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:570,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:570,1
    - Dst: cleanup_tests
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:571,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:576,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:577,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:578,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:579,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:580,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:581,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:582,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:583,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:584,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:585,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:586,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:587,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:588,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:589,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:590,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:591,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:592,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:593,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:594,1
    - Dst: ADD_ALL_TESTS_NOSUBTEST
      Src: /src/openssl-3.0.15/test/cmp_msg_test.c:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 598
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_msg_test.c
    functionUses: 0
    functionsReached:
    - RAND_bytes_ex
    - load_cert_pem
    - ADD_TEST
    - TEST_int_eq
    - cleanup_tests
    - test_arg_libctx
    - TEST_error
    - load_pkey_pem
    - ADD_ALL_TESTS_NOSUBTEST
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sha_test.c:22,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sha_test.c:25,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sha_test.c:26,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sha_test.c:27,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sha_test.c:30,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sha_test.c:31,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sha_test.c:32,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 4
    argNames:
    - input
    - length
    - out
    - "(*md)(const unsigned char *d,\n                                                       size_t
      n,\n                                                       unsigned char *md)"
    argTypes:
    - char*
    - size_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 35
    functionName: test_static_sha_common
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_ptr_eq
    - strlen
    - TEST_ptr_ne
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: "int test_static_sha_common(const char *input, size_t length,\n                                  const
      unsigned char *out,\n                                  unsigned char *(*md)(const
      unsigned char *d,\n                                                       size_t
      n,\n                                                       unsigned char *md))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_static_sha_common
      Src: /src/openssl-3.0.15/test/sha_test.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: test_static_sha1
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - test_static_sha_common
    linkageType: ''
    returnType: int
    signature: int test_static_sha1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_static_sha_common
      Src: /src/openssl-3.0.15/test/sha_test.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: test_static_sha224
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - test_static_sha_common
    linkageType: ''
    returnType: int
    signature: int test_static_sha224(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_static_sha_common
      Src: /src/openssl-3.0.15/test/sha_test.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: test_static_sha256
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - test_static_sha_common
    linkageType: ''
    returnType: int
    signature: int test_static_sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_static_sha_common
      Src: /src/openssl-3.0.15/test/sha_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: test_static_sha384
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - test_static_sha_common
    linkageType: ''
    returnType: int
    signature: int test_static_sha384(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_static_sha_common
      Src: /src/openssl-3.0.15/test/sha_test.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: test_static_sha512
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - test_static_sha_common
    linkageType: ''
    returnType: int
    signature: int test_static_sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sha_test.c:104,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sha_test.c:105,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sha_test.c:106,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sha_test.c:107,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sha_test.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sha_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_self_test.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/bntest.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - key
    argTypes:
    - STANZA*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: findattr
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: char
    signature: char *findattr(STANZA *s, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: glue_strings
      Src: /src/openssl-3.0.15/test/bntest.c:70,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:71,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - bn_strings
    argTypes:
    - BIGNUM**
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: parse_bigBN
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_hex2bn
    - glue_strings
    - OPENSSL_free
    linkageType: ''
    returnType: int
    signature: int parse_bigBN(BIGNUM **out, const char *bn_strings[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: parseBN
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_hex2bn
    linkageType: ''
    returnType: int
    signature: int parseBN(BIGNUM **out, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - BIGNUM**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: parsedecBN
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_dec2bn
    linkageType: ''
    returnType: int
    signature: int parsedecBN(BIGNUM **out, const char *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: findattr
      Src: /src/openssl-3.0.15/test/bntest.c:97,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:98,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:102,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/bntest.c:102,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - attribute
    argTypes:
    - STANZA*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: getBN
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - findattr
    - TEST_error
    - parseBN
    - strlen
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *getBN(STANZA *s, const char *attribute)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:115,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:115,1
    - Dst: TEST_ulong_le
      Src: /src/openssl-3.0.15/test/bntest.c:116,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/test/bntest.c:116,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - out
    - attribute
    argTypes:
    - STANZA*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 7
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: getint
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_ulong_le
    - BN_get_word
    - BN_free
    - TEST_ptr
    - getBN
    linkageType: ''
    returnType: int
    signature: int getint(STANZA *s, int *out, const char *attribute)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/bntest.c:128,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:131,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - expected
    - actual
    argTypes:
    - char*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: equalBN
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - BN_cmp
    - TEST_BN_eq
    linkageType: ''
    returnType: int
    signature: int equalBN(const char *op, const BIGNUM *expected, const BIGNUM *actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: rand_neg
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rand_neg(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:152,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:153,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:153,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:154,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:154,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:155,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:158,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:159,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:159,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:160,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:160,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:161,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:161,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/bntest.c:163,1
    - Dst: BN_swap
      Src: /src/openssl-3.0.15/test/bntest.c:166,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:167,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:168,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/test/bntest.c:173,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:174,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:175,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/test/bntest.c:180,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:181,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:182,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:186,1
    - Dst: BN_swap
      Src: /src/openssl-3.0.15/test/bntest.c:188,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:189,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:191,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:191,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:192,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:192,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/test/bntest.c:196,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:197,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:199,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:199,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:200,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:200,1
    - Dst: BN_consttime_swap
      Src: /src/openssl-3.0.15/test/bntest.c:204,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:205,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:206,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:207,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:207,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:208,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:208,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:213,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:214,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:215,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:216,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 218
    functionName: test_swap
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_bntest_rand
    - BN_num_bits
    - TEST_false
    - BN_swap
    - BN_free
    - BN_copy
    - BN_consttime_swap
    - BN_set_flags
    - BN_get_flags
    - TEST_ptr
    - equalBN
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_swap(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:225,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:225,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:226,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:226,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:227,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:227,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:232,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:232,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:233,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:233,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/bntest.c:234,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/test/bntest.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:235,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/bntest.c:235,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:238,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:238,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:240,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:240,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:241,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:241,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:243,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:243,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:244,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:244,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:245,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:245,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:246,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:251,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:252,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:253,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 255
    functionName: test_sub
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - rand_neg
    - TEST_int_ne
    - BN_bntest_rand
    - BN_sub
    - TEST_BN_eq_zero
    - BN_copy
    - BN_free
    - BN_add
    - TEST_ptr
    - BN_set_negative
    - TEST_true
    - BN_add_word
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: int test_sub(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:263,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:263,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:264,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:264,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:265,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:265,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:266,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:266,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:267,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:267,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:268,1
    - Dst: BN_RECP_CTX_new
      Src: /src/openssl-3.0.15/test/bntest.c:268,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:273,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:273,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:274,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:274,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:275,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/test/bntest.c:275,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:276,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/bntest.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:279,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:279,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:282,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:282,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:283,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:284,1
    - Dst: BN_RECP_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:285,1
    - Dst: BN_div_recp
      Src: /src/openssl-3.0.15/test/bntest.c:285,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:286,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:286,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:287,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:287,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:288,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:288,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:289,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:294,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:295,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:296,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:297,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:298,1
    - Dst: BN_RECP_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:299,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 257
    functionDepth: 6
    functionLinenumber: 257
    functionLinenumberEnd: 301
    functionName: test_div_recip
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_lshift
    - rand_neg
    - BN_div_recp
    - BN_mul
    - BN_RECP_CTX_free
    - BN_bntest_rand
    - BN_RECP_CTX_set
    - TEST_BN_eq_zero
    - BN_free
    - BN_copy
    - BN_add
    - TEST_ptr
    - BN_set_negative
    - TEST_true
    - BN_add_word
    - BN_RECP_CTX_new
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int test_div_recip(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:314,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:318,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:319,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 324
    functionName: set_signed_bn
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_set_word
    - BN_new
    - BN_set_negative
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *set_signed_bn(int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:331,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:331,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:332,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:332,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:333,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:333,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:334,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:337,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:337,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:338,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:339,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:342,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:343,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:344,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 347
    functionName: test_signed_mod_replace_ab
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - TEST_BN_eq
    - BN_free
    - TEST_ptr
    - TEST_true
    - set_signed_bn
    linkageType: ''
    returnType: int
    signature: int test_signed_mod_replace_ab(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:354,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:354,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:355,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:355,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:356,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:356,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:357,1
    - Dst: set_signed_bn
      Src: /src/openssl-3.0.15/test/bntest.c:357,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:360,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:360,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:361,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:362,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:365,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:366,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:367,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:368,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 370
    functionName: test_signed_mod_replace_ba
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - TEST_BN_eq
    - BN_free
    - TEST_ptr
    - TEST_true
    - set_signed_bn
    linkageType: ''
    returnType: int
    signature: int test_signed_mod_replace_ba(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:377,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:377,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:378,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:378,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:379,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:379,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:380,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:380,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:381,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:381,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:384,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:384,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:387,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:387,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:389,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:389,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:390,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:390,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:391,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/bntest.c:391,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:392,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:392,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:393,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:394,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:394,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:395,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:395,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:396,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:401,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:402,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:403,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:404,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:405,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 372
    functionDepth: 6
    functionLinenumber: 372
    functionLinenumberEnd: 407
    functionName: test_mod
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_new
    - rand_neg
    - BN_bntest_rand
    - TEST_BN_eq
    - BN_free
    - BN_add
    - BN_mod
    - TEST_ptr
    - BN_set_negative
    - TEST_true
    - BN_mul
    linkageType: ''
    returnType: int
    signature: int test_mod(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:460,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:460,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:461,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:461,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:462,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:462,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:463,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:463,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:464,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:464,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:465,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:465,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:466,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:466,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:467,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:467,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:468,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/test/bntest.c:468,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:472,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:472,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:474,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:474,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:476,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:478,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:478,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-3.0.15/test/bntest.c:480,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:484,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:489,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:489,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:494,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:494,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:501,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:501,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:502,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:502,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:503,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:503,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:504,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:508,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:508,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:509,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:509,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:511,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:512,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/bntest.c:512,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:513,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:513,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:514,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:514,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:515,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:515,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:516,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:552,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:552,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:553,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:553,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:556,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:557,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/bntest.c:557,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:558,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:558,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:561,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:561,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:562,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:562,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:563,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:567,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:567,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:571,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:571,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:574,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:574,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:575,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:575,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:579,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:579,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:584,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:584,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:589,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:589,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:594,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:595,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:595,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:596,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/bntest.c:596,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:597,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:604,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:604,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:609,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:609,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:614,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:614,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:619,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:620,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:620,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:622,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:623,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:662,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:662,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:663,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:663,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:664,1
    - Dst: parse_bigBN
      Src: /src/openssl-3.0.15/test/bntest.c:664,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:665,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:665,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:666,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/bntest.c:666,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:667,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:672,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:672,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:674,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:675,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:675,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:676,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:684,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/bntest.c:684,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:685,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:685,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:687,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:687,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:688,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:688,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:689,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/bntest.c:689,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:690,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:694,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:694,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:695,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:695,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:696,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/bntest.c:696,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:697,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:703,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:704,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:705,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:706,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:707,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:708,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:709,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:710,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:711,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 453
    functionDepth: 7
    functionLinenumber: 453
    functionLinenumberEnd: 713
    functionName: test_modexp_mont5
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - TEST_BN_eq_one
    - BN_MONT_CTX_set
    - TEST_BN_eq_zero
    - BN_hex2bn
    - BN_mod_exp_simple
    - BN_one
    - TEST_BN_eq
    - BN_from_montgomery
    - BN_bntest_rand
    - TEST_true
    - BN_new
    - BN_mod_exp_mont_consttime
    - BN_free
    - TEST_ptr
    - BN_mod_mul_montgomery
    - BN_mod_exp_mont
    - BN_MONT_CTX_new
    - TEST_false
    - parse_bigBN
    - BN_zero
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_modexp_mont5(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:721,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:721,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:722,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:722,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:723,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:723,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:727,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:727,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:728,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:728,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:728,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:730,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:730,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:731,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:731,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:732,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:732,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:734,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/test/bntest.c:734,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/test/bntest.c:734,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/test/bntest.c:735,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/test/bntest.c:735,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:737,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:737,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:739,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:744,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:745,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:746,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 716
    functionDepth: 6
    functionLinenumber: 716
    functionLinenumberEnd: 748
    functionName: test_gf2m_add
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_new
    - rand_neg
    - BN_GF2m_add
    - TEST_false
    - TEST_BN_eq_zero
    - BN_free
    - BN_copy
    - BN_value_one
    - BN_rand
    - TEST_ptr
    - BN_set_negative
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gf2m_add(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:755,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:755,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:756,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:756,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:757,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:757,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:758,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:758,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:759,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:759,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:760,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:760,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:763,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:763,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:764,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:764,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:768,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:768,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:771,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-3.0.15/test/bntest.c:771,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:772,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:772,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:773,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-3.0.15/test/bntest.c:773,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:775,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:781,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:782,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:783,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:784,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:785,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:786,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 750
    functionDepth: 6
    functionLinenumber: 750
    functionLinenumberEnd: 788
    functionName: test_gf2m_mod
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GF2m_arr2poly
    - BN_GF2m_add
    - BN_bntest_rand
    - TEST_BN_eq_zero
    - BN_free
    - BN_GF2m_mod
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gf2m_mod(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:796,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:796,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:797,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:797,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:798,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:798,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:799,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:799,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:800,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:800,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:801,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:801,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:802,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:802,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:803,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:803,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:804,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:804,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:807,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:807,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:808,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:808,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:812,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:812,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:813,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:813,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:814,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:814,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:817,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:817,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:818,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:818,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:819,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:819,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:820,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:820,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:821,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:821,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:822,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:822,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:824,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:831,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:832,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:833,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:834,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:835,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:836,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:837,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:838,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:839,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 841
    functionName: test_gf2m_mul
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GF2m_mod_mul
    - BN_GF2m_arr2poly
    - BN_GF2m_add
    - BN_bntest_rand
    - TEST_BN_eq_zero
    - BN_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gf2m_mul(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:848,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:848,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:849,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:849,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:850,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:850,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:851,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:851,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:852,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:852,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:855,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:855,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:856,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:856,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:860,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:860,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:863,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openssl-3.0.15/test/bntest.c:863,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:864,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:864,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:865,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:865,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:866,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:866,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:868,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:874,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:875,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:876,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:877,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:878,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 843
    functionDepth: 7
    functionLinenumber: 843
    functionLinenumberEnd: 880
    functionName: test_gf2m_sqr
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GF2m_mod_mul
    - BN_GF2m_arr2poly
    - BN_GF2m_add
    - BN_bntest_rand
    - TEST_BN_eq_zero
    - BN_free
    - BN_copy
    - TEST_ptr
    - TEST_true
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: int test_gf2m_sqr(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:887,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:887,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:888,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:888,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:889,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:889,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:890,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:890,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:891,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:895,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/bntest.c:895,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:897,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:897,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:899,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-3.0.15/test/bntest.c:899,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:902,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:902,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:903,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:903,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:907,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:907,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:910,1
    - Dst: BN_GF2m_mod_inv
      Src: /src/openssl-3.0.15/test/bntest.c:910,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:911,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:911,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-3.0.15/test/bntest.c:913,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:919,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:920,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:921,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:922,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:923,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 882
    functionDepth: 8
    functionLinenumber: 882
    functionLinenumberEnd: 925
    functionName: test_gf2m_modinv
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_new
    - BN_GF2m_mod_mul
    - BN_GF2m_mod_inv
    - BN_GF2m_arr2poly
    - TEST_BN_eq_one
    - BN_bntest_rand
    - TEST_false
    - BN_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modinv(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:933,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:933,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:934,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:934,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:935,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:935,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:936,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:936,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:937,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:937,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:938,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:938,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:939,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:939,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:942,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:942,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:943,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:943,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:947,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:947,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:948,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:948,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:951,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-3.0.15/test/bntest.c:951,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:952,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:952,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:953,1
    - Dst: BN_GF2m_mod_div
      Src: /src/openssl-3.0.15/test/bntest.c:953,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-3.0.15/test/bntest.c:955,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:961,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:962,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:963,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:964,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:965,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:966,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:967,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 927
    functionDepth: 9
    functionLinenumber: 927
    functionLinenumberEnd: 969
    functionName: test_gf2m_moddiv
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GF2m_mod_mul
    - BN_GF2m_arr2poly
    - TEST_BN_eq_one
    - BN_bntest_rand
    - BN_GF2m_mod_div
    - BN_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gf2m_moddiv(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:977,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:977,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:978,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:978,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:979,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:979,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:980,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:980,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:981,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:981,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:982,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:982,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:983,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:983,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:986,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:986,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:987,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:987,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:991,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:991,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:992,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:992,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:993,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:993,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:996,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:996,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:997,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:997,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:998,1
    - Dst: BN_GF2m_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:998,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:999,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:999,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1000,1
    - Dst: BN_GF2m_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:1000,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1001,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:1001,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1003,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1009,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1010,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1011,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1012,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1013,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1014,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1015,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 971
    functionDepth: 8
    functionLinenumber: 971
    functionLinenumberEnd: 1017
    functionName: test_gf2m_modexp
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GF2m_mod_mul
    - BN_GF2m_arr2poly
    - BN_GF2m_add
    - BN_bntest_rand
    - BN_GF2m_mod_exp
    - TEST_BN_eq_zero
    - BN_free
    - BN_add
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modexp(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1025,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1025,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1026,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1026,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1027,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1027,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1028,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1028,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1029,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1029,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1030,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1030,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1031,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1031,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1034,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:1034,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1035,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:1035,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1039,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:1039,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1043,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-3.0.15/test/bntest.c:1043,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1044,1
    - Dst: BN_GF2m_mod_sqrt
      Src: /src/openssl-3.0.15/test/bntest.c:1044,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1045,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openssl-3.0.15/test/bntest.c:1045,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1046,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:1046,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1048,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1054,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1055,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1056,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1057,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1058,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1059,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1060,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1019
    functionDepth: 9
    functionLinenumber: 1019
    functionLinenumberEnd: 1062
    functionName: test_gf2m_modsqrt
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_GF2m_mod_sqrt
    - BN_new
    - BN_GF2m_arr2poly
    - BN_GF2m_add
    - BN_bntest_rand
    - TEST_BN_eq_zero
    - BN_free
    - BN_GF2m_mod
    - TEST_ptr
    - TEST_true
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modsqrt(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1070,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1070,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1071,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1071,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1072,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1072,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1073,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1073,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1074,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1074,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1075,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1075,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1078,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:1078,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1079,1
    - Dst: BN_GF2m_arr2poly
      Src: /src/openssl-3.0.15/test/bntest.c:1079,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1083,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:1083,1
    - Dst: BN_GF2m_mod_solve_quad
      Src: /src/openssl-3.0.15/test/bntest.c:1086,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1089,1
    - Dst: BN_GF2m_mod_sqr
      Src: /src/openssl-3.0.15/test/bntest.c:1089,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1090,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:1090,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1091,1
    - Dst: BN_GF2m_mod
      Src: /src/openssl-3.0.15/test/bntest.c:1091,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1092,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/bntest.c:1092,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1097,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/bntest.c:1102,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bntest.c:1103,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1108,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1109,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1110,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1111,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1112,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1113,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1064
    functionDepth: 8
    functionLinenumber: 1064
    functionLinenumberEnd: 1115
    functionName: test_gf2m_modsolvequad
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_GF2m_mod_solve_quad
    - BN_GF2m_arr2poly
    - TEST_int_ge
    - BN_GF2m_add
    - BN_bntest_rand
    - TEST_BN_eq_zero
    - TEST_info
    - BN_free
    - BN_GF2m_mod
    - TEST_ptr
    - TEST_true
    - BN_GF2m_mod_sqr
    linkageType: ''
    returnType: int
    signature: int test_gf2m_modsolvequad(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1123,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1123,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1124,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1124,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1125,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1125,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1126,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1126,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1139,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:1139,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1141,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:1141,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1144,1
    - Dst: BN_bntest_rand
      Src: /src/openssl-3.0.15/test/bntest.c:1144,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1146,1
    - Dst: rand_neg
      Src: /src/openssl-3.0.15/test/bntest.c:1146,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1149,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1149,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1151,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1152,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/bntest.c:1152,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1154,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/bntest.c:1154,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1157,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1159,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-3.0.15/test/bntest.c:1159,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1161,1
    - Dst: BN_is_word
      Src: /src/openssl-3.0.15/test/bntest.c:1163,1
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1168,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/bntest.c:1168,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1170,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/test/bntest.c:1170,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bntest.c:1171,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/bntest.c:1177,1
    - Dst: BN_kronecker
      Src: /src/openssl-3.0.15/test/bntest.c:1177,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1180,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1180,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1183,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1189,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1190,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1191,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1192,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1118
    functionDepth: 6
    functionLinenumber: 1118
    functionLinenumberEnd: 1194
    functionName: test_kronecker
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - BN_ucmp
    - BN_mod_exp_recp
    - BN_is_negative
    - rand_neg
    - BN_bntest_rand
    - TEST_true
    - BN_sub_word
    - BN_new
    - TEST_int_ge
    - BN_free
    - TEST_info
    - BN_generate_prime_ex
    - TEST_ptr
    - BN_add_word
    - BN_is_word
    - BN_kronecker
    - BN_copy
    - BN_rshift1
    - BN_set_negative
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: int test_kronecker(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1202,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1202,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1203,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1203,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1204,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1204,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1205,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1208,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1208,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1209,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1210,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1210,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1211,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1212,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1212,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1213,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1221,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1222,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1222,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1223,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1224,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1224,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1225,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1225,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1226,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1227,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1227,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1228,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1228,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1229,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1230,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1231,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1231,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1232,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1233,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1233,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1234,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1234,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1235,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1236,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1236,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1237,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1237,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1238,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1247,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1247,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/bntest.c:1247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1248,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/test/bntest.c:1248,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1249,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1250,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/test/bntest.c:1250,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1251,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1252,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/test/bntest.c:1252,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1253,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1261,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1261,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1262,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/test/bntest.c:1262,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1263,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1264,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1264,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1265,1
    - Dst: BN_uadd
      Src: /src/openssl-3.0.15/test/bntest.c:1265,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1266,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1267,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1267,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1268,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/test/bntest.c:1268,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1269,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1270,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1270,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1271,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/test/bntest.c:1271,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1272,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1273,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1273,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1274,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/test/bntest.c:1274,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1275,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1276,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1276,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1277,1
    - Dst: BN_usub
      Src: /src/openssl-3.0.15/test/bntest.c:1277,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1278,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/test/bntest.c:1285,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1286,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1287,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1287,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1288,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/bntest.c:1288,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1289,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1290,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1290,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1291,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/bntest.c:1291,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1292,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1298,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1299,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1300,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1301,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1196
    functionDepth: 7
    functionLinenumber: 1196
    functionLinenumberEnd: 1303
    functionName: file_sum
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_usub
    - BN_sub_word
    - BN_get_word
    - BN_new
    - BN_is_negative
    - BN_free
    - BN_copy
    - BN_add_word
    - BN_add
    - BN_uadd
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    - BN_cmp
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int file_sum(STANZA *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1311,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1312,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1312,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1313,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1313,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1314,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1314,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1315,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1315,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1316,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1316,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1319,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1321,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:1321,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1322,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1322,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1323,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1324,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:1324,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1326,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:1326,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1327,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1328,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1329,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/test/bntest.c:1329,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1331,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/bntest.c:1331,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1332,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1333,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/bntest.c:1333,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1338,1
    - Dst: BN_set_bit
      Src: /src/openssl-3.0.15/test/bntest.c:1338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1339,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:1339,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1340,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1341,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/bntest.c:1341,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1342,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1347,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1348,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1349,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1350,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1351,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1352,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1305
    functionDepth: 7
    functionLinenumber: 1305
    functionLinenumberEnd: 1355
    functionName: file_lshift1
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_new
    - BN_mul
    - BN_free
    - BN_zero
    - BN_lshift1
    - BN_add
    - BN_rshift1
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - getBN
    - equalBN
    - BN_set_bit
    linkageType: ''
    returnType: int
    signature: int file_lshift1(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1362,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1362,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1363,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1363,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1364,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1364,1
    - Dst: getint
      Src: /src/openssl-3.0.15/test/bntest.c:1365,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1368,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/test/bntest.c:1368,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1369,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1370,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/test/bntest.c:1370,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1371,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1376,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1377,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1378,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1357
    functionDepth: 8
    functionLinenumber: 1357
    functionLinenumberEnd: 1380
    functionName: file_lshift
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_lshift
    - getBN
    - BN_free
    - BN_rshift
    - TEST_ptr
    - equalBN
    - TEST_true
    - getint
    linkageType: ''
    returnType: int
    signature: int file_lshift(STANZA *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1387,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1387,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1388,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1388,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1389,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1389,1
    - Dst: getint
      Src: /src/openssl-3.0.15/test/bntest.c:1390,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1393,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/test/bntest.c:1393,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1394,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1399,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/bntest.c:1399,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1400,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1406,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1407,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1408,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1382
    functionDepth: 8
    functionLinenumber: 1382
    functionLinenumberEnd: 1410
    functionName: file_rshift
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - getBN
    - BN_free
    - BN_rshift
    - TEST_ptr
    - equalBN
    - TEST_true
    - getint
    - BN_rshift1
    linkageType: ''
    returnType: int
    signature: int file_rshift(STANZA *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1418,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1418,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1419,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1419,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1420,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1420,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1421,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1421,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1422,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1422,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1425,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1426,1
    - Dst: BN_sqr
      Src: /src/openssl-3.0.15/test/bntest.c:1426,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1427,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1428,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:1428,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1429,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1430,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:1430,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1431,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1432,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1436,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1437,1
    - Dst: BN_sqrt
      Src: /src/openssl-3.0.15/test/bntest.c:1437,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1438,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1442,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1443,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1443,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1444,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1444,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1446,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1448,1
    - Dst: BN_sqrt
      Src: /src/openssl-3.0.15/test/bntest.c:1448,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:1450,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1452,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1453,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:1453,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1455,1
    - Dst: BN_sqrt
      Src: /src/openssl-3.0.15/test/bntest.c:1455,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:1457,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1463,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1464,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1465,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1466,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1467,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1468,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1412
    functionDepth: 7
    functionLinenumber: 1412
    functionLinenumberEnd: 1470
    functionName: file_square
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_new
    - TEST_int_eq
    - BN_mul
    - ERR_clear_error
    - BN_sqrt
    - TEST_BN_eq_zero
    - BN_free
    - BN_zero
    - BN_copy
    - BN_add
    - BN_set_negative
    - BN_value_one
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    - BN_sqr
    linkageType: ''
    returnType: int
    signature: int file_square(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1478,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1478,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1479,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1479,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1480,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1480,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1481,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1481,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1482,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1482,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1483,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1483,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1486,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1488,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:1488,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1489,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1490,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:1490,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1491,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1492,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1493,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:1493,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1494,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1495,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1500,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1501,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1502,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1503,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1504,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1505,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1472
    functionDepth: 7
    functionLinenumber: 1472
    functionLinenumberEnd: 1507
    functionName: file_product
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_new
    - BN_mul
    - BN_free
    - BN_zero
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_product(STANZA *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1516,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1516,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1517,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1517,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1518,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1518,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1519,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1519,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1520,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1520,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1521,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1521,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1522,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1522,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1525,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:1525,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1526,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1527,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1528,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:1528,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1529,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1529,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1530,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/test/bntest.c:1537,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1538,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/test/bntest.c:1539,1
    - Dst: assert
      Src: /src/openssl-3.0.15/test/bntest.c:1541,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1542,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1542,1
    - Dst: BN_div_word
      Src: /src/openssl-3.0.15/test/bntest.c:1544,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:1547,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:1551,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1555,1
    - Dst: BN_mod_word
      Src: /src/openssl-3.0.15/test/bntest.c:1558,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:1561,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bntest.c:1565,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1572,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1573,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:1573,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1574,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1575,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/bntest.c:1575,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1576,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/test/bntest.c:1576,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1577,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1583,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1584,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1585,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1586,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1587,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1588,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1589,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 47
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts:
    - condition: (remainder_word != (BN_ULONG)-1)
      pos:
        line_end: 1540
        line_start: 1540
        source_file: /src/openssl-3.0.15/test/bntest.c
    constantsTouched: []
    func_position:
      end: 1591
      start: 1509
    functionDepth: 7
    functionLinenumber: 1509
    functionLinenumberEnd: 1591
    functionName: file_quotient
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_get_word
    - BN_new
    - assert
    - BN_mul
    - BN_is_negative
    - BN_div_word
    - BN_mod_word
    - BN_free
    - TEST_error
    - BN_copy
    - BN_add
    - BN_nnmod
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_quotient(STANZA *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1598,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1598,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1599,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1599,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1600,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1600,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1601,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1601,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1602,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1602,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1605,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:1605,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1606,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/test/bntest.c:1609,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/test/bntest.c:1611,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1612,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1613,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1616,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:1616,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1617,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/test/bntest.c:1617,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1618,1
    - Dst: BN_nnmod
      Src: /src/openssl-3.0.15/test/bntest.c:1618,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1619,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:1619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1620,1
    - Dst: BN_to_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:1620,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1621,1
    - Dst: BN_mod_mul_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:1621,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1623,1
    - Dst: BN_from_montgomery
      Src: /src/openssl-3.0.15/test/bntest.c:1623,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1624,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:1628,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1629,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1630,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1637,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1638,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1639,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1640,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1641,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1593
    functionDepth: 7
    functionLinenumber: 1593
    functionLinenumberEnd: 1643
    functionName: file_modmul
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_mod_mul_montgomery
    - BN_new
    - BN_mod_mul
    - BN_MONT_CTX_set
    - BN_MONT_CTX_new
    - BN_free
    - BN_from_montgomery
    - BN_nnmod
    - BN_MONT_CTX_free
    - BN_to_montgomery
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_modmul(STANZA *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1651,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1651,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1652,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1652,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1653,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1653,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1654,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1654,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1655,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1655,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1656,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1656,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1659,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:1659,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1660,1
    - Dst: BN_is_odd
      Src: /src/openssl-3.0.15/test/bntest.c:1663,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1664,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/bntest.c:1664,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1665,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1666,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:1666,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1668,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:1673,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:1674,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/bntest.c:1675,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1682,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:1682,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1683,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:1683,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1684,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1689,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1690,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1691,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1692,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1693,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1694,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1695,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1696,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1645
    functionDepth: 7
    functionLinenumber: 1645
    functionLinenumberEnd: 1698
    functionName: file_modexp
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_is_odd
    - BN_new
    - BN_mul
    - BN_mod_exp_mont
    - BN_mod_exp_mont_consttime
    - TEST_BN_eq
    - BN_free
    - BN_hex2bn
    - TEST_ptr
    - BN_mod_exp
    - TEST_true
    - getBN
    - equalBN
    linkageType: ''
    returnType: int
    signature: int file_modexp(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1705,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1705,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1706,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1706,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1707,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1707,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1708,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1708,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1711,1
    - Dst: BN_exp
      Src: /src/openssl-3.0.15/test/bntest.c:1711,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1712,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1717,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1718,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1719,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1700
    functionDepth: 7
    functionLinenumber: 1700
    functionLinenumberEnd: 1722
    functionName: file_exp
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_exp
    - BN_free
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_exp(STANZA *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1729,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1729,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1730,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1730,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1731,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1731,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1732,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1732,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1733,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1733,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:1736,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/bntest.c:1738,1
    - Dst: BN_mod_sqrt
      Src: /src/openssl-3.0.15/test/bntest.c:1738,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1746,1
    - Dst: BN_mod_sqrt
      Src: /src/openssl-3.0.15/test/bntest.c:1746,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1747,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/bntest.c:1747,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/bntest.c:1751,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1752,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1757,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1758,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1759,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1760,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1761,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1724
    functionDepth: 7
    functionLinenumber: 1724
    functionLinenumberEnd: 1763
    functionName: file_modsqrt
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - BN_mod_sqrt
    - BN_new
    - BN_is_negative
    - BN_free
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    - BN_cmp
    - BN_sub
    linkageType: ''
    returnType: int
    signature: int file_modsqrt(STANZA *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1770,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1770,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1771,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1771,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1772,1
    - Dst: getBN
      Src: /src/openssl-3.0.15/test/bntest.c:1772,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1773,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1773,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1776,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/test/bntest.c:1776,1
    - Dst: equalBN
      Src: /src/openssl-3.0.15/test/bntest.c:1777,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1782,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1783,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1784,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1785,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1765
    functionDepth: 7
    functionLinenumber: 1765
    functionLinenumberEnd: 1787
    functionName: file_gcd
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_gcd
    - BN_free
    - TEST_ptr
    - equalBN
    - TEST_true
    - getBN
    linkageType: ''
    returnType: int
    signature: int file_gcd(STANZA *s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1797,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1797,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1799,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1799,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bntest.c:1801,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1802,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1802,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bntest.c:1804,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1805,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1812,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:1812,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1814,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/test/bntest.c:1814,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1815,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/test/bntest.c:1815,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1818,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1818,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1821,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1821,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1824,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1824,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1825,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1828,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1828,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1829,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1830,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1833,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/bntest.c:1833,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1834,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1836,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1843,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1789
    functionDepth: 6
    functionLinenumber: 1789
    functionLinenumberEnd: 1845
    functionName: test_bn2padded
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_true
    - BN_new
    - TEST_int_eq
    - BN_bn2bin
    - memset
    - BN_free
    - BN_rand
    - BN_num_bytes
    - TEST_ptr
    - BN_bn2binpad
    linkageType: ''
    returnType: int
    signature: int test_bn2padded(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1852,1
    - Dst: parsedecBN
      Src: /src/openssl-3.0.15/test/bntest.c:1852,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1853,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1854,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1855,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1856,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1857,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1859,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1862,1
    - Dst: parsedecBN
      Src: /src/openssl-3.0.15/test/bntest.c:1862,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1863,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1864,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1865,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1866,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1867,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1869,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1872,1
    - Dst: parsedecBN
      Src: /src/openssl-3.0.15/test/bntest.c:1872,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1873,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1874,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1875,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1876,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1877,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1879,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1882,1
    - Dst: parsedecBN
      Src: /src/openssl-3.0.15/test/bntest.c:1882,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1883,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1884,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1885,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1886,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-3.0.15/test/bntest.c:1887,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-3.0.15/test/bntest.c:1888,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1890,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1893,1
    - Dst: parsedecBN
      Src: /src/openssl-3.0.15/test/bntest.c:1893,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1894,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1895,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1896,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1897,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1899,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1902,1
    - Dst: parsedecBN
      Src: /src/openssl-3.0.15/test/bntest.c:1902,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1903,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1904,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1905,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1906,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1907,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1912,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1847
    functionDepth: 7
    functionLinenumber: 1847
    functionLinenumberEnd: 1914
    functionName: test_dec2bn
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_lt_zero
    - TEST_BN_odd
    - TEST_BN_gt_zero
    - TEST_BN_le_zero
    - TEST_int_eq
    - TEST_BN_eq_one
    - TEST_BN_even
    - TEST_BN_ne_zero
    - TEST_BN_eq_word
    - TEST_BN_eq_zero
    - BN_free
    - TEST_BN_abs_eq_word
    - TEST_BN_ge_zero
    - parsedecBN
    linkageType: ''
    returnType: int
    signature: int test_dec2bn(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1921,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:1921,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1922,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1923,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1924,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1926,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1929,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:1929,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1930,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1931,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1932,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1933,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1934,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1936,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1939,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:1939,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1940,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1941,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1942,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1943,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1944,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1946,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1949,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:1949,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1950,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1951,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1952,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1953,1
    - Dst: TEST_BN_odd
      Src: /src/openssl-3.0.15/test/bntest.c:1954,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1956,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1959,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:1959,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1960,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1961,1
    - Dst: TEST_BN_le_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1962,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1963,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1965,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:1968,1
    - Dst: parseBN
      Src: /src/openssl-3.0.15/test/bntest.c:1968,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1969,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1970,1
    - Dst: TEST_BN_gt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1971,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1972,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/bntest.c:1973,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:1978,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1916
    functionDepth: 6
    functionLinenumber: 1916
    functionLinenumberEnd: 1980
    functionName: test_hex2bn
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_lt_zero
    - TEST_BN_odd
    - TEST_BN_gt_zero
    - TEST_BN_le_zero
    - TEST_int_eq
    - parseBN
    - TEST_BN_even
    - TEST_BN_ne_zero
    - TEST_BN_eq_zero
    - BN_free
    - TEST_BN_eq_word
    - TEST_BN_abs_eq_word
    - TEST_BN_ge_zero
    linkageType: ''
    returnType: int
    signature: int test_hex2bn(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:1987,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:1987,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1990,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:1990,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1991,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1992,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:1995,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:1995,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:1996,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:1997,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2000,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2000,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:2001,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2002,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2005,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2005,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:2006,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2007,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2010,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2010,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:2011,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2012,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2015,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2015,1
    - Dst: TEST_BN_abs_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:2016,1
    - Dst: TEST_BN_lt_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2017,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2020,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2020,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2021,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2022,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2025,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2025,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:2026,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2027,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2032,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1982
    functionDepth: 7
    functionLinenumber: 1982
    functionLinenumberEnd: 2034
    functionName: test_asc2bn
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_BN_lt_zero
    - BN_new
    - TEST_BN_eq_zero
    - TEST_BN_eq_word
    - BN_free
    - TEST_BN_abs_eq_word
    - TEST_ptr
    - TEST_true
    - TEST_BN_ge_zero
    - BN_asc2bn
    linkageType: ''
    returnType: int
    signature: int test_asc2bn(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2054,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2054,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2055,1
    - Dst: BN_asc2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2055,1
    - Dst: BN_bn2mpi
      Src: /src/openssl-3.0.15/test/bntest.c:2057,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/bntest.c:2058,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2061,1
    - Dst: BN_bn2mpi
      Src: /src/openssl-3.0.15/test/bntest.c:2061,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2062,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2065,1
    - Dst: BN_mpi2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2065,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2068,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2069,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2072,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2076,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2045
    functionDepth: 7
    functionLinenumber: 2045
    functionLinenumberEnd: 2078
    functionName: test_mpi
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_size_t_le
    - BN_mpi2bn
    - BN_new
    - TEST_size_t_eq
    - TEST_BN_eq
    - BN_free
    - BN_bn2mpi
    - TEST_ptr
    - TEST_true
    - BN_asc2bn
    linkageType: ''
    returnType: int
    signature: int test_mpi(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2085,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2085,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2089,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:2089,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2090,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:2090,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2091,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:2091,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-3.0.15/test/bntest.c:2092,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2093,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:2093,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2094,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:2094,1
    - Dst: TEST_BN_eq_one
      Src: /src/openssl-3.0.15/test/bntest.c:2095,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2096,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/bntest.c:2096,1
    - Dst: TEST_BN_eq_word
      Src: /src/openssl-3.0.15/test/bntest.c:2097,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2102,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2080
    functionDepth: 6
    functionLinenumber: 2080
    functionLinenumberEnd: 2104
    functionName: test_rand
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 14
    functionsReached:
    - BN_new
    - TEST_BN_eq_one
    - TEST_false
    - TEST_BN_eq_word
    - BN_free
    - BN_rand
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_rand(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2140,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/bntest.c:2140,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2141,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2141,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2142,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2142,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2143,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2143,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2146,1
    - Dst: BN_rand_range
      Src: /src/openssl-3.0.15/test/bntest.c:2146,1
    - Dst: TEST_uint_lt
      Src: /src/openssl-3.0.15/test/bntest.c:2147,1
    - Dst: BN_get_word
      Src: /src/openssl-3.0.15/test/bntest.c:2147,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bntest.c:2159,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/bntest.c:2160,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2167,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2168,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:2169,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2128
    functionDepth: 7
    functionLinenumber: 2128
    functionLinenumberEnd: 2171
    functionName: test_rand_range_single
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - BN_get_word
    - BN_new
    - BN_rand_range
    - OPENSSL_zalloc
    - BN_free
    - TEST_info
    - OPENSSL_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - TEST_uint_lt
    linkageType: ''
    returnType: int
    signature: int test_rand_range_single(size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:2178,1
    - Dst: test_rand_range_single
      Src: /src/openssl-3.0.15/test/bntest.c:2179,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/bntest.c:2180,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/bntest.c:2182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2173
    functionDepth: 8
    functionLinenumber: 2173
    functionLinenumberEnd: 2184
    functionName: test_rand_range
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_int_ge
    - TEST_note
    - test_rand_range_single
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_rand_range(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2192,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2192,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2193,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2193,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2194,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2194,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2195,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2195,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2199,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2199,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:2201,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2202,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2203,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/bntest.c:2203,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2205,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2206,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2210,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2210,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2211,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2211,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2214,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2215,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2218,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2219,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2219,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:2221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2222,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:2222,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2223,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2224,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2228,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2228,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2229,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:2229,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2230,1
    - Dst: TEST_BN_ge_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2231,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2233,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2234,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2239,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:2240,1
    - Dst: BN_is_negative
      Src: /src/openssl-3.0.15/test/bntest.c:2241,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2246,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2247,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2248,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2249,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2250,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2251,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2186
    functionDepth: 3
    functionLinenumber: 2186
    functionLinenumberEnd: 2253
    functionName: test_negzero
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_new
    - BN_is_negative
    - TEST_BN_eq_zero
    - BN_free
    - BN_zero
    - BN_set_flags
    - BN_set_negative
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_mul
    - TEST_BN_ge_zero
    linkageType: ''
    returnType: int
    signature: int test_negzero(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2261,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2261,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2262,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2262,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2263,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2263,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2264,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/test/bntest.c:2264,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2266,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2268,1
    - Dst: BN_div
      Src: /src/openssl-3.0.15/test/bntest.c:2268,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2268,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2270,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2272,1
    - Dst: BN_mod_mul
      Src: /src/openssl-3.0.15/test/bntest.c:2272,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2272,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2272,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2274,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2276,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:2276,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2276,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2276,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2278,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2280,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/bntest.c:2280,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2280,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2280,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2283,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2285,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:2285,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2285,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2285,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2288,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2290,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:2290,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2292,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2295,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2295,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2298,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/bntest.c:2298,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2300,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2302,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/bntest.c:2302,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2302,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2302,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2305,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2307,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:2307,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2307,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2307,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/bntest.c:2310,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2314,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2315,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2316,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:2317,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2255
    functionDepth: 7
    functionLinenumber: 2255
    functionLinenumberEnd: 2319
    functionName: test_badmod
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_div
    - BN_new
    - BN_mod_mul
    - BN_mod_exp_mont
    - BN_MONT_CTX_new
    - TEST_false
    - ERR_clear_error
    - BN_mod_exp_mont_consttime
    - BN_MONT_CTX_set
    - BN_free
    - BN_zero
    - BN_value_one
    - BN_set_word
    - BN_MONT_CTX_free
    - TEST_ptr
    - BN_mod_exp
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_badmod(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2326,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2326,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2327,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2327,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2328,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2328,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2332,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:2332,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2332,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2333,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2334,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/bntest.c:2334,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2334,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2336,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2337,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:2337,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2338,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2340,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2341,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-3.0.15/test/bntest.c:2341,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/bntest.c:2342,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2343,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2348,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2349,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2321
    functionDepth: 6
    functionLinenumber: 2321
    functionLinenumberEnd: 2352
    functionName: test_expmodzero
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mod_exp_mont
    - BN_mod_exp_mont_consttime
    - TEST_BN_eq_zero
    - BN_mod_exp_mont_word
    - BN_zero
    - BN_value_one
    - BN_free
    - TEST_ptr
    - BN_mod_exp
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_expmodzero(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2357,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2358,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2359,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2360,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2362,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2363,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2364,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2365,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2366,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2367,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2367,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2368,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2368,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2369,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2369,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2374,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:2374,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2375,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2376,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/bntest.c:2376,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2377,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2378,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/bntest.c:2378,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2379,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2380,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-3.0.15/test/bntest.c:2380,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2381,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2382,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/bntest.c:2382,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2383,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2384,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-3.0.15/test/bntest.c:2384,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2385,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/bntest.c:2389,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2394,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2395,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2396,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2397,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2354
    functionDepth: 6
    functionLinenumber: 2354
    functionLinenumberEnd: 2399
    functionName: test_expmodone
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mod_exp
    - BN_mod_exp_mont
    - BN_mod_exp_mont_consttime
    - TEST_BN_eq_zero
    - BN_mod_exp_mont_word
    - BN_free
    - BN_set_negative
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_mod_exp_recp
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int test_expmodone(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2406,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2406,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2410,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:2410,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2414,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:2414,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2416,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/bntest.c:2416,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - kBits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2401
    functionDepth: 4
    functionLinenumber: 2401
    functionLinenumberEnd: 2424
    functionName: test_smallprime
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_int_eq
    - TEST_false
    - BN_num_bits
    - BN_free
    - BN_generate_prime_ex
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_smallprime(int kBits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2431,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2431,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2435,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:2435,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2439,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:2439,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2441,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/bntest.c:2441,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2447,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - kBits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2426
    functionDepth: 4
    functionLinenumber: 2426
    functionLinenumberEnd: 2449
    functionName: test_smallsafeprime
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_int_eq
    - TEST_false
    - BN_num_bits
    - BN_free
    - BN_generate_prime_ex
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_smallsafeprime(int kBits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2459,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2459,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2463,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2463,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2464,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/bntest.c:2464,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2453
    functionDepth: 5
    functionLinenumber: 2453
    functionLinenumberEnd: 2473
    functionName: test_is_prime
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_int_eq
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int test_is_prime(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2483,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2483,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2487,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bntest.c:2487,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2488,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/bntest.c:2488,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2477
    functionDepth: 5
    functionLinenumber: 2477
    functionLinenumberEnd: 2496
    functionName: test_not_prime
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_false
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int test_not_prime(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/bntest.c:2504,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:2505,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2506,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/bntest.c:2506,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2509,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/bntest.c:2514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2498
    functionDepth: 2
    functionLinenumber: 2498
    functionLinenumberEnd: 2516
    functionName: test_ctx_set_ct_flag
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_CTX_start
    - BN_CTX_end
    - BN_set_flags
    - TEST_ptr
    - BN_CTX_get
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_ctx_set_ct_flag(BN_CTX *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/bntest.c:2524,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:2525,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2526,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/bntest.c:2526,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bntest.c:2528,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2528,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/bntest.c:2534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2518
    functionDepth: 2
    functionLinenumber: 2518
    functionLinenumberEnd: 2536
    functionName: test_ctx_check_ct_flag
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_false
    - BN_CTX_start
    - BN_CTX_end
    - BN_get_flags
    - TEST_ptr
    - BN_CTX_get
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_ctx_check_ct_flag(BN_CTX *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2566,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/bntest.c:2566,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2567,1
    - Dst: BN_CTX_secure_new
      Src: /src/openssl-3.0.15/test/bntest.c:2567,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2572,1
    - Dst: test_ctx_set_ct_flag
      Src: /src/openssl-3.0.15/test/bntest.c:2572,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2573,1
    - Dst: test_ctx_check_ct_flag
      Src: /src/openssl-3.0.15/test/bntest.c:2573,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:2579,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:2580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2538
    functionDepth: 4
    functionLinenumber: 2538
    functionLinenumberEnd: 2582
    functionName: test_ctx_consttime_flag
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_CTX_secure_new
    - test_ctx_set_ct_flag
    - BN_CTX_new
    - TEST_ptr
    - TEST_true
    - BN_CTX_free
    - test_ctx_check_ct_flag
    linkageType: ''
    returnType: int
    signature: int test_ctx_consttime_flag(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2589,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2589,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2590,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2590,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2591,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2591,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2594,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:2594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2597,1
    - Dst: BN_generate_prime_ex
      Src: /src/openssl-3.0.15/test/bntest.c:2597,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2599,1
    - Dst: BN_gcd
      Src: /src/openssl-3.0.15/test/bntest.c:2599,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2600,1
    - Dst: BN_is_one
      Src: /src/openssl-3.0.15/test/bntest.c:2600,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2606,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2607,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2608,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2584
    functionDepth: 4
    functionLinenumber: 2584
    functionLinenumberEnd: 2610
    functionName: test_gcd_prime
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_is_one
    - BN_gcd
    - BN_free
    - BN_generate_prime_ex
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_gcd_prime(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2830,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2830,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2831,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2831,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2832,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2832,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2833,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2833,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2836,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:2836,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2839,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/test/bntest.c:2839,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2842,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/bntest.c:2842,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/bntest.c:2842,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:2848,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2849,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2850,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2851,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2852,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2822
    functionDepth: 6
    functionLinenumber: 2822
    functionLinenumberEnd: 2854
    functionName: test_mod_exp
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BN_dec2bn
    - BN_new
    - TEST_int_eq
    - BN_free
    - OPENSSL_free
    - strlen
    - TEST_ptr
    - BN_mod_exp
    - TEST_true
    - BN_bn2dec
    linkageType: ''
    returnType: int
    signature: int test_mod_exp(int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2864,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2864,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2865,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2865,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2866,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2866,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2867,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2867,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2870,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2871,1
    - Dst: BN_set_flags
      Src: /src/openssl-3.0.15/test/bntest.c:2872,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2874,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/bntest.c:2874,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2877,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/test/bntest.c:2877,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2880,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/bntest.c:2880,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/bntest.c:2880,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:2886,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2887,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2888,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2889,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2890,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2856
    functionDepth: 6
    functionLinenumber: 2856
    functionLinenumberEnd: 2892
    functionName: test_mod_exp_consttime
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BN_dec2bn
    - BN_new
    - TEST_int_eq
    - BN_free
    - OPENSSL_free
    - BN_set_flags
    - strlen
    - TEST_ptr
    - BN_mod_exp
    - TEST_true
    - BN_bn2dec
    linkageType: ''
    returnType: int
    signature: int test_mod_exp_consttime(int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2905,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2905,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2906,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2906,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2907,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2907,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2908,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2908,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2909,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2909,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2910,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2910,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2913,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/bntest.c:2913,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2914,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/bntest.c:2914,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2915,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/bntest.c:2915,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2916,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/bntest.c:2916,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/bntest.c:2919,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2922,1
    - Dst: BN_mod_exp2_mont
      Src: /src/openssl-3.0.15/test/bntest.c:2922,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2929,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2930,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2931,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2932,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2933,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2934,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2898
    functionDepth: 4
    functionLinenumber: 2898
    functionLinenumberEnd: 2936
    functionName: test_mod_exp2_mont
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_one
    - BN_new
    - TEST_int_eq
    - BN_free
    - BN_zero
    - TEST_ptr
    - TEST_true
    - BN_mod_exp2_mont
    linkageType: ''
    returnType: int
    signature: int test_mod_exp2_mont(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2946,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2946,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2948,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2948,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2950,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2950,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2952,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/test/bntest.c:2952,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/bntest.c:2954,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/test/bntest.c:2954,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2956,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/bntest.c:2956,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/bntest.c:2960,1
    - Dst: BN_mod_inverse
      Src: /src/openssl-3.0.15/test/bntest.c:2960,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2966,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2967,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:2968,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:2969,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2938
    functionDepth: 6
    functionLinenumber: 2938
    functionLinenumberEnd: 2971
    functionName: test_mod_inverse
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - BN_new
    - TEST_int_eq
    - BN_mod_inverse
    - TEST_ptr
    - BN_free
    - TEST_ptr_eq
    - OPENSSL_free
    - strcmp
    - TEST_ptr_ne
    - BN_dec2bn
    - TEST_true
    - BN_bn2dec
    linkageType: ''
    returnType: int
    signature: int test_mod_inverse(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2982,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2982,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2984,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2984,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bntest.c:2986,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/bntest.c:2986,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:2988,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bntest.c:2988,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2991,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/bntest.c:2994,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/test/bntest.c:2994,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bntest.c:2996,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:2999,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/bntest.c:3002,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:3005,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/bntest.c:3008,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/test/bntest.c:3008,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bntest.c:3010,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:3013,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:3018,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/bntest.c:3018,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bntest.c:3021,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-3.0.15/test/bntest.c:3021,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/bntest.c:3023,1
    - Dst: BN_bn2dec
      Src: /src/openssl-3.0.15/test/bntest.c:3023,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bntest.c:3025,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:3032,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:3033,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:3034,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bntest.c:3035,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:3036,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 60
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 2973
    functionDepth: 6
    functionLinenumber: 2973
    functionLinenumberEnd: 3038
    functionName: test_mod_exp_alias
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_int_eq
    - TEST_ptr
    - BN_free
    - OPENSSL_free
    - BN_copy
    - TEST_str_eq
    - TEST_ptr_ne
    - BN_dec2bn
    - TEST_true
    - BN_bn2dec
    - BN_mod_exp_recp
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int test_mod_exp_alias(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3056,1
    - Dst: findattr
      Src: /src/openssl-3.0.15/test/bntest.c:3060,1
    - Dst: FILETEST*::func
      Src: /src/openssl-3.0.15/test/bntest.c:3061,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bntest.c:3062,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bntest.c:3069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3040
    functionDepth: 4
    functionLinenumber: 3040
    functionLinenumberEnd: 3071
    functionName: file_test_run
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - findattr
    - TEST_info
    - FILETEST*::func
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int file_test_run(STANZA *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/bntest.c:3076,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:3079,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/bntest.c:3079,1
    - Dst: test_start_file
      Src: /src/openssl-3.0.15/test/bntest.c:3081,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:3082,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bntest.c:3087,1
    - Dst: test_readstanza
      Src: /src/openssl-3.0.15/test/bntest.c:3087,1
    - Dst: file_test_run
      Src: /src/openssl-3.0.15/test/bntest.c:3090,1
    - Dst: test_clearstanza
      Src: /src/openssl-3.0.15/test/bntest.c:3093,1
    - Dst: test_end_file
      Src: /src/openssl-3.0.15/test/bntest.c:3095,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bntest.c:3097,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3073
    functionDepth: 5
    functionLinenumber: 3073
    functionLinenumberEnd: 3100
    functionName: run_file_tests
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - test_end_file
    - BIO_eof
    - OPENSSL_zalloc
    - test_clearstanza
    - OPENSSL_free
    - test_readstanza
    - test_start_file
    - file_test_run
    - TEST_ptr
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int run_file_tests(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
      Src: /src/openssl-3.0.15/test/bntest.c:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3109
    functionDepth: 1
    functionLinenumber: 3109
    functionLinenumberEnd: 3119
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/bntest.c:3126,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/bntest.c:3138,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bntest.c:3140,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/bntest.c:3140,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3144,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3145,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3146,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3146,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3147,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3147,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3148,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3149,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3150,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3151,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3152,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3153,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3154,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3155,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3156,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3157,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3158,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3158,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3159,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3160,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3161,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3162,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3163,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3164,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3165,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3166,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3168,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3169,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3170,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3171,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3172,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3173,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3174,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3175,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3176,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3178,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3178,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3179,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3179,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3180,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3181,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3181,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3182,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bntest.c:3182,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3183,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bntest.c:3185,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bntest.c:3187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 3121
    functionDepth: 3
    functionLinenumber: 3121
    functionLinenumberEnd: 3190
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_next
    - test_get_argument_count
    - BN_CTX_new
    - ADD_ALL_TESTS
    - TEST_ptr
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/bntest.c:3194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3192
    functionDepth: 2
    functionLinenumber: 3192
    functionLinenumberEnd: 3195
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bntest.c
    functionUses: 3
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: cookie_gen
    functionSourceFile: /src/openssl-3.0.15/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cookie_gen(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: cookie_verify
    functionSourceFile: /src/openssl-3.0.15/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cookie_verify(SSL *ssl, const unsigned char *cookie,\n                         unsigned
      int cookie_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:301,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:301,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:301,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:302,1
    - Dst: BIO_ADDR_new
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:302,1
    - Dst: SSL_CTX_set_cookie_generate_cb
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:304,1
    - Dst: SSL_CTX_set_cookie_verify_cb
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:305,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:308,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:308,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:309,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:309,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:309,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:314,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:314,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:316,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:317,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:320,1
    - Dst: DTLSv1_listen
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:320,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:322,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:325,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:329,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:333,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:336,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:338,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:343,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:344,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:345,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:346,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 348
    functionName: dtls_listen_test
    functionSourceFile: /src/openssl-3.0.15/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_int_eq
    - SSL_new
    - SSL_set0_wbio
    - BIO_s_mem
    - BIO_new
    - TEST_true
    - SSL_CTX_free
    - TEST_int_ge
    - SSL_set0_rbio
    - TEST_info
    - OPENSSL_free
    - DTLSv1_listen
    - BIO_get_mem_data
    - DTLS_server_method
    - TEST_ptr
    - SSL_CTX_new
    - BIO_ADDR_new
    - BIO_set_mem_eof_return
    - SSL_CTX_set_cookie_generate_cb
    - SSL_CTX_set_cookie_verify_cb
    - BIO_new_mem_buf
    - BIO_free
    - SSL_free
    - BIO_reset
    linkageType: ''
    returnType: int
    signature: int dtls_listen_test(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:354,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/dtlsv1listentest.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dtlsv1listentest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/srptest.c:47,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-3.0.15/test/srptest.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:51,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-3.0.15/test/srptest.c:51,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:55,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:56,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:57,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:58,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/srptest.c:61,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/srptest.c:62,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/srptest.c:63,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:65,1
    - Dst: SRP_Calc_B
      Src: /src/openssl-3.0.15/test/srptest.c:68,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:71,1
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-3.0.15/test/srptest.c:71,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/srptest.c:75,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/srptest.c:76,1
    - Dst: TEST_BN_ne_zero
      Src: /src/openssl-3.0.15/test/srptest.c:77,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:79,1
    - Dst: SRP_Calc_A
      Src: /src/openssl-3.0.15/test/srptest.c:82,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:83,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:85,1
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openssl-3.0.15/test/srptest.c:85,1
    - Dst: SRP_Calc_u
      Src: /src/openssl-3.0.15/test/srptest.c:89,1
    - Dst: SRP_Calc_x
      Src: /src/openssl-3.0.15/test/srptest.c:92,1
    - Dst: SRP_Calc_client_key
      Src: /src/openssl-3.0.15/test/srptest.c:93,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:94,1
    - Dst: SRP_Calc_server_key
      Src: /src/openssl-3.0.15/test/srptest.c:97,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/srptest.c:98,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/srptest.c:100,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:106,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:107,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:108,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:109,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:110,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:111,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:112,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:113,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:114,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 3
    argNames:
    - username
    - client_pass
    - server_pass
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 29
    functionDepth: 15
    functionLinenumber: 29
    functionLinenumberEnd: 118
    functionName: run_srp
    functionSourceFile: /src/openssl-3.0.15/test/srptest.c
    functionUses: 0
    functionsReached:
    - SRP_create_verifier_BN
    - TEST_BN_ne_zero
    - SRP_Calc_server_key
    - TEST_BN_eq
    - BN_clear_free
    - TEST_true
    - SRP_Calc_B
    - SRP_Calc_u
    - SRP_Verify_A_mod_N
    - BN_free
    - TEST_ptr
    - SRP_Calc_client_key
    - RAND_bytes
    - SRP_get_default_gN
    - SRP_Calc_A
    - BN_bin2bn
    - SRP_Verify_B_mod_N
    - test_output_bignum
    - SRP_Calc_x
    linkageType: ''
    returnType: int
    signature: "int run_srp(const char *username, const char *client_pass,\n                   const
      char *server_pass)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:125,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/srptest.c:125,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/srptest.c:128,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/srptest.c:129,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/srptest.c:130,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - name
    - bn
    - hexbn
    argTypes:
    - char*
    - BIGNUM*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 5
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: check_bn
    functionSourceFile: /src/openssl-3.0.15/test/srptest.c
    functionUses: 1
    functionsReached:
    - TEST_BN_eq
    - BN_free
    - BN_hex2bn
    - TEST_error
    - TEST_true
    - BN_cmp
    linkageType: ''
    returnType: int
    signature: int check_bn(const char *name, const BIGNUM *bn, const char *hexbn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/srptest.c:152,1
    - Dst: SRP_get_default_gN
      Src: /src/openssl-3.0.15/test/srptest.c:152,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/srptest.c:154,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:156,1
    - Dst: SRP_create_verifier_BN
      Src: /src/openssl-3.0.15/test/srptest.c:156,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:161,1
    - Dst: check_bn
      Src: /src/openssl-3.0.15/test/srptest.c:161,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/srptest.c:168,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/srptest.c:171,1
    - Dst: SRP_Calc_B
      Src: /src/openssl-3.0.15/test/srptest.c:175,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:176,1
    - Dst: SRP_Verify_B_mod_N
      Src: /src/openssl-3.0.15/test/srptest.c:176,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:179,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:180,1
    - Dst: check_bn
      Src: /src/openssl-3.0.15/test/srptest.c:180,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/srptest.c:187,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/srptest.c:190,1
    - Dst: SRP_Calc_A
      Src: /src/openssl-3.0.15/test/srptest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:195,1
    - Dst: SRP_Verify_A_mod_N
      Src: /src/openssl-3.0.15/test/srptest.c:195,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:199,1
    - Dst: check_bn
      Src: /src/openssl-3.0.15/test/srptest.c:199,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/srptest.c:206,1
    - Dst: SRP_Calc_u
      Src: /src/openssl-3.0.15/test/srptest.c:209,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:211,1
    - Dst: check_bn
      Src: /src/openssl-3.0.15/test/srptest.c:211,1
    - Dst: SRP_Calc_x
      Src: /src/openssl-3.0.15/test/srptest.c:216,1
    - Dst: SRP_Calc_client_key
      Src: /src/openssl-3.0.15/test/srptest.c:217,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:219,1
    - Dst: check_bn
      Src: /src/openssl-3.0.15/test/srptest.c:219,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/srptest.c:226,1
    - Dst: SRP_Calc_server_key
      Src: /src/openssl-3.0.15/test/srptest.c:229,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:231,1
    - Dst: check_bn
      Src: /src/openssl-3.0.15/test/srptest.c:231,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/srptest.c:238,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:243,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:244,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:245,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:246,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:247,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:248,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:249,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:250,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/srptest.c:251,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/srptest.c:252,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 136
    functionDepth: 15
    functionLinenumber: 136
    functionLinenumberEnd: 255
    functionName: run_srp_kat
    functionSourceFile: /src/openssl-3.0.15/test/srptest.c
    functionUses: 0
    functionsReached:
    - SRP_get_default_gN
    - SRP_Calc_u
    - check_bn
    - TEST_note
    - SRP_Calc_A
    - SRP_Calc_server_key
    - SRP_Verify_A_mod_N
    - SRP_create_verifier_BN
    - SRP_Verify_B_mod_N
    - BN_free
    - BN_hex2bn
    - TEST_info
    - BN_clear_free
    - TEST_ptr
    - SRP_Calc_client_key
    - TEST_true
    - SRP_Calc_x
    - SRP_Calc_B
    linkageType: ''
    returnType: int
    signature: int run_srp_kat(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:260,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/srptest.c:261,1
    - Dst: run_srp
      Src: /src/openssl-3.0.15/test/srptest.c:261,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/srptest.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/srptest.c:266,1
    - Dst: run_srp
      Src: /src/openssl-3.0.15/test/srptest.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 16
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: run_srp_tests
    functionSourceFile: /src/openssl-3.0.15/test/srptest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - TEST_true
    - run_srp
    - TEST_false
    linkageType: ''
    returnType: int
    signature: int run_srp_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-3.0.15/test/srptest.c:276,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/srptest.c:278,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/srptest.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/srptest.c
    functionUses: 0
    functionsReached:
    - printf
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_SRV_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SRV_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 33
    functionsReached:
    - OSSL_CMP_SRV_CTX_free
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CMP_SRV_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:35,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:35,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:38,1
    - Dst: OSSL_CMP_SRV_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:38,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 14
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 1
    functionsReached:
    - TEST_ptr
    - OSSL_CMP_SRV_CTX_new
    - tear_down
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CMP_SRV_TEST_FIXTURE
    signature: CMP_SRV_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - srv_ctx
    - cert_req
    - certReqId
    - crm
    - p10cr
    - certOut
    - chainOut
    - caPubs
    argTypes:
    - OSSL_CMP_SRV_CTX*
    - OSSL_CMP_MSG*
    - int
    - OSSL_CRMF_MSG*
    - X509_REQ*
    - X509**
    - STACK_OF**
    - STACK_OF**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: process_cert_request
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 3
    functionsReached:
    - ERR_raise
    linkageType: ''
    returnType: OSSL_CMP_PKISI
    signature: "OSSL_CMP_PKISI *process_cert_request(OSSL_CMP_SRV_CTX *srv_ctx,\n
      \                                           const OSSL_CMP_MSG *cert_req,\n
      \                                           int certReqId,\n                                            const
      OSSL_CRMF_MSG *crm,\n                                            const X509_REQ
      *p10cr,\n                                            X509 **certOut,\n                                            STACK_OF(X509)
      **chainOut,\n                                            STACK_OF(X509) **caPubs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:72,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:73,1
    - Dst: OSSL_CMP_CTX_set_transfer_cb_arg
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:76,1
    - Dst: OSSL_CMP_SRV_CTX_init
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:76,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:79,1
    - Dst: OSSL_CMP_SRV_CTX_get0_custom_ctx
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:79,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:80,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:80,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:83,1
    - Dst: OSSL_CMP_SRV_CTX_set_send_unprotected_errors
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:83,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:84,1
    - Dst: OSSL_CMP_SRV_CTX_set_accept_unprotected
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:84,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:85,1
    - Dst: OSSL_CMP_SRV_CTX_set_accept_raverified
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:86,1
    - Dst: OSSL_CMP_SRV_CTX_set_grant_implicit_confirm
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:86,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:89,1
    - Dst: OSSL_CMP_SRV_CTX_get0_cmp_ctx
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:89,1
    - Dst: OSSL_CMP_CTX_set1_referenceValue
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:90,1
    - Dst: OSSL_CMP_CTX_set1_secretValue
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:92,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:96,1
    - Dst: OSSL_CMP_CTX_server_perform
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:96,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:97,1
    - Dst: OSSL_CMP_MSG_get_bodytype
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:97,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:99,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:100,1
    - Dst: ASN1_INTEGER_get
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:100,1
    - Dst: ERR_PACK
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:101,1
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:107,1
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:108,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 22
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_SRV_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 62
    functionDepth: 20
    functionLinenumber: 62
    functionLinenumberEnd: 110
    functionName: execute_test_handle_request
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_CMP_SRV_CTX_get0_custom_ctx
    - OSSL_CMP_MSG_free
    - OSSL_CMP_SRV_CTX_get0_cmp_ctx
    - OSSL_CMP_SRV_CTX_set_grant_implicit_confirm
    - OSSL_CMP_CTX_server_perform
    - OSSL_CMP_SRV_CTX_set_accept_unprotected
    - OSSL_CMP_CTX_set1_secretValue
    - ASN1_INTEGER_get
    - OSSL_CMP_CTX_set1_referenceValue
    - OSSL_CMP_CTX_new
    - TEST_true
    - OSSL_CMP_CTX_set_transfer_cb_arg
    - ERR_PACK
    - strcmp
    - TEST_ptr
    - OSSL_CMP_MSG_get_bodytype
    - OSSL_CMP_SRV_CTX_init
    - OSSL_CMP_SRV_CTX_set_accept_raverified
    - OSSL_CMP_CTX_free
    - OSSL_CMP_SRV_CTX_set_send_unprotected_errors
    linkageType: ''
    returnType: int
    signature: int execute_test_handle_request(CMP_SRV_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:114,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: test_handle_request
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_handle_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_MSG_free
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:123,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:124,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:125,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 3
    functionsReached:
    - OSSL_CMP_MSG_free
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:138,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:139,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:143,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:143,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:144,1
    - Dst: test_arg_libctx
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:148,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:151,1
    - Dst: load_pkimsg
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:151,1
    - Dst: cleanup_tests
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:152,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_server_test.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 172
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_server_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - load_pkimsg
    - cleanup_tests
    - test_arg_libctx
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:43,1
    - Dst: ossl_sa_char_new
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:43,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:44,1
    - Dst: ossl_sa_char_get
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:44,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:45,1
    - Dst: ossl_sa_char_get
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:45,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:46,1
    - Dst: ossl_sa_char_get
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:46,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:49,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:50,1
    - Dst: ossl_sa_char_set
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:50,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:51,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:55,1
    - Dst: ossl_sa_char_get
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:55,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:56,1
    - Dst: ossl_sa_char_free
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:63,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 65
    functionName: test_sparse_array
    functionSourceFile: /src/openssl-3.0.15/test/sparse_array_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - TEST_note
    - ossl_sa_char_get
    - ossl_sa_char_set
    - ossl_sa_char_new
    - TEST_str_eq
    - TEST_ptr
    - TEST_true
    - ossl_sa_char_free
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_sparse_array(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:83,1
    - Dst: ossl_sa_char_num
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:84,1
    - Dst: ossl_sa_char_new
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:84,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:85,1
    - Dst: ossl_sa_char_num
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:85,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:88,1
    - Dst: ossl_sa_char_set
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:88,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:89,1
    - Dst: ossl_sa_char_num
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:89,1
    - Dst: ossl_sa_char_free
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: test_sparse_array_num
    functionSourceFile: /src/openssl-3.0.15/test/sparse_array_test.c
    functionUses: 0
    functionsReached:
    - ossl_sa_char_num
    - TEST_size_t_eq
    - ossl_sa_char_set
    - ossl_sa_char_new
    - TEST_ptr
    - TEST_true
    - ossl_sa_char_free
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_sparse_array_num(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:120,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - n
    - value
    - arg
    argTypes:
    - ossl_uintmax_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: leaf_check_all
    functionSourceFile: /src/openssl-3.0.15/test/sparse_array_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - strcmp
    linkageType: ''
    returnType: void
    signature: void leaf_check_all(ossl_uintmax_t n, char *value, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:135,1
    - Dst: ossl_sa_char_set
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:137,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - n
    - value
    - arg
    argTypes:
    - ossl_uintmax_t
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: leaf_delete
    functionSourceFile: /src/openssl-3.0.15/test/sparse_array_test.c
    functionUses: 0
    functionsReached:
    - ossl_sa_char_set
    - TEST_error
    - strcmp
    linkageType: ''
    returnType: void
    signature: void leaf_delete(ossl_uintmax_t n, char *value, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:155,1
    - Dst: ossl_sa_char_new
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:155,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:157,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:161,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:162,1
    - Dst: ossl_sa_char_set
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:162,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:163,1
    - Dst: ossl_sa_char_doall_arg
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:167,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:169,1
    - Dst: ossl_sa_char_doall_arg
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:174,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:176,1
    - Dst: ossl_sa_char_doall_arg
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:179,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:181,1
    - Dst: ossl_sa_char_free
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:187,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 189
    functionName: test_sparse_array_doall
    functionSourceFile: /src/openssl-3.0.15/test/sparse_array_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - ossl_sa_char_set
    - TEST_info
    - ossl_sa_char_new
    - ossl_sa_char_doall_arg
    - TEST_ptr
    - TEST_true
    - ossl_sa_char_free
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_sparse_array_doall(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:193,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:194,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sparse_array_test.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sparse_array_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_tls1.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/test/afalgtest.c:62,1
    - Dst: OPENSSL_cleanse
      Src: /src/openssl-3.0.15/test/afalgtest.c:63,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/afalgtest.c:68,1
    - Dst: EVP_aes_192_cbc
      Src: /src/openssl-3.0.15/test/afalgtest.c:72,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/afalgtest.c:76,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/afalgtest.c:82,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/afalgtest.c:82,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:85,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/afalgtest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:86,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/afalgtest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:87,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/afalgtest.c:87,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/afalgtest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:94,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/openssl-3.0.15/test/afalgtest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:95,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/afalgtest.c:95,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:96,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/afalgtest.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:97,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/afalgtest.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/afalgtest.c:101,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/afalgtest.c:102,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/afalgtest.c:108,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - keysize_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 110
    functionName: test_afalg_aes_cbc
    functionSourceFile: /src/openssl-3.0.15/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - EVP_aes_256_cbc
    - TEST_mem_eq
    - EVP_aes_192_cbc
    - EVP_CIPHER_CTX_free
    - EVP_CipherUpdate
    - TEST_int_eq
    - OPENSSL_cleanse
    - EVP_CIPHER_CTX_reset
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - TEST_ptr
    - EVP_aes_128_cbc
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_afalg_aes_cbc(int keysize_idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:118,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/test/afalgtest.c:118,1
    - Dst: ENGINE_get_cipher
      Src: /src/openssl-3.0.15/test/afalgtest.c:120,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/afalgtest.c:121,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/afalgtest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/afalgtest.c:124,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/afalgtest.c:125,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/test/afalgtest.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 6
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: test_pr16743
    functionSourceFile: /src/openssl-3.0.15/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - ENGINE_get_cipher
    - EVP_CIPHER_CTX_free
    - ENGINE_finish
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_pr16743(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_load_builtin_engines
      Src: /src/openssl-3.0.15/test/afalgtest.c:132,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/test/afalgtest.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: global_init
    functionSourceFile: /src/openssl-3.0.15/test/afalgtest.c
    functionUses: 38
    functionsReached:
    - OPENSSL_init_crypto
    - ENGINE_load_builtin_engines
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/test/afalgtest.c:143,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/afalgtest.c:145,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/afalgtest.c:147,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/afalgtest.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 7
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/afalgtest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - ADD_TEST
    - ENGINE_by_id
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/afalgtest.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/afalgtest.c
    functionUses: 4
    functionsReached:
    - ENGINE_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/http_test.c:38,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/test/http_test.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/http_test.c:46,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/test/http_test.c:46,1
    - Dst: strchr
      Src: /src/openssl-3.0.15/test/http_test.c:52,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/http_test.c:55,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-3.0.15/test/http_test.c:56,1
    - Dst: TEST_char_le
      Src: /src/openssl-3.0.15/test/http_test.c:60,1
    - Dst: TEST_char_le
      Src: /src/openssl-3.0.15/test/http_test.c:60,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/http_test.c:62,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/http_test.c:62,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/test/http_test.c:68,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/http_test.c:68,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/http_test.c:71,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/http_test.c:75,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/http_test.c:78,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/test/http_test.c:82,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/http_test.c:84,1
    - Dst: ASN1_item_i2d_bio
      Src: /src/openssl-3.0.15/test/http_test.c:87,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/http_test.c:89,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/test/http_test.c:90,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/test/http_test.c:92,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/http_test.c:98,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 6
    argNames:
    - in
    - out
    - version
    - keep_alive
    - rsp
    - it
    argTypes:
    - BIO*
    - BIO*
    - char
    - int
    - ASN1_VALUE*
    - ASN1_ITEM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 100
    functionName: mock_http_server
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - TEST_char_eq
    - BIO_write
    - strchr
    - strstr
    - ASN1_item_i2d
    - strncmp
    - TEST_strn_eq
    - strlen
    - BIO_get_mem_data
    - ASN1_item_i2d_bio
    - TEST_true
    - BIO_printf
    - TEST_char_le
    linkageType: ''
    returnType: int
    signature: "int mock_http_server(BIO *in, BIO *out, char version, int keep_alive,\n
      \                           ASN1_VALUE *rsp, const ASN1_ITEM *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_callback_arg
      Src: /src/openssl-3.0.15/test/http_test.c:105,1
    - Dst: mock_http_server
      Src: /src/openssl-3.0.15/test/http_test.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - bio
    - oper
    - argp
    - len
    - cmd
    - argl
    - ret
    - processed
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - int
    - long
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: http_bio_cb_ex
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - BIO_get_callback_arg
    - mock_http_server
    linkageType: ''
    returnType: long
    signature: "long http_bio_cb_ex(BIO *bio, int oper, const char *argp, size_t len,\n
      \                          int cmd, long argl, int ret, size_t *processed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/http_test.c:116,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/http_test.c:116,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/http_test.c:117,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/http_test.c:117,1
    - Dst: ASN1_item_i2d_mem_bio
      Src: /src/openssl-3.0.15/test/http_test.c:119,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/http_test.c:120,1
    - Dst: BIO_set_callback_ex
      Src: /src/openssl-3.0.15/test/http_test.c:127,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-3.0.15/test/http_test.c:128,1
    - Dst: OSSL_HTTP_get
      Src: /src/openssl-3.0.15/test/http_test.c:131,1
    - Dst: OSSL_HTTP_transfer
      Src: /src/openssl-3.0.15/test/http_test.c:137,1
    - Dst: d2i_X509_bio
      Src: /src/openssl-3.0.15/test/http_test.c:144,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:145,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/http_test.c:146,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/http_test.c:146,1
    - Dst: X509_cmp
      Src: /src/openssl-3.0.15/test/http_test.c:146,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/http_test.c:149,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:150,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:151,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:152,1
    - Dst: sk_CONF_VALUE_pop_free
      Src: /src/openssl-3.0.15/test/http_test.c:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - do_get
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 113
    functionDepth: 7
    functionLinenumber: 113
    functionLinenumberEnd: 155
    functionName: test_http_x509
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - ASN1_item_i2d_mem_bio
    - BIO_new
    - X509_free
    - TEST_int_eq
    - BIO_free
    - OSSL_HTTP_get
    - sk_CONF_VALUE_pop_free
    - TEST_ptr
    - STACK_OF
    - X509_cmp
    - OSSL_HTTP_transfer
    - BIO_set_callback_arg
    - BIO_set_callback_ex
    - d2i_X509_bio
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_http_x509(int do_get)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/http_test.c:159,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/http_test.c:159,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/http_test.c:160,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/http_test.c:160,1
    - Dst: BIO_set_callback_ex
      Src: /src/openssl-3.0.15/test/http_test.c:172,1
    - Dst: BIO_set_callback_arg
      Src: /src/openssl-3.0.15/test/http_test.c:173,1
    - Dst: OSSL_HTTP_transfer
      Src: /src/openssl-3.0.15/test/http_test.c:176,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/http_test.c:186,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/http_test.c:187,1
    - Dst: OSSL_HTTP_is_alive
      Src: /src/openssl-3.0.15/test/http_test.c:187,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/http_test.c:189,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/http_test.c:190,1
    - Dst: OSSL_HTTP_is_alive
      Src: /src/openssl-3.0.15/test/http_test.c:190,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:191,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/test/http_test.c:192,1
    - Dst: OSSL_HTTP_close
      Src: /src/openssl-3.0.15/test/http_test.c:195,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:198,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/http_test.c:199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - version
    - keep_alive
    - kept_alive
    argTypes:
    - char
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 201
    functionName: test_http_keep_alive
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - OSSL_HTTP_is_alive
    - TEST_ptr_null
    - BIO_new
    - BIO_reset
    - TEST_int_eq
    - BIO_free
    - BIO_s_mem
    - TEST_ptr
    - OSSL_HTTP_close
    - BIO_set_callback_arg
    - BIO_set_callback_ex
    - OSSL_HTTP_transfer
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive(char version, int keep_alive, int kept_alive)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/http_test.c:210,1
    - Dst: sscanf
      Src: /src/openssl-3.0.15/test/http_test.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/http_test.c:212,1
    - Dst: OSSL_HTTP_parse_url
      Src: /src/openssl-3.0.15/test/http_test.c:212,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:214,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:215,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/http_test.c:216,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:217,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/http_test.c:218,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:220,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:222,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:224,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:225,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:226,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:227,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:228,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:229,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:230,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 5
    argNames:
    - url
    - exp_ssl
    - exp_host
    - exp_port
    - exp_path
    argTypes:
    - char*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: test_http_url_ok
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - sscanf
    - TEST_int_eq
    - OSSL_HTTP_parse_url
    - OPENSSL_free
    - TEST_str_eq
    - TEST_true
    linkageType: ''
    returnType: int
    signature: "int test_http_url_ok(const char *url, int exp_ssl, const char *exp_host,\n
      \                           const char *exp_port, const char *exp_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/http_test.c:239,1
    - Dst: OSSL_HTTP_parse_url
      Src: /src/openssl-3.0.15/test/http_test.c:239,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:241,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/http_test.c:242,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:243,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - url
    - exp_path_qu
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: test_http_url_path_query_ok
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - TEST_true
    - OSSL_HTTP_parse_url
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_http_url_path_query_ok(const char *url, const char *exp_path_qu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_ok
      Src: /src/openssl-3.0.15/test/http_test.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: test_http_url_dns
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_ok
    linkageType: ''
    returnType: int
    signature: int test_http_url_dns(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_path_query_ok
      Src: /src/openssl-3.0.15/test/http_test.c:255,1
    - Dst: test_http_url_path_query_ok
      Src: /src/openssl-3.0.15/test/http_test.c:256,1
    - Dst: test_http_url_path_query_ok
      Src: /src/openssl-3.0.15/test/http_test.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: test_http_url_path_query
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_path_query_ok
    linkageType: ''
    returnType: int
    signature: int test_http_url_path_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_ok
      Src: /src/openssl-3.0.15/test/http_test.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: test_http_url_userinfo_query_fragment
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_ok
    linkageType: ''
    returnType: int
    signature: int test_http_url_userinfo_query_fragment(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_ok
      Src: /src/openssl-3.0.15/test/http_test.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: test_http_url_ipv4
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_ok
    linkageType: ''
    returnType: int
    signature: int test_http_url_ipv4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_ok
      Src: /src/openssl-3.0.15/test/http_test.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 5
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: test_http_url_ipv6
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_ok
    linkageType: ''
    returnType: int
    signature: int test_http_url_ipv6(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/http_test.c:281,1
    - Dst: OSSL_HTTP_parse_url
      Src: /src/openssl-3.0.15/test/http_test.c:281,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/http_test.c:283,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/http_test.c:284,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/http_test.c:285,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:287,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:288,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/http_test.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - url
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 292
    functionName: test_http_url_invalid
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - TEST_ptr_null
    - OSSL_HTTP_parse_url
    - TEST_false
    linkageType: ''
    returnType: int
    signature: int test_http_url_invalid(const char *url)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_invalid
      Src: /src/openssl-3.0.15/test/http_test.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: test_http_url_invalid_prefix
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_invalid
    linkageType: ''
    returnType: int
    signature: int test_http_url_invalid_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_invalid
      Src: /src/openssl-3.0.15/test/http_test.c:301,1
    - Dst: test_http_url_invalid
      Src: /src/openssl-3.0.15/test/http_test.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: test_http_url_invalid_port
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_invalid
    linkageType: ''
    returnType: int
    signature: int test_http_url_invalid_port(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_url_invalid
      Src: /src/openssl-3.0.15/test/http_test.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: test_http_url_invalid_path
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_url_invalid
    linkageType: ''
    returnType: int
    signature: int test_http_url_invalid_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_x509
      Src: /src/openssl-3.0.15/test/http_test.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 8
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: test_http_get_x509
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_x509
    linkageType: ''
    returnType: int
    signature: int test_http_get_x509(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_x509
      Src: /src/openssl-3.0.15/test/http_test.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 8
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: test_http_post_x509
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_x509
    linkageType: ''
    returnType: int
    signature: int test_http_post_x509(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 8
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: test_http_keep_alive_0_no_no
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_0_no_no(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 8
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: test_http_keep_alive_1_no_no
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_1_no_no(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 8
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: test_http_keep_alive_0_prefer_yes
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_0_prefer_yes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 8
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: test_http_keep_alive_1_prefer_yes
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_1_prefer_yes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 8
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: test_http_keep_alive_0_require_yes
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_0_require_yes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 8
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: test_http_keep_alive_1_require_yes
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_1_require_yes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 8
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: test_http_keep_alive_0_require_no
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_0_require_no(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_http_keep_alive
      Src: /src/openssl-3.0.15/test/http_test.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 8
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: test_http_keep_alive_1_require_no
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - test_http_keep_alive
    linkageType: ''
    returnType: int
    signature: int test_http_keep_alive_1_require_no(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/http_test.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 4
    functionsReached:
    - X509_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/http_test.c:369,1
    - Dst: ASN1_ITEM_rptr
      Src: /src/openssl-3.0.15/test/http_test.c:372,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/http_test.c:373,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/http_test.c:373,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/http_test.c:373,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:376,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:377,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:378,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:379,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:380,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:381,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:382,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:383,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:384,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:385,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:386,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:387,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:388,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:389,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:390,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:391,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:392,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/http_test.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 395
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/http_test.c
    functionUses: 0
    functionsReached:
    - load_cert_pem
    - ADD_TEST
    - ASN1_ITEM_rptr
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_srtp.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: stripcr
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stripcr(char *buf, size_t *len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:92,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:96,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:97,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:98,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:101,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:102,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:105,1
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:106,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:106,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:107,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:110,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:111,1
    - Dst: stripcr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:116,1
    - Dst: stripcr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:117,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:120,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:125,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:126,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:127,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 3
    argNames:
    - alg
    - type
    - membio
    argTypes:
    - char*
    - int
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 129
    functionName: compare_with_file
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - test_mk_file_path
    - BIO_eof
    - BIO_reset
    - BIO_read_ex
    - BIO_snprintf
    - BIO_free
    - TEST_size_t_lt
    - stripcr
    - TEST_error
    - OPENSSL_free
    - BIO_get_mem_data
    - TEST_ptr
    - BIO_new_file
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int compare_with_file(const char *alg, int type, BIO *membio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - u
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: pass_cb
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pass_cb(char *buf, int size, int rwflag, void *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - u
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: pass_cb_error
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pass_cb_error(char *buf, int size, int rwflag, void *u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:143,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:143,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:146,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:150,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:150,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:150,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:154,1
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:154,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:158,1
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:158,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:161,1
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:161,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:162,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:164,1
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:164,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:169,1
    - Dst: PEM_write_bio_PKCS8PrivateKey_nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:172,1
    - Dst: PEM_write_bio_PKCS8PrivateKey_nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:172,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:175,1
    - Dst: PEM_write_bio_PKCS8PrivateKey_nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:175,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:178,1
    - Dst: PEM_write_bio_PKCS8PrivateKey_nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:178,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:183,1
    - Dst: EVP_PKEY_print_private
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:184,1
    - Dst: compare_with_file
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:186,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:186,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:187,1
    - Dst: compare_with_file
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:187,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:189,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:191,1
    - Dst: compare_with_file
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:191,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:193,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:193,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:195,1
    - Dst: PEM_write_bio_PrivateKey_traditional
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:195,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:201,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 12
    argCount: 2
    argNames:
    - alg
    - pk
    argTypes:
    - char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 141
    functionDepth: 6
    functionLinenumber: 141
    functionLinenumberEnd: 203
    functionName: test_print_key_using_pem
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey
    - EVP_aes_256_cbc
    - compare_with_file
    - BIO_new
    - PEM_write_bio_PUBKEY
    - PEM_write_bio_PKCS8PrivateKey_nid
    - BIO_free
    - PEM_write_bio_PKCS8PrivateKey
    - TEST_false
    - PEM_write_bio_PrivateKey_traditional
    - EVP_PKEY_print_private
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_print_key_using_pem(const char *alg, const EVP_PKEY *pk)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:211,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:211,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:258,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:262,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:266,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:267,1
    - Dst: OSSL_ENCODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:267,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:272,1
    - Dst: OSSL_ENCODER_CTX_get_num_encoders
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:272,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:277,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:277,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:278,1
    - Dst: compare_with_file
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:278,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:283,1
    - Dst: OSSL_ENCODER_CTX_set_passphrase
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:283,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:289,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:290,1
    - Dst: OSSL_ENCODER_CTX_set_cipher
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:290,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:291,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:291,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:295,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:296,1
    - Dst: OSSL_ENCODER_CTX_set_cipher
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:296,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:297,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:297,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:301,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:302,1
    - Dst: OSSL_ENCODER_CTX_set_cipher
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:302,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:303,1
    - Dst: OSSL_ENCODER_to_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:304,1
    - Dst: compare_with_file
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:304,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:309,1
    - Dst: OSSL_ENCODER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:310,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 3
    argNames:
    - alg
    - type
    - pk
    argTypes:
    - char*
    - int
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 205
    functionDepth: 12
    functionLinenumber: 205
    functionLinenumberEnd: 312
    functionName: test_print_key_type_using_encoder
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - compare_with_file
    - TEST_note
    - BIO_new
    - TEST_int_ne
    - BIO_free
    - TEST_false
    - OSSL_ENCODER_CTX_free
    - TEST_error
    - OSSL_ENCODER_CTX_new_for_pkey
    - OSSL_ENCODER_to_bio
    - TEST_ptr
    - OSSL_ENCODER_CTX_set_cipher
    - OSSL_ENCODER_CTX_get_num_encoders
    - BIO_s_mem
    - OSSL_ENCODER_CTX_set_passphrase
    linkageType: ''
    returnType: int
    signature: "int test_print_key_type_using_encoder(const char *alg, int type,\n
      \                                            const EVP_PKEY *pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_print_key_type_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - alg
    - pk
    argTypes:
    - char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 314
    functionDepth: 13
    functionLinenumber: 314
    functionLinenumberEnd: 323
    functionName: test_print_key_using_encoder
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - test_print_key_type_using_encoder
    linkageType: ''
    returnType: int
    signature: int test_print_key_using_encoder(const char *alg, const EVP_PKEY *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_print_key_type_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - alg
    - pk
    argTypes:
    - char*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 326
    functionDepth: 13
    functionLinenumber: 326
    functionLinenumberEnd: 336
    functionName: test_print_key_using_encoder_public
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - test_print_key_type_using_encoder
    linkageType: ''
    returnType: int
    signature: "int test_print_key_using_encoder_public(const char *alg,\n                                               const
      EVP_PKEY *pk)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:371,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:372,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:373,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:374,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:375,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:376,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:377,1
    - Dst: OSSL_PARAM_ulong
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:378,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:381,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:382,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:384,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:384,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:387,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:387,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:388,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:388,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:394,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:394,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:395,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:395,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:396,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:396,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:397,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:397,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:400,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:401,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:401,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:404,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:404,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:405,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:405,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:406,1
    - Dst: EVP_PKEY_private_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:406,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:407,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:407,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:411,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:411,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:412,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:412,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:414,1
    - Dst: test_print_key_using_pem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:417,1
    - Dst: test_print_key_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:418,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:423,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:423,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:425,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:425,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:434,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:434,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:435,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:435,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:436,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:439,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:440,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:441,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:442,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:443,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:444,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 349
    functionDepth: 14
    functionLinenumber: 349
    functionLinenumberEnd: 447
    functionName: test_fromdata_rsa
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_get_bits
    - EVP_PKEY_public_check
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - test_print_key_using_encoder
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_fromdata
    - EVP_PKEY_pairwise_check
    - EVP_PKEY_check
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - OSSL_PARAM_ulong
    - test_print_key_using_pem
    - BN_set_word
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_security_bits
    - EVP_PKEY_get_bn_param
    - BN_new
    - EVP_PKEY_get_size
    - EVP_PKEY_dup
    - BN_free
    - EVP_PKEY_new
    - TEST_ptr
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_private_check
    linkageType: ''
    returnType: int
    signature: int test_fromdata_rsa(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:470,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:472,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:472,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:473,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:473,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:474,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:474,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:475,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:475,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:476,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:476,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:477,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:477,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:478,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:478,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:479,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:479,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:480,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:480,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:481,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:481,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:482,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:482,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:484,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:485,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:485,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:486,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:490,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:491,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:492,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:493,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:494,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:495,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:496,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:497,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:498,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 500
    functionName: test_evp_pkey_get_bn_param_large
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - EVP_PKEY_CTX_free
    - EVP_PKEY_fromdata
    - OSSL_PARAM_free
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - TEST_true
    - memset
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_bn_param
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - BN_free
    - TEST_ptr
    - EVP_PKEY_CTX_new_from_pkey
    - BN_bin2bn
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_evp_pkey_get_bn_param_large(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:556,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:556,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:557,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:557,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:558,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:558,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:559,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:559,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:562,1
    - Dst: OSSL_PARAM_BLD_push_long
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:562,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:564,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:564,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:565,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:565,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:566,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:566,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:569,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:569,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:572,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:572,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:573,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:573,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:582,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:582,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:586,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:588,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:588,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:593,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:595,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:595,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:601,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:601,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:610,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:610,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:611,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:611,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:612,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:612,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:613,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:613,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:616,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:616,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:621,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:622,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:622,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:625,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:626,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:626,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:628,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:629,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:629,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:630,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:631,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:631,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:632,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:633,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:633,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:634,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:635,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:635,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:638,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:639,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:639,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:644,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:644,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:646,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:647,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:647,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:649,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:650,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:650,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:653,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:655,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:657,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:659,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:661,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:663,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:665,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:668,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:668,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:671,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:671,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:672,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:672,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:673,1
    - Dst: EVP_PKEY_private_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:673,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:674,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:674,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:676,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:679,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:679,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:680,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:680,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:682,1
    - Dst: test_print_key_using_pem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:685,1
    - Dst: test_print_key_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:686,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:691,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:691,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:693,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:693,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:694,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:700,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:701,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:702,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:703,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:704,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:705,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:706,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:707,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:708,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:709,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:710,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:711,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:712,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:713,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 504
    functionDepth: 14
    functionLinenumber: 504
    functionLinenumberEnd: 716
    functionName: test_fromdata_dh_named_group
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_get_bits
    - EVP_PKEY_public_check
    - TEST_int_gt
    - EVP_PKEY_CTX_free
    - OSSL_PARAM_BLD_push_long
    - test_print_key_using_encoder
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_fromdata
    - EVP_PKEY_pairwise_check
    - EVP_PKEY_check
    - OSSL_PARAM_free
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - test_print_key_using_pem
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_security_bits
    - EVP_PKEY_get_bn_param
    - OSSL_PARAM_BLD_to_param
    - EVP_PKEY_get_size
    - OSSL_PARAM_BLD_new
    - TEST_size_t_eq
    - EVP_PKEY_dup
    - EVP_PKEY_get_utf8_string_param
    - BN_free
    - EVP_PKEY_new
    - OSSL_PARAM_BLD_free
    - TEST_ptr
    - EVP_PKEY_get_int_param
    - EVP_PKEY_CTX_new_from_pkey
    - BN_bin2bn
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_private_check
    - OSSL_PARAM_BLD_push_utf8_string
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_fromdata_dh_named_group(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:771,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:771,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:772,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:772,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:773,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:773,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:774,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:774,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:777,1
    - Dst: OSSL_PARAM_BLD_push_long
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:777,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:779,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:779,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:780,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:780,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:781,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:781,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:784,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:784,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:787,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:787,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:788,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:788,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:794,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:794,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:795,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:795,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:796,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:796,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:797,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:797,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:800,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:800,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:805,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:806,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:806,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:808,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:809,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:809,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:811,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:812,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:812,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:813,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:814,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:814,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:815,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:816,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:816,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:817,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:818,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:818,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:821,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:822,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:822,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:827,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:827,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:830,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:831,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:831,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:833,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:834,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:834,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:837,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:839,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:841,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:843,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:845,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:847,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:849,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:852,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:852,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:855,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:855,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:856,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:856,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:857,1
    - Dst: EVP_PKEY_private_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:857,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:858,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:858,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:860,1
    - Dst: test_print_key_using_pem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:863,1
    - Dst: test_print_key_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:864,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:869,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:869,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:871,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:871,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:872,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:878,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:879,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:880,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:881,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:882,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:883,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:884,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:885,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:886,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:887,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:888,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:889,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:890,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 718
    functionDepth: 14
    functionLinenumber: 718
    functionLinenumberEnd: 893
    functionName: test_fromdata_dh_fips186_4
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_get_bits
    - EVP_PKEY_public_check
    - TEST_int_gt
    - EVP_PKEY_CTX_free
    - OSSL_PARAM_BLD_push_long
    - test_print_key_using_encoder
    - EVP_PKEY_fromdata
    - EVP_PKEY_pairwise_check
    - EVP_PKEY_check
    - OSSL_PARAM_free
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - test_print_key_using_pem
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_security_bits
    - EVP_PKEY_get_bn_param
    - OSSL_PARAM_BLD_to_param
    - EVP_PKEY_get_size
    - OSSL_PARAM_BLD_new
    - EVP_PKEY_dup
    - EVP_PKEY_get_utf8_string_param
    - BN_free
    - OSSL_PARAM_BLD_free
    - TEST_ptr
    - EVP_PKEY_get_int_param
    - EVP_PKEY_CTX_new_from_pkey
    - BN_bin2bn
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_private_check
    - OSSL_PARAM_BLD_push_utf8_string
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_fromdata_dh_fips186_4(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1007,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1010,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1016,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1019,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1025,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1028,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1034,1
    - Dst: OSSL_PARAM_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1037,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1082,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1083,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1097,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1097,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1098,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1098,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1104,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1104,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1105,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1105,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1106,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1106,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1107,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1107,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1110,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1110,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1113,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1115,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1115,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1121,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1121,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1124,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1130,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1130,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1131,1
    - Dst: EVP_PKEY_private_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1131,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1132,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1132,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1135,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1138,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1138,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1140,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1140,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1142,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1142,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1144,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1144,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1146,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1148,1
    - Dst: test_print_key_using_encoder_public
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1152,1
    - Dst: test_print_key_using_pem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1154,1
    - Dst: test_print_key_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1155,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1160,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1160,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1162,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1162,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1163,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1170,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1171,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1172,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1173,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 104
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 916
    functionDepth: 14
    functionLinenumber: 916
    functionLinenumberEnd: 1176
    functionName: test_fromdata_ecx
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_int_eq
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_get_bits
    - EVP_PKEY_public_check
    - TEST_int_gt
    - EVP_PKEY_CTX_free
    - test_print_key_using_encoder
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_fromdata
    - EVP_PKEY_check
    - EVP_PKEY_fromdata_init
    - test_print_key_using_pem
    - TEST_int_le
    - TEST_true
    - EVP_PKEY_eq
    - OSSL_PARAM_octet_string
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_security_bits
    - EVP_PKEY_get_size
    - EVP_PKEY_dup
    - EVP_PKEY_new
    - TEST_ptr
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_private_check
    - test_print_key_using_encoder_public
    linkageType: ''
    returnType: int
    signature: int test_fromdata_ecx(int tst)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1233,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1233,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1235,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1235,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1239,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1250,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1254,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1256,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1256,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1258,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1259,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1264,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1266,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1266,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1267,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1267,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1269,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1272,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1272,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1273,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1273,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1279,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1279,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1280,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1280,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1281,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1281,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1282,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1282,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1285,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1285,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1286,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1286,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1288,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1291,1
    - Dst: EVP_PKEY_gettable_params
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1291,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1292,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1292,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1294,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1294,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1296,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1296,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1300,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1300,1
    - Dst: OBJ_sn2nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1300,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1301,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1301,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1302,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1302,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1303,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1303,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1304,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1304,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1307,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1307,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1308,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1308,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1309,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1309,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1312,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1312,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1313,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1316,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1318,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1320,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1322,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1325,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1329,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1339,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1340,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1343,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1343,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1345,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1347,1
    - Dst: test_print_key_using_pem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1350,1
    - Dst: test_print_key_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1351,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1356,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1356,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1358,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1358,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1359,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1366,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1367,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1368,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1369,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1370,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1371,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1372,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1373,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1374,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1375,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1376,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1377,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1378,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1379,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1178
    functionDepth: 14
    functionLinenumber: 1178
    functionLinenumberEnd: 1381
    functionName: test_fromdata_ec
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_ptr_null
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - EC_GROUP_free
    - TEST_int_eq
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_get_bits
    - EVP_PKEY_CTX_free
    - test_print_key_using_encoder
    - EC_GROUP_new_by_curve_name
    - EVP_PKEY_copy_parameters
    - EC_GROUP_get_curve
    - EVP_PKEY_fromdata
    - OSSL_PARAM_free
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - test_print_key_using_pem
    - OSSL_PARAM_locate_const
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_gettable_params
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_security_bits
    - EVP_PKEY_get_bn_param
    - BN_new
    - OSSL_PARAM_BLD_to_param
    - EVP_PKEY_get_size
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_BLD_new
    - EVP_PKEY_dup
    - BN_free
    - EVP_PKEY_get_utf8_string_param
    - EVP_PKEY_new
    - OSSL_PARAM_BLD_free
    - TEST_ptr
    - OBJ_sn2nid
    - BN_bin2bn
    - TEST_false
    - EVP_PKEY_free
    - OSSL_PARAM_BLD_push_utf8_string
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_fromdata_ec(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1389,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1389,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1390,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1390,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1391,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1391,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1393,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1393,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1394,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1397,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1400,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1400,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1401,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1401,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1402,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1402,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1403,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1403,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1407,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1408,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1409,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1410,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1411,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1383
    functionDepth: 8
    functionLinenumber: 1383
    functionLinenumberEnd: 1413
    functionName: test_ec_dup_no_operation
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_dup
    - EVP_PKEY_keygen
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_ec_dup_no_operation(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1422,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1422,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1423,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1423,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1424,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1424,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1426,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1426,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1427,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1430,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1433,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1433,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1434,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1434,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1435,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1435,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1439,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1440,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1441,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1442,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1443,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1416
    functionDepth: 8
    functionLinenumber: 1416
    functionLinenumberEnd: 1445
    functionName: test_ec_dup_keygen_operation
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_dup
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_ec_dup_keygen_operation(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1568,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1568,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1569,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1569,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1570,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1570,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1571,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1571,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1572,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1572,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1573,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1573,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1575,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1575,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1576,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1576,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1577,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1577,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1578,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1578,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1582,1
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1582,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1584,1
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1584,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1587,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1587,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1589,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1589,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1591,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1591,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1594,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1594,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1597,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1597,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1598,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1598,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1604,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1604,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1605,1
    - Dst: EVP_PKEY_get_security_bits
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1605,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1606,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1606,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1607,1
    - Dst: EVP_PKEY_missing_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1607,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1610,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1610,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1615,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1615,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1617,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1618,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1618,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1620,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1621,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1621,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1623,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1624,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1624,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1626,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1627,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1627,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1629,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1630,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1630,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1633,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1634,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1634,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1639,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1639,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1642,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1643,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1643,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1645,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1646,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1646,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1649,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1651,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1653,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1655,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1657,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1659,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1661,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1664,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1664,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1667,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1667,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1668,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1668,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1669,1
    - Dst: EVP_PKEY_private_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1669,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1670,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1670,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1672,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1675,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1675,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1676,1
    - Dst: EVP_PKEY_copy_parameters
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1676,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1678,1
    - Dst: test_print_key_using_pem
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1681,1
    - Dst: test_print_key_using_encoder
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1682,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1687,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1687,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1689,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1689,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1690,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1697,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1698,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1699,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1700,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1701,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1702,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1703,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1704,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1705,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1706,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1707,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1708,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1709,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1710,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1711,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1712,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1713,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1450
    functionDepth: 14
    functionLinenumber: 1450
    functionLinenumberEnd: 1716
    functionName: test_fromdata_dsa_fips186_4
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_int
    - TEST_ptr_null
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - EVP_PKEY_missing_parameters
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_get_bits
    - EVP_PKEY_public_check
    - TEST_int_gt
    - EVP_PKEY_CTX_free
    - test_print_key_using_encoder
    - EVP_PKEY_copy_parameters
    - EVP_PKEY_fromdata
    - EVP_PKEY_pairwise_check
    - EVP_PKEY_check
    - OSSL_PARAM_free
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - test_print_key_using_pem
    - TEST_true
    - EVP_PKEY_eq
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_security_bits
    - EVP_PKEY_get_bn_param
    - OSSL_PARAM_BLD_to_param
    - EVP_PKEY_get_size
    - OSSL_PARAM_BLD_new
    - EVP_PKEY_dup
    - EVP_PKEY_get_utf8_string_param
    - BN_free
    - EVP_PKEY_new
    - OSSL_PARAM_BLD_free
    - TEST_ptr
    - EVP_PKEY_get_int_param
    - EVP_PKEY_CTX_new_from_pkey
    - BN_bin2bn
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_private_check
    linkageType: ''
    returnType: int
    signature: int test_fromdata_dsa_fips186_4(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1723,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1723,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1724,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1724,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1725,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1725,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1726,1
    - Dst: EVP_PKEY_private_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1726,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1727,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1727,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1718
    functionDepth: 9
    functionLinenumber: 1718
    functionLinenumberEnd: 1735
    functionName: test_check_dsa
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_pairwise_check
    - EVP_PKEY_check
    - EVP_PKEY_private_check
    - EVP_PKEY_CTX_free
    - TEST_int_le
    - TEST_ptr
    - EVP_PKEY_public_check
    linkageType: ''
    returnType: int
    signature: int test_check_dsa(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1742,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1745,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1746,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1747,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1748,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1750,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - digest
    - key
    - keylen
    - salt
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1739
    functionDepth: 2
    functionLinenumber: 1739
    functionLinenumberEnd: 1755
    functionName: do_construct_hkdf_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *do_construct_hkdf_params(char *digest, char *key,\n                                            size_t
      keylen, char *salt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1765,1
    - Dst: do_construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1765,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1768,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1768,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1770,1
    - Dst: EVP_PKEY_derive_init_ex
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1770,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1772,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1772,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1773,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1775,1
    - Dst: EVP_PKEY_CTX_dup
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1775,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1779,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1780,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1781,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1758
    functionDepth: 6
    functionLinenumber: 1758
    functionLinenumberEnd: 1783
    functionName: test_evp_pkey_ctx_dup_kdf_fail
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_from_name
    - TEST_ptr_null
    - EVP_PKEY_CTX_dup
    - TEST_int_eq
    - TEST_size_t_eq
    - do_construct_hkdf_params
    - EVP_PKEY_derive_init_ex
    - OPENSSL_free
    - TEST_ptr
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_evp_pkey_ctx_dup_kdf_fail(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1787,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1788,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1792,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1792,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1795,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1796,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1797,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1799,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1800,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1803,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1804,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1807,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1808,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1809,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_pkey_provided_test.c:1810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1785
    functionDepth: 1
    functionLinenumber: 1785
    functionLinenumberEnd: 1813
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_provided_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:51,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:56,1
    - Dst: fclose
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: atexit_handler
    functionSourceFile: /src/openssl-3.0.15/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fclose
    - fopen
    linkageType: ''
    returnType: void
    signature: void atexit_handler(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: sd_load
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:85,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:86,1
    - Dst: sd_load
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:94,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:95,1
    - Dst: sd_load
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:100,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:101,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:110,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:111,1
    - Dst: myOPENSSL_init_crypto
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:115,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:116,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:124,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:125,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:126,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:127,1
    - Dst: mySSL_CTX_new
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:133,1
    - Dst: myTLS_method
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:133,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:135,1
    - Dst: mySSL_CTX_free
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:138,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:141,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:142,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:143,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:144,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:145,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:146,1
    - Dst: myERR_get_error
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:150,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:151,1
    - Dst: myOPENSSL_version_major
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:159,1
    - Dst: myOPENSSL_version_minor
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:160,1
    - Dst: myOPENSSL_version_patch
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:161,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:162,1
    - Dst: myOPENSSL_atexit
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:167,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:168,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:185,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:186,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:187,1
    - Dst: myDSO_dsobyaddr
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:197,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:199,1
    - Dst: myDSO_free
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:202,1
    - Dst: sd_close
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:207,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:208,1
    - Dst: sd_close
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:214,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:215,1
    - Dst: __GLIBC_PREREQ
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:225,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:232,1
    - Dst: sd_close
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:241,1
    - Dst: sd_close
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:243,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 127
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 245
    functionName: test_lib
    functionSourceFile: /src/openssl-3.0.15/test/shlibloadtest.c
    functionUses: 0
    functionsReached:
    - sd_sym
    - myOPENSSL_atexit
    - myOPENSSL_version_major
    - __GLIBC_PREREQ
    - myOPENSSL_version_patch
    - myTLS_method
    - mySSL_CTX_new
    - myOPENSSL_version_minor
    - myDSO_dsobyaddr
    - myERR_get_error
    - fprintf
    - mySSL_CTX_free
    - sd_close
    - sd_load
    - myDSO_free
    - myOPENSSL_init_crypto
    linkageType: ''
    returnType: int
    signature: int test_lib(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:259,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:265,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:267,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:269,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:271,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:273,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:276,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:283,1
    - Dst: test_lib
      Src: /src/openssl-3.0.15/test/shlibloadtest.c:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 292
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/shlibloadtest.c
    functionUses: 6
    functionsReached:
    - test_lib
    - strcmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:25,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:26,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - libctx
    - name
    argTypes:
    - OSSL_LIB_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: get_kdfbyname_libctx
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_fetch
    - EVP_KDF_free
    - EVP_KDF_CTX_new
    linkageType: ''
    returnType: EVP_KDF_CTX
    signature: EVP_KDF_CTX *get_kdfbyname_libctx(OSSL_LIB_CTX *libctx, const char
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_kdfbyname_libctx
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: get_kdfbyname
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - get_kdfbyname_libctx
    linkageType: ''
    returnType: EVP_KDF_CTX
    signature: EVP_KDF_CTX *get_kdfbyname(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:40,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:46,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:48,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:50,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:51,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:53,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - digest
    - secret
    - seed
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: construct_tls1_prf_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *construct_tls1_prf_params(const char *digest, const char
      *secret,\n    const char *seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:70,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:72,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:73,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:73,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:74,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:74,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:75,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:77,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 80
    functionName: test_kdf_tls1_prf
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:88,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:90,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:91,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:91,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:92,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:92,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:94,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: test_kdf_tls1_prf_invalid_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_false
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf_invalid_digest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:106,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:109,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:110,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:110,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:111,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:111,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:112,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:112,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:114,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: test_kdf_tls1_prf_zero_output_size
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf_zero_output_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:126,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:128,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:129,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:129,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:130,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:130,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:132,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: test_kdf_tls1_prf_empty_secret
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf_empty_secret(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:144,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:146,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:147,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:147,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:148,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:148,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:150,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 137
    functionDepth: 6
    functionLinenumber: 137
    functionLinenumberEnd: 153
    functionName: test_kdf_tls1_prf_1byte_secret
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf_1byte_secret(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:165,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:166,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:166,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:167,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:167,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:168,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:168,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:170,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 173
    functionName: test_kdf_tls1_prf_empty_seed
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf_empty_seed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_tls1_prf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:182,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:184,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:185,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:185,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:186,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:186,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:188,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: test_kdf_tls1_prf_1byte_seed
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_free
    - construct_tls1_prf_params
    - get_kdfbyname
    - OPENSSL_free
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf_1byte_seed(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:196,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:203,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:205,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:206,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:207,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:210,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:211,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:213,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - digest
    - key
    - keylen
    - salt
    - info
    argTypes:
    - char*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 218
    functionName: construct_hkdf_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 1
    functionsReached:
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *construct_hkdf_params(char *digest, char *key,\n    size_t
      keylen, char *salt, char *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:230,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:232,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:233,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:233,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:234,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:234,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:235,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:237,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: test_kdf_hkdf
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - construct_hkdf_params
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:251,1
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:251,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:255,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:256,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:256,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:260,1
    - Dst: EVP_KDF_CTX_gettable_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:260,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:261,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:261,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:265,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:266,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:268,1
    - Dst: EVP_KDF_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:268,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:269,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:272,1
    - Dst: EVP_KDF_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:272,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:277,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:278,1
    - Dst: EVP_KDF_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:278,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:282,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:283,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - expand_only
    - has_digest
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 242
    functionDepth: 6
    functionLinenumber: 242
    functionLinenumberEnd: 285
    functionName: do_kdf_hkdf_gettables
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_size_t
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - construct_hkdf_params
    - TEST_size_t_eq
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - EVP_KDF_CTX_gettable_params
    - OSSL_PARAM_construct_end
    - EVP_KDF_CTX_get_params
    - OSSL_PARAM_locate_const
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int do_kdf_hkdf_gettables(int expand_only, int has_digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kdf_hkdf_gettables
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 7
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: test_kdf_hkdf_gettables
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - do_kdf_hkdf_gettables
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_gettables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kdf_hkdf_gettables
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: test_kdf_hkdf_gettables_expandonly
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - do_kdf_hkdf_gettables
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_gettables_expandonly(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kdf_hkdf_gettables
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 7
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: test_kdf_hkdf_gettables_no_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - do_kdf_hkdf_gettables
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_gettables_no_digest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:308,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:310,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:311,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:311,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:312,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:312,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:314,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: test_kdf_hkdf_invalid_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - construct_hkdf_params
    - TEST_false
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_invalid_digest(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:326,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:326,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:332,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:333,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:334,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:334,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 6
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: test_kdf_hkdf_derive_set_params_fail
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_derive_set_params_fail(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:348,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:348,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:350,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:352,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:353,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:353,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:356,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:357,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:357,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:362,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 364
    functionName: test_kdf_hkdf_set_invalid_mode
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - OSSL_PARAM_construct_int
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_set_invalid_mode(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:373,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:373,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:377,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:379,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:380,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:381,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:381,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - key
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 388
    functionName: do_kdf_hkdf_set_invalid_param
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: int
    signature: int do_kdf_hkdf_set_invalid_param(const char *key, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kdf_hkdf_set_invalid_param
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:392,1
    - Dst: do_kdf_hkdf_set_invalid_param
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:394,1
    - Dst: do_kdf_hkdf_set_invalid_param
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:396,1
    - Dst: do_kdf_hkdf_set_invalid_param
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 390
    functionDepth: 7
    functionLinenumber: 390
    functionLinenumberEnd: 400
    functionName: test_kdf_hkdf_set_ctx_param_fail
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - do_kdf_hkdf_set_invalid_param
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_set_ctx_param_fail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:409,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:412,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:413,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:413,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:414,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:414,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:415,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:415,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:417,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 402
    functionDepth: 6
    functionLinenumber: 402
    functionLinenumberEnd: 420
    functionName: test_kdf_hkdf_zero_output_size
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - construct_hkdf_params
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_zero_output_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:429,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:431,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:432,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:432,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:433,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:433,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:435,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: test_kdf_hkdf_empty_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - construct_hkdf_params
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_empty_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:447,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:449,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:450,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:450,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:451,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:451,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:453,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 440
    functionDepth: 6
    functionLinenumber: 440
    functionLinenumberEnd: 456
    functionName: test_kdf_hkdf_1byte_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - construct_hkdf_params
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_1byte_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_hkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:465,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:467,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:468,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:468,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:469,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:469,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:471,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 474
    functionName: test_kdf_hkdf_empty_salt
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - construct_hkdf_params
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf_empty_salt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:479,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:485,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:486,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:487,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:488,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:489,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:490,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - pass
    - digest
    - salt
    - iter
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 495
    functionName: construct_pbkdf1_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_uint
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *construct_pbkdf1_params(char *pass, char *digest, char
      *salt,\n    unsigned int *iter)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:513,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:513,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:517,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:519,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:520,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:523,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:523,1
    - Dst: construct_pbkdf1_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:526,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:530,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:531,1
    - Dst: get_kdfbyname_libctx
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:532,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:532,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:533,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:533,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:534,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:539,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:540,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:541,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:542,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:543,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 545
    functionName: test_kdf_pbkdf1
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PROVIDER_load
    - EVP_KDF_CTX_set_params
    - OSSL_PROVIDER_unload
    - construct_pbkdf1_params
    - EVP_KDF_CTX_free
    - OSSL_LIB_CTX_free
    - get_kdfbyname_libctx
    - TEST_skip
    - OPENSSL_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf1(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:558,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:558,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:562,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:564,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:565,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:568,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:568,1
    - Dst: construct_pbkdf1_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:571,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:580,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:581,1
    - Dst: get_kdfbyname_libctx
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:581,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:582,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:582,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:583,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:583,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:588,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:589,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:590,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:591,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:592,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 594
    functionName: test_kdf_pbkdf1_key_too_long
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - OSSL_PROVIDER_load
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - OSSL_PROVIDER_unload
    - construct_pbkdf1_params
    - EVP_KDF_CTX_free
    - OSSL_LIB_CTX_free
    - get_kdfbyname_libctx
    - TEST_skip
    - OPENSSL_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf1_key_too_long(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:599,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:605,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:606,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:607,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:608,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:609,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:610,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:612,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - pass
    - digest
    - salt
    - iter
    - mode
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 616
    functionName: construct_pbkdf2_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_uint
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *construct_pbkdf2_params(char *pass, char *digest, char
      *salt,\n    unsigned int *iter, int *mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:633,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:637,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:638,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:638,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:639,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:639,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:640,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:645,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 618
    functionDepth: 6
    functionLinenumber: 618
    functionLinenumberEnd: 648
    functionName: test_kdf_pbkdf2
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_int_gt
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:659,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:663,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:664,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:664,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:665,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:665,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:667,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:667,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:672,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 650
    functionDepth: 6
    functionLinenumber: 650
    functionLinenumberEnd: 675
    functionName: test_kdf_pbkdf2_small_output
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_true
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_small_output(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:690,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:694,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:695,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:695,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:697,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:697,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:698,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:698,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:703,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:704,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 677
    functionDepth: 6
    functionLinenumber: 677
    functionLinenumberEnd: 706
    functionName: test_kdf_pbkdf2_large_output
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_true
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_large_output(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:716,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:720,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:721,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:721,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:723,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:723,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:728,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 708
    functionDepth: 6
    functionLinenumber: 708
    functionLinenumberEnd: 731
    functionName: test_kdf_pbkdf2_small_salt
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_false
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_small_salt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:741,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:745,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:746,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:746,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:748,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:748,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:753,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 756
    functionName: test_kdf_pbkdf2_small_iterations
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_false
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_small_iterations(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:768,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:772,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:773,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:773,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:775,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:775,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:776,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:776,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:780,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:781,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:784,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:784,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:785,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:785,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:790,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 758
    functionDepth: 6
    functionLinenumber: 758
    functionLinenumberEnd: 793
    functionName: test_kdf_pbkdf2_small_salt_pkcs5
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_small_salt_pkcs5(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:805,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:809,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:810,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:810,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:812,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:812,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:813,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:813,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:817,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:818,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:821,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:821,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:822,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:822,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:827,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:828,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 795
    functionDepth: 6
    functionLinenumber: 795
    functionLinenumberEnd: 830
    functionName: test_kdf_pbkdf2_small_iterations_pkcs5
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_small_iterations_pkcs5(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_pbkdf2_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:840,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:844,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:845,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:845,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:847,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:847,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:852,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 832
    functionDepth: 6
    functionLinenumber: 832
    functionLinenumberEnd: 855
    functionName: test_kdf_pbkdf2_invalid_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_false
    - EVP_KDF_CTX_free
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - construct_pbkdf2_params
    linkageType: ''
    returnType: int
    signature: int test_kdf_pbkdf2_invalid_digest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:876,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:878,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:880,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:881,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:882,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:883,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:884,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:887,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:887,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:888,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:888,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:891,1
    - Dst: OSSL_PARAM_set_uint
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:892,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:892,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:893,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:893,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:894,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:896,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 858
    functionDepth: 6
    functionLinenumber: 858
    functionLinenumberEnd: 898
    functionName: test_kdf_scrypt
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_uint
    - OSSL_PARAM_set_uint
    - EVP_KDF_CTX_set_params
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_scrypt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:923,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:925,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:926,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:928,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:931,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:931,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:932,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:932,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:933,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 901
    functionDepth: 6
    functionLinenumber: 901
    functionLinenumberEnd: 937
    functionName: test_kdf_ss_hash
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_ss_hash(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:976,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:978,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:979,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:981,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:984,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:984,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:985,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:985,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:986,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 939
    functionDepth: 6
    functionLinenumber: 939
    functionLinenumberEnd: 990
    functionName: test_kdf_x963
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_x963(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1024,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1026,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1028,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1030,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1032,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1034,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1036,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1038,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1039,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1040,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1040,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1042,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1044,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 997
    functionDepth: 6
    functionLinenumber: 997
    functionLinenumberEnd: 1050
    functionName: test_kdf_kbkdf_6803_128
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_6803_128(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1090,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1092,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1094,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1096,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1098,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1100,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1102,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1104,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1105,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1106,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1106,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1108,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1052
    functionDepth: 6
    functionLinenumber: 1052
    functionLinenumberEnd: 1116
    functionName: test_kdf_kbkdf_6803_256
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_6803_256(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1122,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1128,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1130,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1132,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1134,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1136,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1137,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1138,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1139,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - digest
    - mac
    - key
    - keylen
    - salt
    - info
    argTypes:
    - char*
    - char*
    - unsigned char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1143
    functionName: construct_kbkdf_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - strlen
    - OSSL_PARAM_construct_octet_string
    linkageType: ''
    returnType: OSSL_PARAM
    signature: "OSSL_PARAM *construct_kbkdf_params(char *digest, char *mac, unsigned
      char *key,\n    size_t keylen, char *salt, char *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_kbkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1153,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1154,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1158,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1159,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1160,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1160,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1162,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1145
    functionDepth: 6
    functionLinenumber: 1145
    functionLinenumberEnd: 1165
    functionName: test_kdf_kbkdf_invalid_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_false
    - EVP_KDF_CTX_free
    - construct_kbkdf_params
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_invalid_digest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_kbkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1175,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1176,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1180,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1181,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1182,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1182,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1184,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1167
    functionDepth: 6
    functionLinenumber: 1167
    functionLinenumberEnd: 1187
    functionName: test_kdf_kbkdf_invalid_mac
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_set_params
    - TEST_false
    - EVP_KDF_CTX_free
    - construct_kbkdf_params
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_invalid_mac(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_kbkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1198,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1199,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1203,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1205,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1205,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1206,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1206,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1208,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1189
    functionDepth: 6
    functionLinenumber: 1189
    functionLinenumberEnd: 1211
    functionName: test_kdf_kbkdf_empty_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - construct_kbkdf_params
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_empty_key(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_kbkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1222,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1223,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1226,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1227,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1228,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1228,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1230,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1213
    functionDepth: 6
    functionLinenumber: 1213
    functionLinenumberEnd: 1233
    functionName: test_kdf_kbkdf_1byte_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_free
    - construct_kbkdf_params
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_1byte_key(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_kbkdf_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1244,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1245,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1249,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1250,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1251,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1251,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1252,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1252,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1254,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1235
    functionDepth: 6
    functionLinenumber: 1235
    functionLinenumberEnd: 1257
    functionName: test_kdf_kbkdf_zero_output_size
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_derive
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - EVP_KDF_CTX_free
    - construct_kbkdf_params
    - OPENSSL_free
    - get_kdfbyname
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_zero_output_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1280,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1282,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1284,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1286,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1287,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1288,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1289,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1290,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1292,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1293,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1294,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1294,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1295,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1261
    functionDepth: 6
    functionLinenumber: 1261
    functionLinenumberEnd: 1299
    functionName: test_kdf_kbkdf_8009_prf1
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - strlen
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_8009_prf1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1324,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1326,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1328,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1330,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1331,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1332,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1333,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1334,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1336,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1337,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1338,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1338,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1339,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1301
    functionDepth: 6
    functionLinenumber: 1301
    functionLinenumberEnd: 1343
    functionName: test_kdf_kbkdf_8009_prf2
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - strlen
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_8009_prf2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1384,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1385,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1386,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1387,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1389,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1391,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1392,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1394,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1396,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1397,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1398,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1398,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1399,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1352
    functionDepth: 6
    functionLinenumber: 1352
    functionLinenumberEnd: 1403
    functionName: test_kdf_kbkdf_fixedinfo
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_kbkdf_fixedinfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1427,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1429,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1431,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1432,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1434,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1436,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1439,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1439,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1440,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1440,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1441,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1406
    functionDepth: 6
    functionLinenumber: 1406
    functionLinenumberEnd: 1445
    functionName: test_kdf_ss_hmac
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_ss_hmac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1472,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1475,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1477,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1478,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1480,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1482,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1483,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1486,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1486,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1487,1
    - Dst: EVP_KDF_CTX_get_kdf_size
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1487,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1488,1
    - Dst: EVP_KDF_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1488,1
    - Dst: fips_provider_version_lt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1490,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1491,1
    - Dst: EVP_KDF_CTX_get_kdf_size
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1491,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1492,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1492,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1493,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1495,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1447
    functionDepth: 6
    functionLinenumber: 1447
    functionLinenumberEnd: 1497
    functionName: test_kdf_ss_kmac
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - fips_provider_version_lt
    - OSSL_PARAM_construct_size_t
    - EVP_KDF_CTX_set_params
    - TEST_int_eq
    - OSSL_PARAM_construct_utf8_string
    - TEST_size_t_eq
    - EVP_KDF_CTX_free
    - EVP_KDF_CTX_get_kdf_size
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_ss_kmac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1535,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1537,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1539,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1541,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1543,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1545,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1548,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1548,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1549,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1549,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1550,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1499
    functionDepth: 6
    functionLinenumber: 1499
    functionLinenumberEnd: 1554
    functionName: test_kdf_sshkdf
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_sshkdf(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1567,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1567,1
    - Dst: EVP_KDF_get0_provider
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1567,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1568,1
    - Dst: EVP_KDF_get0_name
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1568,1
    - Dst: EVP_KDF_get0_name
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - kdf1
    - kdf2
    argTypes:
    - EVP_KDF*
    - EVP_KDF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1569
    functionName: test_kdfs_same
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_eq
    - EVP_KDF_get0_provider
    - EVP_KDF_get0_name
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_kdfs_same( EVP_KDF *kdf1, EVP_KDF *kdf2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1577,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1577,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1578,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1578,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1579,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1579,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1579,1
    - Dst: OBJ_obj2nid
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1579,1
    - Dst: test_kdfs_same
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1581,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1583,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1585,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1588,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1588,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1589,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1589,1
    - Dst: test_kdfs_same
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1590,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1593,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1596,1
    - Dst: EVP_KDF_fetch
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1596,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1596,1
    - Dst: test_kdfs_same
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1597,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1599,1
    - Dst: EVP_KDF_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1601,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1571
    functionDepth: 4
    functionLinenumber: 1571
    functionLinenumberEnd: 1605
    functionName: test_kdf_get_kdf
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - EVP_KDF_fetch
    - OBJ_obj2nid
    - EVP_KDF_free
    - OBJ_nid2sn
    - TEST_ptr
    - test_kdfs_same
    linkageType: ''
    returnType: int
    signature: int test_kdf_get_kdf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1626,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1628,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1630,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1632,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1635,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1635,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1636,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1636,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1637,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1608
    functionDepth: 6
    functionLinenumber: 1608
    functionLinenumberEnd: 1641
    functionName: test_kdf_x942_asn1
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_x942_asn1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1662,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1664,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1666,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1668,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1671,1
    - Dst: get_kdfbyname
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1671,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1672,1
    - Dst: EVP_KDF_derive
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1672,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1673,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1644
    functionDepth: 6
    functionLinenumber: 1644
    functionLinenumberEnd: 1677
    functionName: test_kdf_krb5kdf
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_KDF_derive
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_CTX_free
    - get_kdfbyname
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_kdf_krb5kdf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1681,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1682,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1684,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1685,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1687,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1688,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1689,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1690,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1691,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1692,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1693,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1695,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1697,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1698,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1699,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1700,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1701,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1702,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1703,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1704,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1705,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1706,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1707,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1708,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1709,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1710,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1711,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1712,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1713,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1714,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1715,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1716,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1717,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1718,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1719,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1720,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1721,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1722,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1723,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1724,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1726,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1728,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1729,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1730,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1731,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1732,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1734,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_kdf_test.c:1736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1738
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_kdf_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:24,1
    - Dst: ossl_namemap_empty
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:24,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:25,1
    - Dst: ossl_namemap_new
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:25,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:26,1
    - Dst: ossl_namemap_empty
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:26,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:27,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:27,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:28,1
    - Dst: ossl_namemap_empty
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:28,1
    - Dst: ossl_namemap_free
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: test_namemap_empty
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_int_ne
    - ossl_namemap_empty
    - ossl_namemap_free
    - ossl_namemap_new
    - TEST_ptr
    - ossl_namemap_add_name
    linkageType: ''
    returnType: int
    signature: int test_namemap_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:35,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:36,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:37,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:38,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:39,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:40,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:41,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:42,1
    - Dst: ossl_namemap_name2num
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:43,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:45,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:46,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:47,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:48,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:49,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:50,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:51,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:52,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:53,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - nm
    argTypes:
    - OSSL_NAMEMAP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: test_namemap
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_name2num
    - ossl_namemap_add_name
    - TEST_int_ne
    - TEST_int_eq
    linkageType: ''
    returnType: int
    signature: int test_namemap(OSSL_NAMEMAP *nm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_new
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:58,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:59,1
    - Dst: test_namemap
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:59,1
    - Dst: ossl_namemap_free
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: test_namemap_independent
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - ossl_namemap_free
    - test_namemap
    - ossl_namemap_new
    linkageType: ''
    returnType: int
    signature: int test_namemap_independent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:67,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:69,1
    - Dst: test_namemap
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 8
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: test_namemap_stored
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - ossl_namemap_stored
    - test_namemap
    linkageType: ''
    returnType: int
    signature: int test_namemap_stored(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:80,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:83,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:85,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:86,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:88,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:88,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:91,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:92,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:94,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 8
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: test_digestbyname
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - EVP_get_digestbyname
    - TEST_int_eq
    - TEST_int_ne
    - TEST_ptr_eq
    - TEST_ptr
    - ossl_namemap_add_name
    linkageType: ''
    returnType: int
    signature: int test_digestbyname(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_namemap_stored
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:108,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:111,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:113,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:114,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:116,1
    - Dst: ossl_namemap_add_name
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:116,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:119,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:120,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:122,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 8
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: test_cipherbyname
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_namemap_stored
    - TEST_int_eq
    - TEST_int_ne
    - EVP_get_cipherbyname
    - TEST_ptr_eq
    - TEST_ptr
    - ossl_namemap_add_name
    linkageType: ''
    returnType: int
    signature: int test_cipherbyname(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:135,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:138,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:140,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:140,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:141,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:141,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:143,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:143,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:143,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:144,1
    - Dst: EVP_CIPHER_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:144,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:144,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 10
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: test_cipher_is_a
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_gcm
    - EVP_CIPHER_free
    - TEST_false
    - EVP_CIPHER_is_a
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_cipher_is_a(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:157,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:162,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:162,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:163,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:165,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:165,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:165,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:166,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:166,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:166,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 11
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: test_digest_is_a
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_false
    - EVP_sha256
    - EVP_MD_fetch
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: int test_digest_is_a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:175,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:176,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:177,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:178,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:179,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:180,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/namemap_internal_test.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/namemap_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_http.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_trace_get_category_name
      Src: /src/openssl-3.0.15/test/trace_api_test.c:19,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:30,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:31,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:32,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:33,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:34,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:35,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:36,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:37,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:38,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:39,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:40,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:41,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:42,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:43,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:44,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:45,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:46,1
    - Dst: CASE
      Src: /src/openssl-3.0.15/test/trace_api_test.c:47,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/trace_api_test.c:50,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/trace_api_test.c:54,1
    - Dst: OSSL_trace_get_category_num
      Src: /src/openssl-3.0.15/test/trace_api_test.c:57,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/trace_api_test.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 64
    functionName: test_trace_categories
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - CASE
    - TEST_int_eq
    - OSSL_trace_get_category_num
    - OSSL_trace_get_category_name
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_trace_categories(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: CASE
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 290
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/trace_api_test.c:70,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/trace_api_test.c:71,1
    - Dst: OSSL_TRACE_END
      Src: /src/openssl-3.0.15/test/trace_api_test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: put_trace_output
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - OSSL_TRACE_END
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void put_trace_output(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/trace_api_test.c:70,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/trace_api_test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: OSSL_TRACE_BEGIN
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - BIO_printf
    linkageType: ''
    returnType: void
    signature: void OSSL_TRACE_BEGIN(REF_COUNT)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/trace_api_test.c:84,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/trace_api_test.c:84,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/trace_api_test.c:85,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/trace_api_test.c:88,1
    - Dst: OSSL_trace_set_channel
      Src: /src/openssl-3.0.15/test/trace_api_test.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/trace_api_test.c:91,1
    - Dst: OSSL_trace_enabled
      Src: /src/openssl-3.0.15/test/trace_api_test.c:91,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/trace_api_test.c:94,1
    - Dst: OSSL_trace_set_prefix
      Src: /src/openssl-3.0.15/test/trace_api_test.c:94,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/trace_api_test.c:96,1
    - Dst: OSSL_trace_set_suffix
      Src: /src/openssl-3.0.15/test/trace_api_test.c:96,1
    - Dst: put_trace_output
      Src: /src/openssl-3.0.15/test/trace_api_test.c:99,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/trace_api_test.c:100,1
    - Dst: TEST_strn2_eq
      Src: /src/openssl-3.0.15/test/trace_api_test.c:101,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/trace_api_test.c:103,1
    - Dst: OSSL_trace_set_channel
      Src: /src/openssl-3.0.15/test/trace_api_test.c:103,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/trace_api_test.c:109,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 111
    functionName: test_trace_channel
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - OSSL_trace_set_prefix
    - OSSL_trace_set_suffix
    - TEST_int_eq
    - OSSL_trace_enabled
    - BIO_free
    - TEST_strn2_eq
    - OSSL_trace_set_channel
    - put_trace_output
    - BIO_get_mem_data
    - TEST_ptr
    - TEST_true
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_trace_channel(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/trace_api_test.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - buffer
    - count
    - category
    - cmd
    - data
    argTypes:
    - char*
    - size_t
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: trace_cb
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    linkageType: ''
    returnType: size_t
    signature: "size_t trace_cb(const char *buffer, size_t count,\n                       int
      category, int cmd, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/trace_api_test.c:129,1
    - Dst: OSSL_trace_set_callback
      Src: /src/openssl-3.0.15/test/trace_api_test.c:129,1
    - Dst: put_trace_output
      Src: /src/openssl-3.0.15/test/trace_api_test.c:133,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/trace_api_test.c:135,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/trace_api_test.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: test_trace_callback
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_false
    - put_trace_output
    - OSSL_trace_set_callback
    linkageType: ''
    returnType: int
    signature: int test_trace_callback(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/trace_api_test.c:148,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/trace_api_test.c:149,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/trace_api_test.c:153,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/trace_api_test.c:155,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/trace_api_test.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 0
    functionsReached:
    - test_skip_common_options
    - ADD_TEST
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/trace_api_test.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openssl-3.0.15/test/cmactest.c:82,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmactest.c:83,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmactest.c:84,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:84,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmactest.c:85,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:87,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:87,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/cmactest.c:87,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmactest.c:89,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:91,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:93,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:93,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmactest.c:95,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:95,1
    - Dst: EVP_aes_128_xts
      Src: /src/openssl-3.0.15/test/cmactest.c:95,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmactest.c:97,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:97,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-3.0.15/test/cmactest.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 104
    functionName: test_cmac_bad
    functionSourceFile: /src/openssl-3.0.15/test/cmactest.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_new
    - CMAC_Init
    - TEST_false
    - CMAC_Update
    - CMAC_CTX_free
    - EVP_aes_128_xts
    - TEST_ptr
    - EVP_aes_128_cbc
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cmac_bad(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openssl-3.0.15/test/cmactest.c:114,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:116,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:116,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/cmactest.c:117,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:118,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:119,1
    - Dst: CMAC_Final
      Src: /src/openssl-3.0.15/test/cmactest.c:119,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/cmactest.c:122,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmactest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:126,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:126,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/cmactest.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:128,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:129,1
    - Dst: CMAC_Final
      Src: /src/openssl-3.0.15/test/cmactest.c:129,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/cmactest.c:132,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmactest.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:136,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:137,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:137,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:138,1
    - Dst: CMAC_Final
      Src: /src/openssl-3.0.15/test/cmactest.c:138,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/cmactest.c:140,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmactest.c:141,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:144,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:144,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:145,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:145,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:146,1
    - Dst: CMAC_Final
      Src: /src/openssl-3.0.15/test/cmactest.c:146,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/cmactest.c:148,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmactest.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:153,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:153,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/cmactest.c:153,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:154,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:154,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:155,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:156,1
    - Dst: CMAC_Final
      Src: /src/openssl-3.0.15/test/cmactest.c:156,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/cmactest.c:158,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmactest.c:159,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-3.0.15/test/cmactest.c:164,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 166
    functionName: test_cmac_run
    functionSourceFile: /src/openssl-3.0.15/test/cmactest.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_new
    - EVP_aes_256_cbc
    - CMAC_Init
    - CMAC_Final
    - CMAC_Update
    - CMAC_CTX_free
    - TEST_str_eq
    - EVP_aes_128_cbc
    - TEST_true
    - pt
    linkageType: ''
    returnType: int
    signature: int test_cmac_run(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_CTX_new
      Src: /src/openssl-3.0.15/test/cmactest.c:176,1
    - Dst: CMAC_CTX_new
      Src: /src/openssl-3.0.15/test/cmactest.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmactest.c:178,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmactest.c:178,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:181,1
    - Dst: CMAC_Init
      Src: /src/openssl-3.0.15/test/cmactest.c:181,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/cmactest.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:183,1
    - Dst: CMAC_Update
      Src: /src/openssl-3.0.15/test/cmactest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:184,1
    - Dst: CMAC_CTX_copy
      Src: /src/openssl-3.0.15/test/cmactest.c:184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmactest.c:185,1
    - Dst: CMAC_Final
      Src: /src/openssl-3.0.15/test/cmactest.c:185,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/cmactest.c:188,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmactest.c:189,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-3.0.15/test/cmactest.c:194,1
    - Dst: CMAC_CTX_free
      Src: /src/openssl-3.0.15/test/cmactest.c:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 197
    functionName: test_cmac_copy
    functionSourceFile: /src/openssl-3.0.15/test/cmactest.c
    functionUses: 0
    functionsReached:
    - CMAC_CTX_new
    - CMAC_CTX_copy
    - CMAC_Init
    - CMAC_Final
    - CMAC_Update
    - CMAC_CTX_free
    - TEST_str_eq
    - TEST_ptr
    - EVP_aes_128_cbc
    - TEST_true
    - pt
    linkageType: ''
    returnType: int
    signature: int test_cmac_copy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/cmactest.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - md
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: pt
    functionSourceFile: /src/openssl-3.0.15/test/cmactest.c
    functionUses: 301
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *pt(unsigned char *md, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmactest.c:211,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmactest.c:212,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmactest.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmactest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_cmp_util.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:47,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:47,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:53,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:53,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:56,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:56,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:58,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:59,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:61,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:62,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:63,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:67,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:67,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:70,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:70,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:71,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:74,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:75,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:77,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:78,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:80,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:82,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:83,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:86,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:87,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:89,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:90,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:99,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:99,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:102,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:102,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:103,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:106,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:107,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:109,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:110,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:111,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:114,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:116,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:117,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:125,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:125,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:126,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:128,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:128,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:131,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:132,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:134,1
    - Dst: BIO_flush
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:135,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:136,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:137,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:138,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:140,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:145,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:145,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:146,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:148,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:148,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:149,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:153,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:155,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:156,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:158,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:160,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:161,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:164,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:165,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:167,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:168,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:177,1
    - Dst: BIO_f_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:178,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:180,1
    - Dst: BIO_set_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:180,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:181,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:184,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:185,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:187,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:188,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:189,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:192,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:194,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:195,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:203,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 144
    argCount: 3
    argNames:
    - cipher
    - key
    - iv
    argTypes:
    - EVP_CIPHER*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 205
    functionName: do_bio_cipher
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BIO_new
    - BIO_flush
    - BIO_read
    - TEST_uchar_eq
    - BIO_new_mem_buf
    - BIO_free_all
    - BIO_f_cipher
    - memset
    - TEST_info
    - BIO_set_cipher
    - TEST_ptr
    - RAND_bytes
    - TEST_true
    - TEST_int_gt
    - BIO_push
    linkageType: ''
    returnType: int
    signature: "int do_bio_cipher(const EVP_CIPHER* cipher, const unsigned char* key,\n
      \   const unsigned char* iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:212,1
    - Dst: do_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cipher
    - idx
    argTypes:
    - EVP_CIPHER*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 7
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: do_test_bio_cipher
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_bio_cipher
    linkageType: ''
    returnType: int
    signature: int do_test_bio_cipher(const EVP_CIPHER* cipher, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:221,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 8
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: test_bio_enc_aes_128_cbc
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_128_cbc(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:226,1
    - Dst: EVP_aes_128_ctr
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 8
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: test_bio_enc_aes_128_ctr
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_aes_128_ctr
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_128_ctr(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:231,1
    - Dst: EVP_aes_256_cfb
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 8
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: test_bio_enc_aes_256_cfb
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_aes_256_cfb
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_256_cfb(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:236,1
    - Dst: EVP_aes_256_ofb
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 8
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: test_bio_enc_aes_256_ofb
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_aes_256_ofb
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_aes_256_ofb(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:242,1
    - Dst: EVP_chacha20
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 8
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: test_bio_enc_chacha20
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_chacha20
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_chacha20(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_bio_cipher
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:248,1
    - Dst: EVP_chacha20_poly1305
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 8
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: test_bio_enc_chacha20_poly1305
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - do_test_bio_cipher
    - EVP_chacha20_poly1305
    linkageType: ''
    returnType: int
    signature: int test_bio_enc_chacha20_poly1305(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:255,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:256,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:257,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:258,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:260,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bio_enc_test.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 266
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bio_enc_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_pem.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/pemtest.c:35,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/pemtest.c:35,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pemtest.c:43,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:44,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/pemtest.c:44,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:45,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/pemtest.c:45,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:46,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/pemtest.c:46,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:47,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-3.0.15/test/pemtest.c:47,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pemtest.c:50,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/pemtest.c:50,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pemtest.c:50,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pemtest.c:51,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pemtest.c:51,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/pemtest.c:52,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/pemtest.c:52,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pemtest.c:52,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pemtest.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:57,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:59,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: test_b64
    functionSourceFile: /src/openssl-3.0.15/test/pemtest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_ex
    - BIO_new
    - TEST_int_eq
    - BIO_free
    - OPENSSL_free
    - strlen
    - memcmp
    - TEST_ptr
    - TEST_true
    - BIO_printf
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_b64(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/pemtest.c:65,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/pemtest.c:65,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pemtest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:72,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/pemtest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:73,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/pemtest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:74,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/pemtest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pemtest.c:76,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-3.0.15/test/pemtest.c:76,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pemtest.c:78,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pemtest.c:81,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:82,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:83,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: test_invalid
    functionSourceFile: /src/openssl-3.0.15/test/pemtest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_ex
    - BIO_new
    - BIO_free
    - OPENSSL_free
    - TEST_ptr
    - TEST_true
    - BIO_printf
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_invalid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pemtest.c:92,1
    - Dst: load_pkey_pem
      Src: /src/openssl-3.0.15/test/pemtest.c:92,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/pemtest.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: test_cert_key_cert
    functionSourceFile: /src/openssl-3.0.15/test/pemtest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EVP_PKEY_free
    - load_pkey_pem
    linkageType: ''
    returnType: int
    signature: int test_cert_key_cert(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/pemtest.c:111,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pemtest.c:111,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pemtest.c:112,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/pemtest.c:116,1
    - Dst: PEM_read_bio_ex
      Src: /src/openssl-3.0.15/test/pemtest.c:116,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:121,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:122,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/pemtest.c:123,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pemtest.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 126
    functionName: test_empty_payload
    functionSourceFile: /src/openssl-3.0.15/test/pemtest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_ex
    - BIO_new_mem_buf
    - BIO_free
    - TEST_false
    - OPENSSL_free
    - strlen
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_empty_payload(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/pemtest.c:141,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pemtest.c:141,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pemtest.c:142,1
    - Dst: PEM_read_bio_Parameters
      Src: /src/openssl-3.0.15/test/pemtest.c:146,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/pemtest.c:147,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/pemtest.c:152,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/pemtest.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: test_protected_params
    functionSourceFile: /src/openssl-3.0.15/test/pemtest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - BIO_new_mem_buf
    - BIO_free
    - EVP_PKEY_free
    - strlen
    - TEST_ptr
    - PEM_read_bio_Parameters
    linkageType: ''
    returnType: int
    signature: int test_protected_params(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pemtest.c:159,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/pemtest.c:159,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pemtest.c:161,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/pemtest.c:161,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pemtest.c:162,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pemtest.c:163,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pemtest.c:164,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pemtest.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pemtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - TEST_ptr
    - test_get_argument
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:65,1
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:65,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:67,1
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: test_binary_op
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:77,1
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:77,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:79,1
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: test_binary_op_8
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: "int 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:88,1
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:88,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:90,1
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: test_binary_op_s
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - op
    - TEST_size_t_eq
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: "int test_binary_op_s(size_t (*op) (size_t a, size_t b),\n                            const
      char *op_name, size_t a, size_t b,\n                            int is_true)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:99,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/constant_time_test.c:102,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/constant_time_test.c:103,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/constant_time_test.c:106,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/constant_time_test.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - op_name
    - a
    - b
    - is_true
    argTypes:
    - char*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: test_binary_op_64
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - op
    - BIO_printf
    linkageType: ''
    returnType: int
    signature: "int test_binary_op_64(uint64_t (*op)(uint64_t a, uint64_t b),\n                             const
      char *op_name, uint64_t a, uint64_t b,\n                             int is_true)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:117,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/test/constant_time_test.c:117,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:119,1
    - Dst: constant_time_is_zero
      Src: /src/openssl-3.0.15/test/constant_time_test.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: test_is_zero
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_is_zero
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_is_zero(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:128,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:128,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:130,1
    - Dst: constant_time_is_zero_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: test_is_zero_8
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_is_zero_8
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_is_zero_8(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/constant_time_test.c:139,1
    - Dst: constant_time_is_zero_32
      Src: /src/openssl-3.0.15/test/constant_time_test.c:139,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/constant_time_test.c:141,1
    - Dst: constant_time_is_zero_32
      Src: /src/openssl-3.0.15/test/constant_time_test.c:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: test_is_zero_32
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_is_zero_32
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_is_zero_32(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:150,1
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:150,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:152,1
    - Dst: constant_time_is_zero_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: test_is_zero_s
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_is_zero_s
    - TEST_size_t_eq
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_is_zero_s(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:159,1
    - Dst: constant_time_select
      Src: /src/openssl-3.0.15/test/constant_time_test.c:159,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:161,1
    - Dst: constant_time_select
      Src: /src/openssl-3.0.15/test/constant_time_test.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: test_select
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_select(unsigned int a, unsigned int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:168,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:168,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:170,1
    - Dst: constant_time_select_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: test_select_8
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_8
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_select_8(unsigned char a, unsigned char b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/constant_time_test.c:177,1
    - Dst: constant_time_select_32
      Src: /src/openssl-3.0.15/test/constant_time_test.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/constant_time_test.c:179,1
    - Dst: constant_time_select_32
      Src: /src/openssl-3.0.15/test/constant_time_test.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: test_select_32
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_32
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_select_32(uint32_t a, uint32_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:186,1
    - Dst: constant_time_select_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:186,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:188,1
    - Dst: constant_time_select_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: test_select_s
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_s
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_select_s(size_t a, size_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: constant_time_select_64
      Src: /src/openssl-3.0.15/test/constant_time_test.c:195,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/constant_time_test.c:198,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/constant_time_test.c:199,1
    - Dst: constant_time_select_64
      Src: /src/openssl-3.0.15/test/constant_time_test.c:202,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/constant_time_test.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: test_select_64
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_select_64
    - BIO_printf
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int test_select_64(uint64_t a, uint64_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:212,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/test/constant_time_test.c:212,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:214,1
    - Dst: constant_time_select_int
      Src: /src/openssl-3.0.15/test/constant_time_test.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: test_select_int
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - constant_time_select_int
    linkageType: ''
    returnType: int
    signature: int test_select_int(int a, int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:221,1
    - Dst: constant_time_eq_int_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:221,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:223,1
    - Dst: constant_time_eq_int_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: test_eq_int_8
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - constant_time_eq_int_8
    linkageType: ''
    returnType: int
    signature: int test_eq_int_8(int a, int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:230,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:230,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:232,1
    - Dst: constant_time_eq_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: test_eq_s
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - constant_time_eq_s
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: int test_eq_s(size_t a, size_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:239,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/test/constant_time_test.c:239,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:241,1
    - Dst: constant_time_eq_int
      Src: /src/openssl-3.0.15/test/constant_time_test.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: test_eq_int
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - constant_time_eq_int
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_eq_int(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/constant_time_test.c:248,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:248,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: test_sizeofs
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_sizeofs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:259,1
    - Dst: test_select
      Src: /src/openssl-3.0.15/test/constant_time_test.c:262,1
    - Dst: test_binary_op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:263,1
    - Dst: test_binary_op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:265,1
    - Dst: test_binary_op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:267,1
    - Dst: test_binary_op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:269,1
    - Dst: test_binary_op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:271,1
    - Dst: test_binary_op
      Src: /src/openssl-3.0.15/test/constant_time_test.c:273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: test_binops
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_binary_op
    - test_select
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_binops(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:286,1
    - Dst: test_binary_op_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:289,1
    - Dst: test_binary_op_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:291,1
    - Dst: test_binary_op_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:293,1
    - Dst: test_binary_op_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:295,1
    - Dst: test_binary_op_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:297,1
    - Dst: test_binary_op_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: test_binops_8
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_binary_op_8
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_binops_8(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:312,1
    - Dst: test_select_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:315,1
    - Dst: test_eq_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:316,1
    - Dst: test_binary_op_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:317,1
    - Dst: test_binary_op_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:319,1
    - Dst: test_binary_op_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:321,1
    - Dst: test_binary_op_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:323,1
    - Dst: test_binary_op_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:325,1
    - Dst: test_binary_op_s
      Src: /src/openssl-3.0.15/test/constant_time_test.c:327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: test_binops_s
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_select_s
    - test_binary_op_s
    - test_eq_s
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_binops_s(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:340,1
    - Dst: test_select_int
      Src: /src/openssl-3.0.15/test/constant_time_test.c:343,1
    - Dst: test_eq_int
      Src: /src/openssl-3.0.15/test/constant_time_test.c:344,1
    - Dst: test_eq_int_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 349
    functionName: test_signed
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_eq_int
    - test_select_int
    - test_eq_int_8
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_signed(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_select_8
      Src: /src/openssl-3.0.15/test/constant_time_test.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: test_8values
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_select_8
    linkageType: ''
    returnType: int
    signature: int test_8values(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:372,1
    - Dst: test_select_32
      Src: /src/openssl-3.0.15/test/constant_time_test.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 379
    functionName: test_32values
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - test_select_32
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_32values(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:386,1
    - Dst: test_binary_op_64
      Src: /src/openssl-3.0.15/test/constant_time_test.c:389,1
    - Dst: test_select_64
      Src: /src/openssl-3.0.15/test/constant_time_test.c:391,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/constant_time_test.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: test_64values
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - test_binary_op_64
    - test_select_64
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_64values(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/constant_time_test.c:401,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:402,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:402,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:403,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:403,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:404,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:404,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:405,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:405,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:406,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:406,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:407,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:407,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:408,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:408,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:409,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:409,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:410,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:410,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:411,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:411,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/constant_time_test.c:412,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/constant_time_test.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/constant_time_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_byname_test.c:21,1
    - Dst: EVP_get_digestbyname
      Src: /src/openssl-3.0.15/test/evp_byname_test.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: test_evp_get_digestbyname
    functionSourceFile: /src/openssl-3.0.15/test/evp_byname_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EVP_get_digestbyname
    linkageType: ''
    returnType: int
    signature: int test_evp_get_digestbyname(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_byname_test.c:30,1
    - Dst: EVP_get_cipherbyname
      Src: /src/openssl-3.0.15/test/evp_byname_test.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: test_evp_get_cipherbyname
    functionSourceFile: /src/openssl-3.0.15/test/evp_byname_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EVP_get_cipherbyname
    linkageType: ''
    returnType: int
    signature: int test_evp_get_cipherbyname(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_byname_test.c:37,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_byname_test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_byname_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_dsa.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_ts.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_kdf.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/test/drbgtest.c:51,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/test/drbgtest.c:53,1
    - Dst: RAND_METHOD*::bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:55,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/test/drbgtest.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - drbg
    - buf
    - num
    argTypes:
    - EVP_RAND_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: gen_bytes
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_generate
    - RAND_OpenSSL
    - RAND_get_rand_method
    - RAND_METHOD*::bytes
    linkageType: ''
    returnType: int
    signature: int gen_bytes(EVP_RAND_CTX *drbg, unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:67,1
    - Dst: RAND_get0_public
      Src: /src/openssl-3.0.15/test/drbgtest.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 14
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: rand_bytes
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 1
    functionsReached:
    - gen_bytes
    - RAND_get0_public
    linkageType: ''
    returnType: int
    signature: int rand_bytes(unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:72,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/test/drbgtest.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 14
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: rand_priv_bytes
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - gen_bytes
    - RAND_get0_private
    linkageType: ''
    returnType: int
    signature: int rand_priv_bytes(unsigned char *buf, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RAND_get_state
      Src: /src/openssl-3.0.15/test/drbgtest.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: state
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 71
    functionsReached:
    - EVP_RAND_get_state
    linkageType: ''
    returnType: int
    signature: int state(EVP_RAND_CTX *drbg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/drbgtest.c:92,1
    - Dst: EVP_RAND_CTX_get_params
      Src: /src/openssl-3.0.15/test/drbgtest.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - drbg
    - name
    argTypes:
    - EVP_RAND_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: query_rand_uint
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_uint
    - EVP_RAND_CTX_get_params
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int query_rand_uint(EVP_RAND_CTX *drbg, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: DRBG_UINT
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DRBG_UINT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: prov_rand
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PROV_DRBG
    signature: PROV_DRBG *prov_rand(EVP_RAND_CTX *drbg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prov_rand
      Src: /src/openssl-3.0.15/test/drbgtest.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - drbg
    - n
    argTypes:
    - EVP_RAND_CTX*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: set_reseed_counter
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - prov_rand
    linkageType: ''
    returnType: void
    signature: void set_reseed_counter(EVP_RAND_CTX *drbg, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:119,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: inc_reseed_counter
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - set_reseed_counter
    - reseed_counter
    linkageType: ''
    returnType: void
    signature: void inc_reseed_counter(EVP_RAND_CTX *drbg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_time_t
      Src: /src/openssl-3.0.15/test/drbgtest.c:127,1
    - Dst: EVP_RAND_CTX_get_params
      Src: /src/openssl-3.0.15/test/drbgtest.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: reseed_time
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_time_t
    - EVP_RAND_CTX_get_params
    linkageType: ''
    returnType: time_t
    signature: time_t reseed_time(EVP_RAND_CTX *drbg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/test/drbgtest.c:140,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:144,1
    - Dst: EVP_RAND_get0_provider
      Src: /src/openssl-3.0.15/test/drbgtest.c:147,1
    - Dst: EVP_RAND_CTX_get0_rand
      Src: /src/openssl-3.0.15/test/drbgtest.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:148,1
    - Dst: OSSL_PROVIDER_get0_name
      Src: /src/openssl-3.0.15/test/drbgtest.c:150,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/drbgtest.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 13
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: using_fips_rng
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - EVP_RAND_CTX_get0_rand
    - OSSL_PROVIDER_get0_name
    - EVP_RAND_get0_provider
    - strcmp
    - TEST_ptr
    - RAND_get0_primary
    linkageType: ''
    returnType: int
    signature: int using_fips_rng(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - drbg
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: disable_crngt
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int disable_crngt(EVP_RAND_CTX *drbg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:208,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:208,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:209,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:209,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:210,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:210,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/drbgtest.c:218,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:222,1
    - Dst: rand_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:222,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:224,1
    - Dst: rand_priv_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:224,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/drbgtest.c:227,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:235,1
    - Dst: state
      Src: /src/openssl-3.0.15/test/drbgtest.c:235,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:236,1
    - Dst: state
      Src: /src/openssl-3.0.15/test/drbgtest.c:236,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:237,1
    - Dst: state
      Src: /src/openssl-3.0.15/test/drbgtest.c:237,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:242,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:242,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:248,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:248,1
    - Dst: TEST_uint_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:249,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:249,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:250,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:256,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:256,1
    - Dst: TEST_uint_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:257,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:257,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:258,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-3.0.15/test/drbgtest.c:264,1
    - Dst: reseed_time
      Src: /src/openssl-3.0.15/test/drbgtest.c:264,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-3.0.15/test/drbgtest.c:265,1
    - Dst: reseed_time
      Src: /src/openssl-3.0.15/test/drbgtest.c:265,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:269,1
    - Dst: reseed_time
      Src: /src/openssl-3.0.15/test/drbgtest.c:269,1
    - Dst: reseed_time
      Src: /src/openssl-3.0.15/test/drbgtest.c:269,1
    - Dst: TEST_time_t_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:270,1
    - Dst: reseed_time
      Src: /src/openssl-3.0.15/test/drbgtest.c:270,1
    - Dst: reseed_time
      Src: /src/openssl-3.0.15/test/drbgtest.c:270,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/drbgtest.c:273,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 36
    argCount: 10
    argNames:
    - expect_success
    - primary
    - public
    - private
    - public_random
    - private_random
    - expect_primary_reseed
    - expect_public_reseed
    - expect_private_reseed
    - reseed_when
    argTypes:
    - int
    - EVP_RAND_CTX*
    - EVP_RAND_CTX*
    - EVP_RAND_CTX*
    - unsigned char*
    - unsigned char*
    - int
    - int
    - int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 180
    functionDepth: 15
    functionLinenumber: 180
    functionLinenumberEnd: 277
    functionName: test_drbg_reseed
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - TEST_time_t_ge
    - TEST_uint_ge
    - rand_bytes
    - reseed_counter
    - TEST_int_ne
    - time
    - TEST_int_eq
    - TEST_int_ge
    - reseed_time
    - ERR_clear_error
    - TEST_time_t_le
    - rand_priv_bytes
    - state
    linkageType: ''
    returnType: int
    signature: "int test_drbg_reseed(int expect_success,\n                            EVP_RAND_CTX
      *primary,\n                            EVP_RAND_CTX *public,\n                            EVP_RAND_CTX
      *private,\n                            unsigned char *public_random,\n                            unsigned
      char *private_random,\n                            int expect_primary_reseed,\n
      \                           int expect_public_reseed,\n                            int
      expect_private_reseed,\n                            time_t reseed_when\n                           )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/drbgtest.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 318
    functionName: compare_drbg_fork_result
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare_drbg_fork_result(const void * left, const void * right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/drbgtest.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: compare_rand_chunk
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare_rand_chunk(const void * left, const void * right)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:346,1
    - Dst: pipe
      Src: /src/openssl-3.0.15/test/drbgtest.c:346,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/drbgtest.c:349,1
    - Dst: fork
      Src: /src/openssl-3.0.15/test/drbgtest.c:349,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/drbgtest.c:350,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/drbgtest.c:351,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/drbgtest.c:356,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:359,1
    - Dst: waitpid
      Src: /src/openssl-3.0.15/test/drbgtest.c:359,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:361,1
    - Dst: read
      Src: /src/openssl-3.0.15/test/drbgtest.c:361,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:367,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:372,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/drbgtest.c:378,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/drbgtest.c:385,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:388,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:388,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:391,1
    - Dst: write
      Src: /src/openssl-3.0.15/test/drbgtest.c:391,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/drbgtest.c:398,1
    - Dst: exit
      Src: /src/openssl-3.0.15/test/drbgtest.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - primary
    - public
    - private
    - result
    argTypes:
    - EVP_RAND_CTX*
    - EVP_RAND_CTX*
    - EVP_RAND_CTX*
    - drbg_fork_result[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 336
    functionDepth: 16
    functionLinenumber: 336
    functionLinenumberEnd: 403
    functionName: test_drbg_reseed_in_child
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - write
    - memcpy
    - TEST_int_ge
    - TEST_int_eq
    - pipe
    - read
    - test_drbg_reseed
    - exit
    - fork
    - close
    - TEST_true
    - waitpid
    linkageType: ''
    returnType: int
    signature: "int test_drbg_reseed_in_child(EVP_RAND_CTX *primary,\n                                     EVP_RAND_CTX
      *public,\n                                     EVP_RAND_CTX *private,\n                                     drbg_fork_result
      result[2])"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/openssl-3.0.15/test/drbgtest.c:410,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/test/drbgtest.c:411,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/drbgtest.c:420,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/drbgtest.c:426,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:427,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:430,1
    - Dst: test_drbg_reseed_in_child
      Src: /src/openssl-3.0.15/test/drbgtest.c:430,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:440,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:440,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:446,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:447,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:452,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:457,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/drbgtest.c:461,1
    - Dst: qsort
      Src: /src/openssl-3.0.15/test/drbgtest.c:466,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/drbgtest.c:479,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/drbgtest.c:485,1
    - Dst: qsort
      Src: /src/openssl-3.0.15/test/drbgtest.c:492,1
    - Dst: compare_rand_chunk
      Src: /src/openssl-3.0.15/test/drbgtest.c:496,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/drbgtest.c:502,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/test/drbgtest.c:509,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/drbgtest.c:511,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/drbgtest.c:518,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 3
    argNames:
    - primary
    - public
    - private
    argTypes:
    - EVP_RAND_CTX*
    - EVP_RAND_CTX*
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 405
    functionDepth: 17
    functionLinenumber: 405
    functionLinenumberEnd: 523
    functionName: test_rand_reseed_on_fork
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_note
    - memcpy
    - sprintf
    - test_drbg_reseed
    - getpid
    - OPENSSL_free
    - compare_rand_chunk
    - getenv
    - OPENSSL_buf2hexstr
    - strcpy
    - memset
    - test_drbg_reseed_in_child
    - qsort
    linkageType: ''
    returnType: int
    signature: "int test_rand_reseed_on_fork(EVP_RAND_CTX *primary,\n                                    EVP_RAND_CTX
      *public,\n                                    EVP_RAND_CTX *private)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:532,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/test/drbgtest.c:532,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:533,1
    - Dst: RAND_get0_public
      Src: /src/openssl-3.0.15/test/drbgtest.c:533,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:534,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/test/drbgtest.c:534,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:538,1
    - Dst: test_rand_reseed_on_fork
      Src: /src/openssl-3.0.15/test/drbgtest.c:538,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:542,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:542,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:542,1
    - Dst: RAND_priv_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 525
    functionDepth: 18
    functionLinenumber: 525
    functionLinenumberEnd: 546
    functionName: test_rand_fork_safety
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_get0_public
    - RAND_priv_bytes
    - RAND_get0_private
    - TEST_ptr
    - RAND_bytes
    - TEST_true
    - RAND_get0_primary
    - TEST_int_gt
    - test_rand_reseed_on_fork
    linkageType: ''
    returnType: int
    signature: int test_rand_fork_safety(int i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: using_fips_rng
      Src: /src/openssl-3.0.15/test/drbgtest.c:561,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/drbgtest.c:562,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:566,1
    - Dst: RAND_get_rand_method
      Src: /src/openssl-3.0.15/test/drbgtest.c:566,1
    - Dst: RAND_OpenSSL
      Src: /src/openssl-3.0.15/test/drbgtest.c:566,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:571,1
    - Dst: RAND_get0_primary
      Src: /src/openssl-3.0.15/test/drbgtest.c:571,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:572,1
    - Dst: RAND_get0_public
      Src: /src/openssl-3.0.15/test/drbgtest.c:572,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:573,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/test/drbgtest.c:573,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:577,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:578,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:579,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:580,1
    - Dst: prov_rand
      Src: /src/openssl-3.0.15/test/drbgtest.c:580,1
    - Dst: prov_rand
      Src: /src/openssl-3.0.15/test/drbgtest.c:580,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:581,1
    - Dst: prov_rand
      Src: /src/openssl-3.0.15/test/drbgtest.c:581,1
    - Dst: prov_rand
      Src: /src/openssl-3.0.15/test/drbgtest.c:581,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:585,1
    - Dst: disable_crngt
      Src: /src/openssl-3.0.15/test/drbgtest.c:585,1
    - Dst: EVP_RAND_uninstantiate
      Src: /src/openssl-3.0.15/test/drbgtest.c:589,1
    - Dst: EVP_RAND_uninstantiate
      Src: /src/openssl-3.0.15/test/drbgtest.c:590,1
    - Dst: EVP_RAND_uninstantiate
      Src: /src/openssl-3.0.15/test/drbgtest.c:591,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:596,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:596,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:605,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:605,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:615,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:616,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:616,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:626,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:627,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:628,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:628,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:638,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:639,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:640,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:640,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/drbgtest.c:647,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/drbgtest.c:657,1
    - Dst: RAND_add
      Src: /src/openssl-3.0.15/test/drbgtest.c:658,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:659,1
    - Dst: test_drbg_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:659,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 554
    functionDepth: 16
    functionLinenumber: 554
    functionLinenumberEnd: 670
    functionName: test_rand_reseed
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_get0_public
    - inc_reseed_counter
    - time
    - EVP_RAND_uninstantiate
    - using_fips_rng
    - TEST_ptr_ne
    - RAND_get0_primary
    - disable_crngt
    - RAND_get_rand_method
    - memset
    - TEST_true
    - TEST_skip
    - prov_rand
    - TEST_ptr
    - test_drbg_reseed
    - RAND_OpenSSL
    - RAND_get0_private
    - TEST_ptr_eq
    - RAND_add
    linkageType: ''
    returnType: int
    signature: int test_rand_reseed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/drbgtest.c:680,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/drbgtest.c:682,1
    - Dst: EVP_RAND_CTX_set_params
      Src: /src/openssl-3.0.15/test/drbgtest.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - drbg
    - t
    argTypes:
    - EVP_RAND_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 684
    functionName: set_reseed_time_interval
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_RAND_CTX_set_params
    linkageType: ''
    returnType: int
    signature: int set_reseed_time_interval(EVP_RAND_CTX *drbg, int t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/drbgtest.c:689,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:692,1
    - Dst: RAND_get0_public
      Src: /src/openssl-3.0.15/test/drbgtest.c:692,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:693,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/test/drbgtest.c:693,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:694,1
    - Dst: set_reseed_time_interval
      Src: /src/openssl-3.0.15/test/drbgtest.c:694,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:695,1
    - Dst: set_reseed_time_interval
      Src: /src/openssl-3.0.15/test/drbgtest.c:695,1
    - Dst: rand_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:701,1
    - Dst: rand_priv_bytes
      Src: /src/openssl-3.0.15/test/drbgtest.c:703,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/drbgtest.c:706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 686
    functionDepth: 15
    functionLinenumber: 686
    functionLinenumberEnd: 707
    functionName: run_multi_thread_test
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - RAND_get0_public
    - rand_bytes
    - time
    - set_reseed_time_interval
    - RAND_get0_private
    - TEST_ptr
    - TEST_true
    - rand_priv_bytes
    linkageType: ''
    returnType: void
    signature: void run_multi_thread_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_multi_thread_test
      Src: /src/openssl-3.0.15/test/drbgtest.c:715,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-3.0.15/test/drbgtest.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 713
    functionDepth: 16
    functionLinenumber: 713
    functionLinenumberEnd: 722
    functionName: thread_run
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_thread_stop
    - run_multi_thread_test
    linkageType: ''
    returnType: DWORD
    signature: DWORD thread_run(LPVOID arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openssl-3.0.15/test/drbgtest.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: run_thread
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 6
    functionsReached:
    - CreateThread
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/openssl-3.0.15/test/drbgtest.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 6
    functionsReached:
    - WaitForSingleObject
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_multi_thread_test
      Src: /src/openssl-3.0.15/test/drbgtest.c:741,1
    - Dst: OPENSSL_thread_stop
      Src: /src/openssl-3.0.15/test/drbgtest.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 739
    functionDepth: 16
    functionLinenumber: 739
    functionLinenumberEnd: 748
    functionName: thread_run
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_thread_stop
    - run_multi_thread_test
    linkageType: ''
    returnType: void
    signature: void *thread_run(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/openssl-3.0.15/test/drbgtest.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: run_thread
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 6
    functionsReached:
    - pthread_create
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/openssl-3.0.15/test/drbgtest.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 6
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/drbgtest.c:774,1
    - Dst: run_multi_thread_test
      Src: /src/openssl-3.0.15/test/drbgtest.c:775,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/drbgtest.c:777,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:779,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:781,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 768
    functionDepth: 16
    functionLinenumber: 768
    functionLinenumberEnd: 785
    functionName: test_multi_thread
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - run_thread
    - wait_for_thread
    - TEST_true
    - run_multi_thread_test
    linkageType: ''
    returnType: int
    signature: int test_multi_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/drbgtest.c:794,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/drbgtest.c:796,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:798,1
    - Dst: EVP_RAND_fetch
      Src: /src/openssl-3.0.15/test/drbgtest.c:798,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:799,1
    - Dst: EVP_RAND_CTX_new
      Src: /src/openssl-3.0.15/test/drbgtest.c:799,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:800,1
    - Dst: EVP_RAND_CTX_set_params
      Src: /src/openssl-3.0.15/test/drbgtest.c:800,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/test/drbgtest.c:801,1
    - Dst: EVP_RAND_free
      Src: /src/openssl-3.0.15/test/drbgtest.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - parent
    argTypes:
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 788
    functionDepth: 11
    functionLinenumber: 788
    functionLinenumberEnd: 806
    functionName: new_drbg
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 3
    functionsReached:
    - EVP_RAND_free
    - EVP_RAND_CTX_set_params
    - EVP_RAND_CTX_new
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - TEST_true
    - EVP_RAND_CTX_free
    - EVP_RAND_fetch
    linkageType: ''
    returnType: EVP_RAND_CTX
    signature: EVP_RAND_CTX *new_drbg(EVP_RAND_CTX *parent)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: using_fips_rng
      Src: /src/openssl-3.0.15/test/drbgtest.c:814,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/drbgtest.c:815,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:818,1
    - Dst: new_drbg
      Src: /src/openssl-3.0.15/test/drbgtest.c:818,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:819,1
    - Dst: disable_crngt
      Src: /src/openssl-3.0.15/test/drbgtest.c:819,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:820,1
    - Dst: EVP_RAND_instantiate
      Src: /src/openssl-3.0.15/test/drbgtest.c:820,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:821,1
    - Dst: new_drbg
      Src: /src/openssl-3.0.15/test/drbgtest.c:821,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:822,1
    - Dst: EVP_RAND_instantiate
      Src: /src/openssl-3.0.15/test/drbgtest.c:822,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/drbgtest.c:823,1
    - Dst: new_drbg
      Src: /src/openssl-3.0.15/test/drbgtest.c:823,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:824,1
    - Dst: EVP_RAND_instantiate
      Src: /src/openssl-3.0.15/test/drbgtest.c:824,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:831,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:832,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:833,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:834,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:835,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:835,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:836,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:836,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:837,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:837,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:838,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:838,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:845,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:846,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:846,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:847,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:847,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:848,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:848,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:849,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:849,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:854,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:855,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:856,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:857,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:858,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/test/drbgtest.c:858,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:859,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:859,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:860,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:860,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:861,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:861,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:868,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:869,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/test/drbgtest.c:869,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:870,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:870,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:871,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:871,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:872,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:872,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/drbgtest.c:873,1
    - Dst: inc_reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:877,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:878,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:879,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:880,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/drbgtest.c:881,1
    - Dst: EVP_RAND_reseed
      Src: /src/openssl-3.0.15/test/drbgtest.c:881,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:882,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:882,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/drbgtest.c:883,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:883,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/drbgtest.c:884,1
    - Dst: reseed_counter
      Src: /src/openssl-3.0.15/test/drbgtest.c:884,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/test/drbgtest.c:889,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/test/drbgtest.c:890,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/test/drbgtest.c:891,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 808
    functionDepth: 14
    functionLinenumber: 808
    functionLinenumberEnd: 893
    functionName: test_rand_prediction_resistance
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - disable_crngt
    - EVP_RAND_reseed
    - inc_reseed_counter
    - new_drbg
    - EVP_RAND_instantiate
    - reseed_counter
    - TEST_int_eq
    - EVP_RAND_generate
    - TEST_mem_ne
    - TEST_skip
    - using_fips_rng
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - EVP_RAND_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_rand_prediction_resistance(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/drbgtest.c:897,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/drbgtest.c:899,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/drbgtest.c:901,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/drbgtest.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 906
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/drbgtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_bn.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:21,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:21,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:22,1
    - Dst: EVP_KEYMGMT_fetch
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:22,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:23,1
    - Dst: EVP_KEYMGMT_get0_provider
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:23,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:24,1
    - Dst: OSSL_PROVIDER_get0_name
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:24,1
    - Dst: EVP_KEYMGMT_free
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 11
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: test_provider
    functionSourceFile: /src/openssl-3.0.15/test/provider_fallback_test.c
    functionUses: 3
    functionsReached:
    - OSSL_PROVIDER_available
    - EVP_KEYMGMT_free
    - OSSL_PROVIDER_get0_name
    - TEST_str_eq
    - EVP_KEYMGMT_fetch
    - TEST_ptr
    - TEST_true
    - EVP_KEYMGMT_get0_provider
    linkageType: ''
    returnType: int
    signature: int test_provider(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_provider
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: test_fallback_provider
    functionSourceFile: /src/openssl-3.0.15/test/provider_fallback_test.c
    functionUses: 0
    functionsReached:
    - test_provider
    linkageType: ''
    returnType: int
    signature: int test_fallback_provider(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:41,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:41,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:42,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:42,1
    - Dst: test_provider
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:45,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:47,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:47,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:49,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: test_explicit_provider
    functionSourceFile: /src/openssl-3.0.15/test/provider_fallback_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    - test_provider
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_explicit_provider(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:59,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/provider_fallback_test.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/provider_fallback_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/memleaktest.c:49,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/memleaktest.c:50,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/memleaktest.c:53,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/memleaktest.c:55,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/memleaktest.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/memleaktest.c
    functionUses: 6
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - strcmp
    - TEST_ptr
    - strcpy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/test/enginetest.c:35,1
    - Dst: ENGINE_get_next
      Src: /src/openssl-3.0.15/test/enginetest.c:35,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:36,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-3.0.15/test/enginetest.c:37,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-3.0.15/test/enginetest.c:37,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: display_engine_list
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached:
    - ENGINE_free
    - TEST_info
    - ENGINE_get_id
    - ENGINE_get_first
    - ENGINE_get_name
    - ENGINE_get_next
    linkageType: ''
    returnType: void
    signature: void display_engine_list(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/enginetest.c:63,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:64,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:65,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:66,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:66,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:67,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:67,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:68,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:69,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:69,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:70,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:71,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:72,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:72,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:73,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:74,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:75,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:75,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:77,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:78,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:80,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:80,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:82,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:83,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/test/enginetest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:86,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:86,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:88,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:89,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:92,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:93,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:93,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:95,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:98,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:98,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:100,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:101,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:103,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:103,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:105,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:106,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/enginetest.c:109,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:109,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/enginetest.c:111,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/enginetest.c:114,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:114,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/enginetest.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:118,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:118,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:120,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:123,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:123,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:125,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:126,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/test/enginetest.c:136,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:137,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:138,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:140,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:141,1
    - Dst: display_engine_list
      Src: /src/openssl-3.0.15/test/enginetest.c:142,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:144,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:144,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:145,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:145,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:148,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/enginetest.c:150,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/enginetest.c:151,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/enginetest.c:152,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/enginetest.c:153,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:154,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:154,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:155,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:156,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:160,1
    - Dst: ENGINE_add
      Src: /src/openssl-3.0.15/test/enginetest.c:160,1
    - Dst: test_note
      Src: /src/openssl-3.0.15/test/enginetest.c:161,1
    - Dst: ENGINE_get_id
      Src: /src/openssl-3.0.15/test/enginetest.c:162,1
    - Dst: ENGINE_get_name
      Src: /src/openssl-3.0.15/test/enginetest.c:163,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:168,1
    - Dst: ENGINE_get_first
      Src: /src/openssl-3.0.15/test/enginetest.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:170,1
    - Dst: ENGINE_remove
      Src: /src/openssl-3.0.15/test/enginetest.c:170,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:172,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/enginetest.c:175,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/enginetest.c:176,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:181,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:182,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:183,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:184,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:186,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 188
    functionName: test_engines
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached:
    - ENGINE_get_id
    - ENGINE_get_first
    - ENGINE_get_name
    - sprintf
    - display_engine_list
    - TEST_true
    - OPENSSL_strdup
    - memset
    - test_note
    - ERR_clear_error
    - ENGINE_remove
    - TEST_info
    - OPENSSL_free
    - ENGINE_new
    - ENGINE_set_name
    - TEST_ptr
    - ENGINE_add
    - ENGINE_free
    - TEST_false
    - ENGINE_set_id
    linkageType: ''
    returnType: int
    signature: int test_engines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: test_encrypt
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int test_encrypt(EVP_PKEY_CTX *ctx, unsigned char *sig,\n                        size_t
      *siglen, const unsigned char *tbs, size_t tbslen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - e
    - pmeth
    - pnids
    - nid
    argTypes:
    - ENGINE*
    - EVP_PKEY_METHOD**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 219
    functionName: test_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int test_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth,\n                           const
      int **pnids, int nid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/enginetest.c:233,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/enginetest.c:234,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/test/enginetest.c:236,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/enginetest.c:237,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/enginetest.c:238,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/enginetest.c:242,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/enginetest.c:242,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/enginetest.c:243,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/enginetest.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 223
    functionDepth: 7
    functionLinenumber: 223
    functionLinenumberEnd: 249
    functionName: get_test_pkey
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - RSA_new
    - EVP_PKEY_free
    - EVP_PKEY_assign_RSA
    - EVP_PKEY_new
    - RSA_free
    - RSA_set0_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *get_test_pkey(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:262,1
    - Dst: get_test_pkey
      Src: /src/openssl-3.0.15/test/enginetest.c:262,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/enginetest.c:265,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:266,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/enginetest.c:266,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:269,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/enginetest.c:269,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:271,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:273,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/enginetest.c:273,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:274,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/test/enginetest.c:274,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/enginetest.c:275,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/enginetest.c:277,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:281,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:282,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:283,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:283,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/enginetest.c:291,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/enginetest.c:291,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/enginetest.c:292,1
    - Dst: EVP_PKEY_set1_engine
      Src: /src/openssl-3.0.15/test/enginetest.c:292,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:296,1
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-3.0.15/test/enginetest.c:296,1
    - Dst: ENGINE_set_pkey_meths
      Src: /src/openssl-3.0.15/test/enginetest.c:298,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:301,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/enginetest.c:301,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/enginetest.c:304,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/enginetest.c:304,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/enginetest.c:306,1
    - Dst: EVP_PKEY_meth_set_encrypt
      Src: /src/openssl-3.0.15/test/enginetest.c:310,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:312,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:313,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/enginetest.c:313,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:316,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/enginetest.c:316,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:317,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/test/enginetest.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:318,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/enginetest.c:321,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:326,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/enginetest.c:326,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:327,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/enginetest.c:327,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:328,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/test/enginetest.c:328,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/enginetest.c:329,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/enginetest.c:332,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:336,1
    - Dst: EVP_PKEY_set1_engine
      Src: /src/openssl-3.0.15/test/enginetest.c:336,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/enginetest.c:339,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:342,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/enginetest.c:342,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:343,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/enginetest.c:343,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/enginetest.c:344,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/test/enginetest.c:344,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:345,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/enginetest.c:351,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/enginetest.c:352,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/enginetest.c:354,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 251
    functionDepth: 8
    functionLinenumber: 251
    functionLinenumberEnd: 356
    functionName: test_redirect
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_set_encrypt
    - TEST_ptr_null
    - EVP_PKEY_CTX_new
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_PKEY_set1_engine
    - EVP_PKEY_encrypt
    - TEST_int_le
    - EVP_PKEY_meth_new
    - TEST_true
    - ENGINE_set_pkey_meths
    - EVP_PKEY_get_size
    - EVP_PKEY_encrypt_init
    - TEST_info
    - OPENSSL_free
    - ENGINE_new
    - ENGINE_set_name
    - TEST_ptr
    - OPENSSL_malloc
    - ENGINE_free
    - TEST_false
    - EVP_PKEY_free
    - ENGINE_set_id
    - get_test_pkey
    linkageType: ''
    returnType: int
    signature: int test_redirect(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:367,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/enginetest.c:367,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/enginetest.c:367,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:368,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/enginetest.c:368,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:372,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/enginetest.c:372,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/enginetest.c:374,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:377,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/enginetest.c:377,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:378,1
    - Dst: X509_PUBKEY_dup
      Src: /src/openssl-3.0.15/test/enginetest.c:378,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/enginetest.c:379,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/enginetest.c:380,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/enginetest.c:380,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/enginetest.c:380,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/enginetest.c:383,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/enginetest.c:386,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:390,1
    - Dst: ENGINE_new
      Src: /src/openssl-3.0.15/test/enginetest.c:390,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:391,1
    - Dst: ENGINE_set_id
      Src: /src/openssl-3.0.15/test/enginetest.c:391,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:392,1
    - Dst: ENGINE_set_name
      Src: /src/openssl-3.0.15/test/enginetest.c:392,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:395,1
    - Dst: RSA_meth_dup
      Src: /src/openssl-3.0.15/test/enginetest.c:395,1
    - Dst: RSA_get_default_method
      Src: /src/openssl-3.0.15/test/enginetest.c:395,1
    - Dst: ENGINE_set_RSA
      Src: /src/openssl-3.0.15/test/enginetest.c:398,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/enginetest.c:400,1
    - Dst: ENGINE_set_default_RSA
      Src: /src/openssl-3.0.15/test/enginetest.c:400,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/enginetest.c:403,1
    - Dst: BIO_seek
      Src: /src/openssl-3.0.15/test/enginetest.c:403,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:404,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/enginetest.c:404,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:408,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/enginetest.c:408,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:411,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/enginetest.c:411,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/enginetest.c:412,1
    - Dst: X509_PUBKEY_dup
      Src: /src/openssl-3.0.15/test/enginetest.c:412,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/enginetest.c:413,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/enginetest.c:414,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/enginetest.c:414,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/enginetest.c:414,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/enginetest.c:420,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/enginetest.c:421,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/enginetest.c:422,1
    - Dst: ENGINE_unregister_RSA
      Src: /src/openssl-3.0.15/test/enginetest.c:424,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/enginetest.c:425,1
    - Dst: RSA_meth_free
      Src: /src/openssl-3.0.15/test/enginetest.c:427,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/enginetest.c:428,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 430
    functionName: test_x509_dup_w_engine
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - ENGINE_unregister_RSA
    - TEST_ptr_ne
    - RSA_meth_free
    - test_get_argument
    - X509_PUBKEY_free
    - ENGINE_set_default_RSA
    - RSA_meth_dup
    - TEST_true
    - BIO_seek
    - TEST_int_ge
    - X509_PUBKEY_get0
    - X509_PUBKEY_dup
    - RSA_get_default_method
    - ENGINE_new
    - ENGINE_set_name
    - TEST_ptr
    - BIO_new_file
    - X509_get_X509_PUBKEY
    - PEM_read_bio_X509
    - ENGINE_free
    - BIO_free
    - ENGINE_set_RSA
    - ENGINE_set_id
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int test_x509_dup_w_engine(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/test/enginetest.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: global_init
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 38
    functionsReached:
    - OPENSSL_init_crypto
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/enginetest.c:447,1
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/enginetest.c:451,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/enginetest.c:452,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/enginetest.c:456,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/enginetest.c:460,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/enginetest.c:461,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/enginetest.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 465
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/enginetest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_note
    - test_get_argument_count
    - TEST_error
    - test_skip_common_options
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:40,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:42,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:45,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:49,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:51,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:54,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:59,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:59,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:62,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:62,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:65,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:68,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:68,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:73,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:75,1
    - Dst: X509_check_private_key
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:79,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:82,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:84,1
    - Dst: X509_REQ_check_private_key
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:95,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:96,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:102,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:103,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:104,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:105,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 107
    functionName: test_x509_check_cert_pkey
    functionSourceFile: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - X509_check_private_key
    - X509_free
    - PEM_read_bio_X509
    - BIO_free
    - TEST_int_eq
    - X509_REQ_free
    - EVP_PKEY_free
    - TEST_error
    - strcmp
    - PEM_read_bio_X509_REQ
    - X509_REQ_check_private_key
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_x509_check_cert_pkey(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:115,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:120,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:120,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:122,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:123,1
    - Dst: sscanf
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:124,1
    - Dst: sk_X509_INFO_num
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:125,1
    - Dst: sk_X509_INFO_value
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:126,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:134,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: test_PEM_X509_INFO_read_bio
    functionSourceFile: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c
    functionUses: 0
    functionsReached:
    - PEM_X509_INFO_read_bio
    - sscanf
    - TEST_int_eq
    - BIO_free
    - sk_X509_INFO_num
    - sk_X509_INFO_value
    - sk_X509_INFO_pop_free
    - STACK_OF
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_PEM_X509_INFO_read_bio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c
    functionUses: 0
    functionsReached:
    - OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:157,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:158,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:163,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:163,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:164,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:164,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:166,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:170,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:170,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:171,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:171,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:172,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:172,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:173,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:173,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 179
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/x509_check_cert_pkey_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - test_get_argument_count
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_cast.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:47,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:47,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:48,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:48,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:49,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:49,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:50,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:50,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:51,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:51,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:52,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:52,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:53,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:53,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:54,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:54,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:55,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:55,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:58,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-3.0.15/test/ectest.c:58,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:59,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:60,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:60,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:62,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openssl-3.0.15/test/ectest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:64,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:65,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:66,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/test/ectest.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:67,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/ectest.c:67,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:68,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:68,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:69,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:70,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/ectest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:71,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:72,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/test/ectest.c:72,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:73,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:82,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:82,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:87,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:87,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:88,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:89,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/ectest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:91,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/ectest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:92,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:92,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:93,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:93,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:96,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:96,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:97,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:98,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:101,1
    - Dst: BN_mul
      Src: /src/openssl-3.0.15/test/ectest.c:101,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:102,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:103,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:103,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ectest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:108,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:108,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:110,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:110,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:111,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:111,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:112,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:112,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:117,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:120,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:120,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:121,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ectest.c:121,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:122,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:122,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:137,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:137,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:138,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:138,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:146,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:148,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:149,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:150,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:151,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:152,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:153,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:154,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:155,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 50
    argCount: 1
    argNames:
    - group
    argTypes:
    - EC_GROUP*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 39
    functionDepth: 7
    functionLinenumber: 39
    functionLinenumberEnd: 157
    functionName: group_order_tests
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 2
    functionsReached:
    - TEST_int_eq
    - EC_POINT_new
    - EC_GROUP_get_order
    - EC_POINT_add
    - BN_one
    - BN_CTX_new
    - EC_POINT_dbl
    - EC_POINTs_mul
    - BN_set_word
    - TEST_true
    - BN_mul
    - EC_POINT_free
    - BN_sub
    - EC_GROUP_get0_generator
    - EC_POINT_is_at_infinity
    - BN_new
    - BN_free
    - TEST_info
    - BN_value_one
    - EC_GROUP_precompute_mult
    - EC_POINT_mul
    - BN_add
    - TEST_ptr
    - EC_POINT_invert
    - TEST_false
    - EC_POINT_cmp
    - BN_set_negative
    - EC_POINT_copy
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int group_order_tests(EC_GROUP *group)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:174,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:174,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:175,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:175,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:176,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:176,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:177,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:178,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:178,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:179,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:179,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:180,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:180,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:181,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/test/ectest.c:181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:182,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/ectest.c:182,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:185,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:186,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:187,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:188,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:189,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:192,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:192,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:193,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:193,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:194,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:195,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:196,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:196,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:197,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:197,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:198,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:199,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:199,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:200,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:200,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:201,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:201,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:202,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:202,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:203,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:204,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:205,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:205,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:208,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:209,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:209,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:211,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:212,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:213,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:217,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:220,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:223,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:224,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:226,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:226,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:230,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:234,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/test/ectest.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:235,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:235,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:240,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:240,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:241,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:241,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:245,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:248,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:248,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:249,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:249,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/ectest.c:251,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:254,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:257,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:257,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:258,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:258,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/ectest.c:260,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:263,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:266,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:266,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:267,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:267,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/ectest.c:269,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:272,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/test/ectest.c:272,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:273,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:273,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:280,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:280,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:282,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:283,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:285,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:285,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:287,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:287,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:288,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:288,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:290,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:290,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:292,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:292,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:292,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:297,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:299,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:299,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:300,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:300,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:301,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:301,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:303,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:303,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:304,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:304,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:306,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:307,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:308,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:310,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:310,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:312,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:313,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:313,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:314,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:318,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:318,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:320,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:321,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:321,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:323,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:323,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:325,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:326,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:328,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:328,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:329,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:329,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:330,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:332,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:332,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:332,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:333,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:333,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:336,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:337,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:340,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:340,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:342,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:343,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:343,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:343,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:348,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:348,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:350,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:350,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:355,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:355,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:357,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:357,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:358,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:358,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:360,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:362,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:362,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:363,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:363,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:365,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:365,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:366,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:366,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:367,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:367,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:369,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:369,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:369,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:370,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:370,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:373,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:374,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:375,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:377,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:377,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:379,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:380,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:380,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:380,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:385,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:385,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:387,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:387,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:388,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:392,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:392,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:394,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:394,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:395,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:395,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:397,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:397,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:399,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:399,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:401,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:401,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:403,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:403,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:404,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:404,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:405,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:405,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:407,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:407,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:407,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:408,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:408,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:411,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:412,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:413,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:415,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:415,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:417,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:418,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:418,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:418,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:423,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:423,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:425,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:425,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:430,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:430,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:433,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:433,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:434,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:434,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:437,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:437,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:440,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:440,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:442,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:442,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:445,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:445,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:446,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:446,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:447,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:447,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:450,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:450,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:450,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:451,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:451,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:454,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:455,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:456,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:458,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:458,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:461,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:462,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:462,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:462,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:467,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:467,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:469,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:469,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:470,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:473,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:473,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:478,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:479,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:479,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:484,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:489,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:489,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:490,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:490,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:495,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:495,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:496,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:496,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:497,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:497,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:502,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:502,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:502,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:503,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:503,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:506,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:507,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:508,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:510,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:510,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:515,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:516,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:516,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:516,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:521,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:521,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:523,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:523,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:524,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:529,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:529,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:530,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/test/ectest.c:530,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:531,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:532,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ectest.c:532,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:533,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:533,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:534,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/test/ectest.c:534,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:535,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:535,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:536,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:536,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:537,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:537,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:538,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:538,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:542,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:548,1
    - Dst: EC_GROUP_get_order
      Src: /src/openssl-3.0.15/test/ectest.c:548,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:549,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:549,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:549,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/ectest.c:550,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:551,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/ectest.c:551,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:558,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:558,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:559,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:559,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:560,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:560,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:561,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:561,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:562,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ectest.c:562,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ectest.c:562,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:563,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:563,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ectest.c:565,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:569,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:569,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:570,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:570,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:571,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ectest.c:571,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ectest.c:571,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:572,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:572,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ectest.c:574,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:579,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:579,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/ectest.c:581,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:584,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:584,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:585,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:585,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:588,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:591,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:592,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:593,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:594,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:595,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:596,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:597,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:598,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:599,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:600,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:601,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:602,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:603,1
    CyclomaticComplexity: 197
    EdgeCount: 197
    ICount: 148
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 159
    functionDepth: 7
    functionLinenumber: 159
    functionLinenumberEnd: 605
    functionName: prime_field_tests
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_free
    - TEST_int_eq
    - TEST_int_ne
    - EC_POINT_new
    - EC_GROUP_set_curve
    - EC_GROUP_get_order
    - BN_hex2bn
    - EC_POINT_oct2point
    - EC_POINT_add
    - TEST_int_gt
    - EC_GROUP_get_curve
    - TEST_note
    - EC_GROUP_set_generator
    - EC_POINT_set_to_infinity
    - BN_CTX_new
    - TEST_BN_eq
    - EC_POINT_dbl
    - EC_POINTs_mul
    - TEST_true
    - EC_POINT_free
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - BN_new
    - test_output_memory
    - EC_POINT_set_compressed_coordinates
    - BN_num_bits
    - BN_free
    - TEST_info
    - BN_value_one
    - BN_add
    - BN_rand
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - TEST_size_t_ne
    - EC_POINT_invert
    - group_order_tests
    - EC_POINT_point2oct
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_get_degree
    - TEST_false
    - TEST_BN_even
    - EC_GROUP_new_curve_GFp
    - test_output_bignum
    - EC_POINT_cmp
    - BN_zero
    - BN_rshift1
    - BN_set_negative
    - EC_POINT_copy
    - BN_CTX_free
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int prime_field_tests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:793,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:793,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:794,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:794,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:795,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:795,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:796,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:796,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:797,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:797,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:798,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:798,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:799,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:799,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:800,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:800,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:801,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:801,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:802,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:802,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:803,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:803,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:804,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/test/ectest.c:804,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:805,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:805,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:806,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:806,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:807,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:807,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:808,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:808,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:809,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:809,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:810,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:810,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:810,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:819,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:819,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:820,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:820,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:823,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:823,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:824,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:824,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:825,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:825,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:826,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:826,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:827,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:827,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:829,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:830,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:831,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:833,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:833,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:834,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:841,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:841,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:842,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:842,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:843,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:843,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:844,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:844,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:845,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:845,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:846,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:846,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:848,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:849,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:850,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:853,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:853,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:854,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ectest.c:858,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:859,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:859,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:860,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/test/ectest.c:860,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:861,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:861,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:862,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ectest.c:862,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:863,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:863,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:864,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/test/ectest.c:864,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:865,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:865,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:866,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:866,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:867,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:867,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:868,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:868,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:872,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:877,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:877,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:877,1
    - Dst: TEST_BN_even
      Src: /src/openssl-3.0.15/test/ectest.c:878,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:879,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/ectest.c:879,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:885,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:885,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:886,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:886,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:887,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:887,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:888,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:888,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:891,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ectest.c:891,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ectest.c:891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:892,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:892,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ectest.c:894,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:898,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:898,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:899,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:899,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:902,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ectest.c:902,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ectest.c:902,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:903,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:903,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ectest.c:905,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:910,1
    - Dst: EC_POINTs_mul
      Src: /src/openssl-3.0.15/test/ectest.c:910,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:911,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:911,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:918,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:919,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:920,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:921,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:922,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:923,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:924,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:925,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:926,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:927,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:928,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:929,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:930,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 75
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 779
    functionDepth: 7
    functionLinenumber: 779
    functionLinenumberEnd: 932
    functionName: char2_curve_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - TEST_int_eq
    - EC_POINT_new
    - BN_hex2bn
    - EC_POINT_add
    - TEST_int_gt
    - TEST_note
    - EC_GROUP_set_generator
    - BN_CTX_new
    - TEST_BN_eq
    - EC_POINT_dbl
    - EC_POINTs_mul
    - TEST_true
    - EC_POINT_free
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - BN_new
    - EC_POINT_set_compressed_coordinates
    - BN_num_bits
    - EC_GROUP_new_curve_GF2m
    - BN_free
    - TEST_info
    - BN_value_one
    - BN_add
    - BN_rand
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - EC_POINT_invert
    - group_order_tests
    - OSSL_NELEM
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_get_degree
    - TEST_false
    - TEST_BN_even
    - test_output_bignum
    - EC_POINT_cmp
    - BN_rshift1
    - BN_set_negative
    - EC_POINT_copy
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int char2_curve_test(int n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:945,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:945,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:946,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:946,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:947,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:947,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:948,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:948,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:949,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:949,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:950,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:950,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:951,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:951,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:954,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/test/ectest.c:954,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:955,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/ectest.c:955,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:958,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:959,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:960,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:961,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:962,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:964,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:964,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:965,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:965,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:966,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:966,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:967,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:967,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:968,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:968,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:972,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:972,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:973,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:973,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:974,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:974,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:975,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:975,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:976,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:976,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:977,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:977,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:978,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:978,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:979,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:979,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:980,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:980,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:983,1
    - Dst: EC_POINT_set_compressed_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:983,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:985,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:985,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:986,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:986,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:990,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:990,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:993,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:993,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:996,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:997,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:998,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:1002,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1005,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:1008,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:1009,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1011,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1011,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:1015,1
    - Dst: test_output_bignum
      Src: /src/openssl-3.0.15/test/ectest.c:1016,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1019,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/test/ectest.c:1019,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1020,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:1020,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:1023,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1025,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:1025,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1026,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:1026,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:1031,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1033,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1034,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:1034,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1035,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1035,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/ectest.c:1037,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:1041,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1043,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1044,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:1044,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1045,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1045,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/ectest.c:1047,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:1053,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1055,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1056,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:1056,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1057,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1057,1
    - Dst: test_output_memory
      Src: /src/openssl-3.0.15/test/ectest.c:1059,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1063,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/test/ectest.c:1063,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1064,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1064,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:1067,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:1071,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1072,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1073,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1074,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1075,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1076,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1077,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1078,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1079,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1080,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1081,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1082,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1083,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 934
    functionDepth: 5
    functionLinenumber: 934
    functionLinenumberEnd: 1085
    functionName: char2_field_tests
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_free
    - TEST_int_eq
    - TEST_int_ne
    - EC_POINT_new
    - BN_hex2bn
    - EC_POINT_oct2point
    - EC_POINT_add
    - TEST_int_gt
    - EC_GROUP_get_curve
    - TEST_note
    - EC_POINT_set_to_infinity
    - BN_CTX_new
    - TEST_true
    - EC_POINT_free
    - EC_POINT_is_on_curve
    - EC_POINT_is_at_infinity
    - BN_new
    - test_output_memory
    - EC_POINT_set_compressed_coordinates
    - EC_GROUP_new_curve_GF2m
    - BN_free
    - TEST_info
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - TEST_size_t_ne
    - EC_POINT_invert
    - EC_POINT_point2oct
    - EC_POINT_set_affine_coordinates
    - test_output_bignum
    - EC_POINT_cmp
    - EC_POINT_copy
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int char2_field_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1096,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1096,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1097,1
    - Dst: BN_dec2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1097,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1098,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1098,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1099,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:1099,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1100,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1100,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1101,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:1101,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1107,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:1107,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1108,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:1108,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1119,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:1119,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:1124,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:1124,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1128,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1129,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1130,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1131,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:1132,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1087
    functionDepth: 6
    functionLinenumber: 1087
    functionLinenumberEnd: 1134
    functionName: hybrid_point_encoding_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - TEST_size_t_ne
    - EC_POINT_point2oct
    - EC_GROUP_free
    - EC_POINT_set_affine_coordinates
    - OPENSSL_malloc
    - EC_POINT_new
    - TEST_size_t_eq
    - TEST_false
    - TEST_ptr
    - BN_free
    - OPENSSL_free
    - EC_POINT_oct2point
    - BN_dec2bn
    - TEST_true
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int hybrid_point_encoding_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1142,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1142,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:1143,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1144,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1147,1
    - Dst: EC_GROUP_check
      Src: /src/openssl-3.0.15/test/ectest.c:1147,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:1148,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1148,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1149,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1137
    functionDepth: 5
    functionLinenumber: 1137
    functionLinenumberEnd: 1154
    functionName: internal_curve_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_check
    - EC_GROUP_free
    - TEST_info
    - OBJ_nid2sn
    - TEST_ptr
    - TEST_true
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int internal_curve_test(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1161,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1161,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:1162,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1162,1
    - Dst: group_order_tests
      Src: /src/openssl-3.0.15/test/ectest.c:1165,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1156
    functionDepth: 5
    functionLinenumber: 1156
    functionLinenumberEnd: 1168
    functionName: internal_curve_test_method
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - TEST_info
    - OBJ_nid2sn
    - TEST_ptr
    - group_order_tests
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int internal_curve_test_method(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1178,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1186,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1190,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1191,1
    - Dst: EC_GROUP_get0_field
      Src: /src/openssl-3.0.15/test/ectest.c:1191,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1195,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1196,1
    - Dst: EC_GROUP_get0_field
      Src: /src/openssl-3.0.15/test/ectest.c:1196,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1200,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1201,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1202,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1170
    functionDepth: 5
    functionLinenumber: 1170
    functionLinenumberEnd: 1205
    functionName: group_field_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - BN_free
    - BN_hex2bn
    - BN_cmp
    - EC_GROUP_get0_field
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int group_field_test(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:1322,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1324,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:1324,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1325,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1325,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1326,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1326,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1327,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1327,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1328,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1328,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1329,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1329,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1330,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1330,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1331,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1331,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1332,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1332,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1333,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1333,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1335,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1335,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1336,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1336,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1337,1
    - Dst: BN_check_prime
      Src: /src/openssl-3.0.15/test/ectest.c:1337,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1338,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1339,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1339,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1340,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1340,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1341,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:1341,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1342,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:1342,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1343,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:1343,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1344,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:1344,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1345,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1345,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1346,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1346,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1347,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:1347,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:1347,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:1352,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1352,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1354,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1354,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1356,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1356,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1357,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1357,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1358,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1358,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1359,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1359,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1360,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1360,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:1360,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1361,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:1361,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:1364,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1365,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:1365,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1368,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1369,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1369,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1372,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1373,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1373,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1376,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ectest.c:1376,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1377,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1377,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:1377,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1379,1
    - Dst: BN_rshift
      Src: /src/openssl-3.0.15/test/ectest.c:1379,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1384,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1385,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1385,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1388,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1389,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1389,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:1392,1
    - Dst: EC_GROUP_have_precompute_mult
      Src: /src/openssl-3.0.15/test/ectest.c:1392,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1394,1
    - Dst: EC_GROUP_precompute_mult
      Src: /src/openssl-3.0.15/test/ectest.c:1394,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1400,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1401,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1401,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1404,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1405,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1405,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1408,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1408,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:1408,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1411,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1412,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1412,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1415,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1416,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1416,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1420,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:1420,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1421,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:1421,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1422,1
    - Dst: EC_POINT_copy
      Src: /src/openssl-3.0.15/test/ectest.c:1422,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1423,1
    - Dst: EC_POINT_invert
      Src: /src/openssl-3.0.15/test/ectest.c:1423,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1424,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:1424,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1425,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1425,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1430,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1431,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1432,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1433,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1434,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1435,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1436,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1437,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1438,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1439,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1440,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1441,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1442,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1443,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:1444,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 63
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1312
    functionDepth: 7
    functionLinenumber: 1312
    functionLinenumberEnd: 1446
    functionName: nistp_single_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 1
    functionsReached:
    - EC_GROUP_free
    - TEST_int_eq
    - EC_POINT_new
    - EC_GROUP_set_curve
    - BN_hex2bn
    - EC_GROUP_new_by_curve_name
    - TEST_note
    - EC_GROUP_set_generator
    - BN_CTX_new
    - EC_POINT_dbl
    - BN_rshift
    - EC_GROUP_have_precompute_mult
    - TEST_true
    - BN_set_word
    - EC_POINT_free
    - BN_new
    - BN_free
    - BN_value_one
    - EC_GROUP_precompute_mult
    - BN_add
    - EC_POINT_mul
    - TEST_ptr
    - EC_POINT_invert
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_get_degree
    - TEST_false
    - EC_POINT_cmp
    - EC_POINT_copy
    - BN_CTX_free
    - BN_check_prime
    linkageType: ''
    returnType: int
    signature: int nistp_single_test(int idx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1515,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:1515,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1516,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1516,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1517,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1517,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1518,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1518,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1519,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1519,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1520,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1520,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1521,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:1521,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1522,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1522,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1523,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:1523,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1524,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:1524,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1525,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1525,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1526,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1526,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1527,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:1527,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1528,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1528,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1529,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ectest.c:1529,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1530,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1530,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1531,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ectest.c:1531,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1532,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1532,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1533,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ectest.c:1533,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1534,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1534,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1535,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ectest.c:1535,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-3.0.15/test/ectest.c:1539,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/test/ectest.c:1540,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1542,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1542,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1543,1
    - Dst: BN_lshift1
      Src: /src/openssl-3.0.15/test/ectest.c:1543,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1546,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1546,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1553,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ectest.c:1553,1
    - Dst: BN_ucmp
      Src: /src/openssl-3.0.15/test/ectest.c:1554,1
    - Dst: BN_get0_nist_prime_192
      Src: /src/openssl-3.0.15/test/ectest.c:1554,1
    - Dst: BN_get0_nist_prime_256
      Src: /src/openssl-3.0.15/test/ectest.c:1555,1
    - Dst: BN_get0_nist_prime_192
      Src: /src/openssl-3.0.15/test/ectest.c:1556,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1561,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1561,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1563,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1563,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-3.0.15/test/ectest.c:1564,1
    - Dst: EC_GROUP_set_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1568,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1569,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:1570,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1570,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1572,1
    - Dst: EC_GROUP_set_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1575,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1576,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1576,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1579,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/test/ectest.c:1579,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1588,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1588,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1595,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1595,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1599,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/test/ectest.c:1599,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1600,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1600,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1604,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1604,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1608,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1608,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1610,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1610,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1611,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1611,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1613,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1613,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:1615,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1615,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1617,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1617,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1619,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1621,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1621,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1623,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1623,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1625,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1625,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1627,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1627,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1637,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1638,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:1639,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1639,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1643,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1644,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1646,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:1647,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1647,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1651,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1652,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1654,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:1655,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1655,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1659,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1660,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/ectest.c:1662,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1665,1
    - Dst: EC_GROUP_set_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1665,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1666,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1666,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1671,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1672,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1673,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1674,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1675,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1676,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1677,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1678,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:1679,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1680,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1681,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1682,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:1683,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 99
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1498
    functionDepth: 6
    functionLinenumber: 1498
    functionLinenumberEnd: 1685
    functionName: check_named_curve_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_dup
    - BN_dup
    - EC_GROUP_check_named_curve
    - EC_GROUP_free
    - TEST_int_eq
    - EC_GROUP_set_curve
    - EC_POINT_add
    - BN_ucmp
    - EC_GROUP_get0_order
    - BN_get0_nist_prime_192
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_get_curve
    - BN_get0_nist_prime_256
    - EC_GROUP_set_generator
    - BN_CTX_new
    - EC_curve_nid2nist
    - TEST_int_le
    - TEST_true
    - EC_POINT_free
    - EC_GROUP_get0_generator
    - BN_new
    - EC_GROUP_get_cofactor
    - EC_GROUP_get_seed_len
    - BN_free
    - BN_lshift1
    - EC_GROUP_set_curve_name
    - TEST_ptr
    - BN_add_word
    - EC_GROUP_get_field_type
    - TEST_false
    - ERR_set_mark
    - EC_GROUP_set_seed
    - EC_POINT_dup
    - BN_copy
    - ERR_pop_to_mark
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int check_named_curve_test(int id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1703,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:1703,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1704,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1704,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1705,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1705,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1709,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1710,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1710,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:1713,1
    - Dst: EC_GROUP_check_named_curve
      Src: /src/openssl-3.0.15/test/ectest.c:1713,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1725,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1725,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1726,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1726,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1730,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1731,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1731,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1732,1
    - Dst: EC_GROUP_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:1732,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1739,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:1740,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ectest.c:1741,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ectest.c:1742,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:1743,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1694
    functionDepth: 5
    functionLinenumber: 1694
    functionLinenumberEnd: 1746
    functionName: check_named_curve_lookup_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_check_named_curve
    - EC_GROUP_cmp
    - EC_GROUP_free
    - TEST_int_eq
    - ECPARAMETERS_free
    - BN_CTX_new
    - EC_GROUP_new_from_ecparameters
    - EC_GROUP_get_ecparameters
    - TEST_ptr
    - BN_CTX_free
    - TEST_int_gt
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int check_named_curve_lookup_test(int id)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - n1d
    - n2d
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1810
    functionName: are_ec_nids_compatible
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_inline
    signature: ossl_inline are_ec_nids_compatible(int n1d, int n2d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:1842,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1842,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1843,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:1843,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ectest.c:1845,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1848,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:1848,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1849,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:1849,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1850,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:1850,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1851,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:1851,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1852,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:1852,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1854,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1854,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1855,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1855,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1856,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1856,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1857,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:1857,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1858,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:1858,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1860,1
    - Dst: EC_GROUP_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1860,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1861,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-3.0.15/test/ectest.c:1861,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1862,1
    - Dst: EC_POINT_add
      Src: /src/openssl-3.0.15/test/ectest.c:1862,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1863,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1863,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1865,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ectest.c:1865,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1866,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ectest.c:1866,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1867,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ectest.c:1867,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1868,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ectest.c:1868,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:1871,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1874,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:1874,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1875,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:1875,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1890,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1890,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1891,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1897,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-3.0.15/test/ectest.c:1897,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:1898,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1898,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1898,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1902,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:1902,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1909,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/test/ectest.c:1909,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1911,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1912,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1913,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1914,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1915,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1915,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1916,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-3.0.15/test/ectest.c:1916,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1917,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:1917,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:1919,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1919,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1919,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1927,1
    - Dst: EC_GROUP_set_seed
      Src: /src/openssl-3.0.15/test/ectest.c:1927,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1928,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1929,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1930,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1931,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1932,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1932,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1933,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-3.0.15/test/ectest.c:1933,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1934,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:1934,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:1936,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1936,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:1936,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1945,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1945,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1947,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1948,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1949,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1950,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1951,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1951,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1953,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1953,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1955,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1956,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1957,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1958,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1959,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1959,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:1961,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1961,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1964,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1964,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1966,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1967,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1968,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1969,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1970,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1970,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1971,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-3.0.15/test/ectest.c:1971,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1972,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:1972,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1975,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1975,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1977,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1978,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1979,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1980,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1981,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1981,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1982,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-3.0.15/test/ectest.c:1982,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1983,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:1983,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1986,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:1986,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1988,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1989,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:1990,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:1991,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ectest.c:1992,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:1992,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:1993,1
    - Dst: are_ec_nids_compatible
      Src: /src/openssl-3.0.15/test/ectest.c:1993,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:1994,1
    - Dst: EC_GROUP_get_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:1994,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ectest.c:2000,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2001,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ectest.c:2002,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ectest.c:2003,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ectest.c:2004,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2005,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2006,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2007,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ectest.c:2008,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2009,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 52
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1821
    functionDepth: 6
    functionLinenumber: 1821
    functionLinenumberEnd: 2011
    functionName: check_named_curve_from_ecparameters
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_dup
    - EC_GROUP_free
    - TEST_int_eq
    - TEST_int_ne
    - EC_POINT_new
    - BN_CTX_start
    - ECPARAMETERS_free
    - EC_POINT_add
    - EC_GROUP_get0_order
    - BN_CTX_get
    - EC_GROUP_new_by_curve_name
    - TEST_note
    - EC_GROUP_get_asn1_flag
    - EC_GROUP_set_generator
    - BN_CTX_new
    - EC_GROUP_new_from_ecparameters
    - OBJ_nid2sn
    - TEST_true
    - EC_POINT_free
    - EC_GROUP_get0_generator
    - EC_GROUP_get_cofactor
    - TEST_info
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - BN_add_word
    - OSSL_NELEM
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_get_curve_name
    - TEST_false
    - EC_GROUP_set_seed
    - BN_CTX_end
    - EC_POINT_dup
    - BN_copy
    - EC_GROUP_get_ecparameters
    - are_ec_nids_compatible
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int check_named_curve_from_ecparameters(int id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2021,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2021,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2022,1
    - Dst: EC_GROUP_get_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:2022,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2023,1
    - Dst: EC_GROUP_new_from_ecparameters
      Src: /src/openssl-3.0.15/test/ectest.c:2023,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2024,1
    - Dst: EC_GROUP_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:2024,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2027,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2031,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2031,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2032,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-3.0.15/test/ectest.c:2032,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2033,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2036,1
    - Dst: EC_GROUP_set_asn1_flag
      Src: /src/openssl-3.0.15/test/ectest.c:2043,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2044,1
    - Dst: i2d_ECPKParameters
      Src: /src/openssl-3.0.15/test/ectest.c:2044,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2045,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2050,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2051,1
    - Dst: ECPARAMETERS_free
      Src: /src/openssl-3.0.15/test/ectest.c:2052,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2053,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2014
    functionDepth: 7
    functionLinenumber: 2014
    functionLinenumberEnd: 2055
    functionName: parameter_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EC_GROUP_cmp
    - EC_GROUP_free
    - TEST_int_eq
    - ECPARAMETERS_free
    - EC_GROUP_new_from_ecparameters
    - EC_GROUP_set_asn1_flag
    - OPENSSL_free
    - i2d_ECPKParameters
    - EC_GROUP_get_ecparameters
    - TEST_ptr
    - TEST_true
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int parameter_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2133,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-3.0.15/test/ectest.c:2133,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/ectest.c:2134,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2134,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2135,1
    - Dst: d2i_ECPKParameters
      Src: /src/openssl-3.0.15/test/ectest.c:2135,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2137,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ectest.c:2137,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2138,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2138,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2142,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2125
    functionDepth: 7
    functionLinenumber: 2125
    functionLinenumberEnd: 2145
    functionName: cofactor_range_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - EC_GROUP_get0_cofactor
    - TEST_BN_eq
    - TEST_BN_eq_zero
    - BN_hex2bn
    - BN_free
    - d2i_ECPKParameters
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int cofactor_range_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ectest.c:2163,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:2163,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2165,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2165,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2166,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2166,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2167,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/test/ectest.c:2171,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ectest.c:2173,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2174,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2175,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2176,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2177,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2178,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2179,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2180,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2182,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2182,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2184,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/ectest.c:2184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2185,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:2185,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2186,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2187,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ectest.c:2187,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:2187,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2188,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2188,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2191,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/test/ectest.c:2192,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/test/ectest.c:2193,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2195,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2196,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/test/ectest.c:2196,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2198,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2199,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:2199,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2201,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2202,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2202,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2203,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2205,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:2205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2206,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2206,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2207,1
    - Dst: EC_GROUP_get_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2207,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2210,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:2210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2211,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/ectest.c:2211,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:2211,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2212,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2212,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2214,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2214,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2216,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:2216,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2217,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2217,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2219,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ectest.c:2219,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2220,1
    - Dst: BN_sub
      Src: /src/openssl-3.0.15/test/ectest.c:2220,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ectest.c:2220,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2221,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2223,1
    - Dst: BN_lshift
      Src: /src/openssl-3.0.15/test/ectest.c:2223,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2224,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2224,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2228,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2229,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2230,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ectest.c:2231,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2232,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 27
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2153
    functionDepth: 5
    functionLinenumber: 2153
    functionLinenumberEnd: 2234
    functionName: cardinality_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - TEST_int_eq
    - EC_POINT_new
    - BN_CTX_start
    - EC_GROUP_get0_order
    - BN_CTX_get
    - EC_GROUP_new_by_curve_name
    - EC_GROUP_get_curve
    - EC_GROUP_set_generator
    - BN_CTX_new
    - TEST_BN_eq
    - OBJ_nid2sn
    - BN_set_word
    - TEST_true
    - EC_POINT_free
    - BN_sub
    - EC_GROUP_get0_generator
    - EC_GROUP_get_cofactor
    - EC_GROUP_new_curve_GF2m
    - TEST_info
    - BN_value_one
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - EC_GROUP_get_field_type
    - BN_lshift
    - EC_POINT_set_affine_coordinates
    - TEST_false
    - EC_GROUP_new_curve_GFp
    - BN_CTX_end
    - BN_copy
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int cardinality_test(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2245,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:2245,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2246,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ectest.c:2246,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2247,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2247,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2248,1
    - Dst: EC_KEY_get0_group
      Src: /src/openssl-3.0.15/test/ectest.c:2248,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2249,1
    - Dst: EC_GROUP_get0_field
      Src: /src/openssl-3.0.15/test/ectest.c:2249,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2250,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ectest.c:2250,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2251,1
    - Dst: EC_KEY_check_key
      Src: /src/openssl-3.0.15/test/ectest.c:2251,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2252,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/test/ectest.c:2252,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2253,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:2253,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/test/ectest.c:2261,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2265,1
    - Dst: BN_GF2m_add
      Src: /src/openssl-3.0.15/test/ectest.c:2265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2271,1
    - Dst: BN_add
      Src: /src/openssl-3.0.15/test/ectest.c:2271,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ectest.c:2275,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:2278,1
    - Dst: EC_KEY_set_public_key_affine_coordinates
      Src: /src/openssl-3.0.15/test/ectest.c:2278,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2283,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2284,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:2285,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 29
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2236
    functionDepth: 5
    functionLinenumber: 2236
    functionLinenumberEnd: 2287
    functionName: check_ec_key_field_public_range_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_KEY_set_public_key_affine_coordinates
    - EC_KEY_get0_group
    - EC_KEY_new_by_curve_name
    - TEST_int_gt
    - EC_GROUP_get0_field
    - BN_GF2m_add
    - TEST_error
    - TEST_int_le
    - TEST_true
    - BN_new
    - BN_free
    - BN_add
    - EC_KEY_generate_key
    - TEST_ptr
    - EC_POINT_get_affine_coordinates
    - EC_KEY_get0_public_key
    - EC_GROUP_get_field_type
    - EC_KEY_free
    - EC_KEY_check_key
    linkageType: ''
    returnType: int
    signature: int check_ec_key_field_public_range_test(int id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2308,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2308,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2309,1
    - Dst: EC_POINT_set_to_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:2309,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2314,1
    - Dst: EC_POINT_point2hex
      Src: /src/openssl-3.0.15/test/ectest.c:2314,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2315,1
    - Dst: EC_POINT_hex2point
      Src: /src/openssl-3.0.15/test/ectest.c:2315,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2316,1
    - Dst: EC_POINT_cmp
      Src: /src/openssl-3.0.15/test/ectest.c:2316,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2326,1
    - Dst: EC_POINT_is_at_infinity
      Src: /src/openssl-3.0.15/test/ectest.c:2326,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2332,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2333,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2334,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 4
    argNames:
    - group
    - P
    - form
    - bnctx
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - point_conversion_form_t
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2297
    functionDepth: 4
    functionLinenumber: 2297
    functionLinenumberEnd: 2337
    functionName: ec_point_hex2point_test_helper
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_is_at_infinity
    - EC_POINT_free
    - TEST_int_eq
    - EC_POINT_hex2point
    - EC_POINT_set_to_infinity
    - EC_POINT_new
    - EC_POINT_point2hex
    - OPENSSL_free
    - EC_POINT_cmp
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: ossl_inline
    signature: "ossl_inline ec_point_hex2point_test_helper(const EC_GROUP *group,
      const EC_POINT *P,\n                                   point_conversion_form_t
      form,\n                                   BN_CTX *bnctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2352,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2352,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2353,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2353,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2354,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2354,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2355,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-3.0.15/test/ectest.c:2355,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2358,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-3.0.15/test/ectest.c:2358,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2361,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-3.0.15/test/ectest.c:2361,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2364,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-3.0.15/test/ectest.c:2364,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2367,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-3.0.15/test/ectest.c:2367,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2370,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-3.0.15/test/ectest.c:2370,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2373,1
    - Dst: ec_point_hex2point_test_helper
      Src: /src/openssl-3.0.15/test/ectest.c:2373,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2381,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2382,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2383,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2342
    functionDepth: 5
    functionLinenumber: 2342
    functionLinenumberEnd: 2386
    functionName: ec_point_hex2point_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_generator
    - EC_POINT_free
    - EC_GROUP_free
    - BN_CTX_new
    - ec_point_hex2point_test_helper
    - EC_POINT_dup
    - TEST_ptr
    - TEST_true
    - BN_CTX_free
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int ec_point_hex2point_test(int id)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2409,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2410,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2411,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2413,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2414,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/ectest.c:2414,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/test/ectest.c:2417,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openssl-3.0.15/test/ectest.c:2422,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2424,1
    - Dst: EC_GROUP_get_trinomial_basis
      Src: /src/openssl-3.0.15/test/ectest.c:2424,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2428,1
    - Dst: EC_GROUP_get_pentanomial_basis
      Src: /src/openssl-3.0.15/test/ectest.c:2428,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2433,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/ectest.c:2433,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2434,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/ectest.c:2434,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2436,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/ectest.c:2436,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2437,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/ectest.c:2437,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2438,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/ectest.c:2438,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/test/ectest.c:2441,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2442,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/ectest.c:2442,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/test/ectest.c:2443,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-3.0.15/test/ectest.c:2444,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2447,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2448,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/ectest.c:2448,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2449,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2453,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/ectest.c:2453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2455,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/ectest.c:2455,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:2456,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2459,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/ectest.c:2459,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2460,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/ectest.c:2460,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2461,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/ectest.c:2461,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2462,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/ectest.c:2462,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2469,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2469,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2475,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2475,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2481,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2481,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2487,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2487,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2489,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2492,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/ectest.c:2492,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2493,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2494,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/ectest.c:2494,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2496,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2497,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/ectest.c:2497,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2499,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2500,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/ectest.c:2500,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2502,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:2502,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2505,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2506,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/ectest.c:2506,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2508,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2508,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/test/ectest.c:2511,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2512,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2512,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2514,1
    - Dst: EC_GROUP_get0_seed
      Src: /src/openssl-3.0.15/test/ectest.c:2514,1
    - Dst: EC_GROUP_get_seed_len
      Src: /src/openssl-3.0.15/test/ectest.c:2515,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/test/ectest.c:2519,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2521,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2521,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2523,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2523,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2525,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2525,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2527,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2527,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2529,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2529,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2531,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2537,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2537,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2539,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:2539,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2540,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/ectest.c:2540,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2543,1
    - Dst: EC_GROUP_get_basis_type
      Src: /src/openssl-3.0.15/test/ectest.c:2546,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2547,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2547,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2549,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2550,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2550,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2552,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2552,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2554,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2554,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ectest.c:2558,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2558,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2560,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2560,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2562,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2563,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2563,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2565,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2566,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/ectest.c:2566,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2568,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2573,1
    - Dst: EVP_PKEY_gettable_params
      Src: /src/openssl-3.0.15/test/ectest.c:2573,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2574,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2574,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2575,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2575,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2576,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2576,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2577,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2577,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2578,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2578,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2579,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2579,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2580,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2580,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2581,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2581,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2582,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2582,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2583,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2583,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2585,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2585,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2586,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2586,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2587,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2587,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2588,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2588,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2589,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2589,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2590,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/ectest.c:2590,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2596,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2597,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2598,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2599,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ectest.c:2600,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/ectest.c:2601,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/ectest.c:2602,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:2603,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2604,1
    CyclomaticComplexity: 103
    EdgeCount: 103
    ICount: 101
    argCount: 4
    argNames:
    - group
    - ctx
    - gen
    - gen_size
    argTypes:
    - EC_GROUP*
    - BN_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2388
    functionDepth: 6
    functionLinenumber: 2388
    functionLinenumberEnd: 2606
    functionName: do_test_custom_explicit_fromdata
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - EVP_PKEY_get_octet_string_param
    - EC_GROUP_get0_order
    - BN_CTX_get
    - TEST_int_gt
    - EVP_PKEY_CTX_free
    - EC_GROUP_get_pentanomial_basis
    - EC_GROUP_get_curve
    - EC_GROUP_get_trinomial_basis
    - EVP_PKEY_fromdata
    - OSSL_PARAM_free
    - EC_GROUP_get0_cofactor
    - TEST_BN_eq
    - EVP_PKEY_fromdata_init
    - OSSL_PARAM_locate_const
    - TEST_true
    - EVP_PKEY_gettable_params
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_bn_param
    - OSSL_PARAM_BLD_to_param
    - EC_GROUP_get_seed_len
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - EVP_PKEY_get_utf8_string_param
    - BN_free
    - TEST_ptr
    - EC_GROUP_get0_seed
    - EVP_PKEY_get_int_param
    - EC_GROUP_get_field_type
    - EC_GROUP_get_degree
    - TEST_false
    - EVP_PKEY_free
    - EC_GROUP_get_basis_type
    - OSSL_PARAM_BLD_push_utf8_string
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: "int do_test_custom_explicit_fromdata(EC_GROUP *group, BN_CTX *ctx,\n
      \                                           unsigned char *gen, int gen_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:2622,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:2622,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2623,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2623,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ectest.c:2626,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2628,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2628,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:2632,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2635,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2635,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2637,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ectest.c:2637,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-3.0.15/test/ectest.c:2637,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2640,1
    - Dst: BN_clear_bit
      Src: /src/openssl-3.0.15/test/ectest.c:2640,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2641,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2641,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2642,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2642,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2644,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:2644,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2646,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2646,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2649,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:2649,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2650,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2650,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2654,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ectest.c:2654,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2654,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2656,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2656,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:2657,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2658,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2659,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2659,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2660,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/ectest.c:2660,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2662,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:2662,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2663,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2663,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2666,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:2666,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2667,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2667,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2671,1
    - Dst: do_test_custom_explicit_fromdata
      Src: /src/openssl-3.0.15/test/ectest.c:2674,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2680,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2681,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2682,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2683,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ectest.c:2684,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2685,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2686,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2687,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 29
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2611
    functionDepth: 7
    functionLinenumber: 2611
    functionLinenumberEnd: 2690
    functionName: custom_generator_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EC_GROUP_free
    - TEST_int_eq
    - EC_POINT_new
    - BN_CTX_start
    - do_test_custom_explicit_fromdata
    - EC_GROUP_get0_order
    - BN_CTX_get
    - EC_GROUP_new_by_curve_name
    - TEST_note
    - EC_GROUP_set_generator
    - EC_GROUP_get0_cofactor
    - BN_CTX_new
    - OBJ_nid2sn
    - EC_GROUP_order_bits
    - EC_POINT_dbl
    - TEST_true
    - EC_POINT_free
    - EC_GROUP_get0_generator
    - OPENSSL_free
    - EC_POINT_mul
    - BN_rand
    - TEST_ptr
    - EC_POINT_point2oct
    - EC_GROUP_get_degree
    - OPENSSL_malloc
    - BN_CTX_end
    - BN_rshift1
    - BN_CTX_free
    - BN_clear_bit
    linkageType: ''
    returnType: int
    signature: int custom_generator_test(int id)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ectest.c:2718,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ectest.c:2719,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/ectest.c:2722,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2724,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2724,1
    - Dst: BN_CTX_start
      Src: /src/openssl-3.0.15/test/ectest.c:2727,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2728,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2728,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2729,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2729,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2730,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2730,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2731,1
    - Dst: BN_CTX_get
      Src: /src/openssl-3.0.15/test/ectest.c:2731,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2734,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ectest.c:2734,1
    - Dst: EC_GROUP_get_field_type
      Src: /src/openssl-3.0.15/test/ectest.c:2737,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/ectest.c:2740,1
    - Dst: EC_GROUP_get_degree
      Src: /src/openssl-3.0.15/test/ectest.c:2746,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2750,1
    - Dst: EC_GROUP_get_curve
      Src: /src/openssl-3.0.15/test/ectest.c:2750,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2751,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2751,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2753,1
    - Dst: EC_POINT_dbl
      Src: /src/openssl-3.0.15/test/ectest.c:2753,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2754,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2756,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2756,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2759,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:2759,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2760,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2760,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2763,1
    - Dst: EC_GROUP_get0_order
      Src: /src/openssl-3.0.15/test/ectest.c:2763,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2764,1
    - Dst: EC_GROUP_get0_cofactor
      Src: /src/openssl-3.0.15/test/ectest.c:2764,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2770,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/test/ectest.c:2770,1
    - Dst: if
      Src: /src/openssl-3.0.15/test/ectest.c:2775,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2775,1
    - Dst: EC_GROUP_new_curve_GF2m
      Src: /src/openssl-3.0.15/test/ectest.c:2775,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2781,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2782,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2782,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2783,1
    - Dst: EC_POINT_oct2point
      Src: /src/openssl-3.0.15/test/ectest.c:2783,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2784,1
    - Dst: EC_POINT_is_on_curve
      Src: /src/openssl-3.0.15/test/ectest.c:2784,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2785,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/ectest.c:2785,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2791,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2791,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2792,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/ectest.c:2792,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2794,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/ectest.c:2794,1
    - Dst: EC_GROUP_order_bits
      Src: /src/openssl-3.0.15/test/ectest.c:2794,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2797,1
    - Dst: BN_clear_bit
      Src: /src/openssl-3.0.15/test/ectest.c:2797,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2799,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:2799,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2801,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2801,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2804,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2804,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2808,1
    - Dst: BN_rshift1
      Src: /src/openssl-3.0.15/test/ectest.c:2808,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2810,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:2810,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2812,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2812,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2815,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:2815,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2816,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2816,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2820,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2824,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/test/ectest.c:2824,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2825,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/test/ectest.c:2825,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2826,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ectest.c:2826,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2827,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/test/ectest.c:2827,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2828,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/test/ectest.c:2828,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2829,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ectest.c:2829,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2833,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/openssl-3.0.15/test/ectest.c:2833,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2842,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ectest.c:2842,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2843,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2843,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2846,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:2846,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2847,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2847,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2853,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/openssl-3.0.15/test/ectest.c:2853,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2854,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2854,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2857,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:2857,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2858,1
    - Dst: EC_POINT_point2oct
      Src: /src/openssl-3.0.15/test/ectest.c:2858,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2864,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/ectest.c:2864,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2865,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/ectest.c:2865,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2868,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/ectest.c:2868,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2869,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/ectest.c:2869,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2874,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2874,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2875,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/ectest.c:2875,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2876,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/test/ectest.c:2876,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2877,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/ectest.c:2877,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2878,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2879,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/ectest.c:2879,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2881,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2881,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2882,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/ectest.c:2882,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2883,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/test/ectest.c:2883,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2884,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/ectest.c:2884,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2885,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:2886,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2887,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/ectest.c:2887,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2891,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2895,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/ectest.c:2895,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2896,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/ectest.c:2896,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2899,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/ectest.c:2899,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2902,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/ectest.c:2902,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2905,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/ectest.c:2905,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/ectest.c:2908,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2909,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/ectest.c:2909,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2910,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/ectest.c:2910,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2913,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/ectest.c:2913,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2916,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/ectest.c:2916,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2920,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2921,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/ectest.c:2921,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2922,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/ectest.c:2922,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2923,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/ectest.c:2923,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2925,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/ectest.c:2925,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2930,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2931,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/ectest.c:2931,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2932,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/ectest.c:2932,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2933,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/test/ectest.c:2933,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2934,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/ectest.c:2934,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2935,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ectest.c:2936,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2937,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/ectest.c:2937,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2939,1
    - Dst: BN_CTX_end
      Src: /src/openssl-3.0.15/test/ectest.c:2945,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2946,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/ectest.c:2947,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/ectest.c:2948,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/ectest.c:2949,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2950,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2951,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ectest.c:2952,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2953,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ectest.c:2954,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2955,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2956,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2957,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:2958,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:2959,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:2960,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:2961,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:2962,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2963,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:2964,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 107
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2695
    functionDepth: 7
    functionLinenumber: 2695
    functionLinenumberEnd: 2967
    functionName: custom_params_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_PKEY_derive_set_peer
    - OSSL_PARAM_BLD_push_octet_string
    - EC_KEY_new
    - OSSL_PARAM_BLD_push_BN
    - EC_GROUP_free
    - TEST_int_eq
    - EC_KEY_get0_private_key
    - EC_POINT_new
    - BN_CTX_start
    - EC_POINT_oct2point
    - EVP_PKEY_CTX_new
    - EVP_PKEY_derive_init
    - EC_GROUP_get0_order
    - BN_CTX_get
    - TEST_int_gt
    - EVP_PKEY_CTX_free
    - EC_GROUP_new_by_curve_name
    - EC_KEY_set_group
    - EC_GROUP_get_curve
    - TEST_note
    - EVP_PKEY_fromdata
    - EC_GROUP_set_generator
    - EC_GROUP_get0_cofactor
    - OSSL_PARAM_free
    - BN_CTX_new
    - EVP_PKEY_fromdata_init
    - OBJ_nid2sn
    - EC_GROUP_order_bits
    - EC_POINT_dbl
    - TEST_int_le
    - TEST_true
    - EC_POINT_free
    - EC_POINT_is_on_curve
    - EC_GROUP_get0_generator
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_BLD_new
    - EC_GROUP_new_curve_GF2m
    - OSSL_PARAM_BLD_free
    - OPENSSL_free
    - TEST_skip
    - EVP_PKEY_new
    - EC_POINT_mul
    - EC_KEY_generate_key
    - BN_rand
    - TEST_ptr
    - EC_POINT_point2oct
    - EVP_PKEY_derive
    - EC_KEY_get0_public_key
    - EC_GROUP_get_field_type
    - if
    - EC_KEY_free
    - EC_GROUP_get_degree
    - OPENSSL_malloc
    - EVP_PKEY_assign_EC_KEY
    - EC_GROUP_new_curve_GFp
    - BN_CTX_end
    - EVP_PKEY_free
    - OSSL_PARAM_BLD_push_utf8_string
    - BN_rshift1
    - BN_CTX_free
    - BN_clear_bit
    linkageType: ''
    returnType: int
    signature: int custom_params_test(int id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2979,1
    - Dst: EVP_EC_gen
      Src: /src/openssl-3.0.15/test/ectest.c:2979,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ectest.c:2982,1
    - Dst: i2d_PublicKey
      Src: /src/openssl-3.0.15/test/ectest.c:2982,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/ectest.c:2985,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/ectest.c:2987,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2989,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/ectest.c:2989,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2990,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/ectest.c:2990,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2991,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/ectest.c:2991,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2994,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:2995,1
    - Dst: d2i_PublicKey
      Src: /src/openssl-3.0.15/test/ectest.c:2995,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:2999,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/ectest.c:2999,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/ectest.c:3004,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:3005,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ectest.c:3006,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2969
    functionDepth: 14
    functionLinenumber: 2969
    functionLinenumberEnd: 3008
    functionName: ec_d2i_publickey_test
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - d2i_PublicKey
    - OSSL_PARAM_construct_utf8_string
    - i2d_PublicKey
    - EVP_EC_gen
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_eq
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int ec_d2i_publickey_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-3.0.15/test/ectest.c:3012,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ectest.c:3013,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ectest.c:3013,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ectest.c:3014,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-3.0.15/test/ectest.c:3014,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3017,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3018,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3019,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3020,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3022,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3023,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3024,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ectest.c:3024,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3026,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ectest.c:3026,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3027,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3028,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3029,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3030,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3031,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3032,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3033,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3034,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3035,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ectest.c:3036,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ectest.c:3037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 3010
    functionDepth: 1
    functionLinenumber: 3010
    functionLinenumberEnd: 3039
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - OPENSSL_malloc
    - EC_get_builtin_curves
    - ADD_ALL_TESTS
    - TEST_ptr
    - TEST_true
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ectest.c:3043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3044
      start: 3041
    functionDepth: 1
    functionLinenumber: 3041
    functionLinenumberEnd: 3044
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ectest.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ciphername_test.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: get_std_name_by_id
    functionSourceFile: /src/openssl-3.0.15/test/ciphername_test.c
    functionUses: 0
    functionsReached:
    - OSSL_NELEM
    linkageType: ''
    returnType: char
    signature: char *get_std_name_by_id(int id)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/ciphername_test.c:384,1
    - Dst: SSL_CIPHER_standard_name
      Src: /src/openssl-3.0.15/test/ciphername_test.c:389,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ciphername_test.c:390,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:391,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-3.0.15/test/ciphername_test.c:395,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ciphername_test.c:396,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:397,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-3.0.15/test/ciphername_test.c:401,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ciphername_test.c:402,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:403,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/ciphername_test.c:408,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/ciphername_test.c:408,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:410,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/ciphername_test.c:414,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:415,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/ciphername_test.c:419,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:421,1
    - Dst: SSL_get_ciphers
      Src: /src/openssl-3.0.15/test/ciphername_test.c:425,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:427,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/ciphername_test.c:431,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/ciphername_test.c:432,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-3.0.15/test/ciphername_test.c:433,1
    - Dst: SSL_CIPHER_standard_name
      Src: /src/openssl-3.0.15/test/ciphername_test.c:437,1
    - Dst: get_std_name_by_id
      Src: /src/openssl-3.0.15/test/ciphername_test.c:438,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ciphername_test.c:439,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:440,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ciphername_test.c:445,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:446,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/ciphername_test.c:451,1
    - Dst: OPENSSL_cipher_name
      Src: /src/openssl-3.0.15/test/ciphername_test.c:452,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ciphername_test.c:453,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ciphername_test.c:454,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/ciphername_test.c:461,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/ciphername_test.c:462,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 464
    functionName: test_cipher_name
    functionSourceFile: /src/openssl-3.0.15/test/ciphername_test.c
    functionUses: 0
    functionsReached:
    - SSL_CIPHER_standard_name
    - sk_SSL_CIPHER_value
    - SSL_CIPHER_get_name
    - SSL_CTX_free
    - SSL_CIPHER_get_id
    - get_std_name_by_id
    - TEST_ptr
    - TEST_info
    - SSL_CTX_set_cipher_list
    - STACK_OF
    - SSL_new
    - TEST_str_eq
    - SSL_free
    - SSL_get_ciphers
    - TLS_server_method
    - sk_SSL_CIPHER_num
    - OPENSSL_cipher_name
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int test_cipher_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ciphername_test.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ciphername_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sanitytest.c:22,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: test_sanity_null_zero
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memset
    linkageType: ''
    returnType: int
    signature: int test_sanity_null_zero(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:44,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:45,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 49
    functionName: test_sanity_enum_size
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_enum_size(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:54,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: test_sanity_twos_complement
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_twos_complement(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:63,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: test_sanity_sign
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_sign(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:72,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: test_sanity_unsigned_conversion
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_long_eq
    linkageType: ''
    returnType: int
    signature: int test_sanity_unsigned_conversion(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:81,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:82,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:83,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:84,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:85,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:86,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:87,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:88,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:90,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:91,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:93,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sanitytest.c:94,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-3.0.15/test/sanitytest.c:98,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-3.0.15/test/sanitytest.c:99,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-3.0.15/test/sanitytest.c:107,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-3.0.15/test/sanitytest.c:108,1
    - Dst: TEST_size_t_ge
      Src: /src/openssl-3.0.15/test/sanitytest.c:109,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sanitytest.c:114,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sanitytest.c:120,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 125
    functionName: test_sanity_range
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - TEST_size_t_eq
    - TEST_size_t_ge
    linkageType: ''
    returnType: int
    signature: int test_sanity_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_memcmp
      Src: /src/openssl-3.0.15/test/sanitytest.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: test_sanity_memcmp
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    linkageType: ''
    returnType: int
    signature: int test_sanity_memcmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:134,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:135,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:136,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:137,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:138,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:139,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sanitytest.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sanitytest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - buf
    argTypes:
    - unsigned char*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: pt
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 302
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *pt(const unsigned char *p, char buf[DATA_BUF_SIZE])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/test/destest.c:314,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:315,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:316,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:317,1
    - Dst: DES_ecb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:318,1
    - Dst: DES_ecb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:319,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:321,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/destest.c:322,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:323,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:323,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:326,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/destest.c:327,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:328,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 332
    functionName: test_des_ecb
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - DES_ecb_encrypt
    - TEST_info
    - memset
    - pt
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: int test_des_ecb(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/test/destest.c:340,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/test/destest.c:341,1
    - Dst: DES_set_key_unchecked
      Src: /src/openssl-3.0.15/test/destest.c:342,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:343,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:344,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:345,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:346,1
    - Dst: DES_ecb3_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:347,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:349,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/destest.c:350,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:351,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:351,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:354,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/destest.c:355,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:356,1
    - Dst: pt
      Src: /src/openssl-3.0.15/test/destest.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 360
    functionName: test_des_ede_ecb
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - TEST_info
    - DES_ecb3_encrypt
    - memset
    - pt
    - DES_set_key_unchecked
    linkageType: ''
    returnType: int
    signature: int test_des_ede_ecb(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:368,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:370,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:370,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:372,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:373,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:374,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:375,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:377,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:380,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:381,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 384
    functionName: test_des_cbc
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_ncbc_encrypt
    - memcpy
    - TEST_int_eq
    - DES_set_key_checked
    - strlen
    - memset
    linkageType: ''
    returnType: int
    signature: int test_des_cbc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:392,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:394,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:394,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:396,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:397,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:398,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:399,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:401,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:403,1
    - Dst: DES_xcbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:404,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 407
    functionName: test_des_ede_cbc
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - TEST_int_eq
    - DES_set_key_checked
    - strlen
    - memset
    - DES_xcbc_encrypt
    linkageType: ''
    returnType: int
    signature: int test_des_ede_cbc(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:415,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:418,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:418,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:420,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:420,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:422,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:422,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:424,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:425,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:426,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:428,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:430,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:432,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:435,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:436,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 439
    functionName: test_ede_cbc
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - TEST_int_eq
    - DES_set_key_checked
    - strlen
    - memset
    - DES_ede3_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int test_ede_cbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:446,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:448,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:449,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:450,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:450,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: test_input_align
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_ncbc_encrypt
    - memcpy
    - TEST_int_eq
    - DES_set_key_checked
    - strlen
    - memset
    linkageType: ''
    returnType: int
    signature: int test_input_align(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:461,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:463,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:464,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:465,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:465,1
    - Dst: DES_ncbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 469
    functionName: test_output_align
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_ncbc_encrypt
    - memcpy
    - TEST_int_eq
    - DES_set_key_checked
    - strlen
    - memset
    linkageType: ''
    returnType: int
    signature: int test_output_align(int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/destest.c:473,1
    - Dst: DES_crypt
      Src: /src/openssl-3.0.15/test/destest.c:473,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/destest.c:475,1
    - Dst: DES_crypt
      Src: /src/openssl-3.0.15/test/destest.c:475,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/destest.c:478,1
    - Dst: DES_crypt
      Src: /src/openssl-3.0.15/test/destest.c:478,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/destest.c:480,1
    - Dst: DES_crypt
      Src: /src/openssl-3.0.15/test/destest.c:480,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/destest.c:482,1
    - Dst: DES_crypt
      Src: /src/openssl-3.0.15/test/destest.c:482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: test_des_crypt
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - DES_crypt
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int test_des_crypt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:492,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:494,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:494,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:496,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:497,1
    - Dst: DES_pcbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:498,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:500,1
    - Dst: DES_pcbc_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:502,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: test_des_pcbc
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_pcbc_encrypt
    - TEST_int_eq
    - DES_set_key_checked
    - strlen
    - memset
    linkageType: ''
    returnType: int
    signature: int test_des_pcbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:511,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:512,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:513,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:515,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:517,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:518,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bits
    - cfb_cipher
    argTypes:
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 507
    functionDepth: 3
    functionLinenumber: 507
    functionLinenumberEnd: 521
    functionName: cfb_test
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_set_key_checked
    - DES_cfb_encrypt
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cfb_test(int bits, unsigned char *cfb_cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-3.0.15/test/destest.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: test_des_cfb8
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb8(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-3.0.15/test/destest.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: test_des_cfb16
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-3.0.15/test/destest.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: test_des_cfb32
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-3.0.15/test/destest.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 4
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: test_des_cfb48
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - cfb_test
    linkageType: ''
    returnType: int
    signature: int test_des_cfb48(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cfb_test
      Src: /src/openssl-3.0.15/test/destest.c:549,1
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:552,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:553,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:555,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:556,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:558,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:560,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:562,1
    - Dst: DES_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:563,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:565,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:568,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:570,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:572,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:575,1
    - Dst: DES_cfb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:577,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 580
    functionName: test_des_cfb64
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_cfb64_encrypt
    - cfb_test
    - memcpy
    - DES_set_key_checked
    - DES_cfb_encrypt
    linkageType: ''
    returnType: int
    signature: int test_des_cfb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:587,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:588,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:590,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:592,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:594,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:596,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:598,1
    - Dst: DES_ede3_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:600,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 4
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: test_des_ede_cfb64
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_set_key_checked
    - DES_ede3_cfb64_encrypt
    - memcpy
    linkageType: ''
    returnType: int
    signature: int test_des_ede_cfb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:609,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:610,1
    - Dst: DES_ofb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:611,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:612,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:615,1
    - Dst: DES_ofb_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:616,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 619
    functionName: test_des_ofb
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_set_key_checked
    - DES_ofb_encrypt
    - memcpy
    linkageType: ''
    returnType: int
    signature: int test_des_ofb(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:627,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:628,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:629,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:630,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:633,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:635,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:637,1
    - Dst: DES_ofb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:639,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 642
    functionName: test_des_ofb64
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_ofb64_encrypt
    - memcpy
    - DES_set_key_checked
    - memset
    linkageType: ''
    returnType: int
    signature: int test_des_ofb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:650,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:651,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:652,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/destest.c:653,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:656,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:659,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:661,1
    - Dst: DES_ede3_ofb64_encrypt
      Src: /src/openssl-3.0.15/test/destest.c:663,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 666
    functionName: test_des_ede_ofb64
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - DES_set_key_checked
    - DES_ede3_ofb64_encrypt
    - memset
    linkageType: ''
    returnType: int
    signature: int test_des_ede_ofb64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_checked
      Src: /src/openssl-3.0.15/test/destest.c:674,1
    - Dst: DES_cbc_cksum
      Src: /src/openssl-3.0.15/test/destest.c:675,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:675,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-3.0.15/test/destest.c:677,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 680
    functionName: test_des_cbc_cksum
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - DES_set_key_checked
    - DES_cbc_cksum
    - strlen
    - TEST_cs_eq
    linkageType: ''
    returnType: int
    signature: int test_des_cbc_cksum(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DES_quad_cksum
      Src: /src/openssl-3.0.15/test/destest.c:686,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/destest.c:687,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-3.0.15/test/destest.c:689,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-3.0.15/test/destest.c:691,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-3.0.15/test/destest.c:693,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-3.0.15/test/destest.c:695,1
    - Dst: TEST_cs_eq
      Src: /src/openssl-3.0.15/test/destest.c:697,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 700
    functionName: test_des_quad_cksum
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - DES_quad_cksum
    - strlen
    - TEST_cs_eq
    linkageType: ''
    returnType: int
    signature: int test_des_quad_cksum(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/destest.c:721,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/destest.c:722,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/destest.c:722,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:723,1
    - Dst: EVP_CIPHER_get_block_size
      Src: /src/openssl-3.0.15/test/destest.c:723,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/destest.c:724,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:725,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/destest.c:726,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/destest.c:726,1
    - Dst: test_random
      Src: /src/openssl-3.0.15/test/destest.c:731,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:734,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:735,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/destest.c:736,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:740,1
    - Dst: EVP_EncryptInit
      Src: /src/openssl-3.0.15/test/destest.c:740,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:741,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/destest.c:741,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:746,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:750,1
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-3.0.15/test/destest.c:750,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:751,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:757,1
    - Dst: EVP_DecryptInit
      Src: /src/openssl-3.0.15/test/destest.c:757,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:758,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/destest.c:758,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/destest.c:762,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-3.0.15/test/destest.c:762,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/destest.c:766,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/destest.c:770,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/destest.c:771,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 773
    functionName: test_des_key_wrap
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_size_t_le
    - memcpy
    - TEST_int_eq
    - EVP_EncryptFinal
    - EVP_CIPHER_CTX_free
    - TEST_true
    - EVP_CIPHER_get_block_size
    - EVP_CIPHER_free
    - TEST_size_t_eq
    - EVP_DecryptFinal
    - EVP_DecryptInit
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - EVP_CIPHER_fetch
    - EVP_DecryptUpdate
    - EVP_EncryptUpdate
    - test_random
    - EVP_EncryptInit
    linkageType: ''
    returnType: int
    signature: int test_des_key_wrap(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:813,1
    - Dst: DES_is_weak_key
      Src: /src/openssl-3.0.15/test/destest.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: test_des_weak_keys
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - DES_is_weak_key
    linkageType: ''
    returnType: int
    signature: int test_des_weak_keys(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/destest.c:839,1
    - Dst: DES_check_key_parity
      Src: /src/openssl-3.0.15/test/destest.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 840
    functionName: test_des_check_bad_parity
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - DES_check_key_parity
    linkageType: ''
    returnType: int
    signature: int test_des_check_bad_parity(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/destest.c:850,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/destest.c:850,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/destest.c:851,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/destest.c:851,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/destest.c:852,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/test/destest.c:853,1
    - Dst: EVP_CIPHER_CTX_rand_key
      Src: /src/openssl-3.0.15/test/destest.c:854,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/destest.c:859,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/destest.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 843
    functionDepth: 4
    functionLinenumber: 843
    functionLinenumberEnd: 862
    functionName: test_des_two_key
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CIPHER_CTX_rand_key
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - TEST_ptr
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_des_two_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:869,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:870,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:871,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:872,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:873,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:874,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:875,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:876,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:877,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:878,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:879,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:880,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:881,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:882,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:883,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:884,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:885,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:886,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:887,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:888,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:889,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/destest.c:889,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:890,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/destest.c:890,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/destest.c:891,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/destest.c:891,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/destest.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 895
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/destest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BN_print_var
    functionSourceFile: /src/openssl-3.0.15/test/exptest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_print_var(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_zero
      Src: /src/openssl-3.0.15/test/exptest.c:34,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/exptest.c:35,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:36,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - method
    - r
    - a
    argTypes:
    - char*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: a_is_zero_mod_one
    functionSourceFile: /src/openssl-3.0.15/test/exptest.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - BN_print_var
    - BN_is_zero
    linkageType: ''
    returnType: int
    signature: "int a_is_zero_mod_one(const char *method, const BIGNUM *r,\n                             const
      BIGNUM *a)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/exptest.c:51,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:55,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:56,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:56,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:57,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:57,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:58,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:58,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/exptest.c:61,1
    - Dst: BN_one
      Src: /src/openssl-3.0.15/test/exptest.c:62,1
    - Dst: BN_zero
      Src: /src/openssl-3.0.15/test/exptest.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:65,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:68,1
    - Dst: BN_mod_exp
      Src: /src/openssl-3.0.15/test/exptest.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:71,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:74,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-3.0.15/test/exptest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:77,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:77,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:80,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/exptest.c:80,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:83,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:83,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:86,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/exptest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:89,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:92,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/exptest.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:95,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:95,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:98,1
    - Dst: BN_MONT_CTX_new
      Src: /src/openssl-3.0.15/test/exptest.c:98,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/exptest.c:101,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/exptest.c:103,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/exptest.c:103,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/exptest.c:105,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/exptest.c:105,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/exptest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:109,1
    - Dst: BN_MONT_CTX_set
      Src: /src/openssl-3.0.15/test/exptest.c:109,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:113,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/exptest.c:113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:116,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:119,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/exptest.c:119,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:122,1
    - Dst: a_is_zero_mod_one
      Src: /src/openssl-3.0.15/test/exptest.c:122,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:129,1
    - Dst: BN_mod_exp_mont_word
      Src: /src/openssl-3.0.15/test/exptest.c:129,1
    - Dst: TEST_BN_eq_zero
      Src: /src/openssl-3.0.15/test/exptest.c:132,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/exptest.c:133,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:135,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:141,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:142,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:143,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:144,1
    - Dst: BN_MONT_CTX_free
      Src: /src/openssl-3.0.15/test/exptest.c:145,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/exptest.c:146,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 149
    functionName: test_mod_exp_zero
    functionSourceFile: /src/openssl-3.0.15/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_set
    - BN_mod_exp_mont_word
    - TEST_BN_eq_zero
    - BN_mod_exp_recp
    - BN_mod_exp_simple
    - BN_one
    - BN_CTX_new
    - BN_print_var
    - TEST_error
    - TEST_true
    - a_is_zero_mod_one
    - BN_new
    - BN_mod_exp_mont_consttime
    - BN_free
    - BN_rand
    - TEST_ptr
    - BN_mod_exp_mont
    - BN_MONT_CTX_new
    - TEST_false
    - ERR_set_mark
    - BN_zero
    - BN_MONT_CTX_free
    - ERR_pop_to_mark
    - BN_mod_exp
    - BN_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_mod_exp_zero(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:164,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/exptest.c:164,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:167,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:167,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:168,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:168,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:169,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:169,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:170,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:170,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:171,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:171,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:172,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:172,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:173,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:173,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/exptest.c:176,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/exptest.c:176,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:179,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:179,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/exptest.c:183,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/exptest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:186,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:186,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/exptest.c:190,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/exptest.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:193,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:193,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:197,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/exptest.c:197,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:198,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/exptest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:199,1
    - Dst: BN_mod_exp_mont
      Src: /src/openssl-3.0.15/test/exptest.c:199,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:200,1
    - Dst: BN_mod_exp_recp
      Src: /src/openssl-3.0.15/test/exptest.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:201,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/exptest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:202,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/openssl-3.0.15/test/exptest.c:202,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/exptest.c:205,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/exptest.c:206,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/exptest.c:207,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/exptest.c:208,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/exptest.c:209,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/exptest.c:210,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/exptest.c:211,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/exptest.c:212,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/exptest.c:213,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:215,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:216,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:217,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:218,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:219,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:220,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:221,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:227,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:228,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:229,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:230,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:231,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:232,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:233,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/exptest.c:234,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 60
    argCount: 1
    argNames:
    - round
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 151
    functionDepth: 6
    functionLinenumber: 151
    functionLinenumberEnd: 237
    functionName: test_mod_exp
    functionSourceFile: /src/openssl-3.0.15/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_new
    - BN_mod_exp_mont
    - BN_mod_exp_mont_consttime
    - BN_CTX_new
    - TEST_BN_eq
    - BN_print_var
    - BN_free
    - TEST_info
    - BN_cmp
    - BN_rand
    - BN_mod
    - TEST_ptr
    - RAND_bytes
    - TEST_true
    - BN_CTX_free
    - TEST_int_gt
    - BN_mod_exp_recp
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int test_mod_exp(int round)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:261,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/exptest.c:261,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:264,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:264,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:265,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:265,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:266,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:266,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:267,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:267,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:268,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:268,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:269,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:269,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:270,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:270,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:271,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:271,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:272,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:272,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/exptest.c:273,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/exptest.c:273,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:276,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:277,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:278,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:279,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:280,1
    - Dst: BN_rand
      Src: /src/openssl-3.0.15/test/exptest.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:283,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/exptest.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:284,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/exptest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:285,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/exptest.c:285,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:286,1
    - Dst: BN_mod
      Src: /src/openssl-3.0.15/test/exptest.c:286,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:287,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/exptest.c:287,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:288,1
    - Dst: BN_mod_exp_simple
      Src: /src/openssl-3.0.15/test/exptest.c:288,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/exptest.c:289,1
    - Dst: BN_mod_exp_mont_consttime_x2
      Src: /src/openssl-3.0.15/test/exptest.c:289,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/exptest.c:294,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/exptest.c:295,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/exptest.c:296,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/exptest.c:297,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/exptest.c:298,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/exptest.c:299,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:301,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:302,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:303,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:304,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:305,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:306,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:307,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:308,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:309,1
    - Dst: BN_print_var
      Src: /src/openssl-3.0.15/test/exptest.c:310,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:316,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:317,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:318,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:319,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:320,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:321,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:322,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:323,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:324,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/exptest.c:325,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/exptest.c:326,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 51
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 239
    functionDepth: 7
    functionLinenumber: 239
    functionLinenumberEnd: 329
    functionName: test_mod_exp_x2
    functionSourceFile: /src/openssl-3.0.15/test/exptest.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp_mont_consttime_x2
    - BN_new
    - BN_CTX_new
    - TEST_BN_eq
    - BN_print_var
    - BN_free
    - TEST_info
    - BN_rand
    - BN_mod
    - TEST_ptr
    - TEST_true
    - BN_CTX_free
    - BN_cmp
    - BN_mod_exp_simple
    linkageType: ''
    returnType: int
    signature: int test_mod_exp_x2(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/exptest.c:333,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/exptest.c:334,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/exptest.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/exptest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_engine.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fake_rand_set_callback
      Src: /src/openssl-3.0.15/test/ecdsatest.c:42,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:44,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:44,1
    - Dst: TEST_int_lt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:45,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ecdsatest.c:45,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:46,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:46,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ecdsatest.c:48,1
    - Dst: BN_num_bytes
      Src: /src/openssl-3.0.15/test/ecdsatest.c:48,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:49,1
    - Dst: BN_bn2binpad
      Src: /src/openssl-3.0.15/test/ecdsatest.c:49,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ecdsatest.c:52,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - num
    - name
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - ossl_unused*
    - EVP_RAND_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: fbytes
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - TEST_int_lt
    - BN_bn2binpad
    - BN_num_bytes
    - BN_new
    - BN_free
    - BN_hex2bn
    - TEST_int_le
    - TEST_ptr
    - TEST_true
    - fake_rand_set_callback
    - TEST_int_gt
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int fbytes(unsigned char *buf, size_t num, ossl_unused const char
      *name,\n                  EVP_RAND_CTX *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ecdsatest.c:97,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:97,1
    - Dst: EC_curve_nid2nist
      Src: /src/openssl-3.0.15/test/ecdsatest.c:100,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/ecdsatest.c:101,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:104,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:104,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:106,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/ecdsatest.c:106,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:107,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/ecdsatest.c:107,1
    - Dst: EVP_get_digestbynid
      Src: /src/openssl-3.0.15/test/ecdsatest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:108,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/ecdsatest.c:108,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:109,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/ecdsatest.c:109,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:111,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ecdsatest.c:111,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:113,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:114,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:114,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:115,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:116,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:116,1
    - Dst: fake_rand_set_callback
      Src: /src/openssl-3.0.15/test/ecdsatest.c:120,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/test/ecdsatest.c:120,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:121,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ecdsatest.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:122,1
    - Dst: EC_KEY_key2buf
      Src: /src/openssl-3.0.15/test/ecdsatest.c:122,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:124,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/ecdsatest.c:124,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:125,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:126,1
    - Dst: fake_rand_set_callback
      Src: /src/openssl-3.0.15/test/ecdsatest.c:130,1
    - Dst: RAND_get0_private
      Src: /src/openssl-3.0.15/test/ecdsatest.c:130,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:131,1
    - Dst: ECDSA_sign_setup
      Src: /src/openssl-3.0.15/test/ecdsatest.c:131,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:132,1
    - Dst: ECDSA_do_sign_ex
      Src: /src/openssl-3.0.15/test/ecdsatest.c:132,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:135,1
    - Dst: ECDSA_do_verify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:135,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openssl-3.0.15/test/ecdsatest.c:139,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:140,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:141,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:147,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:148,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:149,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:150,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:151,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:152,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:153,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:154,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:155,1
    - Dst: BN_clear_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:156,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 40
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 73
    functionDepth: 14
    functionLinenumber: 73
    functionLinenumberEnd: 158
    functionName: x9_62_tests
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_MD_CTX_free
    - TEST_int_eq
    - OPENSSL_hexstr2buf
    - ECDSA_SIG_free
    - BN_hex2bn
    - EC_KEY_new_by_curve_name
    - EC_KEY_key2buf
    - TEST_BN_eq
    - EC_curve_nid2nist
    - OBJ_nid2sn
    - BN_clear_free
    - TEST_true
    - BN_new
    - EVP_MD_CTX_new
    - ECDSA_sign_setup
    - TEST_info
    - TEST_skip
    - OPENSSL_free
    - BN_free
    - EC_KEY_generate_key
    - EVP_DigestFinal_ex
    - TEST_ptr
    - EVP_DigestUpdate
    - EC_KEY_free
    - EVP_DigestInit_ex
    - ECDSA_SIG_get0
    - RAND_get0_private
    - ECDSA_do_sign_ex
    - EVP_get_digestbynid
    - ECDSA_do_verify
    - fake_rand_set_callback
    linkageType: ''
    returnType: int
    signature: int x9_62_tests(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:182,1
    - Dst: EVP_MD_CTX_get_pkey_ctx
      Src: /src/openssl-3.0.15/test/ecdsatest.c:182,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:183,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mctx
    - pkey
    argTypes:
    - EVP_MD_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: set_sm2_id
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EVP_MD_CTX_get_pkey_ctx
    - TEST_int_gt
    - EVP_PKEY_CTX_set1_id
    linkageType: ''
    returnType: int
    signature: int set_sm2_id(EVP_MD_CTX *mctx, EVP_PKEY *pkey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ecdsatest.c:203,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:203,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ecdsatest.c:212,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:213,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ecdsatest.c:216,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:217,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ecdsatest.c:221,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ecdsatest.c:221,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:224,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:224,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:226,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/ecdsatest.c:226,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:228,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ecdsatest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:229,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ecdsatest.c:229,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:230,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:231,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/ecdsatest.c:231,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:233,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ecdsatest.c:233,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:234,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ecdsatest.c:234,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:235,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/ecdsatest.c:235,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ecdsatest.c:236,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/ecdsatest.c:236,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:237,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/ecdsatest.c:237,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:240,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/ecdsatest.c:240,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:241,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:241,1
    - Dst: ECDSA_size
      Src: /src/openssl-3.0.15/test/ecdsatest.c:244,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/ecdsatest.c:246,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:247,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ecdsatest.c:247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:249,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:249,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:250,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:251,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/ecdsatest.c:251,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ecdsatest.c:252,1
    - Dst: ECDSA_size
      Src: /src/openssl-3.0.15/test/ecdsatest.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:253,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:253,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:255,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:255,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:256,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:257,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:258,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:258,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:260,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:260,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:261,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:262,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:262,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:263,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:265,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:265,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:266,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:267,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:267,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:268,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:268,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:273,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:273,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:274,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:275,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:275,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:276,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:280,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:280,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:281,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:282,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:283,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:315,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:315,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:316,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ecdsatest.c:317,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:318,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:318,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:322,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/ecdsatest.c:322,1
    - Dst: set_sm2_id
      Src: /src/openssl-3.0.15/test/ecdsatest.c:323,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:324,1
    - Dst: EVP_DigestVerify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:324,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:325,1
    - Dst: EVP_MD_CTX_reset
      Src: /src/openssl-3.0.15/test/ecdsatest.c:325,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:330,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:331,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:332,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:333,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:334,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 52
    argCount: 2
    argNames:
    - n
    - as
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 188
    functionDepth: 8
    functionLinenumber: 188
    functionLinenumberEnd: 336
    functionName: test_builtin
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - TEST_int_eq
    - TEST_int_ne
    - EVP_DigestSignInit
    - EC_KEY_new_by_curve_name
    - TEST_int_gt
    - set_sm2_id
    - OBJ_nid2sn
    - TEST_int_le
    - TEST_true
    - EVP_PKEY_eq
    - EVP_DigestSign
    - EVP_DigestVerify
    - EVP_DigestVerifyInit
    - TEST_int_ge
    - EVP_MD_CTX_new
    - EVP_PKEY_dup
    - ECDSA_size
    - TEST_info
    - EVP_PKEY_new
    - OPENSSL_free
    - EVP_MD_CTX_reset
    - EC_KEY_generate_key
    - TEST_ptr
    - RAND_bytes
    - OPENSSL_malloc
    - TEST_false
    - EVP_PKEY_assign_EC_KEY
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_builtin(int n, int as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_builtin
      Src: /src/openssl-3.0.15/test/ecdsatest.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 9
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: test_builtin_as_ec
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - test_builtin
    linkageType: ''
    returnType: int
    signature: int test_builtin_as_ec(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_builtin
      Src: /src/openssl-3.0.15/test/ecdsatest.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 9
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: test_builtin_as_sm2
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - test_builtin
    linkageType: ''
    returnType: int
    signature: int test_builtin_as_sm2(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:360,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ecdsatest.c:360,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:361,1
    - Dst: EC_KEY_generate_key
      Src: /src/openssl-3.0.15/test/ecdsatest.c:361,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:362,1
    - Dst: ECDSA_sign
      Src: /src/openssl-3.0.15/test/ecdsatest.c:362,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:364,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:365,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ecdsatest.c:365,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:366,1
    - Dst: ECDSA_sign
      Src: /src/openssl-3.0.15/test/ecdsatest.c:366,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:368,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ecdsatest.c:369,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:370,1
    - Dst: ECDSA_verify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:370,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:372,1
    - Dst: ECDSA_sign_setup
      Src: /src/openssl-3.0.15/test/ecdsatest.c:372,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:373,1
    - Dst: ECDSA_sign_ex
      Src: /src/openssl-3.0.15/test/ecdsatest.c:373,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/ecdsatest.c:375,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ecdsatest.c:376,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:377,1
    - Dst: ECDSA_sign_ex
      Src: /src/openssl-3.0.15/test/ecdsatest.c:377,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:379,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ecdsatest.c:380,1
    - Dst: ECDSA_verify
      Src: /src/openssl-3.0.15/test/ecdsatest.c:380,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:382,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:383,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:384,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 387
    functionName: test_ecdsa_sig_NULL
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - ECDSA_verify
    - EC_KEY_free
    - TEST_int_eq
    - OPENSSL_malloc
    - ECDSA_sign_setup
    - OPENSSL_free
    - BN_free
    - ECDSA_sign_ex
    - EC_KEY_generate_key
    - TEST_int_le
    - TEST_ptr
    - ECDSA_sign
    - EC_KEY_new_by_curve_name
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_ecdsa_sig_NULL(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ecdsatest.c:394,1
    - Dst: fake_rand_start
      Src: /src/openssl-3.0.15/test/ecdsatest.c:396,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-3.0.15/test/ecdsatest.c:401,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecdsatest.c:402,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/ecdsatest.c:402,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecdsatest.c:403,1
    - Dst: EC_get_builtin_curves
      Src: /src/openssl-3.0.15/test/ecdsatest.c:403,1
    - Dst: fake_rand_finish
      Src: /src/openssl-3.0.15/test/ecdsatest.c:404,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ecdsatest.c:407,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ecdsatest.c:408,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ecdsatest.c:410,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ecdsatest.c:412,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ecdsatest.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 415
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_note
    - OPENSSL_malloc
    - fake_rand_finish
    - EC_get_builtin_curves
    - ADD_ALL_TESTS
    - fake_rand_start
    - TEST_ptr
    - TEST_true
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fake_rand_finish
      Src: /src/openssl-3.0.15/test/ecdsatest.c:420,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ecdsatest.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ecdsatest.c
    functionUses: 4
    functionsReached:
    - OPENSSL_free
    - fake_rand_finish
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_prov_ssl.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openssl-3.0.15/test/threadstest.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: run_thread
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 7
    functionsReached:
    - f
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t, void (*f)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openssl-3.0.15/test/threadstest.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: thread_run
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: DWORD
    signature: DWORD thread_run(LPVOID arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateThread
      Src: /src/openssl-3.0.15/test/threadstest.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: run_thread
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 7
    functionsReached:
    - CreateThread
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t, void (*f)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/openssl-3.0.15/test/threadstest.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 7
    functionsReached:
    - WaitForSingleObject
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/openssl-3.0.15/test/threadstest.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: thread_run
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void *thread_run(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/openssl-3.0.15/test/threadstest.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - thread_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: run_thread
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 7
    functionsReached:
    - pthread_create
    linkageType: ''
    returnType: int
    signature: int run_thread(thread_t *t, void (*f)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/openssl-3.0.15/test/threadstest.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread
    argTypes:
    - thread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: wait_for_thread
    functionSourceFile: /src/openssl-3.0.15/test/threadstest.h
    functionUses: 7
    functionsReached:
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int wait_for_thread(thread_t thread)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:22,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:24,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:27,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:28,1
    - Dst: OPENSSL_init_crypto
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:36,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:44,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:44,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:46,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:46,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:51,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 18
    functionDepth: 11
    functionLinenumber: 18
    functionLinenumberEnd: 54
    functionName: test_no_deflt_ctx_init
    functionSourceFile: /src/openssl-3.0.15/test/nodefltctxtest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_available
    - TEST_false
    - OPENSSL_init_crypto
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_no_deflt_ctx_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/nodefltctxtest.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/nodefltctxtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strlcpy
      Src: /src/openssl-3.0.15/test/uitest.c:23,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/uitest.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: test_pem_password_cb
    functionSourceFile: /src/openssl-3.0.15/test/uitest.c
    functionUses: 0
    functionsReached:
    - strlen
    - OPENSSL_strlcpy
    linkageType: ''
    returnType: int
    signature: int test_pem_password_cb(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/uitest.c:39,1
    - Dst: UI_UTIL_wrap_read_pem_callback
      Src: /src/openssl-3.0.15/test/uitest.c:40,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/uitest.c:41,1
    - Dst: UI_new_method
      Src: /src/openssl-3.0.15/test/uitest.c:41,1
    - Dst: UI_add_user_data
      Src: /src/openssl-3.0.15/test/uitest.c:45,1
    - Dst: UI_add_input_string
      Src: /src/openssl-3.0.15/test/uitest.c:47,1
    - Dst: UI_process
      Src: /src/openssl-3.0.15/test/uitest.c:51,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/uitest.c:53,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/uitest.c:61,1
    - Dst: UI_free
      Src: /src/openssl-3.0.15/test/uitest.c:65,1
    - Dst: UI_destroy_method
      Src: /src/openssl-3.0.15/test/uitest.c:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 69
    functionName: test_old
    functionSourceFile: /src/openssl-3.0.15/test/uitest.c
    functionUses: 0
    functionsReached:
    - UI_new_method
    - UI_UTIL_wrap_read_pem_callback
    - UI_add_user_data
    - UI_process
    - TEST_info
    - UI_free
    - UI_add_input_string
    - TEST_str_eq
    - TEST_ptr
    - UI_destroy_method
    linkageType: ''
    returnType: int
    signature: int test_old(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_ui_method
      Src: /src/openssl-3.0.15/test/uitest.c:81,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/uitest.c:82,1
    - Dst: password_callback
      Src: /src/openssl-3.0.15/test/uitest.c:82,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/uitest.c:83,1
    - Dst: destroy_ui_method
      Src: /src/openssl-3.0.15/test/uitest.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: test_new_ui
    functionSourceFile: /src/openssl-3.0.15/test/uitest.c
    functionUses: 0
    functionsReached:
    - destroy_ui_method
    - password_callback
    - setup_ui_method
    - TEST_str_eq
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_new_ui(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/uitest.c:91,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/uitest.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/uitest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/hexstr_test.c:71,1
    - Dst: ossl_hexstr2buf_sep
      Src: /src/openssl-3.0.15/test/hexstr_test.c:71,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:72,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/hexstr_test.c:73,1
    - Dst: ossl_buf2hexstr_sep
      Src: /src/openssl-3.0.15/test/hexstr_test.c:73,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:74,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/hexstr_test.c:79,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/hexstr_test.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - test_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: test_hexstr_sep_to_from
    functionSourceFile: /src/openssl-3.0.15/test/hexstr_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - ossl_hexstr2buf_sep
    - ossl_buf2hexstr_sep
    - OPENSSL_free
    - TEST_str_eq
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_hexstr_sep_to_from(int test_index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/hexstr_test.c:93,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/hexstr_test.c:93,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/hexstr_test.c:95,1
    - Dst: OPENSSL_buf2hexstr
      Src: /src/openssl-3.0.15/test/hexstr_test.c:95,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:98,1
    - Dst: TEST_str_ne
      Src: /src/openssl-3.0.15/test/hexstr_test.c:100,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/hexstr_test.c:104,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/hexstr_test.c:104,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/hexstr_test.c:109,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/hexstr_test.c:110,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - test_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: test_hexstr_to_from
    functionSourceFile: /src/openssl-3.0.15/test/hexstr_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_str_ne
    - TEST_ptr_null
    - OPENSSL_hexstr2buf
    - OPENSSL_free
    - OPENSSL_buf2hexstr
    - TEST_str_eq
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_hexstr_to_from(int test_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/hexstr_test.c:121,1
    - Dst: OPENSSL_hexstr2buf_ex
      Src: /src/openssl-3.0.15/test/hexstr_test.c:121,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:122,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/hexstr_test.c:123,1
    - Dst: OPENSSL_buf2hexstr_ex
      Src: /src/openssl-3.0.15/test/hexstr_test.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/hexstr_test.c:125,1
    - Dst: OPENSSL_buf2hexstr_ex
      Src: /src/openssl-3.0.15/test/hexstr_test.c:125,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/hexstr_test.c:128,1
    - Dst: OPENSSL_buf2hexstr_ex
      Src: /src/openssl-3.0.15/test/hexstr_test.c:128,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/hexstr_test.c:130,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/hexstr_test.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - test_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: test_hexstr_ex_to_from
    functionSourceFile: /src/openssl-3.0.15/test/hexstr_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_false
    - TEST_size_t_eq
    - OPENSSL_hexstr2buf_ex
    - OPENSSL_buf2hexstr_ex
    - strlen
    - TEST_str_eq
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_hexstr_ex_to_from(int test_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/hexstr_test.c:135,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/hexstr_test.c:135,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/hexstr_test.c:136,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/hexstr_test.c:136,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/hexstr_test.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/hexstr_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cmsapitest.c:26,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/cmsapitest.c:26,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/cmsapitest.c:28,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmsapitest.c:28,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/cmsapitest.c:29,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/cmsapitest.c:29,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:33,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:33,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:33,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:36,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/cmsapitest.c:36,1
    - Dst: CMS_encrypt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:39,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmsapitest.c:43,1
    - Dst: CMS_decrypt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:43,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmsapitest.c:48,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/test/cmsapitest.c:48,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmsapitest.c:48,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmsapitest.c:49,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/cmsapitest.c:49,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:54,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:55,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:56,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:57,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmsapitest.c:59,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/cmsapitest.c:59,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 23
    functionDepth: 10
    functionLinenumber: 23
    functionLinenumberEnd: 60
    functionName: test_encrypt_decrypt
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - sk_X509_push
    - CMS_encrypt
    - strlen
    - BIO_gets
    - TEST_int_gt
    - BIO_s_mem
    - BIO_new
    - ERR_peek_error
    - TEST_true
    - sk_X509_free
    - STACK_OF
    - strcmp
    - TEST_ptr
    - BIO_new_mem_buf
    - BIO_free
    - CMS_decrypt
    - sk_X509_new_null
    - CMS_ContentInfo_free
    linkageType: ''
    returnType: int
    signature: int test_encrypt_decrypt(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_encrypt_decrypt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:64,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/cmsapitest.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 11
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: test_encrypt_decrypt_aes_cbc
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_cbc
    - test_encrypt_decrypt
    linkageType: ''
    returnType: int
    signature: int test_encrypt_decrypt_aes_cbc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_encrypt_decrypt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:69,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/test/cmsapitest.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 11
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: test_encrypt_decrypt_aes_128_gcm
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_128_gcm
    - test_encrypt_decrypt
    linkageType: ''
    returnType: int
    signature: int test_encrypt_decrypt_aes_128_gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_encrypt_decrypt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:74,1
    - Dst: EVP_aes_192_gcm
      Src: /src/openssl-3.0.15/test/cmsapitest.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 11
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: test_encrypt_decrypt_aes_192_gcm
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_192_gcm
    - test_encrypt_decrypt
    linkageType: ''
    returnType: int
    signature: int test_encrypt_decrypt_aes_192_gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_encrypt_decrypt
      Src: /src/openssl-3.0.15/test/cmsapitest.c:79,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-3.0.15/test/cmsapitest.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 11
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: test_encrypt_decrypt_aes_256_gcm
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - EVP_aes_256_gcm
    - test_encrypt_decrypt
    linkageType: ''
    returnType: int
    signature: int test_encrypt_decrypt_aes_256_gcm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:283,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/cmsapitest.c:283,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:284,1
    - Dst: d2i_CMS_bio
      Src: /src/openssl-3.0.15/test/cmsapitest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmsapitest.c:285,1
    - Dst: CMS_verify
      Src: /src/openssl-3.0.15/test/cmsapitest.c:285,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:287,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:288,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmsapitest.c:289,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/cmsapitest.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 290
    functionName: test_d2i_CMS_bio_NULL
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - BIO_new_mem_buf
    - BIO_free
    - TEST_int_eq
    - ERR_peek_error
    - d2i_CMS_bio
    - CMS_verify
    - CMS_ContentInfo_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_d2i_CMS_bio_NULL(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_realloc
      Src: /src/openssl-3.0.15/test/cmsapitest.c:301,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/cmsapitest.c:305,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - bio
    - p_len
    argTypes:
    - BIO*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 319
    functionName: read_all
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_realloc
    - OPENSSL_free
    - BIO_read
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *read_all(BIO *bio, long *p_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:330,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/cmsapitest.c:330,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:335,1
    - Dst: d2i_CMS_bio
      Src: /src/openssl-3.0.15/test/cmsapitest.c:335,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:339,1
    - Dst: read_all
      Src: /src/openssl-3.0.15/test/cmsapitest.c:339,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:342,1
    - Dst: d2i_CMS_ContentInfo
      Src: /src/openssl-3.0.15/test/cmsapitest.c:342,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmsapitest.c:347,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/cmsapitest.c:347,1
    - Dst: CMS_ContentInfo_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:352,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:353,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:354,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 357
    functionName: test_d2i_CMS_decode
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - read_all
    - TEST_int_eq
    - BIO_free
    - ERR_peek_error
    - d2i_CMS_ContentInfo
    - OPENSSL_free
    - d2i_CMS_bio
    - CMS_ContentInfo_free
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_d2i_CMS_decode(const int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/cmsapitest.c:366,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmsapitest.c:367,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:371,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmsapitest.c:371,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:372,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmsapitest.c:372,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:373,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmsapitest.c:373,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/cmsapitest.c:376,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:377,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmsapitest.c:379,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/cmsapitest.c:379,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:380,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:383,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/cmsapitest.c:385,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmsapitest.c:386,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:387,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmsapitest.c:391,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/openssl-3.0.15/test/cmsapitest.c:391,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:392,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:393,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:397,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmsapitest.c:399,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmsapitest.c:400,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmsapitest.c:401,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmsapitest.c:402,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmsapitest.c:403,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/cmsapitest.c:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 406
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_PrivateKey
    - ADD_TEST
    - X509_free
    - PEM_read_bio_X509
    - BIO_free
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - TEST_true
    - test_get_argument
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:410,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/cmsapitest.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmsapitest.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - b
    - oper
    - argp
    - len
    - argi
    - argl
    - ret
    - processed
    argTypes:
    - BIO*
    - int
    - char*
    - size_t
    - int
    - long
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: my_bio_cb_ex
    functionSourceFile: /src/openssl-3.0.15/test/bio_callback_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long my_bio_cb_ex(BIO *b, int oper, const char *argp, size_t len,\n
      \                        int argi, long argl, int ret, size_t *processed)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:58,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:58,1
    - Dst: BIO_set_callback_ex
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:62,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:63,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:64,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:65,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:66,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:67,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:68,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:69,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:70,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:71,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:72,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:73,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:74,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:75,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:76,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:77,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:78,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:82,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:83,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:84,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:85,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:86,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:87,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:88,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:89,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:90,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:91,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:92,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:93,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:94,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:95,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:96,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:97,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:103,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:104,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:105,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:106,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:107,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:108,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:109,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:110,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:111,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:112,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:113,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:114,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:115,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:116,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:117,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:122,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:123,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:124,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:125,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:126,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:127,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:128,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:129,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:130,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:131,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:132,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:133,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:134,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:135,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:136,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:140,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:141,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:142,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:143,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:144,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:145,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:146,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:147,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:148,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:149,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:150,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:151,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:152,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:153,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:154,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:158,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:159,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:160,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:161,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:162,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:163,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:164,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:165,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:166,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:167,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:168,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:169,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:170,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:171,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:172,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:173,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:177,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:178,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:179,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:180,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:181,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:182,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:183,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:184,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:185,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:192,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:196,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:197,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 199
    functionName: test_bio_callback_ex
    functionSourceFile: /src/openssl-3.0.15/test/bio_callback_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BIO_set_mem_eof_return
    - BIO_new
    - BIO_read
    - BIO_puts
    - TEST_int_eq
    - BIO_free
    - TEST_long_eq
    - TEST_size_t_eq
    - TEST_ptr_eq
    - BIO_write
    - BIO_set_callback_ex
    - memset
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_bio_callback_ex(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - b
    - oper
    - argp
    - argi
    - argl
    - ret
    argTypes:
    - BIO*
    - int
    - char*
    - int
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: my_bio_callback
    functionSourceFile: /src/openssl-3.0.15/test/bio_callback_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long my_bio_callback(BIO *b, int oper, const char *argp, int argi,\n
      \                           long argl, long ret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:230,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:230,1
    - Dst: BIO_set_callback
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:234,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:235,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:236,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:237,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:238,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:239,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:240,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:241,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:242,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:243,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:244,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:245,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:246,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:247,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:248,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:249,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:253,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:254,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:255,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:256,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:257,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:258,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:259,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:260,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:261,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:262,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:263,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:264,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:265,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:266,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:267,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:272,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:273,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:274,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:275,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:276,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:277,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:278,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:279,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:280,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:281,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:282,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:283,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:284,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:285,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:286,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:290,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:292,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:293,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:294,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:295,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:296,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:297,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:298,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:299,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:300,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:301,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:302,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:303,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:304,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:305,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:306,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:310,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:311,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:312,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:313,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:314,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:315,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:316,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:317,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:318,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:319,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:320,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:321,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:322,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:323,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:324,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:328,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:329,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:330,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:331,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:332,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:333,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:334,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:335,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:336,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:343,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:347,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:348,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 350
    functionName: test_bio_callback
    functionSourceFile: /src/openssl-3.0.15/test/bio_callback_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BIO_set_mem_eof_return
    - BIO_set_callback
    - BIO_new
    - BIO_read
    - BIO_puts
    - TEST_int_eq
    - BIO_free
    - TEST_long_eq
    - TEST_ptr_eq
    - BIO_write
    - memset
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_bio_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:355,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bio_callback_test.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bio_callback_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:45,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:47,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:48,1
    - Dst: OSSL_STORE_SEARCH_by_alias
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:48,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:49,1
    - Dst: UI_create_method
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:49,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:50,1
    - Dst: OSSL_STORE_open_ex
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:50,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:52,1
    - Dst: OSSL_STORE_find
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:53,1
    - Dst: OSSL_STORE_find
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:53,1
    - Dst: UI_destroy_method
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:54,1
    - Dst: OSSL_STORE_SEARCH_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:55,1
    - Dst: OSSL_STORE_close
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:56,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 13
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: test_store_open
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 0
    functionsReached:
    - OSSL_STORE_open_ex
    - test_mk_file_path
    - OSSL_STORE_close
    - UI_create_method
    - TEST_false
    - OSSL_STORE_find
    - OSSL_STORE_SEARCH_by_alias
    - OSSL_STORE_SEARCH_free
    - OPENSSL_free
    - TEST_ptr
    - TEST_true
    - UI_destroy_method
    linkageType: ''
    returnType: int
    signature: int test_store_open(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:66,1
    - Dst: OSSL_STORE_SEARCH_by_key_fingerprint
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:66,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:67,1
    - Dst: OSSL_STORE_SEARCH_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: test_store_search_by_key_fingerprint_fail
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - TEST_ptr_null
    - OSSL_STORE_SEARCH_free
    - OSSL_STORE_SEARCH_by_key_fingerprint
    linkageType: ''
    returnType: int
    signature: int test_store_search_by_key_fingerprint_fail(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_STORE_open_ex
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:79,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:80,1
    - Dst: OSSL_STORE_eof
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:83,1
    - Dst: OSSL_STORE_load
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:84,1
    - Dst: OSSL_STORE_INFO_get_type
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:86,1
    - Dst: OSSL_STORE_INFO_get1_PARAMS
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:87,1
    - Dst: OSSL_STORE_INFO_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:89,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:94,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:95,1
    - Dst: OSSL_STORE_close
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - uri
    - type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 11
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: get_params
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 48
    functionsReached:
    - OSSL_STORE_open_ex
    - OSSL_STORE_load
    - OSSL_STORE_INFO_free
    - OSSL_STORE_close
    - OSSL_STORE_INFO_get_type
    - OSSL_STORE_eof
    - EVP_PKEY_free
    - OSSL_STORE_INFO_get1_PARAMS
    - TEST_ptr
    - EVP_PKEY_is_a
    linkageType: ''
    returnType: int
    signature: int get_params(const char *uri, const char *type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:129,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:142,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:142,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:145,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:146,1
    - Dst: get_params
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 102
    functionDepth: 12
    functionLinenumber: 102
    functionLinenumberEnd: 150
    functionName: test_store_get_params
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - TEST_error
    - TEST_info
    - strlen
    - TEST_true
    - get_params
    linkageType: ''
    returnType: int
    signature: int test_store_get_params(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:163,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:165,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:166,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:166,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:167,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:167,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:168,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:168,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:169,1
    - Dst: OSSL_STORE_attach
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:169,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:171,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:171,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:171,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:172,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:172,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:172,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:175,1
    - Dst: OSSL_STORE_close
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:176,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:177,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:178,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 11
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: test_store_attach_unregistered_scheme
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - OSSL_PROVIDER_load
    - OSSL_STORE_close
    - ERR_GET_REASON
    - TEST_int_ne
    - BIO_free
    - OSSL_PROVIDER_unload
    - ERR_peek_error
    - OSSL_STORE_attach
    - ERR_GET_LIB
    - OSSL_LIB_CTX_free
    - OPENSSL_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_store_attach_unregistered_scheme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:200,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:203,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:206,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:209,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:212,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:223,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:227,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:232,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:233,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:234,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ossl_store_test.c:236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 238
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ossl_store_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_arg
    - opt_next
    - ADD_ALL_TESTS
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_ebcdic.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:23,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:23,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 11
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: thread_fips_rand_fetch
    functionSourceFile: /src/openssl-3.0.15/test/threadstest_fips.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: void
    signature: void thread_fips_rand_fetch(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:34,1
    - Dst: run_thread
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:34,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:36,1
    - Dst: wait_for_thread
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:36,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: test_fips_rand_leak
    functionSourceFile: /src/openssl-3.0.15/test/threadstest_fips.c
    functionUses: 0
    functionsReached:
    - run_thread
    - wait_for_thread
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_fips_rand_leak(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/threadstest_fips.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/threadstest_fips.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_objects.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/openssl-3.0.15/test/localetest.c:101,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/localetest.c:102,1
    - Dst: strcasecmp
      Src: /src/openssl-3.0.15/test/localetest.c:104,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/localetest.c:105,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/localetest.c:107,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/localetest.c:107,1
    - Dst: d2i_X509
      Src: /src/openssl-3.0.15/test/localetest.c:110,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/localetest.c:111,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/localetest.c:114,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/localetest.c:115,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/localetest.c:116,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/localetest.c:120,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/localetest.c:120,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/localetest.c:121,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/localetest.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 127
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/localetest.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - X509_get_X509_PUBKEY
    - X509_free
    - X509_PUBKEY_get0
    - TEST_false
    - strcasecmp
    - TEST_skip
    - setlocale
    - TEST_ptr
    - d2i_X509
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/localetest.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/localetest.c
    functionUses: 0
    functionsReached:
    - TEST_skip
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/localetest.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_params.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:70,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:74,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:75,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:75,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:76,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:77,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:78,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:79,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:80,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:81,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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: do_PRF
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_md5_sha1
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    linkageType: ''
    returnType: int
    signature: "int 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:110,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:111,1
    - Dst: d2i_SSL_SESSION
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 114
    functionName: client_session
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - d2i_SSL_SESSION
    - memcpy
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *client_session(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:125,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:127,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:131,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:134,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:137,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:141,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:144,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:148,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:152,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:156,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:157,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:161,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:163,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:164,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:170,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:170,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:174,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:174,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:178,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:178,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:182,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:186,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:190,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 40
    argCount: 1
    argNames:
    - wbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 193
    functionName: validate_client_hello
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - PACKET_get_1
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - PACKET_equal
    - PACKET_remaining
    - PACKET_forward
    - PACKET_copy_bytes
    - PACKET_get_net_2
    - BIO_get_mem_data
    - BIO_reset
    linkageType: ''
    returnType: int
    signature: int validate_client_hello(BIO *wbio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:216,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: send_hello_verify
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - BIO_write
    - memcpy
    linkageType: ''
    returnType: int
    signature: int send_hello_verify(BIO *rbio)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:260,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:261,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:263,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:267,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 271
    functionName: send_server_hello
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - BIO_write
    - memcpy
    linkageType: ''
    returnType: int
    signature: int send_server_hello(BIO *rbio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:301,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:306,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:309,1
    - Dst: EVP_MAC_fetch
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:309,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:310,1
    - Dst: EVP_MAC_CTX_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:310,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:312,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:314,1
    - Dst: EVP_MAC_init
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:317,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:318,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:319,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:320,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:321,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:322,1
    - Dst: EVP_MAC_update
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:323,1
    - Dst: EVP_MAC_final
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:324,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:334,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:334,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:335,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:335,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:336,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:336,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:336,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:338,1
    - Dst: EVP_Cipher
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:338,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:342,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:343,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:344,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:345,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:348,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:350,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:351,1
    - Dst: EVP_MAC_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:354,1
    - Dst: EVP_MAC_CTX_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:355,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:356,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:357,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 5
    argNames:
    - rbio
    - type
    - seqnr
    - msg
    - len
    argTypes:
    - BIO*
    - unsigned char
    - uint64_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 274
    functionDepth: 11
    functionLinenumber: 274
    functionLinenumberEnd: 359
    functionName: send_record
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TEST_int_gt
    - EVP_CIPHER_CTX_free
    - EVP_Cipher
    - EVP_CipherInit_ex
    - TEST_true
    - EVP_MAC_init
    - EVP_MAC_final
    - EVP_MAC_update
    - TEST_int_ge
    - OSSL_PARAM_construct_utf8_string
    - EVP_MAC_CTX_new
    - EVP_MAC_fetch
    - OPENSSL_free
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - EVP_aes_128_cbc
    - RAND_bytes
    - EVP_MAC_free
    - OPENSSL_malloc
    - OSSL_PARAM_construct_end
    - BIO_write
    - EVP_MAC_CTX_free
    linkageType: ''
    returnType: int
    signature: "int send_record(BIO *rbio, unsigned char type, uint64_t seqnr,\n                       const
      void *msg, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_PRF
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:375,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:381,1
    - Dst: do_PRF
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:384,1
    - Dst: EVP_MD_CTX_get_size
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:385,1
    - Dst: send_record
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - rbio
    argTypes:
    - SSL*
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 361
    functionDepth: 12
    functionLinenumber: 361
    functionLinenumberEnd: 391
    functionName: send_finished
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - do_PRF
    - EVP_MD_CTX_get_size
    - send_record
    - EVP_DigestFinal_ex
    linkageType: ''
    returnType: int
    signature: int send_finished(SSL *s, BIO *rbio)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:400,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:404,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:408,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:411,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:414,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:418,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:422,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:426,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:428,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:432,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 1
    argNames:
    - wbio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 442
    functionName: validate_ccs
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - PACKET_buf_init
    - PACKET_forward
    - PACKET_get_net_2
    - BIO_get_mem_data
    linkageType: ''
    returnType: int
    signature: int validate_ccs(BIO *wbio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: NODROP
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODROP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: DROP
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROP(x)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:475,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:476,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:477,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:478,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:480,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:481,1
    - Dst: client_session
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:483,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:484,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:487,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:488,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:489,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:489,1
    - Dst: EVP_md5_sha1
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:489,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:493,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:493,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:494,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:495,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:495,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:496,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:496,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:497,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:497,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:499,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:499,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:502,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:503,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:504,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:504,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:507,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:507,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:508,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:508,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:510,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:511,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:514,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:516,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:516,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:525,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:525,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:530,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:533,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:534,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:535,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:535,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:536,1
    - Dst: validate_client_hello
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:536,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:537,1
    - Dst: send_hello_verify
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:537,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:540,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:541,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:542,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:542,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:543,1
    - Dst: validate_client_hello
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:543,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:544,1
    - Dst: send_server_hello
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:544,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:547,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:548,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:549,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:549,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:550,1
    - Dst: send_finished
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:550,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:553,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:554,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:555,1
    - Dst: validate_ccs
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:555,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:563,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:566,1
    - Dst: send_record
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:566,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:568,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:576,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:577,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:578,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:582,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:587,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:593,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:594,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:595,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:596,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:597,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:598,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 463
    functionDepth: 13
    functionLinenumber: 463
    functionLinenumberEnd: 601
    functionName: test_bad_dtls
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - send_record
    - EVP_MD_CTX_free
    - memcpy
    - TEST_int_eq
    - EVP_md5_sha1
    - time
    - SSL_CTX_set_max_proto_version
    - SSL_new
    - TEST_int_gt
    - send_finished
    - BIO_s_mem
    - SSL_set_session
    - BIO_new
    - SSL_get_error
    - SSL_set_bio
    - TEST_error
    - DTLS_client_method
    - BIO_up_ref
    - TEST_int_le
    - TEST_true
    - SSL_CTX_set_min_proto_version
    - SSL_SESSION_free
    - SSL_read
    - SSL_do_handshake
    - SSL_CTX_free
    - EVP_MD_CTX_new
    - send_hello_verify
    - validate_ccs
    - client_session
    - TEST_ptr
    - RAND_bytes
    - SSL_CTX_set_options
    - SSL_CTX_new
    - OSSL_NELEM
    - SSL_set_connect_state
    - EVP_DigestInit_ex
    - send_server_hello
    - BIO_free
    - TEST_false
    - validate_client_hello
    - SSL_CTX_set_cipher_list
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int test_bad_dtls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bad_dtls_test.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bad_dtls_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/bio_core_test.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - data
    - data_len
    - bytes_read
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: tst_bio_core_read_ex
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_read_ex
    linkageType: ''
    returnType: int
    signature: "int tst_bio_core_read_ex(OSSL_CORE_BIO *bio, char *data, size_t data_len,\n
      \                               size_t *bytes_read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/bio_core_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - data
    - data_len
    - written
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: tst_bio_core_write_ex
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_write_ex
    linkageType: ''
    returnType: int
    signature: "int tst_bio_core_write_ex(OSSL_CORE_BIO *bio, const char *data,\n
      \                                size_t data_len, size_t *written)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/test/bio_core_test.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: tst_bio_core_gets
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_gets
    linkageType: ''
    returnType: int
    signature: int tst_bio_core_gets(OSSL_CORE_BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/test/bio_core_test.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - OSSL_CORE_BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: tst_bio_core_puts
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_puts
    linkageType: ''
    returnType: int
    signature: int tst_bio_core_puts(OSSL_CORE_BIO *bio, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/bio_core_test.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - OSSL_CORE_BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: tst_bio_core_ctrl
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    linkageType: ''
    returnType: long
    signature: long tst_bio_core_ctrl(OSSL_CORE_BIO *bio, int cmd, long num, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/bio_core_test.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - OSSL_CORE_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: tst_bio_core_up_ref
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_up_ref
    linkageType: ''
    returnType: int
    signature: int tst_bio_core_up_ref(OSSL_CORE_BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_core_test.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bio
    argTypes:
    - OSSL_CORE_BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: tst_bio_core_free
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - BIO_free
    linkageType: ''
    returnType: int
    signature: int tst_bio_core_free(OSSL_CORE_BIO *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new_from_dispatch
      Src: /src/openssl-3.0.15/test/bio_core_test.c:70,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/bio_core_test.c:76,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/bio_core_test.c:76,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_core_test.c:77,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_core_test.c:78,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/bio_core_test.c:83,1
    - Dst: BIO_new_from_core_bio
      Src: /src/openssl-3.0.15/test/bio_core_test.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bio_core_test.c:84,1
    - Dst: BIO_new_from_core_bio
      Src: /src/openssl-3.0.15/test/bio_core_test.c:84,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bio_core_test.c:87,1
    - Dst: BIO_puts
      Src: /src/openssl-3.0.15/test/bio_core_test.c:87,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/bio_core_test.c:89,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_core_test.c:89,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bio_core_test.c:90,1
    - Dst: BIO_gets
      Src: /src/openssl-3.0.15/test/bio_core_test.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bio_core_test.c:91,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/bio_core_test.c:91,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bio_core_test.c:92,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bio_core_test.c:96,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/bio_core_test.c:96,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/bio_core_test.c:96,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/bio_core_test.c:97,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/bio_core_test.c:97,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/bio_core_test.c:98,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_core_test.c:103,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_core_test.c:104,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/bio_core_test.c:105,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/bio_core_test.c:106,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 108
    functionName: test_bio_core
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - BIO_eof
    - BIO_new
    - BIO_puts
    - BIO_read
    - BIO_gets
    - BIO_write
    - BIO_free
    - TEST_false
    - OSSL_LIB_CTX_free
    - strlen
    - BIO_new_from_core_bio
    - TEST_str_eq
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - BIO_s_mem
    - OSSL_LIB_CTX_new_from_dispatch
    linkageType: ''
    returnType: int
    signature: int test_bio_core(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/bio_core_test.c:112,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/bio_core_test.c:113,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bio_core_test.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bio_core_test.c
    functionUses: 0
    functionsReached:
    - test_skip_common_options
    - ADD_TEST
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_hmac.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecstresstest.c:48,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ecstresstest.c:48,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecstresstest.c:49,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ecstresstest.c:49,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecstresstest.c:54,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/ecstresstest.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecstresstest.c:55,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/openssl-3.0.15/test/ecstresstest.c:55,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecstresstest.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - group
    - point
    - num
    argTypes:
    - EC_GROUP*
    - EC_POINT*
    - ossl_intmax_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 7
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: walk_curve
    functionSourceFile: /src/openssl-3.0.15/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - EC_POINT_get_affine_coordinates
    - BN_new
    - BN_free
    - EC_POINT_mul
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *walk_curve(const EC_GROUP *group, EC_POINT *point,\n                          ossl_intmax_t
      num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecstresstest.c:78,1
    - Dst: EC_GROUP_new_by_curve_name
      Src: /src/openssl-3.0.15/test/ecstresstest.c:78,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecstresstest.c:79,1
    - Dst: EC_POINT_dup
      Src: /src/openssl-3.0.15/test/ecstresstest.c:79,1
    - Dst: EC_GROUP_get0_generator
      Src: /src/openssl-3.0.15/test/ecstresstest.c:79,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecstresstest.c:81,1
    - Dst: walk_curve
      Src: /src/openssl-3.0.15/test/ecstresstest.c:81,1
    - Dst: BN_print
      Src: /src/openssl-3.0.15/test/ecstresstest.c:85,1
    - Dst: BIO_printf
      Src: /src/openssl-3.0.15/test/ecstresstest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ecstresstest.c:89,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/ecstresstest.c:89,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ecstresstest.c:90,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/ecstresstest.c:91,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/ecstresstest.c:97,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/ecstresstest.c:98,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecstresstest.c:99,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ecstresstest.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 67
    functionDepth: 8
    functionLinenumber: 67
    functionLinenumberEnd: 102
    functionName: test_curve
    functionSourceFile: /src/openssl-3.0.15/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_get0_generator
    - BN_print
    - EC_POINT_free
    - EC_GROUP_free
    - TEST_BN_eq
    - walk_curve
    - BN_free
    - BN_hex2bn
    - EC_POINT_dup
    - TEST_ptr
    - TEST_true
    - BIO_printf
    - EC_GROUP_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int test_curve(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/ecstresstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opt_intmax
      Src: /src/openssl-3.0.15/test/ecstresstest.c:131,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ecstresstest.c:132,1
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/ecstresstest.c:136,1
    - Dst: opt_intmax
      Src: /src/openssl-3.0.15/test/ecstresstest.c:139,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/ecstresstest.c:139,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ecstresstest.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 156
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ecstresstest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_intmax
    - opt_arg
    - opt_next
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_seed.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:25,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:25,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:26,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:26,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:26,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:27,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:27,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:28,1
    - Dst: X509_load_cert_file
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:28,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:31,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 5
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: test_509_dup_cert
    functionSourceFile: /src/openssl-3.0.15/test/x509_dup_cert_test.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_STORE_new
    - X509_load_cert_file
    - X509_STORE_CTX_free
    - X509_LOOKUP_file
    - X509_STORE_add_lookup
    - TEST_ptr
    - TEST_true
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int test_509_dup_cert(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:42,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:43,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:47,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:48,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/x509_dup_cert_test.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/x509_dup_cert_test.c
    functionUses: 0
    functionsReached:
    - test_get_argument_count
    - ADD_ALL_TESTS
    - TEST_error
    - test_skip_common_options
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rc5test.c:190,1
    - Dst: RC5_32_set_key
      Src: /src/openssl-3.0.15/test/rc5test.c:190,1
    - Dst: RC5_32_ecb_encrypt
      Src: /src/openssl-3.0.15/test/rc5test.c:193,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc5test.c:194,1
    - Dst: RC5_32_ecb_encrypt
      Src: /src/openssl-3.0.15/test/rc5test.c:197,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc5test.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: test_rc5_ecb
    functionSourceFile: /src/openssl-3.0.15/test/rc5test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - RC5_32_set_key
    - TEST_true
    - RC5_32_ecb_encrypt
    linkageType: ''
    returnType: int
    signature: int test_rc5_ecb(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rc5test.c:213,1
    - Dst: RC5_32_set_key
      Src: /src/openssl-3.0.15/test/rc5test.c:213,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/rc5test.c:217,1
    - Dst: RC5_32_cbc_encrypt
      Src: /src/openssl-3.0.15/test/rc5test.c:218,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc5test.c:221,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/rc5test.c:225,1
    - Dst: RC5_32_cbc_encrypt
      Src: /src/openssl-3.0.15/test/rc5test.c:226,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc5test.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 233
    functionName: test_rc5_cbc
    functionSourceFile: /src/openssl-3.0.15/test/rc5test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - RC5_32_set_key
    - RC5_32_cbc_encrypt
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_rc5_cbc(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rc5test.c:239,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/rc5test.c:239,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rc5test.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/rc5test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/context_internal_test.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: foo_new
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_zalloc
    linkageType: ''
    returnType: void
    signature: void *foo_new(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/context_internal_test.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: foo_free
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void foo_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:56,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/test/context_internal_test.c:56,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - OSSL_LIB_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: test_context
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_int_eq
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: int test_context(OSSL_LIB_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:65,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/context_internal_test.c:65,1
    - Dst: test_context
      Src: /src/openssl-3.0.15/test/context_internal_test.c:66,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/context_internal_test.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 7
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: test_app_context
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - test_context
    - OSSL_LIB_CTX_new
    - OSSL_LIB_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_app_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_context
      Src: /src/openssl-3.0.15/test/context_internal_test.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: test_def_context
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - test_context
    linkageType: ''
    returnType: int
    signature: int test_def_context(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_get0_global_default
      Src: /src/openssl-3.0.15/test/context_internal_test.c:79,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/context_internal_test.c:80,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:85,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:86,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:87,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/test/context_internal_test.c:87,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:88,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/test/context_internal_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:93,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:97,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/test/context_internal_test.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:98,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:102,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/test/context_internal_test.c:102,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:103,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:104,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/test/context_internal_test.c:104,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:105,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:109,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/test/context_internal_test.c:109,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:110,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/test/context_internal_test.c:110,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:111,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:115,1
    - Dst: OSSL_LIB_CTX_get0_global_default
      Src: /src/openssl-3.0.15/test/context_internal_test.c:115,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:119,1
    - Dst: OSSL_LIB_CTX_set0_default
      Src: /src/openssl-3.0.15/test/context_internal_test.c:119,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:120,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/context_internal_test.c:121,1
    - Dst: ossl_lib_ctx_get_data
      Src: /src/openssl-3.0.15/test/context_internal_test.c:121,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/context_internal_test.c:122,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/context_internal_test.c:127,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 129
    functionName: test_set0_default
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - OSSL_LIB_CTX_get0_global_default
    - OSSL_LIB_CTX_free
    - TEST_ptr_eq
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - OSSL_LIB_CTX_set0_default
    - ossl_lib_ctx_get_data
    linkageType: ''
    returnType: int
    signature: int test_set0_default(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/context_internal_test.c:133,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/context_internal_test.c:134,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/context_internal_test.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/context_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: X509_new
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_new()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:29,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - OSSL_CMP_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 34
    functionsReached:
    - OPENSSL_free
    - OSSL_CMP_CTX_free
    linkageType: ''
    returnType: void
    signature: void tear_down(OSSL_CMP_CTX_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:37,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:37,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:39,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:39,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 13
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 1
    functionsReached:
    - TEST_ptr
    - OSSL_CMP_CTX_new
    - tear_down
    - OPENSSL_zalloc
    linkageType: ''
    returnType: OSSL_CMP_CTX_TEST_FIXTURE
    signature: OSSL_CMP_CTX_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:49,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:49,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:50,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:52,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:53,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: sk_X509_new_1
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - X509_free
    - sk_X509_push
    - sk_X509_new_null
    - STACK_OF
    - X509_dup
    - sk_X509_free
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *sk_X509_new_1(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:69,1
    - Dst: ossl_cmp_ctx_set0_statusString
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:75,1
    - Dst: sk_ASN1_UTF8STRING_new_null
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:75,1
    - Dst: ossl_cmp_ctx_set0_newCert
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:76,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:76,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:77,1
    - Dst: sk_X509_new_1
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:77,1
    - Dst: ossl_cmp_ctx_set1_newChain
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:78,1
    - Dst: ossl_cmp_ctx_set1_caPubs
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:79,1
    - Dst: ossl_cmp_ctx_set1_extraCertsIn
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:80,1
    - Dst: ossl_cmp_ctx_set0_validatedSrvCert
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:81,1
    - Dst: X509_dup
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:81,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:82,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:82,1
    - Dst: OSSL_CMP_CTX_set1_transactionID
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:83,1
    - Dst: OSSL_CMP_CTX_set1_senderNonce
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:84,1
    - Dst: ossl_cmp_ctx_set1_recipNonce
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:88,1
    - Dst: OSSL_CMP_CTX_reinit
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:88,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:92,1
    - Dst: sk_X509_pop_X509_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:109,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:110,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 19
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - OSSL_CMP_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 112
    functionName: execute_CTX_reinit_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_UTF8STRING_new_null
    - ossl_cmp_ctx_set0_validatedSrvCert
    - ossl_cmp_ctx_set0_statusString
    - TEST_true
    - ossl_cmp_ctx_set1_extraCertsIn
    - ossl_cmp_ctx_set1_recipNonce
    - ossl_cmp_ctx_set1_newChain
    - OSSL_CMP_CTX_reinit
    - sk_X509_new_1
    - ossl_cmp_ctx_set1_caPubs
    - ASN1_OCTET_STRING_new
    - STACK_OF
    - TEST_ptr
    - OSSL_CMP_CTX_set1_senderNonce
    - OSSL_CMP_CTX_set1_transactionID
    - ASN1_OCTET_STRING_free
    - sk_X509_pop_X509_free
    - ossl_cmp_ctx_set0_newCert
    - X509_dup
    linkageType: ''
    returnType: int
    signature: int execute_CTX_reinit_test(OSSL_CMP_CTX_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:116,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: test_CTX_reinit
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_CTX_reinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:127,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:128,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - func
    - file
    - line
    - level
    - msg
    argTypes:
    - char*
    - char*
    - int
    - OSSL_CMP_severity
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: msg_total_size_log_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - strlen
    linkageType: ''
    returnType: int
    signature: "int msg_total_size_log_cb(const char *func, const char *file, int
      line,\n                                 OSSL_CMP_severity level, const char
      *msg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:145,1
    - Dst: OSSL_CMP_CTX_set_log_cb
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:145,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:147,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:151,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:152,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:156,1
    - Dst: OSSL_CMP_CTX_set_log_cb
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:156,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:158,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:161,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:162,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:163,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:164,1
    - Dst: ossl_cmp_add_error_data
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:166,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:167,1
    - Dst: ossl_cmp_add_error_data
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:168,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:169,1
    - Dst: ossl_cmp_add_error_line
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:170,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:171,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:172,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:173,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:176,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:177,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:177,1
    - Dst: ERR_add_error_txt
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:180,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:181,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:181,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:183,1
    - Dst: OSSL_CMP_CTX_print_errors
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:185,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - OSSL_CMP_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 139
    functionDepth: 9
    functionLinenumber: 139
    functionLinenumberEnd: 191
    functionName: execute_CTX_print_errors_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_set_log_cb
    - ossl_cmp_add_error_line
    - TEST_int_eq
    - ERR_raise
    - ossl_cmp_add_error_data
    - strlen
    - OSSL_CMP_CTX_print_errors
    - ERR_add_error_txt
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int execute_CTX_print_errors_test(OSSL_CMP_CTX_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:195,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: test_CTX_print_errors
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_CTX_print_errors(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:212,1
    - Dst: OSSL_CMP_CTX_reqExtensions_have_SAN
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:212,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:215,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:215,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:216,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:216,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:217,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:217,1
    - Dst: X509_EXTENSION_create_by_NID
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:219,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:220,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:221,1
    - Dst: sk_X509_EXTENSION_new_null
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:222,1
    - Dst: sk_X509_EXTENSION_push
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:222,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:223,1
    - Dst: OSSL_CMP_CTX_set0_reqExtensions
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:223,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:224,1
    - Dst: sk_X509_EXTENSION_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:225,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:228,1
    - Dst: OSSL_CMP_CTX_reqExtensions_have_SAN
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:228,1
    - Dst: sk_X509_EXTENSION_pop
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:229,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:230,1
    - Dst: OSSL_CMP_CTX_reqExtensions_have_SAN
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:230,1
    - Dst: X509_EXTENSION_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:231,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:234,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - OSSL_CMP_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 236
    functionName: execute_CTX_reqExtensions_have_SAN_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - sk_X509_EXTENSION_new_null
    - OSSL_CMP_CTX_set0_reqExtensions
    - ASN1_OCTET_STRING_free
    - X509_EXTENSION_free
    - TEST_int_eq
    - ASN1_OCTET_STRING_set
    - TEST_false
    - sk_X509_EXTENSION_pop
    - ASN1_OCTET_STRING_new
    - X509_EXTENSION_create_by_NID
    - sk_X509_EXTENSION_push
    - TEST_ptr
    - RAND_bytes
    - TEST_true
    - sk_X509_EXTENSION_free
    - OSSL_CMP_CTX_reqExtensions_have_SAN
    linkageType: ''
    returnType: int
    signature: int execute_CTX_reqExtensions_have_SAN_test(OSSL_CMP_CTX_TEST_FIXTURE
      *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:240,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 243
    functionName: test_CTX_reqExtensions_have_SAN
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_CTX_reqExtensions_have_SAN(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PEDANTIC
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:251,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:252,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:253,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:255,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:256,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:257,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:257,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:258,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:258,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 5
    argNames:
    - func
    - file
    - line
    - level
    - msg
    argTypes:
    - char*
    - char*
    - int
    - OSSL_CMP_severity
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: test_log_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_str_eq
    - PEDANTIC
    linkageType: ''
    returnType: int
    signature: "int test_log_cb(const char *func, const char *file, int line,\n                       OSSL_CMP_severity
      level, const char *msg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_TRACE
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:268,1
    - Dst: OSSL_CMP_log_open
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:270,1
    - Dst: OSSL_CMP_log_open
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:271,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:273,1
    - Dst: OSSL_CMP_CTX_set_log_cb
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:273,1
    - Dst: ossl_cmp_err
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:276,1
    - Dst: ossl_cmp_warn
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:277,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:278,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:279,1
    - Dst: OSSL_CMP_CTX_set_log_verbosity
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:279,1
    - Dst: ossl_cmp_debug
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:281,1
    - Dst: OSSL_CMP_CTX_set_log_verbosity
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:283,1
    - Dst: OSSL_CMP_CTX_set_log_cb
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:283,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:287,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:288,1
    - Dst: OSSL_CMP_CTX_set_log_verbosity
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:290,1
    - Dst: ossl_cmp_log2
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:293,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:294,1
    - Dst: OSSL_CMP_log_close
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:297,1
    - Dst: OSSL_CMP_log_close
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - OSSL_CMP_CTX_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 263
    functionDepth: 8
    functionLinenumber: 263
    functionLinenumberEnd: 300
    functionName: execute_cmp_ctx_log_cb_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_CTX_set_log_cb
    - ossl_cmp_err
    - ossl_cmp_debug
    - TEST_int_eq
    - OSSL_TRACE
    - OSSL_CMP_log_close
    - OSSL_CMP_log_open
    - TEST_true
    - ossl_cmp_warn
    - ossl_cmp_log2
    - OSSL_CMP_CTX_set_log_verbosity
    linkageType: ''
    returnType: int
    signature: int execute_cmp_ctx_log_cb_test(OSSL_CMP_CTX_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:304,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: test_cmp_ctx_log_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_ctx_log_cb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bio
    - arg
    - use_ssl
    - detail
    argTypes:
    - BIO*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: test_http_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BIO
    signature: BIO *test_http_cb(BIO *bio, void *arg, int use_ssl, int detail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - req
    argTypes:
    - OSSL_CMP_CTX*
    - OSSL_CMP_MSG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: test_transfer_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OSSL_CMP_MSG
    signature: "OSSL_CMP_MSG *test_transfer_cb(OSSL_CMP_CTX *ctx,\n                                      const
      OSSL_CMP_MSG *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - cert
    - fail_info
    - txt
    argTypes:
    - OSSL_CMP_CTX*
    - X509*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: test_certConf_cb
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int test_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info,\n
      \                           const char **txt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - PREFIX
    - ','
    - SETN
    - ','
    - GETN
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - TYPE
    - ','
    - ERR
    - ','
    - DEFAULT
    - ','
    - NEW
    - ','
    - FREE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: DEFINE_SET_GET_BASE_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DEFINE_SET_GET_BASE_TEST(PREFIX, SETN, GETN, DUP, FIELD, TYPE, ERR,
      \\\n                                 DEFAULT, NEW, FREE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: char_new
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 3
    functionsReached:
    - OPENSSL_strdup
    linkageType: ''
    returnType: char
    signature: char *char_new(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: char_free
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 3
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void char_free(char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: EMPTY_SK_X509
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMPTY_SK_X509(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:493,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:496,1
    - Dst: X509_STORE_get0_param
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 491
    functionDepth: 5
    functionLinenumber: 491
    functionLinenumberEnd: 498
    functionName: X509_STORE_new_1
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - X509_STORE_new
    - X509_VERIFY_PARAM_set_flags
    - X509_STORE_get0_param
    linkageType: ''
    returnType: X509_STORE
    signature: X509_STORE *X509_STORE_new_1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: DEFAULT_STORE
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFAULT_STORE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: IS_NEG
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NEG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: IS_0
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: DROP
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: RET_IF_NULL_ARG
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_IF_NULL_ARG(ctx, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - M
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: DEFINE_SET_GET_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_TEST(OSSL_CMP, CTX, N, M, DUP, FIELD, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - M
    - ','
    - FIELD
    - ','
    - ELEM_TYPE
    - ','
    - DEFAULT
    - ','
    - NEW
    - ','
    - FREE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: DEFINE_SET_GET_SK_TEST_DEFAULT
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DEFINE_SET_GET_SK_TEST_DEFAULT(OSSL_CMP, CTX, N, M, FIELD, ELEM_TYPE,
      \\\n                                       DEFAULT, NEW, FREE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - M
    - ','
    - FIELD
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: DEFINE_SET_GET_SK_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_SK_TEST(OSSL_CMP, CTX, N, M, FIELD, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - M
    - ','
    - FNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: DEFINE_SET_GET_SK_X509_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_SK_X509_TEST(OSSL_CMP, CTX, N, M, FNAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - M
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - TYPE
    - ','
    - DEFAULT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: DEFINE_SET_GET_TEST_DEFAULT
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DEFINE_SET_GET_TEST_DEFAULT(OSSL_CMP, CTX, N, M, DUP, FIELD, TYPE,
      \\\n                                    DEFAULT)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - TYPE
    - ','
    - DEFAULT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: DEFINE_SET_TEST_DEFAULT
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_TEST_DEFAULT(OSSL_CMP, CTX, N, DUP, FIELD, TYPE, DEFAULT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: DEFINE_SET_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_TEST(OSSL_CMP, CTX, N, DUP, FIELD, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - N
    - ','
    - FIELD
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: DEFINE_SET_SK_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_SK_TEST(OSSL_CMP, CTX, N, FIELD, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: DEFINE_SET_CB_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_CB_TEST(FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: DEFINE_SET_GET_P_VOID_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_P_VOID_TEST(FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - FIELD
    - ','
    - DEFAULT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: DEFINE_SET_GET_INT_TEST_DEFAULT
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_INT_TEST_DEFAULT(OSSL_CMP, CTX, FIELD, DEFAULT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OSSL_CMP
    - ','
    - CTX
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: DEFINE_SET_GET_INT_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_INT_TEST(OSSL_CMP, CTX, FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 579
    functionName: DEFINE_SET_INT_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_INT_TEST(FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - SETN
    - ','
    - GETN
    - ','
    - FIELD
    - ','
    - ARG
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 590
    functionName: DEFINE_SET_GET_ARG_FN
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET_ARG_FN(SETN, GETN, FIELD, ARG, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SETN
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 607
    functionName: DEFINE_SET_GET1_STR_FN
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SET_GET1_STR_FN(SETN, FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - PUSHN
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - ELEM
    - ','
    - TYPE
    - ','
    - T
    - ','
    - DEFAULT
    - ','
    - NEW
    - ','
    - FREE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 625
    functionName: DEFINE_PUSH_BASE_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "DEFINE_PUSH_BASE_TEST(PUSHN, DUP, FIELD, ELEM, TYPE, T, \\\n                              DEFAULT,
      NEW, FREE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - N
    - ','
    - DUP
    - ','
    - FIELD
    - ','
    - ELEM
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: DEFINE_PUSH_TEST
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PUSH_TEST(N, DUP, FIELD, ELEM, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:799,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:800,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:804,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:804,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:805,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:805,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:810,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:813,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:815,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:822,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:828,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:831,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:832,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:833,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:834,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:835,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:836,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:837,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:838,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:839,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:841,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:842,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:843,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:844,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:845,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:847,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:848,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:850,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:851,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:853,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:854,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:855,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:857,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:858,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:859,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:860,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:865,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:867,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:868,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:869,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:870,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:875,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:878,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:880,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:881,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:883,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:884,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:885,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:886,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:887,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:888,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:889,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:892,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:893,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_ctx_test.c:894,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 896
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_ctx_test.c
    functionUses: 0
    functionsReached:
    - load_cert_pem
    - ADD_TEST
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/recordlentest.c:33,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/recordlentest.c:41,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/recordlentest.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - b
    - len
    - rectype
    - recversion
    argTypes:
    - BIO*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 61
    functionName: write_record
    functionSourceFile: /src/openssl-3.0.15/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - memset
    - BIO_write_ex
    linkageType: ''
    returnType: int
    signature: int write_record(BIO *b, size_t len, int rectype, int recversion)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/recordlentest.c:65,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/test/recordlentest.c:73,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/recordlentest.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - enc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: fail_due_to_record_overflow
    functionSourceFile: /src/openssl-3.0.15/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - ERR_peek_error
    - ERR_GET_LIB
    - ERR_GET_REASON
    linkageType: ''
    returnType: int
    signature: int fail_due_to_record_overflow(int enc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/recordlentest.c:104,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/recordlentest.c:104,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/recordlentest.c:104,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/recordlentest.c:105,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/recordlentest.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/recordlentest.c:122,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/recordlentest.c:122,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-3.0.15/test/recordlentest.c:126,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/recordlentest.c:135,1
    - Dst: write_record
      Src: /src/openssl-3.0.15/test/recordlentest.c:135,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/recordlentest.c:139,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/recordlentest.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/recordlentest.c:143,1
    - Dst: fail_due_to_record_overflow
      Src: /src/openssl-3.0.15/test/recordlentest.c:143,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/recordlentest.c:149,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/recordlentest.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/recordlentest.c:163,1
    - Dst: write_record
      Src: /src/openssl-3.0.15/test/recordlentest.c:163,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/recordlentest.c:167,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/recordlentest.c:167,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/recordlentest.c:170,1
    - Dst: fail_due_to_record_overflow
      Src: /src/openssl-3.0.15/test/recordlentest.c:170,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/recordlentest.c:177,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/recordlentest.c:178,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/recordlentest.c:179,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/recordlentest.c:180,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 66
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 182
    functionName: test_record_overflow
    functionSourceFile: /src/openssl-3.0.15/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_accept
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - write_record
    - fail_due_to_record_overflow
    - SSL_CTX_set_max_proto_version
    - TEST_false
    - SSL_read_ex
    - SSL_free
    - TEST_int_le
    - SSL_get_rbio
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_record_overflow(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/recordlentest.c:188,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/recordlentest.c:189,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/recordlentest.c:193,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/recordlentest.c:193,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/recordlentest.c:194,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/recordlentest.c:194,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/recordlentest.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/recordlentest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-3.0.15/test/recordlentest.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/recordlentest.c
    functionUses: 4
    functionsReached:
    - bio_s_mempacket_test_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_txt_db.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:41,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:49,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:50,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:54,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:55,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:56,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: test_tbl_standard
    functionSourceFile: /src/openssl-3.0.15/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - TEST_note
    - TEST_int_ne
    - TEST_info
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_tbl_standard(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:78,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:94,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:96,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:97,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:102,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:103,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:107,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:108,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:110,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 114
    functionName: test_standard_methods
    functionSourceFile: /src/openssl-3.0.15/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - TEST_int_ne
    - OBJ_nid2sn
    - TEST_info
    - TEST_true
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_standard_methods(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:131,1
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:131,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:132,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:132,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:133,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:134,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:134,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:143,1
    - Dst: i2d_RSAPrivateKey
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:143,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:147,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:148,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: test_empty_nonoptional_content
    functionSourceFile: /src/openssl-3.0.15/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - i2d_RSAPrivateKey
    - RSA_new
    - BN_free
    - RSA_free
    - TEST_int_le
    - TEST_ptr
    - RSA_set0_key
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_empty_nonoptional_content(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:165,1
    - Dst: ASN1_mbstring_copy
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - univ
    - len
    - expected
    argTypes:
    - unsigned char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: test_unicode
    functionSourceFile: /src/openssl-3.0.15/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ASN1_mbstring_copy
    linkageType: ''
    returnType: int
    signature: int test_unicode(const unsigned char *univ, size_t len, int expected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_unicode
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:186,1
    - Dst: test_unicode
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: test_unicode_range
    functionSourceFile: /src/openssl-3.0.15/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - test_unicode
    linkageType: ''
    returnType: int
    signature: int test_unicode_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:195,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:196,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:197,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_internal_test.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asn1_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_encoder.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/pbetest.c:68,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pbetest.c:69,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/test/pbetest.c:72,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pbetest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:76,1
    - Dst: PKCS5_pbe_set0_algor
      Src: /src/openssl-3.0.15/test/pbetest.c:76,1
    - Dst: EVP_CIPHER_nid
      Src: /src/openssl-3.0.15/test/pbetest.c:76,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:78,1
    - Dst: PKCS5_PBE_keyivgen
      Src: /src/openssl-3.0.15/test/pbetest.c:78,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pbetest.c:78,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:80,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/pbetest.c:80,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:85,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/pbetest.c:85,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/pbetest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:94,1
    - Dst: PKCS5_PBE_keyivgen
      Src: /src/openssl-3.0.15/test/pbetest.c:94,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/pbetest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:96,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/pbetest.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/pbetest.c:100,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/pbetest.c:100,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/pbetest.c:103,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/pbetest.c:108,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/test/pbetest.c:109,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 4
    argNames:
    - cipher
    - md
    - exp
    - exp_len
    argTypes:
    - EVP_CIPHER*
    - EVP_MD*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 111
    functionName: test_pkcs5_pbe
    functionSourceFile: /src/openssl-3.0.15/test/pbetest.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - PKCS5_PBE_keyivgen
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CipherUpdate
    - EVP_CIPHER_nid
    - X509_ALGOR_free
    - EVP_CIPHER_CTX_new
    - strlen
    - TEST_ptr
    - PKCS5_pbe_set0_algor
    - TEST_true
    - X509_ALGOR_new
    linkageType: ''
    returnType: int
    signature: "int test_pkcs5_pbe(const EVP_CIPHER *cipher, const EVP_MD *md,\n                          const
      unsigned char *exp, const int exp_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pkcs5_pbe
      Src: /src/openssl-3.0.15/test/pbetest.c:117,1
    - Dst: EVP_rc4
      Src: /src/openssl-3.0.15/test/pbetest.c:117,1
    - Dst: EVP_md5
      Src: /src/openssl-3.0.15/test/pbetest.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 8
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: test_pkcs5_pbe_rc4_md5
    functionSourceFile: /src/openssl-3.0.15/test/pbetest.c
    functionUses: 0
    functionsReached:
    - test_pkcs5_pbe
    - EVP_rc4
    - EVP_md5
    linkageType: ''
    returnType: int
    signature: int test_pkcs5_pbe_rc4_md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pkcs5_pbe
      Src: /src/openssl-3.0.15/test/pbetest.c:124,1
    - Dst: EVP_des_cbc
      Src: /src/openssl-3.0.15/test/pbetest.c:124,1
    - Dst: EVP_sha1
      Src: /src/openssl-3.0.15/test/pbetest.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 8
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: test_pkcs5_pbe_des_sha1
    functionSourceFile: /src/openssl-3.0.15/test/pbetest.c
    functionUses: 0
    functionsReached:
    - EVP_des_cbc
    - test_pkcs5_pbe
    - EVP_sha1
    linkageType: ''
    returnType: int
    signature: int test_pkcs5_pbe_des_sha1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/pbetest.c:141,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/pbetest.c:142,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pbetest.c:143,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/pbetest.c:143,1
    - Dst: cleanup_tests
      Src: /src/openssl-3.0.15/test/pbetest.c:144,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pbetest.c:150,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pbetest.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pbetest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - ADD_TEST
    - OSSL_PROVIDER_load
    - cleanup_tests
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/pbetest.c:163,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/pbetest.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pbetest.c
    functionUses: 5
    functionsReached:
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_die
      Src: /src/openssl-3.0.15/test/aborttest.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/aborttest.c
    functionUses: 6
    functionsReached:
    - OPENSSL_die
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/dtlstest.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: generate_cookie_cb
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int generate_cookie_cb(SSL *ssl, unsigned char *cookie,\n                              unsigned
      int *cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: verify_cookie_cb
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: "int verify_cookie_cb(SSL *ssl, const unsigned char *cookie,\n                            unsigned
      int cookie_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - timer_us
    argTypes:
    - SSL*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: timer_cb
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int timer_cb(SSL *s, unsigned int timer_us)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:80,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/dtlstest.c:80,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:80,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:81,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:87,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:91,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:91,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:92,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:92,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/dtlstest.c:97,1
    - Dst: bio_f_tls_dump_filter
      Src: /src/openssl-3.0.15/test/dtlstest.c:97,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:102,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtlstest.c:102,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:106,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:116,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/dtlstest.c:117,1
    - Dst: mempacket_test_inject
      Src: /src/openssl-3.0.15/test/dtlstest.c:118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:127,1
    - Dst: create_bare_ssl_connection
      Src: /src/openssl-3.0.15/test/dtlstest.c:127,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/dtlstest.c:132,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:138,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:139,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:140,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:141,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - testidx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 144
    functionName: test_dtls_unprocessed
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - printf
    - BIO_new
    - create_ssl_ctx_pair
    - bio_f_tls_dump_filter
    - SSL_CTX_free
    - DTLS_set_timer_cb
    - create_ssl_objects
    - mempacket_test_inject
    - TEST_ptr
    - DTLS_client_method
    - SSL_CTX_set_cipher_list
    - SSL_get_wbio
    - SSL_free
    - DTLS_server_method
    - TEST_true
    - create_bare_ssl_connection
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int test_dtls_unprocessed(int testidx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:202,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/dtlstest.c:202,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:202,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:210,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:211,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:211,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:216,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-3.0.15/test/dtlstest.c:216,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/dtlstest.c:219,1
    - Dst: SSL_CTX_set_cookie_generate_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:220,1
    - Dst: SSL_CTX_set_cookie_verify_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:225,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtlstest.c:225,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:227,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/dtlstest.c:227,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:229,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/dtlstest.c:229,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/dtlstest.c:232,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/dtlstest.c:233,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:234,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:235,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/dtlstest.c:250,1
    - Dst: bio_f_tls_dump_filter
      Src: /src/openssl-3.0.15/test/dtlstest.c:250,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:251,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:255,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtlstest.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:260,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/dtlstest.c:260,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:264,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:265,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:269,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:276,1
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/dtlstest.c:281,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/dtlstest.c:283,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/dtlstest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:286,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/dtlstest.c:286,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:289,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/dtlstest.c:289,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:293,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/dtlstest.c:293,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:299,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:300,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:301,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:302,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:303,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 306
    functionName: test_dtls_drop_records
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - BIO_ctrl
    - TEST_int_eq
    - SSL_get1_session
    - SSL_set_session
    - BIO_new
    - create_ssl_objects
    - DTLS_client_method
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_get_wbio
    - SSL_CTX_set_dh_auto
    - TEST_ptr
    - DTLS_server_method
    - SSL_CTX_set_options
    - SSL_CTX_set_cookie_generate_cb
    - SSL_CTX_set_cookie_verify_cb
    - SSL_shutdown
    - bio_f_tls_dump_filter
    - create_ssl_connection
    - DTLS_set_timer_cb
    - SSL_CTX_set_cipher_list
    - SSL_free
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int test_dtls_drop_records(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:315,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/dtlstest.c:315,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:315,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:316,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/dtlstest.c:321,1
    - Dst: SSL_CTX_set_cookie_generate_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:322,1
    - Dst: SSL_CTX_set_cookie_verify_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:323,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:327,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:327,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:328,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:328,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:333,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtlstest.c:333,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:335,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/dtlstest.c:335,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:341,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:342,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:343,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 347
    functionName: test_cookie
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cookie_generate_cb
    - create_ssl_ctx_pair
    - SSL_CTX_set_cookie_verify_cb
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - DTLS_client_method
    - SSL_CTX_set_cipher_list
    - SSL_free
    - DTLS_server_method
    - TEST_true
    - SSL_CTX_set_options
    linkageType: ''
    returnType: int
    signature: int test_cookie(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:355,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/dtlstest.c:355,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:355,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:356,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:363,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:363,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:364,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:364,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:369,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtlstest.c:369,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:373,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:374,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/dtlstest.c:376,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:376,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/dtlstest.c:377,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:377,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:379,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/dtlstest.c:379,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:384,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:385,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:386,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 390
    functionName: test_dtls_duplicate_records
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - BIO_ctrl
    - DTLS_set_timer_cb
    - create_ssl_objects
    - create_ssl_connection
    - DTLS_client_method
    - SSL_CTX_set_cipher_list
    - SSL_get_wbio
    - SSL_free
    - DTLS_server_method
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_dtls_duplicate_records(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:423,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/dtlstest.c:423,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:423,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/dtlstest.c:428,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/dtlstest.c:429,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/dtlstest.c:429,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/dtlstest.c:430,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/dtlstest.c:430,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:432,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:432,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:432,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:436,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:437,1
    - Dst: DTLS_set_timer_cb
      Src: /src/openssl-3.0.15/test/dtlstest.c:439,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:441,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/dtlstest.c:441,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dtlstest.c:445,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/dtlstest.c:445,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:449,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/dtlstest.c:449,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:452,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/dtlstest.c:452,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/dtlstest.c:452,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:457,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:458,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:459,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:460,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 463
    functionName: test_just_finished
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - ERR_GET_REASON
    - TEST_int_eq
    - SSL_new
    - SSL_set0_wbio
    - BIO_s_mem
    - BIO_new
    - SSL_get_error
    - ERR_get_error
    - TEST_int_le
    - TEST_true
    - SSL_CTX_free
    - SSL_set0_rbio
    - TEST_ptr
    - DTLS_server_method
    - SSL_accept
    - DTLS_set_timer_cb
    - BIO_free
    - SSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int test_just_finished(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:481,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/dtlstest.c:481,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:481,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/dtlstest.c:482,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:488,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:488,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:492,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:492,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:493,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtlstest.c:493,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:498,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtlstest.c:498,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dtlstest.c:503,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/dtlstest.c:503,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dtlstest.c:507,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/dtlstest.c:507,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dtlstest.c:511,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/dtlstest.c:511,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:516,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:517,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:518,1
    - Dst: mempacket_swap_epoch
      Src: /src/openssl-3.0.15/test/dtlstest.c:518,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dtlstest.c:523,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/dtlstest.c:523,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:527,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/dtlstest.c:527,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:530,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:535,1
    - Dst: mempacket_move_packet
      Src: /src/openssl-3.0.15/test/dtlstest.c:535,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:539,1
    - Dst: mempacket_move_packet
      Src: /src/openssl-3.0.15/test/dtlstest.c:539,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/dtlstest.c:543,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:544,1
    - Dst: mempacket_move_packet
      Src: /src/openssl-3.0.15/test/dtlstest.c:544,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dtlstest.c:552,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/dtlstest.c:552,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:557,1
    - Dst: SSL_pending
      Src: /src/openssl-3.0.15/test/dtlstest.c:557,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dtlstest.c:558,1
    - Dst: SSL_has_pending
      Src: /src/openssl-3.0.15/test/dtlstest.c:558,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:563,1
    - Dst: SSL_pending
      Src: /src/openssl-3.0.15/test/dtlstest.c:563,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtlstest.c:564,1
    - Dst: SSL_has_pending
      Src: /src/openssl-3.0.15/test/dtlstest.c:564,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtlstest.c:571,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/dtlstest.c:571,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:576,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:577,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:578,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:579,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 76
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 581
    functionName: test_swap_records
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - mempacket_move_packet
    - create_ssl_ctx_pair
    - TEST_int_eq
    - mempacket_swap_epoch
    - TEST_int_gt
    - create_ssl_objects
    - SSL_pending
    - DTLS_client_method
    - TEST_int_le
    - TEST_true
    - SSL_read
    - SSL_CTX_free
    - SSL_write
    - SSL_get_wbio
    - TEST_ptr
    - DTLS_server_method
    - SSL_accept
    - SSL_connect
    - TEST_false
    - SSL_CTX_set_cipher_list
    - SSL_free
    - SSL_has_pending
    linkageType: ''
    returnType: int
    signature: int test_swap_records(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/dtlstest.c:587,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dtlstest.c:588,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:592,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/dtlstest.c:592,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtlstest.c:593,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/dtlstest.c:593,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/dtlstest.c:596,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/dtlstest.c:598,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dtlstest.c:600,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dtlstest.c:601,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dtlstest.c:602,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/dtlstest.c:603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 606
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_f_tls_dump_filter_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:610,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-3.0.15/test/dtlstest.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dtlstest.c
    functionUses: 5
    functionsReached:
    - bio_f_tls_dump_filter_free
    - bio_s_mempacket_test_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_dtls1.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: CUSTOM_DATA
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUSTOM_DATA(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - znum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: CUSTOM_EXPECTED_SUCCESS
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUSTOM_EXPECTED_SUCCESS(num, znum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - znum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: ENCDEC_DATA
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCDEC_DATA(num, znum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - max
    - ','
    - zmax
    - ','
    - min
    - ','
    - zmin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: ENCDEC_ARRAY
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCDEC_ARRAY(max, zmax, min, zmin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PACKAGE*::d2i
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:493,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:497,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:503,1
    - Dst: TEST_PACKAGE*::ifree
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - bytes
    - nbytes
    - expected
    - expected_size
    - package
    argTypes:
    - unsigned char*
    - long
    - EXPECTED*
    - size_t
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 511
    functionName: do_decode
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - TEST_PACKAGE*::ifree
    - ERR_clear_error
    - TEST_PACKAGE*::d2i
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int do_decode(unsigned char *bytes, long nbytes,\n                     const
      EXPECTED *expected, size_t expected_size,\n                     const TEST_PACKAGE
      *package)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PACKAGE*::i2d
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:528,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:533,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:536,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - input
    - expected
    - expected_len
    - package
    argTypes:
    - EXPECTED*
    - unsigned char*
    - size_t
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 546
    functionName: do_encode
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - TEST_PACKAGE*::i2d
    - ERR_clear_error
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int do_encode(EXPECTED *input,\n                     const unsigned
      char *expected, size_t expected_len,\n                     const TEST_PACKAGE
      *package)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_PACKAGE*::i2d
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:557,1
    - Dst: do_decode
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:561,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bytes
    - nbytes
    - package
    argTypes:
    - EXPECTED*
    - long
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 564
    functionName: do_enc_dec
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - do_decode
    - TEST_PACKAGE*::i2d
    linkageType: ''
    returnType: int
    signature: "int do_enc_dec(EXPECTED *bytes, long nbytes,\n                      const
      TEST_PACKAGE *package)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:570,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - len
    - pp
    argTypes:
    - size_t
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: der_encode_length
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: size_t der_encode_length(size_t len, unsigned char **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:606,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:619,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:622,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:631,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:634,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:640,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:643,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:648,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:649,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:656,1
    - Dst: der_encode_length
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:658,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:659,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - custom_data
    - encoding
    - explicit_default
    argTypes:
    - TEST_CUSTOM_DATA*
    - unsigned char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 666
    functionName: make_custom_der
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - der_encode_length
    - OPENSSL_malloc
    - memcpy
    - OPENSSL_assert
    linkageType: ''
    returnType: size_t
    signature: "size_t make_custom_der(const TEST_CUSTOM_DATA *custom_data,\n                              unsigned
      char **encoding, int explicit_default)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_custom_der
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:678,1
    - Dst: do_decode
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:684,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - custom_data
    - expected
    - expected_size
    - package
    argTypes:
    - TEST_CUSTOM_DATA*
    - EXPECTED*
    - size_t
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 689
    functionName: do_decode_custom
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - do_decode
    - make_custom_der
    linkageType: ''
    returnType: int
    signature: "int do_decode_custom(const TEST_CUSTOM_DATA *custom_data,\n                            const
      EXPECTED *expected, size_t expected_size,\n                            const
      TEST_PACKAGE *package)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_custom_der
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:697,1
    - Dst: do_encode
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:703,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - input
    - custom_data
    - package
    argTypes:
    - EXPECTED*
    - TEST_CUSTOM_DATA*
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 707
    functionName: do_encode_custom
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - do_encode
    - make_custom_der
    linkageType: ''
    returnType: int
    signature: "int do_encode_custom(EXPECTED *input,\n                            const
      TEST_CUSTOM_DATA *custom_data,\n                            const TEST_PACKAGE
      *package)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_ITEM_ptr
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:712,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:716,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:717,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:720,1
    - Dst: ASN1_item_print
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:722,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - package
    argTypes:
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 709
    functionDepth: 6
    functionLinenumber: 709
    functionLinenumberEnd: 726
    functionName: do_print_item
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OPENSSL_malloc
    - ASN1_ITEM_ptr
    - OPENSSL_free
    - ASN1_item_print
    - RAND_bytes
    linkageType: ''
    returnType: int
    signature: int do_print_item(const TEST_PACKAGE *package)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:741,1
    - Dst: do_encode_custom
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:748,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:751,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:753,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:758,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:760,1
    - Dst: OPENSSL_die
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:766,1
    - Dst: do_decode_custom
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:769,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:774,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:776,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:781,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:783,1
    - Dst: OPENSSL_die
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:789,1
    - Dst: do_enc_dec
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:801,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:804,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:806,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:811,1
    - Dst: OPENSSL_die
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:818,1
    - Dst: do_print_item
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:823,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:824,1
    - Dst: TEST_openssl_errors
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:825,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 1
    argNames:
    - package
    argTypes:
    - TEST_PACKAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 729
    functionDepth: 7
    functionLinenumber: 729
    functionLinenumberEnd: 830
    functionName: test_intern
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_assert
    - OPENSSL_die
    - do_encode_custom
    - do_decode_custom
    - TEST_error
    - TEST_openssl_errors
    - do_print_item
    - do_enc_dec
    linkageType: ''
    returnType: int
    signature: int test_intern(const TEST_PACKAGE *package)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 833
    functionDepth: 8
    functionLinenumber: 833
    functionLinenumberEnd: 836
    functionName: test_long_32bit
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_long_32bit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 8
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: test_long_64bit
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_long_64bit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 844
    functionDepth: 8
    functionLinenumber: 844
    functionLinenumberEnd: 847
    functionName: test_int32
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_int32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 849
    functionDepth: 8
    functionLinenumber: 849
    functionLinenumberEnd: 852
    functionName: test_uint32
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_uint32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 854
    functionDepth: 8
    functionLinenumber: 854
    functionLinenumberEnd: 857
    functionName: test_int64
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_int64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_intern
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 859
    functionDepth: 8
    functionLinenumber: 859
    functionLinenumberEnd: 862
    functionName: test_uint64
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - test_intern
    linkageType: ''
    returnType: int
    signature: int test_uint64(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INVALIDTEMPLATE_new
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:881,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:884,1
    - Dst: i2d_INVALIDTEMPLATE
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:887,1
    - Dst: INVALIDTEMPLATE_free
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 893
    functionName: test_invalid_template
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - INVALIDTEMPLATE_free
    - INVALIDTEMPLATE_new
    - i2d_INVALIDTEMPLATE
    linkageType: ''
    returnType: int
    signature: int test_invalid_template(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:899,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:900,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:902,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:903,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:904,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:905,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_encode_test.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 908
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asn1_encode_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:141,1
    - Dst: RSA_set0_key
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:141,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:142,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:143,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:144,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: key2048_key
    functionSourceFile: /src/openssl-3.0.15/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - RSA_set0_key
    - BN_bin2bn
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int key2048_key(RSA *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:153,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:156,1
    - Dst: RSA_set0_factors
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:156,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:157,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:158,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:161,1
    - Dst: RSA_set0_crt_params
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:161,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:162,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:163,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:164,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:168,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:169,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:170,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:171,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:171,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:171,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:174,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:175,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:176,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:177,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:180,1
    - Dst: RSA_set0_multi_prime_params
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:180,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:185,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:186,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:187,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:191,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:193,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:195,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 198
    functionName: key2048p3_v1
    functionSourceFile: /src/openssl-3.0.15/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_int_eq
    - BN_bin2bn
    - RSA_set0_factors
    - OPENSSL_zalloc
    - BN_free
    - OPENSSL_free
    - TEST_ptr
    - RSA_set0_crt_params
    - RSA_size
    - RSA_set0_multi_prime_params
    linkageType: ''
    returnType: int
    signature: int key2048p3_v1(RSA *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:202,1
    - Dst: RSA_size
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:204,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:206,1
    - Dst: sk_BIGNUM_new_null
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:206,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:207,1
    - Dst: sk_BIGNUM_new_null
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:207,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:208,1
    - Dst: sk_BIGNUM_new_null
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:208,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:211,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:211,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:212,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:212,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:213,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:213,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:214,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:214,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:215,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:215,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:216,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:216,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:219,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:219,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:220,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:220,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:221,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:221,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:222,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:222,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:223,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:223,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:224,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:224,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:227,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:227,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:228,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:228,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:229,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:229,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:230,1
    - Dst: sk_BIGNUM_push
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:233,1
    - Dst: ossl_rsa_set0_all_params
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:233,1
    - Dst: sk_BIGNUM_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:237,1
    - Dst: sk_BIGNUM_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:238,1
    - Dst: sk_BIGNUM_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:239,1
    - Dst: sk_BIGNUM_pop_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:242,1
    - Dst: sk_BIGNUM_pop_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:243,1
    - Dst: sk_BIGNUM_pop_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:244,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 32
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 200
    functionDepth: 5
    functionLinenumber: 200
    functionLinenumberEnd: 248
    functionName: key2048p3_v2
    functionSourceFile: /src/openssl-3.0.15/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - sk_BIGNUM_pop_free
    - sk_BIGNUM_push
    - BN_bin2bn
    - TEST_int_ne
    - STACK_OF
    - sk_BIGNUM_new_null
    - sk_BIGNUM_free
    - TEST_ptr
    - ossl_rsa_set0_all_params
    - TEST_true
    - RSA_size
    linkageType: ''
    returnType: int
    signature: int key2048p3_v2(RSA *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RSA_new
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:266,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:267,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:270,1
    - Dst: key2048_key
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:270,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:271,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:274,1
    - Dst: RSA_check_key_ex
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:274,1
    - Dst: RSA_public_encrypt
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:277,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:279,1
    - Dst: RSA_private_decrypt
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:282,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:283,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 250
    functionDepth: 10
    functionLinenumber: 250
    functionLinenumberEnd: 290
    functionName: test_rsa_mp
    functionSourceFile: /src/openssl-3.0.15/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_int_eq
    - key2048_key
    - RSA_new
    - RSA_public_encrypt
    - RSA_free
    - RSA_check_key_ex
    - TEST_ptr
    - TEST_true
    - RSA_private_decrypt
    linkageType: ''
    returnType: int
    signature: int test_rsa_mp(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rsa_mp_test.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/rsa_mp_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WPACKET_cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - WPACKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: cleanup
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 88
    functionsReached:
    - WPACKET_cleanup
    linkageType: ''
    returnType: int
    signature: int cleanup(WPACKET *pkt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:44,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:44,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:45,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:45,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:47,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:49,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:49,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:54,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:54,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:55,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:55,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:56,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:56,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:57,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:58,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:61,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:61,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:62,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:62,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:63,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:64,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:64,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:65,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:69,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:70,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:71,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:72,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:72,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:73,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:76,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:76,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:77,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:83,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:83,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:84,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:86,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:86,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:90,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:92,1
    - Dst: WPACKET_put_bytes_u24
      Src: /src/openssl-3.0.15/test/wpackettest.c:92,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:94,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:94,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:96,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:96,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:97,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:97,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:100,1
    - Dst: WPACKET_init_static_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:102,1
    - Dst: WPACKET_put_bytes_u16
      Src: /src/openssl-3.0.15/test/wpackettest.c:102,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:104,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:104,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:105,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:106,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:106,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:107,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:108,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 111
    functionName: test_WPACKET_init
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - WPACKET_finish
    - WPACKET_init_static_len
    - TEST_int_eq
    - WPACKET_put_bytes_u8
    - WPACKET_put_bytes_u16
    - TEST_false
    - WPACKET_get_total_written
    - WPACKET_init
    - WPACKET_put_bytes_u24
    - WPACKET_close
    - WPACKET_init_len
    - cleanup
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:118,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:123,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:125,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:125,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:127,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:128,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:128,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:131,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:131,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:136,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:136,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:141,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:141,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:143,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:143,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:145,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:145,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:147,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:147,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:149,1
    - Dst: WPACKET_set_max_size
      Src: /src/openssl-3.0.15/test/wpackettest.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:150,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:150,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:151,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:151,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:152,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:152,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:153,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:153,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:154,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:155,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 158
    functionName: test_WPACKET_set_max_size
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - WPACKET_finish
    - WPACKET_put_bytes_u8
    - TEST_false
    - WPACKET_set_max_size
    - WPACKET_get_total_written
    - WPACKET_init
    - WPACKET_init_len
    - cleanup
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_set_max_size(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:166,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:166,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:167,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/test/wpackettest.c:167,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:168,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:168,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:170,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:170,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:171,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:171,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:173,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:173,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:175,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:175,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:176,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:176,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:177,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:178,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:181,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:182,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:183,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:184,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:185,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:186,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:186,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:187,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:191,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:191,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:192,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:193,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:193,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:194,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:195,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:196,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-3.0.15/test/wpackettest.c:196,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:197,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:198,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:199,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-3.0.15/test/wpackettest.c:199,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:201,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:202,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:202,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:203,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:203,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:204,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:208,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:209,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:209,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:210,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:211,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:211,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:212,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:213,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:213,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:214,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:214,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:215,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:215,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:216,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:216,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:217,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:221,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:222,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:222,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:223,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:223,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:224,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:224,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:225,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:225,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:226,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-3.0.15/test/wpackettest.c:226,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:227,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:228,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:228,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:229,1
    - Dst: WPACKET_get_length
      Src: /src/openssl-3.0.15/test/wpackettest.c:229,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:231,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:231,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:232,1
    - Dst: WPACKET_fill_lengths
      Src: /src/openssl-3.0.15/test/wpackettest.c:232,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:233,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:233,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:235,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:235,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:236,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 239
    functionName: test_WPACKET_start_sub_packet
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet
    - WPACKET_finish
    - WPACKET_put_bytes_u8
    - TEST_false
    - TEST_size_t_eq
    - WPACKET_fill_lengths
    - WPACKET_get_total_written
    - WPACKET_init
    - WPACKET_close
    - WPACKET_get_length
    - cleanup
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_start_sub_packet(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:248,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:248,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:249,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/test/wpackettest.c:249,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:251,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:251,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:252,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:253,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:253,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:254,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:254,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:255,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:259,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:259,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:260,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/test/wpackettest.c:260,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:261,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/test/wpackettest.c:261,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/wpackettest.c:263,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:264,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:264,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:265,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:266,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:266,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:267,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:267,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:268,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:269,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:272,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:272,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:273,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/test/wpackettest.c:273,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:274,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:274,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:275,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:275,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:276,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:277,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:280,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:280,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:281,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:281,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:282,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/test/wpackettest.c:282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:283,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:284,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:284,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:285,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:285,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:286,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:287,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:290,1
    - Dst: WPACKET_init
      Src: /src/openssl-3.0.15/test/wpackettest.c:290,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:291,1
    - Dst: WPACKET_start_sub_packet_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:292,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/test/wpackettest.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:293,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:293,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:294,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:294,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:295,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:295,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:296,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:296,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:297,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:298,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 300
    functionName: test_WPACKET_set_flags
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - WPACKET_start_sub_packet_u8
    - WPACKET_start_sub_packet
    - WPACKET_finish
    - WPACKET_put_bytes_u8
    - TEST_false
    - TEST_size_t_eq
    - WPACKET_get_total_written
    - WPACKET_init
    - WPACKET_set_flags
    - WPACKET_close
    - WPACKET_init_len
    - cleanup
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_set_flags(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:308,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:308,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:309,1
    - Dst: WPACKET_allocate_bytes
      Src: /src/openssl-3.0.15/test/wpackettest.c:309,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:310,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:313,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:313,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:314,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:314,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:315,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:316,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:319,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:319,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:320,1
    - Dst: WPACKET_sub_allocate_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:320,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:321,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:324,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:324,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:325,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:325,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:326,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:327,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 330
    functionName: test_WPACKET_allocate_bytes
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - WPACKET_finish
    - WPACKET_allocate_bytes
    - WPACKET_get_total_written
    - WPACKET_init_len
    - WPACKET_sub_allocate_bytes_u8
    - cleanup
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_allocate_bytes(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:338,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:339,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-3.0.15/test/wpackettest.c:339,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:340,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:340,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:341,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:341,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:342,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:343,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:346,1
    - Dst: WPACKET_init_len
      Src: /src/openssl-3.0.15/test/wpackettest.c:346,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:347,1
    - Dst: WPACKET_sub_memcpy_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:347,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:348,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:348,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:349,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:349,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:350,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:351,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 354
    functionName: test_WPACKET_memcpy
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - WPACKET_sub_memcpy_u8
    - WPACKET_finish
    - WPACKET_memcpy
    - WPACKET_get_total_written
    - WPACKET_init_len
    - cleanup
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_memcpy(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:368,1
    - Dst: WPACKET_init_der
      Src: /src/openssl-3.0.15/test/wpackettest.c:368,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:369,1
    - Dst: WPACKET_put_bytes_u24
      Src: /src/openssl-3.0.15/test/wpackettest.c:369,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:371,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/test/wpackettest.c:371,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:372,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-3.0.15/test/wpackettest.c:372,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:373,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:373,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:374,1
    - Dst: WPACKET_put_bytes_u8
      Src: /src/openssl-3.0.15/test/wpackettest.c:374,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:376,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/test/wpackettest.c:376,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:377,1
    - Dst: WPACKET_set_flags
      Src: /src/openssl-3.0.15/test/wpackettest.c:377,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:378,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:378,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:379,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:379,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:380,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:380,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:381,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:382,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:382,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:383,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:383,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:384,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-3.0.15/test/wpackettest.c:384,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:386,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/wpackettest.c:389,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/wpackettest.c:389,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:399,1
    - Dst: WPACKET_init_null_der
      Src: /src/openssl-3.0.15/test/wpackettest.c:399,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:402,1
    - Dst: WPACKET_init_der
      Src: /src/openssl-3.0.15/test/wpackettest.c:402,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:405,1
    - Dst: WPACKET_start_sub_packet
      Src: /src/openssl-3.0.15/test/wpackettest.c:405,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:406,1
    - Dst: WPACKET_memcpy
      Src: /src/openssl-3.0.15/test/wpackettest.c:406,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:408,1
    - Dst: WPACKET_close
      Src: /src/openssl-3.0.15/test/wpackettest.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:409,1
    - Dst: WPACKET_finish
      Src: /src/openssl-3.0.15/test/wpackettest.c:409,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/wpackettest.c:410,1
    - Dst: WPACKET_get_total_written
      Src: /src/openssl-3.0.15/test/wpackettest.c:410,1
    - Dst: cleanup
      Src: /src/openssl-3.0.15/test/wpackettest.c:411,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:419,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/wpackettest.c:420,1
    - Dst: WPACKET_get_curr
      Src: /src/openssl-3.0.15/test/wpackettest.c:420,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 425
    functionName: test_WPACKET_init_der
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - RAND_bytes
    - WPACKET_init_null_der
    - WPACKET_start_sub_packet
    - WPACKET_finish
    - WPACKET_memcpy
    - WPACKET_get_curr
    - WPACKET_put_bytes_u8
    - TEST_size_t_eq
    - WPACKET_get_total_written
    - WPACKET_init_der
    - WPACKET_put_bytes_u24
    - WPACKET_set_flags
    - WPACKET_close
    - cleanup
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_WPACKET_init_der(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/wpackettest.c:429,1
    - Dst: BUF_MEM_new
      Src: /src/openssl-3.0.15/test/wpackettest.c:429,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:432,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:433,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:434,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:435,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:436,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:437,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/wpackettest.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 440
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - BUF_MEM_new
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUF_MEM_free
      Src: /src/openssl-3.0.15/test/wpackettest.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/wpackettest.c
    functionUses: 5
    functionsReached:
    - BUF_MEM_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_sha.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:29,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:33,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:33,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:34,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:35,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:40,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: test_empty
    functionSourceFile: /src/openssl-3.0.15/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - sk_SSL_CIPHER_free
    - TEST_int_eq
    - SSL_bytes_to_cipher_list
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: int test_empty(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:52,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:52,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:54,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:55,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:56,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:57,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:57,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:58,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:58,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:58,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:64,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 67
    functionName: test_unsupported
    functionSourceFile: /src/openssl-3.0.15/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_value
    - SSL_CIPHER_get_name
    - sk_SSL_CIPHER_free
    - TEST_int_eq
    - SSL_bytes_to_cipher_list
    - STACK_OF
    - TEST_str_eq
    - TEST_ptr
    - TEST_true
    - sk_SSL_CIPHER_num
    linkageType: ''
    returnType: int
    signature: int test_unsupported(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:78,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:78,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:80,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:81,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:81,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:82,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:83,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:83,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:85,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:85,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:85,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:87,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:87,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:87,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:94,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:95,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: test_v2
    functionSourceFile: /src/openssl-3.0.15/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_value
    - SSL_CIPHER_get_name
    - sk_SSL_CIPHER_free
    - TEST_int_eq
    - SSL_bytes_to_cipher_list
    - STACK_OF
    - strcmp
    - TEST_ptr
    - TEST_true
    - sk_SSL_CIPHER_num
    linkageType: ''
    returnType: int
    signature: int test_v2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:101,1
    - Dst: SSL_bytes_to_cipher_list
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:108,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:109,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:110,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:110,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:111,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:112,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:112,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:113,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:113,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:113,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:115,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:115,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:115,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:117,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:117,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:117,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:119,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:119,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:119,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:121,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:121,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:121,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:127,1
    - Dst: sk_SSL_CIPHER_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 130
    functionName: test_v3
    functionSourceFile: /src/openssl-3.0.15/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_value
    - SSL_CIPHER_get_name
    - sk_SSL_CIPHER_free
    - TEST_int_eq
    - SSL_bytes_to_cipher_list
    - STACK_OF
    - TEST_str_eq
    - TEST_ptr
    - sk_SSL_CIPHER_num
    linkageType: ''
    returnType: int
    signature: int test_v3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:134,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:134,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:134,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:135,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:135,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:138,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:139,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:140,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cipherbytes_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - SSL_new
    - TEST_ptr
    - TLS_server_method
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:147,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/cipherbytes_test.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cipherbytes_test.c
    functionUses: 5
    functionsReached:
    - SSL_free
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:47,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:47,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:48,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:48,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:48,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:50,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:50,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:52,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:52,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:54,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:56,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:56,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:57,1
    - Dst: EVP_CIPHER_CTX_get_tag_length
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:58,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:58,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:60,1
    - Dst: EVP_CIPHER_CTX_get_original_iv
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:61,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 5
    argNames:
    - iv_gen
    - ct
    - ct_len
    - tag
    - tag_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int*
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 64
    functionName: do_encrypt
    functionSourceFile: /src/openssl-3.0.15/test/aesgcmtest.c
    functionUses: 3
    functionsReached:
    - EVP_CIPHER_CTX_get_original_iv
    - EVP_aes_256_gcm
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - TEST_int_eq
    - EVP_CIPHER_CTX_get_tag_length
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    - TEST_ptr
    - TEST_true
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: "int do_encrypt(unsigned char *iv_gen, unsigned char *ct, int *ct_len,\n
      \                     unsigned char *tag, int *tag_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:75,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:75,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:76,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:76,1
    - Dst: EVP_aes_256_gcm
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:76,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:78,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:78,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:79,1
    - Dst: EVP_CIPHER_CTX_get_tag_length
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:79,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:80,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:80,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:82,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:82,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:84,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:84,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:86,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:86,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:87,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 5
    argNames:
    - iv
    - ct
    - ct_len
    - tag
    - tag_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 91
    functionName: do_decrypt
    functionSourceFile: /src/openssl-3.0.15/test/aesgcmtest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_DecryptFinal_ex
    - EVP_aes_256_gcm
    - EVP_CIPHER_CTX_free
    - TEST_int_eq
    - EVP_CIPHER_CTX_get_tag_length
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - EVP_CIPHER_CTX_ctrl
    - TEST_ptr
    - TEST_true
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int do_decrypt(const unsigned char *iv, const unsigned char *ct,\n
      \                     int ct_len, const unsigned char *tag, int tag_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_encrypt
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:99,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:100,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:101,1
    - Dst: do_decrypt
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: kat_test
    functionSourceFile: /src/openssl-3.0.15/test/aesgcmtest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - do_decrypt
    - do_encrypt
    linkageType: ''
    returnType: int
    signature: int kat_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:111,1
    - Dst: EVP_aes_192_gcm
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:111,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:112,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:112,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:113,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:113,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:114,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:114,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: badkeylen_test
    functionSourceFile: /src/openssl-3.0.15/test/aesgcmtest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CIPHER_CTX_free
    - EVP_aes_192_gcm
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - TEST_int_le
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int badkeylen_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_encrypt
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:126,1
    - Dst: do_decrypt
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: ivgen_test
    functionSourceFile: /src/openssl-3.0.15/test/aesgcmtest.c
    functionUses: 0
    functionsReached:
    - do_decrypt
    - do_encrypt
    linkageType: ''
    returnType: int
    signature: int ivgen_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:132,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:133,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/aesgcmtest.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/aesgcmtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/fips_version_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/fips_version_test.c:37,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/fips_version_test.c:39,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/fips_version_test.c:41,1
    - Dst: fips_provider_version_match
      Src: /src/openssl-3.0.15/test/fips_version_test.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: test_fips_version
    functionSourceFile: /src/openssl-3.0.15/test/fips_version_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_int_eq
    - test_get_argument
    - fips_provider_version_match
    linkageType: ''
    returnType: int
    signature: int test_fips_version(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/fips_version_test.c:50,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/fips_version_test.c:53,1
    - Dst: test_get_libctx
      Src: /src/openssl-3.0.15/test/fips_version_test.c:63,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/fips_version_test.c:66,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/fips_version_test.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 72
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/fips_version_test.c
    functionUses: 0
    functionsReached:
    - opt_arg
    - opt_next
    - test_get_argument_count
    - ADD_ALL_TESTS
    - test_get_libctx
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/fips_version_test.c:76,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/fips_version_test.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/fips_version_test.c
    functionUses: 5
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/d2i_test.c:55,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/d2i_test.c:56,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/d2i_test.c:60,1
    - Dst: ASN1_item_d2i_bio
      Src: /src/openssl-3.0.15/test/d2i_test.c:60,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/d2i_test.c:70,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/d2i_test.c:71,1
    - Dst: ASN1_item_d2i
      Src: /src/openssl-3.0.15/test/d2i_test.c:74,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/d2i_test.c:76,1
    - Dst: ASN1_item_i2d
      Src: /src/openssl-3.0.15/test/d2i_test.c:81,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/d2i_test.c:84,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/d2i_test.c:89,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/d2i_test.c:90,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/d2i_test.c:95,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/d2i_test.c:101,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/d2i_test.c:101,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/d2i_test.c:101,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/d2i_test.c:103,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/d2i_test.c:104,1
    - Dst: ASN1_item_free
      Src: /src/openssl-3.0.15/test/d2i_test.c:105,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 107
    functionName: test_bad_asn1
    functionSourceFile: /src/openssl-3.0.15/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - BIO_read
    - ASN1_item_d2i_bio
    - TEST_int_ge
    - ASN1_item_d2i
    - TEST_int_eq
    - ERR_GET_REASON
    - TEST_false
    - ASN1_item_i2d
    - ERR_peek_error
    - BIO_free
    - ASN1_item_free
    - OPENSSL_free
    - memcmp
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_bad_asn1(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/d2i_test.c:130,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/d2i_test.c:131,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/d2i_test.c:135,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/d2i_test.c:135,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/d2i_test.c:136,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/d2i_test.c:136,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/d2i_test.c:137,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/d2i_test.c:137,1
    - Dst: ASN1_ITEM_lookup
      Src: /src/openssl-3.0.15/test/d2i_test.c:140,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/d2i_test.c:143,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/d2i_test.c:144,1
    - Dst: ASN1_ITEM_get
      Src: /src/openssl-3.0.15/test/d2i_test.c:146,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/d2i_test.c:150,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/d2i_test.c:155,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/d2i_test.c:156,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/d2i_test.c:163,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/d2i_test.c:167,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 169
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/d2i_test.c
    functionUses: 0
    functionsReached:
    - ASN1_ITEM_get
    - TEST_note
    - ADD_TEST
    - TEST_error
    - strcmp
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    - ASN1_ITEM_lookup
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sd_load
      Src: /src/openssl-3.0.15/test/moduleloadtest.c:28,1
    - Dst: sd_sym
      Src: /src/openssl-3.0.15/test/moduleloadtest.c:30,1
    - Dst: sd_close
      Src: /src/openssl-3.0.15/test/moduleloadtest.c:31,1
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/moduleloadtest.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - symbol
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: test_load
    functionSourceFile: /src/openssl-3.0.15/test/moduleloadtest.c
    functionUses: 0
    functionsReached:
    - sd_sym
    - sd_load
    - sd_close
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_load(const char *path, const char *symbol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/openssl-3.0.15/test/moduleloadtest.c:45,1
    - Dst: test_load
      Src: /src/openssl-3.0.15/test/moduleloadtest.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/moduleloadtest.c
    functionUses: 6
    functionsReached:
    - test_load
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/clienthellotest.c:80,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/clienthellotest.c:81,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/clienthellotest.c:82,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/clienthellotest.c:88,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/clienthellotest.c:88,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:91,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/clienthellotest.c:91,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:102,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/clienthellotest.c:102,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/clienthellotest.c:113,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/clienthellotest.c:113,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/clienthellotest.c:115,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/clienthellotest.c:119,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-3.0.15/test/clienthellotest.c:121,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/clienthellotest.c:128,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/clienthellotest.c:128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:136,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/clienthellotest.c:136,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:138,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/clienthellotest.c:138,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/clienthellotest.c:148,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:149,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/clienthellotest.c:153,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:154,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/clienthellotest.c:155,1
    - Dst: PEM_read_bio_SSL_SESSION
      Src: /src/openssl-3.0.15/test/clienthellotest.c:158,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:159,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/clienthellotest.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:167,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/clienthellotest.c:167,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/clienthellotest.c:167,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:168,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/clienthellotest.c:168,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/clienthellotest.c:172,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/clienthellotest.c:172,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/clienthellotest.c:173,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/clienthellotest.c:173,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:174,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:174,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:175,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:176,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/clienthellotest.c:180,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-3.0.15/test/clienthellotest.c:181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:184,1
    - Dst: SSL_set_session_ticket_ext
      Src: /src/openssl-3.0.15/test/clienthellotest.c:184,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/clienthellotest.c:185,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/clienthellotest.c:189,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/clienthellotest.c:189,1
    - Dst: TEST_long_ge
      Src: /src/openssl-3.0.15/test/clienthellotest.c:194,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/clienthellotest.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:195,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/clienthellotest.c:195,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/clienthellotest.c:197,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/clienthellotest.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:203,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/clienthellotest.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:205,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/clienthellotest.c:205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:208,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/clienthellotest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:210,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/clienthellotest.c:210,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:212,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/clienthellotest.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:214,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-3.0.15/test/clienthellotest.c:214,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/clienthellotest.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:220,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/clienthellotest.c:220,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:221,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/clienthellotest.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:226,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/clienthellotest.c:226,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/clienthellotest.c:227,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/clienthellotest.c:235,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:237,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/clienthellotest.c:239,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:247,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:248,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:249,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/clienthellotest.c:250,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 121
    argCount: 1
    argNames:
    - currtest
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 253
    functionName: test_client_hello
    functionSourceFile: /src/openssl-3.0.15/test/clienthellotest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session_ticket_ext
    - SSL_CTX_set_ciphersuites
    - time
    - SSL_SESSION_set_time
    - SSL_CTX_set_max_proto_version
    - PACKET_forward
    - SSL_new
    - strlen
    - PEM_read_bio_SSL_SESSION
    - SSL_CTX_clear_options
    - BIO_s_mem
    - SSL_set_session
    - PACKET_get_length_prefixed_1
    - BIO_new
    - PACKET_buf_init
    - SSL_set_bio
    - PACKET_get_net_2
    - SSL_CTX_set_alpn_protos
    - TEST_int_le
    - TEST_true
    - memset
    - SSL_SESSION_free
    - TEST_long_ge
    - PACKET_as_length_prefixed_2
    - PACKET_equal
    - SSL_CTX_free
    - ERR_clear_error
    - PACKET_remaining
    - TEST_info
    - TLS_method
    - BIO_get_mem_data
    - TEST_ptr
    - BIO_new_file
    - SSL_CTX_set_options
    - SSL_CTX_new
    - PACKET_get_length_prefixed_2
    - SSL_set_connect_state
    - BIO_free
    - TEST_false
    - SSL_connect
    - SSL_CTX_set_cipher_list
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int test_client_hello(int currtest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/clienthellotest.c:259,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/clienthellotest.c:260,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/clienthellotest.c:264,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/clienthellotest.c:264,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/clienthellotest.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/clienthellotest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_int32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:44,1
    - Dst: OSSL_PARAM_int64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:45,1
    - Dst: OSSL_PARAM_uint32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:46,1
    - Dst: OSSL_PARAM_uint64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:47,1
    - Dst: OSSL_PARAM_double
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:48,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:57,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:61,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:63,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:66,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:68,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:73,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:76,1
    - Dst: strtoimax
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:78,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:80,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:82,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:85,1
    - Dst: strtoimax
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:87,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:89,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:91,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:94,1
    - Dst: strtoumax
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:96,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:98,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:100,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:103,1
    - Dst: strtoumax
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:105,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:107,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:109,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:112,1
    - Dst: strtod
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:114,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:117,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:121,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:127,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:128,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:132,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:133,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:134,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:141,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:142,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:142,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:143,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:150,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:151,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:151,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:152,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:160,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:161,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:168,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:169,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:169,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:170,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:178,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 131
    argCount: 2
    argNames:
    - pc
    - s
    argTypes:
    - PARAM_CONVERSION*
    - STANZA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 182
    functionName: param_conversion_load_stanza
    functionSourceFile: /src/openssl-3.0.15/test/params_conversion_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - strtoimax
    - strtod
    - TEST_note
    - OSSL_PARAM_int32
    - OSSL_PARAM_locate
    - TEST_info
    - TEST_error
    - OSSL_PARAM_uint32
    - strtoumax
    - TEST_ptr
    - memset
    - OSSL_PARAM_double
    - OSSL_PARAM_uint64
    - OSSL_PARAM_int64
    - OPENSSL_strcasecmp
    linkageType: ''
    returnType: int
    signature: int param_conversion_load_stanza(PARAM_CONVERSION *pc, const STANZA
      *s)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:193,1
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:193,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:198,1
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:199,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:200,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:203,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:204,1
    - Dst: OSSL_PARAM_set_int32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:204,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:205,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:206,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:213,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:213,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:214,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:218,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:219,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:220,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:223,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:224,1
    - Dst: OSSL_PARAM_set_int64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:224,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:225,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:226,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:233,1
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:233,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:234,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:238,1
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:239,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:240,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:243,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:244,1
    - Dst: OSSL_PARAM_set_uint32
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:244,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:245,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:246,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:253,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:253,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:254,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:258,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:258,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:259,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:260,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:264,1
    - Dst: OSSL_PARAM_set_uint64
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:264,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:265,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:266,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:273,1
    - Dst: OSSL_PARAM_get_double
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:273,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:274,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:278,1
    - Dst: OSSL_PARAM_get_double
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:278,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:279,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:295,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:296,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:299,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:300,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:304,1
    - Dst: OSSL_PARAM_set_double
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:304,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:305,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:306,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 2
    argNames:
    - pc
    - line
    argTypes:
    - PARAM_CONVERSION*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 313
    functionName: param_conversion_test
    functionSourceFile: /src/openssl-3.0.15/test/params_conversion_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_eq
    - OSSL_PARAM_get_uint32
    - TEST_note
    - OSSL_PARAM_get_int32
    - OSSL_PARAM_get_uint64
    - TEST_false
    - OSSL_PARAM_set_double
    - OSSL_PARAM_set_uint32
    - OSSL_PARAM_set_int32
    - OSSL_PARAM_set_uint64
    - OSSL_PARAM_get_double
    - OSSL_PARAM_get_int64
    - OSSL_PARAM_set_int64
    - memset
    linkageType: ''
    returnType: int
    signature: int param_conversion_test(const PARAM_CONVERSION *pc, int line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:319,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:322,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:322,1
    - Dst: test_start_file
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:324,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:325,1
    - Dst: BIO_eof
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:329,1
    - Dst: test_readstanza
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:330,1
    - Dst: param_conversion_load_stanza
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:335,1
    - Dst: param_conversion_test
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:336,1
    - Dst: test_clearstanza
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:338,1
    - Dst: test_end_file
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:341,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 315
    functionDepth: 6
    functionLinenumber: 315
    functionLinenumberEnd: 344
    functionName: run_param_file_tests
    functionSourceFile: /src/openssl-3.0.15/test/params_conversion_test.c
    functionUses: 0
    functionsReached:
    - test_end_file
    - BIO_eof
    - OPENSSL_zalloc
    - param_conversion_test
    - test_clearstanza
    - OPENSSL_free
    - test_readstanza
    - test_start_file
    - TEST_ptr
    - test_get_argument
    - param_conversion_load_stanza
    linkageType: ''
    returnType: int
    signature: int run_param_file_tests(int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:354,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:355,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:359,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/params_conversion_test.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/params_conversion_test.c
    functionUses: 0
    functionsReached:
    - test_skip_common_options
    - test_get_argument_count
    - ADD_ALL_TESTS
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_ssl2.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/prov_config_test.c:25,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:29,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/prov_config_test.c:32,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/prov_config_test.c:32,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/prov_config_test.c:34,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/prov_config_test.c:34,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/prov_config_test.c:38,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:39,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/prov_config_test.c:44,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/prov_config_test.c:45,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 23
    functionDepth: 11
    functionLinenumber: 23
    functionLinenumberEnd: 47
    functionName: test_double_config
    functionSourceFile: /src/openssl-3.0.15/test/prov_config_test.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_load_config
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_double_config(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/prov_config_test.c:51,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:55,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/prov_config_test.c:58,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/prov_config_test.c:58,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/prov_config_test.c:61,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/prov_config_test.c:63,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/prov_config_test.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: test_recursive_config
    functionSourceFile: /src/openssl-3.0.15/test/prov_config_test.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - OSSL_LIB_CTX_load_config
    - ERR_peek_error
    - TEST_false
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_recursive_config(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-3.0.15/test/prov_config_test.c:77,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:81,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/prov_config_test.c:84,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/prov_config_test.c:84,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/prov_config_test.c:84,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:85,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/prov_config_test.c:88,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/test/prov_config_test.c:89,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/prov_config_test.c:90,1
    - Dst: stat
      Src: /src/openssl-3.0.15/test/prov_config_test.c:91,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/prov_config_test.c:92,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/prov_config_test.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:96,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/prov_config_test.c:99,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/prov_config_test.c:103,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/prov_config_test.c:103,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:107,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/prov_config_test.c:107,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/prov_config_test.c:110,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/prov_config_test.c:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 116
    functionName: test_path_config
    functionSourceFile: /src/openssl-3.0.15/test/prov_config_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_LIB_CTX_load_config
    - OSSL_PROVIDER_unload
    - stat
    - OPENSSL_zalloc
    - OSSL_LIB_CTX_free
    - TEST_info
    - OPENSSL_free
    - TEST_skip
    - strlen
    - OSSL_LIB_CTX_new
    - getenv
    - TEST_ptr
    - strcpy
    - TEST_true
    - strcat
    linkageType: ''
    returnType: int
    signature: int test_path_config(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/prov_config_test.c:122,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/prov_config_test.c:123,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:127,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/prov_config_test.c:127,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:130,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/prov_config_test.c:130,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/prov_config_test.c:133,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/prov_config_test.c:133,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/prov_config_test.c:136,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/prov_config_test.c:137,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/prov_config_test.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 140
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/prov_config_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:43,1
    - Dst: BIO_meth_set_write
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:46,1
    - Dst: BIO_meth_set_read
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:47,1
    - Dst: BIO_meth_set_puts
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:48,1
    - Dst: BIO_meth_set_gets
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:49,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:50,1
    - Dst: BIO_meth_set_create
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:51,1
    - Dst: BIO_meth_set_destroy
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: bio_f_watchccs_filter
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_meth_new
    - BIO_meth_set_puts
    - BIO_meth_set_gets
    - BIO_meth_set_ctrl
    - BIO_meth_set_destroy
    - BIO_meth_set_create
    - BIO_meth_set_read
    - BIO_meth_set_write
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *bio_f_watchccs_filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: watchccs_new
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int watchccs_new(BIO *bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: watchccs_free
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    linkageType: ''
    returnType: int
    signature: int watchccs_free(BIO *bio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:73,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:80,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:82,1
    - Dst: BIO_should_read
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:83,1
    - Dst: BIO_set_retry_read
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - bio
    - out
    - outl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 87
    functionName: watchccs_read
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_should_read
    - BIO_read
    - BIO_clear_retry_flags
    - BIO_set_retry_read
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int watchccs_read(BIO *bio, char *out, int outl)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:92,1
    - Dst: BIO_clear_retry_flags
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:101,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:103,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:107,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:108,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:109,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:110,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:116,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:117,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:126,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:127,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:134,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:135,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:142,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:144,1
    - Dst: PACKET_data
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:144,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:154,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:155,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:162,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:164,1
    - Dst: PACKET_data
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:164,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:206,1
    - Dst: BIO_should_write
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:207,1
    - Dst: BIO_set_retry_write
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:208,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 65
    argCount: 3
    argNames:
    - bio
    - in
    - inl
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 89
    functionDepth: 4
    functionLinenumber: 89
    functionLinenumberEnd: 211
    functionName: watchccs_write
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - PACKET_get_length_prefixed_1
    - BIO_set_retry_write
    - PACKET_buf_init
    - PACKET_remaining
    - PACKET_forward
    - PACKET_copy_bytes
    - BIO_clear_retry_flags
    - PACKET_get_net_2
    - BIO_should_write
    - memcmp
    - BIO_write
    - PACKET_get_length_prefixed_2
    - PACKET_get_length_prefixed_3
    - PACKET_data
    - BIO_next
    linkageType: ''
    returnType: int
    signature: int watchccs_write(BIO *bio, const char *in, int inl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_next
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:216,1
    - Dst: BIO_ctrl
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - bio
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 230
    functionName: watchccs_ctrl
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl
    - BIO_next
    linkageType: ''
    returnType: long
    signature: long watchccs_ctrl(BIO *bio, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bio
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: watchccs_gets
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int watchccs_gets(BIO *bio, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watchccs_write
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:240,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bio
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: watchccs_puts
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - watchccs_write
    - strlen
    linkageType: ''
    returnType: int
    signature: int watchccs_puts(BIO *bio, const char *str)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:257,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:257,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:257,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:258,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:260,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:260,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:288,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:294,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:297,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:303,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:303,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:304,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:304,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:306,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:307,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:309,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:310,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:311,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:312,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:320,1
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:320,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:324,1
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:324,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:329,1
    - Dst: bio_f_watchccs_filter
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:329,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:330,1
    - Dst: bio_f_watchccs_filter
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:330,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:331,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:332,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:333,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:339,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:339,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:345,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:345,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:346,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:346,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:346,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:349,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:349,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:354,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:354,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:357,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:357,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:360,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:367,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:367,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:375,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:375,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:375,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:380,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:381,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:382,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:383,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:388,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:389,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:390,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:391,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:396,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:397,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:398,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:399,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:404,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:405,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:406,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:407,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:412,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:413,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:414,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:415,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:420,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:421,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:422,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:423,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:428,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:429,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:430,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:431,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:436,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:437,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:438,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:439,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:444,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:445,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:446,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:447,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:452,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:454,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:455,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:460,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:461,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:462,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:463,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:468,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:469,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:470,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:471,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:476,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:482,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:483,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:484,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:485,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:486,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 161
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 489
    functionName: test_tls13ccs
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - SSL_read_early_data
    - create_ssl_ctx_pair
    - bio_f_watchccs_filter
    - TEST_int_eq
    - strlen
    - SSL_CTX_clear_options
    - TEST_int_gt
    - SSL_get1_session
    - SSL_set_session
    - BIO_new
    - SSL_CTX_set_max_early_data
    - SSL_CTX_set1_groups_list
    - create_ssl_objects
    - TEST_error
    - TEST_int_le
    - TEST_true
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_write_early_data
    - TEST_size_t_eq
    - TEST_ptr
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - BIO_free
    - SSL_connect
    - TEST_false
    - SSL_free
    - TLS_server_method
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: int test_tls13ccs(int tst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:495,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:496,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:500,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:500,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:501,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:501,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 507
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_free
      Src: /src/openssl-3.0.15/test/tls13ccstest.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/tls13ccstest.c
    functionUses: 5
    functionsReached:
    - BIO_meth_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_store.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/asn1_stable_parse_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:42,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:44,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:47,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:47,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:50,1
    - Dst: ERR_GET_LIB
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:51,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:53,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:56,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:60,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: test_asn1_stable_parse
    functionSourceFile: /src/openssl-3.0.15/test/asn1_stable_parse_test.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - OSSL_LIB_CTX_load_config
    - TEST_int_eq
    - ERR_peek_error
    - ERR_clear_error
    - ERR_GET_LIB
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_asn1_stable_parse(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:69,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:72,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/asn1_stable_parse_test.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/asn1_stable_parse_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_arg
    - opt_next
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_des.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:21,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:21,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:22,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:22,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:23,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:23,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:24,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:24,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:25,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:25,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:26,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:26,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: test_PACKET_remaining
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_forward
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_remaining(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:36,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:36,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:37,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:37,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/packettest.c:38,1
    - Dst: PACKET_end
      Src: /src/openssl-3.0.15/test/packettest.c:38,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:39,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:39,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/packettest.c:40,1
    - Dst: PACKET_end
      Src: /src/openssl-3.0.15/test/packettest.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:41,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:41,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/packettest.c:42,1
    - Dst: PACKET_end
      Src: /src/openssl-3.0.15/test/packettest.c:42,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: test_PACKET_end
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_forward
    - TEST_ptr_eq
    - PACKET_end
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_end(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:53,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:53,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:54,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/packettest.c:54,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:55,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:56,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:57,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/packettest.c:57,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:58,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:59,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/packettest.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: test_PACKET_get_1
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_1
    - PACKET_buf_init
    - TEST_false
    - PACKET_forward
    - TEST_true
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:70,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:71,1
    - Dst: PACKET_get_4
      Src: /src/openssl-3.0.15/test/packettest.c:71,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:72,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:73,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:74,1
    - Dst: PACKET_get_4
      Src: /src/openssl-3.0.15/test/packettest.c:74,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:75,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:76,1
    - Dst: PACKET_get_4
      Src: /src/openssl-3.0.15/test/packettest.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: test_PACKET_get_4
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_4
    - TEST_ulong_eq
    - PACKET_buf_init
    - TEST_false
    - PACKET_forward
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_4(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:87,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:88,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/packettest.c:88,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:89,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:90,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:91,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/packettest.c:91,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:92,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:93,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/packettest.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: test_PACKET_get_net_2
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_false
    - PACKET_forward
    - PACKET_get_net_2
    - TEST_true
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_net_2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:104,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:104,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:105,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-3.0.15/test/packettest.c:105,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:106,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:107,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:108,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-3.0.15/test/packettest.c:108,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:109,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:110,1
    - Dst: PACKET_get_net_3
      Src: /src/openssl-3.0.15/test/packettest.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: test_PACKET_get_net_3
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_ulong_eq
    - PACKET_buf_init
    - TEST_false
    - PACKET_forward
    - PACKET_get_net_3
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_net_3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:121,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:121,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:122,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-3.0.15/test/packettest.c:122,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:124,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:125,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-3.0.15/test/packettest.c:125,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:126,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:127,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-3.0.15/test/packettest.c:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: test_PACKET_get_net_4
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_ulong_eq
    - PACKET_buf_init
    - PACKET_get_net_4
    - TEST_false
    - PACKET_forward
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_net_4(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:138,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:138,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:139,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-3.0.15/test/packettest.c:139,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:140,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-3.0.15/test/packettest.c:140,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:141,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:142,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:142,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:143,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:143,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:144,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-3.0.15/test/packettest.c:144,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:145,1
    - Dst: PACKET_get_net_4
      Src: /src/openssl-3.0.15/test/packettest.c:145,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/packettest.c:146,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:147,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:147,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:148,1
    - Dst: PACKET_get_sub_packet
      Src: /src/openssl-3.0.15/test/packettest.c:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: test_PACKET_get_sub_packet
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_ulong_eq
    - PACKET_buf_init
    - PACKET_get_net_4
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_forward
    - TEST_false
    - TEST_true
    - PACKET_get_sub_packet
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_sub_packet(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:159,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:160,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-3.0.15/test/packettest.c:160,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:161,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:162,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:163,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:164,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:165,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:166,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:166,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:167,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-3.0.15/test/packettest.c:167,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:168,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:169,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:170,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:171,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:172,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:172,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 176
    functionName: test_PACKET_get_bytes
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_uchar_eq
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_forward
    - TEST_false
    - TEST_true
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_bytes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:183,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:184,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-3.0.15/test/packettest.c:184,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/packettest.c:185,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/packettest.c:186,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/packettest.c:187,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/packettest.c:188,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:189,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:189,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:190,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:191,1
    - Dst: PACKET_copy_bytes
      Src: /src/openssl-3.0.15/test/packettest.c:191,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:192,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:193,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:194,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:195,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:196,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:196,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: test_PACKET_copy_bytes
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_char_eq
    - PACKET_buf_init
    - TEST_uchar_eq
    - PACKET_remaining
    - TEST_size_t_eq
    - PACKET_copy_bytes
    - PACKET_forward
    - TEST_false
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_copy_bytes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:208,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:209,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-3.0.15/test/packettest.c:209,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:210,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/packettest.c:211,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:212,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:212,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:213,1
    - Dst: PACKET_copy_all
      Src: /src/openssl-3.0.15/test/packettest.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 217
    functionName: test_PACKET_copy_all
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_eq
    - PACKET_buf_init
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - PACKET_copy_all
    linkageType: ''
    returnType: int
    signature: int test_PACKET_copy_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:226,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:226,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:227,1
    - Dst: PACKET_memdup
      Src: /src/openssl-3.0.15/test/packettest.c:227,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:228,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/packettest.c:229,1
    - Dst: PACKET_data
      Src: /src/openssl-3.0.15/test/packettest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:230,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:231,1
    - Dst: PACKET_memdup
      Src: /src/openssl-3.0.15/test/packettest.c:231,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:232,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/packettest.c:233,1
    - Dst: PACKET_data
      Src: /src/openssl-3.0.15/test/packettest.c:233,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/packettest.c:237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: test_PACKET_memdup
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - PACKET_buf_init
    - TEST_size_t_eq
    - PACKET_forward
    - OPENSSL_free
    - TEST_true
    - PACKET_data
    - PACKET_memdup
    linkageType: ''
    returnType: int
    signature: int test_PACKET_memdup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:248,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:249,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:252,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:253,1
    - Dst: PACKET_strndup
      Src: /src/openssl-3.0.15/test/packettest.c:253,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:254,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/packettest.c:254,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-3.0.15/test/packettest.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:256,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:257,1
    - Dst: PACKET_strndup
      Src: /src/openssl-3.0.15/test/packettest.c:257,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:258,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/packettest.c:258,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/packettest.c:259,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/packettest.c:264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 266
    functionName: test_PACKET_strndup
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_size_t_eq
    - memset
    - TEST_strn_eq
    - PACKET_strndup
    - OPENSSL_free
    - strlen
    - TEST_str_eq
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_strndup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:273,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:274,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:277,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:277,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:278,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-3.0.15/test/packettest.c:278,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:279,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:279,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:280,1
    - Dst: PACKET_contains_zero_byte
      Src: /src/openssl-3.0.15/test/packettest.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: test_PACKET_contains_zero_byte
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_false
    - memset
    - TEST_true
    - PACKET_contains_zero_byte
    linkageType: ''
    returnType: int
    signature: int test_PACKET_contains_zero_byte(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:291,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:292,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:292,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:293,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-3.0.15/test/packettest.c:293,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:294,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:295,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:295,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:296,1
    - Dst: PACKET_get_bytes
      Src: /src/openssl-3.0.15/test/packettest.c:296,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/packettest.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 301
    functionName: test_PACKET_forward
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_uchar_eq
    - PACKET_forward
    - TEST_true
    - PACKET_get_bytes
    linkageType: ''
    returnType: int
    signature: int test_PACKET_forward(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:309,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:309,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:310,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:310,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:311,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:311,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:312,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:312,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:313,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 317
    functionName: test_PACKET_buf_init
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_buf_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PACKET_null_init
      Src: /src/openssl-3.0.15/test/packettest.c:323,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:324,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:324,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:325,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/packettest.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 329
    functionName: test_PACKET_null_init
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_null_init
    - TEST_false
    - PACKET_forward
    - PACKET_remaining
    - TEST_size_t_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_null_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:335,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:335,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:336,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/packettest.c:336,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:337,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/packettest.c:337,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:338,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:339,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/packettest.c:339,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:340,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/packettest.c:340,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:341,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/packettest.c:341,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:342,1
    - Dst: PACKET_equal
      Src: /src/openssl-3.0.15/test/packettest.c:342,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 346
    functionName: test_PACKET_equal
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_false
    - PACKET_buf_init
    - PACKET_equal
    linkageType: ''
    returnType: int
    signature: int test_PACKET_equal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:355,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:360,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:361,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:361,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:362,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/packettest.c:362,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:363,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:363,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:364,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/packettest.c:364,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:365,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:366,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/packettest.c:366,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:367,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:367,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 371
    functionName: test_PACKET_get_length_prefixed_1
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_get_length_prefixed_1
    - PACKET_buf_init
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - memset
    - PACKET_get_net_2
    - TEST_true
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_length_prefixed_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:380,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:384,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:384,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:385,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:385,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:386,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/packettest.c:386,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:387,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:387,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:388,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/packettest.c:388,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:389,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:390,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/packettest.c:390,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:391,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 395
    functionName: test_PACKET_get_length_prefixed_2
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_uint_eq
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - memset
    - PACKET_get_net_2
    - TEST_true
    - PACKET_get_length_prefixed_2
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_length_prefixed_2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:404,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:408,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:409,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:409,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:410,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-3.0.15/test/packettest.c:410,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:411,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:411,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:412,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/packettest.c:412,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/packettest.c:413,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:414,1
    - Dst: PACKET_get_length_prefixed_3
      Src: /src/openssl-3.0.15/test/packettest.c:414,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:415,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:415,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 419
    functionName: test_PACKET_get_length_prefixed_3
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - PACKET_remaining
    - TEST_size_t_eq
    - TEST_false
    - memset
    - PACKET_get_net_2
    - TEST_true
    - PACKET_get_length_prefixed_3
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_PACKET_get_length_prefixed_3(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:428,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:433,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:433,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:434,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:434,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:435,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-3.0.15/test/packettest.c:435,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:436,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:436,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:437,1
    - Dst: PACKET_as_length_prefixed_1
      Src: /src/openssl-3.0.15/test/packettest.c:437,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:438,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:438,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:439,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 443
    functionName: test_PACKET_as_length_prefixed_1
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_buf_init
    - TEST_false
    - TEST_size_t_eq
    - PACKET_remaining
    - memset
    - PACKET_as_length_prefixed_1
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_as_length_prefixed_1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/packettest.c:452,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:456,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:456,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:457,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/packettest.c:457,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/packettest.c:458,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-3.0.15/test/packettest.c:458,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:459,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:459,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/packettest.c:460,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-3.0.15/test/packettest.c:460,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:461,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:461,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/packettest.c:462,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/packettest.c:462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 466
    functionName: test_PACKET_as_length_prefixed_2
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - PACKET_as_length_prefixed_2
    - PACKET_buf_init
    - TEST_false
    - TEST_size_t_eq
    - PACKET_remaining
    - memset
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_PACKET_as_length_prefixed_2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:475,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:476,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:477,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:478,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:479,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:480,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:481,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:482,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:483,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:484,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:485,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:486,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:487,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:488,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:489,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:490,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:491,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:492,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:493,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:494,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:495,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:496,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/packettest.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 499
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/packettest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: IS_HEX
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HEX(ch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:66,1
    - Dst: ERR_PUT_error
      Src: /src/openssl-3.0.15/test/errtest.c:68,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/errtest.c:69,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/errtest.c:70,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:72,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:73,1
    - Dst: strerror
      Src: /src/openssl-3.0.15/test/errtest.c:83,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/errtest.c:86,1
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/errtest.c:90,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/errtest.c:93,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/errtest.c:93,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/errtest.c:93,1
    - Dst: ERR_print_errors
      Src: /src/openssl-3.0.15/test/errtest.c:96,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/errtest.c:98,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/errtest.c:98,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:102,1
    - Dst: IS_HEX
      Src: /src/openssl-3.0.15/test/errtest.c:102,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:105,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-3.0.15/test/errtest.c:106,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/errtest.c:106,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/errtest.c:111,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 113
    functionName: test_print_error_format
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - TEST_int_eq
    - BIO_snprintf
    - ERR_print_errors
    - TEST_strn_eq
    - ERR_PUT_error
    - strlen
    - TEST_int_gt
    - BIO_s_mem
    - BIO_new
    - ERR_peek_error
    - TEST_true
    - IS_HEX
    - BIO_get_mem_data
    - TEST_ptr
    - BIO_free
    - ERR_set_mark
    - strerror
    - ERR_pop_to_mark
    linkageType: ''
    returnType: int
    signature: int test_print_error_format(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetLastError
      Src: /src/openssl-3.0.15/test/errtest.c:120,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/errtest.c:121,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:122,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/test/errtest.c:122,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/errtest.c:125,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: preserves_system_error
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ERR_get_error
    - GetLastError
    - SetLastError
    linkageType: ''
    returnType: int
    signature: int preserves_system_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:135,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:136,1
    - Dst: ERR_add_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:137,1
    - Dst: ERR_peek_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:138,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: vdata_appends
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - TEST_str_eq
    - ERR_add_error_data
    - ERR_raise
    - ERR_peek_error_data
    linkageType: ''
    returnType: int
    signature: int vdata_appends(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/test/errtest.c:159,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-3.0.15/test/errtest.c:161,1
    - Dst: ERR_get_error_all
      Src: /src/openssl-3.0.15/test/errtest.c:161,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:162,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/errtest.c:162,1
    - Dst: defined
      Src: /src/openssl-3.0.15/test/errtest.c:163,1
    - Dst: defined
      Src: /src/openssl-3.0.15/test/errtest.c:163,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:164,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:165,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: raised_error
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - ERR_GET_REASON
    - defined
    - ERR_get_error_all
    - TEST_int_eq
    - ERR_raise_data
    - TEST_str_eq
    - TEST_ulong_ne
    linkageType: ''
    returnType: int
    signature: int raised_error(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:177,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:178,1
    - Dst: TEST_ulong_gt
      Src: /src/openssl-3.0.15/test/errtest.c:179,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:183,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:184,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:184,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:185,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:185,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:186,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:186,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:187,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/errtest.c:187,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:188,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:192,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:192,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:194,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-3.0.15/test/errtest.c:195,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:195,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:196,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:196,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:197,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:197,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:201,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:202,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:202,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:204,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-3.0.15/test/errtest.c:205,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:206,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:206,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:207,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:207,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:208,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:211,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:211,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:213,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:214,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-3.0.15/test/errtest.c:215,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:216,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:216,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:218,1
    - Dst: TEST_ulong_ne
      Src: /src/openssl-3.0.15/test/errtest.c:219,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:219,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:220,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:220,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:221,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:222,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:222,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:223,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:223,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:227,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:227,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:229,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:230,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/errtest.c:230,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:231,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:231,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/errtest.c:238,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:238,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:239,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:239,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:243,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/errtest.c:244,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/errtest.c:244,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:246,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/errtest.c:246,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:247,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:247,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/errtest.c:260,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:260,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:263,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:264,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:264,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:266,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:267,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:270,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/errtest.c:270,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:271,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:271,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:274,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/errtest.c:274,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:276,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:277,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/errtest.c:280,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/errtest.c:280,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/errtest.c:281,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/errtest.c:281,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/errtest.c:285,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 288
    functionName: test_marks
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - TEST_ulong_eq
    - TEST_false
    - ERR_set_mark
    - ERR_raise
    - TEST_ulong_gt
    - ERR_get_error
    - ERR_clear_error
    - ERR_peek_last_error
    - ERR_pop_to_mark
    - ERR_clear_last_mark
    - TEST_true
    - TEST_ulong_ne
    linkageType: ''
    returnType: int
    signature: int test_marks(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/test/errtest.c:297,1
    - Dst: ERR_peek_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:298,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:299,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:300,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/errtest.c:302,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:305,1
    - Dst: ERR_peek_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:306,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:307,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:308,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/errtest.c:310,1
    - Dst: ERR_raise_data
      Src: /src/openssl-3.0.15/test/errtest.c:313,1
    - Dst: ERR_peek_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:314,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:315,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:316,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/errtest.c:318,1
    - Dst: ERR_raise
      Src: /src/openssl-3.0.15/test/errtest.c:324,1
    - Dst: ERR_peek_error_data
      Src: /src/openssl-3.0.15/test/errtest.c:325,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/errtest.c:326,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/errtest.c:327,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/errtest.c:329,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/errtest.c:333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 335
    functionName: test_clear_error
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ERR_clear_error
    - ERR_raise_data
    - ERR_raise
    - TEST_str_eq
    - ERR_peek_error_data
    linkageType: ''
    returnType: int
    signature: int test_clear_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/errtest.c:339,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/errtest.c:340,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/errtest.c:341,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/errtest.c:343,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/errtest.c:345,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/errtest.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/errtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_aes.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_ossl_typ.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_core_names.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_PKIHEADER_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:26,1
    - Dst: OSSL_CMP_CTX_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:27,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 35
    functionsReached:
    - OPENSSL_free
    - OSSL_CMP_CTX_free
    - OSSL_CMP_PKIHEADER_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:35,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:35,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:38,1
    - Dst: OSSL_CMP_CTX_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:38,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:40,1
    - Dst: OSSL_CMP_PKIHEADER_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:40,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 13
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 1
    functionsReached:
    - OSSL_CMP_CTX_new
    - tear_down
    - OPENSSL_zalloc
    - TEST_ptr
    - OSSL_CMP_PKIHEADER_new
    linkageType: ''
    returnType: CMP_HDR_TEST_FIXTURE
    signature: CMP_HDR_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:53,1
    - Dst: ossl_cmp_hdr_set_pvno
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:53,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:55,1
    - Dst: ossl_cmp_hdr_get_pvno
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: execute_HDR_set_get_pvno_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_cmp_hdr_set_pvno
    - ossl_cmp_hdr_get_pvno
    linkageType: ''
    returnType: int
    signature: int execute_HDR_set_get_pvno_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:62,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: test_HDR_set_get_pvno
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_set_get_pvno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - rd
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: X509_NAME_ADD
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_NAME_ADD(n, rd, s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:75,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:78,1
    - Dst: X509_NAME_ADD
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:81,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:82,1
    - Dst: OSSL_CMP_CTX_set1_subjectName
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:82,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:85,1
    - Dst: ossl_cmp_hdr_init
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:85,1
    - Dst: ossl_cmp_hdr_get0_senderNonce
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:89,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:89,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 8
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: execute_HDR_get0_senderNonce_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - X509_NAME_free
    - ossl_cmp_hdr_get0_senderNonce
    - TEST_int_eq
    - ossl_cmp_hdr_init
    - ASN1_OCTET_STRING_cmp
    - TEST_ptr
    - X509_NAME_ADD
    - OSSL_CMP_CTX_set1_subjectName
    linkageType: ''
    returnType: int
    signature: int execute_HDR_get0_senderNonce_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:102,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: test_HDR_get0_senderNonce
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_get0_senderNonce(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:111,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:113,1
    - Dst: X509_NAME_ADD
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:116,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:117,1
    - Dst: ossl_cmp_hdr_set1_sender
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:117,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:120,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:123,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:123,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: execute_HDR_set1_sender_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - X509_NAME_free
    - TEST_int_eq
    - ossl_cmp_hdr_set1_sender
    - TEST_ptr
    - X509_NAME_cmp
    - X509_NAME_ADD
    linkageType: ''
    returnType: int
    signature: int execute_HDR_set1_sender_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:136,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: test_HDR_set1_sender
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_set1_sender(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:145,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:147,1
    - Dst: X509_NAME_ADD
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:150,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:151,1
    - Dst: ossl_cmp_hdr_set1_recipient
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:151,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:154,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:157,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:157,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 166
    functionName: execute_HDR_set1_recipient_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - X509_NAME_free
    - TEST_int_eq
    - ossl_cmp_hdr_set1_recipient
    - TEST_ptr
    - X509_NAME_cmp
    - X509_NAME_ADD
    linkageType: ''
    returnType: int
    signature: int execute_HDR_set1_recipient_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:170,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: test_HDR_set1_recipient
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_set1_recipient(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:181,1
    - Dst: gmtime
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:187,1
    - Dst: mktime
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:190,1
    - Dst: ossl_cmp_hdr_update_messageTime
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:192,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:192,1
    - Dst: mktime
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:195,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:197,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:199,1
    - Dst: gmtime
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:200,1
    - Dst: mktime
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:201,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: execute_HDR_update_messageTime_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - gmtime
    - time
    - ossl_cmp_hdr_update_messageTime
    - TEST_time_t_le
    - ASN1_TIME_to_tm
    - mktime
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int execute_HDR_update_messageTime_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:208,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: test_HDR_update_messageTime
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_update_messageTime(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:216,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:219,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:222,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:222,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:225,1
    - Dst: ossl_cmp_hdr_set1_senderKID
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:225,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:227,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:227,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:232,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 234
    functionName: execute_HDR_set1_senderKID_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_hdr_set1_senderKID
    - ASN1_OCTET_STRING_free
    - TEST_int_eq
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_cmp
    - ASN1_OCTET_STRING_new
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int execute_HDR_set1_senderKID_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:238,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: test_HDR_set1_senderKID
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_set1_senderKID(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:246,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:248,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:251,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:254,1
    - Dst: ossl_cmp_hdr_push0_freeText
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:254,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:257,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:257,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: execute_HDR_push0_freeText_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_hdr_push0_freeText
    - sk_ASN1_UTF8STRING_value
    - ASN1_UTF8STRING_new
    - TEST_int_eq
    - TEST_ptr
    - TEST_true
    - ASN1_STRING_set
    - ASN1_UTF8STRING_free
    linkageType: ''
    returnType: int
    signature: int execute_HDR_push0_freeText_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:269,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: test_HDR_push0_freeText
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_push0_freeText(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_UTF8STRING_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:277,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:281,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:284,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:287,1
    - Dst: ossl_cmp_hdr_push1_freeText
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:287,1
    - Dst: sk_ASN1_UTF8STRING_value
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:290,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:291,1
    - Dst: ASN1_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:291,1
    - Dst: ASN1_UTF8STRING_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: execute_HDR_push1_freeText_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - sk_ASN1_UTF8STRING_value
    - ASN1_STRING_cmp
    - ASN1_UTF8STRING_new
    - TEST_int_eq
    - ASN1_UTF8STRING_free
    - TEST_ptr
    - ASN1_STRING_set
    - ossl_cmp_hdr_push1_freeText
    linkageType: ''
    returnType: int
    signature: int execute_HDR_push1_freeText_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:303,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: test_HDR_push1_freeText
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_push1_freeText(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_CMP_ITAV_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:312,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:314,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:317,1
    - Dst: ossl_cmp_hdr_generalInfo_push0_item
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:317,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:321,1
    - Dst: sk_OSSL_CMP_ITAV_value
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 326
    functionName: execute_HDR_generalInfo_push0_item_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - ossl_cmp_hdr_generalInfo_push0_item
    - TEST_int_eq
    - sk_OSSL_CMP_ITAV_value
    - TEST_ptr
    - TEST_true
    - OSSL_CMP_ITAV_new
    linkageType: ''
    returnType: int
    signature: int execute_HDR_generalInfo_push0_item_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:330,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: test_HDR_generalInfo_push0_item
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_generalInfo_push0_item(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:342,1
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:343,1
    - Dst: ASN1_TYPE_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:344,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:348,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:352,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:352,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:353,1
    - Dst: ASN1_TYPE_set
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:357,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:358,1
    - Dst: OSSL_CMP_ITAV_create
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:358,1
    - Dst: OBJ_txt2obj
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:358,1
    - Dst: ASN1_TYPE_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:359,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:362,1
    - Dst: OSSL_CMP_ITAV_push0_stack_item
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:362,1
    - Dst: OSSL_CMP_ITAV_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:363,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:367,1
    - Dst: ossl_cmp_hdr_generalInfo_push1_items
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:367,1
    - Dst: sk_OSSL_CMP_ITAV_value
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:371,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:372,1
    - Dst: OSSL_CMP_ITAV_get0_type
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:372,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:373,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:373,1
    - Dst: OSSL_CMP_ITAV_get0_value
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:376,1
    - Dst: sk_OSSL_CMP_ITAV_value
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:376,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:377,1
    - Dst: ASN1_TYPE_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:377,1
    - Dst: sk_OSSL_CMP_ITAV_pop_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:383,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 336
    functionDepth: 7
    functionLinenumber: 336
    functionLinenumberEnd: 385
    functionName: execute_HDR_generalInfo_push1_items_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_ITAV_get0_type
    - TEST_int_eq
    - ASN1_TYPE_set
    - ASN1_TYPE_free
    - ossl_cmp_hdr_generalInfo_push1_items
    - OSSL_CMP_ITAV_create
    - ASN1_INTEGER_free
    - OBJ_txt2obj
    - sk_OSSL_CMP_ITAV_value
    - OSSL_CMP_ITAV_free
    - ASN1_INTEGER_new
    - memcmp
    - TEST_true
    - ASN1_INTEGER_set
    - OBJ_obj2txt
    - STACK_OF
    - OSSL_CMP_ITAV_get0_value
    - TEST_ptr
    - OSSL_CMP_ITAV_push0_stack_item
    - ASN1_TYPE_new
    - sk_OSSL_CMP_ITAV_pop_free
    - ASN1_TYPE_cmp
    linkageType: ''
    returnType: int
    signature: int execute_HDR_generalInfo_push1_items_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:389,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: test_HDR_generalInfo_push1_items
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_generalInfo_push1_items(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:399,1
    - Dst: ossl_cmp_hdr_has_implicitConfirm
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:399,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:400,1
    - Dst: ossl_cmp_hdr_set_implicitConfirm
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:400,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:401,1
    - Dst: ossl_cmp_hdr_has_implicitConfirm
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: execute_HDR_set_and_check_implicitConfirm_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - ossl_cmp_hdr_has_implicitConfirm
    - TEST_false
    - ossl_cmp_hdr_set_implicitConfirm
    linkageType: ''
    returnType: int
    signature: "int execute_HDR_set_and_check_implicitConfirm_test(CMP_HDR_TEST_FIXTURE\n
      \                                              * fixture)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:406,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: test_HDR_set_and_check_implicit_confirm
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_HDR_set_and_check_implicit_confirm(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:417,1
    - Dst: ossl_cmp_hdr_init
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:418,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:423,1
    - Dst: ossl_cmp_hdr_get_pvno
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:423,1
    - Dst: ossl_cmp_hdr_get0_senderNonce
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:426,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:427,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:427,1
    - Dst: OSSL_CMP_HDR_get0_transactionID
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:430,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:431,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:431,1
    - Dst: OSSL_CMP_HDR_get0_recipNonce
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:435,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:438,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:439,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_HDR_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 412
    functionDepth: 8
    functionLinenumber: 412
    functionLinenumberEnd: 444
    functionName: execute_HDR_init_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - OSSL_CMP_HDR_get0_recipNonce
    - ossl_cmp_hdr_get0_senderNonce
    - TEST_int_eq
    - ossl_cmp_hdr_init
    - ossl_cmp_hdr_get_pvno
    - ASN1_OCTET_STRING_cmp
    - OSSL_CMP_HDR_get0_transactionID
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int execute_HDR_init_test(CMP_HDR_TEST_FIXTURE *fixture)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:450,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:453,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:454,1
    - Dst: OSSL_CMP_CTX_set1_referenceValue
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:454,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:456,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 446
    functionDepth: 6
    functionLinenumber: 446
    functionLinenumberEnd: 461
    functionName: test_HDR_init_with_ref
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - TEST_int_eq
    - SETUP_TEST_FIXTURE
    - OSSL_CMP_CTX_set1_referenceValue
    - RAND_bytes
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_HDR_init_with_ref(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:467,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:469,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:469,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:470,1
    - Dst: X509_NAME_ADD
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:470,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:471,1
    - Dst: OSSL_CMP_CTX_set1_subjectName
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:471,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:473,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:476,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 479
    functionName: test_HDR_init_with_subject
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - EXECUTE_TEST
    - tear_down
    - X509_NAME_free
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    - X509_NAME_ADD
    - OSSL_CMP_CTX_set1_subjectName
    linkageType: ''
    returnType: int
    signature: int test_HDR_init_with_subject(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:489,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:491,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:492,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:493,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:494,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:495,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:496,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:497,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:499,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:500,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:501,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:502,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:506,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_hdr_test.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 487
    functionDepth: 6
    functionLinenumber: 487
    functionLinenumberEnd: 509
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_hdr_test.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:26,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:27,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:30,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:31,1
    - Dst: EVP_PKEY_CTX_set_tls1_prf_md
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:34,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:34,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:35,1
    - Dst: EVP_PKEY_CTX_set1_tls1_prf_secret
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:38,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:40,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:44,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:46,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:50,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:52,1
    - Dst: EVP_PKEY_CTX_add1_tls1_prf_seed
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:55,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:57,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:61,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:62,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:71,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:77,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 79
    functionName: test_kdf_tls1_prf
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - TEST_mem_eq
    - EVP_PKEY_CTX_set_tls1_prf_md
    - EVP_sha256
    - TEST_error
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set1_tls1_prf_secret
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_add1_tls1_prf_seed
    linkageType: ''
    returnType: int
    signature: int test_kdf_tls1_prf(int index)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:88,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:89,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:92,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:93,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:96,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:96,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:97,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:100,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:102,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:105,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:107,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:111,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:113,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:117,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:119,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:122,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:124,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:128,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:129,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:137,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:143,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 145
    functionName: test_kdf_hkdf
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_set_hkdf_md
    - TEST_mem_eq
    - EVP_sha256
    - TEST_error
    - EVP_PKEY_CTX_add1_hkdf_info
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_kdf_hkdf(int index)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:155,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:156,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:159,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:160,1
    - Dst: EVP_PKEY_CTX_set1_pbe_pass
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:163,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:164,1
    - Dst: EVP_PKEY_CTX_set1_scrypt_salt
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:167,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:168,1
    - Dst: EVP_PKEY_CTX_set_scrypt_N
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:171,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:172,1
    - Dst: EVP_PKEY_CTX_set_scrypt_r
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:175,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:176,1
    - Dst: EVP_PKEY_CTX_set_scrypt_p
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:179,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:180,1
    - Dst: EVP_PKEY_CTX_set_scrypt_maxmem_bytes
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:183,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:184,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:187,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:188,1
    - Dst: EVP_PKEY_CTX_set_scrypt_maxmem_bytes
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:191,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:192,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:195,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:196,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:211,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:217,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 219
    functionName: test_kdf_scrypt
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - TEST_mem_eq
    - EVP_PKEY_CTX_set1_pbe_pass
    - EVP_PKEY_CTX_set_scrypt_p
    - EVP_PKEY_CTX_set_scrypt_r
    - EVP_PKEY_CTX_set_scrypt_maxmem_bytes
    - EVP_PKEY_CTX_set_scrypt_N
    - TEST_error
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set1_scrypt_salt
    linkageType: ''
    returnType: int
    signature: int test_kdf_scrypt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fips_provider_version_ge
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:226,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:229,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:230,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 235
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_kdf_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - fips_provider_version_ge
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/rsa_complex.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:253,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:253,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:256,1
    - Dst: d2i_KeyParams_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:256,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:257,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:257,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:257,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:259,1
    - Dst: i2d_KeyParams_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:259,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:261,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:261,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:262,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:266,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:267,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:268,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 245
    functionDepth: 7
    functionLinenumber: 245
    functionLinenumberEnd: 271
    functionName: params_bio_test
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BIO_new
    - d2i_KeyParams_bio
    - BIO_new_mem_buf
    - BIO_free
    - EVP_PKEY_free
    - i2d_KeyParams_bio
    - BIO_get_mem_data
    - TEST_ptr
    - TEST_int_gt
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int params_bio_test(int id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:282,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:284,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:284,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:287,1
    - Dst: d2i_KeyParams_bio
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:287,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:291,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:293,1
    - Dst: EVP_PKEY_set1_encoded_public_key
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:293,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:297,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:300,1
    - Dst: EVP_PKEY_set1_encoded_public_key
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:300,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:306,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:309,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 273
    functionDepth: 11
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: set_enc_pubkey_test
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c
    functionUses: 0
    functionsReached:
    - d2i_KeyParams_bio
    - BIO_new_mem_buf
    - BIO_free
    - ERR_set_mark
    - EVP_PKEY_free
    - TEST_info
    - TEST_skip
    - EVP_PKEY_set1_encoded_public_key
    - ERR_pop_to_mark
    - TEST_int_le
    - TEST_ptr
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int set_enc_pubkey_test(int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:318,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:320,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:320,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:321,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_pkey_dparams_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:64,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/ct_test.c:64,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:68,1
    - Dst: CTLOG_STORE_new
      Src: /src/openssl-3.0.15/test/ct_test.c:68,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ct_test.c:69,1
    - Dst: CTLOG_STORE_load_default_file
      Src: /src/openssl-3.0.15/test/ct_test.c:70,1
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-3.0.15/test/ct_test.c:76,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ct_test.c:77,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ct_test.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 1
    functionsReached:
    - CTLOG_STORE_new
    - TEST_int_eq
    - OPENSSL_zalloc
    - CTLOG_STORE_free
    - OPENSSL_free
    - TEST_error
    - CTLOG_STORE_load_default_file
    - TEST_ptr
    linkageType: ''
    returnType: CT_TEST_FIXTURE
    signature: CT_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTLOG_STORE_free
      Src: /src/openssl-3.0.15/test/ct_test.c:85,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-3.0.15/test/ct_test.c:86,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ct_test.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CT_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 38
    functionsReached:
    - OPENSSL_free
    - SCT_LIST_free
    - CTLOG_STORE_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CT_TEST_FIXTURE *fixture)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/ct_test.c:94,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/ct_test.c:97,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/ct_test.c:100,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/ct_test.c:101,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ct_test.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 106
    functionName: load_pem_cert
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - PEM_read_bio_X509
    - BIO_free
    - OPENSSL_free
    - BIO_new_file
    linkageType: ''
    returnType: X509
    signature: X509 *load_pem_cert(const char *dir, const char *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/ct_test.c:112,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/ct_test.c:115,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/ct_test.c:118,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/ct_test.c:119,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ct_test.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dir
    - file
    - buffer
    - buffer_length
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: read_text_file
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - BIO_read
    - BIO_free
    - OPENSSL_free
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: "int read_text_file(const char *dir, const char *file,\n                          char
      *buffer, int buffer_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:159,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/ct_test.c:159,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/ct_test.c:159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ct_test.c:160,1
    - Dst: X509V3_EXT_print
      Src: /src/openssl-3.0.15/test/ct_test.c:160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ct_test.c:165,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/ct_test.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ct_test.c:169,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/ct_test.c:169,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/ct_test.c:172,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/ct_test.c:173,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/ct_test.c:179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - extension
    - expected_output
    argTypes:
    - X509_EXTENSION*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 181
    functionName: compare_extension_printout
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - X509V3_EXT_print
    - BIO_new
    - BIO_free
    - BIO_write
    - TEST_str_eq
    - BIO_get_mem_data
    - TEST_ptr
    - TEST_true
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: "int compare_extension_printout(X509_EXTENSION *extension,\n                                      const
      char *expected_output)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/ct_test.c:228,1
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openssl-3.0.15/test/ct_test.c:234,1
    - Dst: read_text_file
      Src: /src/openssl-3.0.15/test/ct_test.c:237,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/ct_test.c:241,1
    - Dst: CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
      Src: /src/openssl-3.0.15/test/ct_test.c:246,1
    - Dst: CT_POLICY_EVAL_CTX_set_time
      Src: /src/openssl-3.0.15/test/ct_test.c:249,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:256,1
    - Dst: load_pem_cert
      Src: /src/openssl-3.0.15/test/ct_test.c:256,1
    - Dst: CT_POLICY_EVAL_CTX_set1_cert
      Src: /src/openssl-3.0.15/test/ct_test.c:260,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:263,1
    - Dst: load_pem_cert
      Src: /src/openssl-3.0.15/test/ct_test.c:263,1
    - Dst: CT_POLICY_EVAL_CTX_set1_issuer
      Src: /src/openssl-3.0.15/test/ct_test.c:266,1
    - Dst: X509_get_ext_by_NID
      Src: /src/openssl-3.0.15/test/ct_test.c:270,1
    - Dst: X509_get_ext
      Src: /src/openssl-3.0.15/test/ct_test.c:271,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:273,1
    - Dst: compare_extension_printout
      Src: /src/openssl-3.0.15/test/ct_test.c:277,1
    - Dst: X509V3_EXT_d2i
      Src: /src/openssl-3.0.15/test/ct_test.c:281,1
    - Dst: sk_SCT_num
      Src: /src/openssl-3.0.15/test/ct_test.c:282,1
    - Dst: sk_SCT_value
      Src: /src/openssl-3.0.15/test/ct_test.c:283,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ct_test.c:285,1
    - Dst: SCT_get_source
      Src: /src/openssl-3.0.15/test/ct_test.c:285,1
    - Dst: assert_validity
      Src: /src/openssl-3.0.15/test/ct_test.c:292,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/ct_test.c:295,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:303,1
    - Dst: o2i_SCT_LIST
      Src: /src/openssl-3.0.15/test/ct_test.c:303,1
    - Dst: assert_validity
      Src: /src/openssl-3.0.15/test/ct_test.c:307,1
    - Dst: compare_sct_list_printout
      Src: /src/openssl-3.0.15/test/ct_test.c:312,1
    - Dst: i2o_SCT_LIST
      Src: /src/openssl-3.0.15/test/ct_test.c:316,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ct_test.c:317,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/ct_test.c:324,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/ct_test.c:325,1
    - Dst: SCT_LIST_free
      Src: /src/openssl-3.0.15/test/ct_test.c:326,1
    - Dst: SCT_free
      Src: /src/openssl-3.0.15/test/ct_test.c:327,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openssl-3.0.15/test/ct_test.c:328,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/ct_test.c:329,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 77
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CT_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 224
    functionDepth: 7
    functionLinenumber: 224
    functionLinenumberEnd: 331
    functionName: execute_cert_test
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_ptr_null
    - X509_get_ext
    - X509_free
    - TEST_int_eq
    - sk_SCT_value
    - CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE
    - read_text_file
    - CT_POLICY_EVAL_CTX_set1_issuer
    - compare_sct_list_printout
    - sk_SCT_num
    - CT_POLICY_EVAL_CTX_set_time
    - o2i_SCT_LIST
    - SCT_free
    - TEST_int_ge
    - compare_extension_printout
    - OPENSSL_free
    - STACK_OF
    - X509V3_EXT_d2i
    - SCT_get_source
    - TEST_ptr
    - CT_POLICY_EVAL_CTX_free
    - SCT_LIST_free
    - assert_validity
    - load_pem_cert
    - i2o_SCT_LIST
    - X509_get_ext_by_NID
    - CT_POLICY_EVAL_CTX_new
    - CT_POLICY_EVAL_CTX_set1_cert
    linkageType: ''
    returnType: int
    signature: int execute_cert_test(CT_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: SETUP_CT_TEST_FIXTURE
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_CT_TEST_FIXTURE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: EXECUTE_CT_TEST
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_CT_TEST()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:338,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 345
    functionName: test_no_scts_in_certificate
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_no_scts_in_certificate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:349,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: test_one_sct_in_certificate
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_one_sct_in_certificate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:362,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 371
    functionName: test_multiple_scts_in_certificate
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_multiple_scts_in_certificate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:375,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: test_verify_one_sct
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_verify_one_sct(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:387,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: test_verify_multiple_scts
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_verify_multiple_scts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:399,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: test_verify_fails_for_future_sct
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_verify_fails_for_future_sct(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:431,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 438
    functionName: test_decode_tls_sct
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - SETUP_CT_TEST_FIXTURE
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_decode_tls_sct(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_CT_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/ct_test.c:449,1
    - Dst: sk_SCT_new_null
      Src: /src/openssl-3.0.15/test/ct_test.c:451,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/ct_test.c:454,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ct_test.c:458,1
    - Dst: SCT_new_from_base64
      Src: /src/openssl-3.0.15/test/ct_test.c:458,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/ct_test.c:462,1
    - Dst: sk_SCT_push
      Src: /src/openssl-3.0.15/test/ct_test.c:466,1
    - Dst: EXECUTE_CT_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 471
    functionName: test_encode_tls_sct
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - tear_down
    - sk_SCT_new_null
    - sk_SCT_push
    - TEST_ptr
    - SETUP_CT_TEST_FIXTURE
    - SCT_new_from_base64
    - EXECUTE_CT_TEST
    linkageType: ''
    returnType: int
    signature: int test_encode_tls_sct(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CT_POLICY_EVAL_CTX_new
      Src: /src/openssl-3.0.15/test/ct_test.c:480,1
    - Dst: CT_POLICY_EVAL_CTX_get_time
      Src: /src/openssl-3.0.15/test/ct_test.c:482,1
    - Dst: TEST_time_t_le
      Src: /src/openssl-3.0.15/test/ct_test.c:485,1
    - Dst: abs
      Src: /src/openssl-3.0.15/test/ct_test.c:485,1
    - Dst: difftime
      Src: /src/openssl-3.0.15/test/ct_test.c:485,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/ct_test.c:485,1
    - Dst: CT_POLICY_EVAL_CTX_free
      Src: /src/openssl-3.0.15/test/ct_test.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 493
    functionName: test_default_ct_policy_eval_ctx_time_is_now
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - CT_POLICY_EVAL_CTX_get_time
    - time
    - TEST_time_t_le
    - abs
    - difftime
    - CT_POLICY_EVAL_CTX_new
    - CT_POLICY_EVAL_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_default_ct_policy_eval_ctx_time_is_now(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ct_test.c:503,1
    - Dst: CTLOG_new_from_base64
      Src: /src/openssl-3.0.15/test/ct_test.c:503,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ct_test.c:504,1
    - Dst: CTLOG_new_from_base64
      Src: /src/openssl-3.0.15/test/ct_test.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 495
    functionDepth: 8
    functionLinenumber: 495
    functionLinenumberEnd: 507
    functionName: test_ctlog_from_base64
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - CTLOG_new_from_base64
    linkageType: ''
    returnType: int
    signature: int test_ctlog_from_base64(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/openssl-3.0.15/test/ct_test.c:513,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/test/ct_test.c:515,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:518,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:519,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:520,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:521,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:522,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:523,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:524,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:525,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:526,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ct_test.c:527,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/ct_test.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 532
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ct_test.c
    functionUses: 0
    functionsReached:
    - printf
    - ADD_TEST
    - getenv
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_blowfish.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: EXT_ENTRY
    functionSourceFile: /src/openssl-3.0.15/test/ext_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_ENTRY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: EXT_EXCEPTION
    functionSourceFile: /src/openssl-3.0.15/test/ext_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_EXCEPTION(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: EXT_END
    functionSourceFile: /src/openssl-3.0.15/test/ext_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_END(name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:79,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:85,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:87,1
    - Dst: ossl_get_extension_type
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:90,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:91,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: test_extension_list
    functionSourceFile: /src/openssl-3.0.15/test/ext_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_eq
    - ossl_get_extension_type
    - TEST_error
    - OSSL_NELEM
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_extension_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ext_internal_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ext_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/test/rc4test.c:69,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/rc4test.c:70,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/test/rc4test.c:71,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc4test.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: test_rc4_encrypt
    functionSourceFile: /src/openssl-3.0.15/test/rc4test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memset
    - RC4_set_key
    - RC4
    linkageType: ''
    returnType: int
    signature: int test_rc4_encrypt(const int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/test/rc4test.c:80,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/rc4test.c:81,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/test/rc4test.c:82,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc4test.c:83,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/rc4test.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: test_rc4_end_processing
    functionSourceFile: /src/openssl-3.0.15/test/rc4test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - RC4_set_key
    - TEST_uchar_eq
    - RC4
    - memset
    linkageType: ''
    returnType: int
    signature: int test_rc4_end_processing(const int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/test/rc4test.c:93,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/rc4test.c:94,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/test/rc4test.c:95,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/test/rc4test.c:96,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc4test.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: test_rc4_multi_call
    functionSourceFile: /src/openssl-3.0.15/test/rc4test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memset
    - RC4_set_key
    - RC4
    linkageType: ''
    returnType: int
    signature: int test_rc4_multi_call(const int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_set_key
      Src: /src/openssl-3.0.15/test/rc4test.c:112,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/rc4test.c:113,1
    - Dst: SHA1_Init
      Src: /src/openssl-3.0.15/test/rc4test.c:114,1
    - Dst: RC4
      Src: /src/openssl-3.0.15/test/rc4test.c:116,1
    - Dst: SHA1_Update
      Src: /src/openssl-3.0.15/test/rc4test.c:117,1
    - Dst: SHA1_Final
      Src: /src/openssl-3.0.15/test/rc4test.c:119,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/rc4test.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: test_rc_bulk
    functionSourceFile: /src/openssl-3.0.15/test/rc4test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - RC4_set_key
    - SHA1_Update
    - SHA1_Init
    - RC4
    - memset
    - SHA1_Final
    linkageType: ''
    returnType: int
    signature: int test_rc_bulk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rc4test.c:128,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/rc4test.c:128,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rc4test.c:129,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/rc4test.c:130,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/rc4test.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/rc4test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_sm4_set_key
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:57,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:58,1
    - Dst: ossl_sm4_encrypt
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:60,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:61,1
    - Dst: ossl_sm4_encrypt
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:65,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:67,1
    - Dst: ossl_sm4_decrypt
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:71,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 77
    functionName: test_sm4_ecb
    functionSourceFile: /src/openssl-3.0.15/test/sm4_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - ossl_sm4_decrypt
    - memcpy
    - ossl_sm4_set_key
    - ossl_sm4_encrypt
    linkageType: ''
    returnType: int
    signature: int test_sm4_ecb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sm4_internal_test.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sm4_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_rc4.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_snprintf
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:30,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ssl
    - hint
    - ident
    - max_ident_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: clnt_psk_callback
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - BIO_snprintf
    - memset
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int clnt_psk_callback(SSL *ssl, const char *hint,\n                                      char
      *ident, unsigned int max_ident_len,\n                                      unsigned
      char *psk,\n                                      unsigned int max_psk_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: srvr_psk_callback
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int srvr_psk_callback(SSL *ssl, const char *identity,\n                                      unsigned
      char *psk,\n                                      unsigned int max_psk_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:61,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:61,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:68,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:69,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:69,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:70,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:70,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:71,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:76,1
    - Dst: SSL_set_mtu
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:81,1
    - Dst: DTLS_get_data_mtu
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:82,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:84,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:87,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:88,1
    - Dst: SSL_set_mtu
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:94,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:103,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:103,1
    - Dst: BIO_read
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:105,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:107,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:112,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:117,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:122,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:128,1
    - Dst: SSL_READ_ETM
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:136,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:139,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:140,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - cs
    - no_etm
    argTypes:
    - SSL_CTX*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 142
    functionName: mtu_test
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - SSL_get_rbio
    - SSL_set_options
    - SSL_READ_ETM
    - create_ssl_objects
    - TEST_error
    - memset
    - TEST_true
    - DTLS_get_data_mtu
    - BIO_read
    - SSL_write
    - TEST_info
    - SSL_set_mtu
    - TEST_ptr
    - TEST_size_t_ne
    - SSL_set_cipher_list
    - create_ssl_connection
    - TEST_false
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int mtu_test(SSL_CTX *ctx, const char *cs, int no_etm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:147,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:150,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:150,1
    - Dst: DTLS_method
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:150,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:153,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:154,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:162,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:162,1
    - Dst: SSL_CTX_get_ciphers
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:165,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:166,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:167,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:168,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:171,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:174,1
    - Dst: mtu_test
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:174,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:176,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:181,1
    - Dst: mtu_test
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:181,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:183,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 189
    functionName: run_mtu_tests
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_value
    - SSL_CIPHER_get_name
    - SSL_CTX_free
    - SSL_CTX_new
    - strncmp
    - DTLS_method
    - STACK_OF
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_psk_client_callback
    - SSL_CTX_get_ciphers
    - mtu_test
    - TEST_ptr
    - TEST_info
    - TEST_true
    - sk_SSL_CIPHER_num
    - TEST_int_gt
    - SSL_CTX_set_psk_server_callback
    - SSL_CTX_set_security_level
    linkageType: ''
    returnType: int
    signature: int run_mtu_tests(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:197,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:197,1
    - Dst: DTLS_method
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:197,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:200,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:204,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:208,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:208,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:213,1
    - Dst: DTLS_set_link_mtu
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:213,1
    - Dst: SSL_set_tlsext_max_fragment_length
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:216,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:219,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:219,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:226,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:227,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 230
    functionName: test_server_mtu_larger_than_max_fragment_length
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - SSL_set_options
    - SSL_set_tlsext_max_fragment_length
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_new
    - DTLS_method
    - DTLS_set_link_mtu
    - SSL_CTX_set_psk_client_callback
    - SSL_CTX_set_dh_auto
    - SSL_free
    - TEST_ptr
    - TEST_true
    - SSL_CTX_set_psk_server_callback
    linkageType: ''
    returnType: int
    signature: int test_server_mtu_larger_than_max_fragment_length(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:234,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-3.0.15/test/dtls_mtu_test.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dtls_mtu_test.c
    functionUses: 5
    functionsReached:
    - bio_s_mempacket_test_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - test_function
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: ADD_TEST
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TEST(test_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test_function
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: ADD_ALL_TESTS
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ALL_TESTS(test_function, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - test_function
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ADD_ALL_TESTS_NOSUBTEST
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ALL_TESTS_NOSUBTEST(test_function, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TEST_FIXTURE_TYPE
    - ','
    - set_up
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: SETUP_TEST_FIXTURE
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETUP_TEST_FIXTURE(TEST_FIXTURE_TYPE, set_up)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - execute_func
    - ','
    - tear_down
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: EXECUTE_TEST
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXECUTE_TEST(execute_func, tear_down)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: testutil_stringify_helper
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testutil_stringify_helper(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: testutil_stringify
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testutil_stringify(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - usage
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE(usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - usage_str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: OPT_TEST_DECLARE_USAGE
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPT_TEST_DECLARE_USAGE(usage_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: PRINTF_FORMAT
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTF_FORMAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - opname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: DECLARE_COMPARISON
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_COMPARISON(type, name, opname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: DECLARE_COMPARISONS
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_COMPARISONS(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: TEST_int_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 221
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: TEST_int_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: TEST_int_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: TEST_int_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: TEST_int_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 86
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: TEST_int_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_int_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: TEST_uint_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: TEST_uint_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: TEST_uint_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: TEST_uint_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: TEST_uint_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: TEST_uint_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uint_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: TEST_char_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: TEST_char_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: TEST_char_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: TEST_char_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: TEST_char_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: TEST_char_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_char_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: TEST_uchar_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: TEST_uchar_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: TEST_uchar_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: TEST_uchar_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: TEST_uchar_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: TEST_uchar_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_uchar_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: TEST_long_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: TEST_long_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: TEST_long_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 461
    functionName: TEST_long_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: TEST_long_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: TEST_long_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_long_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: TEST_ulong_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: TEST_ulong_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: TEST_ulong_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: TEST_ulong_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: TEST_ulong_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: TEST_ulong_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ulong_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: TEST_size_t_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: TEST_size_t_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    functionName: TEST_size_t_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: TEST_size_t_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: TEST_size_t_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: TEST_size_t_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_size_t_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: TEST_double_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_double_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: TEST_double_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_double_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: TEST_double_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_double_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: TEST_double_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_double_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: TEST_double_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_double_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: TEST_double_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_double_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: TEST_time_t_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: TEST_time_t_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    functionName: TEST_time_t_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: TEST_time_t_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: TEST_time_t_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: TEST_time_t_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_time_t_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: TEST_ptr_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 494
    functionName: TEST_ptr_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: TEST_ptr
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 430
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: TEST_ptr_null
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ptr_null(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: TEST_str_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_str_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: TEST_str_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_str_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: TEST_strn_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_strn_eq(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: TEST_strn_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_strn_ne(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: TEST_strn2_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_strn2_eq(a, m, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: TEST_strn2_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_strn2_ne(a, m, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: TEST_mem_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 116
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_mem_eq(a, m, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: TEST_mem_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_mem_ne(a, m, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: TEST_true
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 367
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_true(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: TEST_false
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 110
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_false(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: TEST_BN_eq
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: TEST_BN_ne
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ne(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: TEST_BN_lt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_lt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: TEST_BN_gt
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_gt(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: TEST_BN_le
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_le(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: TEST_BN_ge
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ge(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: TEST_BN_eq_zero
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: TEST_BN_ne_zero
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ne_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: TEST_BN_lt_zero
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_lt_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: TEST_BN_gt_zero
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_gt_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: TEST_BN_le_zero
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_le_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: TEST_BN_ge_zero
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_ge_zero(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: TEST_BN_eq_one
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq_one(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: TEST_BN_eq_word
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_eq_word(a, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: TEST_BN_abs_eq_word
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_abs_eq_word(a, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: TEST_BN_odd
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_odd(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: TEST_BN_even
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BN_even(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: TEST_error
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_error(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: TEST_info
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_info(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 540
    functionName: TEST_skip
    functionSourceFile: /src/openssl-3.0.15/test/testutil.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_skip(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: CTS128_TEST_VECTOR
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTS128_TEST_VECTOR(len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: cts128_encrypt_key_schedule
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - AES_set_encrypt_key
    linkageType: ''
    returnType: AES_KEY
    signature: AES_KEY *cts128_encrypt_key_schedule(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_decrypt_key
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: cts128_decrypt_key_schedule
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - AES_set_decrypt_key
    linkageType: ''
    returnType: AES_KEY
    signature: AES_KEY *cts128_decrypt_key_schedule(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - in
    - out
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: last_blocks_correction
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t last_blocks_correction(const unsigned char *in,\n                                     unsigned
      char *out, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:173,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:175,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - in
    - out
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: last_blocks_correction_nist
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t last_blocks_correction_nist(const unsigned char *in,\n                                          unsigned
      char *out, size_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cts128_encrypt_key_schedule
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:190,1
    - Dst: cts128_decrypt_key_schedule
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:191,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:197,1
    - Dst: CTS128_FIXTURE*::last_blocks_correction
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:199,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:202,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:203,1
    - Dst: CTS128_FIXTURE*::encrypt_block
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:203,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:206,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:207,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:211,1
    - Dst: CTS128_FIXTURE*::decrypt_block
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:212,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:215,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:216,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:217,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:221,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:222,1
    - Dst: CTS128_FIXTURE*::encrypt_stream
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:222,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:226,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:227,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:231,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:232,1
    - Dst: CTS128_FIXTURE*::decrypt_stream
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:232,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:236,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:237,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 2
    argNames:
    - fixture
    - num
    argTypes:
    - CTS128_FIXTURE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 241
    functionName: execute_cts128
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_true
    - CTS128_FIXTURE*::decrypt_block
    - cts128_decrypt_key_schedule
    - CTS128_FIXTURE*::encrypt_block
    - memcpy
    - CTS128_FIXTURE*::decrypt_stream
    - TEST_size_t_eq
    - TEST_info
    - cts128_encrypt_key_schedule
    - CTS128_FIXTURE*::last_blocks_correction
    - CTS128_FIXTURE*::encrypt_stream
    linkageType: ''
    returnType: int
    signature: int execute_cts128(const CTS128_FIXTURE *fixture, int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_cts128
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: test_aes_cts128
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - execute_cts128
    linkageType: ''
    returnType: int
    signature: int test_aes_cts128(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_cts128
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: test_aes_cts128_nist
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - execute_cts128
    linkageType: ''
    returnType: int
    signature: int test_aes_cts128_nist(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 814
    functionName: GCM128_TEST_VECTOR
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCM128_TEST_VECTOR(n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: AES_set_encrypt_key
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:864,1
    - Dst: CRYPTO_gcm128_init
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:866,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:867,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:868,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:870,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:872,1
    - Dst: CRYPTO_gcm128_encrypt
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:872,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:874,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:874,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:876,1
    - Dst: CRYPTO_gcm128_setiv
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:879,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:880,1
    - Dst: CRYPTO_gcm128_aad
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:882,1
    - Dst: CRYPTO_gcm128_decrypt
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:884,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:885,1
    - Dst: CRYPTO_gcm128_finish
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:885,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:887,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 891
    functionName: test_gcm128
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - CRYPTO_gcm128_finish
    - CRYPTO_gcm128_decrypt
    - TEST_int_ge
    - CRYPTO_gcm128_init
    - CRYPTO_gcm128_setiv
    - AES_set_encrypt_key
    - CRYPTO_gcm128_aad
    - TEST_false
    - memset
    - CRYPTO_gcm128_encrypt
    linkageType: ''
    returnType: int
    signature: int test_gcm128(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:895,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:895,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:896,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:896,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:897,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/modes_internal_test.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 899
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/modes_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - file
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: load_cert_from_file
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load_cert_from_file(file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:66,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:71,1
    - Dst: X509_STORE_add_lookup
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:75,1
    - Dst: X509_LOOKUP_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:75,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:78,1
    - Dst: load_certs_pem
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:81,1
    - Dst: load_cert_from_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:83,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:86,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:90,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:93,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:95,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:100,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:101,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:102,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:103,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 105
    functionName: test_alt_chains_cert_forgery
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - X509_STORE_new
    - X509_STORE_free
    - sk_X509_pop_free
    - X509_free
    - X509_STORE_CTX_init
    - X509_STORE_CTX_free
    - X509_LOOKUP_load_file
    - X509_STORE_CTX_new
    - X509_STORE_add_lookup
    - X509_STORE_CTX_get_error
    - STACK_OF
    - load_cert_from_file
    - X509_LOOKUP_file
    - load_certs_pem
    linkageType: ''
    returnType: int
    signature: int test_alt_chains_cert_forgery(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_from_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:114,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:118,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:122,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:123,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:124,1
    - Dst: X509_set0_distinguishing_id
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:128,1
    - Dst: X509_get0_distinguishing_id
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:130,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:131,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:132,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:132,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 139
    functionName: test_distinguishing_id
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_get0_distinguishing_id
    - ASN1_OCTET_STRING_free
    - X509_free
    - X509_set0_distinguishing_id
    - TEST_int_eq
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_cmp
    - ASN1_OCTET_STRING_new
    - strlen
    - load_cert_from_file
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_distinguishing_id(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:149,1
    - Dst: PEM_read_bio_X509_REQ
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:153,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:157,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:161,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:162,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:163,1
    - Dst: X509_REQ_set0_distinguishing_id
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:167,1
    - Dst: X509_REQ_get0_distinguishing_id
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:169,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:170,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:171,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:171,1
    - Dst: X509_REQ_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:176,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 179
    functionName: test_req_distinguishing_id
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - ASN1_OCTET_STRING_free
    - TEST_int_eq
    - ASN1_OCTET_STRING_set
    - BIO_free
    - X509_REQ_free
    - ASN1_OCTET_STRING_cmp
    - ASN1_OCTET_STRING_new
    - strlen
    - PEM_read_bio_X509_REQ
    - X509_REQ_set0_distinguishing_id
    - X509_REQ_get0_distinguishing_id
    - TEST_ptr
    - BIO_new_file
    linkageType: ''
    returnType: int
    signature: int test_req_distinguishing_id(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_from_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:183,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:184,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:184,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:185,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:188,1
    - Dst: X509_self_signed
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:192,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:193,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:193,1
    - Dst: X509_STORE_CTX_set0_trusted_stack
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:194,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:195,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:195,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:198,1
    - Dst: sk_X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:199,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - filename
    - use_trusted
    - expected
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 9
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: test_self_signed
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - X509_free
    - X509_STORE_CTX_init
    - TEST_int_eq
    - X509_STORE_CTX_free
    - sk_X509_push
    - X509_STORE_CTX_new
    - sk_X509_new_null
    - STACK_OF
    - X509_self_signed
    - X509_STORE_CTX_set0_trusted_stack
    - load_cert_from_file
    - TEST_true
    - sk_X509_free
    linkageType: ''
    returnType: int
    signature: int test_self_signed(const char *filename, int use_trusted, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_self_signed
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 10
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: test_self_signed_good
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - test_self_signed
    linkageType: ''
    returnType: int
    signature: int test_self_signed_good(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_self_signed
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 10
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: test_self_signed_bad
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - test_self_signed
    linkageType: ''
    returnType: int
    signature: int test_self_signed_bad(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_self_signed
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 10
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: test_self_signed_error
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - test_self_signed
    linkageType: ''
    returnType: int
    signature: int test_self_signed_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_self_signed
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 10
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: test_store_ctx
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - test_self_signed
    linkageType: ''
    returnType: int
    signature: int test_store_ctx(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: load_cert_from_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:227,1
    - Dst: load_cert_from_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:228,1
    - Dst: load_cert_from_file
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:229,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:230,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:230,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:231,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:231,1
    - Dst: X509_STORE_CTX_new
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:232,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:235,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:236,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:237,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:238,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:239,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:240,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:244,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:244,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:247,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:251,1
    - Dst: X509_STORE_CTX_init
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:251,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:254,1
    - Dst: X509_STORE_CTX_set_purpose
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:254,1
    - Dst: X509_STORE_CTX_set0_trusted_stack
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:262,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:264,1
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:264,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:269,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:270,1
    - Dst: X509_STORE_CTX_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:271,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:272,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:273,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:274,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - purpose
    - expected
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 225
    functionDepth: 9
    functionLinenumber: 225
    functionLinenumberEnd: 276
    functionName: do_test_purpose
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - sk_X509_pop_free
    - X509_free
    - X509_STORE_CTX_init
    - TEST_int_eq
    - X509_STORE_CTX_free
    - sk_X509_push
    - X509_STORE_CTX_new
    - sk_X509_new_null
    - STACK_OF
    - X509_STORE_CTX_set0_trusted_stack
    - load_cert_from_file
    - TEST_ptr
    - TEST_true
    - X509_STORE_CTX_set_purpose
    linkageType: ''
    returnType: int
    signature: int do_test_purpose(int purpose, int expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_purpose
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 10
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: test_purpose_ssl_client
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - do_test_purpose
    linkageType: ''
    returnType: int
    signature: int test_purpose_ssl_client(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_purpose
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 10
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: test_purpose_ssl_server
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - do_test_purpose
    linkageType: ''
    returnType: int
    signature: int test_purpose_ssl_server(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_purpose
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 10
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: test_purpose_any
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - do_test_purpose
    linkageType: ''
    returnType: int
    signature: int test_purpose_any(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:297,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:298,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:302,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:302,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:305,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:305,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:306,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:306,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:307,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:307,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:308,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:308,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:309,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:309,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:310,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:310,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:311,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:312,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:312,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:315,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:316,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:317,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:318,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:319,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:320,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:321,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:322,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:323,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:324,1
    - Dst: cleanup_tests
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:327,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 329
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - ADD_TEST
    - cleanup_tests
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:333,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:334,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:335,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:336,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:337,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:338,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:339,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/verify_extra_test.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 341
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/verify_extra_test.c
    functionUses: 6
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_core.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:210,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:216,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:224,1
    - Dst: OPENSSL_hexchar2int
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:225,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*[]
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 237
    functionName: multihexstr2buf
    functionSourceFile: /src/openssl-3.0.15/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - OPENSSL_free
    - strlen
    - OPENSSL_hexchar2int
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *multihexstr2buf(const char *str[3], size_t *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:245,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:246,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:247,1
    - Dst: multihexstr2buf
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:248,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:253,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:259,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:260,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:261,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:262,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:263,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:264,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:268,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:270,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:271,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - rec
    - recd
    - key
    - iv
    - ivlen
    - seq
    argTypes:
    - SSL3_RECORD*
    - RECORD_DATA*
    - unsigned char**
    - unsigned char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 274
    functionName: load_record
    functionSourceFile: /src/openssl-3.0.15/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - OPENSSL_malloc
    - OPENSSL_hexstr2buf
    - OPENSSL_free
    - multihexstr2buf
    linkageType: ''
    returnType: int
    signature: "int load_record(SSL3_RECORD *rec, RECORD_DATA *recd, unsigned char
      **key,\n                       unsigned char *iv, size_t ivlen, unsigned char
      *seq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: multihexstr2buf
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:283,1
    - Dst: multihexstr2buf
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:285,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:287,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:288,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:292,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - rec
    - recd
    - enc
    argTypes:
    - SSL3_RECORD*
    - RECORD_DATA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 300
    functionName: test_record
    functionSourceFile: /src/openssl-3.0.15/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_info
    - OPENSSL_free
    - TEST_ptr
    - multihexstr2buf
    linkageType: ''
    returnType: int
    signature: int test_record(SSL3_RECORD *rec, RECORD_DATA *recd, int enc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:310,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:322,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:322,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:323,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:324,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:328,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:329,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:330,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:334,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:335,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:338,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:339,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:342,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:343,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:344,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:348,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:350,1
    - Dst: load_record
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:351,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:352,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:353,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:358,1
    - Dst: RECORD_LAYER_get_write_sequence
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:358,1
    - Dst: RECORD_LAYER_get_read_sequence
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:359,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:360,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:363,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:364,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:366,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:371,1
    - Dst: tls13_enc
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:371,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:372,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:375,1
    - Dst: test_record
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:375,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:376,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:381,1
    - Dst: tls13_enc
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:381,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:382,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:385,1
    - Dst: test_record
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:385,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:386,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:390,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:391,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:392,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:393,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:400,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:404,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:405,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:406,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:407,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:408,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:409,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 411
    functionName: test_tls13_encryption
    functionSourceFile: /src/openssl-3.0.15/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TEST_int_eq
    - SSL_new
    - TEST_note
    - SSL_CIPHER_find
    - TEST_error
    - test_record
    - EVP_CipherInit_ex
    - load_record
    - EVP_CIPHER_get_iv_length
    - TEST_true
    - SSL_CTX_free
    - RECORD_LAYER_get_read_sequence
    - TEST_size_t_eq
    - EVP_aes_128_gcm
    - TEST_info
    - TLS_method
    - EVP_CIPHER_CTX_new
    - OPENSSL_free
    - RECORD_LAYER_get_write_sequence
    - TEST_ptr
    - SSL_CTX_new
    - OSSL_NELEM
    - SSL_free
    - tls13_enc
    linkageType: ''
    returnType: int
    signature: int test_tls13_encryption(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/tls13encryptiontest.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/tls13encryptiontest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:181,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:183,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:183,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:187,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:187,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:190,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:190,1
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:196,1
    - Dst: ossl_ffc_params_set_flags
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:199,1
    - Dst: ossl_ffc_set_digest
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:200,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:202,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:202,1
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:207,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:209,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:209,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:215,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:216,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:216,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:222,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:223,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:223,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:228,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:230,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:230,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:237,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:238,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:239,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:240,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 242
    functionName: ffc_params_validate_g_unverified_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_set_digest
    - ossl_ffc_params_set0_pqg
    - ossl_ffc_params_set_flags
    - BN_bin2bn
    - ossl_ffc_params_init
    - TEST_false
    - BN_free
    - BN_copy
    - ossl_ffc_params_cleanup
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_add_word
    - ossl_ffc_params_FIPS186_4_validate
    linkageType: ''
    returnType: int
    signature: int ffc_params_validate_g_unverified_test(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:250,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:251,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:251,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:255,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:255,1
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:261,1
    - Dst: ossl_ffc_params_set_flags
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:263,1
    - Dst: ossl_ffc_set_digest
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:264,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:266,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:266,1
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:272,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:274,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:277,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:277,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:283,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:286,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:286,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:292,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:295,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:295,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:301,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:304,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:304,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:309,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:309,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:312,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:312,1
    - Dst: ossl_ffc_params_set0_pqg
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:318,1
    - Dst: ossl_ffc_set_digest
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:320,1
    - Dst: ossl_ffc_params_set_validate_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:321,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:325,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:325,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:331,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:331,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:338,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:339,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:340,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 342
    functionName: ffc_params_validate_pq_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_set_digest
    - ossl_ffc_params_set0_pqg
    - ossl_ffc_params_set_flags
    - BN_bin2bn
    - ossl_ffc_params_init
    - TEST_false
    - ossl_ffc_params_set_validate_params
    - BN_free
    - ossl_ffc_params_cleanup
    - TEST_ptr
    - TEST_true
    - ossl_ffc_params_FIPS186_4_validate
    linkageType: ''
    returnType: int
    signature: int ffc_params_validate_pq_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:351,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:352,1
    - Dst: ossl_ffc_params_FIPS186_4_generate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:352,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:356,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:356,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: ffc_params_gen_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_init
    - ossl_ffc_params_FIPS186_4_generate
    - ossl_ffc_params_cleanup
    - TEST_true
    - ossl_ffc_params_FIPS186_4_validate
    linkageType: ''
    returnType: int
    signature: int ffc_params_gen_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:372,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:374,1
    - Dst: ossl_ffc_params_FIPS186_4_generate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:374,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:378,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:378,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:383,1
    - Dst: ossl_ffc_params_print
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:383,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:388,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: ffc_params_gen_canonicalg_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - ossl_ffc_params_init
    - ossl_ffc_params_print
    - ossl_ffc_params_FIPS186_4_generate
    - ossl_ffc_params_cleanup
    - TEST_true
    - ossl_ffc_params_FIPS186_4_validate
    linkageType: ''
    returnType: int
    signature: int ffc_params_gen_canonicalg_test(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:398,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:399,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:399,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:401,1
    - Dst: ossl_ffc_params_FIPS186_2_generate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:401,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:405,1
    - Dst: ossl_ffc_params_FIPS186_2_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:405,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:414,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:414,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:419,1
    - Dst: ossl_ffc_params_set_flags
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:422,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:424,1
    - Dst: ossl_ffc_params_FIPS186_4_validate
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:424,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:429,1
    - Dst: ossl_ffc_params_print
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:429,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:434,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 437
    functionName: ffc_params_fips186_2_gen_validate_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - ossl_ffc_params_FIPS186_2_generate
    - ossl_ffc_params_set_flags
    - TEST_int_eq
    - ossl_ffc_params_init
    - TEST_false
    - ossl_ffc_params_print
    - BN_free
    - ossl_ffc_params_cleanup
    - ossl_ffc_params_FIPS186_2_validate
    - TEST_ptr
    - TEST_true
    - ossl_ffc_params_FIPS186_4_validate
    linkageType: ''
    returnType: int
    signature: int ffc_params_fips186_2_gen_validate_test(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:448,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:448,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:451,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:451,1
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:455,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:455,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:457,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:459,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:459,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:461,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:463,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:463,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:466,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:466,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:468,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:471,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:471,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:471,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:473,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:475,1
    - Dst: BN_add_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:475,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:478,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:478,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:481,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:481,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:484,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:484,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:486,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:489,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:489,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:492,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:492,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:494,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:497,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:497,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:500,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:500,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:502,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:505,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:505,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:508,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:508,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:512,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:512,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:514,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:518,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:518,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:520,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:524,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:527,1
    - Dst: ossl_ffc_validate_public_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:527,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:529,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:534,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:535,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 537
    functionName: ffc_public_validate_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_new
    - TEST_int_eq
    - DH_new_by_nid
    - ossl_dh_get0_params
    - ossl_ffc_validate_public_key
    - BN_free
    - BN_value_one
    - BN_copy
    - BN_set_negative
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_add_word
    - DH_free
    linkageType: ''
    returnType: int
    signature: int ffc_public_validate_test(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:546,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:546,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:549,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:549,1
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:551,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:553,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:553,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:555,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:557,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:557,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:559,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:562,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:562,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:565,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:565,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:567,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:571,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:571,1
    - Dst: BN_value_one
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:571,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:575,1
    - Dst: BN_copy
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:575,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:578,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:578,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:580,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:583,1
    - Dst: BN_sub_word
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:583,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:586,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:586,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:589,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:589,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:591,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:594,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:594,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:596,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:601,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:602,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 539
    functionDepth: 6
    functionLinenumber: 539
    functionLinenumberEnd: 604
    functionName: ffc_private_validate_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_sub_word
    - BN_new
    - ossl_ffc_validate_private_key
    - TEST_int_eq
    - DH_new_by_nid
    - TEST_false
    - ossl_dh_get0_params
    - BN_free
    - BN_value_one
    - BN_copy
    - BN_set_negative
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - DH_free
    linkageType: ''
    returnType: int
    signature: int ffc_private_validate_test(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:614,1
    - Dst: BN_CTX_new_ex
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:614,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:617,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:617,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:620,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:620,1
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:622,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:624,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:626,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:626,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:629,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:629,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:632,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:632,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:635,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:635,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:638,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:638,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:641,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:641,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:643,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:643,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:646,1
    - Dst: ossl_ffc_generate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:646,1
    - Dst: ossl_ifc_ffc_compute_security_bits
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:647,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:647,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:650,1
    - Dst: BN_num_bits
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:650,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:652,1
    - Dst: ossl_ffc_validate_private_key
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:652,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:657,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:658,1
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:659,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 49
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 606
    functionDepth: 6
    functionLinenumber: 606
    functionLinenumberEnd: 661
    functionName: ffc_private_gen_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - ossl_ffc_validate_private_key
    - DH_new_by_nid
    - BN_num_bits
    - TEST_false
    - ossl_dh_get0_params
    - BN_free
    - BN_CTX_new_ex
    - ossl_ifc_ffc_compute_security_bits
    - TEST_int_le
    - TEST_ptr
    - TEST_true
    - BN_CTX_free
    - DH_free
    - ossl_ffc_generate_private_key
    linkageType: ''
    returnType: int
    signature: int ffc_private_gen_test(int index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ossl_ffc_params_init
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:669,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:671,1
    - Dst: DH_new_by_nid
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:671,1
    - Dst: ossl_dh_get0_params
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:673,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:675,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:678,1
    - Dst: ossl_ffc_params_copy
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:678,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:681,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:684,1
    - Dst: ossl_ffc_params_cmp
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:684,1
    - Dst: ossl_ffc_params_cleanup
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:689,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:690,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 663
    functionDepth: 6
    functionLinenumber: 663
    functionLinenumberEnd: 692
    functionName: ffc_params_copy_test
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_ffc_params_cmp
    - DH_new_by_nid
    - ossl_ffc_params_init
    - ossl_dh_get0_params
    - ossl_ffc_params_copy
    - ossl_ffc_params_cleanup
    - TEST_ptr
    - TEST_true
    - DH_free
    linkageType: ''
    returnType: int
    signature: int ffc_params_copy_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:698,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:699,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:702,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:703,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:704,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:705,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:706,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:707,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ffc_internal_test.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 711
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ffc_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:33,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:33,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:35,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:35,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:37,1
    - Dst: ossl_bn_miller_rabin_is_prime
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:37,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:39,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 8
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: test_is_prime_enhanced
    functionSourceFile: /src/openssl-3.0.15/test/bn_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_int_eq
    - ossl_bn_miller_rabin_is_prime
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_is_prime_enhanced(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:54,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:54,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:56,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:56,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:57,1
    - Dst: ossl_bn_miller_rabin_is_prime
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:57,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:59,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: test_is_composite_enhanced
    functionSourceFile: /src/openssl-3.0.15/test/bn_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_int_ne
    - ossl_bn_miller_rabin_is_prime
    - BN_free
    - TEST_ptr
    - BN_set_word
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_is_composite_enhanced(int id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:73,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:73,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:73,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:73,1
    - Dst: BN_mul_word
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:78,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:83,1
    - Dst: ossl_bn_get0_small_factors
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:83,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:85,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: test_bn_small_factors
    functionSourceFile: /src/openssl-3.0.15/test/bn_internal_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - TEST_BN_eq
    - BN_free
    - ossl_bn_get0_small_factors
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - BN_mul_word
    linkageType: ''
    returnType: int
    signature: int test_bn_small_factors(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:91,1
    - Dst: BN_CTX_new
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:91,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:94,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:95,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:95,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bn_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - BN_CTX_new
    - ADD_ALL_TESTS
    - TEST_ptr
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/openssl-3.0.15/test/bn_internal_test.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/bn_internal_test.c
    functionUses: 6
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:30,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:31,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:32,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:39,1
    - Dst: EVP_PKEY_asn1_get_count
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:40,1
    - Dst: EVP_PKEY_asn1_get0
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:43,1
    - Dst: EVP_PKEY_asn1_get0_info
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:44,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:47,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 51
    functionName: test_asn1_meths
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_test.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2ln
    - EVP_PKEY_asn1_get_count
    - TEST_note
    - EVP_PKEY_asn1_get0
    - TEST_error
    - EVP_PKEY_asn1_get0_info
    linkageType: ''
    returnType: int
    signature: int test_asn1_meths(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_count
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:63,1
    - Dst: EVP_PKEY_meth_get0
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:64,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:65,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:72,1
    - Dst: EVP_PKEY_meth_get_count
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:73,1
    - Dst: EVP_PKEY_meth_get0
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:74,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:75,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:76,1
    - Dst: OBJ_nid2ln
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: test_pkey_meths
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get0_info
    - OBJ_nid2ln
    - TEST_note
    - EVP_PKEY_meth_get0
    - TEST_error
    - EVP_PKEY_meth_get_count
    linkageType: ''
    returnType: int
    signature: int test_pkey_meths(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:85,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/pkey_meth_test.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/pkey_meth_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MDC2_Init
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:59,1
    - Dst: MDC2_Update
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:60,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:61,1
    - Dst: MDC2_Final
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:62,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:64,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: test_mdc2
    functionSourceFile: /src/openssl-3.0.15/test/mdc2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - MDC2_Final
    - TEST_info
    - strlen
    - MDC2_Update
    - MDC2_Init
    linkageType: ''
    returnType: int
    signature: int test_mdc2(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:75,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/mdc2_internal_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/mdc2_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/mdc2test.c:53,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/mdc2test.c:57,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/mdc2test.c:59,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/mdc2test.c:61,1
    - Dst: ebcdic2ascii
      Src: /src/openssl-3.0.15/test/mdc2test.c:63,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/mdc2test.c:66,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/mdc2test.c:67,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/mdc2test.c:68,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/mdc2test.c:68,1
    - Dst: EVP_mdc2
      Src: /src/openssl-3.0.15/test/mdc2test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/mdc2test.c:69,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/mdc2test.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/mdc2test.c:70,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/mdc2test.c:70,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/mdc2test.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/mdc2test.c:72,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/mdc2test.c:72,1
    - Dst: EVP_mdc2
      Src: /src/openssl-3.0.15/test/mdc2test.c:72,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/mdc2test.c:75,1
    - Dst: EVP_MD_CTX_set_params
      Src: /src/openssl-3.0.15/test/mdc2test.c:75,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/mdc2test.c:76,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/mdc2test.c:76,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/mdc2test.c:77,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/mdc2test.c:77,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/mdc2test.c:78,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/mdc2test.c:83,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/mdc2test.c:84,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: test_mdc2
    functionSourceFile: /src/openssl-3.0.15/test/mdc2test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - TEST_mem_eq
    - OSSL_PARAM_construct_uint
    - EVP_MD_CTX_free
    - OSSL_PROVIDER_load
    - EVP_mdc2
    - EVP_DigestInit_ex
    - ebcdic2ascii
    - EVP_MD_CTX_new
    - OSSL_PROVIDER_unload
    - OSSL_PARAM_construct_end
    - strlen
    - EVP_DigestFinal_ex
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    - EVP_MD_CTX_set_params
    linkageType: ''
    returnType: int
    signature: int test_mdc2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/mdc2test.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/mdc2test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-3.0.15/test/ideatest.c:65,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:66,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ideatest.c:67,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-3.0.15/test/ideatest.c:70,1
    - Dst: IDEA_ecb_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:71,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ideatest.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: test_idea_ecb
    functionSourceFile: /src/openssl-3.0.15/test/ideatest.c
    functionUses: 0
    functionsReached:
    - IDEA_set_encrypt_key
    - IDEA_set_decrypt_key
    - IDEA_ecb_encrypt
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: int test_idea_ecb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-3.0.15/test/ideatest.c:81,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-3.0.15/test/ideatest.c:82,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/ideatest.c:83,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:84,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/ideatest.c:85,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:86,1
    - Dst: IDEA_cbc_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:87,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ideatest.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: test_idea_cbc
    functionSourceFile: /src/openssl-3.0.15/test/ideatest.c
    functionUses: 0
    functionsReached:
    - IDEA_set_encrypt_key
    - TEST_mem_eq
    - memcpy
    - IDEA_set_decrypt_key
    - IDEA_cbc_encrypt
    linkageType: ''
    returnType: int
    signature: int test_idea_cbc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IDEA_set_encrypt_key
      Src: /src/openssl-3.0.15/test/ideatest.c:96,1
    - Dst: IDEA_set_decrypt_key
      Src: /src/openssl-3.0.15/test/ideatest.c:97,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/ideatest.c:98,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:100,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:102,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ideatest.c:105,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/ideatest.c:107,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:109,1
    - Dst: IDEA_cfb64_encrypt
      Src: /src/openssl-3.0.15/test/ideatest.c:111,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/ideatest.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: test_idea_cfb64
    functionSourceFile: /src/openssl-3.0.15/test/ideatest.c
    functionUses: 0
    functionsReached:
    - IDEA_set_encrypt_key
    - TEST_mem_eq
    - memcpy
    - IDEA_set_decrypt_key
    - IDEA_cfb64_encrypt
    linkageType: ''
    returnType: int
    signature: int test_idea_cfb64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ideatest.c:121,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ideatest.c:122,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ideatest.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ideatest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/simpledynamic.c:22,1
    - Dst: dlopen
      Src: /src/openssl-3.0.15/test/simpledynamic.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - filename
    - lib
    - type
    argTypes:
    - char*
    - SD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: sd_load
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 2
    functionsReached:
    - dlopen
    - strlen
    linkageType: ''
    returnType: int
    signature: int sd_load(const char *filename, SD *lib, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/openssl-3.0.15/test/simpledynamic.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lib
    - symname
    - sym
    argTypes:
    - SD
    - char*
    - SD_SYM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: sd_sym
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 2
    functionsReached:
    - dlsym
    linkageType: ''
    returnType: int
    signature: int sd_sym(SD lib, const char *symname, SD_SYM *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/openssl-3.0.15/test/simpledynamic.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lib
    argTypes:
    - SD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: sd_close
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 2
    functionsReached:
    - dlclose
    linkageType: ''
    returnType: int
    signature: int sd_close(SD lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dlerror
      Src: /src/openssl-3.0.15/test/simpledynamic.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sd_error
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 0
    functionsReached:
    - dlerror
    linkageType: ''
    returnType: char
    signature: char *sd_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/openssl-3.0.15/test/simpledynamic.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - filename
    - lib
    - type
    argTypes:
    - char*
    - SD*
    - ossl_unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: sd_load
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 2
    functionsReached:
    - LoadLibraryA
    linkageType: ''
    returnType: int
    signature: int sd_load(const char *filename, SD *lib, ossl_unused int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/openssl-3.0.15/test/simpledynamic.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lib
    - symname
    - sym
    argTypes:
    - SD
    - char*
    - SD_SYM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: sd_sym
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 2
    functionsReached:
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int sd_sym(SD lib, const char *symname, SD_SYM *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/openssl-3.0.15/test/simpledynamic.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lib
    argTypes:
    - SD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: sd_close
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 2
    functionsReached:
    - FreeLibrary
    linkageType: ''
    returnType: int
    signature: int sd_close(SD lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageA
      Src: /src/openssl-3.0.15/test/simpledynamic.c:69,1
    - Dst: GetLastError
      Src: /src/openssl-3.0.15/test/simpledynamic.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: sd_error
    functionSourceFile: /src/openssl-3.0.15/test/simpledynamic.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - FormatMessageA
    linkageType: ''
    returnType: char
    signature: char *sd_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: chdir
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chdir(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/conf_include_test.c:42,1
    - Dst: strpbrk
      Src: /src/openssl-3.0.15/test/conf_include_test.c:50,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:57,1
    - Dst: chdir
      Src: /src/openssl-3.0.15/test/conf_include_test.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/conf_include_test.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 62
    functionName: change_path
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - chdir
    - OPENSSL_free
    - strpbrk
    - OPENSSL_strdup
    linkageType: ''
    returnType: int
    signature: int change_path(const char *file)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/conf_include_test.c:79,1
    - Dst: NCONF_load_bio
      Src: /src/openssl-3.0.15/test/conf_include_test.c:79,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:80,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/conf_include_test.c:80,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:83,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:87,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/conf_include_test.c:91,1
    - Dst: CONF_modules_load
      Src: /src/openssl-3.0.15/test/conf_include_test.c:91,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:92,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:98,1
    - Dst: NCONF_get_number
      Src: /src/openssl-3.0.15/test/conf_include_test.c:98,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:99,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:100,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:106,1
    - Dst: NCONF_get_number
      Src: /src/openssl-3.0.15/test/conf_include_test.c:106,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:107,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:108,1
    - Dst: NCONF_get_string
      Src: /src/openssl-3.0.15/test/conf_include_test.c:113,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/conf_include_test.c:114,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:114,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:115,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 120
    functionName: test_load_config
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - CONF_modules_load
    - TEST_int_eq
    - NCONF_get_number
    - ERR_peek_error
    - TEST_str_eq
    - TEST_ptr
    - NCONF_get_string
    - TEST_int_gt
    - NCONF_load_bio
    linkageType: ''
    returnType: int
    signature: int test_load_config(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:132,1
    - Dst: setenv
      Src: /src/openssl-3.0.15/test/conf_include_test.c:132,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/conf_include_test.c:133,1
    - Dst: NCONF_get_number
      Src: /src/openssl-3.0.15/test/conf_include_test.c:133,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:134,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:135,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:143,1
    - Dst: unsetenv
      Src: /src/openssl-3.0.15/test/conf_include_test.c:143,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/conf_include_test.c:144,1
    - Dst: NCONF_get_number
      Src: /src/openssl-3.0.15/test/conf_include_test.c:144,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 150
    functionName: test_check_null_numbers
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - TEST_int_eq
    - NCONF_get_number
    - TEST_long_eq
    - TEST_false
    - unsetenv
    - TEST_true
    - setenv
    linkageType: ''
    returnType: int
    signature: int test_check_null_numbers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/conf_include_test.c:161,1
    - Dst: setenv
      Src: /src/openssl-3.0.15/test/conf_include_test.c:162,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/conf_include_test.c:163,1
    - Dst: NCONF_get_number
      Src: /src/openssl-3.0.15/test/conf_include_test.c:163,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/conf_include_test.c:164,1
    - Dst: setenv
      Src: /src/openssl-3.0.15/test/conf_include_test.c:170,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/conf_include_test.c:171,1
    - Dst: NCONF_get_number
      Src: /src/openssl-3.0.15/test/conf_include_test.c:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: test_check_overflow
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - sprintf
    - NCONF_get_number
    - TEST_long_eq
    - TEST_false
    - TEST_true
    - setenv
    linkageType: ''
    returnType: int
    signature: int test_check_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
      Src: /src/openssl-3.0.15/test/conf_include_test.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/conf_include_test.c:199,1
    - Dst: NCONF_new
      Src: /src/openssl-3.0.15/test/conf_include_test.c:199,1
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/conf_include_test.c:202,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/conf_include_test.c:214,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/conf_include_test.c:215,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/conf_include_test.c:216,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/conf_include_test.c:216,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/conf_include_test.c:217,1
    - Dst: change_path
      Src: /src/openssl-3.0.15/test/conf_include_test.c:225,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/conf_include_test.c:227,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/conf_include_test.c:228,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/conf_include_test.c:229,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 231
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_note
    - opt_next
    - change_path
    - NCONF_new
    - TEST_ptr
    - BIO_new_file
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_vfree
      Src: /src/openssl-3.0.15/test/conf_include_test.c:235,1
    - Dst: NCONF_free
      Src: /src/openssl-3.0.15/test/conf_include_test.c:236,1
    - Dst: CONF_modules_unload
      Src: /src/openssl-3.0.15/test/conf_include_test.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/conf_include_test.c
    functionUses: 6
    functionsReached:
    - BIO_vfree
    - CONF_modules_unload
    - NCONF_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - oin
    - out
    - provctx
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    - OSSL_DISPATCH**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: OSSL_provider_init
    functionSourceFile: /src/openssl-3.0.15/test/p_minimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int OSSL_provider_init(const OSSL_CORE_HANDLE *handle,\n                       const
      OSSL_DISPATCH *oin,\n                       const OSSL_DISPATCH **out,\n                       void
      **provctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - OPT_TEST_OPTIONS_WITH_EXTRA_USAGE
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:64,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:64,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:65,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:65,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:66,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:67,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:67,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:68,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:70,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:70,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - md
    - msg
    - len
    - exptd
    argTypes:
    - EVP_MD*
    - char*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: calculate_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - TEST_mem_eq
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - EVP_DigestFinal_ex
    - TEST_ptr
    - TEST_true
    - EVP_MD_CTX_get0_md
    linkageType: ''
    returnType: int
    signature: "int calculate_digest(const EVP_MD *md, const char *msg, size_t len,\n
      \                           const unsigned char *exptd)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:85,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:89,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:89,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:91,1
    - Dst: test_get_argument_count
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:94,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:95,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:96,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:97,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - libctx
    - prov
    argTypes:
    - OSSL_LIB_CTX**
    - OSSL_PROVIDER*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 107
    functionName: load_providers
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_LIB_CTX_load_config
    - test_get_argument_count
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int load_providers(OSSL_LIB_CTX **libctx, OSSL_PROVIDER *prov[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:112,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:114,1
    - Dst: OPENSSL_thread_stop_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:119,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - libctx
    - prov
    argTypes:
    - OSSL_LIB_CTX**
    - OSSL_PROVIDER*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: unload_providers
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    - OPENSSL_thread_stop_ex
    linkageType: ''
    returnType: void
    signature: void unload_providers(OSSL_LIB_CTX **libctx, OSSL_PROVIDER *prov[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:128,1
    - Dst: X509_ALGOR_new
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:129,1
    - Dst: X509_ALGOR_set0
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:129,1
    - Dst: OBJ_nid2obj
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:129,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: make_algor
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - X509_ALGOR_set0
    - OBJ_nid2obj
    - X509_ALGOR_free
    - TEST_ptr
    - TEST_true
    - X509_ALGOR_new
    linkageType: ''
    returnType: X509_ALGOR
    signature: X509_ALGOR *make_algor(int nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:149,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:150,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:150,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:151,1
    - Dst: calculate_digest
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:151,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:152,1
    - Dst: EVP_MD_get_size
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:152,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:153,1
    - Dst: EVP_MD_get_block_size
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 10
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: test_md
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_get_size
    - EVP_MD_get_block_size
    - calculate_digest
    - TEST_int_eq
    - TEST_ptr
    - TEST_true
    - EVP_MD_is_a
    linkageType: ''
    returnType: int
    signature: int test_md(const EVP_MD *md)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:162,1
    - Dst: test_md
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:163,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:163,1
    - Dst: unload_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 11
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: test_implicit_EVP_MD_fetch
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - load_providers
    - unload_providers
    - test_md
    linkageType: ''
    returnType: int
    signature: int test_implicit_EVP_MD_fetch(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:176,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:179,1
    - Dst: test_md
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:185,1
    - Dst: EVP_MD_up_ref
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:185,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:188,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:190,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:196,1
    - Dst: unload_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 169
    functionDepth: 11
    functionLinenumber: 169
    functionLinenumberEnd: 199
    functionName: test_explicit_EVP_MD_fetch
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - load_providers
    - TEST_ptr_null
    - unload_providers
    - EVP_MD_up_ref
    - TEST_true
    - EVP_MD_free
    - test_md
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_explicit_EVP_MD_fetch(const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_explicit_EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 12
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: test_explicit_EVP_MD_fetch_by_name
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - test_explicit_EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_explicit_EVP_MD_fetch_by_name(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: make_algor
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:213,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:220,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:223,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:223,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:227,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:227,1
    - Dst: test_explicit_EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:232,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 210
    functionDepth: 12
    functionLinenumber: 210
    functionLinenumberEnd: 236
    functionName: test_explicit_EVP_MD_fetch_by_X509_ALGOR
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2txt
    - X509_ALGOR_free
    - X509_ALGOR_get0
    - test_explicit_EVP_MD_fetch
    - make_algor
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_explicit_EVP_MD_fetch_by_X509_ALGOR(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:249,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:250,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:250,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:251,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:251,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:252,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:253,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:253,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:254,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:254,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:255,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:256,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:256,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:257,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:262,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - cipher
    - msg
    - len
    argTypes:
    - EVP_CIPHER*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: encrypt_decrypt
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 4
    functionsReached:
    - TEST_true
    - EVP_CipherFinal_ex
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CipherUpdate
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - TEST_ptr
    - memset
    linkageType: ''
    returnType: int
    signature: "int encrypt_decrypt(const EVP_CIPHER *cipher, const unsigned char
      *msg,\n                           size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:270,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:271,1
    - Dst: encrypt_decrypt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - EVP_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: test_cipher
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 2
    functionsReached:
    - TEST_ptr
    - encrypt_decrypt
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_cipher(const EVP_CIPHER *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:280,1
    - Dst: test_cipher
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:281,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:281,1
    - Dst: unload_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 6
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: test_implicit_EVP_CIPHER_fetch
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - unload_providers
    - EVP_aes_128_cbc
    - load_providers
    - test_cipher
    linkageType: ''
    returnType: int
    signature: int test_implicit_EVP_CIPHER_fetch(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:294,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:297,1
    - Dst: test_cipher
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:299,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:302,1
    - Dst: EVP_CIPHER_up_ref
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:302,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:305,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:307,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:312,1
    - Dst: unload_providers
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 315
    functionName: test_explicit_EVP_CIPHER_fetch
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - load_providers
    - TEST_ptr_null
    - EVP_CIPHER_free
    - EVP_CIPHER_up_ref
    - unload_providers
    - TEST_true
    - EVP_CIPHER_fetch
    - test_cipher
    linkageType: ''
    returnType: int
    signature: int test_explicit_EVP_CIPHER_fetch(const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_explicit_EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 7
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: test_explicit_EVP_CIPHER_fetch_by_name
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - test_explicit_EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_explicit_EVP_CIPHER_fetch_by_name(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: make_algor
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:329,1
    - Dst: X509_ALGOR_get0
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:336,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:339,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:339,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:343,1
    - Dst: OBJ_obj2txt
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:343,1
    - Dst: test_explicit_EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:348,1
    - Dst: X509_ALGOR_free
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:350,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 326
    functionDepth: 7
    functionLinenumber: 326
    functionLinenumberEnd: 352
    functionName: test_explicit_EVP_CIPHER_fetch_by_X509_ALGOR
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2txt
    - test_explicit_EVP_CIPHER_fetch
    - X509_ALGOR_free
    - X509_ALGOR_get0
    - make_algor
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_explicit_EVP_CIPHER_fetch_by_X509_ALGOR(int idx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:358,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:361,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:364,1
    - Dst: opt_arg
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:367,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:382,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:383,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:384,1
    - Dst: ADD_ALL_TESTS_NOSUBTEST
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:385,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:387,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:388,1
    - Dst: ADD_ALL_TESTS_NOSUBTEST
      Src: /src/openssl-3.0.15/test/evp_fetch_prov_test.c:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 392
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_fetch_prov_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - opt_arg
    - opt_next
    - strcmp
    - ADD_ALL_TESTS_NOSUBTEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_mdc2.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:140,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:142,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: hostname_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SSL_get_servername
    linkageType: ''
    returnType: int
    signature: int hostname_cb(SSL *s, int *al, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:151,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:155,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/test/sslapitest.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: client_keylog_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - strcat
    - strlen
    linkageType: ''
    returnType: void
    signature: void client_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:167,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:171,1
    - Dst: strcat
      Src: /src/openssl-3.0.15/test/sslapitest.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: server_keylog_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_info
    - strcat
    - strlen
    linkageType: ''
    returnType: void
    signature: void server_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:189,1
    - Dst: sprintf
      Src: /src/openssl-3.0.15/test/sslapitest.c:193,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:194,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - hex_encoded
    - hex_length
    - raw
    - raw_length
    argTypes:
    - char*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 200
    functionName: compare_hex_encoded_buffer
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_size_t_eq
    - sprintf
    linkageType: ''
    returnType: int
    signature: "int compare_hex_encoded_buffer(const char *hex_encoded,\n                                      size_t
      hex_length,\n                                      const uint8_t *raw,\n                                      size_t
      raw_length)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:221,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:222,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:223,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:229,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:229,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:231,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:231,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:233,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:233,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:241,1
    - Dst: SSL_get_client_random
      Src: /src/openssl-3.0.15/test/sslapitest.c:246,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:249,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:252,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:252,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:254,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:254,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:256,1
    - Dst: compare_hex_encoded_buffer
      Src: /src/openssl-3.0.15/test/sslapitest.c:256,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:261,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:261,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:263,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:266,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:268,1
    - Dst: compare_hex_encoded_buffer
      Src: /src/openssl-3.0.15/test/sslapitest.c:268,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:268,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:273,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:274,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:275,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:276,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:277,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:278,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:279,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:286,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:288,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:290,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:292,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:294,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:296,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:298,1
    - Dst: SSL_get_client_random
      Src: /src/openssl-3.0.15/test/sslapitest.c:301,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:304,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:307,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:307,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:309,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:309,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:311,1
    - Dst: compare_hex_encoded_buffer
      Src: /src/openssl-3.0.15/test/sslapitest.c:311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:316,1
    - Dst: strtok
      Src: /src/openssl-3.0.15/test/sslapitest.c:316,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:319,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:325,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:327,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:329,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:331,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:333,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:335,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:337,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:339,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:341,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 64
    argCount: 4
    argNames:
    - buffer
    - ssl
    - session
    - expected
    argTypes:
    - char*
    - SSL*
    - SSL_SESSION*
    - struct sslapitest_log_counts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 345
    functionName: test_keylog_output
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_master_key
    - TEST_false
    - TEST_size_t_eq
    - SSL_get_client_random
    - TEST_info
    - compare_hex_encoded_buffer
    - strlen
    - strcmp
    - TEST_ptr
    - TEST_size_t_ne
    - strtok
    linkageType: ''
    returnType: int
    signature: "int test_keylog_output(char *buffer, const SSL *ssl,\n                              const
      SSL_SESSION *session,\n                              struct sslapitest_log_counts
      *expected)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:356,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:357,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:358,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:363,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:363,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:363,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:364,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:370,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:371,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:374,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:374,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:377,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:377,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:378,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:378,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:380,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:381,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:381,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:384,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:385,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:385,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:390,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:390,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:392,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:392,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:394,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:395,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:396,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:407,1
    - Dst: test_keylog_output
      Src: /src/openssl-3.0.15/test/sslapitest.c:407,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:408,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:412,1
    - Dst: test_keylog_output
      Src: /src/openssl-3.0.15/test/sslapitest.c:412,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:413,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:419,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:420,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:421,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:422,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 425
    functionName: test_keylog
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set_keylog_callback
    - test_keylog_output
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - TEST_false
    - SSL_get_session
    - SSL_CTX_get_keylog_callback
    - memset
    - SSL_CTX_set_cipher_list
    - SSL_free
    - TEST_true
    - TLS_server_method
    - TEST_int_gt
    - SSL_CTX_set_options
    linkageType: ''
    returnType: int
    signature: int test_keylog(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:440,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:441,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:442,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:447,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:447,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:447,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:450,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:450,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:454,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:454,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:455,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:455,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:458,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:459,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:459,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:463,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:464,1
    - Dst: SSL_CTX_get_keylog_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:464,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:469,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:469,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:471,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:471,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:473,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:486,1
    - Dst: test_keylog_output
      Src: /src/openssl-3.0.15/test/sslapitest.c:486,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:487,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:488,1
    - Dst: test_keylog_output
      Src: /src/openssl-3.0.15/test/sslapitest.c:488,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:489,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:494,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:495,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:496,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:497,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:498,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:502,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:503,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:507,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:507,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:509,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:509,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:511,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:511,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:512,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:512,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:515,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:515,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:517,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:517,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:519,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:519,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:525,1
    - Dst: test_keylog_output
      Src: /src/openssl-3.0.15/test/sslapitest.c:525,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:526,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:527,1
    - Dst: test_keylog_output
      Src: /src/openssl-3.0.15/test/sslapitest.c:527,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:528,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:535,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:536,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:537,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:538,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:539,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 542
    functionName: test_keylog_no_master_key
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_read_early_data
    - SSL_CTX_set_keylog_callback
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_get_session
    - SSL_get1_session
    - SSL_set_session
    - SSL_CTX_set_max_early_data
    - create_ssl_objects
    - memset
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_write_early_data
    - SSL_CTX_get_keylog_callback
    - SSL_get_early_data_status
    - TLS_client_method
    - SSL_shutdown
    - test_keylog_output
    - create_ssl_connection
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_keylog_no_master_key(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_verify_cert
      Src: /src/openssl-3.0.15/test/sslapitest.c:547,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/openssl-3.0.15/test/sslapitest.c:548,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:553,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:556,1
    - Dst: SSL_set_retry_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 545
    functionDepth: 9
    functionLinenumber: 545
    functionLinenumberEnd: 562
    functionName: verify_retry_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_verify_cert
    - SSL_set_retry_verify
    - X509_STORE_CTX_get_ex_data
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - X509_STORE_CTX_get_error
    linkageType: ''
    returnType: int
    signature: int verify_retry_cb(X509_STORE_CTX *ctx, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:567,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:568,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:569,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:570,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:571,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/sslapitest.c:573,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:578,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:578,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:578,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:579,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:582,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:582,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:583,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:583,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:585,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:585,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:587,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/openssl-3.0.15/test/sslapitest.c:587,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:589,1
    - Dst: SSL_CTX_set_cert_verify_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:590,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:591,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:591,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:596,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:596,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:601,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/sslapitest.c:601,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:602,1
    - Dst: load_cert_pem
      Src: /src/openssl-3.0.15/test/sslapitest.c:602,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:603,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/openssl-3.0.15/test/sslapitest.c:603,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:606,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:606,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:609,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:609,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:614,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:614,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:621,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:622,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:624,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:625,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:628,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:629,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:631,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:632,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:634,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:635,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:636,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:637,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:638,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 641
    functionName: test_client_cert_verify_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - create_ssl_ctx_pair
    - X509_free
    - TEST_int_eq
    - sk_X509_push
    - SSL_CTX_use_certificate_chain_file
    - load_cert_pem
    - SSL_CTX_load_verify_locations
    - create_ssl_objects
    - TEST_true
    - SSL_CTX_set_verify
    - SSL_CTX_free
    - SSL_CTX_check_private_key
    - SSL_CTX_use_PrivateKey_file
    - OPENSSL_free
    - STACK_OF
    - TEST_ptr
    - SSL_get_peer_cert_chain
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - SSL_CTX_set_cert_verify_callback
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_client_cert_verify_cb(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:648,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:649,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:651,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:651,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:651,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:653,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:653,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:656,1
    - Dst: SSL_use_certificate_chain_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:656,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:657,1
    - Dst: SSL_use_PrivateKey_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:657,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:658,1
    - Dst: SSL_check_private_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:658,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:660,1
    - Dst: SSL_build_cert_chain
      Src: /src/openssl-3.0.15/test/sslapitest.c:660,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:665,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:666,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:667,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:668,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 670
    functionName: test_ssl_build_cert_chain
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - SSL_CTX_new_ex
    - SSL_CTX_free
    - TEST_int_eq
    - SSL_use_PrivateKey_file
    - OPENSSL_free
    - SSL_check_private_key
    - SSL_new
    - SSL_use_certificate_chain_file
    - SSL_free
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    - SSL_build_cert_chain
    linkageType: ''
    returnType: int
    signature: int test_ssl_build_cert_chain(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:676,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - size
    - rw_flag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: get_password_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - memcpy
    linkageType: ''
    returnType: int
    signature: int get_password_cb(char *buf, int size, int rw_flag, void *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:687,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:688,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:690,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:690,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:690,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:692,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:694,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:694,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:695,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:695,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:697,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:697,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:699,1
    - Dst: SSL_CTX_build_cert_chain
      Src: /src/openssl-3.0.15/test/sslapitest.c:699,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:704,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:705,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:706,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 708
    functionName: test_ssl_ctx_build_cert_chain
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - SSL_CTX_new_ex
    - SSL_CTX_free
    - TEST_int_eq
    - SSL_CTX_set_default_passwd_cb
    - SSL_CTX_check_private_key
    - SSL_CTX_use_certificate_chain_file
    - SSL_CTX_use_PrivateKey_file
    - OPENSSL_free
    - SSL_CTX_build_cert_chain
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ssl_ctx_build_cert_chain(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_client_hello_get0_ciphers
      Src: /src/openssl-3.0.15/test/sslapitest.c:734,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:735,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:736,1
    - Dst: SSL_client_hello_get0_compression_methods
      Src: /src/openssl-3.0.15/test/sslapitest.c:737,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:738,1
    - Dst: SSL_client_hello_get1_extensions_present
      Src: /src/openssl-3.0.15/test/sslapitest.c:740,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:742,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:743,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/sslapitest.c:744,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:745,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:748,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 750
    functionName: full_client_hello_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_client_hello_get1_extensions_present
    - TEST_int_eq
    - TEST_size_t_eq
    - OPENSSL_free
    - memcmp
    - SSL_client_hello_get0_compression_methods
    - printf
    - SSL_client_hello_get0_ciphers
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int full_client_hello_callback(SSL *s, int *al, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:758,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:758,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:758,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:759,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:762,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:765,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:767,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:767,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:769,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:769,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:771,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:771,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:777,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:777,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:779,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:779,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:786,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:787,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:788,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:789,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 792
    functionName: test_client_hello_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_get_error
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_free
    - TEST_false
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_cipher_list
    - SSL_free
    - SSL_CTX_set_client_hello_cb
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_client_hello_cb(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:800,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:800,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:800,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/sslapitest.c:803,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:807,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:809,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/sslapitest.c:810,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:814,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/sslapitest.c:815,1
    - Dst: SSL_get_extms_support
      Src: /src/openssl-3.0.15/test/sslapitest.c:819,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/sslapitest.c:820,1
    - Dst: SSL_get_extms_support
      Src: /src/openssl-3.0.15/test/sslapitest.c:824,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/sslapitest.c:825,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:831,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:832,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:833,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:834,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 837
    functionName: test_no_ems
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_get_extms_support
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - SSL_free
    - printf
    - TLS_server_method
    - SSL_CTX_set_options
    linkageType: ''
    returnType: int
    signature: int test_no_ems(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:859,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:859,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:859,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:860,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:863,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:863,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:864,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:864,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:866,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:866,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:867,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:867,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:869,1
    - Dst: SSL_get0_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:869,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:870,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:870,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:873,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:878,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:878,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:880,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:880,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:881,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:881,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:882,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:882,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:884,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:884,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:885,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:885,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:886,1
    - Dst: SSL_get0_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:886,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:887,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:888,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-3.0.15/test/sslapitest.c:889,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:889,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:898,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:898,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:900,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:900,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:901,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:901,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:903,1
    - Dst: SSL_get0_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:903,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:904,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:904,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:905,1
    - Dst: SSL_renegotiate
      Src: /src/openssl-3.0.15/test/sslapitest.c:905,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:906,1
    - Dst: SSL_renegotiate_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:906,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:910,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:911,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:913,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:913,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:917,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:918,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:920,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:920,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:926,1
    - Dst: SSL_renegotiate_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:926,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:927,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:927,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:928,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:928,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:929,1
    - Dst: SSL_get0_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:929,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:930,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:931,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/openssl-3.0.15/test/sslapitest.c:932,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:932,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:935,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:941,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:942,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:943,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:944,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:945,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 948
    functionName: test_ccs_change_cipher
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_get0_session
    - shutdown_ssl_connection
    - TEST_ptr_ne
    - SSL_get1_session
    - SSL_set_session
    - SSL_renegotiate
    - SSL_get_error
    - create_ssl_objects
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_read_ex
    - TEST_ptr
    - SSL_set_cipher_list
    - SSL_CTX_set_options
    - SSL_get_current_cipher
    - TEST_ulong_eq
    - TLS_client_method
    - create_ssl_connection
    - SSL_CIPHER_get_id
    - TEST_false
    - TEST_ptr_eq
    - SSL_renegotiate_pending
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ccs_change_cipher(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:959,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:959,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:962,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:962,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/sslapitest.c:965,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:967,1
    - Dst: i2d_X509
      Src: /src/openssl-3.0.15/test/sslapitest.c:977,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/sslapitest.c:978,1
    - Dst: X509_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:981,1
    - Dst: SSL_CTX_add_extra_chain_cert
      Src: /src/openssl-3.0.15/test/sslapitest.c:983,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:984,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:991,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:992,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - sctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 994
    functionName: add_large_cert_chain
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_add_extra_chain_cert
    - X509_up_ref
    - OPENSSL_assert
    - X509_free
    - PEM_read_bio_X509
    - BIO_free
    - i2d_X509
    - TEST_ptr
    - BIO_new_file
    - X509_new_ex
    linkageType: ''
    returnType: int
    signature: int add_large_cert_chain(SSL_CTX *sctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1005,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:1005,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1011,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1016,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1016,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1017,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1017,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openssl-3.0.15/test/sslapitest.c:1028,1
    - Dst: add_large_cert_chain
      Src: /src/openssl-3.0.15/test/sslapitest.c:1031,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1034,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:1034,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1036,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1036,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1044,1
    - Dst: SSL_clear
      Src: /src/openssl-3.0.15/test/sslapitest.c:1044,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1049,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1050,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1051,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1052,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 5
    argNames:
    - smeth
    - cmeth
    - min_version
    - max_version
    - read_ahead
    argTypes:
    - SSL_METHOD*
    - SSL_METHOD*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 996
    functionDepth: 5
    functionLinenumber: 996
    functionLinenumberEnd: 1055
    functionName: execute_test_large_message
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - add_large_cert_chain
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_set_read_ahead
    - SSL_CTX_set_cipher_list
    - SSL_clear
    - SSL_free
    - DTLS_server_method
    - TEST_true
    linkageType: ''
    returnType: int
    signature: "int execute_test_large_message(const SSL_METHOD *smeth,\n                                      const
      SSL_METHOD *cmeth,\n                                      int min_version, int
      max_version,\n                                      int read_ahead)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ktls_enable
      Src: /src/openssl-3.0.15/test/sslapitest.c:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1065
    functionName: ktls_chk_platform
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - ktls_enable
    linkageType: ''
    returnType: int
    signature: int ktls_chk_platform(int sock)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1083,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1084,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1085,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1086,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1088,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:1088,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:1091,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:1092,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1097,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:1097,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:1100,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:1101,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1106,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1107,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1108,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:1109,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1112,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1119,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:1120,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1124,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1129,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:1130,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1134,1
    - Dst: BIO_get_ktls_recv
      Src: /src/openssl-3.0.15/test/sslapitest.c:1139,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:1140,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1144,1
    - Dst: BIO_get_ktls_recv
      Src: /src/openssl-3.0.15/test/sslapitest.c:1149,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:1150,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1154,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 2
    argNames:
    - clientssl
    - serverssl
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1162
    functionName: ping_pong_query
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - memcpy
    - SSL_get_error
    - SSL_write
    - BIO_get_ktls_recv
    - TEST_mem_ne
    - BIO_get_ktls_send
    - TEST_true
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int ping_pong_query(SSL *clientssl, SSL *serverssl)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1173,1
    - Dst: create_test_sockets
      Src: /src/openssl-3.0.15/test/sslapitest.c:1173,1
    - Dst: ktls_chk_platform
      Src: /src/openssl-3.0.15/test/sslapitest.c:1177,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:1178,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1182,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:1183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1188,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:1188,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1188,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1189,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1195,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:1195,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1196,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:1196,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1199,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1199,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1200,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1204,1
    - Dst: create_ssl_objects2
      Src: /src/openssl-3.0.15/test/sslapitest.c:1204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1209,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1209,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1214,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1214,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1218,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1218,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1227,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1227,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1230,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1235,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1235,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1238,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1248,1
    - Dst: BIO_get_ktls_recv
      Src: /src/openssl-3.0.15/test/sslapitest.c:1248,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1251,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1256,1
    - Dst: BIO_get_ktls_recv
      Src: /src/openssl-3.0.15/test/sslapitest.c:1256,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1259,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:1264,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1270,1
    - Dst: ping_pong_query
      Src: /src/openssl-3.0.15/test/sslapitest.c:1270,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:1276,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1277,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:1280,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1281,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1283,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1284,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/sslapitest.c:1287,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/sslapitest.c:1289,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 103
    argCount: 4
    argNames:
    - cis_ktls
    - sis_ktls
    - tls_version
    - cipher
    argTypes:
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1291
    functionName: execute_test_ktls
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - close
    - SSL_set_options
    - create_test_sockets
    - create_ssl_objects2
    - TEST_true
    - SSL_CTX_free
    - TEST_skip
    - ktls_chk_platform
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - BIO_get_ktls_recv
    - strstr
    - TEST_false
    - SSL_CTX_set_cipher_list
    - ping_pong_query
    - BIO_get_ktls_send
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: "int execute_test_ktls(int cis_ktls, int sis_ktls,\n                             int
      tls_version, const char *cipher)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1296
    functionName: min
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a,b)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:1309,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:1310,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1311,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1312,1
    - Dst: create_test_sockets
      Src: /src/openssl-3.0.15/test/sslapitest.c:1312,1
    - Dst: ktls_chk_platform
      Src: /src/openssl-3.0.15/test/sslapitest.c:1316,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:1317,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1321,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:1322,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1327,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:1327,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1327,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1328,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1334,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:1334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1335,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:1335,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1338,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1339,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1339,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1343,1
    - Dst: create_ssl_objects2
      Src: /src/openssl-3.0.15/test/sslapitest.c:1343,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1347,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1347,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1350,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1350,1
    - Dst: BIO_get_ktls_send
      Src: /src/openssl-3.0.15/test/sslapitest.c:1354,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:1355,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:1361,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:1361,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:1364,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1365,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:1368,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1371,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:1373,1
    - Dst: BIO_get_fp
      Src: /src/openssl-3.0.15/test/sslapitest.c:1374,1
    - Dst: fileno
      Src: /src/openssl-3.0.15/test/sslapitest.c:1375,1
    - Dst: min
      Src: /src/openssl-3.0.15/test/sslapitest.c:1378,1
    - Dst: SSL_sendfile
      Src: /src/openssl-3.0.15/test/sslapitest.c:1379,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:1384,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:1387,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:1390,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1395,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:1407,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1408,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:1411,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1412,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1414,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1415,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1417,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1418,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/sslapitest.c:1420,1
    - Dst: close
      Src: /src/openssl-3.0.15/test/sslapitest.c:1422,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1423,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1424,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 97
    argCount: 2
    argNames:
    - tls_version
    - cipher
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1297
    functionDepth: 5
    functionLinenumber: 1297
    functionLinenumberEnd: 1426
    functionName: execute_test_ktls_sendfile
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - close
    - fileno
    - TEST_int_gt
    - SSL_set_options
    - min
    - SSL_get_error
    - create_test_sockets
    - create_ssl_objects2
    - TEST_true
    - SSL_read
    - RAND_bytes_ex
    - SSL_CTX_free
    - OPENSSL_free
    - TEST_skip
    - TEST_ptr
    - BIO_new_file
    - ktls_chk_platform
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - BIO_free
    - strstr
    - OPENSSL_zalloc
    - SSL_CTX_set_cipher_list
    - BIO_get_fp
    - BIO_get_ktls_send
    - SSL_free
    - BIO_write
    - SSL_sendfile
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int execute_test_ktls_sendfile(int tls_version, const char *cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/sslapitest.c:1472,1
    - Dst: execute_test_ktls
      Src: /src/openssl-3.0.15/test/sslapitest.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1467
    functionDepth: 3
    functionLinenumber: 1467
    functionLinenumberEnd: 1480
    functionName: test_ktls
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 1
    functionsReached:
    - execute_test_ktls
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: int test_ktls(int test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/sslapitest.c:1486,1
    - Dst: execute_test_ktls_sendfile
      Src: /src/openssl-3.0.15/test/sslapitest.c:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1482
    functionDepth: 6
    functionLinenumber: 1482
    functionLinenumberEnd: 1490
    functionName: test_ktls_sendfile
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 1
    functionsReached:
    - execute_test_ktls_sendfile
    - OPENSSL_assert
    linkageType: ''
    returnType: int
    signature: int test_ktls_sendfile(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openssl-3.0.15/test/sslapitest.c:1495,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1495,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1493
    functionDepth: 6
    functionLinenumber: 1493
    functionLinenumberEnd: 1497
    functionName: test_large_message_tls
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TLS_client_method
    - execute_test_large_message
    linkageType: ''
    returnType: int
    signature: int test_large_message_tls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openssl-3.0.15/test/sslapitest.c:1501,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1501,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1499
    functionDepth: 6
    functionLinenumber: 1499
    functionLinenumberEnd: 1503
    functionName: test_large_message_tls_read_ahead
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_server_method
    - TLS_client_method
    - execute_test_large_message
    linkageType: ''
    returnType: int
    signature: int test_large_message_tls_read_ahead(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_large_message
      Src: /src/openssl-3.0.15/test/sslapitest.c:1517,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1517,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1506
    functionDepth: 6
    functionLinenumber: 1506
    functionLinenumberEnd: 1520
    functionName: test_large_message_dtls
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - DTLS_server_method
    - DTLS_client_method
    - execute_test_large_message
    linkageType: ''
    returnType: int
    signature: int test_large_message_dtls(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1538,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1539,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1585,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1586,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1595,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1596,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:1611,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1612,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:1615,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1616,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:1619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1621,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:1621,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1627,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1627,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1628,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1628,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1633,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:1633,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1639,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1639,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1641,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1641,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1651,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1651,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1652,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1652,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1657,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1657,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1660,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:1660,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1662,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1666,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:1666,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1670,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1675,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1676,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1677,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1678,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1679,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1680,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 91
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1682
    functionName: test_large_app_data
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - create_ssl_ctx_pair
    - SSL_set_options
    - create_ssl_objects
    - DTLS_client_method
    - TEST_true
    - memset
    - SSL_CTX_free
    - TEST_size_t_eq
    - OPENSSL_free
    - SSL_read_ex
    - TEST_ptr
    - DTLS_server_method
    - SSL_write_ex
    - TLS_client_method
    - OPENSSL_malloc
    - create_ssl_connection
    - OPENSSL_zalloc
    - SSL_CTX_set_cipher_list
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_large_app_data(int tst)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1700,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:1700,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1708,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1718,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1718,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1719,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:1719,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1725,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:1725,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1729,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:1729,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1732,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1732,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1740,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:1740,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1743,1
    - Dst: SSL_peek
      Src: /src/openssl-3.0.15/test/sslapitest.c:1743,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1746,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1756,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1763,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:1766,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1767,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:1767,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1770,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:1774,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1775,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1780,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1781,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1782,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1783,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 63
    argCount: 4
    argNames:
    - smeth
    - cmeth
    - min_version
    - max_version
    argTypes:
    - SSL_METHOD*
    - SSL_METHOD*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1786
    functionName: execute_cleanse_plaintext
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_set_options
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_write
    - memset
    - SSL_CTX_set_cipher_list
    - SSL_peek
    - SSL_free
    - DTLS_server_method
    - TEST_true
    - SSL_read
    linkageType: ''
    returnType: int
    signature: "int execute_cleanse_plaintext(const SSL_METHOD *smeth,\n                                     const
      SSL_METHOD *cmeth,\n                                     int min_version, int
      max_version)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1795,1
    - Dst: execute_cleanse_plaintext
      Src: /src/openssl-3.0.15/test/sslapitest.c:1795,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1795,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1796,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1804,1
    - Dst: execute_cleanse_plaintext
      Src: /src/openssl-3.0.15/test/sslapitest.c:1804,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1804,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1805,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1813,1
    - Dst: execute_cleanse_plaintext
      Src: /src/openssl-3.0.15/test/sslapitest.c:1813,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1813,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1792
    functionDepth: 2
    functionLinenumber: 1792
    functionLinenumberEnd: 1820
    functionName: test_cleanse_plaintext
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - DTLS_client_method
    - DTLS_server_method
    - TEST_true
    - TLS_server_method
    - execute_cleanse_plaintext
    linkageType: ''
    returnType: int
    signature: int test_cleanse_plaintext(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/sslapitest.c:1827,1
    - Dst: SSL_get_tlsext_status_ids
      Src: /src/openssl-3.0.15/test/sslapitest.c:1832,1
    - Dst: sk_OCSP_RESPID_num
      Src: /src/openssl-3.0.15/test/sslapitest.c:1833,1
    - Dst: sk_OCSP_RESPID_value
      Src: /src/openssl-3.0.15/test/sslapitest.c:1836,1
    - Dst: OCSP_RESPID_match_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:1837,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1843,1
    - Dst: OPENSSL_memdup
      Src: /src/openssl-3.0.15/test/sslapitest.c:1843,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1846,1
    - Dst: SSL_set_tlsext_status_ocsp_resp
      Src: /src/openssl-3.0.15/test/sslapitest.c:1846,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1848,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1823
    functionDepth: 12
    functionLinenumber: 1823
    functionLinenumberEnd: 1853
    functionName: ocsp_server_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - sk_OCSP_RESPID_value
    - OCSP_RESPID_match_ex
    - OPENSSL_free
    - STACK_OF
    - OPENSSL_memdup
    - TEST_ptr
    - SSL_set_tlsext_status_ocsp_resp
    - TEST_true
    - sk_OCSP_RESPID_num
    - SSL_get_tlsext_status_ids
    linkageType: ''
    returnType: int
    signature: int ocsp_server_cb(SSL *s, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_tlsext_status_ocsp_resp
      Src: /src/openssl-3.0.15/test/sslapitest.c:1864,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1855
    functionDepth: 1
    functionLinenumber: 1855
    functionLinenumberEnd: 1870
    functionName: ocsp_client_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_get_tlsext_status_ocsp_resp
    linkageType: ''
    returnType: int
    signature: int ocsp_client_cb(SSL *s, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/sslapitest.c:1877,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:1881,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1881,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:1881,1
    - Dst: SSL_CTX_get_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1886,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:1891,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1892,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1892,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1893,1
    - Dst: SSL_set_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1893,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:1895,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1895,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1899,1
    - Dst: SSL_CTX_set_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1902,1
    - Dst: SSL_CTX_get_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1903,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:1906,1
    - Dst: SSL_get_tlsext_status_type
      Src: /src/openssl-3.0.15/test/sslapitest.c:1907,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1909,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:1916,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-3.0.15/test/sslapitest.c:1917,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:1918,1
    - Dst: SSL_CTX_set_tlsext_status_arg
      Src: /src/openssl-3.0.15/test/sslapitest.c:1919,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1920,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:1920,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1922,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1922,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1924,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1925,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1927,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1928,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1936,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:1936,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1939,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1939,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1941,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:1942,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1944,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1945,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1956,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:1956,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1964,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:1964,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1965,1
    - Dst: OCSP_RESPID_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:1965,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1966,1
    - Dst: sk_OCSP_RESPID_new_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:1966,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1967,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:1967,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:1968,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/sslapitest.c:1968,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1969,1
    - Dst: OCSP_RESPID_set_by_key_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:1969,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1970,1
    - Dst: sk_OCSP_RESPID_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:1970,1
    - Dst: SSL_set_tlsext_status_ids
      Src: /src/openssl-3.0.15/test/sslapitest.c:1973,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1977,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1980,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:1980,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1982,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:1983,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1989,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1990,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1991,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1992,1
    - Dst: sk_OCSP_RESPID_pop_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1993,1
    - Dst: OCSP_RESPID_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1994,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1995,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:1996,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1872
    functionDepth: 12
    functionLinenumber: 1872
    functionLinenumberEnd: 2000
    functionName: test_tlsext_status_type
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_tlsext_status_type
    - create_ssl_ctx_pair
    - X509_free
    - SSL_CTX_set_tlsext_status_cb
    - TEST_int_eq
    - SSL_set_tlsext_status_ids
    - SSL_new
    - OCSP_RESPID_set_by_key_ex
    - SSL_set_tlsext_status_type
    - sk_OCSP_RESPID_new_null
    - sk_OCSP_RESPID_pop_free
    - create_ssl_objects
    - OCSP_RESPID_free
    - sk_OCSP_RESPID_push
    - TEST_true
    - SSL_CTX_free
    - SSL_CTX_get_tlsext_status_type
    - STACK_OF
    - TEST_ptr
    - BIO_new_file
    - TLS_client_method
    - PEM_read_bio_X509
    - create_ssl_connection
    - BIO_free
    - TEST_false
    - SSL_get_tlsext_status_type
    - OCSP_RESPID_new
    - SSL_CTX_set_tlsext_status_arg
    - SSL_free
    - TLS_server_method
    - X509_new_ex
    linkageType: ''
    returnType: int
    signature: int test_tlsext_status_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2015
    functionName: new_session_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int new_session_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2020
    functionName: remove_session_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void remove_session_cb(SSL_CTX *ctx, SSL_SESSION *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ssl
    - id
    - len
    - copy
    argTypes:
    - SSL*
    - unsigned char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2030
    functionName: get_session_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSL_SESSION
    signature: "SSL_SESSION *get_session_cb(SSL *ssl, const unsigned char *id, int
      len,\n                                   int *copy)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2050,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:2050,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2050,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2051,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:2059,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:2060,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2064,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2065,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:2069,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:2071,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:2077,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2080,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2080,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2082,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2082,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2084,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2084,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2088,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2088,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2091,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2093,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2097,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2097,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2099,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2099,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2100,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2102,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:2102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2112,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2113,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2121,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2122,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2126,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2127,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2127,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2133,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2135,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2135,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2139,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2143,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2144,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2152,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2152,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2155,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2155,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2157,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2157,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2162,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2162,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2163,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2163,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2169,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2169,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2173,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2173,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:2179,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2180,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2180,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2182,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2182,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2184,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2184,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2190,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2194,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2194,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2200,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2201,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2202,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2203,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2204,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:2208,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:2211,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2215,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2216,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2218,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2219,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2221,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2223,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:2226,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:2228,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2230,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2232,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2232,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2234,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2234,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2235,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2235,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2246,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2246,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2250,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2250,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2258,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2259,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2260,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2268,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:2268,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2269,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2270,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2271,1
    - Dst: SSL_CTX_remove_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2271,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2273,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2280,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2280,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2282,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2283,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2285,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:2285,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2289,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2293,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2294,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2297,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2298,1
    - Dst: TEST_long_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:2310,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:2310,1
    - Dst: TEST_long_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:2311,1
    - Dst: SSL_SESSION_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:2311,1
    - Dst: TEST_long_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:2312,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:2312,1
    - Dst: TEST_long_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:2313,1
    - Dst: SSL_SESSION_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:2313,1
    - Dst: TEST_long_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:2316,1
    - Dst: SSL_CTX_sess_set_cache_size
      Src: /src/openssl-3.0.15/test/sslapitest.c:2316,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2320,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2321,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2324,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2324,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2325,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:2326,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2332,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2333,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2334,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2335,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2337,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2338,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2340,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2341,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2342,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2343,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 186
    argCount: 4
    argNames:
    - maxprot
    - use_int_cache
    - use_ext_cache
    - s_options
    argTypes:
    - int
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2346
    functionName: execute_test_session
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - SSL_CTX_sess_set_cache_size
    - create_ssl_ctx_pair
    - SSL_CTX_add_session
    - TEST_int_eq
    - SSL_SESSION_set_time
    - SSL_CTX_set_max_proto_version
    - SSL_SESSION_dup
    - shutdown_ssl_connection
    - SSL_get_session
    - SSL_get1_session
    - SSL_set_session
    - SSL_CTX_sess_set_new_cb
    - TEST_long_gt
    - create_ssl_objects
    - SSL_CTX_sess_set_get_cb
    - TEST_true
    - SSL_session_reused
    - SSL_CTX_set_min_proto_version
    - SSL_SESSION_free
    - TEST_long_ne
    - SSL_CTX_remove_session
    - SSL_CTX_free
    - SSL_SESSION_set_timeout
    - TEST_ptr
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_set_options
    - TLS_client_method
    - create_ssl_connection
    - SSL_CTX_sess_set_remove_cb
    - TEST_false
    - TEST_ptr_eq
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: "int execute_test_session(int maxprot, int use_int_cache,\n                                int
      use_ext_cache, long s_options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2352,1
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2349
    functionDepth: 2
    functionLinenumber: 2349
    functionLinenumberEnd: 2361
    functionName: test_session_with_only_int_cache
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_with_only_int_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2366,1
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2363
    functionDepth: 2
    functionLinenumber: 2363
    functionLinenumberEnd: 2375
    functionName: test_session_with_only_ext_cache
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_with_only_ext_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2380,1
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2377
    functionDepth: 2
    functionLinenumber: 2377
    functionLinenumberEnd: 2389
    functionName: test_session_with_both_cache
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_with_both_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2394,1
    - Dst: execute_test_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2391
    functionDepth: 2
    functionLinenumber: 2391
    functionLinenumberEnd: 2403
    functionName: test_session_wo_ca_names
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_session
    linkageType: ''
    returnType: int
    signature: int test_session_wo_ca_names(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2420
    functionName: new_cachesession_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int new_cachesession_cb(SSL *ssl, SSL_SESSION *sess)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:2424,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2425,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:2425,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2429,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:2429,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:2430,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:2430,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:2431,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:2431,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2432,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - sssl
    - cssl
    argTypes:
    - SSL*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2437
    functionName: post_handshake_verify
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_do_handshake
    - TEST_int_eq
    - create_ssl_connection
    - SSL_set_verify
    - SSL_verify_client_post_handshake
    - TEST_int_le
    - TEST_true
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int post_handshake_verify(SSL *sssl, SSL *cssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2444,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:2444,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2444,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2445,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2447,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/openssl-3.0.15/test/sslapitest.c:2447,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2448,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/openssl-3.0.15/test/sslapitest.c:2448,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:2454,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:2456,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - stateful
    - idx
    - sctx
    - cctx
    argTypes:
    - int
    - int
    - SSL_CTX**
    - SSL_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2461
    functionName: setup_ticket_test
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_num_tickets
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set_session_id_context
    - SSL_CTX_set_session_cache_mode
    - TEST_true
    - TLS_server_method
    - SSL_CTX_set_options
    - SSL_CTX_sess_set_new_cb
    linkageType: ''
    returnType: int
    signature: "int setup_ticket_test(int stateful, int idx, SSL_CTX **sctx,\n                             SSL_CTX
      **cctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2471,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2471,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2473,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:2473,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/openssl-3.0.15/test/sslapitest.c:2476,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2478,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2487,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:2487,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2488,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2491,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:2491,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2492,1
    - Dst: post_handshake_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:2499,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2500,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2503,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2504,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2505,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2506,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2508,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2515,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2516,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 4
    argNames:
    - idx
    - sctx
    - cctx
    - succ
    argTypes:
    - int
    - SSL_CTX*
    - SSL_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2463
    functionDepth: 2
    functionLinenumber: 2463
    functionLinenumberEnd: 2518
    functionName: check_resumption
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - SSL_set_post_handshake_auth
    - SSL_shutdown
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - TEST_false
    - SSL_free
    - post_handshake_verify
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int check_resumption(int idx, SSL_CTX *sctx, SSL_CTX *cctx, int succ)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setup_ticket_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:2532,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2535,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2535,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2539,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2539,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2542,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2545,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2546,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2547,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2548,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2549,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2550,1
    - Dst: setup_ticket_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:2563,1
    - Dst: check_resumption
      Src: /src/openssl-3.0.15/test/sslapitest.c:2566,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2572,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2573,1
    - Dst: setup_ticket_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:2576,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2579,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2579,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/openssl-3.0.15/test/sslapitest.c:2583,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2585,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2585,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2588,1
    - Dst: post_handshake_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:2592,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2593,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2596,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2597,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2598,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2599,1
    - Dst: check_resumption
      Src: /src/openssl-3.0.15/test/sslapitest.c:2609,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2615,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2616,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:2617,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2618,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2621,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2622,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - stateful
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2520
    functionDepth: 2
    functionLinenumber: 2520
    functionLinenumberEnd: 2625
    functionName: test_tickets
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_post_handshake_auth
    - SSL_shutdown
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - setup_ticket_test
    - create_ssl_objects
    - check_resumption
    - SSL_free
    - post_handshake_verify
    - TEST_true
    - SSL_SESSION_free
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_tickets(int stateful, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_tickets
      Src: /src/openssl-3.0.15/test/sslapitest.c:2629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2627
    functionDepth: 3
    functionLinenumber: 2627
    functionLinenumberEnd: 2630
    functionName: test_stateless_tickets
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_tickets
    linkageType: ''
    returnType: int
    signature: int test_stateless_tickets(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_tickets
      Src: /src/openssl-3.0.15/test/sslapitest.c:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2632
    functionDepth: 3
    functionLinenumber: 2632
    functionLinenumberEnd: 2635
    functionName: test_stateful_tickets
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_tickets
    linkageType: ''
    returnType: int
    signature: int test_stateful_tickets(int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2644,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:2644,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2644,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2645,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2647,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/openssl-3.0.15/test/sslapitest.c:2647,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:2652,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:2654,1
    - Dst: SSL_CTX_set_psk_find_session_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:2655,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2656,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2662,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2662,1
    - Dst: create_a_psk
      Src: /src/openssl-3.0.15/test/sslapitest.c:2665,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2666,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:2668,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2670,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2670,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2672,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2673,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2675,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2681,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2682,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2683,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2684,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2685,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2686,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2637
    functionDepth: 1
    functionLinenumber: 2637
    functionLinenumberEnd: 2690
    functionName: test_psk_tickets
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - SSL_CTX_set_psk_find_session_callback
    - create_ssl_objects
    - SSL_SESSION_up_ref
    - create_a_psk
    - SSL_CTX_set_psk_use_session_callback
    - TEST_ptr
    - SSL_free
    - SSL_CTX_set_session_id_context
    - SSL_CTX_set_session_cache_mode
    - TEST_true
    - TLS_server_method
    - SSL_SESSION_free
    - SSL_CTX_sess_set_new_cb
    linkageType: ''
    returnType: int
    signature: int test_psk_tickets(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:2696,1
    - Dst: bio_s_always_retry
      Src: /src/openssl-3.0.15/test/sslapitest.c:2696,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2711,1
    - Dst: setup_ticket_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:2711,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2713,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:2715,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2717,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2717,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2725,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2725,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2728,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2729,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2729,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2730,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2730,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2731,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2736,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2736,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2737,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2738,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2739,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2739,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2740,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2741,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2742,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2743,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2743,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2749,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2749,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2750,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2750,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2751,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2752,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2753,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2753,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2754,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2755,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2756,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2762,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2762,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2763,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2763,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2764,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2764,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2765,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2766,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2767,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2767,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2768,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2774,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2774,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2775,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2775,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2776,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:2776,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2777,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2778,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2778,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2779,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2788,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2789,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2789,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:2789,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2793,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2795,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2795,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2796,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:2796,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2797,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2800,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2806,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2806,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2807,1
    - Dst: SSL_new_session_ticket
      Src: /src/openssl-3.0.15/test/sslapitest.c:2807,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2808,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2809,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:2809,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2810,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2813,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2813,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2814,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2815,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2816,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2816,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2817,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2818,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2819,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2820,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2820,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2823,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:2823,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2824,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2828,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2828,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2829,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2830,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2831,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2831,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2832,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2833,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:2834,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:2835,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:2835,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2838,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:2839,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2843,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2844,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2845,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2846,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2847,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:2848,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 79
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2692
    functionDepth: 6
    functionLinenumber: 2692
    functionLinenumberEnd: 2852
    functionName: test_extra_tickets
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - SSL_new_session_ticket
    - SSL_set0_wbio
    - SSL_CTX_sess_set_new_cb
    - BIO_new
    - SSL_get_error
    - setup_ticket_test
    - create_ssl_objects
    - BIO_up_ref
    - TEST_true
    - bio_s_always_retry
    - SSL_do_handshake
    - SSL_CTX_free
    - TEST_size_t_eq
    - SSL_read_ex
    - SSL_get_wbio
    - TEST_ptr
    - SSL_write_ex
    - SSL_shutdown
    - create_ssl_connection
    - BIO_free
    - TEST_false
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int test_extra_tickets(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - res
    - bio1
    - bio2
    - type
    argTypes:
    - BIO**
    - BIO*
    - BIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2876
    functionDepth: 0
    functionLinenumber: 2876
    functionLinenumberEnd: 2889
    functionName: setupbio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setupbio(BIO **res, BIO *bio1, BIO *bio2, int type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2932,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:2932,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2932,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:2933,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:2944,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:2945,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2948,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:2948,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2956,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:2956,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/sslapitest.c:2956,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:2964,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:2964,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/sslapitest.c:2964,1
    - Dst: setupbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2969,1
    - Dst: setupbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2970,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2971,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:2979,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:2981,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:2985,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:2985,1
    - Dst: setupbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2990,1
    - Dst: setupbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:2991,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:3001,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:3005,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3007,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3012,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3013,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3020,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3021,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3022,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3023,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 68
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 2903
    functionDepth: 6
    functionLinenumber: 2903
    functionLinenumberEnd: 3025
    functionName: test_ssl_set_bio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - setupbio
    - TLS_client_method
    - create_ssl_ctx_pair
    - BIO_new
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - BIO_free
    - SSL_CTX_set_max_proto_version
    - SSL_set_bio
    - BIO_up_ref
    - SSL_free
    - TEST_ptr
    - SSL_CTX_set_min_proto_version
    - TLS_server_method
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_ssl_set_bio(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3036,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3036,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3036,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3037,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:3037,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3038,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:3038,1
    - Dst: BIO_f_ssl
      Src: /src/openssl-3.0.15/test/sslapitest.c:3038,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3039,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:3039,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/sslapitest.c:3039,1
    - Dst: BIO_set_ssl
      Src: /src/openssl-3.0.15/test/sslapitest.c:3042,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:3047,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3051,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:3051,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/sslapitest.c:3051,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3056,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3058,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/test/sslapitest.c:3063,1
    - Dst: BIO_pop
      Src: /src/openssl-3.0.15/test/sslapitest.c:3065,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3069,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3070,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3071,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3072,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - pop_ssl
    - change_bio
    argTypes:
    - int
    - bio_change_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3029
    functionDepth: 6
    functionLinenumber: 3029
    functionLinenumberEnd: 3075
    functionName: execute_test_ssl_bio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new_ex
    - BIO_new
    - BIO_set_ssl
    - SSL_CTX_free
    - SSL_set0_rbio
    - BIO_free
    - BIO_f_ssl
    - TLS_method
    - SSL_new
    - SSL_set0_wbio
    - SSL_free
    - TEST_ptr
    - BIO_pop
    - BIO_s_mem
    - BIO_push
    linkageType: ''
    returnType: int
    signature: int execute_test_ssl_bio(int pop_ssl, bio_change_t change_bio)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3077
    functionDepth: 7
    functionLinenumber: 3077
    functionLinenumberEnd: 3080
    functionName: test_ssl_bio_pop_next_bio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_pop_next_bio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3082
    functionDepth: 7
    functionLinenumber: 3082
    functionLinenumberEnd: 3085
    functionName: test_ssl_bio_pop_ssl_bio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_pop_ssl_bio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3087
    functionDepth: 7
    functionLinenumber: 3087
    functionLinenumberEnd: 3090
    functionName: test_ssl_bio_change_rbio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_change_rbio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execute_test_ssl_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3092
    functionDepth: 7
    functionLinenumber: 3092
    functionLinenumberEnd: 3095
    functionName: test_ssl_bio_change_wbio
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - execute_test_ssl_bio
    linkageType: ''
    returnType: int
    signature: int test_ssl_bio_change_wbio(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:3150,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:3150,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:3153,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:3155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3157,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:3157,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3157,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3158,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:3162,1
    - Dst: SSL_CTX_set1_sigalgs
      Src: /src/openssl-3.0.15/test/sslapitest.c:3168,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:3170,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:3174,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:3180,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3185,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:3185,1
    - Dst: SSL_set1_sigalgs
      Src: /src/openssl-3.0.15/test/sslapitest.c:3193,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:3195,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:3198,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3207,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:3207,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3215,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3216,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3217,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3218,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3141
    functionDepth: 1
    functionLinenumber: 3141
    functionLinenumberEnd: 3221
    functionName: test_set_sigalgs
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_size_t_le
    - SSL_set1_sigalgs
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set1_sigalgs_list
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_free
    - SSL_CTX_set_max_proto_version
    - TEST_info
    - SSL_CTX_set1_sigalgs
    - SSL_set1_sigalgs_list
    - SSL_free
    - TEST_true
    - TLS_server_method
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_set_sigalgs(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:3250,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - ssl
    - md
    - id
    - idlen
    - sess
    argTypes:
    - SSL*
    - EVP_MD*
    - unsigned char**
    - size_t*
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3228
    functionDepth: 1
    functionLinenumber: 3228
    functionLinenumberEnd: 3257
    functionName: use_session_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strlen
    - SSL_SESSION_up_ref
    linkageType: ''
    returnType: int
    signature: "int use_session_cb(SSL *ssl, const EVP_MD *md, const unsigned char
      **id,\n                          size_t *idlen, SSL_SESSION **sess)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3269,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:3280,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:3282,1
    - Dst: strncpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:3283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - ssl
    - hint
    - id
    - max_id_len
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3260
    functionDepth: 1
    functionLinenumber: 3260
    functionLinenumberEnd: 3286
    functionName: psk_client_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_master_key
    - strncpy
    - strlen
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_client_cb(SSL *ssl, const char *hint, char *id,\n
      \                                 unsigned int max_id_len,\n                                  unsigned
      char *psk,\n                                  unsigned int max_psk_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3302,1
    - Dst: strncmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:3303,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:3309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ssl
    - identity
    - identity_len
    - sess
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - SSL_SESSION**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3289
    functionDepth: 1
    functionLinenumber: 3289
    functionLinenumberEnd: 3313
    functionName: find_session_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - SSL_SESSION_up_ref
    linkageType: ''
    returnType: int
    signature: "int find_session_cb(SSL *ssl, const unsigned char *identity,\n                           size_t
      identity_len, SSL_SESSION **sess)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:3331,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:3336,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:3338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ssl
    - identity
    - psk
    - max_psk_len
    argTypes:
    - SSL*
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3316
    functionDepth: 1
    functionLinenumber: 3316
    functionLinenumberEnd: 3341
    functionName: psk_server_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_master_key
    - strcmp
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int psk_server_cb(SSL *ssl, const char *identity,\n                                  unsigned
      char *psk, unsigned int max_psk_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-3.0.15/test/sslapitest.c:3372,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-3.0.15/test/sslapitest.c:3378,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:3383,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3384,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3385,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3386,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:3386,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3387,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:3387,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3388,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:3389,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ssl
    - mdsize
    argTypes:
    - SSL*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3359
    functionDepth: 1
    functionLinenumber: 3359
    functionLinenumberEnd: 3395
    functionName: create_a_psk
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 1
    functionsReached:
    - SSL_CIPHER_find
    - SSL_SESSION_set1_master_key
    - SSL_SESSION_set_protocol_version
    - SSL_SESSION_set_cipher
    - TEST_ptr
    - TEST_true
    - SSL_SESSION_free
    - SSL_SESSION_new
    linkageType: ''
    returnType: SSL_SESSION
    signature: SSL_SESSION *create_a_psk(SSL *ssl, size_t mdsize)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3406,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:3406,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3406,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3407,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3412,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3412,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openssl-3.0.15/test/sslapitest.c:3417,1
    - Dst: SSL_CTX_set_read_ahead
      Src: /src/openssl-3.0.15/test/sslapitest.c:3418,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:3421,1
    - Dst: SSL_CTX_set_psk_find_session_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:3422,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3428,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:3428,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3439,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:3439,1
    - Dst: create_a_psk
      Src: /src/openssl-3.0.15/test/sslapitest.c:3443,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3444,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3449,1
    - Dst: SSL_SESSION_set_max_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3449,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3451,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:3451,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3452,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3459,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:3459,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3460,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3461,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3473,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:3473,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:3477,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:3478,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:3479,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3480,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3481,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3484,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:3484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3486,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:3486,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 7
    argNames:
    - cctx
    - sctx
    - clientssl
    - serverssl
    - sess
    - idx
    - mdsize
    argTypes:
    - SSL_CTX**
    - SSL_CTX**
    - SSL**
    - SSL**
    - SSL_SESSION**
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3490
      start: 3401
    functionDepth: 2
    functionLinenumber: 3401
    functionLinenumberEnd: 3490
    functionName: setupearly_data_test
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_psk_find_session_callback
    - SSL_CTX_set_psk_use_session_callback
    - SSL_CTX_set_read_ahead
    - SSL_set_tlsext_host_name
    - SSL_SESSION_set_max_early_data
    - SSL_get1_session
    - SSL_set_session
    - SSL_CTX_set_max_early_data
    - create_ssl_objects
    - TEST_true
    - SSL_SESSION_free
    - TEST_ptr
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - create_a_psk
    - SSL_free
    - SSL_SESSION_up_ref
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: "int setupearly_data_test(SSL_CTX **cctx, SSL_CTX **sctx, SSL **clientssl,\n
      \                               SSL **serverssl, SSL_SESSION **sess, int idx,\n
      \                               size_t mdsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:3504,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:3506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - timer
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3492
    functionDepth: 1
    functionLinenumber: 3492
    functionLinenumberEnd: 3509
    functionName: check_early_data_timeout
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_skip
    - time
    linkageType: ''
    returnType: int
    signature: int check_early_data_timeout(time_t timer)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3522,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:3522,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:3528,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3529,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3529,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3529,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3531,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3531,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3534,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3534,1
    - Dst: check_early_data_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:3537,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3541,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3541,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3542,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:3542,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3550,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3550,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3550,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3552,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3552,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3553,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3553,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3554,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3554,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3558,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3558,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3558,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3560,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3560,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3564,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3564,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3567,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3567,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3571,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3571,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3571,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3573,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3573,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3574,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3574,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3575,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3575,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3582,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3582,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3582,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3583,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3583,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3584,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:3584,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3595,1
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3595,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-3.0.15/test/sslapitest.c:3596,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:3597,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3602,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3602,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3603,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3607,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3607,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3610,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3617,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3617,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3617,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3619,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3619,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3623,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3623,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3625,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3629,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3629,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3630,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3630,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:3634,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3634,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3634,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:3637,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3638,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3638,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:3642,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3645,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3645,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3646,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3646,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:3654,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3654,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:3655,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3655,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3660,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3660,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3660,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3661,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3661,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3662,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3662,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3663,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3663,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3666,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:3667,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:3671,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:3672,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3673,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3674,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3676,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:3676,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3678,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:3678,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3682,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3682,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3682,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3684,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3684,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3685,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3685,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3688,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3688,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:3691,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:3691,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:3692,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/sslapitest.c:3692,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:3696,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3696,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3696,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:3699,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3700,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3700,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:3704,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3707,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3707,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3707,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3708,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3708,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3709,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3709,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3710,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3710,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3716,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3717,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3718,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3720,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3721,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3722,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3723,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 109
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3725
      start: 3511
    functionDepth: 4
    functionLinenumber: 3511
    functionLinenumberEnd: 3725
    functionName: test_early_data_read_write
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_read_early_data
    - TEST_int_eq
    - time
    - strlen
    - SSL_get_rbio
    - TEST_int_gt
    - SSL_get1_session
    - SSL_set_session
    - BIO_read_ex
    - create_ssl_objects
    - TEST_size_t_lt
    - TEST_true
    - SSL_SESSION_free
    - setupearly_data_test
    - BIO_write_ex
    - SSL_CTX_free
    - SSL_write_early_data
    - TEST_size_t_eq
    - ERR_clear_error
    - SSL_read_ex
    - SSL_get_early_data_status
    - SSL_write_ex
    - check_early_data_timeout
    - SSL_accept
    - SSL_shutdown
    - TEST_false
    - SSL_connect
    - SSL_free
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: int test_early_data_read_write(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3739
      start: 3729
    functionDepth: 0
    functionLinenumber: 3729
    functionLinenumberEnd: 3739
    functionName: allow_early_data_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int allow_early_data_cb(SSL *s, void *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3762,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:3762,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3762,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3763,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:3769,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:3771,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:3773,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-3.0.15/test/sslapitest.c:3775,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-3.0.15/test/sslapitest.c:3777,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3778,1
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-3.0.15/test/sslapitest.c:3778,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3780,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3783,1
    - Dst: SSL_CTX_set_allow_early_data_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:3785,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3788,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:3788,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3797,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:3797,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3798,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:3798,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:3801,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:3802,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3803,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3804,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3807,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:3807,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3809,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:3809,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:3813,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3814,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3814,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3814,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3816,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3816,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3820,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3820,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3827,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:3827,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3832,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3832,1
    - Dst: check_early_data_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:3835,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3838,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3838,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:3843,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:3843,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3844,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3844,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3847,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:3847,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3853,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:3853,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3854,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:3854,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3855,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3861,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3862,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3863,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3865,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3866,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3867,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:3868,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 69
    argCount: 3
    argNames:
    - idx
    - usecb
    - confopt
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3870
      start: 3750
    functionDepth: 3
    functionLinenumber: 3750
    functionLinenumberEnd: 3870
    functionName: test_early_data_replay_int
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_CONF_CTX_set_flags
    - SSL_read_early_data
    - create_ssl_ctx_pair
    - SSL_CTX_set_allow_early_data_cb
    - TEST_int_eq
    - time
    - SSL_CONF_CTX_set_ssl_ctx
    - strlen
    - TEST_int_gt
    - SSL_set_session
    - create_ssl_objects
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - setupearly_data_test
    - SSL_CTX_free
    - SSL_CONF_CTX_new
    - SSL_write_early_data
    - TEST_size_t_eq
    - SSL_CONF_CTX_free
    - TEST_ptr
    - SSL_get_early_data_status
    - check_early_data_timeout
    - SSL_CTX_set_options
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - SSL_connect
    - SSL_free
    - SSL_CONF_cmd
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_early_data_replay_int(int idx, int usecb, int confopt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_early_data_replay_int
      Src: /src/openssl-3.0.15/test/sslapitest.c:3878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3872
    functionDepth: 4
    functionLinenumber: 3872
    functionLinenumberEnd: 3882
    functionName: test_early_data_replay
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_early_data_replay_int
    linkageType: ''
    returnType: int
    signature: int test_early_data_replay(int idx)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3914,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:3914,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3914,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:3915,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/openssl-3.0.15/test/sslapitest.c:3921,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/openssl-3.0.15/test/sslapitest.c:3922,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3925,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:3925,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3926,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:3926,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3929,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:3929,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3938,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:3938,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3941,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:3941,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3956,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:3956,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:3956,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3961,1
    - Dst: SSL_set_recv_max_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3961,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:3965,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3965,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3965,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3967,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3967,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3971,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:3971,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3974,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:3975,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:3975,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:3990,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3990,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:3990,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:3991,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:3991,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:3998,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4009,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4009,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4009,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4017,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4017,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4029,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4029,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4030,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4030,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4038,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4042,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4047,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4047,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4047,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4048,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4048,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4049,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4049,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4051,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4051,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4052,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4052,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4059,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4059,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4065,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4066,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4068,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4069,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4070,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4071,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4072,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 87
    argCount: 3
    argNames:
    - testtype
    - cipher
    - idx
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4074
      start: 3902
    functionDepth: 4
    functionLinenumber: 3902
    functionLinenumberEnd: 4074
    functionName: early_data_skip_helper
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_read_early_data
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - TEST_int_eq
    - time
    - SSL_SESSION_set_time
    - strlen
    - SSL_get_error
    - TEST_long_eq
    - ERR_peek_error
    - SSL_set_recv_max_early_data
    - TEST_error
    - TEST_true
    - SSL_SESSION_free
    - setupearly_data_test
    - BIO_write_ex
    - SSL_CTX_free
    - SSL_write_early_data
    - TEST_size_t_eq
    - ERR_clear_error
    - SSL_read_ex
    - SSL_get_wbio
    - SSL_get_early_data_status
    - SSL_write_ex
    - SSL_CTX_set_security_level
    - TLS_client_method
    - TEST_false
    - SSL_free
    - SSL_set1_groups_list
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int early_data_skip_helper(int testtype, int cipher, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-3.0.15/test/sslapitest.c:4082,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4083,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4080
    functionDepth: 5
    functionLinenumber: 4080
    functionLinenumberEnd: 4085
    functionName: test_early_data_skip
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-3.0.15/test/sslapitest.c:4093,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4094,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4096
      start: 4091
    functionDepth: 5
    functionLinenumber: 4091
    functionLinenumberEnd: 4096
    functionName: test_early_data_skip_hrr
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip_hrr(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-3.0.15/test/sslapitest.c:4105,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4106,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4108
      start: 4103
    functionDepth: 5
    functionLinenumber: 4103
    functionLinenumberEnd: 4108
    functionName: test_early_data_skip_hrr_fail
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip_hrr_fail(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_data_skip_helper
      Src: /src/openssl-3.0.15/test/sslapitest.c:4116,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4117,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4119
      start: 4114
    functionDepth: 5
    functionLinenumber: 4114
    functionLinenumberEnd: 4119
    functionName: test_early_data_skip_abort
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - early_data_skip_helper
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_early_data_skip_abort(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4134,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:4134,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-3.0.15/test/sslapitest.c:4140,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4141,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4141,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4141,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4145,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4145,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4148,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4149,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4149,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4151,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4151,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4156,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4156,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4156,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4157,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4157,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4158,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4158,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4159,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4159,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4160,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4160,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4161,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4161,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4164,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4164,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4165,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4165,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4171,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4172,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4173,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4175,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4176,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4177,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4178,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4125
    functionDepth: 3
    functionLinenumber: 4125
    functionLinenumberEnd: 4180
    functionName: test_early_data_not_sent
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - setupearly_data_test
    - TEST_mem_eq
    - SSL_read_early_data
    - SSL_set_connect_state
    - TEST_int_eq
    - SSL_CTX_free
    - TEST_false
    - TEST_size_t_eq
    - SSL_read_ex
    - strlen
    - SSL_free
    - SSL_get_early_data_status
    - TEST_true
    - SSL_write_ex
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int test_early_data_not_sent(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4196,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:4197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4205
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4205
    functionName: alpn_select_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int alpn_select_cb(SSL *ssl, const unsigned char **out,\n                          unsigned
      char *outlen, const unsigned char *in,\n                          unsigned int
      inlen, void *arg)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4229,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:4229,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4246,1
    - Dst: SSL_SESSION_set1_hostname
      Src: /src/openssl-3.0.15/test/sslapitest.c:4246,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4247,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:4247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4255,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-3.0.15/test/sslapitest.c:4255,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4257,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:4257,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4269,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:4269,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4280,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:4281,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:4282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4283,1
    - Dst: SSL_SESSION_set1_hostname
      Src: /src/openssl-3.0.15/test/sslapitest.c:4283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4288,1
    - Dst: SSL_SESSION_set1_hostname
      Src: /src/openssl-3.0.15/test/sslapitest.c:4288,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4289,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:4289,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4290,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:4290,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4312,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-3.0.15/test/sslapitest.c:4312,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4314,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:4314,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:4318,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4323,1
    - Dst: SSL_SESSION_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:4324,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:4325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4326,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-3.0.15/test/sslapitest.c:4326,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4329,1
    - Dst: SSL_SESSION_set1_alpn_selected
      Src: /src/openssl-3.0.15/test/sslapitest.c:4329,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4332,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:4332,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:4335,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4343,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-3.0.15/test/sslapitest.c:4347,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4349,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4349,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4349,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4351,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4351,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4352,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/sslapitest.c:4352,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4352,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:4355,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4357,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4357,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4357,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4361,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4361,1
    - Dst: check_early_data_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:4363,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4368,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4368,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4369,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4369,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4370,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:4370,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4377,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4378,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4379,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4381,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4382,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4383,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4384,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 91
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4386
      start: 4208
    functionDepth: 3
    functionLinenumber: 4208
    functionLinenumberEnd: 4386
    functionName: test_early_data_psk
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_read_early_data
    - ERR_GET_REASON
    - TEST_int_eq
    - SSL_CTX_set_alpn_select_cb
    - time
    - SSL_SESSION_dup
    - SSL_set_tlsext_host_name
    - strlen
    - SSL_get_error
    - ERR_get_error
    - SSL_set_alpn_protos
    - TEST_error
    - SSL_SESSION_set_protocol_version
    - TEST_true
    - SSL_SESSION_free
    - setupearly_data_test
    - SSL_CTX_free
    - SSL_write_early_data
    - TEST_ptr
    - SSL_get_early_data_status
    - SSL_SESSION_set1_alpn_selected
    - SSL_CTX_set_tlsext_servername_callback
    - check_early_data_timeout
    - SSL_SESSION_set1_hostname
    - SSL_set_connect_state
    - TEST_false
    - SSL_connect
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int test_early_data_psk(int idx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/openssl-3.0.15/test/sslapitest.c:4409,1
    - Dst: defined
      Src: /src/openssl-3.0.15/test/sslapitest.c:4409,1
    - Dst: defined
      Src: /src/openssl-3.0.15/test/sslapitest.c:4420,1
    - Dst: defined
      Src: /src/openssl-3.0.15/test/sslapitest.c:4420,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4436,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:4436,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4441,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4441,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4442,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4442,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-3.0.15/test/sslapitest.c:4452,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:4453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4453,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:4453,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-3.0.15/test/sslapitest.c:4456,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:4457,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4458,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4458,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4458,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4462,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4462,1
    - Dst: check_early_data_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:4465,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4469,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4469,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4470,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4470,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4472,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:4472,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4473,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/sslapitest.c:4473,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4477,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4477,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4477,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4478,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4481,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4481,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4482,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4482,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4487,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4488,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4489,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4492,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4494,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4495,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4496,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4497,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4498,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 50
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4396
    functionDepth: 3
    functionLinenumber: 4396
    functionLinenumberEnd: 4500
    functionName: test_early_data_psk_with_all_ciphers
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_read_early_data
    - TEST_int_eq
    - time
    - strlen
    - SSL_set_ciphersuites
    - defined
    - SSL_CIPHER_find
    - TEST_true
    - SSL_SESSION_free
    - setupearly_data_test
    - SSL_CTX_free
    - SSL_write_early_data
    - TEST_size_t_eq
    - SSL_read_ex
    - SSL_SESSION_set_cipher
    - SSL_get_early_data_status
    - TEST_ptr
    - SSL_write_ex
    - check_early_data_timeout
    - SSL_accept
    - SSL_shutdown
    - SSL_set_connect_state
    - SSL_connect
    - SSL_free
    linkageType: ''
    returnType: int
    signature: int test_early_data_psk_with_all_ciphers(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4515,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:4515,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4521,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4521,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4521,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:4529,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/sslapitest.c:4529,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:4530,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:4530,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4531,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4531,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:4533,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/sslapitest.c:4533,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4534,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4534,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4539,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4539,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4539,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4540,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4540,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4543,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4543,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4544,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4544,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4550,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4551,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4552,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4554,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4555,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4556,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4557,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4506
    functionDepth: 3
    functionLinenumber: 4506
    functionLinenumberEnd: 4559
    functionName: test_early_data_not_expected
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - setupearly_data_test
    - TEST_mem_eq
    - SSL_accept
    - SSL_CTX_free
    - TEST_int_eq
    - SSL_write_early_data
    - SSL_connect
    - TEST_size_t_eq
    - SSL_read_ex
    - strlen
    - SSL_free
    - TEST_int_le
    - SSL_get_early_data_status
    - TEST_true
    - SSL_write_ex
    - TEST_int_gt
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int test_early_data_not_expected(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4575,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:4575,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:4581,1
    - Dst: SSL_set_connect_state
      Src: /src/openssl-3.0.15/test/sslapitest.c:4582,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4583,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4583,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4583,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4591,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4591,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4600,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4600,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4600,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4601,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:4601,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4604,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4605,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4605,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4610,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4610,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4610,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4611,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4611,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4612,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:4612,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4614,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4614,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4615,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4615,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4616,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4616,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4616,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4617,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4617,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:4618,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4619,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:4619,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4625,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4626,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4628,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4629,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4630,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4631,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 29
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4634
      start: 4567
    functionDepth: 3
    functionLinenumber: 4567
    functionLinenumberEnd: 4634
    functionName: test_early_data_tls1_2
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - setupearly_data_test
    - TEST_mem_eq
    - SSL_read_early_data
    - SSL_set_connect_state
    - TEST_int_eq
    - SSL_CTX_free
    - SSL_set_max_proto_version
    - TEST_false
    - TEST_size_t_eq
    - SSL_read_ex
    - strlen
    - SSL_free
    - SSL_get_early_data_status
    - TEST_true
    - SSL_write_ex
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int test_early_data_tls1_2(int idx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4657,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:4657,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:4657,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:4658,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4660,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4660,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4666,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:4666,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4672,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4672,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4677,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4677,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4682,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4682,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4688,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:4688,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4694,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4694,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4699,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4699,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4704,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4704,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4710,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4711,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4712,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4713,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 48
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4716
      start: 4651
    functionDepth: 1
    functionLinenumber: 4651
    functionLinenumberEnd: 4716
    functionName: test_set_ciphersuite
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_ciphersuites
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - SSL_CTX_set_ciphersuites
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_set_cipher_list
    - SSL_free
    - TEST_true
    - TLS_server_method
    - SSL_set_cipher_list
    linkageType: ''
    returnType: int
    signature: int test_set_ciphersuite(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4727,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:4727,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:4727,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:4728,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4730,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4730,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4734,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4734,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4736,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4736,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4738,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4738,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:4742,1
    - Dst: SSL_SESSION_get0_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:4744,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4745,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4746,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4747,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4748,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4752,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4752,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4754,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4754,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4756,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:4756,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4757,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4757,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4759,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:4759,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4762,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:4763,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4764,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4765,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4766,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4767,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4774,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4774,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4775,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4775,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4777,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:4777,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4778,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4778,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4780,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:4780,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4783,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4785,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4786,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4787,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4788,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4792,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4792,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4793,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4793,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4795,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4795,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:4799,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4800,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:4801,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4802,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4803,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4806,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4806,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4808,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4808,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4810,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4810,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4812,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:4812,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4818,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4818,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:4831,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4831,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:4833,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/sslapitest.c:4833,1
    - Dst: ERR_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:4833,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4840,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4841,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4842,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4843,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:4844,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4847
      start: 4718
    functionDepth: 2
    functionLinenumber: 4718
    functionLinenumberEnd: 4847
    functionName: test_ciphersuite_change
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - ERR_GET_REASON
    - SSL_CTX_set_ciphersuites
    - TEST_int_eq
    - SSL_get1_session
    - SSL_set_session
    - create_ssl_objects
    - ERR_get_error
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - SSL_CTX_free
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - TEST_false
    - SSL_SESSION_get0_cipher
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ciphersuite_change(void)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4894,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:4911,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:4917,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:4931,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4960,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:4960,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:4960,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:4961,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4966,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4966,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4970,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:4970,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4974,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:4974,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4977,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-3.0.15/test/sslapitest.c:4977,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4985,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:4985,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4991,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:4991,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4995,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:4995,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4996,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:4996,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:4999,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:4999,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5007,1
    - Dst: SSL_get_shared_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5007,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5011,1
    - Dst: SSL_group_to_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:5011,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5017,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5017,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5019,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5019,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5025,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5026,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5027,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5028,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 110
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5030
      start: 4874
    functionDepth: 1
    functionLinenumber: 4874
    functionLinenumberEnd: 5030
    functionName: test_key_exchange
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - TEST_int_eq
    - SSL_get_shared_group
    - SSL_group_to_name
    - SSL_set1_groups
    - create_ssl_objects
    - TEST_true
    - SSL_CTX_free
    - TEST_skip
    - SSL_CTX_set_dh_auto
    - OSSL_NELEM
    - TLS_client_method
    - create_ssl_connection
    - SSL_CTX_set_cipher_list
    - SSL_get_negotiated_group
    - TEST_str_eq
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_key_exchange(int idx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:5042,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:5043,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5050,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5050,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5053,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5053,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5057,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5057,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5062,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5062,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5065,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5065,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5069,1
    - Dst: SSL_set1_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5069,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - serverssl
    - clientssl
    - clientmulti
    - isecdhe
    - idx
    argTypes:
    - SSL*
    - SSL*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5075
      start: 5035
    functionDepth: 1
    functionLinenumber: 5035
    functionLinenumberEnd: 5075
    functionName: set_ssl_groups
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set1_groups
    - TEST_true
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: "int set_ssl_groups(SSL *serverssl, SSL *clientssl, int clientmulti,\n
      \                         int isecdhe, int idx)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:5111,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:5112,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:5133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5138,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:5138,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5138,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5139,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5148,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5148,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5151,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-3.0.15/test/sslapitest.c:5151,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5153,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5153,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5158,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5162,1
    - Dst: set_ssl_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5162,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5166,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5166,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5170,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5170,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5171,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5171,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:5174,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:5174,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:5177,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:5178,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5179,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5180,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5184,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5186,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:5186,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5187,1
    - Dst: set_ssl_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5187,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5191,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5191,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5192,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5192,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5196,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5196,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5197,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5197,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:5200,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:5201,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5202,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5203,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:5221,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5230,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5230,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5232,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:5232,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5233,1
    - Dst: set_ssl_groups
      Src: /src/openssl-3.0.15/test/sslapitest.c:5233,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5237,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5237,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5238,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5238,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5242,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5242,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5243,1
    - Dst: SSL_get_negotiated_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:5243,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5248,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5249,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5250,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5251,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5252,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 97
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5254
      start: 5100
    functionDepth: 2
    functionLinenumber: 5100
    functionLinenumberEnd: 5254
    functionName: test_negotiated_group
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_ne
    - SSL_get1_session
    - SSL_set_session
    - create_ssl_objects
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - TEST_uint_eq
    - SSL_CTX_free
    - TEST_skip
    - SSL_CTX_set_dh_auto
    - TEST_ptr
    - OSSL_NELEM
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - set_ssl_groups
    - SSL_CTX_set_cipher_list
    - SSL_get_negotiated_group
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_negotiated_group(int idx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/openssl-3.0.15/test/sslapitest.c:5275,1
    - Dst: defined
      Src: /src/openssl-3.0.15/test/sslapitest.c:5275,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:5314,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5318,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:5318,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5318,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5319,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5325,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:5325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5326,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:5326,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5329,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5329,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5330,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5336,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5336,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5341,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:5341,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5342,1
    - Dst: SSL_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:5342,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5345,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5345,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5346,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5346,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5352,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5352,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:5356,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:5356,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:5358,1
    - Dst: SSL_get_current_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:5358,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5360,1
    - Dst: TEST_strn_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5368,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:5369,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5375,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5379,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5381,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5383,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5385,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5392,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5393,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5394,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5395,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 82
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5397
      start: 5264
    functionDepth: 1
    functionLinenumber: 5264
    functionLinenumberEnd: 5397
    functionName: test_tls13_ciphersuite
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - TEST_strn_eq
    - strlen
    - SSL_set_ciphersuites
    - SSL_CIPHER_get_name
    - defined
    - create_ssl_objects
    - TEST_true
    - SSL_CTX_free
    - SSL_set_cipher_list
    - SSL_get_current_cipher
    - OSSL_NELEM
    - TLS_client_method
    - create_ssl_connection
    - SSL_CTX_set_cipher_list
    - TEST_str_eq
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_tls13_ciphersuite(int idx)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5419,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:5419,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5419,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5420,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5432,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:5432,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5441,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:5441,1
    - Dst: SSL_CTX_set_psk_use_session_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:5453,1
    - Dst: SSL_CTX_set_psk_find_session_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:5454,1
    - Dst: SSL_CTX_set_psk_client_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:5458,1
    - Dst: SSL_CTX_set_psk_server_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:5459,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5473,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5473,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5475,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5475,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5477,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5477,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5478,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5482,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5483,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5488,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5489,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5492,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5493,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5494,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5495,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5499,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5504,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5504,1
    - Dst: SSL_CIPHER_find
      Src: /src/openssl-3.0.15/test/sslapitest.c:5509,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:5510,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:5511,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:5512,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5513,1
    - Dst: SSL_SESSION_set1_master_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:5513,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5515,1
    - Dst: SSL_SESSION_set_cipher
      Src: /src/openssl-3.0.15/test/sslapitest.c:5515,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5516,1
    - Dst: SSL_SESSION_set_protocol_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:5516,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5518,1
    - Dst: SSL_SESSION_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:5518,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5523,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5523,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5524,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5524,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5525,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5525,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5529,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5530,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5531,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5532,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5535,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5536,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5537,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5538,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5542,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5547,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5547,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5553,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5553,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5556,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:5556,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5564,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5564,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5565,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5565,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5566,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5566,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5570,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5571,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5572,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5573,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5576,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5577,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5578,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5579,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5583,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5594,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5596,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5596,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5598,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5598,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5599,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:5599,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5603,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5604,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5605,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5610,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5613,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5614,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5615,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5616,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5620,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5626,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5627,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5629,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5630,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5631,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5632,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 121
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5634
      start: 5406
    functionDepth: 1
    functionLinenumber: 5406
    functionLinenumberEnd: 5634
    functionName: test_tls13_psk
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_psk_find_session_callback
    - SSL_CTX_set_psk_use_session_callback
    - shutdown_ssl_connection
    - create_ssl_objects
    - SSL_CIPHER_find
    - SSL_SESSION_set1_master_key
    - SSL_SESSION_set_protocol_version
    - TEST_true
    - SSL_session_reused
    - SSL_CTX_set_psk_server_callback
    - SSL_SESSION_new
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_set1_groups_list
    - SSL_CTX_set_psk_client_callback
    - SSL_SESSION_set_cipher
    - TEST_ptr
    - TLS_client_method
    - create_ssl_connection
    - TEST_false
    - SSL_free
    - SSL_SESSION_up_ref
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_tls13_psk(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/sslapitest.c:5645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5638
    functionDepth: 0
    functionLinenumber: 5638
    functionLinenumberEnd: 5649
    functionName: generate_cookie_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int generate_cookie_callback(SSL *ssl, unsigned char *cookie,\n                                    unsigned
      int *cookie_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:5655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5659
      start: 5651
    functionDepth: 0
    functionLinenumber: 5651
    functionLinenumberEnd: 5659
    functionName: verify_cookie_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int verify_cookie_callback(SSL *ssl, const unsigned char *cookie,\n
      \                                 unsigned int cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_cookie_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:5665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5668
      start: 5661
    functionDepth: 0
    functionLinenumber: 5661
    functionLinenumberEnd: 5668
    functionName: generate_stateless_cookie_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - generate_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int generate_stateless_cookie_callback(SSL *ssl, unsigned char *cookie,\n
      \                                       size_t *cookie_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_cookie_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:5673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - cookie
    - cookie_len
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5674
      start: 5670
    functionDepth: 0
    functionLinenumber: 5670
    functionLinenumberEnd: 5674
    functionName: verify_stateless_cookie_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - verify_cookie_callback
    linkageType: ''
    returnType: int
    signature: "int verify_stateless_cookie_callback(SSL *ssl, const unsigned char
      *cookie,\n                                      size_t cookie_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5682,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:5682,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5682,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5683,1
    - Dst: SSL_CTX_clear_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:5688,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5690,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5690,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5693,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5693,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5699,1
    - Dst: SSL_stateless
      Src: /src/openssl-3.0.15/test/sslapitest.c:5699,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5703,1
    - Dst: SSL_CTX_set_stateless_cookie_generate_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:5707,1
    - Dst: SSL_CTX_set_stateless_cookie_verify_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:5708,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5714,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5714,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5717,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5717,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5720,1
    - Dst: SSL_stateless
      Src: /src/openssl-3.0.15/test/sslapitest.c:5720,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5724,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5731,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:5731,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5734,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5734,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5737,1
    - Dst: SSL_stateless
      Src: /src/openssl-3.0.15/test/sslapitest.c:5737,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5739,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5739,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5742,1
    - Dst: SSL_stateless
      Src: /src/openssl-3.0.15/test/sslapitest.c:5742,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5744,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5744,1
    - Dst: shutdown_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:5748,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5753,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5754,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5755,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5756,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5759
      start: 5676
    functionDepth: 1
    functionLinenumber: 5676
    functionLinenumberEnd: 5759
    functionName: test_stateless
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set_stateless_cookie_verify_cb
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_set_stateless_cookie_generate_cb
    - TEST_false
    - shutdown_ssl_connection
    - SSL_free
    - TEST_true
    - TLS_server_method
    - SSL_CTX_clear_options
    - SSL_stateless
    linkageType: ''
    returnType: int
    signature: int test_stateless(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5780,1
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5785,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:5786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - s
    - ext_type
    - out
    - outlen
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char**
    - size_t*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5793
      start: 5774
    functionDepth: 1
    functionLinenumber: 5774
    functionLinenumberEnd: 5793
    functionName: old_add_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: "int old_add_cb(SSL *s, unsigned int ext_type, const unsigned char
      **out,\n                      size_t *outlen, int *al, void *add_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - ext_type
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5799
      start: 5795
    functionDepth: 1
    functionLinenumber: 5795
    functionLinenumberEnd: 5799
    functionName: old_free_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void old_free_cb(SSL *s, unsigned int ext_type, const unsigned char
      *out,\n                        void *add_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5806,1
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 6
    argNames:
    - s
    - ext_type
    - in
    - inlen
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned char*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5817
      start: 5801
    functionDepth: 1
    functionLinenumber: 5801
    functionLinenumberEnd: 5817
    functionName: old_parse_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: "int old_parse_cb(SSL *s, unsigned int ext_type, const unsigned char
      *in,\n                        size_t inlen, int *al, void *parse_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5826,1
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5831,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:5832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - out
    - outlen
    - x
    - chainidx
    - al
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char**
    - size_t*
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5839
      start: 5819
    functionDepth: 1
    functionLinenumber: 5819
    functionLinenumberEnd: 5839
    functionName: new_add_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: "int new_add_cb(SSL *s, unsigned int ext_type, unsigned int context,\n
      \                     const unsigned char **out, size_t *outlen, X509 *x,\n
      \                     size_t chainidx, int *al, void *add_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:5844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - ext_type
    - context
    - out
    - add_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5845
      start: 5841
    functionDepth: 1
    functionLinenumber: 5841
    functionLinenumberEnd: 5845
    functionName: new_free_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: "void new_free_cb(SSL *s, unsigned int ext_type, unsigned int context,\n
      \                       const unsigned char *out, void *add_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5853,1
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:5858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - in
    - inlen
    - x
    - chainidx
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - size_t
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5863
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5863
    functionName: new_parse_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_is_server
    linkageType: ''
    returnType: int
    signature: "int new_parse_cb(SSL *s, unsigned int ext_type, unsigned int context,\n
      \                       const unsigned char *in, size_t inlen, X509 *x,\n                        size_t
      chainidx, int *al, void *parse_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-3.0.15/test/sslapitest.c:5869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - al
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5875
      start: 5865
    functionDepth: 1
    functionLinenumber: 5865
    functionLinenumberEnd: 5875
    functionName: sni_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    linkageType: ''
    returnType: int
    signature: int sni_cb(SSL *s, int *al, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - preverify_ok
    - x509_ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5880
      start: 5877
    functionDepth: 0
    functionLinenumber: 5877
    functionLinenumberEnd: 5880
    functionName: verify_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_cb(int preverify_ok, X509_STORE_CTX *x509_ctx)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5912,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:5912,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5912,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5913,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5918,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:5918,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:5918,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:5925,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:5926,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:5928,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:5934,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5937,1
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:5937,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5939,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:5939,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:5941,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:5941,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5958,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5958,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5964,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5964,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5971,1
    - Dst: SSL_CTX_add_client_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5971,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:5975,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5975,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5983,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5983,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5989,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5989,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:5994,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:5994,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:6002,1
    - Dst: SSL_CTX_add_server_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:6002,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:6006,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:6006,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6014,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:6014,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6015,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-3.0.15/test/sslapitest.c:6015,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6019,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6019,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6021,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6021,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:6054,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:6055,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:6056,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6057,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6058,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6067,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6067,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6069,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:6069,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6070,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6070,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6107,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6108,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6109,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6110,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6111,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6112,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 122
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6114
      start: 5891
    functionDepth: 1
    functionLinenumber: 5891
    functionLinenumberEnd: 6114
    functionName: test_custom_exts
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_get1_session
    - SSL_set_session
    - SSL_CTX_add_client_custom_ext
    - SSL_CTX_use_certificate_file
    - create_ssl_objects
    - TEST_true
    - SSL_SESSION_free
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_set_verify
    - SSL_CTX_free
    - SSL_CTX_check_private_key
    - SSL_CTX_use_PrivateKey_file
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_options
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - TEST_false
    - SSL_CTX_add_custom_ext
    - SSL_free
    - SSL_CTX_add_server_custom_ext
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_custom_exts(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - s
    - ext_type
    - context
    - in
    - inlen
    - x
    - chainidx
    - al
    - parse_arg
    argTypes:
    - SSL*
    - unsigned int
    - unsigned int
    - unsigned char*
    - size_t
    - X509*
    - size_t
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6159
      start: 6147
    functionDepth: 1
    functionLinenumber: 6147
    functionLinenumberEnd: 6159
    functionName: serverinfo_custom_parse_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    linkageType: ''
    returnType: int
    signature: "int serverinfo_custom_parse_cb(SSL *s, unsigned int ext_type,\n                                      unsigned
      int context,\n                                      const unsigned char *in,\n
      \                                     size_t inlen, X509 *x,\n                                      size_t
      chainidx, int *al,\n                                      void *parse_arg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6205,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6205,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6206,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6207,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6214,1
    - Dst: SSL_CTX_use_serverinfo_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:6214,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6218,1
    - Dst: SSL_CTX_use_serverinfo
      Src: /src/openssl-3.0.15/test/sslapitest.c:6218,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6222,1
    - Dst: SSL_CTX_add_custom_ext
      Src: /src/openssl-3.0.15/test/sslapitest.c:6222,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6227,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6227,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6229,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6229,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6231,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:6231,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6234,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6240,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6241,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6242,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6243,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6161
    functionDepth: 1
    functionLinenumber: 6161
    functionLinenumberEnd: 6246
    functionName: test_serverinfo_custom
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_do_handshake
    - SSL_CTX_free
    - SSL_CTX_use_serverinfo_ex
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_use_serverinfo
    - TEST_int_eq
    - SSL_CTX_add_custom_ext
    - TLS_method
    - SSL_free
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_serverinfo_custom(const int idx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6294,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6294,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6294,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6295,1
    - Dst: OPENSSL_assert
      Src: /src/openssl-3.0.15/test/sslapitest.c:6299,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:6299,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:6300,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:6301,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:6303,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:6304,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6307,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6307,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:6314,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6314,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6320,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6320,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:6329,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6329,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6343,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6343,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6347,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6347,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6352,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6352,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6356,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6356,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6362,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6362,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6367,1
    - Dst: SSL_export_keying_material
      Src: /src/openssl-3.0.15/test/sslapitest.c:6367,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6375,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6381,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6387,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:6390,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:6398,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6400,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6407,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6408,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6409,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6410,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6411,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 57
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6414
      start: 6256
    functionDepth: 1
    functionLinenumber: 6256
    functionLinenumberEnd: 6414
    functionName: test_export_key_mat
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TLS_client_method
    - create_ssl_ctx_pair
    - OPENSSL_assert
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_export_keying_material
    - SSL_CTX_set_max_proto_version
    - TEST_mem_ne
    - SSL_CTX_set_cipher_list
    - SSL_free
    - TEST_int_le
    - TEST_true
    - TLS_server_method
    - SSL_CTX_set_min_proto_version
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_export_key_mat(int tst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6437,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:6437,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6442,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:6442,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6443,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:6443,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6446,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:6446,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6450,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-3.0.15/test/sslapitest.c:6450,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6453,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-3.0.15/test/sslapitest.c:6453,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6456,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-3.0.15/test/sslapitest.c:6456,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6459,1
    - Dst: SSL_export_keying_material_early
      Src: /src/openssl-3.0.15/test/sslapitest.c:6459,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6466,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6472,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:6475,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6482,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6483,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6484,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6486,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6487,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6488,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6489,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6492
      start: 6423
    functionDepth: 3
    functionLinenumber: 6423
    functionLinenumberEnd: 6492
    functionName: test_export_key_mat_early
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - setupearly_data_test
    - TEST_mem_eq
    - SSL_read_early_data
    - SSL_export_keying_material_early
    - SSL_CTX_free
    - TEST_int_eq
    - SSL_write_early_data
    - TEST_mem_ne
    - SSL_free
    - SSL_get_early_data_status
    - TEST_true
    - SSL_SESSION_free
    linkageType: ''
    returnType: int
    signature: int test_export_key_mat_early(int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6506,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6506,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6506,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6507,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6511,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6511,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6513,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6513,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6520,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:6520,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6524,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:6524,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6529,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6529,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6529,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6529,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6530,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6530,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6531,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6534,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6534,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6534,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6534,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6535,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6535,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6536,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6543,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6544,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6545,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6546,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6549
      start: 6498
    functionDepth: 1
    functionLinenumber: 6498
    functionLinenumberEnd: 6549
    functionName: test_key_update
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_do_handshake
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_write
    - strlen
    - SSL_free
    - SSL_key_update
    - TEST_true
    - TLS_server_method
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int test_key_update(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:6564,1
    - Dst: bio_s_always_retry
      Src: /src/openssl-3.0.15/test/sslapitest.c:6564,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:6568,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6569,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6569,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6569,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6570,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6574,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6574,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6576,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6576,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6583,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:6583,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6584,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:6584,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6588,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:6589,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6589,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:6589,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6593,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6597,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6597,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6597,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6598,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6598,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6602,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6606,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6606,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6607,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6607,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6614,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6614,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6614,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6614,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6615,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6615,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6615,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6619,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6619,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6619,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6619,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6620,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6620,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6620,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6626,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6627,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6628,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6629,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6630,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6631,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6634
      start: 6557
    functionDepth: 6
    functionLinenumber: 6557
    functionLinenumberEnd: 6634
    functionName: test_key_update_peer_in_write
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - strlen
    - SSL_set0_wbio
    - SSL_key_update
    - BIO_new
    - SSL_get_error
    - create_ssl_objects
    - BIO_up_ref
    - TEST_true
    - bio_s_always_retry
    - SSL_read
    - SSL_do_handshake
    - SSL_CTX_free
    - SSL_write
    - SSL_get_wbio
    - TEST_ptr
    - TLS_client_method
    - create_ssl_connection
    - BIO_free
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_key_update_peer_in_write(int tst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6653,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6653,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6653,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6654,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6658,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6658,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6660,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6660,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6667,1
    - Dst: BIO_new_bio_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6667,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6670,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6671,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6679,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:6679,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6680,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6680,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6681,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6681,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6688,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6688,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6689,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6689,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6693,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6693,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6693,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6693,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6700,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6700,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6701,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6701,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6705,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6705,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6705,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6705,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6706,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6706,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6706,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6712,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6713,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6714,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6715,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6718
      start: 6643
    functionDepth: 7
    functionLinenumber: 6643
    functionLinenumberEnd: 6718
    functionName: test_key_update_peer_in_read
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_get_error
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_write
    - SSL_CTX_free
    - SSL_set_bio
    - strlen
    - SSL_free
    - SSL_key_update
    - BIO_new_bio_pair
    - TEST_true
    - TLS_server_method
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int test_key_update_peer_in_read(int tst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:6733,1
    - Dst: bio_s_always_retry
      Src: /src/openssl-3.0.15/test/sslapitest.c:6733,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:6737,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6738,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6738,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6738,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6739,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6743,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6743,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6745,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6745,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6753,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:6754,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6754,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:6754,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6758,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6762,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6762,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6762,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6763,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6763,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6767,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:6771,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:6771,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6772,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/sslapitest.c:6772,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6772,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6775,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6777,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6777,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6777,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6777,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6781,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:6781,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6782,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:6782,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6789,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6789,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6789,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6789,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6790,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6790,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6790,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6794,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6794,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6794,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6794,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6795,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6795,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6795,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6801,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6802,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6803,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6804,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6805,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6806,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 45
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6809
      start: 6726
    functionDepth: 6
    functionLinenumber: 6726
    functionLinenumberEnd: 6809
    functionName: test_key_update_local_in_write
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - ERR_GET_REASON
    - TEST_int_eq
    - strlen
    - SSL_set0_wbio
    - SSL_key_update
    - BIO_new
    - SSL_get_error
    - create_ssl_objects
    - ERR_peek_error
    - BIO_up_ref
    - TEST_true
    - bio_s_always_retry
    - SSL_read
    - SSL_do_handshake
    - SSL_CTX_free
    - SSL_write
    - ERR_clear_error
    - SSL_get_wbio
    - TEST_ptr
    - TLS_client_method
    - create_ssl_connection
    - BIO_free
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_key_update_local_in_write(int tst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6827,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6827,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6827,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6828,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6832,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6832,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6834,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6834,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6841,1
    - Dst: BIO_new_bio_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6841,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6844,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:6845,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6848,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6848,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6849,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6849,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6853,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6853,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6854,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:6854,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6858,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:6858,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6859,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:6859,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6866,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6866,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6867,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6867,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6874,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6874,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6874,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6874,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6875,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6875,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6875,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6879,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:6879,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6879,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6879,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:6880,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:6880,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:6880,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6886,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6887,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6888,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6889,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 37
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6892
      start: 6817
    functionDepth: 7
    functionLinenumber: 6817
    functionLinenumberEnd: 6892
    functionName: test_key_update_local_in_read
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_do_handshake
    - SSL_get_error
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_write
    - SSL_CTX_free
    - SSL_set_bio
    - strlen
    - SSL_free
    - SSL_key_update
    - BIO_new_bio_pair
    - TEST_true
    - TLS_server_method
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int test_key_update_local_in_read(int tst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6907,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:6907,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6907,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:6908,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6911,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:6911,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6913,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6913,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6915,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6915,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:6919,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:6920,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6921,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6925,1
    - Dst: SSL_clear
      Src: /src/openssl-3.0.15/test/sslapitest.c:6925,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6928,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:6928,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6930,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:6930,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6932,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:6932,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:6935,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:6936,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6941,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6942,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6943,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:6944,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6947
      start: 6895
    functionDepth: 1
    functionLinenumber: 6895
    functionLinenumberEnd: 6947
    functionName: test_ssl_clear
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_shutdown
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_set_max_proto_version
    - SSL_clear
    - SSL_free
    - SSL_session_reused
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ssl_clear(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_uint_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:6957,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:6957,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:6960,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:6961,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:6962,1
    - Dst: TEST_long_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:6964,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6965,1
    - Dst: PACKET_buf_init
      Src: /src/openssl-3.0.15/test/sslapitest.c:6965,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/sslapitest.c:6967,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6969,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/sslapitest.c:6969,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6971,1
    - Dst: PACKET_forward
      Src: /src/openssl-3.0.15/test/sslapitest.c:6971,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6974,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/sslapitest.c:6974,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6976,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/sslapitest.c:6976,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6978,1
    - Dst: PACKET_get_length_prefixed_1
      Src: /src/openssl-3.0.15/test/sslapitest.c:6978,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6980,1
    - Dst: PACKET_as_length_prefixed_2
      Src: /src/openssl-3.0.15/test/sslapitest.c:6980,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/sslapitest.c:6984,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6985,1
    - Dst: PACKET_get_net_2
      Src: /src/openssl-3.0.15/test/sslapitest.c:6985,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6986,1
    - Dst: PACKET_get_length_prefixed_2
      Src: /src/openssl-3.0.15/test/sslapitest.c:6986,1
    - Dst: TEST_uint_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:6990,1
    - Dst: PACKET_remaining
      Src: /src/openssl-3.0.15/test/sslapitest.c:6990,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:6991,1
    - Dst: PACKET_get_1
      Src: /src/openssl-3.0.15/test/sslapitest.c:6991,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 25
    argCount: 2
    argNames:
    - bio
    - mfl_codemfl_code
    argTypes:
    - BIO*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7001
      start: 6950
    functionDepth: 1
    functionLinenumber: 6950
    functionLinenumberEnd: 7001
    functionName: get_MFL_from_client_hello
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - PACKET_as_length_prefixed_2
    - PACKET_get_length_prefixed_1
    - PACKET_get_1
    - TEST_long_gt
    - PACKET_buf_init
    - TEST_uint_ne
    - PACKET_remaining
    - PACKET_forward
    - memset
    - PACKET_get_net_2
    - BIO_get_mem_data
    - TEST_true
    - TEST_uint_gt
    - PACKET_get_length_prefixed_2
    linkageType: ''
    returnType: int
    signature: int get_MFL_from_client_hello(BIO *bio, int *mfl_codemfl_code)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7018,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7018,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7018,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7023,1
    - Dst: SSL_CTX_set_tlsext_max_fragment_length
      Src: /src/openssl-3.0.15/test/sslapitest.c:7023,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:7027,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7028,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:7031,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/sslapitest.c:7031,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:7032,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/sslapitest.c:7032,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7033,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7033,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7034,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7035,1
    - Dst: SSL_set_bio
      Src: /src/openssl-3.0.15/test/sslapitest.c:7039,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:7041,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:7041,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7046,1
    - Dst: get_MFL_from_client_hello
      Src: /src/openssl-3.0.15/test/sslapitest.c:7046,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7049,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7055,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7056,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 1
    argNames:
    - idx_tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7059
      start: 7011
    functionDepth: 6
    functionLinenumber: 7011
    functionLinenumberEnd: 7059
    functionName: test_max_fragment_len_ext
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - get_MFL_from_client_hello
    - TLS_client_method
    - create_ssl_ctx_pair
    - BIO_new
    - SSL_CTX_free
    - BIO_free
    - BIO_s_mem
    - SSL_connect
    - SSL_set_bio
    - SSL_new
    - SSL_free
    - TEST_int_le
    - TEST_ptr
    - TEST_true
    - SSL_CTX_set_tlsext_max_fragment_length
    linkageType: ''
    returnType: int
    signature: int test_max_fragment_len_ext(int idx_tst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7068,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7068,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7068,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7069,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7073,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:7073,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7074,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:7074,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7075,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:7075,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7076,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:7076,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/openssl-3.0.15/test/sslapitest.c:7079,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7081,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:7081,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7085,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7085,1
    - Dst: SSL_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:7089,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7090,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:7090,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7093,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:7093,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7097,1
    - Dst: SSL_do_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:7097,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7101,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7101,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:7105,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:7106,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7111,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7112,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7113,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7114,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7116
      start: 7062
    functionDepth: 1
    functionLinenumber: 7062
    functionLinenumberEnd: 7116
    functionName: test_pha_key_update
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_do_handshake
    - SSL_shutdown
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_set_verify
    - SSL_CTX_free
    - SSL_CTX_set_max_proto_version
    - SSL_verify_client_post_handshake
    - SSL_CTX_set_post_handshake_auth
    - SSL_free
    - SSL_key_update
    - SSL_CTX_set_min_proto_version
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_pha_key_update(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_srp_username
      Src: /src/openssl-3.0.15/test/sslapitest.c:7129,1
    - Dst: SRP_VBASE_get1_by_user
      Src: /src/openssl-3.0.15/test/sslapitest.c:7135,1
    - Dst: SSL_set_srp_server_param
      Src: /src/openssl-3.0.15/test/sslapitest.c:7141,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7152
      start: 7123
    functionDepth: 12
    functionLinenumber: 7123
    functionLinenumberEnd: 7152
    functionName: ssl_srp_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_srp_server_param
    - SSL_get_srp_username
    - SRP_user_pwd_free
    - SRP_VBASE_get1_by_user
    linkageType: ''
    returnType: int
    signature: int ssl_srp_cb(SSL *s, int *ad, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:7157,1
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/sslapitest.c:7160,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7163,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7163,1
    - Dst: SRP_create_verifier_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7166,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7168,1
    - Dst: TXT_DB_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:7175,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7176,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:7179,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7180,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/sslapitest.c:7183,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/sslapitest.c:7184,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/sslapitest.c:7185,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7187,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7188,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7189,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7190,1
    - Dst: TXT_DB_insert
      Src: /src/openssl-3.0.15/test/sslapitest.c:7190,1
    - Dst: TXT_DB_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:7195,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7202,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7204,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7205,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7206,1
    - Dst: TXT_DB_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7207,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 3
    argNames:
    - userid
    - password
    - filename
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7210
      start: 7154
    functionDepth: 5
    functionLinenumber: 7154
    functionLinenumberEnd: 7210
    functionName: create_new_vfile
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - BIO_new_mem_buf
    - SRP_create_verifier_ex
    - BIO_free
    - TXT_DB_insert
    - OPENSSL_zalloc
    - OPENSSL_free
    - TXT_DB_write
    - TXT_DB_free
    - TEST_ptr
    - BIO_new_file
    - OPENSSL_strdup
    - TXT_DB_read
    linkageType: ''
    returnType: int
    signature: int create_new_vfile(char *userid, char *password, const char *filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SRP_get_default_gN
      Src: /src/openssl-3.0.15/test/sslapitest.c:7219,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7220,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7223,1
    - Dst: SRP_create_verifier_BN_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7223,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:7227,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7228,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/sslapitest.c:7233,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7234,1
    - Dst: sk_SRP_user_pwd_insert
      Src: /src/openssl-3.0.15/test/sslapitest.c:7241,1
    - Dst: SRP_user_pwd_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7247,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7248,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - userid
    - password
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7252
      start: 7212
    functionDepth: 5
    functionLinenumber: 7212
    functionLinenumberEnd: 7252
    functionName: create_new_vbase
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SRP_get_default_gN
    - OPENSSL_strdup
    - OPENSSL_zalloc
    - BN_free
    - sk_SRP_user_pwd_insert
    - TEST_ptr
    - TEST_true
    - SRP_user_pwd_free
    - SRP_create_verifier_BN_ex
    linkageType: ''
    returnType: int
    signature: int create_new_vbase(char *userid, char *password)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SRP_VBASE_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:7272,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7273,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7277,1
    - Dst: create_new_vbase
      Src: /src/openssl-3.0.15/test/sslapitest.c:7277,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7281,1
    - Dst: create_new_vfile
      Src: /src/openssl-3.0.15/test/sslapitest.c:7281,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7287,1
    - Dst: SRP_VBASE_init
      Src: /src/openssl-3.0.15/test/sslapitest.c:7287,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7291,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7291,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7291,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7292,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:7296,1
    - Dst: SSL_CTX_set_srp_username_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:7296,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7297,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:7297,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7298,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:7298,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7299,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:7299,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:7300,1
    - Dst: SSL_CTX_set_srp_username
      Src: /src/openssl-3.0.15/test/sslapitest.c:7300,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:7304,1
    - Dst: SSL_CTX_set_srp_password
      Src: /src/openssl-3.0.15/test/sslapitest.c:7304,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:7307,1
    - Dst: SSL_CTX_set_srp_password
      Src: /src/openssl-3.0.15/test/sslapitest.c:7307,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7311,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:7311,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7315,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7317,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7320,1
    - Dst: SRP_VBASE_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7327,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7329,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7330,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7331,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7332,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 60
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7335
      start: 7265
    functionDepth: 7
    functionLinenumber: 7265
    functionLinenumberEnd: 7335
    functionName: test_srp
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_srp_username_callback
    - TEST_int_eq
    - SSL_CTX_set_max_proto_version
    - SRP_VBASE_init
    - TEST_int_gt
    - create_ssl_objects
    - TEST_true
    - create_new_vbase
    - SSL_CTX_set_srp_username
    - SSL_CTX_free
    - TEST_ptr
    - SRP_VBASE_free
    - SRP_VBASE_new
    - create_new_vfile
    - TLS_client_method
    - SSL_CTX_set_srp_password
    - create_ssl_connection
    - SSL_CTX_set_cipher_list
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_srp(int tst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7438,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7447,1
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:7447,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7448,1
    - Dst: SSL_is_server
      Src: /src/openssl-3.0.15/test/sslapitest.c:7448,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:7449,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7455,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7460,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:7460,1
    - Dst: SSL_state_string
      Src: /src/openssl-3.0.15/test/sslapitest.c:7460,1
    - Dst: SSL_in_init
      Src: /src/openssl-3.0.15/test/sslapitest.c:7470,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - s
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7474
      start: 7433
    functionDepth: 1
    functionLinenumber: 7433
    functionLinenumberEnd: 7474
    functionName: sslapi_info_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_state_string
    - SSL_is_server
    - TEST_int_eq
    - TEST_int_ne
    - TEST_false
    - strcmp
    - TEST_true
    - SSL_in_init
    linkageType: ''
    returnType: void
    signature: void sslapi_info_callback(const SSL *s, int where, int ret)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7523,1
    - Dst: setupearly_data_test
      Src: /src/openssl-3.0.15/test/sslapitest.c:7523,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7529,1
    - Dst: SSL_set_info_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:7531,1
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:7535,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7536,1
    - Dst: SSL_write_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:7536,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:7536,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7538,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:7538,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7541,1
    - Dst: SSL_read_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:7541,1
    - Dst: check_early_data_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:7544,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7548,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:7548,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7549,1
    - Dst: SSL_get_early_data_status
      Src: /src/openssl-3.0.15/test/sslapitest.c:7549,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7551,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7551,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7553,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7561,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7561,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7561,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7562,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7567,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-3.0.15/test/sslapitest.c:7567,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:7574,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7577,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:7577,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7579,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7579,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7581,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:7586,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:7587,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:7588,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7589,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7590,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7594,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:7594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7596,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:7596,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7597,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7597,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7599,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:7599,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7600,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7606,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7607,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7608,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7609,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7610,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 61
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7612
      start: 7486
    functionDepth: 3
    functionLinenumber: 7486
    functionLinenumberEnd: 7612
    functionName: test_info_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_read_early_data
    - create_ssl_ctx_pair
    - TEST_int_eq
    - time
    - strlen
    - SSL_get1_session
    - SSL_set_session
    - create_ssl_objects
    - SSL_CTX_set_info_callback
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - setupearly_data_test
    - SSL_CTX_free
    - SSL_write_early_data
    - TEST_size_t_eq
    - SSL_set_info_callback
    - SSL_CTX_set_dh_auto
    - SSL_get_early_data_status
    - check_early_data_timeout
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_info_callback(int tst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7624,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7624,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7624,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7625,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7631,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7631,1
    - Dst: DTLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7631,1
    - Dst: DTLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7632,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7647,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:7647,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7648,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:7648,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7657,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:7657,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7659,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7659,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7663,1
    - Dst: SSL_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:7663,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7664,1
    - Dst: SSL_has_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:7664,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7665,1
    - Dst: SSL_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:7665,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:7666,1
    - Dst: SSL_has_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:7666,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7667,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7667,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7668,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7669,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7669,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7670,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7671,1
    - Dst: SSL_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:7671,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7672,1
    - Dst: SSL_has_pending
      Src: /src/openssl-3.0.15/test/sslapitest.c:7672,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7678,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7679,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7680,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7681,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 34
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7684
      start: 7614
    functionDepth: 1
    functionLinenumber: 7614
    functionLinenumberEnd: 7684
    functionName: test_ssl_pending
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_pending
    - TEST_false
    - SSL_write_ex
    - TEST_size_t_eq
    - DTLS_client_method
    - SSL_CTX_set_cipher_list
    - SSL_read_ex
    - SSL_free
    - DTLS_server_method
    - TEST_true
    - TLS_server_method
    - SSL_has_pending
    linkageType: ''
    returnType: int
    signature: int test_ssl_pending(int tst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:7777,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7779,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7790,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7790,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7791,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7794,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7794,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7795,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7799,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:7799,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7799,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:7800,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7806,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:7806,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7809,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:7809,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7811,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:7811,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7814,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/sslapitest.c:7814,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7819,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:7819,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7821,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:7821,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7825,1
    - Dst: SSL_get_shared_ciphers
      Src: /src/openssl-3.0.15/test/sslapitest.c:7825,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7826,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:7826,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sslapitest.c:7831,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7838,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7839,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7840,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7841,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7842,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 38
    argCount: 2
    argNames:
    - tst
    - clnt
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7845
      start: 7771
    functionDepth: 5
    functionLinenumber: 7771
    functionLinenumberEnd: 7845
    functionName: int_test_ssl_get_shared_ciphers
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new_ex
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - SSL_CTX_set_ciphersuites
    - create_ssl_connection
    - create_ssl_objects
    - TEST_int_eq
    - OSSL_LIB_CTX_free
    - TEST_info
    - SSL_CTX_set_cipher_list
    - OSSL_LIB_CTX_new
    - strcmp
    - SSL_free
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    - SSL_get_shared_ciphers
    linkageType: ''
    returnType: int
    signature: int int_test_ssl_get_shared_ciphers(int tst, int clnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_test_ssl_get_shared_ciphers
      Src: /src/openssl-3.0.15/test/sslapitest.c:7849,1
    - Dst: int_test_ssl_get_shared_ciphers
      Src: /src/openssl-3.0.15/test/sslapitest.c:7850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7851
      start: 7847
    functionDepth: 6
    functionLinenumber: 7847
    functionLinenumberEnd: 7851
    functionName: test_ssl_get_shared_ciphers
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 1
    functionsReached:
    - int_test_ssl_get_shared_ciphers
    linkageType: ''
    returnType: int
    signature: int test_ssl_get_shared_ciphers(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_set1_ticket_appdata
      Src: /src/openssl-3.0.15/test/sslapitest.c:7863,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:7863,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:7864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7865
      start: 7859
    functionDepth: 1
    functionLinenumber: 7859
    functionLinenumberEnd: 7865
    functionName: gen_tick_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_get_session
    - strlen
    - SSL_SESSION_set1_ticket_appdata
    linkageType: ''
    returnType: int
    signature: int gen_tick_cb(SSL *s, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7881,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:7885,1
    - Dst: SSL_SESSION_get0_ticket_appdata
      Src: /src/openssl-3.0.15/test/sslapitest.c:7885,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7887,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslapitest.c:7887,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:7888,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:7888,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 6
    argNames:
    - s
    - ss
    - keyname
    - keyname_length
    - status
    - arg
    argTypes:
    - SSL*
    - SSL_SESSION*
    - unsigned char*
    - size_t
    - SSL_TICKET_STATUS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7909
      start: 7867
    functionDepth: 1
    functionLinenumber: 7867
    functionLinenumberEnd: 7909
    functionName: dec_tick_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - TEST_size_t_eq
    - strlen
    - memcmp
    - SSL_SESSION_get0_ticket_appdata
    - TEST_true
    linkageType: ''
    returnType: SSL_TICKET_RETURN
    signature: "SSL_TICKET_RETURN dec_tick_cb(SSL *s, SSL_SESSION *ss,\n                                     const
      unsigned char *keyname,\n                                     size_t keyname_length,\n
      \                                    SSL_TICKET_STATUS status,\n                                     void
      *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/sslapitest.c:7927,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7928,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/sslapitest.c:7930,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7931,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7932,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:7936,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:7937,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7940,1
    - Dst: HMAC_Init_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7941,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7947,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char[]
    - unsigned char[]
    - EVP_CIPHER_CTX*
    - HMAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7951
      start: 7912
    functionDepth: 11
    functionLinenumber: 7912
    functionLinenumberEnd: 7951
    functionName: tick_key_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_free
    - HMAC_Init_ex
    - EVP_CipherInit_ex
    - TEST_ptr
    - memset
    - EVP_MD_free
    - EVP_CIPHER_fetch
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: "int tick_key_cb(SSL *s, unsigned char key_name[16],\n                       unsigned
      char iv[EVP_MAX_IV_LENGTH], EVP_CIPHER_CTX *ctx,\n                       HMAC_CTX
      *hctx, int enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/sslapitest.c:7969,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:7970,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:7973,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:7974,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/sslapitest.c:7975,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/sslapitest.c:7977,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:7979,1
    - Dst: EVP_MAC_init
      Src: /src/openssl-3.0.15/test/sslapitest.c:7980,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:7986,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - s
    - key_name
    - iv
    - ctx
    - hctx
    - enc
    argTypes:
    - SSL*
    - unsigned char[]
    - unsigned char[]
    - EVP_CIPHER_CTX*
    - EVP_MAC_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7989
      start: 7954
    functionDepth: 4
    functionLinenumber: 7954
    functionLinenumberEnd: 7989
    functionName: tick_key_evp_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_free
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - EVP_CipherInit_ex
    - TEST_ptr
    - memset
    - EVP_MAC_init
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: "int tick_key_evp_cb(SSL *s, unsigned char key_name[16],\n                           unsigned
      char iv[EVP_MAX_IV_LENGTH],\n                           EVP_CIPHER_CTX *ctx,
      EVP_MAC_CTX *hctx, int enc)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8071,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8071,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8071,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8072,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8083,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:8083,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8086,1
    - Dst: SSL_CTX_set_session_ticket_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:8086,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8091,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_evp_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:8091,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8095,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:8095,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8100,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8102,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8113,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8114,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8119,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8120,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8121,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8122,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8127,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8129,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8130,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8130,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:8137,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:8137,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8140,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:8140,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8144,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8150,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8156,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8157,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8158,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8159,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8160,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 89
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8163
      start: 8014
    functionDepth: 1
    functionLinenumber: 8014
    functionLinenumberEnd: 8163
    functionName: test_ticket_callbacks
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_CTX_set_session_ticket_cb
    - SSL_get1_session
    - SSL_set_session
    - SSL_CTX_set_tlsext_ticket_key_cb
    - SSL_CTX_set_tlsext_ticket_key_evp_cb
    - create_ssl_objects
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_CTX_set_session_cache_mode
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ticket_callbacks(int tst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8182,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8182,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8182,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8183,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:8188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8190,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8194,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8194,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:8198,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/openssl-3.0.15/test/sslapitest.c:8199,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:8201,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslapitest.c:8201,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8204,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:8204,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8206,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:8206,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8212,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8213,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8214,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8215,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8218
      start: 8174
    functionDepth: 1
    functionLinenumber: 8174
    functionLinenumberEnd: 8218
    functionName: test_incorrect_shutdown
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - BIO_set_mem_eof_return
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_get_error
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_free
    - TEST_false
    - SSL_free
    - SSL_get_rbio
    - TEST_true
    - TLS_server_method
    - SSL_CTX_set_options
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int test_incorrect_shutdown(int tst)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8252,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8252,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8252,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8253,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/openssl-3.0.15/test/sslapitest.c:8261,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8263,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8263,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8268,1
    - Dst: create_bare_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8268,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8270,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8270,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:8271,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-3.0.15/test/sslapitest.c:8271,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8273,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8273,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8275,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8275,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8276,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-3.0.15/test/sslapitest.c:8276,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8280,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8280,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:8288,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8288,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8289,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:8289,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8291,1
    - Dst: SSL_get_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8291,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8297,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:8297,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8300,1
    - Dst: SSL_key_update
      Src: /src/openssl-3.0.15/test/sslapitest.c:8300,1
    - Dst: SSL_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:8304,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8305,1
    - Dst: SSL_verify_client_post_handshake
      Src: /src/openssl-3.0.15/test/sslapitest.c:8305,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8309,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslapitest.c:8309,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8311,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8311,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8315,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8315,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8317,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8318,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:8318,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8319,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8319,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8321,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8322,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:8322,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:8328,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8328,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8337,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8337,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:8342,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8342,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8343,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8343,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8344,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8344,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8345,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-3.0.15/test/sslapitest.c:8345,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8346,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8346,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8354,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8354,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8355,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8355,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8356,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-3.0.15/test/sslapitest.c:8356,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8366,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:8366,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8367,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:8367,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8374,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8375,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8376,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8377,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 75
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8380
      start: 8233
    functionDepth: 1
    functionLinenumber: 8233
    functionLinenumberEnd: 8380
    functionName: test_shutdown
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_get_shutdown
    - create_ssl_ctx_pair
    - TEST_int_eq
    - TEST_ptr_ne
    - SSL_key_update
    - SSL_get_session
    - SSL_get_error
    - create_ssl_objects
    - memcmp
    - TEST_true
    - SSL_SESSION_is_resumable
    - create_bare_ssl_connection
    - SSL_CTX_free
    - SSL_write
    - TEST_size_t_eq
    - SSL_read_ex
    - SSL_verify_client_post_handshake
    - SSL_write_ex
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - SSL_set_verify
    - TEST_false
    - SSL_CTX_set_post_handshake_auth
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_shutdown(int tst)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/sslapitest.c:8391,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8404,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/openssl-3.0.15/test/sslapitest.c:8404,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8407,1
    - Dst: SSL_use_certificate_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8407,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8408,1
    - Dst: SSL_use_PrivateKey_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8408,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8410,1
    - Dst: SSL_check_private_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:8410,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:8417,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:8418,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:8419,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8420,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8420,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8420,1
    - Dst: sk_X509_new_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8422,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8423,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8425,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8425,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8425,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:8426,1
    - Dst: BIO_read_filename
      Src: /src/openssl-3.0.15/test/sslapitest.c:8426,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8427,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8427,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8428,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/sslapitest.c:8428,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8429,1
    - Dst: sk_X509_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8429,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8432,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8433,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8433,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8433,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:8434,1
    - Dst: BIO_read_filename
      Src: /src/openssl-3.0.15/test/sslapitest.c:8434,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8435,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8435,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8436,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/sslapitest.c:8436,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8438,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8439,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8439,1
    - Dst: BIO_s_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8439,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:8440,1
    - Dst: BIO_read_filename
      Src: /src/openssl-3.0.15/test/sslapitest.c:8440,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8441,1
    - Dst: PEM_read_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8441,1
    - Dst: SSL_check_chain
      Src: /src/openssl-3.0.15/test/sslapitest.c:8445,1
    - Dst: SSL_use_cert_and_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:8454,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8463,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8464,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8465,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8466,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8467,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8468,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8469,1
    - Dst: sk_X509_pop_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8470,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 56
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - SSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8472
      start: 8385
    functionDepth: 6
    functionLinenumber: 8385
    functionLinenumberEnd: 8472
    functionName: cert_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - X509_free
    - sk_X509_push
    - BIO_read_filename
    - TEST_int_gt
    - BIO_new
    - PEM_read_bio_PrivateKey_ex
    - SSL_use_PrivateKey_file
    - SSL_check_private_key
    - SSL_check_chain
    - SSL_use_cert_and_key
    - TEST_true
    - BIO_s_file
    - OPENSSL_free
    - STACK_OF
    - SSL_set_SSL_CTX
    - TEST_ptr
    - sk_X509_pop_free
    - PEM_read_bio_X509
    - BIO_free
    - EVP_PKEY_free
    - sk_X509_new_null
    - SSL_use_certificate_file
    - X509_new_ex
    linkageType: ''
    returnType: int
    signature: int cert_cb(SSL *s, void *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8496,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8496,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8496,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8497,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8511,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8511,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8512,1
    - Dst: SSL_CTX_set_cert_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:8516,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8518,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8518,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8527,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8527,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8535,1
    - Dst: SSL_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8535,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8540,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8541,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8543,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8550,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8551,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8552,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8553,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8554,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 2
    argNames:
    - prot
    - tst
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8557
      start: 8484
    functionDepth: 1
    functionLinenumber: 8484
    functionLinenumberEnd: 8557
    functionName: test_cert_cb_int
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_cert_cb
    - SSL_CTX_new_ex
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_set1_sigalgs_list
    - SSL_free
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_cert_cb_int(int prot, int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_cert_cb_int
      Src: /src/openssl-3.0.15/test/sslapitest.c:8565,1
    - Dst: test_cert_cb_int
      Src: /src/openssl-3.0.15/test/sslapitest.c:8568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8572
      start: 8560
    functionDepth: 2
    functionLinenumber: 8560
    functionLinenumberEnd: 8572
    functionName: test_cert_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_cert_cb_int
    linkageType: ''
    returnType: int
    signature: int test_cert_cb(int tst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8582,1
    - Dst: SSL_get0_peer_certificate
      Src: /src/openssl-3.0.15/test/sslapitest.c:8582,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8585,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8586,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8589,1
    - Dst: X509_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8589,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8590,1
    - Dst: PEM_read_bio_X509
      Src: /src/openssl-3.0.15/test/sslapitest.c:8590,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8591,1
    - Dst: BIO_new_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:8591,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8592,1
    - Dst: PEM_read_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8592,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8600,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8601,1
    - Dst: X509_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8604,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8605,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - ssl
    - x509
    - pkey
    argTypes:
    - SSL*
    - X509**
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8608
      start: 8574
    functionDepth: 5
    functionLinenumber: 8574
    functionLinenumberEnd: 8608
    functionName: client_cert_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_free
    - PEM_read_bio_X509
    - BIO_free
    - PEM_read_bio_PrivateKey_ex
    - SSL_get0_peer_certificate
    - TEST_ptr
    - BIO_new_file
    - X509_new_ex
    linkageType: ''
    returnType: int
    signature: int client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8625,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8625,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8625,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8626,1
    - Dst: SSL_CTX_set_client_cert_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:8637,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:8638,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8642,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8642,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8644,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8644,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8651,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8652,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8653,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8654,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8657
      start: 8610
    functionDepth: 1
    functionLinenumber: 8610
    functionLinenumberEnd: 8657
    functionName: test_client_cert_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set_verify
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - SSL_CTX_set_client_cert_cb
    - SSL_free
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_client_cert_cb(int tst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/sslapitest.c:8675,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:8678,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8679,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8680,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8681,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/openssl-3.0.15/test/sslapitest.c:8681,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8689,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8689,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8689,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8690,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:8696,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8699,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8699,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8700,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8700,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8700,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8701,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8701,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8701,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8702,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8702,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8703,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8703,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8703,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8704,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8704,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8704,1
    - Dst: SSL_CTX_set0_CA_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8707,1
    - Dst: SSL_CTX_set0_CA_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8708,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8712,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8712,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8713,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8713,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8713,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8714,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8714,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8714,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8715,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8715,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8716,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8716,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8716,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8717,1
    - Dst: sk_X509_NAME_push
      Src: /src/openssl-3.0.15/test/sslapitest.c:8717,1
    - Dst: X509_NAME_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:8717,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8720,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8721,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8725,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8725,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8727,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8727,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8735,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8738,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8739,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-3.0.15/test/sslapitest.c:8739,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8740,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:8740,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-3.0.15/test/sslapitest.c:8740,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8742,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:8742,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-3.0.15/test/sslapitest.c:8742,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8745,1
    - Dst: SSL_get0_peer_CA_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8754,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8755,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8756,1
    - Dst: sk_X509_NAME_num
      Src: /src/openssl-3.0.15/test/sslapitest.c:8756,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8757,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:8757,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-3.0.15/test/sslapitest.c:8757,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8759,1
    - Dst: X509_NAME_cmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:8759,1
    - Dst: sk_X509_NAME_value
      Src: /src/openssl-3.0.15/test/sslapitest.c:8759,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8766,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8767,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8768,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8769,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:8770,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8771,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8772,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8773,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 58
    argCount: 2
    argNames:
    - prot
    - tst
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8776
      start: 8667
    functionDepth: 2
    functionLinenumber: 8667
    functionLinenumberEnd: 8776
    functionName: test_ca_names_int
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - create_ssl_ctx_pair
    - TEST_int_eq
    - sk_X509_NAME_push
    - X509_NAME_new
    - X509_NAME_free
    - create_ssl_objects
    - X509_NAME_dup
    - SSL_CTX_set0_CA_list
    - X509_NAME_cmp
    - TEST_true
    - sk_X509_NAME_new_null
    - SSL_CTX_set_client_CA_list
    - sk_X509_NAME_num
    - X509_NAME_add_entry_by_txt
    - SSL_CTX_set_verify
    - sk_X509_NAME_value
    - SSL_CTX_free
    - SSL_get0_peer_CA_list
    - STACK_OF
    - TEST_ptr
    - OSSL_NELEM
    - TLS_client_method
    - create_ssl_connection
    - sk_X509_NAME_pop_free
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ca_names_int(int prot, int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ca_names_int
      Src: /src/openssl-3.0.15/test/sslapitest.c:8784,1
    - Dst: test_ca_names_int
      Src: /src/openssl-3.0.15/test/sslapitest.c:8787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8791
      start: 8779
    functionDepth: 3
    functionLinenumber: 8779
    functionLinenumberEnd: 8791
    functionName: test_ca_names
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_ca_names_int
    linkageType: ''
    returnType: int
    signature: int test_ca_names(int tst)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8815,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8816,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/sslapitest.c:8837,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:8839,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8842,1
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/sslapitest.c:8845,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8847,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:8847,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8852,1
    - Dst: SSL_CTX_set_max_send_fragment
      Src: /src/openssl-3.0.15/test/sslapitest.c:8852,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8855,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:8855,1
    - Dst: SSL_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:8860,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8861,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:8861,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8864,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:8864,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8867,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8867,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8868,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:8873,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8873,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8878,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8883,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8884,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8885,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:8886,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 1
    argNames:
    - test_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8889
      start: 8805
    functionDepth: 6
    functionLinenumber: 8805
    functionLinenumberEnd: 8889
    functionName: test_multiblock_write
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - create_ssl_ctx_pair
    - SSL_set_options
    - create_ssl_objects
    - TEST_true
    - SSL_CTX_set_max_send_fragment
    - EVP_CIPHER_free
    - SSL_CTX_free
    - TEST_size_t_eq
    - TEST_skip
    - SSL_read_ex
    - RAND_bytes
    - SSL_write_ex
    - EVP_CIPHER_fetch
    - TLS_client_method
    - create_ssl_connection
    - SSL_CTX_set_cipher_list
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_multiblock_write(int test_index)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/openssl-3.0.15/test/sslapitest.c:8905,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8908,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:8908,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:8908,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8909,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8909,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8910,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8910,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8911,1
    - Dst: SSL_SESSION_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:8911,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:8916,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:8918,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/sslapitest.c:8920,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8922,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8922,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8923,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8923,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8924,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8924,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8928,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8929,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8930,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8933,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:8933,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8934,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:8934,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8935,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:8935,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8938,1
    - Dst: SSL_SESSION_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:8938,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8939,1
    - Dst: SSL_SESSION_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:8939,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:8940,1
    - Dst: SSL_SESSION_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:8940,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8944,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8945,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8946,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8950,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8951,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8952,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8953,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openssl-3.0.15/test/sslapitest.c:8957,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8958,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8959,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8960,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openssl-3.0.15/test/sslapitest.c:8964,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8965,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8966,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8967,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openssl-3.0.15/test/sslapitest.c:8971,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8972,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8973,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8974,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8978,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8978,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8979,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8979,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:8980,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:8980,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8984,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8985,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:8986,1
    - Dst: SSL_CTX_flush_sessions
      Src: /src/openssl-3.0.15/test/sslapitest.c:8990,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8991,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8992,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:8993,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:8996,1
    - Dst: SSL_CTX_get_session_cache_mode
      Src: /src/openssl-3.0.15/test/sslapitest.c:8997,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:9001,1
    - Dst: SSL_SESSION_set_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:9001,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9002,1
    - Dst: SSL_CTX_add_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9002,1
    - Dst: TEST_long_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:9003,1
    - Dst: SSL_SESSION_get_time
      Src: /src/openssl-3.0.15/test/sslapitest.c:9003,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9008,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9009,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9010,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9011,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 63
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9013
      start: 8892
    functionDepth: 1
    functionLinenumber: 8892
    functionLinenumberEnd: 9013
    functionName: test_session_timeout
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - TEST_int_eq
    - SSL_CTX_add_session
    - time
    - TEST_int_ne
    - SSL_SESSION_set_time
    - SSL_CTX_flush_sessions
    - SSL_CTX_get_session_cache_mode
    - SSL_SESSION_get_time
    - memset
    - TEST_long_ne
    - SSL_SESSION_new
    - SSL_SESSION_free
    - SSL_CTX_new_ex
    - SSL_CTX_free
    - TLS_method
    - SSL_SESSION_set_timeout
    - SSL_CTX_set_session_cache_mode
    - TEST_ptr
    - TEST_ptr_eq
    linkageType: ''
    returnType: int
    signature: int test_session_timeout(int test)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:9033,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:9038,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9041,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9041,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9041,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9042,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9046,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:9046,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:9049,1
    - Dst: SSL_CTX_sess_set_cache_size
      Src: /src/openssl-3.0.15/test/sslapitest.c:9052,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9054,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9054,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9058,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9058,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9062,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9063,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9070,1
    - Dst: SSL_SESSION_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:9070,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:9077,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:9078,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9079,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9080,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9088,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9088,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9092,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9092,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9099,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9100,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9102,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9103,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:9106,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:9107,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9108,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9109,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9112,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9112,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9116,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9119,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9119,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9125,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9126,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9127,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9128,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9129,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9132
      start: 9023
    functionDepth: 1
    functionLinenumber: 9023
    functionLinenumberEnd: 9132
    functionName: test_session_cache_overflow
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_sess_set_cache_size
    - create_ssl_ctx_pair
    - SSL_get_session
    - SSL_get1_session
    - SSL_set_session
    - create_ssl_objects
    - SSL_CTX_sess_set_get_cb
    - TEST_true
    - SSL_SESSION_free
    - SSL_CTX_free
    - TEST_skip
    - SSL_SESSION_set_timeout
    - TEST_ptr
    - SSL_CTX_set_options
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_session_cache_overflow(int idx)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9164,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9164,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9164,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9170,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9170,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9175,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:9175,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9181,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:9181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9186,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9186,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9189,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9189,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9191,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9191,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9198,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:9198,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:9199,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9199,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9200,1
    - Dst: SSL_SESSION_is_resumable
      Src: /src/openssl-3.0.15/test/sslapitest.c:9200,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9201,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:9201,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9204,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9208,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9208,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9212,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9212,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9218,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:9218,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9227,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9227,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9239,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9239,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9244,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:9244,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9258,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9258,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9264,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9264,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9267,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:9267,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9268,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:9268,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9269,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9269,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9272,1
    - Dst: SSL_get_servername
      Src: /src/openssl-3.0.15/test/sslapitest.c:9272,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9280,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9281,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9282,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9283,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9284,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 79
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9287
      start: 9147
    functionDepth: 1
    functionLinenumber: 9147
    functionLinenumberEnd: 9287
    functionName: test_servername
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_set_tlsext_host_name
    - TEST_ptr_ne
    - SSL_get1_session
    - SSL_set_session
    - create_ssl_objects
    - SSL_get_servername
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_is_resumable
    - SSL_SESSION_free
    - SSL_CTX_free
    - SSL_CTX_set_tlsext_servername_callback
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - TEST_str_eq
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_servername(int tst)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:9306,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9311,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9315,1
    - Dst: OSSL_PROVIDER_add_builtin
      Src: /src/openssl-3.0.15/test/sslapitest.c:9315,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/sslapitest.c:9319,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9320,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9330,1
    - Dst: filter_provider_set_filter
      Src: /src/openssl-3.0.15/test/sslapitest.c:9330,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9334,1
    - Dst: filter_provider_set_filter
      Src: /src/openssl-3.0.15/test/sslapitest.c:9334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9336,1
    - Dst: filter_provider_set_filter
      Src: /src/openssl-3.0.15/test/sslapitest.c:9336,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:9347,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9347,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:9348,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9348,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9349,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9349,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9353,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9353,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9353,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9354,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9360,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9360,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9360,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9361,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9370,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9370,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9374,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9374,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9380,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9383,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9388,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9389,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9395,1
    - Dst: SSL_CTX_use_certificate_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:9395,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9397,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/openssl-3.0.15/test/sslapitest.c:9397,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9400,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:9400,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9403,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9403,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9407,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9407,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9411,1
    - Dst: SSL_get_shared_sigalgs
      Src: /src/openssl-3.0.15/test/sslapitest.c:9411,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9416,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9419,1
    - Dst: filter_provider_check_clean_finish
      Src: /src/openssl-3.0.15/test/sslapitest.c:9423,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9426,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9427,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9428,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9429,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/sslapitest.c:9430,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9431,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 85
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9434
      start: 9301
    functionDepth: 5
    functionLinenumber: 9301
    functionLinenumberEnd: 9434
    functionName: test_sigalgs_available
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_get_shared_sigalgs
    - SSL_CTX_use_certificate_file
    - create_ssl_objects
    - filter_provider_check_clean_finish
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_true
    - SSL_CTX_new_ex
    - OSSL_PROVIDER_load
    - SSL_CTX_set1_sigalgs_list
    - SSL_CTX_free
    - OSSL_PROVIDER_unload
    - SSL_CTX_check_private_key
    - SSL_CTX_use_PrivateKey_file
    - TEST_ptr
    - filter_provider_set_filter
    - TLS_client_method
    - create_ssl_connection
    - SSL_CTX_set_cipher_list
    - OSSL_PROVIDER_add_builtin
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_sigalgs_available(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/sslapitest.c:9447,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/sslapitest.c:9449,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9452,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9455,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9455,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9455,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9456,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9460,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9460,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9465,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9465,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9467,1
    - Dst: SSL_set1_groups_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9467,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9470,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9470,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9473,1
    - Dst: SSL_group_to_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:9474,1
    - Dst: SSL_get_shared_group
      Src: /src/openssl-3.0.15/test/sslapitest.c:9474,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9480,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9481,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9482,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9483,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/sslapitest.c:9484,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/sslapitest.c:9485,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9488
      start: 9442
    functionDepth: 3
    functionLinenumber: 9442
    functionLinenumberEnd: 9488
    functionName: test_pluggable_group
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - create_ssl_ctx_pair
    - TLS_client_method
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - OSSL_PROVIDER_unload
    - SSL_get_shared_group
    - SSL_group_to_name
    - TEST_str_eq
    - SSL_set1_groups_list
    - TEST_ptr
    - SSL_free
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_pluggable_group(int idx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9499,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9499,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9499,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9500,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9506,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9506,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9510,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9510,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9511,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9511,1
    - Dst: SSL_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:9514,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:9515,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9516,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9517,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:9517,1
    - Dst: SSL_set0_rbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:9519,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:9522,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9523,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9523,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:9523,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:9525,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9528,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/sslapitest.c:9530,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9533,1
    - Dst: SSL_get_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9533,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9534,1
    - Dst: SSL_get_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9534,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9537,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9537,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9540,1
    - Dst: SSL_dup
      Src: /src/openssl-3.0.15/test/sslapitest.c:9541,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9542,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9544,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9550,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9551,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9552,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9553,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9554,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9557
      start: 9492
    functionDepth: 2
    functionLinenumber: 9492
    functionLinenumberEnd: 9557
    functionName: test_ssl_dup
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_set0_wbio
    - TEST_ptr_ne
    - SSL_get_min_proto_version
    - SSL_get_rbio
    - SSL_dup
    - create_ssl_objects
    - BIO_up_ref
    - TEST_true
    - SSL_get_max_proto_version
    - SSL_CTX_free
    - SSL_set0_rbio
    - SSL_set_max_proto_version
    - SSL_get_wbio
    - TEST_ptr
    - TLS_client_method
    - create_ssl_connection
    - TEST_ptr_eq
    - SSL_free
    - SSL_set_min_proto_version
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_ssl_dup(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_get_rfc3526_prime_2048
      Src: /src/openssl-3.0.15/test/sslapitest.c:9573,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9574,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/sslapitest.c:9577,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9578,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9579,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/sslapitest.c:9579,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:9582,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9583,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9584,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/sslapitest.c:9584,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9587,1
    - Dst: OSSL_PARAM_BLD_push_uint
      Src: /src/openssl-3.0.15/test/sslapitest.c:9587,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/sslapitest.c:9592,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9593,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9594,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/sslapitest.c:9594,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9601,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9602,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9603,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9604,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:9607,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9611
      start: 9564
    functionDepth: 6
    functionLinenumber: 9564
    functionLinenumberEnd: 9611
    functionName: get_tmp_dh_params
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - TEST_int_eq
    - EVP_PKEY_up_ref
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_push_uint
    - OSSL_PARAM_BLD_new
    - EVP_PKEY_fromdata_init
    - TEST_ptr
    - BN_free
    - OSSL_PARAM_BLD_free
    - BN_get_rfc3526_prime_2048
    - TEST_true
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *get_tmp_dh_params(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dh_params
      Src: /src/openssl-3.0.15/test/sslapitest.c:9617,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9620,1
    - Dst: EVP_PKEY_get1_DH
      Src: /src/openssl-3.0.15/test/sslapitest.c:9629,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9630,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - is_export
    - keylen
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9635
      start: 9615
    functionDepth: 7
    functionLinenumber: 9615
    functionLinenumberEnd: 9635
    functionName: tmp_dh_callback
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - get_tmp_dh_params
    - EVP_PKEY_free
    - TEST_ptr
    - DH_free
    - EVP_PKEY_get1_DH
    linkageType: ''
    returnType: DH
    signature: DH *tmp_dh_callback(SSL *s, int is_export, int keylen)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_tmp_dh_params
      Src: /src/openssl-3.0.15/test/sslapitest.c:9672,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9673,1
    - Dst: EVP_PKEY_get1_DH
      Src: /src/openssl-3.0.15/test/sslapitest.c:9678,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9679,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9684,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9684,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9684,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9685,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9692,1
    - Dst: SSL_CTX_set_dh_auto
      Src: /src/openssl-3.0.15/test/sslapitest.c:9692,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9697,1
    - Dst: SSL_CTX_set0_tmp_dh_pkey
      Src: /src/openssl-3.0.15/test/sslapitest.c:9697,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9703,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/openssl-3.0.15/test/sslapitest.c:9703,1
    - Dst: SSL_CTX_set_tmp_dh_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:9706,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9710,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9710,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9715,1
    - Dst: SSL_set_dh_auto
      Src: /src/openssl-3.0.15/test/sslapitest.c:9715,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9719,1
    - Dst: SSL_set0_tmp_dh_pkey
      Src: /src/openssl-3.0.15/test/sslapitest.c:9719,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9725,1
    - Dst: SSL_set_tmp_dh
      Src: /src/openssl-3.0.15/test/sslapitest.c:9725,1
    - Dst: SSL_set_tmp_dh_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:9728,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9732,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9732,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9733,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9733,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9734,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9734,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9741,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9741,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9751,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9752,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9753,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9754,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9755,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 70
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9758
      start: 9655
    functionDepth: 7
    functionLinenumber: 9655
    functionLinenumberEnd: 9758
    functionName: test_set_tmp_dh
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_set_dh_auto
    - SSL_set_tmp_dh_callback
    - SSL_CTX_set_tmp_dh
    - SSL_CTX_set0_tmp_dh_pkey
    - EVP_PKEY_get1_DH
    - get_tmp_dh_params
    - create_ssl_objects
    - SSL_set_tmp_dh
    - SSL_CTX_set_tmp_dh_callback
    - TEST_true
    - SSL_CTX_free
    - SSL_set_max_proto_version
    - SSL_CTX_set_dh_auto
    - TEST_ptr
    - SSL_set_cipher_list
    - TLS_client_method
    - SSL_set0_tmp_dh_pkey
    - create_ssl_connection
    - EVP_PKEY_free
    - SSL_free
    - SSL_set_min_proto_version
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_set_tmp_dh(int idx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:9816,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9820,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9820,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9820,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9821,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9827,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9827,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9831,1
    - Dst: SSL_set_dh_auto
      Src: /src/openssl-3.0.15/test/sslapitest.c:9831,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9832,1
    - Dst: SSL_set_min_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9832,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9833,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslapitest.c:9833,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9834,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9834,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9835,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:9835,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:9843,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:9843,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:9844,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/sslapitest.c:9844,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:9847,1
    - Dst: SSL_get_tmp_key
      Src: /src/openssl-3.0.15/test/sslapitest.c:9847,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9849,1
    - Dst: EVP_PKEY_get_bits
      Src: /src/openssl-3.0.15/test/sslapitest.c:9849,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9852,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9852,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9858,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9859,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9860,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9861,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9862,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9866
      start: 9763
    functionDepth: 4
    functionLinenumber: 9763
    functionLinenumberEnd: 9866
    functionName: test_dh_auto
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_set_dh_auto
    - EVP_PKEY_get_bits
    - TEST_int_gt
    - create_ssl_objects
    - TEST_error
    - TEST_int_le
    - TEST_true
    - SSL_CTX_free
    - SSL_set_max_proto_version
    - TEST_size_t_eq
    - SSL_set_cipher_list
    - TLS_client_method
    - SSL_accept
    - create_ssl_connection
    - SSL_connect
    - EVP_PKEY_free
    - SSL_get_tmp_key
    - SSL_free
    - SSL_set_min_proto_version
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_dh_auto(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:9886,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9886,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:9887,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9890,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9890,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9890,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9896,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:9896,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9897,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-3.0.15/test/sslapitest.c:9897,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9904,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9904,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9906,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9906,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9911,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9917,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9918,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9919,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9920,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9921,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9923
      start: 9876
    functionDepth: 1
    functionLinenumber: 9876
    functionLinenumberEnd: 9923
    functionName: test_sni_tls13
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new_ex
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_free
    - TEST_int_eq
    - create_ssl_connection
    - create_ssl_objects
    - SSL_free
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    - SSL_CTX_set_tlsext_servername_callback
    linkageType: ''
    returnType: int
    signature: int test_sni_tls13(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:9942,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9948,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:9948,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9948,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:9949,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9953,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:9953,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9961,1
    - Dst: SSL_CTX_set_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:9961,1
    - Dst: SSL_get_default_timeout
      Src: /src/openssl-3.0.15/test/sslapitest.c:9962,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:9965,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:9965,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:9970,1
    - Dst: SSL_SESSION_get_ticket_lifetime_hint
      Src: /src/openssl-3.0.15/test/sslapitest.c:9970,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9970,1
    - Dst: TEST_ulong_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:9974,1
    - Dst: SSL_SESSION_get_ticket_lifetime_hint
      Src: /src/openssl-3.0.15/test/sslapitest.c:9974,1
    - Dst: SSL_get_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:9974,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9980,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9981,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9982,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:9983,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9985
      start: 9930
    functionDepth: 1
    functionLinenumber: 9930
    functionLinenumberEnd: 9985
    functionName: test_ticket_lifetime
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_ulong_eq
    - TEST_ulong_le
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - TEST_long_eq
    - SSL_get_session
    - SSL_SESSION_get_ticket_lifetime_hint
    - TEST_skip
    - SSL_free
    - SSL_get_default_timeout
    - TEST_true
    - TLS_server_method
    - SSL_CTX_set_timeout
    linkageType: ''
    returnType: int
    signature: int test_ticket_lifetime(int idx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10004,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10004,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10005,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10009,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10009,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10011,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10011,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10013,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10013,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10015,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10015,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10017,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10017,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10019,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10019,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10021,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10021,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10023,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10023,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10025,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10025,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10028,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10029,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10032,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10032,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10034,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10034,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10036,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10036,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10038,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10038,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10040,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10040,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10042,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10042,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10044,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10044,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10046,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10046,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10048,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:10048,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10054,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10055,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10057
      start: 9990
    functionDepth: 1
    functionLinenumber: 9990
    functionLinenumberEnd: 10057
    functionName: test_set_alpn
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new_ex
    - SSL_CTX_free
    - TEST_false
    - SSL_set_alpn_protos
    - SSL_new
    - SSL_free
    - SSL_CTX_set_alpn_protos
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_set_alpn(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10070,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10070,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10071,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10075,1
    - Dst: SSL_CTX_get0_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10075,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10079,1
    - Dst: SSL_CTX_get0_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10079,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10083,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10083,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10087,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10088,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10091,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10092,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10096,1
    - Dst: SSL_CTX_set1_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10096,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10099,1
    - Dst: SSL_CTX_set1_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10099,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10103,1
    - Dst: SSL_CTX_get0_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10103,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10106,1
    - Dst: SSL_CTX_get0_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10106,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10109,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10109,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10113,1
    - Dst: SSL_CTX_set1_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10116,1
    - Dst: SSL_CTX_set1_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10120,1
    - Dst: SSL_CTX_get0_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10120,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10123,1
    - Dst: SSL_CTX_get0_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10123,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10126,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10126,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10132,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10133,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10134,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10136
      start: 10062
    functionDepth: 5
    functionLinenumber: 10062
    functionLinenumberEnd: 10136
    functionName: test_set_verify_cert_store_ssl_ctx
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_STORE_new
    - TEST_ptr_null
    - SSL_CTX_new_ex
    - SSL_CTX_get0_chain_cert_store
    - SSL_CTX_set1_verify_cert_store
    - SSL_CTX_set1_chain_cert_store
    - TLS_server_method
    - SSL_CTX_free
    - TEST_ptr_eq
    - TEST_ptr
    - TEST_true
    - SSL_CTX_get0_verify_cert_store
    linkageType: ''
    returnType: int
    signature: int test_set_verify_cert_store_ssl_ctx(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10150,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10150,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10151,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10155,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10156,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10160,1
    - Dst: SSL_get0_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10164,1
    - Dst: SSL_get0_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10164,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10168,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10168,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10172,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10173,1
    - Dst: X509_STORE_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10176,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10177,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10181,1
    - Dst: SSL_set1_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10184,1
    - Dst: SSL_set1_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10184,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10188,1
    - Dst: SSL_get0_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10191,1
    - Dst: SSL_get0_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10191,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10194,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10194,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10198,1
    - Dst: SSL_set1_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10201,1
    - Dst: SSL_set1_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10201,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10205,1
    - Dst: SSL_get0_verify_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10205,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10208,1
    - Dst: SSL_get0_chain_cert_store
      Src: /src/openssl-3.0.15/test/sslapitest.c:10208,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10211,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10211,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10217,1
    - Dst: X509_STORE_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10218,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10219,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10220,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10222
      start: 10141
    functionDepth: 5
    functionLinenumber: 10141
    functionLinenumberEnd: 10222
    functionName: test_set_verify_cert_store_ssl
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - X509_STORE_free
    - X509_STORE_new
    - TEST_ptr_null
    - SSL_CTX_new_ex
    - SSL_CTX_free
    - SSL_set1_verify_cert_store
    - SSL_get0_verify_cert_store
    - TEST_ptr_eq
    - SSL_set1_chain_cert_store
    - SSL_new
    - SSL_get0_chain_cert_store
    - SSL_free
    - TEST_ptr
    - TEST_true
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_set_verify_cert_store_ssl(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10235,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10235,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10236,1
    - Dst: SSL_CTX_get0_param
      Src: /src/openssl-3.0.15/test/sslapitest.c:10239,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10240,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10242,1
    - Dst: X509_VERIFY_PARAM_get_hostflags
      Src: /src/openssl-3.0.15/test/sslapitest.c:10242,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/openssl-3.0.15/test/sslapitest.c:10245,1
    - Dst: SSL_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10247,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10248,1
    - Dst: SSL_get0_param
      Src: /src/openssl-3.0.15/test/sslapitest.c:10251,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10252,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10254,1
    - Dst: X509_VERIFY_PARAM_get_hostflags
      Src: /src/openssl-3.0.15/test/sslapitest.c:10254,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10260,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10261,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10264
      start: 10225
    functionDepth: 1
    functionLinenumber: 10225
    functionLinenumberEnd: 10264
    functionName: test_inherit_verify_param
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new_ex
    - X509_VERIFY_PARAM_get_hostflags
    - X509_VERIFY_PARAM_set_hostflags
    - SSL_CTX_free
    - TEST_int_eq
    - SSL_CTX_get0_param
    - SSL_new
    - SSL_get0_param
    - SSL_free
    - TEST_ptr
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_inherit_verify_param(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10277,1
    - Dst: SSL_CTX_new_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10277,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10277,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10278,1
    - Dst: SSL_CONF_CTX_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10278,1
    - Dst: SSL_CONF_CTX_set_ssl_ctx
      Src: /src/openssl-3.0.15/test/sslapitest.c:10281,1
    - Dst: SSL_CONF_CTX_set_flags
      Src: /src/openssl-3.0.15/test/sslapitest.c:10282,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10287,1
    - Dst: SSL_CONF_cmd
      Src: /src/openssl-3.0.15/test/sslapitest.c:10287,1
    - Dst: SSL_CONF_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10292,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10293,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:10297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10299
      start: 10266
    functionDepth: 1
    functionLinenumber: 10266
    functionLinenumberEnd: 10299
    functionName: test_load_dhfile
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_new_ex
    - TLS_client_method
    - SSL_CONF_CTX_set_flags
    - SSL_CTX_free
    - TEST_int_eq
    - SSL_CONF_CTX_new
    - SSL_CONF_CTX_free
    - TEST_skip
    - SSL_CONF_CTX_set_ssl_ctx
    - SSL_CONF_cmd
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_load_dhfile(void)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: load_dasync
      Src: /src/openssl-3.0.15/test/sslapitest.c:10334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10339,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:10339,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10339,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10340,1
    - Dst: load_dasync
      Src: /src/openssl-3.0.15/test/sslapitest.c:10346,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10353,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:10353,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10357,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslapitest.c:10357,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:10375,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10376,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/sslapitest.c:10378,1
    - Dst: RAND_bytes_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10378,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/sslapitest.c:10390,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10391,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10399,1
    - Dst: SSL_set_split_send_fragment
      Src: /src/openssl-3.0.15/test/sslapitest.c:10399,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10408,1
    - Dst: SSL_set_max_pipelines
      Src: /src/openssl-3.0.15/test/sslapitest.c:10408,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10409,1
    - Dst: SSL_set_split_send_fragment
      Src: /src/openssl-3.0.15/test/sslapitest.c:10409,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10412,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:10412,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10416,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10416,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10417,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10432,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10432,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10439,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10440,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10452,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10452,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10464,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10464,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:10465,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10471,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslapitest.c:10471,1
    - Dst: TEST_size_t_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:10475,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10479,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10484,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10485,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10486,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10487,1
    - Dst: ENGINE_unregister_ciphers
      Src: /src/openssl-3.0.15/test/sslapitest.c:10489,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/test/sslapitest.c:10490,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10491,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10493,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10495,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 115
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10497
      start: 10320
    functionDepth: 6
    functionLinenumber: 10320
    functionLinenumberEnd: 10497
    functionName: test_pipelining
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_size_t_le
    - create_ssl_ctx_pair
    - TEST_int_eq
    - ENGINE_unregister_ciphers
    - TEST_int_gt
    - ENGINE_finish
    - create_ssl_objects
    - SSL_set_split_send_fragment
    - TEST_true
    - SSL_set_max_pipelines
    - RAND_bytes_ex
    - SSL_CTX_free
    - TEST_size_t_eq
    - OPENSSL_free
    - SSL_read_ex
    - load_dasync
    - TEST_ptr
    - SSL_write_ex
    - SSL_set_cipher_list
    - TLS_client_method
    - OPENSSL_malloc
    - create_ssl_connection
    - ENGINE_free
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_pipelining(int idx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:10522,1
    - Dst: bio_s_always_retry
      Src: /src/openssl-3.0.15/test/sslapitest.c:10522,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10525,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:10533,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10536,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:10536,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10536,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10537,1
    - Dst: add_large_cert_chain
      Src: /src/openssl-3.0.15/test/sslapitest.c:10545,1
    - Dst: SSL_CTX_set_verify
      Src: /src/openssl-3.0.15/test/sslapitest.c:10553,1
    - Dst: set_always_retry_err_val
      Src: /src/openssl-3.0.15/test/sslapitest.c:10556,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10558,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:10558,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:10562,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10563,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10563,1
    - Dst: BIO_up_ref
      Src: /src/openssl-3.0.15/test/sslapitest.c:10563,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:10567,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10570,1
    - Dst: SSL_connect
      Src: /src/openssl-3.0.15/test/sslapitest.c:10570,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10573,1
    - Dst: SSL_accept
      Src: /src/openssl-3.0.15/test/sslapitest.c:10573,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10574,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:10574,1
    - Dst: SSL_set0_wbio
      Src: /src/openssl-3.0.15/test/sslapitest.c:10578,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10581,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:10581,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10586,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10587,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10588,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10589,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10590,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10591,1
    - Dst: set_always_retry_err_val
      Src: /src/openssl-3.0.15/test/sslapitest.c:10592,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10594
      start: 10517
    functionDepth: 6
    functionLinenumber: 10517
    functionLinenumberEnd: 10594
    functionName: test_handshake_retry
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - add_large_cert_chain
    - set_always_retry_err_val
    - create_ssl_ctx_pair
    - TEST_int_eq
    - SSL_set0_wbio
    - BIO_new
    - SSL_get_error
    - create_ssl_objects
    - BIO_up_ref
    - TEST_true
    - bio_s_always_retry
    - SSL_CTX_set_verify
    - SSL_CTX_free
    - TEST_skip
    - SSL_get_wbio
    - TEST_ptr
    - TLS_client_method
    - SSL_accept
    - create_ssl_connection
    - BIO_free
    - SSL_connect
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_handshake_retry(int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10622,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:10622,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10624,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:10624,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/sslapitest.c:10627,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10632,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:10632,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/sslapitest.c:10633,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/sslapitest.c:10636,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10640,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - s
    - ad
    - arg
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10644
      start: 10608
    functionDepth: 1
    functionLinenumber: 10608
    functionLinenumberEnd: 10644
    functionName: resume_servername_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_set_session
    - create_ssl_connection
    - create_ssl_objects
    - TEST_false
    - ERR_set_mark
    - ERR_pop_to_mark
    - SSL_free
    - ERR_clear_last_mark
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int resume_servername_cb(SSL *s, int *ad, void *arg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:10665,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/sslapitest.c:10672,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10675,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:10675,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10675,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10676,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10686,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:10686,1
    - Dst: SSL_CTX_set_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:10690,1
    - Dst: SSL_CTX_sess_set_cache_size
      Src: /src/openssl-3.0.15/test/sslapitest.c:10692,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/openssl-3.0.15/test/sslapitest.c:10695,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/openssl-3.0.15/test/sslapitest.c:10696,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10703,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:10703,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10705,1
    - Dst: SSL_set_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:10705,1
    - Dst: SSL_set_max_early_data
      Src: /src/openssl-3.0.15/test/sslapitest.c:10725,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10727,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:10727,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10731,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:10731,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10734,1
    - Dst: SSL_session_reused
      Src: /src/openssl-3.0.15/test/sslapitest.c:10734,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10737,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:10743,1
    - Dst: SSL_get1_session
      Src: /src/openssl-3.0.15/test/sslapitest.c:10743,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:10747,1
    - Dst: SSL_shutdown
      Src: /src/openssl-3.0.15/test/sslapitest.c:10748,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10749,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10750,1
    - Dst: TEST_long_le
      Src: /src/openssl-3.0.15/test/sslapitest.c:10755,1
    - Dst: SSL_CTX_sess_number
      Src: /src/openssl-3.0.15/test/sslapitest.c:10755,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10760,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10761,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10762,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10763,1
    - Dst: SSL_SESSION_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:10764,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 73
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10766
      start: 10654
    functionDepth: 1
    functionLinenumber: 10654
    functionLinenumberEnd: 10766
    functionName: test_multi_resume
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_sess_set_cache_size
    - create_ssl_ctx_pair
    - SSL_CTX_sess_number
    - TEST_long_le
    - SSL_get1_session
    - SSL_set_session
    - SSL_CTX_set_max_early_data
    - create_ssl_objects
    - TEST_true
    - SSL_session_reused
    - SSL_SESSION_free
    - SSL_CTX_set_tlsext_servername_arg
    - SSL_CTX_free
    - TEST_skip
    - TEST_ptr
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_options
    - SSL_set_max_early_data
    - TLS_client_method
    - SSL_shutdown
    - create_ssl_connection
    - TEST_false
    - SSL_free
    - TLS_server_method
    linkageType: ''
    returnType: int
    signature: int test_multi_resume(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10886,1
    - Dst: SSL_select_next_proto
      Src: /src/openssl-3.0.15/test/sslapitest.c:10886,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/sslapitest.c:10892,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10892,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10895,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10902
      start: 10863
    functionDepth: 1
    functionLinenumber: 10863
    functionLinenumberEnd: 10902
    functionName: test_select_next_proto
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_ptr_null
    - TEST_uchar_eq
    - TEST_int_eq
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: int test_select_next_proto(int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ssl
    - out
    - outlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10927
      start: 10908
    functionDepth: 0
    functionLinenumber: 10908
    functionLinenumberEnd: 10927
    functionName: npn_advert_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int npn_advert_cb(SSL *ssl, const unsigned char **out,\n                         unsigned
      int *outlen, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10954
      start: 10929
    functionDepth: 0
    functionLinenumber: 10929
    functionLinenumberEnd: 10954
    functionName: npn_select_cb
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int npn_select_cb(SSL *s, unsigned char **out, unsigned char *outlen,\n
      \                        const unsigned char *in, unsigned int inlen, void *arg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10970,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:10970,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10970,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:10971,1
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:10975,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:10976,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10978,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:10978,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:10984,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:10984,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:10991,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:10991,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/openssl-3.0.15/test/sslapitest.c:10995,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:10999,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:11003,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:11007,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:11011,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11018,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11019,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11020,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11021,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11024
      start: 10964
    functionDepth: 1
    functionLinenumber: 10964
    functionLinenumberEnd: 11024
    functionName: test_npn
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_set_next_protos_advertised_cb
    - SSL_CTX_free
    - create_ssl_connection
    - create_ssl_objects
    - TEST_false
    - TEST_error
    - SSL_CTX_set_next_proto_select_cb
    - SSL_free
    - TEST_true
    - TLS_server_method
    - SSL_get0_next_proto_negotiated
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_npn(int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 6
    argNames:
    - ssl
    - out
    - outlen
    - in
    - inlen
    - arg
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11053
      start: 11027
    functionDepth: 0
    functionLinenumber: 11027
    functionLinenumberEnd: 11053
    functionName: alpn_select_cb2
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int alpn_select_cb2(SSL *ssl, const unsigned char **out,\n                           unsigned
      char *outlen, const unsigned char *in,\n                           unsigned
      int inlen, void *arg)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:11070,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslapitest.c:11070,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:11070,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslapitest.c:11071,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/openssl-3.0.15/test/sslapitest.c:11075,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:11077,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslapitest.c:11077,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:11087,1
    - Dst: SSL_set_alpn_protos
      Src: /src/openssl-3.0.15/test/sslapitest.c:11087,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:11092,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:11092,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:11099,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslapitest.c:11099,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/openssl-3.0.15/test/sslapitest.c:11103,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:11106,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/sslapitest.c:11110,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:11114,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11121,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11122,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11123,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11124,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11127
      start: 11062
    functionDepth: 1
    functionLinenumber: 11062
    functionLinenumberEnd: 11127
    functionName: test_alpn
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TLS_client_method
    - create_ssl_ctx_pair
    - SSL_CTX_free
    - create_ssl_connection
    - SSL_CTX_set_alpn_select_cb
    - create_ssl_objects
    - TEST_false
    - SSL_set_alpn_protos
    - TEST_error
    - SSL_get0_alpn_selected
    - SSL_free
    - TEST_true
    - TLS_server_method
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_alpn(int idx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/sslapitest.c:11136,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11137,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/sslapitest.c:11140,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:11146,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/sslapitest.c:11146,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:11147,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/sslapitest.c:11147,1
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/sslapitest.c:11150,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:11151,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11155,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslapitest.c:11155,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11156,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslapitest.c:11156,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11157,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslapitest.c:11157,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11158,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslapitest.c:11158,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11159,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslapitest.c:11159,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslapitest.c:11160,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslapitest.c:11160,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:11163,1
    - Dst: OSSL_LIB_CTX_load_config
      Src: /src/openssl-3.0.15/test/sslapitest.c:11163,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:11167,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/sslapitest.c:11167,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:11171,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslapitest.c:11172,1
    - Dst: OSSL_PROVIDER_available
      Src: /src/openssl-3.0.15/test/sslapitest.c:11172,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/sslapitest.c:11175,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslapitest.c:11182,1
    - Dst: OSSL_PROVIDER_add_builtin
      Src: /src/openssl-3.0.15/test/sslapitest.c:11182,1
    - Dst: getenv
      Src: /src/openssl-3.0.15/test/sslapitest.c:11187,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslapitest.c:11189,1
    - Dst: test_export_key_mat
      Src: /src/openssl-3.0.15/test/sslapitest.c:11195,1
    - Dst: CRYPTO_get_alloc_counts
      Src: /src/openssl-3.0.15/test/sslapitest.c:11196,1
    - Dst: test_printf_stdout
      Src: /src/openssl-3.0.15/test/sslapitest.c:11197,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11203,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11207,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11211,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11215,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11219,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11223,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11227,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11231,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11235,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11239,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11243,1
    - Dst: test_mk_file_path
      Src: /src/openssl-3.0.15/test/sslapitest.c:11247,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11253,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11254,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11257,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11258,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11260,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11262,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11263,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11265,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11267,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11268,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11269,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11270,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11272,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11273,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11274,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11275,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11277,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11278,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11279,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11280,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11281,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11283,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11283,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11284,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11287,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11289,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11290,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11291,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11293,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11294,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11295,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11298,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11303,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11304,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11304,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11305,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11305,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11306,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11306,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11307,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11307,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11308,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11309,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11310,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11311,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11313,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11317,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11318,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11319,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11321,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11323,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11327,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11329,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11330,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11331,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11335,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11337,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11338,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11339,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11341,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11343,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11345,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11346,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11347,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11348,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11349,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11350,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11352,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11353,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11353,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11355,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11357,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11358,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11359,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11359,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11360,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11361,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11362,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11363,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11364,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11365,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11367,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11367,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11369,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11372,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11375,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11378,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11380,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11381,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11385,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11386,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11388,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11389,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11390,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11391,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11392,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11394,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sslapitest.c:11396,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11398,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11401,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11403,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11404,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11405,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/sslapitest.c:11405,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11407,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslapitest.c:11409,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11413,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11414,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11415,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11416,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11418
      start: 11131
    functionDepth: 11
    functionLinenumber: 11131
    functionLinenumberEnd: 11418
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 0
    functionsReached:
    - test_mk_file_path
    - test_get_argument
    - ADD_ALL_TESTS
    - TEST_error
    - OSSL_LIB_CTX_new
    - test_skip_common_options
    - TEST_true
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_available
    - OPENSSL_free
    - strcmp
    - getenv
    - TEST_ptr
    - CRYPTO_get_alloc_counts
    - OSSL_NELEM
    - ADD_TEST
    - OSSL_LIB_CTX_load_config
    - test_printf_stdout
    - TEST_false
    - OSSL_PROVIDER_add_builtin
    - test_export_key_mat
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11423,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11425,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11426,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11427,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11428,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11429,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11430,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11431,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11432,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11433,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11434,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11435,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11436,1
    - Dst: bio_s_mempacket_test_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11437,1
    - Dst: bio_s_always_retry_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11438,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/sslapitest.c:11439,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/sslapitest.c:11440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11441
      start: 11420
    functionDepth: 5
    functionLinenumber: 11420
    functionLinenumberEnd: 11441
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sslapitest.c
    functionUses: 6
    functionsReached:
    - OSSL_PROVIDER_unload
    - EVP_PKEY_free
    - OPENSSL_free
    - OSSL_LIB_CTX_free
    - bio_s_always_retry_free
    - bio_s_mempacket_test_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_stack.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:42,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - num
    - name
    - EVP_RAND_CTX *ctx
    argTypes:
    - unsigned char*
    - size_t
    - ossl_unused*
    - ossl_unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: get_faked_bytes
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: "int get_faked_bytes(unsigned char *buf, size_t num,\n                           ossl_unused
      const char *name,\n                           ossl_unused EVP_RAND_CTX *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:56,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:58,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:59,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:59,1
    - Dst: fake_rand_set_public_private_callbacks
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hex_bytes
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: start_fake_rand
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_hexstr2buf
    - OPENSSL_free
    - strlen
    - fake_rand_set_public_private_callbacks
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int start_fake_rand(const char *hex_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fake_rand_set_public_private_callbacks
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:70,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: restore_rand
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - fake_rand_set_public_private_callbacks
    linkageType: ''
    returnType: void
    signature: void restore_rand(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:92,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:93,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:93,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:94,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:94,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:97,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:98,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:101,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:102,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:105,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:106,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:106,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:107,1
    - Dst: EC_POINT_set_affine_coordinates
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:111,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:111,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:112,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:112,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:113,1
    - Dst: EC_GROUP_set_generator
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:113,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:118,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:119,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:120,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:121,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:122,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:123,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:124,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:125,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:127,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 7
    argNames:
    - p_hex
    - a_hex
    - b_hex
    - x_hex
    - y_hex
    - order_hex
    - cof_hex
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 132
    functionName: create_EC_group
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    - EC_GROUP_free
    - EC_POINT_set_affine_coordinates
    - EC_GROUP_set_generator
    - EC_POINT_new
    - EC_GROUP_new_curve_GFp
    - BN_free
    - BN_hex2bn
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: EC_GROUP
    signature: "EC_GROUP *create_EC_group(const char *p_hex, const char *a_hex,\n
      \                                const char *b_hex, const char *x_hex,\n                                 const
      char *y_hex, const char *order_hex,\n                                 const
      char *cof_hex)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:140,1
    - Dst: OPENSSL_hexstr2buf
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:144,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:152,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:153,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:153,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:156,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:157,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:158,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:158,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:159,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:159,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:162,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:163,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:164,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:165,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:165,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:166,1
    - Dst: ossl_sm2_ciphertext_size
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:166,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:170,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:171,1
    - Dst: start_fake_rand
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:174,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:175,1
    - Dst: ossl_sm2_encrypt
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:175,1
    - Dst: restore_rand
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:178,1
    - Dst: restore_rand
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:181,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:186,1
    - Dst: ossl_sm2_plaintext_size
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:186,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:187,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:191,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:192,1
    - Dst: ossl_sm2_decrypt
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:192,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:194,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:195,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:200,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:202,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:203,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:204,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:205,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 43
    argCount: 6
    argNames:
    - group
    - digest
    - privkey_hex
    - message
    - k_hex
    - ctext_hex
    argTypes:
    - EC_GROUP*
    - EVP_MD*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 134
    functionDepth: 7
    functionLinenumber: 134
    functionLinenumberEnd: 207
    functionName: test_sm2_crypt
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EC_KEY_new
    - TEST_int_eq
    - EC_POINT_new
    - OPENSSL_hexstr2buf
    - BN_hex2bn
    - strlen
    - EC_KEY_set_group
    - ossl_sm2_encrypt
    - ossl_sm2_ciphertext_size
    - EC_KEY_set_public_key
    - TEST_true
    - EC_POINT_free
    - BN_free
    - EC_KEY_set_private_key
    - OPENSSL_free
    - EC_POINT_mul
    - TEST_ptr
    - ossl_sm2_decrypt
    - EC_KEY_free
    - OPENSSL_zalloc
    - start_fake_rand
    - restore_rand
    - ossl_sm2_plaintext_size
    linkageType: ''
    returnType: int
    signature: "int test_sm2_crypt(const EC_GROUP *group,\n                          const
      EVP_MD *digest,\n                          const char *privkey_hex,\n                          const
      char *message,\n                          const char *k_hex, const char *ctext_hex)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_EC_group
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:214,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:223,1
    - Dst: test_sm2_crypt
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:226,1
    - Dst: EVP_sm3
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:228,1
    - Dst: test_sm2_crypt
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:241,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:243,1
    - Dst: create_EC_group
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:256,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:265,1
    - Dst: test_sm2_crypt
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:268,1
    - Dst: EVP_sm3
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:270,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:296,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 209
    functionDepth: 8
    functionLinenumber: 209
    functionLinenumberEnd: 300
    functionName: sm2_crypt_test
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - EVP_sm3
    - EC_GROUP_free
    - EVP_sha256
    - create_EC_group
    - test_sm2_crypt
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int sm2_crypt_test(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:311,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:322,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:322,1
    - Dst: EC_KEY_new
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:325,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:326,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:327,1
    - Dst: EC_KEY_set_group
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:327,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:328,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:328,1
    - Dst: EC_POINT_new
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:332,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:333,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:334,1
    - Dst: EC_POINT_mul
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:334,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:335,1
    - Dst: EC_KEY_set_public_key
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:335,1
    - Dst: start_fake_rand
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:339,1
    - Dst: ossl_sm2_do_sign
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:340,1
    - Dst: EVP_sm3
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:340,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:341,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:342,1
    - Dst: restore_rand
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:343,1
    - Dst: restore_rand
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:346,1
    - Dst: ECDSA_SIG_get0
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:348,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:350,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:350,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:351,1
    - Dst: BN_hex2bn
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:351,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:352,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:353,1
    - Dst: ossl_sm2_do_verify
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:356,1
    - Dst: EVP_sm3
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:356,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:357,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:360,1
    - Dst: ECDSA_SIG_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:363,1
    - Dst: EC_POINT_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:364,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:365,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:366,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:367,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:368,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 8
    argNames:
    - group
    - userid
    - privkey_hex
    - message
    - k_hex
    - r_hex
    - s_hex
    - omit_pubkey
    argTypes:
    - EC_GROUP*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 302
    functionDepth: 7
    functionLinenumber: 302
    functionLinenumberEnd: 371
    functionName: test_sm2_sign
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new
    - EC_POINT_new
    - ECDSA_SIG_free
    - BN_hex2bn
    - strlen
    - ossl_sm2_do_sign
    - EC_KEY_set_group
    - EVP_sm3
    - TEST_BN_eq
    - EC_KEY_set_public_key
    - EC_POINT_free
    - TEST_true
    - BN_free
    - EC_KEY_set_private_key
    - EC_POINT_mul
    - TEST_ptr
    - EC_KEY_free
    - start_fake_rand
    - ECDSA_SIG_get0
    - restore_rand
    - ossl_sm2_do_verify
    linkageType: ''
    returnType: int
    signature: "int test_sm2_sign(const EC_GROUP *group,\n                         const
      char *userid,\n                         const char *privkey_hex,\n                         const
      char *message,\n                         const char *k_hex,\n                         const
      char *r_hex,\n                         const char *s_hex,\n                         int
      omit_pubkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_EC_group
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:378,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:387,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:390,1
    - Dst: test_sm2_sign
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:390,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:402,1
    - Dst: test_sm2_sign
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:402,1
    - Dst: EC_GROUP_free
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 425
    functionName: sm2_sig_test
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - EC_GROUP_free
    - TEST_false
    - test_sm2_sign
    - create_EC_group
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int sm2_sig_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:432,1
    - Dst: fake_rand_start
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:434,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:438,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 442
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 0
    functionsReached:
    - fake_rand_start
    - ADD_TEST
    - TEST_note
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fake_rand_finish
      Src: /src/openssl-3.0.15/test/sm2_internal_test.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sm2_internal_test.c
    functionUses: 6
    functionsReached:
    - fake_rand_finish
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/openssl-3.0.15/test/versions.c:17,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/versions.c:18,1
    - Dst: OpenSSL_version
      Src: /src/openssl-3.0.15/test/versions.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/versions.c
    functionUses: 6
    functionsReached:
    - printf
    - OpenSSL_version
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_async.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_set_key
      Src: /src/openssl-3.0.15/test/casttest.c:69,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-3.0.15/test/casttest.c:70,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/casttest.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/casttest.c:72,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-3.0.15/test/casttest.c:76,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/casttest.c:77,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/casttest.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - z
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: cast_test_vector
    functionSourceFile: /src/openssl-3.0.15/test/casttest.c
    functionUses: 0
    functionsReached:
    - CAST_set_key
    - TEST_info
    - TEST_mem_eq
    - CAST_ecb_encrypt
    linkageType: ''
    returnType: int
    signature: int cast_test_vector(int z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/casttest.c:91,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/casttest.c:92,1
    - Dst: CAST_set_key
      Src: /src/openssl-3.0.15/test/casttest.c:95,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-3.0.15/test/casttest.c:96,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-3.0.15/test/casttest.c:97,1
    - Dst: CAST_set_key
      Src: /src/openssl-3.0.15/test/casttest.c:98,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-3.0.15/test/casttest.c:99,1
    - Dst: CAST_ecb_encrypt
      Src: /src/openssl-3.0.15/test/casttest.c:100,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/casttest.c:103,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/casttest.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: cast_test_iterations
    functionSourceFile: /src/openssl-3.0.15/test/casttest.c
    functionUses: 0
    functionsReached:
    - CAST_set_key
    - TEST_mem_eq
    - CAST_ecb_encrypt
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cast_test_iterations(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/casttest.c:114,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/casttest.c:114,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/casttest.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/casttest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_DECODER_CTX_new_for_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:610,1
    - Dst: OSSL_DECODER_from_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:614,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - keytype
    - data
    - data_len
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 604
    functionDepth: 13
    functionLinenumber: 604
    functionLinenumberEnd: 617
    functionName: load_example_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_CTX_free
    - OSSL_DECODER_from_data
    - OSSL_DECODER_CTX_new_for_pkey
    linkageType: ''
    returnType: EVP_PKEY
    signature: "EVP_PKEY *load_example_key(const char *keytype,\n                                  const
      unsigned char *data, size_t data_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 14
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: load_example_rsa_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - load_example_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_rsa_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 14
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: load_example_dsa_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - load_example_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_dsa_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 14
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: load_example_ec_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - load_example_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_ec_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 14
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: load_example_dh_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - load_example_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_dh_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 14
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: load_example_ed25519_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - load_example_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_ed25519_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 14
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: load_example_x25519_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - load_example_key
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_x25519_key(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:674,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 665
    functionDepth: 7
    functionLinenumber: 665
    functionLinenumberEnd: 680
    functionName: load_example_hmac_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EVP_PKEY_new_raw_private_key_ex
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *load_example_hmac_key(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:688,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:688,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:689,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:689,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:691,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:694,1
    - Dst: EVP_set_default_properties
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:694,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:695,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:695,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:696,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:696,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:698,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:701,1
    - Dst: EVP_set_default_properties
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:701,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:702,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:702,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:706,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:707,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 682
    functionDepth: 11
    functionLinenumber: 682
    functionLinenumberEnd: 709
    functionName: test_EVP_set_default_properties
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_set_default_properties
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_set_default_properties(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:717,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:717,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:719,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:719,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:720,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:720,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:724,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:730,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - keytype
    - params
    argTypes:
    - char*
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 712
    functionDepth: 6
    functionLinenumber: 712
    functionLinenumberEnd: 733
    functionName: make_key_fromdata
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *make_key_fromdata(char *keytype, OSSL_PARAM *params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:739,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:739,1
    - Dst: PEM_write_bio_PUBKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:741,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:743,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:746,1
    - Dst: PEM_write_bio_PrivateKey_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:749,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:752,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:755,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:761,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - pkey
    - selection
    argTypes:
    - EVP_PKEY*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 764
    functionName: test_selection
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_PrivateKey_ex
    - BIO_new
    - PEM_write_bio_PUBKEY
    - BIO_free
    - TEST_false
    - TEST_true
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_selection(EVP_PKEY *pkey, int selection)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:787,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:787,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:788,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:788,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:789,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:789,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:790,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:790,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:791,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:791,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:795,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:795,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:796,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:796,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:797,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:797,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:798,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:798,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:800,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:800,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:801,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:801,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:804,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:805,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:809,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:810,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:814,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:814,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:815,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:815,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:816,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:816,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:817,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:817,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:818,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:818,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:821,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:821,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:822,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:822,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:825,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:826,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:830,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:831,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:835,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:835,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:836,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:836,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:837,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:837,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:838,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:838,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:839,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:839,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:842,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:842,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:843,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:843,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:846,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:847,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:851,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:852,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:856,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:856,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:857,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:857,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:858,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:858,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:859,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:859,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:860,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:860,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:862,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:862,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:865,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:865,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:866,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:866,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:869,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:874,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:875,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:876,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:877,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:878,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:879,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:880,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:881,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:882,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:883,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:884,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 67
    argCount: 1
    argNames:
    - keytype
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 772
    functionDepth: 7
    functionLinenumber: 772
    functionLinenumberEnd: 887
    functionName: test_EVP_PKEY_ffc_priv_pub
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - make_key_fromdata
    - BN_new
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - EVP_PKEY_free
    - BN_free
    - test_selection
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_ffc_priv_pub(char *keytype)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:927,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:927,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:931,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:931,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:932,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:932,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:936,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:936,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:937,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:937,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:940,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:941,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:945,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:946,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:950,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:950,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:951,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:951,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:954,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:954,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:957,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:957,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:958,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:958,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:961,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:962,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:972,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:973,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:977,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:977,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:978,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:978,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:981,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:981,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:985,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:985,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:986,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:986,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:989,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:990,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:994,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:995,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:999,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:999,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1000,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1000,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1003,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1003,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1006,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1006,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1009,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1009,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1010,1
    - Dst: make_key_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1010,1
    - Dst: test_selection
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1013,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1017,1
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1017,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1018,1
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1018,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1020,1
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1020,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1022,1
    - Dst: EVP_PKEY_parameters_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1022,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1024,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1024,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1025,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1025,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1026,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1026,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1027,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1027,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1031,1
    - Dst: EVP_PKEY_get1_encoded_public_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1031,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1033,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1035,1
    - Dst: EVP_PKEY_get1_encoded_public_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1035,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1036,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1042,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1042,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1045,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1049,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1049,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1052,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1056,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1056,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1063,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1064,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1065,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1066,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1067,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1068,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1069,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 909
    functionDepth: 11
    functionLinenumber: 909
    functionLinenumberEnd: 1072
    functionName: test_EC_priv_pub
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_get1_encoded_public_key
    - test_selection
    - TEST_int_gt
    - make_key_fromdata
    - OSSL_PARAM_free
    - TEST_true
    - EVP_PKEY_eq
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - BN_free
    - OPENSSL_free
    - TEST_ptr
    - BN_bin2bn
    - EVP_PKEY_free
    - OSSL_PARAM_BLD_push_utf8_string
    - EVP_PKEY_parameters_eq
    linkageType: ''
    returnType: int
    signature: int test_EC_priv_pub(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1085,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1085,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1088,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1089,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1092,1
    - Dst: EC_KEY_set_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1092,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1095,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1096,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1099,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1099,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1105,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1106,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1113,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1113,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1116,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1122,1
    - Dst: EVP_PKEY_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1122,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1125,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1125,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1126,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1134,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1135,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1136,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1137,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1076
    functionDepth: 8
    functionLinenumber: 1076
    functionLinenumberEnd: 1140
    functionName: test_EC_priv_only_legacy
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_eq
    - EC_KEY_free
    - BN_bin2bn
    - TEST_int_eq
    - EVP_MD_CTX_new
    - EVP_PKEY_assign_EC_KEY
    - EVP_PKEY_dup
    - EVP_PKEY_free
    - EC_KEY_set_private_key
    - EVP_PKEY_new
    - BN_free
    - EVP_DigestSignInit_ex
    - TEST_ptr
    - TEST_true
    - EC_KEY_new_by_curve_name
    linkageType: ''
    returnType: int
    signature: int test_EC_priv_only_legacy(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1157,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1157,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1161,1
    - Dst: load_example_dsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1161,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1169,1
    - Dst: load_example_ec_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1169,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1177,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1178,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1179,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1179,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1180,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1180,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1183,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1184,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1186,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1186,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1188,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1188,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1191,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1191,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1192,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1192,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1198,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1199,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1200,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1144
    functionDepth: 15
    functionLinenumber: 1144
    functionLinenumberEnd: 1202
    functionName: test_EVP_PKEY_sign
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_le
    - EVP_PKEY_sign_init
    - load_example_ec_key
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - EVP_PKEY_verify
    - EVP_PKEY_free
    - EVP_PKEY_verify_init
    - OPENSSL_free
    - EVP_PKEY_sign
    - load_example_rsa_key
    - TEST_ptr
    - EVP_PKEY_CTX_free
    - load_example_dsa_key
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_sign(int tst)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1224,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1224,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1226,1
    - Dst: RSA_meth_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1226,1
    - Dst: RSA_get_default_method
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1226,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1229,1
    - Dst: EVP_PKEY_get1_RSA
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1229,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1230,1
    - Dst: RSA_set_method
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1230,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1231,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1231,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1236,1
    - Dst: load_example_dsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1236,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1238,1
    - Dst: DSA_meth_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1238,1
    - Dst: DSA_get_default_method
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1238,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1241,1
    - Dst: EVP_PKEY_get1_DSA
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1241,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1242,1
    - Dst: DSA_set_method
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1242,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1243,1
    - Dst: EVP_PKEY_assign_DSA
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1243,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1252,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1253,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1254,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1254,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1255,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1255,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1258,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1259,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1261,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1261,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1263,1
    - Dst: EVP_PKEY_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1263,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1266,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1266,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1267,1
    - Dst: EVP_PKEY_verify
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1267,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1273,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1274,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1275,1
    - Dst: RSA_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1276,1
    - Dst: RSA_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1277,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1279,1
    - Dst: DSA_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1280,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 46
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1205
    functionDepth: 15
    functionLinenumber: 1205
    functionLinenumberEnd: 1283
    functionName: test_EVP_PKEY_sign_with_app_method
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - DSA_get_default_method
    - EVP_PKEY_get1_DSA
    - EVP_PKEY_assign_RSA
    - EVP_PKEY_sign
    - RSA_meth_free
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - DSA_set_method
    - EVP_PKEY_verify
    - RSA_meth_dup
    - EVP_PKEY_get1_RSA
    - TEST_int_le
    - load_example_rsa_key
    - OPENSSL_free
    - RSA_get_default_method
    - DSA_meth_free
    - TEST_ptr
    - load_example_dsa_key
    - RSA_set_method
    - DSA_meth_dup
    - EVP_PKEY_sign_init
    - EVP_PKEY_CTX_new_from_pkey
    - OPENSSL_malloc
    - EVP_PKEY_free
    - EVP_PKEY_verify_init
    - EVP_PKEY_assign_DSA
    - RSA_free
    - DSA_free
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_sign_with_app_method(int tst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1303,1
    - Dst: EVP_aes_256_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1306,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1307,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1307,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1311,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1311,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1312,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1312,1
    - Dst: EVP_PKEY_get_size
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1312,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1313,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1313,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1314,1
    - Dst: EVP_SealInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1314,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1316,1
    - Dst: EVP_SealUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1316,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1318,1
    - Dst: EVP_SealFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1318,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1324,1
    - Dst: EVP_OpenInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1324,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1325,1
    - Dst: EVP_OpenUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1327,1
    - Dst: EVP_OpenFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1327,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1331,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1337,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1338,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1339,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1340,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1290
    functionDepth: 15
    functionLinenumber: 1290
    functionLinenumberEnd: 1342
    functionName: test_EVP_Enveloped
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_SealFinal
    - EVP_OpenFinal
    - EVP_CIPHER_CTX_free
    - load_example_rsa_key
    - TEST_true
    - EVP_OpenInit
    - EVP_CIPHER_free
    - EVP_PKEY_get_size
    - OPENSSL_free
    - TEST_skip
    - EVP_CIPHER_CTX_new
    - EVP_SealUpdate
    - TEST_ptr
    - EVP_CIPHER_fetch
    - EVP_aes_256_cbc
    - EVP_SealInit
    - EVP_OpenUpdate
    - OPENSSL_zalloc
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_EVP_Enveloped(int n)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1377,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1385,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1385,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1386,1
    - Dst: BIO_f_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1386,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1387,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1387,1
    - Dst: BIO_push
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1389,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1390,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1390,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1393,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1393,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1394,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1394,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1399,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1399,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1403,1
    - Dst: load_example_dsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1403,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1410,1
    - Dst: load_example_hmac_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1410,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1415,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1417,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1419,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1419,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1422,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1422,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1426,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1429,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1429,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1435,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1435,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1437,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1437,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1441,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1441,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1451,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1451,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1456,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1456,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1457,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1457,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1462,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1462,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1463,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1463,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1473,1
    - Dst: BIO_reset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1473,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1474,1
    - Dst: BIO_get_md_ctx
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1474,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1478,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1483,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1483,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1486,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1486,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1490,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1490,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1494,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1494,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1501,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1501,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1502,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1502,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1503,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1503,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1506,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1513,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1514,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1515,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1516,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1517,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1518,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1519,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1520,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 122
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1362
    functionDepth: 15
    functionLinenumber: 1362
    functionLinenumberEnd: 1523
    functionName: test_EVP_DigestSignInit
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_MD_CTX_free
    - load_example_hmac_key
    - EVP_DigestSignInit
    - TEST_int_gt
    - BIO_s_mem
    - BIO_new
    - EVP_DigestVerifyUpdate
    - load_example_rsa_key
    - EVP_DigestSign
    - TEST_true
    - EVP_DigestSignUpdate
    - BIO_get_md_ctx
    - BIO_push
    - EVP_DigestSignFinal
    - BIO_write_ex
    - EVP_DigestVerifyInit
    - EVP_MD_CTX_new
    - EVP_sha256
    - OPENSSL_free
    - TEST_skip
    - TEST_ptr
    - load_example_dsa_key
    - OPENSSL_malloc
    - BIO_free
    - TEST_false
    - EVP_PKEY_free
    - EVP_DigestVerifyFinal
    - BIO_f_md
    - BIO_reset
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_DigestSignInit(int tst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1532,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1534,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1534,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1535,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1535,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1538,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1538,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1538,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1539,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1539,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1540,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1540,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1545,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1545,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1546,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1546,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1547,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1547,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1553,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1554,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1525
    functionDepth: 15
    functionLinenumber: 1525
    functionLinenumberEnd: 1556
    functionName: test_EVP_DigestVerifyInit
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestVerifyInit
    - EVP_MD_CTX_new
    - EVP_DigestVerifyUpdate
    - EVP_sha256
    - EVP_PKEY_free
    - TEST_skip
    - EVP_DigestVerifyFinal
    - load_example_rsa_key
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_EVP_DigestVerifyInit(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1574,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1576,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1577,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1578,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1578,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1582,1
    - Dst: EVP_MD_CTX_create
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1582,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1585,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1585,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1587,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1587,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1592,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1592,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1594,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1596,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1596,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1598,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1603,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1604,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1560
    functionDepth: 8
    functionLinenumber: 1560
    functionLinenumberEnd: 1606
    functionName: test_siphash_digestsign
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_DigestSignUpdate
    - EVP_DigestSignFinal
    - TEST_mem_eq
    - EVP_MD_CTX_free
    - TEST_int_eq
    - EVP_DigestSignInit
    - EVP_PKEY_new_raw_private_key
    - EVP_MD_CTX_create
    - EVP_PKEY_free
    - TEST_skip
    - TEST_ptr
    - memset
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int test_siphash_digestsign(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1620,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1620,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1623,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1623,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1624,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1624,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1627,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1627,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1628,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1628,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1629,1
    - Dst: EVP_DigestFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1629,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1631,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1631,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1634,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1634,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1635,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1635,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1636,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1636,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1638,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1638,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1643,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1643,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1646,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1646,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1647,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1647,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1648,1
    - Dst: EVP_DigestFinalXOF
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1648,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1650,1
    - Dst: EVP_MD_CTX_get0_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1650,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1651,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1651,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1656,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1657,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1658,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1612
    functionDepth: 11
    functionLinenumber: 1612
    functionLinenumberEnd: 1660
    functionName: test_EVP_Digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestFinal
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - EVP_MD_free
    - TEST_ptr_eq
    - EVP_DigestFinalXOF
    - EVP_DigestFinal_ex
    - TEST_ptr
    - TEST_true
    - EVP_MD_CTX_get0_md
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_Digest(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_md_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1666,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1671,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1673,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1674,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1674,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1677,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1677,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1678,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1678,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1679,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1679,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1682,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1687,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1662
    functionDepth: 8
    functionLinenumber: 1662
    functionLinenumberEnd: 1689
    functionName: test_EVP_md_null
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_DigestInit_ex
    - EVP_MD_CTX_new
    - EVP_md_null
    - TEST_skip
    - EVP_DigestFinal_ex
    - TEST_ptr
    - TEST_true
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int test_EVP_md_null(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1702,1
    - Dst: d2i_AutoPrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1702,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1703,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1704,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1704,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1691
    functionDepth: 16
    functionLinenumber: 1691
    functionLinenumberEnd: 1712
    functionName: test_d2i_AutoPrivateKey
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - EVP_PKEY_get_id
    - EVP_PKEY_free
    - TEST_ptr_eq
    - TEST_ptr
    - d2i_AutoPrivateKey
    linkageType: ''
    returnType: int
    signature: int test_d2i_AutoPrivateKey(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1762,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1765,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1766,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1757
    functionDepth: 14
    functionLinenumber: 1757
    functionLinenumberEnd: 1769
    functionName: test_invalide_ec_char2_pub_range_decode
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TEST_ptr_null
    - load_example_key
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_invalide_ec_char2_pub_range_decode(int id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1779,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1779,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1783,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1787,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1787,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1793,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1794,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1772
    functionDepth: 8
    functionLinenumber: 1772
    functionLinenumberEnd: 1797
    functionName: test_EVP_PKCS82PKEY
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - d2i_PKCS8_PRIV_KEY_INFO
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY_free
    - TEST_ptr_eq
    - TEST_ptr
    - EVP_PKCS82PKEY
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKCS82PKEY(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1813,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1813,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1813,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1814,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1814,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1815,1
    - Dst: i2d_PKCS8PrivateKey_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1815,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1818,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1818,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1819,1
    - Dst: d2i_PKCS8_PRIV_KEY_INFO_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1819,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1820,1
    - Dst: EVP_PKCS82PKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1820,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1821,1
    - Dst: ERR_peek_last_error
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1821,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1827,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1828,1
    - Dst: PKCS8_PRIV_KEY_INFO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1829,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1830,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1800
    functionDepth: 15
    functionLinenumber: 1800
    functionLinenumberEnd: 1832
    functionName: test_EVP_PKCS82PKEY_wrong_tag
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - i2d_PKCS8PrivateKey_bio
    - BIO_get_mem_data
    - TEST_int_eq
    - BIO_free_all
    - d2i_PKCS8_PRIV_KEY_INFO_bio
    - PKCS8_PRIV_KEY_INFO_free
    - EVP_PKEY_free
    - ERR_peek_last_error
    - load_example_rsa_key
    - TEST_ptr
    - EVP_PKCS82PKEY
    - TEST_int_gt
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKCS82PKEY_wrong_tag(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1843,1
    - Dst: BIO_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1843,1
    - Dst: BIO_s_mem
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1843,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1844,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1844,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1845,1
    - Dst: i2d_PKCS8PrivateKey_bio
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1845,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1848,1
    - Dst: BIO_get_mem_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1848,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1849,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1850,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1856,1
    - Dst: PEM_write_bio_PKCS8PrivateKey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1856,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1863,1
    - Dst: BIO_free_all
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1864,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1835
    functionDepth: 15
    functionLinenumber: 1835
    functionLinenumberEnd: 1866
    functionName: test_privatekey_to_pkcs8
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BIO_new
    - i2d_PKCS8PrivateKey_bio
    - BIO_get_mem_data
    - BIO_free_all
    - PEM_write_bio_PKCS8PrivateKey
    - EVP_PKEY_free
    - load_example_rsa_key
    - TEST_ptr
    - TEST_int_gt
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int test_privatekey_to_pkcs8(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1886,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1886,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1888,1
    - Dst: OSSL_PARAM_get_utf8_string_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1888,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1891,1
    - Dst: OPENSSL_strcasecmp
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - params
    - arg
    argTypes:
    - OSSL_PARAM[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1877
    functionDepth: 3
    functionLinenumber: 1877
    functionLinenumberEnd: 1899
    functionName: ec_export_get_encoding_cb
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_strcasecmp
    - OSSL_PARAM_get_utf8_string_ptr
    - OSSL_PARAM_locate_const
    - TEST_ptr
    - TEST_true
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int ec_export_get_encoding_cb(const OSSL_PARAM params[], void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1911,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1911,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1912,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1912,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1913,1
    - Dst: EVP_PKEY_CTX_set_group_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1913,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1914,1
    - Dst: EVP_PKEY_CTX_set_ec_param_enc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1914,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1915,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1915,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1916,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1920,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1920,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1921,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1921,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1922,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1922,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1923,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1927,1
    - Dst: evp_keymgmt_util_export
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1927,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1929,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1934,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1935,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1936,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1937,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1901
    functionDepth: 8
    functionLinenumber: 1901
    functionLinenumberEnd: 1939
    functionName: test_EC_keygen_with_enc
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_keygen
    - EVP_PKEY_CTX_set_group_name
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - evp_keymgmt_util_export
    - TEST_ptr
    - EVP_PKEY_CTX_set_ec_param_enc
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_EC_keygen_with_enc(int idx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1972,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1972,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1973,1
    - Dst: PEM_read_bio_PUBKEY_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1976,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1977,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1980,1
    - Dst: EVP_PKEY_is_a
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1980,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1983,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1983,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1986,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1986,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1989,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1991,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1991,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1994,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1994,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1997,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1997,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:1997,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2000,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2000,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2000,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2003,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2003,1
    - Dst: BIO_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2008,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2009,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2010,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2011,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2012,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1944
    functionDepth: 11
    functionLinenumber: 1944
    functionLinenumberEnd: 2014
    functionName: test_EVP_SM2_verify
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_set1_id
    - strlen
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_DigestVerifyUpdate
    - TEST_true
    - EVP_DigestVerifyInit
    - EVP_MD_CTX_new
    - TEST_ptr
    - EVP_PKEY_is_a
    - PEM_read_bio_PUBKEY_ex
    - EVP_PKEY_CTX_new_from_pkey
    - BIO_new_mem_buf
    - BIO_free
    - EVP_PKEY_free
    - EVP_DigestVerifyFinal
    - EVP_MD_free
    - EVP_MD_CTX_set_pkey_ctx
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_SM2_verify(void)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2044,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2044,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2048,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2048,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2051,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2051,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2054,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2054,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2057,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2057,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2061,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2061,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2064,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2064,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2067,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2067,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2070,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2070,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2073,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2073,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2076,1
    - Dst: EVP_MD_CTX_set_pkey_ctx
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2077,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2079,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2079,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2082,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2082,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2085,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2085,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2088,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2088,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2092,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2092,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2095,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2095,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2098,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2098,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2103,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2103,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2107,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2110,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2110,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2113,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2113,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2121,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2121,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2125,1
    - Dst: EVP_PKEY_CTX_set1_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2125,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2128,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2128,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2131,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2131,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2136,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2146,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2152,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2155,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2155,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2159,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2159,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2162,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2162,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2165,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2165,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2169,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2169,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2172,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2172,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2175,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2175,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2179,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2179,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2187,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2188,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2188,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2190,1
    - Dst: EVP_MD_is_a
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2190,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2191,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2195,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2198,1
    - Dst: memcmp
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2198,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2204,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2205,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2206,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2207,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2208,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2209,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2210,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2211,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2212,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2213,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 138
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2016
    functionDepth: 11
    functionLinenumber: 2016
    functionLinenumberEnd: 2215
    functionName: test_EVP_SM2
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_set1_id
    - TEST_int_eq
    - EVP_DigestSignInit
    - EVP_PKEY_decrypt_init
    - EVP_PKEY_decrypt
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_DigestVerifyUpdate
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_get_params
    - EVP_PKEY_encrypt
    - memcmp
    - TEST_true
    - EVP_DigestSignUpdate
    - EVP_PKEY_CTX_new_from_name
    - EVP_DigestSignFinal
    - EVP_DigestVerifyInit
    - EVP_PKEY_paramgen_init
    - EVP_MD_CTX_new
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_encrypt_init
    - TEST_info
    - OPENSSL_free
    - TEST_ptr
    - EVP_MD_is_a
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - OPENSSL_malloc
    - EVP_PKEY_paramgen
    - EVP_PKEY_free
    - EVP_DigestVerifyFinal
    - EVP_PKEY_CTX_set_params
    - EVP_MD_free
    - EVP_MD_CTX_set_pkey_ctx
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_SM2(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2269,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2273,1
    - Dst: EVP_PKEY_new_raw_public_key_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2276,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2278,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2283,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2292,1
    - Dst: EVP_PKEY_new_raw_private_key_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2295,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2296,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2301,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2308,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2309,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2309,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2310,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2310,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2311,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2311,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2312,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2319,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2319,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2321,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2321,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2325,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2325,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2326,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2326,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2327,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2332,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 38
    argCount: 3
    argNames:
    - tst
    - pub
    - uselibctx
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2257
    functionDepth: 7
    functionLinenumber: 2257
    functionLinenumberEnd: 2334
    functionName: test_set_get_raw_keys_int
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - TEST_mem_eq
    - EVP_PKEY_get_raw_public_key
    - EVP_PKEY_new_raw_public_key
    - TEST_int_eq
    - EVP_PKEY_new_raw_private_key
    - TEST_false
    - EVP_PKEY_free
    - OBJ_nid2sn
    - EVP_PKEY_new_raw_private_key_ex
    - strlen
    - EVP_PKEY_get_raw_private_key
    - TEST_ptr
    - memset
    - EVP_PKEY_eq
    - EVP_PKEY_new_raw_public_key_ex
    linkageType: ''
    returnType: int
    signature: int test_set_get_raw_keys_int(int tst, int pub, int uselibctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_set_get_raw_keys_int
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2338,1
    - Dst: test_set_get_raw_keys_int
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2339,1
    - Dst: test_set_get_raw_keys_int
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2340,1
    - Dst: test_set_get_raw_keys_int
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2336
    functionDepth: 8
    functionLinenumber: 2336
    functionLinenumberEnd: 2342
    functionName: test_set_get_raw_keys
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - test_set_get_raw_keys_int
    linkageType: ''
    returnType: int
    signature: int test_set_get_raw_keys(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2345
    functionDepth: 0
    functionLinenumber: 2345
    functionLinenumberEnd: 2348
    functionName: pkey_custom_check
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_custom_check(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2350
    functionDepth: 0
    functionLinenumber: 2350
    functionLinenumberEnd: 2353
    functionName: pkey_custom_pub_check
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_custom_pub_check(EVP_PKEY *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2355
    functionDepth: 0
    functionLinenumber: 2355
    functionLinenumberEnd: 2358
    functionName: pkey_custom_param_check
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pkey_custom_param_check(EVP_PKEY *pkey)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2380,1
    - Dst: load_example_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2380,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2383,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2383,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2386,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2386,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2389,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2389,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2392,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2392,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2395,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2395,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2399,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2401,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2404,1
    - Dst: EVP_PKEY_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2404,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2407,1
    - Dst: EVP_PKEY_public_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2407,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2410,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2410,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2417,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2419,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2421,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2363
    functionDepth: 14
    functionLinenumber: 2363
    functionLinenumberEnd: 2423
    functionName: test_EVP_PKEY_check
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - TEST_int_eq
    - EVP_PKEY_param_check
    - EVP_PKEY_check
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_get_id
    - EVP_PKEY_up_ref
    - EVP_PKEY_free
    - load_example_key
    - EVP_PKEY_CTX_free
    - TEST_ptr
    - EVP_PKEY_public_check
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_check(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2428,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2433,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2434,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2434,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2436,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2436,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2437,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2437,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2438,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - pkey
    - mac
    argTypes:
    - EVP_PKEY*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2426
    functionDepth: 8
    functionLinenumber: 2426
    functionLinenumberEnd: 2444
    functionName: get_cmac_val
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestSignFinal
    - EVP_MD_CTX_new
    - TEST_size_t_eq
    - EVP_DigestSignInit_ex
    - TEST_ptr
    - TEST_true
    - EVP_DigestSignUpdate
    linkageType: ''
    returnType: int
    signature: int get_cmac_val(EVP_PKEY *pkey, unsigned char *mac)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2461,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2467,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2470,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2470,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2471,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2471,1
    - Dst: EVP_aes_256_ecb
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2473,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2474,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2474,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2477,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2477,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2478,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2479,1
    - Dst: get_cmac_val
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2479,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2483,1
    - Dst: EVP_PKEY_new_CMAC_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2489,1
    - Dst: EVP_aes_256_ecb
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2489,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2490,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2491,1
    - Dst: get_cmac_val
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2491,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2492,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2499,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2500,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2445
    functionDepth: 9
    functionLinenumber: 2445
    functionLinenumberEnd: 2502
    functionName: test_CMAC_keygen
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_PKEY_new_CMAC_key
    - EVP_PKEY_keygen
    - TEST_ptr
    - get_cmac_val
    - EVP_PKEY_free
    - TEST_skip
    - EVP_PKEY_keygen_init
    - EVP_aes_256_ecb
    - EVP_PKEY_CTX_new_id
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_PKEY_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int test_CMAC_keygen(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2520,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2520,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2526,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2528,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2528,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2529,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2529,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2529,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2530,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2530,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2532,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2532,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2534,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2534,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2536,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2536,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2537,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2505
    functionDepth: 6
    functionLinenumber: 2505
    functionLinenumberEnd: 2547
    functionName: test_HKDF
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_set1_hkdf_key
    - TEST_mem_eq
    - EVP_sha256
    - EVP_PKEY_CTX_add1_hkdf_info
    - EVP_PKEY_CTX_set1_hkdf_salt
    - TEST_ptr
    - EVP_PKEY_derive_init
    - memset
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_HKDF(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2564,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2564,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2568,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2570,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2570,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2571,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2571,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2571,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2572,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2572,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2574,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2574,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2576,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2576,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2578,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2578,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2579,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2585,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2549
    functionDepth: 6
    functionLinenumber: 2549
    functionLinenumberEnd: 2588
    functionName: test_emptyikm_HKDF
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_set1_hkdf_key
    - TEST_mem_eq
    - EVP_sha256
    - EVP_PKEY_CTX_add1_hkdf_info
    - EVP_PKEY_CTX_set1_hkdf_salt
    - TEST_ptr
    - EVP_PKEY_derive_init
    - memset
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_emptyikm_HKDF(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2605,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2605,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2609,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2611,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2611,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2612,1
    - Dst: EVP_PKEY_CTX_set_hkdf_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2612,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2612,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2613,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_salt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2613,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2615,1
    - Dst: EVP_PKEY_CTX_set1_hkdf_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2615,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2617,1
    - Dst: EVP_PKEY_CTX_add1_hkdf_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2617,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2619,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2619,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2620,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2626,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2590
    functionDepth: 6
    functionLinenumber: 2590
    functionLinenumberEnd: 2629
    functionName: test_empty_salt_info_HKDF
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_set1_hkdf_key
    - TEST_mem_eq
    - EVP_sha256
    - EVP_PKEY_CTX_add1_hkdf_info
    - EVP_PKEY_CTX_set1_hkdf_salt
    - TEST_ptr
    - EVP_PKEY_derive_init
    - memset
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_empty_salt_info_HKDF(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_new_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2635,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2639,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2641,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2641,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2644,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2644,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2650,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2650,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2653,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2653,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2659,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2632
    functionDepth: 3
    functionLinenumber: 2632
    functionLinenumberEnd: 2661
    functionName: test_X509_PUBKEY_inplace
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_free
    - X509_PUBKEY_get0
    - d2i_X509_PUBKEY
    - X509_PUBKEY_new_ex
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_X509_PUBKEY_inplace(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509_PUBKEY_new_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2670,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2671,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2672,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2672,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2673,1
    - Dst: X509_PUBKEY_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2673,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2674,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2677,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2677,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2678,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2678,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2679,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2679,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2679,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2682,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2687,1
    - Dst: d2i_X509_PUBKEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2687,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2688,1
    - Dst: X509_PUBKEY_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2688,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2691,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2693,1
    - Dst: X509_PUBKEY_get0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2693,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2699,1
    - Dst: X509_PUBKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2700,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2663
    functionDepth: 7
    functionLinenumber: 2663
    functionLinenumberEnd: 2702
    functionName: test_X509_PUBKEY_dup
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - X509_PUBKEY_free
    - X509_PUBKEY_get0
    - d2i_X509_PUBKEY
    - X509_PUBKEY_new_ex
    - X509_PUBKEY_dup
    - TEST_ptr_ne
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_X509_PUBKEY_dup(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2718,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2719,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2720,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2720,1
    - Dst: EVP_PKEY_CTX_settable_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2726,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2727,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2728,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2728,1
    - Dst: EVP_PKEY_CTX_gettable_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2732,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2733,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2734,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2734,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2736,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2736,1
    - Dst: strcpy
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2744,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2746,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2748,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2750,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2750,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2754,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2756,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2756,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2757,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2764,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2764,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2764,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2765,1
    - Dst: EVP_PKEY_CTX_get_signature_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2765,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2766,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2766,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2772,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2773,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2774,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2774,1
    - Dst: EVP_MD_CTX_settable_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2782,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2783,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2784,1
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2784,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2786,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2790,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2791,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2793,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2795,1
    - Dst: EVP_MD_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2795,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2801,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2802,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 49
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2706
    functionDepth: 8
    functionLinenumber: 2706
    functionLinenumberEnd: 2805
    functionName: test_EVP_PKEY_CTX_get_set_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - TEST_ptr_null
    - TEST_int_eq
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_PKEY_CTX_settable_params
    - EVP_MD_CTX_settable_params
    - EVP_PKEY_CTX_get_signature_md
    - OSSL_PARAM_locate_const
    - TEST_true
    - memset
    - EVP_PKEY_CTX_set_signature_md
    - EVP_PKEY_CTX_set_params
    - OSSL_PARAM_construct_utf8_string
    - EVP_MD_CTX_new
    - EVP_sha256
    - strcmp
    - TEST_ptr
    - EVP_MD_CTX_set_params
    - EVP_PKEY_sign_init
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_gettable_params
    - TEST_ptr_eq
    - OSSL_PARAM_construct_end
    - EVP_DigestSignInit_ex
    - TEST_str_eq
    - strcpy
    - EVP_PKEY_CTX_get_params
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_CTX_get_set_params(EVP_PKEY *pkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2821,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2821,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2822,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2822,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2823,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2823,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2824,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2824,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2825,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2825,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2826,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2826,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2827,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2827,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2829,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2829,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2830,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2830,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2831,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2831,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2832,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2832,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2834,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2834,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2837,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2837,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2840,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2840,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2841,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2841,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2845,1
    - Dst: test_EVP_PKEY_CTX_get_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2848,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2851,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2852,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2853,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2854,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2855,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2856,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2857,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2858,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2859,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2808
    functionDepth: 9
    functionLinenumber: 2808
    functionLinenumberEnd: 2862
    functionName: test_DSA_get_set_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - BN_new
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - test_EVP_PKEY_CTX_get_set_params
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - OSSL_PARAM_BLD_free
    - BN_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_DSA_get_set_params(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_EVP_PKEY_ffc_priv_pub
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2868
    functionDepth: 8
    functionLinenumber: 2868
    functionLinenumberEnd: 2871
    functionName: test_DSA_priv_pub
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - test_EVP_PKEY_ffc_priv_pub
    linkageType: ''
    returnType: int
    signature: int test_DSA_priv_pub(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2888,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2888,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2889,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2889,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2890,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2890,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2891,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2891,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2892,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2892,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2894,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2894,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2895,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2895,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2896,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2896,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2898,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2898,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2901,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2901,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2902,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2902,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2906,1
    - Dst: test_EVP_PKEY_CTX_get_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2909,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2912,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2913,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2914,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2915,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2916,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2917,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2918,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2875
    functionDepth: 9
    functionLinenumber: 2875
    functionLinenumberEnd: 2921
    functionName: test_RSA_get_set_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_fromdata
    - BN_new
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - test_EVP_PKEY_CTX_get_set_params
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_free
    - OSSL_PARAM_BLD_free
    - BN_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_RSA_get_set_params(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2930,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2932,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2932,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2933,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2933,1
    - Dst: OSSL_PARAM_construct_int
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2940,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2941,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2943,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2945,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2947,1
    - Dst: EVP_PKEY_encrypt_init_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2947,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2955,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2957,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2959,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2961,1
    - Dst: EVP_PKEY_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2961,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2964,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2965,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2972,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2973,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2923
    functionDepth: 15
    functionLinenumber: 2923
    functionLinenumberEnd: 2976
    functionName: test_RSA_OAEP_set_get_params
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - OSSL_PARAM_construct_utf8_string
    - EVP_PKEY_encrypt_init_ex
    - EVP_PKEY_free
    - TEST_skip
    - OSSL_PARAM_construct_int
    - OSSL_PARAM_construct_end
    - EVP_PKEY_CTX_get_params
    - TEST_str_eq
    - load_example_rsa_key
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_RSA_OAEP_set_get_params(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2985,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2985,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2986,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2986,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2987,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2987,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2990,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2990,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2993,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2993,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2993,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2996,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:2996,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3002,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3003,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2979
    functionDepth: 15
    functionLinenumber: 2979
    functionLinenumberEnd: 3006
    functionName: test_RSA_OAEP_set_null_label
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_encrypt_init
    - OPENSSL_strdup
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - EVP_PKEY_free
    - load_example_rsa_key
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_RSA_OAEP_set_null_label(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3029,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3029,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3030,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3030,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3031,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3031,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3033,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3033,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3036,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3036,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3038,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3039,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3039,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3042,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3043,1
    - Dst: EVP_EncryptFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3043,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3044,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3049,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3049,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3050,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3050,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3056,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3056,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3058,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3059,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3059,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3062,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3063,1
    - Dst: EVP_DecryptFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3063,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3064,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3065,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3070,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3071,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3009
    functionDepth: 4
    functionLinenumber: 3009
    functionLinenumberEnd: 3073
    functionName: test_decrypt_null_chunks
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - TEST_int_eq
    - EVP_DecryptFinal
    - EVP_EncryptFinal
    - EVP_CIPHER_CTX_new
    - EVP_DecryptInit_ex
    - EVP_EncryptInit_ex
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: int test_decrypt_null_chunks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_EVP_PKEY_ffc_priv_pub
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3081
    functionDepth: 8
    functionLinenumber: 3081
    functionLinenumberEnd: 3084
    functionName: test_DH_priv_pub
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - test_EVP_PKEY_ffc_priv_pub
    linkageType: ''
    returnType: int
    signature: int test_DH_priv_pub(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3097,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3097,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3098,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3098,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3099,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3099,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3100,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3100,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3101,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3101,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3102,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3102,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3103,1
    - Dst: DH_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3103,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3104,1
    - Dst: DH_set0_pqg
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3104,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3105,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3105,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3106,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3106,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3107,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3107,1
    - Dst: DH_get_2048_256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3111,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3112,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3113,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3114,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3115,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3116,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3117,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3118,1
    - Dst: DH_set0_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3118,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3122,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3122,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3123,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3126,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3126,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3131,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3131,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3132,1
    - Dst: EVP_PKEY_get_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3132,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3135,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3135,1
    - Dst: TEST_size_t_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3138,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3143,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3144,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3145,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3146,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3147,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3148,1
    - Dst: DH_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3149,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3087
    functionDepth: 5
    functionLinenumber: 3087
    functionLinenumberEnd: 3152
    functionName: test_EVP_PKEY_set1_DH
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - DH_new
    - EVP_PKEY_get_bn_param
    - BN_new
    - DH_get_2048_256
    - TEST_size_t_ne
    - TEST_int_eq
    - EVP_PKEY_get_id
    - EVP_PKEY_get_octet_string_param
    - DH_set0_pqg
    - DH_set0_key
    - BN_free
    - EVP_PKEY_free
    - EVP_PKEY_new
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - DH_free
    - EVP_PKEY_set1_DH
    linkageType: ''
    returnType: int
    signature: int test_EVP_PKEY_set1_DH(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3171,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3176,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3176,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3181,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3182,1
    - Dst: EVP_PKEY_set_type
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3182,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3183,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3183,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3188,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3188,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3189,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3189,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3194,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3195,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3196,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3163
    functionDepth: 8
    functionLinenumber: 3163
    functionLinenumberEnd: 3198
    functionName: test_keygen_with_empty_template
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_set_type
    - EVP_PKEY_keygen
    - EVP_PKEY_free
    - EVP_PKEY_new
    - TEST_skip
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_new
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_keygen_with_empty_template(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3210,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3217,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3220,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3221,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3240,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3244,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3249,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3253,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3254,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3254,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3263,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3264,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3265,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3208
    functionDepth: 5
    functionLinenumber: 3208
    functionLinenumberEnd: 3267
    functionName: test_pkey_ctx_fail_without_provider
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - TEST_ptr_null
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    - TEST_info
    - TEST_error
    - OSSL_LIB_CTX_new
    - TEST_ptr
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: int
    signature: int test_pkey_ctx_fail_without_provider(int tst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3280,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3281,1
    - Dst: EVP_RAND_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3281,1
    - Dst: EVP_RAND_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3283,1
    - Dst: EVP_RAND_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3284,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3285,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3288,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3289,1
    - Dst: OSSL_PARAM_construct_uint
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3291,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3292,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3293,1
    - Dst: EVP_RAND_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3293,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3294,1
    - Dst: EVP_RAND_generate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3294,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3295,1
    - Dst: EVP_RAND_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3298
      start: 3269
    functionDepth: 11
    functionLinenumber: 3269
    functionLinenumberEnd: 3298
    functionName: test_rand_agglomeration
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_RAND_free
    - OSSL_PARAM_construct_uint
    - TEST_mem_eq
    - EVP_RAND_CTX_set_params
    - EVP_RAND_CTX_new
    - EVP_RAND_generate
    - TEST_int_ne
    - OSSL_PARAM_construct_end
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - memset
    - EVP_RAND_CTX_free
    - EVP_RAND_fetch
    linkageType: ''
    returnType: int
    signature: int test_rand_agglomeration(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3338,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3342,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3346,1
    - Dst: EVP_aes_128_ofb
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3352,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3356,1
    - Dst: EVP_aes_128_cfb
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3362,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3366,1
    - Dst: EVP_aes_128_gcm
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3372,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3376,1
    - Dst: EVP_aes_128_ccm
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3381,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3385,1
    - Dst: EVP_aes_128_ocb
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3395,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3399,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3408,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3409,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3409,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3410,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3410,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3411,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3411,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3413,1
    - Dst: EVP_CIPHER_CTX_get_original_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3413,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3414,1
    - Dst: EVP_CIPHER_CTX_get_updated_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3414,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3415,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3415,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3417,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3418,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3419,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3423,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3423,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3424,1
    - Dst: EVP_CIPHER_CTX_get_updated_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3424,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3427,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3430,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3436,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3438,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3305
    functionDepth: 6
    functionLinenumber: 3305
    functionLinenumberEnd: 3440
    functionName: test_evp_iv_aes
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_aes_128_ccm
    - EVP_CIPHER_CTX_get_original_iv
    - EVP_CIPHER_CTX_free
    - EVP_EncryptInit_ex
    - TEST_true
    - EVP_CIPHER_free
    - EVP_aes_128_gcm
    - TEST_skip
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - EVP_aes_128_cbc
    - EVP_CIPHER_fetch
    - EVP_EncryptUpdate
    - EVP_aes_128_ocb
    - EVP_aes_128_cfb
    - EVP_CIPHER_CTX_get_iv_length
    - EVP_aes_128_ofb
    - EVP_CIPHER_CTX_get_updated_iv
    - EVP_EncryptFinal_ex
    linkageType: ''
    returnType: int
    signature: int test_evp_iv_aes(int idx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3482,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3486,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3491,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3496,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3501,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3506,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3511,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3519,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3520,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3520,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3521,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3521,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3522,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3522,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3524,1
    - Dst: EVP_CIPHER_CTX_get_original_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3524,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3525,1
    - Dst: EVP_CIPHER_CTX_get_updated_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3525,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3526,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3526,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3528,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3529,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3530,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3533,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3533,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3534,1
    - Dst: EVP_CIPHER_CTX_get_updated_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3534,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3536,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3541,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3542,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3443
    functionDepth: 6
    functionLinenumber: 3443
    functionLinenumberEnd: 3544
    functionName: test_evp_iv_des
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - EVP_CIPHER_CTX_get_original_iv
    - EVP_EncryptUpdate
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CIPHER_CTX_get_iv_length
    - TEST_skip
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_CTX_get_updated_iv
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_evp_iv_des(int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3558,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3560,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3560,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3561,1
    - Dst: EVP_CIPHER_get_key_length
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3561,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3562,1
    - Dst: EVP_CIPHER_get_iv_length
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3562,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3548
    functionDepth: 4
    functionLinenumber: 3548
    functionLinenumberEnd: 3569
    functionName: test_evp_bf_default_keylen
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_get_key_length
    - EVP_CIPHER_free
    - TEST_int_eq
    - TEST_skip
    - TEST_ptr
    - EVP_CIPHER_get_iv_length
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_evp_bf_default_keylen(int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3598,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3602,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3603,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3604,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3604,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3605,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3605,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3606,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3606,1
    - Dst: i2d_PublicKey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3608,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3610,1
    - Dst: TEST_int_lt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3611,1
    - Dst: i2d_PublicKey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3614,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3615,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3616,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3622,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3622,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3623,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3623,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3624,1
    - Dst: EVP_PKEY_assign_EC_KEY
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3624,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3628,1
    - Dst: d2i_PublicKey
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3628,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3631,1
    - Dst: EVP_PKEY_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3631,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3638,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3639,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3641,1
    - Dst: EC_KEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3642,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3645
      start: 3583
    functionDepth: 14
    functionLinenumber: 3583
    functionLinenumberEnd: 3645
    functionName: test_ecpub
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_lt
    - TEST_int_eq
    - d2i_PublicKey
    - EVP_PKEY_CTX_free
    - EC_KEY_new_by_curve_name
    - TEST_int_gt
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - TEST_true
    - EVP_PKEY_eq
    - TEST_int_ge
    - i2d_PublicKey
    - TEST_skip
    - EVP_PKEY_new
    - TEST_ptr
    - EVP_PKEY_CTX_new_id
    - EC_KEY_free
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_PKEY_assign_EC_KEY
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int test_ecpub(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3655,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3656,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3657,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3657,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3658,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3658,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3659,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3659,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3660,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_keygen_md
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3660,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3661,1
    - Dst: EVP_PKEY_keygen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3661,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3663,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3664,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3648
    functionDepth: 11
    functionLinenumber: 3648
    functionLinenumberEnd: 3667
    functionName: test_EVP_rsa_pss_with_keygen_bits
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_CTX_set_rsa_pss_keygen_md
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - EVP_PKEY_keygen
    - EVP_PKEY_free
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_free
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - TEST_int_gt
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_rsa_pss_with_keygen_bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3679,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3679,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3680,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3680,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3681,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3681,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3682,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3682,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3683,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3683,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3684,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3684,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3685,1
    - Dst: EVP_PKEY_CTX_get_rsa_pss_saltlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3685,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3686,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3688,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3689,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3693
      start: 3669
    functionDepth: 15
    functionLinenumber: 3669
    functionLinenumberEnd: 3693
    functionName: test_EVP_rsa_pss_set_saltlen
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_CTX_get_rsa_pss_saltlen
    - TEST_int_eq
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - EVP_PKEY_free
    - load_example_rsa_key
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - TEST_int_gt
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_EVP_rsa_pss_set_saltlen(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3700,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3702,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - vctx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3706
      start: 3696
    functionDepth: 4
    functionLinenumber: 3696
    functionLinenumberEnd: 3706
    functionName: md_names
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - EVP_CIPHER_fetch
    - EVP_CIPHER_free
    linkageType: ''
    returnType: void
    signature: void md_names(const char *name, void *vctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3715,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3719,1
    - Dst: EVP_MD_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3722,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3723,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3730,1
    - Dst: EVP_MD_names_do_all
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3730,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3733,1
    - Dst: EVP_MD_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3738,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3741
      start: 3712
    functionDepth: 11
    functionLinenumber: 3712
    functionLinenumberEnd: 3741
    functionName: test_names_do_all
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - EVP_MD_names_do_all
    - TEST_ptr
    - TEST_true
    - EVP_MD_free
    - EVP_MD_fetch
    linkageType: ''
    returnType: int
    signature: int test_names_do_all(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3835,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3835,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3838,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - t
    argTypes:
    - EVP_CIPHER_CTX*
    - EVP_INIT_TEST_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3830
    functionDepth: 3
    functionLinenumber: 3830
    functionLinenumberEnd: 3843
    functionName: evp_init_seq_set_iv
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_true
    - EVP_CipherInit_ex
    - TEST_int_gt
    - EVP_CIPHER_CTX_ctrl
    linkageType: ''
    returnType: int
    signature: int evp_init_seq_set_iv(EVP_CIPHER_CTX *ctx, const EVP_INIT_TEST_st
      *t)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3862,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3867,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3867,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3871,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3871,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3875,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3875,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3879,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3879,1
    - Dst: evp_init_seq_set_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3883,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3887,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3887,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3891,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3891,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3895,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3895,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3901,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3901,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3907,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3907,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3911,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3916,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3916,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3920,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3928,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3929,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3930,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 84
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3850
    functionDepth: 4
    functionLinenumber: 3850
    functionLinenumberEnd: 3932
    functionName: test_evp_init_seq
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - evp_init_seq_set_iv
    - TEST_info
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_set_padding
    - EVP_CIPHER_CTX_ctrl
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_evp_init_seq(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3948,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3948,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3949,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3949,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3951,1
    - Dst: EVP_CipherInit_ex2
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3951,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3953,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3953,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3954,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3954,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3956,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3958,1
    - Dst: EVP_CipherInit_ex2
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3958,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3960,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3960,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3961,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3961,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3963,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3967,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:3968,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3970
      start: 3938
    functionDepth: 4
    functionLinenumber: 3938
    functionLinenumberEnd: 3970
    functionName: test_evp_reinit_seq
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - EVP_CipherInit_ex2
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_evp_reinit_seq(int idx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4005,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4005,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4009,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4009,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4013,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4013,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4017,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4017,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4021,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4021,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4025,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4025,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4029,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4033,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4033,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4037,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4037,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4041,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4041,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4045,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4052,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4053,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4054,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 3995
    functionDepth: 4
    functionLinenumber: 3995
    functionLinenumberEnd: 4056
    functionName: test_evp_reset
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - TEST_info
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_set_padding
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_evp_reset(int idx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4118,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4118,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4122,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4123,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4127,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4131,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4131,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4135,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4135,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4139,1
    - Dst: EVP_CIPHER_CTX_get_updated_iv
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4139,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4143,1
    - Dst: EVP_CIPHER_CTX_get_iv_length
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4143,1
    - Dst: TEST_mem_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4147,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4151,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4151,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4159,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4160,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4161,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4163
      start: 4106
    functionDepth: 6
    functionLinenumber: 4106
    functionLinenumberEnd: 4163
    functionName: test_evp_updated_iv
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - EVP_CIPHER_CTX_get_iv_length
    - TEST_mem_ne
    - TEST_info
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_set_padding
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_CTX_get_updated_iv
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_evp_updated_iv(int idx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4203,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4203,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4207,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4207,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4211,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4211,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4215,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4215,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4219,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4219,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4223,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4223,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4227,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4228,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4228,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4233,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4233,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4237,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4241,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4241,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4245,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4250,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4250,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4254,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4254,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4258,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4258,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4262,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4262,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4267,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4267,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4271,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4275,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4275,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4279,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4286,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4287,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4288,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 105
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4191
    functionDepth: 4
    functionLinenumber: 4191
    functionLinenumberEnd: 4290
    functionName: test_gcm_reinit
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CipherFinal_ex
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - TEST_info
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - EVP_CIPHER_CTX_set_padding
    - EVP_CIPHER_CTX_ctrl
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_gcm_reinit(int idx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4315,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4315,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4318,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4318,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4322,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4322,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4325,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4325,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4329,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4331,1
    - Dst: EVP_CIPHER_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4331,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4334,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4335,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4335,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4337,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4340,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4344,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4345,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4301
    functionDepth: 4
    functionLinenumber: 4301
    functionLinenumberEnd: 4347
    functionName: test_ivlen_change
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_params
    - EVP_CIPHER_CTX_free
    - OSSL_PARAM_construct_size_t
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - TEST_false
    - ERR_set_mark
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - ERR_pop_to_mark
    - TEST_ptr
    - ERR_clear_last_mark
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_ivlen_change(int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4384,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4386,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4386,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4389,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4389,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4393,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4393,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4396,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4396,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4400,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4402,1
    - Dst: EVP_CIPHER_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4402,1
    - Dst: ERR_set_mark
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4405,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4406,1
    - Dst: EVP_CipherUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4406,1
    - Dst: ERR_clear_last_mark
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4408,1
    - Dst: ERR_pop_to_mark
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4411,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4415,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4416,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4369
    functionDepth: 4
    functionLinenumber: 4369
    functionLinenumberEnd: 4418
    functionName: test_keylen_change
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_params
    - EVP_CIPHER_CTX_free
    - OSSL_PARAM_construct_size_t
    - EVP_CIPHER_free
    - EVP_CipherUpdate
    - TEST_false
    - ERR_set_mark
    - TEST_skip
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - ERR_pop_to_mark
    - TEST_ptr
    - ERR_clear_last_mark
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: int test_keylen_change(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4430,1
    - Dst: pinit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4426
    functionDepth: 1
    functionLinenumber: 4426
    functionLinenumberEnd: 4432
    functionName: custom_pmeth_init
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - pinit
    - EVP_PKEY_meth_get_init
    linkageType: ''
    returnType: int
    signature: int custom_pmeth_init(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_cleanup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4438,1
    - Dst: pcleanup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4440
      start: 4434
    functionDepth: 1
    functionLinenumber: 4434
    functionLinenumberEnd: 4440
    functionName: custom_pmeth_cleanup
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - pcleanup
    - EVP_PKEY_meth_get_cleanup
    linkageType: ''
    returnType: void
    signature: void custom_pmeth_cleanup(EVP_PKEY_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4449,1
    - Dst: psign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4451
      start: 4442
    functionDepth: 1
    functionLinenumber: 4442
    functionLinenumberEnd: 4451
    functionName: custom_pmeth_sign
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_sign
    - psign
    linkageType: ''
    returnType: int
    signature: "int custom_pmeth_sign(EVP_PKEY_CTX *ctx, unsigned char *out,\n                             size_t
      *outlen, const unsigned char *in,\n                             size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_digestsign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4460,1
    - Dst: pdigestsign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - sig
    - siglen
    - tbs
    - tbslen
    argTypes:
    - EVP_MD_CTX*
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4453
    functionDepth: 1
    functionLinenumber: 4453
    functionLinenumberEnd: 4462
    functionName: custom_pmeth_digestsign
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - pdigestsign
    - EVP_PKEY_meth_get_digestsign
    linkageType: ''
    returnType: int
    signature: "int custom_pmeth_digestsign(EVP_MD_CTX *ctx, unsigned char *sig,\n
      \                                  size_t *siglen, const unsigned char *tbs,\n
      \                                  size_t tbslen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4469,1
    - Dst: pderive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - EVP_PKEY_CTX*
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4464
    functionDepth: 1
    functionLinenumber: 4464
    functionLinenumberEnd: 4471
    functionName: custom_pmeth_derive
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_derive
    - pderive
    linkageType: ''
    returnType: int
    signature: "int custom_pmeth_derive(EVP_PKEY_CTX *ctx, unsigned char *key,\n                               size_t
      *keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_copy
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4477,1
    - Dst: pcopy
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - EVP_PKEY_CTX*
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4473
    functionDepth: 1
    functionLinenumber: 4473
    functionLinenumberEnd: 4479
    functionName: custom_pmeth_copy
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_copy
    - pcopy
    linkageType: ''
    returnType: int
    signature: int custom_pmeth_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4487,1
    - Dst: pctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - type
    - p1
    - p2
    argTypes:
    - EVP_PKEY_CTX*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4495
      start: 4483
    functionDepth: 1
    functionLinenumber: 4483
    functionLinenumberEnd: 4495
    functionName: custom_pmeth_ctrl
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - pctrl
    - EVP_PKEY_meth_get_ctrl
    linkageType: ''
    returnType: int
    signature: int custom_pmeth_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4507,1
    - Dst: load_example_rsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4520,1
    - Dst: load_example_dsa_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4526,1
    - Dst: load_example_ec_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4535,1
    - Dst: load_example_ed25519_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4545,1
    - Dst: load_example_dh_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4555,1
    - Dst: load_example_x25519_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4565,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4571,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4575,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4579,1
    - Dst: evp_pkey_is_provided
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4579,1
    - Dst: EVP_PKEY_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4585,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4586,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4590,1
    - Dst: evp_pkey_copy_downgraded
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4590,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4591,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4594,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4595,1
    - Dst: evp_pkey_is_legacy
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4595,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4599,1
    - Dst: EVP_PKEY_meth_find
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4599,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4600,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4603,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4604,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4605,1
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4605,1
    - Dst: EVP_PKEY_meth_set_digestsign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4609,1
    - Dst: EVP_PKEY_meth_set_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4611,1
    - Dst: EVP_PKEY_meth_set_sign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4613,1
    - Dst: EVP_PKEY_meth_set_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4616,1
    - Dst: EVP_PKEY_meth_set_cleanup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4617,1
    - Dst: EVP_PKEY_meth_set_copy
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4618,1
    - Dst: EVP_PKEY_meth_set_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4620,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4621,1
    - Dst: EVP_PKEY_meth_add0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4621,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4625,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4626,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4627,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4627,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4628,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4628,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4631,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4632,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4632,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4633,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4633,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4634,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4634,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4635,1
    - Dst: EVP_PKEY_derive
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4635,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4638,1
    - Dst: EVP_PKEY_size
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4639,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4640,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4641,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4642,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4643,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4643,1
    - Dst: TEST_int_ge
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4644,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4644,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4647,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4651,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4651,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4654,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4654,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4655,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4655,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4662,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4663,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4665,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4666,1
    - Dst: EVP_PKEY_meth_remove
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4667,1
    - Dst: EVP_PKEY_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4668,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 130
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4497
    functionDepth: 15
    functionLinenumber: 4497
    functionLinenumberEnd: 4671
    functionName: test_custom_pmeth
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get0_info
    - EVP_PKEY_derive_set_peer
    - EVP_MD_CTX_free
    - EVP_PKEY_meth_free
    - TEST_int_eq
    - EVP_DigestSignInit
    - EVP_PKEY_meth_add0
    - EVP_PKEY_meth_set_sign
    - evp_pkey_copy_downgraded
    - EVP_PKEY_meth_find
    - EVP_PKEY_CTX_new
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_free
    - EVP_PKEY_meth_set_init
    - load_example_x25519_key
    - evp_pkey_is_legacy
    - EVP_PKEY_meth_remove
    - TEST_error
    - EVP_PKEY_meth_set_digestsign
    - load_example_rsa_key
    - EVP_PKEY_meth_new
    - TEST_true
    - EVP_DigestSign
    - EVP_PKEY_size
    - EVP_DigestSignFinal
    - EVP_PKEY_meth_set_ctrl
    - EVP_PKEY_meth_set_copy
    - load_example_dh_key
    - EVP_PKEY_meth_set_cleanup
    - TEST_int_ge
    - evp_pkey_is_provided
    - EVP_MD_CTX_new
    - EVP_sha256
    - OPENSSL_free
    - EVP_PKEY_new
    - TEST_ptr
    - load_example_dsa_key
    - EVP_PKEY_derive
    - EVP_DigestUpdate
    - load_example_ec_key
    - OPENSSL_malloc
    - EVP_PKEY_free
    - EVP_PKEY_meth_set_derive
    - EVP_PKEY_CTX_ctrl
    - load_example_ed25519_key
    linkageType: ''
    returnType: int
    signature: int test_custom_pmeth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_meth_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4675,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4675,1
    - Dst: EVP_CIPHER_meth_dup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4676,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4676,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4679,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4679,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4685,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4689
      start: 4673
    functionDepth: 4
    functionLinenumber: 4673
    functionLinenumberEnd: 4689
    functionName: test_evp_md_cipher_meth
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_free
    - EVP_CIPHER_meth_dup
    - TEST_ptr
    - EVP_sha256
    - EVP_MD_meth_free
    - EVP_MD_meth_dup
    - EVP_aes_128_cbc
    linkageType: ''
    returnType: int
    signature: int test_evp_md_cipher_meth(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4698
    functionDepth: 0
    functionLinenumber: 4698
    functionLinenumberEnd: 4707
    functionName: custom_md_init
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int custom_md_init(EVP_MD_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_md_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4719
      start: 4709
    functionDepth: 0
    functionLinenumber: 4709
    functionLinenumberEnd: 4719
    functionName: custom_md_cleanup
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_md_data
    linkageType: ''
    returnType: int
    signature: int custom_md_cleanup(EVP_MD_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4736,1
    - Dst: OBJ_create
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4740,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4741,1
    - Dst: EVP_MD_meth_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4743,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4744,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4747,1
    - Dst: EVP_MD_meth_set_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4747,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4748,1
    - Dst: EVP_MD_meth_set_cleanup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4748,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4749,1
    - Dst: EVP_MD_meth_set_app_datasize
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4749,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4753,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4754,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4760,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4760,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4761,1
    - Dst: EVP_DigestInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4761,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4761,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4762,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4762,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4762,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4763,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4763,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4764,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4765,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4770,1
    - Dst: EVP_MD_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4771,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4773
      start: 4721
    functionDepth: 8
    functionLinenumber: 4721
    functionLinenumberEnd: 4773
    functionName: test_custom_md_meth
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - EVP_MD_meth_set_app_datasize
    - EVP_MD_meth_set_cleanup
    - EVP_DigestInit_ex
    - TEST_int_ne
    - TEST_int_eq
    - EVP_MD_CTX_new
    - OBJ_create
    - EVP_MD_meth_new
    - EVP_sha256
    - TEST_skip
    - EVP_MD_meth_free
    - EVP_MD_meth_set_init
    - strlen
    - EVP_DigestFinal_ex
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_custom_md_meth(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - key
    - iv
    - enc
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4782
    functionDepth: 1
    functionLinenumber: 4782
    functionLinenumberEnd: 4792
    functionName: custom_ciph_init
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: "int custom_ciph_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,\n
      \                           const unsigned char *iv, int enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_get_cipher_data
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4804
      start: 4794
    functionDepth: 1
    functionLinenumber: 4794
    functionLinenumberEnd: 4804
    functionName: custom_ciph_cleanup
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_get_cipher_data
    linkageType: ''
    returnType: int
    signature: int custom_ciph_cleanup(EVP_CIPHER_CTX *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4818,1
    - Dst: OBJ_create
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4822,1
    - Dst: TEST_int_ne
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4823,1
    - Dst: EVP_CIPHER_meth_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4825,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4826,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4829,1
    - Dst: EVP_CIPHER_meth_set_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4829,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4830,1
    - Dst: EVP_CIPHER_meth_set_flags
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4830,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4831,1
    - Dst: EVP_CIPHER_meth_set_cleanup
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4831,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4832,1
    - Dst: EVP_CIPHER_meth_set_impl_ctx_size
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4832,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4836,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4837,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4843,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4843,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4844,1
    - Dst: EVP_CipherInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4844,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4844,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4846,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4847,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4852,1
    - Dst: EVP_CIPHER_meth_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4853,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4855
      start: 4806
    functionDepth: 8
    functionLinenumber: 4806
    functionLinenumberEnd: 4855
    functionName: test_custom_ciph_meth
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_meth_set_cleanup
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_meth_free
    - TEST_int_eq
    - TEST_int_ne
    - EVP_CIPHER_meth_set_flags
    - EVP_CIPHER_meth_set_impl_ctx_size
    - OBJ_create
    - EVP_CIPHER_meth_new
    - EVP_CIPHER_meth_set_init
    - TEST_skip
    - EVP_CIPHER_CTX_new
    - EVP_CipherInit_ex
    - TEST_ptr
    - EVP_aes_128_cbc
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_custom_ciph_meth(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4887,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4887,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4890,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4890,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4891,1
    - Dst: EVP_PKEY_new_CMAC_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4897,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4898,1
    - Dst: EVP_PKEY_new_CMAC_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4901,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4902,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4905,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4909,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4912,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4915,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4915,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4918,1
    - Dst: EVP_sha256
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4918,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4921,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4924,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4924,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4925,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4925,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4928,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4928,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4931,1
    - Dst: EVP_DigestSignFinal
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4931,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4935,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4941,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4942,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4943,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4944,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4945,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4948
      start: 4859
    functionDepth: 8
    functionLinenumber: 4859
    functionLinenumberEnd: 4948
    functionName: test_signatures_with_engine
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_DigestSignInit
    - ENGINE_init
    - ENGINE_finish
    - TEST_error
    - TEST_true
    - EVP_DigestSignUpdate
    - EVP_DigestSignFinal
    - EVP_MD_CTX_new
    - EVP_PKEY_new_raw_private_key
    - EVP_sha256
    - OPENSSL_free
    - TEST_ptr
    - EVP_aes_128_cbc
    - OPENSSL_malloc
    - ENGINE_free
    - ENGINE_by_id
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_new_CMAC_key
    linkageType: ''
    returnType: int
    signature: int test_signatures_with_engine(int tst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4964,1
    - Dst: ENGINE_by_id
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4964,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4967,1
    - Dst: ENGINE_init
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4967,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4968,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4972,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4972,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4973,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4973,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4976,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4976,1
    - Dst: EVP_aes_128_cbc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4976,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4980,1
    - Dst: EVP_CIPHER_CTX_copy
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4980,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4983,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4983,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4984,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4984,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4989,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4990,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4991,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:4992,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4995
      start: 4950
    functionDepth: 7
    functionLinenumber: 4950
    functionLinenumberEnd: 4995
    functionName: test_cipher_with_engine
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - ENGINE_free
    - ENGINE_finish
    - ENGINE_by_id
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - TEST_ptr
    - EVP_aes_128_cbc
    - TEST_true
    - EVP_EncryptFinal_ex
    - EVP_CIPHER_CTX_copy
    linkageType: ''
    returnType: int
    signature: int test_cipher_with_engine(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5013,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5013,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5015,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5021
      start: 5007
    functionDepth: 7
    functionLinenumber: 5007
    functionLinenumberEnd: 5021
    functionName: test_ecx_short_keys
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - EVP_PKEY_new_raw_private_key_ex
    - TEST_ptr_null
    - OBJ_nid2sn
    linkageType: ''
    returnType: int
    signature: int test_ecx_short_keys(int tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5030
    functionDepth: 0
    functionLinenumber: 5030
    functionLinenumberEnd: 5038
    functionName: test_get_options
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: OPTIONS
    signature: OPTIONS *test_get_options(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5057,1
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5062,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5065,1
    - Dst: EVP_PKEY_new_raw_public_key_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5067,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5067,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5069,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5072,1
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5072,1
    - Dst: EVP_DigestSignInit
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5075,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5078,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5081,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5081,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5084,1
    - Dst: EVP_DigestSign
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5084,1
    - Dst: ERR_GET_REASON
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5093,1
    - Dst: ERR_peek_error
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5093,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5095,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5099,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5100,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5101,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - tst
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5104
      start: 5042
    functionDepth: 8
    functionLinenumber: 5042
    functionLinenumberEnd: 5104
    functionName: test_ecx_not_private_key
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - ERR_GET_REASON
    - OPENSSL_malloc
    - TEST_int_eq
    - EVP_DigestSignInit
    - EVP_MD_CTX_new
    - ERR_peek_error
    - ERR_clear_error
    - EVP_PKEY_free
    - OBJ_nid2sn
    - TEST_skip
    - OPENSSL_free
    - strlen
    - TEST_ptr
    - EVP_DigestSign
    - EVP_PKEY_new_raw_public_key_ex
    linkageType: ''
    returnType: int
    signature: int test_ecx_not_private_key(int tst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5124,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5124,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5125,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5125,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5128,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5131,1
    - Dst: EVP_EncryptInit_ex2
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5131,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5133,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5133,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5135,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5135,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5137,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5137,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5140,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5143,1
    - Dst: EVP_CIPHER_CTX_get_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5143,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5144,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5145,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5150,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5151,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 12
    argNames:
    - gcm_key
    - gcm_key_s
    - gcm_iv
    - gcm_ivlen
    - gcm_pt
    - gcm_pt_s
    - gcm_aad
    - gcm_aad_s
    - gcm_ct
    - gcm_ct_s
    - gcm_tag
    - gcm_tag_s
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5154
      start: 5107
    functionDepth: 4
    functionLinenumber: 5107
    functionLinenumberEnd: 5154
    functionName: aes_gcm_encrypt
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - TEST_mem_eq
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - OSSL_PARAM_construct_size_t
    - EVP_CIPHER_free
    - EVP_CIPHER_CTX_get_params
    - EVP_EncryptInit_ex2
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - OSSL_PARAM_construct_octet_string
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_encrypt(const unsigned char *gcm_key, size_t gcm_key_s,\n
      \                          const unsigned char *gcm_iv, size_t gcm_ivlen,\n
      \                          const unsigned char *gcm_pt, size_t gcm_pt_s,\n                           const
      unsigned char *gcm_aad, size_t gcm_aad_s,\n                           const
      unsigned char *gcm_ct, size_t gcm_ct_s,\n                           const unsigned
      char *gcm_tag, size_t gcm_tag_s)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5172,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5175,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5178,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5181,1
    - Dst: EVP_DecryptInit_ex2
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5181,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5183,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5185,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5185,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5187,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5190,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5193,1
    - Dst: EVP_CIPHER_CTX_set_params
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5193,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5194,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5194,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5199,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5200,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 12
    argNames:
    - gcm_key
    - gcm_key_s
    - gcm_iv
    - gcm_ivlen
    - gcm_pt
    - gcm_pt_s
    - gcm_aad
    - gcm_aad_s
    - gcm_ct
    - gcm_ct_s
    - gcm_tag
    - gcm_tag_s
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5203
      start: 5156
    functionDepth: 4
    functionLinenumber: 5156
    functionLinenumberEnd: 5203
    functionName: aes_gcm_decrypt
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_CIPHER_CTX_set_params
    - EVP_CIPHER_CTX_free
    - OSSL_PARAM_construct_size_t
    - EVP_DecryptInit_ex2
    - EVP_CIPHER_free
    - EVP_CIPHER_CTX_new
    - EVP_DecryptFinal_ex
    - OSSL_PARAM_construct_octet_string
    - TEST_true
    - EVP_CIPHER_fetch
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int aes_gcm_decrypt(const unsigned char *gcm_key, size_t gcm_key_s,\n
      \                          const unsigned char *gcm_iv, size_t gcm_ivlen,\n
      \                          const unsigned char *gcm_pt, size_t gcm_pt_s,\n                           const
      unsigned char *gcm_aad, size_t gcm_aad_s,\n                           const
      unsigned char *gcm_ct, size_t gcm_ct_s,\n                           const unsigned
      char *gcm_tag, size_t gcm_tag_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_gcm_encrypt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5239,1
    - Dst: aes_gcm_decrypt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5245
      start: 5205
    functionDepth: 0
    functionLinenumber: 5205
    functionLinenumberEnd: 5245
    functionName: test_aes_gcm_ivlen_change_cve_2023_5363
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - aes_gcm_encrypt
    - aes_gcm_decrypt
    linkageType: ''
    returnType: int
    signature: int test_aes_gcm_ivlen_change_cve_2023_5363(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5261,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5261,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5262,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5262,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5265,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5268,1
    - Dst: EVP_EncryptInit_ex2
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5268,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5269,1
    - Dst: EVP_EncryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5269,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5271,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5271,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5274,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5279,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5280,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 6
    argNames:
    - rc4_key
    - rc4_key_s
    - rc4_pt
    - rc4_pt_s
    - rc4_ct
    - rc4_ct_s
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5283
      start: 5248
    functionDepth: 4
    functionLinenumber: 5248
    functionLinenumberEnd: 5283
    functionName: rc4_encrypt
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_EncryptFinal_ex
    - TEST_mem_eq
    - EVP_EncryptUpdate
    - EVP_CIPHER_CTX_free
    - OSSL_PARAM_construct_size_t
    - EVP_CIPHER_free
    - EVP_EncryptInit_ex2
    - EVP_CIPHER_CTX_new
    - TEST_ptr
    - TEST_true
    - EVP_CIPHER_fetch
    linkageType: ''
    returnType: int
    signature: "int rc4_encrypt(const unsigned char *rc4_key, size_t rc4_key_s,\n
      \                      const unsigned char *rc4_pt, size_t rc4_pt_s,\n                       const
      unsigned char *rc4_ct, size_t rc4_ct_s)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5298,1
    - Dst: EVP_CIPHER_fetch
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5301,1
    - Dst: OSSL_PARAM_construct_size_t
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5304,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5307,1
    - Dst: EVP_DecryptInit_ex2
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5307,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5308,1
    - Dst: EVP_DecryptUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5308,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5310,1
    - Dst: EVP_CIPHER_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5315,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - rc4_key
    - rc4_key_s
    - rc4_pt
    - rc4_pt_s
    - rc4_ct
    - rc4_ct_s
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5285
    functionDepth: 4
    functionLinenumber: 5285
    functionLinenumberEnd: 5319
    functionName: rc4_decrypt
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - EVP_CIPHER_CTX_free
    - OSSL_PARAM_construct_size_t
    - EVP_DecryptInit_ex2
    - EVP_CIPHER_free
    - EVP_CIPHER_CTX_new
    - TEST_true
    - EVP_CIPHER_fetch
    - EVP_DecryptUpdate
    linkageType: ''
    returnType: int
    signature: "int rc4_decrypt(const unsigned char *rc4_key, size_t rc4_key_s,\n
      \                      const unsigned char *rc4_pt, size_t rc4_pt_s,\n                       const
      unsigned char *rc4_ct, size_t rc4_ct_s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_skip
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5345,1
    - Dst: rc4_encrypt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5347,1
    - Dst: rc4_decrypt
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5351
      start: 5321
    functionDepth: 5
    functionLinenumber: 5321
    functionLinenumberEnd: 5351
    functionName: test_aes_rc4_keylen_change_cve_2023_5363
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - rc4_encrypt
    - TEST_skip
    - rc4_decrypt
    linkageType: ''
    returnType: int
    signature: int test_aes_rc4_keylen_change_cve_2023_5363(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5359,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5360,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5363,1
    - Dst: EVP_DigestUpdate
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5363,1
    - Dst: EVP_MD_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5354
    functionDepth: 8
    functionLinenumber: 5354
    functionLinenumberEnd: 5371
    functionName: test_invalid_ctx_for_digest
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - EVP_DigestUpdate
    - EVP_MD_CTX_free
    - TEST_int_eq
    - EVP_MD_CTX_new
    - TEST_ptr
    linkageType: ''
    returnType: int
    signature: int test_invalid_ctx_for_digest(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: opt_next
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5377,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5381,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5382,1
    - Dst: OSSL_PROVIDER_add_builtin
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5390,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5394,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5395,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5396,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5405,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5406,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5407,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5409,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5411,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5412,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5413,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5415,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5417,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5418,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5418,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5419,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5420,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5422,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5425,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5425,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5428,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5429,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5431,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5431,1
    - Dst: EVP_PKEY_meth_new
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5433,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5434,1
    - Dst: EVP_PKEY_meth_set_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5436,1
    - Dst: EVP_PKEY_meth_set_public_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5437,1
    - Dst: EVP_PKEY_meth_set_param_check
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5438,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5439,1
    - Dst: EVP_PKEY_meth_add0
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5439,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5442,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5442,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5444,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5446,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5447,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5448,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5450,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5451,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5452,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5453,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5456,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5457,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5459,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5460,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5461,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5463,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5466,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5468,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5472,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5474,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5477,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5478,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5480,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5481,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5483,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5486,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5488,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5489,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5491,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5491,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5494,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5496,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5496,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5497,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5497,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5498,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5498,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5499,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5499,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5500,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5500,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5501,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5501,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5502,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5503,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5503,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5506,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5507,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5508,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5509,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5515,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5517,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5519,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5524,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5524,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5527,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5527,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5531,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5533,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5536,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5539
      start: 5373
    functionDepth: 5
    functionLinenumber: 5373
    functionLinenumberEnd: 5539
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - OSSL_PROVIDER_load
    - opt_next
    - TEST_int_eq
    - EVP_PKEY_meth_set_public_check
    - EVP_PKEY_meth_add0
    - ADD_ALL_TESTS
    - EVP_PKEY_meth_set_param_check
    - OSSL_LIB_CTX_new
    - EVP_PKEY_meth_set_check
    - OSSL_PROVIDER_add_builtin
    - EVP_PKEY_meth_new
    - TEST_ptr
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5543,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5544,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5545,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/evp_extra_test.c:5546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5547
      start: 5541
    functionDepth: 5
    functionLinenumber: 5541
    functionLinenumberEnd: 5547
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/evp_extra_test.c
    functionUses: 6
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:23,1
    - Dst: SSL_CTX_get_min_proto_version
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:23,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:24,1
    - Dst: SSL_CTX_get_max_proto_version
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:24,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: test_func
    functionSourceFile: /src/openssl-3.0.15/test/sysdefaulttest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - SSL_CTX_get_min_proto_version
    - SSL_CTX_get_max_proto_version
    - TEST_info
    linkageType: ''
    returnType: int
    signature: int test_func(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_init_ssl
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: global_init
    functionSourceFile: /src/openssl-3.0.15/test/sysdefaulttest.c
    functionUses: 38
    functionsReached:
    - OPENSSL_init_ssl
    linkageType: ''
    returnType: int
    signature: int global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:41,1
    - Dst: SSL_CTX_new
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:41,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:41,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sysdefaulttest.c
    functionUses: 0
    functionsReached:
    - TEST_ptr
    - TLS_method
    - ADD_TEST
    - SSL_CTX_new
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sysdefaulttest.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sysdefaulttest.c
    functionUses: 6
    functionsReached:
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:31,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:31,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:31,1
    - Dst: TLS_method
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:31,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:40,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:40,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:41,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:41,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:42,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:42,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:44,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:44,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:46,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:46,1
    - Dst: SSL_get_wbio
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:50,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:51,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:52,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:57,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:57,1
    - Dst: ERR_clear_error
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:60,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:63,1
    - Dst: BIO_write
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:63,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:67,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:67,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:69,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:72,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:72,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:72,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:77,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:78,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:79,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:80,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 83
    functionName: test_fatalerr
    functionSourceFile: /src/openssl-3.0.15/test/fatalerrtest.c
    functionUses: 0
    functionsReached:
    - create_ssl_ctx_pair
    - SSL_CTX_set_ciphersuites
    - strlen
    - TEST_int_gt
    - create_ssl_objects
    - TEST_error
    - TEST_int_le
    - printf
    - TEST_true
    - SSL_read
    - SSL_CTX_free
    - SSL_write
    - ERR_clear_error
    - TLS_method
    - SSL_get_wbio
    - TEST_ptr
    - create_ssl_connection
    - TEST_false
    - SSL_CTX_set_cipher_list
    - SSL_free
    - BIO_write
    linkageType: ''
    returnType: int
    signature: int test_fatalerr(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:89,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:90,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:94,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:95,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:95,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/fatalerrtest.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/fatalerrtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:64,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:64,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:70,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:70,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:71,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:90,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:90,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:92,1
    - Dst: SSL_alloc_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:92,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:95,1
    - Dst: SSL_alloc_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:95,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:97,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:97,1
    - Dst: SSL_write
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:100,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:105,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:109,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:114,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:124,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:124,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:127,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:127,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:129,1
    - Dst: SSL_alloc_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:129,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:131,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:131,1
    - Dst: SSL_read
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:134,1
    - Dst: SSL_get_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:138,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:142,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:147,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:154,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:156,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:157,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 75
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 160
    functionName: test_func
    functionSourceFile: /src/openssl-3.0.15/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - SSL_get_error
    - SSL_write
    - create_ssl_connection
    - create_ssl_objects
    - TEST_size_t_eq
    - TEST_error
    - SSL_alloc_buffers
    - SSL_free_buffers
    - SSL_free
    - TEST_true
    - ERR_print_errors_fp
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int test_func(int test)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: load_dasync
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:186,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:192,1
    - Dst: create_ssl_objects
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:192,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:197,1
    - Dst: SSL_set_cipher_list
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:197,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:198,1
    - Dst: SSL_set_max_proto_version
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:198,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:200,1
    - Dst: SSL_set_max_pipelines
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:200,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:204,1
    - Dst: create_ssl_connection
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:204,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:213,1
    - Dst: SSL_write_ex
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:213,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:213,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:227,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:229,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:229,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:230,1
    - Dst: SSL_get_rbio
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:237,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:238,1
    - Dst: BIO_read_ex
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:238,1
    - Dst: TEST_size_t_lt
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:239,1
    - Dst: TEST_size_t_gt
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:240,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:254,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:269,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:277,1
    - Dst: BIO_write_ex
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:277,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:286,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:286,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:288,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:288,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:295,1
    - Dst: SSL_read_ex
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:295,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:305,1
    - Dst: SSL_free_buffers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:305,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:310,1
    - Dst: SSL_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:311,1
    - Dst: ENGINE_unregister_ciphers
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:314,1
    - Dst: ENGINE_finish
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:315,1
    - Dst: ENGINE_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:316,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 84
    argCount: 1
    argNames:
    - test
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 320
    functionName: test_free_buffers
    functionSourceFile: /src/openssl-3.0.15/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ENGINE_unregister_ciphers
    - strlen
    - SSL_free_buffers
    - SSL_get_rbio
    - BIO_read_ex
    - ENGINE_finish
    - create_ssl_objects
    - TEST_size_t_lt
    - TEST_error
    - TEST_true
    - SSL_set_max_pipelines
    - BIO_write_ex
    - SSL_set_max_proto_version
    - TEST_size_t_eq
    - SSL_read_ex
    - load_dasync
    - SSL_write_ex
    - SSL_set_cipher_list
    - create_ssl_connection
    - ENGINE_free
    - TEST_false
    - SSL_free
    - TEST_size_t_gt
    linkageType: ''
    returnType: int
    signature: int test_free_buffers(int test)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_skip_common_options
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:328,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:329,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:333,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:333,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:334,1
    - Dst: test_get_argument
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:334,1
    - Dst: create_ssl_ctx_pair
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:337,1
    - Dst: TLS_server_method
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:337,1
    - Dst: TLS_client_method
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:337,1
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:340,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:344,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:346,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sslbuffertest.c
    functionUses: 0
    functionsReached:
    - TLS_client_method
    - create_ssl_ctx_pair
    - TLS_server_method
    - ADD_ALL_TESTS
    - TEST_error
    - TEST_ptr
    - test_skip_common_options
    - test_get_argument
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:355,1
    - Dst: SSL_CTX_free
      Src: /src/openssl-3.0.15/test/sslbuffertest.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/sslbuffertest.c
    functionUses: 6
    functionsReached:
    - SSL_CTX_free
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/secmemtest.c:21,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:23,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/secmemtest.c:25,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:26,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/secmemtest.c:26,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:28,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/secmemtest.c:30,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:31,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/secmemtest.c:31,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:32,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/secmemtest.c:32,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:34,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/secmemtest.c:35,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:37,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/secmemtest.c:37,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/secmemtest.c:39,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-3.0.15/test/secmemtest.c:39,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:41,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/secmemtest.c:42,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:45,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/secmemtest.c:45,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:47,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:48,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/secmemtest.c:49,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:51,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/secmemtest.c:51,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/secmemtest.c:53,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-3.0.15/test/secmemtest.c:53,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:55,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/secmemtest.c:58,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-3.0.15/test/secmemtest.c:58,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:60,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:63,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/test/secmemtest.c:63,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:64,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openssl-3.0.15/test/secmemtest.c:64,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:66,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/secmemtest.c:69,1
    - Dst: CRYPTO_secure_used
      Src: /src/openssl-3.0.15/test/secmemtest.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:70,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/test/secmemtest.c:70,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:71,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openssl-3.0.15/test/secmemtest.c:71,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/secmemtest.c:74,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:75,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/secmemtest.c:75,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/secmemtest.c:77,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:77,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:78,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/test/secmemtest.c:78,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:84,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/secmemtest.c:84,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:85,1
    - Dst: CRYPTO_secure_malloc_initialized
      Src: /src/openssl-3.0.15/test/secmemtest.c:85,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:86,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/test/secmemtest.c:86,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/secmemtest.c:115,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:116,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/secmemtest.c:116,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:117,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/test/secmemtest.c:117,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:124,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:125,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:126,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:127,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/secmemtest.c:130,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/secmemtest.c:132,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/secmemtest.c:132,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 134
    functionName: test_sec_mem
    functionSourceFile: /src/openssl-3.0.15/test/secmemtest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_free
    - TEST_ptr_null
    - CRYPTO_secure_allocated
    - OPENSSL_malloc
    - CRYPTO_secure_malloc_initialized
    - CRYPTO_secure_malloc_init
    - TEST_false
    - OPENSSL_secure_malloc
    - TEST_size_t_eq
    - CRYPTO_secure_used
    - TEST_info
    - OPENSSL_free
    - OPENSSL_secure_clear_free
    - CRYPTO_secure_malloc_done
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_sec_mem(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/secmemtest.c:143,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/secmemtest.c:143,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/secmemtest.c:144,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/secmemtest.c:144,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/secmemtest.c:148,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:154,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/secmemtest.c:164,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/secmemtest.c:170,1
    - Dst: CRYPTO_secure_malloc_done
      Src: /src/openssl-3.0.15/test/secmemtest.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 176
    functionName: test_sec_mem_clear
    functionSourceFile: /src/openssl-3.0.15/test/secmemtest.c
    functionUses: 0
    functionsReached:
    - OPENSSL_secure_free
    - TEST_uchar_eq
    - CRYPTO_secure_malloc_init
    - OPENSSL_secure_malloc
    - CRYPTO_secure_malloc_done
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_sec_mem_clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/secmemtest.c:180,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/secmemtest.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/secmemtest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:28,1
    - Dst: OPENSSL_zalloc
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - test_case_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: set_up
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 1
    functionsReached:
    - TEST_ptr
    - OPENSSL_zalloc
    linkageType: ''
    returnType: CMP_ASN_TEST_FIXTURE
    signature: CMP_ASN_TEST_FIXTURE *set_up(const char *const test_case_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:36,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_ASN_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: tear_down
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 39
    functionsReached:
    - OPENSSL_free
    - ASN1_OCTET_STRING_free
    linkageType: ''
    returnType: void
    signature: void tear_down(CMP_ASN_TEST_FIXTURE *fixture)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_INTEGER_new
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:46,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:50,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:53,1
    - Dst: ASN1_INTEGER_set
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:53,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:54,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:57,1
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:57,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:62,1
    - Dst: ASN1_INTEGER_set_int64
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:62,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:64,1
    - Dst: ossl_cmp_asn1_get_int
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:64,1
    - Dst: ASN1_INTEGER_free
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_ASN_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 69
    functionName: execute_cmp_asn1_get_int_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 0
    functionsReached:
    - ASN1_INTEGER_set
    - TEST_int_eq
    - ASN1_INTEGER_set_int64
    - ASN1_INTEGER_new
    - ossl_cmp_asn1_get_int
    - TEST_ptr
    - TEST_true
    - ASN1_INTEGER_free
    linkageType: ''
    returnType: int
    signature: int execute_cmp_asn1_get_int_test(CMP_ASN_TEST_FIXTURE *fixture)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:73,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: test_cmp_asn1_get_int
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - SETUP_TEST_FIXTURE
    linkageType: ''
    returnType: int
    signature: int test_cmp_asn1_get_int(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:82,1
    - Dst: ossl_cmp_asn1_octet_string_set1
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:83,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:87,1
    - Dst: ASN1_OCTET_STRING_cmp
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fixture
    argTypes:
    - CMP_ASN_TEST_FIXTURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: execute_CMP_ASN1_OCTET_STRING_set1_test
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - ossl_cmp_asn1_octet_string_set1
    - ASN1_OCTET_STRING_cmp
    linkageType: ''
    returnType: int
    signature: "int execute_CMP_ASN1_OCTET_STRING_set1_test(CMP_ASN_TEST_FIXTURE *\n
      \                                                  fixture)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:96,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:96,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:97,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:97,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:98,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:98,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:100,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: test_ASN1_OCTET_STRING_set
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_ASN1_OCTET_STRING_set(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETUP_TEST_FIXTURE
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:109,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:111,1
    - Dst: ASN1_OCTET_STRING_new
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:111,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:113,1
    - Dst: ASN1_OCTET_STRING_set
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:113,1
    - Dst: tear_down
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:115,1
    - Dst: EXECUTE_TEST
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: test_ASN1_OCTET_STRING_set_tgt_is_src
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 0
    functionsReached:
    - EXECUTE_TEST
    - tear_down
    - ASN1_OCTET_STRING_set
    - ASN1_OCTET_STRING_new
    - SETUP_TEST_FIXTURE
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_ASN1_OCTET_STRING_set_tgt_is_src(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: cleanup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:130,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:132,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:133,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/cmp_asn_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 6
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/cmp_asn_test.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/confdump.c:19,1
    - Dst: NCONF_get_section
      Src: /src/openssl-3.0.15/test/confdump.c:19,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/confdump.c:22,1
    - Dst: sk_CONF_VALUE_num
      Src: /src/openssl-3.0.15/test/confdump.c:23,1
    - Dst: sk_CONF_VALUE_value
      Src: /src/openssl-3.0.15/test/confdump.c:24,1
    - Dst: printf
      Src: /src/openssl-3.0.15/test/confdump.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - cnf
    argTypes:
    - char*
    - CONF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: dump_section
    functionSourceFile: /src/openssl-3.0.15/test/confdump.c
    functionUses: 0
    functionsReached:
    - sk_CONF_VALUE_num
    - NCONF_get_section
    - STACK_OF
    - printf
    - sk_CONF_VALUE_value
    linkageType: ''
    returnType: void
    signature: void dump_section(const char *name, const CONF *cnf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCONF_new
      Src: /src/openssl-3.0.15/test/confdump.c:33,1
    - Dst: NCONF_default
      Src: /src/openssl-3.0.15/test/confdump.c:33,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/confdump.c:35,1
    - Dst: NCONF_load
      Src: /src/openssl-3.0.15/test/confdump.c:37,1
    - Dst: NCONF_get_section_names
      Src: /src/openssl-3.0.15/test/confdump.c:40,1
    - Dst: sk_OPENSSL_CSTRING_num
      Src: /src/openssl-3.0.15/test/confdump.c:41,1
    - Dst: dump_section
      Src: /src/openssl-3.0.15/test/confdump.c:42,1
    - Dst: sk_OPENSSL_CSTRING_value
      Src: /src/openssl-3.0.15/test/confdump.c:42,1
    - Dst: sk_OPENSSL_CSTRING_free
      Src: /src/openssl-3.0.15/test/confdump.c:44,1
    - Dst: ERR_print_errors_fp
      Src: /src/openssl-3.0.15/test/confdump.c:47,1
    - Dst: NCONF_free
      Src: /src/openssl-3.0.15/test/confdump.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/confdump.c
    functionUses: 6
    functionsReached:
    - sk_OPENSSL_CSTRING_value
    - sk_OPENSSL_CSTRING_free
    - NCONF_load
    - dump_section
    - NCONF_free
    - NCONF_get_section_names
    - STACK_OF
    - sk_OPENSSL_CSTRING_num
    - NCONF_default
    - NCONF_new
    - ERR_print_errors_fp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:165,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:166,1
    - Dst: ChaCha20_ctr32
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:168,1
    - Dst: TEST_uchar_eq
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:175,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: test_cha_cha_internal
    functionSourceFile: /src/openssl-3.0.15/test/chacha_internal_test.c
    functionUses: 0
    functionsReached:
    - ChaCha20_ctr32
    - memcpy
    - TEST_uchar_eq
    - TEST_info
    - memset
    linkageType: ''
    returnType: int
    signature: int test_cha_cha_internal(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cpuid_setup
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:185,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/chacha_internal_test.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/chacha_internal_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_cpuid_setup
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: int_hash
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int int_hash(const int *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: int_cmp
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_cmp(const int *p, const int *q)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: int_find
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_find(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_find
      Src: /src/openssl-3.0.15/test/lhash_test.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: int_doall
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - int_find
    linkageType: ''
    returnType: void
    signature: void int_doall(int *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_find
      Src: /src/openssl-3.0.15/test/lhash_test.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - int*
    - short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: int_doall_arg
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - int_find
    linkageType: ''
    returnType: void
    signature: void int_doall_arg(int *p, short *f)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/lhash_test.c:93,1
    - Dst: lh_int_new
      Src: /src/openssl-3.0.15/test/lhash_test.c:94,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/lhash_test.c:98,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/lhash_test.c:103,1
    - Dst: lh_int_insert
      Src: /src/openssl-3.0.15/test/lhash_test.c:103,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:104,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:109,1
    - Dst: lh_int_num_items
      Src: /src/openssl-3.0.15/test/lhash_test.c:109,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:114,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-3.0.15/test/lhash_test.c:114,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:115,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:119,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-3.0.15/test/lhash_test.c:119,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:120,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:124,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-3.0.15/test/lhash_test.c:124,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/lhash_test.c:129,1
    - Dst: lh_int_insert
      Src: /src/openssl-3.0.15/test/lhash_test.c:129,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:131,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:133,1
    - Dst: lh_int_retrieve
      Src: /src/openssl-3.0.15/test/lhash_test.c:133,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/lhash_test.c:137,1
    - Dst: lh_int_doall
      Src: /src/openssl-3.0.15/test/lhash_test.c:139,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:140,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:141,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:145,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:146,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/lhash_test.c:151,1
    - Dst: lh_int_doall_short
      Src: /src/openssl-3.0.15/test/lhash_test.c:153,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:154,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:155,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:159,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:160,1
    - Dst: lh_int_delete
      Src: /src/openssl-3.0.15/test/lhash_test.c:166,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:167,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:168,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:174,1
    - Dst: lh_int_error
      Src: /src/openssl-3.0.15/test/lhash_test.c:174,1
    - Dst: lh_int_free
      Src: /src/openssl-3.0.15/test/lhash_test.c:179,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 181
    functionName: test_int_lhash
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - lh_int_doall_short
    - TEST_ptr_null
    - lh_int_delete
    - TEST_int_eq
    - lh_int_num_items
    - lh_int_doall
    - lh_int_insert
    - OSSL_NELEM
    - TEST_info
    - TEST_ptr_eq
    - lh_int_error
    - lh_int_free
    - TEST_ptr
    - memset
    - lh_int_retrieve
    - lh_int_new
    linkageType: ''
    returnType: int
    signature: int test_int_lhash(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: stress_hash
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long int
    signature: unsigned long int stress_hash(const int *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lh_int_new
      Src: /src/openssl-3.0.15/test/lhash_test.c:190,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/lhash_test.c:195,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/lhash_test.c:200,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/lhash_test.c:201,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:202,1
    - Dst: lh_int_insert
      Src: /src/openssl-3.0.15/test/lhash_test.c:206,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:210,1
    - Dst: lh_int_num_items
      Src: /src/openssl-3.0.15/test/lhash_test.c:210,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:213,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openssl-3.0.15/test/lhash_test.c:214,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/lhash_test.c:215,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openssl-3.0.15/test/lhash_test.c:216,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/lhash_test.c:222,1
    - Dst: lh_int_delete
      Src: /src/openssl-3.0.15/test/lhash_test.c:222,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:223,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/lhash_test.c:226,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:227,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/lhash_test.c:230,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/lhash_test.c:233,1
    - Dst: OPENSSL_LH_stats_bio
      Src: /src/openssl-3.0.15/test/lhash_test.c:234,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/lhash_test.c:235,1
    - Dst: OPENSSL_LH_node_usage_stats_bio
      Src: /src/openssl-3.0.15/test/lhash_test.c:236,1
    - Dst: lh_int_free
      Src: /src/openssl-3.0.15/test/lhash_test.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 242
    functionName: test_stress
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - TEST_note
    - lh_int_delete
    - OPENSSL_malloc
    - TEST_int_eq
    - lh_int_num_items
    - TEST_info
    - lh_int_insert
    - OPENSSL_LH_node_usage_stats_bio
    - OPENSSL_free
    - lh_int_free
    - TEST_ptr
    - OPENSSL_LH_stats_bio
    - lh_int_new
    linkageType: ''
    returnType: int
    signature: int test_stress(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/lhash_test.c:246,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/lhash_test.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/lhash_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: get_globals
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: struct filter_prov_globals_st
    signature: struct filter_prov_globals_st *get_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:58,1
    - Dst: OSSL_PROVIDER_gettable_params
      Src: /src/openssl-3.0.15/test/filterprov.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: filter_gettable_params
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_gettable_params
    - get_globals
    linkageType: ''
    returnType: OSSL_PARAM
    signature: OSSL_PARAM *filter_gettable_params(void *provctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:65,1
    - Dst: OSSL_PROVIDER_get_params
      Src: /src/openssl-3.0.15/test/filterprov.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - provctx
    - params
    argTypes:
    - void*
    - OSSL_PARAM[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: filter_get_params
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - get_globals
    - OSSL_PROVIDER_get_params
    linkageType: ''
    returnType: int
    signature: int filter_get_params(void *provctx, OSSL_PARAM params[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:73,1
    - Dst: OSSL_PROVIDER_get_capabilities
      Src: /src/openssl-3.0.15/test/filterprov.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - provctx
    - capability
    - cb
    - arg
    argTypes:
    - void*
    - char*
    - OSSL_CALLBACK*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: filter_get_capabilities
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_get_capabilities
    - get_globals
    linkageType: ''
    returnType: int
    signature: "int filter_get_capabilities(void *provctx, const char *capability,\n
      \                                  OSSL_CALLBACK *cb, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:82,1
    - Dst: OSSL_PROVIDER_query_operation
      Src: /src/openssl-3.0.15/test/filterprov.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - provctx
    - operation_id
    - no_cache
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 95
    functionName: filter_query
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - get_globals
    - OSSL_PROVIDER_query_operation
    linkageType: ''
    returnType: OSSL_ALGORITHM
    signature: "OSSL_ALGORITHM *filter_query(void *provctx,\n                                          int
      operation_id,\n                                          int *no_cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:100,1
    - Dst: TEST_ulong_gt
      Src: /src/openssl-3.0.15/test/filterprov.c:103,1
    - Dst: OSSL_PROVIDER_unquery_operation
      Src: /src/openssl-3.0.15/test/filterprov.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - provctx
    - operation_id
    - algs
    argTypes:
    - void*
    - int
    - OSSL_ALGORITHM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: filter_unquery
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - get_globals
    - OSSL_PROVIDER_unquery_operation
    - TEST_ulong_gt
    linkageType: ''
    returnType: void
    signature: "void filter_unquery(void *provctx, int operation_id,\n                           const
      OSSL_ALGORITHM *algs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:116,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/filterprov.c:118,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/filterprov.c:119,1
    - Dst: memset
      Src: /src/openssl-3.0.15/test/filterprov.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - provctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: filter_teardown
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - OSSL_LIB_CTX_free
    - OSSL_PROVIDER_unload
    - get_globals
    - memset
    linkageType: ''
    returnType: void
    signature: void filter_teardown(void *provctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/openssl-3.0.15/test/filterprov.c:139,1
    - Dst: OSSL_LIB_CTX_new
      Src: /src/openssl-3.0.15/test/filterprov.c:140,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/openssl-3.0.15/test/filterprov.c:144,1
    - Dst: OSSL_PROVIDER_get0_provider_ctx
      Src: /src/openssl-3.0.15/test/filterprov.c:148,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/openssl-3.0.15/test/filterprov.c:153,1
    - Dst: OSSL_LIB_CTX_free
      Src: /src/openssl-3.0.15/test/filterprov.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - handle
    - in
    - out
    - provctx
    argTypes:
    - OSSL_CORE_HANDLE*
    - OSSL_DISPATCH*
    - OSSL_DISPATCH**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: filter_provider_init
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - OSSL_LIB_CTX_free
    - OSSL_LIB_CTX_new
    - OSSL_PROVIDER_get0_provider_ctx
    - memset
    linkageType: ''
    returnType: int
    signature: "int filter_provider_init(const OSSL_CORE_HANDLE *handle,\n                         const
      OSSL_DISPATCH *in,\n                         const OSSL_DISPATCH **out,\n                         void
      **provctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:168,1
    - Dst: OPENSSL_strdup
      Src: /src/openssl-3.0.15/test/filterprov.c:170,1
    - Dst: OSSL_PROVIDER_query_operation
      Src: /src/openssl-3.0.15/test/filterprov.c:172,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/test/filterprov.c:188,1
    - Dst: strlen
      Src: /src/openssl-3.0.15/test/filterprov.c:193,1
    - Dst: strstr
      Src: /src/openssl-3.0.15/test/filterprov.c:196,1
    - Dst: OSSL_PROVIDER_unquery_operation
      Src: /src/openssl-3.0.15/test/filterprov.c:224,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/filterprov.c:225,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 2
    argNames:
    - operation
    - filterstr
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 227
    functionName: filter_provider_set_filter
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 1
    functionsReached:
    - OSSL_PROVIDER_query_operation
    - strstr
    - OPENSSL_free
    - get_globals
    - strlen
    - OPENSSL_strdup
    - OSSL_PROVIDER_unquery_operation
    linkageType: ''
    returnType: int
    signature: int filter_provider_set_filter(int operation, const char *filterstr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_globals
      Src: /src/openssl-3.0.15/test/filterprov.c:235,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/filterprov.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: filter_provider_check_clean_finish
    functionSourceFile: /src/openssl-3.0.15/test/filterprov.c
    functionUses: 1
    functionsReached:
    - TEST_ulong_eq
    - get_globals
    linkageType: ''
    returnType: int
    signature: int filter_provider_check_clean_finish(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_md4.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nid
    - ','
    - amask
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: test_cert_table
    functionSourceFile: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_cert_table(nid, amask, idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:32,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:35,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:35,1
    - Dst: OBJ_nid2sn
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:36,1
    - Dst: TEST_note
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - nid
    - amask
    - idx
    - idxname
    argTypes:
    - int
    - uint32_t
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: do_test_cert_table
    functionSourceFile: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached:
    - TEST_error
    - TEST_note
    - OBJ_nid2sn
    linkageType: ''
    returnType: int
    signature: "int do_test_cert_table(int nid, uint32_t amask, size_t idx,\n                              const
      char *idxname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:46,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:46,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:47,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:48,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:49,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:50,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:52,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:54,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:56,1
    - Dst: test_cert_table
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: test_ssl_cert_table
    functionSourceFile: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached:
    - test_cert_table
    - TEST_size_t_eq
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_ssl_cert_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/ssl_cert_table_internal_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:82,1
    - Dst: BN_GENCB_new
      Src: /src/openssl-3.0.15/test/dsatest.c:82,1
    - Dst: BN_GENCB_set
      Src: /src/openssl-3.0.15/test/dsatest.c:85,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:86,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/test/dsatest.c:86,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:87,1
    - Dst: DSA_generate_parameters_ex
      Src: /src/openssl-3.0.15/test/dsatest.c:87,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:91,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:93,1
    - Dst: DSA_get0_pqg
      Src: /src/openssl-3.0.15/test/dsatest.c:96,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/test/dsatest.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:99,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:99,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/test/dsatest.c:102,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:104,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:104,1
    - Dst: BN_bn2bin
      Src: /src/openssl-3.0.15/test/dsatest.c:107,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:109,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:109,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:112,1
    - Dst: DSA_generate_key
      Src: /src/openssl-3.0.15/test/dsatest.c:112,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:114,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:114,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:116,1
    - Dst: DSA_verify
      Src: /src/openssl-3.0.15/test/dsatest.c:116,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/dsatest.c:119,1
    - Dst: BN_GENCB_free
      Src: /src/openssl-3.0.15/test/dsatest.c:120,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 61
    functionDepth: 11
    functionLinenumber: 61
    functionLinenumberEnd: 122
    functionName: dsa_test
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - BN_GENCB_set
    - DSA_get0_pqg
    - TEST_int_eq
    - BN_bn2bin
    - DSA_generate_parameters_ex
    - BN_GENCB_free
    - BN_GENCB_new
    - DSA_generate_key
    - DSA_sign
    - DSA_new
    - DSA_verify
    - DSA_free
    - TEST_ptr
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int dsa_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_error
      Src: /src/openssl-3.0.15/test/dsatest.c:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - p
    - n
    - arg
    argTypes:
    - int
    - int
    - BN_GENCB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: dsa_cb
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - TEST_error
    linkageType: ''
    returnType: int
    signature: int dsa_cb(int p, int n, BN_GENCB *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:244,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:244,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:245,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:245,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:246,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:246,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:248,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/dsatest.c:248,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:249,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/dsatest.c:249,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/dsatest.c:250,1
    - Dst: EVP_PKEY_CTX_gettable_params
      Src: /src/openssl-3.0.15/test/dsatest.c:250,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:251,1
    - Dst: EVP_PKEY_CTX_settable_params
      Src: /src/openssl-3.0.15/test/dsatest.c:251,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:252,1
    - Dst: OSSL_PARAM_locate_const
      Src: /src/openssl-3.0.15/test/dsatest.c:252,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:254,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_type
      Src: /src/openssl-3.0.15/test/dsatest.c:254,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:255,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/openssl-3.0.15/test/dsatest.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:256,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/openssl-3.0.15/test/dsatest.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:257,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_seed
      Src: /src/openssl-3.0.15/test/dsatest.c:257,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:259,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_md_props
      Src: /src/openssl-3.0.15/test/dsatest.c:259,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:261,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/test/dsatest.c:261,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:262,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/dsatest.c:262,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:263,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/openssl-3.0.15/test/dsatest.c:263,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:264,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/test/dsatest.c:264,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:267,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/dsatest.c:267,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:268,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:269,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/dsatest.c:269,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:270,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:271,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/openssl-3.0.15/test/dsatest.c:271,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:272,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:273,1
    - Dst: EVP_PKEY_get_octet_string_param
      Src: /src/openssl-3.0.15/test/dsatest.c:273,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:276,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:277,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/dsatest.c:277,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:279,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:280,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/dsatest.c:280,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:282,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:283,1
    - Dst: EVP_PKEY_get_int_param
      Src: /src/openssl-3.0.15/test/dsatest.c:283,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/dsatest.c:286,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:287,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/openssl-3.0.15/test/dsatest.c:287,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:294,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:295,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:296,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:297,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:298,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:299,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/dsatest.c:300,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/dsatest.c:301,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dsatest.c:302,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dsatest.c:303,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 149
    functionDepth: 7
    functionLinenumber: 149
    functionLinenumberEnd: 305
    functionName: dsa_keygen_test
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - TEST_mem_eq
    - TEST_ptr_null
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - TEST_int_eq
    - EVP_PKEY_get_octet_string_param
    - EVP_PKEY_CTX_set_dsa_paramgen_type
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_PKEY_CTX_settable_params
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - TEST_BN_eq
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_set_dsa_paramgen_seed
    - OSSL_PARAM_locate_const
    - TEST_true
    - EVP_PKEY_CTX_set_dsa_paramgen_md_props
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_get_utf8_string_param
    - BN_free
    - TEST_ptr
    - EVP_PKEY_get_int_param
    - EVP_PKEY_CTX_new_from_pkey
    - BN_bin2bn
    - EVP_PKEY_CTX_gettable_params
    - TEST_false
    - EVP_PKEY_free
    - EVP_PKEY_generate
    linkageType: ''
    returnType: int
    signature: int dsa_keygen_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:314,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/openssl-3.0.15/test/dsatest.c:314,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:315,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/openssl-3.0.15/test/dsatest.c:315,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:317,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/openssl-3.0.15/test/dsatest.c:317,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:318,1
    - Dst: EVP_PKEY_generate
      Src: /src/openssl-3.0.15/test/dsatest.c:318,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:319,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/openssl-3.0.15/test/dsatest.c:319,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:320,1
    - Dst: EVP_PKEY_param_check
      Src: /src/openssl-3.0.15/test/dsatest.c:320,1
    - Dst: EVP_PKEY_free
      Src: /src/openssl-3.0.15/test/dsatest.c:322,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dsatest.c:323,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/openssl-3.0.15/test/dsatest.c:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 9
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: test_dsa_default_paramgen_validate
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_new_from_name
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_param_check
    - EVP_PKEY_free
    - TEST_ptr
    - TEST_true
    - EVP_PKEY_CTX_free
    - TEST_int_gt
    - EVP_PKEY_generate
    linkageType: ''
    returnType: int
    signature: int test_dsa_default_paramgen_validate(int i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:354,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:354,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:355,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:355,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:356,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:356,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:357,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:357,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:358,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:358,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:359,1
    - Dst: BN_dup
      Src: /src/openssl-3.0.15/test/dsatest.c:359,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:360,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dsatest.c:360,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:361,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dsatest.c:361,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:362,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/dsatest.c:362,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:363,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/dsatest.c:363,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:364,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/test/dsatest.c:364,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:367,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/test/dsatest.c:367,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:371,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/test/dsatest.c:371,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dsatest.c:375,1
    - Dst: DSA_size
      Src: /src/openssl-3.0.15/test/dsatest.c:375,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:379,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:379,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:380,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:383,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:383,1
    - Dst: TEST_int_gt
      Src: /src/openssl-3.0.15/test/dsatest.c:384,1
    - Dst: TEST_int_le
      Src: /src/openssl-3.0.15/test/dsatest.c:385,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:389,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/test/dsatest.c:389,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:392,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:392,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:396,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/test/dsatest.c:396,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:399,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/test/dsatest.c:399,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:402,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:402,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:407,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:408,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:409,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:410,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:411,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:412,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:413,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:414,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/dsatest.c:415,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 328
    functionDepth: 11
    functionLinenumber: 328
    functionLinenumberEnd: 417
    functionName: test_dsa_sig_infinite_loop
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - BN_dup
    - BN_new
    - BN_bin2bn
    - DSA_set0_pqg
    - DSA_set0_key
    - TEST_false
    - BN_free
    - DSA_sign
    - DSA_new
    - DSA_size
    - DSA_free
    - TEST_int_le
    - TEST_ptr
    - BN_set_word
    - TEST_true
    - TEST_int_gt
    linkageType: ''
    returnType: int
    signature: int test_dsa_sig_infinite_loop(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:443,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:443,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:444,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:444,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:445,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:445,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:446,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:446,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:447,1
    - Dst: BN_bin2bn
      Src: /src/openssl-3.0.15/test/dsatest.c:447,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/dsatest.c:448,1
    - Dst: DSA_new
      Src: /src/openssl-3.0.15/test/dsatest.c:448,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:451,1
    - Dst: DSA_set0_pqg
      Src: /src/openssl-3.0.15/test/dsatest.c:451,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/dsatest.c:455,1
    - Dst: DSA_set0_key
      Src: /src/openssl-3.0.15/test/dsatest.c:455,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:459,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:460,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:460,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:463,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:464,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:465,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:465,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:468,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:469,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:470,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:470,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:473,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:474,1
    - Dst: BN_set_negative
      Src: /src/openssl-3.0.15/test/dsatest.c:475,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/dsatest.c:476,1
    - Dst: DSA_sign
      Src: /src/openssl-3.0.15/test/dsatest.c:476,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:481,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:482,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:485,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:486,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/dsatest.c:487,1
    - Dst: DSA_free
      Src: /src/openssl-3.0.15/test/dsatest.c:489,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 419
    functionDepth: 11
    functionLinenumber: 419
    functionLinenumberEnd: 491
    functionName: test_dsa_sig_neg_param
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - BN_bin2bn
    - DSA_set0_pqg
    - DSA_set0_key
    - TEST_false
    - BN_free
    - DSA_sign
    - DSA_new
    - DSA_free
    - TEST_ptr
    - BN_set_negative
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int test_dsa_sig_neg_param(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsatest.c:498,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsatest.c:499,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsatest.c:500,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/dsatest.c:501,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/dsatest.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/dsatest.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:26,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:26,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:27,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:27,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:28,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:28,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:29,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:29,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:34,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:34,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:35,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:36,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:37,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:37,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:38,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:43,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:44,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:45,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:46,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:47,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 49
    functionName: template_public_single_zero_test
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - BN_new
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - TEST_BN_eq
    - OSSL_PARAM_locate
    - OSSL_PARAM_BLD_free
    - OPENSSL_free
    - BN_free
    - TEST_str_eq
    - TEST_ptr
    - TEST_true
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int template_public_single_zero_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:58,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:58,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:59,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:59,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:60,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:60,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:61,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:61,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:66,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:66,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:67,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:67,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:68,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:69,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:70,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:70,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:71,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/param_build_test.c:71,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:72,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:77,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:78,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:79,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:80,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:81,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 83
    functionName: template_private_single_zero_test
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - CRYPTO_secure_allocated
    - TEST_int_eq
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - TEST_BN_eq
    - OSSL_PARAM_locate
    - OSSL_PARAM_BLD_free
    - OPENSSL_free
    - BN_free
    - BN_get_flags
    - BN_secure_new
    - TEST_str_eq
    - TEST_ptr
    - TEST_true
    - TEST_uint_eq
    linkageType: ''
    returnType: int
    signature: int template_private_single_zero_test(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:87,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:101,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:102,1
    - Dst: OSSL_PARAM_BLD_push_long
      Src: /src/openssl-3.0.15/test/param_build_test.c:102,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:103,1
    - Dst: OSSL_PARAM_BLD_push_int32
      Src: /src/openssl-3.0.15/test/param_build_test.c:103,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:104,1
    - Dst: OSSL_PARAM_BLD_push_int64
      Src: /src/openssl-3.0.15/test/param_build_test.c:104,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:105,1
    - Dst: OSSL_PARAM_BLD_push_time_t
      Src: /src/openssl-3.0.15/test/param_build_test.c:105,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:106,1
    - Dst: OSSL_PARAM_BLD_push_double
      Src: /src/openssl-3.0.15/test/param_build_test.c:106,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:107,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:107,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:108,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:108,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:109,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:109,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:110,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/param_build_test.c:110,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:111,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:111,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:112,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/openssl-3.0.15/test/param_build_test.c:112,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:114,1
    - Dst: OSSL_PARAM_BLD_push_utf8_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:114,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:116,1
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/test/param_build_test.c:116,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:117,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:117,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:125,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/param_build_test.c:128,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:131,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/param_build_test.c:132,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/param_build_test.c:135,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:136,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:140,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:140,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:141,1
    - Dst: OSSL_PARAM_get_int
      Src: /src/openssl-3.0.15/test/param_build_test.c:141,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:142,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:143,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:144,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:145,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:147,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:147,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:148,1
    - Dst: OSSL_PARAM_get_int32
      Src: /src/openssl-3.0.15/test/param_build_test.c:148,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:149,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:150,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:151,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:152,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:154,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:154,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:155,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:156,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:157,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:158,1
    - Dst: OSSL_PARAM_get_int64
      Src: /src/openssl-3.0.15/test/param_build_test.c:158,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:159,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:161,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:161,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:162,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:163,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:164,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:165,1
    - Dst: OSSL_PARAM_get_long
      Src: /src/openssl-3.0.15/test/param_build_test.c:165,1
    - Dst: TEST_long_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:166,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:168,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:168,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:169,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:170,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:171,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:172,1
    - Dst: OSSL_PARAM_get_time_t
      Src: /src/openssl-3.0.15/test/param_build_test.c:172,1
    - Dst: TEST_time_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:173,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:175,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:175,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:176,1
    - Dst: OSSL_PARAM_get_double
      Src: /src/openssl-3.0.15/test/param_build_test.c:176,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:177,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:178,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:179,1
    - Dst: TEST_double_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:180,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:182,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:182,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:183,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:184,1
    - Dst: OSSL_PARAM_get_utf8_string
      Src: /src/openssl-3.0.15/test/param_build_test.c:184,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:185,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:187,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:187,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:188,1
    - Dst: OSSL_PARAM_get_utf8_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:188,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:189,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:191,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:191,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:192,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:193,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:194,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:194,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:195,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:197,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:197,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:198,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:199,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:200,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:200,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:201,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/param_build_test.c:201,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:205,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:207,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:208,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:209,1
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:210,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:211,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:212,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:213,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:214,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 40
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 216
    functionName: template_public_test
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_double
    - OSSL_PARAM_BLD_push_int
    - OSSL_PARAM_BLD_push_BN
    - TEST_int_eq
    - OSSL_PARAM_BLD_push_time_t
    - OSSL_PARAM_get_int
    - OSSL_PARAM_merge
    - OSSL_PARAM_BLD_push_long
    - OSSL_PARAM_get_int32
    - TEST_double_eq
    - OSSL_PARAM_free
    - TEST_long_eq
    - TEST_BN_eq
    - OSSL_PARAM_BLD_push_int64
    - OSSL_PARAM_get_long
    - OSSL_PARAM_get_int64
    - OSSL_PARAM_BLD_push_utf8_ptr
    - OSSL_PARAM_dup
    - BN_set_word
    - TEST_true
    - BN_cmp
    - TEST_uint_eq
    - OSSL_PARAM_get_utf8_string
    - BN_new
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_BLD_new
    - TEST_size_t_eq
    - OSSL_PARAM_locate
    - TEST_time_t_eq
    - OPENSSL_free
    - OSSL_PARAM_BLD_free
    - BN_free
    - OSSL_PARAM_get_utf8_ptr
    - TEST_ptr
    - OSSL_PARAM_BLD_push_int32
    - OSSL_PARAM_get_double
    - OSSL_PARAM_BLD_push_utf8_string
    - TEST_str_eq
    - OSSL_PARAM_get_time_t
    linkageType: ''
    returnType: int
    signature: int template_public_test(int tstid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:236,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/param_build_test.c:236,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:237,1
    - Dst: OPENSSL_secure_malloc
      Src: /src/openssl-3.0.15/test/param_build_test.c:237,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:238,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:238,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:246,1
    - Dst: OSSL_PARAM_BLD_push_uint
      Src: /src/openssl-3.0.15/test/param_build_test.c:246,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:247,1
    - Dst: OSSL_PARAM_BLD_push_ulong
      Src: /src/openssl-3.0.15/test/param_build_test.c:247,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:248,1
    - Dst: OSSL_PARAM_BLD_push_uint32
      Src: /src/openssl-3.0.15/test/param_build_test.c:248,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:249,1
    - Dst: OSSL_PARAM_BLD_push_uint64
      Src: /src/openssl-3.0.15/test/param_build_test.c:249,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:250,1
    - Dst: OSSL_PARAM_BLD_push_size_t
      Src: /src/openssl-3.0.15/test/param_build_test.c:250,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:251,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:251,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:252,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:252,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:253,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:253,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:254,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/param_build_test.c:254,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:255,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:255,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:256,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/param_build_test.c:256,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:258,1
    - Dst: OSSL_PARAM_BLD_push_octet_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:258,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:260,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:260,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:267,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/param_build_test.c:270,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:273,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/param_build_test.c:274,1
    - Dst: OSSL_PARAM_dup
      Src: /src/openssl-3.0.15/test/param_build_test.c:277,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:278,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:282,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:282,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/param_build_test.c:283,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:283,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:284,1
    - Dst: OSSL_PARAM_get_uint
      Src: /src/openssl-3.0.15/test/param_build_test.c:284,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:285,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:286,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:287,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:288,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:290,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:290,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/param_build_test.c:291,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:291,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:292,1
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/test/param_build_test.c:292,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:293,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:294,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:295,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:296,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:298,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:298,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/param_build_test.c:299,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:299,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:300,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:301,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:302,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:303,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/param_build_test.c:303,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:304,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:306,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:306,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/param_build_test.c:307,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:307,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:308,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:309,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:310,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:311,1
    - Dst: OSSL_PARAM_get_ulong
      Src: /src/openssl-3.0.15/test/param_build_test.c:311,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:312,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:314,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:314,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/param_build_test.c:315,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:315,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:316,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:317,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:318,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:319,1
    - Dst: OSSL_PARAM_get_size_t
      Src: /src/openssl-3.0.15/test/param_build_test.c:319,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:320,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:322,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:322,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:323,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:323,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:324,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:325,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:326,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:328,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:328,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/param_build_test.c:329,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:329,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:330,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:330,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:331,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:332,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:333,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:335,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:335,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:336,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:336,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:337,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:338,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:339,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:339,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:340,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/param_build_test.c:340,1
    - Dst: TEST_BN_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:341,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:343,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:343,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:344,1
    - Dst: CRYPTO_secure_allocated
      Src: /src/openssl-3.0.15/test/param_build_test.c:344,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:345,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:346,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:347,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:347,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:348,1
    - Dst: BN_get_flags
      Src: /src/openssl-3.0.15/test/param_build_test.c:348,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:349,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/param_build_test.c:349,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:353,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:355,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:356,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:357,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:358,1
    - Dst: OPENSSL_secure_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:359,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:360,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:361,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:362,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:363,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 48
    argCount: 1
    argNames:
    - tstid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 365
    functionName: template_private_test
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_uint32
    - TEST_mem_eq
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - CRYPTO_secure_allocated
    - OSSL_PARAM_get_ulong
    - TEST_int_eq
    - OSSL_PARAM_BLD_push_uint64
    - OPENSSL_secure_malloc
    - OSSL_PARAM_get_size_t
    - OSSL_PARAM_BLD_push_size_t
    - OSSL_PARAM_merge
    - OSSL_PARAM_BLD_push_uint32
    - OPENSSL_secure_free
    - OSSL_PARAM_free
    - TEST_BN_eq
    - BN_get_flags
    - BN_secure_new
    - OSSL_PARAM_dup
    - BN_set_word
    - TEST_true
    - OSSL_PARAM_get_uint
    - BN_cmp
    - TEST_uint_eq
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_get_uint64
    - OSSL_PARAM_BLD_push_octet_ptr
    - OSSL_PARAM_BLD_new
    - TEST_size_t_eq
    - OSSL_PARAM_locate
    - OSSL_PARAM_BLD_free
    - BN_free
    - TEST_ptr
    - OSSL_PARAM_BLD_push_ulong
    - TEST_ulong_eq
    - OSSL_PARAM_BLD_push_uint
    - TEST_false
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int template_private_test(int tstid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:371,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:375,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:382,1
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/test/param_build_test.c:382,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:385,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:385,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:389,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:393,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:396,1
    - Dst: OSSL_PARAM_BLD_push_int
      Src: /src/openssl-3.0.15/test/param_build_test.c:396,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:397,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:397,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:401,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:405,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:406,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 408
    functionName: builder_limit_test
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_push_int
    - OSSL_PARAM_BLD_to_param
    - TEST_int_eq
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_free
    - TEST_ptr
    - TEST_true
    linkageType: ''
    returnType: int
    signature: int builder_limit_test(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:414,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:415,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:426,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:427,1
    - Dst: OSSL_PARAM_BLD_push_uint
      Src: /src/openssl-3.0.15/test/param_build_test.c:427,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:428,1
    - Dst: OSSL_PARAM_BLD_push_ulong
      Src: /src/openssl-3.0.15/test/param_build_test.c:428,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:429,1
    - Dst: OSSL_PARAM_BLD_push_uint32
      Src: /src/openssl-3.0.15/test/param_build_test.c:429,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:430,1
    - Dst: OSSL_PARAM_BLD_push_uint64
      Src: /src/openssl-3.0.15/test/param_build_test.c:430,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:431,1
    - Dst: OSSL_PARAM_BLD_push_size_t
      Src: /src/openssl-3.0.15/test/param_build_test.c:431,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:432,1
    - Dst: BN_secure_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:432,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:433,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/param_build_test.c:433,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:434,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:434,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:435,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:435,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:438,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:439,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/openssl-3.0.15/test/param_build_test.c:439,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:441,1
    - Dst: OSSL_PARAM_BLD_push_octet_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:441,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:443,1
    - Dst: OSSL_PARAM_BLD_push_uint32
      Src: /src/openssl-3.0.15/test/param_build_test.c:443,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:444,1
    - Dst: BN_new
      Src: /src/openssl-3.0.15/test/param_build_test.c:444,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:445,1
    - Dst: BN_set_word
      Src: /src/openssl-3.0.15/test/param_build_test.c:445,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:446,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:446,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:447,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/openssl-3.0.15/test/param_build_test.c:447,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:450,1
    - Dst: OSSL_PARAM_merge
      Src: /src/openssl-3.0.15/test/param_build_test.c:450,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:453,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:453,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:454,1
    - Dst: OSSL_PARAM_get_uint
      Src: /src/openssl-3.0.15/test/param_build_test.c:454,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:455,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:456,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:457,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:458,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:460,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:460,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:461,1
    - Dst: OSSL_PARAM_get_uint32
      Src: /src/openssl-3.0.15/test/param_build_test.c:461,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:462,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:463,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:464,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:465,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:467,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:467,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:468,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:469,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:470,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:471,1
    - Dst: OSSL_PARAM_get_uint64
      Src: /src/openssl-3.0.15/test/param_build_test.c:471,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:472,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:474,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:474,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:475,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:476,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:477,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:478,1
    - Dst: OSSL_PARAM_get_ulong
      Src: /src/openssl-3.0.15/test/param_build_test.c:478,1
    - Dst: TEST_ulong_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:479,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:481,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:481,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:482,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:483,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:484,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:485,1
    - Dst: OSSL_PARAM_get_size_t
      Src: /src/openssl-3.0.15/test/param_build_test.c:485,1
    - Dst: TEST_size_t_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:486,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:488,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:488,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:489,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:490,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:491,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:493,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:493,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:494,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:495,1
    - Dst: TEST_mem_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:496,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:498,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:498,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:499,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:500,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:501,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:501,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:502,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/param_build_test.c:502,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/param_build_test.c:503,1
    - Dst: OSSL_PARAM_locate
      Src: /src/openssl-3.0.15/test/param_build_test.c:503,1
    - Dst: TEST_str_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:504,1
    - Dst: TEST_uint_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:505,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/param_build_test.c:506,1
    - Dst: OSSL_PARAM_get_BN
      Src: /src/openssl-3.0.15/test/param_build_test.c:506,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/param_build_test.c:507,1
    - Dst: BN_cmp
      Src: /src/openssl-3.0.15/test/param_build_test.c:507,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:511,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:512,1
    - Dst: OSSL_PARAM_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:513,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:514,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:515,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:516,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:517,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:518,1
    - Dst: BN_free
      Src: /src/openssl-3.0.15/test/param_build_test.c:519,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 521
    functionName: builder_merge_test
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_get_uint32
    - TEST_mem_eq
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_get_ulong
    - TEST_int_eq
    - OSSL_PARAM_BLD_push_uint64
    - OSSL_PARAM_get_size_t
    - OSSL_PARAM_BLD_push_size_t
    - OSSL_PARAM_merge
    - OSSL_PARAM_BLD_push_uint32
    - OSSL_PARAM_free
    - BN_secure_new
    - BN_set_word
    - TEST_true
    - OSSL_PARAM_get_uint
    - BN_cmp
    - TEST_uint_eq
    - BN_new
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_get_BN
    - OSSL_PARAM_get_uint64
    - OSSL_PARAM_BLD_push_octet_ptr
    - OSSL_PARAM_BLD_new
    - TEST_size_t_eq
    - OSSL_PARAM_locate
    - OSSL_PARAM_BLD_free
    - BN_free
    - TEST_ptr
    - OSSL_PARAM_BLD_push_ulong
    - TEST_ulong_eq
    - OSSL_PARAM_BLD_push_uint
    - TEST_str_eq
    linkageType: ''
    returnType: int
    signature: int builder_merge_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/param_build_test.c:525,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/param_build_test.c:526,1
    - Dst: CRYPTO_secure_malloc_init
      Src: /src/openssl-3.0.15/test/param_build_test.c:528,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/param_build_test.c:529,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/param_build_test.c:530,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/param_build_test.c:532,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/param_build_test.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 535
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/param_build_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - CRYPTO_secure_malloc_init
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_e_os2.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_sslerr_legacy.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int**
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: int_compare
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int int_compare(const int *const *a, const int *const *b)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/stack_test.c:57,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/stack_test.c:70,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/stack_test.c:82,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/stack_test.c:83,1
    - Dst: sk_sint_new_null
      Src: /src/openssl-3.0.15/test/stack_test.c:83,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/stack_test.c:87,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/stack_test.c:88,1
    - Dst: sk_sint_reserve
      Src: /src/openssl-3.0.15/test/stack_test.c:88,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:93,1
    - Dst: sk_sint_num
      Src: /src/openssl-3.0.15/test/stack_test.c:93,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:94,1
    - Dst: sk_sint_push
      Src: /src/openssl-3.0.15/test/stack_test.c:97,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:99,1
    - Dst: sk_sint_num
      Src: /src/openssl-3.0.15/test/stack_test.c:99,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:104,1
    - Dst: sk_sint_value
      Src: /src/openssl-3.0.15/test/stack_test.c:104,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:105,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:114,1
    - Dst: sk_sint_find
      Src: /src/openssl-3.0.15/test/stack_test.c:114,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:115,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:125,1
    - Dst: sk_sint_find_ex
      Src: /src/openssl-3.0.15/test/stack_test.c:125,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:126,1
    - Dst: TEST_false
      Src: /src/openssl-3.0.15/test/stack_test.c:132,1
    - Dst: sk_sint_is_sorted
      Src: /src/openssl-3.0.15/test/stack_test.c:132,1
    - Dst: sk_sint_set_cmp_func
      Src: /src/openssl-3.0.15/test/stack_test.c:134,1
    - Dst: sk_sint_sort
      Src: /src/openssl-3.0.15/test/stack_test.c:135,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/stack_test.c:136,1
    - Dst: sk_sint_is_sorted
      Src: /src/openssl-3.0.15/test/stack_test.c:136,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:141,1
    - Dst: sk_sint_find
      Src: /src/openssl-3.0.15/test/stack_test.c:141,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:142,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:148,1
    - Dst: sk_sint_find_ex
      Src: /src/openssl-3.0.15/test/stack_test.c:148,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:149,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:153,1
    - Dst: sk_sint_find_ex
      Src: /src/openssl-3.0.15/test/stack_test.c:153,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:154,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:159,1
    - Dst: sk_sint_shift
      Src: /src/openssl-3.0.15/test/stack_test.c:159,1
    - Dst: sk_sint_free
      Src: /src/openssl-3.0.15/test/stack_test.c:164,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 1
    argNames:
    - reserve
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 166
    functionName: test_int_stack
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - TEST_int_eq
    - sk_sint_new_null
    - sk_sint_is_sorted
    - TEST_true
    - sk_sint_shift
    - sk_sint_reserve
    - sk_sint_find
    - TEST_info
    - STACK_OF
    - sk_sint_num
    - TEST_ptr
    - sk_sint_sort
    - OSSL_NELEM
    - sk_sint_find_ex
    - sk_sint_set_cmp_func
    - TEST_false
    - TEST_ptr_eq
    - sk_sint_free
    - sk_sint_value
    - sk_sint_push
    linkageType: ''
    returnType: int
    signature: int test_int_stack(int reserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char**
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: uchar_compare
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int uchar_compare(const unsigned char *const *a,\n                         const
      unsigned char *const *b)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/stack_test.c:177,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/stack_test.c:178,1
    - Dst: sk_uchar_new
      Src: /src/openssl-3.0.15/test/stack_test.c:178,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/stack_test.c:182,1
    - Dst: TEST_true
      Src: /src/openssl-3.0.15/test/stack_test.c:183,1
    - Dst: sk_uchar_reserve
      Src: /src/openssl-3.0.15/test/stack_test.c:183,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:188,1
    - Dst: sk_uchar_num
      Src: /src/openssl-3.0.15/test/stack_test.c:188,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:189,1
    - Dst: sk_uchar_unshift
      Src: /src/openssl-3.0.15/test/stack_test.c:192,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:194,1
    - Dst: sk_uchar_num
      Src: /src/openssl-3.0.15/test/stack_test.c:194,1
    - Dst: sk_uchar_dup
      Src: /src/openssl-3.0.15/test/stack_test.c:198,1
    - Dst: sk_uchar_num
      Src: /src/openssl-3.0.15/test/stack_test.c:199,1
    - Dst: sk_uchar_free
      Src: /src/openssl-3.0.15/test/stack_test.c:201,1
    - Dst: sk_uchar_dup
      Src: /src/openssl-3.0.15/test/stack_test.c:202,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:203,1
    - Dst: sk_uchar_num
      Src: /src/openssl-3.0.15/test/stack_test.c:203,1
    - Dst: sk_uchar_sort
      Src: /src/openssl-3.0.15/test/stack_test.c:205,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:209,1
    - Dst: sk_uchar_pop
      Src: /src/openssl-3.0.15/test/stack_test.c:209,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:210,1
    - Dst: sk_uchar_free
      Src: /src/openssl-3.0.15/test/stack_test.c:215,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:219,1
    - Dst: sk_uchar_num
      Src: /src/openssl-3.0.15/test/stack_test.c:219,1
    - Dst: sk_uchar_zero
      Src: /src/openssl-3.0.15/test/stack_test.c:223,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:224,1
    - Dst: sk_uchar_num
      Src: /src/openssl-3.0.15/test/stack_test.c:224,1
    - Dst: sk_uchar_insert
      Src: /src/openssl-3.0.15/test/stack_test.c:228,1
    - Dst: sk_uchar_insert
      Src: /src/openssl-3.0.15/test/stack_test.c:229,1
    - Dst: sk_uchar_insert
      Src: /src/openssl-3.0.15/test/stack_test.c:230,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:232,1
    - Dst: sk_uchar_value
      Src: /src/openssl-3.0.15/test/stack_test.c:232,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:233,1
    - Dst: TEST_ptr_null
      Src: /src/openssl-3.0.15/test/stack_test.c:238,1
    - Dst: sk_uchar_delete
      Src: /src/openssl-3.0.15/test/stack_test.c:238,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:240,1
    - Dst: sk_uchar_delete
      Src: /src/openssl-3.0.15/test/stack_test.c:240,1
    - Dst: sk_uchar_set
      Src: /src/openssl-3.0.15/test/stack_test.c:244,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:246,1
    - Dst: sk_uchar_value
      Src: /src/openssl-3.0.15/test/stack_test.c:246,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:247,1
    - Dst: sk_uchar_free
      Src: /src/openssl-3.0.15/test/stack_test.c:253,1
    - Dst: sk_uchar_free
      Src: /src/openssl-3.0.15/test/stack_test.c:254,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 1
    argNames:
    - reserve
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 256
    functionName: test_uchar_stack
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - TEST_ptr_null
    - sk_uchar_delete
    - TEST_int_eq
    - sk_uchar_new
    - sk_uchar_sort
    - sk_uchar_pop
    - sk_uchar_set
    - TEST_true
    - sk_uchar_num
    - sk_uchar_reserve
    - sk_uchar_dup
    - sk_uchar_free
    - TEST_info
    - STACK_OF
    - TEST_ptr
    - sk_uchar_value
    - OSSL_NELEM
    - sk_uchar_zero
    - TEST_ptr_eq
    - sk_uchar_unshift
    - sk_uchar_insert
    linkageType: ''
    returnType: int
    signature: int test_uchar_stack(int reserve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/stack_test.c:260,1
    - Dst: memcpy
      Src: /src/openssl-3.0.15/test/stack_test.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - SS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 265
    functionName: SS_copy
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_malloc
    - memcpy
    linkageType: ''
    returnType: SS
    signature: SS *SS_copy(const SS *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_free
      Src: /src/openssl-3.0.15/test/stack_test.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - SS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: SS_free
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    linkageType: ''
    returnType: void
    signature: void SS_free(SS *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/stack_test.c:273,1
    - Dst: sk_SS_new_null
      Src: /src/openssl-3.0.15/test/stack_test.c:273,1
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/stack_test.c:274,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/stack_test.c:276,1
    - Dst: OPENSSL_malloc
      Src: /src/openssl-3.0.15/test/stack_test.c:282,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/stack_test.c:284,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:288,1
    - Dst: sk_SS_num
      Src: /src/openssl-3.0.15/test/stack_test.c:288,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:289,1
    - Dst: sk_SS_push
      Src: /src/openssl-3.0.15/test/stack_test.c:292,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:294,1
    - Dst: sk_SS_num
      Src: /src/openssl-3.0.15/test/stack_test.c:294,1
    - Dst: sk_SS_deep_copy
      Src: /src/openssl-3.0.15/test/stack_test.c:298,1
    - Dst: sk_SS_num
      Src: /src/openssl-3.0.15/test/stack_test.c:299,1
    - Dst: sk_SS_free
      Src: /src/openssl-3.0.15/test/stack_test.c:301,1
    - Dst: sk_SS_deep_copy
      Src: /src/openssl-3.0.15/test/stack_test.c:302,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/stack_test.c:303,1
    - Dst: sk_SS_value
      Src: /src/openssl-3.0.15/test/stack_test.c:306,1
    - Dst: TEST_ptr_ne
      Src: /src/openssl-3.0.15/test/stack_test.c:307,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:308,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:311,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:312,1
    - Dst: TEST_char_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:315,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:316,1
    - Dst: sk_SS_pop_free
      Src: /src/openssl-3.0.15/test/stack_test.c:322,1
    - Dst: sk_SS_delete_ptr
      Src: /src/openssl-3.0.15/test/stack_test.c:326,1
    - Dst: TEST_ptr
      Src: /src/openssl-3.0.15/test/stack_test.c:327,1
    - Dst: SS_free
      Src: /src/openssl-3.0.15/test/stack_test.c:329,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:330,1
    - Dst: sk_SS_num
      Src: /src/openssl-3.0.15/test/stack_test.c:330,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:333,1
    - Dst: sk_SS_value
      Src: /src/openssl-3.0.15/test/stack_test.c:333,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:334,1
    - Dst: sk_SS_pop_free
      Src: /src/openssl-3.0.15/test/stack_test.c:340,1
    - Dst: sk_SS_pop_free
      Src: /src/openssl-3.0.15/test/stack_test.c:341,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 343
    functionName: test_SS_stack
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - sk_SS_new_null
    - TEST_char_eq
    - sk_SS_value
    - sk_SS_deep_copy
    - OPENSSL_malloc
    - TEST_int_eq
    - sk_SS_pop_free
    - sk_SS_num
    - sk_SS_delete_ptr
    - SS_free
    - TEST_info
    - TEST_ptr_eq
    - STACK_OF
    - sk_SS_free
    - TEST_ptr_ne
    - TEST_ptr
    - sk_SS_push
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_SS_stack(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/openssl-3.0.15/test/stack_test.c:347,1
    - Dst: sk_SU_new_null
      Src: /src/openssl-3.0.15/test/stack_test.c:347,1
    - Dst: OSSL_NELEM
      Src: /src/openssl-3.0.15/test/stack_test.c:349,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:359,1
    - Dst: sk_SU_num
      Src: /src/openssl-3.0.15/test/stack_test.c:359,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:360,1
    - Dst: sk_SU_push
      Src: /src/openssl-3.0.15/test/stack_test.c:363,1
    - Dst: TEST_int_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:365,1
    - Dst: sk_SU_num
      Src: /src/openssl-3.0.15/test/stack_test.c:365,1
    - Dst: TEST_ptr_eq
      Src: /src/openssl-3.0.15/test/stack_test.c:370,1
    - Dst: sk_SU_value
      Src: /src/openssl-3.0.15/test/stack_test.c:370,1
    - Dst: TEST_info
      Src: /src/openssl-3.0.15/test/stack_test.c:371,1
    - Dst: sk_SU_free
      Src: /src/openssl-3.0.15/test/stack_test.c:377,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 379
    functionName: test_SU_stack
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - sk_SU_new_null
    - TEST_int_eq
    - sk_SU_push
    - TEST_info
    - TEST_ptr_eq
    - STACK_OF
    - sk_SU_num
    - sk_SU_free
    - sk_SU_value
    - OSSL_NELEM
    linkageType: ''
    returnType: int
    signature: int test_SU_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/stack_test.c:383,1
    - Dst: ADD_ALL_TESTS
      Src: /src/openssl-3.0.15/test/stack_test.c:384,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/stack_test.c:385,1
    - Dst: ADD_TEST
      Src: /src/openssl-3.0.15/test/stack_test.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: setup_tests
    functionSourceFile: /src/openssl-3.0.15/test/stack_test.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    - ADD_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int setup_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: main
    functionSourceFile: /src/openssl-3.0.15/test/buildtest_comp.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/openssl-3.0.15/test/v3nametest.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: is_exception
    functionSourceFile: /src/openssl-3.0.15/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_exception(const char *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/test/v3nametest.c:91,1
    - Dst: X509_NAME_new
      Src: /src/openssl-3.0.15/test/v3nametest.c:92,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/test/v3nametest.c:100,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/test/v3nametest.c:103,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/openssl-3.0.15/test/v3nametest.c:104,1
    - Dst: X509_set_subject_name
      Src: /src/openssl-3.0.15/test/v3nametest.c:108,1
    - Dst: X509_NAME_free
      Src: /src/openssl-3.0.15/test/v3nametest.c:112,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/test/v3nametest.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - crt
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 115
    functionName: set_cn
    functionSourceFile: /src/openssl-3.0.15/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - va_arg
    - X509_NAME_free
    - va_end
    - va_start
    - X509_set_subject_name
    - X509_NAME_add_entry_by_NID
    linkageType: ''
    returnType: int
    signature: int set_cn(X509 *crt, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/openssl-3.0.15/test/v3nametest.c:131,1
    - Dst: sk_GENERAL_NAME_new_null
      Src: /src/openssl-3.0.15/test/v3nametest.c:132,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/test/v3nametest.c:138,1
    - Dst: va_arg
      Src: /src/openssl-3.0.15/test/v3nametest.c:141,1
    - Dst: GENERAL_NAME_new
      Src: /src/openssl-3.0.15/test/v3nametest.c:143,1
    - Dst: ASN1_IA5STRING_new
      Src: /src/openssl-3.0.15/test/v3nametest.c:146,1
    - Dst: ASN1_STRING_set
      Src: /src/openssl-3.0.15/test/v3nametest.c:149,1
    - Dst: GENERAL_NAME_set0_value
      Src: /src/openssl-3.0.15/test/v3nametest.c:154,1
    - Dst: abort
      Src: /src/openssl-3.0.15/test/v3nametest.c:158,1
    - Dst: sk_GENERAL_NAME_push
      Src: /src/openssl-3.0.15/test/v3nametest.c:160,1
    - Dst: X509_add1_ext_i2d
      Src: /src/openssl-3.0.15/test/v3nametest.c:163,1
    - Dst: ASN1_IA5STRING_free
      Src: /src/openssl-3.0.15/test/v3nametest.c:167,1
    - Dst: GENERAL_NAME_free
      Src: /src/openssl-3.0.15/test/v3nametest.c:168,1
    - Dst: GENERAL_NAMES_free
      Src: /src/openssl-3.0.15/test/v3nametest.c:169,1
    - Dst: va_end
      Src: /src/openssl-3.0.15/test/v3nametest.c:170,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - crt
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 172
    functionName: set_altname
    functionSourceFile: /src/openssl-3.0.15/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - ASN1_IA5STRING_new
    - va_arg
    - va_end
    - va_start
    - GENERAL_NAME_set0_value
    - GENERAL_NAME_free
    - X509_add1_ext_i2d
    - sk_GENERAL_NAME_push
    - abort
    - sk_GENERAL_NAME_new_null
    - GENERAL_NAMES_free
    - ASN1_STRING_set
    - GENERAL_NAME_new
    - ASN1_IA5STRING_free
    linkageType: ''
    returnType: int
    signature: int set_altname(X509 *crt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-3.0.15/test/v3nametest.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: set_cn1
    functionSourceFile: /src/openssl-3.0.15/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn1(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-3.0.15/test/v3nametest.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: set_cn_and_email
    functionSourceFile: /src/openssl-3.0.15/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn_and_email(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-3.0.15/test/v3nametest.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: set_cn2
    functionSourceFile: /src/openssl-3.0.15/test/v3nametest.c
    functionUses: 0
    functionsReached:
    - set_cn
    linkageType: ''
    returnType: int
    signature: int set_cn2(X509 *crt, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cn
      Src: /src/openssl-3.0.15/test/v3nametest.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crt
    - name
    argTypes:
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionL